diff --git a/adv_localization/index.html b/adv_localization/index.html
index dd9d6fea2..0b04054bf 100755
--- a/adv_localization/index.html
+++ b/adv_localization/index.html
@@ -319,9 +319,9 @@
前言
在本文中,我们将探讨如何使用UE4的本地化工具来优化你的游戏项目,涵盖从基本设置到高级功能的各个方面。无论是初次尝试游戏开发还是寻求提高现有项目的全球可及性,本指南都将提供必要的信息和步骤,帮助你顺利实现游戏本地化。
1.工具说明
导航至 窗口/本地化控制面板
-
+
主界面部分详解
-
+
-
+
-
选择收集方式:
@@ -347,7 +347,7 @@ 1.工具说明
文本键图案 填 {FieldPath}
2.翻译文本流程
上述配置完以后,主要操作都在 语系 中。
-
+
-
如上图所示,先添加你需要翻译的语言地区和你本地文本默认的语言地区。
@@ -356,28 +356,28 @@ 2.翻译文本流程
然后点击收集文本,收集本地需要翻译的文本,成功后
-
+
开始翻译文本
这里有两种方式,一种是直接在UE工具中翻译,一种是导出使用第三方工具翻译。
UE工具翻译:点击每个文化语言后面
-
-
+
+
在翻译中写入翻译后的文本即可,然后点击保存。
自行导出翻译
如下图所示:
-
-
+
+
上述第一种导出方式是导出全部语系,第二种是导出指定语系的文本,选择路径导出后会生成.po格式文件,是包含要翻译的每种文化文本以及当前翻译的文件,是一种通用格式,可直接手动编辑。
-
-
+
+
但是不建议这么做,这里我们使用 Poedit 翻译工具去进行编辑,里面功能齐全,包括自动翻译,翻译提示,多人协同等。
-
+
编辑完保存后,直接导入即可,按照导出的方式,再导入。
-
-
+
+
统计翻译文本,编译翻译文本。
-
-
+
+
最后,需要重新打开Carla。
diff --git a/index.html b/index.html
index f12fb44bb..243794cac 100755
--- a/index.html
+++ b/index.html
@@ -539,5 +539,5 @@ 其他
diff --git a/search/search_index.json b/search/search_index.json
index 11331d814..ad5adc13c 100755
--- a/search/search_index.json
+++ b/search/search_index.json
@@ -1 +1 @@
-{"config":{"indexing":"full","lang":["ja"],"min_search_length":2,"prebuild_index":false,"separator":"[\\s\\-\\.]+"},"docs":[{"location":"","text":"Carla \u6587\u6863 \u6b22\u8fce \u4f7f\u7528 Carla \u6587\u6863 \u3002 \u6b64 \u4e3b\u9875 \u5305\u542b \u4e00\u4e2a \u7d22\u5f15 \uff0c \u5176\u4e2d \u7b80\u8981 \u8bf4\u660e \u4e86 \u6587\u6863 \u4e2d \u7684 \u4e0d\u540c \u90e8\u5206 \u3002 \u968f\u610f \u6309 \u559c\u6b22 \u7684 \u987a\u5e8f \u9605\u8bfb \u3002 \u65e0\u8bba \u5982\u4f55 \u65e0\u8bba\u5982\u4f55 \uff0c \u8fd9\u91cc \u6709 \u4e00\u4e9b \u7ed9 \u65b0\u624b \u7684 \u5efa\u8bae \u3002 \u5b89\u88c5 Carla . \u8981\u4e48 \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u83b7\u5f97 Carla \u7248\u672c \uff0c \u8981\u4e48 \u6309\u7167 \u6240 \u9700 \u5e73\u53f0 \u8fdb\u884c \u6784\u5efa \u3002 \u5f00\u59cb \u4f7f\u7528 Carla . \u6807\u9898 \u4e3a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u7684 \u90e8\u5206 \u4ecb\u7ecd \u4e86 \u6700 \u91cd\u8981 \u7684 \u6982\u5ff5 \u3002 \u68c0\u67e5 API . \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python API \u53c2\u8003 \u6765 \u67e5\u627e \u53ef\u7528 \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 Carla \u8bba\u575b \u53ef\u4ee5 \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u51fa\u73b0 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b14\u8bb0 \u66f4\u6539 \u6587\u6863 \u7248\u672c \u4ee5 \u9002\u5408 \u60a8 \u4f7f\u7528 \u7684 Carla \u7248\u672c \u3002 \u4f7f\u7528 \u6b64 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u4ee5\u524d \u7684 \u7248\u672c \u3002 \u6700\u65b0 \u7248\u672c \u6307\u5411 dev \u5206\u652f \u4e2d \u7684 \u6587\u6863 \uff0c \u8fd9 \u53ef\u80fd \u662f \u6307 \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u529f\u80fd \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u6253\u5305 \u7248\u672c \u7684 Carla \u4e2d \u4e0d\u53ef \u7528 \uff0c \u4ee5\u53ca \u4e00\u822c \u6587\u6863 \u6539\u8fdb \u3002 \u5165\u95e8 \u4ecb\u7ecd \u2014 \u5bf9 Carla \u7684 \u671f\u671b \u3002 \u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u2014 \u83b7\u53d6 Carla \u7248\u672c \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u5f00\u59cb \u8fdb\u884c Carla \u64cd\u4f5c \u3002 \u6559\u7a0b \u2014 Carla \u8be6\u7ec6 \u6559\u7a0b \u3002 \u6784\u5efa Carla \u6784\u5efa Carla \u2014 \u8fdb\u884c Carla \u7f16\u8bd1 \u3002 Linux \u4e0a \u7f16\u8bd1 \u2014 \u5728 Linux \u4e0a \u8fdb\u884c \u7f16\u8bd1 \u3002 Windows \u4e0a \u7f16\u8bd1 \u2014 \u5728 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 Carla \u66f4\u65b0 \u2014 \u4e86\u89e3 \u6700\u65b0 \u5185\u5bb9 \u3002 \u6784\u5efa \u7cfb\u7edf \u2014 \u4e86\u89e3 \u6784\u5efa \u53ca\u5176 \u5236\u4f5c \u65b9\u5f0f \u3002 Docker \u4e2d \u7684 Carla \u2014 \u4f7f\u7528 \u5bb9\u5668 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8fd0\u884c Carla \u3002 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898 \u3002 Carla \u4e3b\u9898 \u57fa\u7840 \u2014 Carla \u57fa\u7840 \u3002 \u6838\u5fc3 \u6982\u5ff5 \u2014 Carla \u4e2d \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u7684 \u6982\u8ff0 \u3002 \u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u2014 \u7ba1\u7406 \u548c \u8bbf\u95ee \u4eff\u771f \u3002 \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u2014 \u4e86\u89e3 \u89d2\u8272 \u4ee5\u53ca \u5982\u4f55 \u5904\u7406 \u5b83\u4eec \u3002 \u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u2014 \u53d1\u73b0 \u4e0d\u540c \u7684 \u5730\u56fe \u4ee5\u53ca \u8f66\u8f86 \u5982\u4f55 \u79fb\u52a8 \u3002 \u7b2c\u56db \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u2014 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 \u5f00\u53d1 \u2014 \u57fa\u4e8e Carla \u7684 \u5f00\u53d1 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u2014 Carla \u4e2d \u8d44\u4ea7 \u7684 \u7684 \u5f00\u53d1 \u3002 \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u521b\u4f5c \u3002 \u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u521b\u4f5c \u3002 \u4ea4\u901a \u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u4f7f\u7528 \u4ea4\u901a \u586b\u5145 \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u548c SUMO \u8054\u5408 \u4eff\u771f \u2014 \u5728 Carla \u548c SUMO \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Scenic \u2014 \u9075\u5faa \u4f7f\u7528 Scenic \u5e93 \u5b9a\u4e49 \u4e0d\u540c \u573a\u666f \u7684 \u793a\u4f8b \u3002 \u884c\u4eba \u884c\u4eba \u9aa8\u9abc - \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u67b6 \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u884c\u4eba \u89c6\u89c9 - \u4f7f\u7528 \u76f8\u673a \u8fdb\u884c \u4eba\u773c \u7684 \u6a21\u62df \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u9ad8\u7ea7 \u6982\u5ff5 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u2014 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u5f55\u5236 \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u4e0d \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u2014 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b9e\u73b0 \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u597d \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u5f00\u8f66 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u53c2\u8003 Python API \u53c2\u8003 \u2014 Python API \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 C++ \u53c2\u8003 \u2014 Carla C++ \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 \u84dd \u56fe\u5e93 \u2014 \u63d0\u4f9b \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd\u56fe \u3002 Carla \u76ee\u5f55 \u2014 Carla \u4e2d \u8d44\u6e90 \u7684 \u76ee\u5f55 \u5217\u8868 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u5173\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u4e00\u5207 \u3002 \u6269\u5c55 \u6587\u6863 \u2014 \u5176\u4ed6 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe Carla \u4e2d \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u6d77\u5173 \u3001 \u6807\u51c6 \u5c3a\u5bf8 \u7684 \u5730\u56fe \u5728 Carla \u5305 \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5728 Carla \u6e90 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 Carla \u4e2d \u5bfc\u5165 \u4ece\u6e90 \u6784\u5efa \u7684 \u5730\u56fe \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u5730\u56fe \u4ee5\u4f9b \u624b\u52a8 \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u6539\u53d8 \u9053\u8def \u7684 \u5916\u89c2 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u5e76 \u586b\u5145 \u666f\u89c2 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u5efa\u7b51 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u901a\u8fc7 OpenStreetMap \u81ea\u52a8 \u751f\u6210 Carla \u4e2d \u7684 \u9053\u8def \u548c \u5efa\u7b51 \u3002 \u5927 \u5730\u56fe \u5927 \u5730\u56fe \u6982\u8ff0 \u2014 Carla \u4e2d \u5927 \u5730\u56fe \u5de5\u4f5c \u539f\u7406 \u7684 \u8bf4\u660e \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe \u6559\u7a0b \uff08 \u901a\u7528 \uff09 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 - \u5b9a\u4e49 \u8f66\u8f6e \u7684 \u52a8\u6001 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b - \u8bbe\u7f6e \u8f66\u8f86 \u7269\u7406 \u7684 \u8fd0\u884c \u65f6 \u7684 \u53d8\u5316 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09 \u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u4e3a \u8d44\u4ea7 \u751f\u6210 \u548c \u5904\u7406 \u72ec\u7acb \u5305 \u6750\u6599 \u5b9a\u5236 - \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u6559\u7a0b \uff08 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \uff09 \u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u4e2a \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u4e3a \u8bed\u4e49 \u5206\u5272 \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u751f\u6210 \u8be6\u7ec6 \u78b0\u649e \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u5bf9\u649e \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u8c03\u8bd5 \u7a0b\u5e8f \u8c03\u8bd5\u7a0b\u5e8f - \u8fdb\u884c \u7a0b\u5e8f \u7684 \u8c03\u8bd5 \u793a\u4f8b \u5165\u95e8 - \u57fa\u672c \u793a\u4f8b \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 - \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 \u6d41\u91cf \u9884\u6d4b - \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u9884\u6d4b Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf ISS \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u2014 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \u3002 \u4ea4\u901a \u573a\u666f \u2014 \u57fa\u4e8e Carla \u4ea4\u901a \u573a\u666f \u5b9a\u4e49 \u548c \u6267\u884c \u5f15\u64ce \u3002 Web \u53ef\u89c6 \u53ef\u89c6\u5316 \u5668 \u2014 \u4fa6\u542c \u4eff\u771f \u5e76 \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u573a\u666f \u548c \u4e00\u4e9b \u4eff\u771f \u6570\u636e \u7684 \u63d2\u4ef6 \u3002 ROS \u2014 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7684 \u7b80\u8981 \u6982\u8ff0 \u548c \u5b8c\u6574 \u6587\u6863 \u7684 \u94fe\u63a5 \u3002 \u6709\u9650 \u6709\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6 \u2014 \u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 CarSim \u96c6\u6210 - \u5173\u4e8e \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u79ef\u5206 \u6765 \u4eff\u771f \u7269\u7406 OpenRadios \u6709\u9650 \u6709\u9650\u5143 \u4eff\u771f \u2014 \u9488\u5bf9 \u52a8\u6001 \u8d1f\u8f7d \u4e0b \u7684 \u9ad8\u5ea6 \u7ebf\u6027 \u975e\u7ebf\u6027 \u95ee\u9898 \u8bc4\u4f30 \u548c \u4f18\u5316 \u4ea7\u54c1 \u6027\u80fd \u3002 PTV - Vissim \u8054\u5408 \u4eff\u771f - \u5728 Carla \u548c PTV - Vissim \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \u2014 \u6709\u5173 Ansys RTR \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Matlab \u63a5\u53e3 \u4f7f\u7528 Python \u548c ROS \u5728 Matlab \u4e2d \u8c03\u7528 Python \u3002 \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u2014 \u4f7f\u7528 \u7f57\u6280 \u65b9\u5411 \u65b9\u5411\u76d8 \u8fdb\u884c \u8f66\u8f86 \u63a7\u5236 \u548c \u4eff\u771f \u5bf9 \u65b9\u5411 \u65b9\u5411\u76d8 \u7684 \u53cd\u5411 \u63a7\u5236 \u3002 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u2014 \u57fa\u672c \u7684 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u3002 \u8d21\u732e \u8d21\u732e \u6307\u5357 \u2014 \u4e3a Carla \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u3002 \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u3002 \u6587\u6863 \u6807\u51c6 \u2014 \u7f16\u5199 \u9002\u5f53 \u6587\u6863 \u7684 \u6307\u5357 \u3002 \u5176\u4ed6 RoadRunner - \u7528\u4e8e \u6784\u5efa \u9759\u6001 \u573a\u666f RoadRunner Scenario - \u7528\u4e8e \u6784\u5efa \u52a8\u6001 \u4ea4\u901a \u573a\u666f \u3002 Carla \u4e2d\u6587 \u7ad9 \u2014 \u4e2d\u6587 \u4ea4\u6d41 \u793e\u533a \u3002 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u2014 \u548c \u865a\u5e7b \u5f15\u64ce \u76f8\u5173 \u7684 \u64cd\u4f5c \u6559\u7a0b \u3002 Blender \u624b\u518c - \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u3002 \u6587\u4ef6 \u8bf4\u660e - \u8bf4\u660e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u5404\u4e2a \u6587\u4ef6 \u7684 \u4f5c\u7528 \u3002 \u5f85 \u505a \u5217\u8868 - \u5f85 \u5b8c\u6210 \u7684 \u529f\u80fd \u3002","title":"\u4e3b\u9875"},{"location":"#carla","text":"\u6b22\u8fce \u4f7f\u7528 Carla \u6587\u6863 \u3002 \u6b64 \u4e3b\u9875 \u5305\u542b \u4e00\u4e2a \u7d22\u5f15 \uff0c \u5176\u4e2d \u7b80\u8981 \u8bf4\u660e \u4e86 \u6587\u6863 \u4e2d \u7684 \u4e0d\u540c \u90e8\u5206 \u3002 \u968f\u610f \u6309 \u559c\u6b22 \u7684 \u987a\u5e8f \u9605\u8bfb \u3002 \u65e0\u8bba \u5982\u4f55 \u65e0\u8bba\u5982\u4f55 \uff0c \u8fd9\u91cc \u6709 \u4e00\u4e9b \u7ed9 \u65b0\u624b \u7684 \u5efa\u8bae \u3002 \u5b89\u88c5 Carla . \u8981\u4e48 \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u83b7\u5f97 Carla \u7248\u672c \uff0c \u8981\u4e48 \u6309\u7167 \u6240 \u9700 \u5e73\u53f0 \u8fdb\u884c \u6784\u5efa \u3002 \u5f00\u59cb \u4f7f\u7528 Carla . \u6807\u9898 \u4e3a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u7684 \u90e8\u5206 \u4ecb\u7ecd \u4e86 \u6700 \u91cd\u8981 \u7684 \u6982\u5ff5 \u3002 \u68c0\u67e5 API . \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python API \u53c2\u8003 \u6765 \u67e5\u627e \u53ef\u7528 \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 Carla \u8bba\u575b \u53ef\u4ee5 \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u51fa\u73b0 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b14\u8bb0 \u66f4\u6539 \u6587\u6863 \u7248\u672c \u4ee5 \u9002\u5408 \u60a8 \u4f7f\u7528 \u7684 Carla \u7248\u672c \u3002 \u4f7f\u7528 \u6b64 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u4ee5\u524d \u7684 \u7248\u672c \u3002 \u6700\u65b0 \u7248\u672c \u6307\u5411 dev \u5206\u652f \u4e2d \u7684 \u6587\u6863 \uff0c \u8fd9 \u53ef\u80fd \u662f \u6307 \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u529f\u80fd \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u6253\u5305 \u7248\u672c \u7684 Carla \u4e2d \u4e0d\u53ef \u7528 \uff0c \u4ee5\u53ca \u4e00\u822c \u6587\u6863 \u6539\u8fdb \u3002","title":"Carla \u6587\u6863"},{"location":"#_1","text":"\u4ecb\u7ecd \u2014 \u5bf9 Carla \u7684 \u671f\u671b \u3002 \u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u2014 \u83b7\u53d6 Carla \u7248\u672c \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u5f00\u59cb \u8fdb\u884c Carla \u64cd\u4f5c \u3002 \u6559\u7a0b \u2014 Carla \u8be6\u7ec6 \u6559\u7a0b \u3002","title":"\u5165\u95e8"},{"location":"#carla_1","text":"\u6784\u5efa Carla \u2014 \u8fdb\u884c Carla \u7f16\u8bd1 \u3002 Linux \u4e0a \u7f16\u8bd1 \u2014 \u5728 Linux \u4e0a \u8fdb\u884c \u7f16\u8bd1 \u3002 Windows \u4e0a \u7f16\u8bd1 \u2014 \u5728 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 Carla \u66f4\u65b0 \u2014 \u4e86\u89e3 \u6700\u65b0 \u5185\u5bb9 \u3002 \u6784\u5efa \u7cfb\u7edf \u2014 \u4e86\u89e3 \u6784\u5efa \u53ca\u5176 \u5236\u4f5c \u65b9\u5f0f \u3002 Docker \u4e2d \u7684 Carla \u2014 \u4f7f\u7528 \u5bb9\u5668 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8fd0\u884c Carla \u3002 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898 \u3002","title":"\u6784\u5efa Carla"},{"location":"#carla_2","text":"\u57fa\u7840 \u2014 Carla \u57fa\u7840 \u3002 \u6838\u5fc3 \u6982\u5ff5 \u2014 Carla \u4e2d \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u7684 \u6982\u8ff0 \u3002 \u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u2014 \u7ba1\u7406 \u548c \u8bbf\u95ee \u4eff\u771f \u3002 \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u2014 \u4e86\u89e3 \u89d2\u8272 \u4ee5\u53ca \u5982\u4f55 \u5904\u7406 \u5b83\u4eec \u3002 \u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u2014 \u53d1\u73b0 \u4e0d\u540c \u7684 \u5730\u56fe \u4ee5\u53ca \u8f66\u8f86 \u5982\u4f55 \u79fb\u52a8 \u3002 \u7b2c\u56db \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u2014 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 \u5f00\u53d1 \u2014 \u57fa\u4e8e Carla \u7684 \u5f00\u53d1 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u2014 Carla \u4e2d \u8d44\u4ea7 \u7684 \u7684 \u5f00\u53d1 \u3002 \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u521b\u4f5c \u3002 \u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u521b\u4f5c \u3002","title":"Carla \u4e3b\u9898"},{"location":"#_2","text":"\u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u4f7f\u7528 \u4ea4\u901a \u586b\u5145 \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u548c SUMO \u8054\u5408 \u4eff\u771f \u2014 \u5728 Carla \u548c SUMO \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Scenic \u2014 \u9075\u5faa \u4f7f\u7528 Scenic \u5e93 \u5b9a\u4e49 \u4e0d\u540c \u573a\u666f \u7684 \u793a\u4f8b \u3002","title":"\u4ea4\u901a"},{"location":"#_3","text":"\u884c\u4eba \u9aa8\u9abc - \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u67b6 \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u884c\u4eba \u89c6\u89c9 - \u4f7f\u7528 \u76f8\u673a \u8fdb\u884c \u4eba\u773c \u7684 \u6a21\u62df \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002","title":"\u884c\u4eba"},{"location":"#_4","text":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u2014 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u5f55\u5236 \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u4e0d \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u2014 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b9e\u73b0 \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u597d \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u5f00\u8f66 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002","title":"\u9ad8\u7ea7 \u6982\u5ff5"},{"location":"#_5","text":"Python API \u53c2\u8003 \u2014 Python API \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 C++ \u53c2\u8003 \u2014 Carla C++ \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 \u84dd \u56fe\u5e93 \u2014 \u63d0\u4f9b \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd\u56fe \u3002 Carla \u76ee\u5f55 \u2014 Carla \u4e2d \u8d44\u6e90 \u7684 \u76ee\u5f55 \u5217\u8868 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u5173\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u4e00\u5207 \u3002 \u6269\u5c55 \u6587\u6863 \u2014 \u5176\u4ed6 \u3002","title":"\u53c2\u8003"},{"location":"#_6","text":"Carla \u4e2d \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u6d77\u5173 \u3001 \u6807\u51c6 \u5c3a\u5bf8 \u7684 \u5730\u56fe \u5728 Carla \u5305 \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5728 Carla \u6e90 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 Carla \u4e2d \u5bfc\u5165 \u4ece\u6e90 \u6784\u5efa \u7684 \u5730\u56fe \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u5730\u56fe \u4ee5\u4f9b \u624b\u52a8 \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u6539\u53d8 \u9053\u8def \u7684 \u5916\u89c2 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u5e76 \u586b\u5145 \u666f\u89c2 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u5efa\u7b51 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u901a\u8fc7 OpenStreetMap \u81ea\u52a8 \u751f\u6210 Carla \u4e2d \u7684 \u9053\u8def \u548c \u5efa\u7b51 \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"#_7","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u2014 Carla \u4e2d \u5927 \u5730\u56fe \u5de5\u4f5c \u539f\u7406 \u7684 \u8bf4\u660e \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe","title":"\u5927 \u5730\u56fe"},{"location":"#_8","text":"\u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 - \u5b9a\u4e49 \u8f66\u8f6e \u7684 \u52a8\u6001 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b - \u8bbe\u7f6e \u8f66\u8f86 \u7269\u7406 \u7684 \u8fd0\u884c \u65f6 \u7684 \u53d8\u5316 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla","title":"\u6559\u7a0b \uff08 \u901a\u7528 \uff09"},{"location":"#_9","text":"\u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u4e3a \u8d44\u4ea7 \u751f\u6210 \u548c \u5904\u7406 \u72ec\u7acb \u5305 \u6750\u6599 \u5b9a\u5236 - \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599","title":"\u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09"},{"location":"#_10","text":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u4e2a \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u4e3a \u8bed\u4e49 \u5206\u5272 \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u751f\u6210 \u8be6\u7ec6 \u78b0\u649e \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u5bf9\u649e \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u8c03\u8bd5 \u7a0b\u5e8f \u8c03\u8bd5\u7a0b\u5e8f - \u8fdb\u884c \u7a0b\u5e8f \u7684 \u8c03\u8bd5","title":"\u6559\u7a0b \uff08 \u5f00\u53d1\u4eba\u5458 \uff09"},{"location":"#_11","text":"\u5165\u95e8 - \u57fa\u672c \u793a\u4f8b \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 - \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 \u6d41\u91cf \u9884\u6d4b - \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u9884\u6d4b","title":"\u793a\u4f8b"},{"location":"#carla_3","text":"ISS \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u2014 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \u3002 \u4ea4\u901a \u573a\u666f \u2014 \u57fa\u4e8e Carla \u4ea4\u901a \u573a\u666f \u5b9a\u4e49 \u548c \u6267\u884c \u5f15\u64ce \u3002 Web \u53ef\u89c6 \u53ef\u89c6\u5316 \u5668 \u2014 \u4fa6\u542c \u4eff\u771f \u5e76 \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u573a\u666f \u548c \u4e00\u4e9b \u4eff\u771f \u6570\u636e \u7684 \u63d2\u4ef6 \u3002 ROS \u2014 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7684 \u7b80\u8981 \u6982\u8ff0 \u548c \u5b8c\u6574 \u6587\u6863 \u7684 \u94fe\u63a5 \u3002 \u6709\u9650 \u6709\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6 \u2014 \u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 CarSim \u96c6\u6210 - \u5173\u4e8e \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u79ef\u5206 \u6765 \u4eff\u771f \u7269\u7406 OpenRadios \u6709\u9650 \u6709\u9650\u5143 \u4eff\u771f \u2014 \u9488\u5bf9 \u52a8\u6001 \u8d1f\u8f7d \u4e0b \u7684 \u9ad8\u5ea6 \u7ebf\u6027 \u975e\u7ebf\u6027 \u95ee\u9898 \u8bc4\u4f30 \u548c \u4f18\u5316 \u4ea7\u54c1 \u6027\u80fd \u3002 PTV - Vissim \u8054\u5408 \u4eff\u771f - \u5728 Carla \u548c PTV - Vissim \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \u2014 \u6709\u5173 Ansys RTR \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Matlab \u63a5\u53e3 \u4f7f\u7528 Python \u548c ROS \u5728 Matlab \u4e2d \u8c03\u7528 Python \u3002 \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u2014 \u4f7f\u7528 \u7f57\u6280 \u65b9\u5411 \u65b9\u5411\u76d8 \u8fdb\u884c \u8f66\u8f86 \u63a7\u5236 \u548c \u4eff\u771f \u5bf9 \u65b9\u5411 \u65b9\u5411\u76d8 \u7684 \u53cd\u5411 \u63a7\u5236 \u3002 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u2014 \u57fa\u672c \u7684 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u3002","title":"Carla \u751f\u6001\u7cfb\u7edf"},{"location":"#_12","text":"\u8d21\u732e \u6307\u5357 \u2014 \u4e3a Carla \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u3002 \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u3002 \u6587\u6863 \u6807\u51c6 \u2014 \u7f16\u5199 \u9002\u5f53 \u6587\u6863 \u7684 \u6307\u5357 \u3002","title":"\u8d21\u732e"},{"location":"#_13","text":"RoadRunner - \u7528\u4e8e \u6784\u5efa \u9759\u6001 \u573a\u666f RoadRunner Scenario - \u7528\u4e8e \u6784\u5efa \u52a8\u6001 \u4ea4\u901a \u573a\u666f \u3002 Carla \u4e2d\u6587 \u7ad9 \u2014 \u4e2d\u6587 \u4ea4\u6d41 \u793e\u533a \u3002 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u2014 \u548c \u865a\u5e7b \u5f15\u64ce \u76f8\u5173 \u7684 \u64cd\u4f5c \u6559\u7a0b \u3002 Blender \u624b\u518c - \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u3002 \u6587\u4ef6 \u8bf4\u660e - \u8bf4\u660e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u5404\u4e2a \u6587\u4ef6 \u7684 \u4f5c\u7528 \u3002 \u5f85 \u505a \u5217\u8868 - \u5f85 \u5b8c\u6210 \u7684 \u529f\u80fd \u3002","title":"\u5176\u4ed6"},{"location":"3rd_party_integrations/","text":"3rd Party Integrations Carla has been developed to integrate with several 3rd party applications in order to maximise its utility and extensability . The following ROS bridge SUMO Scenic CarSIM Chrono OpenDRIVE PTV Vissim RSS AWS and RLlib ROS bridge Full documentation of the ROS bridge is found here . The ROS bridge enables two - way communication between ROS and Carla . The information from the Carla server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in Carla . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the Carla simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters . SUMO Carla has developed a co - simulation feature with SUMO . This allows to distribute the tasks at will , and exploit the capabilities of each simulation in favour of the user . Please refer to the full documentation here . PTV Vissim PTV Vissim is a proprietary software package providing a comprehensive traffic simulation solution with a powerful GUI . To use PTV - Vissim with Carla refer to this guide Scenic Scenic is a set of libraries and a language for scenario specification and scene generation . Carla and scenic can work seemlessly together , read this guid to understand how to use scenic with Carla . If you need to learn more about Scenic , then read their \" Getting Started with Scenic \" guide and have a look at their tutorials for creating static and dynamic scenarios . CarSIM Carla ' s integration with CarSim allows vehicle controls in Carla to be forwarded to CarSim . CarSim will do all required physics calculations of the vehicle and return the new state to Carla . Learn how to use Carla alongside CarSIM here . OpenDRIVE OpenDRIVE is an open format specification used to describe the logic of a road network intended to standardise the discription of road networks in digital format and allow different applications to exchange data on road networks . Please refer to the full documentation here RSS - Responsibility Sensitive Safety Carla integrates the C++ Library for Responsibility Sensitive Safety in the client library . This feature allows users to investigate behaviours of RSS without having to implement anything . Carla will take care of providing the input , and applying the output to the AD systems on the fly . Refer to the full documentation here AWS and RLlib integration The RLlib integration brings support between the Ray / RLlib library and Carla , allowing the easy use of the Carla environment for training and inference purposes . Ray is an open source framework that provides a simple , universal API for building distributed applications . Ray is packaged with RLlib , a scalable reinforcement learning library , and Tune , a scalable hyperparameter tuning library . Read more about operating Carla on AWS and RLlib here . Chrono physics Chrono is a multi - physics simulation engine providing high realism vehicle dynamics using templates . Carla ' s Chrono integraion allows Carla users to add Chrono templates to simulate vehicle dynamics . Please refer to the full documentation here .","title":"3rd Party Integrations"},{"location":"3rd_party_integrations/#3rd-party-integrations","text":"Carla has been developed to integrate with several 3rd party applications in order to maximise its utility and extensability . The following ROS bridge SUMO Scenic CarSIM Chrono OpenDRIVE PTV Vissim RSS AWS and RLlib","title":"3rd Party Integrations"},{"location":"3rd_party_integrations/#ros-bridge","text":"Full documentation of the ROS bridge is found here . The ROS bridge enables two - way communication between ROS and Carla . The information from the Carla server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in Carla . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the Carla simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters .","title":"ROS bridge"},{"location":"3rd_party_integrations/#sumo","text":"Carla has developed a co - simulation feature with SUMO . This allows to distribute the tasks at will , and exploit the capabilities of each simulation in favour of the user . Please refer to the full documentation here .","title":"SUMO"},{"location":"3rd_party_integrations/#ptv-vissim","text":"PTV Vissim is a proprietary software package providing a comprehensive traffic simulation solution with a powerful GUI . To use PTV - Vissim with Carla refer to this guide","title":"PTV Vissim"},{"location":"3rd_party_integrations/#scenic","text":"Scenic is a set of libraries and a language for scenario specification and scene generation . Carla and scenic can work seemlessly together , read this guid to understand how to use scenic with Carla . If you need to learn more about Scenic , then read their \" Getting Started with Scenic \" guide and have a look at their tutorials for creating static and dynamic scenarios .","title":"Scenic"},{"location":"3rd_party_integrations/#carsim","text":"Carla ' s integration with CarSim allows vehicle controls in Carla to be forwarded to CarSim . CarSim will do all required physics calculations of the vehicle and return the new state to Carla . Learn how to use Carla alongside CarSIM here .","title":"CarSIM"},{"location":"3rd_party_integrations/#opendrive","text":"OpenDRIVE is an open format specification used to describe the logic of a road network intended to standardise the discription of road networks in digital format and allow different applications to exchange data on road networks . Please refer to the full documentation here","title":"OpenDRIVE"},{"location":"3rd_party_integrations/#rss-responsibility-sensitive-safety","text":"Carla integrates the C++ Library for Responsibility Sensitive Safety in the client library . This feature allows users to investigate behaviours of RSS without having to implement anything . Carla will take care of providing the input , and applying the output to the AD systems on the fly . Refer to the full documentation here","title":"RSS - Responsibility Sensitive Safety"},{"location":"3rd_party_integrations/#aws-and-rllib-integration","text":"The RLlib integration brings support between the Ray / RLlib library and Carla , allowing the easy use of the Carla environment for training and inference purposes . Ray is an open source framework that provides a simple , universal API for building distributed applications . Ray is packaged with RLlib , a scalable reinforcement learning library , and Tune , a scalable hyperparameter tuning library . Read more about operating Carla on AWS and RLlib here .","title":"AWS and RLlib integration"},{"location":"3rd_party_integrations/#chrono-physics","text":"Chrono is a multi - physics simulation engine providing high realism vehicle dynamics using templates . Carla ' s Chrono integraion allows Carla users to add Chrono templates to simulate vehicle dynamics . Please refer to the full documentation here .","title":"Chrono physics"},{"location":"adv_agents/","text":"Carla \u667a\u80fd \u4f53 Carla \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u8f66\u8f86 \u6cbf\u7740 \u968f\u673a \u7684 \u3001 \u65e0\u9650 \u7684 \u8def\u7ebf \u884c\u9a76 \uff0c \u6216\u8005 \u91c7\u7528 \u6700\u77ed \u7684 \u8def\u7ebf \u5230\u8fbe \u7ed9\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u667a\u80fd \u4f53 \u9075\u5b88 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5e76 \u5bf9 \u9053\u8def \u4e0a \u7684 \u5176\u4ed6 \u969c\u788d \u969c\u788d\u7269 \u505a\u51fa \u53cd\u5e94 \u3002 \u63d0\u4f9b \u4e09\u79cd \u667a\u80fd \u4f53 \u7c7b\u578b \u3002 \u53ef\u4ee5 \u4fee\u6539 \u76ee\u6807 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u3001 \u5c3e\u968f \u884c\u4e3a \u7b49 \u53c2\u6570 \u3002 \u53ef\u4ee5 \u6839\u636e \u7528\u6237 \u7684 \u9700\u8981 \u4fee\u6539 Actor \u7c7b \u6216 \u5c06 \u5176 \u7528\u4f5c \u57fa\u7c7b \u6765 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u3002 \u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0 \u8ba1\u5212 \u4e0e \u63a7\u5236 \u667a\u80fd \u4f53 \u884c\u4e3a \u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u667a\u80fd \u4f53 \u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0 Carla \u667a\u80fd \u4f53\u4e2d \u6d89\u53ca \u7684 \u4e3b\u8981 \u811a\u672c \u4f4d\u4e8e PythonAPI / carla / agents / navigation \u4e2d \u3002 \u5b83\u4eec \u5206\u4e3a \u4e24\u7c7b \uff1b \u8ba1\u5212 \u548c \u63a7\u5236 \u548c \u667a\u80fd \u4f53 \u884c\u4e3a \u3002 \u8ba1\u5212 \u4e0e \u63a7\u5236 controller . py : \u5c06 \u7eb5\u5411 \u548c \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u7c7b \uff0c VehiclePIDController \uff0c \u7528\u4e8e \u4ece CARLA \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u4f4e\u7ea7 \u63a7\u5236 \u3002 global _ route _ planner . py : \u4ece Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u8be6\u7ec6 \u7684 \u62d3\u6251 \u7ed3\u6784 \u4ee5 \u6784\u5efa \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \u7684 \u56fe\u5f62 \u8868\u793a \uff0c \u4e3a Local Planner \u63d0\u4f9b \u822a\u70b9 \u548c \u9053\u8def \u9009\u9879 \u4fe1\u606f \u3002 local _ planner . py : \u6839\u636e \u6765\u81ea VehiclePIDController \u7684 \u63a7\u5236 \u8f93\u5165 \u8ddf\u8e2a \u822a\u8def \u70b9 \u3002 \u822a\u70b9 \u53ef\u4ee5 \u7531 Global Route Planner \u63d0\u4f9b \uff0c \u4e5f \u53ef\u4ee5 \u52a8\u6001 \u8ba1\u7b97 \uff0c \u5728 \u8def\u53e3 \u9009\u62e9 \u968f\u673a \u8def\u5f84 \uff0c \u7c7b\u4f3c \u4e8e Traffic Manager \u3002 \u667a\u80fd \u4f53 \u884c\u4e3a basic _ agent . py : \u5305\u542b \u4e00\u4e2a \u667a\u80fd \u4f53 \u57fa\u7c7b \uff0c \u5b83 \u5b9e\u73b0 \u4e86 \u4e00\u4e2a Basic Agent \uff0c \u5b83 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u4ee5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u907f\u5f00 \u5176\u4ed6 \u8f66\u8f86 \uff0c \u54cd\u5e94 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4f46 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u3002 behavior _ agent . py : \u5305\u542b \u4e00\u4e2a \u5b9e\u73b0 \u66f4 \u590d\u6742 \u7684 Behavior Agent \u7684 \u7c7b \uff0c \u5b83 \u53ef\u4ee5 \u5728 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5185 \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8ddf\u968f \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u6807\u5fd7 \u548c \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \uff0c \u540c\u65f6 \u5c3e\u968f \u5176\u4ed6 \u8f66\u8f86 \u3002 \u6709 \u4e09\u79cd \u9884\u5b9a \u4e49 \u7684 \u7c7b\u578b \u51b3\u5b9a \u4e86 \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002 behavior _ types . py : \u5305\u542b \u5f71\u54cd Behavior Agent \u7684 \u884c\u4e3a \u7c7b\u578b \u7684 \u53c2\u6570 \uff1b \u8c28\u614e \u3001 \u6b63\u5e38 \u548c \u8fdb\u53d6 \u3002 \u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53 \u672c\u8282 \u5c06 \u89e3\u91ca \u5982\u4f55 \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u4f7f\u7528 \u793a\u4f8b Carla \u667a\u80fd \u4f53\u7c7b \u3002 \u5728 \u672c\u8282 \u7684 \u6700\u540e \uff0c \u60a8 \u5c06 \u4e86\u89e3 \u5982\u4f55 \u8fd0\u884c \u4e00\u4e2a \u793a\u4f8b \u811a\u672c \u6765 \u663e\u793a \u4e0d\u540c \u667a\u80fd \u4f53 \u7684 \u8fd0\u884c \u60c5\u51b5 \u3002 1 . \u5bfc\u5165 \u8981 \u4f7f\u7528 \u7684 \u667a\u80fd \u4f53\u7c7b \uff1a # \u5bfc\u5165 \u57fa\u672c \u667a\u80fd \u4f53 from agent . navigation . basic _ agent import BasicAgent # \u5bfc\u5165 \u884c\u4e3a \u667a\u80fd \u4f53 from agent . navigation . behavior _ agent import BehaviorAgent 2 . \u4efb\u4f55 \u8f66\u8f86 \u90fd \u53ef\u4ee5 \u53d8\u6210 \u667a\u80fd \u4f53 \u3002 \u751f\u6210 \u8f66\u8f86 \u5e76 \u5c06 \u5176 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 \u667a\u80fd \u4f53\u7c7b \u4ee5 \u5b9e\u4f8b \u5316\u5b83 \uff1a # \u542f\u52a8 \u4e00\u4e2a \u57fa\u672c \u667a\u80fd \u4f53 agent = BasicAgent ( vehicle ) # \u542f\u52a8 \u5177\u6709 \u653b\u51fb \u653b\u51fb\u6027 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u884c\u4e3a \u667a\u80fd \u4f53 agent = BehaviorAgent ( vehicle , behavior = ' aggressive ' ) \u5728 behavior types \u90e8\u5206 \u4e2d \u9605\u8bfb \u6709\u5173 \u884c\u4e3a \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u914d\u7f6e \u60a8 \u81ea\u5df1 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 3 . \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u667a\u80fd \u4f53 \u524d\u5f80 \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u5982\u679c \u60a8 \u4e0d \u4e3a \u667a\u80fd \u4f53 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u5b83 \u5c06 \u5728 \u5730\u56fe \u4e0a \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u6f2b\u6e38 \u3002 \u8981 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8bf7 \u4e3a \u667a\u80fd \u4f53 \u63d0\u4f9b \u4f4d\u7f6e \uff1a destination = random . choice ( spawn _ points ) . location agent . set _ destination ( destination ) 5 . \u5728 \u5bfc\u822a \u6b65\u9aa4 \u671f\u95f4 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u548c \u884c\u4e3a \u3002 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \uff0c Basic Agent \u5c06 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u5e76 \u901a\u8fc7 \u6267\u884c \u7d27\u6025 \u505c\u6b62 \u6765 \u5bf9 \u4efb\u4f55 \u8f66\u8f86 \u6216 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u505a\u51fa \u53cd\u5e94 \u3002 Behavior Agent \u5c06 \u6839\u636e \u60a8 \u5e94\u7528 \u7684 \u884c\u4e3a \u7c7b\u578b \u5bf9 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u505a\u51fa \u53cd\u5e94 \u3001 \u907f\u5f00 \u884c\u4eba \u3001 \u8ddf\u968f \u6c7d\u8f66 \u5e76 \u5728 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u5bfc\u822a \uff1a while True \uff1a vehicle . apply _ control ( agent . run _ step ( ) ) 6 . \u60a8 \u53ef\u4ee5 \u68c0\u67e5 \u667a\u80fd \u4f53 \u662f\u5426 \u5df2 \u5b8c\u6210 \u5176 \u8f68\u8ff9 \u5e76 \u5728 \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u65f6 \u6267\u884c \u64cd\u4f5c \u3002 \u4e00\u65e6 \u60a8 \u7684 \u8f66\u8f86 \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u4ee5\u4e0b \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u5c06 \u7ed3\u675f \u4eff\u771f \uff1a while True \uff1a if agent . done \uff08 \uff09 \uff1a print ( \" The taerget has been reached , stopping the simulation \" ) break vehicle . apply _ control ( agent . run _ step ( ) ) 7 . \u4e0d\u662f \u5728 \u667a\u80fd \u4f53 \u5230\u8fbe \u5176 \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \u65f6 \u5b8c\u6210 \u4eff\u771f \uff0c \u800c\u662f \u53ef\u4ee5 \u751f\u6210 \u4e00\u6761 \u65b0 \u7684 \u968f\u673a \u8def\u7ebf \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \uff1a while True \uff1a if agent . done ( ) : agent . set _ destination ( random . choice ( spawn _ points ) . location ) print ( \" The target has been reached , searching for another target \" ) vehicle . apply _ control ( agent . run _ step ( ) ) Basic Agent \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u65b9\u6cd5 \u6765 \u64cd\u7eb5 \u667a\u80fd \u4f53 \u884c\u4e3a \u6216 \u9075\u5faa \u7684 \u7a0b\u5e8f \u8def\u7ebf \uff1a set _ target _ speed ( speed ) : \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \u8bbe\u7f6e \u76ee\u6807 \u901f\u5ea6 follow _ speed _ limits ( value = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u9075\u5faa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 set _ destination ( end _ location , start _ location = None ) : \u667a\u80fd \u4f53\u5c06 \u901a\u8fc7 \u53ef\u80fd \u7684 \u6700 \u77ed\u8def \u8def\u7ebf \u77ed\u8def\u7ebf \u4ece \u7279\u5b9a \u7684 \u8d77\u59cb \u4f4d\u7f6e \u5230 \u7ed3\u675f \u4f4d\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \u8d77\u59cb \u4f4d\u7f6e \uff0c \u5b83 \u5c06 \u4f7f\u7528 \u5f53\u524d \u667a\u80fd \u4f53 \u4f4d\u7f6e \u3002 set _ global _ plan ( plan , stop _ waypoint _ creation = True , clean _ queue = True ) : \u4e3a \u667a\u80fd \u4f53 \u6dfb\u52a0 \u4e00\u4e2a \u5177\u4f53 \u7684 \u8ba1\u5212 \u3002 \u8ba1\u5212 \u53c2\u6570 \u5e94 \u5305\u542b \u4e00\u4e2a [ carla . Waypoint , RoadOption ] \u5217\u8868 \uff0c \u8fd9 \u5c06 \u662f \u667a\u80fd \u4f53 \u9700\u8981 \u91c7\u53d6 \u7684 \u8def\u5f84 \u3002 stop _ waypoint _ creation \u5c06 \u9632\u6b62 \u5728 \u8def\u5f84 \u8fd0\u884c \u540e \u81ea\u52a8 \u521b\u5efa \u822a\u70b9 \u3002 clean _ queue \u5c06 \u91cd\u7f6e \u667a\u80fd \u4f53 \u7684 \u5f53\u524d \u8ba1\u5212 \u3002 trace _ route ( start _ waypoint , end _ waypoint ) : \u4ece Global Route Planner \u83b7\u53d6 \u4e24\u4e2a \u822a\u70b9 \u4e4b\u95f4 \u7684 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \uff0c \u5e76 \u5c06 \u8def\u5f84 \u4f5c\u4e3a [ carla . Waypoint , RoadOption ] \u5217\u8868 \u8fd4\u56de \uff0c \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \u3002 ignore _ traffic _ lights ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 ignore _ stop _ signs ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u505c\u8f66 \u6807\u5fd7 \u3002 ignore _ vehicles ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u5bf9 \u5176\u4ed6 \u8f66\u8f86 \u4f5c\u51fa \u53cd\u5e94 \u4f5c\u51fa\u53cd\u5e94 \u3002 \u5728 PythonAPI / examples \u4e2d \u627e\u5230 \u7684 automatic _ control . py \u811a\u672c \u662f \u57fa\u672c \u548c \u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u4e00\u4e2a \u793a\u4f8b \u3002 \u8981 \u5c1d\u8bd5 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5bfc\u822a \u5230 \u793a\u4f8b \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u4f7f\u7528 \u57fa\u672c \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Basic # \u4f7f\u7528 \u884c\u4e3a \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Behavior -- behavior = aggressive \u884c\u4e3a \u7c7b\u578b \u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u7c7b\u578b \u5728 behavior _ types . py \u4e2d \u5b9a\u4e49 \u3002 \u4e09\u4e2a \u9884 \u914d\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u662f ' cautious ' \u3001 ' normal ' \u548c ' aggressive ' \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8bbe\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u4fee\u6539 \u5b83\u4eec \u6216 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u4ee5\u4e0b \u53d8\u91cf \uff1a max _ speed \uff1a \u60a8 \u7684 \u8f66\u8f86 \u80fd\u591f \u8fbe\u5230 \u7684 \u6700\u9ad8 \u901f\u5ea6 \uff08 \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \uff09 \u3002 speed _ lim _ dist \uff1a \u4ee5 km / h \u4e3a \u5355\u4f4d \u7684 \u503c \uff0c \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u4e0e \u5f53\u524d \u9650\u901f \u7684 \u8ddd\u79bb \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u9650\u901f \u4e3a 30km / h \u4e14 speed _ lim _ dist \u4e3a 10km / h \uff0c \u5219 \u76ee\u6807 \u901f\u5ea6 \u5c06 \u662f 20 \u516c\u91cc / \u5c0f\u65f6 \uff09 speed _ decrease \uff1a \u5f53 \u63a5\u8fd1 \u524d\u65b9 \u8f83\u6162 \u7684 \u8f66\u8f86 \u65f6 \uff0c \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u4ee5 \u591a \u5feb \u7684 \u516c\u91cc / \u5c0f\u65f6 \u51cf\u901f \u3002 safety _ time \uff1a \u78b0\u649e \u65f6\u95f4 \uff1b \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u7a81\u7136 \u5239\u8f66 \uff0c \u5b83 \u4e0e \u524d\u9762 \u7684 \u8f66\u8f86 \u76f8\u649e \u6240 \u9700 \u7684 \u65f6\u95f4 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 min _ proximity _ threshold \uff1a \u5728 \u60a8 \u7684 \u8f66\u8f86 \u6267\u884c \u907f\u8ba9 \u6216 \u5c3e\u968f \u7b49 \u64cd\u4f5c \u4e4b\u524d \uff0c \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u6216 \u884c\u4eba \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 braking _ distance \uff1a \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u6267\u884c \u7d27\u6025 \u505c\u8f66 \u7d27\u6025\u505c\u8f66 \u65f6 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u3002 tailgate _ counter \uff1a \u7528\u4e8e \u907f\u514d \u5728 \u6700\u540e \u4e00\u4e2a \u540e \u6321\u677f \u540e\u8fc7 \u5feb \u5c3e\u968f \u7684 \u8ba1\u6570 \u8ba1\u6570\u5668 \u3002 \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u8981 \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a 1 . \u5728 behavior _ types . py \u4e2d\u4e3a \u60a8 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u7c7b \uff1a class ProfileName ( object ) \uff1a # \u5b8c\u6574 \u7684 \u503c \u5b9a\u4e49 2 . \u5728 behavior _ agent . py \u811a\u672c \u4e2d \u5b9a\u4e49 \u548c \u5b9e\u4f8b \u5316 \u4f60 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a # \u667a\u80fd \u4f53 \u884c\u4e3a \u53c2\u6570 if behavior = = ' cautious ' : self ._ behavior = Cautious ( ) elif behavior = = ' normal ' : self ._ behavior = Normal ( ) elif behavior = = ' aggressive ' : self ._ behavior = Aggressive ( ) elif behavior = = ' < type _ name > ' : self ._ behavior = < TypeName > ( ) \u521b\u5efa \u667a\u80fd \u4f53 Carla \u667a\u80fd \u4f53 \u53ea\u662f \u7528\u6237 \u53ef\u4ee5 \u8fd0\u884c \u7684 \u667a\u80fd \u4f53 \u7c7b\u578b \u7684 \u793a\u4f8b \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 Basic Agent \u7684 \u57fa\u7840 \u4e0a \u521b\u5efa \u81ea\u5df1 \u7684 \u667a\u80fd \u4f53 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u6bcf\u4e2a \u667a\u80fd \u4f53\u53ea \u9700\u8981 \u4e24\u4e2a \u5143\u7d20 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u548c \u8fd0\u884c \u6b65 \u3002 \u5728 \u4e0b\u9762 \u67e5\u627e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u7684 \u6700\u5c0f \u5e03\u5c40 \u793a\u4f8b \uff1a import carla from agents . navigation . basic _ agent import BasicAgent class CustomAgent ( BasicAgent ) : def __ init __ ( self , vehicle , target _ speed = 20 , debug = False ) : \" \" \" : param vehicle : \u5e94\u7528 \u5230 \u672c\u5730 \u89c4\u5212 \u5668 \u903b\u8f91 \u7684 actor : param target _ speed : \u8f66\u8f86 \u79fb\u52a8 \u7684 \u901f\u5ea6 \uff08 Km / h \uff09 \" \" \" super ( ) .__ init __ ( target _ speed , \u8c03\u8bd5 ) def run _ step ( self , debug = False ) : \" \" \" \u6267\u884c \u4e00\u6b65 \u5bfc\u822a : return : carla . VehicleControl \" \" \" # \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u91c7\u53d6 \u7684 \u884c\u52a8 control = carla . VehicleControl ( ) return control \u67e5\u770b basic _ agent . py \u548c behavior _ agent . py \u811a\u672c \u4ee5 \u63a2\u7d22 \u5b83\u4eec \u7684 \u7ed3\u6784 \u548c \u529f\u80fd \uff0c \u4ee5 \u83b7\u53d6 \u6709\u5173 \u5982\u4f55 \u521b\u5efa \u81ea\u5df1 \u7684 \u66f4 \u591a \u60f3\u6cd5 \u3002 \u60a8 \u53ef\u4ee5 \u63a2\u7d22 \u63d0\u4f9b \u7684 \u667a\u80fd \u4f53 \u811a\u672c \u3001 \u6269\u5c55 \u5b83\u4eec \u6216 \u5c06 \u5b83\u4eec \u7528\u4f5c \u521b\u5efa \u81ea\u5df1 \u7684 \u57fa\u51c6 \u3002 \u5982\u679c \u60a8 \u5bf9 \u667a\u80fd \u4f53\u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u53d1\u5e16 \u3002","title":"Carla \u667a\u80fd \u4f53"},{"location":"adv_agents/#carla","text":"Carla \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u8f66\u8f86 \u6cbf\u7740 \u968f\u673a \u7684 \u3001 \u65e0\u9650 \u7684 \u8def\u7ebf \u884c\u9a76 \uff0c \u6216\u8005 \u91c7\u7528 \u6700\u77ed \u7684 \u8def\u7ebf \u5230\u8fbe \u7ed9\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u667a\u80fd \u4f53 \u9075\u5b88 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5e76 \u5bf9 \u9053\u8def \u4e0a \u7684 \u5176\u4ed6 \u969c\u788d \u969c\u788d\u7269 \u505a\u51fa \u53cd\u5e94 \u3002 \u63d0\u4f9b \u4e09\u79cd \u667a\u80fd \u4f53 \u7c7b\u578b \u3002 \u53ef\u4ee5 \u4fee\u6539 \u76ee\u6807 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u3001 \u5c3e\u968f \u884c\u4e3a \u7b49 \u53c2\u6570 \u3002 \u53ef\u4ee5 \u6839\u636e \u7528\u6237 \u7684 \u9700\u8981 \u4fee\u6539 Actor \u7c7b \u6216 \u5c06 \u5176 \u7528\u4f5c \u57fa\u7c7b \u6765 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u3002 \u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0 \u8ba1\u5212 \u4e0e \u63a7\u5236 \u667a\u80fd \u4f53 \u884c\u4e3a \u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u667a\u80fd \u4f53","title":"Carla \u667a\u80fd \u4f53"},{"location":"adv_agents/#_1","text":"Carla \u667a\u80fd \u4f53\u4e2d \u6d89\u53ca \u7684 \u4e3b\u8981 \u811a\u672c \u4f4d\u4e8e PythonAPI / carla / agents / navigation \u4e2d \u3002 \u5b83\u4eec \u5206\u4e3a \u4e24\u7c7b \uff1b \u8ba1\u5212 \u548c \u63a7\u5236 \u548c \u667a\u80fd \u4f53 \u884c\u4e3a \u3002","title":"\u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0"},{"location":"adv_agents/#_2","text":"controller . py : \u5c06 \u7eb5\u5411 \u548c \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u7c7b \uff0c VehiclePIDController \uff0c \u7528\u4e8e \u4ece CARLA \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u4f4e\u7ea7 \u63a7\u5236 \u3002 global _ route _ planner . py : \u4ece Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u8be6\u7ec6 \u7684 \u62d3\u6251 \u7ed3\u6784 \u4ee5 \u6784\u5efa \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \u7684 \u56fe\u5f62 \u8868\u793a \uff0c \u4e3a Local Planner \u63d0\u4f9b \u822a\u70b9 \u548c \u9053\u8def \u9009\u9879 \u4fe1\u606f \u3002 local _ planner . py : \u6839\u636e \u6765\u81ea VehiclePIDController \u7684 \u63a7\u5236 \u8f93\u5165 \u8ddf\u8e2a \u822a\u8def \u70b9 \u3002 \u822a\u70b9 \u53ef\u4ee5 \u7531 Global Route Planner \u63d0\u4f9b \uff0c \u4e5f \u53ef\u4ee5 \u52a8\u6001 \u8ba1\u7b97 \uff0c \u5728 \u8def\u53e3 \u9009\u62e9 \u968f\u673a \u8def\u5f84 \uff0c \u7c7b\u4f3c \u4e8e Traffic Manager \u3002","title":"\u8ba1\u5212 \u4e0e \u63a7\u5236"},{"location":"adv_agents/#_3","text":"basic _ agent . py : \u5305\u542b \u4e00\u4e2a \u667a\u80fd \u4f53 \u57fa\u7c7b \uff0c \u5b83 \u5b9e\u73b0 \u4e86 \u4e00\u4e2a Basic Agent \uff0c \u5b83 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u4ee5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u907f\u5f00 \u5176\u4ed6 \u8f66\u8f86 \uff0c \u54cd\u5e94 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4f46 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u3002 behavior _ agent . py : \u5305\u542b \u4e00\u4e2a \u5b9e\u73b0 \u66f4 \u590d\u6742 \u7684 Behavior Agent \u7684 \u7c7b \uff0c \u5b83 \u53ef\u4ee5 \u5728 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5185 \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8ddf\u968f \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u6807\u5fd7 \u548c \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \uff0c \u540c\u65f6 \u5c3e\u968f \u5176\u4ed6 \u8f66\u8f86 \u3002 \u6709 \u4e09\u79cd \u9884\u5b9a \u4e49 \u7684 \u7c7b\u578b \u51b3\u5b9a \u4e86 \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002 behavior _ types . py : \u5305\u542b \u5f71\u54cd Behavior Agent \u7684 \u884c\u4e3a \u7c7b\u578b \u7684 \u53c2\u6570 \uff1b \u8c28\u614e \u3001 \u6b63\u5e38 \u548c \u8fdb\u53d6 \u3002","title":"\u667a\u80fd \u4f53 \u884c\u4e3a"},{"location":"adv_agents/#_4","text":"\u672c\u8282 \u5c06 \u89e3\u91ca \u5982\u4f55 \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u4f7f\u7528 \u793a\u4f8b Carla \u667a\u80fd \u4f53\u7c7b \u3002 \u5728 \u672c\u8282 \u7684 \u6700\u540e \uff0c \u60a8 \u5c06 \u4e86\u89e3 \u5982\u4f55 \u8fd0\u884c \u4e00\u4e2a \u793a\u4f8b \u811a\u672c \u6765 \u663e\u793a \u4e0d\u540c \u667a\u80fd \u4f53 \u7684 \u8fd0\u884c \u60c5\u51b5 \u3002 1 . \u5bfc\u5165 \u8981 \u4f7f\u7528 \u7684 \u667a\u80fd \u4f53\u7c7b \uff1a # \u5bfc\u5165 \u57fa\u672c \u667a\u80fd \u4f53 from agent . navigation . basic _ agent import BasicAgent # \u5bfc\u5165 \u884c\u4e3a \u667a\u80fd \u4f53 from agent . navigation . behavior _ agent import BehaviorAgent 2 . \u4efb\u4f55 \u8f66\u8f86 \u90fd \u53ef\u4ee5 \u53d8\u6210 \u667a\u80fd \u4f53 \u3002 \u751f\u6210 \u8f66\u8f86 \u5e76 \u5c06 \u5176 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 \u667a\u80fd \u4f53\u7c7b \u4ee5 \u5b9e\u4f8b \u5316\u5b83 \uff1a # \u542f\u52a8 \u4e00\u4e2a \u57fa\u672c \u667a\u80fd \u4f53 agent = BasicAgent ( vehicle ) # \u542f\u52a8 \u5177\u6709 \u653b\u51fb \u653b\u51fb\u6027 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u884c\u4e3a \u667a\u80fd \u4f53 agent = BehaviorAgent ( vehicle , behavior = ' aggressive ' ) \u5728 behavior types \u90e8\u5206 \u4e2d \u9605\u8bfb \u6709\u5173 \u884c\u4e3a \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u914d\u7f6e \u60a8 \u81ea\u5df1 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 3 . \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u667a\u80fd \u4f53 \u524d\u5f80 \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u5982\u679c \u60a8 \u4e0d \u4e3a \u667a\u80fd \u4f53 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u5b83 \u5c06 \u5728 \u5730\u56fe \u4e0a \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u6f2b\u6e38 \u3002 \u8981 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8bf7 \u4e3a \u667a\u80fd \u4f53 \u63d0\u4f9b \u4f4d\u7f6e \uff1a destination = random . choice ( spawn _ points ) . location agent . set _ destination ( destination ) 5 . \u5728 \u5bfc\u822a \u6b65\u9aa4 \u671f\u95f4 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u548c \u884c\u4e3a \u3002 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \uff0c Basic Agent \u5c06 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u5e76 \u901a\u8fc7 \u6267\u884c \u7d27\u6025 \u505c\u6b62 \u6765 \u5bf9 \u4efb\u4f55 \u8f66\u8f86 \u6216 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u505a\u51fa \u53cd\u5e94 \u3002 Behavior Agent \u5c06 \u6839\u636e \u60a8 \u5e94\u7528 \u7684 \u884c\u4e3a \u7c7b\u578b \u5bf9 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u505a\u51fa \u53cd\u5e94 \u3001 \u907f\u5f00 \u884c\u4eba \u3001 \u8ddf\u968f \u6c7d\u8f66 \u5e76 \u5728 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u5bfc\u822a \uff1a while True \uff1a vehicle . apply _ control ( agent . run _ step ( ) ) 6 . \u60a8 \u53ef\u4ee5 \u68c0\u67e5 \u667a\u80fd \u4f53 \u662f\u5426 \u5df2 \u5b8c\u6210 \u5176 \u8f68\u8ff9 \u5e76 \u5728 \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u65f6 \u6267\u884c \u64cd\u4f5c \u3002 \u4e00\u65e6 \u60a8 \u7684 \u8f66\u8f86 \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u4ee5\u4e0b \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u5c06 \u7ed3\u675f \u4eff\u771f \uff1a while True \uff1a if agent . done \uff08 \uff09 \uff1a print ( \" The taerget has been reached , stopping the simulation \" ) break vehicle . apply _ control ( agent . run _ step ( ) ) 7 . \u4e0d\u662f \u5728 \u667a\u80fd \u4f53 \u5230\u8fbe \u5176 \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \u65f6 \u5b8c\u6210 \u4eff\u771f \uff0c \u800c\u662f \u53ef\u4ee5 \u751f\u6210 \u4e00\u6761 \u65b0 \u7684 \u968f\u673a \u8def\u7ebf \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \uff1a while True \uff1a if agent . done ( ) : agent . set _ destination ( random . choice ( spawn _ points ) . location ) print ( \" The target has been reached , searching for another target \" ) vehicle . apply _ control ( agent . run _ step ( ) ) Basic Agent \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u65b9\u6cd5 \u6765 \u64cd\u7eb5 \u667a\u80fd \u4f53 \u884c\u4e3a \u6216 \u9075\u5faa \u7684 \u7a0b\u5e8f \u8def\u7ebf \uff1a set _ target _ speed ( speed ) : \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \u8bbe\u7f6e \u76ee\u6807 \u901f\u5ea6 follow _ speed _ limits ( value = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u9075\u5faa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 set _ destination ( end _ location , start _ location = None ) : \u667a\u80fd \u4f53\u5c06 \u901a\u8fc7 \u53ef\u80fd \u7684 \u6700 \u77ed\u8def \u8def\u7ebf \u77ed\u8def\u7ebf \u4ece \u7279\u5b9a \u7684 \u8d77\u59cb \u4f4d\u7f6e \u5230 \u7ed3\u675f \u4f4d\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \u8d77\u59cb \u4f4d\u7f6e \uff0c \u5b83 \u5c06 \u4f7f\u7528 \u5f53\u524d \u667a\u80fd \u4f53 \u4f4d\u7f6e \u3002 set _ global _ plan ( plan , stop _ waypoint _ creation = True , clean _ queue = True ) : \u4e3a \u667a\u80fd \u4f53 \u6dfb\u52a0 \u4e00\u4e2a \u5177\u4f53 \u7684 \u8ba1\u5212 \u3002 \u8ba1\u5212 \u53c2\u6570 \u5e94 \u5305\u542b \u4e00\u4e2a [ carla . Waypoint , RoadOption ] \u5217\u8868 \uff0c \u8fd9 \u5c06 \u662f \u667a\u80fd \u4f53 \u9700\u8981 \u91c7\u53d6 \u7684 \u8def\u5f84 \u3002 stop _ waypoint _ creation \u5c06 \u9632\u6b62 \u5728 \u8def\u5f84 \u8fd0\u884c \u540e \u81ea\u52a8 \u521b\u5efa \u822a\u70b9 \u3002 clean _ queue \u5c06 \u91cd\u7f6e \u667a\u80fd \u4f53 \u7684 \u5f53\u524d \u8ba1\u5212 \u3002 trace _ route ( start _ waypoint , end _ waypoint ) : \u4ece Global Route Planner \u83b7\u53d6 \u4e24\u4e2a \u822a\u70b9 \u4e4b\u95f4 \u7684 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \uff0c \u5e76 \u5c06 \u8def\u5f84 \u4f5c\u4e3a [ carla . Waypoint , RoadOption ] \u5217\u8868 \u8fd4\u56de \uff0c \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \u3002 ignore _ traffic _ lights ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 ignore _ stop _ signs ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u505c\u8f66 \u6807\u5fd7 \u3002 ignore _ vehicles ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u5bf9 \u5176\u4ed6 \u8f66\u8f86 \u4f5c\u51fa \u53cd\u5e94 \u4f5c\u51fa\u53cd\u5e94 \u3002 \u5728 PythonAPI / examples \u4e2d \u627e\u5230 \u7684 automatic _ control . py \u811a\u672c \u662f \u57fa\u672c \u548c \u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u4e00\u4e2a \u793a\u4f8b \u3002 \u8981 \u5c1d\u8bd5 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5bfc\u822a \u5230 \u793a\u4f8b \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u4f7f\u7528 \u57fa\u672c \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Basic # \u4f7f\u7528 \u884c\u4e3a \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Behavior -- behavior = aggressive","title":"\u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53"},{"location":"adv_agents/#_5","text":"\u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u7c7b\u578b \u5728 behavior _ types . py \u4e2d \u5b9a\u4e49 \u3002 \u4e09\u4e2a \u9884 \u914d\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u662f ' cautious ' \u3001 ' normal ' \u548c ' aggressive ' \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8bbe\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u4fee\u6539 \u5b83\u4eec \u6216 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u4ee5\u4e0b \u53d8\u91cf \uff1a max _ speed \uff1a \u60a8 \u7684 \u8f66\u8f86 \u80fd\u591f \u8fbe\u5230 \u7684 \u6700\u9ad8 \u901f\u5ea6 \uff08 \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \uff09 \u3002 speed _ lim _ dist \uff1a \u4ee5 km / h \u4e3a \u5355\u4f4d \u7684 \u503c \uff0c \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u4e0e \u5f53\u524d \u9650\u901f \u7684 \u8ddd\u79bb \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u9650\u901f \u4e3a 30km / h \u4e14 speed _ lim _ dist \u4e3a 10km / h \uff0c \u5219 \u76ee\u6807 \u901f\u5ea6 \u5c06 \u662f 20 \u516c\u91cc / \u5c0f\u65f6 \uff09 speed _ decrease \uff1a \u5f53 \u63a5\u8fd1 \u524d\u65b9 \u8f83\u6162 \u7684 \u8f66\u8f86 \u65f6 \uff0c \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u4ee5 \u591a \u5feb \u7684 \u516c\u91cc / \u5c0f\u65f6 \u51cf\u901f \u3002 safety _ time \uff1a \u78b0\u649e \u65f6\u95f4 \uff1b \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u7a81\u7136 \u5239\u8f66 \uff0c \u5b83 \u4e0e \u524d\u9762 \u7684 \u8f66\u8f86 \u76f8\u649e \u6240 \u9700 \u7684 \u65f6\u95f4 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 min _ proximity _ threshold \uff1a \u5728 \u60a8 \u7684 \u8f66\u8f86 \u6267\u884c \u907f\u8ba9 \u6216 \u5c3e\u968f \u7b49 \u64cd\u4f5c \u4e4b\u524d \uff0c \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u6216 \u884c\u4eba \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 braking _ distance \uff1a \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u6267\u884c \u7d27\u6025 \u505c\u8f66 \u7d27\u6025\u505c\u8f66 \u65f6 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u3002 tailgate _ counter \uff1a \u7528\u4e8e \u907f\u514d \u5728 \u6700\u540e \u4e00\u4e2a \u540e \u6321\u677f \u540e\u8fc7 \u5feb \u5c3e\u968f \u7684 \u8ba1\u6570 \u8ba1\u6570\u5668 \u3002","title":"\u884c\u4e3a \u7c7b\u578b"},{"location":"adv_agents/#_6","text":"\u8981 \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a 1 . \u5728 behavior _ types . py \u4e2d\u4e3a \u60a8 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u7c7b \uff1a class ProfileName ( object ) \uff1a # \u5b8c\u6574 \u7684 \u503c \u5b9a\u4e49 2 . \u5728 behavior _ agent . py \u811a\u672c \u4e2d \u5b9a\u4e49 \u548c \u5b9e\u4f8b \u5316 \u4f60 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a # \u667a\u80fd \u4f53 \u884c\u4e3a \u53c2\u6570 if behavior = = ' cautious ' : self ._ behavior = Cautious ( ) elif behavior = = ' normal ' : self ._ behavior = Normal ( ) elif behavior = = ' aggressive ' : self ._ behavior = Aggressive ( ) elif behavior = = ' < type _ name > ' : self ._ behavior = < TypeName > ( )","title":"\u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b"},{"location":"adv_agents/#_7","text":"Carla \u667a\u80fd \u4f53 \u53ea\u662f \u7528\u6237 \u53ef\u4ee5 \u8fd0\u884c \u7684 \u667a\u80fd \u4f53 \u7c7b\u578b \u7684 \u793a\u4f8b \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 Basic Agent \u7684 \u57fa\u7840 \u4e0a \u521b\u5efa \u81ea\u5df1 \u7684 \u667a\u80fd \u4f53 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u6bcf\u4e2a \u667a\u80fd \u4f53\u53ea \u9700\u8981 \u4e24\u4e2a \u5143\u7d20 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u548c \u8fd0\u884c \u6b65 \u3002 \u5728 \u4e0b\u9762 \u67e5\u627e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u7684 \u6700\u5c0f \u5e03\u5c40 \u793a\u4f8b \uff1a import carla from agents . navigation . basic _ agent import BasicAgent class CustomAgent ( BasicAgent ) : def __ init __ ( self , vehicle , target _ speed = 20 , debug = False ) : \" \" \" : param vehicle : \u5e94\u7528 \u5230 \u672c\u5730 \u89c4\u5212 \u5668 \u903b\u8f91 \u7684 actor : param target _ speed : \u8f66\u8f86 \u79fb\u52a8 \u7684 \u901f\u5ea6 \uff08 Km / h \uff09 \" \" \" super ( ) .__ init __ ( target _ speed , \u8c03\u8bd5 ) def run _ step ( self , debug = False ) : \" \" \" \u6267\u884c \u4e00\u6b65 \u5bfc\u822a : return : carla . VehicleControl \" \" \" # \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u91c7\u53d6 \u7684 \u884c\u52a8 control = carla . VehicleControl ( ) return control \u67e5\u770b basic _ agent . py \u548c behavior _ agent . py \u811a\u672c \u4ee5 \u63a2\u7d22 \u5b83\u4eec \u7684 \u7ed3\u6784 \u548c \u529f\u80fd \uff0c \u4ee5 \u83b7\u53d6 \u6709\u5173 \u5982\u4f55 \u521b\u5efa \u81ea\u5df1 \u7684 \u66f4 \u591a \u60f3\u6cd5 \u3002 \u60a8 \u53ef\u4ee5 \u63a2\u7d22 \u63d0\u4f9b \u7684 \u667a\u80fd \u4f53 \u811a\u672c \u3001 \u6269\u5c55 \u5b83\u4eec \u6216 \u5c06 \u5b83\u4eec \u7528\u4f5c \u521b\u5efa \u81ea\u5df1 \u7684 \u57fa\u51c6 \u3002 \u5982\u679c \u60a8 \u5bf9 \u667a\u80fd \u4f53\u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u53d1\u5e16 \u3002","title":"\u521b\u5efa \u667a\u80fd \u4f53"},{"location":"adv_benchmarking/","text":"\u57fa\u51c6 \u6027\u80fd \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u4f7f \u7528\u6237 \u80fd\u591f \u8f7b\u677e \u5730 \u5206\u6790 Carla \u5728 \u81ea\u5df1 \u7684 \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u8be5 \u811a\u672c \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u8fd0\u884c \u591a\u79cd \u7ed3\u5408 \u4e0d\u540c \u5730\u56fe \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5929\u6c14 \u6761\u4ef6 \u7684 \u573a\u666f \u3002 \u5b83 \u62a5\u544a \u8bf7\u6c42 \u573a\u666f \u4e0b FPS \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u548c \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u6211\u4eec \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u8981\u6c42 \u3001 \u5728 \u54ea\u91cc \u53ef\u4ee5 \u627e\u5230 \u811a\u672c \u3001 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fd0\u884c \u573a\u666f \u7684 \u6807\u5fd7 \u4ee5\u53ca \u6709\u5173 \u5982\u4f55 \u8fd0\u884c \u547d\u4ee4 \u7684 \u793a\u4f8b \u3002 \u6211\u4eec \u8fd8 \u5305\u542b \u4e86 \u5355\u72ec \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u7ed3\u679c \uff0c \u8be5 \u57fa\u51c6 \u6d4b\u8bd5 \u5728 \u4f7f\u7528 \u4e0d\u540c \u8f66\u8f86 \u6570\u91cf \u7ec4\u5408 \u3001 \u542f\u7528 \u7269\u7406 \u548c / \u6216 \u542f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u65f6 \u6d4b\u91cf Carla \u5728 \u7279\u5b9a \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u7ed3\u679c \u4e0e \u4f7f\u7528 \u7684 Carla \u7248\u672c \u548c \u6267\u884c \u6d4b\u8bd5 \u7684 \u73af\u5883 \u4e00\u8d77 \u663e\u793a \u3002 \u57fa\u51c6 \u811a\u672c \u5f00\u59cb \u4e4b\u524d \u6982\u8981 \u6807\u5fd7 Carla \u6027\u80fd \u62a5\u544a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \u57fa\u51c6 \u811a\u672c \u53ef\u4ee5 \u5728 PythonAPI / util \u4e2d \u627e\u5230 \u3002 \u5b83 \u6709 \u51e0\u4e2a \u6807\u5fd7 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8981 \u6d4b\u8bd5 \u7684 \u573a\u666f \uff0c \u4e0b\u9762 \u7684 \u6982\u8981 \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u5f00\u59cb \u4e4b\u524d \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \u9700\u8981 \u5b89\u88c5 \u4e00\u4e9b \u4f9d\u8d56 \u9879 \u624d\u80fd \u8fd0\u884c \u5b83 \uff1a python - m pip install - U py - cpuinfo = = 5.0 . 0 python - m pip install psutil python - m pip install python - tr python - m pip install gpuinfo python - m pip install GPUtil \u6982\u8981 python3 performance _ benchmark . py [ -- host HOST ] [ -- port PORT ] [ -- file FILE ] [ -- tm ] [ -- fixed _ dt FIXED _ DT ] [ -- render _ mode ] [ -- no _ render _ mode ] [ -- show _ scenarios ] ) [ -- sensors SENSORS [ SENSORS ... ] ] [ -- maps MAPS [ MAPS ... ] ] [ -- weather WEATHER [ WEATHER ... ] ] \u6807\u5fd7 -- host : IP _ ADDRESS \u9ed8\u8ba4 \uff1a \u672c\u5730 \u4e3b\u673a \u3002 \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4e3b\u673a \u3002 -- port : \u7aef\u53e3 \u9ed8\u8ba4 \uff1a 2000 \u914d\u7f6e \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- file : \u6587\u4ef6 \u6587\u4ef6\u540d . md \u9ed8\u8ba4 : benchmark . md \u4ee5 \u964d\u4ef7 \u8868 \u683c\u5f0f \u5c06 \u7ed3\u679c \u5199\u5165 \u6587\u4ef6 \u3002 -- tm \u5207\u6362 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u57fa\u51c6 -- ticks \u9ed8\u8ba4 \uff1a 100 \u8bbe\u7f6e \u7528\u4e8e \u6bcf\u4e2a \u573a\u666f \u7684 \u523b\u5ea6 \u6570 \u3002 -- \u540c\u6b65 \u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- async \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- fixed _ dt \u9ed8\u8ba4 \uff1a 0.05 \u5982\u679c \u60a8 \u60f3 \u8bbe\u7f6e \u589e\u91cf \u65f6\u95f4 \u6b65\u957f \uff0c \u8bf7 \u4e0e \u540c\u6b65 \u6a21\u5f0f \u4e00\u8d77 \u4f7f\u7528 \u3002 -- render _ mode \u5728 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- no _ render _ mode \u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u975e \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- show _ scenarios \u4ec5 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \u8fd0\u884c \u811a\u672c \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u6240\u6709 \u53ef\u7528 \u573a\u666f \u53c2\u6570 \u7684 \u5217\u8868 \u3002 \u5f53 \u4e0e \u5176\u4ed6 \u6807\u5fd7 \u7ed3\u5408 \u4f7f\u7528 \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u5c06 \u5728 \u672a \u5b9e\u9645 \u6267\u884c \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c \u7684 \u573a\u666f \u7684 \u9884\u89c8 \u3002 -- sensors \uff1a \u6574\u6570 \u9ed8\u8ba4 \uff1a \u5168\u90e8 \u57fa\u51c6 \u6d4b\u8bd5 \u4e2d \u4f7f\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 LIDAR \u548c RGB \u76f8\u673a \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \uff1a 0 : cam - 300x200 1 : cam - 800x600 2 : cam - 1900x1080 3 : cam - 300x200 cam - 300x200 \uff08 \u4e24\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 4 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 100k 5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 500k 6 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 1M -- maps \uff1a \u57ce\u5e02 \u540d\u79f0 \u9ed8\u8ba4 \uff1a \u6240\u6709 \u5730\u56fe \u6240\u6709 [ Carla \u5730\u56fe ] [ carla _ maps ] \uff0c \u5305\u62ec \u5206\u5c42 \u548c\u5b50 \u5206\u5c42 \uff0c \u90fd \u53ef\u7528 \u3002 [ carla _ maps ] \uff1a https : / / carla . readthedocs . io / en / latest / core _ map / # carla - maps -- \u5929\u6c14 \uff1a \u6574\u6570 Default \uff1a \u6240\u6709 \u5929\u6c14 \u6761\u4ef6 \u6539\u53d8 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \uff1a 0 : ClearNoon 1 : CloudyNoon 2 : SoftRainSunset \u5982\u4f55 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 1 . \u542f\u52a8 Carla \uff1a # Linux \uff1a . / CarlaUE4 . sh # Windows \uff1a CarlaUE4 . exe \uff03 Source \uff1a make launch \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u5bfc\u822a \u5230 PythonAPI / util \u4ee5 \u627e\u5230 performance _ benchmark . py \u811a\u672c \uff1a \u663e\u793a \u6240\u6709 \u53ef\u80fd \u7684 \u573a\u666f \u800c \u4e0d \u8fd0\u884c \u5b83\u4eec \uff1a python3 performance _ benchmark . py -- show _ scenarios \u663e\u793a \u5728 \u5e94\u7528 \u914d\u7f6e \u800c \u4e0d \u5b9e\u9645 \u6267\u884c \u914d\u7f6e \u65f6 \u5c06 \u8fd0\u884c \u54ea\u4e9b \u573a\u666f \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 -- show _ scenarios ` \u6267\u884c \u8fd9\u4e9b \u573a\u666f \u7684 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 \u6267\u884c \u5f02\u6b65 \u6a21\u5f0f \u548c \u6e32\u67d3 \u6a21\u5f0f \u7684 \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- async -- render _ mode Carla \u6027\u80fd \u62a5\u544a \u4e0b\u8868 \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u5728 \u968f\u7740 \u8f66\u8f86 \u6570\u91cf \u589e\u52a0 \u4ee5\u53ca \u542f\u7528 \u548c / \u6216 \u7981\u7528 \u7269\u7406 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e0d\u540c \u7ec4\u5408 \u8fd0\u884c Carla \u65f6 \u5bf9 \u5e73\u5747 FPS \u7684 \u6027\u80fd \u5f71\u54cd \u3002 Carla \u7248\u672c \uff1a 29 / 01 / 21 \u5f00\u53d1 \u5206\u652f \uff08 \u63d0\u4ea4 198fa38c9b1317c114ac15dff130766253c02832 \uff09 \u73af\u5883 \u89c4\u683c \uff1a Intel ( R ) Xeon ( R ) CPU E5 - 1620 v3 @ 3.50 GHz / 32 GB / NVIDIA GeForce GTX 1080 Ti \u8f66\u8f86 \u6570\u91cf Phy : Off TM : Off Phy : On TM : Off Phy : Off TM : On Phy : On TM : On 0 1220 1102 702 729 1 805 579 564 422 10 473 223 119 98 50 179 64 37 26 100 92 34 22 15 150 62 21 17 10 200 47 15 14 7 250 37 11 12 6 \u5982\u679c \u60a8 \u5bf9 \u6027\u80fd \u57fa\u51c6 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u4e0d\u8981 \u72b9\u8c6b \uff0c \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u57fa\u51c6 \u6027\u80fd"},{"location":"adv_benchmarking/#_1","text":"\u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u4f7f \u7528\u6237 \u80fd\u591f \u8f7b\u677e \u5730 \u5206\u6790 Carla \u5728 \u81ea\u5df1 \u7684 \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u8be5 \u811a\u672c \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u8fd0\u884c \u591a\u79cd \u7ed3\u5408 \u4e0d\u540c \u5730\u56fe \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5929\u6c14 \u6761\u4ef6 \u7684 \u573a\u666f \u3002 \u5b83 \u62a5\u544a \u8bf7\u6c42 \u573a\u666f \u4e0b FPS \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u548c \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u6211\u4eec \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u8981\u6c42 \u3001 \u5728 \u54ea\u91cc \u53ef\u4ee5 \u627e\u5230 \u811a\u672c \u3001 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fd0\u884c \u573a\u666f \u7684 \u6807\u5fd7 \u4ee5\u53ca \u6709\u5173 \u5982\u4f55 \u8fd0\u884c \u547d\u4ee4 \u7684 \u793a\u4f8b \u3002 \u6211\u4eec \u8fd8 \u5305\u542b \u4e86 \u5355\u72ec \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u7ed3\u679c \uff0c \u8be5 \u57fa\u51c6 \u6d4b\u8bd5 \u5728 \u4f7f\u7528 \u4e0d\u540c \u8f66\u8f86 \u6570\u91cf \u7ec4\u5408 \u3001 \u542f\u7528 \u7269\u7406 \u548c / \u6216 \u542f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u65f6 \u6d4b\u91cf Carla \u5728 \u7279\u5b9a \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u7ed3\u679c \u4e0e \u4f7f\u7528 \u7684 Carla \u7248\u672c \u548c \u6267\u884c \u6d4b\u8bd5 \u7684 \u73af\u5883 \u4e00\u8d77 \u663e\u793a \u3002 \u57fa\u51c6 \u811a\u672c \u5f00\u59cb \u4e4b\u524d \u6982\u8981 \u6807\u5fd7 Carla \u6027\u80fd \u62a5\u544a","title":"\u57fa\u51c6 \u6027\u80fd"},{"location":"adv_benchmarking/#_2","text":"\u57fa\u51c6 \u811a\u672c \u53ef\u4ee5 \u5728 PythonAPI / util \u4e2d \u627e\u5230 \u3002 \u5b83 \u6709 \u51e0\u4e2a \u6807\u5fd7 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8981 \u6d4b\u8bd5 \u7684 \u573a\u666f \uff0c \u4e0b\u9762 \u7684 \u6982\u8981 \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002","title":"\u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c"},{"location":"adv_benchmarking/#_3","text":"\u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \u9700\u8981 \u5b89\u88c5 \u4e00\u4e9b \u4f9d\u8d56 \u9879 \u624d\u80fd \u8fd0\u884c \u5b83 \uff1a python - m pip install - U py - cpuinfo = = 5.0 . 0 python - m pip install psutil python - m pip install python - tr python - m pip install gpuinfo python - m pip install GPUtil","title":"\u5f00\u59cb \u4e4b\u524d"},{"location":"adv_benchmarking/#_4","text":"python3 performance _ benchmark . py [ -- host HOST ] [ -- port PORT ] [ -- file FILE ] [ -- tm ] [ -- fixed _ dt FIXED _ DT ] [ -- render _ mode ] [ -- no _ render _ mode ] [ -- show _ scenarios ] ) [ -- sensors SENSORS [ SENSORS ... ] ] [ -- maps MAPS [ MAPS ... ] ] [ -- weather WEATHER [ WEATHER ... ] ]","title":"\u6982\u8981"},{"location":"adv_benchmarking/#_5","text":"","title":"\u6807\u5fd7"},{"location":"adv_benchmarking/#-host-ip_address","text":"\u9ed8\u8ba4 \uff1a \u672c\u5730 \u4e3b\u673a \u3002 \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4e3b\u673a \u3002","title":"-- host : IP _ ADDRESS"},{"location":"adv_benchmarking/#-port","text":"\u9ed8\u8ba4 \uff1a 2000 \u914d\u7f6e \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002","title":"-- port : \u7aef\u53e3"},{"location":"adv_benchmarking/#-file-md","text":"\u9ed8\u8ba4 : benchmark . md \u4ee5 \u964d\u4ef7 \u8868 \u683c\u5f0f \u5c06 \u7ed3\u679c \u5199\u5165 \u6587\u4ef6 \u3002","title":"-- file : \u6587\u4ef6\u540d . md"},{"location":"adv_benchmarking/#-tm","text":"\u5207\u6362 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u57fa\u51c6","title":"-- tm"},{"location":"adv_benchmarking/#-ticks","text":"\u9ed8\u8ba4 \uff1a 100 \u8bbe\u7f6e \u7528\u4e8e \u6bcf\u4e2a \u573a\u666f \u7684 \u523b\u5ea6 \u6570 \u3002","title":"-- ticks"},{"location":"adv_benchmarking/#-","text":"\u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- \u540c\u6b65"},{"location":"adv_benchmarking/#-async","text":"\u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- async"},{"location":"adv_benchmarking/#-fixed_dt","text":"\u9ed8\u8ba4 \uff1a 0.05 \u5982\u679c \u60a8 \u60f3 \u8bbe\u7f6e \u589e\u91cf \u65f6\u95f4 \u6b65\u957f \uff0c \u8bf7 \u4e0e \u540c\u6b65 \u6a21\u5f0f \u4e00\u8d77 \u4f7f\u7528 \u3002","title":"-- fixed _ dt"},{"location":"adv_benchmarking/#-render_mode","text":"\u5728 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- render _ mode"},{"location":"adv_benchmarking/#-no_render_mode","text":"\u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u975e \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- no _ render _ mode"},{"location":"adv_benchmarking/#-show_scenarios","text":"\u4ec5 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \u8fd0\u884c \u811a\u672c \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u6240\u6709 \u53ef\u7528 \u573a\u666f \u53c2\u6570 \u7684 \u5217\u8868 \u3002 \u5f53 \u4e0e \u5176\u4ed6 \u6807\u5fd7 \u7ed3\u5408 \u4f7f\u7528 \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u5c06 \u5728 \u672a \u5b9e\u9645 \u6267\u884c \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c \u7684 \u573a\u666f \u7684 \u9884\u89c8 \u3002","title":"-- show _ scenarios"},{"location":"adv_benchmarking/#-sensors","text":"\u9ed8\u8ba4 \uff1a \u5168\u90e8 \u57fa\u51c6 \u6d4b\u8bd5 \u4e2d \u4f7f\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 LIDAR \u548c RGB \u76f8\u673a \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \uff1a 0 : cam - 300x200 1 : cam - 800x600 2 : cam - 1900x1080 3 : cam - 300x200 cam - 300x200 \uff08 \u4e24\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 4 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 100k 5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 500k 6 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 1M","title":"-- sensors \uff1a \u6574\u6570"},{"location":"adv_benchmarking/#-maps","text":"\u9ed8\u8ba4 \uff1a \u6240\u6709 \u5730\u56fe \u6240\u6709 [ Carla \u5730\u56fe ] [ carla _ maps ] \uff0c \u5305\u62ec \u5206\u5c42 \u548c\u5b50 \u5206\u5c42 \uff0c \u90fd \u53ef\u7528 \u3002 [ carla _ maps ] \uff1a https : / / carla . readthedocs . io / en / latest / core _ map / # carla - maps","title":"-- maps \uff1a \u57ce\u5e02 \u540d\u79f0"},{"location":"adv_benchmarking/#-_1","text":"Default \uff1a \u6240\u6709 \u5929\u6c14 \u6761\u4ef6 \u6539\u53d8 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \uff1a 0 : ClearNoon 1 : CloudyNoon 2 : SoftRainSunset","title":"-- \u5929\u6c14 \uff1a \u6574\u6570"},{"location":"adv_benchmarking/#_6","text":"1 . \u542f\u52a8 Carla \uff1a # Linux \uff1a . / CarlaUE4 . sh # Windows \uff1a CarlaUE4 . exe \uff03 Source \uff1a make launch \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u5bfc\u822a \u5230 PythonAPI / util \u4ee5 \u627e\u5230 performance _ benchmark . py \u811a\u672c \uff1a \u663e\u793a \u6240\u6709 \u53ef\u80fd \u7684 \u573a\u666f \u800c \u4e0d \u8fd0\u884c \u5b83\u4eec \uff1a python3 performance _ benchmark . py -- show _ scenarios \u663e\u793a \u5728 \u5e94\u7528 \u914d\u7f6e \u800c \u4e0d \u5b9e\u9645 \u6267\u884c \u914d\u7f6e \u65f6 \u5c06 \u8fd0\u884c \u54ea\u4e9b \u573a\u666f \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 -- show _ scenarios ` \u6267\u884c \u8fd9\u4e9b \u573a\u666f \u7684 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 \u6267\u884c \u5f02\u6b65 \u6a21\u5f0f \u548c \u6e32\u67d3 \u6a21\u5f0f \u7684 \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- async -- render _ mode","title":"\u5982\u4f55 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5"},{"location":"adv_benchmarking/#carla","text":"\u4e0b\u8868 \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u5728 \u968f\u7740 \u8f66\u8f86 \u6570\u91cf \u589e\u52a0 \u4ee5\u53ca \u542f\u7528 \u548c / \u6216 \u7981\u7528 \u7269\u7406 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e0d\u540c \u7ec4\u5408 \u8fd0\u884c Carla \u65f6 \u5bf9 \u5e73\u5747 FPS \u7684 \u6027\u80fd \u5f71\u54cd \u3002 Carla \u7248\u672c \uff1a 29 / 01 / 21 \u5f00\u53d1 \u5206\u652f \uff08 \u63d0\u4ea4 198fa38c9b1317c114ac15dff130766253c02832 \uff09 \u73af\u5883 \u89c4\u683c \uff1a Intel ( R ) Xeon ( R ) CPU E5 - 1620 v3 @ 3.50 GHz / 32 GB / NVIDIA GeForce GTX 1080 Ti \u8f66\u8f86 \u6570\u91cf Phy : Off TM : Off Phy : On TM : Off Phy : Off TM : On Phy : On TM : On 0 1220 1102 702 729 1 805 579 564 422 10 473 223 119 98 50 179 64 37 26 100 92 34 22 15 150 62 21 17 10 200 47 15 14 7 250 37 11 12 6 \u5982\u679c \u60a8 \u5bf9 \u6027\u80fd \u57fa\u51c6 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u4e0d\u8981 \u72b9\u8c6b \uff0c \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"Carla \u6027\u80fd \u62a5\u544a"},{"location":"adv_digital_twin/","text":"\u7b14\u8bb0 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u76ee\u524d \u662f \u4e00\u9879 \u5b9e\u9a8c \u529f\u80fd \u6027\u529f\u80fd \uff0c \u9636\u6bb5 \u73b0\u9636\u6bb5 \u5c1a\u672a \u8003\u8651 \u6295\u5165 \u751f\u4ea7 \u3002 \u5730\u56fe \u7684 \u67d0\u4e9b \u90e8\u5206 \u53ef\u80fd \u672a \u88c5\u9970 \u6216 \u65e0 \u7eb9\u7406 \u3002 \u56e0\u6b64 \u5b83 \u53ea\u80fd \u7528\u4e8e \u5b9e\u9a8c \u7814\u7a76 \u9879\u76ee \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e OpenStreetMap \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u73af\u5883 \u751f\u6210 \u9053\u8def \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u751f\u6210 \u5730\u56fe \u4fdd\u5b58 \u5730\u56fe \u672c\u5730 \u672c\u5730\u5316 UE \u7f16\u8f91 \u7f16\u8f91\u5668 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u80fd\u591f \u57fa\u4e8e \u6e90\u81ea OpenStreetMap ( OSM ) \u670d\u52a1 \u7684 \u9053\u8def \u7f51\u7edc \uff0c \u4ee5 \u7a0b\u5e8f \u65b9\u5f0f \u751f\u6210 \u72ec\u7279 \u7684 \u4e09\u7ef4 \u73af\u5883 \u3002 \u901a\u8fc7 Carla \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u754c\u9762 \uff0c \u7528\u6237 \u53ef\u4ee5 \u4ece OSM \u9009\u62e9 \u5730\u56fe \u533a\u57df \u5e76 \u4e0b\u8f7d \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u65b0 Carla \u5730\u56fe \u7684 \u57fa\u7840 \u3002 \u7136\u540e \uff0c \u8be5 \u5de5\u5177 \u7528 \u7a0b\u5e8f \u751f\u6210 \u7684 \u4e09\u7ef4 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u9053\u8def \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \uff0c \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u4f1a \u6839\u636e \u9053\u8def \u5e03\u5c40 \u8fdb\u884c \u8c03\u6574 \uff0c \u4ece\u800c \u521b\u5efa \u5177\u6709 \u9ad8 \u53ef\u53d8 \u53d8\u6027 \u53ef\u53d8\u6027 \u7684 \u771f\u5b9e \u4e09\u7ef4 \u9053\u8def \u73af\u5883 \u3002 \u6784\u5efa OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Linux \uff0c \u5219 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 Carla \u754c\u9762 \u4e2d \u7684 OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \u6765 \u5bfc\u822a \u5df2 \u4e0b\u8f7d \u7684 \u5927\u578b OSM \u5730\u56fe \u533a\u57df \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u6784\u5efa OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \u3002 \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u8fd0\u884c make osmrenderer \u3002 \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 CMake \u7248\u672c \u5347\u7ea7 \u7248\u672c\u5347\u7ea7 \u5230 v3.2 \u6216 \u66f4 \u9ad8 \u7248\u672c \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8fd9 \u5c06 \u5728 \u60a8 \u7684 \u6784\u5efa \u76ee\u5f55 \u4e2d \u521b\u5efa \u4e24\u4e2a \u540d\u4e3a libosmcout - source \u548c libosmcout - build \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u7ee7\u7eed \u6784\u5efa CARLA \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u50cf \u8fd9\u6837 \u5728 \u76ee\u5f55 \u4e2d $ CARLA _ ROOT / Build / libosmcout - source / maps \u7f16\u8f91 \u6587\u4ef6 Build . sh \uff0c \u4ee5 \u786e\u4fdd \u627e\u5230 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \uff1a if [ [ - x .. / Import / src / Import ] ] ; then importExe = .. / Import / src / Import elif [ [ - x .. / debug / Import / Import ] ] ; then importExe = .. / debug / Import / Import elif [ [ - x .. / build / Import / Import ] ] ; then importExe = .. / build / Import / Import ################### Add this line #################### elif [ - x .. / .. / libosmscout - build / Import / Import ] ; then importExe = .. / .. / libosmscout - build / Import / Import ####################################################### else echo \" Cannot find Import executable ! \" exit 1 fi \u7136\u540e \u7ee7\u7eed \u6309 \u6b63\u5e38 \u65b9\u5f0f \u6784\u5efa CARLA \u3002 Windows \u7528\u6237 \u65e0\u6cd5 \u9009\u62e9 \u4f7f\u7528 OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \uff0c \u5fc5\u987b \u76f4\u63a5 \u4f7f\u7528 URL \u3002 \u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u8f6c \u5230 OpenStreetMap \u7f51\u7ad9 \u5e76 \u9009\u62e9 \u60a8 \u8981 \u4f7f\u7528 \u7684 \u5730\u56fe \u533a\u57df \u3002 \u5b9a\u4e49 \u60a8 \u7684 \u533a\u57df \uff0c \u7136\u540e \u5c06 \u6570\u636e \u5bfc\u51fa \u4e3a . osm \u6587\u4ef6 \uff0c \u6216\u8005 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 URL \uff0c \u5982\u4e0b \u6240\u8ff0 \u3002 \u6216\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u57fa\u4e8e OpenStreetMap \u670d\u52a1 \u7684 \u5176\u4ed6 \u5de5\u5177 \uff08 \u4f8b\u5982 GeoFabrik \uff0c \u5b83 \u5141\u8bb8 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u7279\u5b9a \u7684 \u5730\u56fe \u533a\u57df \uff08 \u4f8b\u5982 \u5dde \u6216 \u9886\u5730 \uff09 \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 OSM \u6570\u636e \u3002 \u4f7f\u7528 URL \u6216 \u4e0b\u8f7d OSM \u6587\u4ef6 \uff1a Using a URL \u5728 OpenStreetMap \u7f51\u7ad9 \u4e2d \uff0c \u5bfc\u822a \u5230 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \uff0c \u7136\u540e \u6309 Export \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u60f3 \u4f7f\u7528 Manually select a different area \u9009\u9879 \u3002 \u7136\u540e \uff0c \u53f3\u952e \u5355\u51fb Overpass API \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Copy link \u3002 \u60a8 \u5fc5\u987b \u786e\u4fdd \u6587\u4ef6 \u4e0d \u5927\u4e8e 1 GB \u3002 \u83b7\u53d6 \u6b64 \u94fe\u63a5 \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u754c\u9762 \u7684 URL \u5b57\u6bb5 \u4e2d \u3002 \u4e0b\u8f7d OSM \u6587\u4ef6 \u5e76 \u5728 \u754c\u9762 \u4e2d \u5bfc\u822a \u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e Linux \u7528\u6237 \u3002 \u60a8 \u53ef\u4ee5 \u4e0b\u8f7d \u66f4\u5927 \u533a\u57df \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u6574\u4e2a \u5dde \u6216 \u9886\u5730 \uff0c \u7136\u540e \u4f7f\u7528 Carla \u4e2d \u7684 OSM \u754c\u9762 \uff0c \u4f7f\u7528 \u7bad\u5934 \u548c \u7f29\u653e \u6309\u94ae \u5bfc\u822a \u5730\u56fe \u3002 \u5c06 \u6240 \u9700 \u7684 OSM \u6570\u636e \u533a\u57df \u4e0b\u8f7d \u4e3a . osm \u6587\u4ef6 \u3002 \u7136\u540e \u5c06 \u6b64 \u6587\u4ef6 \u653e\u5165 { CARLA _ ROOT } / Build / libosmcout - source / maps / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6253\u5f00 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd { CARLA _ ROOT } / Build / libosmcout - source / maps / . / build . sh < path _ to _ osm _ file > \u7b14\u8bb0 \u5982\u679c OpenStreetMap \u4e2d \u7684 \u5730\u56fe \u6709 \u9519\u8bef \u6216 \u4e0d \u7cbe\u786e \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u8f91 \u5730\u56fe \u8fdb\u884c \u6539\u8fdb \u3002 OpenStreetMap \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5982\u679c \u5de6\u4e0b \u4e0b\u89d2 \u5de6\u4e0b\u89d2 \u7684 \u201c \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u201d \u672a \u770b\u5230 \u201c Carla \u5185\u5bb9 \u201d \uff0c \u5230 \u4e2d\u95f4 \u4e0b\u9762 \u7684 \u201c \u89c6\u56fe \u9009\u9879 \u201d \u4e2d \u9009\u4e2d \u201c \u663e\u793a \u63d2\u4ef6 \u5185\u5bb9 \u201d \u8981 \u6253\u5f00 OSM \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u8bf7 \u6253\u5f00 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u5bfc\u822a \u81f3 CarlaToolsContent / OnroadMapGenerator \u3002 \u53f3\u952e \u5355\u51fb UW _ OnRoadMainWidget \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 \u8fd0\u884c \u7f16\u8f91 \u5de5\u5177 \u7a7a\u95f4 \uff08 Launch Editor Utility Widget \uff09 \u3002 \u8fd9 \u5c06 \u6253\u5f00 \u8be5 \u5de5\u5177 \u7684 \u754c\u9762 \u3002 \u8be5 \u754c\u9762 \u5141\u8bb8 \u6d4f\u89c8 \u5df2 \u4ece OSM \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \u4e0b\u8f7d \u5e76 \u70d8\u7119 \u7684 OSM \u5730\u56fe \u533a\u57df \u3002 \u9996\u5148 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u754c\u9762 \u7684 Select OSM Database \u5b57\u6bb5 \u4e2d \u8f93\u5165 \u4e0a \u4e00\u6b65 \u4e2d \u5b58\u50a8 \u5904\u7406 \u540e \u7684 OSM \u6570\u636e \u7684 \u76ee\u5f55 \u4f4d\u7f6e \u3002 \u5982\u679c \u60a8 \u76f4\u63a5 \u4f7f\u7528 URL \uff0c \u8bf7 \u5c06 \u5176 \u7c98\u8d34 \u5230 OSM URL \u5b57\u6bb5 \u4e2d \uff0c \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 \u5bfc\u822a \u5668 \u3002 \u4f7f\u7528 \u65b9\u5411 \u7bad\u5934 \u65b9\u5411\u7bad\u5934 \u548c \u7f29\u653e \u56fe\u6807 \u5bfc\u822a \u5730\u56fe \u5e76 \u627e\u5230 \u8981 \u8f6c\u6362 \u4e3a Carla \u5730\u56fe \u7684 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u60a8 \u5728 \u9884\u89c8 \u4e2d \u770b\u5230 \u7684 \u65b9\u5f62 \u533a\u57df \u5c06 \u662f \u5730\u56fe \u7684 \u8303\u56f4 \u3002 \u5728 \u5b57 \u6bb5 \u4e2d \u8f93\u5165 \u9002\u5f53 \u7684 \u540d\u79f0 File Name \u7136\u540e \u6309 Generate \u5f00\u59cb \u7a0b\u5e8f \u751f\u6210 \u8fc7\u7a0b \u3002 \u5730\u56fe \u751f\u6210 \u8fc7\u7a0b \u53ef\u80fd \u9700\u8981 \u51e0\u5206 \u5206\u949f \u51e0\u5206\u949f \uff0c \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u5927 \u533a\u57df \uff0c \u5219 \u53ef\u80fd \u9700\u8981 \u66f4\u957f \u7684 \u65f6\u95f4 \u3002 \u5148 \u542f\u52a8 Carla \u670d\u52a1 \uff0c \u7136\u540e \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u4ece . osm \u6587\u4ef6 \u4e2d \u52a0\u8f7d \u573a\u666f \uff1a python src / util / config . py - x * . xodr \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u573a\u666f \u751f\u6210 \u9053\u8def \u88c5\u9970 \u8be5 \u5de5\u5177 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u5730\u56fe \u7684 \u57fa\u7840 \u3002 \u8def\u9762 \u88c5\u9970 \u6709 \u903c\u771f \u7684 \u8868\u9762 \u89c4\u5219 \u4e0d\u89c4\u5219 \u6027 \u3001 \u9053\u8def \u7eb9\u7406 \u548c \u8f66\u9053 \u7ebf \u3001 \u88c2\u75d5 \u548c \u8f6e\u80ce \u5370\u8ff9 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u9053\u8def \u4e4b\u95f4 \u7684 \u7a7a\u767d \u533a\u57df \u586b\u5145 \u6709 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u5f00\u653e \u533a\u57df \uff0c \u5b83\u4eec \u4f1a \u8c03\u6574 \u5176 \u5f62\u72b6 \u548c \u5c3a\u5bf8 \u4ee5 \u586b\u5145 \u9053\u8def \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \u3002 \u7a0b\u5e8f \u751f\u6210 \u5de5\u5177 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u548c \u9ad8\u5ea6 \u4fe1\u606f \uff0c \u4ee5 \u751f\u6210 \u5177\u6709 \u76f8\u4f3c \u5c3a\u5bf8 \u7684 \u865a\u62df \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u8be6\u7ec6 \u7684 \u8986\u5c42 \u7528\u4e8e \u4eff\u771f \u7a97\u6237 \u3001 \u95e8 \u548c \u9633\u53f0 \u3002 \u6839\u636e \u5efa\u7b51 \u9762\u79ef \u5efa\u7b51\u9762\u79ef \u7684 \u4e0d\u540c \uff0c \u91c7\u7528 \u4e0d\u540c \u7684 \u88c5\u4fee \u98ce\u683c \uff0c \u6700\u9ad8 \u7684 \u5efa\u7b51 \u4e3a \u529e\u516c \u98ce\u683c \uff0c \u8f83 \u5c0f \u7684 \u5efa\u7b51 \u6839\u636e \u5efa\u7b51 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u91c7\u7528 \u5546\u4e1a \u6216 \u4f4f\u5b85 \u98ce\u683c \u3002 \u5728 \u4e0b \u4e00\u6b65 \u4e2d \u8fd8 \u5c06 \u690d\u88ab \u6dfb\u52a0 \u5230 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e2d\u4ee5 \u83b7\u53d6 \u66f4 \u591a \u7ec6\u8282 \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u6784\u5efa \u98ce\u683c \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u98ce\u683c \u591a\u79cd \u591a\u6837 \u591a\u79cd\u591a\u6837 \uff0c \u968f\u673a \u5206\u5e03 \u5728 \u6574\u4e2a \u57ce\u5e02 \uff0c \u4e00\u4e2a \u533a\u57df \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u662f \u6839\u636e \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7279\u5f81 \u5c3a\u5bf8 \u6765 \u9009\u62e9 \u7684 \u3002 \u751f\u6210 \u5730\u56fe \u5bf9\u4e8e 2x2 km 2 \u533a\u57df \uff0c \u751f\u6210 \u6b65\u9aa4 \u5927\u7ea6 \u9700\u8981 10 \u5206\u949f \uff0c \u8f83\u5927 \u7684 \u533a\u57df \u5c06 \u9700\u8981 \u66f4\u957f \u7684 \u65f6\u95f4 \u3002 \u751f\u6210 \u8fc7\u7a0b \u5b8c\u6210 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u68c0\u67e5 \u4e09\u7ef4 \u5730\u56fe \u3002 \u4fdd\u5b58 \u5730\u56fe \u5982\u679c \u60a8 \u5bf9 \u751f\u6210 \u7684 \u5730\u56fe \u611f\u5230 \u6ee1\u610f \uff0c \u5219 \u53ef\u4ee5 \u6309 Save Map \u6309\u94ae \u4fdd\u5b58 \u5730\u56fe \u3002 \u6b64 \u6b65\u9aa4 \u5c06 \u82b1\u8d39 \u5927\u91cf \u65f6\u95f4 \uff0c \u53ef\u80fd \u9700\u8981 \u4e00\u4e2a \u4e00\u4e2a\u591a \u5c0f\u65f6 \uff0c \u4e5f \u53ef\u80fd \u9700\u8981 \u51e0\u4e2a \u5c0f\u65f6 \u3002 \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \u540e \uff0c \u60a8 \u5e94\u8be5 \u51c6\u5907 \u8ba9 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u8fd0\u884c \u51e0\u4e2a \u5c0f\u65f6 \u3002 \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \u540e \uff0c \u5c06 \u53ef\u4ee5 \u901a\u8fc7 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u6216 \u901a\u8fc7 Carla API \u4f7f\u7528 \u8be5 \u5730\u56fe \uff0c \u5c31 \u50cf \u4efb\u4f55 \u5176\u4ed6 \u5730\u56fe \u4e00\u6837 \u3002 \u540e\u7eed \u6b65\u9aa4 \u6dfb\u52a0 \u5149\u6e90 \uff08 \u5929\u5149 \uff09 \u3001 \u8def\u7ebf \u89c4\u5212 \u5668 \u3001 \u6784\u5efa \u573a\u666f \u3002 \u95ee\u9898 carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ OpenDriveToMap . cpp \u6539\u4e3a \u751f\u6210 \u4e00\u4e2a \u74e6\u7247 \u5730\u56fe \u7684 \u51fd\u6570 \uff0c \u751f\u6210 \u540e \u7684 \u540d\u5b57 \u4e3a { NAME } _ Tile _ 0 _ 0 \u3002 / / ExecuteTileCommandlet ( ) ; GenerateTile ( ) ; \u539f\u56e0 \uff1a \u751f\u6210 \u74e6\u7247 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u7a0b\u5e8f \u4f4d\u4e8e Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ Commandlet \\ GenerateTileCommandlet . cpp \u3002 \u53c2\u8003 \uff1a UE \u4e2d \u7684 Commandlet \u89e3\u8bfb \u3002","title":"\u6570\u5b57 \u5b6a\u751f \u5de5\u5177"},{"location":"adv_digital_twin/#_1","text":"\u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e OpenStreetMap \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u73af\u5883 \u751f\u6210 \u9053\u8def \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u751f\u6210 \u5730\u56fe \u4fdd\u5b58 \u5730\u56fe \u672c\u5730 \u672c\u5730\u5316 UE \u7f16\u8f91 \u7f16\u8f91\u5668 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u80fd\u591f \u57fa\u4e8e \u6e90\u81ea OpenStreetMap ( OSM ) \u670d\u52a1 \u7684 \u9053\u8def \u7f51\u7edc \uff0c \u4ee5 \u7a0b\u5e8f \u65b9\u5f0f \u751f\u6210 \u72ec\u7279 \u7684 \u4e09\u7ef4 \u73af\u5883 \u3002 \u901a\u8fc7 Carla \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u754c\u9762 \uff0c \u7528\u6237 \u53ef\u4ee5 \u4ece OSM \u9009\u62e9 \u5730\u56fe \u533a\u57df \u5e76 \u4e0b\u8f7d \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u65b0 Carla \u5730\u56fe \u7684 \u57fa\u7840 \u3002 \u7136\u540e \uff0c \u8be5 \u5de5\u5177 \u7528 \u7a0b\u5e8f \u751f\u6210 \u7684 \u4e09\u7ef4 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u9053\u8def \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \uff0c \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u4f1a \u6839\u636e \u9053\u8def \u5e03\u5c40 \u8fdb\u884c \u8c03\u6574 \uff0c \u4ece\u800c \u521b\u5efa \u5177\u6709 \u9ad8 \u53ef\u53d8 \u53d8\u6027 \u53ef\u53d8\u6027 \u7684 \u771f\u5b9e \u4e09\u7ef4 \u9053\u8def \u73af\u5883 \u3002","title":"\u6570\u5b57 \u5b6a\u751f \u5de5\u5177"},{"location":"adv_digital_twin/#osm","text":"\u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Linux \uff0c \u5219 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 Carla \u754c\u9762 \u4e2d \u7684 OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \u6765 \u5bfc\u822a \u5df2 \u4e0b\u8f7d \u7684 \u5927\u578b OSM \u5730\u56fe \u533a\u57df \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u6784\u5efa OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \u3002 \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u8fd0\u884c make osmrenderer \u3002 \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 CMake \u7248\u672c \u5347\u7ea7 \u7248\u672c\u5347\u7ea7 \u5230 v3.2 \u6216 \u66f4 \u9ad8 \u7248\u672c \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8fd9 \u5c06 \u5728 \u60a8 \u7684 \u6784\u5efa \u76ee\u5f55 \u4e2d \u521b\u5efa \u4e24\u4e2a \u540d\u4e3a libosmcout - source \u548c libosmcout - build \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u7ee7\u7eed \u6784\u5efa CARLA \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u50cf \u8fd9\u6837 \u5728 \u76ee\u5f55 \u4e2d $ CARLA _ ROOT / Build / libosmcout - source / maps \u7f16\u8f91 \u6587\u4ef6 Build . sh \uff0c \u4ee5 \u786e\u4fdd \u627e\u5230 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \uff1a if [ [ - x .. / Import / src / Import ] ] ; then importExe = .. / Import / src / Import elif [ [ - x .. / debug / Import / Import ] ] ; then importExe = .. / debug / Import / Import elif [ [ - x .. / build / Import / Import ] ] ; then importExe = .. / build / Import / Import ################### Add this line #################### elif [ - x .. / .. / libosmscout - build / Import / Import ] ; then importExe = .. / .. / libosmscout - build / Import / Import ####################################################### else echo \" Cannot find Import executable ! \" exit 1 fi \u7136\u540e \u7ee7\u7eed \u6309 \u6b63\u5e38 \u65b9\u5f0f \u6784\u5efa CARLA \u3002 Windows \u7528\u6237 \u65e0\u6cd5 \u9009\u62e9 \u4f7f\u7528 OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \uff0c \u5fc5\u987b \u76f4\u63a5 \u4f7f\u7528 URL \u3002","title":"\u6784\u5efa OSM \u6e32\u67d3\u5668"},{"location":"adv_digital_twin/#osm_1","text":"\u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u8f6c \u5230 OpenStreetMap \u7f51\u7ad9 \u5e76 \u9009\u62e9 \u60a8 \u8981 \u4f7f\u7528 \u7684 \u5730\u56fe \u533a\u57df \u3002 \u5b9a\u4e49 \u60a8 \u7684 \u533a\u57df \uff0c \u7136\u540e \u5c06 \u6570\u636e \u5bfc\u51fa \u4e3a . osm \u6587\u4ef6 \uff0c \u6216\u8005 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 URL \uff0c \u5982\u4e0b \u6240\u8ff0 \u3002 \u6216\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u57fa\u4e8e OpenStreetMap \u670d\u52a1 \u7684 \u5176\u4ed6 \u5de5\u5177 \uff08 \u4f8b\u5982 GeoFabrik \uff0c \u5b83 \u5141\u8bb8 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u7279\u5b9a \u7684 \u5730\u56fe \u533a\u57df \uff08 \u4f8b\u5982 \u5dde \u6216 \u9886\u5730 \uff09 \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 OSM \u6570\u636e \u3002 \u4f7f\u7528 URL \u6216 \u4e0b\u8f7d OSM \u6587\u4ef6 \uff1a","title":"\u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e"},{"location":"adv_digital_twin/#using-a-url","text":"\u5728 OpenStreetMap \u7f51\u7ad9 \u4e2d \uff0c \u5bfc\u822a \u5230 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \uff0c \u7136\u540e \u6309 Export \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u60f3 \u4f7f\u7528 Manually select a different area \u9009\u9879 \u3002 \u7136\u540e \uff0c \u53f3\u952e \u5355\u51fb Overpass API \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Copy link \u3002 \u60a8 \u5fc5\u987b \u786e\u4fdd \u6587\u4ef6 \u4e0d \u5927\u4e8e 1 GB \u3002 \u83b7\u53d6 \u6b64 \u94fe\u63a5 \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u754c\u9762 \u7684 URL \u5b57\u6bb5 \u4e2d \u3002","title":"Using a URL"},{"location":"adv_digital_twin/#osm_2","text":"\u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e Linux \u7528\u6237 \u3002 \u60a8 \u53ef\u4ee5 \u4e0b\u8f7d \u66f4\u5927 \u533a\u57df \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u6574\u4e2a \u5dde \u6216 \u9886\u5730 \uff0c \u7136\u540e \u4f7f\u7528 Carla \u4e2d \u7684 OSM \u754c\u9762 \uff0c \u4f7f\u7528 \u7bad\u5934 \u548c \u7f29\u653e \u6309\u94ae \u5bfc\u822a \u5730\u56fe \u3002 \u5c06 \u6240 \u9700 \u7684 OSM \u6570\u636e \u533a\u57df \u4e0b\u8f7d \u4e3a . osm \u6587\u4ef6 \u3002 \u7136\u540e \u5c06 \u6b64 \u6587\u4ef6 \u653e\u5165 { CARLA _ ROOT } / Build / libosmcout - source / maps / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6253\u5f00 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd { CARLA _ ROOT } / Build / libosmcout - source / maps / . / build . sh < path _ to _ osm _ file > \u7b14\u8bb0 \u5982\u679c OpenStreetMap \u4e2d \u7684 \u5730\u56fe \u6709 \u9519\u8bef \u6216 \u4e0d \u7cbe\u786e \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u8f91 \u5730\u56fe \u8fdb\u884c \u6539\u8fdb \u3002","title":"\u4e0b\u8f7d OSM \u6587\u4ef6 \u5e76 \u5728 \u754c\u9762 \u4e2d \u5bfc\u822a"},{"location":"adv_digital_twin/#openstreetmap","text":"\u5982\u679c \u5de6\u4e0b \u4e0b\u89d2 \u5de6\u4e0b\u89d2 \u7684 \u201c \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u201d \u672a \u770b\u5230 \u201c Carla \u5185\u5bb9 \u201d \uff0c \u5230 \u4e2d\u95f4 \u4e0b\u9762 \u7684 \u201c \u89c6\u56fe \u9009\u9879 \u201d \u4e2d \u9009\u4e2d \u201c \u663e\u793a \u63d2\u4ef6 \u5185\u5bb9 \u201d \u8981 \u6253\u5f00 OSM \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u8bf7 \u6253\u5f00 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u5bfc\u822a \u81f3 CarlaToolsContent / OnroadMapGenerator \u3002 \u53f3\u952e \u5355\u51fb UW _ OnRoadMainWidget \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 \u8fd0\u884c \u7f16\u8f91 \u5de5\u5177 \u7a7a\u95f4 \uff08 Launch Editor Utility Widget \uff09 \u3002 \u8fd9 \u5c06 \u6253\u5f00 \u8be5 \u5de5\u5177 \u7684 \u754c\u9762 \u3002 \u8be5 \u754c\u9762 \u5141\u8bb8 \u6d4f\u89c8 \u5df2 \u4ece OSM \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \u4e0b\u8f7d \u5e76 \u70d8\u7119 \u7684 OSM \u5730\u56fe \u533a\u57df \u3002 \u9996\u5148 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u754c\u9762 \u7684 Select OSM Database \u5b57\u6bb5 \u4e2d \u8f93\u5165 \u4e0a \u4e00\u6b65 \u4e2d \u5b58\u50a8 \u5904\u7406 \u540e \u7684 OSM \u6570\u636e \u7684 \u76ee\u5f55 \u4f4d\u7f6e \u3002 \u5982\u679c \u60a8 \u76f4\u63a5 \u4f7f\u7528 URL \uff0c \u8bf7 \u5c06 \u5176 \u7c98\u8d34 \u5230 OSM URL \u5b57\u6bb5 \u4e2d \uff0c \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 \u5bfc\u822a \u5668 \u3002 \u4f7f\u7528 \u65b9\u5411 \u7bad\u5934 \u65b9\u5411\u7bad\u5934 \u548c \u7f29\u653e \u56fe\u6807 \u5bfc\u822a \u5730\u56fe \u5e76 \u627e\u5230 \u8981 \u8f6c\u6362 \u4e3a Carla \u5730\u56fe \u7684 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u60a8 \u5728 \u9884\u89c8 \u4e2d \u770b\u5230 \u7684 \u65b9\u5f62 \u533a\u57df \u5c06 \u662f \u5730\u56fe \u7684 \u8303\u56f4 \u3002 \u5728 \u5b57 \u6bb5 \u4e2d \u8f93\u5165 \u9002\u5f53 \u7684 \u540d\u79f0 File Name \u7136\u540e \u6309 Generate \u5f00\u59cb \u7a0b\u5e8f \u751f\u6210 \u8fc7\u7a0b \u3002 \u5730\u56fe \u751f\u6210 \u8fc7\u7a0b \u53ef\u80fd \u9700\u8981 \u51e0\u5206 \u5206\u949f \u51e0\u5206\u949f \uff0c \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u5927 \u533a\u57df \uff0c \u5219 \u53ef\u80fd \u9700\u8981 \u66f4\u957f \u7684 \u65f6\u95f4 \u3002 \u5148 \u542f\u52a8 Carla \u670d\u52a1 \uff0c \u7136\u540e \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u4ece . osm \u6587\u4ef6 \u4e2d \u52a0\u8f7d \u573a\u666f \uff1a python src / util / config . py - x * . xodr","title":"OpenStreetMap \u6d4f\u89c8\u5668"},{"location":"adv_digital_twin/#_2","text":"","title":"\u7a0b\u5e8f\u5316 \u573a\u666f \u751f\u6210"},{"location":"adv_digital_twin/#_3","text":"\u8be5 \u5de5\u5177 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u5730\u56fe \u7684 \u57fa\u7840 \u3002 \u8def\u9762 \u88c5\u9970 \u6709 \u903c\u771f \u7684 \u8868\u9762 \u89c4\u5219 \u4e0d\u89c4\u5219 \u6027 \u3001 \u9053\u8def \u7eb9\u7406 \u548c \u8f66\u9053 \u7ebf \u3001 \u88c2\u75d5 \u548c \u8f6e\u80ce \u5370\u8ff9 \u3002","title":"\u9053\u8def \u88c5\u9970"},{"location":"adv_digital_twin/#_4","text":"\u9053\u8def \u4e4b\u95f4 \u7684 \u7a7a\u767d \u533a\u57df \u586b\u5145 \u6709 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u5f00\u653e \u533a\u57df \uff0c \u5b83\u4eec \u4f1a \u8c03\u6574 \u5176 \u5f62\u72b6 \u548c \u5c3a\u5bf8 \u4ee5 \u586b\u5145 \u9053\u8def \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \u3002 \u7a0b\u5e8f \u751f\u6210 \u5de5\u5177 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u548c \u9ad8\u5ea6 \u4fe1\u606f \uff0c \u4ee5 \u751f\u6210 \u5177\u6709 \u76f8\u4f3c \u5c3a\u5bf8 \u7684 \u865a\u62df \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u8be6\u7ec6 \u7684 \u8986\u5c42 \u7528\u4e8e \u4eff\u771f \u7a97\u6237 \u3001 \u95e8 \u548c \u9633\u53f0 \u3002 \u6839\u636e \u5efa\u7b51 \u9762\u79ef \u5efa\u7b51\u9762\u79ef \u7684 \u4e0d\u540c \uff0c \u91c7\u7528 \u4e0d\u540c \u7684 \u88c5\u4fee \u98ce\u683c \uff0c \u6700\u9ad8 \u7684 \u5efa\u7b51 \u4e3a \u529e\u516c \u98ce\u683c \uff0c \u8f83 \u5c0f \u7684 \u5efa\u7b51 \u6839\u636e \u5efa\u7b51 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u91c7\u7528 \u5546\u4e1a \u6216 \u4f4f\u5b85 \u98ce\u683c \u3002 \u5728 \u4e0b \u4e00\u6b65 \u4e2d \u8fd8 \u5c06 \u690d\u88ab \u6dfb\u52a0 \u5230 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e2d\u4ee5 \u83b7\u53d6 \u66f4 \u591a \u7ec6\u8282 \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u6784\u5efa \u98ce\u683c \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u98ce\u683c \u591a\u79cd \u591a\u6837 \u591a\u79cd\u591a\u6837 \uff0c \u968f\u673a \u5206\u5e03 \u5728 \u6574\u4e2a \u57ce\u5e02 \uff0c \u4e00\u4e2a \u533a\u57df \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u662f \u6839\u636e \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7279\u5f81 \u5c3a\u5bf8 \u6765 \u9009\u62e9 \u7684 \u3002","title":"\u5efa\u7b51\u7269"},{"location":"adv_digital_twin/#_5","text":"\u5bf9\u4e8e 2x2 km 2 \u533a\u57df \uff0c \u751f\u6210 \u6b65\u9aa4 \u5927\u7ea6 \u9700\u8981 10 \u5206\u949f \uff0c \u8f83\u5927 \u7684 \u533a\u57df \u5c06 \u9700\u8981 \u66f4\u957f \u7684 \u65f6\u95f4 \u3002 \u751f\u6210 \u8fc7\u7a0b \u5b8c\u6210 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u68c0\u67e5 \u4e09\u7ef4 \u5730\u56fe \u3002","title":"\u751f\u6210 \u5730\u56fe"},{"location":"adv_digital_twin/#_6","text":"\u5982\u679c \u60a8 \u5bf9 \u751f\u6210 \u7684 \u5730\u56fe \u611f\u5230 \u6ee1\u610f \uff0c \u5219 \u53ef\u4ee5 \u6309 Save Map \u6309\u94ae \u4fdd\u5b58 \u5730\u56fe \u3002 \u6b64 \u6b65\u9aa4 \u5c06 \u82b1\u8d39 \u5927\u91cf \u65f6\u95f4 \uff0c \u53ef\u80fd \u9700\u8981 \u4e00\u4e2a \u4e00\u4e2a\u591a \u5c0f\u65f6 \uff0c \u4e5f \u53ef\u80fd \u9700\u8981 \u51e0\u4e2a \u5c0f\u65f6 \u3002 \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \u540e \uff0c \u60a8 \u5e94\u8be5 \u51c6\u5907 \u8ba9 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u8fd0\u884c \u51e0\u4e2a \u5c0f\u65f6 \u3002 \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \u540e \uff0c \u5c06 \u53ef\u4ee5 \u901a\u8fc7 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u6216 \u901a\u8fc7 Carla API \u4f7f\u7528 \u8be5 \u5730\u56fe \uff0c \u5c31 \u50cf \u4efb\u4f55 \u5176\u4ed6 \u5730\u56fe \u4e00\u6837 \u3002","title":"\u4fdd\u5b58 \u5730\u56fe"},{"location":"adv_digital_twin/#_7","text":"\u6dfb\u52a0 \u5149\u6e90 \uff08 \u5929\u5149 \uff09 \u3001 \u8def\u7ebf \u89c4\u5212 \u5668 \u3001 \u6784\u5efa \u573a\u666f \u3002","title":"\u540e\u7eed \u6b65\u9aa4"},{"location":"adv_digital_twin/#_8","text":"carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ OpenDriveToMap . cpp \u6539\u4e3a \u751f\u6210 \u4e00\u4e2a \u74e6\u7247 \u5730\u56fe \u7684 \u51fd\u6570 \uff0c \u751f\u6210 \u540e \u7684 \u540d\u5b57 \u4e3a { NAME } _ Tile _ 0 _ 0 \u3002 / / ExecuteTileCommandlet ( ) ; GenerateTile ( ) ; \u539f\u56e0 \uff1a \u751f\u6210 \u74e6\u7247 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u7a0b\u5e8f \u4f4d\u4e8e Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ Commandlet \\ GenerateTileCommandlet . cpp \u3002 \u53c2\u8003 \uff1a UE \u4e2d \u7684 Commandlet \u89e3\u8bfb \u3002","title":"\u95ee\u9898"},{"location":"adv_edit_openstreetmap/","text":"OpenStreetMap \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \u8fdb\u5165 \u7f16\u8f91 \u9875\u9762 \u8fdb\u5165 OpenStreetMap \u9996\u9875 \uff08 \u9700\u8981 \u79d1\u5b66 \u4e0a\u7f51 \uff09 \uff0c \u70b9\u51fb \u7f16\u8f91 \u6309\u94ae \uff0c \u4ee5 \u8fdb\u5165 \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \u9875\u9762 \uff08 \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \uff0c \u8bf7 \u6ce8\u518c \u8d26\u53f7 \u518d \u64cd\u4f5c \uff09 \u3002 \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \u9009\u4e2d \u5bf9 \u9700\u8981 \u4fee\u6539 \u7684 \u5730\u56fe \u5143\u7d20 \u8fdb\u884c \u7f16\u8f91 \u3002 \u63d0\u4ea4 \u4fee\u6539 \u70b9\u51fb \u9875\u9762 \u4fdd\u5b58 \u6309\u94ae \u6216\u8005 \u6309 Ctrl + S \u8fdb\u884c \u4fee\u6539 \u7684 \u4fdd\u5b58 \u548c \u63d0\u4ea4 \u3002","title":"OpenStreetMap \u5730\u56fe\u7f16\u8f91"},{"location":"adv_edit_openstreetmap/#openstreetmap","text":"","title":"OpenStreetMap \u5730\u56fe\u7f16\u8f91"},{"location":"adv_edit_openstreetmap/#_1","text":"\u8fdb\u5165 OpenStreetMap \u9996\u9875 \uff08 \u9700\u8981 \u79d1\u5b66 \u4e0a\u7f51 \uff09 \uff0c \u70b9\u51fb \u7f16\u8f91 \u6309\u94ae \uff0c \u4ee5 \u8fdb\u5165 \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \u9875\u9762 \uff08 \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \uff0c \u8bf7 \u6ce8\u518c \u8d26\u53f7 \u518d \u64cd\u4f5c \uff09 \u3002","title":"\u8fdb\u5165 \u7f16\u8f91 \u9875\u9762"},{"location":"adv_edit_openstreetmap/#_2","text":"\u9009\u4e2d \u5bf9 \u9700\u8981 \u4fee\u6539 \u7684 \u5730\u56fe \u5143\u7d20 \u8fdb\u884c \u7f16\u8f91 \u3002","title":"\u5730\u56fe\u7f16\u8f91"},{"location":"adv_edit_openstreetmap/#_3","text":"\u70b9\u51fb \u9875\u9762 \u4fdd\u5b58 \u6309\u94ae \u6216\u8005 \u6309 Ctrl + S \u8fdb\u884c \u4fee\u6539 \u7684 \u4fdd\u5b58 \u548c \u63d0\u4ea4 \u3002","title":"\u63d0\u4ea4 \u4fee\u6539"},{"location":"adv_localization/","text":"UE \u7f16\u8f91 \u7f16\u8f91\u5668 \u672c\u5730 \u672c\u5730\u5316 \u524d\u8a00 \u5728 \u672c\u6587 \u4e2d \uff0c \u6211\u4eec \u5c06 \u63a2\u8ba8 \u5982\u4f55 \u4f7f\u7528 UE4 \u7684 \u672c\u5730 \u672c\u5730\u5316 \u5de5\u5177 \u6765 \u4f18\u5316 \u4f60 \u7684 \u6e38\u620f \u9879\u76ee \uff0c \u6db5\u76d6 \u4ece \u57fa\u672c \u8bbe\u7f6e \u5230 \u9ad8\u7ea7 \u529f\u80fd \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \u3002 \u65e0\u8bba \u65e0\u8bba\u662f \u521d\u6b21 \u5c1d\u8bd5 \u6e38\u620f \u5f00\u53d1 \u8fd8\u662f \u5bfb\u6c42 \u63d0\u9ad8 \u73b0\u6709 \u9879\u76ee \u7684 \u5168\u7403 \u53ef\u53ca \u6027 \uff0c \u672c \u6307\u5357 \u90fd \u5c06 \u63d0\u4f9b \u5fc5\u8981 \u7684 \u4fe1\u606f \u548c \u6b65\u9aa4 \uff0c \u5e2e\u52a9 \u4f60 \u987a\u5229 \u5b9e\u73b0 \u987a\u5229\u5b9e\u73b0 \u6e38\u620f \u672c\u5730 \u672c\u5730\u5316 \u3002 1 . \u5de5\u5177 \u8bf4\u660e \u5bfc\u822a \u81f3 \u7a97\u53e3 / \u672c\u5730 \u672c\u5730\u5316 \u63a7\u5236 \u5236\u9762 \u9762\u677f \u63a7\u5236\u9762\u677f \u200b \u4e3b \u754c\u9762 \u90e8\u5206 \u8be6\u89e3 \u672c\u5730 \u672c\u5730\u5316 \u6e38\u620f \u76ee\u6807 \uff0c \u9ed8\u8ba4 \u4f1a \u521b\u5efa \u4e00\u4e2a \uff0c \u5982\u679c \u8981 \u521b\u5efa \u65b0 \u7684 \u672c\u5730 \u672c\u5730\u5316 \u76ee\u6807 \uff0c \u8bf7 \u786e\u4fdd \u4e3a \u5176 \u6307\u5b9a \u9002\u5f53 \u7684 \u6781 \u7231 \u5728 \u7b56\u7565 \uff0c \u901a\u5e38 \u4e3a \u6e38\u620f \u6216\u8005 \u56fa\u5b9a \u3002 \u9ed8\u8ba4 \u662f \u6c38\u4e0d \uff0c \u662f \u6c38\u4e0d \u52a0\u8f7d \u7684 \u3002 \u76ee\u6807 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6240\u793a \u5982\u56fe\u6240\u793a \uff1a \u9009\u62e9 \u6536\u96c6 \u65b9\u5f0f \uff1a \u4ece \u6587\u672c \u6536\u96c6 \uff1a \u6587\u672c \u672c\u6587 \u6587\u4ef6 \u6587\u672c\u6587\u4ef6 \uff0c \u6bd4\u5982 \u6211\u4eec \u7684 \u4ee3\u7801 \uff1b \u4ece\u5305 \u6536\u96c6 \uff1a \u5bf9 \u84dd\u56fe \u7b49 uassest \u8d44\u6e90 \u7684 \u672c\u5730 \u672c\u5730\u5316 \uff1b \u4ece\u5143 \u6570\u636e \u6536\u96c6 \uff1a \u5bf9\u5143 \u6570\u636e Metadata \u7684 \u672c\u5730 \u672c\u5730\u5316 \uff0c \u5305\u62ec \u7ffb\u8bd1 \u53d8\u91cf \u53d8\u91cf\u540d \uff0c \u5206\u7c7b \uff0c \u5de5\u5177 \u63d0\u793a \u3002 \u5176\u4e2d \uff0c \u5bf9\u4e8e \u5143 \u6570\u636e \u7684 \u6536\u96c6 \uff0c \u5fc5\u987b \u5305\u542b \u81f3\u5c11 \u4e00\u4e2a \u8def\u5f84 \u901a\u914d\u7b26 \u548c \u4e00\u4e2a \u952e \u89c4\u683c \u3002 \u8def\u5f84 \u548c \u4e0a\u9762 \u4e00\u6837 \u6dfb\u52a0 Source \u6587\u4ef6 \u5c31 \u597d \uff0c \u952e \u89c4\u683c \u53ef\u4ee5 \u7167\u6284 \u5f15\u64ce \u76ee\u6807 \u4e2d \u7684 \u793a\u4f8b \uff0c \u4ee5 Property Name \u4e3a\u4f8b \uff1a \u5143 \u6570\u636e \u952e \u586b DisplayName \u6587\u672c \u547d\u540d \u7a7a\u95f4 \u586b UObjectDisplayNames \u6587\u672c \u952e \u56fe\u6848 \u586b { FieldPath } 2 . \u7ffb\u8bd1 \u6587\u672c \u6d41\u7a0b \u4e0a\u8ff0 \u914d\u7f6e \u5b8c \u4ee5\u540e \uff0c \u4e3b\u8981 \u64cd\u4f5c \u90fd \u5728 \u8bed\u7cfb \u4e2d \u3002 \u5982\u4e0a \u4e0a\u56fe \u5982\u4e0a\u56fe \u6240\u793a \uff0c \u5148 \u6dfb\u52a0 \u4f60 \u9700\u8981 \u7ffb\u8bd1 \u7684 \u8bed\u8a00 \u5730\u533a \u548c \u4f60 \u672c\u5730 \u6587\u672c \u9ed8\u8ba4 \u7684 \u8bed\u8a00 \u5730\u533a \u3002 \u7136\u540e \u70b9\u51fb \u6536\u96c6 \u6587\u672c \uff0c \u6536\u96c6 \u672c\u5730 \u9700\u8981 \u7ffb\u8bd1 \u7684 \u6587\u672c \uff0c \u6210\u529f \u540e \u5f00\u59cb \u7ffb\u8bd1 \u6587\u672c \u8fd9\u91cc \u6709 \u4e24\u79cd \u65b9\u5f0f \uff0c \u4e00\u79cd \u662f \u76f4\u63a5 \u5728 UE \u5de5\u5177 \u4e2d \u7ffb\u8bd1 \uff0c \u4e00\u79cd \u662f \u5bfc\u51fa \u4f7f\u7528 \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 \u5de5\u5177 \u7ffb\u8bd1 \u3002 UE \u5de5\u5177 \u7ffb\u8bd1 \uff1a \u70b9\u51fb \u6bcf\u4e2a \u6587\u5316 \u8bed\u8a00 \u540e\u9762 \u5728 \u7ffb\u8bd1 \u4e2d \u5199\u5165 \u7ffb\u8bd1 \u540e \u7684 \u6587\u672c \u5373\u53ef \uff0c \u7136\u540e \u70b9\u51fb \u4fdd\u5b58 \u3002 \u81ea\u884c \u5bfc\u51fa \u7ffb\u8bd1 \u5982\u4e0b \u56fe \u6240\u793a \uff1a \u4e0a\u8ff0 \u7b2c\u4e00 \u4e00\u79cd \u7b2c\u4e00\u79cd \u5bfc\u51fa \u65b9\u5f0f \u662f \u5bfc\u51fa \u5168\u90e8 \u8bed\u7cfb \uff0c \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u662f \u5bfc\u51fa \u6307\u5b9a \u8bed\u7cfb \u7684 \u6587\u672c \uff0c \u9009\u62e9 \u8def\u5f84 \u5bfc\u51fa \u540e \u4f1a \u751f\u6210 . po \u683c\u5f0f \u6587\u4ef6 \u683c\u5f0f\u6587\u4ef6 \uff0c \u662f \u5305\u542b \u8981 \u7ffb\u8bd1 \u7684 \u6bcf\u79cd \u6587\u5316 \u6587\u672c \u4ee5\u53ca \u5f53\u524d \u7ffb\u8bd1 \u7684 \u6587\u4ef6 \uff0c \u662f \u4e00\u79cd \u901a\u7528 \u683c\u5f0f \uff0c \u53ef \u76f4\u63a5 \u624b\u52a8 \u7f16\u8f91 \u3002 \u4f46\u662f \u4e0d \u5efa\u8bae \u8fd9\u4e48 \u505a \uff0c \u8fd9\u91cc \u6211\u4eec \u4f7f\u7528 Poedit \u7ffb\u8bd1 \u5de5\u5177 \u53bb \u8fdb\u884c \u7f16\u8f91 \uff0c \u91cc\u9762 \u529f\u80fd \u9f50\u5168 \u529f\u80fd\u9f50\u5168 \uff0c \u5305\u62ec \u81ea\u52a8 \u7ffb\u8bd1 \uff0c \u7ffb\u8bd1 \u63d0\u793a \uff0c \u591a\u4eba \u534f\u540c \u7b49 \u3002 \u7f16\u8f91 \u5b8c \u4fdd\u5b58 \u540e \uff0c \u76f4\u63a5 \u5bfc\u5165 \u5373\u53ef \uff0c \u6309\u7167 \u5bfc\u51fa \u7684 \u65b9\u5f0f \uff0c \u518d \u5bfc\u5165 \u3002 \u7edf\u8ba1 \u7ffb\u8bd1 \u6587\u672c \uff0c \u7f16\u8bd1 \u7ffb\u8bd1 \u6587\u672c \u3002 \u6700\u540e \uff0c \u9700\u8981 \u91cd\u65b0 \u6253\u5f00 Carla \u3002","title":"UE \u7f16\u8f91\u5668 \u672c\u5730\u5316"},{"location":"adv_localization/#ue","text":"","title":"UE \u7f16\u8f91\u5668 \u672c\u5730\u5316"},{"location":"adv_localization/#_1","text":"\u5728 \u672c\u6587 \u4e2d \uff0c \u6211\u4eec \u5c06 \u63a2\u8ba8 \u5982\u4f55 \u4f7f\u7528 UE4 \u7684 \u672c\u5730 \u672c\u5730\u5316 \u5de5\u5177 \u6765 \u4f18\u5316 \u4f60 \u7684 \u6e38\u620f \u9879\u76ee \uff0c \u6db5\u76d6 \u4ece \u57fa\u672c \u8bbe\u7f6e \u5230 \u9ad8\u7ea7 \u529f\u80fd \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \u3002 \u65e0\u8bba \u65e0\u8bba\u662f \u521d\u6b21 \u5c1d\u8bd5 \u6e38\u620f \u5f00\u53d1 \u8fd8\u662f \u5bfb\u6c42 \u63d0\u9ad8 \u73b0\u6709 \u9879\u76ee \u7684 \u5168\u7403 \u53ef\u53ca \u6027 \uff0c \u672c \u6307\u5357 \u90fd \u5c06 \u63d0\u4f9b \u5fc5\u8981 \u7684 \u4fe1\u606f \u548c \u6b65\u9aa4 \uff0c \u5e2e\u52a9 \u4f60 \u987a\u5229 \u5b9e\u73b0 \u987a\u5229\u5b9e\u73b0 \u6e38\u620f \u672c\u5730 \u672c\u5730\u5316 \u3002","title":"\u524d\u8a00"},{"location":"adv_localization/#1","text":"\u5bfc\u822a \u81f3 \u7a97\u53e3 / \u672c\u5730 \u672c\u5730\u5316 \u63a7\u5236 \u5236\u9762 \u9762\u677f \u63a7\u5236\u9762\u677f \u200b \u4e3b \u754c\u9762 \u90e8\u5206 \u8be6\u89e3 \u672c\u5730 \u672c\u5730\u5316 \u6e38\u620f \u76ee\u6807 \uff0c \u9ed8\u8ba4 \u4f1a \u521b\u5efa \u4e00\u4e2a \uff0c \u5982\u679c \u8981 \u521b\u5efa \u65b0 \u7684 \u672c\u5730 \u672c\u5730\u5316 \u76ee\u6807 \uff0c \u8bf7 \u786e\u4fdd \u4e3a \u5176 \u6307\u5b9a \u9002\u5f53 \u7684 \u6781 \u7231 \u5728 \u7b56\u7565 \uff0c \u901a\u5e38 \u4e3a \u6e38\u620f \u6216\u8005 \u56fa\u5b9a \u3002 \u9ed8\u8ba4 \u662f \u6c38\u4e0d \uff0c \u662f \u6c38\u4e0d \u52a0\u8f7d \u7684 \u3002 \u76ee\u6807 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6240\u793a \u5982\u56fe\u6240\u793a \uff1a \u9009\u62e9 \u6536\u96c6 \u65b9\u5f0f \uff1a \u4ece \u6587\u672c \u6536\u96c6 \uff1a \u6587\u672c \u672c\u6587 \u6587\u4ef6 \u6587\u672c\u6587\u4ef6 \uff0c \u6bd4\u5982 \u6211\u4eec \u7684 \u4ee3\u7801 \uff1b \u4ece\u5305 \u6536\u96c6 \uff1a \u5bf9 \u84dd\u56fe \u7b49 uassest \u8d44\u6e90 \u7684 \u672c\u5730 \u672c\u5730\u5316 \uff1b \u4ece\u5143 \u6570\u636e \u6536\u96c6 \uff1a \u5bf9\u5143 \u6570\u636e Metadata \u7684 \u672c\u5730 \u672c\u5730\u5316 \uff0c \u5305\u62ec \u7ffb\u8bd1 \u53d8\u91cf \u53d8\u91cf\u540d \uff0c \u5206\u7c7b \uff0c \u5de5\u5177 \u63d0\u793a \u3002 \u5176\u4e2d \uff0c \u5bf9\u4e8e \u5143 \u6570\u636e \u7684 \u6536\u96c6 \uff0c \u5fc5\u987b \u5305\u542b \u81f3\u5c11 \u4e00\u4e2a \u8def\u5f84 \u901a\u914d\u7b26 \u548c \u4e00\u4e2a \u952e \u89c4\u683c \u3002 \u8def\u5f84 \u548c \u4e0a\u9762 \u4e00\u6837 \u6dfb\u52a0 Source \u6587\u4ef6 \u5c31 \u597d \uff0c \u952e \u89c4\u683c \u53ef\u4ee5 \u7167\u6284 \u5f15\u64ce \u76ee\u6807 \u4e2d \u7684 \u793a\u4f8b \uff0c \u4ee5 Property Name \u4e3a\u4f8b \uff1a \u5143 \u6570\u636e \u952e \u586b DisplayName \u6587\u672c \u547d\u540d \u7a7a\u95f4 \u586b UObjectDisplayNames \u6587\u672c \u952e \u56fe\u6848 \u586b { FieldPath }","title":"1 . \u5de5\u5177 \u8bf4\u660e"},{"location":"adv_localization/#2","text":"\u4e0a\u8ff0 \u914d\u7f6e \u5b8c \u4ee5\u540e \uff0c \u4e3b\u8981 \u64cd\u4f5c \u90fd \u5728 \u8bed\u7cfb \u4e2d \u3002 \u5982\u4e0a \u4e0a\u56fe \u5982\u4e0a\u56fe \u6240\u793a \uff0c \u5148 \u6dfb\u52a0 \u4f60 \u9700\u8981 \u7ffb\u8bd1 \u7684 \u8bed\u8a00 \u5730\u533a \u548c \u4f60 \u672c\u5730 \u6587\u672c \u9ed8\u8ba4 \u7684 \u8bed\u8a00 \u5730\u533a \u3002 \u7136\u540e \u70b9\u51fb \u6536\u96c6 \u6587\u672c \uff0c \u6536\u96c6 \u672c\u5730 \u9700\u8981 \u7ffb\u8bd1 \u7684 \u6587\u672c \uff0c \u6210\u529f \u540e","title":"2 . \u7ffb\u8bd1 \u6587\u672c \u6d41\u7a0b"},{"location":"adv_localization/#_2","text":"\u8fd9\u91cc \u6709 \u4e24\u79cd \u65b9\u5f0f \uff0c \u4e00\u79cd \u662f \u76f4\u63a5 \u5728 UE \u5de5\u5177 \u4e2d \u7ffb\u8bd1 \uff0c \u4e00\u79cd \u662f \u5bfc\u51fa \u4f7f\u7528 \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 \u5de5\u5177 \u7ffb\u8bd1 \u3002 UE \u5de5\u5177 \u7ffb\u8bd1 \uff1a \u70b9\u51fb \u6bcf\u4e2a \u6587\u5316 \u8bed\u8a00 \u540e\u9762 \u5728 \u7ffb\u8bd1 \u4e2d \u5199\u5165 \u7ffb\u8bd1 \u540e \u7684 \u6587\u672c \u5373\u53ef \uff0c \u7136\u540e \u70b9\u51fb \u4fdd\u5b58 \u3002 \u81ea\u884c \u5bfc\u51fa \u7ffb\u8bd1 \u5982\u4e0b \u56fe \u6240\u793a \uff1a \u4e0a\u8ff0 \u7b2c\u4e00 \u4e00\u79cd \u7b2c\u4e00\u79cd \u5bfc\u51fa \u65b9\u5f0f \u662f \u5bfc\u51fa \u5168\u90e8 \u8bed\u7cfb \uff0c \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u662f \u5bfc\u51fa \u6307\u5b9a \u8bed\u7cfb \u7684 \u6587\u672c \uff0c \u9009\u62e9 \u8def\u5f84 \u5bfc\u51fa \u540e \u4f1a \u751f\u6210 . po \u683c\u5f0f \u6587\u4ef6 \u683c\u5f0f\u6587\u4ef6 \uff0c \u662f \u5305\u542b \u8981 \u7ffb\u8bd1 \u7684 \u6bcf\u79cd \u6587\u5316 \u6587\u672c \u4ee5\u53ca \u5f53\u524d \u7ffb\u8bd1 \u7684 \u6587\u4ef6 \uff0c \u662f \u4e00\u79cd \u901a\u7528 \u683c\u5f0f \uff0c \u53ef \u76f4\u63a5 \u624b\u52a8 \u7f16\u8f91 \u3002 \u4f46\u662f \u4e0d \u5efa\u8bae \u8fd9\u4e48 \u505a \uff0c \u8fd9\u91cc \u6211\u4eec \u4f7f\u7528 Poedit \u7ffb\u8bd1 \u5de5\u5177 \u53bb \u8fdb\u884c \u7f16\u8f91 \uff0c \u91cc\u9762 \u529f\u80fd \u9f50\u5168 \u529f\u80fd\u9f50\u5168 \uff0c \u5305\u62ec \u81ea\u52a8 \u7ffb\u8bd1 \uff0c \u7ffb\u8bd1 \u63d0\u793a \uff0c \u591a\u4eba \u534f\u540c \u7b49 \u3002 \u7f16\u8f91 \u5b8c \u4fdd\u5b58 \u540e \uff0c \u76f4\u63a5 \u5bfc\u5165 \u5373\u53ef \uff0c \u6309\u7167 \u5bfc\u51fa \u7684 \u65b9\u5f0f \uff0c \u518d \u5bfc\u5165 \u3002 \u7edf\u8ba1 \u7ffb\u8bd1 \u6587\u672c \uff0c \u7f16\u8bd1 \u7ffb\u8bd1 \u6587\u672c \u3002 \u6700\u540e \uff0c \u9700\u8981 \u91cd\u65b0 \u6253\u5f00 Carla \u3002","title":"\u5f00\u59cb \u7ffb\u8bd1 \u6587\u672c"},{"location":"adv_multigpu/","text":"Carla \u591a GPU \u529f\u80fd Carla \u4e2d \u7684 \u591a GPU \u610f\u5473 \u610f\u5473\u7740 \u7528\u6237 \u53ef\u4ee5 \u542f\u52a8 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0\u4e3a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u8fd9\u4e9b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7cfb\u7edf \u4e2d \u7684 \u4e13\u7528 GPU \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0 \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u6267\u884c \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u7528\u6237 \u521b\u5efa \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u53d1 \u5230 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u5e26\u6709 \u4e00\u4e2a \u6807\u5fd7 \u4ee5 \u907f\u514d \u4f7f\u7528 \u4efb\u4f55 GPU \uff09 \u3002 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5904\u7406 \u6240\u6709 \u7269\u7406 \u5e76 \u5c06 \u573a\u666f \u6570\u636e \u540c\u6b65 \u5230 \u5176\u4ed6 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u7136\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u542f\u52a8 \u4efb\u4f55 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u662f \u7cfb\u7edf \u4e2d \u7684 \u6bcf\u4e2a \u4e13\u7528 GPU \uff09 \uff0c \u4f7f\u7528 \u6211\u4eec \u5c06 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u63cf\u8ff0 \u7684 \u53c2\u6570 \u3002 \u6b64\u540e \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u8fde\u63a5 \uff08 \u59cb\u7ec8 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u5e76 \u7167\u5e38 \u8fdb\u884c \u7167\u5e38\u8fdb\u884c \u3002 \u6574\u4e2a \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u7528\u6237 \u6765\u8bf4 \u662f \u900f\u660e \u7684 \uff0c \u7528\u6237 \u4e0d \u9700\u8981 \u77e5\u9053 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765\u81ea \u54ea\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ed6 \u53ea \u9700 \u76f4\u63a5 \u4ece \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b65\u9aa4 \u662f : \u9996\u5148 \uff0c \u542f\u52a8 \u6ca1\u6709 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u53c2\u6570 \u6709 \uff1a - nullrhi : \u7981\u7528 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \uff08 \u65e0\u9700 GPU \uff09 - carla - primary - port : \u7528\u4e8e \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 \uff08 \u9ed8\u8ba4 2002 \uff09 \u4f8b\u5982 . / CarlaUE4 . sh - nullrhi \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 2002 \u6765 \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4fa6\u542c \u53e6 \u4e00\u4e2a \u7aef\u53e3 \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u6807\u5fd7 \u66f4\u6539 \u5b83 . / CarlaUE4 . sh - nullrhi - carla - primary - port = 3002 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7136\u540e \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4f46 \u7406\u60f3 \u7684 \u60c5\u51b5 \u662f \u62e5\u6709 \u4e0e GPU \u4e00\u6837 \u591a \u7684 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u901a\u8fc7 \u53c2\u6570 \uff0c \u6211\u4eec \u9700\u8981 \u6307\u5b9a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u7684 GPU \u4ee5\u53ca \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u5728 \u4fa6\u542c \u7684 \u4e3b\u673a / \u7aef\u53e3 \uff0c \u5e76 \u5e26\u6709 \u4ee5\u4e0b \u6807\u5fd7 \uff1a - carla - rpc - port \uff1a \u63a5\u53d7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u7684 TCP \u7aef\u53e3 \uff08 \u5bf9\u4e8e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6765\u8bf4 \u4e0d \u9700\u8981 \uff0c \u4f46 \u7aef\u53e3 \u9700\u8981 \u7a7a\u95f2 \uff09 - carla - primary - host : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP - carla - primary - port : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter : \u544a\u8bc9 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u54ea\u4e2a GPU \u8bbe\u5907 \u4f8b\u5982 \uff0c \u5982\u679c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u540c\u4e00 \u53f0 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6267\u884c \u5e76 \u4f7f\u7528 \u9ed8\u8ba4 \u7aef\u53e3 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - primary - host = 127.0 . 0.1 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 0 \u8fd9\u91cc \uff0c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 3000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff08 \u4f46 \u6c38\u8fdc \u4e0d\u4f1a \u4f7f\u7528 \u5b83 \uff09 \uff0c \u5e76 \u5c06 \u4ee5 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 2002 \uff09 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \uff08 localhost \uff09 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 0 \u3002 \u5982\u679c \u6211\u4eec \u60f3 \u4f7f\u7528 \u53e6 \u4e00\u4e2a GPU \u5728 \u540c\u4e00 \u53f0 \u673a\u5668 \u4e0a \u542f\u52a8 \u53e6 \u4e00\u4e2a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 4000 - carla - primary - host = 127.0 . 0.1 - carla - primary - port = 2002 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 1 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 4000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff0c \u5e76 \u5c06 \u901a\u8fc7 \u7aef\u53e3 2002 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 1 \u3002 \u540c\u6b65 \u6a21\u5f0f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u7cfb\u7edf \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 1 / 20 \u589e\u91cf \u79d2 \u3002","title":"Carla \u591a GPU \u529f\u80fd"},{"location":"adv_multigpu/#carla-gpu","text":"Carla \u4e2d \u7684 \u591a GPU \u610f\u5473 \u610f\u5473\u7740 \u7528\u6237 \u53ef\u4ee5 \u542f\u52a8 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0\u4e3a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u8fd9\u4e9b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7cfb\u7edf \u4e2d \u7684 \u4e13\u7528 GPU \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0 \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u6267\u884c \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u7528\u6237 \u521b\u5efa \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u53d1 \u5230 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u5e26\u6709 \u4e00\u4e2a \u6807\u5fd7 \u4ee5 \u907f\u514d \u4f7f\u7528 \u4efb\u4f55 GPU \uff09 \u3002 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5904\u7406 \u6240\u6709 \u7269\u7406 \u5e76 \u5c06 \u573a\u666f \u6570\u636e \u540c\u6b65 \u5230 \u5176\u4ed6 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u7136\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u542f\u52a8 \u4efb\u4f55 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u662f \u7cfb\u7edf \u4e2d \u7684 \u6bcf\u4e2a \u4e13\u7528 GPU \uff09 \uff0c \u4f7f\u7528 \u6211\u4eec \u5c06 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u63cf\u8ff0 \u7684 \u53c2\u6570 \u3002 \u6b64\u540e \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u8fde\u63a5 \uff08 \u59cb\u7ec8 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u5e76 \u7167\u5e38 \u8fdb\u884c \u7167\u5e38\u8fdb\u884c \u3002 \u6574\u4e2a \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u7528\u6237 \u6765\u8bf4 \u662f \u900f\u660e \u7684 \uff0c \u7528\u6237 \u4e0d \u9700\u8981 \u77e5\u9053 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765\u81ea \u54ea\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ed6 \u53ea \u9700 \u76f4\u63a5 \u4ece \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002","title":"Carla \u591a GPU \u529f\u80fd"},{"location":"adv_multigpu/#_1","text":"\u6b65\u9aa4 \u662f : \u9996\u5148 \uff0c \u542f\u52a8 \u6ca1\u6709 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u53c2\u6570 \u6709 \uff1a - nullrhi : \u7981\u7528 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \uff08 \u65e0\u9700 GPU \uff09 - carla - primary - port : \u7528\u4e8e \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 \uff08 \u9ed8\u8ba4 2002 \uff09 \u4f8b\u5982 . / CarlaUE4 . sh - nullrhi \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 2002 \u6765 \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4fa6\u542c \u53e6 \u4e00\u4e2a \u7aef\u53e3 \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u6807\u5fd7 \u66f4\u6539 \u5b83 . / CarlaUE4 . sh - nullrhi - carla - primary - port = 3002","title":"\u4e3b \u670d\u52a1\u5668"},{"location":"adv_multigpu/#_2","text":"\u7136\u540e \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4f46 \u7406\u60f3 \u7684 \u60c5\u51b5 \u662f \u62e5\u6709 \u4e0e GPU \u4e00\u6837 \u591a \u7684 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u901a\u8fc7 \u53c2\u6570 \uff0c \u6211\u4eec \u9700\u8981 \u6307\u5b9a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u7684 GPU \u4ee5\u53ca \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u5728 \u4fa6\u542c \u7684 \u4e3b\u673a / \u7aef\u53e3 \uff0c \u5e76 \u5e26\u6709 \u4ee5\u4e0b \u6807\u5fd7 \uff1a - carla - rpc - port \uff1a \u63a5\u53d7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u7684 TCP \u7aef\u53e3 \uff08 \u5bf9\u4e8e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6765\u8bf4 \u4e0d \u9700\u8981 \uff0c \u4f46 \u7aef\u53e3 \u9700\u8981 \u7a7a\u95f2 \uff09 - carla - primary - host : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP - carla - primary - port : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter : \u544a\u8bc9 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u54ea\u4e2a GPU \u8bbe\u5907 \u4f8b\u5982 \uff0c \u5982\u679c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u540c\u4e00 \u53f0 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6267\u884c \u5e76 \u4f7f\u7528 \u9ed8\u8ba4 \u7aef\u53e3 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - primary - host = 127.0 . 0.1 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 0 \u8fd9\u91cc \uff0c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 3000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff08 \u4f46 \u6c38\u8fdc \u4e0d\u4f1a \u4f7f\u7528 \u5b83 \uff09 \uff0c \u5e76 \u5c06 \u4ee5 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 2002 \uff09 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \uff08 localhost \uff09 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 0 \u3002 \u5982\u679c \u6211\u4eec \u60f3 \u4f7f\u7528 \u53e6 \u4e00\u4e2a GPU \u5728 \u540c\u4e00 \u53f0 \u673a\u5668 \u4e0a \u542f\u52a8 \u53e6 \u4e00\u4e2a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 4000 - carla - primary - host = 127.0 . 0.1 - carla - primary - port = 2002 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 1 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 4000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff0c \u5e76 \u5c06 \u901a\u8fc7 \u7aef\u53e3 2002 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 1 \u3002","title":"\u8f85\u52a9 \u670d\u52a1\u5668"},{"location":"adv_multigpu/#_3","text":"\u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u7cfb\u7edf \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 1 / 20 \u589e\u91cf \u79d2 \u3002","title":"\u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_opendrive/","text":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u5c06 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u5f00\u7bb1 \u5373\u7528 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u81ea\u52a8 \u751f\u6210 \u9053\u8def \u7f51\u683c \u4f9b \u89d2\u8272 \u5bfc\u822a \u3002 \u6982\u8ff0 \u8fd0\u884c \u72ec\u7acb \u5730\u56fe \u7f51\u683c \u751f\u6210 \u6982\u8ff0 \u6b64 \u6a21\u5f0f \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u8fd0\u884c \u5b8c\u6574 \u4eff\u771f \uff0c \u65e0\u9700 \u4efb\u4f55 \u989d\u5916 \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u6216 \u8d44\u4ea7 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u91c7\u7528 OpenDRIVE \u6587\u4ef6 \u5e76 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u521b\u5efa \u65f6\u95f4 3D \u7f51\u683c \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u751f\u6210 \u7684 \u7f51\u683c \u4ee5 \u7b80\u7ea6 \u7684 \u65b9\u5f0f \u63cf\u8ff0 \u4e86 \u9053\u8def \u5b9a\u4e49 \u3002 \u6240\u6709 \u5143\u7d20 \u90fd \u5c06 \u4e0e OpenDRIVE \u6587\u4ef6 \u5bf9\u5e94 \uff0c \u4f46 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53ea\u6709 void \u3002 \u4e3a \u9632\u6b62 \u8f66\u8f86 \u6389 \u51fa \u8def\u9762 \uff0c \u91c7\u53d6 \u4e86 \u4e24\u9879 \u63aa\u65bd \u3002 \u5728 \u8f66\u8f86 \u6d41\u52a8 \u6700 \u590d\u6742 \u7684 \u8def\u53e3 \uff0c \u8f66\u9053 \u7a0d\u5bbd \u4e00\u4e9b \u3002 \u5728 \u9053\u8def \u7684 \u8fb9\u754c \u5904 \u521b\u5efa \u4e86 \u53ef\u89c1 \u7684 \u5899\u58c1 \uff0c \u4f5c\u4e3a \u6700\u540e \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8ba9 \u884c \u6807\u5fd7 \u5c06 \u5373\u65f6 \u751f\u6210 \u3002 \u884c\u4eba \u5c06 \u5728 \u5730\u56fe \u4e0a \u663e\u793a \u7684 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u4e0a \u5bfc\u822a \u3002 \u6240\u6709 \u8fd9\u4e9b \u5143\u7d20 \uff0c \u4ee5\u53ca \u9053\u8def \u4e0a \u7684 \u6bcf \u4e00\u4e2a \u7ec6\u8282 \uff0c \u90fd \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \u3002 \u7531\u4e8e \u72ec\u7acb \u6a21\u5f0f \u76f4\u63a5 \u4f7f\u7528 . xodr \uff0c \u56e0\u6b64 \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u5f71\u54cd \u5230 \u4eff\u771f \u3002 \u8fd9 \u53ef\u80fd \u662f \u4e00\u4e2a \u95ee\u9898 \uff0c \u5c24\u5176 \u662f \u5728 \u8bb8\u591a \u8f66\u9053 \u6df7\u5408 \u7684 \u8def\u53e3 \u3002 \u91cd\u8981 \u7684 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 OpenDRIVE \u6587\u4ef6 \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u8fd0\u884c \u4eff\u771f \u65f6 \uff0c \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u4f20\u64ad \u3002 \u8fd0\u884c \u72ec\u7acb \u5730\u56fe \u6253\u5f00 OpenDRIVE \u6587\u4ef6 \u53ea \u9700 \u901a\u8fc7 API \u8c03\u7528 client . generate _ opendrive _ world ( ) \u3002 \u8fd9 \u5c06 \u751f\u6210 \u65b0 \u5730\u56fe \uff0c \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u5b83 \u51c6\u5907 \u597d \u3002 \u8be5 \u65b9\u6cd5 \u9700\u8981 \u4e24\u4e2a \u53c2\u6570 \u3002 opendrive \u662f \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u3002 parameters \u662f \u4e00\u4e2a carla . OpendriveGenerationParameters \u5305\u542b \u7f51\u683c \u751f\u6210 \u7684 \u8bbe\u7f6e \u3002 \u8fd9\u4e2a \u53c2\u6570 \u662f \u53ef\u9009 \u7684 \u3002 vertex _ distance \uff08 \u9ed8\u8ba4 2.0 \u7c73 \uff09 - \u7f51\u683c \u9876\u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u8ddd\u79bb \u8d8a\u5927 \uff0c \u7f51\u683c \u8d8a \u4e0d \u51c6\u786e \u3002 \u4f46\u662f \uff0c \u5982\u679c \u8ddd\u79bb \u592a\u5c0f \uff0c \u751f\u6210 \u7684 \u7f51\u683c \u5c06 \u592a\u91cd \u800c \u65e0\u6cd5 \u4f7f\u7528 \u3002 max _ road _ length \uff08 \u9ed8\u8ba4 50.0 \u7c73 \uff09 - \u7f51\u683c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u5927 \u957f\u5ea6 \u3002 \u7f51\u683c \u88ab \u5206\u6210 \u51e0 \u90e8\u5206 \u4ee5 \u51cf\u5c11 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5982\u679c \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e0d \u53ef\u89c1 \uff0c UE \u5c06 \u4e0d\u4f1a \u6e32\u67d3 \u5b83 \u3002 \u90e8\u5206 \u8d8a\u5c0f \uff0c \u5b83\u4eec \u88ab \u4e22\u5f03 \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u5c31 \u8d8a \u5927 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u90e8\u5206 \u592a\u5c0f \uff0c UE \u9700\u8981 \u7ba1\u7406 \u7684 \u5bf9\u8c61 \u592a \u591a \uff0c \u6027\u80fd \u4e5f \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 wall _ height \uff08 \u9ed8\u8ba4 \u4e3a 1.0 \u7c73 \uff09 - \u5728 \u9053\u8def \u8fb9\u754c \u4e0a \u521b\u5efa \u7684 \u9644\u52a0 \u5899 \u7684 \u9ad8\u5ea6 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u5760\u5165 \u865a\u7a7a \u3002 additional _ width \uff08 \u9ed8\u8ba4 \u4e3a 0.6 \u7c73 \uff0c \u6bcf \u8fb9 0.3 \uff09 \u2014 \u5e94\u7528 \u4e8e \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u5c0f \u5bbd\u5ea6 \u589e\u91cf \u3002 \u8fd9\u662f \u9632\u6b62 \u8f66\u8f86 \u5760\u843d \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 smooth _ junctions ( default True ) \u2014 \u5982\u679c True \uff0c OpenDRIVE \u7684 \u4e00\u4e9b \u4fe1\u606f \u5c06 \u88ab \u91cd\u65b0 \u89e3\u91ca \u4ee5 \u5e73\u6ed1 \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u6700\u7ec8 \u7f51\u683c \u3002 \u8fd9\u6837 \u505a \u662f \u4e3a\u4e86 \u9632\u6b62 \u5728 \u4e0d\u540c \u8f66\u9053 \u76f8\u9047 \u65f6 \u53ef\u80fd \u53d1\u751f \u7684 \u4e00\u4e9b \u4e0d \u51c6\u786e \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a False \uff0c \u7f51\u683c \u5c06 \u5b8c\u5168 \u6309\u7167 OpenDRIVE \u4e2d \u7684 \u63cf\u8ff0 \u751f\u6210 \u3002 enable _ mesh _ visibility ( default True ) \u2014 \u5982\u679c False \uff0c \u7f51\u683c \u5c06 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \uff0c \u8fd9 \u53ef\u4ee5 \u4e3a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8282\u7701 \u5927\u91cf \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3a\u4e86 \u8f7b\u677e \u6d4b\u8bd5 \u6b64 \u529f\u80fd \uff0c PythonAPI / util / \u4e2d \u7684 config . py \u811a\u672c \u6709 \u4e00\u4e2a \u65b0 \u53c2\u6570 \uff0c - x \u6216 -- xodr - path \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u9700\u8981 \u4e00\u4e2a \u5e26\u6709 . xodr \u6587\u4ef6 \u8def\u5f84 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 path / example . xodr \u3002 \u5982\u679c \u4f7f\u7528 \u6b64 \u811a\u672c \u751f\u6210 \u7f51\u683c \uff0c \u5219 \u4f7f\u7528 \u7684 \u53c2\u6570 \u5c06 \u59cb\u7ec8 \u4e3a \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u6b64 \u529f\u80fd \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u65b0 TownBig \u8fdb\u884c \u6d4b\u8bd5 \u3002 python3 config . py - x opendrive / TownBig . xodr \u91cd\u8981 \u7684 client . generate _ opendrive _ world ( ) \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u76f8\u53cd \uff0c config . py \u811a\u672c \u9700\u8981 . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u7b14\u8bb0 \u5982\u679c \u9047\u5230 opendrive \u65e0\u6cd5 \u6b63\u786e \u89e3\u6790 \u9519\u8bef \uff0c \u8bf7 \u786e\u4fdd \u5bf9 CarlaUE4 / Content / Carla / Maps / OpenDrive / \u76ee\u5f55 \u6709 \u5199 \u6743\u9650 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u786e \u89e3\u6790 xodr \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \u3002 \u7f51\u683c \u751f\u6210 \u7f51\u683c \u7684 \u751f\u6210 \u662f \u8be5 \u6a21\u5f0f \u7684 \u5173\u952e \u8981\u7d20 \u3002 \u53ea\u6709 \u5f53 \u751f\u6210 \u7684 \u7f51\u683c \u662f \u5e73\u6ed1 \u7684 \u5e76\u4e14 \u5b8c\u5168 \u7b26\u5408 \u5b8c\u5168\u7b26\u5408 \u5176 \u5b9a\u4e49 \u65f6 \uff0c \u8be5 \u529f\u80fd \u624d\u80fd \u6210\u529f \u3002 \u51fa\u4e8e \u8fd9\u4e2a \u539f\u56e0 \uff0c \u8fd9 \u4e00\u6b65 \u6b63\u5728 \u4e0d\u65ad \u6539\u8fdb \u4e0d\u65ad\u6539\u8fdb \u3002 \u5728 \u6700\u540e \u7684 \u8fed\u4ee3 \u4e2d \uff0c \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u5df2\u7ecf \u8fc7 \u629b\u5149 \u4ee5 \u907f\u514d \u4e0d \u51c6\u786e \u53d1\u751f \uff0c \u5c24\u5176 \u662f \u5728 \u4e0d \u5e73\u5766 \u7684 \u8f66\u9053 \u8fde\u63a5 \u8fde\u63a5\u5904 \u3002 \u5728 \u751f\u6210 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u7f51\u683c \u65f6 \uff0c \u8f83 \u9ad8 \u7684 \u8f66\u9053 \u5f80\u5f80 \u4f1a \u963b\u6321 \u4e0b\u65b9 \u7684 \u8f66\u9053 \u3002 smooth _ junctions \u53c2\u6570 \u53ef \u9632\u6b62 \u6b64\u7c7b \u95ee\u9898 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u4e0d\u662f \u5c06 \u6574\u4e2a \u5730\u56fe \u521b\u5efa \u4e3a \u4e00\u4e2a \u72ec\u7279 \u7684 \u7f51\u683c \uff0c \u800c\u662f \u521b\u5efa \u4e0d\u540c \u7684 \u90e8\u5206 \u3002 \u901a\u8fc7 \u5212\u5206 \u7f51\u683c \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u907f\u514d \u6e32\u67d3 \u4e0d \u53ef\u89c1 \u7684 \u90e8\u5206 \uff0c \u5e76 \u8282\u7701 \u6210\u672c \u8282\u7701\u6210\u672c \u3002 \u5de5\u4f5c \u66f4 \u5c0f \u8fd8 \u5141\u8bb8 \u751f\u6210 \u5de8\u5927 \u7684 \u5730\u56fe \u5e76 \u5305\u542b \u53ef\u80fd \u51fa\u73b0 \u5728 \u7f51\u683c \u7684 \u4e00\u5c0f \u5c0f\u90e8 \u90e8\u5206 \u4e00\u5c0f\u90e8\u5206 \u4e0a \u7684 \u95ee\u9898 \u3002 \u5173\u4e8e \u7f51\u683c \u751f\u6210 \u7684 \u5f53\u524d \u72b6\u6001 \uff0c \u5e94 \u8003\u8651 \u4e00\u4e9b \u56e0\u7d20 \u3002 \u7ed3 \u5e73\u6ed1 \u3002 \u9ed8\u8ba4 \u5e73\u6ed1 \u53ef \u9632\u6b62 \u4e0a\u8ff0 \u503e\u659c \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u95ee\u9898 \u3002 \u4f46\u662f \uff0c \u5b83\u4f1a \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u4fee\u6539 \u539f\u59cb \u7f51\u683c \u3002 \u5982\u679c \u613f\u610f \uff0c \u5c06 smooth _ junctions \u8bbe\u7f6e \u4e3a False \u4ee5 \u7981\u7528 \u5e73\u6ed1 \u3002 \u6a2a\u5411 \u5761\u5ea6 \u3002 \u6b64 \u529f\u80fd \u5f53\u524d \u672a \u96c6\u6210 \u5728 Carla \u4e2d \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u9ad8\u5ea6 \u3002 \u76ee\u524d \uff0c \u6240\u6709 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u7684 \u786c \u7f16\u7801 \u90fd \u662f \u76f8\u540c \u7684 \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u5fc5\u987b \u9ad8\u4e8e \u9053\u8def \u6807\u9ad8 \u624d\u80fd \u68c0\u6d4b \u5230 \u78b0\u649e \uff0c \u4f46 RoadRunner \u4e0d\u4f1a \u5c06 \u6b64\u503c \u5bfc\u51fa \u5230 OpenDRIVE \u6587\u4ef6 \u3002 \u9ad8\u5ea6 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4ee5 \u4fdd\u8bc1 \u78b0\u649e \u3002 \u8fd9 \u6db5\u76d6 \u4e86 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5173\u4e8e OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u6293\u4f4f \u673a\u4f1a \u6293\u4f4f\u673a\u4f1a \u5e76 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u5730\u56fe \u5728 Carla \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u8bba\u575b \u4e2d \u7684 \u7591\u95ee \u548c \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f"},{"location":"adv_opendrive/#opendrive","text":"\u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u5c06 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u5f00\u7bb1 \u5373\u7528 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u81ea\u52a8 \u751f\u6210 \u9053\u8def \u7f51\u683c \u4f9b \u89d2\u8272 \u5bfc\u822a \u3002 \u6982\u8ff0 \u8fd0\u884c \u72ec\u7acb \u5730\u56fe \u7f51\u683c \u751f\u6210","title":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f"},{"location":"adv_opendrive/#_1","text":"\u6b64 \u6a21\u5f0f \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u8fd0\u884c \u5b8c\u6574 \u4eff\u771f \uff0c \u65e0\u9700 \u4efb\u4f55 \u989d\u5916 \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u6216 \u8d44\u4ea7 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u91c7\u7528 OpenDRIVE \u6587\u4ef6 \u5e76 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u521b\u5efa \u65f6\u95f4 3D \u7f51\u683c \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u751f\u6210 \u7684 \u7f51\u683c \u4ee5 \u7b80\u7ea6 \u7684 \u65b9\u5f0f \u63cf\u8ff0 \u4e86 \u9053\u8def \u5b9a\u4e49 \u3002 \u6240\u6709 \u5143\u7d20 \u90fd \u5c06 \u4e0e OpenDRIVE \u6587\u4ef6 \u5bf9\u5e94 \uff0c \u4f46 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53ea\u6709 void \u3002 \u4e3a \u9632\u6b62 \u8f66\u8f86 \u6389 \u51fa \u8def\u9762 \uff0c \u91c7\u53d6 \u4e86 \u4e24\u9879 \u63aa\u65bd \u3002 \u5728 \u8f66\u8f86 \u6d41\u52a8 \u6700 \u590d\u6742 \u7684 \u8def\u53e3 \uff0c \u8f66\u9053 \u7a0d\u5bbd \u4e00\u4e9b \u3002 \u5728 \u9053\u8def \u7684 \u8fb9\u754c \u5904 \u521b\u5efa \u4e86 \u53ef\u89c1 \u7684 \u5899\u58c1 \uff0c \u4f5c\u4e3a \u6700\u540e \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8ba9 \u884c \u6807\u5fd7 \u5c06 \u5373\u65f6 \u751f\u6210 \u3002 \u884c\u4eba \u5c06 \u5728 \u5730\u56fe \u4e0a \u663e\u793a \u7684 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u4e0a \u5bfc\u822a \u3002 \u6240\u6709 \u8fd9\u4e9b \u5143\u7d20 \uff0c \u4ee5\u53ca \u9053\u8def \u4e0a \u7684 \u6bcf \u4e00\u4e2a \u7ec6\u8282 \uff0c \u90fd \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \u3002 \u7531\u4e8e \u72ec\u7acb \u6a21\u5f0f \u76f4\u63a5 \u4f7f\u7528 . xodr \uff0c \u56e0\u6b64 \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u5f71\u54cd \u5230 \u4eff\u771f \u3002 \u8fd9 \u53ef\u80fd \u662f \u4e00\u4e2a \u95ee\u9898 \uff0c \u5c24\u5176 \u662f \u5728 \u8bb8\u591a \u8f66\u9053 \u6df7\u5408 \u7684 \u8def\u53e3 \u3002 \u91cd\u8981 \u7684 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 OpenDRIVE \u6587\u4ef6 \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u8fd0\u884c \u4eff\u771f \u65f6 \uff0c \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u4f20\u64ad \u3002","title":"\u6982\u8ff0"},{"location":"adv_opendrive/#_2","text":"\u6253\u5f00 OpenDRIVE \u6587\u4ef6 \u53ea \u9700 \u901a\u8fc7 API \u8c03\u7528 client . generate _ opendrive _ world ( ) \u3002 \u8fd9 \u5c06 \u751f\u6210 \u65b0 \u5730\u56fe \uff0c \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u5b83 \u51c6\u5907 \u597d \u3002 \u8be5 \u65b9\u6cd5 \u9700\u8981 \u4e24\u4e2a \u53c2\u6570 \u3002 opendrive \u662f \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u3002 parameters \u662f \u4e00\u4e2a carla . OpendriveGenerationParameters \u5305\u542b \u7f51\u683c \u751f\u6210 \u7684 \u8bbe\u7f6e \u3002 \u8fd9\u4e2a \u53c2\u6570 \u662f \u53ef\u9009 \u7684 \u3002 vertex _ distance \uff08 \u9ed8\u8ba4 2.0 \u7c73 \uff09 - \u7f51\u683c \u9876\u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u8ddd\u79bb \u8d8a\u5927 \uff0c \u7f51\u683c \u8d8a \u4e0d \u51c6\u786e \u3002 \u4f46\u662f \uff0c \u5982\u679c \u8ddd\u79bb \u592a\u5c0f \uff0c \u751f\u6210 \u7684 \u7f51\u683c \u5c06 \u592a\u91cd \u800c \u65e0\u6cd5 \u4f7f\u7528 \u3002 max _ road _ length \uff08 \u9ed8\u8ba4 50.0 \u7c73 \uff09 - \u7f51\u683c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u5927 \u957f\u5ea6 \u3002 \u7f51\u683c \u88ab \u5206\u6210 \u51e0 \u90e8\u5206 \u4ee5 \u51cf\u5c11 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5982\u679c \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e0d \u53ef\u89c1 \uff0c UE \u5c06 \u4e0d\u4f1a \u6e32\u67d3 \u5b83 \u3002 \u90e8\u5206 \u8d8a\u5c0f \uff0c \u5b83\u4eec \u88ab \u4e22\u5f03 \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u5c31 \u8d8a \u5927 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u90e8\u5206 \u592a\u5c0f \uff0c UE \u9700\u8981 \u7ba1\u7406 \u7684 \u5bf9\u8c61 \u592a \u591a \uff0c \u6027\u80fd \u4e5f \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 wall _ height \uff08 \u9ed8\u8ba4 \u4e3a 1.0 \u7c73 \uff09 - \u5728 \u9053\u8def \u8fb9\u754c \u4e0a \u521b\u5efa \u7684 \u9644\u52a0 \u5899 \u7684 \u9ad8\u5ea6 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u5760\u5165 \u865a\u7a7a \u3002 additional _ width \uff08 \u9ed8\u8ba4 \u4e3a 0.6 \u7c73 \uff0c \u6bcf \u8fb9 0.3 \uff09 \u2014 \u5e94\u7528 \u4e8e \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u5c0f \u5bbd\u5ea6 \u589e\u91cf \u3002 \u8fd9\u662f \u9632\u6b62 \u8f66\u8f86 \u5760\u843d \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 smooth _ junctions ( default True ) \u2014 \u5982\u679c True \uff0c OpenDRIVE \u7684 \u4e00\u4e9b \u4fe1\u606f \u5c06 \u88ab \u91cd\u65b0 \u89e3\u91ca \u4ee5 \u5e73\u6ed1 \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u6700\u7ec8 \u7f51\u683c \u3002 \u8fd9\u6837 \u505a \u662f \u4e3a\u4e86 \u9632\u6b62 \u5728 \u4e0d\u540c \u8f66\u9053 \u76f8\u9047 \u65f6 \u53ef\u80fd \u53d1\u751f \u7684 \u4e00\u4e9b \u4e0d \u51c6\u786e \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a False \uff0c \u7f51\u683c \u5c06 \u5b8c\u5168 \u6309\u7167 OpenDRIVE \u4e2d \u7684 \u63cf\u8ff0 \u751f\u6210 \u3002 enable _ mesh _ visibility ( default True ) \u2014 \u5982\u679c False \uff0c \u7f51\u683c \u5c06 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \uff0c \u8fd9 \u53ef\u4ee5 \u4e3a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8282\u7701 \u5927\u91cf \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3a\u4e86 \u8f7b\u677e \u6d4b\u8bd5 \u6b64 \u529f\u80fd \uff0c PythonAPI / util / \u4e2d \u7684 config . py \u811a\u672c \u6709 \u4e00\u4e2a \u65b0 \u53c2\u6570 \uff0c - x \u6216 -- xodr - path \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u9700\u8981 \u4e00\u4e2a \u5e26\u6709 . xodr \u6587\u4ef6 \u8def\u5f84 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 path / example . xodr \u3002 \u5982\u679c \u4f7f\u7528 \u6b64 \u811a\u672c \u751f\u6210 \u7f51\u683c \uff0c \u5219 \u4f7f\u7528 \u7684 \u53c2\u6570 \u5c06 \u59cb\u7ec8 \u4e3a \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u6b64 \u529f\u80fd \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u65b0 TownBig \u8fdb\u884c \u6d4b\u8bd5 \u3002 python3 config . py - x opendrive / TownBig . xodr \u91cd\u8981 \u7684 client . generate _ opendrive _ world ( ) \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u76f8\u53cd \uff0c config . py \u811a\u672c \u9700\u8981 . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u7b14\u8bb0 \u5982\u679c \u9047\u5230 opendrive \u65e0\u6cd5 \u6b63\u786e \u89e3\u6790 \u9519\u8bef \uff0c \u8bf7 \u786e\u4fdd \u5bf9 CarlaUE4 / Content / Carla / Maps / OpenDrive / \u76ee\u5f55 \u6709 \u5199 \u6743\u9650 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u786e \u89e3\u6790 xodr \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \u3002","title":"\u8fd0\u884c \u72ec\u7acb \u5730\u56fe"},{"location":"adv_opendrive/#_3","text":"\u7f51\u683c \u7684 \u751f\u6210 \u662f \u8be5 \u6a21\u5f0f \u7684 \u5173\u952e \u8981\u7d20 \u3002 \u53ea\u6709 \u5f53 \u751f\u6210 \u7684 \u7f51\u683c \u662f \u5e73\u6ed1 \u7684 \u5e76\u4e14 \u5b8c\u5168 \u7b26\u5408 \u5b8c\u5168\u7b26\u5408 \u5176 \u5b9a\u4e49 \u65f6 \uff0c \u8be5 \u529f\u80fd \u624d\u80fd \u6210\u529f \u3002 \u51fa\u4e8e \u8fd9\u4e2a \u539f\u56e0 \uff0c \u8fd9 \u4e00\u6b65 \u6b63\u5728 \u4e0d\u65ad \u6539\u8fdb \u4e0d\u65ad\u6539\u8fdb \u3002 \u5728 \u6700\u540e \u7684 \u8fed\u4ee3 \u4e2d \uff0c \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u5df2\u7ecf \u8fc7 \u629b\u5149 \u4ee5 \u907f\u514d \u4e0d \u51c6\u786e \u53d1\u751f \uff0c \u5c24\u5176 \u662f \u5728 \u4e0d \u5e73\u5766 \u7684 \u8f66\u9053 \u8fde\u63a5 \u8fde\u63a5\u5904 \u3002 \u5728 \u751f\u6210 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u7f51\u683c \u65f6 \uff0c \u8f83 \u9ad8 \u7684 \u8f66\u9053 \u5f80\u5f80 \u4f1a \u963b\u6321 \u4e0b\u65b9 \u7684 \u8f66\u9053 \u3002 smooth _ junctions \u53c2\u6570 \u53ef \u9632\u6b62 \u6b64\u7c7b \u95ee\u9898 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u4e0d\u662f \u5c06 \u6574\u4e2a \u5730\u56fe \u521b\u5efa \u4e3a \u4e00\u4e2a \u72ec\u7279 \u7684 \u7f51\u683c \uff0c \u800c\u662f \u521b\u5efa \u4e0d\u540c \u7684 \u90e8\u5206 \u3002 \u901a\u8fc7 \u5212\u5206 \u7f51\u683c \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u907f\u514d \u6e32\u67d3 \u4e0d \u53ef\u89c1 \u7684 \u90e8\u5206 \uff0c \u5e76 \u8282\u7701 \u6210\u672c \u8282\u7701\u6210\u672c \u3002 \u5de5\u4f5c \u66f4 \u5c0f \u8fd8 \u5141\u8bb8 \u751f\u6210 \u5de8\u5927 \u7684 \u5730\u56fe \u5e76 \u5305\u542b \u53ef\u80fd \u51fa\u73b0 \u5728 \u7f51\u683c \u7684 \u4e00\u5c0f \u5c0f\u90e8 \u90e8\u5206 \u4e00\u5c0f\u90e8\u5206 \u4e0a \u7684 \u95ee\u9898 \u3002 \u5173\u4e8e \u7f51\u683c \u751f\u6210 \u7684 \u5f53\u524d \u72b6\u6001 \uff0c \u5e94 \u8003\u8651 \u4e00\u4e9b \u56e0\u7d20 \u3002 \u7ed3 \u5e73\u6ed1 \u3002 \u9ed8\u8ba4 \u5e73\u6ed1 \u53ef \u9632\u6b62 \u4e0a\u8ff0 \u503e\u659c \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u95ee\u9898 \u3002 \u4f46\u662f \uff0c \u5b83\u4f1a \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u4fee\u6539 \u539f\u59cb \u7f51\u683c \u3002 \u5982\u679c \u613f\u610f \uff0c \u5c06 smooth _ junctions \u8bbe\u7f6e \u4e3a False \u4ee5 \u7981\u7528 \u5e73\u6ed1 \u3002 \u6a2a\u5411 \u5761\u5ea6 \u3002 \u6b64 \u529f\u80fd \u5f53\u524d \u672a \u96c6\u6210 \u5728 Carla \u4e2d \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u9ad8\u5ea6 \u3002 \u76ee\u524d \uff0c \u6240\u6709 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u7684 \u786c \u7f16\u7801 \u90fd \u662f \u76f8\u540c \u7684 \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u5fc5\u987b \u9ad8\u4e8e \u9053\u8def \u6807\u9ad8 \u624d\u80fd \u68c0\u6d4b \u5230 \u78b0\u649e \uff0c \u4f46 RoadRunner \u4e0d\u4f1a \u5c06 \u6b64\u503c \u5bfc\u51fa \u5230 OpenDRIVE \u6587\u4ef6 \u3002 \u9ad8\u5ea6 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4ee5 \u4fdd\u8bc1 \u78b0\u649e \u3002 \u8fd9 \u6db5\u76d6 \u4e86 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5173\u4e8e OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u6293\u4f4f \u673a\u4f1a \u6293\u4f4f\u673a\u4f1a \u5e76 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u5730\u56fe \u5728 Carla \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u8bba\u575b \u4e2d \u7684 \u7591\u95ee \u548c \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"\u7f51\u683c \u751f\u6210"},{"location":"adv_procedural_building_tool/","text":"\u7b14\u8bb0 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u76ee\u524d \u662f \u4e00\u4e2a \u5b9e\u9a8c \u529f\u80fd \u6027\u529f\u80fd \uff0c \u9636\u6bb5 \u73b0\u9636\u6bb5 \u5c1a\u672a \u8003\u8651 \u6295\u5165 \u751f\u4ea7 \u3002 \u56e0\u6b64 \u5b83 \u53ea\u80fd \u7528\u4e8e \u5b9e\u9a8c \u7814\u7a76 \u9879\u76ee \u3002 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u751f\u6210 \u865a\u62df \u4e09\u7ef4 \u5efa\u7b51 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 \u754c\u9762 \u5bf9 \u5176 \u5c3a\u5bf8 \u548c \u88c5\u9970 \u98ce\u683c \u8fdb\u884c \u8c03\u5236 \uff0c \u4ee5 \u521b\u5efa \u8fd1\u4e4e \u65e0\u9650 \u7684 \u53d8\u5316 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u754c\u9762 \u9009\u62e9 \u697c\u5c42 \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5c3a\u5bf8 \u548c \u9ad8\u5ea6 \u3002 \u7136\u540e \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5efa\u7b51 \u5927\u5802 \u3001 \u4e3b\u4f53 \u4ee5\u53ca \u9876\u5c42 \u6216 \u9601\u697c \u9009\u62e9 \u591a\u79cd \u98ce\u683c \u3002 \u53ef\u4ee5 \u4ece Carla \u8d44\u6e90 \u8d44\u6e90\u5e93 \u4e2d\u4e3a \u89d2\u7a97 \u548c \u9633\u53f0 \u7b49 \u529f\u80fd \u9009\u62e9 \u5404\u79cd \u9762\u677f \u5143\u7d20 \u6837\u5f0f \u3002 \u6253\u5f00 \u5de5\u5177 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u7f51\u683c \u53c2\u6570 \u7f51\u683c \u5143\u7d20 \u63d2\u69fd \u5916\u5899 \u6750\u6599 \u70d8\u7119 \u6253\u5f00 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u5411 \u573a\u666f \u6dfb\u52a0 \u7a0b\u5e8f \u6dfb\u52a0\u7a0b\u5e8f \u5efa\u7b51 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5bfc\u822a \u5230 Content > Carla > Blueprints > LevelDesign \u5e76 \u62d6\u52a8 \u84dd\u56fe BP _ ProceduralBuilding \u5230 \u5730\u56fe \u4e2d \u3002 \u5c06 \u8d44\u4ea7 \u79fb\u52a8 \u5230 \u60a8 \u5e0c\u671b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4f4d\u7f6e \u3002 \u9009\u62e9 \u4e00\u4e2a \u6709 \u7a7a\u95f4 \u7684 \u5730\u65b9 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u6e05\u695a \u5730 \u770b\u5230 \u7ed3\u679c \u3002 \u7136\u540e \uff0c \u8981 \u6253\u5f00 \u8be5 \u5de5\u5177 \uff0c \u8bf7 \u53f3\u952e \u5355\u51fb WD _ ProceduralBuilding \u5c0f \u90e8\u4ef6 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Run editor utility widget \u6765 \u542f\u52a8 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u3002 \u8fd9 \u5c06 \u6253\u5f00 \u8be5 \u5de5\u5177 \u7684 \u754c\u9762 \u3002 \u7b14\u8bb0 \u60a8 \u5fc5\u987b \u5728 \u6253\u5f00 \u5de5\u5177 \u4e4b\u524d \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \uff0c \u5730\u56fe \u4e2d \u5fc5\u987b \u5b58\u5728 BP _ ProceduralBuilding \u84dd\u56fe \u7684 \u5b9e\u4f8b \uff0c \u5de5\u5177 \u624d\u80fd \u8fd0\u884c \u3002 \u60a8 \u8fd8 \u5fc5\u987b \u786e\u4fdd \u5728 \u7ee7\u7eed \u4e4b\u524d \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \uff08 World outliner \uff09 \u4e2d \u9009\u62e9 BP _ ProceduralBuilding \u5b9e\u4f53 \u3002 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u57fa\u672c \u5c5e\u6027 \uff0c \u4f8b\u5982 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u548c \u697c\u5c42 \u9ad8\u5ea6 \u3002 \u7b14\u8bb0 \u5728 \u7f51\u683c \u53c2\u6570 \u90e8\u5206 \uff08 mesh parameters \uff09 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u4e4b\u524d \uff0c \u8c03\u6574 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u65f6 \uff0c \u60a8 \u4e0d\u4f1a \u5728 \u865a\u5e7b \u5f15\u64ce \u89c6 \u53e3\u4e2d \u770b\u5230 \u4efb\u4f55 \u53d8\u5316 \u3002 \u53ef\u7528 \u53c2\u6570 \u5982\u4e0b \uff1a Seed : \u8bbe\u7f6e \u7a0b\u5e8f \u751f\u6210 \u7684 \u968f\u673a \u79cd\u5b50 \uff0c \u8fd9 \u53ef\u4ee5 \u4f7f \u5efa\u7b51 \u5efa\u7b51\u7269 \u5177\u6709 \u76f8\u540c \u8bbe\u7f6e \u7684 \u53d8\u5316 \u3002 Num floors : \u8bbe\u7f6e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5c42\u6570 \u6216 \u697c\u5c42 \u6570 \uff0c \u5e76 \u4ece\u6b64 \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9ad8\u5ea6 \u3002 Length X / Y : \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5728 X \u548c Y \u7ef4\u5ea6 \u4e0a \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5927\u5c0f \u3002 \u8fd9\u4e9b \u662f \u65e0 \u5355\u4f4d \u7684 \uff0c \u6570\u5b57 \u8868\u793a \u91cd\u590d \u590d\u90e8 \u90e8\u5206 \u91cd\u590d\u90e8\u5206 \u7684 \u6570\u91cf \uff0c \u6bcf\u4e2a \u90e8\u5206 \u662f \u4e00\u5217 \u7a97\u53e3 \u3002 Create automatically : \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u5728 \u89c6 \u53e3\u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u8c03\u6574 \u7684 \u6548\u679c \u3002 Corners : \u5141\u8bb8 \u5c06 \u89d2\u4ef6 \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5728 Mesh parameters \u90e8\u5206 \u4e2d \u9009\u62e9 \u8fd9\u4e9b \u4ef6 \u3002 Walls : \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5de6 / \u53f3 / \u524d / \u540e \u7684 \u4e2d\u95f4 \u90e8\u5206 \u66ff\u6362 \u4e3a \u53ef \u4f7f\u7528 \u7f51\u683c \u53c2\u6570 \uff08 Mesh parameters \uff09 \u83dc\u5355 \u9009\u62e9 \u7684 \u66ff\u4ee3 \u90e8\u5206 \u3002 Doors : \u5141\u8bb8 \u5728 \u5927\u5385 \u66fe \u653e\u7f6e \u95e8 \u7684 \u9635\u5217 \u3002 \u95e8 \u653e\u7f6e \u5728 \u9009\u5b9a \u7684 \u7d22\u5f15 \u4f4d\u7f6e \u3002 \u7f51\u683c \u53c2\u6570 \u5728 \u754c\u9762 \u7684 \u201c \u7f51\u683c \u53c2\u6570 ( Mesh Parameters ) \u201d \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u6211\u4eec \u9009\u62e9 \u5c06 \u7528\u4e8e \u8986\u76d6 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u90e8 \u7684 \u7f51\u683c \u4ef6 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0d\u540c \u90e8\u5206 \u7684 \u7f51\u7247 \u5206\u4e3a 5 \u7c7b \uff1a Lobby : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5927\u5802 \u7684 \u7f51\u7247 \u3002 Midsection : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d\u6bb5 \u3001 \u5927\u5802 \u548c \u9876\u5c42 \u4e4b\u95f4 \u7684 \u6bcf \u4e00\u5c42 \u7684 \u7f51\u72b6 \u90e8\u4ef6 \u3002 Penthouse : \u7528\u4e8e \u88c5\u9970 \u9876\u5c42 \u516c\u5bd3 \u5c42 \u7684 \u7f51\u683c \u4ef6 \u3002 Doors : \u4e3a \u5927\u5385 \u6dfb\u52a0 \u95e8 \u7684 \u7f51\u72b6 \u90e8\u4ef6 Walls : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u7f51\u7247 \u5728 \u6bcf\u4e2a \u7c7b\u522b \u4e2d \uff0c \u60a8 \u90fd \u4f1a \u53d1\u73b0 \u8bb8\u591a \u7f51\u7247 \u9009\u9879 \u3002 \u5355\u51fb \u4e00\u4e2a \u6216 \u591a\u4e2a \u4f7f \u5176 \u53d8\u4e3a \u7ea2\u8272 \uff0c \u8fd9\u4e9b \u5c06 \u88ab \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u8be5 \u5de5\u5177 \u5c06 \u5728 \u9009\u9879 \u4e4b\u95f4 \u968f\u673a \u4ea4\u66ff \u3002 \u5f53 \u60a8 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u65f6 \uff0c \u5982\u679c \u60a8 \u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 \u81ea\u52a8 \u521b\u5efa \uff08 Create automatically \uff09 \uff0c \u60a8 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u89c6 \u53e3\u4e2d \u770b\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u5728 \u6210\u5f62 \u3002 \u7f51\u683c \u5143\u7d20 \u5728 \u6b64 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u66f4 \u8be6\u7ec6 \u5143\u7d20 \uff0c \u4f8b\u5982 \u7a97\u6237 \u3001 \u67f1\u5b50 \u3001 \u82b1\u76c6 \u3001 \u7a7a\u8c03 \u88c5\u7f6e \u548c \u5929\u7ebf \u3002 \u6bcf\u79cd \u7c7b\u578b \u7684 \u88c5\u9970 \u90fd \u6709 \u7565\u5fae \u4e0d\u540c \u7684 \u5c5e\u6027 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ec6\u8282 \u7684 \u88c5\u9970 \u6709 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \uff1a \u5782\u76f4 / \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c : \u8fd9\u4e9b \u7f51\u683c \u7247 \u5b9a\u4e49 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \u7a97\u6846 \u7684 \u6837\u5f0f \u3002 \u5782\u76f4 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u5bbd\u5ea6 \u9ad8 \u7684 \u7a97\u6237 \u7a7a\u95f4 \uff0c \u800c \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u9ad8\u5ea6 \u66f4 \u5bbd \u7684 \u7a97\u6237 \u7a7a\u95f4 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u5b83\u4eec \u5c06 \u4ea4\u66ff \u51fa\u73b0 \u3002 \u67f1 \u7f51\u683c : \u8fd9\u4e9b \u4eff\u771f \u8de8\u8d8a \u5efa\u7b51 \u5efa\u7b51\u7269 \u9ad8\u5ea6 \u7684 \u7816 \u780c \u67f1 \u7ec6\u8282 \u9876\u90e8 / \u5e95\u90e8 \u7a97\u6237 \u7ec6\u8282 : \u8fd9\u4e9b \u7f51\u683c \u7528 \u95e8\u6963 \u548c \u906e\u9633 \u906e\u9633\u677f \u88c5\u9970 \u7a97\u6237 \u7684 \u9876\u90e8 \uff0c \u7528 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u88c5\u9970 \u7a97\u6237 \u7684 \u5e95\u90e8 \u3002 Window columns : \u5206\u9694 \u7a97\u6237 \u7684 \u7816 \u780c \u67f1 Curtain meshes : \u5b89\u88c5 \u5728 \u7a97\u6237 \u5185 \u7684 \u7a97\u5e18 \u548c \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 Pot meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9 \u6dfb\u52a0 \u5230 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u7684 \u82b1\u76c6 Air conditioner meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9\u5904 \u6dfb\u52a0 \u5230 \u7a97\u6237 \u7684 \u7a7a\u8c03 \u88c5\u7f6e Pipe meshes : \u5782\u76f4 \u5411\u4e0b \u5ef6\u4f38 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7ba1\u9053 \uff0c \u6a21\u4eff \u5c4b\u9876 \u7684 \u6392\u6c34 \u6c34\u7ba1 \u6392\u6c34\u7ba1 Wire meshes : \u6cbf\u7740 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5782\u76f4 \u5ef6\u4f38 \u7684 \u7535\u7ebf \uff0c \u6a21\u4eff \u7535\u89c6 \u5929\u7ebf \u5ef6\u4f38 \u548c \u95ea\u7535 \u63a5\u5730 \u5730\u7ebf \u63a5\u5730\u7ebf Antenna meshes : \u4ece \u7a97\u6237 \u4f38\u51fa \u7684 \u7535\u89c6 \u5929\u7ebf \u53c2\u6570 \u7684 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \uff1a \u5e38\u7528 \u53c2\u6570 : Percentage : \u63a7\u5236 \u5c06 \u653e\u7f6e \u5728 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0a \u7684 \u4ef6\u6570 \uff0c 100% \u8868\u793a \u6240\u6709 \u53ef\u7528 \u7a7a\u95f4 \u5c06 \u88ab \u5360\u7528 Offset : \u8be5 \u4f5c\u54c1 \u76f8\u5bf9 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e3b\u4f53 \u7684 \u7a7a\u95f4 \u504f\u79fb Blinds and curtains : Min / Max size : \u9009\u62e9 \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 \u6216 \u7a97\u5e18 \u7684 \u6700\u5c0f / \u6700\u5927 \u957f\u5ea6 \uff0c \u503c \u4e4b\u95f4 \u968f\u673a \u53d8\u5316 \u3002 1.0 \u4e3a \u5168\u95ed \uff0c 0.0 \u4e3a \u5168\u5f00 \u3002 Pipes and wires : Index : \u5b9a\u4e49 \u5c06 \u653e\u7f6e \u7ba1\u9053 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9762 Offset side / front : \u4ece \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u9762 \u7684 \u4e2d\u5fc3 \u5411 \u4f5c\u54c1 \u6dfb\u52a0 \u7a7a\u95f4 \u504f\u79fb \u7b14\u8bb0 \u5728 \u67d0\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \uff0c \u5f53 \u60a8 \u9009\u62e9 \u7ec6\u8282 \u7f51\u683c \u90e8\u4ef6 \uff08 \u4f8b\u5982 \u82b1\u76c6 \u3001 \u5929\u7ebf \u548c \u7a7a\u8c03 \u88c5\u7f6e \uff09 \u65f6 \uff0c \u60a8 \u4e0d\u5230 \u770b\u4e0d\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6709 \u4efb\u4f55 \u53d8\u5316 \u3002 \u8fd9 \u5f88 \u53ef\u80fd \u56e0\u4e3a \u662f\u56e0\u4e3a \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 \u90e8\u4ef6 \u6ca1\u6709 \u6dfb\u52a0 \u60a8 \u9009\u62e9 \u7684 \u90e8\u4ef6 \u6240 \u9700 \u7684 \u9002\u5f53 \u5957 \u63a5\u5b57 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u69fd \u90e8\u5206 \uff08 sockets section \uff09 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 \u63d2\u69fd \u3002 \u5957 \u63a5\u5b57 \u63d2\u69fd \u662f \u951a\u70b9 \uff0c \u7528\u4e8e \u5b9a\u4e49 \u5c06 \u7ec6\u8282 \u7f51\u683c \u7269\u4f53 \u653e\u7f6e \u5728 \u53e6 \u4e00\u4e2a \u7f51\u683c \u7269\u4f53 \u4e0a \u7684 \u4f4d\u7f6e \u3002 \u8981 \u5c06 \u5957 \u63a5\u5b57 \u6dfb\u52a0 \u5230 \u7a0b\u5e8f \u5efa\u7b51 \u4e2d \u7684 \u7f51\u683c \u7269\u4f53 \uff0c \u8bf7 \u5728 \u9009\u62e9 \u7a0b\u5e8f \u5efa\u7b51 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8f6c \u5230 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \uff08 details panel \uff09 \uff0c \u901a\u5e38 \u4f4d\u4e8e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u754c\u9762 \u7684 \u53f3\u4fa7 \u3002 \u5728 \u90a3\u91cc \uff0c \u60a8 \u5c06 \u627e\u5230 \u201c \u7f51\u683c \uff08 Meshes \uff09 \u201d \u548c \u201c \u7ec6\u8282 \u7f51\u683c \uff08 Detail meshes \uff09 \u201d \u9762\u677f \u3002 \u6253\u5f00 \u76f8\u5173 \u90e8\u5206 \uff0c \u5728 \u60a8 \u8981 \u653e\u7f6e \u63d2\u5ea7 \u7684 \u4f4d\u7f6e \u6253\u5f00 \u7f51\u7247 \u3002 \u627e\u5230 \u8981 \u5728 \u5176 \u4e0a \u653e\u7f6e \u5957 \u63a5\u5b57 \u7684 \u7f51\u683c \uff0c \u7136\u540e \u53cc\u51fb \u8be5 \u56fe\u6807 \u4ee5 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u5176 \u6253\u5f00 \u3002 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( create socket ) \u201d \u4ee5 \u6dfb\u52a0 \u5957 \u63a5\u5b57 \u5e76 \u4f7f\u7528 \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a \u7a7a\u8c03 \u673a\u7ec4 \uff08 Air conditioning unit \uff09 \uff1a aa _ * \u5929\u7ebf \uff08 Antennas \uff09 \uff1a ant _ * \u82b1\u76c6 \uff08 Plant pots \uff09 \uff1a pot _ * \u5c06 \u661f\u53f7 \u66ff\u6362 \u4e3a \u7d22\u5f15 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u6709 \u591a\u5c11 \u4e2a\u5957 \u63a5\u5b57 \uff0c \u5373 aa _ 0 , aa _ 2 , aa _ 3 ... \u5f53 \u60a8 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( Create socket ) \u201d \u65f6 \uff0c \u5957 \u63a5\u5b57 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u4e09\u7ef4 \u53e5\u67c4 \u8fdb\u884c \u5b9e\u4f8b \u5316 \u3002 \u5c06 \u63d2\u69fd \u62d6\u52a8 \u5230 \u7f51\u683c \u4e0a \u7684 \u6240 \u9700 \u4f4d\u7f6e \uff0c \u8fd9 \u662f \u60a8 \u7684 \u7ec6\u8282 \u90e8\u4ef6 \u5c06 \u663e\u793a \u8fde\u63a5 \u5230 \u5355\u5143 \u7684 \u4f4d\u7f6e \u3002 \u5916\u5899 \u6750\u6599 \u5728 \u5916\u89c2 \u6750\u6599 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 \u548c \u9884\u89c8 \u8981 \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u6750\u6599 \u3002 \u70d8\u7119 \u5728 \u70f9\u996a \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u9009\u62e9 \u7684 \u6240\u6709 \u7f51\u683c \u7269\u4f53 \u548c \u6750\u8d28 \u7ec4\u5408 \u5230 \u5177\u6709 \u5173\u8054 \u6750\u8d28 \u548c \u7eb9\u7406 \u7684 \u5355\u4e2a \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u4e2d \u3002 \u8fd8 \u5c06 \u4e3a LOD \u521b\u5efa \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 LOD \u7eb9\u7406 \u3002 \u5728 \u754c\u9762 \u4e2d \u6307\u5b9a \u5c06 \u4fdd\u5b58 \u65b0 \u5efa\u7b51 \u8d44\u6e90 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540d\u79f0 \u3002 \u4e00\u65e6 \u60a8 \u5b8c\u6210 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5236\u4f5c \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 Carla \u8d44\u4ea7 \u4e00\u6837 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5b9e\u4f8b \u653e\u7f6e \u5728 \u5730\u56fe \u4e2d \u3002","title":"Adv procedural building tool"},{"location":"adv_procedural_building_tool/#_1","text":"\u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u751f\u6210 \u865a\u62df \u4e09\u7ef4 \u5efa\u7b51 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 \u754c\u9762 \u5bf9 \u5176 \u5c3a\u5bf8 \u548c \u88c5\u9970 \u98ce\u683c \u8fdb\u884c \u8c03\u5236 \uff0c \u4ee5 \u521b\u5efa \u8fd1\u4e4e \u65e0\u9650 \u7684 \u53d8\u5316 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u754c\u9762 \u9009\u62e9 \u697c\u5c42 \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5c3a\u5bf8 \u548c \u9ad8\u5ea6 \u3002 \u7136\u540e \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5efa\u7b51 \u5927\u5802 \u3001 \u4e3b\u4f53 \u4ee5\u53ca \u9876\u5c42 \u6216 \u9601\u697c \u9009\u62e9 \u591a\u79cd \u98ce\u683c \u3002 \u53ef\u4ee5 \u4ece Carla \u8d44\u6e90 \u8d44\u6e90\u5e93 \u4e2d\u4e3a \u89d2\u7a97 \u548c \u9633\u53f0 \u7b49 \u529f\u80fd \u9009\u62e9 \u5404\u79cd \u9762\u677f \u5143\u7d20 \u6837\u5f0f \u3002 \u6253\u5f00 \u5de5\u5177 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u7f51\u683c \u53c2\u6570 \u7f51\u683c \u5143\u7d20 \u63d2\u69fd \u5916\u5899 \u6750\u6599 \u70d8\u7119","title":"\u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177"},{"location":"adv_procedural_building_tool/#_2","text":"\u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u5411 \u573a\u666f \u6dfb\u52a0 \u7a0b\u5e8f \u6dfb\u52a0\u7a0b\u5e8f \u5efa\u7b51 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5bfc\u822a \u5230 Content > Carla > Blueprints > LevelDesign \u5e76 \u62d6\u52a8 \u84dd\u56fe BP _ ProceduralBuilding \u5230 \u5730\u56fe \u4e2d \u3002 \u5c06 \u8d44\u4ea7 \u79fb\u52a8 \u5230 \u60a8 \u5e0c\u671b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4f4d\u7f6e \u3002 \u9009\u62e9 \u4e00\u4e2a \u6709 \u7a7a\u95f4 \u7684 \u5730\u65b9 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u6e05\u695a \u5730 \u770b\u5230 \u7ed3\u679c \u3002 \u7136\u540e \uff0c \u8981 \u6253\u5f00 \u8be5 \u5de5\u5177 \uff0c \u8bf7 \u53f3\u952e \u5355\u51fb WD _ ProceduralBuilding \u5c0f \u90e8\u4ef6 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Run editor utility widget \u6765 \u542f\u52a8 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u3002 \u8fd9 \u5c06 \u6253\u5f00 \u8be5 \u5de5\u5177 \u7684 \u754c\u9762 \u3002 \u7b14\u8bb0 \u60a8 \u5fc5\u987b \u5728 \u6253\u5f00 \u5de5\u5177 \u4e4b\u524d \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \uff0c \u5730\u56fe \u4e2d \u5fc5\u987b \u5b58\u5728 BP _ ProceduralBuilding \u84dd\u56fe \u7684 \u5b9e\u4f8b \uff0c \u5de5\u5177 \u624d\u80fd \u8fd0\u884c \u3002 \u60a8 \u8fd8 \u5fc5\u987b \u786e\u4fdd \u5728 \u7ee7\u7eed \u4e4b\u524d \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \uff08 World outliner \uff09 \u4e2d \u9009\u62e9 BP _ ProceduralBuilding \u5b9e\u4f53 \u3002","title":"\u6253\u5f00 \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177"},{"location":"adv_procedural_building_tool/#_3","text":"\u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u57fa\u672c \u5c5e\u6027 \uff0c \u4f8b\u5982 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u548c \u697c\u5c42 \u9ad8\u5ea6 \u3002 \u7b14\u8bb0 \u5728 \u7f51\u683c \u53c2\u6570 \u90e8\u5206 \uff08 mesh parameters \uff09 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u4e4b\u524d \uff0c \u8c03\u6574 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u65f6 \uff0c \u60a8 \u4e0d\u4f1a \u5728 \u865a\u5e7b \u5f15\u64ce \u89c6 \u53e3\u4e2d \u770b\u5230 \u4efb\u4f55 \u53d8\u5316 \u3002 \u53ef\u7528 \u53c2\u6570 \u5982\u4e0b \uff1a Seed : \u8bbe\u7f6e \u7a0b\u5e8f \u751f\u6210 \u7684 \u968f\u673a \u79cd\u5b50 \uff0c \u8fd9 \u53ef\u4ee5 \u4f7f \u5efa\u7b51 \u5efa\u7b51\u7269 \u5177\u6709 \u76f8\u540c \u8bbe\u7f6e \u7684 \u53d8\u5316 \u3002 Num floors : \u8bbe\u7f6e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5c42\u6570 \u6216 \u697c\u5c42 \u6570 \uff0c \u5e76 \u4ece\u6b64 \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9ad8\u5ea6 \u3002 Length X / Y : \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5728 X \u548c Y \u7ef4\u5ea6 \u4e0a \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5927\u5c0f \u3002 \u8fd9\u4e9b \u662f \u65e0 \u5355\u4f4d \u7684 \uff0c \u6570\u5b57 \u8868\u793a \u91cd\u590d \u590d\u90e8 \u90e8\u5206 \u91cd\u590d\u90e8\u5206 \u7684 \u6570\u91cf \uff0c \u6bcf\u4e2a \u90e8\u5206 \u662f \u4e00\u5217 \u7a97\u53e3 \u3002 Create automatically : \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u5728 \u89c6 \u53e3\u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u8c03\u6574 \u7684 \u6548\u679c \u3002 Corners : \u5141\u8bb8 \u5c06 \u89d2\u4ef6 \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5728 Mesh parameters \u90e8\u5206 \u4e2d \u9009\u62e9 \u8fd9\u4e9b \u4ef6 \u3002 Walls : \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5de6 / \u53f3 / \u524d / \u540e \u7684 \u4e2d\u95f4 \u90e8\u5206 \u66ff\u6362 \u4e3a \u53ef \u4f7f\u7528 \u7f51\u683c \u53c2\u6570 \uff08 Mesh parameters \uff09 \u83dc\u5355 \u9009\u62e9 \u7684 \u66ff\u4ee3 \u90e8\u5206 \u3002 Doors : \u5141\u8bb8 \u5728 \u5927\u5385 \u66fe \u653e\u7f6e \u95e8 \u7684 \u9635\u5217 \u3002 \u95e8 \u653e\u7f6e \u5728 \u9009\u5b9a \u7684 \u7d22\u5f15 \u4f4d\u7f6e \u3002","title":"\u57fa\u672c\u53c2\u6570"},{"location":"adv_procedural_building_tool/#_4","text":"\u5728 \u754c\u9762 \u7684 \u201c \u7f51\u683c \u53c2\u6570 ( Mesh Parameters ) \u201d \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u6211\u4eec \u9009\u62e9 \u5c06 \u7528\u4e8e \u8986\u76d6 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u90e8 \u7684 \u7f51\u683c \u4ef6 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0d\u540c \u90e8\u5206 \u7684 \u7f51\u7247 \u5206\u4e3a 5 \u7c7b \uff1a Lobby : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5927\u5802 \u7684 \u7f51\u7247 \u3002 Midsection : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d\u6bb5 \u3001 \u5927\u5802 \u548c \u9876\u5c42 \u4e4b\u95f4 \u7684 \u6bcf \u4e00\u5c42 \u7684 \u7f51\u72b6 \u90e8\u4ef6 \u3002 Penthouse : \u7528\u4e8e \u88c5\u9970 \u9876\u5c42 \u516c\u5bd3 \u5c42 \u7684 \u7f51\u683c \u4ef6 \u3002 Doors : \u4e3a \u5927\u5385 \u6dfb\u52a0 \u95e8 \u7684 \u7f51\u72b6 \u90e8\u4ef6 Walls : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u7f51\u7247 \u5728 \u6bcf\u4e2a \u7c7b\u522b \u4e2d \uff0c \u60a8 \u90fd \u4f1a \u53d1\u73b0 \u8bb8\u591a \u7f51\u7247 \u9009\u9879 \u3002 \u5355\u51fb \u4e00\u4e2a \u6216 \u591a\u4e2a \u4f7f \u5176 \u53d8\u4e3a \u7ea2\u8272 \uff0c \u8fd9\u4e9b \u5c06 \u88ab \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u8be5 \u5de5\u5177 \u5c06 \u5728 \u9009\u9879 \u4e4b\u95f4 \u968f\u673a \u4ea4\u66ff \u3002 \u5f53 \u60a8 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u65f6 \uff0c \u5982\u679c \u60a8 \u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 \u81ea\u52a8 \u521b\u5efa \uff08 Create automatically \uff09 \uff0c \u60a8 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u89c6 \u53e3\u4e2d \u770b\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u5728 \u6210\u5f62 \u3002","title":"\u7f51\u683c \u53c2\u6570"},{"location":"adv_procedural_building_tool/#_5","text":"\u5728 \u6b64 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u66f4 \u8be6\u7ec6 \u5143\u7d20 \uff0c \u4f8b\u5982 \u7a97\u6237 \u3001 \u67f1\u5b50 \u3001 \u82b1\u76c6 \u3001 \u7a7a\u8c03 \u88c5\u7f6e \u548c \u5929\u7ebf \u3002 \u6bcf\u79cd \u7c7b\u578b \u7684 \u88c5\u9970 \u90fd \u6709 \u7565\u5fae \u4e0d\u540c \u7684 \u5c5e\u6027 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ec6\u8282 \u7684 \u88c5\u9970 \u6709 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \uff1a \u5782\u76f4 / \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c : \u8fd9\u4e9b \u7f51\u683c \u7247 \u5b9a\u4e49 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \u7a97\u6846 \u7684 \u6837\u5f0f \u3002 \u5782\u76f4 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u5bbd\u5ea6 \u9ad8 \u7684 \u7a97\u6237 \u7a7a\u95f4 \uff0c \u800c \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u9ad8\u5ea6 \u66f4 \u5bbd \u7684 \u7a97\u6237 \u7a7a\u95f4 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u5b83\u4eec \u5c06 \u4ea4\u66ff \u51fa\u73b0 \u3002 \u67f1 \u7f51\u683c : \u8fd9\u4e9b \u4eff\u771f \u8de8\u8d8a \u5efa\u7b51 \u5efa\u7b51\u7269 \u9ad8\u5ea6 \u7684 \u7816 \u780c \u67f1 \u7ec6\u8282 \u9876\u90e8 / \u5e95\u90e8 \u7a97\u6237 \u7ec6\u8282 : \u8fd9\u4e9b \u7f51\u683c \u7528 \u95e8\u6963 \u548c \u906e\u9633 \u906e\u9633\u677f \u88c5\u9970 \u7a97\u6237 \u7684 \u9876\u90e8 \uff0c \u7528 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u88c5\u9970 \u7a97\u6237 \u7684 \u5e95\u90e8 \u3002 Window columns : \u5206\u9694 \u7a97\u6237 \u7684 \u7816 \u780c \u67f1 Curtain meshes : \u5b89\u88c5 \u5728 \u7a97\u6237 \u5185 \u7684 \u7a97\u5e18 \u548c \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 Pot meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9 \u6dfb\u52a0 \u5230 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u7684 \u82b1\u76c6 Air conditioner meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9\u5904 \u6dfb\u52a0 \u5230 \u7a97\u6237 \u7684 \u7a7a\u8c03 \u88c5\u7f6e Pipe meshes : \u5782\u76f4 \u5411\u4e0b \u5ef6\u4f38 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7ba1\u9053 \uff0c \u6a21\u4eff \u5c4b\u9876 \u7684 \u6392\u6c34 \u6c34\u7ba1 \u6392\u6c34\u7ba1 Wire meshes : \u6cbf\u7740 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5782\u76f4 \u5ef6\u4f38 \u7684 \u7535\u7ebf \uff0c \u6a21\u4eff \u7535\u89c6 \u5929\u7ebf \u5ef6\u4f38 \u548c \u95ea\u7535 \u63a5\u5730 \u5730\u7ebf \u63a5\u5730\u7ebf Antenna meshes : \u4ece \u7a97\u6237 \u4f38\u51fa \u7684 \u7535\u89c6 \u5929\u7ebf \u53c2\u6570 \u7684 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \uff1a \u5e38\u7528 \u53c2\u6570 : Percentage : \u63a7\u5236 \u5c06 \u653e\u7f6e \u5728 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0a \u7684 \u4ef6\u6570 \uff0c 100% \u8868\u793a \u6240\u6709 \u53ef\u7528 \u7a7a\u95f4 \u5c06 \u88ab \u5360\u7528 Offset : \u8be5 \u4f5c\u54c1 \u76f8\u5bf9 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e3b\u4f53 \u7684 \u7a7a\u95f4 \u504f\u79fb Blinds and curtains : Min / Max size : \u9009\u62e9 \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 \u6216 \u7a97\u5e18 \u7684 \u6700\u5c0f / \u6700\u5927 \u957f\u5ea6 \uff0c \u503c \u4e4b\u95f4 \u968f\u673a \u53d8\u5316 \u3002 1.0 \u4e3a \u5168\u95ed \uff0c 0.0 \u4e3a \u5168\u5f00 \u3002 Pipes and wires : Index : \u5b9a\u4e49 \u5c06 \u653e\u7f6e \u7ba1\u9053 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9762 Offset side / front : \u4ece \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u9762 \u7684 \u4e2d\u5fc3 \u5411 \u4f5c\u54c1 \u6dfb\u52a0 \u7a7a\u95f4 \u504f\u79fb \u7b14\u8bb0 \u5728 \u67d0\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \uff0c \u5f53 \u60a8 \u9009\u62e9 \u7ec6\u8282 \u7f51\u683c \u90e8\u4ef6 \uff08 \u4f8b\u5982 \u82b1\u76c6 \u3001 \u5929\u7ebf \u548c \u7a7a\u8c03 \u88c5\u7f6e \uff09 \u65f6 \uff0c \u60a8 \u4e0d\u5230 \u770b\u4e0d\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6709 \u4efb\u4f55 \u53d8\u5316 \u3002 \u8fd9 \u5f88 \u53ef\u80fd \u56e0\u4e3a \u662f\u56e0\u4e3a \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 \u90e8\u4ef6 \u6ca1\u6709 \u6dfb\u52a0 \u60a8 \u9009\u62e9 \u7684 \u90e8\u4ef6 \u6240 \u9700 \u7684 \u9002\u5f53 \u5957 \u63a5\u5b57 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u69fd \u90e8\u5206 \uff08 sockets section \uff09 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 \u63d2\u69fd \u3002","title":"\u7f51\u683c \u5143\u7d20"},{"location":"adv_procedural_building_tool/#_6","text":"\u63d2\u69fd \u662f \u951a\u70b9 \uff0c \u7528\u4e8e \u5b9a\u4e49 \u5c06 \u7ec6\u8282 \u7f51\u683c \u7269\u4f53 \u653e\u7f6e \u5728 \u53e6 \u4e00\u4e2a \u7f51\u683c \u7269\u4f53 \u4e0a \u7684 \u4f4d\u7f6e \u3002 \u8981 \u5c06 \u5957 \u63a5\u5b57 \u6dfb\u52a0 \u5230 \u7a0b\u5e8f \u5efa\u7b51 \u4e2d \u7684 \u7f51\u683c \u7269\u4f53 \uff0c \u8bf7 \u5728 \u9009\u62e9 \u7a0b\u5e8f \u5efa\u7b51 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8f6c \u5230 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \uff08 details panel \uff09 \uff0c \u901a\u5e38 \u4f4d\u4e8e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u754c\u9762 \u7684 \u53f3\u4fa7 \u3002 \u5728 \u90a3\u91cc \uff0c \u60a8 \u5c06 \u627e\u5230 \u201c \u7f51\u683c \uff08 Meshes \uff09 \u201d \u548c \u201c \u7ec6\u8282 \u7f51\u683c \uff08 Detail meshes \uff09 \u201d \u9762\u677f \u3002 \u6253\u5f00 \u76f8\u5173 \u90e8\u5206 \uff0c \u5728 \u60a8 \u8981 \u653e\u7f6e \u63d2\u5ea7 \u7684 \u4f4d\u7f6e \u6253\u5f00 \u7f51\u7247 \u3002 \u627e\u5230 \u8981 \u5728 \u5176 \u4e0a \u653e\u7f6e \u5957 \u63a5\u5b57 \u7684 \u7f51\u683c \uff0c \u7136\u540e \u53cc\u51fb \u8be5 \u56fe\u6807 \u4ee5 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u5176 \u6253\u5f00 \u3002 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( create socket ) \u201d \u4ee5 \u6dfb\u52a0 \u5957 \u63a5\u5b57 \u5e76 \u4f7f\u7528 \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a \u7a7a\u8c03 \u673a\u7ec4 \uff08 Air conditioning unit \uff09 \uff1a aa _ * \u5929\u7ebf \uff08 Antennas \uff09 \uff1a ant _ * \u82b1\u76c6 \uff08 Plant pots \uff09 \uff1a pot _ * \u5c06 \u661f\u53f7 \u66ff\u6362 \u4e3a \u7d22\u5f15 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u6709 \u591a\u5c11 \u4e2a\u5957 \u63a5\u5b57 \uff0c \u5373 aa _ 0 , aa _ 2 , aa _ 3 ... \u5f53 \u60a8 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( Create socket ) \u201d \u65f6 \uff0c \u5957 \u63a5\u5b57 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u4e09\u7ef4 \u53e5\u67c4 \u8fdb\u884c \u5b9e\u4f8b \u5316 \u3002 \u5c06 \u63d2\u69fd \u62d6\u52a8 \u5230 \u7f51\u683c \u4e0a \u7684 \u6240 \u9700 \u4f4d\u7f6e \uff0c \u8fd9 \u662f \u60a8 \u7684 \u7ec6\u8282 \u90e8\u4ef6 \u5c06 \u663e\u793a \u8fde\u63a5 \u5230 \u5355\u5143 \u7684 \u4f4d\u7f6e \u3002","title":"\u5957 \u63a5\u5b57"},{"location":"adv_procedural_building_tool/#_7","text":"\u5728 \u5916\u89c2 \u6750\u6599 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 \u548c \u9884\u89c8 \u8981 \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u6750\u6599 \u3002","title":"\u5916\u5899 \u6750\u6599"},{"location":"adv_procedural_building_tool/#_8","text":"\u5728 \u70f9\u996a \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u9009\u62e9 \u7684 \u6240\u6709 \u7f51\u683c \u7269\u4f53 \u548c \u6750\u8d28 \u7ec4\u5408 \u5230 \u5177\u6709 \u5173\u8054 \u6750\u8d28 \u548c \u7eb9\u7406 \u7684 \u5355\u4e2a \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u4e2d \u3002 \u8fd8 \u5c06 \u4e3a LOD \u521b\u5efa \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 LOD \u7eb9\u7406 \u3002 \u5728 \u754c\u9762 \u4e2d \u6307\u5b9a \u5c06 \u4fdd\u5b58 \u65b0 \u5efa\u7b51 \u8d44\u6e90 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540d\u79f0 \u3002 \u4e00\u65e6 \u60a8 \u5b8c\u6210 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5236\u4f5c \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 Carla \u8d44\u4ea7 \u4e00\u6837 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5b9e\u4f8b \u653e\u7f6e \u5728 \u5730\u56fe \u4e2d \u3002","title":"\u70d8\u7119"},{"location":"adv_ptv/","text":"PTV - Vissim \u8054\u5408 \u4eff\u771f Carla \u5f00\u53d1 \u4e86 \u4e0e PTV - Vissim \u7684 \u534f\u540c \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u80fd\u529b \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u534f\u540c \u4eff\u771f \u521b\u5efa \u65b0 \u7f51\u7edc \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u4e3a\u4e86 \u8fd0\u884c \u534f\u540c \u4eff\u771f \uff0c \u6709 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u662f \u5fc5\u8981 \u7684 \u3002 \u8d2d\u4e70 PTV - Vissim \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u9700\u8981 \u83b7\u53d6 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u754c\u9762 \u63d2\u4ef6 \u3002 \u5728 PTV - Vissim \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u67e5\u627e DrivingSimulatorProxy . dll \u3002 \u5c06 \u5176 \u79fb\u81f3 C : \\ Windows \\ System32 \u3002 \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u4e0e \u6b64 \u529f\u80fd \u76f8\u5173 \u7684 \u6240\u6709 \u5185\u5bb9 \u90fd \u53ef\u4ee5 \u5728 \u201c Co - Simulation / PTV - Vissim \u201d \u4e2d \u627e\u5230 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u793a\u4f8b \uff0c \u5176\u4e2d \u5305\u542b Town01 \u548c Town03 \u7684 \u7f51\u7edc \u3002 \u8981 \u8fd0\u884c \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u4f7f\u7528 \u811a\u672c PTV - Vissim / run _ synchronization . py \u3002 \u8fd9\u6709 \u4e00\u4e2a \u5305\u542b PTV - Vissim \u7f51\u7edc \u7684 \u5f3a\u5236 \u53c2\u6570 \u548c \u4e00\u4e9b \u5176\u4ed6 \u53ef \u9009 \u53c2\u6570 \u3002 vissim _ network \u2014 vissim \u7f51\u7edc \u6587\u4ef6 \u3002 \u8fd9 \u53ef\u4ee5 \u662f \u4e00\u4e2a \u793a\u4f8b \uff0c \u4e5f \u53ef\u4ee5 \u662f \u4e00\u4e2a \u81ea\u884c \u521b\u5efa \u7684 PTV - Vissim \u7f51\u7edc \u3002 -- carla - host \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 \uff09 \u2014 carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 \uff09 \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- vissim - version \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2020 \uff09 \u2014 PTV - Vissim \u7248\u672c \u3002 -- step - length ( default : 0.05 s ) - \u4e3a \u4eff\u771f \u65f6\u95f4 \u6b65 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u589e\u91cf \u79d2 \u3002 -- simulator - vehicles \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 1 \uff09 \u2014 \u5c06 \u5728 Carla \u4e2d \u751f\u6210 \u5e76 \u4f20\u9012 \u7ed9 PTV - Vissim \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 python3 run _ synchronization . py examples / Town03 / Town03 . inpx \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u4e2d \u6309 Ctrl + C \u3002 \u4e24\u4e2a \u4eff\u771f \u5c06 \u540c\u6b65 \u8fd0\u884c \u3002 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u53d1\u751f \u7684 \u52a8\u4f5c \u6216 \u4e8b\u4ef6 \u5c06 \u4f20\u64ad \u5230 \u53e6 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u5305\u62ec \u8f66\u8f86 \u79fb\u52a8 \u548c \u751f\u6210 \u3002 \u7531\u4e8e PTV - Vissim \u7c7b\u578b \uff0c \u751f\u6210 \u53d7\u5230 \u9650\u5236 \u53d7\u5230\u9650\u5236 \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76\u4e14 PTV - Vissim \u4e2d \u7684 Vehicle Type \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \uff0c \u5b83 \u5c06 \u751f\u6210 \u6c7d\u8f66 \u3002 \u4e0d\u7ba1 \u5b83 \u662f\u5426 \u5728 Carla \u4e2d \u4f5c\u4e3a \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u5728 \u63d0\u4f9b \u7684 \u793a\u4f8b \u4e2d \uff0c \u8f66\u8f86 \u7c7b\u578b \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 PTV - Vissim \u4e2d \u751f\u6210 \uff0c Carla \u5c06 \u4f7f\u7528 \u76f8\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u3002 \u5c3a\u5bf8 \u548c \u7279\u6027 \u5c06 \u76f8\u4f3c \uff0c \u4f46 \u4e0d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7f51\u7edc \u4e3a\u4e86 \u8ba9 \u65b0 \u7684 PTV - Vissim \u7f51\u7edc \u4e0e Carla \u4e00\u8d77 \u8fd0\u884c \uff0c \u9700\u8981 \u5b8c\u6210 \u4e00\u4e9b \u8bbe\u7f6e \u3002 \u6fc0\u6d3b \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8f6c \u5230 Base Data / Network setting / Driving simulator \u5e76 \u542f\u7528 \u8be5 \u9009\u9879 \u6307\u5b9a \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u3002 \u8fd9\u4e9b \u7c7b\u578b \u5c06 \u5728 PTV - Vissim \u4e2d \u7528\u4e8e \u4e0e Carla \u4e2d \u5b8c\u6210 \u7684 \u751f\u6210 \u540c\u6b65 \uff0c \u9ed8\u8ba4 \u4e3a\u7a7a \u5c06 \u7f51\u7edc \u5bfc\u51fa \u4e3a . inpx \u3002 \u521b\u5efa \u7f51\u7edc \uff0c \u5c06 \u5176 \u5bfc\u51fa \uff0c \u7136\u540e \u4f7f\u7528 run _ synchronization . py \u8fd0\u884c \u534f\u540c \u4eff\u771f \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u4efb\u4f55 \u8f66\u8f86 \u90fd \u5c06 \u4f7f\u7528 \u8fd9\u4e9b \u7c7b\u578b \u5728 PTV - Vissim \u4e2d \u751f\u6210 \u3002 \u7b14\u8bb0 \u5982\u679c \u884c\u4eba \u548c \u8f66\u8f86 \u7c7b\u578b \u4e3a\u7a7a \uff0c PTV - Vissim \u5c06 \u5d29\u6e83 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9 \u5c31\u662f PTV - Vissim \u4e0e Carla \u7684 \u8054\u5408 \u4eff\u771f \u7684 \u5168\u90e8 \u5185\u5bb9 \u5168\u90e8\u5185\u5bb9 \u3002 \u6253\u5f00 Carla \u5e76 \u73a9\u5f04 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"PTV - Vissim \u8054\u5408 \u4eff\u771f"},{"location":"adv_ptv/#ptv-vissim","text":"Carla \u5f00\u53d1 \u4e86 \u4e0e PTV - Vissim \u7684 \u534f\u540c \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u80fd\u529b \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u534f\u540c \u4eff\u771f \u521b\u5efa \u65b0 \u7f51\u7edc","title":"PTV - Vissim \u8054\u5408 \u4eff\u771f"},{"location":"adv_ptv/#_1","text":"\u4e3a\u4e86 \u8fd0\u884c \u534f\u540c \u4eff\u771f \uff0c \u6709 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u662f \u5fc5\u8981 \u7684 \u3002 \u8d2d\u4e70 PTV - Vissim \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u9700\u8981 \u83b7\u53d6 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u754c\u9762 \u63d2\u4ef6 \u3002 \u5728 PTV - Vissim \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u67e5\u627e DrivingSimulatorProxy . dll \u3002 \u5c06 \u5176 \u79fb\u81f3 C : \\ Windows \\ System32 \u3002","title":"\u5fc5\u5907\u6761\u4ef6"},{"location":"adv_ptv/#_2","text":"\u4e0e \u6b64 \u529f\u80fd \u76f8\u5173 \u7684 \u6240\u6709 \u5185\u5bb9 \u90fd \u53ef\u4ee5 \u5728 \u201c Co - Simulation / PTV - Vissim \u201d \u4e2d \u627e\u5230 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u793a\u4f8b \uff0c \u5176\u4e2d \u5305\u542b Town01 \u548c Town03 \u7684 \u7f51\u7edc \u3002 \u8981 \u8fd0\u884c \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u4f7f\u7528 \u811a\u672c PTV - Vissim / run _ synchronization . py \u3002 \u8fd9\u6709 \u4e00\u4e2a \u5305\u542b PTV - Vissim \u7f51\u7edc \u7684 \u5f3a\u5236 \u53c2\u6570 \u548c \u4e00\u4e9b \u5176\u4ed6 \u53ef \u9009 \u53c2\u6570 \u3002 vissim _ network \u2014 vissim \u7f51\u7edc \u6587\u4ef6 \u3002 \u8fd9 \u53ef\u4ee5 \u662f \u4e00\u4e2a \u793a\u4f8b \uff0c \u4e5f \u53ef\u4ee5 \u662f \u4e00\u4e2a \u81ea\u884c \u521b\u5efa \u7684 PTV - Vissim \u7f51\u7edc \u3002 -- carla - host \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 \uff09 \u2014 carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 \uff09 \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- vissim - version \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2020 \uff09 \u2014 PTV - Vissim \u7248\u672c \u3002 -- step - length ( default : 0.05 s ) - \u4e3a \u4eff\u771f \u65f6\u95f4 \u6b65 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u589e\u91cf \u79d2 \u3002 -- simulator - vehicles \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 1 \uff09 \u2014 \u5c06 \u5728 Carla \u4e2d \u751f\u6210 \u5e76 \u4f20\u9012 \u7ed9 PTV - Vissim \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 python3 run _ synchronization . py examples / Town03 / Town03 . inpx \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u4e2d \u6309 Ctrl + C \u3002 \u4e24\u4e2a \u4eff\u771f \u5c06 \u540c\u6b65 \u8fd0\u884c \u3002 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u53d1\u751f \u7684 \u52a8\u4f5c \u6216 \u4e8b\u4ef6 \u5c06 \u4f20\u64ad \u5230 \u53e6 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u5305\u62ec \u8f66\u8f86 \u79fb\u52a8 \u548c \u751f\u6210 \u3002 \u7531\u4e8e PTV - Vissim \u7c7b\u578b \uff0c \u751f\u6210 \u53d7\u5230 \u9650\u5236 \u53d7\u5230\u9650\u5236 \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76\u4e14 PTV - Vissim \u4e2d \u7684 Vehicle Type \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \uff0c \u5b83 \u5c06 \u751f\u6210 \u6c7d\u8f66 \u3002 \u4e0d\u7ba1 \u5b83 \u662f\u5426 \u5728 Carla \u4e2d \u4f5c\u4e3a \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u5728 \u63d0\u4f9b \u7684 \u793a\u4f8b \u4e2d \uff0c \u8f66\u8f86 \u7c7b\u578b \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 PTV - Vissim \u4e2d \u751f\u6210 \uff0c Carla \u5c06 \u4f7f\u7528 \u76f8\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u3002 \u5c3a\u5bf8 \u548c \u7279\u6027 \u5c06 \u76f8\u4f3c \uff0c \u4f46 \u4e0d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002","title":"\u8fd0\u884c \u8054\u5408 \u4eff\u771f"},{"location":"adv_ptv/#_3","text":"\u4e3a\u4e86 \u8ba9 \u65b0 \u7684 PTV - Vissim \u7f51\u7edc \u4e0e Carla \u4e00\u8d77 \u8fd0\u884c \uff0c \u9700\u8981 \u5b8c\u6210 \u4e00\u4e9b \u8bbe\u7f6e \u3002 \u6fc0\u6d3b \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8f6c \u5230 Base Data / Network setting / Driving simulator \u5e76 \u542f\u7528 \u8be5 \u9009\u9879 \u6307\u5b9a \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u3002 \u8fd9\u4e9b \u7c7b\u578b \u5c06 \u5728 PTV - Vissim \u4e2d \u7528\u4e8e \u4e0e Carla \u4e2d \u5b8c\u6210 \u7684 \u751f\u6210 \u540c\u6b65 \uff0c \u9ed8\u8ba4 \u4e3a\u7a7a \u5c06 \u7f51\u7edc \u5bfc\u51fa \u4e3a . inpx \u3002 \u521b\u5efa \u7f51\u7edc \uff0c \u5c06 \u5176 \u5bfc\u51fa \uff0c \u7136\u540e \u4f7f\u7528 run _ synchronization . py \u8fd0\u884c \u534f\u540c \u4eff\u771f \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u4efb\u4f55 \u8f66\u8f86 \u90fd \u5c06 \u4f7f\u7528 \u8fd9\u4e9b \u7c7b\u578b \u5728 PTV - Vissim \u4e2d \u751f\u6210 \u3002 \u7b14\u8bb0 \u5982\u679c \u884c\u4eba \u548c \u8f66\u8f86 \u7c7b\u578b \u4e3a\u7a7a \uff0c PTV - Vissim \u5c06 \u5d29\u6e83 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9 \u5c31\u662f PTV - Vissim \u4e0e Carla \u7684 \u8054\u5408 \u4eff\u771f \u7684 \u5168\u90e8 \u5185\u5bb9 \u5168\u90e8\u5185\u5bb9 \u3002 \u6253\u5f00 Carla \u5e76 \u73a9\u5f04 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u521b\u5efa \u4e00\u4e2a \u65b0 \u7f51\u7edc"},{"location":"adv_recorder/","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b64 \u529f\u80fd \u5141\u8bb8 \u8bb0\u5f55 \u548c \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u6240\u6709 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u90fd \u8bb0\u5f55 \u5728 recorder file \u4e2d \u3002 \u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u67e5\u8be2 \u53ef\u4ee5 \u8ddf\u8e2a \u548c \u7814\u7a76 \u8fd9\u4e9b \u4e8b\u4ef6 \u3002 \u8bb0\u5f55 \u4eff\u771f \u64ad\u653e \u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50 \u5f55\u5236 \u6587\u4ef6 \u67e5\u8be2 \u78b0\u649e \u88ab \u56f0\u4f4f \u7684 \u89d2\u8272 \u793a\u4f8b Python \u811a\u672c \u8bb0\u5f55 \u6240\u6709 \u6570\u636e \u4ec5 \u5199\u5165 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 carla . Client \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \uff0c \u6bcf\u5e27 \u66f4\u65b0 \u89d2\u8272 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 Actor \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u5f55\u97f3 \u4e2d \u7684 \u5c06 \u7ee7\u7eed \u4ed6\u4eec \u7684 \u65b9\u5f0f \uff0c \u5c31 \u597d\u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u7684 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u89d2\u8272 \u2014 \u521b\u5efa \u548c \u9500\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u6846 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u6765\u81ea \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ \u3001 / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u7684 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u4e2d \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 additional _ data \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u6f14\u5458 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \uff0c \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u5f55\u97f3 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002 \u4eff\u771f \u64ad\u653e \u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u65f6\u5019 \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \uff0c \u8fd9\u4e2a \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u8bf4\u660e \u7b14\u8bb0 \u5f00\u59cb \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u662f \u80af\u5b9a \u7684 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u8ba1\u7b97 \u3002 \u5982\u679c \u662f \u5426\u5b9a \u7684 \uff0c \u5c06 \u4ece \u6700\u540e \u8003\u8651 \u3002 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u64ad\u653e \u79d2\u6570 \u3002 0 \u662f \u6240\u6709 \u7684 \u5f55\u97f3 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u76f8\u673a \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u6f14\u5458 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u201c 0 \u201d \u4ee5 \u8ba9 \u89c2\u4f17 \u81ea\u7531 \u79fb\u52a8 \u3002 \u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50 \u65f6\u95f4 \u56e0\u7d20 \u5c06 \u51b3\u5b9a \u64ad\u653e \u901f\u5ea6 \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u66f4\u6539 \u800c \u65e0\u9700 \u505c\u6b62 \u56de\u653e \u3002 client . set _ replayer _ time _ factor ( 2.0 ) \u53c2\u6570 \u9ed8\u8ba4 \u5feb \u52a8\u4f5c \u52a8\u4f5c \u6162\u52a8\u4f5c time _ factor 1.0 > 1.0 * * < 1.0 * * \u91cd\u8981 \u7684 \u5982\u679c time _ factor > 2.0 \uff0c actors \u7684 \u4f4d\u7f6e \u63d2\u503c \u88ab \u7981\u7528 \u5e76\u4e14 \u53ea\u662f \u66f4\u65b0 \u3002 \u884c\u4eba \u7684 \u52a8\u753b \u4e0d \u53d7 \u65f6\u95f4 \u56e0\u7d20 \u7684 \u5f71\u54cd \u3002 \u5f53 \u65f6\u95f4 \u56e0\u7d20 \u5728 20x \u5de6\u53f3 \u65f6 \uff0c \u5f88 \u5bb9\u6613 \u7406\u89e3 \u6d41\u91cf \u3002 \u5f55\u5236 \u6587\u4ef6 \u53ef\u4ee5 \u4f7f\u7528 \u7b80\u5355 \u7684 API \u8c03\u7528 \u6765 \u68c0\u7d22 \u8bb0\u5f55 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u68c0\u7d22 \u6ce8\u518c \u4e8b\u4ef6 \u7684 \u90a3\u4e9b \u5e27 \u3002 \u8bbe\u7f6e \u53c2\u6570 show _ all \u5c06 \u8fd4\u56de \u6bcf \u4e00\u5e27 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5173\u4e8e \u5982\u4f55 \u5b58\u50a8 \u6570\u636e \u7684 \u7ec6\u8282 \u5728 recorder ' s reference \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002 # \u663e\u793a \u76f8\u5173 \u5e27 \u7684 \u4fe1\u606f print ( client . show _ recorder _ file _ info ( \" recording01 . log \" ) ) \u5f00\u653e \u4fe1\u606f . \u8bb0\u5f55 \u4eff\u771f \u7684 \u5730\u56fe \u3001 \u65e5\u671f \u548c \u65f6\u95f4 \u3002 Frame information . \u4efb\u4f55 \u53ef\u80fd \u53d1\u751f \u7684 \u4e8b\u4ef6 \uff0c \u4f8b\u5982 \u89d2\u8272 \u751f\u6210 \u6216 \u78b0\u649e \u3002 \u5b83 \u5305\u542b \u6f14\u5458 \u7684 ID \u548c \u4e00\u4e9b \u9644\u52a0 \u4fe1\u606f \u3002 \u5173\u95ed \u4fe1\u606f . \u8bb0\u5f55 \u7684 \u5e27 \u6570 \u548c \u603b \u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 21 / 19 10 : 46 : 20 Frame 1 at 0 seconds Create 2190 : spectator ( 0 ) at ( - 260 , - 200 , 382.001 ) Create 2191 : traffic . traffic _ light ( 3 ) at ( 4255 , 10020 , 0 ) Create 2192 : traffic . traffic _ light ( 3 ) at ( 4025 , 7860 , 0 ) ... Create 2258 : traffic . speed _ limit.90 ( 0 ) at ( 21651.7 , - 1347.59 , 15 ) Create 2259 : traffic . speed _ limit.90 ( 0 ) at ( 5357 , 21457.1 , 15 ) Frame 2 at 0.0254253 seconds Create 2276 : vehicle . mini . cooperst ( 1 ) at ( 4347.63 , - 8409.51 , 120 ) number _ of _ wheels = 4 object _ type = color = 255 , 241 , 0 role _ name = autopilot ... Frame 2350 at 60.2805 seconds Destroy 2276 Frame 2351 at 60.3057 seconds Destroy 2277 ... Frames : 2354 Duration : 60.3753 seconds \u67e5\u8be2 \u78b0\u649e \u8f66\u8f86 \u5fc5\u987b \u6709 \u4e00\u4e2a \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4ee5 \u8bb0\u5f55 \u78b0\u649e \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u88ab \u67e5\u8be2 \uff0c \u4f7f\u7528 \u53c2\u6570 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u4e2d \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3002 \u4f8b\u5982 \uff0c h \u6807\u8bc6 role _ name = hero \u7684 \u89d2\u8272 \uff0c \u901a\u5e38 \u5206\u914d \u7ed9 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u53ef \u7528\u4e8e \u67e5\u8be2 \u3002 h = Hero v = Vehicle w = Walker t = Traffic light o = Other a = Any \u7b14\u8bb0 manual _ control . py \u811a\u672c \u4e3a \u81ea\u6211 \u8f66\u8f86 \u5206\u914d role _ name = hero \u3002 \u78b0\u649e \u67e5\u8be2 \u9700\u8981 \u4e24\u4e2a \u6807\u5fd7 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u663e\u793a \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 print ( client . show _ recorder _ collisions ( \" recording01 . log \" , \" v \" , \" a \" ) ) \u8f93\u51fa \u603b\u7ed3 \u4e86 \u78b0\u649e \u7684 \u65f6\u95f4 \uff0c \u4ee5\u53ca \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3001 ID \u548c \u63cf\u8ff0 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 36 : 08 Time Types Id Actor 1 Id Actor 2 16 v v 122 vehicle . yamaha . yzf 118 vehicle . dodge _ charger . police 27 v o 122 vehicle . yamaha . yzf 0 Frames : 790 Duration : 46 seconds \u91cd\u8981 \u7684 \u56e0\u4e3a \u8bb0\u5f55 \u78b0\u649e \u7684 \u662f Hero \u6216 Ego \u8f66\u8f86 \uff0c \u6240\u4ee5 \u8fd9 \u5c06 \u59cb\u7ec8 \u662f Actor 1 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5e76 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u8bbe\u7f6e \u5b83 \u6765 \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u78b0\u649e \u3002 client . replay _ file ( \" col2 . log \" , 13 , 0 , 122 ) \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u56de\u653e \u663e\u793a \u4e86 \u8fd9 \u4e00\u70b9 \u3002 \u88ab \u5361\u4f4f \u7684 \u89d2\u8272 \u68c0\u6d4b \u5728 \u5f55\u5236 \u8fc7\u7a0b \u4e2d \u5361\u4f4f \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u89d2\u8272 \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a \u5b83 \u88ab \u963b\u585e \u3002 \u8be5 \u5b9a\u4e49 \u7531 \u7528\u6237 \u5728 \u67e5\u8be2 \u671f\u95f4 \u8fdb\u884c \u3002 print ( client . show _ recorder _ actors _ blocked ( \" recording01 . log \" , min _ time , min _ distance ) ) \u53c2\u6570 \u8bf4\u660e \u9ed8\u8ba4 min _ time \u79fb\u52a8 \u7684 \u6700\u5c0f \u79d2\u6570 ` min _ distance ` \u3002 30 \u79d2 \u3002 min _ distance \u79fb\u52a8 \u7684 \u6700\u5c0f \u5398\u7c73 \u6570 \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 10 \u5398\u7c73 \u3002 \u7b14\u8bb0 \u6709\u65f6 \u8f66\u8f86 \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \u505c\u7559 \u7684 \u65f6\u95f4 \u6bd4 \u9884\u671f \u7684 \u8981 \u957f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8003\u8651 \u8f66\u8f86 \u5728 60 \u79d2 \u5185 \u79fb\u52a8 \u4e0d\u5230 1 \u7c73 \u65f6 \u88ab \u5361\u4f4f \u3002 client . show _ recorder _ actors _ blocked ( \" col3 . log \" , 60 , 100 ) \u8f93\u51fa \u5df2 \u6392\u5e8f \u7531 duration \u8868\u793a \uff0c \u5b83 \u8bf4\u660e \u4e86 \u505c\u6b62 \u88ab \u201c \u963b\u585e \u201d \u5e76 \u79fb\u52a8 min _ distance \u9700\u8981 \u591a\u957f \u65f6\u95f4 \u957f\u65f6\u95f4 \u591a\u957f\u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 45 : 01 Time Id Actor Duration 36 173 vehicle . nissan . patrol 336 75 214 vehicle . chevrolet . impala 295 302 143 vehicle . bmw . grandtourer 67 Frames : 6985 Duration : 374 seconds \u8f66\u8f86 173 \u5728 36 \u79d2 \u65f6 \u505c\u6b62 336 \u79d2 \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a 36 \u4e4b\u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u91cd\u65b0 \u4eff\u771f \u4ee5 \u68c0\u67e5 \u5b83 \u3002 client . replay _ file ( \" col3 . log \" , 34 , 0 , 173 ) \u793a\u4f8b python \u811a\u672c PythonAPI / examples \u4e2d \u63d0\u4f9b \u7684 \u4e00\u4e9b \u811a\u672c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7684 \u4f7f\u7528 \u3002 start _ recording . py \u5f00\u59cb \u5f55\u5236 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u5728 \u5f00\u59cb \u65f6 \u751f\u6210 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - n \uff08 \u53ef \u9009 \uff09 \u4ea7\u751f \u7684 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - t \uff08 \u53ef \u9009 \uff09 \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u3002 start _ replaying . py \u5f00\u59cb \u64ad\u653e \u5f55\u97f3 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f00\u59cb \u65f6\u95f4 \u3001 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u548c \u8981 \u8ddf\u968f \u7684 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u8d77\u59cb \u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - d ( \u53ef \u9009 ) \u671f\u95f4 \u3002 \u9ed8\u8ba4 \u4e3a \u5168\u90e8 \u3002 - c \uff08 \u53ef \u9009 \uff09 \u8981 \u5173\u6ce8 \u7684 \u6f14\u5458 \u7684 ID \u3002 show _ recorder _ file _ info . py \u663e\u793a \u5f55\u5236 \u6587\u4ef6 \u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u4ec5 \u663e\u793a \u8bb0\u5f55 \u4e8b\u4ef6 \u7684 \u5e27 \u3002 \u4f46\u662f \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u53ef\u4ee5 \u663e\u793a \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u6807\u8bb0 \u4ee5 \u663e\u793a \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 show _ recorder _ collisions . py \u663e\u793a \u7c7b\u578b \u4e3a A \u548c B \u7684 \u6f14\u5458 \u7684 \u4e24\u4e2a \u6807\u5fd7 \u4e4b\u95f4 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 - t = vv \u5c06 \u663e\u793a \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6240\u6709 \u78b0\u649e \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \u76f8\u5173 \u89d2\u8272 \u7684 \u6807\u5fd7 \u3002 h = hero v = vehicle w = walker t = traffic light o = other a = any show _ recorder _ actors _ blocked . py \u5217\u51fa \u88ab \u8ba4\u4e3a \u88ab \u963b\u6b62 \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a Actors \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \uff08 \u53ef \u9009 \uff09 \u662f \u65f6\u5019 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u585e \u4e4b\u524d \u79fb\u52a8 - d \u4e86 \u3002 - d ( \u53ef \u9009 ) \u79fb\u52a8 \u8ddd\u79bb \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 \u73b0\u5728 \u662f \u8bd5\u9a8c \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u7684 \u65f6\u5019 \u4e86 \u3002 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u56de\u653e \u4eff\u771f \u3001 \u8ffd\u6eaf \u4e8b\u4ef6 \u3001 \u8fdb\u884c \u66f4\u6539 \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \u3002 \u5728 Carla \u8bba\u575b \u4e0a \u5c31 \u6b64\u4e8b \u53d1\u8868 \u8868\u610f \u610f\u89c1 \u53d1\u8868\u610f\u89c1 \u3002 Carla \u8bba\u575b","title":"\u8bb0\u5f55\u5668"},{"location":"adv_recorder/#_1","text":"\u6b64 \u529f\u80fd \u5141\u8bb8 \u8bb0\u5f55 \u548c \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u6240\u6709 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u90fd \u8bb0\u5f55 \u5728 recorder file \u4e2d \u3002 \u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u67e5\u8be2 \u53ef\u4ee5 \u8ddf\u8e2a \u548c \u7814\u7a76 \u8fd9\u4e9b \u4e8b\u4ef6 \u3002 \u8bb0\u5f55 \u4eff\u771f \u64ad\u653e \u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50 \u5f55\u5236 \u6587\u4ef6 \u67e5\u8be2 \u78b0\u649e \u88ab \u56f0\u4f4f \u7684 \u89d2\u8272 \u793a\u4f8b Python \u811a\u672c","title":"\u8bb0\u5f55\u5668"},{"location":"adv_recorder/#_2","text":"\u6240\u6709 \u6570\u636e \u4ec5 \u5199\u5165 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 carla . Client \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \uff0c \u6bcf\u5e27 \u66f4\u65b0 \u89d2\u8272 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 Actor \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u5f55\u97f3 \u4e2d \u7684 \u5c06 \u7ee7\u7eed \u4ed6\u4eec \u7684 \u65b9\u5f0f \uff0c \u5c31 \u597d\u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u7684 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u89d2\u8272 \u2014 \u521b\u5efa \u548c \u9500\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u6846 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u6765\u81ea \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ \u3001 / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u7684 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u4e2d \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 additional _ data \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u6f14\u5458 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \uff0c \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u5f55\u97f3 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002","title":"\u8bb0\u5f55"},{"location":"adv_recorder/#_3","text":"\u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u65f6\u5019 \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \uff0c \u8fd9\u4e2a \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u8bf4\u660e \u7b14\u8bb0 \u5f00\u59cb \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u662f \u80af\u5b9a \u7684 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u8ba1\u7b97 \u3002 \u5982\u679c \u662f \u5426\u5b9a \u7684 \uff0c \u5c06 \u4ece \u6700\u540e \u8003\u8651 \u3002 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u64ad\u653e \u79d2\u6570 \u3002 0 \u662f \u6240\u6709 \u7684 \u5f55\u97f3 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u76f8\u673a \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u6f14\u5458 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u201c 0 \u201d \u4ee5 \u8ba9 \u89c2\u4f17 \u81ea\u7531 \u79fb\u52a8 \u3002","title":"\u4eff\u771f \u64ad\u653e"},{"location":"adv_recorder/#_4","text":"\u65f6\u95f4 \u56e0\u7d20 \u5c06 \u51b3\u5b9a \u64ad\u653e \u901f\u5ea6 \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u66f4\u6539 \u800c \u65e0\u9700 \u505c\u6b62 \u56de\u653e \u3002 client . set _ replayer _ time _ factor ( 2.0 ) \u53c2\u6570 \u9ed8\u8ba4 \u5feb \u52a8\u4f5c \u52a8\u4f5c \u6162\u52a8\u4f5c time _ factor 1.0 > 1.0 * * < 1.0 * * \u91cd\u8981 \u7684 \u5982\u679c time _ factor > 2.0 \uff0c actors \u7684 \u4f4d\u7f6e \u63d2\u503c \u88ab \u7981\u7528 \u5e76\u4e14 \u53ea\u662f \u66f4\u65b0 \u3002 \u884c\u4eba \u7684 \u52a8\u753b \u4e0d \u53d7 \u65f6\u95f4 \u56e0\u7d20 \u7684 \u5f71\u54cd \u3002 \u5f53 \u65f6\u95f4 \u56e0\u7d20 \u5728 20x \u5de6\u53f3 \u65f6 \uff0c \u5f88 \u5bb9\u6613 \u7406\u89e3 \u6d41\u91cf \u3002","title":"\u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50"},{"location":"adv_recorder/#_5","text":"\u53ef\u4ee5 \u4f7f\u7528 \u7b80\u5355 \u7684 API \u8c03\u7528 \u6765 \u68c0\u7d22 \u8bb0\u5f55 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u68c0\u7d22 \u6ce8\u518c \u4e8b\u4ef6 \u7684 \u90a3\u4e9b \u5e27 \u3002 \u8bbe\u7f6e \u53c2\u6570 show _ all \u5c06 \u8fd4\u56de \u6bcf \u4e00\u5e27 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5173\u4e8e \u5982\u4f55 \u5b58\u50a8 \u6570\u636e \u7684 \u7ec6\u8282 \u5728 recorder ' s reference \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002 # \u663e\u793a \u76f8\u5173 \u5e27 \u7684 \u4fe1\u606f print ( client . show _ recorder _ file _ info ( \" recording01 . log \" ) ) \u5f00\u653e \u4fe1\u606f . \u8bb0\u5f55 \u4eff\u771f \u7684 \u5730\u56fe \u3001 \u65e5\u671f \u548c \u65f6\u95f4 \u3002 Frame information . \u4efb\u4f55 \u53ef\u80fd \u53d1\u751f \u7684 \u4e8b\u4ef6 \uff0c \u4f8b\u5982 \u89d2\u8272 \u751f\u6210 \u6216 \u78b0\u649e \u3002 \u5b83 \u5305\u542b \u6f14\u5458 \u7684 ID \u548c \u4e00\u4e9b \u9644\u52a0 \u4fe1\u606f \u3002 \u5173\u95ed \u4fe1\u606f . \u8bb0\u5f55 \u7684 \u5e27 \u6570 \u548c \u603b \u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 21 / 19 10 : 46 : 20 Frame 1 at 0 seconds Create 2190 : spectator ( 0 ) at ( - 260 , - 200 , 382.001 ) Create 2191 : traffic . traffic _ light ( 3 ) at ( 4255 , 10020 , 0 ) Create 2192 : traffic . traffic _ light ( 3 ) at ( 4025 , 7860 , 0 ) ... Create 2258 : traffic . speed _ limit.90 ( 0 ) at ( 21651.7 , - 1347.59 , 15 ) Create 2259 : traffic . speed _ limit.90 ( 0 ) at ( 5357 , 21457.1 , 15 ) Frame 2 at 0.0254253 seconds Create 2276 : vehicle . mini . cooperst ( 1 ) at ( 4347.63 , - 8409.51 , 120 ) number _ of _ wheels = 4 object _ type = color = 255 , 241 , 0 role _ name = autopilot ... Frame 2350 at 60.2805 seconds Destroy 2276 Frame 2351 at 60.3057 seconds Destroy 2277 ... Frames : 2354 Duration : 60.3753 seconds","title":"\u5f55\u5236 \u6587\u4ef6"},{"location":"adv_recorder/#_6","text":"","title":"\u67e5\u8be2"},{"location":"adv_recorder/#_7","text":"\u8f66\u8f86 \u5fc5\u987b \u6709 \u4e00\u4e2a \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4ee5 \u8bb0\u5f55 \u78b0\u649e \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u88ab \u67e5\u8be2 \uff0c \u4f7f\u7528 \u53c2\u6570 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u4e2d \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3002 \u4f8b\u5982 \uff0c h \u6807\u8bc6 role _ name = hero \u7684 \u89d2\u8272 \uff0c \u901a\u5e38 \u5206\u914d \u7ed9 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u53ef \u7528\u4e8e \u67e5\u8be2 \u3002 h = Hero v = Vehicle w = Walker t = Traffic light o = Other a = Any \u7b14\u8bb0 manual _ control . py \u811a\u672c \u4e3a \u81ea\u6211 \u8f66\u8f86 \u5206\u914d role _ name = hero \u3002 \u78b0\u649e \u67e5\u8be2 \u9700\u8981 \u4e24\u4e2a \u6807\u5fd7 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u663e\u793a \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 print ( client . show _ recorder _ collisions ( \" recording01 . log \" , \" v \" , \" a \" ) ) \u8f93\u51fa \u603b\u7ed3 \u4e86 \u78b0\u649e \u7684 \u65f6\u95f4 \uff0c \u4ee5\u53ca \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3001 ID \u548c \u63cf\u8ff0 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 36 : 08 Time Types Id Actor 1 Id Actor 2 16 v v 122 vehicle . yamaha . yzf 118 vehicle . dodge _ charger . police 27 v o 122 vehicle . yamaha . yzf 0 Frames : 790 Duration : 46 seconds \u91cd\u8981 \u7684 \u56e0\u4e3a \u8bb0\u5f55 \u78b0\u649e \u7684 \u662f Hero \u6216 Ego \u8f66\u8f86 \uff0c \u6240\u4ee5 \u8fd9 \u5c06 \u59cb\u7ec8 \u662f Actor 1 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5e76 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u8bbe\u7f6e \u5b83 \u6765 \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u78b0\u649e \u3002 client . replay _ file ( \" col2 . log \" , 13 , 0 , 122 ) \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u56de\u653e \u663e\u793a \u4e86 \u8fd9 \u4e00\u70b9 \u3002","title":"\u78b0\u649e"},{"location":"adv_recorder/#_8","text":"\u68c0\u6d4b \u5728 \u5f55\u5236 \u8fc7\u7a0b \u4e2d \u5361\u4f4f \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u89d2\u8272 \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a \u5b83 \u88ab \u963b\u585e \u3002 \u8be5 \u5b9a\u4e49 \u7531 \u7528\u6237 \u5728 \u67e5\u8be2 \u671f\u95f4 \u8fdb\u884c \u3002 print ( client . show _ recorder _ actors _ blocked ( \" recording01 . log \" , min _ time , min _ distance ) ) \u53c2\u6570 \u8bf4\u660e \u9ed8\u8ba4 min _ time \u79fb\u52a8 \u7684 \u6700\u5c0f \u79d2\u6570 ` min _ distance ` \u3002 30 \u79d2 \u3002 min _ distance \u79fb\u52a8 \u7684 \u6700\u5c0f \u5398\u7c73 \u6570 \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 10 \u5398\u7c73 \u3002 \u7b14\u8bb0 \u6709\u65f6 \u8f66\u8f86 \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \u505c\u7559 \u7684 \u65f6\u95f4 \u6bd4 \u9884\u671f \u7684 \u8981 \u957f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8003\u8651 \u8f66\u8f86 \u5728 60 \u79d2 \u5185 \u79fb\u52a8 \u4e0d\u5230 1 \u7c73 \u65f6 \u88ab \u5361\u4f4f \u3002 client . show _ recorder _ actors _ blocked ( \" col3 . log \" , 60 , 100 ) \u8f93\u51fa \u5df2 \u6392\u5e8f \u7531 duration \u8868\u793a \uff0c \u5b83 \u8bf4\u660e \u4e86 \u505c\u6b62 \u88ab \u201c \u963b\u585e \u201d \u5e76 \u79fb\u52a8 min _ distance \u9700\u8981 \u591a\u957f \u65f6\u95f4 \u957f\u65f6\u95f4 \u591a\u957f\u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 45 : 01 Time Id Actor Duration 36 173 vehicle . nissan . patrol 336 75 214 vehicle . chevrolet . impala 295 302 143 vehicle . bmw . grandtourer 67 Frames : 6985 Duration : 374 seconds \u8f66\u8f86 173 \u5728 36 \u79d2 \u65f6 \u505c\u6b62 336 \u79d2 \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a 36 \u4e4b\u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u91cd\u65b0 \u4eff\u771f \u4ee5 \u68c0\u67e5 \u5b83 \u3002 client . replay _ file ( \" col3 . log \" , 34 , 0 , 173 )","title":"\u88ab \u5361\u4f4f \u7684 \u89d2\u8272"},{"location":"adv_recorder/#python","text":"PythonAPI / examples \u4e2d \u63d0\u4f9b \u7684 \u4e00\u4e9b \u811a\u672c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7684 \u4f7f\u7528 \u3002 start _ recording . py \u5f00\u59cb \u5f55\u5236 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u5728 \u5f00\u59cb \u65f6 \u751f\u6210 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - n \uff08 \u53ef \u9009 \uff09 \u4ea7\u751f \u7684 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - t \uff08 \u53ef \u9009 \uff09 \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u3002 start _ replaying . py \u5f00\u59cb \u64ad\u653e \u5f55\u97f3 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f00\u59cb \u65f6\u95f4 \u3001 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u548c \u8981 \u8ddf\u968f \u7684 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u8d77\u59cb \u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - d ( \u53ef \u9009 ) \u671f\u95f4 \u3002 \u9ed8\u8ba4 \u4e3a \u5168\u90e8 \u3002 - c \uff08 \u53ef \u9009 \uff09 \u8981 \u5173\u6ce8 \u7684 \u6f14\u5458 \u7684 ID \u3002 show _ recorder _ file _ info . py \u663e\u793a \u5f55\u5236 \u6587\u4ef6 \u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u4ec5 \u663e\u793a \u8bb0\u5f55 \u4e8b\u4ef6 \u7684 \u5e27 \u3002 \u4f46\u662f \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u53ef\u4ee5 \u663e\u793a \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u6807\u8bb0 \u4ee5 \u663e\u793a \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 show _ recorder _ collisions . py \u663e\u793a \u7c7b\u578b \u4e3a A \u548c B \u7684 \u6f14\u5458 \u7684 \u4e24\u4e2a \u6807\u5fd7 \u4e4b\u95f4 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 - t = vv \u5c06 \u663e\u793a \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6240\u6709 \u78b0\u649e \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \u76f8\u5173 \u89d2\u8272 \u7684 \u6807\u5fd7 \u3002 h = hero v = vehicle w = walker t = traffic light o = other a = any show _ recorder _ actors _ blocked . py \u5217\u51fa \u88ab \u8ba4\u4e3a \u88ab \u963b\u6b62 \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a Actors \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \uff08 \u53ef \u9009 \uff09 \u662f \u65f6\u5019 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u585e \u4e4b\u524d \u79fb\u52a8 - d \u4e86 \u3002 - d ( \u53ef \u9009 ) \u79fb\u52a8 \u8ddd\u79bb \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 \u73b0\u5728 \u662f \u8bd5\u9a8c \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u7684 \u65f6\u5019 \u4e86 \u3002 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u56de\u653e \u4eff\u771f \u3001 \u8ffd\u6eaf \u4e8b\u4ef6 \u3001 \u8fdb\u884c \u66f4\u6539 \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \u3002 \u5728 Carla \u8bba\u575b \u4e0a \u5c31 \u6b64\u4e8b \u53d1\u8868 \u8868\u610f \u610f\u89c1 \u53d1\u8868\u610f\u89c1 \u3002 Carla \u8bba\u575b","title":"\u793a\u4f8b python \u811a\u672c"},{"location":"adv_rendering_options/","text":"\u6e32\u67d3 \u9009\u9879 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Carla \u4e2d \u53ef\u7528 \u7684 \u4e0d\u540c \u6e32\u67d3 \u9009\u9879 \uff0c \u5305\u62ec \u8d28\u91cf \u7ea7\u522b \u3001 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u548c \u79bb\u5c4f \u6a21\u5f0f \u3002 \u5b83 \u8fd8 \u89e3\u91ca \u4e86 Carla 0.9 . 12 \u7248\u672c \u5728 \u8fd9\u4e9b \u65b9\u9762 \u4e0e \u4ee5\u524d \u7248\u672c \u7684 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u3002 \u56fe\u5f62 \u8d28\u91cf Vulkan \u56fe\u5f62 API \u8d28\u91cf \u7b49\u7ea7 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u79bb\u5c4f \u6a21\u5f0f \u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3 \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09 ) \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09 \u91cd\u8981 \u4e0b\u9762 \u7684 \u4e00\u4e9b \u547d\u4ee4 \u9009\u9879 \u5728 Carla \u6253\u5305 \u7248\u672c \u4e2d \u5e76 \u4e0d \u7b49\u6548 \u3002 \u8bf7 \u9605\u8bfb \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u90e8\u5206 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u6b64 \u5185\u5bb9 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u56fe\u5f62 \u8d28\u91cf Vulkan \u56fe\u5f62 API \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u4ec5 \u652f\u6301 Vulkan \u56fe\u5f62 API \u3002 \u4ee5\u524d \u7248\u672c \u7684 Carla \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u4f7f\u7528 OpenGL \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u65e9\u671f \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u76f8\u5e94 \u7684 \u6587\u6863 \u7248\u672c \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u8d28\u91cf \u7b49\u7ea7 Carla \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 Epic \u662f \u9ed8\u8ba4 \u7684 \u5e76\u4e14 \u662f \u6700 \u8be6\u7ec6 \u7684 \u3002 Low \u4f1a \u7981\u7528 \u6240\u6709 \u5904\u7406 \u540e\u5904\u7406 \u548c \u9634\u5f71 \uff0c \u5e76\u4e14 \u7ed8\u56fe \u8ddd\u79bb \u8bbe\u7f6e \u4e3a 50m \u800c \u4e0d\u662f \u65e0\u9650 \u3002 \u4eff\u771f \u5728 Low \u6a21\u5f0f \u4e0b \u8fd0\u884c \u901f\u5ea6 \u660e\u663e \u66f4 \u5feb \u3002 \u8fd9 \u5728 \u5b58\u5728 \u6280\u672f \u9650\u5236 \u3001 \u7cbe\u5ea6 \u4e0d \u91cd\u8981 \u7684 \u60c5\u51b5 \u4e0b \u6216\u8005 \u5728 \u5177\u6709 \u66f4 \u7b80\u5355 \u6570\u636e \u6216\u4ec5 \u6d89\u53ca \u63a5\u8fd1 \u5143\u7d20 \u7684 \u6761\u4ef6 \u4e0b \u8bad\u7ec3 \u667a\u80fd \u4f53 \u7684 \u60c5\u51b5 \u4e0b \u5f88 \u6709 \u5e2e\u52a9 \u3002 \u4e0b\u56fe \u6bd4\u8f83 \u4e86 \u4e24\u79cd \u6a21\u5f0f \u3002 Windows \u548c Linux \u6240 \u4f7f\u7528 \u7684 \u6807\u5fd7 \u662f \u76f8\u540c \u7684 \u3002 \u4f7f\u7528 \u6784\u5efa \u65f6 \u6ca1\u6709 \u7b49\u6548 \u9009\u9879 \uff0c \u4f46 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6709 \u81ea\u5df1 \u7684 \u8d28\u91cf \u8bbe\u7f6e \u3002 \u8bbf\u95ee Settings / Engine Scalability Settings \u4ee5 \u83b7\u5f97 \u6240 \u9700 \u8d28\u91cf \u7684 \u66f4 \u5927 \u5b9a\u5236 \u3002 \u53f2\u8bd7 \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe \u91cd\u8981 \u5bfc\u81f4 \u53f2\u8bd7 \u6a21\u5f0f \u663e\u793a \u5f02\u5e38 \u767d\u5ea6 \u7684 \u95ee\u9898 \u5df2 \u5f97\u5230 \u4fee\u590d \u3002 \u5982\u679c \u95ee\u9898 \u4ecd\u7136 \u5b58\u5728 \uff0c \u8bf7 \u5220\u9664 GameUserSettings . ini \u3002 \u5b83 \u6b63\u5728 \u4fdd\u5b58 \u4ee5\u524d \u7684 \u8bbe\u7f6e \uff0c \u5e76 \u5c06 \u5728 \u4e0b\u6b21 \u8fd0\u884c \u65f6 \u518d\u6b21 \u751f\u6210 \u3002 Ubuntu \u8def\u5f84 \uff1a ~ / . config / Epic / CarlaUE4 / Saved / Config / LinuxNoEditor / Windows \u8def\u5f84 \uff1a < Package folder > \\ WindowsNoEditor \\ CarlaUE4 \\ Saved \\ Config \\ WindowsNoEditor \\ \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u6b64 \u6a21\u5f0f \u7981\u7528 \u6e32\u67d3 \u3002 \u865a\u5e7b \u5f15\u64ce \u5c06 \u8df3 \u8fc7 \u6709\u5173 \u56fe\u5f62 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 \u6b64 \u6a21\u5f0f \u53ef \u9632\u6b62 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5b83 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u5927\u91cf \u4ea4\u901a \u4eff\u771f \u548c \u975e\u5e38 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u7684 \u9053\u8def \u884c\u4e3a \u3002 \u8981 \u542f\u7528 \u6216 \u7981\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u8bf7 \u66f4\u6539 \u4e16\u754c \u8bbe\u7f6e \uff0c \u6216 \u4f7f\u7528 / PythonAPI / util / config . py \u3002 \u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 \u811a\u672c \u542f\u7528 \u548c \u7981\u7528 \u5b83 \u7684 \u793a\u4f8b \uff1a settings = world . get _ settings ( ) settings . no _ rendering _ mode = True world . apply _ settings ( settings ) ... settings . no _ rendering _ mode = False world . apply _ settings ( settings ) \u8981 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u7981\u7528 \u548c \u542f\u7528 \u6e32\u67d3 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd PythonAPI / util && python3 config . py -- no - rendering cd PythonAPI / util && python3 config . py -- rendering \u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u5c06 \u542f\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u5e76 \u4f7f\u7528 \u7b80\u5355 \u56fe\u5f62 \u5229\u7528 Pygame \u521b\u5efa \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff1a cd PythonAPI / examples && python3 no _ rendering _ mode . py \u7b14\u8bb0 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \uff0c \u76f8\u673a \u548c GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u4e0d \u4f7f\u7528 GPU \u3002 \u865a\u5e7b \u5f15\u64ce \u672a \u7ed8\u5236 \u4efb\u4f55 \u573a\u666f \u3002 \u79bb\u5c4f \u6a21\u5f0f \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u8be5 \u5f15\u64ce \u5f15\u5165 \u4e86 \u5bf9 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u652f\u6301 \u3002 \u5728 Carla \u7684 \u65e9\u671f \u7248\u672c \u4e2d \uff0c \u79bb\u5c4f \u6e32\u67d3 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5f62 API \u3002 \u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3 \u4e86\u89e3 \u65e0 \u6e32\u67d3 \u6a21\u5f0f ( no - rendering mode ) \u548c \u79bb\u5c4f \u6a21\u5f0f ( off - screen mode ) \u4e4b\u95f4 \u7684 \u533a\u522b \u5f88 \u91cd\u8981 \uff1a \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u4e0d \u6e32\u67d3 \u4efb\u4f55 \u5185\u5bb9 \u3002 \u56fe\u5f62 \u4e0d \u88ab \u8ba1\u7b97 \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u79bb\u5c4f \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u6b63\u5e38 \u5de5\u4f5c \uff0c \u8ba1\u7b97 \u6e32\u67d3 \uff0c \u4f46 \u6ca1\u6709 \u53ef\u7528 \u7684 \u663e\u793a \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u6570\u636e \u3002 \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09 \u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u542f\u52a8 Carla \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - RenderOffScreen \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09 \u5982\u679c \u60a8 \u4f7f\u7528 OpenGL \u6216 Vulkan \uff0c \u5219 \u4f7f\u7528 \u79bb\u5c4f \u6a21\u5f0f \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u4f7f\u7528 OpenGL \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5728 Linux \u4e2d\u4ee5 \u79bb\u5c4f \u6a21\u5f0f \u8fd0\u884c \uff1a # Linux DISPLAY = . / CarlaUE4 . sh - opengl Vulkan \u9700\u8981 \u989d\u5916 \u7684 \u6b65\u9aa4 \uff0c \u56e0\u4e3a \u5b83 \u9700\u8981 \u4f7f\u7528 X11 \u7f51\u7edc \u534f\u8bae \u7f51\u7edc\u534f\u8bae \u4e0e \u663e\u793a X \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u6307\u5bfc \u60a8 \u5982\u4f55 \u8bbe\u7f6e \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5c4f \u7684 Ubuntu 18.04 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u4e0e Vulkan \u4e00\u8d77 \u8fd0\u884c \u3002 1 . \u83b7\u53d6 \u6700\u65b0 \u7684 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \uff1a wget http : / / download . nvidia . com / XFree86 / Linux - x86 _ 64 / 450.57 / NVIDIA - Linux - x86 _ 64 - 450.57 . run 2 . \u5b89\u88c5 \u9a71\u52a8 \uff1a sudo / bin / bash NVIDIA - Linux - x86 _ 64 - 450.57 . run -- accept - license -- no - questions -- ui = none 3 . \u5b89\u88c5 xserver \u76f8\u5173 \u4f9d\u8d56 \uff1a sudo apt - get install - y xserver - xorg mesa - utils libvulkan1 4 . \u914d\u7f6e xserver \uff1a sudo nvidia - xconfig -- preserve - busid - a -- virtual = 1280x1024 5 . \u8bbe\u7f6e SDL _ VIDEODRIVER \u53d8\u91cf \u3002 ENV SDL _ VIDEODRIVER = x11 6 . \u8fd0\u884c xserver \uff1a sudo X : 0 & 7 . \u8fd0\u884c Carla \uff1a DISPLAY = : 0 . GPU . / CarlaUE4 . sh - vulkan Carla \u5728 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6267\u884c \u4e0a\u8ff0 \u6240\u6709 \u6b65\u9aa4 \u7684 Dockerfile \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u6e32\u67d3 \u9009\u9879"},{"location":"adv_rendering_options/#_1","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Carla \u4e2d \u53ef\u7528 \u7684 \u4e0d\u540c \u6e32\u67d3 \u9009\u9879 \uff0c \u5305\u62ec \u8d28\u91cf \u7ea7\u522b \u3001 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u548c \u79bb\u5c4f \u6a21\u5f0f \u3002 \u5b83 \u8fd8 \u89e3\u91ca \u4e86 Carla 0.9 . 12 \u7248\u672c \u5728 \u8fd9\u4e9b \u65b9\u9762 \u4e0e \u4ee5\u524d \u7248\u672c \u7684 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u3002 \u56fe\u5f62 \u8d28\u91cf Vulkan \u56fe\u5f62 API \u8d28\u91cf \u7b49\u7ea7 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u79bb\u5c4f \u6a21\u5f0f \u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3 \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09 ) \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09 \u91cd\u8981 \u4e0b\u9762 \u7684 \u4e00\u4e9b \u547d\u4ee4 \u9009\u9879 \u5728 Carla \u6253\u5305 \u7248\u672c \u4e2d \u5e76 \u4e0d \u7b49\u6548 \u3002 \u8bf7 \u9605\u8bfb \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u90e8\u5206 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u6b64 \u5185\u5bb9 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6e32\u67d3 \u9009\u9879"},{"location":"adv_rendering_options/#_2","text":"","title":"\u56fe\u5f62 \u8d28\u91cf"},{"location":"adv_rendering_options/#vulkan-api","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u4ec5 \u652f\u6301 Vulkan \u56fe\u5f62 API \u3002 \u4ee5\u524d \u7248\u672c \u7684 Carla \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u4f7f\u7528 OpenGL \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u65e9\u671f \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u76f8\u5e94 \u7684 \u6587\u6863 \u7248\u672c \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002","title":"Vulkan \u56fe\u5f62 API"},{"location":"adv_rendering_options/#_3","text":"Carla \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 Epic \u662f \u9ed8\u8ba4 \u7684 \u5e76\u4e14 \u662f \u6700 \u8be6\u7ec6 \u7684 \u3002 Low \u4f1a \u7981\u7528 \u6240\u6709 \u5904\u7406 \u540e\u5904\u7406 \u548c \u9634\u5f71 \uff0c \u5e76\u4e14 \u7ed8\u56fe \u8ddd\u79bb \u8bbe\u7f6e \u4e3a 50m \u800c \u4e0d\u662f \u65e0\u9650 \u3002 \u4eff\u771f \u5728 Low \u6a21\u5f0f \u4e0b \u8fd0\u884c \u901f\u5ea6 \u660e\u663e \u66f4 \u5feb \u3002 \u8fd9 \u5728 \u5b58\u5728 \u6280\u672f \u9650\u5236 \u3001 \u7cbe\u5ea6 \u4e0d \u91cd\u8981 \u7684 \u60c5\u51b5 \u4e0b \u6216\u8005 \u5728 \u5177\u6709 \u66f4 \u7b80\u5355 \u6570\u636e \u6216\u4ec5 \u6d89\u53ca \u63a5\u8fd1 \u5143\u7d20 \u7684 \u6761\u4ef6 \u4e0b \u8bad\u7ec3 \u667a\u80fd \u4f53 \u7684 \u60c5\u51b5 \u4e0b \u5f88 \u6709 \u5e2e\u52a9 \u3002 \u4e0b\u56fe \u6bd4\u8f83 \u4e86 \u4e24\u79cd \u6a21\u5f0f \u3002 Windows \u548c Linux \u6240 \u4f7f\u7528 \u7684 \u6807\u5fd7 \u662f \u76f8\u540c \u7684 \u3002 \u4f7f\u7528 \u6784\u5efa \u65f6 \u6ca1\u6709 \u7b49\u6548 \u9009\u9879 \uff0c \u4f46 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6709 \u81ea\u5df1 \u7684 \u8d28\u91cf \u8bbe\u7f6e \u3002 \u8bbf\u95ee Settings / Engine Scalability Settings \u4ee5 \u83b7\u5f97 \u6240 \u9700 \u8d28\u91cf \u7684 \u66f4 \u5927 \u5b9a\u5236 \u3002","title":"\u8d28\u91cf \u7b49\u7ea7"},{"location":"adv_rendering_options/#_4","text":". / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe","title":"\u53f2\u8bd7 \u6a21\u5f0f"},{"location":"adv_rendering_options/#_5","text":". / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe \u91cd\u8981 \u5bfc\u81f4 \u53f2\u8bd7 \u6a21\u5f0f \u663e\u793a \u5f02\u5e38 \u767d\u5ea6 \u7684 \u95ee\u9898 \u5df2 \u5f97\u5230 \u4fee\u590d \u3002 \u5982\u679c \u95ee\u9898 \u4ecd\u7136 \u5b58\u5728 \uff0c \u8bf7 \u5220\u9664 GameUserSettings . ini \u3002 \u5b83 \u6b63\u5728 \u4fdd\u5b58 \u4ee5\u524d \u7684 \u8bbe\u7f6e \uff0c \u5e76 \u5c06 \u5728 \u4e0b\u6b21 \u8fd0\u884c \u65f6 \u518d\u6b21 \u751f\u6210 \u3002 Ubuntu \u8def\u5f84 \uff1a ~ / . config / Epic / CarlaUE4 / Saved / Config / LinuxNoEditor / Windows \u8def\u5f84 \uff1a < Package folder > \\ WindowsNoEditor \\ CarlaUE4 \\ Saved \\ Config \\ WindowsNoEditor \\","title":"\u4f4e\u8d28\u91cf \u6a21\u5f0f"},{"location":"adv_rendering_options/#_6","text":"\u6b64 \u6a21\u5f0f \u7981\u7528 \u6e32\u67d3 \u3002 \u865a\u5e7b \u5f15\u64ce \u5c06 \u8df3 \u8fc7 \u6709\u5173 \u56fe\u5f62 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 \u6b64 \u6a21\u5f0f \u53ef \u9632\u6b62 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5b83 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u5927\u91cf \u4ea4\u901a \u4eff\u771f \u548c \u975e\u5e38 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u7684 \u9053\u8def \u884c\u4e3a \u3002 \u8981 \u542f\u7528 \u6216 \u7981\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u8bf7 \u66f4\u6539 \u4e16\u754c \u8bbe\u7f6e \uff0c \u6216 \u4f7f\u7528 / PythonAPI / util / config . py \u3002 \u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 \u811a\u672c \u542f\u7528 \u548c \u7981\u7528 \u5b83 \u7684 \u793a\u4f8b \uff1a settings = world . get _ settings ( ) settings . no _ rendering _ mode = True world . apply _ settings ( settings ) ... settings . no _ rendering _ mode = False world . apply _ settings ( settings ) \u8981 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u7981\u7528 \u548c \u542f\u7528 \u6e32\u67d3 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd PythonAPI / util && python3 config . py -- no - rendering cd PythonAPI / util && python3 config . py -- rendering \u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u5c06 \u542f\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u5e76 \u4f7f\u7528 \u7b80\u5355 \u56fe\u5f62 \u5229\u7528 Pygame \u521b\u5efa \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff1a cd PythonAPI / examples && python3 no _ rendering _ mode . py \u7b14\u8bb0 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \uff0c \u76f8\u673a \u548c GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u4e0d \u4f7f\u7528 GPU \u3002 \u865a\u5e7b \u5f15\u64ce \u672a \u7ed8\u5236 \u4efb\u4f55 \u573a\u666f \u3002","title":"\u65e0 \u6e32\u67d3 \u6a21\u5f0f"},{"location":"adv_rendering_options/#_7","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u8be5 \u5f15\u64ce \u5f15\u5165 \u4e86 \u5bf9 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u652f\u6301 \u3002 \u5728 Carla \u7684 \u65e9\u671f \u7248\u672c \u4e2d \uff0c \u79bb\u5c4f \u6e32\u67d3 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5f62 API \u3002","title":"\u79bb\u5c4f \u6a21\u5f0f"},{"location":"adv_rendering_options/#_8","text":"\u4e86\u89e3 \u65e0 \u6e32\u67d3 \u6a21\u5f0f ( no - rendering mode ) \u548c \u79bb\u5c4f \u6a21\u5f0f ( off - screen mode ) \u4e4b\u95f4 \u7684 \u533a\u522b \u5f88 \u91cd\u8981 \uff1a \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u4e0d \u6e32\u67d3 \u4efb\u4f55 \u5185\u5bb9 \u3002 \u56fe\u5f62 \u4e0d \u88ab \u8ba1\u7b97 \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u79bb\u5c4f \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u6b63\u5e38 \u5de5\u4f5c \uff0c \u8ba1\u7b97 \u6e32\u67d3 \uff0c \u4f46 \u6ca1\u6709 \u53ef\u7528 \u7684 \u663e\u793a \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u6570\u636e \u3002","title":"\u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3"},{"location":"adv_rendering_options/#0912","text":"\u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u542f\u52a8 Carla \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - RenderOffScreen","title":"\u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09"},{"location":"adv_rendering_options/#0912_1","text":"\u5982\u679c \u60a8 \u4f7f\u7528 OpenGL \u6216 Vulkan \uff0c \u5219 \u4f7f\u7528 \u79bb\u5c4f \u6a21\u5f0f \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u4f7f\u7528 OpenGL \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5728 Linux \u4e2d\u4ee5 \u79bb\u5c4f \u6a21\u5f0f \u8fd0\u884c \uff1a # Linux DISPLAY = . / CarlaUE4 . sh - opengl Vulkan \u9700\u8981 \u989d\u5916 \u7684 \u6b65\u9aa4 \uff0c \u56e0\u4e3a \u5b83 \u9700\u8981 \u4f7f\u7528 X11 \u7f51\u7edc \u534f\u8bae \u7f51\u7edc\u534f\u8bae \u4e0e \u663e\u793a X \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u6307\u5bfc \u60a8 \u5982\u4f55 \u8bbe\u7f6e \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5c4f \u7684 Ubuntu 18.04 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u4e0e Vulkan \u4e00\u8d77 \u8fd0\u884c \u3002 1 . \u83b7\u53d6 \u6700\u65b0 \u7684 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \uff1a wget http : / / download . nvidia . com / XFree86 / Linux - x86 _ 64 / 450.57 / NVIDIA - Linux - x86 _ 64 - 450.57 . run 2 . \u5b89\u88c5 \u9a71\u52a8 \uff1a sudo / bin / bash NVIDIA - Linux - x86 _ 64 - 450.57 . run -- accept - license -- no - questions -- ui = none 3 . \u5b89\u88c5 xserver \u76f8\u5173 \u4f9d\u8d56 \uff1a sudo apt - get install - y xserver - xorg mesa - utils libvulkan1 4 . \u914d\u7f6e xserver \uff1a sudo nvidia - xconfig -- preserve - busid - a -- virtual = 1280x1024 5 . \u8bbe\u7f6e SDL _ VIDEODRIVER \u53d8\u91cf \u3002 ENV SDL _ VIDEODRIVER = x11 6 . \u8fd0\u884c xserver \uff1a sudo X : 0 & 7 . \u8fd0\u884c Carla \uff1a DISPLAY = : 0 . GPU . / CarlaUE4 . sh - vulkan Carla \u5728 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6267\u884c \u4e0a\u8ff0 \u6240\u6709 \u6b65\u9aa4 \u7684 Dockerfile \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09"},{"location":"adv_rss/","text":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 Carla \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u96c6\u6210 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7684 C++ \u5e93 \u3002 \u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8c03\u67e5 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( Responsibility Sensitive Safety , RSS ) \u7684 \u884c\u4e3a \uff0c \u800c \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 Carla \u5c06 \u8d1f\u8d23 \u63d0\u4f9b \u8f93\u5165 \uff0c \u5e76 \u5c06 \u8f93\u51fa \u52a8\u6001 \u5e94\u7528 \u5230 \u81ea\u52a8 \u9a7e\u9a76 ( Autonomous Driving , AD ) \u7cfb\u7edf \u3002 \u6982\u8ff0 \u7f16\u8bd1 \u4ee5\u6765 \u6784\u5efa \u5f53\u524d \u72b6\u6001 RssSensor RssRestrictor \u91cd\u8981 \u6b64 \u529f\u80fd \u6b63\u5728 \u5f00\u53d1 \u4e2d \u3002 \u76ee\u524d \uff0c \u5b83 \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002 \u6982\u8ff0 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5e93 \u5b9e\u73b0 \u4e86 \u5b89\u5168 \u4fdd\u8bc1 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u5b83 \u63a5\u6536 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fe1\u606f \uff0c \u5e76 \u5411 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u9650\u5236 \u3002 \u7efc\u4e0a \u6240\u8ff0 \u7efc\u4e0a\u6240\u8ff0 \uff0c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6a21\u5757 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765 \u5b9a\u4e49 \u60c5\u51b5 \u3002 \u60c5\u5883 \u63cf\u8ff0 \u4e86 \u81ea\u6211 \u8f66\u8f86 \u4e0e \u73af\u5883 \u5143\u7d20 \u7684 \u72b6\u6001 \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u60c5\u51b5 \uff0c \u90fd \u4f1a \u8fdb\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \uff0c \u5e76 \u8ba1\u7b97 \u9002\u5f53 \u7684 \u54cd\u5e94 \u3002 \u603b\u4f53 \u54cd\u5e94 \u662f \u6240\u6709 \u54cd\u5e94 \u7684 \u7efc\u5408 \u7ed3\u679c \u3002 \u6709\u5173 \u8be5\u5e93 \u7684 \u5177\u4f53 \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \uff0c \u5c24\u5176 \u662f \u80cc\u666f \u90e8\u5206 \u3002 \u8fd9 \u662f \u5728 Carla \u4e2d \u4f7f\u7528 \u4e24\u4e2a \u5143\u7d20 \u5b9e\u73b0 \u7684 \u3002 RssSensor \u8d1f\u8d23 \u60c5\u51b5 \u5206\u6790 \uff0c \u5e76 \u4f7f\u7528 ad - rss - lib \u751f\u6210 \u54cd\u5e94 \u3002 RssRestrictor \u901a\u8fc7 \u9650\u5236 \u8f66\u8f86 \u7684 \u547d\u4ee4 \u6765 \u5e94\u7528 \u54cd\u5e94 \u3002 \u4e0b\u56fe \u63cf\u7ed8 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e0e Carla \u67b6\u6784 \u7684 \u96c6\u6210 \u3002 1 . \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u76f8\u673a \u56fe\u50cf \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \uff08 \u4ec5\u5f53 \u5ba2\u6237 \u9700\u8981 \u53ef\u89c6 \u53ef\u89c6\u5316 \u65f6 \uff09 \u3002 \u4e3a RssSensor \u63d0\u4f9b \u4e16\u754c \u6570\u636e \u3002 \u5c06 \u8f66\u8f86 \u7684 \u7269\u7406 \u6a21\u578b \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 RssRestrictor \u3002 \uff08 \u4ec5\u5f53 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u88ab \u8986\u76d6 \u65f6 \uff09 \u3002 2 . \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e3a RssSensor \u63d0\u4f9b \u4e00\u4e9b \u9700\u8981 \u8003\u8651 \u7684 \u53c2\u6570 \u3002 \u5411 RssResrictor \u53d1\u9001 \u521d\u59cb carla . VehicleControl . 3 . RssSensor \u4f7f\u7528 ad - rss - lib \u63d0\u53d6 \u60c5\u5883 \u3001 \u6267\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u5e76 \u751f\u6210 \u54cd\u5e94 \u3002 \u5411 RssRestrictor \u53d1\u9001 \u5305\u542b \u6b63\u786e \u54cd\u5e94 \u548c \u8981 \u5e94\u7528 \u7684 \u52a0\u901f \u9650\u5236 \u7684 \u54cd\u5e94 \u3002 4 . RssRestrictor \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bf7\u6c42 \uff0c \u5219 \u5c06 \u54cd\u5e94 \u5e94\u7528 \u4e8e carla . VehicleControl \uff0c \u5e76 \u8fd4\u56de \u7ed3\u679c \u3002 \u7ed3\u679c \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u7f16\u8bd1 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u96c6\u6210 \u5fc5\u987b \u4e0e Carla \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5206\u5f00 \u6784\u5efa \u3002 ad - rss - lib \u9644\u5e26 LGPL - 2.1 \u5f00\u6e90 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8fd9\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5b83 \u5fc5\u987b \u9759\u6001 \u94fe\u63a5 \u5230 libCarla \u3002 \u63d0\u9192 \u4e00\u4e0b \uff0c \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002 \u4f9d\u8d56 \u6784\u5efa \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53ca\u5176 \u4f9d\u8d56 \u9879 \u8fd8 \u9700\u8981 \u5176\u4ed6 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3002 \u67e5\u770b \u5b98\u65b9 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 Ubunutu ( > = 16.04 ) \u63d0\u4f9b \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install libgtest - dev libpython - dev libpugixml - dev libtbb - dev \u4f9d\u8d56 \u9879\u662f \u4f7f\u7528 colcon \u6784\u5efa \u7684 \uff0c \u56e0\u6b64 \u5fc5\u987b \u5b89\u88c5 \u5b83 \u3002 pip3 install -- user - U colcon - common - extensions Python \u7ed1\u5b9a \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install castxml pip3 install -- user pygccxml pyplusplus \u6784\u5efa \u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5373\u53ef \u6784\u5efa \u5b8c\u6574 \u7684 \u4f9d\u8d56 \u9879 \u548c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7ec4\u4ef6 \u96c6 \u3002 \u7f16\u8bd1 LibCarla \u4ee5 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u3002 make LibCarla . client . rss \u7f16\u8bd1 PythonAPI \u4ee5 \u5305\u542b \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u529f\u80fd \u3002 make PythonAPI . rss \u4f5c\u4e3a \u66ff\u4ee3 \u65b9\u6848 \uff0c \u53ef\u4ee5 \u76f4\u63a5 \u6784\u5efa \u5305 \u3002 make package . rss \u5f53\u524d \u72b6\u6001 RssSensor carla . RssSensor \u5b8c\u5168 \u652f\u6301 ad - rss - lib v4.2 . 0 \u529f\u80fd \u529f\u80fd\u96c6 \uff0c \u5305\u62ec \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 stay on road \u652f\u6301 \u548c \u975e \u7ed3\u6784 \u7ed3\u6784\u5316 \u7684 constellations \uff08 \u6bd4\u5982 \uff1a \u884c\u4eba \uff09 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u4e86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u771f\u5b9e \u6570\u636e \uff0c \u5305\u62ec \u5176\u4ed6 \u4ea4\u901a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 RssRestrictor \u5f53 \u5ba2\u6237 \u4f46 \u8c03\u7528 \u65f6 \uff0c carla . RssRestrictor \u5c06 \u4fee\u6539 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u901a\u8fc7 \u7ed9\u5b9a \u7684 \u54cd\u5e94 \u6700\u597d \u5730 \u8fbe\u5230 \u6240 \u9700 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u6216 \u51cf \u901f\u5ea6 \u3002 \u7531\u4e8e carla . VehicleControl \u5bf9\u8c61 \u7684 \u7ed3\u6784 \uff0c \u6240 \u5e94\u7528 \u7684 \u9650\u5236 \u5177\u6709 \u4e00\u5b9a \u7684 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u6cb9\u95e8 ( throttle ) \u3001 \u5239\u8f66 ( brake ) \u548c \u65b9\u5411 \u65b9\u5411\u76d8 ( streering ) \u503c \u3002 \u7136\u800c \uff0c \u7531\u4e8e \u6c7d\u8f66 \u7269\u7406 \u539f\u7406 \u548c \u7b80\u5355 \u7684 \u63a7\u5236 \u9009\u9879 \uff0c \u8fd9\u4e9b \u53ef\u80fd \u65e0\u6cd5 \u6ee1\u8db3 \u3002 \u53ea \u9700 \u901a\u8fc7 \u671d\u5e73 \u884c\u8f66 \u8f66\u9053 \u884c\u8f66\u9053 \u65b9\u5411 \u53cd\u5411 \u8f6c\u5411 \u5373\u53ef \u5728 \u6a2a\u5411 \u65b9\u5411 \u8fdb\u884c \u9650\u5236 \u5e72\u9884 \u3002 \u5982\u679c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8bf7\u6c42 \u51cf\u901f \uff0c \u5236\u52a8 \u5236\u52a8\u5668 \u5c06 \u88ab \u6fc0\u6d3b \u3002 \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e carla . Vehicle \u63d0\u4f9b \u7684 \u8f66\u8f86 \u8d28\u91cf \u548c \u5236\u52a8 \u626d\u77e9 \u3002 \u7b14\u8bb0 \u5728 \u81ea\u52a8 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u4e2d \uff0c \u53ef\u4ee5 \u4f7f \u8ba1\u5212 \u7684 \u8f68\u8ff9 \u9002\u5e94 \u9650\u5236 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u5feb\u901f \u63a7\u5236 \u73af\u8def \uff08 > 1KHz \uff09 \u6765 \u786e\u4fdd \u9075\u5faa \u8fd9\u4e9b \u8981\u6c42 \u3002 \u8fd9 \u5960\u5b9a \u4e86 Carla \u4e2d \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u67e5\u627e \u6709\u5173 \u7279\u5b9a \u5c5e\u6027 \u548c \u53c2\u6570 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u8d23\u4efb \u654f\u611f \u5b89\u5168"},{"location":"adv_rss/#_1","text":"Carla \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u96c6\u6210 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7684 C++ \u5e93 \u3002 \u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8c03\u67e5 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( Responsibility Sensitive Safety , RSS ) \u7684 \u884c\u4e3a \uff0c \u800c \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 Carla \u5c06 \u8d1f\u8d23 \u63d0\u4f9b \u8f93\u5165 \uff0c \u5e76 \u5c06 \u8f93\u51fa \u52a8\u6001 \u5e94\u7528 \u5230 \u81ea\u52a8 \u9a7e\u9a76 ( Autonomous Driving , AD ) \u7cfb\u7edf \u3002 \u6982\u8ff0 \u7f16\u8bd1 \u4ee5\u6765 \u6784\u5efa \u5f53\u524d \u72b6\u6001 RssSensor RssRestrictor \u91cd\u8981 \u6b64 \u529f\u80fd \u6b63\u5728 \u5f00\u53d1 \u4e2d \u3002 \u76ee\u524d \uff0c \u5b83 \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002","title":"\u8d23\u4efb \u654f\u611f \u5b89\u5168"},{"location":"adv_rss/#_2","text":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5e93 \u5b9e\u73b0 \u4e86 \u5b89\u5168 \u4fdd\u8bc1 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u5b83 \u63a5\u6536 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fe1\u606f \uff0c \u5e76 \u5411 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u9650\u5236 \u3002 \u7efc\u4e0a \u6240\u8ff0 \u7efc\u4e0a\u6240\u8ff0 \uff0c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6a21\u5757 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765 \u5b9a\u4e49 \u60c5\u51b5 \u3002 \u60c5\u5883 \u63cf\u8ff0 \u4e86 \u81ea\u6211 \u8f66\u8f86 \u4e0e \u73af\u5883 \u5143\u7d20 \u7684 \u72b6\u6001 \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u60c5\u51b5 \uff0c \u90fd \u4f1a \u8fdb\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \uff0c \u5e76 \u8ba1\u7b97 \u9002\u5f53 \u7684 \u54cd\u5e94 \u3002 \u603b\u4f53 \u54cd\u5e94 \u662f \u6240\u6709 \u54cd\u5e94 \u7684 \u7efc\u5408 \u7ed3\u679c \u3002 \u6709\u5173 \u8be5\u5e93 \u7684 \u5177\u4f53 \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \uff0c \u5c24\u5176 \u662f \u80cc\u666f \u90e8\u5206 \u3002 \u8fd9 \u662f \u5728 Carla \u4e2d \u4f7f\u7528 \u4e24\u4e2a \u5143\u7d20 \u5b9e\u73b0 \u7684 \u3002 RssSensor \u8d1f\u8d23 \u60c5\u51b5 \u5206\u6790 \uff0c \u5e76 \u4f7f\u7528 ad - rss - lib \u751f\u6210 \u54cd\u5e94 \u3002 RssRestrictor \u901a\u8fc7 \u9650\u5236 \u8f66\u8f86 \u7684 \u547d\u4ee4 \u6765 \u5e94\u7528 \u54cd\u5e94 \u3002 \u4e0b\u56fe \u63cf\u7ed8 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e0e Carla \u67b6\u6784 \u7684 \u96c6\u6210 \u3002 1 . \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u76f8\u673a \u56fe\u50cf \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \uff08 \u4ec5\u5f53 \u5ba2\u6237 \u9700\u8981 \u53ef\u89c6 \u53ef\u89c6\u5316 \u65f6 \uff09 \u3002 \u4e3a RssSensor \u63d0\u4f9b \u4e16\u754c \u6570\u636e \u3002 \u5c06 \u8f66\u8f86 \u7684 \u7269\u7406 \u6a21\u578b \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 RssRestrictor \u3002 \uff08 \u4ec5\u5f53 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u88ab \u8986\u76d6 \u65f6 \uff09 \u3002 2 . \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e3a RssSensor \u63d0\u4f9b \u4e00\u4e9b \u9700\u8981 \u8003\u8651 \u7684 \u53c2\u6570 \u3002 \u5411 RssResrictor \u53d1\u9001 \u521d\u59cb carla . VehicleControl . 3 . RssSensor \u4f7f\u7528 ad - rss - lib \u63d0\u53d6 \u60c5\u5883 \u3001 \u6267\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u5e76 \u751f\u6210 \u54cd\u5e94 \u3002 \u5411 RssRestrictor \u53d1\u9001 \u5305\u542b \u6b63\u786e \u54cd\u5e94 \u548c \u8981 \u5e94\u7528 \u7684 \u52a0\u901f \u9650\u5236 \u7684 \u54cd\u5e94 \u3002 4 . RssRestrictor \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bf7\u6c42 \uff0c \u5219 \u5c06 \u54cd\u5e94 \u5e94\u7528 \u4e8e carla . VehicleControl \uff0c \u5e76 \u8fd4\u56de \u7ed3\u679c \u3002 \u7ed3\u679c \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002","title":"\u6982\u8ff0"},{"location":"adv_rss/#_3","text":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 \u96c6\u6210 \u5fc5\u987b \u4e0e Carla \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5206\u5f00 \u6784\u5efa \u3002 ad - rss - lib \u9644\u5e26 LGPL - 2.1 \u5f00\u6e90 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8fd9\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5b83 \u5fc5\u987b \u9759\u6001 \u94fe\u63a5 \u5230 libCarla \u3002 \u63d0\u9192 \u4e00\u4e0b \uff0c \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002","title":"\u7f16\u8bd1"},{"location":"adv_rss/#_4","text":"\u6784\u5efa \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53ca\u5176 \u4f9d\u8d56 \u9879 \u8fd8 \u9700\u8981 \u5176\u4ed6 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3002 \u67e5\u770b \u5b98\u65b9 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 Ubunutu ( > = 16.04 ) \u63d0\u4f9b \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install libgtest - dev libpython - dev libpugixml - dev libtbb - dev \u4f9d\u8d56 \u9879\u662f \u4f7f\u7528 colcon \u6784\u5efa \u7684 \uff0c \u56e0\u6b64 \u5fc5\u987b \u5b89\u88c5 \u5b83 \u3002 pip3 install -- user - U colcon - common - extensions Python \u7ed1\u5b9a \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install castxml pip3 install -- user pygccxml pyplusplus","title":"\u4f9d\u8d56"},{"location":"adv_rss/#_5","text":"\u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5373\u53ef \u6784\u5efa \u5b8c\u6574 \u7684 \u4f9d\u8d56 \u9879 \u548c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7ec4\u4ef6 \u96c6 \u3002 \u7f16\u8bd1 LibCarla \u4ee5 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u3002 make LibCarla . client . rss \u7f16\u8bd1 PythonAPI \u4ee5 \u5305\u542b \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u529f\u80fd \u3002 make PythonAPI . rss \u4f5c\u4e3a \u66ff\u4ee3 \u65b9\u6848 \uff0c \u53ef\u4ee5 \u76f4\u63a5 \u6784\u5efa \u5305 \u3002 make package . rss","title":"\u6784\u5efa"},{"location":"adv_rss/#_6","text":"","title":"\u5f53\u524d \u72b6\u6001"},{"location":"adv_rss/#rsssensor","text":"carla . RssSensor \u5b8c\u5168 \u652f\u6301 ad - rss - lib v4.2 . 0 \u529f\u80fd \u529f\u80fd\u96c6 \uff0c \u5305\u62ec \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 stay on road \u652f\u6301 \u548c \u975e \u7ed3\u6784 \u7ed3\u6784\u5316 \u7684 constellations \uff08 \u6bd4\u5982 \uff1a \u884c\u4eba \uff09 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u4e86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u771f\u5b9e \u6570\u636e \uff0c \u5305\u62ec \u5176\u4ed6 \u4ea4\u901a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002","title":"RssSensor"},{"location":"adv_rss/#rssrestrictor","text":"\u5f53 \u5ba2\u6237 \u4f46 \u8c03\u7528 \u65f6 \uff0c carla . RssRestrictor \u5c06 \u4fee\u6539 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u901a\u8fc7 \u7ed9\u5b9a \u7684 \u54cd\u5e94 \u6700\u597d \u5730 \u8fbe\u5230 \u6240 \u9700 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u6216 \u51cf \u901f\u5ea6 \u3002 \u7531\u4e8e carla . VehicleControl \u5bf9\u8c61 \u7684 \u7ed3\u6784 \uff0c \u6240 \u5e94\u7528 \u7684 \u9650\u5236 \u5177\u6709 \u4e00\u5b9a \u7684 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u6cb9\u95e8 ( throttle ) \u3001 \u5239\u8f66 ( brake ) \u548c \u65b9\u5411 \u65b9\u5411\u76d8 ( streering ) \u503c \u3002 \u7136\u800c \uff0c \u7531\u4e8e \u6c7d\u8f66 \u7269\u7406 \u539f\u7406 \u548c \u7b80\u5355 \u7684 \u63a7\u5236 \u9009\u9879 \uff0c \u8fd9\u4e9b \u53ef\u80fd \u65e0\u6cd5 \u6ee1\u8db3 \u3002 \u53ea \u9700 \u901a\u8fc7 \u671d\u5e73 \u884c\u8f66 \u8f66\u9053 \u884c\u8f66\u9053 \u65b9\u5411 \u53cd\u5411 \u8f6c\u5411 \u5373\u53ef \u5728 \u6a2a\u5411 \u65b9\u5411 \u8fdb\u884c \u9650\u5236 \u5e72\u9884 \u3002 \u5982\u679c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8bf7\u6c42 \u51cf\u901f \uff0c \u5236\u52a8 \u5236\u52a8\u5668 \u5c06 \u88ab \u6fc0\u6d3b \u3002 \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e carla . Vehicle \u63d0\u4f9b \u7684 \u8f66\u8f86 \u8d28\u91cf \u548c \u5236\u52a8 \u626d\u77e9 \u3002 \u7b14\u8bb0 \u5728 \u81ea\u52a8 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u4e2d \uff0c \u53ef\u4ee5 \u4f7f \u8ba1\u5212 \u7684 \u8f68\u8ff9 \u9002\u5e94 \u9650\u5236 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u5feb\u901f \u63a7\u5236 \u73af\u8def \uff08 > 1KHz \uff09 \u6765 \u786e\u4fdd \u9075\u5faa \u8fd9\u4e9b \u8981\u6c42 \u3002 \u8fd9 \u5960\u5b9a \u4e86 Carla \u4e2d \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u67e5\u627e \u6709\u5173 \u7279\u5b9a \u5c5e\u6027 \u548c \u53c2\u6570 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"RssRestrictor"},{"location":"adv_sumo/","text":"\u548c SUMO \u8fdb\u884c \u8054\u5408 \u4eff\u771f Carla \u4e0e SUMO \u5f00\u53d1 \u4e86 \u8054\u5408 \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u529f\u80fd \u6765 \u652f\u6301 \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f \u521b\u5efa Carla vtypes \u521b\u5efa SUMO \u7f51\u7edc \u8fd0\u884c \u540c\u6b65 \u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u9996\u5148 \uff0c \u9700\u8981 \u5b89\u88c5 SUMO \u624d\u80fd \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u5efa\u8bae \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u800c \u4e0d\u662f \u7b80\u5355 \u5b89\u88c5 \uff0c \u56e0\u4e3a \u6709 \u65b0 \u529f\u80fd \u548c \u4fee\u590d \u53ef\u4ee5 \u6539\u8fdb \u534f\u540c \u4eff\u771f \u3002 \u5b8c\u6210 \u540e \uff0c \u8bbe\u7f6e SUMO \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc SUMO \u5df2 \u51c6\u5907 \u597d \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 Co - Simulation / Sumo / examples \u4e2d\u6709 \u4e00\u4e9b Town01 , Town04 \u548c Town05 \u7684 \u793a\u4f8b \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u63cf\u8ff0 \u4e86 \u4eff\u771f \u7684 \u914d\u7f6e \uff08 \u4f8b\u5982 \u7f51\u7edc \u3001 \u8def\u7ebf \u3001 \u8f66\u8f86 \u7c7b\u578b ... \uff09 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e4b\u4e00 \u6765 \u6d4b\u8bd5 \u8054\u5408 \u4eff\u771f \u3002 \u8be5 \u811a\u672c \u6709 \u4e0d\u540c \u7684 \u9009\u9879 \uff0c \u4e0b\u9762 \u5c06 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u73b0\u5728 \uff0c \u8ba9 \u6211\u4eec \u4e3a Town04 \u8fd0\u884c \u4e00\u4e2a \u7b80\u5355 \u7684 \u793a\u4f8b \u3002 \u4f7f\u7528 Town04 \u8fd0\u884c Carla \u4eff\u771f \u3002 cd ~ / carla . / CarlaUE4 . sh cd PythonAPI / util python3 config . py -- map Town04 \u7136\u540e \uff0c \u8fd0\u884c SUMO \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town04 . sumocfg -- sumo - gui \u7b14\u8bb0 \u8fd0\u884c \u65f6\u5019 \u53ef\u80fd \u62a5\u9519 \uff1a module ' traci ' has no attribute ' sumolib ' \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a sumolib \u662f \u72ec\u7acb \u7684 \u5305 \uff0c \u4e0d \u5728 traci \u91cc\u9762 \uff0c \u9700\u8981 \u628a carla / Co - Simulation / Sumo / sumo _ integration / sumo _ simulation . py \u7684 304 \u884c \u7684 \u8fd9 \u4e00\u53e5 \u4ee3 sumo _ net = traci . sumolib . net . readNet ( net _ file ) \u7801 \u6539\u6210 sumo _ net = sumolib . net . readNet ( net _ file ) \u3002 \u8fd0\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f \u521b\u5efa carla vtypes \u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / create _ sumo _ vtypes . py \u7528\u6237 \u53ef\u4ee5 \u57fa\u4e8e Carla \u84dd \u56fe\u5e93 \u521b\u5efa vtypes \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e Carla \u84dd\u56fe \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- output - file ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a carlavtypes . rou . xml ) \u2014 \u751f\u6210 \u7684 \u5305\u542b vtypes \u7684 \u6587\u4ef6 \u3002 \u8be5 \u811a\u672c \u4f7f\u7528 data / vtypes . json \u5b58\u50a8 \u7684 \u4fe1\u606f \u6765 \u521b\u5efa SUMO vtypes \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u8f91 \u6240\u8ff0 \u6587\u4ef6 \u6765 \u4fee\u6539 \u3002 \u7b14\u8bb0 \u5fc5\u987b \u8fd0\u884c Carla \u4eff\u771f \u624d\u80fd \u6267\u884c \u8be5 \u811a\u672c \u3002 \u521b\u5efa SUMO \u7f51\u7edc \u521b\u5efa \u4e0e Carla \u540c\u6b65 \u7684 SUMO \u7f51\u7edc \u63a8\u8350 \u65b9\u6cd5 \u662f \u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / netconvert _ carla . py . \u8fd9 \u5c31\u8981 \u5229\u7528 SUMO \u63d0\u4f9b \u7684 netconvert \u5de5\u5177 \u4e86 \u3002 \u4e3a\u4e86 \u8fd0\u884c \u8be5 \u811a\u672c \uff0c \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 xodr _ file \u2014 OpenDRIVE \u6587\u4ef6 . xodr \u3002 -- output ' ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a net . net . xml ) \u2014 \u8f93\u51fa \u6587\u4ef6 . net . xml \u3002 -- guess - tls ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a false ) \u2014 SUMO \u53ea\u80fd \u4e3a \u9053\u8def \u4e2d \u7684 \u7279\u5b9a \u8f66\u9053 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u4f46 Carla \u4e0d\u80fd \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a True \uff0c SUMO \u5c06 \u4e0d\u4f1a \u533a\u5206 \u7279\u5b9a \u8f66\u9053 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u5e76\u4e14 \u8fd9\u4e9b \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0e Carla \u540c\u6b65 \u3002 \u8be5 \u811a\u672c \u7684 \u8f93\u51fa \u5c06 \u662f . net . xml \u53ef\u4ee5 \u4f7f\u7528 NETEDIT \u8fdb\u884c \u7f16\u8f91 \u7684 \u3002 \u4f7f\u7528 \u5b83 \u6765 \u7f16\u8f91 \u8def\u7ebf \u3001 \u6dfb\u52a0 \u9700\u6c42 \uff0c \u5e76 \u6700\u7ec8 \u51c6\u5907 \u4e00\u4e2a \u53ef\u4ee5 \u4fdd\u5b58 \u4e3a . sumocfg \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u53ef\u80fd \u4f1a \u6709\u6240 \u5e2e\u52a9 \u3002 \u770b \u4e00\u773c Co - Simulation / Sumo / examples \u3002 \u5bf9\u4e8e \u6bcf\u4e2a example . sumocfg \u6587\u4ef6 \uff0c \u90fd \u6709 \u591a\u4e2a \u540c\u540d \u7684 \u76f8\u5173 \u6587\u4ef6 \u3002 \u6240\u6709 \u8fd9\u4e9b \u90fd \u5305\u542b \u4e00\u4e2a \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002 \u8fd0\u884c \u540c\u6b65 \u4e00\u65e6 \u4eff\u771f \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u5e76 \u4fdd\u5b58 \u4e3a . sumocfg \uff0c \u5c31 \u53ef\u4ee5 \u8fd0\u884c \u4e86 \u3002 \u6709 \u4e00\u4e9b \u53ef \u9009 \u53c2\u6570 \u53ef\u4ee5 \u66f4\u6539 \u534f\u540c \u4eff\u771f \u7684 \u8bbe\u7f6e \u3002 sumo _ cfg _ file \u2014 SUMO \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 -- sumo - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 SUMO \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- sumo - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8813 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u7684 GUI \u7248\u672c \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u7ba1\u7406 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u9009\u9879 \u6709 carla , sumo \u548c none \u3002 \u5982\u679c \u9009\u62e9 none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u53ea\u4f1a \u9075\u5b88 \u751f\u6210 \u5b83 \u7684 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 python3 run _ synchronization . py < SUMOCFG FILE > -- tls - manager carla -- sumo - gui \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u6309 Ctrl + C \u3002 \u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210 \u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u5e26\u6765 \u4e86 \u4e00\u9879 \u9644\u52a0 \u529f\u80fd \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76 \u7531 \u540e\u8005 \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4e00\u6837 \u3002 \u811a\u672c spawn _ npc _ sumo . py \u51e0\u4e4e \u7b49\u540c \u540c\u4e8e \u7b49\u540c\u4e8e \u5df2\u77e5 \u7684 generate _ traffic . py \u3002 \u8be5 \u811a\u672c \u6839\u636e Carla \u4e2d \u7684 \u6d3b\u52a8 \u57ce\u9547 \u81ea\u52a8 \u5728 \u4e34\u65f6 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u751f\u6210 SUMO \u7f51\u7edc \u3002 \u8be5 \u811a\u672c \u5c06 \u521b\u5efa \u968f\u673a \u8def\u7ebf \u5e76 \u8ba9 \u8f66\u8f86 \u56db\u5904 \u6f2b\u6e38 \u3002 \u5f53 \u811a\u672c \u8fd0\u884c \u540c\u6b65 \u4eff\u5e76 \u5728 \u5176\u4e2d \u751f\u6210 \u8f66\u8f86 \u65f6 \uff0c \u53c2\u6570 \u4e0e run _ synchronization . py \u548c generate _ traffic . py \u4e2d \u51fa\u73b0 \u7684 \u53c2\u6570 \u76f8\u540c \u3002 -- host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- port ( default : 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 - n , -- number - of - vehicles ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 10 ) \u2014 \u751f\u6210 \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 -- safe \u2014 \u907f\u514d \u751f\u6210 \u8f66\u8f86 \u5bb9\u6613 \u53d1\u751f \u4e8b\u6545 \u3002 -- filterv ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a \" vehicle . \" ) * \u2014 \u8fc7\u6ee4 \u751f\u6210 \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u72b6\u6001 \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6765 \u66f4\u6539 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u5b83\u4eec \u3002 \u5982\u679c \u662f none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 # \u751f\u6210 10 \u8f86\u8f66 \uff0c \u7531 SUMO \u7ba1\u7406 \uff0c \u800c \u4e0d\u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 python3 spawn _ sumo _ npc . py - n 10 -- tls - manager carla -- sumo - gui sumo TraCI \u63a5\u53e3 \u6587\u6863 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9 \u5c31\u662f \u4e0e Carla \u8fdb\u884c SUMO \u8054\u5408 \u4eff\u771f \u7684 \u5168\u90e8 \u5185\u5bb9 \u5168\u90e8\u5185\u5bb9 \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u548c SUMO \u8054\u5408 \u4eff\u771f"},{"location":"adv_sumo/#sumo","text":"Carla \u4e0e SUMO \u5f00\u53d1 \u4e86 \u8054\u5408 \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u529f\u80fd \u6765 \u652f\u6301 \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f \u521b\u5efa Carla vtypes \u521b\u5efa SUMO \u7f51\u7edc \u8fd0\u884c \u540c\u6b65 \u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210","title":"\u548c SUMO \u8fdb\u884c \u8054\u5408 \u4eff\u771f"},{"location":"adv_sumo/#_1","text":"\u9996\u5148 \uff0c \u9700\u8981 \u5b89\u88c5 SUMO \u624d\u80fd \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u5efa\u8bae \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u800c \u4e0d\u662f \u7b80\u5355 \u5b89\u88c5 \uff0c \u56e0\u4e3a \u6709 \u65b0 \u529f\u80fd \u548c \u4fee\u590d \u53ef\u4ee5 \u6539\u8fdb \u534f\u540c \u4eff\u771f \u3002 \u5b8c\u6210 \u540e \uff0c \u8bbe\u7f6e SUMO \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc SUMO \u5df2 \u51c6\u5907 \u597d \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 Co - Simulation / Sumo / examples \u4e2d\u6709 \u4e00\u4e9b Town01 , Town04 \u548c Town05 \u7684 \u793a\u4f8b \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u63cf\u8ff0 \u4e86 \u4eff\u771f \u7684 \u914d\u7f6e \uff08 \u4f8b\u5982 \u7f51\u7edc \u3001 \u8def\u7ebf \u3001 \u8f66\u8f86 \u7c7b\u578b ... \uff09 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e4b\u4e00 \u6765 \u6d4b\u8bd5 \u8054\u5408 \u4eff\u771f \u3002 \u8be5 \u811a\u672c \u6709 \u4e0d\u540c \u7684 \u9009\u9879 \uff0c \u4e0b\u9762 \u5c06 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u73b0\u5728 \uff0c \u8ba9 \u6211\u4eec \u4e3a Town04 \u8fd0\u884c \u4e00\u4e2a \u7b80\u5355 \u7684 \u793a\u4f8b \u3002 \u4f7f\u7528 Town04 \u8fd0\u884c Carla \u4eff\u771f \u3002 cd ~ / carla . / CarlaUE4 . sh cd PythonAPI / util python3 config . py -- map Town04 \u7136\u540e \uff0c \u8fd0\u884c SUMO \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town04 . sumocfg -- sumo - gui \u7b14\u8bb0 \u8fd0\u884c \u65f6\u5019 \u53ef\u80fd \u62a5\u9519 \uff1a module ' traci ' has no attribute ' sumolib ' \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a sumolib \u662f \u72ec\u7acb \u7684 \u5305 \uff0c \u4e0d \u5728 traci \u91cc\u9762 \uff0c \u9700\u8981 \u628a carla / Co - Simulation / Sumo / sumo _ integration / sumo _ simulation . py \u7684 304 \u884c \u7684 \u8fd9 \u4e00\u53e5 \u4ee3 sumo _ net = traci . sumolib . net . readNet ( net _ file ) \u7801 \u6539\u6210 sumo _ net = sumolib . net . readNet ( net _ file ) \u3002","title":"\u5fc5\u5907\u6761\u4ef6"},{"location":"adv_sumo/#_2","text":"","title":"\u8fd0\u884c \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f"},{"location":"adv_sumo/#carla-vtypes","text":"\u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / create _ sumo _ vtypes . py \u7528\u6237 \u53ef\u4ee5 \u57fa\u4e8e Carla \u84dd \u56fe\u5e93 \u521b\u5efa vtypes \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e Carla \u84dd\u56fe \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- output - file ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a carlavtypes . rou . xml ) \u2014 \u751f\u6210 \u7684 \u5305\u542b vtypes \u7684 \u6587\u4ef6 \u3002 \u8be5 \u811a\u672c \u4f7f\u7528 data / vtypes . json \u5b58\u50a8 \u7684 \u4fe1\u606f \u6765 \u521b\u5efa SUMO vtypes \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u8f91 \u6240\u8ff0 \u6587\u4ef6 \u6765 \u4fee\u6539 \u3002 \u7b14\u8bb0 \u5fc5\u987b \u8fd0\u884c Carla \u4eff\u771f \u624d\u80fd \u6267\u884c \u8be5 \u811a\u672c \u3002","title":"\u521b\u5efa carla vtypes"},{"location":"adv_sumo/#sumo_1","text":"\u521b\u5efa \u4e0e Carla \u540c\u6b65 \u7684 SUMO \u7f51\u7edc \u63a8\u8350 \u65b9\u6cd5 \u662f \u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / netconvert _ carla . py . \u8fd9 \u5c31\u8981 \u5229\u7528 SUMO \u63d0\u4f9b \u7684 netconvert \u5de5\u5177 \u4e86 \u3002 \u4e3a\u4e86 \u8fd0\u884c \u8be5 \u811a\u672c \uff0c \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 xodr _ file \u2014 OpenDRIVE \u6587\u4ef6 . xodr \u3002 -- output ' ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a net . net . xml ) \u2014 \u8f93\u51fa \u6587\u4ef6 . net . xml \u3002 -- guess - tls ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a false ) \u2014 SUMO \u53ea\u80fd \u4e3a \u9053\u8def \u4e2d \u7684 \u7279\u5b9a \u8f66\u9053 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u4f46 Carla \u4e0d\u80fd \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a True \uff0c SUMO \u5c06 \u4e0d\u4f1a \u533a\u5206 \u7279\u5b9a \u8f66\u9053 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u5e76\u4e14 \u8fd9\u4e9b \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0e Carla \u540c\u6b65 \u3002 \u8be5 \u811a\u672c \u7684 \u8f93\u51fa \u5c06 \u662f . net . xml \u53ef\u4ee5 \u4f7f\u7528 NETEDIT \u8fdb\u884c \u7f16\u8f91 \u7684 \u3002 \u4f7f\u7528 \u5b83 \u6765 \u7f16\u8f91 \u8def\u7ebf \u3001 \u6dfb\u52a0 \u9700\u6c42 \uff0c \u5e76 \u6700\u7ec8 \u51c6\u5907 \u4e00\u4e2a \u53ef\u4ee5 \u4fdd\u5b58 \u4e3a . sumocfg \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u53ef\u80fd \u4f1a \u6709\u6240 \u5e2e\u52a9 \u3002 \u770b \u4e00\u773c Co - Simulation / Sumo / examples \u3002 \u5bf9\u4e8e \u6bcf\u4e2a example . sumocfg \u6587\u4ef6 \uff0c \u90fd \u6709 \u591a\u4e2a \u540c\u540d \u7684 \u76f8\u5173 \u6587\u4ef6 \u3002 \u6240\u6709 \u8fd9\u4e9b \u90fd \u5305\u542b \u4e00\u4e2a \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002","title":"\u521b\u5efa SUMO \u7f51\u7edc"},{"location":"adv_sumo/#_3","text":"\u4e00\u65e6 \u4eff\u771f \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u5e76 \u4fdd\u5b58 \u4e3a . sumocfg \uff0c \u5c31 \u53ef\u4ee5 \u8fd0\u884c \u4e86 \u3002 \u6709 \u4e00\u4e9b \u53ef \u9009 \u53c2\u6570 \u53ef\u4ee5 \u66f4\u6539 \u534f\u540c \u4eff\u771f \u7684 \u8bbe\u7f6e \u3002 sumo _ cfg _ file \u2014 SUMO \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 -- sumo - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 SUMO \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- sumo - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8813 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u7684 GUI \u7248\u672c \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u7ba1\u7406 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u9009\u9879 \u6709 carla , sumo \u548c none \u3002 \u5982\u679c \u9009\u62e9 none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u53ea\u4f1a \u9075\u5b88 \u751f\u6210 \u5b83 \u7684 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 python3 run _ synchronization . py < SUMOCFG FILE > -- tls - manager carla -- sumo - gui \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u6309 Ctrl + C \u3002","title":"\u8fd0\u884c \u540c\u6b65"},{"location":"adv_sumo/#sumo-npc","text":"\u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u5e26\u6765 \u4e86 \u4e00\u9879 \u9644\u52a0 \u529f\u80fd \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76 \u7531 \u540e\u8005 \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4e00\u6837 \u3002 \u811a\u672c spawn _ npc _ sumo . py \u51e0\u4e4e \u7b49\u540c \u540c\u4e8e \u7b49\u540c\u4e8e \u5df2\u77e5 \u7684 generate _ traffic . py \u3002 \u8be5 \u811a\u672c \u6839\u636e Carla \u4e2d \u7684 \u6d3b\u52a8 \u57ce\u9547 \u81ea\u52a8 \u5728 \u4e34\u65f6 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u751f\u6210 SUMO \u7f51\u7edc \u3002 \u8be5 \u811a\u672c \u5c06 \u521b\u5efa \u968f\u673a \u8def\u7ebf \u5e76 \u8ba9 \u8f66\u8f86 \u56db\u5904 \u6f2b\u6e38 \u3002 \u5f53 \u811a\u672c \u8fd0\u884c \u540c\u6b65 \u4eff\u5e76 \u5728 \u5176\u4e2d \u751f\u6210 \u8f66\u8f86 \u65f6 \uff0c \u53c2\u6570 \u4e0e run _ synchronization . py \u548c generate _ traffic . py \u4e2d \u51fa\u73b0 \u7684 \u53c2\u6570 \u76f8\u540c \u3002 -- host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- port ( default : 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 - n , -- number - of - vehicles ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 10 ) \u2014 \u751f\u6210 \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 -- safe \u2014 \u907f\u514d \u751f\u6210 \u8f66\u8f86 \u5bb9\u6613 \u53d1\u751f \u4e8b\u6545 \u3002 -- filterv ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a \" vehicle . \" ) * \u2014 \u8fc7\u6ee4 \u751f\u6210 \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u72b6\u6001 \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6765 \u66f4\u6539 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u5b83\u4eec \u3002 \u5982\u679c \u662f none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 # \u751f\u6210 10 \u8f86\u8f66 \uff0c \u7531 SUMO \u7ba1\u7406 \uff0c \u800c \u4e0d\u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 python3 spawn _ sumo _ npc . py - n 10 -- tls - manager carla -- sumo - gui","title":"\u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210"},{"location":"adv_sumo/#sumo-traci","text":"\u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9 \u5c31\u662f \u4e0e Carla \u8fdb\u884c SUMO \u8054\u5408 \u4eff\u771f \u7684 \u5168\u90e8 \u5185\u5bb9 \u5168\u90e8\u5185\u5bb9 \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"sumo TraCI \u63a5\u53e3 \u6587\u6863"},{"location":"adv_synchrony_timestep/","text":"\u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u672c \u8282 \u4ecb\u7ecd Carla \u4e2d \u7684 \u4e24\u4e2a \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 \u5b83\u4eec \u7684 \u914d\u7f6e \u5b9a\u4e49 \u4e86 \u4eff\u771f \u4e2d \u7684 \u65f6\u95f4 \u5982\u4f55 \u6d41\u901d \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5982\u4f55 \u4f7f \u4eff\u771f \u5411\u524d \u63a8\u8fdb \u4eff\u771f \u548c \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4eff\u771f \u8bb0\u5f55 \u7269\u7406 \u5b50\u6b65 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u53ef\u80fd \u7684 \u914d\u7f6e \u7269\u7406 \u51b3\u5b9a \u5b9a\u8bba \u51b3\u5b9a\u8bba \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u5b9e\u65f6 \u548c \u4eff\u771f \u65f6\u95f4 \u662f \u6709 \u533a\u522b \u7684 \u3002 \u4eff\u771f \u4e16\u754c \u6709 \u81ea\u5df1 \u7684 \u65f6\u949f \u548c \u65f6\u95f4 \uff0c \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6267\u884c \u3002 \u8ba1\u7b97 \u4e24\u4e2a \u4eff\u771f \u6b65\u9aa4 \u9700\u8981 \u4e00\u4e9b \u5b9e\u65f6 \u65f6\u95f4 \u3002 \u4f46\u662f \uff0c \u5728 \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u4e5f \u5b58\u5728 \u65f6\u95f4 \u8de8\u5ea6 \u65f6\u95f4\u8de8\u5ea6 \uff0c \u5373 \u65f6\u95f4 \u6b65\u957f \u4e3a\u4e86 \u6f84\u6e05 \u8fd9 \u4e00\u70b9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u80fd \u9700\u8981 \u51e0 \u6beb\u79d2 \u6765 \u8ba1\u7b97 \u4eff\u771f \u7684 \u4e24\u4e2a \u6b65\u9aa4 \u3002 \u4f46\u662f \uff0c \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u7684 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u914d\u7f6e \u4e3a \uff0c \u4f8b\u5982 \uff0c \u59cb\u7ec8 \u4e3a \u4e00\u79d2 \u3002 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u662f \u56fa\u5b9a \u7684 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u53ef\u53d8 \u7684 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u7528\u6237 \u7684 \u504f\u597d \u3002 \u7b14\u8bb0 \u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u662f \u76f8\u4e92 \u4e92\u4ea4 \u4ea4\u7ec7 \u76f8\u4e92\u4ea4\u7ec7 \u7684 \u6982\u5ff5 \u3002 \u8bf7 \u52a1\u5fc5 \u9605\u8bfb \u8fd9 \u4e24\u4e2a \u90e8\u5206 \uff0c \u4ee5 \u5145\u5206 \u4e86\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f Carla \u4e2d \u7684 \u9ed8\u8ba4 \u6a21\u5f0f \u3002 \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u5c06 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u8fd9\u4e9b \u6b65\u9aa4 \u6240 \u9700 \u7684 \u65f6\u95f4 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = None # Set a variable time - step world . apply _ settings ( settings ) PythonAPI / util / config . py \u4f7f\u7528 \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u65f6\u95f4 \u6b65\u957f \u3002 \u96f6 \u7b49\u4e8e \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 cd PythonAPI / util && python3 config . py -- delta - seconds 0 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u4fdd\u6301 \u6052\u5b9a \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a 0.5 \u79d2 \uff0c \u6bcf\u79d2 \u5c06 \u6709 \u4e24\u4e2a \u4eff\u771f \u5e27 \u3002 \u4f7f\u7528 \u76f8\u540c \u7684 \u65f6\u95f4 \u589e\u91cf \u5bf9\u4e8e \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u662f \u6700\u597d \u7684 \u65b9\u5f0f \u3002 \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c06 \u5bf9\u5e94 \u4e8e \u4eff\u771f \u4e2d \u6613\u4e8e \u7406\u89e3 \u7684 \u65f6\u523b \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u53ef\u4ee5 \u5728 \u66f4 \u5c11 \u7684 \u5b9e\u9645 \u65f6\u95f4 \u5185 \u4eff\u771f \u66f4\u957f \u7684 \u65f6\u95f4 \u65f6\u95f4\u6bb5 \u3002 \u53ef\u4ee5 \u5728 \u4e16\u754c \u8bbe\u7f6e \u4e2d \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u8981 \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4e3a 0.05 \u79d2 \uff0c \u8bf7 \u5e94\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u82b1\u8d39 20 \u4e2a \u6b65\u9aa4 \uff08 1 / 0.05 \uff09 \u6765 \u91cd\u73b0 \u4eff\u771f \u4e16\u754c \u4e2d \u7684 \u4e00\u79d2 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8fd9 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 \u811a\u672c \u8fdb\u884c \u8bbe\u7f6e \u3002 PythonAPI / util / config . py cd PythonAPI / util && python3 config . py -- delta - seconds 0.05 \u4eff\u771f \u8bb0\u5f55 Carla \u5177\u6709 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u529f\u80fd \uff0c \u53ef\u4ee5 \u8bb0\u5f55 \u4eff\u771f \uff0c \u7136\u540e \u91cd\u65b0 \u6f14\u7ece \u3002 \u4f46\u662f \uff0c \u5728 \u5bfb\u627e \u7cbe\u5ea6 \u65f6 \uff0c \u9700\u8981 \u8003\u8651 \u4e00\u4e9b \u4e8b\u60c5 \u3002 \u6709 \u4e86 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u91cd\u6f14 \u5b83 \u5c31 \u5f88 \u5bb9\u6613 \u4e86 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb \u4eff\u771f \u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4f7f\u7528 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u4e8b\u60c5 \u4f1a \u7a0d\u5fae \u590d\u6742 \u4e00\u4e9b \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u4e0e \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u4e0d\u540c \uff0c \u56e0\u4e3a \u903b\u8f91 \u5468\u671f \u4f1a \u4e0d\u65f6 \u53d8\u5316 \u3002 \u7136\u540e \uff0c \u5c06 \u4f7f\u7528 \u8bb0\u5f55 \u7684 \u6570\u636e \u5bf9 \u4fe1\u606f \u8fdb\u884c \u63d2\u503c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u88ab\u8feb \u91cd\u73b0 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u4eff\u771f \u7684 \u6b65\u957f \u5c06 \u76f8\u540c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u5b9e\u65f6 \u65f6\u95f4 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u65f6\u95f4 \u6b65\u957f \u5e94 \u9010\u4e00 \u4f20\u9012 \u3002 \u8fd9\u4e9b \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u662f \u539f\u59cb \u4eff\u771f \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u8fd0\u884c \u7684 \u7ed3\u679c \u3002 \u7531\u4e8e \u8868\u793a \u8fd9\u4e9b \u6240 \u9700 \u7684 \u65f6\u95f4 \u5927\u591a \u4e0d\u540c \uff0c \u56e0\u6b64 \u4eff\u771f \u5fc5\u7136 \u4f1a\u4ee5 \u5947\u602a \u7684 \u65f6\u95f4 \u6ce2\u52a8 \u518d\u73b0 \u3002 \u7269\u7406 \u5b50\u6b65 \u4e3a\u4e86 \u7cbe\u786e \u8ba1\u7b97 \u7269\u7406 \u6548\u679c \uff0c \u7269\u7406 \u4eff\u771f \u5fc5\u987b \u5728 \u975e\u5e38 \u5c0f \u7684 \u65f6\u95f4 \u6b65\u5185 \u8fdb\u884c \u3002 \u5f53 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6bcf \u5e27 \u6267\u884c \u591a\u6b21 \u8ba1\u7b97 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6e32\u67d3 \uff0c \u8bfb\u53d6 \u5b58\u50a8 \u7b49 \uff09 \u65f6 \uff0c \u65f6\u95f4 \u6b65\u957f \u53ef\u80fd \u4f1a \u6210\u4e3a \u4e00\u4e2a \u95ee\u9898 \u3002 \u7531\u4e8e \u8fd9\u4e2a \u9650\u5236 \u4ec5 \u53d1\u751f \u5728 \u7269\u7406 \u4eff\u771f \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ec5 \u5bf9 \u7269\u7406 \u8ba1\u7b97 \u5e94\u7528 \u5b50\u6b65 \u3002 \u5728 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u7269\u7406 \u5b50\u6b65 \u662f \u6253\u5f00 \u7684 \uff0c \u5e76\u4e14 \u88ab \u8bbe\u5b9a \u4e3a \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u957f \u6700\u5927 10 \u4e2a \u7269\u7406 \u5b50\u6b65 \u6ca1 \uff0c \u6bcf\u4e2a \u7269\u7406 \u5b50\u6b65 \u6700\u5927 \u4e3a 0.01 \u79d2 \u3002 \u5f53\u7136 \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 API \u8c03\u6574 \u8fd9\u4e9b \u8bbe\u5b9a \uff1a settings = world . get _ settings ( ) settings . substepping = True settings . max _ substep _ delta _ time = 0.01 settings . max _ substeps = 10 world . apply _ settings ( settings ) \u6ce8\u610f \uff0c \u5f53 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u65f6 \uff0c \u6211\u4eec \u8bbe\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u65f6 \u9700\u8981 \u9075\u5faa \u4ee5\u4e0b \u6761\u4ef6 \u6765 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff1a fixed _ delta _ seconds < = max _ substep _ delta _ time * max _ substeps \u6ce8\u610f \uff0c \u4e3a\u4e86 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff0c \u5b50\u6b65 \u7684 \u65f6\u95f4 \u95f4\u9694 \u5e94\u8be5 \u81f3\u5c11 \u4f4e\u4e8e 0.01666 \uff0c \u7406\u60f3 \u60c5\u51b5 \u4e0b \u4f4e\u4e8e 0.01 \u3002 \u4e3a\u4e86 \u6f14\u793a \u6700\u4f73 \u7269\u7406 \u5b50\u6b65 \u7684 \u6548\u679c \uff0c \u8bf7 \u8003\u8651 \u4e0b\u9762 \u7684 \u56fe \u3002 \u4e0b\u9762 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u56fe\u8868 \u663e\u793a \u4e86 \u5728 \u4e0d\u540c \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \u3002 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u5728 \u6240\u6709 \u4eff\u771f \u4e2d \u90fd \u662f \u6052\u5b9a \u7684 \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.01 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u901f\u5ea6 \u4e0d \u53d7 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u5dee\u5f02 \u7684 \u5f71\u54cd \u3002 \u7b2c\u4e8c \u4e8c\u5f20 \u7b2c\u4e8c\u5f20 \u56fe \u663e\u793a \u4e86 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \uff0c \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u4e3a 0.04 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u4e00\u65e6 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u8d85\u8fc7 0.01 \uff0c \u901f\u5ea6 \u5e38\u6570 \u5f00\u59cb \u51fa\u73b0 \u504f\u5dee \uff0c \u968f\u7740 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u7684 \u589e\u52a0 \uff0c \u504f\u5dee \u7684 \u4e25\u91cd \u7a0b\u5ea6 \u4e5f \u5728 \u589e\u52a0 \u3002 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u6d4b\u91cf z - \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u65f6 \u663e\u793a \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e0e \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u76f8\u540c \u7684 \u5dee\u5f02 \u7684 \u5f71\u54cd \u6765 \u518d\u6b21 \u8bc1\u660e \u8fd9\u79cd \u504f\u5dee \uff0c \u53ea\u6709 \u5f53 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e3a 0.01 \u6216 \u66f4 \u5c0f\u65f6 \u624d \u4f1a \u53d1\u751f \u6536\u655b \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 Carla \u91c7\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u5bf9 \u4e16\u754c \u8fdb\u884c \u4fee\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u4eff\u771f \uff0c \u800c \u4e0d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u66f4\u65b0 \u5230 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u524d \u4f1a \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u7684 \u201c ready to go \u201d \u7684 \u6d88\u606f \u3002 \u7b14\u8bb0 \u540c\u65f6 \u8fd0\u884c \u591a\u4e2a client \u65f6 \uff0c \u53ea\u80fd \u6709 \u4e00\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a server \u4f1a \u5bf9 \u6bcf\u4e2a \u6536\u5230 \u7684 \u201c ready to go \u201d \u4fe1\u606f \u8fdb\u884c \u53cd\u5e94 \uff0c \u591a\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \u5c06\u4f1a \u53d1\u9001 \u8fc7\u591a \u201c ready to go \u201d \u4fe1\u606f \u5bfc\u81f4 \u540c\u6b65 \u5931\u8d25 \u3002 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u53ea \u9700\u8981 \u6539\u53d8 settings . synchronous _ mode \u7684 \u503c \u5373\u53ef \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb this \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a false \u6216 \u4f7f\u7528 \u811a\u672c \u3002 PythonAPI / util / config . py . cd PythonAPI / util && python3 config . py -- no - sync # Disables synchronous mode \u540c\u6b65 \u6a21\u5f0f \u4e0d\u80fd \u901a\u8fc7 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u673a \u7684 \u54cd\u5e94 \u3002 \u4f7f\u7528 \u8fd9\u4e2a \u811a\u672c \uff0c \u7528\u6237 \u4e0d\u80fd \u5728 \u9700\u8981 \u7684 \u65f6\u5019 \u53d1\u9001 \u523b\u5ea6 \u3002 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8f83\u6162 \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \u4e4b\u95f4 \u7684 \u540c\u6b65 \uff0c \u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49 \u60c5\u51b5 \u4e0b \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u901f\u5ea6 \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d \u7b49\u5f85 \uff0c \u4fe1\u606f \u5c06\u4f1a \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u6240\u6709 \u5185\u5bb9 \uff0c \u4fe1\u606f \u4f1a \u4e22\u5931 \u6216 \u6df7\u6dc6 \u3002 \u7c7b\u4f3c \u7684 \u60c5\u51b5 \u662f \uff0c \u5982\u679c \u6709 \u5f88\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u64cd\u4f5c \uff0c \u5c06 \u65e0\u6cd5 \u786e\u5b9a \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u6765\u81ea \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u6bb5 \u4ee3\u7801 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u5728 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u52fe\u9009 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u91cd\u8981 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u3002 \u5728 \u8fd9\u91cc \uff0c \u540c\u6b65 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u4e16\u754c \u5177\u6709 \u5f02\u6b65 \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u6b65\u8fdb \uff0c \u6216 \u5728 \u6536\u5230 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # Wait for the next tick and retrieve the snapshot of the tick . world _ snapshot = world . wait _ for _ tick ( ) # Register a callback to get called every time we receive a new snapshot . world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) ) \u53ef\u80fd \u7684 \u914d\u7f6e \u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u7684 \u914d\u7f6e \uff0c \u5bfc\u81f4 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u4ee5\u4e0b \u662f \u5bf9 \u8fd9\u4e9b \u53ef\u80fd \u53ef\u80fd\u6027 \u7684 \u7b80\u8981 \u603b\u7ed3 \u3002 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u540c\u6b65 \u6a21\u5f0f \u5ba2\u6237 \u5b8c\u5168 \u63a7\u5236 \u4eff\u771f \u53ca\u5176 \u4fe1\u606f \u3002 \u4e0d \u53ef\u9760 \u4eff\u771f \u7684 \u98ce\u9669 \u3002 \u5f02\u6b65 \u6a21\u5f0f \u8fd9\u662f \u5173\u4e8e \u4fe1\u606f \u7684 \u597d \u65f6\u95f4 \u53c2\u8003 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4ee5 \u6700\u5feb \u7684 \u901f\u5ea6 \u8fd0\u884c \u3002 \u4e0d \u5bb9\u6613 \u91cd\u590d \u7684 \u4eff\u771f \u3002 \u540c\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9 \u51e0\u4e4e \u53ef\u4ee5 \u80af\u5b9a \u662f \u4e00\u79cd \u4e0d \u53ef\u53d6 \u7684 \u72b6\u6001 \u3002 \u5f53 \u65f6\u95f4 \u6b65\u957f \u5927\u4e8e 0.1 \u79d2 \u65f6 \uff0c \u7269\u7406 \u65e0\u6cd5 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8ba1\u7b97 \u6b65\u9aa4 \uff0c \u5219 \u5f88 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u7269\u7406 \u7279\u6027 \u4e0d\u4f1a \u540c\u6b65 \u3002 \u4eff\u771f \u5c06 \u4e0d \u53ef\u9760 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u7684 Carla \u72b6\u6001 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u662f \u5f02\u6b65 \u7684 \u3002 \u4eff\u771f \u65f6\u95f4 \u6839\u636e \u5b9e\u65f6 \u6d41\u52a8 \u3002 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u9700\u8981 \u8003\u8651 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u7b97\u672f \u8bef\u5dee \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u65f6\u95f4 \u6b65\u957f \u7684 \u53ef\u80fd \u5dee\u5f02 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u68c0\u7d22 \u5230 \u7684 \u4fe1\u606f \u5c06 \u5f88 \u5bb9\u6613 \u4e0e \u4eff\u771f \u4e2d \u7684 \u786e\u5207 \u65f6\u523b \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u8fd9\u79cd \u914d\u7f6e \u53ef\u4ee5 \u4ee5 \u66f4 \u4f4e \u7684 \u5b9e\u65f6 \u5ea6 \u4eff\u771f \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 \u540c\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u7edf\u6cbb \u4eff\u771f \u3002 \u65f6\u95f4 \u6b65\u957f \u5c06 \u662f \u56fa\u5b9a \u7684 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u5373\u65f6 \u62a5\u4ef7 \u4e4b\u524d \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d\u4f1a \u8ba1\u7b97 \u4ee5\u4e0b \u6b65\u9aa4 \u3002 \u5f53 \u540c\u6b65 \u548c \u7cbe\u5ea6 \u76f8\u5173 \u65f6 \uff0c \u8fd9\u662f \u6700\u4f73 \u6a21\u5f0f \u3002 \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6216 \u68c0\u7d22 \u4fe1\u606f \u7684 \u4e0d\u540c \u5143\u7d20 \u65f6 \u3002 \u8b66\u544a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8bf7 \u59cb\u7ec8 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u7528\u6237 \uff0c \u5e76\u4e14 \u5b83 \u4f7f\u7528 \u7684 \u662f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u592a\u5927 \u3002 \u7269\u7406 \u7406\u5b66 \u7269\u7406\u5b66 \u662f \u4e0d \u53ef\u9760 \u7684 \u3002 \u8fd9\u4e2a \u95ee\u9898 \u5728 \u65f6\u95f4 \u6b65\u957f \u9650\u5236 \u90e8\u5206 \u6709 \u66f4\u597d \u7684 \u89e3\u91ca \u3002 \u7269\u7406 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 Carla \u5728 \u7279\u5b9a \u60c5\u51b5 \u4e0b \u652f\u6301 \u7269\u7406 \u548c \u78b0\u649e \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff1a \u540c\u6b65 \u6a21\u5f0f \u548c \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u5fc5\u987b \u542f\u7528 \uff1a \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8981\u6c42 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5b8c\u5168 \u540c\u6b65 \uff0c \u4ee5 \u786e\u4fdd \u547d\u4ee4 \u88ab \u6b63\u786e \u5e94\u7528 \u5e76 \u4ea7\u751f \u51c6\u786e \u548c \u53ef \u590d\u5236 \u7684 \u7ed3\u679c \u3002 \u5fc5\u987b \u901a\u8fc7 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u6765 \u5f3a\u5236 \u6267\u884c \u5f3a\u5236\u6267\u884c \u6052\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u4e0d \u8bbe\u7f6e \uff0c \u65f6\u95f4 \u6b65\u957f \u5c06 \u6839\u636e \u4eff\u771f \u6027\u80fd \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u81ea\u52a8 \u8ba1\u7b97 \u3002 \u5728 \u52a0\u8f7d \u6216 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u4e4b\u524d \uff0c \u5fc5\u987b \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff1a \u5982\u679c \u4e16\u754c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u4e0d \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e0d\u540c \u7684 \u65f6\u95f4 \u6233 \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u5728 \u7269\u7406 \u4eff\u771f \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7b49 \u5bf9\u8c61 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u4e2d \u4ea7\u751f \u5fae\u5c0f \u7684 \u5dee\u5f02 \u3002 \u6bcf \u4e00\u6b21 \u65b0 \u7684 \u91cd\u590d \u90fd \u5fc5\u987b \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \uff1a \u6bcf\u6b21 \u8981 \u91cd\u73b0 \u4eff\u771f \u65f6 \uff0c \u8bf7 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u3002 \u547d\u4ee4 \u5e94\u8be5 \u662f \u5904\u7406 \u6279\u5904\u7406 \u7684 \uff0c \u800c \u4e0d\u662f \u4e00\u6b21 \u53d1\u51fa \u4e00\u4e2a \u547d\u4ee4 \uff1a \u867d\u7136 \u5f88\u5c11 \u89c1 \uff0c \u4f46 \u5728 \u7e41\u5fd9 \u7684 \u4eff\u771f \u6216 \u8fc7\u8f7d \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \uff0c \u5355\u4e2a \u53d1\u51fa \u7684 \u547d\u4ee4 \u53ef\u80fd \u4f1a \u4e22\u5931 \u3002 \u5982\u679c \u547d\u4ee4 \u5728 apply _ batch _ sync \u547d\u4ee4 \u4e2d \u5904\u7406 \u6279\u5904\u7406 \uff0c \u5219 \u4fdd\u8bc1 \u8be5 \u547d\u4ee4 \u88ab \u6267\u884c \u6216 \u8fd4\u56de \u5931\u8d25 \u54cd\u5e94 \u3002 \u4ee5\u4e0b \u662f \u4e0a\u8ff0 \u6b65\u9aa4 \u7684 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings # Set up the traffic manager traffic _ manager = client . get _ trafficmanager ( TM _ PORT ) traffic _ manager . set _ synchronous _ mode ( True ) traffic _ manager . set _ random _ device _ seed ( SEED ) # define TM seed for determinism # Spawn your vehicles , pedestrians , etc . # Simulation loop while True : # Your code world . tick ( ) \u64ad\u653e \u529f\u80fd \u7684 \u4e00\u4e2a \u5177\u4f53 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings client . replay _ file ( FILE _ TO _ PLAY , 0 , 0 , 0 , False ) world . tick ( ) # a tick is necessary for the server to process the replay _ file command # Simulation loop while True : # Your code world . tick ( ) \u8fd0\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u5c06 \u786e\u4fdd \u6bcf\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u7ed3\u679c \u76f8\u540c \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u5728 Carla \u4e2d \u7684 \u4f5c\u7528 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u6253\u5f00 Carla \uff0c \u73a9 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u4efb\u4f55 \u5efa\u8bae \u6216 \u7591\u95ee \u3002 Carla forum","title":"\u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_1","text":"\u672c \u8282 \u4ecb\u7ecd Carla \u4e2d \u7684 \u4e24\u4e2a \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 \u5b83\u4eec \u7684 \u914d\u7f6e \u5b9a\u4e49 \u4e86 \u4eff\u771f \u4e2d \u7684 \u65f6\u95f4 \u5982\u4f55 \u6d41\u901d \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5982\u4f55 \u4f7f \u4eff\u771f \u5411\u524d \u63a8\u8fdb \u4eff\u771f \u548c \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4eff\u771f \u8bb0\u5f55 \u7269\u7406 \u5b50\u6b65 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u53ef\u80fd \u7684 \u914d\u7f6e \u7269\u7406 \u51b3\u5b9a \u5b9a\u8bba \u51b3\u5b9a\u8bba","title":"\u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_2","text":"\u5b9e\u65f6 \u548c \u4eff\u771f \u65f6\u95f4 \u662f \u6709 \u533a\u522b \u7684 \u3002 \u4eff\u771f \u4e16\u754c \u6709 \u81ea\u5df1 \u7684 \u65f6\u949f \u548c \u65f6\u95f4 \uff0c \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6267\u884c \u3002 \u8ba1\u7b97 \u4e24\u4e2a \u4eff\u771f \u6b65\u9aa4 \u9700\u8981 \u4e00\u4e9b \u5b9e\u65f6 \u65f6\u95f4 \u3002 \u4f46\u662f \uff0c \u5728 \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u4e5f \u5b58\u5728 \u65f6\u95f4 \u8de8\u5ea6 \u65f6\u95f4\u8de8\u5ea6 \uff0c \u5373 \u65f6\u95f4 \u6b65\u957f \u4e3a\u4e86 \u6f84\u6e05 \u8fd9 \u4e00\u70b9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u80fd \u9700\u8981 \u51e0 \u6beb\u79d2 \u6765 \u8ba1\u7b97 \u4eff\u771f \u7684 \u4e24\u4e2a \u6b65\u9aa4 \u3002 \u4f46\u662f \uff0c \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u7684 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u914d\u7f6e \u4e3a \uff0c \u4f8b\u5982 \uff0c \u59cb\u7ec8 \u4e3a \u4e00\u79d2 \u3002 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u662f \u56fa\u5b9a \u7684 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u53ef\u53d8 \u7684 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u7528\u6237 \u7684 \u504f\u597d \u3002 \u7b14\u8bb0 \u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u662f \u76f8\u4e92 \u4e92\u4ea4 \u4ea4\u7ec7 \u76f8\u4e92\u4ea4\u7ec7 \u7684 \u6982\u5ff5 \u3002 \u8bf7 \u52a1\u5fc5 \u9605\u8bfb \u8fd9 \u4e24\u4e2a \u90e8\u5206 \uff0c \u4ee5 \u5145\u5206 \u4e86\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u3002","title":"\u4eff\u771f \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_3","text":"Carla \u4e2d \u7684 \u9ed8\u8ba4 \u6a21\u5f0f \u3002 \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u5c06 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u8fd9\u4e9b \u6b65\u9aa4 \u6240 \u9700 \u7684 \u65f6\u95f4 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = None # Set a variable time - step world . apply _ settings ( settings ) PythonAPI / util / config . py \u4f7f\u7528 \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u65f6\u95f4 \u6b65\u957f \u3002 \u96f6 \u7b49\u4e8e \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 cd PythonAPI / util && python3 config . py -- delta - seconds 0","title":"\u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_4","text":"\u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u4fdd\u6301 \u6052\u5b9a \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a 0.5 \u79d2 \uff0c \u6bcf\u79d2 \u5c06 \u6709 \u4e24\u4e2a \u4eff\u771f \u5e27 \u3002 \u4f7f\u7528 \u76f8\u540c \u7684 \u65f6\u95f4 \u589e\u91cf \u5bf9\u4e8e \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u662f \u6700\u597d \u7684 \u65b9\u5f0f \u3002 \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c06 \u5bf9\u5e94 \u4e8e \u4eff\u771f \u4e2d \u6613\u4e8e \u7406\u89e3 \u7684 \u65f6\u523b \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u53ef\u4ee5 \u5728 \u66f4 \u5c11 \u7684 \u5b9e\u9645 \u65f6\u95f4 \u5185 \u4eff\u771f \u66f4\u957f \u7684 \u65f6\u95f4 \u65f6\u95f4\u6bb5 \u3002 \u53ef\u4ee5 \u5728 \u4e16\u754c \u8bbe\u7f6e \u4e2d \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u8981 \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4e3a 0.05 \u79d2 \uff0c \u8bf7 \u5e94\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u82b1\u8d39 20 \u4e2a \u6b65\u9aa4 \uff08 1 / 0.05 \uff09 \u6765 \u91cd\u73b0 \u4eff\u771f \u4e16\u754c \u4e2d \u7684 \u4e00\u79d2 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8fd9 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 \u811a\u672c \u8fdb\u884c \u8bbe\u7f6e \u3002 PythonAPI / util / config . py cd PythonAPI / util && python3 config . py -- delta - seconds 0.05","title":"\u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_5","text":"Carla \u5177\u6709 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u529f\u80fd \uff0c \u53ef\u4ee5 \u8bb0\u5f55 \u4eff\u771f \uff0c \u7136\u540e \u91cd\u65b0 \u6f14\u7ece \u3002 \u4f46\u662f \uff0c \u5728 \u5bfb\u627e \u7cbe\u5ea6 \u65f6 \uff0c \u9700\u8981 \u8003\u8651 \u4e00\u4e9b \u4e8b\u60c5 \u3002 \u6709 \u4e86 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u91cd\u6f14 \u5b83 \u5c31 \u5f88 \u5bb9\u6613 \u4e86 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb \u4eff\u771f \u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4f7f\u7528 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u4e8b\u60c5 \u4f1a \u7a0d\u5fae \u590d\u6742 \u4e00\u4e9b \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u4e0e \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u4e0d\u540c \uff0c \u56e0\u4e3a \u903b\u8f91 \u5468\u671f \u4f1a \u4e0d\u65f6 \u53d8\u5316 \u3002 \u7136\u540e \uff0c \u5c06 \u4f7f\u7528 \u8bb0\u5f55 \u7684 \u6570\u636e \u5bf9 \u4fe1\u606f \u8fdb\u884c \u63d2\u503c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u88ab\u8feb \u91cd\u73b0 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u4eff\u771f \u7684 \u6b65\u957f \u5c06 \u76f8\u540c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u5b9e\u65f6 \u65f6\u95f4 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u65f6\u95f4 \u6b65\u957f \u5e94 \u9010\u4e00 \u4f20\u9012 \u3002 \u8fd9\u4e9b \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u662f \u539f\u59cb \u4eff\u771f \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u8fd0\u884c \u7684 \u7ed3\u679c \u3002 \u7531\u4e8e \u8868\u793a \u8fd9\u4e9b \u6240 \u9700 \u7684 \u65f6\u95f4 \u5927\u591a \u4e0d\u540c \uff0c \u56e0\u6b64 \u4eff\u771f \u5fc5\u7136 \u4f1a\u4ee5 \u5947\u602a \u7684 \u65f6\u95f4 \u6ce2\u52a8 \u518d\u73b0 \u3002","title":"\u4eff\u771f \u8bb0\u5f55"},{"location":"adv_synchrony_timestep/#_6","text":"\u4e3a\u4e86 \u7cbe\u786e \u8ba1\u7b97 \u7269\u7406 \u6548\u679c \uff0c \u7269\u7406 \u4eff\u771f \u5fc5\u987b \u5728 \u975e\u5e38 \u5c0f \u7684 \u65f6\u95f4 \u6b65\u5185 \u8fdb\u884c \u3002 \u5f53 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6bcf \u5e27 \u6267\u884c \u591a\u6b21 \u8ba1\u7b97 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6e32\u67d3 \uff0c \u8bfb\u53d6 \u5b58\u50a8 \u7b49 \uff09 \u65f6 \uff0c \u65f6\u95f4 \u6b65\u957f \u53ef\u80fd \u4f1a \u6210\u4e3a \u4e00\u4e2a \u95ee\u9898 \u3002 \u7531\u4e8e \u8fd9\u4e2a \u9650\u5236 \u4ec5 \u53d1\u751f \u5728 \u7269\u7406 \u4eff\u771f \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ec5 \u5bf9 \u7269\u7406 \u8ba1\u7b97 \u5e94\u7528 \u5b50\u6b65 \u3002 \u5728 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u7269\u7406 \u5b50\u6b65 \u662f \u6253\u5f00 \u7684 \uff0c \u5e76\u4e14 \u88ab \u8bbe\u5b9a \u4e3a \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u957f \u6700\u5927 10 \u4e2a \u7269\u7406 \u5b50\u6b65 \u6ca1 \uff0c \u6bcf\u4e2a \u7269\u7406 \u5b50\u6b65 \u6700\u5927 \u4e3a 0.01 \u79d2 \u3002 \u5f53\u7136 \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 API \u8c03\u6574 \u8fd9\u4e9b \u8bbe\u5b9a \uff1a settings = world . get _ settings ( ) settings . substepping = True settings . max _ substep _ delta _ time = 0.01 settings . max _ substeps = 10 world . apply _ settings ( settings ) \u6ce8\u610f \uff0c \u5f53 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u65f6 \uff0c \u6211\u4eec \u8bbe\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u65f6 \u9700\u8981 \u9075\u5faa \u4ee5\u4e0b \u6761\u4ef6 \u6765 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff1a fixed _ delta _ seconds < = max _ substep _ delta _ time * max _ substeps \u6ce8\u610f \uff0c \u4e3a\u4e86 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff0c \u5b50\u6b65 \u7684 \u65f6\u95f4 \u95f4\u9694 \u5e94\u8be5 \u81f3\u5c11 \u4f4e\u4e8e 0.01666 \uff0c \u7406\u60f3 \u60c5\u51b5 \u4e0b \u4f4e\u4e8e 0.01 \u3002 \u4e3a\u4e86 \u6f14\u793a \u6700\u4f73 \u7269\u7406 \u5b50\u6b65 \u7684 \u6548\u679c \uff0c \u8bf7 \u8003\u8651 \u4e0b\u9762 \u7684 \u56fe \u3002 \u4e0b\u9762 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u56fe\u8868 \u663e\u793a \u4e86 \u5728 \u4e0d\u540c \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \u3002 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u5728 \u6240\u6709 \u4eff\u771f \u4e2d \u90fd \u662f \u6052\u5b9a \u7684 \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.01 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u901f\u5ea6 \u4e0d \u53d7 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u5dee\u5f02 \u7684 \u5f71\u54cd \u3002 \u7b2c\u4e8c \u4e8c\u5f20 \u7b2c\u4e8c\u5f20 \u56fe \u663e\u793a \u4e86 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \uff0c \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u4e3a 0.04 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u4e00\u65e6 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u8d85\u8fc7 0.01 \uff0c \u901f\u5ea6 \u5e38\u6570 \u5f00\u59cb \u51fa\u73b0 \u504f\u5dee \uff0c \u968f\u7740 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u7684 \u589e\u52a0 \uff0c \u504f\u5dee \u7684 \u4e25\u91cd \u7a0b\u5ea6 \u4e5f \u5728 \u589e\u52a0 \u3002 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u6d4b\u91cf z - \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u65f6 \u663e\u793a \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e0e \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u76f8\u540c \u7684 \u5dee\u5f02 \u7684 \u5f71\u54cd \u6765 \u518d\u6b21 \u8bc1\u660e \u8fd9\u79cd \u504f\u5dee \uff0c \u53ea\u6709 \u5f53 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e3a 0.01 \u6216 \u66f4 \u5c0f\u65f6 \u624d \u4f1a \u53d1\u751f \u6536\u655b \u3002","title":"\u7269\u7406 \u5b50\u6b65"},{"location":"adv_synchrony_timestep/#-","text":"Carla \u91c7\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u5bf9 \u4e16\u754c \u8fdb\u884c \u4fee\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u4eff\u771f \uff0c \u800c \u4e0d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u66f4\u65b0 \u5230 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u524d \u4f1a \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u7684 \u201c ready to go \u201d \u7684 \u6d88\u606f \u3002 \u7b14\u8bb0 \u540c\u65f6 \u8fd0\u884c \u591a\u4e2a client \u65f6 \uff0c \u53ea\u80fd \u6709 \u4e00\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a server \u4f1a \u5bf9 \u6bcf\u4e2a \u6536\u5230 \u7684 \u201c ready to go \u201d \u4fe1\u606f \u8fdb\u884c \u53cd\u5e94 \uff0c \u591a\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \u5c06\u4f1a \u53d1\u9001 \u8fc7\u591a \u201c ready to go \u201d \u4fe1\u606f \u5bfc\u81f4 \u540c\u6b65 \u5931\u8d25 \u3002","title":"\u5ba2\u6237\u7aef - \u670d\u52a1\u5668 \u540c\u6b65"},{"location":"adv_synchrony_timestep/#_7","text":"\u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u53ea \u9700\u8981 \u6539\u53d8 settings . synchronous _ mode \u7684 \u503c \u5373\u53ef \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb this \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a false \u6216 \u4f7f\u7528 \u811a\u672c \u3002 PythonAPI / util / config . py . cd PythonAPI / util && python3 config . py -- no - sync # Disables synchronous mode \u540c\u6b65 \u6a21\u5f0f \u4e0d\u80fd \u901a\u8fc7 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u673a \u7684 \u54cd\u5e94 \u3002 \u4f7f\u7528 \u8fd9\u4e2a \u811a\u672c \uff0c \u7528\u6237 \u4e0d\u80fd \u5728 \u9700\u8981 \u7684 \u65f6\u5019 \u53d1\u9001 \u523b\u5ea6 \u3002","title":"\u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_synchrony_timestep/#_8","text":"\u540c\u6b65 \u6a21\u5f0f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8f83\u6162 \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \u4e4b\u95f4 \u7684 \u540c\u6b65 \uff0c \u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49 \u60c5\u51b5 \u4e0b \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u901f\u5ea6 \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d \u7b49\u5f85 \uff0c \u4fe1\u606f \u5c06\u4f1a \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u6240\u6709 \u5185\u5bb9 \uff0c \u4fe1\u606f \u4f1a \u4e22\u5931 \u6216 \u6df7\u6dc6 \u3002 \u7c7b\u4f3c \u7684 \u60c5\u51b5 \u662f \uff0c \u5982\u679c \u6709 \u5f88\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u64cd\u4f5c \uff0c \u5c06 \u65e0\u6cd5 \u786e\u5b9a \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u6765\u81ea \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u6bb5 \u4ee3\u7801 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u5728 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u52fe\u9009 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u91cd\u8981 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u3002 \u5728 \u8fd9\u91cc \uff0c \u540c\u6b65 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u4e16\u754c \u5177\u6709 \u5f02\u6b65 \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u6b65\u8fdb \uff0c \u6216 \u5728 \u6536\u5230 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # Wait for the next tick and retrieve the snapshot of the tick . world _ snapshot = world . wait _ for _ tick ( ) # Register a callback to get called every time we receive a new snapshot . world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) )","title":"\u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_synchrony_timestep/#_9","text":"\u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u7684 \u914d\u7f6e \uff0c \u5bfc\u81f4 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u4ee5\u4e0b \u662f \u5bf9 \u8fd9\u4e9b \u53ef\u80fd \u53ef\u80fd\u6027 \u7684 \u7b80\u8981 \u603b\u7ed3 \u3002 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u540c\u6b65 \u6a21\u5f0f \u5ba2\u6237 \u5b8c\u5168 \u63a7\u5236 \u4eff\u771f \u53ca\u5176 \u4fe1\u606f \u3002 \u4e0d \u53ef\u9760 \u4eff\u771f \u7684 \u98ce\u9669 \u3002 \u5f02\u6b65 \u6a21\u5f0f \u8fd9\u662f \u5173\u4e8e \u4fe1\u606f \u7684 \u597d \u65f6\u95f4 \u53c2\u8003 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4ee5 \u6700\u5feb \u7684 \u901f\u5ea6 \u8fd0\u884c \u3002 \u4e0d \u5bb9\u6613 \u91cd\u590d \u7684 \u4eff\u771f \u3002 \u540c\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9 \u51e0\u4e4e \u53ef\u4ee5 \u80af\u5b9a \u662f \u4e00\u79cd \u4e0d \u53ef\u53d6 \u7684 \u72b6\u6001 \u3002 \u5f53 \u65f6\u95f4 \u6b65\u957f \u5927\u4e8e 0.1 \u79d2 \u65f6 \uff0c \u7269\u7406 \u65e0\u6cd5 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8ba1\u7b97 \u6b65\u9aa4 \uff0c \u5219 \u5f88 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u7269\u7406 \u7279\u6027 \u4e0d\u4f1a \u540c\u6b65 \u3002 \u4eff\u771f \u5c06 \u4e0d \u53ef\u9760 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u7684 Carla \u72b6\u6001 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u662f \u5f02\u6b65 \u7684 \u3002 \u4eff\u771f \u65f6\u95f4 \u6839\u636e \u5b9e\u65f6 \u6d41\u52a8 \u3002 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u9700\u8981 \u8003\u8651 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u7b97\u672f \u8bef\u5dee \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u65f6\u95f4 \u6b65\u957f \u7684 \u53ef\u80fd \u5dee\u5f02 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u68c0\u7d22 \u5230 \u7684 \u4fe1\u606f \u5c06 \u5f88 \u5bb9\u6613 \u4e0e \u4eff\u771f \u4e2d \u7684 \u786e\u5207 \u65f6\u523b \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u8fd9\u79cd \u914d\u7f6e \u53ef\u4ee5 \u4ee5 \u66f4 \u4f4e \u7684 \u5b9e\u65f6 \u5ea6 \u4eff\u771f \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 \u540c\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u7edf\u6cbb \u4eff\u771f \u3002 \u65f6\u95f4 \u6b65\u957f \u5c06 \u662f \u56fa\u5b9a \u7684 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u5373\u65f6 \u62a5\u4ef7 \u4e4b\u524d \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d\u4f1a \u8ba1\u7b97 \u4ee5\u4e0b \u6b65\u9aa4 \u3002 \u5f53 \u540c\u6b65 \u548c \u7cbe\u5ea6 \u76f8\u5173 \u65f6 \uff0c \u8fd9\u662f \u6700\u4f73 \u6a21\u5f0f \u3002 \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6216 \u68c0\u7d22 \u4fe1\u606f \u7684 \u4e0d\u540c \u5143\u7d20 \u65f6 \u3002 \u8b66\u544a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8bf7 \u59cb\u7ec8 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u7528\u6237 \uff0c \u5e76\u4e14 \u5b83 \u4f7f\u7528 \u7684 \u662f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u592a\u5927 \u3002 \u7269\u7406 \u7406\u5b66 \u7269\u7406\u5b66 \u662f \u4e0d \u53ef\u9760 \u7684 \u3002 \u8fd9\u4e2a \u95ee\u9898 \u5728 \u65f6\u95f4 \u6b65\u957f \u9650\u5236 \u90e8\u5206 \u6709 \u66f4\u597d \u7684 \u89e3\u91ca \u3002","title":"\u53ef\u80fd \u7684 \u914d\u7f6e"},{"location":"adv_synchrony_timestep/#_10","text":"Carla \u5728 \u7279\u5b9a \u60c5\u51b5 \u4e0b \u652f\u6301 \u7269\u7406 \u548c \u78b0\u649e \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff1a \u540c\u6b65 \u6a21\u5f0f \u548c \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u5fc5\u987b \u542f\u7528 \uff1a \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8981\u6c42 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5b8c\u5168 \u540c\u6b65 \uff0c \u4ee5 \u786e\u4fdd \u547d\u4ee4 \u88ab \u6b63\u786e \u5e94\u7528 \u5e76 \u4ea7\u751f \u51c6\u786e \u548c \u53ef \u590d\u5236 \u7684 \u7ed3\u679c \u3002 \u5fc5\u987b \u901a\u8fc7 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u6765 \u5f3a\u5236 \u6267\u884c \u5f3a\u5236\u6267\u884c \u6052\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u4e0d \u8bbe\u7f6e \uff0c \u65f6\u95f4 \u6b65\u957f \u5c06 \u6839\u636e \u4eff\u771f \u6027\u80fd \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u81ea\u52a8 \u8ba1\u7b97 \u3002 \u5728 \u52a0\u8f7d \u6216 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u4e4b\u524d \uff0c \u5fc5\u987b \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff1a \u5982\u679c \u4e16\u754c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u4e0d \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e0d\u540c \u7684 \u65f6\u95f4 \u6233 \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u5728 \u7269\u7406 \u4eff\u771f \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7b49 \u5bf9\u8c61 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u4e2d \u4ea7\u751f \u5fae\u5c0f \u7684 \u5dee\u5f02 \u3002 \u6bcf \u4e00\u6b21 \u65b0 \u7684 \u91cd\u590d \u90fd \u5fc5\u987b \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \uff1a \u6bcf\u6b21 \u8981 \u91cd\u73b0 \u4eff\u771f \u65f6 \uff0c \u8bf7 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u3002 \u547d\u4ee4 \u5e94\u8be5 \u662f \u5904\u7406 \u6279\u5904\u7406 \u7684 \uff0c \u800c \u4e0d\u662f \u4e00\u6b21 \u53d1\u51fa \u4e00\u4e2a \u547d\u4ee4 \uff1a \u867d\u7136 \u5f88\u5c11 \u89c1 \uff0c \u4f46 \u5728 \u7e41\u5fd9 \u7684 \u4eff\u771f \u6216 \u8fc7\u8f7d \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \uff0c \u5355\u4e2a \u53d1\u51fa \u7684 \u547d\u4ee4 \u53ef\u80fd \u4f1a \u4e22\u5931 \u3002 \u5982\u679c \u547d\u4ee4 \u5728 apply _ batch _ sync \u547d\u4ee4 \u4e2d \u5904\u7406 \u6279\u5904\u7406 \uff0c \u5219 \u4fdd\u8bc1 \u8be5 \u547d\u4ee4 \u88ab \u6267\u884c \u6216 \u8fd4\u56de \u5931\u8d25 \u54cd\u5e94 \u3002 \u4ee5\u4e0b \u662f \u4e0a\u8ff0 \u6b65\u9aa4 \u7684 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings # Set up the traffic manager traffic _ manager = client . get _ trafficmanager ( TM _ PORT ) traffic _ manager . set _ synchronous _ mode ( True ) traffic _ manager . set _ random _ device _ seed ( SEED ) # define TM seed for determinism # Spawn your vehicles , pedestrians , etc . # Simulation loop while True : # Your code world . tick ( ) \u64ad\u653e \u529f\u80fd \u7684 \u4e00\u4e2a \u5177\u4f53 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings client . replay _ file ( FILE _ TO _ PLAY , 0 , 0 , 0 , False ) world . tick ( ) # a tick is necessary for the server to process the replay _ file command # Simulation loop while True : # Your code world . tick ( ) \u8fd0\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u5c06 \u786e\u4fdd \u6bcf\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u7ed3\u679c \u76f8\u540c \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u5728 Carla \u4e2d \u7684 \u4f5c\u7528 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u6253\u5f00 Carla \uff0c \u73a9 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u4efb\u4f55 \u5efa\u8bae \u6216 \u7591\u95ee \u3002 Carla forum","title":"\u7269\u7406 \u786e\u5b9a\u6027"},{"location":"adv_traffic_manager/","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ec0\u4e48 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f \u7ed3\u6784 \u7ed3\u6784\u5316 \u8bbe\u8ba1 \u7528\u6237 \u5b9a\u5236 \u67b6\u6784 \u6982\u8ff0 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4eff\u771f \u72b6\u6001 \u63a7\u5236 \u5faa\u73af \u5185\u5b58 \u5730\u56fe \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 PID \u63a7\u5236 \u63a7\u5236\u5668 \u547d\u4ee4 \u6570\u7ec4 \u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u884c\u4e3a \u8003\u8651 \u56e0\u7d20 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u914d\u7f6e \u81ea\u52a8 \u9a7e\u9a76 \u884c\u4e3a \u505c\u6b62 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u591a\u91cd \u4eff\u771f \u540c\u6b65 \u6a21\u5f0f \u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ec0\u4e48 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 ( Traffic Manager , TM ) \u662f \u5728 \u4eff\u771f \u4e2d\u4ee5 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u63a7\u5236 \u8f66\u8f86 \u7684 \u6a21\u5757 \u3002 \u5176 \u76ee\u6807 \u662f \u5728 \u4eff\u771f \u4e2d \u586b\u5145 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u7528\u6237 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u884c\u4e3a \uff0c \u4f8b\u5982 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002 \u7ed3\u6784 \u7ed3\u6784\u5316 \u8bbe\u8ba1 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6784\u5efa \u4e8e Carla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u4e0a \u3002 \u6267\u884c \u6d41\u7a0b \u5206\u4e3a \u591a\u4e2a \u9636\u6bb5 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u6709 \u72ec\u7acb \u7684 \u64cd\u4f5c \u548c \u76ee\u6807 \u3002 \u8fd9 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u76f8\u4f4d \u76f8\u5173 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u7684 \u5f00\u53d1 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u4e0e \u5176\u4ed6 \u9636\u6bb5 \u7684 \u901a\u4fe1 \u901a\u8fc7 \u540c\u6b65 \u6d88\u606f \u4f20\u9012 \u6d88\u606f\u4f20\u9012 \u8fdb\u884c \u7ba1\u7406 \u3002 \u4fe1\u606f \u671d \u4e00\u4e2a \u65b9\u5411 \u6d41\u52a8 \u3002 \u7528\u6237 \u5b9a\u5236 \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u8bbe\u7f6e \u5141\u8bb8 \u3001 \u5f3a\u5236 \u6216 \u9f13\u52b1 \u7279\u5b9a \u884c\u4e3a \u7684 \u53c2\u6570 \u6765 \u5bf9 \u6d41\u91cf \u8fdb\u884c \u4e00\u5b9a \u7a0b\u5ea6 \u7684 \u63a7\u5236 \u3002 \u7528\u6237 \u53ef\u4ee5 \u6839\u636e \u81ea\u5df1 \u7684 \u559c\u597d \u6539\u53d8 \u6d41\u91cf \u884c\u4e3a \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728\u7ebf \u8fd8\u662f \u79bb\u7ebf \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u5141\u8bb8 \u6c7d\u8f66 \u5ffd\u7565 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u6216 \u5f3a\u5236 \u53d8\u9053 \u3002 \u5728 \u5c1d\u8bd5 \u4eff\u771f \u73b0\u5b9e \u65f6 \uff0c \u80fd\u591f \u5c1d\u8bd5 \u5404\u79cd \u884c\u4e3a \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u9a7e\u9a76 \u7cfb\u7edf \u9700\u8981 \u5728 \u7279\u5b9a \u548c \u975e\u5178 \u5178\u578b \u975e\u5178\u578b \u60c5\u51b5 \u4e0b \u8fdb\u884c \u8bad\u7ec3 \u3002 \u67b6\u6784 \u6982\u8ff0 \u4e0a\u56fe \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5185\u90e8 \u67b6\u6784 \u793a\u610f \u610f\u56fe \u793a\u610f\u56fe \u3002 \u6bcf\u4e2a \u7ec4\u4ef6 \u7684 C++ \u4ee3\u7801 \u53ef\u4ee5 \u5728 LibCarla / source / carla / trafficmanager \u4e2d \u627e\u5230 \u3002 \u4ee5\u4e0b \u5404\u8282 \u8be6\u7ec6 \u89e3\u91ca \u4e86 \u6bcf\u4e2a \u7ec4\u4ef6 \u3002 \u903b\u8f91 \u6982\u8ff0 \u5982\u4e0b \uff1a 1 . \u5b58\u50a8 \u5e76 \u66f4\u65b0 \u4eff\u771f \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 ( Agent Lifecycle & State Management , ALSM ) \u626b\u63cf \u4e16\u754c \uff0c \u8ddf\u8e2a \u6240\u6709 \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u5e76 \u6e05\u7406 \u4e0d\u518d \u5b58\u5728 \u7684 \u6761\u76ee \u3002 \u6240\u6709 \u6570\u636e \u5747 \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u68c0\u7d22 \u5e76 \u7ecf\u8fc7 \u591a\u4e2a \u9636\u6bb5 \u3002 ALSM \u662f \u552f\u4e00 \u8c03\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7ec4\u4ef6 \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \u7684 \u8f66\u8f86 \uff08 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \uff09 \u4ee5\u53ca \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u4e0d \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \uff08 \u4e0d \u53d7 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u63a7\u5236 \uff09 \u7684 \u884c\u4eba \u548c \u8f66\u8f86 \u3002 \u4eff\u771f \u72b6\u6001 \u662f \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \u7684 \u7f13\u5b58 \u5b58\u50a8 \u3002 2 . \u8ba1\u7b97 \u6bcf\u8f86 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6839\u636e \u4eff\u771f \u72b6\u6001 \u4e3a \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u751f\u6210 \u53ef\u884c \u7684 \u547d\u4ee4 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8ba1\u7b97 \u90fd \u662f \u5355\u72ec \u8fdb\u884c \u7684 \u3002 \u8fd9\u4e9b \u8ba1\u7b97 \u5206\u4e3a \u4e0d\u540c \u7684 \u9636\u6bb5 \u3002 \u63a7\u5236 \u5faa\u73af \u901a\u8fc7 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u6765 \u786e\u4fdd \u6240\u6709 \u8ba1\u7b97 \u7684 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u5728 \u5f53\u524d \u9636\u6bb5 \u7684 \u6240\u6709 \u8f66\u8f86 \u8ba1\u7b97 \u5b8c\u6210 \u4e4b\u524d \uff0c \u6ca1\u6709 \u8f66\u8f86 \u8fdb\u5165 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u4f1a \u7ecf\u5386 \u4ee5\u4e0b \u9636\u6bb5 \uff1a 2.1 - \u5b9a\u4f4d \u9636\u6bb5 \u8def\u5f84 \u662f \u4f7f\u7528 \u4ece \u5185\u5b58 \u5730\u56fe \u4e2d \u6536\u96c6 \u7684 \u9644\u8fd1 \u8def\u5f84 \u70b9 \u5217\u8868 \u52a8\u6001 \u521b\u5efa \u52a8\u6001\u521b\u5efa \u7684 \uff0c \u5185\u5b58 \u5730\u56fe \u662f \u4eff\u771f \u5730\u56fe \u4f5c\u4e3a \u8def\u5f84 \u70b9 \u7f51\u683c \u7684 \u7b80\u5316 \u3002 \u8def\u53e3 \u7684 \u65b9\u5411 \u662f \u968f\u673a \u9009\u62e9 \u7684 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u5747 \u7531 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 ( Path Buffers & Vehicle Tracking , PBVT ) \u7ec4\u4ef6 \u5b58\u50a8 \u548c \u7ef4\u62a4 \uff0c \u4ee5\u4fbf \u5728 \u672a\u6765 \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 2.2 - \u78b0\u649e \u9636\u6bb5 \u8fb9\u754c \u6846 \u5ef6\u4f38 \u5230 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u4e0a \uff0c \u4ee5 \u8bc6\u522b \u548c \u5bfc\u822a \u6f5c\u5728 \u7684 \u78b0\u649e \u5371\u9669 \u3002 2.3 - \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 . \u4e0e \u78b0\u649e \u9636\u6bb5 \u7c7b\u4f3c \uff0c \u4f1a \u8bc6\u522b \u7531\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u7ea7 \u800c \u5f71\u54cd \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8def\u5f84 \u7684 \u6f5c\u5728 \u5371\u9669 \u3002 2.4 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 . \u8f66\u8f86 \u8fd0\u52a8 \u662f \u6839\u636e \u5b9a\u4e49 \u7684 \u8def\u5f84 \u8ba1\u7b97 \u7684 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u786e\u5b9a \u5982\u4f55 \u5230\u8fbe \u76ee\u6807 \u8def\u5f84 \u70b9 \u3002 \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a Carla \u547d\u4ee4 \u4ee5\u4f9b \u4e0b \u4e00\u6b65 \u5e94\u7528 \u3002 2.5 - \u8f66\u706f \u9636\u6bb5 . \u8f66\u706f \u6839\u636e \u73af\u5883 \u56e0\u7d20 \u73af\u5883\u56e0\u7d20 \uff08 \u4f8b\u5982 \u9633\u5149 \u548c \u96fe \u6216 \u96e8 \u7684 \u5b58\u5728 \uff09 \u548c \u8f66\u8f86 \u884c\u4e3a \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u8f66\u8f86 \u5c06 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u65b9\u5411 \u6307\u793a \u6307\u793a\u706f \uff1b \u5982\u679c \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \uff09 \u3002 3 . \u5728 \u4eff\u771f \u4e2d \u5e94\u7528 \u547d\u4ee4 \u4e0a \u4e00\u6b65 \u751f\u6210 \u7684 \u547d\u4ee4 \u88ab \u6536\u96c6 \u5230 \u547d\u4ee4 \u6570\u7ec4 \u4e2d \uff0c \u6279\u91cf \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5728 \u540c\u4e00 \u5e27 \u4e2d \u5e94\u7528 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u4e0a\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u4e2d \u7684 \u6bcf\u4e2a \u7ec4\u4ef6 \u548c \u9636\u6bb5 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u3002 \u5b83 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u5468\u671f \u7684 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u63d0\u4f9b \u4eff\u771f \u5f53\u524d \u72b6\u6001 \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u7ec4\u4ef6 \uff1a \u626b\u63cf \u4e16\u754c \u4ee5 \u8ddf\u8e2a \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u5982\u679c \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff0c \u5219 \u901a\u8fc7 Vehicle . get _ velocity ( ) \u68c0\u7d22 \u901f\u5ea6 \u3002 \u5426\u5219 \uff0c \u5c06 \u4f7f\u7528 \u4f4d\u7f6e \u968f \u65f6\u95f4 \u66f4\u65b0 \u7684 \u5386\u53f2 \u53f2\u8bb0 \u8bb0\u5f55 \u5386\u53f2\u8bb0\u5f55 \u6765 \u8ba1\u7b97 \u901f\u5ea6 \u8ba1\u7b97\u901f\u5ea6 \u3002 \u5b58\u50a8 \u4eff\u771f \u72b6\u6001 \u7ec4\u4ef6 \u4e2d \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u8fb9\u754c \u6846\u7b49 \uff09 \u3002 \u66f4\u65b0 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5217\u8868 \u3002 \u66f4\u65b0 \u63a7\u5236 \u5faa\u73af \u548c \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u7ec4\u4ef6 \u4e2d \u7684 \u6761\u76ee \u4ee5 \u5339\u914d \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a ALSM . h , ALSM . cpp . \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u8bb0\u5f55 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u4f20\u9012 \u6765 \u6700\u65b0 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u5217\u8868 \u3002 \u5c06 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u8f66\u8f86 \u5b58\u50a8 \u5728 \u5355\u72ec \u7684 \u6570\u7ec4 \u4e2d \uff0c \u4ee5\u4fbf \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8fdb\u884c \u8fed\u4ee3 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a MotionPlannerStage . cpp . \u4eff\u771f \u72b6\u6001 \u4eff\u771f \u72b6\u6001 \u5b58\u50a8 \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u4ee5\u4fbf \u5728 \u540e\u671f \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 \u4eff\u771f \u72b6\u6001 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff0c \u5305\u62ec \u5f53\u524d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7b49 \u3002 \u5c06 \u6240\u6709 \u4fe1\u606f \u5b58\u50a8 \u5728 \u7f13\u5b58 \u4e2d \uff0c \u907f\u514d \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u5bf9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u540e\u7eed \u8c03\u7528 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a SimulationState . cpp , SimulationState . h . \u63a7\u5236 \u5faa\u73af \u63a7\u5236 \u5faa\u73af \u7ba1\u7406 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u4e0b \u4e00\u4e2a \u547d\u4ee4 \u7684 \u8ba1\u7b97 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u540c\u6b65 \u6267\u884c \u3002 \u63a7\u5236 \u5faa\u73af \u7531 \u4e94\u4e2a \u4e0d\u540c \u7684 \u9636\u6bb5 \u7ec4\u6210 ; \u5b9a\u4f4d \uff0c \u78b0\u649e \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u8fd0\u52a8 \u89c4\u5212 \u548c \u8f66\u8f86 \u706f \u3002 \u63a7\u5236 \u5faa\u73af : \u4ece \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u63a5\u6536 TM - \u63a7\u5236 \u7684 \u8f66\u8f86 \u6570\u7ec4 \u3002 \u901a\u8fc7 \u5faa\u73af \u904d\u5386 \u6570\u7ec4 \uff0c \u5206\u522b \u5bf9 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6267\u884c \u8ba1\u7b97 \u3002 \u5c06 \u8ba1\u7b97 \u5206\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7684 \u9636\u6bb5 \u3002 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u4ee5 \u4fdd\u8bc1 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u6240\u6709 \u8f66\u8f86 \u7684 \u8ba1\u7b97 \u5728 \u4efb\u4f55 \u8f66\u8f86 \u79fb\u52a8 \u5230 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u4e4b\u524d \u5b8c\u6210 \uff0c \u786e\u4fdd \u6240\u6709 \u8f66\u8f86 \u5728 \u540c\u4e00 \u5e27 \u4e2d \u66f4\u65b0 \u3002 \u534f\u8c03 \u5404 \u9636\u6bb5 \u4e4b\u95f4 \u7684 \u8fc7\u6e21 \uff0c \u4f7f \u6240\u6709 \u8ba1\u7b97 \u540c\u6b65 \u5b8c\u6210 \u3002 \u5f53 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 ( \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u548c \u8f66\u8f86 \u706f\u5149 \u9636\u6bb5 ) \u5b8c\u6210 \u65f6 \uff0c \u5c06 \u547d\u4ee4 \u6570\u7ec4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u56e0\u6b64 \u5728 \u547d\u4ee4 \u8ba1\u7b97 \u548c \u547d\u4ee4 \u5e94\u7528 \u4e4b\u95f4 \u6ca1\u6709 \u5e27 \u5ef6\u8fdf \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp . \u5185\u5b58 \u5730\u56fe \u5185\u5b58 \u5730\u56fe \u662f \u5305\u542b \u5728 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u4e2d \u7684 \u8f85\u52a9 \u6a21\u5757 \uff0c \u5728 \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u3002 \u5185\u5b58 \u5730\u56fe : \u5c06 \u5730\u56fe \u8f6c\u6362 \u4e3a \u79bb\u6563 \u8def\u5f84 \u70b9 \u7684 \u7f51\u683c \u3002 \u5305\u542b \u7279\u5b9a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u4e2d \u7684 \u8def\u70b9 \uff0c \u5e76 \u63d0\u4f9b \u66f4 \u591a \u4fe1\u606f \u6765 \u8fde\u63a5 \u8def\u70b9 \u548c \u8bc6\u522b \u9053\u8def \u3001 \u8def\u53e3 \u7b49 \u3002 \u901a\u8fc7 \u8bc6\u522b \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 ID \u6765 \u5feb\u901f \u5b9a\u4f4d \u9644\u8fd1 \u533a\u57df \u7684 \u8f66\u8f86 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : InMemoryMap . cpp and SimpleWaypoint . cpp . PBVT PBVT \u4ee3\u8868 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u3002 PBVT \u662f \u4e00\u79cd \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5b83 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u9884\u671f \u8def\u5f84 \uff0c \u5e76 \u5141\u8bb8 \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8f7b\u677e \u8bbf\u95ee \u6570\u636e \u3002 PBVT : \u5305\u542b \u4e00\u4e2a deque \u5bf9\u8c61 \u7684 \u5730\u56fe \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6709 \u4e00\u4e2a \u5165\u53e3 \u3002 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u4e00\u7ec4 \u8def\u70b9 \uff0c \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u5305\u542b \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u7684 \u5185\u5b58 \u5730\u56fe \uff0c \u7528\u4e8e \u5c06 \u6bcf\u4e2a \u8f66\u8f86 \u4e0e \u6700\u8fd1 \u7684 \u8def\u70b9 \u548c \u53ef\u80fd \u7684 \u91cd\u53e0 \u8def\u5f84 \u5173\u8054 \u8d77\u6765 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u5728 \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6267\u884c \u8ba1\u7b97 \u7684 \u8f85\u52a9 \u6a21\u5757 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 : \u6839\u636e \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6536\u96c6 \u7684 \u4fe1\u606f \uff0c \u4f30\u7b97 \u8fbe\u5230 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u6240 \u9700 \u7684 \u6cb9\u95e8 \u3001 \u5239\u8f66 \u548c \u8f6c\u5411 \u8f93\u5165 \u3002 \u6839\u636e \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5177\u4f53 \u53c2\u6570 \u5316 \u8fdb\u884c \u8c03\u6574 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4fee\u6539 \u53c2\u6570 \u3002 \u9605\u8bfb \u66f4 \u591a \u5173\u4e8e PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u4fe1\u606f \uff0c \u4e86\u89e3 \u5982\u4f55 \u8fdb\u884c \u4fee\u6539 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : PIDController . cpp . \u547d\u4ee4 \u6570\u7ec4 \u547d\u4ee4 \u6570\u7ec4 \u8868\u793a TM \u903b\u8f91 \u5468\u671f \u4e2d \u7684 \u6700\u540e \u4e00\u6b65 \u3002 \u5b83 \u63a5\u6536 \u6240\u6709 \u6ce8\u518c \u8f66\u8f86 \u7684 \u547d\u4ee4 \u5e76 \u5e94\u7528 \u5b83\u4eec \u3002 \u547d\u4ee4 \u6570\u7ec4 : \u4ece \u8def\u5f84 \u89c4\u5212 \u9636\u6bb5 \u63a5\u6536 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . VehicleControl \u3002 \u5904\u7406 \u6279\u5904\u7406 \u8981 \u5728 \u540c\u4e00 \u5e27 \u5185 \u5e94\u7528 \u7684 \u6240\u6709 \u547d\u4ee4 \u3002 \u5c06 \u5904\u7406 \u6279\u5904\u7406 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5728 carla \u4e2d \u8c03\u7528 apply _ batch \uff08 \uff09 \u6216 apply _ batch _ synch \uff08 \uff09 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4eff\u771f \u662f \u5206\u522b \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd8\u662f \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp . \u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5 \u7b2c 1 \u9636\u6bb5 - \u5b9a\u4f4d \u9636\u6bb5 \u5b9a\u4f4d \u9636\u6bb5 \u4e3a TM \u63a7\u5236 \u7684 \u8f66\u8f86 \u5b9a\u4e49 \u4e86 \u8fd1 \u672a\u6765 \u7684 \u8def\u5f84 \u3002 \u672c\u5730 \u672c\u5730\u5316 \u9636\u6bb5 \uff1a \u4ece \u4eff\u771f \u72b6\u6001 \u83b7\u53d6 \u6240\u6709 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u4f7f\u7528 \u5185\u5b58 \u5730\u56fe \u5c06 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u4e0e \u822a\u70b9 \u5217\u8868 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \uff0c \u8be5 \u822a\u70b9 \u5217\u8868 \u6839\u636e \u5176 \u8f68\u8ff9 \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u8f66\u8f86 \u884c\u9a76 \u5f97 \u8d8a \u5feb \uff0c \u5217\u8868 \u5c31 \u8d8a\u957f \u3002 \u6839\u636e \u89c4\u5212 \u51b3\u7b56 \u66f4\u65b0 \u8def\u5f84 \uff0c \u4f8b\u5982 \u53d8\u9053 \u3001 \u9650\u901f \u3001 \u4e0e \u524d\u65b9 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u53c2\u6570 \u5316\u7b49 \u3002 \u5c06 \u6240\u6709 \u8f66\u8f86 \u7684 \u8def\u5f84 \u5b58\u50a8 \u5728 PBVT \u6a21\u5757 \u4e2d \u3002 \u76f8\u4e92 \u6bd4\u8f83 \u8def\u5f84 \u4ee5 \u4f30\u8ba1 \u53ef\u80fd \u7684 \u78b0\u649e \u60c5\u51b5 \u3002 \u7ed3\u679c \u5c06 \u4f20\u9012 \u5230 \u78b0\u649e \u9636\u6bb5 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : LocalizationStage . cpp and LocalizationUtils . cpp . \u7b2c 2 \u9636\u6bb5 - \u78b0\u649e \u9636\u6bb5 \u78b0\u649e \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u78b0\u649e \u5371\u9669 \u3002 \u78b0\u649e \u9636\u6bb5 \uff1a \u4ece \u5b9a\u4f4d \u9636\u6bb5 \u63a5\u6536 \u8def\u5f84 \u53ef\u80fd \u91cd\u53e0 \u7684 \u8f66\u8f86 \u5bf9 \u5217\u8868 \u3002 \u524d\u65b9 \u8def\u5f84 \uff08 \u5730\u7ebf \u6d4b\u5730\u7ebf \u8fb9\u754c \uff09 \u6269\u5c55 \u6bcf\u4e2a \u8f66\u8f86 \u5bf9 \u7684 \u8fb9\u754c \u6846 \uff0c \u4ee5 \u68c0\u67e5 \u5b83\u4eec \u662f\u5426 \u5b9e\u9645 \u91cd\u53e0 \u5e76 \u786e\u5b9a \u78b0\u649e \u98ce\u9669 \u662f\u5426 \u771f\u5b9e \u3002 \u5c06 \u6240\u6709 \u53ef\u80fd \u7684 \u78b0\u649e \u7684 \u5371\u9669 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff0c \u4ee5 \u76f8\u5e94 \u5730 \u4fee\u6539 \u8def\u5f84 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : CollisionStage . cpp . \u7b2c\u4e09 \u4e09\u9636 \u9636\u6bb5 \u7b2c\u4e09\u9636\u6bb5 - \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u5668 \u9020\u6210 \u7684 \u5371\u9669 \uff0c \u4f8b\u5982 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u7684 \u4f18\u5148 \u4f18\u5148\u6743 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff1a \u5982\u679c \u8f66\u8f86 \u53d7\u5230 \u9ec4\u8272 \u6216 \u7ea2\u8272 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6216 \u505c\u8f66 \u6807\u5fd7 \u7684 \u5f71\u54cd \uff0c \u5219 \u8bbe\u7f6e \u4ea4\u901a \u5371\u9669 \u3002 \u5982\u679c \u8fb9\u754c \u6846 \u4f4d\u4e8e \u65e0 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \uff0c \u5219 \u6cbf \u8f66\u8f86 \u8def\u5f84 \u5ef6\u4f38 \u8fb9\u754c \u6846 \u3002 \u8def\u5f84 \u91cd\u53e0 \u7684 \u8f66\u8f86 \u9075\u5faa \u201c \u5148\u8fdb \u5148\u8fdb\u5148\u51fa \u201d \u7684 \u987a\u5e8f \u79fb\u52a8 \u3002 \u7b49\u5f85 \u65f6\u95f4 \u7b49\u5f85\u65f6\u95f4 \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u56fa\u5b9a\u503c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficLightStage . cpp . \u7b2c 4 \u9636\u6bb5 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \u201c \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \u201d \uff08 Motion Planner Stage \uff09 \u751f\u6210 \u8981 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 Carla \u547d\u4ee4 \u3002 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff1a \u6536\u96c6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \uff08 \u4eff\u771f \u72b6\u6001 ) \uff09 \u3001 \u8def\u5f84 \uff08 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \uff09 \u548c \u5371\u9669 \uff08 \u78b0\u649e \u9636\u6bb5 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \uff09 \u3002 \u5bf9 \u8f66\u8f86 \u5e94 \u5982\u4f55 \u79fb\u52a8 \u505a\u51fa \u9ad8\u7ea7 \u51b3\u7b56 \uff0c \u4f8b\u5982 \uff0c \u8ba1\u7b97 \u9632\u6b62 \u78b0\u649e \u5371\u9669 \u6240 \u9700 \u7684 \u5236\u52a8 \u5236\u52a8\u5668 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7528\u4e8e \u6839\u636e \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u4f30\u8ba1 \u884c\u4e3a \u3002 \u5c06 \u671f\u671b \u7684 \u8fd0\u52a8 \u8f6c\u5316 \u4e3a \u9002\u7528 \u4e8e \u8f66\u8f86 \u7684 carla . VehicleControl \u3002 \u5c06 \u751f\u6210 \u7684 Carla \u547d\u4ee4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u547d\u4ee4 \u6570\u7ec4 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : MotionPlannerStage . cpp . \u7b2c 5 \u9636\u6bb5 - \u8f66\u706f \u9636\u6bb5 \u8f66\u706f \u9636\u6bb5 \u6839\u636e \u8f66\u8f86 \u72b6\u51b5 \u548c \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u6fc0\u6d3b \u8f66\u706f \u3002 \u200b \u8f66\u706f \u9636\u6bb5 : \u68c0\u7d22 \u8f66\u8f86 \u7684 \u8ba1\u5212 \u822a\u70b9 \u3001 \u6709\u5173 \u8f66\u8f86 \u706f\u5149 \u7684 \u4fe1\u606f \uff08 \u4f8b\u5982 \u706f\u5149 \u72b6\u6001 \u548c \u8ba1\u5212 \u5e94\u7528 \u7684 \u547d\u4ee4 \uff09 \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u786e\u5b9a \u8f66\u706f \u7684 \u65b0 \u72b6\u6001 : \u5982\u679c \u8f66\u8f86 \u8ba1\u5212 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3002 \u5982\u679c \u5e94\u7528 \u7684 \u547d\u4ee4 \u8981\u6c42 \u8f66\u8f86 \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u505c\u8f66 \u8f66\u706f \u505c\u8f66\u706f \u3002 \u4ece \u65e5 \u843d\u5230 \u9ece\u660e \u6216 \u5728 \u5927\u96e8 \u4e2d \u6253\u5f00 \u5149\u706f \u8fd1\u5149\u706f \u548c \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u5728 \u5927\u96fe \u6761\u4ef6 \u4e0b \u6253\u5f00 \u96fe\u706f \u3002 \u5982\u679c \u8f66\u706f \u72b6\u6001 \u5df2 \u66f4\u6539 \uff0c \u8bf7 \u66f4\u65b0 \u8f66\u706f \u72b6\u6001 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : VehicleLightStage . cpp . \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u884c\u4e3a \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 TM \u5b9e\u73b0 \u4e86 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u65f6 \u5fc5\u987b \u8003\u8651 \u7684 \u4e00\u822c \u884c\u4e3a \u6a21\u5f0f \uff1a \u8f66\u8f86 \u4e0d\u662f \u4ee5 \u76ee\u6807 \u4e3a \u5bfc\u5411 \u7684 \uff0c \u5b83\u4eec \u9075\u5faa \u52a8\u6001 \u4ea7\u751f \u7684 \u8f68\u8ff9 \uff0c \u5e76 \u5728 \u63a5\u8fd1 \u8def\u53e3 \u65f6 \u968f\u673a \u9009\u62e9 \u8def\u5f84 \u3002 \u4ed6\u4eec \u7684 \u9053\u8def \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u7684 \u3002 \u9664\u975e \u8bbe\u7f6e \u4e86 \u4efb\u4f55 \u5176\u4ed6 \u503c \uff0c \u5426\u5219 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u662f \u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 70% \u3002 \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u6743 \u4e0d \u9075\u5b88 \u4ea4\u901a \u6cd5\u89c4 \u4ea4\u901a\u6cd5\u89c4 \u3002 TM \u5728 \u8def\u53e3 \u4f7f\u7528 \u81ea\u5df1 \u7684 \u4f18\u5148 \u4f18\u5148\u7ea7 \u7cfb\u7edf \u3002 \u6b64 \u9650\u5236 \u7684 \u89e3\u51b3 \u5de5\u4f5c \u6b63\u5728 \u8fdb\u884c \u4e2d \u3002 \u540c\u65f6 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \uff0c \u4f8b\u5982 \uff0c \u73af\u5f62 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5185 \u7684 \u8f66\u8f86 \u8ba9\u6b65 \u7ed9 \u8bd5\u56fe \u8fdb\u5165 \u7684 \u8f66\u8f86 \u3002 TM \u884c\u4e3a \u53ef\u4ee5 \u901a\u8fc7 Python API \u8fdb\u884c \u8c03\u6574 \u3002 \u6709\u5173 \u5177\u4f53 \u65b9\u6cd5 \u5177\u4f53\u65b9\u6cd5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u6587\u6863 \u7684 TM \u90e8\u5206 \u3002 \u4ee5\u4e0b \u662f \u901a\u8fc7 API \u5b9e\u73b0 \u7684 \u529f\u80fd \u7684 \u4e00\u822c \u6458\u8981 \uff1a \u4e3b\u9898 \u63cf\u8ff0 \u5e38\u89c4 : - \u521b\u5efa \u8fde\u63a5 \u5230 \u7aef\u53e3 \u7684 TM \u5b9e\u4f8b \u3002 - \u68c0\u7d22 TM \u8fde\u63a5 \u7684 \u7aef\u53e3 \u3002 \u5b89\u5168 \u6761\u4ef6 : - \u8bbe\u7f6e \u505c\u6b62 \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216\u8005 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 \u8fd9 \u5c06 \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 - \u5c06 \u6240 \u9700 \u901f\u5ea6 \u8bbe\u7f6e \u4e3a \u5f53\u524d \u901f\u5ea6 \u73b0\u72b6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 - \u91cd\u7f6e \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u78b0\u649e \u7ba1\u7406 : - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u4e0e \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u5176\u4ed6 \u8f66\u8f86 \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53d8\u9053 : - \u5f3a\u5236 \u53d8\u9053 \uff0c \u5ffd\u7565 \u53ef\u80fd \u7684 \u78b0\u649e \u3002 - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u7684 \u53d8\u9053 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : - \u542f\u7528 / \u7981\u7528 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u3002 - \u66f4\u6539 \u542f\u7528 \u7269\u7406 \u7684 \u534a\u5f84 \u3002 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7b14\u8bb0 TM \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 TM \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540c\u6b65 \u6a21\u5f0f \u3002 TM \u5b9e\u4f8b \u7531 carla \u521b\u5efa . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u4f20\u9012 \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7f3a\u7701 \u7aef\u53e3 \u4e3a 8000 \u3002 \u8981 \u521b\u5efa TM \u5b9e\u4f8b \uff1a tm = client . get _ trafficmanager ( port ) \u8981 \u4e3a \u4e00\u7ec4 \u8f66\u8f86 \u542f\u7528 autopilot \uff0c \u8bf7 \u68c0\u7d22 TM \u5b9e\u4f8b \u7684 \u7aef\u53e3 \u5e76 \u8bbe\u7f6e set _ autopilot \u4e3a True \uff0c \u540c\u65f6 \u4f20\u9012 TM \u7aef\u53e3 \u3002 \u5982\u679c \u672a \u63d0\u4f9b \u7aef\u53e3 \uff0c \u5b83 \u5c06 \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 8000 \uff09 \u4e2d \u7684 TM \u3002 \u5982\u679c TM \u4e0d \u5b58\u5728 \uff0c \u5b83 \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 tm _ port = tm . get _ port ( ) for v in vehicles _ list : v . set _ autopilot ( True , tm _ port ) \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \u521b\u5efa \u6216 \u8fde\u63a5 \u5230 TM \u4e0e \u4e0a\u8ff0 \u793a\u4f8b \u4e0d\u540c \u3002 / PythonAPI / examples \u4e2d \u7684 generate _ traffic . py \u811a\u672c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u7aef\u53e3 \u521b\u5efa TM \u5b9e\u4f8b \uff0c \u5e76 \u901a\u8fc7 \u6279\u91cf \u5c06 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u8bbe\u7f6e \u4e3a \u4ee5\u4e0b \u503c\u6765 \u6ce8\u518c \u751f\u6210 \u7684 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u3002 traffic _ manager = client . get _ trafficmanager ( args . tm - port ) tm _ port = traffic _ manager . get _ port ( ) ... batch . append ( SpawnActor ( blueprint , transform ) . then ( SetAutopilot ( FutureActor , True , tm _ port ) ) ) ... traffic _ manager . global _ percentage _ speed _ difference ( 30.0 ) \u914d\u7f6e autopilot \u884c\u4e3a \u4ee5\u4e0b \u793a\u4f8b \u521b\u5efa \u4e00\u4e2a TM \u5b9e\u4f8b \uff0c \u5e76 \u4e3a \u7279\u5b9a \u8f66\u8f86 \u914d\u7f6e \u5371\u9669 \u884c\u4e3a \uff0c \u4f7f \u5176 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u4e0d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4fdd\u6301 \u5b89\u5168 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u6bd4 \u5f53\u524d \u9650\u901f \u5feb 20% \u7684 \u901f\u5ea6 \u884c\u9a76 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . ignore _ lights _ percentage ( danger _ car , 100 ) tm . distance _ to _ leading _ vehicle ( danger _ car , 0 ) tm . vehicle _ percentage _ speed _ difference ( danger _ car , - 20 ) \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u76f8\u540c \u7684 \u8f66\u8f86 \u5217\u8868 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \uff0c \u4f46 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u9002\u5ea6 \u9a7e\u9a76 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u884c\u9a76 \u901f\u5ea6 \u6bd4 \u5f53\u524d \u9650\u901f \u6162 80% \uff0c \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4e4b\u95f4 \u81f3\u5c11 \u7559\u51fa 5 \u7c73 \u7684 \u8ddd\u79bb \uff0c \u5e76\u4e14 \u4ece\u4e0d \u8fdb\u884c \u53d8\u9053 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . global _ distance _ to _ leading _ vehicle ( 5 ) tm . global _ percentage _ speed _ difference ( 80 ) for v in my _ vehicles : tm . auto _ lane _ change ( v , False ) \u59d4\u6d3e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \u8f66\u706f \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c TM \u7ba1\u7406 \u7684 \u8f66\u8f86 \u7684 \u8f66\u706f \uff08 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u8f6c\u5411 \u8f6c\u5411\u706f \u7b49 \uff09 \u6c38\u8fdc \u4e0d\u4f1a \u66f4\u65b0 \u3002 \u53ef\u4ee5 \u59d4\u6258 TM \u6765 \u66f4\u65b0 \u7ed9\u5b9a \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8f66\u706f \uff1a tm = client . get _ trafficmanager ( port ) for actor in my _ vehicles : tm . update _ vehicle _ lights ( actor , True ) \u8f66\u706f \u7ba1\u7406 \u5fc5\u987b \u6309 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8fdb\u884c \u6307\u5b9a \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u7ed9\u5b9a \u65f6\u95f4 \u90fd \u53ef\u4ee5 \u6709 \u5e26 \u548c \u4e0d\u5e26 \u81ea\u52a8 \u706f \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u505c\u6b62 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 TM \u4e0d\u662f \u4e00\u4e2a \u9700\u8981 \u88ab \u6467\u6bc1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 ; \u5f53 \u521b\u5efa \u5b83 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u505c\u6b62 \u65f6 \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002 \u8fd9 \u662f \u7531 API \u81ea\u52a8 \u7ba1\u7406 \u7684 \uff0c \u7528\u6237 \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 \u4f46\u662f \uff0c \u5728 \u5173\u95ed TM \u65f6 \uff0c \u7528\u6237 \u5fc5\u987b \u6467\u6bc1 \u7531 \u5b83 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u5728 \u5730\u56fe \u4e0a \u4fdd\u6301 \u4e0d \u52a8 \u3002 generate _ traffic . py \u811a\u672c \u4f1a \u81ea\u52a8 \u6267\u884c \u6b64 \u64cd\u4f5c : client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) \u7b14\u8bb0 \u5173\u95ed TM - Server \u5c06 \u5173\u95ed \u8fde\u63a5 \u5230 \u5b83 \u7684 TM - Clients \u3002 \u8981 \u4e86\u89e3 TM - Server \u548c TM - Client \u4e4b\u95f4 \u7684 \u533a\u522b , \u8bf7 \u9605\u8bfb Running multiple Traffic Managers \u3002 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u5728 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e0b \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u5728 \u76f8\u540c \u6761\u4ef6 \u4e0b \u4ea7\u751f \u76f8\u540c \u7684 \u7ed3\u679c \u548c \u884c\u4e3a \u3002 \u4e0d\u8981 \u5c06 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8bba \u8bef\u8ba4 \u8ba4\u4e3a \u8bef\u8ba4\u4e3a \u662f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u867d\u7136 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u60a8 \u5b58\u50a8 \u4eff\u771f \u65e5\u5fd7 \u4ee5 \u8fdb\u884c \u56de\u653e \uff0c \u4f46 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u53ef \u786e\u4fdd \u53ea\u8981 \u7ef4\u6301 \u76f8\u540c \u7684 \u6761\u4ef6 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u811a\u672c \u7684 \u4e0d\u540c \u6267\u884c \u8fc7\u7a0b \u4e2d \u59cb\u7ec8 \u5177\u6709 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4ec5 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u53ef\u7528 \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u8f83 \u5c11 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5b9e\u73b0 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 \u5728 \u5f00\u59cb \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u540c\u6b65 \u6a21\u5f0f \u90e8\u5206 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8981 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \uff1a my _ tm . set _ random _ device _ seed ( seed _ value ) seed _ value \u662f \u4e00\u4e2a \u5c06 \u751f\u6210 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u7684 \u6570\u5b57 \u7684 int \u79cd\u5b50 \u79cd\u5b50\u6570 \u3002 \u8be5\u503c \u672c\u8eab \u5e76 \u4e0d \u76f8\u5173 \uff0c \u4f46 \u76f8\u540c \u7684 \u503c \u5c06 \u59cb\u7ec8 \u5bfc\u81f4 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u5177\u6709 \u76f8\u540c \u6761\u4ef6 \u3001 \u4f7f\u7528 \u76f8\u540c \u79cd\u5b50 \u503c \u7684 \u4e24\u6b21 \u4eff\u771f \u5c06 \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \u3002 \u4e3a\u4e86 \u4fdd\u6301 \u591a\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff0c \u5fc5\u987b \u4e3a \u6bcf\u6b21 \u4eff\u771f \u8bbe\u7f6e \u79cd\u5b50 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b21 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u65f6 \uff0c \u90fd \u5fc5\u987b \u91cd\u65b0 \u8bbe\u7f6e \u79cd\u5b50 \uff1a client . reload _ world ( ) my _ tm . set _ random _ device _ seed ( seed _ value ) \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u79cd\u5b50 \u503c \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u6765 \u5728 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u4e2d \u6d4b\u8bd5 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 50 \u4e2a \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u586b\u5145 \u5730\u56fe \uff0c \u5e76 \u5c06 \u79cd\u5b50 \u8bbe\u7f6e \u4e3a \u4efb\u610f \u503c 9 \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 -- seed 9 \u8b66\u544a \u5728 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e4b\u524d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5fc5\u987b \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \u540c\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u6df7\u5408 \u6a21\u5f0f \u5141\u8bb8 \u7528\u6237 \u7981\u7528 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u6216 \u6807\u8bb0 \u4e3a \u82f1\u96c4 \u7684 \u8f66\u8f86 \u7279\u5b9a \u534a\u5f84 \u4e4b\u5916 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7269\u7406 \u8ba1\u7b97 \u3002 \u8fd9 \u6d88\u9664 \u4e86 \u4eff\u771f \u4e2d \u7684 \u8f66\u8f86 \u7269\u7406 \u74f6\u9888 \u3002 \u7269\u7406 \u529f\u80fd \u88ab \u7981\u7528 \u7684 \u8f66\u8f86 \u5c06 \u901a\u8fc7 \u9690\u5f62 \u4f20\u9001 \u79fb\u52a8 \u3002 \u7ef4\u6301 \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u57fa\u672c \u8ba1\u7b97 \uff0c \u4ee5 \u786e\u4fdd \u4f4d\u7f6e \u66f4\u65b0 \u548c \u8f66\u8f86 \u901f\u5ea6 \u4fdd\u6301 \u771f\u5b9e \uff0c \u5e76\u4e14 \u8f66\u8f86 \u4e0a \u7269\u7406 \u8ba1\u7b97 \u7684 \u5207\u6362 \u662f \u6d41\u7545 \u7684 \u3002 \u6df7\u5408 \u6a21\u5f0f \u4f7f\u7528 Actor . set _ simulate _ physics ( ) \u65b9\u6cd5 \u6765 \u5207\u6362 \u7269\u7406 \u8ba1\u7b97 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u662f \u7981\u7528 \u7684 \u3002 \u6709 \u4e24\u4e2a \u9009\u9879 \u53ef\u4ee5 \u542f\u7528 \u5b83 \uff1a TrafficManager . set _ hybrid _ physics _ mode ( True ) \u2014 \u6b64 \u65b9\u6cd5 \u4e3a \u8c03\u7528 \u5b83 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5bf9\u8c61 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u4ee5 -- hybrid \u6807\u5fd7 \u8fd0\u884c generate _ traffic . py \u2014 \u6b64 \u793a\u4f8b \u811a\u672c \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u4e2d \u751f\u6210 \u8f66\u8f86 \u3002 \u5f53 \u6807\u5fd7 -- hybrid \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u65f6 \uff0c \u5b83 \u5c06 \u8fd9\u4e9b \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u6df7\u5408 \u6a21\u5f0f \u3002 \u8981 \u4fee\u6539 \u6df7\u5408 \u6a21\u5f0f \u7684 \u884c\u4e3a \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4e24\u4e2a \u53c2\u6570 \uff1a Radius ( \u9ed8\u8ba4 = 50 \u7c73 ) \u2014 \u534a\u5f84 \u76f8\u5bf9 \u4e8e \u6807\u8bb0 \u6709 \u82f1\u96c4 \u7684 \u8f66\u8f86 \u3002 \u8be5 \u534a\u5f84 \u5185 \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5c06 \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff1b \u534a\u5f84 \u4e4b\u5916 \u7684 \u8f66\u8f86 \u5c06 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u4f7f\u7528 traffic _ manager . set _ hybrid _ physics _ radius ( r ) \u4fee\u6539 \u534a\u5f84 \u7684 \u5927\u5c0f \u3002 Hero vehicle \u2014 \u5e26\u6709 \u6807\u8bb0 role _ name = ' hero ' \u7684 \u8f66\u8f86 \u4f5c\u4e3a \u534a\u5f84 \u7684 \u4e2d\u5fc3 \u3002 \u5982\u679c \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u6240\u6709 \u8f66\u8f86 \u7684 \u7269\u7406 \u529f\u80fd \u5c06 \u88ab \u7981\u7528 \u3002 \u5982\u679c \u6709 \u4e0d\u6b62 \u4e00\u8f86 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u5219 \u4f1a \u8003\u8651 \u6240\u6709 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u534a\u5f84 \uff0c \u4ece\u800c \u5728 \u542f\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u60c5\u51b5 \u4e0b \u521b\u5efa \u4e0d\u540c \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u4e0b\u9762 \u7684 \u526a\u8f91 \u663e\u793a \u4e86 \u6df7\u5408 \u6a21\u5f0f \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u65f6 \u5982\u4f55 \u542f\u7528 \u548c \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u82f1\u96c4 \u8f66\u8f86 \u6807\u6709 \u7ea2\u8272 \u65b9\u5757 \u3002 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u8f66\u8f86 \u6807\u6709 \u84dd\u8272 \u65b9\u5757 \u3002 \u5f53 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u5f71\u54cd \u534a\u5f84 \u5185\u65f6 \uff0c \u542f\u7528 \u7269\u7406 \u529f\u80fd \u5e76\u4e14 \u6807\u7b7e \u53d8\u4e3a \u7eff\u8272 \u3002 \u8fd0\u884c \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6307\u5b9a \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u6765 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u7aef\u53e3 \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 8000 \u7aef\u53e3 \u3002 \u5982\u679c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u66f4 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5b83\u4eec \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u800c \u539f\u59cb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u8fd9\u4e9b \u6807\u9898 \u5b9a\u4e49 \u4e86 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fde\u63a5 \u5230 \u7a7a\u95f2 \u7aef\u53e3 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u7136\u540e \u5176\u4ed6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff09 \u8fde\u63a5 \u5230 \u5b83 \u6b63\u5728 \u8fd0\u884c \u7684 \u540c\u4e00 \u7aef\u53e3 \uff0c \u5219 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5c06 \u89c4\u5b9a \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \uff0c \u4f8b\u5982 \uff0c \u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u505c\u6b62 \uff0c \u5219 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u505c\u6b62 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6bcf\u4e2a \u7aef\u53e3 \u90fd \u8fde\u63a5 \u5230 \u4e0d\u540c \u4e14 \u90fd \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \uff1a tm01 = client01 . get _ trafficmanager ( ) # tm01 -- > tm01 ( p = 8000 ) tm02 = client02 . get _ trafficmanager ( 5000 ) # tm02 ( p = 5000 ) -- > tm02 ( p = 5000 ) \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5f53 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \uff09 \u5360\u7528 \u7684 \u7aef\u53e3 \u65f6 \uff0c \u5c31 \u4f1a \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u51b3\u5b9a \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf \u4e00\u4e2a \u90fd \u4e0e \u4e0a \u4e00\u8282 \u4e2d \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8fde\u63a5 \u3002 tm03 = client03 . get _ trafficmanager ( ) # tm03 -- > tm01 ( p = 8000 ) . tm04 = client04 . get _ trafficmanager ( 5000 ) # tm04 ( p = 5000 ) -- > tm02 ( p = 5000 ) Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u8fc7 \u5b58\u50a8 \u94fe\u63a5 \u5230 \u5b83\u4eec \u7684 \u7aef\u53e3 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef IP \uff08 \u5bf9 \u7528\u6237 \u9690\u85cf \uff09 \u6765 \u4fdd\u5b58 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u7684 \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u3002 \u76ee\u524d \u65e0\u6cd5 \u68c0\u67e5 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5df2 \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5c1d\u8bd5 \u521b\u5efa \u5b9e\u4f8b \u65f6 \u59cb\u7ec8 \u4f1a \u5c1d\u8bd5 \u8fde\u63a5 \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u521b\u5efa \u65b0 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u6216 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u4e2d \uff0c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a TM \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a TM \u5c06 \u662f TM \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5176\u4f59 \u7684 \u5c06 \u662f \u8fde\u63a5 \u5230 \u5b83 \u7684 TM \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 TM - Server \u5c06 \u89c4\u5b9a \u6240\u6709 TM \u5b9e\u4f8b \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Client \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u4e2d \uff0c \u5728 \u4e0d\u540c \u7684 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u90fd \u4f1a \u63a7\u5236 \u81ea\u5df1 \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4550 # TM - Server B \u591a\u91cd \u4eff\u771f \u591a\u91cd \u4eff\u771f \u662f \u6307 \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u65f6 \u8fd0\u884c \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9700\u8981 \u8fde\u63a5 \u5230 \u76f8\u5173 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u53e3 \u3002 \u53ea\u8981 \u8ba1\u7b97 \u80fd\u529b \u8ba1\u7b97\u80fd\u529b \u5141\u8bb8 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u4ee5 \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u4eff\u771f \uff0c \u4e0d\u4f1a \u51fa\u73b0 \u4efb\u4f55 \u95ee\u9898 \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 # simulation A terminal 2 : . / CarlaUE4 . sh - carla - rpc - port = 5000 # simulation B terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A connected to simulation A terminal 4 : python3 generate _ traffic . py -- port 5000 -- tm - port 5050 # TM - Server B connected to simulation B \u591a\u91cd \u4eff\u771f \u7684 \u6982\u5ff5 \u72ec\u7acb \u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u672c\u8eab \u3002 \u4e0a\u9762 \u7684 \u793a\u4f8b \u5e76\u884c \u8fd0\u884c \u4e24\u4e2a Carla \u4eff\u771f A \u548c B \u3002 \u5728 \u6bcf\u4e2a \u4eff\u771f \u4e2d \uff0c \u90fd \u72ec\u7acb \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4eff\u771f A \u53ef\u4ee5 \u8fd0\u884c \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u7a0b\u5e8f \uff0c \u800c \u4eff\u771f B \u5219 \u8fd0\u884c \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6216 \u6839\u672c \u4e0d \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e0a\u8ff0 \u8bbe\u7f6e \u6700 \u53ef\u80fd \u51fa\u73b0 \u7684 \u95ee\u9898 \u662f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u672a \u5728 \u6240\u9009 \u4eff\u771f \u4e0a \u8fd0\u884c \u7684 \u73b0\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \uff0c \u5c06\u4f1a \u51fa\u73b0 \u9519\u8bef \u6d88\u606f \uff0c \u5e76\u4e14 \u8fde\u63a5 \u5c06 \u88ab \u4e2d\u6b62 \uff0c \u4ee5 \u9632\u6b62 \u4eff\u771f \u4e4b\u95f4 \u7684 \u5e72\u6270 \u3002 \u540c\u6b65 \u6a21\u5f0f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u624d\u80fd \u6b63\u5e38 \u8fd0\u884c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u5219 \u4eff\u771f \u5e94 \u81f3\u5c11 \u4ee5 20 - 30 fps \u8fd0\u884c \u3002 \u4e0b\u9762 \u7684 \u811a\u672c \u6f14\u793a \u4e86 \u5982\u4f55 \u5c06 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a ... # Set the simulation to sync mode init _ settings = world . get _ settings ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True # After that , set the TM to sync mode my _ tm . set _ synchronous _ mode ( True ) ... # Tick the world in the same client world . apply _ settings ( init _ settings ) world . tick ( ) ... # Always disable sync mode before the script ends to prevent the server blocking whilst waiting for a tick settings . synchronous _ mode = False my _ tm . set _ synchronous _ mode ( False ) \u793a\u4f8b \u811a\u672c generate _ traffic . py \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76\u7528 \u8f66\u8f86 \u548c \u884c\u4eba \u586b\u5145 \u5730\u56fe \u3002 \u5b83 \u81ea\u52a8 \u5c06 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u548c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u4e0a\u8ff0 \u547d\u4ee4 \u65f6 \u4f7f\u7528 -- async \u6807\u5fd7 \u3002 \u5982\u679c \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u540c\u6b65 \u5c06\u4f1a \u5931\u8d25 \u3002 \u8bf7 \u9075\u5faa \u4ee5\u4e0b \u51c6\u5219 \u4ee5 \u907f\u514d \u51fa\u73b0 \u907f\u514d\u51fa\u73b0 \u95ee\u9898 \uff1a \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u60c5\u51b5 \u4e0b \uff0c \u53ea \u9700 \u5c06 \u4e00\u53f0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 ScenarioRunner \u6a21\u5757 \u81ea\u52a8 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 ScenarioRunner \u5185 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u8b66\u544a \u5728 \u7ba1\u7406 \u65f6\u949f \u7684 \u811a\u672c \u5b8c\u6210 \u4e4b\u524d \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff08 \u5bf9\u4e8e \u4e16\u754c \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \uff0c \u4ee5 \u9632\u6b62 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u963b\u585e \uff0c \u6c38\u8fdc \u7b49\u5f85 \u65f6\u949f \u3002 \u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8981 \u4e86\u89e3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5982\u4f55 \u5728 \u5927 \u5730\u56fe \u4e0a \u5de5\u4f5c \uff0c \u8bf7 \u52a1\u5fc5 \u9996\u5148 \u9605\u8bfb \u6b64\u5904 \u7684 \u6587\u6863 \u6765 \u719f\u6089 \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u5728 \u5927 \u5730\u56fe \u4e2d \u7684 \u884c\u4e3a \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \uff1a \u4e0d \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u90fd \u5c06 \u88ab \u89c6\u4e3a \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f11\u7720 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u50cf \u6df7\u5408 \u6a21\u5f0f \u4e00\u6837 \u5728 \u5730\u56fe \u4e0a \u79fb\u52a8 \u3002 \u7531\u4e8e \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \u6765 \u89e6\u53d1 \u5730\u56fe \u74e6\u7247 \u6d41 \uff0c \u56e0\u6b64 \u4e0d\u4f1a \u6e32\u67d3 \u8f66\u8f86 \u3002 \u5448\u73b0 \u82f1\u96c4 \u8f66\u8f86 \u5f53 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u8d85\u8fc7 actor _ active _ distance \u5b9a\u4e49 \u7684 \u503c\u65f6 \uff0c \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 actor _ active _ distance \u3002 \u8981 \u8bbe\u7f6e \u6b64\u503c \uff0c \u8bf7 \u4f7f\u7528 Python API \uff1a settings = world . get _ settings ( ) # Actors will become dormant 2km away from the ego vehicle settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \uff0c \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u5728 \u82f1\u96c4 \u8f66\u8f86 \u5468\u56f4 \u4e0d\u65ad \u91cd\u751f \uff0c \u800c \u4e0d\u662f \u5728 \u5730\u56fe \u7684 \u5176\u4ed6 \u90e8\u5206 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53ef\u4ee5 \u4f7f\u7528 set _ respawn _ dormant _ vehicles Python API \u4e2d \u7684 \u65b9\u6cd5 \u914d\u7f6e \u6b64 \u9009\u9879 \u3002 \u8f66\u8f86 \u5c06 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u7528\u6237 \u5b9a\u4e49 \u8ddd\u79bb \u5185 \u91cd\u751f \u3002 \u53ef \u91cd\u751f \u8ddd\u79bb \u7684 \u4e0a\u4e0b \u8fb9\u754c \u53ef\u4ee5 \u4f7f\u7528 set _ boundaries _ respawn _ dormant _ vehicles \u65b9\u6cd5 \u8bbe\u7f6e \u3002 \u6ce8\u610f \uff0c \u4e0a \u8ddd\u79bb \u4e0d\u4f1a \u5927\u4e8e \u5927 \u5730\u56fe \u7684 \u74e6\u7247 \u6d41 \u8ddd\u79bb \uff0c \u8ddd\u79bb \u6700\u5c0f \u4e3a 20m \u3002 \u8981 \u4f7f \u82f1\u96c4 \u8f66\u8f86 25 \u7c73 \u548c 700 \u7c73 \u8303\u56f4 \u5185 \u7684 \u4f11\u7720 \u8f66\u8f86 \u91cd\u751f \uff1a my _ tm . set _ respawn _ dormant _ vehicles ( True ) my _ tm . set _ boundaries _ respawn _ dormant _ vehicles ( 25 , 700 ) \u5982\u679c \u78b0\u649e \u963b\u6b62 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u91cd\u8bd5 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u3002 \u5982\u679c \u4f11\u7720 \u8f66\u8f86 \u6ca1\u6709 \u91cd\u751f \uff0c \u5b83\u4eec \u7684 \u884c\u4e3a \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u5982\u679c \u542f\u7528 \u4e86 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5728 \u5730\u56fe \u4e0a \u4f20\u9001 \u3002 \u5982\u679c \u672a \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4e0d\u4f1a \u8ba1\u7b97 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7269\u7406 \u7279\u6027 \uff0c \u5e76\u4e14 \u5b83\u4eec \u5c06 \u4fdd\u6301 \u5728 \u539f \u4f4d\u7f6e \uff0c \u76f4\u5230 \u4e0d\u518d \u4f11\u7720 \u3002 \u5982\u679c \u4f60 \u6709 \u4efb\u4f55 \u5173\u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u95ee\u9898 \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_1","text":"\u4ec0\u4e48 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f \u7ed3\u6784 \u7ed3\u6784\u5316 \u8bbe\u8ba1 \u7528\u6237 \u5b9a\u5236 \u67b6\u6784 \u6982\u8ff0 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4eff\u771f \u72b6\u6001 \u63a7\u5236 \u5faa\u73af \u5185\u5b58 \u5730\u56fe \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 PID \u63a7\u5236 \u63a7\u5236\u5668 \u547d\u4ee4 \u6570\u7ec4 \u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u884c\u4e3a \u8003\u8651 \u56e0\u7d20 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u914d\u7f6e \u81ea\u52a8 \u9a7e\u9a76 \u884c\u4e3a \u505c\u6b62 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u591a\u91cd \u4eff\u771f \u540c\u6b65 \u6a21\u5f0f \u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_2","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 ( Traffic Manager , TM ) \u662f \u5728 \u4eff\u771f \u4e2d\u4ee5 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u63a7\u5236 \u8f66\u8f86 \u7684 \u6a21\u5757 \u3002 \u5176 \u76ee\u6807 \u662f \u5728 \u4eff\u771f \u4e2d \u586b\u5145 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u7528\u6237 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u884c\u4e3a \uff0c \u4f8b\u5982 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002","title":"\u4ec0\u4e48 \u662f \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f"},{"location":"adv_traffic_manager/#_3","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6784\u5efa \u4e8e Carla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u4e0a \u3002 \u6267\u884c \u6d41\u7a0b \u5206\u4e3a \u591a\u4e2a \u9636\u6bb5 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u6709 \u72ec\u7acb \u7684 \u64cd\u4f5c \u548c \u76ee\u6807 \u3002 \u8fd9 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u76f8\u4f4d \u76f8\u5173 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u7684 \u5f00\u53d1 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u4e0e \u5176\u4ed6 \u9636\u6bb5 \u7684 \u901a\u4fe1 \u901a\u8fc7 \u540c\u6b65 \u6d88\u606f \u4f20\u9012 \u6d88\u606f\u4f20\u9012 \u8fdb\u884c \u7ba1\u7406 \u3002 \u4fe1\u606f \u671d \u4e00\u4e2a \u65b9\u5411 \u6d41\u52a8 \u3002","title":"\u7ed3\u6784\u5316 \u8bbe\u8ba1"},{"location":"adv_traffic_manager/#_4","text":"\u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u8bbe\u7f6e \u5141\u8bb8 \u3001 \u5f3a\u5236 \u6216 \u9f13\u52b1 \u7279\u5b9a \u884c\u4e3a \u7684 \u53c2\u6570 \u6765 \u5bf9 \u6d41\u91cf \u8fdb\u884c \u4e00\u5b9a \u7a0b\u5ea6 \u7684 \u63a7\u5236 \u3002 \u7528\u6237 \u53ef\u4ee5 \u6839\u636e \u81ea\u5df1 \u7684 \u559c\u597d \u6539\u53d8 \u6d41\u91cf \u884c\u4e3a \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728\u7ebf \u8fd8\u662f \u79bb\u7ebf \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u5141\u8bb8 \u6c7d\u8f66 \u5ffd\u7565 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u6216 \u5f3a\u5236 \u53d8\u9053 \u3002 \u5728 \u5c1d\u8bd5 \u4eff\u771f \u73b0\u5b9e \u65f6 \uff0c \u80fd\u591f \u5c1d\u8bd5 \u5404\u79cd \u884c\u4e3a \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u9a7e\u9a76 \u7cfb\u7edf \u9700\u8981 \u5728 \u7279\u5b9a \u548c \u975e\u5178 \u5178\u578b \u975e\u5178\u578b \u60c5\u51b5 \u4e0b \u8fdb\u884c \u8bad\u7ec3 \u3002","title":"\u7528\u6237 \u5b9a\u5236"},{"location":"adv_traffic_manager/#_5","text":"","title":"\u67b6\u6784"},{"location":"adv_traffic_manager/#_6","text":"\u4e0a\u56fe \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5185\u90e8 \u67b6\u6784 \u793a\u610f \u610f\u56fe \u793a\u610f\u56fe \u3002 \u6bcf\u4e2a \u7ec4\u4ef6 \u7684 C++ \u4ee3\u7801 \u53ef\u4ee5 \u5728 LibCarla / source / carla / trafficmanager \u4e2d \u627e\u5230 \u3002 \u4ee5\u4e0b \u5404\u8282 \u8be6\u7ec6 \u89e3\u91ca \u4e86 \u6bcf\u4e2a \u7ec4\u4ef6 \u3002 \u903b\u8f91 \u6982\u8ff0 \u5982\u4e0b \uff1a 1 . \u5b58\u50a8 \u5e76 \u66f4\u65b0 \u4eff\u771f \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 ( Agent Lifecycle & State Management , ALSM ) \u626b\u63cf \u4e16\u754c \uff0c \u8ddf\u8e2a \u6240\u6709 \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u5e76 \u6e05\u7406 \u4e0d\u518d \u5b58\u5728 \u7684 \u6761\u76ee \u3002 \u6240\u6709 \u6570\u636e \u5747 \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u68c0\u7d22 \u5e76 \u7ecf\u8fc7 \u591a\u4e2a \u9636\u6bb5 \u3002 ALSM \u662f \u552f\u4e00 \u8c03\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7ec4\u4ef6 \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \u7684 \u8f66\u8f86 \uff08 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \uff09 \u4ee5\u53ca \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u4e0d \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \uff08 \u4e0d \u53d7 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u63a7\u5236 \uff09 \u7684 \u884c\u4eba \u548c \u8f66\u8f86 \u3002 \u4eff\u771f \u72b6\u6001 \u662f \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \u7684 \u7f13\u5b58 \u5b58\u50a8 \u3002 2 . \u8ba1\u7b97 \u6bcf\u8f86 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6839\u636e \u4eff\u771f \u72b6\u6001 \u4e3a \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u751f\u6210 \u53ef\u884c \u7684 \u547d\u4ee4 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8ba1\u7b97 \u90fd \u662f \u5355\u72ec \u8fdb\u884c \u7684 \u3002 \u8fd9\u4e9b \u8ba1\u7b97 \u5206\u4e3a \u4e0d\u540c \u7684 \u9636\u6bb5 \u3002 \u63a7\u5236 \u5faa\u73af \u901a\u8fc7 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u6765 \u786e\u4fdd \u6240\u6709 \u8ba1\u7b97 \u7684 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u5728 \u5f53\u524d \u9636\u6bb5 \u7684 \u6240\u6709 \u8f66\u8f86 \u8ba1\u7b97 \u5b8c\u6210 \u4e4b\u524d \uff0c \u6ca1\u6709 \u8f66\u8f86 \u8fdb\u5165 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u4f1a \u7ecf\u5386 \u4ee5\u4e0b \u9636\u6bb5 \uff1a 2.1 - \u5b9a\u4f4d \u9636\u6bb5 \u8def\u5f84 \u662f \u4f7f\u7528 \u4ece \u5185\u5b58 \u5730\u56fe \u4e2d \u6536\u96c6 \u7684 \u9644\u8fd1 \u8def\u5f84 \u70b9 \u5217\u8868 \u52a8\u6001 \u521b\u5efa \u52a8\u6001\u521b\u5efa \u7684 \uff0c \u5185\u5b58 \u5730\u56fe \u662f \u4eff\u771f \u5730\u56fe \u4f5c\u4e3a \u8def\u5f84 \u70b9 \u7f51\u683c \u7684 \u7b80\u5316 \u3002 \u8def\u53e3 \u7684 \u65b9\u5411 \u662f \u968f\u673a \u9009\u62e9 \u7684 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u5747 \u7531 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 ( Path Buffers & Vehicle Tracking , PBVT ) \u7ec4\u4ef6 \u5b58\u50a8 \u548c \u7ef4\u62a4 \uff0c \u4ee5\u4fbf \u5728 \u672a\u6765 \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 2.2 - \u78b0\u649e \u9636\u6bb5 \u8fb9\u754c \u6846 \u5ef6\u4f38 \u5230 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u4e0a \uff0c \u4ee5 \u8bc6\u522b \u548c \u5bfc\u822a \u6f5c\u5728 \u7684 \u78b0\u649e \u5371\u9669 \u3002 2.3 - \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 . \u4e0e \u78b0\u649e \u9636\u6bb5 \u7c7b\u4f3c \uff0c \u4f1a \u8bc6\u522b \u7531\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u7ea7 \u800c \u5f71\u54cd \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8def\u5f84 \u7684 \u6f5c\u5728 \u5371\u9669 \u3002 2.4 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 . \u8f66\u8f86 \u8fd0\u52a8 \u662f \u6839\u636e \u5b9a\u4e49 \u7684 \u8def\u5f84 \u8ba1\u7b97 \u7684 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u786e\u5b9a \u5982\u4f55 \u5230\u8fbe \u76ee\u6807 \u8def\u5f84 \u70b9 \u3002 \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a Carla \u547d\u4ee4 \u4ee5\u4f9b \u4e0b \u4e00\u6b65 \u5e94\u7528 \u3002 2.5 - \u8f66\u706f \u9636\u6bb5 . \u8f66\u706f \u6839\u636e \u73af\u5883 \u56e0\u7d20 \u73af\u5883\u56e0\u7d20 \uff08 \u4f8b\u5982 \u9633\u5149 \u548c \u96fe \u6216 \u96e8 \u7684 \u5b58\u5728 \uff09 \u548c \u8f66\u8f86 \u884c\u4e3a \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u8f66\u8f86 \u5c06 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u65b9\u5411 \u6307\u793a \u6307\u793a\u706f \uff1b \u5982\u679c \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \uff09 \u3002 3 . \u5728 \u4eff\u771f \u4e2d \u5e94\u7528 \u547d\u4ee4 \u4e0a \u4e00\u6b65 \u751f\u6210 \u7684 \u547d\u4ee4 \u88ab \u6536\u96c6 \u5230 \u547d\u4ee4 \u6570\u7ec4 \u4e2d \uff0c \u6279\u91cf \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5728 \u540c\u4e00 \u5e27 \u4e2d \u5e94\u7528 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u4e0a\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u4e2d \u7684 \u6bcf\u4e2a \u7ec4\u4ef6 \u548c \u9636\u6bb5 \u3002","title":"\u6982\u8ff0"},{"location":"adv_traffic_manager/#_7","text":"\u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u3002 \u5b83 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u5468\u671f \u7684 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u63d0\u4f9b \u4eff\u771f \u5f53\u524d \u72b6\u6001 \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u7ec4\u4ef6 \uff1a \u626b\u63cf \u4e16\u754c \u4ee5 \u8ddf\u8e2a \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u5982\u679c \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff0c \u5219 \u901a\u8fc7 Vehicle . get _ velocity ( ) \u68c0\u7d22 \u901f\u5ea6 \u3002 \u5426\u5219 \uff0c \u5c06 \u4f7f\u7528 \u4f4d\u7f6e \u968f \u65f6\u95f4 \u66f4\u65b0 \u7684 \u5386\u53f2 \u53f2\u8bb0 \u8bb0\u5f55 \u5386\u53f2\u8bb0\u5f55 \u6765 \u8ba1\u7b97 \u901f\u5ea6 \u8ba1\u7b97\u901f\u5ea6 \u3002 \u5b58\u50a8 \u4eff\u771f \u72b6\u6001 \u7ec4\u4ef6 \u4e2d \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u8fb9\u754c \u6846\u7b49 \uff09 \u3002 \u66f4\u65b0 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5217\u8868 \u3002 \u66f4\u65b0 \u63a7\u5236 \u5faa\u73af \u548c \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u7ec4\u4ef6 \u4e2d \u7684 \u6761\u76ee \u4ee5 \u5339\u914d \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a ALSM . h , ALSM . cpp .","title":"\u667a\u80fd \u4f53 \u7684 \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406"},{"location":"adv_traffic_manager/#_8","text":"\u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u8bb0\u5f55 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u4f20\u9012 \u6765 \u6700\u65b0 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u5217\u8868 \u3002 \u5c06 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u8f66\u8f86 \u5b58\u50a8 \u5728 \u5355\u72ec \u7684 \u6570\u7ec4 \u4e2d \uff0c \u4ee5\u4fbf \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8fdb\u884c \u8fed\u4ee3 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a MotionPlannerStage . cpp .","title":"\u8f66\u8f86 \u6ce8\u518c\u8868"},{"location":"adv_traffic_manager/#_9","text":"\u4eff\u771f \u72b6\u6001 \u5b58\u50a8 \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u4ee5\u4fbf \u5728 \u540e\u671f \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 \u4eff\u771f \u72b6\u6001 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff0c \u5305\u62ec \u5f53\u524d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7b49 \u3002 \u5c06 \u6240\u6709 \u4fe1\u606f \u5b58\u50a8 \u5728 \u7f13\u5b58 \u4e2d \uff0c \u907f\u514d \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u5bf9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u540e\u7eed \u8c03\u7528 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a SimulationState . cpp , SimulationState . h .","title":"\u4eff\u771f \u72b6\u6001"},{"location":"adv_traffic_manager/#_10","text":"\u63a7\u5236 \u5faa\u73af \u7ba1\u7406 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u4e0b \u4e00\u4e2a \u547d\u4ee4 \u7684 \u8ba1\u7b97 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u540c\u6b65 \u6267\u884c \u3002 \u63a7\u5236 \u5faa\u73af \u7531 \u4e94\u4e2a \u4e0d\u540c \u7684 \u9636\u6bb5 \u7ec4\u6210 ; \u5b9a\u4f4d \uff0c \u78b0\u649e \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u8fd0\u52a8 \u89c4\u5212 \u548c \u8f66\u8f86 \u706f \u3002 \u63a7\u5236 \u5faa\u73af : \u4ece \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u63a5\u6536 TM - \u63a7\u5236 \u7684 \u8f66\u8f86 \u6570\u7ec4 \u3002 \u901a\u8fc7 \u5faa\u73af \u904d\u5386 \u6570\u7ec4 \uff0c \u5206\u522b \u5bf9 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6267\u884c \u8ba1\u7b97 \u3002 \u5c06 \u8ba1\u7b97 \u5206\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7684 \u9636\u6bb5 \u3002 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u4ee5 \u4fdd\u8bc1 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u6240\u6709 \u8f66\u8f86 \u7684 \u8ba1\u7b97 \u5728 \u4efb\u4f55 \u8f66\u8f86 \u79fb\u52a8 \u5230 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u4e4b\u524d \u5b8c\u6210 \uff0c \u786e\u4fdd \u6240\u6709 \u8f66\u8f86 \u5728 \u540c\u4e00 \u5e27 \u4e2d \u66f4\u65b0 \u3002 \u534f\u8c03 \u5404 \u9636\u6bb5 \u4e4b\u95f4 \u7684 \u8fc7\u6e21 \uff0c \u4f7f \u6240\u6709 \u8ba1\u7b97 \u540c\u6b65 \u5b8c\u6210 \u3002 \u5f53 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 ( \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u548c \u8f66\u8f86 \u706f\u5149 \u9636\u6bb5 ) \u5b8c\u6210 \u65f6 \uff0c \u5c06 \u547d\u4ee4 \u6570\u7ec4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u56e0\u6b64 \u5728 \u547d\u4ee4 \u8ba1\u7b97 \u548c \u547d\u4ee4 \u5e94\u7528 \u4e4b\u95f4 \u6ca1\u6709 \u5e27 \u5ef6\u8fdf \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp .","title":"\u63a7\u5236 \u5faa\u73af"},{"location":"adv_traffic_manager/#_11","text":"\u5185\u5b58 \u5730\u56fe \u662f \u5305\u542b \u5728 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u4e2d \u7684 \u8f85\u52a9 \u6a21\u5757 \uff0c \u5728 \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u3002 \u5185\u5b58 \u5730\u56fe : \u5c06 \u5730\u56fe \u8f6c\u6362 \u4e3a \u79bb\u6563 \u8def\u5f84 \u70b9 \u7684 \u7f51\u683c \u3002 \u5305\u542b \u7279\u5b9a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u4e2d \u7684 \u8def\u70b9 \uff0c \u5e76 \u63d0\u4f9b \u66f4 \u591a \u4fe1\u606f \u6765 \u8fde\u63a5 \u8def\u70b9 \u548c \u8bc6\u522b \u9053\u8def \u3001 \u8def\u53e3 \u7b49 \u3002 \u901a\u8fc7 \u8bc6\u522b \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 ID \u6765 \u5feb\u901f \u5b9a\u4f4d \u9644\u8fd1 \u533a\u57df \u7684 \u8f66\u8f86 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : InMemoryMap . cpp and SimpleWaypoint . cpp .","title":"\u5185\u5b58 \u5730\u56fe"},{"location":"adv_traffic_manager/#pbvt","text":"PBVT \u4ee3\u8868 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u3002 PBVT \u662f \u4e00\u79cd \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5b83 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u9884\u671f \u8def\u5f84 \uff0c \u5e76 \u5141\u8bb8 \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8f7b\u677e \u8bbf\u95ee \u6570\u636e \u3002 PBVT : \u5305\u542b \u4e00\u4e2a deque \u5bf9\u8c61 \u7684 \u5730\u56fe \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6709 \u4e00\u4e2a \u5165\u53e3 \u3002 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u4e00\u7ec4 \u8def\u70b9 \uff0c \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u5305\u542b \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u7684 \u5185\u5b58 \u5730\u56fe \uff0c \u7528\u4e8e \u5c06 \u6bcf\u4e2a \u8f66\u8f86 \u4e0e \u6700\u8fd1 \u7684 \u8def\u70b9 \u548c \u53ef\u80fd \u7684 \u91cd\u53e0 \u8def\u5f84 \u5173\u8054 \u8d77\u6765 \u3002","title":"PBVT"},{"location":"adv_traffic_manager/#pid","text":"PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u5728 \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6267\u884c \u8ba1\u7b97 \u7684 \u8f85\u52a9 \u6a21\u5757 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 : \u6839\u636e \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6536\u96c6 \u7684 \u4fe1\u606f \uff0c \u4f30\u7b97 \u8fbe\u5230 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u6240 \u9700 \u7684 \u6cb9\u95e8 \u3001 \u5239\u8f66 \u548c \u8f6c\u5411 \u8f93\u5165 \u3002 \u6839\u636e \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5177\u4f53 \u53c2\u6570 \u5316 \u8fdb\u884c \u8c03\u6574 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4fee\u6539 \u53c2\u6570 \u3002 \u9605\u8bfb \u66f4 \u591a \u5173\u4e8e PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u4fe1\u606f \uff0c \u4e86\u89e3 \u5982\u4f55 \u8fdb\u884c \u4fee\u6539 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : PIDController . cpp .","title":"PID \u63a7\u5236\u5668"},{"location":"adv_traffic_manager/#_12","text":"\u547d\u4ee4 \u6570\u7ec4 \u8868\u793a TM \u903b\u8f91 \u5468\u671f \u4e2d \u7684 \u6700\u540e \u4e00\u6b65 \u3002 \u5b83 \u63a5\u6536 \u6240\u6709 \u6ce8\u518c \u8f66\u8f86 \u7684 \u547d\u4ee4 \u5e76 \u5e94\u7528 \u5b83\u4eec \u3002 \u547d\u4ee4 \u6570\u7ec4 : \u4ece \u8def\u5f84 \u89c4\u5212 \u9636\u6bb5 \u63a5\u6536 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . VehicleControl \u3002 \u5904\u7406 \u6279\u5904\u7406 \u8981 \u5728 \u540c\u4e00 \u5e27 \u5185 \u5e94\u7528 \u7684 \u6240\u6709 \u547d\u4ee4 \u3002 \u5c06 \u5904\u7406 \u6279\u5904\u7406 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5728 carla \u4e2d \u8c03\u7528 apply _ batch \uff08 \uff09 \u6216 apply _ batch _ synch \uff08 \uff09 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4eff\u771f \u662f \u5206\u522b \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd8\u662f \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp .","title":"\u547d\u4ee4 \u6570\u7ec4"},{"location":"adv_traffic_manager/#_13","text":"","title":"\u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5"},{"location":"adv_traffic_manager/#1-","text":"\u5b9a\u4f4d \u9636\u6bb5 \u4e3a TM \u63a7\u5236 \u7684 \u8f66\u8f86 \u5b9a\u4e49 \u4e86 \u8fd1 \u672a\u6765 \u7684 \u8def\u5f84 \u3002 \u672c\u5730 \u672c\u5730\u5316 \u9636\u6bb5 \uff1a \u4ece \u4eff\u771f \u72b6\u6001 \u83b7\u53d6 \u6240\u6709 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u4f7f\u7528 \u5185\u5b58 \u5730\u56fe \u5c06 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u4e0e \u822a\u70b9 \u5217\u8868 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \uff0c \u8be5 \u822a\u70b9 \u5217\u8868 \u6839\u636e \u5176 \u8f68\u8ff9 \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u8f66\u8f86 \u884c\u9a76 \u5f97 \u8d8a \u5feb \uff0c \u5217\u8868 \u5c31 \u8d8a\u957f \u3002 \u6839\u636e \u89c4\u5212 \u51b3\u7b56 \u66f4\u65b0 \u8def\u5f84 \uff0c \u4f8b\u5982 \u53d8\u9053 \u3001 \u9650\u901f \u3001 \u4e0e \u524d\u65b9 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u53c2\u6570 \u5316\u7b49 \u3002 \u5c06 \u6240\u6709 \u8f66\u8f86 \u7684 \u8def\u5f84 \u5b58\u50a8 \u5728 PBVT \u6a21\u5757 \u4e2d \u3002 \u76f8\u4e92 \u6bd4\u8f83 \u8def\u5f84 \u4ee5 \u4f30\u8ba1 \u53ef\u80fd \u7684 \u78b0\u649e \u60c5\u51b5 \u3002 \u7ed3\u679c \u5c06 \u4f20\u9012 \u5230 \u78b0\u649e \u9636\u6bb5 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : LocalizationStage . cpp and LocalizationUtils . cpp .","title":"\u7b2c 1 \u9636\u6bb5 - \u5b9a\u4f4d \u9636\u6bb5"},{"location":"adv_traffic_manager/#2-","text":"\u78b0\u649e \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u78b0\u649e \u5371\u9669 \u3002 \u78b0\u649e \u9636\u6bb5 \uff1a \u4ece \u5b9a\u4f4d \u9636\u6bb5 \u63a5\u6536 \u8def\u5f84 \u53ef\u80fd \u91cd\u53e0 \u7684 \u8f66\u8f86 \u5bf9 \u5217\u8868 \u3002 \u524d\u65b9 \u8def\u5f84 \uff08 \u5730\u7ebf \u6d4b\u5730\u7ebf \u8fb9\u754c \uff09 \u6269\u5c55 \u6bcf\u4e2a \u8f66\u8f86 \u5bf9 \u7684 \u8fb9\u754c \u6846 \uff0c \u4ee5 \u68c0\u67e5 \u5b83\u4eec \u662f\u5426 \u5b9e\u9645 \u91cd\u53e0 \u5e76 \u786e\u5b9a \u78b0\u649e \u98ce\u9669 \u662f\u5426 \u771f\u5b9e \u3002 \u5c06 \u6240\u6709 \u53ef\u80fd \u7684 \u78b0\u649e \u7684 \u5371\u9669 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff0c \u4ee5 \u76f8\u5e94 \u5730 \u4fee\u6539 \u8def\u5f84 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : CollisionStage . cpp .","title":"\u7b2c 2 \u9636\u6bb5 - \u78b0\u649e \u9636\u6bb5"},{"location":"adv_traffic_manager/#-","text":"\u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u5668 \u9020\u6210 \u7684 \u5371\u9669 \uff0c \u4f8b\u5982 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u7684 \u4f18\u5148 \u4f18\u5148\u6743 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff1a \u5982\u679c \u8f66\u8f86 \u53d7\u5230 \u9ec4\u8272 \u6216 \u7ea2\u8272 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6216 \u505c\u8f66 \u6807\u5fd7 \u7684 \u5f71\u54cd \uff0c \u5219 \u8bbe\u7f6e \u4ea4\u901a \u5371\u9669 \u3002 \u5982\u679c \u8fb9\u754c \u6846 \u4f4d\u4e8e \u65e0 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \uff0c \u5219 \u6cbf \u8f66\u8f86 \u8def\u5f84 \u5ef6\u4f38 \u8fb9\u754c \u6846 \u3002 \u8def\u5f84 \u91cd\u53e0 \u7684 \u8f66\u8f86 \u9075\u5faa \u201c \u5148\u8fdb \u5148\u8fdb\u5148\u51fa \u201d \u7684 \u987a\u5e8f \u79fb\u52a8 \u3002 \u7b49\u5f85 \u65f6\u95f4 \u7b49\u5f85\u65f6\u95f4 \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u56fa\u5b9a\u503c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficLightStage . cpp .","title":"\u7b2c\u4e09\u9636\u6bb5 - \u4ea4\u901a\u706f \u9636\u6bb5"},{"location":"adv_traffic_manager/#4-","text":"\u201c \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \u201d \uff08 Motion Planner Stage \uff09 \u751f\u6210 \u8981 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 Carla \u547d\u4ee4 \u3002 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff1a \u6536\u96c6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \uff08 \u4eff\u771f \u72b6\u6001 ) \uff09 \u3001 \u8def\u5f84 \uff08 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \uff09 \u548c \u5371\u9669 \uff08 \u78b0\u649e \u9636\u6bb5 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \uff09 \u3002 \u5bf9 \u8f66\u8f86 \u5e94 \u5982\u4f55 \u79fb\u52a8 \u505a\u51fa \u9ad8\u7ea7 \u51b3\u7b56 \uff0c \u4f8b\u5982 \uff0c \u8ba1\u7b97 \u9632\u6b62 \u78b0\u649e \u5371\u9669 \u6240 \u9700 \u7684 \u5236\u52a8 \u5236\u52a8\u5668 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7528\u4e8e \u6839\u636e \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u4f30\u8ba1 \u884c\u4e3a \u3002 \u5c06 \u671f\u671b \u7684 \u8fd0\u52a8 \u8f6c\u5316 \u4e3a \u9002\u7528 \u4e8e \u8f66\u8f86 \u7684 carla . VehicleControl \u3002 \u5c06 \u751f\u6210 \u7684 Carla \u547d\u4ee4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u547d\u4ee4 \u6570\u7ec4 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : MotionPlannerStage . cpp .","title":"\u7b2c 4 \u9636\u6bb5 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5"},{"location":"adv_traffic_manager/#5-","text":"\u8f66\u706f \u9636\u6bb5 \u6839\u636e \u8f66\u8f86 \u72b6\u51b5 \u548c \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u6fc0\u6d3b \u8f66\u706f \u3002 \u200b \u8f66\u706f \u9636\u6bb5 : \u68c0\u7d22 \u8f66\u8f86 \u7684 \u8ba1\u5212 \u822a\u70b9 \u3001 \u6709\u5173 \u8f66\u8f86 \u706f\u5149 \u7684 \u4fe1\u606f \uff08 \u4f8b\u5982 \u706f\u5149 \u72b6\u6001 \u548c \u8ba1\u5212 \u5e94\u7528 \u7684 \u547d\u4ee4 \uff09 \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u786e\u5b9a \u8f66\u706f \u7684 \u65b0 \u72b6\u6001 : \u5982\u679c \u8f66\u8f86 \u8ba1\u5212 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3002 \u5982\u679c \u5e94\u7528 \u7684 \u547d\u4ee4 \u8981\u6c42 \u8f66\u8f86 \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u505c\u8f66 \u8f66\u706f \u505c\u8f66\u706f \u3002 \u4ece \u65e5 \u843d\u5230 \u9ece\u660e \u6216 \u5728 \u5927\u96e8 \u4e2d \u6253\u5f00 \u5149\u706f \u8fd1\u5149\u706f \u548c \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u5728 \u5927\u96fe \u6761\u4ef6 \u4e0b \u6253\u5f00 \u96fe\u706f \u3002 \u5982\u679c \u8f66\u706f \u72b6\u6001 \u5df2 \u66f4\u6539 \uff0c \u8bf7 \u66f4\u65b0 \u8f66\u706f \u72b6\u6001 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : VehicleLightStage . cpp .","title":"\u7b2c 5 \u9636\u6bb5 - \u8f66\u706f \u9636\u6bb5"},{"location":"adv_traffic_manager/#_14","text":"","title":"\u4f7f\u7528 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_15","text":"TM \u5b9e\u73b0 \u4e86 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u65f6 \u5fc5\u987b \u8003\u8651 \u7684 \u4e00\u822c \u884c\u4e3a \u6a21\u5f0f \uff1a \u8f66\u8f86 \u4e0d\u662f \u4ee5 \u76ee\u6807 \u4e3a \u5bfc\u5411 \u7684 \uff0c \u5b83\u4eec \u9075\u5faa \u52a8\u6001 \u4ea7\u751f \u7684 \u8f68\u8ff9 \uff0c \u5e76 \u5728 \u63a5\u8fd1 \u8def\u53e3 \u65f6 \u968f\u673a \u9009\u62e9 \u8def\u5f84 \u3002 \u4ed6\u4eec \u7684 \u9053\u8def \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u7684 \u3002 \u9664\u975e \u8bbe\u7f6e \u4e86 \u4efb\u4f55 \u5176\u4ed6 \u503c \uff0c \u5426\u5219 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u662f \u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 70% \u3002 \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u6743 \u4e0d \u9075\u5b88 \u4ea4\u901a \u6cd5\u89c4 \u4ea4\u901a\u6cd5\u89c4 \u3002 TM \u5728 \u8def\u53e3 \u4f7f\u7528 \u81ea\u5df1 \u7684 \u4f18\u5148 \u4f18\u5148\u7ea7 \u7cfb\u7edf \u3002 \u6b64 \u9650\u5236 \u7684 \u89e3\u51b3 \u5de5\u4f5c \u6b63\u5728 \u8fdb\u884c \u4e2d \u3002 \u540c\u65f6 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \uff0c \u4f8b\u5982 \uff0c \u73af\u5f62 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5185 \u7684 \u8f66\u8f86 \u8ba9\u6b65 \u7ed9 \u8bd5\u56fe \u8fdb\u5165 \u7684 \u8f66\u8f86 \u3002 TM \u884c\u4e3a \u53ef\u4ee5 \u901a\u8fc7 Python API \u8fdb\u884c \u8c03\u6574 \u3002 \u6709\u5173 \u5177\u4f53 \u65b9\u6cd5 \u5177\u4f53\u65b9\u6cd5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u6587\u6863 \u7684 TM \u90e8\u5206 \u3002 \u4ee5\u4e0b \u662f \u901a\u8fc7 API \u5b9e\u73b0 \u7684 \u529f\u80fd \u7684 \u4e00\u822c \u6458\u8981 \uff1a \u4e3b\u9898 \u63cf\u8ff0 \u5e38\u89c4 : - \u521b\u5efa \u8fde\u63a5 \u5230 \u7aef\u53e3 \u7684 TM \u5b9e\u4f8b \u3002 - \u68c0\u7d22 TM \u8fde\u63a5 \u7684 \u7aef\u53e3 \u3002 \u5b89\u5168 \u6761\u4ef6 : - \u8bbe\u7f6e \u505c\u6b62 \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216\u8005 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 \u8fd9 \u5c06 \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 - \u5c06 \u6240 \u9700 \u901f\u5ea6 \u8bbe\u7f6e \u4e3a \u5f53\u524d \u901f\u5ea6 \u73b0\u72b6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 - \u91cd\u7f6e \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u78b0\u649e \u7ba1\u7406 : - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u4e0e \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u5176\u4ed6 \u8f66\u8f86 \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53d8\u9053 : - \u5f3a\u5236 \u53d8\u9053 \uff0c \u5ffd\u7565 \u53ef\u80fd \u7684 \u78b0\u649e \u3002 - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u7684 \u53d8\u9053 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : - \u542f\u7528 / \u7981\u7528 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u3002 - \u66f4\u6539 \u542f\u7528 \u7269\u7406 \u7684 \u534a\u5f84 \u3002","title":"\u8f66\u8f86 \u884c\u4e3a \u6ce8\u610f\u4e8b\u9879"},{"location":"adv_traffic_manager/#_16","text":"\u7b14\u8bb0 TM \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 TM \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540c\u6b65 \u6a21\u5f0f \u3002 TM \u5b9e\u4f8b \u7531 carla \u521b\u5efa . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u4f20\u9012 \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7f3a\u7701 \u7aef\u53e3 \u4e3a 8000 \u3002 \u8981 \u521b\u5efa TM \u5b9e\u4f8b \uff1a tm = client . get _ trafficmanager ( port ) \u8981 \u4e3a \u4e00\u7ec4 \u8f66\u8f86 \u542f\u7528 autopilot \uff0c \u8bf7 \u68c0\u7d22 TM \u5b9e\u4f8b \u7684 \u7aef\u53e3 \u5e76 \u8bbe\u7f6e set _ autopilot \u4e3a True \uff0c \u540c\u65f6 \u4f20\u9012 TM \u7aef\u53e3 \u3002 \u5982\u679c \u672a \u63d0\u4f9b \u7aef\u53e3 \uff0c \u5b83 \u5c06 \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 8000 \uff09 \u4e2d \u7684 TM \u3002 \u5982\u679c TM \u4e0d \u5b58\u5728 \uff0c \u5b83 \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 tm _ port = tm . get _ port ( ) for v in vehicles _ list : v . set _ autopilot ( True , tm _ port ) \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \u521b\u5efa \u6216 \u8fde\u63a5 \u5230 TM \u4e0e \u4e0a\u8ff0 \u793a\u4f8b \u4e0d\u540c \u3002 / PythonAPI / examples \u4e2d \u7684 generate _ traffic . py \u811a\u672c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u7aef\u53e3 \u521b\u5efa TM \u5b9e\u4f8b \uff0c \u5e76 \u901a\u8fc7 \u6279\u91cf \u5c06 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u8bbe\u7f6e \u4e3a \u4ee5\u4e0b \u503c\u6765 \u6ce8\u518c \u751f\u6210 \u7684 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u3002 traffic _ manager = client . get _ trafficmanager ( args . tm - port ) tm _ port = traffic _ manager . get _ port ( ) ... batch . append ( SpawnActor ( blueprint , transform ) . then ( SetAutopilot ( FutureActor , True , tm _ port ) ) ) ... traffic _ manager . global _ percentage _ speed _ difference ( 30.0 )","title":"\u521b\u5efa \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#autopilot","text":"\u4ee5\u4e0b \u793a\u4f8b \u521b\u5efa \u4e00\u4e2a TM \u5b9e\u4f8b \uff0c \u5e76 \u4e3a \u7279\u5b9a \u8f66\u8f86 \u914d\u7f6e \u5371\u9669 \u884c\u4e3a \uff0c \u4f7f \u5176 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u4e0d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4fdd\u6301 \u5b89\u5168 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u6bd4 \u5f53\u524d \u9650\u901f \u5feb 20% \u7684 \u901f\u5ea6 \u884c\u9a76 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . ignore _ lights _ percentage ( danger _ car , 100 ) tm . distance _ to _ leading _ vehicle ( danger _ car , 0 ) tm . vehicle _ percentage _ speed _ difference ( danger _ car , - 20 ) \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u76f8\u540c \u7684 \u8f66\u8f86 \u5217\u8868 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \uff0c \u4f46 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u9002\u5ea6 \u9a7e\u9a76 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u884c\u9a76 \u901f\u5ea6 \u6bd4 \u5f53\u524d \u9650\u901f \u6162 80% \uff0c \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4e4b\u95f4 \u81f3\u5c11 \u7559\u51fa 5 \u7c73 \u7684 \u8ddd\u79bb \uff0c \u5e76\u4e14 \u4ece\u4e0d \u8fdb\u884c \u53d8\u9053 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . global _ distance _ to _ leading _ vehicle ( 5 ) tm . global _ percentage _ speed _ difference ( 80 ) for v in my _ vehicles : tm . auto _ lane _ change ( v , False )","title":"\u914d\u7f6e autopilot \u884c\u4e3a"},{"location":"adv_traffic_manager/#_17","text":"\u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c TM \u7ba1\u7406 \u7684 \u8f66\u8f86 \u7684 \u8f66\u706f \uff08 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u8f6c\u5411 \u8f6c\u5411\u706f \u7b49 \uff09 \u6c38\u8fdc \u4e0d\u4f1a \u66f4\u65b0 \u3002 \u53ef\u4ee5 \u59d4\u6258 TM \u6765 \u66f4\u65b0 \u7ed9\u5b9a \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8f66\u706f \uff1a tm = client . get _ trafficmanager ( port ) for actor in my _ vehicles : tm . update _ vehicle _ lights ( actor , True ) \u8f66\u706f \u7ba1\u7406 \u5fc5\u987b \u6309 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8fdb\u884c \u6307\u5b9a \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u7ed9\u5b9a \u65f6\u95f4 \u90fd \u53ef\u4ee5 \u6709 \u5e26 \u548c \u4e0d\u5e26 \u81ea\u52a8 \u706f \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002","title":"\u59d4\u6d3e \u4ea4\u901a\u7ba1\u7406 \u5668 \u81ea\u52a8\u66f4\u65b0 \u8f66\u706f"},{"location":"adv_traffic_manager/#_18","text":"TM \u4e0d\u662f \u4e00\u4e2a \u9700\u8981 \u88ab \u6467\u6bc1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 ; \u5f53 \u521b\u5efa \u5b83 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u505c\u6b62 \u65f6 \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002 \u8fd9 \u662f \u7531 API \u81ea\u52a8 \u7ba1\u7406 \u7684 \uff0c \u7528\u6237 \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 \u4f46\u662f \uff0c \u5728 \u5173\u95ed TM \u65f6 \uff0c \u7528\u6237 \u5fc5\u987b \u6467\u6bc1 \u7531 \u5b83 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u5728 \u5730\u56fe \u4e0a \u4fdd\u6301 \u4e0d \u52a8 \u3002 generate _ traffic . py \u811a\u672c \u4f1a \u81ea\u52a8 \u6267\u884c \u6b64 \u64cd\u4f5c : client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) \u7b14\u8bb0 \u5173\u95ed TM - Server \u5c06 \u5173\u95ed \u8fde\u63a5 \u5230 \u5b83 \u7684 TM - Clients \u3002 \u8981 \u4e86\u89e3 TM - Server \u548c TM - Client \u4e4b\u95f4 \u7684 \u533a\u522b , \u8bf7 \u9605\u8bfb Running multiple Traffic Managers \u3002","title":"\u505c\u6b62 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_19","text":"\u5728 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e0b \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u5728 \u76f8\u540c \u6761\u4ef6 \u4e0b \u4ea7\u751f \u76f8\u540c \u7684 \u7ed3\u679c \u548c \u884c\u4e3a \u3002 \u4e0d\u8981 \u5c06 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8bba \u8bef\u8ba4 \u8ba4\u4e3a \u8bef\u8ba4\u4e3a \u662f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u867d\u7136 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u60a8 \u5b58\u50a8 \u4eff\u771f \u65e5\u5fd7 \u4ee5 \u8fdb\u884c \u56de\u653e \uff0c \u4f46 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u53ef \u786e\u4fdd \u53ea\u8981 \u7ef4\u6301 \u76f8\u540c \u7684 \u6761\u4ef6 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u811a\u672c \u7684 \u4e0d\u540c \u6267\u884c \u8fc7\u7a0b \u4e2d \u59cb\u7ec8 \u5177\u6709 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4ec5 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u53ef\u7528 \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u8f83 \u5c11 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5b9e\u73b0 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 \u5728 \u5f00\u59cb \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u540c\u6b65 \u6a21\u5f0f \u90e8\u5206 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8981 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \uff1a my _ tm . set _ random _ device _ seed ( seed _ value ) seed _ value \u662f \u4e00\u4e2a \u5c06 \u751f\u6210 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u7684 \u6570\u5b57 \u7684 int \u79cd\u5b50 \u79cd\u5b50\u6570 \u3002 \u8be5\u503c \u672c\u8eab \u5e76 \u4e0d \u76f8\u5173 \uff0c \u4f46 \u76f8\u540c \u7684 \u503c \u5c06 \u59cb\u7ec8 \u5bfc\u81f4 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u5177\u6709 \u76f8\u540c \u6761\u4ef6 \u3001 \u4f7f\u7528 \u76f8\u540c \u79cd\u5b50 \u503c \u7684 \u4e24\u6b21 \u4eff\u771f \u5c06 \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \u3002 \u4e3a\u4e86 \u4fdd\u6301 \u591a\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff0c \u5fc5\u987b \u4e3a \u6bcf\u6b21 \u4eff\u771f \u8bbe\u7f6e \u79cd\u5b50 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b21 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u65f6 \uff0c \u90fd \u5fc5\u987b \u91cd\u65b0 \u8bbe\u7f6e \u79cd\u5b50 \uff1a client . reload _ world ( ) my _ tm . set _ random _ device _ seed ( seed _ value ) \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u79cd\u5b50 \u503c \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u6765 \u5728 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u4e2d \u6d4b\u8bd5 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 50 \u4e2a \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u586b\u5145 \u5730\u56fe \uff0c \u5e76 \u5c06 \u79cd\u5b50 \u8bbe\u7f6e \u4e3a \u4efb\u610f \u503c 9 \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 -- seed 9 \u8b66\u544a \u5728 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e4b\u524d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5fc5\u987b \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \u540c\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u786e\u5b9a\u6027 \u6a21\u5f0f"},{"location":"adv_traffic_manager/#_20","text":"\u6df7\u5408 \u6a21\u5f0f \u5141\u8bb8 \u7528\u6237 \u7981\u7528 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u6216 \u6807\u8bb0 \u4e3a \u82f1\u96c4 \u7684 \u8f66\u8f86 \u7279\u5b9a \u534a\u5f84 \u4e4b\u5916 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7269\u7406 \u8ba1\u7b97 \u3002 \u8fd9 \u6d88\u9664 \u4e86 \u4eff\u771f \u4e2d \u7684 \u8f66\u8f86 \u7269\u7406 \u74f6\u9888 \u3002 \u7269\u7406 \u529f\u80fd \u88ab \u7981\u7528 \u7684 \u8f66\u8f86 \u5c06 \u901a\u8fc7 \u9690\u5f62 \u4f20\u9001 \u79fb\u52a8 \u3002 \u7ef4\u6301 \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u57fa\u672c \u8ba1\u7b97 \uff0c \u4ee5 \u786e\u4fdd \u4f4d\u7f6e \u66f4\u65b0 \u548c \u8f66\u8f86 \u901f\u5ea6 \u4fdd\u6301 \u771f\u5b9e \uff0c \u5e76\u4e14 \u8f66\u8f86 \u4e0a \u7269\u7406 \u8ba1\u7b97 \u7684 \u5207\u6362 \u662f \u6d41\u7545 \u7684 \u3002 \u6df7\u5408 \u6a21\u5f0f \u4f7f\u7528 Actor . set _ simulate _ physics ( ) \u65b9\u6cd5 \u6765 \u5207\u6362 \u7269\u7406 \u8ba1\u7b97 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u662f \u7981\u7528 \u7684 \u3002 \u6709 \u4e24\u4e2a \u9009\u9879 \u53ef\u4ee5 \u542f\u7528 \u5b83 \uff1a TrafficManager . set _ hybrid _ physics _ mode ( True ) \u2014 \u6b64 \u65b9\u6cd5 \u4e3a \u8c03\u7528 \u5b83 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5bf9\u8c61 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u4ee5 -- hybrid \u6807\u5fd7 \u8fd0\u884c generate _ traffic . py \u2014 \u6b64 \u793a\u4f8b \u811a\u672c \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u4e2d \u751f\u6210 \u8f66\u8f86 \u3002 \u5f53 \u6807\u5fd7 -- hybrid \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u65f6 \uff0c \u5b83 \u5c06 \u8fd9\u4e9b \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u6df7\u5408 \u6a21\u5f0f \u3002 \u8981 \u4fee\u6539 \u6df7\u5408 \u6a21\u5f0f \u7684 \u884c\u4e3a \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4e24\u4e2a \u53c2\u6570 \uff1a Radius ( \u9ed8\u8ba4 = 50 \u7c73 ) \u2014 \u534a\u5f84 \u76f8\u5bf9 \u4e8e \u6807\u8bb0 \u6709 \u82f1\u96c4 \u7684 \u8f66\u8f86 \u3002 \u8be5 \u534a\u5f84 \u5185 \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5c06 \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff1b \u534a\u5f84 \u4e4b\u5916 \u7684 \u8f66\u8f86 \u5c06 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u4f7f\u7528 traffic _ manager . set _ hybrid _ physics _ radius ( r ) \u4fee\u6539 \u534a\u5f84 \u7684 \u5927\u5c0f \u3002 Hero vehicle \u2014 \u5e26\u6709 \u6807\u8bb0 role _ name = ' hero ' \u7684 \u8f66\u8f86 \u4f5c\u4e3a \u534a\u5f84 \u7684 \u4e2d\u5fc3 \u3002 \u5982\u679c \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u6240\u6709 \u8f66\u8f86 \u7684 \u7269\u7406 \u529f\u80fd \u5c06 \u88ab \u7981\u7528 \u3002 \u5982\u679c \u6709 \u4e0d\u6b62 \u4e00\u8f86 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u5219 \u4f1a \u8003\u8651 \u6240\u6709 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u534a\u5f84 \uff0c \u4ece\u800c \u5728 \u542f\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u60c5\u51b5 \u4e0b \u521b\u5efa \u4e0d\u540c \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u4e0b\u9762 \u7684 \u526a\u8f91 \u663e\u793a \u4e86 \u6df7\u5408 \u6a21\u5f0f \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u65f6 \u5982\u4f55 \u542f\u7528 \u548c \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u82f1\u96c4 \u8f66\u8f86 \u6807\u6709 \u7ea2\u8272 \u65b9\u5757 \u3002 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u8f66\u8f86 \u6807\u6709 \u84dd\u8272 \u65b9\u5757 \u3002 \u5f53 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u5f71\u54cd \u534a\u5f84 \u5185\u65f6 \uff0c \u542f\u7528 \u7269\u7406 \u529f\u80fd \u5e76\u4e14 \u6807\u7b7e \u53d8\u4e3a \u7eff\u8272 \u3002","title":"\u6df7\u5408 \u7269\u7406\u6a21\u5f0f"},{"location":"adv_traffic_manager/#_21","text":"","title":"\u8fd0\u884c \u591a\u4e2a \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_22","text":"Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6307\u5b9a \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u6765 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u7aef\u53e3 \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 8000 \u7aef\u53e3 \u3002 \u5982\u679c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u66f4 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5b83\u4eec \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u800c \u539f\u59cb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u8fd9\u4e9b \u6807\u9898 \u5b9a\u4e49 \u4e86 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1\u7aef \u548c \u5ba2\u6237\u7aef"},{"location":"adv_traffic_manager/#_23","text":"\u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fde\u63a5 \u5230 \u7a7a\u95f2 \u7aef\u53e3 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u7136\u540e \u5176\u4ed6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff09 \u8fde\u63a5 \u5230 \u5b83 \u6b63\u5728 \u8fd0\u884c \u7684 \u540c\u4e00 \u7aef\u53e3 \uff0c \u5219 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5c06 \u89c4\u5b9a \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \uff0c \u4f8b\u5982 \uff0c \u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u505c\u6b62 \uff0c \u5219 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u505c\u6b62 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6bcf\u4e2a \u7aef\u53e3 \u90fd \u8fde\u63a5 \u5230 \u4e0d\u540c \u4e14 \u90fd \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \uff1a tm01 = client01 . get _ trafficmanager ( ) # tm01 -- > tm01 ( p = 8000 ) tm02 = client02 . get _ trafficmanager ( 5000 ) # tm02 ( p = 5000 ) -- > tm02 ( p = 5000 )","title":"\u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1\u7aef"},{"location":"adv_traffic_manager/#_24","text":"\u5f53 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \uff09 \u5360\u7528 \u7684 \u7aef\u53e3 \u65f6 \uff0c \u5c31 \u4f1a \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u51b3\u5b9a \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf \u4e00\u4e2a \u90fd \u4e0e \u4e0a \u4e00\u8282 \u4e2d \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8fde\u63a5 \u3002 tm03 = client03 . get _ trafficmanager ( ) # tm03 -- > tm01 ( p = 8000 ) . tm04 = client04 . get _ trafficmanager ( 5000 ) # tm04 ( p = 5000 ) -- > tm02 ( p = 5000 ) Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u8fc7 \u5b58\u50a8 \u94fe\u63a5 \u5230 \u5b83\u4eec \u7684 \u7aef\u53e3 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef IP \uff08 \u5bf9 \u7528\u6237 \u9690\u85cf \uff09 \u6765 \u4fdd\u5b58 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u7684 \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u3002 \u76ee\u524d \u65e0\u6cd5 \u68c0\u67e5 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5df2 \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5c1d\u8bd5 \u521b\u5efa \u5b9e\u4f8b \u65f6 \u59cb\u7ec8 \u4f1a \u5c1d\u8bd5 \u8fde\u63a5 \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u521b\u5efa \u65b0 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u6216 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237\u7aef"},{"location":"adv_traffic_manager/#_25","text":"\u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u4e2d \uff0c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a TM \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a TM \u5c06 \u662f TM \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5176\u4f59 \u7684 \u5c06 \u662f \u8fde\u63a5 \u5230 \u5b83 \u7684 TM \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 TM - Server \u5c06 \u89c4\u5b9a \u6240\u6709 TM \u5b9e\u4f8b \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Client","title":"\u591a \u5ba2\u6237\u7aef \u4eff\u771f"},{"location":"adv_traffic_manager/#_26","text":"\u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u4e2d \uff0c \u5728 \u4e0d\u540c \u7684 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u90fd \u4f1a \u63a7\u5236 \u81ea\u5df1 \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4550 # TM - Server B","title":"\u591a \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f"},{"location":"adv_traffic_manager/#_27","text":"\u591a\u91cd \u4eff\u771f \u662f \u6307 \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u65f6 \u8fd0\u884c \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9700\u8981 \u8fde\u63a5 \u5230 \u76f8\u5173 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u53e3 \u3002 \u53ea\u8981 \u8ba1\u7b97 \u80fd\u529b \u8ba1\u7b97\u80fd\u529b \u5141\u8bb8 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u4ee5 \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u4eff\u771f \uff0c \u4e0d\u4f1a \u51fa\u73b0 \u4efb\u4f55 \u95ee\u9898 \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 # simulation A terminal 2 : . / CarlaUE4 . sh - carla - rpc - port = 5000 # simulation B terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A connected to simulation A terminal 4 : python3 generate _ traffic . py -- port 5000 -- tm - port 5050 # TM - Server B connected to simulation B \u591a\u91cd \u4eff\u771f \u7684 \u6982\u5ff5 \u72ec\u7acb \u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u672c\u8eab \u3002 \u4e0a\u9762 \u7684 \u793a\u4f8b \u5e76\u884c \u8fd0\u884c \u4e24\u4e2a Carla \u4eff\u771f A \u548c B \u3002 \u5728 \u6bcf\u4e2a \u4eff\u771f \u4e2d \uff0c \u90fd \u72ec\u7acb \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4eff\u771f A \u53ef\u4ee5 \u8fd0\u884c \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u7a0b\u5e8f \uff0c \u800c \u4eff\u771f B \u5219 \u8fd0\u884c \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6216 \u6839\u672c \u4e0d \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e0a\u8ff0 \u8bbe\u7f6e \u6700 \u53ef\u80fd \u51fa\u73b0 \u7684 \u95ee\u9898 \u662f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u672a \u5728 \u6240\u9009 \u4eff\u771f \u4e0a \u8fd0\u884c \u7684 \u73b0\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \uff0c \u5c06\u4f1a \u51fa\u73b0 \u9519\u8bef \u6d88\u606f \uff0c \u5e76\u4e14 \u8fde\u63a5 \u5c06 \u88ab \u4e2d\u6b62 \uff0c \u4ee5 \u9632\u6b62 \u4eff\u771f \u4e4b\u95f4 \u7684 \u5e72\u6270 \u3002","title":"\u591a\u91cd \u4eff\u771f"},{"location":"adv_traffic_manager/#_28","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u624d\u80fd \u6b63\u5e38 \u8fd0\u884c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u5219 \u4eff\u771f \u5e94 \u81f3\u5c11 \u4ee5 20 - 30 fps \u8fd0\u884c \u3002 \u4e0b\u9762 \u7684 \u811a\u672c \u6f14\u793a \u4e86 \u5982\u4f55 \u5c06 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a ... # Set the simulation to sync mode init _ settings = world . get _ settings ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True # After that , set the TM to sync mode my _ tm . set _ synchronous _ mode ( True ) ... # Tick the world in the same client world . apply _ settings ( init _ settings ) world . tick ( ) ... # Always disable sync mode before the script ends to prevent the server blocking whilst waiting for a tick settings . synchronous _ mode = False my _ tm . set _ synchronous _ mode ( False ) \u793a\u4f8b \u811a\u672c generate _ traffic . py \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76\u7528 \u8f66\u8f86 \u548c \u884c\u4eba \u586b\u5145 \u5730\u56fe \u3002 \u5b83 \u81ea\u52a8 \u5c06 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u548c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u4e0a\u8ff0 \u547d\u4ee4 \u65f6 \u4f7f\u7528 -- async \u6807\u5fd7 \u3002 \u5982\u679c \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u540c\u6b65 \u5c06\u4f1a \u5931\u8d25 \u3002 \u8bf7 \u9075\u5faa \u4ee5\u4e0b \u51c6\u5219 \u4ee5 \u907f\u514d \u51fa\u73b0 \u907f\u514d\u51fa\u73b0 \u95ee\u9898 \uff1a \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u60c5\u51b5 \u4e0b \uff0c \u53ea \u9700 \u5c06 \u4e00\u53f0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 ScenarioRunner \u6a21\u5757 \u81ea\u52a8 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 ScenarioRunner \u5185 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u8b66\u544a \u5728 \u7ba1\u7406 \u65f6\u949f \u7684 \u811a\u672c \u5b8c\u6210 \u4e4b\u524d \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff08 \u5bf9\u4e8e \u4e16\u754c \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \uff0c \u4ee5 \u9632\u6b62 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u963b\u585e \uff0c \u6c38\u8fdc \u7b49\u5f85 \u65f6\u949f \u3002","title":"\u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_traffic_manager/#_29","text":"\u8981 \u4e86\u89e3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5982\u4f55 \u5728 \u5927 \u5730\u56fe \u4e0a \u5de5\u4f5c \uff0c \u8bf7 \u52a1\u5fc5 \u9996\u5148 \u9605\u8bfb \u6b64\u5904 \u7684 \u6587\u6863 \u6765 \u719f\u6089 \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u5728 \u5927 \u5730\u56fe \u4e2d \u7684 \u884c\u4e3a \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \uff1a \u4e0d \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u90fd \u5c06 \u88ab \u89c6\u4e3a \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f11\u7720 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u50cf \u6df7\u5408 \u6a21\u5f0f \u4e00\u6837 \u5728 \u5730\u56fe \u4e0a \u79fb\u52a8 \u3002 \u7531\u4e8e \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \u6765 \u89e6\u53d1 \u5730\u56fe \u74e6\u7247 \u6d41 \uff0c \u56e0\u6b64 \u4e0d\u4f1a \u6e32\u67d3 \u8f66\u8f86 \u3002 \u5448\u73b0 \u82f1\u96c4 \u8f66\u8f86 \u5f53 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u8d85\u8fc7 actor _ active _ distance \u5b9a\u4e49 \u7684 \u503c\u65f6 \uff0c \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 actor _ active _ distance \u3002 \u8981 \u8bbe\u7f6e \u6b64\u503c \uff0c \u8bf7 \u4f7f\u7528 Python API \uff1a settings = world . get _ settings ( ) # Actors will become dormant 2km away from the ego vehicle settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \uff0c \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u5728 \u82f1\u96c4 \u8f66\u8f86 \u5468\u56f4 \u4e0d\u65ad \u91cd\u751f \uff0c \u800c \u4e0d\u662f \u5728 \u5730\u56fe \u7684 \u5176\u4ed6 \u90e8\u5206 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53ef\u4ee5 \u4f7f\u7528 set _ respawn _ dormant _ vehicles Python API \u4e2d \u7684 \u65b9\u6cd5 \u914d\u7f6e \u6b64 \u9009\u9879 \u3002 \u8f66\u8f86 \u5c06 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u7528\u6237 \u5b9a\u4e49 \u8ddd\u79bb \u5185 \u91cd\u751f \u3002 \u53ef \u91cd\u751f \u8ddd\u79bb \u7684 \u4e0a\u4e0b \u8fb9\u754c \u53ef\u4ee5 \u4f7f\u7528 set _ boundaries _ respawn _ dormant _ vehicles \u65b9\u6cd5 \u8bbe\u7f6e \u3002 \u6ce8\u610f \uff0c \u4e0a \u8ddd\u79bb \u4e0d\u4f1a \u5927\u4e8e \u5927 \u5730\u56fe \u7684 \u74e6\u7247 \u6d41 \u8ddd\u79bb \uff0c \u8ddd\u79bb \u6700\u5c0f \u4e3a 20m \u3002 \u8981 \u4f7f \u82f1\u96c4 \u8f66\u8f86 25 \u7c73 \u548c 700 \u7c73 \u8303\u56f4 \u5185 \u7684 \u4f11\u7720 \u8f66\u8f86 \u91cd\u751f \uff1a my _ tm . set _ respawn _ dormant _ vehicles ( True ) my _ tm . set _ boundaries _ respawn _ dormant _ vehicles ( 25 , 700 ) \u5982\u679c \u78b0\u649e \u963b\u6b62 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u91cd\u8bd5 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u3002 \u5982\u679c \u4f11\u7720 \u8f66\u8f86 \u6ca1\u6709 \u91cd\u751f \uff0c \u5b83\u4eec \u7684 \u884c\u4e3a \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u5982\u679c \u542f\u7528 \u4e86 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5728 \u5730\u56fe \u4e0a \u4f20\u9001 \u3002 \u5982\u679c \u672a \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4e0d\u4f1a \u8ba1\u7b97 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7269\u7406 \u7279\u6027 \uff0c \u5e76\u4e14 \u5b83\u4eec \u5c06 \u4fdd\u6301 \u5728 \u539f \u4f4d\u7f6e \uff0c \u76f4\u5230 \u4e0d\u518d \u4f11\u7720 \u3002 \u5982\u679c \u4f60 \u6709 \u4efb\u4f55 \u5173\u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u95ee\u9898 \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"bp_library/","text":"\u84dd \u56fe\u5e93 \u84dd \u56fe\u5e93 ( carla . BlueprintLibrary ) \u662f Carla \u4e2d \u7528\u4e8e \u53ef\u7528 \u7684 \u6240\u6709 \u5185\u5bb9 carla . ActorBlueprint \u53ca\u5176 \u5c5e\u6027 ( carla . ActorAttribute ) \u7684 \u6458\u8981 \u3002 \u4ee5\u4e0b \u662f \u6253\u5370 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff1a blueprints = [ bp for bp in world . get _ blueprint _ library ( ) . filter ( ' * ' ) ] for blueprint in blueprints : print ( blueprint . id ) for attr in blueprint : print ( ' - { } ' . format ( attr ) ) \u67e5\u770b \u84dd\u56fe \u7684 \u4ecb\u7ecd \u3002 \u63a7\u5236 \u63a7\u5236\u5668 controller . ai . walker \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 sensor . camera . depth \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . dvs \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 log _ eps ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 negative _ threshold ( Float ) - \u53ef \u4fee\u6539 positive _ threshold ( Float ) - \u53ef \u4fee\u6539 refractory _ period _ ns ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 sigma _ negative _ threshold ( Float ) - \u53ef \u4fee\u6539 sigma _ positive _ threshold ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 use _ log ( Bool ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . optical _ flow \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . rgb \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . semantic _ segmentation \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast \u5c5e\u6027 \uff1a atmosphere _ attenuation _ rate ( Float ) - \u53ef \u4fee\u6539 channels ( Int ) - \u53ef \u4fee\u6539 dropoff _ general _ rate ( Float ) - \u53ef \u4fee\u6539 dropoff _ intensity _ limit ( Float ) - \u53ef \u4fee\u6539 dropoff _ zero _ intensity ( Float ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 noise _ stddev ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast _ semantic \u5c5e\u6027 \uff1a channels ( Int ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . collision \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . gnss \u5c5e\u6027 \uff1a noise _ alt _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ alt _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . imu \u5c5e\u6027 \uff1a noise _ accel _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . lane _ invasion \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . obstacle \u5c5e\u6027 \uff1a debug _ linetrace ( Bool ) - \u53ef \u4fee\u6539 distance ( Float ) - \u53ef \u4fee\u6539 hit _ radius ( Float ) - \u53ef \u4fee\u6539 only _ dynamics ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . radar \u5c5e\u6027 \uff1a horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 vertical _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . rss \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 static static . prop . advertisement \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . atm \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barbeque \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barrel \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bike helmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bin \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . briefcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . busstop \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . calibrator \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrierend \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothcontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothesline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . colacan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . constructioncone \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . container \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . doghouse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . fountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gardenlamp \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . glasscontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gnome \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . guitarcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . ironplank \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . kiosk _ 01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mailbox \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . maptable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mesh \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 static . prop . mobile \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . motorhelmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 0 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 1 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . pergola \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot07 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot08 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticchair \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plastictable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . platformgarbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . purse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingcart \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingtrolley \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . slide \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetfountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swing \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swingcouch \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . table \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficwarning \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trampoline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . travelcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . vendingmachine \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . wateringcan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . trigger . friction \u5c5e\u6027 \uff1a extent _ x ( Float ) - \u53ef \u4fee\u6539 extent _ y ( Float ) - \u53ef \u4fee\u6539 extent _ z ( Float ) - \u53ef \u4fee\u6539 friction ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 vehicle vehicle . audi . a2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . etron \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . tt \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bh . crossbike \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bmw . grandtourer \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . carlacola \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . firetruck \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . chevrolet . impala \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . citroen . c3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . diamondback . century \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . ambulance \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . crown \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . mustang \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . gazelle . omafiets \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . harley - davidson . low _ rider \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . jeep . wrangler _ rubicon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . kawasaki . ninja \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2017 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . sprinter \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . micro . microlino \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . micra \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . seat . leon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . cybertruck \u5c5e\u6027 \uff1a generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . model3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . toyota . prius \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . vespa . zx125 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . yamaha . yzf \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 walker walker . pedestrian.0001 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0002 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0003 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0004 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0005 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0006 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0007 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0008 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0009 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0010 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0011 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0012 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0013 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0014 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0015 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0016 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0017 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0018 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0019 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0020 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0021 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0022 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0023 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0024 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0025 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0026 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0027 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0028 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0029 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0030 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0031 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0032 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0033 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0034 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0035 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0036 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0037 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0038 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0039 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0040 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0041 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0042 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0043 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0044 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0045 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0046 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0047 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0048 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539","title":"\u84dd \u56fe\u5e93"},{"location":"bp_library/#_1","text":"\u84dd \u56fe\u5e93 ( carla . BlueprintLibrary ) \u662f Carla \u4e2d \u7528\u4e8e \u53ef\u7528 \u7684 \u6240\u6709 \u5185\u5bb9 carla . ActorBlueprint \u53ca\u5176 \u5c5e\u6027 ( carla . ActorAttribute ) \u7684 \u6458\u8981 \u3002 \u4ee5\u4e0b \u662f \u6253\u5370 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff1a blueprints = [ bp for bp in world . get _ blueprint _ library ( ) . filter ( ' * ' ) ] for blueprint in blueprints : print ( blueprint . id ) for attr in blueprint : print ( ' - { } ' . format ( attr ) ) \u67e5\u770b \u84dd\u56fe \u7684 \u4ecb\u7ecd \u3002","title":"\u84dd \u56fe\u5e93"},{"location":"bp_library/#_2","text":"controller . ai . walker \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539","title":"\u63a7\u5236\u5668"},{"location":"bp_library/#_3","text":"sensor . camera . depth \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . dvs \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 log _ eps ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 negative _ threshold ( Float ) - \u53ef \u4fee\u6539 positive _ threshold ( Float ) - \u53ef \u4fee\u6539 refractory _ period _ ns ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 sigma _ negative _ threshold ( Float ) - \u53ef \u4fee\u6539 sigma _ positive _ threshold ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 use _ log ( Bool ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . optical _ flow \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . rgb \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . semantic _ segmentation \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast \u5c5e\u6027 \uff1a atmosphere _ attenuation _ rate ( Float ) - \u53ef \u4fee\u6539 channels ( Int ) - \u53ef \u4fee\u6539 dropoff _ general _ rate ( Float ) - \u53ef \u4fee\u6539 dropoff _ intensity _ limit ( Float ) - \u53ef \u4fee\u6539 dropoff _ zero _ intensity ( Float ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 noise _ stddev ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast _ semantic \u5c5e\u6027 \uff1a channels ( Int ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . collision \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . gnss \u5c5e\u6027 \uff1a noise _ alt _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ alt _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . imu \u5c5e\u6027 \uff1a noise _ accel _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . lane _ invasion \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . obstacle \u5c5e\u6027 \uff1a debug _ linetrace ( Bool ) - \u53ef \u4fee\u6539 distance ( Float ) - \u53ef \u4fee\u6539 hit _ radius ( Float ) - \u53ef \u4fee\u6539 only _ dynamics ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . radar \u5c5e\u6027 \uff1a horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 vertical _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . rss \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539","title":"\u4f20\u611f\u5668"},{"location":"bp_library/#static","text":"static . prop . advertisement \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . atm \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barbeque \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barrel \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bike helmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bin \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . briefcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . busstop \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . calibrator \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrierend \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothcontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothesline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . colacan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . constructioncone \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . container \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . doghouse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . fountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gardenlamp \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . glasscontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gnome \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . guitarcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . ironplank \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . kiosk _ 01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mailbox \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . maptable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mesh \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 static . prop . mobile \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . motorhelmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 0 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 1 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . pergola \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot07 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot08 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticchair \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plastictable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . platformgarbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . purse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingcart \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingtrolley \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . slide \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetfountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swing \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swingcouch \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . table \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficwarning \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trampoline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . travelcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . vendingmachine \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . wateringcan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . trigger . friction \u5c5e\u6027 \uff1a extent _ x ( Float ) - \u53ef \u4fee\u6539 extent _ y ( Float ) - \u53ef \u4fee\u6539 extent _ z ( Float ) - \u53ef \u4fee\u6539 friction ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539","title":"static"},{"location":"bp_library/#vehicle","text":"vehicle . audi . a2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . etron \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . tt \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bh . crossbike \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bmw . grandtourer \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . carlacola \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . firetruck \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . chevrolet . impala \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . citroen . c3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . diamondback . century \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . ambulance \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . crown \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . mustang \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . gazelle . omafiets \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . harley - davidson . low _ rider \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . jeep . wrangler _ rubicon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . kawasaki . ninja \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2017 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . sprinter \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . micro . microlino \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . micra \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . seat . leon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . cybertruck \u5c5e\u6027 \uff1a generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . model3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . toyota . prius \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . vespa . zx125 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . yamaha . yzf \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539","title":"vehicle"},{"location":"bp_library/#walker","text":"walker . pedestrian.0001 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0002 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0003 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0004 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0005 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0006 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0007 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0008 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0009 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0010 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0011 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0012 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0013 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0014 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0015 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0016 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0017 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0018 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0019 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0020 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0021 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0022 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0023 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0024 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0025 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0026 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0027 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0028 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0029 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0030 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0031 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0032 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0033 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0034 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0035 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0036 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0037 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0038 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0039 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0040 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0041 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0042 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0043 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0044 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0045 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0046 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0047 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0048 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539","title":"walker"},{"location":"build_carla/","text":"\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7528\u6237 \u53ef\u4ee5 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u4ee5 \u7528\u4e8e \u5f00\u53d1 \u76ee\u7684 \u3002 \u5982\u679c \u60a8 \u60f3\u8981 \u5411 Carla \u6dfb\u52a0 \u989d\u5916 \u7684 \u7279\u6027 \u6216 \u529f\u80fd \uff0c \u6216\u8005 \u60f3\u8981 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u521b\u5efa \u8d44\u6e90 \u6216 \u64cd\u4f5c \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5efa\u8bae\u60a8 \u8fd9\u6837 \u505a \u3002 \u6784\u5efa \u8bf4\u660e \u9002\u7528 \u4e8e Linux \u548c Windows \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u90e8\u7f72 \u5728 AWS \u3001 Azure \u6216 Google \u4e91 \u670d\u52a1 \u4e2d \u3002 \u8bbf\u95ee Carla GitHub \u5e76 \u514b\u9686 \u5b58\u50a8 \u5e93 \u3002 Linux \u6784\u5efa Windows \u6784\u5efa Docker \u5e26 \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u66f4\u65b0 Carla \u6784\u5efa \u7cfb\u7edf \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898","title":"\u6784\u5efa Carla"},{"location":"build_carla/#carla","text":"\u7528\u6237 \u53ef\u4ee5 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u4ee5 \u7528\u4e8e \u5f00\u53d1 \u76ee\u7684 \u3002 \u5982\u679c \u60a8 \u60f3\u8981 \u5411 Carla \u6dfb\u52a0 \u989d\u5916 \u7684 \u7279\u6027 \u6216 \u529f\u80fd \uff0c \u6216\u8005 \u60f3\u8981 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u521b\u5efa \u8d44\u6e90 \u6216 \u64cd\u4f5c \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5efa\u8bae\u60a8 \u8fd9\u6837 \u505a \u3002 \u6784\u5efa \u8bf4\u660e \u9002\u7528 \u4e8e Linux \u548c Windows \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u90e8\u7f72 \u5728 AWS \u3001 Azure \u6216 Google \u4e91 \u670d\u52a1 \u4e2d \u3002 \u8bbf\u95ee Carla GitHub \u5e76 \u514b\u9686 \u5b58\u50a8 \u5e93 \u3002 Linux \u6784\u5efa Windows \u6784\u5efa Docker \u5e26 \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u66f4\u65b0 Carla \u6784\u5efa \u7cfb\u7edf \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898","title":"\u4ece \u6e90\u4ee3\u7801 \u6784\u5efa Carla"},{"location":"build_docker/","text":"Docker \u4e2d \u7684 Carla \u7528\u6237 \u53ef\u4ee5 \u62c9\u53d6 \u57fa\u4e8e Carla \u7248\u672c \u7684 \u6620\u50cf \u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u4ee5\u4e0b \u7528\u6237 \u5f88 \u6709\u7528 \uff1a \u60f3\u8981 \u8fd0\u884c Carla \u800c \u4e0d \u9700\u8981 \u5b89\u88c5 \u6240\u6709 \u4f9d\u8d56 \u9879 \u8fd0\u884c \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u6267\u884c GPU \u6620\u5c04 \u5728 \u6ca1\u6709 \u663e\u793a \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u8fd0\u884c Carla \u56fe\u50cf \u7684 \u8981\u6c42 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 OpenGL \u548c Vulkan \u56fe\u5f62 API \u8fd0\u884c \u56fe\u50cf \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla \u79bb\u5c4f \u6a21\u5f0f \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u5b89\u88c5 \uff1a Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 NVIDIA Container Toolkit : NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u662f \u4e00\u4e2a \u5e93 \u548c \u5de5\u5177 \u5de5\u5177\u96c6 \uff0c \u53ef \u5c06 NVIDIA \u56fe\u5f62 \u8bbe\u5907 \u516c\u5f00 \u7ed9 Linux \u5bb9\u5668 \u3002 \u5b83 \u4e13\u4e3a \u5728 Linux \u4e3b\u673a \u7cfb\u7edf \u6216 \u9002\u7528 \u4e8e Linux \u7684 Windows \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7248\u672c 2 \u4e0b \u7684 Linux \u53d1\u884c \u53d1\u884c\u7248 \u4e2d \u8fd0\u884c \u7684 Linux \u5bb9\u5668 \u800c \u8bbe\u8ba1 \u3002 nvidia - docker2 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u5b89\u88c5 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 CentOS \u5b89\u88c5 Docker \uff1a yum install - y yum - utils device - mapper - persistent - data lvm2 yum - config - manager -- add - repo http : / / mirrors . aliyun . com / docker - ce / linux / centos / docker - ce . repo yum list docker - ce -- showduplicates | sort - r yum - y install docker - ce - 18.03 . 1 . ce docker \u542f\u52a8 \u51fa\u9519 \uff1a failed to start daemon : error initializing graphdriver : driver not supported \u89e3\u51b3 \uff1a rm - rf / var / lib / docker / * systemctl restart docker CentOS \u5b89\u88c5 NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u547d\u4ee4 \uff1a curl - s - L https : / / nvidia . github . io / libnvidia - container / stable / rpm / nvidia - container - toolkit . repo | \\ tee / etc / yum . repos . d / nvidia - container - toolkit . repo yum - config - manager -- enable nvidia - container - toolkit - experimental yum install - y nvidia - container - toolkit nvidia - ctk runtime configure -- runtime = docker \u7b14\u8bb0 Docker \u9700\u8981 sudo \u624d\u80fd \u8fd0\u884c \u3002 \u6309\u7167 \u672c \u6307\u5357 \u5c06 \u7528\u6237 \u6dfb\u52a0 \u5230 docker sudo \u7ec4 \u3002 \u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla 1 . \u62c9\u53d6 Carla \u955c\u50cf \u3002 \u60a8 \u53ef\u4ee5 \u63d0\u53d6 \u6700\u65b0 \u7684 Carla \u6620\u50cf \u6216 \u7279\u5b9a \u7684 \u53d1\u884c \u7248\u672c \u3002 \u6700\u65b0 \u955c\u50cf \u662f \u6307 \u6700\u65b0 \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8981\u62c9\u53d6 \u6620\u50cf \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \uff1a # \u62c9\u53d6 \u6700\u65b0 \u7684 \u955c\u50cf docker pull carlasim / carla : latest # \u62c9\u53d6 \u7279\u5b9a \u7684 \u7248\u672c docker pull carlasim / carla : 0.9 . 12 2 . \u8fd0\u884c Carla \u5bb9\u5668 \u3002 \u4e0d\u540c \u7248\u672c \u7684 Carla \u652f\u6301 \u4e0d\u540c \u7684 \u56fe\u5f62 API \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5f71\u54cd Docker \u955c\u50cf \u7684 \u8fd0\u884c \u6761\u4ef6 \uff1a 0.9 . 12 \u4ec5 \u652f\u6301 Vulkan 0.9 . 7 + \u540c\u65f6 \u652f\u6301 Vulkan \u548c OpenGL \u3002 Carla 0.9 . 12 \u8981 \u4f7f\u7528 \u663e\u793a \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh \u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh - RenderOffScreen Carla 0.9 . 7 \u81f3 0.9 . 11 \u8981 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY - e SDL _ VIDEODRIVER = x11 - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 11 / bin / bash . / CarlaUE4 . sh - vulkan < - additonal - carla - flags > \u7b14\u8bb0 \u53ea\u8981 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6709 \u663e\u793a \u663e\u793a\u5668 \uff0c \u6b64 \u547d\u4ee4 \u5c06 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \u6620\u50cf \u3002 \u6709\u5173 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Vulkan \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u8981 \u4f7f\u7528 OpenGL \u8fd0\u884c Carla \uff1a docker run - e DISPLAY = $ DISPLAY -- net = host -- gpus all -- runtime = nvidia carlasim / carla : < version > / bin / bash CarlaUE4 . sh - opengl < - additonal - carla - flags > 3 . \uff08 \u53ef \u9009 \uff09 \u914d\u7f6e Docker \u6807\u5fd7 \u3002 \u4e0a\u9762 \u7684 \u547d\u4ee4 \u4f7f\u7528 \u4e86 \u4e00\u4e9b Docker \u6807\u5fd7 \uff0c \u53ef\u4ee5 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u8fdb\u884c \u914d\u7f6e \uff1a Networking : -- net = host \u53c2\u6570 \u5c06 \u5141\u8bb8 \u5bb9\u5668 \u5171\u4eab \u4e3b\u673a \u7684 \u6574\u4e2a \u7f51\u7edc \u3002 \u5982\u679c \u60a8 \u5e0c\u671b \u5c06 \u4e3b\u673a \u4e0a \u7684 \u7279\u5b9a \u7aef\u53e3 \u6620\u5c04 \u5230 \u5bb9\u5668 \u7aef\u53e3 \uff0c \u8bf7 \u4f7f\u7528 \u6807\u5fd7 - p < host - ports > : < container - ports > \u3002 GPUs : \u60a8 \u53ef\u4ee5 \u4f7f\u7528 -- gpus all \u9009\u62e9 \u6709\u6240 GPU \uff0c \u6216\u8005 \u4f7f\u7528 -- gpus ' \" device = < gpu _ 01 > , < gpu _ 02 > \" ' \u4f7f\u7528 \u7279\u5b9a GPU \u3002 \u6d4f\u89c8 \u6b64\u5904 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u79bb\u5c4f \u6a21\u5f0f \u5982\u679c \u60a8 \u5728 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \uff0c \u5219 OpenGL \u4e0d \u9700\u8981 \u914d\u7f6e \uff0c \u4f46\u662f \u60a8 \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u624d\u80fd \u4f7f\u7528 Carla 0.9 . 12 \u4e4b\u524d \u7684 Vulkan \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u6709\u5173 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"Docker \u4e2d \u7684 Carla"},{"location":"build_docker/#docker-carla","text":"\u7528\u6237 \u53ef\u4ee5 \u62c9\u53d6 \u57fa\u4e8e Carla \u7248\u672c \u7684 \u6620\u50cf \u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u4ee5\u4e0b \u7528\u6237 \u5f88 \u6709\u7528 \uff1a \u60f3\u8981 \u8fd0\u884c Carla \u800c \u4e0d \u9700\u8981 \u5b89\u88c5 \u6240\u6709 \u4f9d\u8d56 \u9879 \u8fd0\u884c \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u6267\u884c GPU \u6620\u5c04 \u5728 \u6ca1\u6709 \u663e\u793a \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u8fd0\u884c Carla \u56fe\u50cf \u7684 \u8981\u6c42 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 OpenGL \u548c Vulkan \u56fe\u5f62 API \u8fd0\u884c \u56fe\u50cf \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla \u79bb\u5c4f \u6a21\u5f0f","title":"Docker \u4e2d \u7684 Carla"},{"location":"build_docker/#_1","text":"\u60a8 \u9700\u8981 \u5b89\u88c5 \uff1a Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 NVIDIA Container Toolkit : NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u662f \u4e00\u4e2a \u5e93 \u548c \u5de5\u5177 \u5de5\u5177\u96c6 \uff0c \u53ef \u5c06 NVIDIA \u56fe\u5f62 \u8bbe\u5907 \u516c\u5f00 \u7ed9 Linux \u5bb9\u5668 \u3002 \u5b83 \u4e13\u4e3a \u5728 Linux \u4e3b\u673a \u7cfb\u7edf \u6216 \u9002\u7528 \u4e8e Linux \u7684 Windows \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7248\u672c 2 \u4e0b \u7684 Linux \u53d1\u884c \u53d1\u884c\u7248 \u4e2d \u8fd0\u884c \u7684 Linux \u5bb9\u5668 \u800c \u8bbe\u8ba1 \u3002 nvidia - docker2 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u5b89\u88c5 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 CentOS \u5b89\u88c5 Docker \uff1a yum install - y yum - utils device - mapper - persistent - data lvm2 yum - config - manager -- add - repo http : / / mirrors . aliyun . com / docker - ce / linux / centos / docker - ce . repo yum list docker - ce -- showduplicates | sort - r yum - y install docker - ce - 18.03 . 1 . ce docker \u542f\u52a8 \u51fa\u9519 \uff1a failed to start daemon : error initializing graphdriver : driver not supported \u89e3\u51b3 \uff1a rm - rf / var / lib / docker / * systemctl restart docker CentOS \u5b89\u88c5 NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u547d\u4ee4 \uff1a curl - s - L https : / / nvidia . github . io / libnvidia - container / stable / rpm / nvidia - container - toolkit . repo | \\ tee / etc / yum . repos . d / nvidia - container - toolkit . repo yum - config - manager -- enable nvidia - container - toolkit - experimental yum install - y nvidia - container - toolkit nvidia - ctk runtime configure -- runtime = docker \u7b14\u8bb0 Docker \u9700\u8981 sudo \u624d\u80fd \u8fd0\u884c \u3002 \u6309\u7167 \u672c \u6307\u5357 \u5c06 \u7528\u6237 \u6dfb\u52a0 \u5230 docker sudo \u7ec4 \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"build_docker/#carla","text":"1 . \u62c9\u53d6 Carla \u955c\u50cf \u3002 \u60a8 \u53ef\u4ee5 \u63d0\u53d6 \u6700\u65b0 \u7684 Carla \u6620\u50cf \u6216 \u7279\u5b9a \u7684 \u53d1\u884c \u7248\u672c \u3002 \u6700\u65b0 \u955c\u50cf \u662f \u6307 \u6700\u65b0 \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8981\u62c9\u53d6 \u6620\u50cf \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \uff1a # \u62c9\u53d6 \u6700\u65b0 \u7684 \u955c\u50cf docker pull carlasim / carla : latest # \u62c9\u53d6 \u7279\u5b9a \u7684 \u7248\u672c docker pull carlasim / carla : 0.9 . 12 2 . \u8fd0\u884c Carla \u5bb9\u5668 \u3002 \u4e0d\u540c \u7248\u672c \u7684 Carla \u652f\u6301 \u4e0d\u540c \u7684 \u56fe\u5f62 API \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5f71\u54cd Docker \u955c\u50cf \u7684 \u8fd0\u884c \u6761\u4ef6 \uff1a 0.9 . 12 \u4ec5 \u652f\u6301 Vulkan 0.9 . 7 + \u540c\u65f6 \u652f\u6301 Vulkan \u548c OpenGL \u3002 Carla 0.9 . 12 \u8981 \u4f7f\u7528 \u663e\u793a \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh \u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh - RenderOffScreen Carla 0.9 . 7 \u81f3 0.9 . 11 \u8981 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY - e SDL _ VIDEODRIVER = x11 - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 11 / bin / bash . / CarlaUE4 . sh - vulkan < - additonal - carla - flags > \u7b14\u8bb0 \u53ea\u8981 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6709 \u663e\u793a \u663e\u793a\u5668 \uff0c \u6b64 \u547d\u4ee4 \u5c06 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \u6620\u50cf \u3002 \u6709\u5173 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Vulkan \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u8981 \u4f7f\u7528 OpenGL \u8fd0\u884c Carla \uff1a docker run - e DISPLAY = $ DISPLAY -- net = host -- gpus all -- runtime = nvidia carlasim / carla : < version > / bin / bash CarlaUE4 . sh - opengl < - additonal - carla - flags > 3 . \uff08 \u53ef \u9009 \uff09 \u914d\u7f6e Docker \u6807\u5fd7 \u3002 \u4e0a\u9762 \u7684 \u547d\u4ee4 \u4f7f\u7528 \u4e86 \u4e00\u4e9b Docker \u6807\u5fd7 \uff0c \u53ef\u4ee5 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u8fdb\u884c \u914d\u7f6e \uff1a Networking : -- net = host \u53c2\u6570 \u5c06 \u5141\u8bb8 \u5bb9\u5668 \u5171\u4eab \u4e3b\u673a \u7684 \u6574\u4e2a \u7f51\u7edc \u3002 \u5982\u679c \u60a8 \u5e0c\u671b \u5c06 \u4e3b\u673a \u4e0a \u7684 \u7279\u5b9a \u7aef\u53e3 \u6620\u5c04 \u5230 \u5bb9\u5668 \u7aef\u53e3 \uff0c \u8bf7 \u4f7f\u7528 \u6807\u5fd7 - p < host - ports > : < container - ports > \u3002 GPUs : \u60a8 \u53ef\u4ee5 \u4f7f\u7528 -- gpus all \u9009\u62e9 \u6709\u6240 GPU \uff0c \u6216\u8005 \u4f7f\u7528 -- gpus ' \" device = < gpu _ 01 > , < gpu _ 02 > \" ' \u4f7f\u7528 \u7279\u5b9a GPU \u3002 \u6d4f\u89c8 \u6b64\u5904 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla"},{"location":"build_docker/#_2","text":"\u5982\u679c \u60a8 \u5728 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \uff0c \u5219 OpenGL \u4e0d \u9700\u8981 \u914d\u7f6e \uff0c \u4f46\u662f \u60a8 \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u624d\u80fd \u4f7f\u7528 Carla 0.9 . 12 \u4e4b\u524d \u7684 Vulkan \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u6709\u5173 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u79bb\u5c4f \u6a21\u5f0f"},{"location":"build_docker_unreal/","text":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u5982\u4f55 \u4f7f\u7528 Docker \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 \u7136\u540e \uff0c \u751f\u6210 \u7684 \u6620\u50cf \u53ef \u7528\u4e8e \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \u3002 \u6b64 \u8fc7\u7a0b \u4e0d\u5e94 \u4e0e \u7528\u4e8e \u5728 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u7684 \u9884 \u6784\u5efa Carla Docker \u6620\u50cf \u76f8 \u6df7\u6dc6 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u76f8\u5173 \u6587\u6863 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u6784\u5efa \u955c\u50cf \u4e0b \u4e00\u6b65 \uff1a \u6253\u5305 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u7cfb\u7edf \u8981\u6c42 \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a 64 \u4f4d \u7248\u672c \u7684 Docker \u662f Ubuntu 16.04 + \u81f3\u5c11 8GB \u5185\u5b58 \u7528\u4e8e \u521d\u59cb \u5bb9\u5668 \u6784\u5efa \u8fc7\u7a0b \u7684 \u81f3\u5c11 600GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u8f6f\u4ef6 \u8981\u6c42 Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u5b89\u88c5 Docker \u3002 Python : \u60a8 \u9700\u8981 \u5b89\u88c5 Python 3.6 \u6216 \u66f4 \u9ad8 \u7248\u672c \u5e76 \u5728 \u7cfb\u7edf \u8def\u5f84 \u4e2d \u6b63\u786e \u8bbe\u7f6e \u3002 \u6709\u5173 \u5b89\u88c5 \u8bf4\u660e \u548c Python \u6587\u6863 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u865a\u5e7b \u5f15\u64ce GitHub \u8bbf\u95ee : \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8fd9 \u5c06 \u5728 Docker \u6784\u5efa \u8fc7\u7a0b \u4e2d \u4e0b\u8f7d \u3002 \u5bf9\u4e8e \u6b64 \u4e0b\u8f7d \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u4e0e \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u5173\u8054 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u5728 \u6784\u5efa \u8fc7\u7a0b \u4e2d \u60a8 \u9700\u8981 \u767b\u5f55 \u60a8 \u7684 \u5e10\u6237 \u3002 \u6216\u8005 \u76f4\u63a5 \u4ece \u5f00\u6e90 \u6e56 \u5de5\u5546 \u4ed3\u5e93 \u8fdb\u884c \u4e0b\u8f7d \u3002 Carla : \u4e3a Carla \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca Carla \u672c\u8eab \u6240 \u9700 \u7684 Dockerfile \u548c \u5de5\u5177 \u4f4d\u4e8e Util / DockerCARLA \u6e90 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \u4e2d \u3002 \u5982\u679c \u60a8 \u8fd8 \u6ca1\u6709 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4e0b\u8f7d \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla \u6784\u5efa \u955c\u50cf \u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u82b1\u8d39 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 1 . \u6784\u5efa Carla \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 Prerequisites . Dockerfile \u6784\u5efa \u4e00\u4e2a \u540d\u4e3a carla - prerequisitesusing \u7684 \u6620\u50cf \u3002 \u5728 \u6b64 \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5b89\u88c5 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u6240 \u9700 \u7684 \u5de5\u5177 \uff0c \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u5e76 \u7f16\u8bd1 \u5b83 \u3002 \u60a8 \u9700\u8981 \u63d0\u4f9b \u60a8 \u7684 \u767b\u5f55 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4f5c\u4e3a \u6784\u5efa \u53c2\u6570 \uff0c \u624d\u80fd \u6210\u529f \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \uff1a docker build -- build - arg EPIC _ USER = < GitHubUserName > -- build - arg EPIC _ PASS = < GitHubPassword > - t carla - prerequisites - f Prerequisites . Dockerfile . 2 . \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 \u4e0a \u4e00\u6b65 \u4e2d \u521b\u5efa \u7684 \u6620\u50cf \u57fa\u4e8e Carla \u5b58\u50a8 \u5e93 \u7684 \u5f53\u524d \u4e3b \u5206\u652f \uff08 \u6700\u65b0 \u7248\u672c \uff09 \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u6620\u50cf \uff1a docker build - t carla - f Carla . Dockerfile . \u5982\u679c \u60a8 \u60f3 \u6784\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u7279\u5b9a \u5206\u652f \u6216 \u6807\u7b7e \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a docker build - t carla - f Carla . Dockerfile . -- build - arg GIT _ BRANCH = < branch _ or _ tag _ name > \u4e0b \u4e00\u6b65 \uff1a \u6253\u5305 \u672c \u6307\u5357 \u4e2d \u521b\u5efa \u7684 Carla \u955c\u50cf \u7528\u4e8e \u521b\u5efa \u72ec\u7acb \u7684 Carla \u5305 \u6216 \u6253\u5305 \u5730\u56fe \u6216 \u7f51\u683c \u7b49 \u8d44\u6e90 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u8fd9\u662f \u901a\u8fc7 \u4f7f\u7528 Util / Docker \u4e2d \u7684 \u811a\u672c docker _ tools . py \u6765 \u5b9e\u73b0 \u7684 \u3002 \u8be5 \u811a\u672c \u7528\u4e8e docker - py \u5904\u7406 Docker \u955c\u50cf \u6620\u50cf \u3002 \u8be5 docker _ tools . py \u811a\u672c \u53ef \u7528\u4e8e \uff1a \u521b\u5efa Carla \u5305 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u5728 Carla \u5305\u4e2d \u70d8\u7119 \u9700\u8981 \u4f7f\u7528 \u7684 \u8d44\u4ea7 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u51c6\u5907 \u5730\u56fe \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla forum","title":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla"},{"location":"build_docker_unreal/#docker-carla","text":"\u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u5982\u4f55 \u4f7f\u7528 Docker \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 \u7136\u540e \uff0c \u751f\u6210 \u7684 \u6620\u50cf \u53ef \u7528\u4e8e \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \u3002 \u6b64 \u8fc7\u7a0b \u4e0d\u5e94 \u4e0e \u7528\u4e8e \u5728 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u7684 \u9884 \u6784\u5efa Carla Docker \u6620\u50cf \u76f8 \u6df7\u6dc6 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u76f8\u5173 \u6587\u6863 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u6784\u5efa \u955c\u50cf \u4e0b \u4e00\u6b65 \uff1a \u6253\u5305","title":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla"},{"location":"build_docker_unreal/#_1","text":"","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"build_docker_unreal/#_2","text":"\u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a 64 \u4f4d \u7248\u672c \u7684 Docker \u662f Ubuntu 16.04 + \u81f3\u5c11 8GB \u5185\u5b58 \u7528\u4e8e \u521d\u59cb \u5bb9\u5668 \u6784\u5efa \u8fc7\u7a0b \u7684 \u81f3\u5c11 600GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_docker_unreal/#_3","text":"Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u5b89\u88c5 Docker \u3002 Python : \u60a8 \u9700\u8981 \u5b89\u88c5 Python 3.6 \u6216 \u66f4 \u9ad8 \u7248\u672c \u5e76 \u5728 \u7cfb\u7edf \u8def\u5f84 \u4e2d \u6b63\u786e \u8bbe\u7f6e \u3002 \u6709\u5173 \u5b89\u88c5 \u8bf4\u660e \u548c Python \u6587\u6863 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u865a\u5e7b \u5f15\u64ce GitHub \u8bbf\u95ee : \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8fd9 \u5c06 \u5728 Docker \u6784\u5efa \u8fc7\u7a0b \u4e2d \u4e0b\u8f7d \u3002 \u5bf9\u4e8e \u6b64 \u4e0b\u8f7d \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u4e0e \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u5173\u8054 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u5728 \u6784\u5efa \u8fc7\u7a0b \u4e2d \u60a8 \u9700\u8981 \u767b\u5f55 \u60a8 \u7684 \u5e10\u6237 \u3002 \u6216\u8005 \u76f4\u63a5 \u4ece \u5f00\u6e90 \u6e56 \u5de5\u5546 \u4ed3\u5e93 \u8fdb\u884c \u4e0b\u8f7d \u3002 Carla : \u4e3a Carla \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca Carla \u672c\u8eab \u6240 \u9700 \u7684 Dockerfile \u548c \u5de5\u5177 \u4f4d\u4e8e Util / DockerCARLA \u6e90 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \u4e2d \u3002 \u5982\u679c \u60a8 \u8fd8 \u6ca1\u6709 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4e0b\u8f7d \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla","title":"\u8f6f\u4ef6 \u8981\u6c42"},{"location":"build_docker_unreal/#_4","text":"\u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u82b1\u8d39 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 1 . \u6784\u5efa Carla \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 Prerequisites . Dockerfile \u6784\u5efa \u4e00\u4e2a \u540d\u4e3a carla - prerequisitesusing \u7684 \u6620\u50cf \u3002 \u5728 \u6b64 \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5b89\u88c5 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u6240 \u9700 \u7684 \u5de5\u5177 \uff0c \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u5e76 \u7f16\u8bd1 \u5b83 \u3002 \u60a8 \u9700\u8981 \u63d0\u4f9b \u60a8 \u7684 \u767b\u5f55 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4f5c\u4e3a \u6784\u5efa \u53c2\u6570 \uff0c \u624d\u80fd \u6210\u529f \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \uff1a docker build -- build - arg EPIC _ USER = < GitHubUserName > -- build - arg EPIC _ PASS = < GitHubPassword > - t carla - prerequisites - f Prerequisites . Dockerfile . 2 . \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 \u4e0a \u4e00\u6b65 \u4e2d \u521b\u5efa \u7684 \u6620\u50cf \u57fa\u4e8e Carla \u5b58\u50a8 \u5e93 \u7684 \u5f53\u524d \u4e3b \u5206\u652f \uff08 \u6700\u65b0 \u7248\u672c \uff09 \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u6620\u50cf \uff1a docker build - t carla - f Carla . Dockerfile . \u5982\u679c \u60a8 \u60f3 \u6784\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u7279\u5b9a \u5206\u652f \u6216 \u6807\u7b7e \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a docker build - t carla - f Carla . Dockerfile . -- build - arg GIT _ BRANCH = < branch _ or _ tag _ name >","title":"\u6784\u5efa \u955c\u50cf"},{"location":"build_docker_unreal/#_5","text":"\u672c \u6307\u5357 \u4e2d \u521b\u5efa \u7684 Carla \u955c\u50cf \u7528\u4e8e \u521b\u5efa \u72ec\u7acb \u7684 Carla \u5305 \u6216 \u6253\u5305 \u5730\u56fe \u6216 \u7f51\u683c \u7b49 \u8d44\u6e90 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u8fd9\u662f \u901a\u8fc7 \u4f7f\u7528 Util / Docker \u4e2d \u7684 \u811a\u672c docker _ tools . py \u6765 \u5b9e\u73b0 \u7684 \u3002 \u8be5 \u811a\u672c \u7528\u4e8e docker - py \u5904\u7406 Docker \u955c\u50cf \u6620\u50cf \u3002 \u8be5 docker _ tools . py \u811a\u672c \u53ef \u7528\u4e8e \uff1a \u521b\u5efa Carla \u5305 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u5728 Carla \u5305\u4e2d \u70d8\u7119 \u9700\u8981 \u4f7f\u7528 \u7684 \u8d44\u4ea7 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u51c6\u5907 \u5730\u56fe \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla forum","title":"\u4e0b \u4e00\u6b65 \uff1a \u6253\u5305"},{"location":"build_faq/","text":"\u5e38\u95ee \u7684 \u95ee\u9898 \u6b64\u5904 \u5217\u51fa \u4e86 \u6709\u5173 Carla \u5b89\u88c5 \u548c \u6784\u5efa \u7684 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u3002 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 \u8be5\u9879 \u76ee\u7684 GitHub issues \u627e\u5230 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u53d1\u73b0 \u6b64\u5904 \u5217\u51fa \u7684 \u7591\u95ee \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u968f\u65f6 \u63d0\u95ee \u3002 Carla \u8bba\u575b \u7cfb\u7edf \u8981\u6c42 \u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 \u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002 Linux \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002 \u201c make launch \u201d \u5728 Linux \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002 AttributeError : module ' carla ' has no attribute ' Client ' when running a script . \u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" . Windows \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002 CarlaUE4 \u65e0\u6cd5 \u7f16\u8bd1 \u3002 \u5c1d\u8bd5 \u4ece\u6e90 \u624b\u52a8 \u91cd\u5efa \u5b83 \u3002 \u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002 Error C2440 , C2672 \uff1a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u3002 \u201c make launch \u201d \u5728 Windows \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002 \u6a21\u5757 \u7f3a\u5931 \u6216 \u4f7f\u7528 \u4e0d\u540c \u7684 \u5f15\u64ce \u7248\u672c \u6784\u5efa \u3002 \u5728 PythonAPI / carla \u4e2d \u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u8fd0\u884c Carla \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002 \u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002 \u5f53 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u94fe\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd8\u662f \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 ImportError : DLL load failed : The specified module could not be found . ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app . ImportError : No module named ' carla ' RuntimeError : rpc : : rpc _ error during call in function apply _ batch \u5176\u4ed6 Fatal error : ' version . h ' has been modified since the precompiled header . \u521b\u5efa Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f \u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1f \u7cfb\u7edf \u8981\u6c42 \u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 \u5efa\u8bae \u81f3\u5c11 \u6709 170GB \u53ef\u7528 \u7a7a\u95f4 \u3002 \u6784\u5efa Carla \u9700\u8981 \u5927\u7ea6 35GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \uff0c \u52a0\u4e0a \u865a\u5e7b \u5f15\u64ce \u5927\u7ea6 \u9700\u8981 95 - 135GB \u3002 \u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002 Carla \u662f \u4e00\u6b3e \u6027\u80fd \u8981\u6c42 \u8f83 \u9ad8 \u7684 \u8f6f\u4ef6 \u3002 \u5b83 \u81f3\u5c11 \u9700\u8981 6GB GPU \uff0c \u6216\u8005 \u66f4\u597d \u7684 \u662f \u80fd\u591f \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 \u4e13\u7528 GPU \u3002 \u770b\u770b \u865a\u5e7b \u5f15\u64ce \u63a8\u8350 \u7684 \u786c\u4ef6 \u3002 Linux \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002 Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . sh \u811a\u672c \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u4f7f\u7528 CarlaUE4 . sh \u8fd0\u884c Carla \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u8fdb\u884c \u64cd\u4f5c \u3002 \u201c make launch \u201d \u5728 Linux \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76\u4f1a \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u5c1d\u8bd5 \u5355\u72ec \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u5b83 \u662f\u5426 \u662f\u5426\u662f 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 UE4 _ ROOT \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u3002 \u5883 \u53d8\u91cf \u672a \u8bbe\u7f6e \u3002 \u8bf7 \u8bb0\u4f4f \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 ~ / . bashrc \u6216 ~ / . profile \u6765 \u4f7f \u5176 \u5728 \u4f1a \u8bdd \u8303\u56f4 \u5185 \u6301\u4e45 \u5b58\u5728 \u3002 \u5426\u5219 \uff0c \u9700\u8981 \u4e3a \u6bcf\u4e2a \u65b0 shell \u8fdb\u884c \u8bbe\u7f6e \u3002 \u8fd0\u884c export UE4 _ ROOT = < path _ to _ unreal _ 4 - 26 > \u8bbe\u7f6e \u8fd9\u6b21 \u7684 \u53d8\u91cf \u3002 \u68c0\u67e5 \u4f9d\u8d56 \u3002 \u786e\u4fdd \u4e00\u5207 \u90fd \u5b89\u88c5 \u6b63\u786e \u3002 \u4e5f\u8bb8 \u5176\u4e2d \u4e00\u4e2a \u547d\u4ee4 \u88ab \u8df3 \u8fc7 \u3001 \u4e0d \u6210\u529f \u6216\u8005 \u4f9d\u8d56 \u9879 \u4e0d \u9002\u5408 \u7cfb\u7edf \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Ubuntu \u7248\u672c \u5e94\u4e3a 16.04 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002 1 . \u865a\u5e7b \u5f15\u64ce \u5e10\u53f7 \u662f\u5426 \u5df2 \u6fc0\u6d3b \uff1f \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93\u662f \u79c1\u6709 \u7684 \u3002 \u4e3a\u4e86 \u514b\u9686 \u5b83 \uff0c \u8bf7 \u521b\u5efa \u865a \u5e7b \u5f15\u64ce \u5e10 \u6237 \uff0c \u6fc0\u6d3b \u5b83 \uff08 \u68c0\u67e5 \u9a8c\u8bc1 \u90ae\u4ef6 \uff09 \uff0c \u7136\u540e \u94fe\u63a5 \u60a8 \u7684 GitHub \u5e10\u6237 \u3002 2 . git \u662f\u5426 \u5b89\u88c5 \u6b63\u786e \uff1f \u6709\u65f6 \u9519\u8bef \u8868\u660e \u4e0e https \u534f\u8bae \u4e0d \u517c\u5bb9 \u3002 \u901a\u8fc7 \u5378\u8f7d \u5e76 \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 git \u5373\u53ef \u8f7b\u677e \u89e3\u51b3 \u3002 \u6253\u5f00 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a sudo apt - get remove git # \u5378\u8f7d git sudo apt install git - all # \u5b89\u88c5 git AttributeError : module ' carla ' has no attribute ' Client ' when running a script . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 pip3 install - Iv setuptools = = 47.3 . 1 \u5e76 \u518d\u6b21 \u6784\u5efa PythonAPI \u3002 make PythonAPI \u5c1d\u8bd5 \u6784\u5efa \u6587\u6863 \u6765 \u6d4b\u8bd5 \u4e00\u5207 \u662f\u5426 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5e94\u8be5 \u4f1a \u663e\u793a \u6210\u529f \u7684 \u6d88\u606f \u3002 make PythonAPI . docs \u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" . \u5982\u679c \u8fd0\u884c \u811a\u672c \u8fd4\u56de \u4e0e \u6b64\u7c7b \u4f3c\u7684 \u8f93\u51fa \uff0c \u5219 \u8bf4\u660e PythonAPI \u4e2d \u7684 . egg \u6587\u4ef6 \u5b58\u5728 \u95ee\u9898 \u3002 \u91cd\u8981 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u9996\u5148 \uff0c \u6253\u5f00 < root _ carla > / PythonAPI / carla / dist \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u548c \u4f60 \u6b63\u5728 \u4f7f\u7528 \u76f8\u5bf9 \u5e94 \u7684 Carla \u548c Python \u54cd\u5e94 \u7684 . egg \u6587\u4ef6 \uff08 \u7c7b\u4f3c \u4e8e carla - 0 . X . X - pyX . X - linux - x86 _ 64 . egg \uff09 \u3002 \u786e\u4fdd \u8be5 \u6587\u4ef6 \u4e0e \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 Python \u7248\u672c \u5339\u914d \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u3002 python3 -- version # \u6216\u8005 \u5bf9\u4e8e Python 2 python -- version \u5982\u679c \u6587\u4ef6 \u4e22\u5931 \u6216\u8005 \u60a8 \u8ba4\u4e3a \u5b83 \u53ef\u80fd \u635f\u574f \u5df2\u635f\u574f \uff0c \u8bf7 \u5c1d\u8bd5 \u518d\u6b21 \u91cd\u5efa \u3002 make clean make PythonAPI make launch \u73b0\u5728 \u518d\u6b21 \u5c1d\u8bd5 \u793a\u4f8b \u811a\u672c \u4e4b\u4e00 \u3002 cd PythonAPI / examples python3 dynamic _ weather . py \u5982\u679c \u9519\u8bef \u4ecd\u7136 \u5b58\u5728 \uff0c \u5219 \u95ee\u9898 \u53ef\u80fd \u4e0e \u60a8 \u7684 PythonPATH \u6709\u5173 \u3002 \u8fd9\u4e9b \u811a\u672c \u4f1a \u81ea\u52a8 \u67e5\u627e . egg \u4e0e \u6784\u5efa \u76f8\u5173 \u7684 \u6587\u4ef6 \uff0c \u56e0\u6b64 \uff0c \u60a8 \u7684 PythonPATH \u4e2d \u53ef\u80fd \u5b58\u5728 \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \u5e72\u6270 \u8be5 \u8fc7\u7a0b \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u663e\u793a PythonPATH \u7684 \u5185\u5bb9 \u3002 echo $ PYTHONPATH \u5728 \u7c7b\u4f3c \u4e8e PythonAPI / carla / dist \u7684 \u8def\u5f84 \u4e0b \u67e5\u627e \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \uff0c \u5e76 \u5220\u9664 \u5b83\u4eec \u3002 \u5b83\u4eec \u53ef\u80fd \u5c5e\u4e8e Carla \u5b89\u88c5 \u7684 \u5176\u4ed6 \u5b9e\u4f8b \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u8fd8 \u901a\u8fc7 apt - get \u5b89\u88c5 \u4e86 Carla \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5220\u9664 \uff0c \u5e76\u4e14 PythonPATH \u4e5f \u4f1a \u88ab \u6e05\u7406 \u3002 sudo apt - get purge carla - simulator \u6700\u7ec8 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 ~ / . bashrc \uff0c \u5c06 PythonPATH \u4e0b \u4f60 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u8fdb\u6765 \u3002 \u8fd9 \u4e0d\u662f \u63a8\u8350 \u7684 \u65b9\u5f0f \u3002 \u6700\u597d \u6709 \u4e00\u4e2a \u660e\u786e \u7684 PythonPATH \uff0c \u53ea \u9700 \u5728 \u811a\u672c \u4e2d \u6dfb\u52a0 \u5fc5\u8981 \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u5373\u53ef \u3002 \u9996\u5148 \uff0c \u6253\u5f00 ~ / . bashrc . gedit ~ / . bashrc \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 ~ / . bashrc \u3002 \u5b83\u4eec \u5b58\u50a8 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \uff0c \u4ee5\u4fbf Python \u53ef\u4ee5 \u81ea\u52a8 \u627e\u5230 \u5b83 \u3002 \u4fdd\u5b58 \u6587\u4ef6 \uff0c \u7136\u540e \u91cd\u7f6e \u7ec8\u7aef \u4ee5 \u4f7f \u66f4\u6539 \u751f\u6548 \u3002 export PYTHONPATH = $ PYTHONPATH : \" $ { CARLA _ ROOT } / PythonAPI / carla / dist / $ ( ls $ { CARLA _ ROOT } / PythonAPI / carla / dist | grep py3 . ) \" export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6e05\u7406 PythonPATH \u6216 \u6dfb\u52a0 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u540e \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5e94\u8be5 \u6b63\u5e38 \u5de5\u4f5c \u3002 Windows \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002 Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . exe \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u76f4\u63a5 \u83b7\u53d6 CarlaUE4 . exe \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 CarlaUE4 could not be compiled . Try rebuilding it from source manually . \u5c1d\u8bd5 \u6784\u5efa Carla \u65f6 \u51fa\u73b0 \u95ee\u9898 \u3002 \u4f7f\u7528 Visual Studio \u91cd\u65b0 \u6784\u5efa \u4ee5 \u53d1\u73b0 \u53d1\u751f \u4e86 \u4ec0\u4e48 \u3002 1 . \u8f6c \u5230 carla / Unreal / CarlaUE4 \u5e76 \u53f3\u952e \u5355\u51fb CarlaUE4 . uproject \u3002 2 . \u5355\u51fb Generate Visual Studio project files \u3002 3 . \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 \u751f\u6210 \u7684 \u6587\u4ef6 \u3002 4 . \u4f7f\u7528 Visual Studio \u7f16\u8bd1 \u9879\u76ee \u3002 \u5feb\u6377 \u5feb\u6377\u952e \u662f F7 \u3002 \u6784\u5efa \u5c06 \u5931\u8d25 \uff0c \u4f46 \u53d1\u73b0 \u7684 \u95ee\u9898 \u5c06 \u663e\u793a \u5728 \u4e0b\u9762 \u3002 \u4e0d\u540c \u7684 \u95ee\u9898 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51fa\u73b0 \u6b64 \u7279\u5b9a \u9519\u8bef \u6d88\u606f \u3002 \u7528\u6237 @ tamakoji \u89e3\u51b3 \u4e86 \u4e00\u4e2a \u7ecf\u5e38 \u51fa\u73b0 \u7ecf\u5e38\u51fa\u73b0 \u7684 \u60c5\u51b5 \uff0c \u5373 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u672a \u6b63\u786e \u514b\u9686 \u4e14 \u65e0\u6cd5 \u8bbe\u7f6e Carla \u7248\u672c \uff08 \u4ece git \u5c06 \u5176 \u4e0b\u8f7d \u4e3a . zip \u65f6 \uff09 \u3002 \u68c0\u67e5 Build / CMakeLists . txt . in . \u5982\u679c \u663e\u793a \uff1a set ( CARLA _ VERSION ) \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a 1 . \u8f6c \u5230 Setup . bat \u7b2c 198 \u884c \u3002 2 . Update the line from : for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = %% i \u4e3a \uff1a for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = \" 0.9 . 9 \" \u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002 \u5f53 \u5c1d\u8bd5 \u4f7f\u7528 make \u547d\u4ee4 \u6784\u5efa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6\u4f1a \u51fa\u73b0 \u6b64 \u95ee\u9898 \u3002 \u5373\u4f7f CMake \u5df2 \u5b89\u88c5 \u3001 \u66f4\u65b0 \u5e76 \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 Visual Studio \u7248\u672c \u4e4b\u95f4 \u53ef\u80fd \u5b58\u5728 \u51b2\u7a81 \u3002 \u53ea \u7559\u4e0b VS2019 \uff0c \u5176\u4f59 \u7684 \u5f7b\u5e95 \u5220\u9664 \u3002 Error C2440 , C2672 : compiler version . \u7531\u4e8e \u4e0e \u5176\u4ed6 Visual Studio \u6216 Microsoft \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u51b2\u7a81 \uff0c \u8be5 \u6784\u5efa \u672a \u4f7f\u7528 2019 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u3002 \u5378\u8f7d \u8fd9\u4e9b \u5e76 \u518d\u6b21 \u91cd\u5efa \u3002 Visual Studio \u4e0d \u64c5\u957f \u6446\u8131 \u81ea\u8eab \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u7ba1\u7406 \u7ba1\u7406\u5458 \u6743\u9650 \u3002 \u8981 \u4fdd\u7559 \u5176\u4ed6 Visual Studio \u7248\u672c \uff0c \u8bf7 \u901a\u8fc7 \u6dfb\u52a0 \u4ee5\u4e0b \u884c \u8fdb\u884c \u7f16\u8f91 % appdata% \\ Unreal Engine \\ UnrealBuildTool \\ BuildConfiguration . xml \uff1a < VCProjectFileGenerator > < Version > VisualStudio2019 < / Version > < / VCProjectFileGenerator > < WindowsPlatform > < Compiler > VisualStudio2019 < / Compiler > < / WindowsPlatform > \u201c make launch \u201d \u5728 Windows \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76 \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002 Windows \u6784\u5efa \u671f\u95f4 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u5e76 \u786e\u4fdd \u6240\u6709 \u5185\u5bb9 \u5747 \u5df2 \u6b63\u786e \u66f4\u65b0 \u3002 \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u8fd0\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u662f\u5426 \u4f7f\u7528 \u4e86 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 Visual Studio 2019 . \u5982\u679c \u5b89\u88c5 \u6216 \u6700\u8fd1 \u5378\u8f7d \u4e86 \u5176\u4ed6 \u7248\u672c \u7684 Visual Studio \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u51b2\u7a81 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002 Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002 \u4e0b\u8f7d \u4f9d\u8d56 \u9879 \u5e76 \u5c06 bin \u5185\u5bb9 \u89e3\u538b \u5230 make \u5b89\u88c5 \u8def\u5f84 \u4e2d \u3002 Modules are missing or built with a different engine version . \u5355\u51fb on Accept \u4ee5 \u91cd\u5efa \u5b83\u4eec \u3002 \u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u5728 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 Windows \u4e2d \uff0c make PythonAPI \u547d\u4ee4 \u53ef\u80fd \u4f1a \u8fd4\u56de \u4e00\u6761 \u6d88\u606f \uff0c \u8868\u660e Python API \u5b89\u88c5 \u6210\u529f \uff0c \u4f46 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5e76\u672a \u6210\u529f \u3002 \u5982\u679c \u770b\u5230 \u6b64 \u8f93\u51fa \u540e \u76ee\u5f55 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u8bf7 \u67e5\u770b \u4e0a\u9762 \u7684 \u547d\u4ee4 \u8f93\u51fa \u3002 \u5f88 \u53ef\u80fd \u53d1\u751f \u4e86 \u9519\u8bef \uff0c \u9700\u8981 \u5728 \u66f4\u6b63 \u9519\u8bef \u5e76 \u8fd0\u884c make clean \u540e \u91cd\u8bd5 \u6784\u5efa \u3002 osm2odr - visualstudio \u4e3a\u7a7a \uff0c \u6216\u8005 \u62f7\u8d1d \u8fc7\u53bb \u7684 \u76ee\u5f55 \u4e0d \u5bf9 CMake Error : The current CMakeCache . txt directory D : / work / workspace / carla / Build / osm2odr - visualstudio / CMakeCache . txt is different than the directory d : / work / buffer / carla / Build / osm2odr - visualstudio where CMakeCache . txt was created . This may result in binaries being created in the wrong place . If you are not sure , reedit the CMakeCache . txt CMake Error : The source directory \" D : / work / workspace / carla / Build / osm2odr - visualstudio / x64 \" does not appear to contain CMakeLists . txt . \u5220\u9664 carla \\ Build \\ osm2odr - visualstudio \\ CMakeCache . txt \u7c7b\u578b \u8f6c\u6362 \u7c7b\u578b\u8f6c\u6362 \u4e0d \u5bf9 carla / Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Vehicle / CustomTerrainPhysicsComponent . cpp ( 1161 ) : error C2440 : \u201c static _ cast \u201d : \u65e0\u6cd5 \u4ece \u201c float \u201d \u8f6c\u6362 \u4e3a \u201c EDefResolutionType \u201d \u6ce8\u91ca \u6389 / / ChosenRes = static _ cast < EDefResolutionType > ( Value ) ; / / static _ cast < EDefResolutionType > ( Value ) \u94fe\u63a5 \u4e0d\u5230 osm2odr . lib fatal error LNK1181 : carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ lib \\ osm2odr . lib \u4ece \u5176\u4ed6 \u5730\u65b9 \u62f7\u8d1d \u8fc7\u6765 \u3002 \u8fd0\u884c Carla \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002 \u865a\u5e7b 4 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5728 \u5931\u7126 \u65f6\u4f1a \u8fdb\u5165 \u4f4e \u6027\u80fd \u6a21\u5f0f \u3002 \u8f6c \u5230 \u201c \u7f16\u8f91 - > \u7f16\u8f91 \u7f16\u8f91\u5668 \u504f\u597d \u8bbe\u7f6e - > \u6027\u80fd \u201d \uff08 Edit / Editor Preferences / Performance \uff09 \uff0c \u7136\u540e \u7981\u7528 \u201c \u5904\u4e8e \u80cc\u666f \u4e2d \u65f6 \u5360\u7528 \u8f83 \u5c11 CPU \u201d \u9009\u9879 \u3002 \u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002 \u6709\u4e9b \u811a\u672c \u6709 \u8981\u6c42 \u3002 \u8fd9\u4e9b \u5217 \u5728 \u540d\u4e3a Requirements . txt \u7684 \u6587\u4ef6 \u4e2d \uff0c \u4e0e \u811a\u672c \u672c\u8eab \u4f4d\u4e8e \u540c\u4e00 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u8fd9\u4e9b \u4ee5\u4fbf \u8fd0\u884c \u811a\u672c \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 pip \u547d\u4ee4 \u8fdb\u884c \u5b89\u88c5 \u3002 \u6709\u65f6 \u5728 Windows \u4e0a \uff0c \u811a\u672c \u65e0\u6cd5 \u4ec5 \u4f7f\u7528 > script _ name . py \u8fd0\u884c \u3002 \u5c1d\u8bd5 \u6dfb\u52a0 . Try adding > python3 script _ name . py \uff0c \u5e76 \u786e\u4fdd \u4f4d\u4e8e \u6b63\u786e \u7684 \u76ee\u5f55 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5355\u51fb \u201c \u8fd0\u884c \u201d \uff08 Play \uff09 \u5e76 \u7b49\u5f85 \u573a\u666f \u52a0\u8f7d \u3002 \u6b64\u65f6 \uff0c Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u50cf \u72ec\u7acb \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e00\u6837 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd8\u662f \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u53ef\u80fd \u5df2 \u8fc7\u65f6 \u3002 \u786e\u4fdd \u60c5\u51b5 \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u5982\u679c \u95ee\u9898 \u4ecd \u672a \u89e3\u51b3 \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u53d1\u5e03 \u5177\u4f53 \u95ee\u9898 \u3002 ImportError : DLL load failed : The specified module could not be found . \u6240 \u9700 \u7684 \u5e93 \u4e4b\u4e00 \u5c1a\u672a \u6b63\u786e \u5b89\u88c5 \u3002 \u4f5c\u4e3a \u89e3\u51b3 \u65b9\u6cd5 \uff0c \u8bf7 \u8f6c\u81f3 carla \\ Build \\ zlib - source \\ build \u5e76 \u5728 \u811a\u672c \u7684 \u8def\u5f84 \u4e2d \u590d\u5236 \u540d\u4e3a zlib . dll \u7684 \u6587\u4ef6 \u3002 ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app . 32 \u4f4d Python \u7248\u672c \u5728 \u5c1d\u8bd5 \u8fd0\u884c \u811a\u672c \u65f6\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5378\u8f7d \u5b83 \u5e76 \u4ec5 \u4fdd\u7559 \u6240 \u9700 \u7684 Python3 x64 \u3002 ImportError : No module named ' carla ' \u51fa\u73b0 \u6b64 \u9519\u8bef \u7684 \u539f\u56e0 \u662f Python \u627e \u4e0d\u5230 Carla \u5e93 \u3002 Carla \u5e93 \u5305\u542b \u5728 \u4f4d\u4e8e PythonAPI / carla / dist \u76ee\u5f55 \u4e2d \u7684 \u4e00\u4e2a . egg \u6587\u4ef6 \u4e2d \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5c06 \u5728 \u6b64 \u76ee\u5f55 \u4e2d \u67e5\u627e \u5b83 \u3002 \u8be5 . egg \u6587\u4ef6 \u9075\u5faa carla - - py - . egg \u547d\u540d \u6cd5 \u3002 \u91cd\u8981 Carla \u4ec5 \u5728 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e2d \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u6587\u4ef6 . egg \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u5728 \u5feb\u901f \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u4e2d \u9605\u8bfb \u6709\u5173 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u65b0 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u6253\u5305 \u7248\u672c \u7684 Carla \uff0c \u5219 \u4f1a \u6709 \u591a\u4e2a . egg \u6587\u4ef6 \uff0c \u5bf9\u5e94 \u4e0d\u540c \u7248\u672c \u7684 Python \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u7684 \u7248\u672c \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u6b63\u5728 \u4f7f\u7528 \u8fd9\u4e9b Python \u7248\u672c \u4e4b\u4e00 \u8fd0\u884c \u811a\u672c \u3002 \u8981 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u952e\u5165 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a python3 -- version # \u6216\u8005 python -- version \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Python \uff0c \u5219 \u8be5 . egg \u6587\u4ef6 \u5c06 \u6839\u636e \u7cfb\u7edf \u4e0a \u7684 \u9ed8\u8ba4 Python \u7248\u672c \u6784\u5efa \u3002 \u5728 Linux \u4e2d \uff0c \u8fd9 \u5c06 \u662f \u8fd4\u56de \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a / usr / bin / env python3 -- version # \u6216\u8005 \u5982\u679c \u4f60 \u6307\u5b9a ARGS = \" -- python - version = 2 \" / usr / bin / env python2 -- version \u5728 Windows \u4e2d \uff0c \u5b83 \u5c06 \u6210\u4e3a \u4ee5\u4e0b \u529f\u80fd \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a py - 3 -- version \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u4e0e \u60a8 \u7684 . egg \u6587\u4ef6 \u5bf9\u5e94 \u7684 Python \u7248\u672c \u8fd0\u884c \u811a\u672c . egg \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 \u5c06 Python \u8def\u5f84 \u8bbe\u7f6e \u4e3a \u6307\u5411 Carla \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : < path / to / carla / > / PythonAPI / carla / dist / < your _ egg _ file > # \u68c0\u67e5 \u73b0\u5728 Carla \u662f\u5426 \u80fd \u53d1\u73b0 python3 - c ' import carla ; print ( \" Success \" ) ' \u8bf7 \u6ce8\u610f \uff0c \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u6216 Conda \u7b49 \u5176\u4ed6 Python \u73af\u5883 \u53ef\u80fd \u4f1a \u4f7f Carla \u7684 \u5b89\u88c5 \u53d8\u5f97 \u590d\u6742 \u53d8\u5f97\u590d\u6742 \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u76f8\u5e94 \u5730 \u8bbe\u7f6e Python \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u548c \u8def\u5f84 \u3002 RuntimeError : rpc : : rpc _ error during call in function apply _ batch PythonAPI \u7684 \u7248\u672c \u8981 \u548c Carla \u670d\u52a1 \u7684 \u7248\u672c \u4e00\u81f4 \uff0c \u6bd4\u5982 dev \u5206\u652f \u7684 \u4ee3\u7801 \u7f16\u8bd1 \u5f97\u5230 \u7684 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u7684 \u573a\u666f \u4e5f \u8981 \u7528 dev \u5206\u652f \u4ee3\u7801 \u7f16\u8bd1 \u7684 PythonAPI \u8fdb\u884c \u8fde\u63a5 \u3002 \u5176\u4ed6 Fatal error : ' version . h ' has been modified since the precompiled header . \u7531\u4e8e Linux \u66f4\u65b0 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u65f6\u5e38 \u53d1\u751f \u3002 Makefile \u4e2d\u6709 \u4e00\u4e2a \u9488\u5bf9 \u6b64 \u95ee\u9898 \u7684 \u7279\u6b8a \u76ee\u6807 \u3002 \u867d\u7136 \u82b1 \u4e86 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff0c \u4f46 \u89e3\u51b3 \u4e86 \u95ee\u9898 \uff1a make hard - clean make CarlaUE4Editor \u521b\u5efa Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u5728 Linux \u4e2d \uff0c \u5728 \u9879\u76ee \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c make package \u3002 \u8be5\u5305 \u5c06 \u5305\u62ec \u9879\u76ee \u548c Python API \u6a21\u5757 \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7f16\u8bd1 Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6253\u5f00 CarlaUE4 \u9879\u76ee \uff0c \u8f6c \u5230 \u83dc\u5355 File / Package Project \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u5e73\u53f0 \u3002 \u53ef\u80fd \u8fd8\u8981 \u7b49 \u4e00\u4e0b \u3002 \u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f \u867d\u7136 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e \u865a\u5e7b \u5f15\u64ce \uff0c \u4f46 \u5728 Carla \u4e2d \u4e0d\u53ef \u7528 \u3002 \u6211\u4eec \u6709 \u8bb8\u591a \u4e0d \u652f\u6301 \u4ea4\u53c9 \u7f16\u8bd1 \u7684 \u4f9d\u8d56 \u9879 \u3002 \u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1f \u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla","title":"\u5e38\u95ee \u7684 \u95ee\u9898"},{"location":"build_faq/#_1","text":"\u6b64\u5904 \u5217\u51fa \u4e86 \u6709\u5173 Carla \u5b89\u88c5 \u548c \u6784\u5efa \u7684 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u3002 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 \u8be5\u9879 \u76ee\u7684 GitHub issues \u627e\u5230 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u53d1\u73b0 \u6b64\u5904 \u5217\u51fa \u7684 \u7591\u95ee \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u968f\u65f6 \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5e38\u95ee \u7684 \u95ee\u9898"},{"location":"build_faq/#_2","text":"\u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 \u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_faq/#linux","text":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002 \u201c make launch \u201d \u5728 Linux \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002 AttributeError : module ' carla ' has no attribute ' Client ' when running a script . \u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" .","title":"Linux \u6784\u5efa"},{"location":"build_faq/#windows","text":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002 CarlaUE4 \u65e0\u6cd5 \u7f16\u8bd1 \u3002 \u5c1d\u8bd5 \u4ece\u6e90 \u624b\u52a8 \u91cd\u5efa \u5b83 \u3002 \u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002 Error C2440 , C2672 \uff1a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u3002 \u201c make launch \u201d \u5728 Windows \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002 \u6a21\u5757 \u7f3a\u5931 \u6216 \u4f7f\u7528 \u4e0d\u540c \u7684 \u5f15\u64ce \u7248\u672c \u6784\u5efa \u3002 \u5728 PythonAPI / carla \u4e2d \u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939","title":"Windows \u6784\u5efa"},{"location":"build_faq/#carla","text":"\u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002 \u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002 \u5f53 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u94fe\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd8\u662f \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 ImportError : DLL load failed : The specified module could not be found . ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app . ImportError : No module named ' carla ' RuntimeError : rpc : : rpc _ error during call in function apply _ batch","title":"\u8fd0\u884c Carla"},{"location":"build_faq/#_3","text":"Fatal error : ' version . h ' has been modified since the precompiled header . \u521b\u5efa Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f \u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1f","title":"\u5176\u4ed6"},{"location":"build_faq/#_4","text":"","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_faq/#carla_1","text":"\u5efa\u8bae \u81f3\u5c11 \u6709 170GB \u53ef\u7528 \u7a7a\u95f4 \u3002 \u6784\u5efa Carla \u9700\u8981 \u5927\u7ea6 35GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \uff0c \u52a0\u4e0a \u865a\u5e7b \u5f15\u64ce \u5927\u7ea6 \u9700\u8981 95 - 135GB \u3002","title":"\u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8\u7a7a\u95f4 \u3002"},{"location":"build_faq/#carla_2","text":"Carla \u662f \u4e00\u6b3e \u6027\u80fd \u8981\u6c42 \u8f83 \u9ad8 \u7684 \u8f6f\u4ef6 \u3002 \u5b83 \u81f3\u5c11 \u9700\u8981 6GB GPU \uff0c \u6216\u8005 \u66f4\u597d \u7684 \u662f \u80fd\u591f \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 \u4e13\u7528 GPU \u3002 \u770b\u770b \u865a\u5e7b \u5f15\u64ce \u63a8\u8350 \u7684 \u786c\u4ef6 \u3002","title":"\u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002"},{"location":"build_faq/#linux_1","text":"","title":"Linux \u6784\u5efa"},{"location":"build_faq/#github-carlaue4sh","text":"Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . sh \u811a\u672c \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u4f7f\u7528 CarlaUE4 . sh \u8fd0\u884c Carla \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002"},{"location":"build_faq/#make-launch-linux","text":"\u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76\u4f1a \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u5c1d\u8bd5 \u5355\u72ec \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u5b83 \u662f\u5426 \u662f\u5426\u662f 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 UE4 _ ROOT \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u3002 \u5883 \u53d8\u91cf \u672a \u8bbe\u7f6e \u3002 \u8bf7 \u8bb0\u4f4f \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 ~ / . bashrc \u6216 ~ / . profile \u6765 \u4f7f \u5176 \u5728 \u4f1a \u8bdd \u8303\u56f4 \u5185 \u6301\u4e45 \u5b58\u5728 \u3002 \u5426\u5219 \uff0c \u9700\u8981 \u4e3a \u6bcf\u4e2a \u65b0 shell \u8fdb\u884c \u8bbe\u7f6e \u3002 \u8fd0\u884c export UE4 _ ROOT = < path _ to _ unreal _ 4 - 26 > \u8bbe\u7f6e \u8fd9\u6b21 \u7684 \u53d8\u91cf \u3002 \u68c0\u67e5 \u4f9d\u8d56 \u3002 \u786e\u4fdd \u4e00\u5207 \u90fd \u5b89\u88c5 \u6b63\u786e \u3002 \u4e5f\u8bb8 \u5176\u4e2d \u4e00\u4e2a \u547d\u4ee4 \u88ab \u8df3 \u8fc7 \u3001 \u4e0d \u6210\u529f \u6216\u8005 \u4f9d\u8d56 \u9879 \u4e0d \u9002\u5408 \u7cfb\u7edf \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Ubuntu \u7248\u672c \u5e94\u4e3a 16.04 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002","title":"\u201c make launch \u201d \u5728 Linux \u4e0a \u4e0d\u8d77\u4f5c\u7528 \u3002"},{"location":"build_faq/#_5","text":"1 . \u865a\u5e7b \u5f15\u64ce \u5e10\u53f7 \u662f\u5426 \u5df2 \u6fc0\u6d3b \uff1f \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93\u662f \u79c1\u6709 \u7684 \u3002 \u4e3a\u4e86 \u514b\u9686 \u5b83 \uff0c \u8bf7 \u521b\u5efa \u865a \u5e7b \u5f15\u64ce \u5e10 \u6237 \uff0c \u6fc0\u6d3b \u5b83 \uff08 \u68c0\u67e5 \u9a8c\u8bc1 \u90ae\u4ef6 \uff09 \uff0c \u7136\u540e \u94fe\u63a5 \u60a8 \u7684 GitHub \u5e10\u6237 \u3002 2 . git \u662f\u5426 \u5b89\u88c5 \u6b63\u786e \uff1f \u6709\u65f6 \u9519\u8bef \u8868\u660e \u4e0e https \u534f\u8bae \u4e0d \u517c\u5bb9 \u3002 \u901a\u8fc7 \u5378\u8f7d \u5e76 \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 git \u5373\u53ef \u8f7b\u677e \u89e3\u51b3 \u3002 \u6253\u5f00 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a sudo apt - get remove git # \u5378\u8f7d git sudo apt install git - all # \u5b89\u88c5 git","title":"\u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002"},{"location":"build_faq/#attributeerror-module-carla-has-no-attribute-client-when-running-a-script","text":"\u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 pip3 install - Iv setuptools = = 47.3 . 1 \u5e76 \u518d\u6b21 \u6784\u5efa PythonAPI \u3002 make PythonAPI \u5c1d\u8bd5 \u6784\u5efa \u6587\u6863 \u6765 \u6d4b\u8bd5 \u4e00\u5207 \u662f\u5426 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5e94\u8be5 \u4f1a \u663e\u793a \u6210\u529f \u7684 \u6d88\u606f \u3002 make PythonAPI . docs","title":"AttributeError : module ' carla ' has no attribute ' Client ' when running a script ."},{"location":"build_faq/#runtimeerror-rpcrpc_error-during-call-in-function-version","text":"\u5982\u679c \u8fd0\u884c \u811a\u672c \u8fd4\u56de \u4e0e \u6b64\u7c7b \u4f3c\u7684 \u8f93\u51fa \uff0c \u5219 \u8bf4\u660e PythonAPI \u4e2d \u7684 . egg \u6587\u4ef6 \u5b58\u5728 \u95ee\u9898 \u3002 \u91cd\u8981 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u9996\u5148 \uff0c \u6253\u5f00 < root _ carla > / PythonAPI / carla / dist \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u548c \u4f60 \u6b63\u5728 \u4f7f\u7528 \u76f8\u5bf9 \u5e94 \u7684 Carla \u548c Python \u54cd\u5e94 \u7684 . egg \u6587\u4ef6 \uff08 \u7c7b\u4f3c \u4e8e carla - 0 . X . X - pyX . X - linux - x86 _ 64 . egg \uff09 \u3002 \u786e\u4fdd \u8be5 \u6587\u4ef6 \u4e0e \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 Python \u7248\u672c \u5339\u914d \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u3002 python3 -- version # \u6216\u8005 \u5bf9\u4e8e Python 2 python -- version \u5982\u679c \u6587\u4ef6 \u4e22\u5931 \u6216\u8005 \u60a8 \u8ba4\u4e3a \u5b83 \u53ef\u80fd \u635f\u574f \u5df2\u635f\u574f \uff0c \u8bf7 \u5c1d\u8bd5 \u518d\u6b21 \u91cd\u5efa \u3002 make clean make PythonAPI make launch \u73b0\u5728 \u518d\u6b21 \u5c1d\u8bd5 \u793a\u4f8b \u811a\u672c \u4e4b\u4e00 \u3002 cd PythonAPI / examples python3 dynamic _ weather . py \u5982\u679c \u9519\u8bef \u4ecd\u7136 \u5b58\u5728 \uff0c \u5219 \u95ee\u9898 \u53ef\u80fd \u4e0e \u60a8 \u7684 PythonPATH \u6709\u5173 \u3002 \u8fd9\u4e9b \u811a\u672c \u4f1a \u81ea\u52a8 \u67e5\u627e . egg \u4e0e \u6784\u5efa \u76f8\u5173 \u7684 \u6587\u4ef6 \uff0c \u56e0\u6b64 \uff0c \u60a8 \u7684 PythonPATH \u4e2d \u53ef\u80fd \u5b58\u5728 \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \u5e72\u6270 \u8be5 \u8fc7\u7a0b \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u663e\u793a PythonPATH \u7684 \u5185\u5bb9 \u3002 echo $ PYTHONPATH \u5728 \u7c7b\u4f3c \u4e8e PythonAPI / carla / dist \u7684 \u8def\u5f84 \u4e0b \u67e5\u627e \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \uff0c \u5e76 \u5220\u9664 \u5b83\u4eec \u3002 \u5b83\u4eec \u53ef\u80fd \u5c5e\u4e8e Carla \u5b89\u88c5 \u7684 \u5176\u4ed6 \u5b9e\u4f8b \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u8fd8 \u901a\u8fc7 apt - get \u5b89\u88c5 \u4e86 Carla \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5220\u9664 \uff0c \u5e76\u4e14 PythonPATH \u4e5f \u4f1a \u88ab \u6e05\u7406 \u3002 sudo apt - get purge carla - simulator \u6700\u7ec8 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 ~ / . bashrc \uff0c \u5c06 PythonPATH \u4e0b \u4f60 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u8fdb\u6765 \u3002 \u8fd9 \u4e0d\u662f \u63a8\u8350 \u7684 \u65b9\u5f0f \u3002 \u6700\u597d \u6709 \u4e00\u4e2a \u660e\u786e \u7684 PythonPATH \uff0c \u53ea \u9700 \u5728 \u811a\u672c \u4e2d \u6dfb\u52a0 \u5fc5\u8981 \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u5373\u53ef \u3002 \u9996\u5148 \uff0c \u6253\u5f00 ~ / . bashrc . gedit ~ / . bashrc \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 ~ / . bashrc \u3002 \u5b83\u4eec \u5b58\u50a8 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \uff0c \u4ee5\u4fbf Python \u53ef\u4ee5 \u81ea\u52a8 \u627e\u5230 \u5b83 \u3002 \u4fdd\u5b58 \u6587\u4ef6 \uff0c \u7136\u540e \u91cd\u7f6e \u7ec8\u7aef \u4ee5 \u4f7f \u66f4\u6539 \u751f\u6548 \u3002 export PYTHONPATH = $ PYTHONPATH : \" $ { CARLA _ ROOT } / PythonAPI / carla / dist / $ ( ls $ { CARLA _ ROOT } / PythonAPI / carla / dist | grep py3 . ) \" export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6e05\u7406 PythonPATH \u6216 \u6dfb\u52a0 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u540e \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5e94\u8be5 \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" ."},{"location":"build_faq/#windows_1","text":"","title":"Windows \u6784\u5efa"},{"location":"build_faq/#github-carlaue4exe","text":"Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . exe \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u76f4\u63a5 \u83b7\u53d6 CarlaUE4 . exe \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002"},{"location":"build_faq/#carlaue4-could-not-be-compiled-try-rebuilding-it-from-source-manually","text":"\u5c1d\u8bd5 \u6784\u5efa Carla \u65f6 \u51fa\u73b0 \u95ee\u9898 \u3002 \u4f7f\u7528 Visual Studio \u91cd\u65b0 \u6784\u5efa \u4ee5 \u53d1\u73b0 \u53d1\u751f \u4e86 \u4ec0\u4e48 \u3002 1 . \u8f6c \u5230 carla / Unreal / CarlaUE4 \u5e76 \u53f3\u952e \u5355\u51fb CarlaUE4 . uproject \u3002 2 . \u5355\u51fb Generate Visual Studio project files \u3002 3 . \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 \u751f\u6210 \u7684 \u6587\u4ef6 \u3002 4 . \u4f7f\u7528 Visual Studio \u7f16\u8bd1 \u9879\u76ee \u3002 \u5feb\u6377 \u5feb\u6377\u952e \u662f F7 \u3002 \u6784\u5efa \u5c06 \u5931\u8d25 \uff0c \u4f46 \u53d1\u73b0 \u7684 \u95ee\u9898 \u5c06 \u663e\u793a \u5728 \u4e0b\u9762 \u3002 \u4e0d\u540c \u7684 \u95ee\u9898 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51fa\u73b0 \u6b64 \u7279\u5b9a \u9519\u8bef \u6d88\u606f \u3002 \u7528\u6237 @ tamakoji \u89e3\u51b3 \u4e86 \u4e00\u4e2a \u7ecf\u5e38 \u51fa\u73b0 \u7ecf\u5e38\u51fa\u73b0 \u7684 \u60c5\u51b5 \uff0c \u5373 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u672a \u6b63\u786e \u514b\u9686 \u4e14 \u65e0\u6cd5 \u8bbe\u7f6e Carla \u7248\u672c \uff08 \u4ece git \u5c06 \u5176 \u4e0b\u8f7d \u4e3a . zip \u65f6 \uff09 \u3002 \u68c0\u67e5 Build / CMakeLists . txt . in . \u5982\u679c \u663e\u793a \uff1a set ( CARLA _ VERSION ) \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a 1 . \u8f6c \u5230 Setup . bat \u7b2c 198 \u884c \u3002 2 . Update the line from : for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = %% i \u4e3a \uff1a for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = \" 0.9 . 9 \"","title":"CarlaUE4 could not be compiled . Try rebuilding it from source manually ."},{"location":"build_faq/#cmake-cmake","text":"\u5f53 \u5c1d\u8bd5 \u4f7f\u7528 make \u547d\u4ee4 \u6784\u5efa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6\u4f1a \u51fa\u73b0 \u6b64 \u95ee\u9898 \u3002 \u5373\u4f7f CMake \u5df2 \u5b89\u88c5 \u3001 \u66f4\u65b0 \u5e76 \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 Visual Studio \u7248\u672c \u4e4b\u95f4 \u53ef\u80fd \u5b58\u5728 \u51b2\u7a81 \u3002 \u53ea \u7559\u4e0b VS2019 \uff0c \u5176\u4f59 \u7684 \u5f7b\u5e95 \u5220\u9664 \u3002","title":"\u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002"},{"location":"build_faq/#error-c2440-c2672-compiler-version","text":"\u7531\u4e8e \u4e0e \u5176\u4ed6 Visual Studio \u6216 Microsoft \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u51b2\u7a81 \uff0c \u8be5 \u6784\u5efa \u672a \u4f7f\u7528 2019 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u3002 \u5378\u8f7d \u8fd9\u4e9b \u5e76 \u518d\u6b21 \u91cd\u5efa \u3002 Visual Studio \u4e0d \u64c5\u957f \u6446\u8131 \u81ea\u8eab \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u7ba1\u7406 \u7ba1\u7406\u5458 \u6743\u9650 \u3002 \u8981 \u4fdd\u7559 \u5176\u4ed6 Visual Studio \u7248\u672c \uff0c \u8bf7 \u901a\u8fc7 \u6dfb\u52a0 \u4ee5\u4e0b \u884c \u8fdb\u884c \u7f16\u8f91 % appdata% \\ Unreal Engine \\ UnrealBuildTool \\ BuildConfiguration . xml \uff1a < VCProjectFileGenerator > < Version > VisualStudio2019 < / Version > < / VCProjectFileGenerator > < WindowsPlatform > < Compiler > VisualStudio2019 < / Compiler > < / WindowsPlatform >","title":"Error C2440 , C2672 : compiler version ."},{"location":"build_faq/#make-launch-windows","text":"\u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76 \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002 Windows \u6784\u5efa \u671f\u95f4 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u5e76 \u786e\u4fdd \u6240\u6709 \u5185\u5bb9 \u5747 \u5df2 \u6b63\u786e \u66f4\u65b0 \u3002 \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u8fd0\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u662f\u5426 \u4f7f\u7528 \u4e86 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 Visual Studio 2019 . \u5982\u679c \u5b89\u88c5 \u6216 \u6700\u8fd1 \u5378\u8f7d \u4e86 \u5176\u4ed6 \u7248\u672c \u7684 Visual Studio \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u51b2\u7a81 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002","title":"\u201c make launch \u201d \u5728 Windows \u4e0a \u4e0d\u8d77\u4f5c\u7528 \u3002"},{"location":"build_faq/#make-libintl3dll-libiconv2dll","text":"\u4e0b\u8f7d \u4f9d\u8d56 \u9879 \u5e76 \u5c06 bin \u5185\u5bb9 \u89e3\u538b \u5230 make \u5b89\u88c5 \u8def\u5f84 \u4e2d \u3002","title":"Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002"},{"location":"build_faq/#modules-are-missing-or-built-with-a-different-engine-version","text":"\u5355\u51fb on Accept \u4ee5 \u91cd\u5efa \u5b83\u4eec \u3002","title":"Modules are missing or built with a different engine version ."},{"location":"build_faq/#pythonapicarladist","text":"\u5728 Windows \u4e2d \uff0c make PythonAPI \u547d\u4ee4 \u53ef\u80fd \u4f1a \u8fd4\u56de \u4e00\u6761 \u6d88\u606f \uff0c \u8868\u660e Python API \u5b89\u88c5 \u6210\u529f \uff0c \u4f46 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5e76\u672a \u6210\u529f \u3002 \u5982\u679c \u770b\u5230 \u6b64 \u8f93\u51fa \u540e \u76ee\u5f55 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u8bf7 \u67e5\u770b \u4e0a\u9762 \u7684 \u547d\u4ee4 \u8f93\u51fa \u3002 \u5f88 \u53ef\u80fd \u53d1\u751f \u4e86 \u9519\u8bef \uff0c \u9700\u8981 \u5728 \u66f4\u6b63 \u9519\u8bef \u5e76 \u8fd0\u884c make clean \u540e \u91cd\u8bd5 \u6784\u5efa \u3002","title":"\u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u5728 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6\u5939 \u3002"},{"location":"build_faq/#osm2odr-visualstudio","text":"CMake Error : The current CMakeCache . txt directory D : / work / workspace / carla / Build / osm2odr - visualstudio / CMakeCache . txt is different than the directory d : / work / buffer / carla / Build / osm2odr - visualstudio where CMakeCache . txt was created . This may result in binaries being created in the wrong place . If you are not sure , reedit the CMakeCache . txt CMake Error : The source directory \" D : / work / workspace / carla / Build / osm2odr - visualstudio / x64 \" does not appear to contain CMakeLists . txt . \u5220\u9664 carla \\ Build \\ osm2odr - visualstudio \\ CMakeCache . txt","title":"osm2odr - visualstudio \u4e3a\u7a7a \uff0c \u6216\u8005 \u62f7\u8d1d \u8fc7\u53bb \u7684 \u76ee\u5f55 \u4e0d \u5bf9"},{"location":"build_faq/#_6","text":"carla / Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Vehicle / CustomTerrainPhysicsComponent . cpp ( 1161 ) : error C2440 : \u201c static _ cast \u201d : \u65e0\u6cd5 \u4ece \u201c float \u201d \u8f6c\u6362 \u4e3a \u201c EDefResolutionType \u201d \u6ce8\u91ca \u6389 / / ChosenRes = static _ cast < EDefResolutionType > ( Value ) ; / / static _ cast < EDefResolutionType > ( Value )","title":"\u7c7b\u578b\u8f6c\u6362 \u4e0d \u5bf9"},{"location":"build_faq/#osm2odrlib","text":"fatal error LNK1181 : carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ lib \\ osm2odr . lib \u4ece \u5176\u4ed6 \u5730\u65b9 \u62f7\u8d1d \u8fc7\u6765 \u3002","title":"\u94fe\u63a5 \u4e0d\u5230 osm2odr . lib"},{"location":"build_faq/#carla_3","text":"","title":"\u8fd0\u884c Carla"},{"location":"build_faq/#fps","text":"\u865a\u5e7b 4 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5728 \u5931\u7126 \u65f6\u4f1a \u8fdb\u5165 \u4f4e \u6027\u80fd \u6a21\u5f0f \u3002 \u8f6c \u5230 \u201c \u7f16\u8f91 - > \u7f16\u8f91 \u7f16\u8f91\u5668 \u504f\u597d \u8bbe\u7f6e - > \u6027\u80fd \u201d \uff08 Edit / Editor Preferences / Performance \uff09 \uff0c \u7136\u540e \u7981\u7528 \u201c \u5904\u4e8e \u80cc\u666f \u4e2d \u65f6 \u5360\u7528 \u8f83 \u5c11 CPU \u201d \u9009\u9879 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002"},{"location":"build_faq/#_7","text":"\u6709\u4e9b \u811a\u672c \u6709 \u8981\u6c42 \u3002 \u8fd9\u4e9b \u5217 \u5728 \u540d\u4e3a Requirements . txt \u7684 \u6587\u4ef6 \u4e2d \uff0c \u4e0e \u811a\u672c \u672c\u8eab \u4f4d\u4e8e \u540c\u4e00 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u8fd9\u4e9b \u4ee5\u4fbf \u8fd0\u884c \u811a\u672c \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 pip \u547d\u4ee4 \u8fdb\u884c \u5b89\u88c5 \u3002 \u6709\u65f6 \u5728 Windows \u4e0a \uff0c \u811a\u672c \u65e0\u6cd5 \u4ec5 \u4f7f\u7528 > script _ name . py \u8fd0\u884c \u3002 \u5c1d\u8bd5 \u6dfb\u52a0 . Try adding > python3 script _ name . py \uff0c \u5e76 \u786e\u4fdd \u4f4d\u4e8e \u6b63\u786e \u7684 \u76ee\u5f55 \u4e2d \u3002","title":"\u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002"},{"location":"build_faq/#_8","text":"\u5355\u51fb \u201c \u8fd0\u884c \u201d \uff08 Play \uff09 \u5e76 \u7b49\u5f85 \u573a\u666f \u52a0\u8f7d \u3002 \u6b64\u65f6 \uff0c Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u50cf \u72ec\u7acb \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e00\u6837 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u8fde\u63a5 \u5230 \u4eff\u771f\u5668 \u3002"},{"location":"build_faq/#carla_4","text":"NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u53ef\u80fd \u5df2 \u8fc7\u65f6 \u3002 \u786e\u4fdd \u60c5\u51b5 \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u5982\u679c \u95ee\u9898 \u4ecd \u672a \u89e3\u51b3 \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u53d1\u5e03 \u5177\u4f53 \u95ee\u9898 \u3002","title":"\u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba\u662f \u4e8c\u8fdb\u5236 \u8fd8\u662f \u6e90\u4ee3\u7801 \u6784\u5efa \u3002"},{"location":"build_faq/#importerror-dll-load-failed-the-specified-module-could-not-be-found","text":"\u6240 \u9700 \u7684 \u5e93 \u4e4b\u4e00 \u5c1a\u672a \u6b63\u786e \u5b89\u88c5 \u3002 \u4f5c\u4e3a \u89e3\u51b3 \u65b9\u6cd5 \uff0c \u8bf7 \u8f6c\u81f3 carla \\ Build \\ zlib - source \\ build \u5e76 \u5728 \u811a\u672c \u7684 \u8def\u5f84 \u4e2d \u590d\u5236 \u540d\u4e3a zlib . dll \u7684 \u6587\u4ef6 \u3002","title":"ImportError : DLL load failed : The specified module could not be found ."},{"location":"build_faq/#importerror-dll-load-failed-while-importing-libcarla-1-is-not-a-valid-win32-app","text":"32 \u4f4d Python \u7248\u672c \u5728 \u5c1d\u8bd5 \u8fd0\u884c \u811a\u672c \u65f6\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5378\u8f7d \u5b83 \u5e76 \u4ec5 \u4fdd\u7559 \u6240 \u9700 \u7684 Python3 x64 \u3002","title":"ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app ."},{"location":"build_faq/#importerror-no-module-named-carla","text":"\u51fa\u73b0 \u6b64 \u9519\u8bef \u7684 \u539f\u56e0 \u662f Python \u627e \u4e0d\u5230 Carla \u5e93 \u3002 Carla \u5e93 \u5305\u542b \u5728 \u4f4d\u4e8e PythonAPI / carla / dist \u76ee\u5f55 \u4e2d \u7684 \u4e00\u4e2a . egg \u6587\u4ef6 \u4e2d \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5c06 \u5728 \u6b64 \u76ee\u5f55 \u4e2d \u67e5\u627e \u5b83 \u3002 \u8be5 . egg \u6587\u4ef6 \u9075\u5faa carla - - py - . egg \u547d\u540d \u6cd5 \u3002 \u91cd\u8981 Carla \u4ec5 \u5728 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e2d \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u6587\u4ef6 . egg \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u5728 \u5feb\u901f \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u4e2d \u9605\u8bfb \u6709\u5173 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u65b0 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u6253\u5305 \u7248\u672c \u7684 Carla \uff0c \u5219 \u4f1a \u6709 \u591a\u4e2a . egg \u6587\u4ef6 \uff0c \u5bf9\u5e94 \u4e0d\u540c \u7248\u672c \u7684 Python \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u7684 \u7248\u672c \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u6b63\u5728 \u4f7f\u7528 \u8fd9\u4e9b Python \u7248\u672c \u4e4b\u4e00 \u8fd0\u884c \u811a\u672c \u3002 \u8981 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u952e\u5165 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a python3 -- version # \u6216\u8005 python -- version \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Python \uff0c \u5219 \u8be5 . egg \u6587\u4ef6 \u5c06 \u6839\u636e \u7cfb\u7edf \u4e0a \u7684 \u9ed8\u8ba4 Python \u7248\u672c \u6784\u5efa \u3002 \u5728 Linux \u4e2d \uff0c \u8fd9 \u5c06 \u662f \u8fd4\u56de \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a / usr / bin / env python3 -- version # \u6216\u8005 \u5982\u679c \u4f60 \u6307\u5b9a ARGS = \" -- python - version = 2 \" / usr / bin / env python2 -- version \u5728 Windows \u4e2d \uff0c \u5b83 \u5c06 \u6210\u4e3a \u4ee5\u4e0b \u529f\u80fd \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a py - 3 -- version \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u4e0e \u60a8 \u7684 . egg \u6587\u4ef6 \u5bf9\u5e94 \u7684 Python \u7248\u672c \u8fd0\u884c \u811a\u672c . egg \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 \u5c06 Python \u8def\u5f84 \u8bbe\u7f6e \u4e3a \u6307\u5411 Carla \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : < path / to / carla / > / PythonAPI / carla / dist / < your _ egg _ file > # \u68c0\u67e5 \u73b0\u5728 Carla \u662f\u5426 \u80fd \u53d1\u73b0 python3 - c ' import carla ; print ( \" Success \" ) ' \u8bf7 \u6ce8\u610f \uff0c \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u6216 Conda \u7b49 \u5176\u4ed6 Python \u73af\u5883 \u53ef\u80fd \u4f1a \u4f7f Carla \u7684 \u5b89\u88c5 \u53d8\u5f97 \u590d\u6742 \u53d8\u5f97\u590d\u6742 \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u76f8\u5e94 \u5730 \u8bbe\u7f6e Python \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u548c \u8def\u5f84 \u3002","title":"ImportError : No module named ' carla '"},{"location":"build_faq/#runtimeerror-rpcrpc_error-during-call-in-function-apply_batch","text":"PythonAPI \u7684 \u7248\u672c \u8981 \u548c Carla \u670d\u52a1 \u7684 \u7248\u672c \u4e00\u81f4 \uff0c \u6bd4\u5982 dev \u5206\u652f \u7684 \u4ee3\u7801 \u7f16\u8bd1 \u5f97\u5230 \u7684 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u7684 \u573a\u666f \u4e5f \u8981 \u7528 dev \u5206\u652f \u4ee3\u7801 \u7f16\u8bd1 \u7684 PythonAPI \u8fdb\u884c \u8fde\u63a5 \u3002","title":"RuntimeError : rpc : : rpc _ error during call in function apply _ batch"},{"location":"build_faq/#_9","text":"","title":"\u5176\u4ed6"},{"location":"build_faq/#fatal-error-versionh-has-been-modified-since-the-precompiled-header","text":"\u7531\u4e8e Linux \u66f4\u65b0 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u65f6\u5e38 \u53d1\u751f \u3002 Makefile \u4e2d\u6709 \u4e00\u4e2a \u9488\u5bf9 \u6b64 \u95ee\u9898 \u7684 \u7279\u6b8a \u76ee\u6807 \u3002 \u867d\u7136 \u82b1 \u4e86 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff0c \u4f46 \u89e3\u51b3 \u4e86 \u95ee\u9898 \uff1a make hard - clean make CarlaUE4Editor","title":"Fatal error : ' version . h ' has been modified since the precompiled header ."},{"location":"build_faq/#carla_5","text":"\u5728 Linux \u4e2d \uff0c \u5728 \u9879\u76ee \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c make package \u3002 \u8be5\u5305 \u5c06 \u5305\u62ec \u9879\u76ee \u548c Python API \u6a21\u5757 \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7f16\u8bd1 Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6253\u5f00 CarlaUE4 \u9879\u76ee \uff0c \u8f6c \u5230 \u83dc\u5355 File / Package Project \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u5e73\u53f0 \u3002 \u53ef\u80fd \u8fd8\u8981 \u7b49 \u4e00\u4e0b \u3002","title":"\u521b\u5efa Carla \u7684 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002"},{"location":"build_faq/#linux-windows-carla","text":"\u867d\u7136 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e \u865a\u5e7b \u5f15\u64ce \uff0c \u4f46 \u5728 Carla \u4e2d \u4e0d\u53ef \u7528 \u3002 \u6211\u4eec \u6709 \u8bb8\u591a \u4e0d \u652f\u6301 \u4ea4\u53c9 \u7f16\u8bd1 \u7684 \u4f9d\u8d56 \u9879 \u3002","title":"\u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f"},{"location":"build_faq/#carla_6","text":"\u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla","title":"\u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237\u7aef \u5e93 \uff1f"},{"location":"build_linux/","text":"Linux \u7cfb\u7edf \u4e0a \u7684 \u6784\u5efa \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Linux \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 Ubuntu 18.04 . Carla \u63d0\u4f9b \u5bf9 Ubuntu 16.04 \u4e4b\u524d \u7248\u672c \u7684 \u652f\u6301 \u3002 \u7136\u800c \uff0c \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u9002\u5f53 \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4e0b\u9762 \u5355\u72ec \u5217\u51fa \u4e86 Ubuntu 18.04 \u53ca \u4e4b\u524d \u7248\u672c \u7684 \u4f9d\u8d56 \u9879 \u3002 \u786e\u4fdd \u5b89\u88c5 \u4e0e \u60a8 \u7684 \u7cfb\u7edf \u76f8\u5bf9 \u5e94 \u7684 \u8f6f\u4ef6 \u3002 130 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u5360\u7528 \u5927\u7ea6 31 GB \uff0c \u865a\u5e7b \u5f15\u64ce \u5c06 \u5360\u7528 \u5927\u7ea6 91 GB \uff0c \u56e0\u6b64 \u9700\u8981 \u5927\u7ea6 130 GB \u7684 \u53ef\u7528 \u7a7a\u95f4 \u6765 \u5bb9\u7eb3 \u8fd9 \u4e24\u4e2a \u7a7a\u95f4 \u4ee5\u53ca \u989d\u5916 \u7684 \u5c0f\u578b \u8f6f\u4ef6 \u5b89\u88c5 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u7684 \u76ee\u6807 \u662f \u8fdb\u884c \u771f\u5b9e \u7684 \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u8b66\u544a \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002 \u8f6f\u4ef6 \u8981\u6c42 Carla \u9700\u8981 \u8fd0\u884c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f6f\u4ef6 \u3002 \u6709\u4e9b \u662f \u5728 Carla \u6784\u5efa \u8fc7\u7a0b \u672c\u8eab \u671f\u95f4 \u6784\u5efa \u7684 \uff0c \u4f8b\u5982 Boost . Python \u3002 \u5176\u4ed6 \u662f \u5e94\u8be5 \u5728 \u5f00\u59cb \u6784\u5efa \u4e4b\u524d \u5b89\u88c5 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff08 cmake \u3001 clang \u3001 \u4e0d\u540c \u7248\u672c \u7684 Python \u7b49 \uff09 \u3002 \u8981 \u5b89\u88c5 \u8fd9\u4e9b \u8981\u6c42 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a 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 / xenial / llvm - toolchain - xenial - 8 main \" && sudo apt - get update \u8b66\u544a \u4ee5\u4e0b \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Ubuntu \u7248\u672c \u3002 \u8bf7 \u52a1\u5fc5 \u505a\u51fa \u76f8\u5e94 \u7684 \u9009\u62e9 \u3002 Ubuntu 18.04 . sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u4ee5\u524d \u7684 Ubuntu \u7248\u672c \u3002 sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng16 - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u6240\u6709 Ubuntu \u7cfb\u7edf \u3002 \u4e3a\u4e86 \u907f\u514d \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u4e4b\u95f4 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \uff0c \u8bf7 \u4f7f\u7528 \u76f8\u540c \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u548c C++ \u8fd0\u884c \u65f6\u5e93 \u6765 \u7f16\u8bd1 \u6240\u6709 \u5185\u5bb9 \u3002 Carla \u56e2\u961f \u4f7f\u7528 clang - 8 \u548c LLVM \u7684 lib c++ \u3002 \u66f4\u6539 \u9ed8\u8ba4 \u7684 clang \u7248\u672c \u4ee5 \u7f16\u8bd1 \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u3002 sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 8 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 8 / bin / clang 180 \u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u6237 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 Carla Python API \u3002 \u9700\u8981 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u5bf9\u4e8e Python 3 pip3 - V # \u5bf9\u4e8e Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # \u5bf9\u4e8e Python 3 pip3 install -- upgrade pip # \u5bf9\u4e8e Python 2 pip install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip install -- user setuptools && pip3 install -- user - Iv setuptools = = 47.3 . 1 && pip install -- user distro && pip3 install -- user distro && pip install -- user wheel && pip3 install -- user wheel auditwheel \u865a\u5e7b \u5f15\u64ce \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u6709 \u7684 \u8865\u4e01 \u3002 1 . \u5c06 Carla \u7684 \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u7684 \u5185\u5bb9 \u514b\u9686 \u5230 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff1a git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 2 . \u5bfc\u822a \u5230 \u514b\u9686 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \uff1a cd ~ / UnrealEngine _ 4.26 3 . \u8fdb\u884c \u6784\u5efa \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e24 \u4e24\u4e2a \u4e00\u4e24\u4e2a \u5c0f\u65f6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u7cfb\u7edf \u3002 . / Setup . sh && . / GenerateProjectFiles . sh && make \u5982\u679c \u51fa\u73b0 bash : . / Setup . sh : Permission denied . / Setup . sh : line 40 : Engine / Build / BatchFiles / Linux / GitDependencies . sh : Permission denied Engine / Build / BatchFiles / Linux / GitDependencies . sh : line 25 : mono : command not found Setting up Mono Corlib not in sync with this runtime : expected corlib version 149 , found 1051600014 . chmod + x Setup . sh chmod + x Engine / Build / BatchFiles / Linux / GitDependencies . sh sudo apt - get install mono - complete git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 4 . \u6253\u5f00 \u7f16\u8f91 \u7f16\u8f91\u5668 \u68c0\u67e5 \u865a\u5e7b \u5f15\u64ce \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 cd ~ / UnrealEngine _ 4.26 / Engine / Binaries / Linux && . / UE4Editor \u7535\u8111 \u914d\u7f6e \u7535\u8111\u914d\u7f6e \u8fbe \u4e0d\u5230 Vulkan \u7684 \u6807\u51c6 \u4f1a \u51fa\u73b0 \uff08 OpenGL \u7684 API \u4e5f \u5e9f\u5f03 \u4e86 \uff09 \uff1a Cannot find a compatible Yulkan driver ( ICD ) \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u7b14\u8bb0 \u4f7f\u7528 sudo apt - get install aria2 \u4e0b\u8f7d aria2 \u5c06 \u52a0\u5feb \u4ee5\u4e0b \u547d\u4ee4 \u7684 \u901f\u5ea6 \u3002 \u514b\u9686 Carla \u4ed3\u5e93 Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla . git \u7b14\u8bb0 The master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002 \u83b7\u53d6 \u8d44\u4ea7 \u60a8 \u9700\u8981 \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u6e90 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \u3002 \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u811a\u672c \u6765 \u81ea\u52a8 \u6267\u884c \u6b64 \u8fc7\u7a0b \u3002 \u8981 \u4f7f\u7528 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / Update . sh \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u63d0\u53d6 \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u91cd\u8981 \u8981 \u4e0b\u8f7d \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u8d44\u4ea7 \uff0c \u8bf7 \u8bbf\u95ee \u66f4\u65b0 Carla \u5e76 \u9605\u8bfb \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c \u7684 Carla \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u6e90 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4e3a\u4e86 \u8ba9 Carla \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u6b63\u786e \u5b89\u88c5 \uff0c \u6211\u4eec \u9700\u8981 \u8bbe\u7f6e Carla \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u4ec5 \u4e3a\u6b64 \u4f1a\u8bdd \u8bbe\u7f6e \u53d8\u91cf \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 \u8981 \u8bbe\u7f6e \u53d8\u91cf \u4ee5\u4f7f \u5176 \u5728 \u4f1a \u8bdd \u4e2d \u4fdd\u6301 \u4e0d\u53d8 \uff1a 1 . \u6253\u5f00 ~ / . bashrc \u6216 . / profile \u3002 gedit ~ / . bashrc # \u6216 gedit ~ / . profile 2 . \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 \u6587\u4ef6 \u5e95\u90e8 \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 3 . \u4fdd\u5b58 \u6587\u4ef6 \u5e76 \u91cd\u7f6e \u7ec8\u7aef \u3002 \u6784\u5efa Carla \u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8b66\u544a \u786e\u4fdd \u8fd0\u884c make PythonAPI \u4ee5 \u51c6\u5907 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u8fd0\u884c make launch \u51c6\u5907 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6216\u8005 make LibCarla \u5c06 \u51c6\u5907 Carla \u5e93\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a \uff1a Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI \u6216\u8005 \uff0c \u8981 \u4e3a \u7279\u5b9a \u7248\u672c \u7684 Python \u7f16\u8bd1 PythonAPI \uff0c \u8bf7 \u5728 \u6839 Carla \u76ee\u5f55 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 # Delete versions as required make PythonAPI ARGS = \" -- python - version = 2.7 , 3.6 , 3.7 , 3.8 \" Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 Carla . whl \uff0c . whl \u5c06 \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 \uff1a # Python 3 pip3 install < path / to / wheel > . whl # Python 2 pip install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 . whl \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 3 . \u5f00\u59cb \u4eff\u771f \uff1a \u6309 \u201c \u8fd0\u884c \u201d \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 WASD \u952e \u79fb\u52a8 \u76f8\u673a \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 PythonAPI \\ examples \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI / examples python3 - m pip install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI / examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 Use less CPU when in background \u3002 \u5176\u4ed6 make \u547d\u4ee4 \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002 \u5176\u4ed6 v2ray \u7684 \u7248\u672c \u4e0d\u80fd \u592a\u9ad8 \uff0c \u6bd4\u5982 \u53ef\u4ee5 \u4f7f\u7528 v4.45 . 2 \uff0c \u56fe\u5f62 \u754c\u9762 \u56fe\u5f62\u754c\u9762 \u4f7f\u7528 Qv2ray 2.7 . 0 \u3002 \u6709\u5173 \u672c \u6307\u5357 \u7684 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 Carla \u8bba\u575b \u4e2d \u7684 \u5e16\u5b50 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5b66\u4e60 \u5982\u4f55 \u66f4\u65b0 Carla \u6784\u5efa \u6216 \u5728 \u4eff\u771f \u4e2d \u8fc8\u51fa \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u5e76 \u5b66\u4e60 \u4e00\u4e9b \u6838\u5fc3 \u6982\u5ff5 \u3002 \u66f4\u65b0 Carla \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"Linux \u4e0a \u7f16\u8bd1"},{"location":"build_linux/#linux","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Linux \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4","title":"Linux \u7cfb\u7edf \u4e0a \u7684 \u6784\u5efa"},{"location":"build_linux/#_1","text":"","title":"\u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3\u6761\u4ef6"},{"location":"build_linux/#_2","text":"Ubuntu 18.04 . Carla \u63d0\u4f9b \u5bf9 Ubuntu 16.04 \u4e4b\u524d \u7248\u672c \u7684 \u652f\u6301 \u3002 \u7136\u800c \uff0c \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u9002\u5f53 \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4e0b\u9762 \u5355\u72ec \u5217\u51fa \u4e86 Ubuntu 18.04 \u53ca \u4e4b\u524d \u7248\u672c \u7684 \u4f9d\u8d56 \u9879 \u3002 \u786e\u4fdd \u5b89\u88c5 \u4e0e \u60a8 \u7684 \u7cfb\u7edf \u76f8\u5bf9 \u5e94 \u7684 \u8f6f\u4ef6 \u3002 130 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u5360\u7528 \u5927\u7ea6 31 GB \uff0c \u865a\u5e7b \u5f15\u64ce \u5c06 \u5360\u7528 \u5927\u7ea6 91 GB \uff0c \u56e0\u6b64 \u9700\u8981 \u5927\u7ea6 130 GB \u7684 \u53ef\u7528 \u7a7a\u95f4 \u6765 \u5bb9\u7eb3 \u8fd9 \u4e24\u4e2a \u7a7a\u95f4 \u4ee5\u53ca \u989d\u5916 \u7684 \u5c0f\u578b \u8f6f\u4ef6 \u5b89\u88c5 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u7684 \u76ee\u6807 \u662f \u8fdb\u884c \u771f\u5b9e \u7684 \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u8b66\u544a \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_linux/#_3","text":"Carla \u9700\u8981 \u8fd0\u884c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f6f\u4ef6 \u3002 \u6709\u4e9b \u662f \u5728 Carla \u6784\u5efa \u8fc7\u7a0b \u672c\u8eab \u671f\u95f4 \u6784\u5efa \u7684 \uff0c \u4f8b\u5982 Boost . Python \u3002 \u5176\u4ed6 \u662f \u5e94\u8be5 \u5728 \u5f00\u59cb \u6784\u5efa \u4e4b\u524d \u5b89\u88c5 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff08 cmake \u3001 clang \u3001 \u4e0d\u540c \u7248\u672c \u7684 Python \u7b49 \uff09 \u3002 \u8981 \u5b89\u88c5 \u8fd9\u4e9b \u8981\u6c42 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a 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 / xenial / llvm - toolchain - xenial - 8 main \" && sudo apt - get update \u8b66\u544a \u4ee5\u4e0b \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Ubuntu \u7248\u672c \u3002 \u8bf7 \u52a1\u5fc5 \u505a\u51fa \u76f8\u5e94 \u7684 \u9009\u62e9 \u3002 Ubuntu 18.04 . sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u4ee5\u524d \u7684 Ubuntu \u7248\u672c \u3002 sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng16 - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u6240\u6709 Ubuntu \u7cfb\u7edf \u3002 \u4e3a\u4e86 \u907f\u514d \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u4e4b\u95f4 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \uff0c \u8bf7 \u4f7f\u7528 \u76f8\u540c \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u548c C++ \u8fd0\u884c \u65f6\u5e93 \u6765 \u7f16\u8bd1 \u6240\u6709 \u5185\u5bb9 \u3002 Carla \u56e2\u961f \u4f7f\u7528 clang - 8 \u548c LLVM \u7684 lib c++ \u3002 \u66f4\u6539 \u9ed8\u8ba4 \u7684 clang \u7248\u672c \u4ee5 \u7f16\u8bd1 \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u3002 sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 8 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 8 / bin / clang 180 \u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u6237 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 Carla Python API \u3002 \u9700\u8981 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u5bf9\u4e8e Python 3 pip3 - V # \u5bf9\u4e8e Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # \u5bf9\u4e8e Python 3 pip3 install -- upgrade pip # \u5bf9\u4e8e Python 2 pip install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip install -- user setuptools && pip3 install -- user - Iv setuptools = = 47.3 . 1 && pip install -- user distro && pip3 install -- user distro && pip install -- user wheel && pip3 install -- user wheel auditwheel","title":"\u8f6f\u4ef6 \u8981\u6c42"},{"location":"build_linux/#_4","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u6709 \u7684 \u8865\u4e01 \u3002 1 . \u5c06 Carla \u7684 \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u7684 \u5185\u5bb9 \u514b\u9686 \u5230 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff1a git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 2 . \u5bfc\u822a \u5230 \u514b\u9686 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \uff1a cd ~ / UnrealEngine _ 4.26 3 . \u8fdb\u884c \u6784\u5efa \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e24 \u4e24\u4e2a \u4e00\u4e24\u4e2a \u5c0f\u65f6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u7cfb\u7edf \u3002 . / Setup . sh && . / GenerateProjectFiles . sh && make \u5982\u679c \u51fa\u73b0 bash : . / Setup . sh : Permission denied . / Setup . sh : line 40 : Engine / Build / BatchFiles / Linux / GitDependencies . sh : Permission denied Engine / Build / BatchFiles / Linux / GitDependencies . sh : line 25 : mono : command not found Setting up Mono Corlib not in sync with this runtime : expected corlib version 149 , found 1051600014 . chmod + x Setup . sh chmod + x Engine / Build / BatchFiles / Linux / GitDependencies . sh sudo apt - get install mono - complete git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 4 . \u6253\u5f00 \u7f16\u8f91 \u7f16\u8f91\u5668 \u68c0\u67e5 \u865a\u5e7b \u5f15\u64ce \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 cd ~ / UnrealEngine _ 4.26 / Engine / Binaries / Linux && . / UE4Editor \u7535\u8111 \u914d\u7f6e \u7535\u8111\u914d\u7f6e \u8fbe \u4e0d\u5230 Vulkan \u7684 \u6807\u51c6 \u4f1a \u51fa\u73b0 \uff08 OpenGL \u7684 API \u4e5f \u5e9f\u5f03 \u4e86 \uff09 \uff1a Cannot find a compatible Yulkan driver ( ICD )","title":"\u865a\u5e7b \u5f15\u64ce"},{"location":"build_linux/#carla","text":"\u7b14\u8bb0 \u4f7f\u7528 sudo apt - get install aria2 \u4e0b\u8f7d aria2 \u5c06 \u52a0\u5feb \u4ee5\u4e0b \u547d\u4ee4 \u7684 \u901f\u5ea6 \u3002","title":"\u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla"},{"location":"build_linux/#carla_1","text":"Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla . git \u7b14\u8bb0 The master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002","title":"\u514b\u9686 Carla \u4ed3\u5e93"},{"location":"build_linux/#_5","text":"\u60a8 \u9700\u8981 \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u6e90 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \u3002 \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u811a\u672c \u6765 \u81ea\u52a8 \u6267\u884c \u6b64 \u8fc7\u7a0b \u3002 \u8981 \u4f7f\u7528 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / Update . sh \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u63d0\u53d6 \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u91cd\u8981 \u8981 \u4e0b\u8f7d \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u8d44\u4ea7 \uff0c \u8bf7 \u8bbf\u95ee \u66f4\u65b0 Carla \u5e76 \u9605\u8bfb \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c \u7684 Carla \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u6e90 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla","title":"\u83b7\u53d6 \u8d44\u4ea7"},{"location":"build_linux/#_6","text":"\u4e3a\u4e86 \u8ba9 Carla \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u6b63\u786e \u5b89\u88c5 \uff0c \u6211\u4eec \u9700\u8981 \u8bbe\u7f6e Carla \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u4ec5 \u4e3a\u6b64 \u4f1a\u8bdd \u8bbe\u7f6e \u53d8\u91cf \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 \u8981 \u8bbe\u7f6e \u53d8\u91cf \u4ee5\u4f7f \u5176 \u5728 \u4f1a \u8bdd \u4e2d \u4fdd\u6301 \u4e0d\u53d8 \uff1a 1 . \u6253\u5f00 ~ / . bashrc \u6216 . / profile \u3002 gedit ~ / . bashrc # \u6216 gedit ~ / . profile 2 . \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 \u6587\u4ef6 \u5e95\u90e8 \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 3 . \u4fdd\u5b58 \u6587\u4ef6 \u5e76 \u91cd\u7f6e \u7ec8\u7aef \u3002","title":"\u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883\u53d8\u91cf"},{"location":"build_linux/#carla_2","text":"\u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8b66\u544a \u786e\u4fdd \u8fd0\u884c make PythonAPI \u4ee5 \u51c6\u5907 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u8fd0\u884c make launch \u51c6\u5907 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6216\u8005 make LibCarla \u5c06 \u51c6\u5907 Carla \u5e93\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a \uff1a Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI \u6216\u8005 \uff0c \u8981 \u4e3a \u7279\u5b9a \u7248\u672c \u7684 Python \u7f16\u8bd1 PythonAPI \uff0c \u8bf7 \u5728 \u6839 Carla \u76ee\u5f55 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 # Delete versions as required make PythonAPI ARGS = \" -- python - version = 2.7 , 3.6 , 3.7 , 3.8 \" Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 Carla . whl \uff0c . whl \u5c06 \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 \uff1a # Python 3 pip3 install < path / to / wheel > . whl # Python 2 pip install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 . whl \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 3 . \u5f00\u59cb \u4eff\u771f \uff1a \u6309 \u201c \u8fd0\u884c \u201d \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 WASD \u952e \u79fb\u52a8 \u76f8\u673a \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 PythonAPI \\ examples \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI / examples python3 - m pip install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI / examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 Use less CPU when in background \u3002","title":"\u6784\u5efa Carla"},{"location":"build_linux/#make","text":"\u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002","title":"\u5176\u4ed6 make \u547d\u4ee4"},{"location":"build_linux/#_7","text":"v2ray \u7684 \u7248\u672c \u4e0d\u80fd \u592a\u9ad8 \uff0c \u6bd4\u5982 \u53ef\u4ee5 \u4f7f\u7528 v4.45 . 2 \uff0c \u56fe\u5f62 \u754c\u9762 \u56fe\u5f62\u754c\u9762 \u4f7f\u7528 Qv2ray 2.7 . 0 \u3002 \u6709\u5173 \u672c \u6307\u5357 \u7684 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 Carla \u8bba\u575b \u4e2d \u7684 \u5e16\u5b50 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5b66\u4e60 \u5982\u4f55 \u66f4\u65b0 Carla \u6784\u5efa \u6216 \u5728 \u4eff\u771f \u4e2d \u8fc8\u51fa \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u5e76 \u5b66\u4e60 \u4e00\u4e9b \u6838\u5fc3 \u6982\u5ff5 \u3002 \u66f4\u65b0 Carla \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"\u5176\u4ed6"},{"location":"build_system/","text":"\u6784\u5efa \u7cfb\u7edf \u8bbe\u7f6e LibCarla CarlaUE4 \u548c Carla \u63d2\u4ef6 PythonAPI 0.9 . 12 + \u7248\u672c 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u672c \u6587\u6863 \u662f \u4e00\u4e2a \u6b63\u5728 \u8fdb\u884c \u7684 \u5de5\u4f5c \uff0c \u8fd9\u91cc \u4ec5 \u8003\u8651 Linux \u6784\u5efa \u7cfb\u7edf \u3002 \u8bbe\u7f6e \u4e2d \u6700\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u90e8\u5206 \u662f \u7f16\u8bd1 \u6240\u6709 \u4f9d\u8d56 \u9879 \u548c \u6a21\u5757 \uff0c \u4f7f \u5176 \u4e0e a ) \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u865a\u5e7b \u5f15\u64ce \u548c b ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 Python \u517c\u5bb9 \u3002 \u76ee\u6807 \u662f \u80fd\u591f \u4ece \u5355\u72ec \u7684 Python \u8fdb\u7a0b \u8c03\u7528 \u865a\u5e7b \u5f15\u64ce \u7684 \u51fd\u6570 \u3002 \u5728 Linux \u4e2d \uff0c \u6211\u4eec \u4f7f\u7528 clang - 8.0 \u548c C++ 14 \u6807\u51c6 \u7f16\u8bd1 Carla \u548c \u6240\u6709 \u4f9d\u8d56 \u9879 \u3002 \u7136\u800c \uff0c \u6211\u4eec \u6839\u636e \u4ee3\u7801 \u7684 \u4f7f\u7528 \u4f4d\u7f6e \u6765 \u94fe\u63a5 \u4e0d\u540c \u7684 \u8fd0\u884c \u65f6 C++ \u5e93 \uff0c \u56e0\u4e3a \u6240\u6709 \u5c06 \u4e0e \u865a\u5e7b \u5f15\u64ce \u94fe\u63a5 \u7684 \u4ee3\u7801 \u90fd \u9700\u8981 \u4f7f\u7528 lib c++ \u8fdb\u884c \u7f16\u8bd1 \u3002 \u8bbe\u7f6e \u547d\u4ee4 make setup \u83b7\u53d6 \u5e76 \u7f16\u8bd1 \u4f9d\u8d56 \u9879 llvm - 8 ( lib c++ and lib c++ abi ) rpclib - 2.2 . 1 ( twice , with libstd c++ and lib c++ ) boost - 1.72 . 0 ( headers and boost _ python for libstd c++ ) googletest - 1.8 . 1 ( with lib c++ ) LibCarla \u4f7f\u7528 CMake \u7f16\u8bd1 \uff08 \u6700\u4f4e \u7248\u672c \u9700\u8981 CMake 3.9 \uff09 \u3002 \u547d\u4ee4 make LibCarla \u4e24\u79cd \u914d\u7f6e \uff1a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5355\u5143 \u6d4b\u8bd5 \u5355\u5143\u6d4b\u8bd5 \u662f \u5426 \u8981\u6c42 rpclib , gtest , boost rpclib , boost \u6807\u51c6 \u8fd0\u884c \u65f6 LLVM ' s lib c++ \u9ed8\u8ba4 libstd c++ \u8f93\u51fa headers and test exes ibcarla _ client . a \u9700\u8981 Carla plugin PythonAPI CarlaUE4 \u548c Carla \u63d2\u4ef6 \u4e24\u8005 \u5747 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u6784\u5efa \u5de5\u5177 \u5728 \u540c\u4e00 \u6b65\u9aa4 \u8fdb\u884c \u7f16\u8bd1 \u3002 \u5b83\u4eec \u9700\u8981 UE4 _ ROOT \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u547d\u4ee4 make CarlaUE4Editor \u8981 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u8bf7 \u8fd0\u884c make launch \u7f16\u8bd1 0.9 . 15 \u65f6\u5019 \u51fa\u73b0 carla / Unreal / CarlaUE4 / Plugins / CarlaTools / Source / CarlaTools / Private / Online / CustomFileDownloader . cpp ( 11 ) : fatal rror C1083 : \u65e0\u6cd5 \u6253\u5f00 \u5305\u62ec \u6587\u4ef6 : \u201c OSM2ODR . h \u201d : No such file or directory \u89e3\u51b3 \uff1a \u5c06 0.9 . 14 build \u4e2d \u7684 carla \\ Build \\ osm2odr - visualstudio \u590d\u5236 \u8fc7\u6765 \u3002 PythonAPI 0.9 . 12 + \u7248\u672c \u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev , pip > = 20.3 , wheel , \u548c auditwheel \u3002 \u547d\u4ee4 \uff1a make PythonAPI \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 \uff0c \u6bcf\u4e2a \u6587\u4ef6 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5e76 \u5bf9\u5e94 \u4e8e \u7cfb\u7edf \u4e0a \u652f\u6301 \u7684 Python \u7248\u672c \u3002 \u4e00\u4e2a \u6587\u4ef6 \u662f . whl \u6587\u4ef6 \uff0c \u53e6 \u4e00\u4e2a \u6587\u4ef6 \u662f . egg \u6587\u4ef6 \u3002 \u8fd9 \u5141\u8bb8 \u9009\u62e9 \u4e24\u79cd \u4e0d\u540c \u7684 \u3001 \u4e92\u65a5 \u7684 \u65b9\u5f0f \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 A . . whl \u6587\u4ef6 . whl \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 \uff1a pip install < wheel _ file > . whl \u65e0\u9700 \u50cf \u4ee5\u524d \u7248\u672c \u6216 . egg \u6587\u4ef6 \u4e2d \u90a3\u6837 \u76f4\u63a5 \u5728 \u811a\u672c \u4e2d \u5bfc \u5165\u5e93 \u8def\u5f84 ( \u53c2\u9605 \u8bf7\u53c2\u9605 __ 0.9 . 12 _ \u4e4b\u524d \u7684 \u7248\u672c _ ) ; import carla \u5c31 \u8db3\u591f \u4e86 \u3002 B . . egg \u6587\u4ef6 \u53c2\u9605 \u8bf7\u53c2\u9605 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e86\u89e3 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev \u3002 \u547d\u4ee4 make PythonAPI \u5b83 \u521b\u9020 \u4e86 \u4e24\u4e2a \" egg \" \u5305 PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u7cfb\u7edf \u8def\u5f84 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u5305 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Python \u811a\u672c \u4e2d \u3002 # ! / usr / bin / env python import sys sys . path . append ( ' PythonAPI / dist / carla - X . X . X - py% d .% d - linux - x86 _ 64 . egg ' % ( sys . version _ info . major , sys . version _ info . minor ) ) import carla # ... \u6216\u8005 \uff0c \u53ef\u4ee5 \u4f7f\u7528 easy _ install \u5b89\u88c5 easy _ install2 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg easy _ install3 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg","title":"\u7f16\u8bd1\u7cfb\u7edf"},{"location":"build_system/#_1","text":"\u8bbe\u7f6e LibCarla CarlaUE4 \u548c Carla \u63d2\u4ef6 PythonAPI 0.9 . 12 + \u7248\u672c 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u672c \u6587\u6863 \u662f \u4e00\u4e2a \u6b63\u5728 \u8fdb\u884c \u7684 \u5de5\u4f5c \uff0c \u8fd9\u91cc \u4ec5 \u8003\u8651 Linux \u6784\u5efa \u7cfb\u7edf \u3002 \u8bbe\u7f6e \u4e2d \u6700\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u90e8\u5206 \u662f \u7f16\u8bd1 \u6240\u6709 \u4f9d\u8d56 \u9879 \u548c \u6a21\u5757 \uff0c \u4f7f \u5176 \u4e0e a ) \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u865a\u5e7b \u5f15\u64ce \u548c b ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 Python \u517c\u5bb9 \u3002 \u76ee\u6807 \u662f \u80fd\u591f \u4ece \u5355\u72ec \u7684 Python \u8fdb\u7a0b \u8c03\u7528 \u865a\u5e7b \u5f15\u64ce \u7684 \u51fd\u6570 \u3002 \u5728 Linux \u4e2d \uff0c \u6211\u4eec \u4f7f\u7528 clang - 8.0 \u548c C++ 14 \u6807\u51c6 \u7f16\u8bd1 Carla \u548c \u6240\u6709 \u4f9d\u8d56 \u9879 \u3002 \u7136\u800c \uff0c \u6211\u4eec \u6839\u636e \u4ee3\u7801 \u7684 \u4f7f\u7528 \u4f4d\u7f6e \u6765 \u94fe\u63a5 \u4e0d\u540c \u7684 \u8fd0\u884c \u65f6 C++ \u5e93 \uff0c \u56e0\u4e3a \u6240\u6709 \u5c06 \u4e0e \u865a\u5e7b \u5f15\u64ce \u94fe\u63a5 \u7684 \u4ee3\u7801 \u90fd \u9700\u8981 \u4f7f\u7528 lib c++ \u8fdb\u884c \u7f16\u8bd1 \u3002","title":"\u6784\u5efa \u7cfb\u7edf"},{"location":"build_system/#_2","text":"\u547d\u4ee4 make setup \u83b7\u53d6 \u5e76 \u7f16\u8bd1 \u4f9d\u8d56 \u9879 llvm - 8 ( lib c++ and lib c++ abi ) rpclib - 2.2 . 1 ( twice , with libstd c++ and lib c++ ) boost - 1.72 . 0 ( headers and boost _ python for libstd c++ ) googletest - 1.8 . 1 ( with lib c++ )","title":"\u8bbe\u7f6e"},{"location":"build_system/#libcarla","text":"\u4f7f\u7528 CMake \u7f16\u8bd1 \uff08 \u6700\u4f4e \u7248\u672c \u9700\u8981 CMake 3.9 \uff09 \u3002 \u547d\u4ee4 make LibCarla \u4e24\u79cd \u914d\u7f6e \uff1a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5355\u5143 \u6d4b\u8bd5 \u5355\u5143\u6d4b\u8bd5 \u662f \u5426 \u8981\u6c42 rpclib , gtest , boost rpclib , boost \u6807\u51c6 \u8fd0\u884c \u65f6 LLVM ' s lib c++ \u9ed8\u8ba4 libstd c++ \u8f93\u51fa headers and test exes ibcarla _ client . a \u9700\u8981 Carla plugin PythonAPI","title":"LibCarla"},{"location":"build_system/#carlaue4-carla","text":"\u4e24\u8005 \u5747 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u6784\u5efa \u5de5\u5177 \u5728 \u540c\u4e00 \u6b65\u9aa4 \u8fdb\u884c \u7f16\u8bd1 \u3002 \u5b83\u4eec \u9700\u8981 UE4 _ ROOT \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u547d\u4ee4 make CarlaUE4Editor \u8981 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u8bf7 \u8fd0\u884c make launch \u7f16\u8bd1 0.9 . 15 \u65f6\u5019 \u51fa\u73b0 carla / Unreal / CarlaUE4 / Plugins / CarlaTools / Source / CarlaTools / Private / Online / CustomFileDownloader . cpp ( 11 ) : fatal rror C1083 : \u65e0\u6cd5 \u6253\u5f00 \u5305\u62ec \u6587\u4ef6 : \u201c OSM2ODR . h \u201d : No such file or directory \u89e3\u51b3 \uff1a \u5c06 0.9 . 14 build \u4e2d \u7684 carla \\ Build \\ osm2odr - visualstudio \u590d\u5236 \u8fc7\u6765 \u3002","title":"CarlaUE4 \u548c Carla \u63d2\u4ef6"},{"location":"build_system/#pythonapi","text":"","title":"PythonAPI"},{"location":"build_system/#0912","text":"\u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev , pip > = 20.3 , wheel , \u548c auditwheel \u3002 \u547d\u4ee4 \uff1a make PythonAPI \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 \uff0c \u6bcf\u4e2a \u6587\u4ef6 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5e76 \u5bf9\u5e94 \u4e8e \u7cfb\u7edf \u4e0a \u652f\u6301 \u7684 Python \u7248\u672c \u3002 \u4e00\u4e2a \u6587\u4ef6 \u662f . whl \u6587\u4ef6 \uff0c \u53e6 \u4e00\u4e2a \u6587\u4ef6 \u662f . egg \u6587\u4ef6 \u3002 \u8fd9 \u5141\u8bb8 \u9009\u62e9 \u4e24\u79cd \u4e0d\u540c \u7684 \u3001 \u4e92\u65a5 \u7684 \u65b9\u5f0f \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 A . . whl \u6587\u4ef6 . whl \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 \uff1a pip install < wheel _ file > . whl \u65e0\u9700 \u50cf \u4ee5\u524d \u7248\u672c \u6216 . egg \u6587\u4ef6 \u4e2d \u90a3\u6837 \u76f4\u63a5 \u5728 \u811a\u672c \u4e2d \u5bfc \u5165\u5e93 \u8def\u5f84 ( \u53c2\u9605 \u8bf7\u53c2\u9605 __ 0.9 . 12 _ \u4e4b\u524d \u7684 \u7248\u672c _ ) ; import carla \u5c31 \u8db3\u591f \u4e86 \u3002 B . . egg \u6587\u4ef6 \u53c2\u9605 \u8bf7\u53c2\u9605 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e86\u89e3 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"0.9 . 12 + \u7248\u672c"},{"location":"build_system/#0912_1","text":"\u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev \u3002 \u547d\u4ee4 make PythonAPI \u5b83 \u521b\u9020 \u4e86 \u4e24\u4e2a \" egg \" \u5305 PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u7cfb\u7edf \u8def\u5f84 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u5305 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Python \u811a\u672c \u4e2d \u3002 # ! / usr / bin / env python import sys sys . path . append ( ' PythonAPI / dist / carla - X . X . X - py% d .% d - linux - x86 _ 64 . egg ' % ( sys . version _ info . major , sys . version _ info . minor ) ) import carla # ... \u6216\u8005 \uff0c \u53ef\u4ee5 \u4f7f\u7528 easy _ install \u5b89\u88c5 easy _ install2 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg easy _ install3 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg","title":"0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c"},{"location":"build_update/","text":"\u66f4\u65b0 Carla \u66f4\u65b0 \u547d\u4ee4 \u6458\u8981 \u83b7\u53d6 \u6700\u65b0 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u66f4\u65b0 Linux \u548c Windows \u6784\u5efa \u6e05\u9664 \u6784\u5efa \u4ece origin \u62c9\u53d6 \u4e0b\u8f7d \u8d44\u4ea7 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u8981 \u53d1\u5e03 \u610f\u5916 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u968f\u65f6 \u767b\u5f55 Carla \u8bba\u575b \u3002 Carla \u8bba\u575b \u66f4\u65b0 \u547d\u4ee4 \u6458\u8981 \u663e\u793a \u66f4\u65b0 Carla \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c # \u66f4\u65b0 Carla \u5305 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \u3002 # 1 . \u5220\u9664 \u5f53\u524d \u7684 \u7248\u672c \u3002 # 2 . \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u6216 \u4e00\u4e2a \u4e00\u4e2a \u60f3\u8981 \u7684 \u7248\u672c \u3002 # \u66f4\u65b0 Linux \u6784\u5efa \u3002 git checkout master make clean git pull origin master . / Update . sh # \u66f4\u65b0 Windows \u6784\u5efa \u3002 git checkout master make clean git pull origin master # \u64e6\u9664 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u7684 \u5185\u5bb9 \u3002 # \u8f6c \u81f3 ` \\ Util \\ ContentVersions . txt ` . # \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u5728 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u89e3\u538b \u51fa\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u83b7\u53d6 \u5f00\u53d1 \u7248\u672c \u7684 \u8d44\u4ea7 # \u5220\u9664 \u5305\u542b \u4e4b\u524d \u8d44\u4ea7 \u7684 ` / Carla ` \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 # \u8f6c\u81f3 \u8f6c\u81f3\u4e3b Carla \u76ee\u5f55 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u83b7\u53d6 \u6700\u65b0 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u5df2 \u9884\u5148 \u6253\u5305 \uff0c \u56e0\u6b64 \u4e0e Carla \u7684 \u7279\u5b9a \u7248\u672c \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u8981 \u83b7\u53d6 \u6700\u65b0 \u7248\u672c \uff0c \u8bf7 \u5220\u9664 \u4e4b\u524d \u7684 \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6765 \u83b7\u53d6 \u6240 \u9700 \u7684 \u7248\u672c \u3002 \u7248\u672c \u5217 \u5728 Carla \u4ed3\u5e93 \u7684 Development \u4e2d \u3002 \u8fd8\u6709 \u4e00\u4e2a \u9ad8\u5ea6 \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 Nightly build \uff0c \u5176\u4e2d \u5305\u542b Carla \u7684 \u6700\u65b0 \u72b6\u6001 \u3002 Get releases Get the nightly build \u66f4\u65b0 Linux \u548c Windows \u6784\u5efa \u66f4\u65b0 \u524d \u8bf7 \u786e\u4fdd \u4f4d\u4e8e \u672c\u5730 master \u5206\u652f \u3002 \u7136\u540e \uff0c \u5c06 \u66f4\u6539 merge \u6216 rebase \u5230 \u5176\u4ed6 \u5206\u652f \u5e76 \u89e3\u51b3 \u53ef\u80fd \u7684 \u51b2\u7a81 \u3002 git checkout master \u6e05\u7406 \u6784\u5efa \u8f6c\u5230 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5220\u9664 \u5148\u524d \u6784\u5efa \u751f\u6210 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make clean \u4ece origin \u62c9\u53d6 \u4ece Carla \u5b58\u50a8 \u5e93\u4e2d master \u5206\u652f \u83b7\u53d6 \u5f53\u524d \u7248\u672c \u3002 git pull origin master \u4e0b\u8f7d \u8d44\u4ea7 Linux . . / Update . sh Windows . 1 . \u5220\u9664 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u4e4b\u524d \u7684 \u5185\u5bb9 \u3002 2 . \u8f6c \u81f3 \\ Util \\ ContentVersions . txt \u3002 3 . \u4e0b\u8f7d \u6700\u65b0 \u7684 latest \u7684 \u5185\u5bb9 \u3002 4 . \u5728 Unreal \\ CarlaUE4 \\ Content \\ Carla \u62bd\u53d6 \u65b0 \u7684 \u5185\u5bb9 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u4e0e Carla \u56e2\u961f \u6b63\u5728 \u5f00\u53d1 \u7684 \u9879\u76ee \u5408\u4f5c \uff0c \u8bf7 \u83b7\u53d6 \u4e0b\u9762 \u7684 \u5f00\u53d1 \u8d44\u4ea7 \u3002 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u65c1\u89c2 \u89c2\u8005 \u65c1\u89c2\u8005 \u89c6\u56fe \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u3002 make launch \u83b7\u53d6 \u5f00\u53d1 \u7248 \u7684 \u8d44\u4ea7 Carla \u56e2\u961f \u4f7f\u7528 \u4ecd \u5728 \u5f00\u53d1 \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u6a21\u578b \u548c \u5730\u56fe \u6709 \u4e00\u4e2a \u516c\u5171 git \u5b58\u50a8 \u5e93 \uff0c Carla \u56e2\u961f \u5b9a\u671f \u5728 \u5176\u4e2d \u63a8\u9001 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002 \u8d44\u4ea7 \u5c1a\u672a \u5b8c\u6210 \uff0c \u4ec5 \u5efa\u8bae \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4f7f\u7528 \u5b83\u4eec \u3002 \u4e3a\u4e86 \u5904\u7406 \u8fd9\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u5efa\u8bae \u5b89\u88c5 git - lfs \u3002 \u5b58\u50a8 \u5e93\u4f1a \u5b9a\u671f \u4fee\u6539 \uff0c \u5e76\u4e14 git - lfs \u5904\u7406 \u5927\u578b \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u7684 \u901f\u5ea6 \u66f4 \u5feb \u3002 \u8981 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff0c \u8bf7 \u8f6c\u5230 \u4e3b Carla \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u7b14\u8bb0 \u5728 \u514b\u9686 \u5b58\u50a8 \u5e93 \u4e4b\u524d \u5220\u9664 \u5305\u542b \u8d44\u4ea7 \u7684 / Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5426\u5219 \uff0c \u5c06 \u663e\u793a \u9519\u8bef \u3002","title":"Carla \u66f4\u65b0"},{"location":"build_update/#carla","text":"\u66f4\u65b0 \u547d\u4ee4 \u6458\u8981 \u83b7\u53d6 \u6700\u65b0 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u66f4\u65b0 Linux \u548c Windows \u6784\u5efa \u6e05\u9664 \u6784\u5efa \u4ece origin \u62c9\u53d6 \u4e0b\u8f7d \u8d44\u4ea7 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u8981 \u53d1\u5e03 \u610f\u5916 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u968f\u65f6 \u767b\u5f55 Carla \u8bba\u575b \u3002 Carla \u8bba\u575b","title":"\u66f4\u65b0 Carla"},{"location":"build_update/#_1","text":"\u663e\u793a \u66f4\u65b0 Carla \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c # \u66f4\u65b0 Carla \u5305 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \u3002 # 1 . \u5220\u9664 \u5f53\u524d \u7684 \u7248\u672c \u3002 # 2 . \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u6216 \u4e00\u4e2a \u4e00\u4e2a \u60f3\u8981 \u7684 \u7248\u672c \u3002 # \u66f4\u65b0 Linux \u6784\u5efa \u3002 git checkout master make clean git pull origin master . / Update . sh # \u66f4\u65b0 Windows \u6784\u5efa \u3002 git checkout master make clean git pull origin master # \u64e6\u9664 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u7684 \u5185\u5bb9 \u3002 # \u8f6c \u81f3 ` \\ Util \\ ContentVersions . txt ` . # \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u5728 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u89e3\u538b \u51fa\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u83b7\u53d6 \u5f00\u53d1 \u7248\u672c \u7684 \u8d44\u4ea7 # \u5220\u9664 \u5305\u542b \u4e4b\u524d \u8d44\u4ea7 \u7684 ` / Carla ` \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 # \u8f6c\u81f3 \u8f6c\u81f3\u4e3b Carla \u76ee\u5f55 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla","title":"\u66f4\u65b0 \u547d\u4ee4 \u6458\u8981"},{"location":"build_update/#_2","text":"\u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u5df2 \u9884\u5148 \u6253\u5305 \uff0c \u56e0\u6b64 \u4e0e Carla \u7684 \u7279\u5b9a \u7248\u672c \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u8981 \u83b7\u53d6 \u6700\u65b0 \u7248\u672c \uff0c \u8bf7 \u5220\u9664 \u4e4b\u524d \u7684 \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6765 \u83b7\u53d6 \u6240 \u9700 \u7684 \u7248\u672c \u3002 \u7248\u672c \u5217 \u5728 Carla \u4ed3\u5e93 \u7684 Development \u4e2d \u3002 \u8fd8\u6709 \u4e00\u4e2a \u9ad8\u5ea6 \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 Nightly build \uff0c \u5176\u4e2d \u5305\u542b Carla \u7684 \u6700\u65b0 \u72b6\u6001 \u3002 Get releases Get the nightly build","title":"\u83b7\u53d6 \u6700\u65b0 \u7684 \u4e8c\u8fdb\u5236 \u7248\u672c"},{"location":"build_update/#linux-windows","text":"\u66f4\u65b0 \u524d \u8bf7 \u786e\u4fdd \u4f4d\u4e8e \u672c\u5730 master \u5206\u652f \u3002 \u7136\u540e \uff0c \u5c06 \u66f4\u6539 merge \u6216 rebase \u5230 \u5176\u4ed6 \u5206\u652f \u5e76 \u89e3\u51b3 \u53ef\u80fd \u7684 \u51b2\u7a81 \u3002 git checkout master","title":"\u66f4\u65b0 Linux \u548c Windows \u6784\u5efa"},{"location":"build_update/#_3","text":"\u8f6c\u5230 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5220\u9664 \u5148\u524d \u6784\u5efa \u751f\u6210 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make clean","title":"\u6e05\u7406 \u6784\u5efa"},{"location":"build_update/#origin","text":"\u4ece Carla \u5b58\u50a8 \u5e93\u4e2d master \u5206\u652f \u83b7\u53d6 \u5f53\u524d \u7248\u672c \u3002 git pull origin master","title":"\u4ece origin \u62c9\u53d6"},{"location":"build_update/#_4","text":"Linux . . / Update . sh Windows . 1 . \u5220\u9664 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u4e4b\u524d \u7684 \u5185\u5bb9 \u3002 2 . \u8f6c \u81f3 \\ Util \\ ContentVersions . txt \u3002 3 . \u4e0b\u8f7d \u6700\u65b0 \u7684 latest \u7684 \u5185\u5bb9 \u3002 4 . \u5728 Unreal \\ CarlaUE4 \\ Content \\ Carla \u62bd\u53d6 \u65b0 \u7684 \u5185\u5bb9 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u4e0e Carla \u56e2\u961f \u6b63\u5728 \u5f00\u53d1 \u7684 \u9879\u76ee \u5408\u4f5c \uff0c \u8bf7 \u83b7\u53d6 \u4e0b\u9762 \u7684 \u5f00\u53d1 \u8d44\u4ea7 \u3002","title":"\u4e0b\u8f7d \u8d44\u4ea7"},{"location":"build_update/#_5","text":"\u5728 \u65c1\u89c2 \u89c2\u8005 \u65c1\u89c2\u8005 \u89c6\u56fe \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u3002 make launch","title":"\u542f\u52a8 \u670d\u52a1\u5668"},{"location":"build_update/#_6","text":"Carla \u56e2\u961f \u4f7f\u7528 \u4ecd \u5728 \u5f00\u53d1 \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u6a21\u578b \u548c \u5730\u56fe \u6709 \u4e00\u4e2a \u516c\u5171 git \u5b58\u50a8 \u5e93 \uff0c Carla \u56e2\u961f \u5b9a\u671f \u5728 \u5176\u4e2d \u63a8\u9001 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002 \u8d44\u4ea7 \u5c1a\u672a \u5b8c\u6210 \uff0c \u4ec5 \u5efa\u8bae \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4f7f\u7528 \u5b83\u4eec \u3002 \u4e3a\u4e86 \u5904\u7406 \u8fd9\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u5efa\u8bae \u5b89\u88c5 git - lfs \u3002 \u5b58\u50a8 \u5e93\u4f1a \u5b9a\u671f \u4fee\u6539 \uff0c \u5e76\u4e14 git - lfs \u5904\u7406 \u5927\u578b \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u7684 \u901f\u5ea6 \u66f4 \u5feb \u3002 \u8981 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff0c \u8bf7 \u8f6c\u5230 \u4e3b Carla \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u7b14\u8bb0 \u5728 \u514b\u9686 \u5b58\u50a8 \u5e93 \u4e4b\u524d \u5220\u9664 \u5305\u542b \u8d44\u4ea7 \u7684 / Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5426\u5219 \uff0c \u5c06 \u663e\u793a \u9519\u8bef \u3002","title":"\u83b7\u53d6 \u5f00\u53d1 \u7248 \u7684 \u8d44\u4ea7"},{"location":"build_windows/","text":"Windows \u4e0b \u7684 \u6784\u5efa \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u9047\u5230 \u9519\u8bef \u6216 \u56f0\u96be \uff0c \u8bf7 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \uff0c \u5176\u4e2d \u63d0\u4f9b \u4e86 \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u3002 \u6216\u8005 \u4f7f\u7528 Carla \u8bba\u575b \u53d1\u5e03 \u60a8 \u53ef\u80fd \u6709 \u7684 \u4efb\u4f55 \u7591\u95ee \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5 Python \u4f9d\u8d56 \u9879 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 Visual Studio 2019 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u627e\u5230 \u5f00\u59cb \u6784\u5efa Carla \u4e4b\u524d \u6240 \u9700 \u7684 \u7cfb\u7edf \u8981\u6c42 \u3001 \u6b21\u8981 \u548c \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \u4ee5\u53ca Python \u4f9d\u8d56 \u9879 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u7cfb\u7edf \u8981\u6c42 64 \u4f4d \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u5728 \u4efb\u4f55 64 \u4f4d Windows \u7cfb\u7edf \u4e2d \u8fd0\u884c \u3002 165 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u672c\u8eab \u5c06 \u5360\u7528 \u5927\u7ea6 32 GB \uff0c \u76f8\u5173 \u7684 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \uff08 \u5305\u62ec \u865a\u5e7b \u5f15\u64ce \uff09 \u5c06 \u5360\u7528 \u5927\u7ea6 133 GB \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u7aef\u53e3 \u4e3a 2000 \u548c 2001 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002 \u8f6f\u4ef6 \u8981\u6c42 \u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5 CMake \u4ece \u7b80\u5355 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u751f\u6210 \u6807\u51c6 \u6784\u5efa \u6587\u4ef6 \u3002 Git \u662f \u4e00\u4e2a \u7528\u4e8e \u7ba1\u7406 Carla \u5b58\u50a8 \u5e93 \u7684 \u7248\u672c \u63a7\u5236 \u7cfb\u7edf \u63a7\u5236\u7cfb\u7edf \u3002 Make \u751f\u6210 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u5fc5\u987b \u4f7f\u7528 Make \u7684 3.81 \u7248\u672c \uff0c \u5426\u5219 \u6784\u5efa \u53ef\u80fd \u4f1a \u5931\u8d25 \u3002 \u5982\u679c \u5b89\u88c5 \u4e86 \u591a\u4e2a \u7248\u672c \u7684 Make \uff0c \u8bf7 \u68c0\u67e5 \u6784\u5efa Carla \u65f6 \u5728 PATH \u4e2d \u4f7f\u7528 \u7684 \u7248\u672c \u662f\u5426 \u4e3a 3.81 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u6765 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Make \u7248\u672c make -- version \u3002 7Zip \u4e00\u6b3e \u6587\u4ef6 \u538b\u7f29 \u8f6f\u4ef6 \u538b\u7f29\u8f6f\u4ef6 \u3002 \u8fd9\u662f \u81ea\u52a8 \u89e3\u538b \u538b\u7f29 \u89e3\u538b\u7f29 \u8d44\u4ea7 \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \uff0c \u5e76 \u9632\u6b62 \u5728 \u6784\u5efa \u671f\u95f4 \u7531\u4e8e \u9519\u8bef \u6216 \u90e8\u5206 \u63d0\u53d6 \u5927 \u6587\u4ef6 \u800c \u51fa\u73b0 \u9519\u8bef \u3002 Python3 x64 \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 \u5b89\u88c5 x32 \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \uff0c \u56e0\u6b64 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5378\u8f7d \u5b83 \u3002 \u91cd\u8981 \u786e\u4fdd \u5c06 \u4e0a\u8ff0 \u7a0b\u5e8f \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6dfb\u52a0 \u7684 \u8def\u5f84 \u5e94 \u4e0e \u7a0b\u5e8f \u7684 bin \u76ee\u5f55 \u76f8\u5bf9 \u5e94 \u3002 Python \u4f9d\u8d56 \u9879 \u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u4e8e \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip3 \u6765 \u5b89\u88c5 Carla \u7684 Python API \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a pip3 - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a pip3 install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip3 install -- user setuptools pip3 install -- user wheel \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 Visual Studio 2019 \u4ece \u6b64\u5904 \u83b7\u53d6 2019 \u7248 Visual Studio \u3002 \u9009\u62e9 \u793e\u533a \u4f5c\u4e3a \u514d\u8d39 \u7248\u672c \u3002 \u4f7f\u7528 Visual Studio \u5b89\u88c5 \u7a0b\u5e8f \u5b89\u88c5\u7a0b\u5e8f \u5b89\u88c5 \u4e09\u4e2a \u9644\u52a0 \u5143\u7d20 \uff1a Windows 8.1 SDK . \u5728 \u53f3\u4fa7 \u7684 Installation details \u90e8\u5206 \u4e2d \u9009\u62e9 \u5b83 \uff0c \u6216\u8005 \u8f6c \u5230 Indivdual Components \u9009\u9879 \u9009\u9879\u5361 \u5e76 \u5728 SDKs , libraries , and frameworks \u6807\u9898 \u4e0b \u67e5\u770b \u3002 x64 Visual C++ Toolset . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 Desktop development with C++ \u3002 \u8fd9 \u5c06 \u542f\u7528 \u7528\u4e8e \u6784\u5efa \u7684 x64 \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u3002 \u901a\u8fc7 \u6309 Windows \u6309\u94ae \u5e76 \u641c\u7d22 x64 \u6765 \u68c0\u67e5 \u5b83 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u5c0f\u5fc3 \u4e0d\u8981 \u6253\u5f00 x86 _ x64 \u63d0\u793a \u3002 . NET framework 4.6 . 2 . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 . NET desktop development \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 \u7684 \u5b89\u88c5 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u9009\u62e9 . NET Framework 4.6 . 2 development tools \u3002 \u8fd9\u662f \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u6240 \u5fc5\u9700 \u7684 \u3002 \u91cd\u8981 \u5176\u4ed6 Visual Studio \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 \u5373\u4f7f \u8fd9\u4e9b \u5df2 \u88ab \u5378\u8f7d \uff0c \u67d0\u4e9b \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u4e5f \u53ef\u80fd \u4ecd\u7136 \u5b58\u5728 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u4e0a\u8ff0 \u6b65\u9aa4 \u4f7f\u7528 Visual Studio 2022 \uff0c \u5e76 \u5c06 Windows 8.1 SDK \u66ff\u6362 \u4e3a Windows 11 / 10 SDK \u3002 \u8981 \u8986\u76d6 CMake \u4e2d \u7684 \u9ed8\u8ba4 Visual Studio 2019 Generator \uff0c \u8bf7 \u5728 \u4f7f\u7528 makefile \u547d\u4ee4 \u65f6 \u6307\u5b9a GENERATOR = \" Visual Studio 17 2022 \" \uff08 \u8bf7 \u53c2\u89c1 \u8868 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u6307\u5b9a \u4efb\u4f55 \u4e0e \u6784\u5efa \u811a\u672c \u4e2d \u7279\u5b9a \u7684 \u6784\u5efa \u547d\u4ee4 \u914d\u5408 \u4f7f\u7528 \u7684 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \uff0c \u4ee5 \u8fdb\u884c \u5b8c\u6574 \u5217\u8868 \u8fd0\u884c cmake - G \uff08 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Ninja \u5df2\u7ecf \u8fc7 \u6d4b\u8bd5 \u53ef\u7528 \u6d4b\u8bd5\u53ef\u7528 \u4e8e \u6784\u5efa LibCarla \uff09 \u3002 \u865a\u5e7b \u5f15\u64ce \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8981 \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \u7684 \u8fd9\u4e2a \u5206\u652f \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u94fe\u63a5 \u5230 \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u8981 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 \u4fee\u6539 \u7248\u672c \uff1a 1 . \u5728 \u7ec8\u7aef \u4e2d \uff0c \u5bfc\u822a \u5230 \u8981 \u4fdd\u5b58 \u865a\u5e7b \u5f15\u64ce \u7684 \u4f4d\u7f6e \u5e76 \u514b\u9686 carla \u5206\u652f \uff1a git clone -- depth 1 - b carla https : / / github . com / CarlaUnreal / UnrealEngine . git . \u7b14\u8bb0 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9760\u8fd1 C : \\ \\ \uff0c \u56e0\u4e3a \u5982\u679c \u8def\u5f84 \u8d85\u8fc7 \u4e00\u5b9a \u957f\u5ea6 \uff0c Setup . bat \u5219 \u4f1a \u5728 \u6b65\u9aa4 3 \u4e2d \u8fd4\u56de \u9519\u8bef \u3002 2 . \u8fd0\u884c \u914d\u7f6e \u811a\u672c \uff1a Setup . bat GenerateProjectFiles . bat 3 . \u7f16\u8bd1 \u4fee\u6539 \u540e \u7684 \u5f15\u64ce \uff1a \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 UE4 . sln \u6e90 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u3002 \u5728 \u6784\u5efa \u680f\u4e2d \uff0c \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u9009\u62e9 \u201c Development Editor \u201d \u3001 \u201c Win64 \u201d \u548c \u201c UnrealBuildTool \u201d \u9009\u9879 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4efb\u4f55 \u5e2e\u52a9 \uff0c \u8bf7 \u67e5\u770b \u672c \u6307\u5357 \u3002 \u5728 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u53f3\u952e \u5355\u51fb UE4 \u5e76 \u9009\u62e9 Build \u3002 4 . \u7f16\u8bd1 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6253\u5f00 \u5f15\u64ce \uff0c \u901a\u8fc7 \u542f\u52a8 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 Engine \\ Binaries \\ Win64 \\ UE4Editor . exe \u6765 \u68c0\u67e5 \u6240\u6709 \u5185\u5bb9 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u5982\u679c \u5b89\u88c5 \u6210\u529f \uff0c \u865a\u5e7b \u5f15\u64ce \u7684 \u7248\u672c \u9009\u62e9 \u9009\u62e9\u5668 \u5e94\u8be5 \u80fd\u591f \u8bc6\u522b \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53f3\u952e \u5355\u51fb \u4efb\u4f55 . uproject \u6587\u4ef6 \u5e76 \u9009\u62e9 Switch Unreal Engine version \u6765 \u68c0\u67e5 \u8fd9 \u4e00\u70b9 \u3002 \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u4e00\u4e2a \u5f39 \u51fa \u7a97\u53e3 \uff0c \u663e\u793a Source Build at PATH \u662f \u60a8 \u9009\u62e9 \u7684 \u5b89\u88c5 \u8def\u5f84 \u3002 \u5982\u679c \u60a8 \u5728 \u53f3\u952e \u5355\u51fb . uproject \u6587\u4ef6 \u6216 Generate Visual Studio project files \u65f6 \u4e0d\u5230 \u770b\u4e0d\u5230 \u6b64 \u9009\u62e9 \u9009\u62e9\u5668 \uff0c \u5219 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u51fa\u73b0 \u95ee\u9898 \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u91cd\u65b0 \u6b63\u786e \u5b89\u88c5 \u3002 \u91cd\u8981 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u7ee7\u7eed \u4e4b\u524d \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002 \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u5b58\u50a8 \u5e93 Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla \u7b14\u8bb0 \u8be5 master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002 \u83b7\u53d6 \u8d44\u4ea7 \u901a\u8fc7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u4ee5 \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \uff1a Update . bat \u5982\u679c \u5b89\u88c5 \u4e86 7zip \uff0c \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u89e3\u538b \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u5b89\u88c5 \u6b64 \u8f6f\u4ef6 \uff0c \u5219 \u9700\u8981 \u624b\u52a8 \u5c06 \u6587\u4ef6 \u5185\u5bb9 \u89e3\u538b \u5230 Unreal \\ CarlaUE4 \\ Content \\ Carla \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c Carla \u7684 \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u4ea7 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u53d8\u91cf \u9700\u8981 \u8bbe\u7f6e \u4e00\u4e2a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u9009\u62e9 \u8981 \u4f7f\u7528 \u54ea\u4e2a \u7279\u5b9a \u7248\u672c \u7684 \u865a\u5e7b \u5f15\u64ce \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c Carla \u5c06 \u5728 Windows \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u641c\u7d22 \u865a\u5e7b \u5f15\u64ce \u5e76 \u4f7f\u7528 \u5728 \u90a3\u91cc \u627e\u5230 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u7248\u672c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff1a \u6253\u5f00 Windows \u63a7\u5236 \u5236\u9762 \u9762\u677f \u63a7\u5236\u9762\u677f \uff0c \u7136\u540e \u8f6c \u81f3 Advanced System Settings \u6216 \u5728 Windows \u641c\u7d22 \u680f\u4e2d \u641c\u7d22 Advanced System Settings \u3002 \u5728 \u9762\u677f \u4e0a Advanced Advanced \u6253\u5f00 Environment Variables ... \u3002 \u5355\u51fb New ... \u4ee5 \u521b\u5efa \u53d8\u91cf \u3002 \u4e3a \u53d8\u91cf UE4 _ ROOT \u547d\u540d \u5e76 \u9009\u62e9 \u6240 \u9700 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u8def\u5f84 \u3002 \u6784\u5efa Carla \u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 \u547d\u4ee4 \u5e94 \u901a\u8fc7 VS 2019 \u7684 x64 Native Tools Command Prompt for VS 2019 \u6267\u884c \u3002 \u901a\u8fc7 \u5355\u51fb \u8be5 Windows \u952e \u5e76 \u641c\u7d22 \u6765 \u6253\u5f00 \u5b83 x64 \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24 \u90e8\u5206 \uff1a \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef : Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 CARLA . whl \uff0c \u5219 \u5b83 \u5c06 . whl \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 \u4ee5\u4e0b pip3 \u547d\u4ee4 \u5b89\u88c5 . whl \u6587\u4ef6 \uff1a pip3 install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 . whl \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u670d\u52a1\u7aef : \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 \u7b14\u8bb0 \u5982\u679c \u7f16\u8bd1 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4e2d\u6587 \u4e71\u7801 \uff0c \u4e3a\u4e86 \u4fbf\u4e8e \u5bfb\u627e \u7f16\u8bd1 \u9519\u8bef \uff0c \u53ef\u4ee5 \u4f7f\u7528 chcp 65001 \u547d\u4ee4 \u5c06 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \u4fee\u6539 \u4e3a UTF - 8 \uff08 \u9009\u62e9 \u201c \u5c5e\u6027 \u201d \u3002 \u5728 \u201c \u5c5e\u6027 \u201d > > \u201c \u9009\u9879 \u201d \u4e00\u680f \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u770b\u5230 \u5f53\u524d \u4ee3\u7801 \u9875 \u7684 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \uff09 \u3002 3 . \u5f00\u59cb \u4eff\u771f : \u6309 Play \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6309\u952e \u79fb\u52a8 \u76f8\u673a WASD \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 PythonAPI \\ examples \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples pip3 install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI \\ examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 \u3002 \u5176\u4ed6 \u6784\u5efa \u547d\u4ee4 \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002 make downloadplugin \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 StreetMap \u3002 make setup \u6784 \u4e0b\u8f7d \u5e76 \u751f\u6210 \u4f9d\u8d56 \u5e93 make LibCarla \u521b\u5efa LibCarla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u670d\u52a1\u7aef \uff08 make server + make client \uff09 make osm2odr \u521b\u5efa OSM \u8f6c OpenDRIVE \u7684 \u5e93 make import \u5bfc\u5165 \u8d44\u4ea7 \u62a5\u9519 \u6267\u884c make osm2odr \u62a5\u9519 \uff1a CMake Error : The source directory \" D : / work / workspace / carla / Build / osm2odr - visualstudio / x64 \" does not appear to contain CMakeLists . txt . Specify -- help for usage , or press the help button on the CMake GUI . Error : could not load cache \u4ece \u5176\u4ed6 \u5730\u65b9 \u628a Build \\ osm2odr - visualstudio \\ CMakeCache . txt \u62f7\u8d1d \u8fc7\u6765 \uff0c \u4fee\u6539 \u91cc\u9762 \u5bf9\u5e94 \u7684 \u76ee\u5f55 \u4e3a \u5f53\u524d \u5de5\u7a0b \u7684 \u76ee\u5f55 \u3002 \u6267\u884c make PythonAPI \u62a5\u9519 \uff1a libcarla . obj : error LNK2001 : \u65e0\u6cd5 \u89e3\u6790 \u7684 \u5916\u90e8 \u7b26\u53f7 \" class std : : basic _ string < char , struct std : : char _ traits < char > , class std : : allocator < char > > __ cdecl osm2odr : : ConvertOSMToOpenDRIVE ( class std : : basic _ string < char , struct std : : char _ traits < char > , class std : : allocator < char > > , struct osm2odr : : OSM2ODRSettings ) \" ( ? ConvertOSMToOpenDRIVE @ osm2odr @ @ YA ? AV ? $ basic _ string @ DU ? $ char _ traits @ D @ std @ @ V ? $ allocator @ D @ 2 @ @ std @ @ V23 @ UOSM2ODRSettings @ 1 @ @ Z ) \u4ece \u5176\u4ed6 \u7f16\u8bd1 \u6210\u529f \u7684 \u5730\u65b9 \u5c06 PythonAPI \\ carla \\ dependencies \\ lib \\ osm2odr . lib \u62f7\u8d1d \u8fc7\u6765 \u3002 \u6709\u5173 \u672c \u6307\u5357 \u7684 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u6784\u5efa \u4e86 Carla \uff0c \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u4e86\u89e3 \u5982\u4f55 \u66f4\u65b0 Carla \u6784\u5efa \u6216 \u5728 \u4eff\u771f \u4e2d \u8fc8\u51fa \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u5e76 \u5b66\u4e60 \u4e00\u4e9b \u6838\u5fc3 \u6982\u5ff5 \u3002 \u66f4\u65b0 Carla \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"Windows \u4e0a \u7f16\u8bd1"},{"location":"build_windows/#windows","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u9047\u5230 \u9519\u8bef \u6216 \u56f0\u96be \uff0c \u8bf7 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \uff0c \u5176\u4e2d \u63d0\u4f9b \u4e86 \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u3002 \u6216\u8005 \u4f7f\u7528 Carla \u8bba\u575b \u53d1\u5e03 \u60a8 \u53ef\u80fd \u6709 \u7684 \u4efb\u4f55 \u7591\u95ee \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5 Python \u4f9d\u8d56 \u9879 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 Visual Studio 2019 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4","title":"Windows \u4e0b \u7684 \u6784\u5efa"},{"location":"build_windows/#_1","text":"\u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u627e\u5230 \u5f00\u59cb \u6784\u5efa Carla \u4e4b\u524d \u6240 \u9700 \u7684 \u7cfb\u7edf \u8981\u6c42 \u3001 \u6b21\u8981 \u548c \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \u4ee5\u53ca Python \u4f9d\u8d56 \u9879 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3\u6761\u4ef6"},{"location":"build_windows/#_2","text":"64 \u4f4d \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u5728 \u4efb\u4f55 64 \u4f4d Windows \u7cfb\u7edf \u4e2d \u8fd0\u884c \u3002 165 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u672c\u8eab \u5c06 \u5360\u7528 \u5927\u7ea6 32 GB \uff0c \u76f8\u5173 \u7684 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \uff08 \u5305\u62ec \u865a\u5e7b \u5f15\u64ce \uff09 \u5c06 \u5360\u7528 \u5927\u7ea6 133 GB \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u7aef\u53e3 \u4e3a 2000 \u548c 2001 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_windows/#_3","text":"","title":"\u8f6f\u4ef6 \u8981\u6c42"},{"location":"build_windows/#_4","text":"CMake \u4ece \u7b80\u5355 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u751f\u6210 \u6807\u51c6 \u6784\u5efa \u6587\u4ef6 \u3002 Git \u662f \u4e00\u4e2a \u7528\u4e8e \u7ba1\u7406 Carla \u5b58\u50a8 \u5e93 \u7684 \u7248\u672c \u63a7\u5236 \u7cfb\u7edf \u63a7\u5236\u7cfb\u7edf \u3002 Make \u751f\u6210 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u5fc5\u987b \u4f7f\u7528 Make \u7684 3.81 \u7248\u672c \uff0c \u5426\u5219 \u6784\u5efa \u53ef\u80fd \u4f1a \u5931\u8d25 \u3002 \u5982\u679c \u5b89\u88c5 \u4e86 \u591a\u4e2a \u7248\u672c \u7684 Make \uff0c \u8bf7 \u68c0\u67e5 \u6784\u5efa Carla \u65f6 \u5728 PATH \u4e2d \u4f7f\u7528 \u7684 \u7248\u672c \u662f\u5426 \u4e3a 3.81 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u6765 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Make \u7248\u672c make -- version \u3002 7Zip \u4e00\u6b3e \u6587\u4ef6 \u538b\u7f29 \u8f6f\u4ef6 \u538b\u7f29\u8f6f\u4ef6 \u3002 \u8fd9\u662f \u81ea\u52a8 \u89e3\u538b \u538b\u7f29 \u89e3\u538b\u7f29 \u8d44\u4ea7 \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \uff0c \u5e76 \u9632\u6b62 \u5728 \u6784\u5efa \u671f\u95f4 \u7531\u4e8e \u9519\u8bef \u6216 \u90e8\u5206 \u63d0\u53d6 \u5927 \u6587\u4ef6 \u800c \u51fa\u73b0 \u9519\u8bef \u3002 Python3 x64 \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 \u5b89\u88c5 x32 \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \uff0c \u56e0\u6b64 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5378\u8f7d \u5b83 \u3002 \u91cd\u8981 \u786e\u4fdd \u5c06 \u4e0a\u8ff0 \u7a0b\u5e8f \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6dfb\u52a0 \u7684 \u8def\u5f84 \u5e94 \u4e0e \u7a0b\u5e8f \u7684 bin \u76ee\u5f55 \u76f8\u5bf9 \u5e94 \u3002","title":"\u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5"},{"location":"build_windows/#python","text":"\u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u4e8e \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip3 \u6765 \u5b89\u88c5 Carla \u7684 Python API \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a pip3 - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a pip3 install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip3 install -- user setuptools pip3 install -- user wheel","title":"Python \u4f9d\u8d56 \u9879"},{"location":"build_windows/#_5","text":"","title":"\u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5"},{"location":"build_windows/#visual-studio-2019","text":"\u4ece \u6b64\u5904 \u83b7\u53d6 2019 \u7248 Visual Studio \u3002 \u9009\u62e9 \u793e\u533a \u4f5c\u4e3a \u514d\u8d39 \u7248\u672c \u3002 \u4f7f\u7528 Visual Studio \u5b89\u88c5 \u7a0b\u5e8f \u5b89\u88c5\u7a0b\u5e8f \u5b89\u88c5 \u4e09\u4e2a \u9644\u52a0 \u5143\u7d20 \uff1a Windows 8.1 SDK . \u5728 \u53f3\u4fa7 \u7684 Installation details \u90e8\u5206 \u4e2d \u9009\u62e9 \u5b83 \uff0c \u6216\u8005 \u8f6c \u5230 Indivdual Components \u9009\u9879 \u9009\u9879\u5361 \u5e76 \u5728 SDKs , libraries , and frameworks \u6807\u9898 \u4e0b \u67e5\u770b \u3002 x64 Visual C++ Toolset . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 Desktop development with C++ \u3002 \u8fd9 \u5c06 \u542f\u7528 \u7528\u4e8e \u6784\u5efa \u7684 x64 \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u3002 \u901a\u8fc7 \u6309 Windows \u6309\u94ae \u5e76 \u641c\u7d22 x64 \u6765 \u68c0\u67e5 \u5b83 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u5c0f\u5fc3 \u4e0d\u8981 \u6253\u5f00 x86 _ x64 \u63d0\u793a \u3002 . NET framework 4.6 . 2 . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 . NET desktop development \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 \u7684 \u5b89\u88c5 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u9009\u62e9 . NET Framework 4.6 . 2 development tools \u3002 \u8fd9\u662f \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u6240 \u5fc5\u9700 \u7684 \u3002 \u91cd\u8981 \u5176\u4ed6 Visual Studio \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 \u5373\u4f7f \u8fd9\u4e9b \u5df2 \u88ab \u5378\u8f7d \uff0c \u67d0\u4e9b \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u4e5f \u53ef\u80fd \u4ecd\u7136 \u5b58\u5728 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u4e0a\u8ff0 \u6b65\u9aa4 \u4f7f\u7528 Visual Studio 2022 \uff0c \u5e76 \u5c06 Windows 8.1 SDK \u66ff\u6362 \u4e3a Windows 11 / 10 SDK \u3002 \u8981 \u8986\u76d6 CMake \u4e2d \u7684 \u9ed8\u8ba4 Visual Studio 2019 Generator \uff0c \u8bf7 \u5728 \u4f7f\u7528 makefile \u547d\u4ee4 \u65f6 \u6307\u5b9a GENERATOR = \" Visual Studio 17 2022 \" \uff08 \u8bf7 \u53c2\u89c1 \u8868 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u6307\u5b9a \u4efb\u4f55 \u4e0e \u6784\u5efa \u811a\u672c \u4e2d \u7279\u5b9a \u7684 \u6784\u5efa \u547d\u4ee4 \u914d\u5408 \u4f7f\u7528 \u7684 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \uff0c \u4ee5 \u8fdb\u884c \u5b8c\u6574 \u5217\u8868 \u8fd0\u884c cmake - G \uff08 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Ninja \u5df2\u7ecf \u8fc7 \u6d4b\u8bd5 \u53ef\u7528 \u6d4b\u8bd5\u53ef\u7528 \u4e8e \u6784\u5efa LibCarla \uff09 \u3002","title":"Visual Studio 2019"},{"location":"build_windows/#_6","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8981 \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \u7684 \u8fd9\u4e2a \u5206\u652f \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u94fe\u63a5 \u5230 \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u8981 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 \u4fee\u6539 \u7248\u672c \uff1a 1 . \u5728 \u7ec8\u7aef \u4e2d \uff0c \u5bfc\u822a \u5230 \u8981 \u4fdd\u5b58 \u865a\u5e7b \u5f15\u64ce \u7684 \u4f4d\u7f6e \u5e76 \u514b\u9686 carla \u5206\u652f \uff1a git clone -- depth 1 - b carla https : / / github . com / CarlaUnreal / UnrealEngine . git . \u7b14\u8bb0 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9760\u8fd1 C : \\ \\ \uff0c \u56e0\u4e3a \u5982\u679c \u8def\u5f84 \u8d85\u8fc7 \u4e00\u5b9a \u957f\u5ea6 \uff0c Setup . bat \u5219 \u4f1a \u5728 \u6b65\u9aa4 3 \u4e2d \u8fd4\u56de \u9519\u8bef \u3002 2 . \u8fd0\u884c \u914d\u7f6e \u811a\u672c \uff1a Setup . bat GenerateProjectFiles . bat 3 . \u7f16\u8bd1 \u4fee\u6539 \u540e \u7684 \u5f15\u64ce \uff1a \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 UE4 . sln \u6e90 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u3002 \u5728 \u6784\u5efa \u680f\u4e2d \uff0c \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u9009\u62e9 \u201c Development Editor \u201d \u3001 \u201c Win64 \u201d \u548c \u201c UnrealBuildTool \u201d \u9009\u9879 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4efb\u4f55 \u5e2e\u52a9 \uff0c \u8bf7 \u67e5\u770b \u672c \u6307\u5357 \u3002 \u5728 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u53f3\u952e \u5355\u51fb UE4 \u5e76 \u9009\u62e9 Build \u3002 4 . \u7f16\u8bd1 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6253\u5f00 \u5f15\u64ce \uff0c \u901a\u8fc7 \u542f\u52a8 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 Engine \\ Binaries \\ Win64 \\ UE4Editor . exe \u6765 \u68c0\u67e5 \u6240\u6709 \u5185\u5bb9 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u5982\u679c \u5b89\u88c5 \u6210\u529f \uff0c \u865a\u5e7b \u5f15\u64ce \u7684 \u7248\u672c \u9009\u62e9 \u9009\u62e9\u5668 \u5e94\u8be5 \u80fd\u591f \u8bc6\u522b \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53f3\u952e \u5355\u51fb \u4efb\u4f55 . uproject \u6587\u4ef6 \u5e76 \u9009\u62e9 Switch Unreal Engine version \u6765 \u68c0\u67e5 \u8fd9 \u4e00\u70b9 \u3002 \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u4e00\u4e2a \u5f39 \u51fa \u7a97\u53e3 \uff0c \u663e\u793a Source Build at PATH \u662f \u60a8 \u9009\u62e9 \u7684 \u5b89\u88c5 \u8def\u5f84 \u3002 \u5982\u679c \u60a8 \u5728 \u53f3\u952e \u5355\u51fb . uproject \u6587\u4ef6 \u6216 Generate Visual Studio project files \u65f6 \u4e0d\u5230 \u770b\u4e0d\u5230 \u6b64 \u9009\u62e9 \u9009\u62e9\u5668 \uff0c \u5219 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u51fa\u73b0 \u95ee\u9898 \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u91cd\u65b0 \u6b63\u786e \u5b89\u88c5 \u3002 \u91cd\u8981 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u7ee7\u7eed \u4e4b\u524d \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002","title":"\u865a\u5e7b \u5f15\u64ce"},{"location":"build_windows/#carla","text":"","title":"\u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla"},{"location":"build_windows/#carla_1","text":"Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla \u7b14\u8bb0 \u8be5 master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002","title":"\u514b\u9686 Carla \u5b58\u50a8 \u5e93"},{"location":"build_windows/#_7","text":"\u901a\u8fc7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u4ee5 \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \uff1a Update . bat \u5982\u679c \u5b89\u88c5 \u4e86 7zip \uff0c \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u89e3\u538b \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u5b89\u88c5 \u6b64 \u8f6f\u4ef6 \uff0c \u5219 \u9700\u8981 \u624b\u52a8 \u5c06 \u6587\u4ef6 \u5185\u5bb9 \u89e3\u538b \u5230 Unreal \\ CarlaUE4 \\ Content \\ Carla \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c Carla \u7684 \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u4ea7 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla","title":"\u83b7\u53d6 \u8d44\u4ea7"},{"location":"build_windows/#_8","text":"\u9700\u8981 \u8bbe\u7f6e \u4e00\u4e2a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u9009\u62e9 \u8981 \u4f7f\u7528 \u54ea\u4e2a \u7279\u5b9a \u7248\u672c \u7684 \u865a\u5e7b \u5f15\u64ce \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c Carla \u5c06 \u5728 Windows \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u641c\u7d22 \u865a\u5e7b \u5f15\u64ce \u5e76 \u4f7f\u7528 \u5728 \u90a3\u91cc \u627e\u5230 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u7248\u672c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff1a \u6253\u5f00 Windows \u63a7\u5236 \u5236\u9762 \u9762\u677f \u63a7\u5236\u9762\u677f \uff0c \u7136\u540e \u8f6c \u81f3 Advanced System Settings \u6216 \u5728 Windows \u641c\u7d22 \u680f\u4e2d \u641c\u7d22 Advanced System Settings \u3002 \u5728 \u9762\u677f \u4e0a Advanced Advanced \u6253\u5f00 Environment Variables ... \u3002 \u5355\u51fb New ... \u4ee5 \u521b\u5efa \u53d8\u91cf \u3002 \u4e3a \u53d8\u91cf UE4 _ ROOT \u547d\u540d \u5e76 \u9009\u62e9 \u6240 \u9700 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u8def\u5f84 \u3002","title":"\u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u53d8\u91cf"},{"location":"build_windows/#carla_2","text":"\u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 \u547d\u4ee4 \u5e94 \u901a\u8fc7 VS 2019 \u7684 x64 Native Tools Command Prompt for VS 2019 \u6267\u884c \u3002 \u901a\u8fc7 \u5355\u51fb \u8be5 Windows \u952e \u5e76 \u641c\u7d22 \u6765 \u6253\u5f00 \u5b83 x64 \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24 \u90e8\u5206 \uff1a \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef : Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 CARLA . whl \uff0c \u5219 \u5b83 \u5c06 . whl \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 \u4ee5\u4e0b pip3 \u547d\u4ee4 \u5b89\u88c5 . whl \u6587\u4ef6 \uff1a pip3 install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 . whl \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u670d\u52a1\u7aef : \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 \u7b14\u8bb0 \u5982\u679c \u7f16\u8bd1 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4e2d\u6587 \u4e71\u7801 \uff0c \u4e3a\u4e86 \u4fbf\u4e8e \u5bfb\u627e \u7f16\u8bd1 \u9519\u8bef \uff0c \u53ef\u4ee5 \u4f7f\u7528 chcp 65001 \u547d\u4ee4 \u5c06 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \u4fee\u6539 \u4e3a UTF - 8 \uff08 \u9009\u62e9 \u201c \u5c5e\u6027 \u201d \u3002 \u5728 \u201c \u5c5e\u6027 \u201d > > \u201c \u9009\u9879 \u201d \u4e00\u680f \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u770b\u5230 \u5f53\u524d \u4ee3\u7801 \u9875 \u7684 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \uff09 \u3002 3 . \u5f00\u59cb \u4eff\u771f : \u6309 Play \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6309\u952e \u79fb\u52a8 \u76f8\u673a WASD \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 PythonAPI \\ examples \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples pip3 install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI \\ examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 \u3002","title":"\u6784\u5efa Carla"},{"location":"build_windows/#_9","text":"\u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002 make downloadplugin \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 StreetMap \u3002 make setup \u6784 \u4e0b\u8f7d \u5e76 \u751f\u6210 \u4f9d\u8d56 \u5e93 make LibCarla \u521b\u5efa LibCarla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u670d\u52a1\u7aef \uff08 make server + make client \uff09 make osm2odr \u521b\u5efa OSM \u8f6c OpenDRIVE \u7684 \u5e93 make import \u5bfc\u5165 \u8d44\u4ea7","title":"\u5176\u4ed6 \u6784\u5efa \u547d\u4ee4"},{"location":"build_windows/#_10","text":"\u6267\u884c make osm2odr \u62a5\u9519 \uff1a CMake Error : The source directory \" D : / work / workspace / carla / Build / osm2odr - visualstudio / x64 \" does not appear to contain CMakeLists . txt . Specify -- help for usage , or press the help button on the CMake GUI . Error : could not load cache \u4ece \u5176\u4ed6 \u5730\u65b9 \u628a Build \\ osm2odr - visualstudio \\ CMakeCache . txt \u62f7\u8d1d \u8fc7\u6765 \uff0c \u4fee\u6539 \u91cc\u9762 \u5bf9\u5e94 \u7684 \u76ee\u5f55 \u4e3a \u5f53\u524d \u5de5\u7a0b \u7684 \u76ee\u5f55 \u3002 \u6267\u884c make PythonAPI \u62a5\u9519 \uff1a libcarla . obj : error LNK2001 : \u65e0\u6cd5 \u89e3\u6790 \u7684 \u5916\u90e8 \u7b26\u53f7 \" class std : : basic _ string < char , struct std : : char _ traits < char > , class std : : allocator < char > > __ cdecl osm2odr : : ConvertOSMToOpenDRIVE ( class std : : basic _ string < char , struct std : : char _ traits < char > , class std : : allocator < char > > , struct osm2odr : : OSM2ODRSettings ) \" ( ? ConvertOSMToOpenDRIVE @ osm2odr @ @ YA ? AV ? $ basic _ string @ DU ? $ char _ traits @ D @ std @ @ V ? $ allocator @ D @ 2 @ @ std @ @ V23 @ UOSM2ODRSettings @ 1 @ @ Z ) \u4ece \u5176\u4ed6 \u7f16\u8bd1 \u6210\u529f \u7684 \u5730\u65b9 \u5c06 PythonAPI \\ carla \\ dependencies \\ lib \\ osm2odr . lib \u62f7\u8d1d \u8fc7\u6765 \u3002 \u6709\u5173 \u672c \u6307\u5357 \u7684 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u6784\u5efa \u4e86 Carla \uff0c \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u4e86\u89e3 \u5982\u4f55 \u66f4\u65b0 Carla \u6784\u5efa \u6216 \u5728 \u4eff\u771f \u4e2d \u8fc8\u51fa \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u5e76 \u5b66\u4e60 \u4e00\u4e9b \u6838\u5fc3 \u6982\u5ff5 \u3002 \u66f4\u65b0 Carla \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"\u62a5\u9519"},{"location":"carla_ackermann_control/","text":"Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 carla _ ackermann _ control \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7528\u4e8e \u901a\u8fc7 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u63a7\u5236 Carla \u8f66\u8f86 \u3002 \u8be5\u5305 \u5c06 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u8f6c\u6362 \u4e3a CarlaEgoVehicleControl \u6d88\u606f \u3002 \u5b83 \u4ece Carla \u8bfb\u53d6 \u8f66\u8f86 \u4fe1\u606f \uff0c \u5e76 \u5c06 \u8be5 \u4fe1\u606f \u4f20\u9012 \u7ed9 \u57fa\u4e8e Python \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u8c03\u7528 simple - pid \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u63a7\u5236 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u901f\u5ea6 \u3002 \u914d\u7f6e \u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u914d\u7f6e \u4f7f\u7528 ROS 1 \u548c ROS 2 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u521d\u59cb \u8bbe\u7f6e \u53c2\u6570 \uff0c \u4e5f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u901a\u8fc7 ROS 1 \u4e2d \u7684 ROS \u52a8\u6001 \u91cd\u65b0 \u914d\u7f6e \u91cd\u65b0\u914d\u7f6e \u6765 \u8bbe\u7f6e \u53c2\u6570 \u3002 \u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f \u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / ackermann _ cmd \u5411 \u6c7d\u8f66 \u53d1\u9001 \u547d\u4ee4 \u6765 \u6d4b\u8bd5 \u8bbe\u7f6e \u3002 \u4f8b\u5982 \uff0c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 10 \u7c73 / \u79d2 \u7684 \u901f\u5ea6 \u79fb\u52a8 \u89d2\u8272 \u540d\u79f0 \u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 \u6216\u8005 \u8ba9 \u8f66\u8f86 \u5411\u524d \u79fb\u52a8 \uff0c \u540c\u65f6 \u8f6c\u5f2f 1.22 \u5f27\u5ea6 \u7684 \u89d2\u5ea6 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ cmd ackermann _ msgs . AckermannDrive \u8f6c\u5411 \u547d\u4ee4 \u7684 \u8ba2\u9605 \u8005 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ control / control _ info carla _ ackermann _ control . EgoVehicleControlInfo \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u4f7f\u7528 \u7684 \u5f53\u524d \u503c \uff08 \u5bf9\u4e8e \u8c03\u8bd5 \u6709\u7528 \uff09","title":"Carla \u963f\u514b\u66fc \u63a7\u5236"},{"location":"carla_ackermann_control/#carla","text":"carla _ ackermann _ control \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7528\u4e8e \u901a\u8fc7 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u63a7\u5236 Carla \u8f66\u8f86 \u3002 \u8be5\u5305 \u5c06 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u8f6c\u6362 \u4e3a CarlaEgoVehicleControl \u6d88\u606f \u3002 \u5b83 \u4ece Carla \u8bfb\u53d6 \u8f66\u8f86 \u4fe1\u606f \uff0c \u5e76 \u5c06 \u8be5 \u4fe1\u606f \u4f20\u9012 \u7ed9 \u57fa\u4e8e Python \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u8c03\u7528 simple - pid \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u63a7\u5236 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u901f\u5ea6 \u3002 \u914d\u7f6e \u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03","title":"Carla \u963f\u514b\u66fc \u63a7\u5236"},{"location":"carla_ackermann_control/#_1","text":"\u4f7f\u7528 ROS 1 \u548c ROS 2 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u521d\u59cb \u8bbe\u7f6e \u53c2\u6570 \uff0c \u4e5f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u901a\u8fc7 ROS 1 \u4e2d \u7684 ROS \u52a8\u6001 \u91cd\u65b0 \u914d\u7f6e \u91cd\u65b0\u914d\u7f6e \u6765 \u8bbe\u7f6e \u53c2\u6570 \u3002","title":"\u914d\u7f6e"},{"location":"carla_ackermann_control/#_2","text":"\u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / ackermann _ cmd \u5411 \u6c7d\u8f66 \u53d1\u9001 \u547d\u4ee4 \u6765 \u6d4b\u8bd5 \u8bbe\u7f6e \u3002 \u4f8b\u5982 \uff0c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 10 \u7c73 / \u79d2 \u7684 \u901f\u5ea6 \u79fb\u52a8 \u89d2\u8272 \u540d\u79f0 \u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 \u6216\u8005 \u8ba9 \u8f66\u8f86 \u5411\u524d \u79fb\u52a8 \uff0c \u540c\u65f6 \u8f6c\u5f2f 1.22 \u5f27\u5ea6 \u7684 \u89d2\u5ea6 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10","title":"\u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f"},{"location":"carla_ackermann_control/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_ackermann_control/#_3","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ cmd ackermann _ msgs . AckermannDrive \u8f6c\u5411 \u547d\u4ee4 \u7684 \u8ba2\u9605 \u8005","title":"\u8ba2\u9605"},{"location":"carla_ackermann_control/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ control / control _ info carla _ ackermann _ control . EgoVehicleControlInfo \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u4f7f\u7528 \u7684 \u5f53\u524d \u503c \uff08 \u5bf9\u4e8e \u8c03\u8bd5 \u6709\u7528 \uff09","title":"\u53d1\u5e03"},{"location":"carla_ad_agent/","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u662f \u4e00\u79cd \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \uff0c \u53ef\u4ee5 \u9075\u5faa \u7ed9\u5b9a \u8def\u7ebf \uff0c \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \uff0c \u5e76 \u901a\u8fc7 \u8bbf\u95ee \u771f\u5b9e \u6570\u636e \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 \u5b83 \u6765 \u63d0\u4f9b \u5982\u4f55 \u4f7f\u7528 ROS \u6865 \u7684 \u793a\u4f8b \u3002 \u9700\u6c42 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9 \u53c2\u6570 \u8ba2\u9605 \u53d1\u5e03 \u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9 \u53c2\u6570 \u53d1\u5e03 \u8ba2\u9605 \u5728 \u5185\u90e8 \uff0c Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u4f7f\u7528 \u5355\u72ec \u7684 \u8282\u70b9 \u8fdb\u884c \u672c\u5730 \u89c4\u5212 \u3002 \u8be5 \u8282\u70b9 \u5df2 \u9488\u5bf9 vehicle . tesla . model3 \u8fdb\u884c \u4e86 \u4f18\u5316 \uff0c \u56e0\u4e3a \u5b83 \u6ca1\u6709 \u4efb\u4f55 \u6362\u6863 \u5ef6\u8fdf \u3002 PID \u53c2\u6570 \u901a\u8fc7 Ziegler - Nichols \u65b9\u6cd5 \u91c7\u96c6 \u3002 \u9700\u6c42 \u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ ad _ agent \uff0c \u9700\u8981 \u751f\u6210 \u6700\u5c11 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6 \uff08 \u6709\u5173 \u5982\u4f55 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \uff1a \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . odom ) \uff0c \u5176 \u89d2\u8272 \u540d odometry \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u4e00\u4e2a \u5bf9\u8c61 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . objects ) \uff0c \u5176 \u89d2\u8272 \u540d objects \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u5177\u6709 \u89d2\u8272 \u540d\u79f0 traffic _ lights \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . traffic _ lights ) \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9 \u53c2\u6570 \u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 avoid _ risk bool ( default : true ) \u5982\u679c \u4e3a \u771f \uff0c \u5219 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u76f8\u649e \u5e76 \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / target _ speed std _ msgs / Float64 \u81ea\u6211 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / vehicle _ info carla _ msgs / CarlaEgoVehicleInfo \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 id / carla / < ROLE NAME > / objects derived _ object _ msgs / ObjectArray \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f / carla / traffic _ lights / status carla _ msgs / CarlaTrafficLightStatusList \u83b7\u53d6 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u5f53\u524d \u72b6\u6001 / carla / traffic _ lights / info carla _ msgs / CarlaTrafficLightInfoList \u83b7\u53d6 \u6709\u5173 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4fe1\u606f \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6 \u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9 \u53c2\u6570 \u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 control _ time _ step float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 ) \u63a7\u5236 \u5faa\u73af \u901f\u7387 Kp _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.9 ) \u6bd4\u4f8b \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u79ef\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u5fae\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kp _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.206 ) \u6bd4\u4f8b \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0206 ) \u79ef\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.515 ) \u5fae\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs / Path \u9075\u5faa \u7684 \u8def\u7ebf / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / next _ target visualization _ msgs / Marker \u4e0b \u4e00\u4e2a \u76ee\u6807 \u59ff\u52bf \u6807\u8bb0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \u8f66\u8f86 \u63a7\u5236 \u6307\u4ee4 \u63a7\u5236\u6307\u4ee4","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53"},{"location":"carla_ad_agent/#carla","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u662f \u4e00\u79cd \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \uff0c \u53ef\u4ee5 \u9075\u5faa \u7ed9\u5b9a \u8def\u7ebf \uff0c \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \uff0c \u5e76 \u901a\u8fc7 \u8bbf\u95ee \u771f\u5b9e \u6570\u636e \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 \u5b83 \u6765 \u63d0\u4f9b \u5982\u4f55 \u4f7f\u7528 ROS \u6865 \u7684 \u793a\u4f8b \u3002 \u9700\u6c42 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9 \u53c2\u6570 \u8ba2\u9605 \u53d1\u5e03 \u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9 \u53c2\u6570 \u53d1\u5e03 \u8ba2\u9605 \u5728 \u5185\u90e8 \uff0c Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u4f7f\u7528 \u5355\u72ec \u7684 \u8282\u70b9 \u8fdb\u884c \u672c\u5730 \u89c4\u5212 \u3002 \u8be5 \u8282\u70b9 \u5df2 \u9488\u5bf9 vehicle . tesla . model3 \u8fdb\u884c \u4e86 \u4f18\u5316 \uff0c \u56e0\u4e3a \u5b83 \u6ca1\u6709 \u4efb\u4f55 \u6362\u6863 \u5ef6\u8fdf \u3002 PID \u53c2\u6570 \u901a\u8fc7 Ziegler - Nichols \u65b9\u6cd5 \u91c7\u96c6 \u3002","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53"},{"location":"carla_ad_agent/#_1","text":"\u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ ad _ agent \uff0c \u9700\u8981 \u751f\u6210 \u6700\u5c11 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6 \uff08 \u6709\u5173 \u5982\u4f55 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \uff1a \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . odom ) \uff0c \u5176 \u89d2\u8272 \u540d odometry \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u4e00\u4e2a \u5bf9\u8c61 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . objects ) \uff0c \u5176 \u89d2\u8272 \u540d objects \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u5177\u6709 \u89d2\u8272 \u540d\u79f0 traffic _ lights \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . traffic _ lights ) \u3002","title":"\u9700\u6c42"},{"location":"carla_ad_agent/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_ad_agent/#_2","text":"","title":"\u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9"},{"location":"carla_ad_agent/#_3","text":"\u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 avoid _ risk bool ( default : true ) \u5982\u679c \u4e3a \u771f \uff0c \u5219 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u76f8\u649e \u5e76 \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f","title":"\u53c2\u6570"},{"location":"carla_ad_agent/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / target _ speed std _ msgs / Float64 \u81ea\u6211 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / vehicle _ info carla _ msgs / CarlaEgoVehicleInfo \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 id / carla / < ROLE NAME > / objects derived _ object _ msgs / ObjectArray \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f / carla / traffic _ lights / status carla _ msgs / CarlaTrafficLightStatusList \u83b7\u53d6 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u5f53\u524d \u72b6\u6001 / carla / traffic _ lights / info carla _ msgs / CarlaTrafficLightInfoList \u83b7\u53d6 \u6709\u5173 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4fe1\u606f","title":"\u8ba2\u9605"},{"location":"carla_ad_agent/#_5","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6","title":"\u53d1\u5e03"},{"location":"carla_ad_agent/#_6","text":"","title":"\u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9"},{"location":"carla_ad_agent/#_7","text":"\u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 control _ time _ step float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 ) \u63a7\u5236 \u5faa\u73af \u901f\u7387 Kp _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.9 ) \u6bd4\u4f8b \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u79ef\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u5fae\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kp _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.206 ) \u6bd4\u4f8b \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0206 ) \u79ef\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.515 ) \u5fae\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668","title":"\u53c2\u6570"},{"location":"carla_ad_agent/#_8","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs / Path \u9075\u5faa \u7684 \u8def\u7ebf / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6","title":"\u8ba2\u9605"},{"location":"carla_ad_agent/#_9","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / next _ target visualization _ msgs / Marker \u4e0b \u4e00\u4e2a \u76ee\u6807 \u59ff\u52bf \u6807\u8bb0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \u8f66\u8f86 \u63a7\u5236 \u6307\u4ee4 \u63a7\u5236\u6307\u4ee4","title":"\u53d1\u5e03"},{"location":"carla_ad_demo/","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u81ea\u52a8 \u9a7e\u9a76 \u662f \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u8fd0\u884c \u6f14\u793a \u968f\u673a \u8def\u7ebf \u573a\u666f \u6267\u884c \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5b89\u88c5 Scenario Runner \u5e76 \u6309\u7167 Scenario Runner \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u9a8c\u8bc1 \u5176 \u662f\u5426 \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Scenario Runner \u5b89\u88c5 \uff1a export SCENARIO _ RUNNER _ PATH = < path _ to _ scenario _ runner > \u8fd0\u884c \u6f14\u793a \u968f\u673a \u8def\u7ebf \u8981 \u542f\u52a8 \u81ea\u6211 \u8f66\u8f86 \u9075\u5faa \u968f\u673a \u751f\u6210 \u7684 \u8def\u7ebf \u7684 \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ad _ demo carla _ ad _ demo . launch # ROS 2 ros2 launch carla _ ad _ demo carla _ ad _ demo . launch . py \u60a8 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u751f\u6210 \u66f4 \u591a \u8f66\u8f86 \u6216 \u884c\u4eba \uff1a cd < CARLA _ PATH > / PythonAPI / examples / python3 spawn _ npc . py \u573a\u666f \u6267\u884c \u8981 \u4f7f\u7528 \u9884\u5b9a \u4e49 \u573a\u666f \u6267\u884c \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS1 roslaunch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch # ROS2 ros2 launch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch . py \u5728 RVIZ Carla \u63d2\u4ef6 \u4e2d \u9009\u62e9 \u793a\u4f8b \u573a\u666f \u201c FollowLeadingVehicle \u201d \uff0c \u7136\u540e \u6309 \u201c \u6267\u884c \u201d \u3002 \u81ea\u6211 \u8f66\u8f86 \u91cd\u65b0 \u5b9a\u4f4d \u5e76 \u5904\u7406 \u573a\u666f \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / available _ scenarios \u6765 \u6307\u5b9a \u81ea\u5df1 \u7684 \u573a\u666f \u3002 \u542f\u52a8 \u6587\u4ef6 \u663e\u793a \u4e86 \u5982\u4f55 \u6267\u884c \u6b64 \u64cd\u4f5c \u7684 \u793a\u4f8b \uff1a < node pkg = \" rostopic \" type = \" rostopic \" name = \" publish _ scenarios \" args = \" pub / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList ' { ' scenarios ' : [ { ' name ' : ' FollowLeadingVehicle ' , ' scenario _ file ' : ' $ ( find carla _ ad _ demo ) / config / FollowLeadingVehicle . xosc ' } ] } ' - l \" / >","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a"},{"location":"carla_ad_demo/#carla","text":"\u81ea\u52a8 \u9a7e\u9a76 \u662f \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u8fd0\u884c \u6f14\u793a \u968f\u673a \u8def\u7ebf \u573a\u666f \u6267\u884c","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a"},{"location":"carla_ad_demo/#_1","text":"\u5b89\u88c5 Scenario Runner \u5e76 \u6309\u7167 Scenario Runner \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u9a8c\u8bc1 \u5176 \u662f\u5426 \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Scenario Runner \u5b89\u88c5 \uff1a export SCENARIO _ RUNNER _ PATH = < path _ to _ scenario _ runner >","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"carla_ad_demo/#_2","text":"","title":"\u8fd0\u884c \u6f14\u793a"},{"location":"carla_ad_demo/#_3","text":"\u8981 \u542f\u52a8 \u81ea\u6211 \u8f66\u8f86 \u9075\u5faa \u968f\u673a \u751f\u6210 \u7684 \u8def\u7ebf \u7684 \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ad _ demo carla _ ad _ demo . launch # ROS 2 ros2 launch carla _ ad _ demo carla _ ad _ demo . launch . py \u60a8 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u751f\u6210 \u66f4 \u591a \u8f66\u8f86 \u6216 \u884c\u4eba \uff1a cd < CARLA _ PATH > / PythonAPI / examples / python3 spawn _ npc . py","title":"\u968f\u673a \u8def\u7ebf"},{"location":"carla_ad_demo/#_4","text":"\u8981 \u4f7f\u7528 \u9884\u5b9a \u4e49 \u573a\u666f \u6267\u884c \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS1 roslaunch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch # ROS2 ros2 launch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch . py \u5728 RVIZ Carla \u63d2\u4ef6 \u4e2d \u9009\u62e9 \u793a\u4f8b \u573a\u666f \u201c FollowLeadingVehicle \u201d \uff0c \u7136\u540e \u6309 \u201c \u6267\u884c \u201d \u3002 \u81ea\u6211 \u8f66\u8f86 \u91cd\u65b0 \u5b9a\u4f4d \u5e76 \u5904\u7406 \u573a\u666f \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / available _ scenarios \u6765 \u6307\u5b9a \u81ea\u5df1 \u7684 \u573a\u666f \u3002 \u542f\u52a8 \u6587\u4ef6 \u663e\u793a \u4e86 \u5982\u4f55 \u6267\u884c \u6b64 \u64cd\u4f5c \u7684 \u793a\u4f8b \uff1a < node pkg = \" rostopic \" type = \" rostopic \" name = \" publish _ scenarios \" args = \" pub / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList ' { ' scenarios ' : [ { ' name ' : ' FollowLeadingVehicle ' , ' scenario _ file ' : ' $ ( find carla _ ad _ demo ) / config / FollowLeadingVehicle . xosc ' } ] } ' - l \" / >","title":"\u573a\u666f \u6267\u884c"},{"location":"carla_manual_control/","text":"Carla \u624b\u52a8 \u63a7\u5236 CARLA \u624b\u52a8 \u63a7\u5236 \u5305 \u662f \u4e0e Carla \u4e00\u8d77 \u6253\u5305 \u7684 manual _ control . py \u811a\u672c \u7684 \u4ec5 ROS \u7248\u672c \u3002 \u6240\u6709 \u6570\u636e \u5747 \u901a\u8fc7 ROS \u4e3b\u9898 \u63a5\u6536 \u3002 \u9700\u6c42 \u8fd0\u884c \u5305 \u9700\u6c42 \u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ manual _ control \uff0c \u9700\u8981 \u5c06 \u4e00\u4e9b \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6709\u5173 \u5982\u4f55 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \u5bf9\u8c61 \uff09 \uff1a to display an image : \u89d2\u8272 \u540d\u4e3a rgb _ view \u548c \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e3a 800x600 \u7684 \u76f8\u673a \u3002 to display the current position : \u5177\u6709 \u89d2\u8272 \u540d\u79f0 gnss \u7684 GNSS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5177\u6709 \u89d2\u8272 \u540d odometry \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on lane invasions : \u5177\u6709 \u89d2\u8272 \u540d lane _ invasion \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on collisons : \u5177\u6709 \u89d2\u8272 \u540d collision \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8fd0\u884c \u5305 \u8981 \u8fd0\u884c \u5305 \uff1a 1 . \u786e\u4fdd Carla \u6b63\u5728 \u8fd0\u884c \u3002 \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u751f\u6210 \u5bf9\u8c61 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u542f\u52a8 carla _ manual _ control \u8282\u70b9 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py 4 . \u8981 \u624b\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u8bf7 \u6309 \u201c B \u201d \u3002 \u6309 \u201c H \u201d \u67e5\u770b \u8bf4\u660e \u3002 \u6216\u8005 \uff0c \u5c06 \u4e0a\u8ff0 \u6240\u6709 \u547d\u4ee4 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u5355\u72ec \u7684 \u542f\u52a8 \u6587\u4ef6 \uff0c \u5e76 \u53ef\u4ee5 \u901a\u8fc7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u540c\u65f6 \u8fd0\u884c \uff1a # 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","title":"Carla \u624b\u52a8 \u63a7\u5236"},{"location":"carla_manual_control/#carla","text":"CARLA \u624b\u52a8 \u63a7\u5236 \u5305 \u662f \u4e0e Carla \u4e00\u8d77 \u6253\u5305 \u7684 manual _ control . py \u811a\u672c \u7684 \u4ec5 ROS \u7248\u672c \u3002 \u6240\u6709 \u6570\u636e \u5747 \u901a\u8fc7 ROS \u4e3b\u9898 \u63a5\u6536 \u3002 \u9700\u6c42 \u8fd0\u884c \u5305","title":"Carla \u624b\u52a8 \u63a7\u5236"},{"location":"carla_manual_control/#_1","text":"\u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ manual _ control \uff0c \u9700\u8981 \u5c06 \u4e00\u4e9b \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6709\u5173 \u5982\u4f55 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \u5bf9\u8c61 \uff09 \uff1a to display an image : \u89d2\u8272 \u540d\u4e3a rgb _ view \u548c \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e3a 800x600 \u7684 \u76f8\u673a \u3002 to display the current position : \u5177\u6709 \u89d2\u8272 \u540d\u79f0 gnss \u7684 GNSS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5177\u6709 \u89d2\u8272 \u540d odometry \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on lane invasions : \u5177\u6709 \u89d2\u8272 \u540d lane _ invasion \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on collisons : \u5177\u6709 \u89d2\u8272 \u540d collision \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002","title":"\u9700\u6c42"},{"location":"carla_manual_control/#_2","text":"\u8981 \u8fd0\u884c \u5305 \uff1a 1 . \u786e\u4fdd Carla \u6b63\u5728 \u8fd0\u884c \u3002 \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u751f\u6210 \u5bf9\u8c61 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u542f\u52a8 carla _ manual _ control \u8282\u70b9 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py 4 . \u8981 \u624b\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u8bf7 \u6309 \u201c B \u201d \u3002 \u6309 \u201c H \u201d \u67e5\u770b \u8bf4\u660e \u3002 \u6216\u8005 \uff0c \u5c06 \u4e0a\u8ff0 \u6240\u6709 \u547d\u4ee4 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u5355\u72ec \u7684 \u542f\u52a8 \u6587\u4ef6 \uff0c \u5e76 \u53ef\u4ee5 \u901a\u8fc7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u540c\u65f6 \u8fd0\u884c \uff1a # 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","title":"\u8fd0\u884c \u5305"},{"location":"carla_plugin/","text":"\u865a\u5e7b \u5f15\u64ce \u7684 Carla \u63d2\u4ef6 \u5404\u4e2a \u7c7b \u7684 \u7ee7\u627f \u5173\u7cfb \u56fe \uff1a C++ \u6587\u6863","title":"Carla plugin"},{"location":"carla_plugin/#carla","text":"\u5404\u4e2a \u7c7b \u7684 \u7ee7\u627f \u5173\u7cfb \u56fe \uff1a C++ \u6587\u6863","title":"\u865a\u5e7b \u5f15\u64ce \u7684 Carla \u63d2\u4ef6"},{"location":"carla_ros_scenario_runner/","text":"Carla ROS Scenario Runner The CARLA ROS Scenario Runner \u5305 \u662f \u4e00\u4e2a \u5305\u88c5 \u5668 \uff0c \u7528\u4e8e \u901a\u8fc7 ROS \u4f7f\u7528 CARLA Scenario Runner \u6267\u884c OpenScenarios \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u4f7f\u7528 ROS Scenario Runner \u8fd0\u884c ROS Scenario Runner ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u670d\u52a1 \u53d1\u5e03 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u6309\u7167 Scenario Runner \u5165\u95e8 \u201d \u6559\u7a0b \u5b89\u88c5 Scenario Runner \u3002 \u5b89\u88c5 Python \u6a21\u5757 Pexpect : sudo apt install python - pexpect \u4f7f\u7528 ROS Scenario Runner ROS Scenario Runner \u6700\u597d \u5728 rviz _ carla _ plugin \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u652f\u6301 \u66f4\u6539 \u5730\u56fe \u3002 \u6bcf\u4e2a \u573a\u666f \u90fd \u9700\u8981 \u4f7f\u7528 \u5f53\u524d \u6d3b\u52a8 \u7684 \u5730\u56fe \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \u573a\u666f \u3002 \u7279\u522b \u91cd\u8981 \u7684 \u662f ROS \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \uff1a < Controller name = \" EgoVehicleAgent \" > < Properties > < Property name = \" module \" value = \" carla _ ros _ scenario _ runner . ros _ vehicle _ control \" / > < Property name = \" launch \" value = \" carla _ ad _ agent . launch \" / > < Property name = \" launch - package \" value = \" carla _ ad _ agent \" / > < Property name = \" path _ topic _ name \" value = \" waypoints \" / > < / Properties > < / Controller > \u4e0a\u9762 \u7684 \u4ee3\u7801 \u793a\u4f8b \u663e\u793a \u4e86 \u4e00\u4e2a \u6b63\u5728 \u542f\u52a8 \u7684 carla _ ad _ agent \u5b9e\u4f8b \u3002 \u4efb\u4f55 \u9644\u52a0 \u5185\u5bb9 < Property > \u90fd \u5e94 \u4f5c\u4e3a ROS \u53c2\u6570 \u9644\u52a0 \uff08 \u540d\u79f0 : = \u503c \uff09 \u3002 \u8fd0\u884c ROS Scenario Runner 1 . \u8fd0\u884c ROS Scenario Runner \u5305 \uff1a # ROS 1 roslaunch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch scenario _ runner _ path : = < path _ to _ scenario _ runner > # ROS 2 ros2 launch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch . py scenario _ runner _ path : = < path _ to _ scenario _ runner > 2 . \u8fd0\u884c \u573a\u666f \uff1a # ROS 1 rosservice call / scenario _ runner / execute _ scenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \" # ROS 2 ros2 service call / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / srv / ExecuteScenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \" ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u670d\u52a1 \u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types . ExecuteScenario \u6267\u884c \u4e00\u4e2a \u573a\u666f \u3002 \u5982\u679c \u5f53\u524d \u6b63\u5728 \u8fd0\u884c \u53e6 \u4e00\u4e2a \u573a\u666f \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / status carla _ ros _ scenario _ runner _ types . CarlaScenarioRunnerStatus \u573a\u666f \u8fd0\u884c \u5668 \u6267\u884c \u7684 \u5f53\u524d \u72b6\u6001 \uff08 \u7531 rviz _ carla _ plugin \u4f7f\u7528 \uff09 \u63a7\u5236 \u63a7\u5236\u5668 ros _ vehicle _ control \u63d0\u4f9b \u4ee5\u4e0b \u4e3b\u9898 \uff1a \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs . Path \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u8def\u5f84 \u3002 \u6ce8 \uff1a \u53ef\u4ee5 \u901a\u8fc7 \u4fee\u6539 \u53c2\u6570 path _ topic _ name \u6765 \u66f4\u6539 \u4e3b\u9898 \u540d\u79f0 / carla / < ROLE NAME > / target _ speed std _ msgs . Float64 \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u76ee\u6807 \u901f\u5ea6","title":"Carla ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#carla-ros-scenario-runner","text":"The CARLA ROS Scenario Runner \u5305 \u662f \u4e00\u4e2a \u5305\u88c5 \u5668 \uff0c \u7528\u4e8e \u901a\u8fc7 ROS \u4f7f\u7528 CARLA Scenario Runner \u6267\u884c OpenScenarios \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u4f7f\u7528 ROS Scenario Runner \u8fd0\u884c ROS Scenario Runner ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u670d\u52a1 \u53d1\u5e03","title":"Carla ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#_1","text":"\u6309\u7167 Scenario Runner \u5165\u95e8 \u201d \u6559\u7a0b \u5b89\u88c5 Scenario Runner \u3002 \u5b89\u88c5 Python \u6a21\u5757 Pexpect : sudo apt install python - pexpect","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"carla_ros_scenario_runner/#ros-scenario-runner","text":"ROS Scenario Runner \u6700\u597d \u5728 rviz _ carla _ plugin \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u652f\u6301 \u66f4\u6539 \u5730\u56fe \u3002 \u6bcf\u4e2a \u573a\u666f \u90fd \u9700\u8981 \u4f7f\u7528 \u5f53\u524d \u6d3b\u52a8 \u7684 \u5730\u56fe \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \u573a\u666f \u3002 \u7279\u522b \u91cd\u8981 \u7684 \u662f ROS \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \uff1a < Controller name = \" EgoVehicleAgent \" > < Properties > < Property name = \" module \" value = \" carla _ ros _ scenario _ runner . ros _ vehicle _ control \" / > < Property name = \" launch \" value = \" carla _ ad _ agent . launch \" / > < Property name = \" launch - package \" value = \" carla _ ad _ agent \" / > < Property name = \" path _ topic _ name \" value = \" waypoints \" / > < / Properties > < / Controller > \u4e0a\u9762 \u7684 \u4ee3\u7801 \u793a\u4f8b \u663e\u793a \u4e86 \u4e00\u4e2a \u6b63\u5728 \u542f\u52a8 \u7684 carla _ ad _ agent \u5b9e\u4f8b \u3002 \u4efb\u4f55 \u9644\u52a0 \u5185\u5bb9 < Property > \u90fd \u5e94 \u4f5c\u4e3a ROS \u53c2\u6570 \u9644\u52a0 \uff08 \u540d\u79f0 : = \u503c \uff09 \u3002","title":"\u4f7f\u7528 ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#ros-scenario-runner_1","text":"1 . \u8fd0\u884c ROS Scenario Runner \u5305 \uff1a # ROS 1 roslaunch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch scenario _ runner _ path : = < path _ to _ scenario _ runner > # ROS 2 ros2 launch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch . py scenario _ runner _ path : = < path _ to _ scenario _ runner > 2 . \u8fd0\u884c \u573a\u666f \uff1a # ROS 1 rosservice call / scenario _ runner / execute _ scenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \" # ROS 2 ros2 service call / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / srv / ExecuteScenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \"","title":"\u8fd0\u884c ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_ros_scenario_runner/#_2","text":"\u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types . ExecuteScenario \u6267\u884c \u4e00\u4e2a \u573a\u666f \u3002 \u5982\u679c \u5f53\u524d \u6b63\u5728 \u8fd0\u884c \u53e6 \u4e00\u4e2a \u573a\u666f \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002","title":"\u670d\u52a1"},{"location":"carla_ros_scenario_runner/#_3","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / status carla _ ros _ scenario _ runner _ types . CarlaScenarioRunnerStatus \u573a\u666f \u8fd0\u884c \u5668 \u6267\u884c \u7684 \u5f53\u524d \u72b6\u6001 \uff08 \u7531 rviz _ carla _ plugin \u4f7f\u7528 \uff09 \u63a7\u5236 \u63a7\u5236\u5668 ros _ vehicle _ control \u63d0\u4f9b \u4ee5\u4e0b \u4e3b\u9898 \uff1a \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs . Path \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u8def\u5f84 \u3002 \u6ce8 \uff1a \u53ef\u4ee5 \u901a\u8fc7 \u4fee\u6539 \u53c2\u6570 path _ topic _ name \u6765 \u66f4\u6539 \u4e3b\u9898 \u540d\u79f0 / carla / < ROLE NAME > / target _ speed std _ msgs . Float64 \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u76ee\u6807 \u901f\u5ea6","title":"\u53d1\u5e03"},{"location":"carla_spawn_objects/","text":"Carla \u751f\u6210 \u5bf9\u8c61 carla _ spawn _ objects \u5305 \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff09 \u5e76 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u5b83\u4eec \u4e0a \u3002 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u521b\u5efa \u914d\u7f6e \u751f\u6210 \u8f66\u8f86 \u8f66\u8f86 \u518d \u751f\u6210 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u5bf9\u8c61 \u53ca\u5176 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u901a\u8fc7 . json \u6587\u4ef6 \u5b9a\u4e49 \u3002 \u8be5 \u6587\u4ef6 \u7684 \u9ed8\u8ba4 \u4f4d\u7f6e \u5728 carla _ spawn _ objects / config / objects . json . \u8981 \u66f4\u6539 \u4f4d\u7f6e \uff0c \u8bf7 \u5728 \u542f\u52a8 \u5305\u65f6 \u901a\u8fc7 \u79c1\u6709 ROS \u53c2\u6570 objects _ definition _ file \u4f20\u9012 \u6587\u4ef6 \u8def\u5f84 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch objects _ definition _ file : = path / to / objects . json # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py objects _ definition _ file : = path / to / objects . json \u521b\u5efa \u914d\u7f6e \u60a8 \u53ef\u4ee5 \u5728 ros - bridge repository \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u793a\u4f8b \uff0c \u5e76 \u6309\u7167 \u6b64 \u5927\u7eb2 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \uff1a { \" objects \" : [ { \" type \" : \" < SENSOR - TYPE > \" , \" id \" : \" < NAME > \" , \" spawn _ point \" : { \" x \" : 0.0 , \" y \" : 0.0 , \" z \" : 0.0 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : 0.0 } , < ADDITIONAL - SENSOR - ATTRIBUTES > } , { \" type \" : \" < VEHICLE - TYPE > \" , \" id \" : \" < VEHICLE - NAME > \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , \" sensors \" : [ < SENSORS - TO - ATTACH - TO - VEHICLE > ] } ... ] } \u7b14\u8bb0 \u8bf7 \u8bb0\u4f4f \uff0c \u76f4\u63a5 \u5b9a\u4e49 \u4f4d\u7f6e \u65f6 \uff0c ROS \u4f7f\u7528 \u53f3\u624b \u7cfb\u7edf \u3002 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u5747 \u6309\u7167 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u63cf\u8ff0 \u8fdb\u884c \u5b9a\u4e49 \u3002 \u751f\u6210 \u8f66\u8f86 \u5982\u679c \u6ca1\u6709 \u5b9a\u4e49 \u7279\u5b9a \u7684 \u751f\u6210 \u70b9 \uff0c \u8f66\u8f86 \u5c06 \u5728 \u968f\u673a \u4f4d\u7f6e \u751f\u6210 \u3002 \u8981 \u5b9a\u4e49 \u8f66\u8f86 \u751f\u6210 \u7684 \u4f4d\u7f6e \uff0c \u6709 \u4e24\u79cd \u9009\u62e9 \uff1a \u5c06 \u6240 \u9700 \u4f4d\u7f6e \u4f20\u9012 \u7ed9 ROS \u53c2\u6570 spawn _ point _ < VEHICLE - NAME > \u3002 < VEHICLE - NAME > \u5c06 \u662f \u60a8 \u5728 . json \u6587\u4ef6 \u4e2d \u63d0\u4f9b \u7684 \u8f66\u8f86 id \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u521d\u59cb \u4f4d\u7f6e \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , } \u8f66\u8f86 \u518d \u751f\u6210 \u901a\u8fc7 \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / < CONTROLLER _ ID > / initialpose \uff0c \u8f66\u8f86 \u53ef\u4ee5 \u5728 \u4eff\u771f \u671f\u95f4 \u91cd\u751f \u5230 \u4e0d\u540c \u7684 \u4f4d\u7f6e \u3002 \u8981 \u4f7f\u7528 \u6b64 \u529f\u80fd \uff1a \u5c06 actor . pseudo . control \u4f2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9644\u52a0 \u5230 . json \u6587\u4ef6 \u4e2d \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u7528\u4e8e \u53d1\u5e03 \u5230 \u4e3b\u9898 \u7684 < CONTROLLER _ ID > \u503c \u5177\u6709 \u76f8\u540c \u7684 id \u503c \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" sensors \" : [ { \" type \" : \" actor . pseudo . control \" , \" id \" : \" control \" } ] } \u542f\u52a8 set _ inital _ pose \u8282\u70b9 \uff0c \u5c06 < CONTROLLER _ ID > \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 ROS \u53c2\u6570 controller _ id \uff08 \u9ed8\u8ba4 = ' control ' \uff09 \uff1a roslaunch carla _ spawn _ objects set _ initial _ pose . launch controller _ id : = < CONTROLLER _ ID > \u53d1\u5e03 \u6d88\u606f \u4ee5 \u8bbe\u7f6e \u65b0 \u4f4d\u7f6e \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u4f7f\u7528 RVIZ \u754c\u9762 \u4e2d \u63d0\u4f9b \u7684 2D Pose Estimate \u6309\u94ae \u3002 \u7136\u540e \uff0c \u60a8 \u53ef\u4ee5 \u5355\u51fb \u5730\u56fe \u7684 \u89c6\u53e3 \u4ee5 \u5728 \u8be5 \u4f4d\u7f6e \u91cd\u751f \u3002 \u8fd9 \u5c06 \u5220\u9664 \u5f53\u524d ego _ vehicle \u5bf9\u8c61 \u5e76 \u5728 \u6307\u5b9a \u4f4d\u7f6e \u91cd\u65b0 \u751f\u6210 \u5b83 \u3002 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u521d\u59cb \u4f4d\u7f6e \u5e94 \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \uff0c \u5982 \u4e0a\u9762 \u7684 \u8f66\u8f86 \u6240\u793a \u3002 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u70b9 \u88ab \u8ba4\u4e3a \u662f \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u7684 \u3002 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u73b0\u6709 \u7684 \u8f66\u8f86 \u4e0a \u3002 \u4e3a\u6b64 \uff1a \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 sensor . pseudo . actor _ list \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u8bbf\u95ee \u73b0\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002 ... { \" type \" : \" sensor . pseudo . actor _ list \" , \" id \" : \" actor _ list \" } , \u6839\u636e \u9700\u8981 \u5b9a\u4e49 \u5176\u4f59 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u542f\u52a8 \u8282\u70b9 \u5e76 \u5c06 spawn _ sensors _ only \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u4e3a True \u3002 \u8fd9 \u5c06 \u68c0\u67e5 \u4e0e \u6587\u4ef6 \u4e2d \u6307\u5b9a \u7684 \u89d2\u8272 \u76f8\u540c id \u548c type \u7684 \u89d2\u8272 \u662f\u5426 \u5df2 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \uff0c \u5982\u679c \u662f \uff0c \u5219 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u8be5 \u89d2\u8272 \u3002 # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ sensors _ only : = True # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ sensors _ only : = True","title":"Carla \u751f\u6210 \u5bf9\u8c61"},{"location":"carla_spawn_objects/#carla","text":"carla _ spawn _ objects \u5305 \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff09 \u5e76 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u5b83\u4eec \u4e0a \u3002 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u521b\u5efa \u914d\u7f6e \u751f\u6210 \u8f66\u8f86 \u8f66\u8f86 \u518d \u751f\u6210 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a","title":"Carla \u751f\u6210 \u5bf9\u8c61"},{"location":"carla_spawn_objects/#_1","text":"\u5bf9\u8c61 \u53ca\u5176 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u901a\u8fc7 . json \u6587\u4ef6 \u5b9a\u4e49 \u3002 \u8be5 \u6587\u4ef6 \u7684 \u9ed8\u8ba4 \u4f4d\u7f6e \u5728 carla _ spawn _ objects / config / objects . json . \u8981 \u66f4\u6539 \u4f4d\u7f6e \uff0c \u8bf7 \u5728 \u542f\u52a8 \u5305\u65f6 \u901a\u8fc7 \u79c1\u6709 ROS \u53c2\u6570 objects _ definition _ file \u4f20\u9012 \u6587\u4ef6 \u8def\u5f84 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch objects _ definition _ file : = path / to / objects . json # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py objects _ definition _ file : = path / to / objects . json","title":"\u914d\u7f6e \u548c \u4f20\u611f\u5668 \u8bbe\u7f6e"},{"location":"carla_spawn_objects/#_2","text":"\u60a8 \u53ef\u4ee5 \u5728 ros - bridge repository \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u793a\u4f8b \uff0c \u5e76 \u6309\u7167 \u6b64 \u5927\u7eb2 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \uff1a { \" objects \" : [ { \" type \" : \" < SENSOR - TYPE > \" , \" id \" : \" < NAME > \" , \" spawn _ point \" : { \" x \" : 0.0 , \" y \" : 0.0 , \" z \" : 0.0 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : 0.0 } , < ADDITIONAL - SENSOR - ATTRIBUTES > } , { \" type \" : \" < VEHICLE - TYPE > \" , \" id \" : \" < VEHICLE - NAME > \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , \" sensors \" : [ < SENSORS - TO - ATTACH - TO - VEHICLE > ] } ... ] } \u7b14\u8bb0 \u8bf7 \u8bb0\u4f4f \uff0c \u76f4\u63a5 \u5b9a\u4e49 \u4f4d\u7f6e \u65f6 \uff0c ROS \u4f7f\u7528 \u53f3\u624b \u7cfb\u7edf \u3002 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u5747 \u6309\u7167 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u63cf\u8ff0 \u8fdb\u884c \u5b9a\u4e49 \u3002","title":"\u521b\u5efa \u914d\u7f6e"},{"location":"carla_spawn_objects/#_3","text":"\u5982\u679c \u6ca1\u6709 \u5b9a\u4e49 \u7279\u5b9a \u7684 \u751f\u6210 \u70b9 \uff0c \u8f66\u8f86 \u5c06 \u5728 \u968f\u673a \u4f4d\u7f6e \u751f\u6210 \u3002 \u8981 \u5b9a\u4e49 \u8f66\u8f86 \u751f\u6210 \u7684 \u4f4d\u7f6e \uff0c \u6709 \u4e24\u79cd \u9009\u62e9 \uff1a \u5c06 \u6240 \u9700 \u4f4d\u7f6e \u4f20\u9012 \u7ed9 ROS \u53c2\u6570 spawn _ point _ < VEHICLE - NAME > \u3002 < VEHICLE - NAME > \u5c06 \u662f \u60a8 \u5728 . json \u6587\u4ef6 \u4e2d \u63d0\u4f9b \u7684 \u8f66\u8f86 id \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u521d\u59cb \u4f4d\u7f6e \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , }","title":"\u751f\u6210 \u8f66\u8f86"},{"location":"carla_spawn_objects/#_4","text":"\u901a\u8fc7 \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / < CONTROLLER _ ID > / initialpose \uff0c \u8f66\u8f86 \u53ef\u4ee5 \u5728 \u4eff\u771f \u671f\u95f4 \u91cd\u751f \u5230 \u4e0d\u540c \u7684 \u4f4d\u7f6e \u3002 \u8981 \u4f7f\u7528 \u6b64 \u529f\u80fd \uff1a \u5c06 actor . pseudo . control \u4f2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9644\u52a0 \u5230 . json \u6587\u4ef6 \u4e2d \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u7528\u4e8e \u53d1\u5e03 \u5230 \u4e3b\u9898 \u7684 < CONTROLLER _ ID > \u503c \u5177\u6709 \u76f8\u540c \u7684 id \u503c \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" sensors \" : [ { \" type \" : \" actor . pseudo . control \" , \" id \" : \" control \" } ] } \u542f\u52a8 set _ inital _ pose \u8282\u70b9 \uff0c \u5c06 < CONTROLLER _ ID > \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 ROS \u53c2\u6570 controller _ id \uff08 \u9ed8\u8ba4 = ' control ' \uff09 \uff1a roslaunch carla _ spawn _ objects set _ initial _ pose . launch controller _ id : = < CONTROLLER _ ID > \u53d1\u5e03 \u6d88\u606f \u4ee5 \u8bbe\u7f6e \u65b0 \u4f4d\u7f6e \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u4f7f\u7528 RVIZ \u754c\u9762 \u4e2d \u63d0\u4f9b \u7684 2D Pose Estimate \u6309\u94ae \u3002 \u7136\u540e \uff0c \u60a8 \u53ef\u4ee5 \u5355\u51fb \u5730\u56fe \u7684 \u89c6\u53e3 \u4ee5 \u5728 \u8be5 \u4f4d\u7f6e \u91cd\u751f \u3002 \u8fd9 \u5c06 \u5220\u9664 \u5f53\u524d ego _ vehicle \u5bf9\u8c61 \u5e76 \u5728 \u6307\u5b9a \u4f4d\u7f6e \u91cd\u65b0 \u751f\u6210 \u5b83 \u3002","title":"\u8f66\u8f86 \u518d \u751f\u6210"},{"location":"carla_spawn_objects/#_5","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u521d\u59cb \u4f4d\u7f6e \u5e94 \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \uff0c \u5982 \u4e0a\u9762 \u7684 \u8f66\u8f86 \u6240\u793a \u3002 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u70b9 \u88ab \u8ba4\u4e3a \u662f \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u7684 \u3002","title":"\u751f\u6210 \u4f20\u611f\u5668"},{"location":"carla_spawn_objects/#_6","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u73b0\u6709 \u7684 \u8f66\u8f86 \u4e0a \u3002 \u4e3a\u6b64 \uff1a \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 sensor . pseudo . actor _ list \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u8bbf\u95ee \u73b0\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002 ... { \" type \" : \" sensor . pseudo . actor _ list \" , \" id \" : \" actor _ list \" } , \u6839\u636e \u9700\u8981 \u5b9a\u4e49 \u5176\u4f59 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u542f\u52a8 \u8282\u70b9 \u5e76 \u5c06 spawn _ sensors _ only \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u4e3a True \u3002 \u8fd9 \u5c06 \u68c0\u67e5 \u4e0e \u6587\u4ef6 \u4e2d \u6307\u5b9a \u7684 \u89d2\u8272 \u76f8\u540c id \u548c type \u7684 \u89d2\u8272 \u662f\u5426 \u5df2 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \uff0c \u5982\u679c \u662f \uff0c \u5219 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u8be5 \u89d2\u8272 \u3002 # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ sensors _ only : = True # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ sensors _ only : = True","title":"\u5c06 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a"},{"location":"carla_twist_to_control/","text":"Carla \u626d\u8f6c \u63a7\u5236 carla _ twist _ to _ control \u5305 \u5c06 geometry _ msgs . Twist \u8f6c\u6362 \u4e3a carla _ msgs . CarlaEgoVehicleControl \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ info carla _ msgs . CarlaEgoVehicleInfo \u81ea\u6211 \u8f66\u8f86 \u4fe1\u606f \uff0c \u63a5\u6536 \u6700\u5927 \u8f6c\u5411 \u89d2\u5ea6 \u3002 / carla / < ROLE NAME > / twist geometry _ msgs . Twist \u626d\u8f6c \u8f6c\u6362 \u3002 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs . CarlaEgoVehicleControl \u8f6c\u6362 \u540e \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002","title":"Carla \u626d\u8f6c \u63a7\u5236"},{"location":"carla_twist_to_control/#carla","text":"carla _ twist _ to _ control \u5305 \u5c06 geometry _ msgs . Twist \u8f6c\u6362 \u4e3a carla _ msgs . CarlaEgoVehicleControl \u3002","title":"Carla \u626d\u8f6c \u63a7\u5236"},{"location":"carla_twist_to_control/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_twist_to_control/#_1","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ info carla _ msgs . CarlaEgoVehicleInfo \u81ea\u6211 \u8f66\u8f86 \u4fe1\u606f \uff0c \u63a5\u6536 \u6700\u5927 \u8f6c\u5411 \u89d2\u5ea6 \u3002 / carla / < ROLE NAME > / twist geometry _ msgs . Twist \u626d\u8f6c \u8f6c\u6362 \u3002","title":"\u8ba2\u9605"},{"location":"carla_twist_to_control/#_2","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs . CarlaEgoVehicleControl \u8f6c\u6362 \u540e \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002","title":"\u53d1\u5e03"},{"location":"carla_waypoint/","text":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668 Carla \u822a\u70b9 \u53d1\u5e03 \u5668 \u4f7f \u822a\u70b9 \u8ba1\u7b97 \u53ef \u7528\u4e8e ROS \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \uff0c \u5e76 \u63d0\u4f9b \u67e5\u8be2 Carla \u822a\u70b9 \u7684 \u670d\u52a1 \u3002 \u8981 \u4e86\u89e3 \u6709\u5173 \u822a\u70b9 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u6587\u6863 \u3002 \u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668 \u8bbe\u5b9a \u76ee\u6807 \u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u670d\u52a1 \u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668 \u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch # ROS 2 ros2 launch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch . py \u8bbe\u5b9a \u76ee\u6807 \u5982\u679c \u53ef\u7528 \uff0c \u5219 \u4ece \u4e3b\u9898 / carla / < ROLE NAME > / goal \u4e2d \u8bfb\u53d6 \u76ee\u6807 \uff0c \u5426\u5219 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u751f\u6210 \u70b9 \u3002 \u8bbe\u7f6e \u76ee\u6807 \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u5355\u51fb RVIZ \u4e2d \u7684 \u201c 2D Nav Goal \u201d \u3002 \u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 Waypoint Publisher \u4e3a Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u89c4\u5212 \u8def\u7ebf \u3002 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u5b83 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u542f\u52a8 \u6587\u4ef6 \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ego vehicle name > / waypoints nav _ msgs / Path \u53d1\u5e03 \u8ba1\u7b97 \u51fa \u7684 \u8def\u7ebf \u670d\u52a1 \u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / carla _ waypoint _ publisher / < ego vehicle name > / get _ waypoint carla _ waypoint _ types / GetWaypoint \u83b7\u53d6 \u7279\u5b9a \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9 / carla _ waypoint _ publisher / < ego vehicle name > / get _ actor _ waypoint carla _ waypoint _ types / GetActorWaypoint \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u7684 \u822a\u70b9","title":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#carla","text":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668 \u4f7f \u822a\u70b9 \u8ba1\u7b97 \u53ef \u7528\u4e8e ROS \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \uff0c \u5e76 \u63d0\u4f9b \u67e5\u8be2 Carla \u822a\u70b9 \u7684 \u670d\u52a1 \u3002 \u8981 \u4e86\u89e3 \u6709\u5173 \u822a\u70b9 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u6587\u6863 \u3002 \u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668 \u8bbe\u5b9a \u76ee\u6807 \u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u670d\u52a1","title":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#_1","text":"\u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch # ROS 2 ros2 launch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch . py","title":"\u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#_2","text":"\u5982\u679c \u53ef\u7528 \uff0c \u5219 \u4ece \u4e3b\u9898 / carla / < ROLE NAME > / goal \u4e2d \u8bfb\u53d6 \u76ee\u6807 \uff0c \u5426\u5219 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u751f\u6210 \u70b9 \u3002 \u8bbe\u7f6e \u76ee\u6807 \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u5355\u51fb RVIZ \u4e2d \u7684 \u201c 2D Nav Goal \u201d \u3002","title":"\u8bbe\u5b9a \u76ee\u6807"},{"location":"carla_waypoint/#_3","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 Waypoint Publisher \u4e3a Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u89c4\u5212 \u8def\u7ebf \u3002 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u5b83 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u542f\u52a8 \u6587\u4ef6 \u3002","title":"\u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_waypoint/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ego vehicle name > / waypoints nav _ msgs / Path \u53d1\u5e03 \u8ba1\u7b97 \u51fa \u7684 \u8def\u7ebf","title":"\u53d1\u5e03"},{"location":"carla_waypoint/#_5","text":"\u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / carla _ waypoint _ publisher / < ego vehicle name > / get _ waypoint carla _ waypoint _ types / GetWaypoint \u83b7\u53d6 \u7279\u5b9a \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9 / carla _ waypoint _ publisher / < ego vehicle name > / get _ actor _ waypoint carla _ waypoint _ types / GetActorWaypoint \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u7684 \u822a\u70b9","title":"\u670d\u52a1"},{"location":"catalogue/","text":"Carla \u76ee\u5f55 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5e9e\u5927 \u7684 \u4e09\u7ef4 \u8d44\u4ea7 \u5e93\u6765 \u586b\u5145 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u7684 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u3002 \u4e09\u7ef4 \u8d44\u6e90 \u8d44\u6e90\u5e93 \u63d0\u4f9b \u4e86 \u5927\u91cf \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u7684 \u9884 \u6784\u5efa \u5730\u56fe \u3001 \u7528\u4e8e \u4ea4\u901a \u4eff\u771f \u7684 \u5404\u79cd \u8f66\u8f86 \u6a21\u578b \u4ee5\u53ca \u884c\u4eba \u548c \u5176\u4ed6 \u7ed3\u6784 \u6216 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6a21\u578b \uff0c \u8fd9\u4e9b \u6a21\u578b \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u4eff\u771f \u4e2d \u3002 \u8be5 \u76ee\u5f55 \u8bb0\u5f55 \u4e86 \u53ef \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 \u6240\u6709 \u4e09\u7ef4 \u8d44\u6e90 \u3002 \u8f66\u8f86 \u76ee\u5f55 \u884c\u4eba \u76ee\u5f55 \u9053\u5177 \u76ee\u5f55 \u5730\u56fe Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b 10 \u4e2a\u9884 \u6784\u5efa \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff0c \u4e3a \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u81ea\u4e3b \u667a\u80fd \u4f53 \u63d0\u4f9b \u4e86 \u591a\u79cd \u73af\u5883 \u3002 \u57ce\u9547 \u6982\u51b5 Town01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 Town02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 Town03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 Town04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 Town11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u7528\u4f5c \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u7684 \u6982\u5ff5 \u8bc1\u660e \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 Town13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 Town15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002 \u8f66\u8f86 Carla \u63d0\u4f9b \u5404\u79cd \u8f66\u8f86 \uff0c \u4ee5\u53ca \u73b0\u5b9e \u4e16\u754c \u6c7d\u8f66 \u3001 \u5361\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4fdd\u771f \u9ad8\u4fdd\u771f \u6a21\u578b \uff0c \u7528\u4e8e \u5728 \u4eff\u771f \u4e2d \u590d\u5236 \u4ea4\u901a \u3002 \u5728 \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u8f86 \u3002 \u884c\u4eba Carla \u7684 \u8d44\u4ea7 \u5e93 \u5305\u542b \u5404\u79cd \u884c\u4eba \uff0c \u53ef \u4eff\u771f \u667a\u80fd \u4f53 \u5468\u56f4 \u4e09\u7ef4 \u73af\u5883 \u4e2d \u7684 \u4eba\u6d41 \u6d41\u91cf \u4eba\u6d41\u91cf \u3002 \u5728 \u884c\u4eba \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u60f3\u8981 \u7684 \u884c\u4eba \u3002 \u9053\u5177 Carla \u7684 \u9053\u5177 \u4eff\u771f \u4e86 \u60a8 \u53ef\u80fd \u5728 \u9053\u8def \u4e0a \u6216 \u9053\u8def \u9644\u8fd1 \u53d1\u73b0 \u7684 \u5404\u79cd \u7ed3\u6784 \u548c \u7269\u54c1 \uff0c \u4f8b\u5982 \u4fe1\u606f \u4ead \u3001 \u96d5\u50cf \u3001 \u957f\u51f3 \u3001 \u76d2\u5b50 \u3001 \u5783\u573e \u5783\u573e\u7bb1 \u3001 \u788e\u7247 \u6216 \u5783\u573e \u3002 \u8fd9\u4e9b \u9053\u5177 \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u5730 \u653e\u7f6e \u5728 \u4eff\u771f \u4e2d \u7684 \u4efb\u4f55 \u4f4d\u7f6e \u3002 \u5728 \u9053\u5177 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u7684 \u9053\u5177 \u3002","title":"Carla \u76ee\u5f55"},{"location":"catalogue/#carla","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5e9e\u5927 \u7684 \u4e09\u7ef4 \u8d44\u4ea7 \u5e93\u6765 \u586b\u5145 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u7684 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u3002 \u4e09\u7ef4 \u8d44\u6e90 \u8d44\u6e90\u5e93 \u63d0\u4f9b \u4e86 \u5927\u91cf \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u7684 \u9884 \u6784\u5efa \u5730\u56fe \u3001 \u7528\u4e8e \u4ea4\u901a \u4eff\u771f \u7684 \u5404\u79cd \u8f66\u8f86 \u6a21\u578b \u4ee5\u53ca \u884c\u4eba \u548c \u5176\u4ed6 \u7ed3\u6784 \u6216 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6a21\u578b \uff0c \u8fd9\u4e9b \u6a21\u578b \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u4eff\u771f \u4e2d \u3002 \u8be5 \u76ee\u5f55 \u8bb0\u5f55 \u4e86 \u53ef \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 \u6240\u6709 \u4e09\u7ef4 \u8d44\u6e90 \u3002 \u8f66\u8f86 \u76ee\u5f55 \u884c\u4eba \u76ee\u5f55 \u9053\u5177 \u76ee\u5f55","title":"Carla \u76ee\u5f55"},{"location":"catalogue/#_1","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b 10 \u4e2a\u9884 \u6784\u5efa \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff0c \u4e3a \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u81ea\u4e3b \u667a\u80fd \u4f53 \u63d0\u4f9b \u4e86 \u591a\u79cd \u73af\u5883 \u3002 \u57ce\u9547 \u6982\u51b5 Town01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 Town02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 Town03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 Town04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 Town11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u7528\u4f5c \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u7684 \u6982\u5ff5 \u8bc1\u660e \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 Town13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 Town15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002","title":"\u5730\u56fe"},{"location":"catalogue/#_2","text":"Carla \u63d0\u4f9b \u5404\u79cd \u8f66\u8f86 \uff0c \u4ee5\u53ca \u73b0\u5b9e \u4e16\u754c \u6c7d\u8f66 \u3001 \u5361\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4fdd\u771f \u9ad8\u4fdd\u771f \u6a21\u578b \uff0c \u7528\u4e8e \u5728 \u4eff\u771f \u4e2d \u590d\u5236 \u4ea4\u901a \u3002 \u5728 \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u8f86 \u3002","title":"\u8f66\u8f86"},{"location":"catalogue/#_3","text":"Carla \u7684 \u8d44\u4ea7 \u5e93 \u5305\u542b \u5404\u79cd \u884c\u4eba \uff0c \u53ef \u4eff\u771f \u667a\u80fd \u4f53 \u5468\u56f4 \u4e09\u7ef4 \u73af\u5883 \u4e2d \u7684 \u4eba\u6d41 \u6d41\u91cf \u4eba\u6d41\u91cf \u3002 \u5728 \u884c\u4eba \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u60f3\u8981 \u7684 \u884c\u4eba \u3002","title":"\u884c\u4eba"},{"location":"catalogue/#_4","text":"Carla \u7684 \u9053\u5177 \u4eff\u771f \u4e86 \u60a8 \u53ef\u80fd \u5728 \u9053\u8def \u4e0a \u6216 \u9053\u8def \u9644\u8fd1 \u53d1\u73b0 \u7684 \u5404\u79cd \u7ed3\u6784 \u548c \u7269\u54c1 \uff0c \u4f8b\u5982 \u4fe1\u606f \u4ead \u3001 \u96d5\u50cf \u3001 \u957f\u51f3 \u3001 \u76d2\u5b50 \u3001 \u5783\u573e \u5783\u573e\u7bb1 \u3001 \u788e\u7247 \u6216 \u5783\u573e \u3002 \u8fd9\u4e9b \u9053\u5177 \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u5730 \u653e\u7f6e \u5728 \u4eff\u771f \u4e2d \u7684 \u4efb\u4f55 \u4f4d\u7f6e \u3002 \u5728 \u9053\u5177 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u7684 \u9053\u5177 \u3002","title":"\u9053\u5177"},{"location":"catalogue_pedestrians/","text":"\u884c\u4eba \u76ee\u5f55 \u6210\u5e74 \u6210\u5e74\u4eba \u6210\u5e74 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u53d8\u4f53 5 \u53d8\u4f53 6 \u6210\u5e74 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 3 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 4 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 5 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 6 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 7 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 8 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 9 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 10 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 11 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 12 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 13 \u53d8\u4f53 1 \u6210\u5e74 \u884c\u4eba - 14 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 15 \u53d8\u4f53 1 \u53d8\u4f53 2 \u5c0f\u5b69 \u5c0f\u5b69 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 3 \u53d8\u4f53 1 \u5c0f\u5b69 \u884c\u4eba - 4 \u53d8\u4f53 1 \u8b66\u5bdf \u8b66\u5bdf - 1 \u8b66\u5bdf - 2 \u6210\u5e74 \u6210\u5e74\u4eba \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0001 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0005 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0006 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 4 \u84dd\u56fe ID : walker . pedestrian.0007 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 5 \u84dd\u56fe ID : walker . pedestrian.0008 \u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0004 \u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0003 \u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0002 \u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0015 \u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0019 \u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0016 \u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0017 \u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0026 \u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0018 \u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0021 \u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0020 \u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0023 \u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0022 \u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0024 \u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0025 \u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0027 \u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0029 \u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0028 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0041 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0040 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0033 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 4 \u84dd\u56fe ID : walker . pedestrian.0031 \u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0034 \u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0038 \u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0035 \u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0036 \u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0037 \u6210\u5e74 \u884c\u4eba 13 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0039 \u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0042 \u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0043 \u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0044 \u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0047 \u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0046 Children Child pedestrian 1 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0011 Child pedestrian 1 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0010 Child pedestrian 1 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0009 Child pedestrian 2 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0014 Child pedestrian 2 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0013 Child pedestrian 2 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0012 Child pedestrian 3 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0048 Child pedestrian 4 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0049 \u8b66\u5bdf \u8b66\u5bdf 1 \u84dd\u56fe ID : walker . pedestrian.0030 \u8b66\u5bdf 2 \u84dd\u56fe ID : walker . pedestrian.0032","title":"\u884c\u4eba \u76ee\u5f55"},{"location":"catalogue_pedestrians/#_1","text":"","title":"\u884c\u4eba \u76ee\u5f55"},{"location":"catalogue_pedestrians/#_2","text":"\u6210\u5e74 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u53d8\u4f53 5 \u53d8\u4f53 6 \u6210\u5e74 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 3 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 4 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 5 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 6 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 7 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 8 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 9 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 10 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 11 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 12 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 13 \u53d8\u4f53 1 \u6210\u5e74 \u884c\u4eba - 14 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 15 \u53d8\u4f53 1 \u53d8\u4f53 2","title":"\u6210\u5e74\u4eba"},{"location":"catalogue_pedestrians/#_3","text":"\u5c0f\u5b69 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 3 \u53d8\u4f53 1 \u5c0f\u5b69 \u884c\u4eba - 4 \u53d8\u4f53 1","title":"\u5c0f\u5b69"},{"location":"catalogue_pedestrians/#_4","text":"\u8b66\u5bdf - 1 \u8b66\u5bdf - 2","title":"\u8b66\u5bdf"},{"location":"catalogue_pedestrians/#_5","text":"","title":"\u6210\u5e74\u4eba"},{"location":"catalogue_pedestrians/#1-1","text":"\u84dd\u56fe ID : walker . pedestrian.0001","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#1-2","text":"\u84dd\u56fe ID : walker . pedestrian.0005","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#1-3","text":"\u84dd\u56fe ID : walker . pedestrian.0006","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#1-4","text":"\u84dd\u56fe ID : walker . pedestrian.0007","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 4"},{"location":"catalogue_pedestrians/#1-5","text":"\u84dd\u56fe ID : walker . pedestrian.0008","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 5"},{"location":"catalogue_pedestrians/#2-1","text":"\u84dd\u56fe ID : walker . pedestrian.0004","title":"\u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#2-2","text":"\u84dd\u56fe ID : walker . pedestrian.0003","title":"\u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#2-3","text":"\u84dd\u56fe ID : walker . pedestrian.0002","title":"\u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#3-1","text":"\u84dd\u56fe ID : walker . pedestrian.0015","title":"\u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#3-2","text":"\u84dd\u56fe ID : walker . pedestrian.0019","title":"\u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#4-1","text":"\u84dd\u56fe ID : walker . pedestrian.0016","title":"\u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#4-2","text":"\u84dd\u56fe ID : walker . pedestrian.0017","title":"\u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#5-1","text":"\u84dd\u56fe ID : walker . pedestrian.0026","title":"\u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#5-2","text":"\u84dd\u56fe ID : walker . pedestrian.0018","title":"\u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#6-1","text":"\u84dd\u56fe ID : walker . pedestrian.0021","title":"\u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#6-2","text":"\u84dd\u56fe ID : walker . pedestrian.0020","title":"\u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#7-1","text":"\u84dd\u56fe ID : walker . pedestrian.0023","title":"\u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#7-2","text":"\u84dd\u56fe ID : walker . pedestrian.0022","title":"\u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#8-1","text":"\u84dd\u56fe ID : walker . pedestrian.0024","title":"\u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#8-2","text":"\u84dd\u56fe ID : walker . pedestrian.0025","title":"\u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#9-1","text":"\u84dd\u56fe ID : walker . pedestrian.0027","title":"\u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#9-2","text":"\u84dd\u56fe ID : walker . pedestrian.0029","title":"\u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#9-3","text":"\u84dd\u56fe ID : walker . pedestrian.0028","title":"\u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#10-1","text":"\u84dd\u56fe ID : walker . pedestrian.0041","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#10-2","text":"\u84dd\u56fe ID : walker . pedestrian.0040","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#10-3","text":"\u84dd\u56fe ID : walker . pedestrian.0033","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#10-4","text":"\u84dd\u56fe ID : walker . pedestrian.0031","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 4"},{"location":"catalogue_pedestrians/#11-1","text":"\u84dd\u56fe ID : walker . pedestrian.0034","title":"\u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#11-2","text":"\u84dd\u56fe ID : walker . pedestrian.0038","title":"\u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#12-1","text":"\u84dd\u56fe ID : walker . pedestrian.0035","title":"\u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#12-2","text":"\u84dd\u56fe ID : walker . pedestrian.0036","title":"\u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#12-3","text":"\u84dd\u56fe ID : walker . pedestrian.0037","title":"\u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#13-1","text":"\u84dd\u56fe ID : walker . pedestrian.0039","title":"\u6210\u5e74 \u884c\u4eba 13 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#14-1","text":"\u84dd\u56fe ID : walker . pedestrian.0042","title":"\u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#14-2","text":"\u84dd\u56fe ID : walker . pedestrian.0043","title":"\u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#14-3","text":"\u84dd\u56fe ID : walker . pedestrian.0044","title":"\u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#15-1","text":"\u84dd\u56fe ID : walker . pedestrian.0047","title":"\u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#15-2","text":"\u84dd\u56fe ID : walker . pedestrian.0046","title":"\u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#children","text":"","title":"Children"},{"location":"catalogue_pedestrians/#child-pedestrian-1-1","text":"\u84dd\u56fe ID : walker . pedestrian.0011","title":"Child pedestrian 1 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#child-pedestrian-1-2","text":"\u84dd\u56fe ID : walker . pedestrian.0010","title":"Child pedestrian 1 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#child-pedestrian-1-3","text":"\u84dd\u56fe ID : walker . pedestrian.0009","title":"Child pedestrian 1 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#child-pedestrian-2-1","text":"\u84dd\u56fe ID : walker . pedestrian.0014","title":"Child pedestrian 2 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#child-pedestrian-2-2","text":"\u84dd\u56fe ID : walker . pedestrian.0013","title":"Child pedestrian 2 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#child-pedestrian-2-3","text":"\u84dd\u56fe ID : walker . pedestrian.0012","title":"Child pedestrian 2 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#child-pedestrian-3-1","text":"\u84dd\u56fe ID : walker . pedestrian.0048","title":"Child pedestrian 3 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#child-pedestrian-4-1","text":"\u84dd\u56fe ID : walker . pedestrian.0049","title":"Child pedestrian 4 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#_6","text":"","title":"\u8b66\u5bdf"},{"location":"catalogue_pedestrians/#1","text":"\u84dd\u56fe ID : walker . pedestrian.0030","title":"\u8b66\u5bdf 1"},{"location":"catalogue_pedestrians/#2","text":"\u84dd\u56fe ID : walker . pedestrian.0032","title":"\u8b66\u5bdf 2"},{"location":"catalogue_props/","text":"\u9053\u5177 \u76ee\u5f55 \u5bb9\u5668 \u6876 \u6876 \u7bb1\u5b50 \u7bb1\u5b50 \u5e03\u5236 \u5bb9\u5668 \u5783\u573e \u5783\u573e\u7bb1 \u73bb\u7483 \u5bb9\u5668 \u76d2\u5b50 \u76d2\u5b50 01 \u76d2\u5b50 02 \u76d2\u5b50 03 \u6298\u75d5 \u76d2 01 \u6298\u75d5 \u76d2 02 \u6298\u75d5 \u76d2 03 \u5783\u573e \u888b\u5b50 \u5783\u573e \u5783\u573e\u888b \u5783\u573e \u53ef\u4e50 \u7f50 \u5783\u573e 01 \u5783\u573e 02 \u5783\u573e 03 \u5783\u573e 04 \u5783\u573e 05 \u5783\u573e 06 \u5e73\u53f0 \u5783\u573e \u5e73\u53f0 01 \u5783\u573e \u5783\u573e\u6876 \u5783\u573e \u5783\u573e\u6876 01 \u5783\u573e \u5783\u573e\u6876 02 \u5783\u573e \u5783\u573e\u6876 03 \u5783\u573e \u5783\u573e\u6876 04 \u5783\u573e \u5783\u573e\u6876 05 \u516c\u56ed / \u82b1\u56ed \u5bb6\u5177 \u957f\u51f3 03 \u5ead\u9662 \u5ead\u9662\u706f \u51c9\u68da \u5851\u6599 \u6905 \u5851\u6599 \u684c \u6ed1\u68af \u79cb\u5343 \u79cb\u5343 \u6c99\u53d1 \u684c\u5b50 \u8e66\u5e8a \u6742\u9879 \u70e7\u70e4 \u67b6 \u667e\u8863 \u8863\u7ef3 \u667e\u8863\u7ef3 \u72d7\u7a9d \u4f8f\u5112 \u55b7\u58f6 \u5176\u4ed6 \u5e72\u8349 \u6346 \u5907\u7528 \u5e72\u8349 \u6346 \u82b1\u76c6 \u82b1\u76c6 01 \u82b1\u76c6 02 \u82b1\u76c6 03 \u82b1\u76c6 04 \u82b1\u76c6 05 \u82b1\u76c6 06 \u82b1\u76c6 07 \u82b1\u76c6 08 \u4e2a\u4eba \u7684 \u888b \u5851\u6599 \u5851\u6599\u888b \u8d2d\u7269 \u8d2d\u7269\u888b \u63a8\u8f66 \u8d2d\u7269 \u8d2d\u7269\u8f66 \u8d2d\u7269 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u7bb1 \u516c\u6587 \u516c\u6587\u5305 \u5409\u4ed6 \u76d2 \u65c5\u884c \u65c5\u884c\u7bb1 \u8863\u670d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5934\u76d4 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u5934\u76d4 \u4e2a\u4eba \u5f71\u54cd \u624b\u673a \u94b1\u5305 \u8def \u969c\u788d \u969c\u788d\u7269 \u8857\u9053 \u62a4\u680f \u9525\u4f53 \u5efa\u7b51 \u9525\u4f53 \u4ea4\u901a \u9525 01 \u4ea4\u901a \u9525 02 \u65bd\u5de5 \u94c1\u677f \u65bd\u5de5 \u8b66\u793a \u788e\u7247 \u788e\u74e6 01 \u788e\u74e6 02 \u788e\u74e6 03 \u788e\u74e6 04 \u6c61\u57a2 / \u788e\u7247 01 \u6c61\u57a2 / \u788e\u7247 02 \u6c61\u57a2 / \u788e\u7247 03 \u6807\u5fd7 \u4ea4\u901a \u8b66\u544a \u4e8b\u6545 \u8b66\u544a \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u969c\u788d \u969c\u788d\u7269 \u94fe \u6805\u680f \u94fe \u6805\u680f \u672b\u7aef \u957f\u51f3 \u957f\u51f3 01 \u957f\u51f3 02 Commercial \u9910\u8f66 \u4fe1\u606f \u4ead 01 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u55b7\u6cc9 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u5730 \u56fe\u8868 \u6807\u5fd7 \u5e7f\u544a \u8def\u724c \u8def\u724c 01 \u8def\u724c 04 \u8fd0\u8f93 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u5907\u7528 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u516c\u7528 \u81ea\u52a8 \u63d0\u6b3e \u63d0\u6b3e\u673a \u90ae\u7bb1 \u8857\u5934 \u55b7\u6cc9 \u552e\u8d27 \u8d27\u673a \u552e\u8d27\u673a \u516c\u7528 \u6821\u51c6 \u6821\u51c6 \u6821\u51c6\u5668 \u5bb9\u5668 \u6876 \u84dd\u56fe ID : static . prop . barrel \u5783\u573e \u5783\u573e\u6876 \u84dd\u56fe ID : static . prop . bin \u5e03\u5236 \u5bb9\u5668 \u84dd\u56fe ID : static . prop . clothcontainer \u5783\u573e \u5783\u573e\u7bb1 \u84dd\u56fe ID : static . prop . container \u73bb\u7483 \u5bb9\u5668 \u84dd\u56fe ID : static . prop . glasscontainer \u76d2\u5b50 01 \u84dd\u56fe ID : static . prop . box01 \u76d2\u5b50 02 \u84dd\u56fe ID : static . prop . box02 \u76d2\u5b50 03 \u84dd\u56fe ID : static . prop . box03 \u6298\u75d5 \u76d2 01 \u84dd\u56fe ID : static . prop . creasedbox01 \u6298\u75d5 \u76d2 02 \u84dd\u56fe ID : static . prop . creasedbox02 \u6298\u75d5 \u76d2 03 \u84dd\u56fe ID : static . prop . creasedbox03 \u5783\u573e \u5783\u573e \u5783\u573e\u888b \u84dd\u56fe ID : static . prop . trashbag \u53ef\u4e50 \u7f50 \u84dd\u56fe ID : static . prop . colacan \u5783\u573e 01 \u84dd\u56fe ID : static . prop . garbage01 \u5783\u573e 02 \u84dd\u56fe ID : static . prop . garbage02 \u5783\u573e 03 \u84dd\u56fe ID : static . prop . garbage03 \u5783\u573e 04 \u84dd\u56fe ID : static . prop . garbage04 \u5783\u573e 05 \u84dd\u56fe ID : static . prop . garbage05 \u5783\u573e 06 \u84dd\u56fe ID : static . prop . garbage06 \u5783\u573e \u5e73\u53f0 01 \u84dd\u56fe ID : static . prop . platformgarbage01 \u5783\u573e \u5783\u573e\u6876 01 \u84dd\u56fe ID : static . prop . trashcan01 \u5783\u573e \u5783\u573e\u6876 02 \u84dd\u56fe ID : static . prop . trashcan02 \u5783\u573e \u5783\u573e\u6876 03 \u84dd\u56fe ID : static . prop . trashcan03 \u5783\u573e \u5783\u573e\u6876 04 \u84dd\u56fe ID : static . prop . trashcan04 \u5783\u573e \u5783\u573e\u6876 05 \u84dd\u56fe ID : static . prop . trashcan05 \u516c\u56ed / \u82b1\u56ed \u957f\u51f3 03 \u84dd\u56fe ID : static . prop . bench03 \u5ead\u9662 \u5ead\u9662\u706f \u84dd\u56fe ID : static . prop . gardenlamp \u51c9\u68da \u84dd\u56fe ID : static . prop . pergola \u5851\u6599 \u6905 \u84dd\u56fe ID : static . prop . plasticchair \u5851\u6599 \u684c \u84dd\u56fe ID : static . prop . plastictable \u6ed1\u68af \u84dd\u56fe ID : static . prop . slide \u79cb\u5343 \u84dd\u56fe ID : static . prop . swing \u79cb\u5343 \u6c99\u53d1 \u84dd\u56fe ID : static . prop . swingcouch \u684c\u5b50 \u84dd\u56fe ID : static . prop . table \u8e66\u5e8a \u84dd\u56fe ID : static . prop . trampoline \u70e7\u70e4 \u67b6 \u84dd\u56fe ID : static . prop . barbeque \u667e\u8863 \u8863\u7ef3 \u667e\u8863\u7ef3 \u84dd\u56fe ID : static . prop . clothesline \u72d7\u7a9d \u84dd\u56fe ID : static . prop . doghouse \u4f8f\u5112 \u84dd\u56fe ID : static . prop . gnome \u55b7\u58f6 \u84dd\u56fe ID : static . prop . wateringcan \u5e72\u8349 \u6346 \u84dd\u56fe ID : static . prop . haybale \u5e72\u8349 \u6346 \u5907\u7528 \u84dd\u56fe ID : static . prop . haybalelb \u82b1\u76c6 01 \u84dd\u56fe ID : static . prop . plantpot01 \u82b1\u76c6 02 \u84dd\u56fe ID : static . prop . plantpot02 \u82b1\u76c6 03 \u84dd\u56fe ID : static . prop . plantpot03 \u82b1\u76c6 04 \u84dd\u56fe ID : static . prop . plantpot04 \u82b1\u76c6 05 \u84dd\u56fe ID : static . prop . plantpot05 \u82b1\u76c6 06 \u84dd\u56fe ID : static . prop . plantpot06 \u82b1\u76c6 07 \u84dd\u56fe ID : static . prop . plantpot07 \u82b1\u76c6 08 \u84dd\u56fe ID : static . prop . plantpot08 \u4e2a\u4eba \u7684 \u5851\u6599 \u5851\u6599\u888b \u84dd\u56fe ID : static . prop . plasticbag \u8d2d\u7269 \u8d2d\u7269\u888b \u84dd\u56fe ID : static . prop . shoppingbag \u8d2d\u7269 \u8d2d\u7269\u8f66 \u84dd\u56fe ID : static . prop . shoppingcart \u8d2d\u7269 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u84dd\u56fe ID : static . prop . shoppingtrolley \u516c\u6587 \u516c\u6587\u5305 \u84dd\u56fe ID : static . prop . briefcase \u5409\u4ed6 \u76d2 \u84dd\u56fe ID : static . prop . guitarcase \u65c5\u884c \u65c5\u884c\u7bb1 \u84dd\u56fe ID : static . prop . travelcase \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5934\u76d4 \u84dd\u56fe ID : static . prop . bike helmet \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u5934\u76d4 \u84dd\u56fe ID : static . prop . motorhelmet \u624b\u673a \u84dd\u56fe ID : static . prop . mobile \u94b1\u5305 \u84dd\u56fe ID : static . prop . purse \u8def \u8857\u9053 \u62a4\u680f \u84dd\u56fe ID : static . prop . streetbarrier \u5efa\u7b51 \u9525\u4f53 \u84dd\u56fe ID : static . prop . constructioncone \u4ea4\u901a \u9525 01 \u84dd\u56fe ID : static . prop . trafficcone01 \u4ea4\u901a \u9525 02 \u84dd\u56fe ID : static . prop . trafficcone02 \u94c1\u677f \u84dd\u56fe ID : static . prop . ironplank \u65bd\u5de5 \u8b66\u793a \u84dd\u56fe ID : static . prop . warningconstruction \u788e\u74e6 01 \u84dd\u56fe ID : static . prop . brokentile01 \u788e\u74e6 02 \u84dd\u56fe ID : static . prop . brokentile02 \u788e\u74e6 03 \u84dd\u56fe ID : static . prop . brokentile03 \u788e\u74e6 04 \u84dd\u56fe ID : static . prop . brokentile04 \u6c61\u57a2 / \u788e\u7247 01 \u84dd\u56fe ID : static . prop . dirtdebris01 \u6c61\u57a2 / \u788e\u7247 02 \u84dd\u56fe ID : static . prop . dirtdebris02 \u6c61\u57a2 / \u788e\u7247 03 \u84dd\u56fe ID : static . prop . dirtdebris03 \u4ea4\u901a \u8b66\u544a \u84dd\u56fe ID : static . prop . trafficwarning \u4e8b\u6545 \u8b66\u544a \u84dd\u56fe ID : static . prop . warningaccident \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u94fe \u6805\u680f \u84dd\u56fe ID : static . prop . chainbarrier \u94fe \u6805\u680f \u672b\u7aef \u84dd\u56fe ID : static . prop . chainbarrierend \u957f\u51f3 01 \u84dd\u56fe ID : static . prop . bench01 \u957f\u51f3 02 \u84dd\u56fe ID : static . prop . bench02 \u9910\u8f66 \u84dd\u56fe ID : static . prop . foodcart \u4fe1\u606f \u4ead 01 \u84dd\u56fe ID : static . prop . kiosk _ 01 \u55b7\u6cc9 \u84dd\u56fe ID : static . prop . fountain \u5730 \u56fe\u8868 \u84dd\u56fe ID : static . prop . maptable \u5e7f\u544a \u84dd\u56fe ID : static . prop . advertisement \u8def\u724c \u84dd\u56fe ID : static . prop . streetsign \u8def\u724c 01 \u84dd\u56fe ID : static . prop . streetsign01 \u8def\u724c 04 \u84dd\u56fe ID : static . prop . streetsign04 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u84dd\u56fe ID : static . prop . busstop \u5907\u7528 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u84dd\u56fe ID : static . prop . busstoplb \u81ea\u52a8 \u63d0\u6b3e \u63d0\u6b3e\u673a \u84dd\u56fe ID : static . prop . atm \u90ae\u7bb1 \u84dd\u56fe ID : static . prop . mailbox \u8857\u5934 \u55b7\u6cc9 \u84dd\u56fe ID : static . prop . streetfountain \u552e\u8d27 \u8d27\u673a \u552e\u8d27\u673a \u84dd\u56fe ID : static . prop . vendingmachine \u516c\u7528 \u6821\u51c6 \u6821\u51c6\u5668 \u84dd\u56fe ID : static . prop . calibrator","title":"\u9053\u5177 \u76ee\u5f55"},{"location":"catalogue_props/#_1","text":"","title":"\u9053\u5177 \u76ee\u5f55"},{"location":"catalogue_props/#_2","text":"\u6876 \u6876 \u7bb1\u5b50 \u7bb1\u5b50 \u5e03\u5236 \u5bb9\u5668 \u5783\u573e \u5783\u573e\u7bb1 \u73bb\u7483 \u5bb9\u5668 \u76d2\u5b50 \u76d2\u5b50 01 \u76d2\u5b50 02 \u76d2\u5b50 03 \u6298\u75d5 \u76d2 01 \u6298\u75d5 \u76d2 02 \u6298\u75d5 \u76d2 03","title":"\u5bb9\u5668"},{"location":"catalogue_props/#_3","text":"\u888b\u5b50 \u5783\u573e \u5783\u573e\u888b \u5783\u573e \u53ef\u4e50 \u7f50 \u5783\u573e 01 \u5783\u573e 02 \u5783\u573e 03 \u5783\u573e 04 \u5783\u573e 05 \u5783\u573e 06 \u5e73\u53f0 \u5783\u573e \u5e73\u53f0 01 \u5783\u573e \u5783\u573e\u6876 \u5783\u573e \u5783\u573e\u6876 01 \u5783\u573e \u5783\u573e\u6876 02 \u5783\u573e \u5783\u573e\u6876 03 \u5783\u573e \u5783\u573e\u6876 04 \u5783\u573e \u5783\u573e\u6876 05","title":"\u5783\u573e"},{"location":"catalogue_props/#_4","text":"\u5bb6\u5177 \u957f\u51f3 03 \u5ead\u9662 \u5ead\u9662\u706f \u51c9\u68da \u5851\u6599 \u6905 \u5851\u6599 \u684c \u6ed1\u68af \u79cb\u5343 \u79cb\u5343 \u6c99\u53d1 \u684c\u5b50 \u8e66\u5e8a \u6742\u9879 \u70e7\u70e4 \u67b6 \u667e\u8863 \u8863\u7ef3 \u667e\u8863\u7ef3 \u72d7\u7a9d \u4f8f\u5112 \u55b7\u58f6 \u5176\u4ed6 \u5e72\u8349 \u6346 \u5907\u7528 \u5e72\u8349 \u6346 \u82b1\u76c6 \u82b1\u76c6 01 \u82b1\u76c6 02 \u82b1\u76c6 03 \u82b1\u76c6 04 \u82b1\u76c6 05 \u82b1\u76c6 06 \u82b1\u76c6 07 \u82b1\u76c6 08","title":"\u516c\u56ed / \u82b1\u56ed"},{"location":"catalogue_props/#_5","text":"\u888b \u5851\u6599 \u5851\u6599\u888b \u8d2d\u7269 \u8d2d\u7269\u888b \u63a8\u8f66 \u8d2d\u7269 \u8d2d\u7269\u8f66 \u8d2d\u7269 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u7bb1 \u516c\u6587 \u516c\u6587\u5305 \u5409\u4ed6 \u76d2 \u65c5\u884c \u65c5\u884c\u7bb1 \u8863\u670d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5934\u76d4 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u5934\u76d4 \u4e2a\u4eba \u5f71\u54cd \u624b\u673a \u94b1\u5305","title":"\u4e2a\u4eba \u7684"},{"location":"catalogue_props/#_6","text":"\u969c\u788d \u969c\u788d\u7269 \u8857\u9053 \u62a4\u680f \u9525\u4f53 \u5efa\u7b51 \u9525\u4f53 \u4ea4\u901a \u9525 01 \u4ea4\u901a \u9525 02 \u65bd\u5de5 \u94c1\u677f \u65bd\u5de5 \u8b66\u793a \u788e\u7247 \u788e\u74e6 01 \u788e\u74e6 02 \u788e\u74e6 03 \u788e\u74e6 04 \u6c61\u57a2 / \u788e\u7247 01 \u6c61\u57a2 / \u788e\u7247 02 \u6c61\u57a2 / \u788e\u7247 03 \u6807\u5fd7 \u4ea4\u901a \u8b66\u544a \u4e8b\u6545 \u8b66\u544a","title":"\u8def"},{"location":"catalogue_props/#_7","text":"\u969c\u788d \u969c\u788d\u7269 \u94fe \u6805\u680f \u94fe \u6805\u680f \u672b\u7aef \u957f\u51f3 \u957f\u51f3 01 \u957f\u51f3 02 Commercial \u9910\u8f66 \u4fe1\u606f \u4ead 01 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u55b7\u6cc9 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u5730 \u56fe\u8868 \u6807\u5fd7 \u5e7f\u544a \u8def\u724c \u8def\u724c 01 \u8def\u724c 04 \u8fd0\u8f93 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u5907\u7528 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u516c\u7528 \u81ea\u52a8 \u63d0\u6b3e \u63d0\u6b3e\u673a \u90ae\u7bb1 \u8857\u5934 \u55b7\u6cc9 \u552e\u8d27 \u8d27\u673a \u552e\u8d27\u673a","title":"\u4eba\u884c\u9053"},{"location":"catalogue_props/#_8","text":"\u6821\u51c6 \u6821\u51c6 \u6821\u51c6\u5668","title":"\u516c\u7528"},{"location":"catalogue_props/#_9","text":"","title":"\u5bb9\u5668"},{"location":"catalogue_props/#_10","text":"\u84dd\u56fe ID : static . prop . barrel","title":"\u6876"},{"location":"catalogue_props/#_11","text":"\u84dd\u56fe ID : static . prop . bin","title":"\u5783\u573e\u6876"},{"location":"catalogue_props/#_12","text":"\u84dd\u56fe ID : static . prop . clothcontainer","title":"\u5e03\u5236 \u5bb9\u5668"},{"location":"catalogue_props/#_13","text":"\u84dd\u56fe ID : static . prop . container","title":"\u5783\u573e\u7bb1"},{"location":"catalogue_props/#_14","text":"\u84dd\u56fe ID : static . prop . glasscontainer","title":"\u73bb\u7483 \u5bb9\u5668"},{"location":"catalogue_props/#01","text":"\u84dd\u56fe ID : static . prop . box01","title":"\u76d2\u5b50 01"},{"location":"catalogue_props/#02","text":"\u84dd\u56fe ID : static . prop . box02","title":"\u76d2\u5b50 02"},{"location":"catalogue_props/#03","text":"\u84dd\u56fe ID : static . prop . box03","title":"\u76d2\u5b50 03"},{"location":"catalogue_props/#01_1","text":"\u84dd\u56fe ID : static . prop . creasedbox01","title":"\u6298\u75d5 \u76d2 01"},{"location":"catalogue_props/#02_1","text":"\u84dd\u56fe ID : static . prop . creasedbox02","title":"\u6298\u75d5 \u76d2 02"},{"location":"catalogue_props/#03_1","text":"\u84dd\u56fe ID : static . prop . creasedbox03","title":"\u6298\u75d5 \u76d2 03"},{"location":"catalogue_props/#_15","text":"","title":"\u5783\u573e"},{"location":"catalogue_props/#_16","text":"\u84dd\u56fe ID : static . prop . trashbag","title":"\u5783\u573e\u888b"},{"location":"catalogue_props/#_17","text":"\u84dd\u56fe ID : static . prop . colacan","title":"\u53ef\u4e50 \u7f50"},{"location":"catalogue_props/#01_2","text":"\u84dd\u56fe ID : static . prop . garbage01","title":"\u5783\u573e 01"},{"location":"catalogue_props/#02_2","text":"\u84dd\u56fe ID : static . prop . garbage02","title":"\u5783\u573e 02"},{"location":"catalogue_props/#03_2","text":"\u84dd\u56fe ID : static . prop . garbage03","title":"\u5783\u573e 03"},{"location":"catalogue_props/#04","text":"\u84dd\u56fe ID : static . prop . garbage04","title":"\u5783\u573e 04"},{"location":"catalogue_props/#05","text":"\u84dd\u56fe ID : static . prop . garbage05","title":"\u5783\u573e 05"},{"location":"catalogue_props/#06","text":"\u84dd\u56fe ID : static . prop . garbage06","title":"\u5783\u573e 06"},{"location":"catalogue_props/#01_3","text":"\u84dd\u56fe ID : static . prop . platformgarbage01","title":"\u5783\u573e \u5e73\u53f0 01"},{"location":"catalogue_props/#01_4","text":"\u84dd\u56fe ID : static . prop . trashcan01","title":"\u5783\u573e\u6876 01"},{"location":"catalogue_props/#02_3","text":"\u84dd\u56fe ID : static . prop . trashcan02","title":"\u5783\u573e\u6876 02"},{"location":"catalogue_props/#03_3","text":"\u84dd\u56fe ID : static . prop . trashcan03","title":"\u5783\u573e\u6876 03"},{"location":"catalogue_props/#04_1","text":"\u84dd\u56fe ID : static . prop . trashcan04","title":"\u5783\u573e\u6876 04"},{"location":"catalogue_props/#05_1","text":"\u84dd\u56fe ID : static . prop . trashcan05","title":"\u5783\u573e\u6876 05"},{"location":"catalogue_props/#_18","text":"","title":"\u516c\u56ed / \u82b1\u56ed"},{"location":"catalogue_props/#03_4","text":"\u84dd\u56fe ID : static . prop . bench03","title":"\u957f\u51f3 03"},{"location":"catalogue_props/#_19","text":"\u84dd\u56fe ID : static . prop . gardenlamp","title":"\u5ead\u9662\u706f"},{"location":"catalogue_props/#_20","text":"\u84dd\u56fe ID : static . prop . pergola","title":"\u51c9\u68da"},{"location":"catalogue_props/#_21","text":"\u84dd\u56fe ID : static . prop . plasticchair","title":"\u5851\u6599 \u6905"},{"location":"catalogue_props/#_22","text":"\u84dd\u56fe ID : static . prop . plastictable","title":"\u5851\u6599 \u684c"},{"location":"catalogue_props/#_23","text":"\u84dd\u56fe ID : static . prop . slide","title":"\u6ed1\u68af"},{"location":"catalogue_props/#_24","text":"\u84dd\u56fe ID : static . prop . swing","title":"\u79cb\u5343"},{"location":"catalogue_props/#_25","text":"\u84dd\u56fe ID : static . prop . swingcouch","title":"\u79cb\u5343 \u6c99\u53d1"},{"location":"catalogue_props/#_26","text":"\u84dd\u56fe ID : static . prop . table","title":"\u684c\u5b50"},{"location":"catalogue_props/#_27","text":"\u84dd\u56fe ID : static . prop . trampoline","title":"\u8e66\u5e8a"},{"location":"catalogue_props/#_28","text":"\u84dd\u56fe ID : static . prop . barbeque","title":"\u70e7\u70e4 \u67b6"},{"location":"catalogue_props/#_29","text":"\u84dd\u56fe ID : static . prop . clothesline","title":"\u667e\u8863\u7ef3"},{"location":"catalogue_props/#_30","text":"\u84dd\u56fe ID : static . prop . doghouse","title":"\u72d7\u7a9d"},{"location":"catalogue_props/#_31","text":"\u84dd\u56fe ID : static . prop . gnome","title":"\u4f8f\u5112"},{"location":"catalogue_props/#_32","text":"\u84dd\u56fe ID : static . prop . wateringcan","title":"\u55b7\u58f6"},{"location":"catalogue_props/#_33","text":"\u84dd\u56fe ID : static . prop . haybale","title":"\u5e72\u8349 \u6346"},{"location":"catalogue_props/#_34","text":"\u84dd\u56fe ID : static . prop . haybalelb","title":"\u5e72\u8349 \u6346 \u5907\u7528"},{"location":"catalogue_props/#01_5","text":"\u84dd\u56fe ID : static . prop . plantpot01","title":"\u82b1\u76c6 01"},{"location":"catalogue_props/#02_4","text":"\u84dd\u56fe ID : static . prop . plantpot02","title":"\u82b1\u76c6 02"},{"location":"catalogue_props/#03_5","text":"\u84dd\u56fe ID : static . prop . plantpot03","title":"\u82b1\u76c6 03"},{"location":"catalogue_props/#04_2","text":"\u84dd\u56fe ID : static . prop . plantpot04","title":"\u82b1\u76c6 04"},{"location":"catalogue_props/#05_2","text":"\u84dd\u56fe ID : static . prop . plantpot05","title":"\u82b1\u76c6 05"},{"location":"catalogue_props/#06_1","text":"\u84dd\u56fe ID : static . prop . plantpot06","title":"\u82b1\u76c6 06"},{"location":"catalogue_props/#07","text":"\u84dd\u56fe ID : static . prop . plantpot07","title":"\u82b1\u76c6 07"},{"location":"catalogue_props/#08","text":"\u84dd\u56fe ID : static . prop . plantpot08","title":"\u82b1\u76c6 08"},{"location":"catalogue_props/#_35","text":"","title":"\u4e2a\u4eba \u7684"},{"location":"catalogue_props/#_36","text":"\u84dd\u56fe ID : static . prop . plasticbag","title":"\u5851\u6599\u888b"},{"location":"catalogue_props/#_37","text":"\u84dd\u56fe ID : static . prop . shoppingbag","title":"\u8d2d\u7269\u888b"},{"location":"catalogue_props/#_38","text":"\u84dd\u56fe ID : static . prop . shoppingcart","title":"\u8d2d\u7269\u8f66"},{"location":"catalogue_props/#_39","text":"\u84dd\u56fe ID : static . prop . shoppingtrolley","title":"\u8d2d\u7269 \u624b\u63a8\u8f66"},{"location":"catalogue_props/#_40","text":"\u84dd\u56fe ID : static . prop . briefcase","title":"\u516c\u6587\u5305"},{"location":"catalogue_props/#_41","text":"\u84dd\u56fe ID : static . prop . guitarcase","title":"\u5409\u4ed6 \u76d2"},{"location":"catalogue_props/#_42","text":"\u84dd\u56fe ID : static . prop . travelcase","title":"\u65c5\u884c\u7bb1"},{"location":"catalogue_props/#_43","text":"\u84dd\u56fe ID : static . prop . bike helmet","title":"\u81ea\u884c\u8f66 \u5934\u76d4"},{"location":"catalogue_props/#_44","text":"\u84dd\u56fe ID : static . prop . motorhelmet","title":"\u6469\u6258\u8f66 \u5934\u76d4"},{"location":"catalogue_props/#_45","text":"\u84dd\u56fe ID : static . prop . mobile","title":"\u624b\u673a"},{"location":"catalogue_props/#_46","text":"\u84dd\u56fe ID : static . prop . purse","title":"\u94b1\u5305"},{"location":"catalogue_props/#_47","text":"","title":"\u8def"},{"location":"catalogue_props/#_48","text":"\u84dd\u56fe ID : static . prop . streetbarrier","title":"\u8857\u9053 \u62a4\u680f"},{"location":"catalogue_props/#_49","text":"\u84dd\u56fe ID : static . prop . constructioncone","title":"\u5efa\u7b51 \u9525\u4f53"},{"location":"catalogue_props/#01_6","text":"\u84dd\u56fe ID : static . prop . trafficcone01","title":"\u4ea4\u901a \u9525 01"},{"location":"catalogue_props/#02_5","text":"\u84dd\u56fe ID : static . prop . trafficcone02","title":"\u4ea4\u901a \u9525 02"},{"location":"catalogue_props/#_50","text":"\u84dd\u56fe ID : static . prop . ironplank","title":"\u94c1\u677f"},{"location":"catalogue_props/#_51","text":"\u84dd\u56fe ID : static . prop . warningconstruction","title":"\u65bd\u5de5 \u8b66\u793a"},{"location":"catalogue_props/#01_7","text":"\u84dd\u56fe ID : static . prop . brokentile01","title":"\u788e\u74e6 01"},{"location":"catalogue_props/#02_6","text":"\u84dd\u56fe ID : static . prop . brokentile02","title":"\u788e\u74e6 02"},{"location":"catalogue_props/#03_6","text":"\u84dd\u56fe ID : static . prop . brokentile03","title":"\u788e\u74e6 03"},{"location":"catalogue_props/#04_3","text":"\u84dd\u56fe ID : static . prop . brokentile04","title":"\u788e\u74e6 04"},{"location":"catalogue_props/#01_8","text":"\u84dd\u56fe ID : static . prop . dirtdebris01","title":"\u6c61\u57a2 / \u788e\u7247 01"},{"location":"catalogue_props/#02_7","text":"\u84dd\u56fe ID : static . prop . dirtdebris02","title":"\u6c61\u57a2 / \u788e\u7247 02"},{"location":"catalogue_props/#03_7","text":"\u84dd\u56fe ID : static . prop . dirtdebris03","title":"\u6c61\u57a2 / \u788e\u7247 03"},{"location":"catalogue_props/#_52","text":"\u84dd\u56fe ID : static . prop . trafficwarning","title":"\u4ea4\u901a \u8b66\u544a"},{"location":"catalogue_props/#_53","text":"\u84dd\u56fe ID : static . prop . warningaccident","title":"\u4e8b\u6545 \u8b66\u544a"},{"location":"catalogue_props/#_54","text":"","title":"\u4eba\u884c\u9053"},{"location":"catalogue_props/#_55","text":"\u84dd\u56fe ID : static . prop . chainbarrier","title":"\u94fe \u6805\u680f"},{"location":"catalogue_props/#_56","text":"\u84dd\u56fe ID : static . prop . chainbarrierend","title":"\u94fe \u6805\u680f \u672b\u7aef"},{"location":"catalogue_props/#01_9","text":"\u84dd\u56fe ID : static . prop . bench01","title":"\u957f\u51f3 01"},{"location":"catalogue_props/#02_8","text":"\u84dd\u56fe ID : static . prop . bench02","title":"\u957f\u51f3 02"},{"location":"catalogue_props/#_57","text":"\u84dd\u56fe ID : static . prop . foodcart","title":"\u9910\u8f66"},{"location":"catalogue_props/#01_10","text":"\u84dd\u56fe ID : static . prop . kiosk _ 01","title":"\u4fe1\u606f \u4ead 01"},{"location":"catalogue_props/#_58","text":"\u84dd\u56fe ID : static . prop . fountain","title":"\u55b7\u6cc9"},{"location":"catalogue_props/#_59","text":"\u84dd\u56fe ID : static . prop . maptable","title":"\u5730 \u56fe\u8868"},{"location":"catalogue_props/#_60","text":"\u84dd\u56fe ID : static . prop . advertisement","title":"\u5e7f\u544a"},{"location":"catalogue_props/#_61","text":"\u84dd\u56fe ID : static . prop . streetsign","title":"\u8def\u724c"},{"location":"catalogue_props/#01_11","text":"\u84dd\u56fe ID : static . prop . streetsign01","title":"\u8def\u724c 01"},{"location":"catalogue_props/#04_4","text":"\u84dd\u56fe ID : static . prop . streetsign04","title":"\u8def\u724c 04"},{"location":"catalogue_props/#_62","text":"\u84dd\u56fe ID : static . prop . busstop","title":"\u516c\u4ea4\u8f66\u7ad9"},{"location":"catalogue_props/#_63","text":"\u84dd\u56fe ID : static . prop . busstoplb","title":"\u5907\u7528 \u516c\u4ea4\u8f66\u7ad9"},{"location":"catalogue_props/#_64","text":"\u84dd\u56fe ID : static . prop . atm","title":"\u81ea\u52a8 \u63d0\u6b3e\u673a"},{"location":"catalogue_props/#_65","text":"\u84dd\u56fe ID : static . prop . mailbox","title":"\u90ae\u7bb1"},{"location":"catalogue_props/#_66","text":"\u84dd\u56fe ID : static . prop . streetfountain","title":"\u8857\u5934 \u55b7\u6cc9"},{"location":"catalogue_props/#_67","text":"\u84dd\u56fe ID : static . prop . vendingmachine","title":"\u552e\u8d27\u673a"},{"location":"catalogue_props/#_68","text":"","title":"\u516c\u7528"},{"location":"catalogue_props/#_69","text":"\u84dd\u56fe ID : static . prop . calibrator","title":"\u6821\u51c6\u5668"},{"location":"catalogue_vehicles/","text":"\u8f66\u8f86 \u76ee\u5f55 \u7b2c 2 \u4ee3 \u8f66 \u9053\u5947 - Charger 2020 \u9053\u5947 - Police Charger 2020 \u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u6797\u80af - MKZ 2020 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe 2020 \u8ff7\u4f60 - Cooper S 2021 \u5c3c\u6851 - Patrol 2021 \u5361\u8f66 Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 Carla Motors - \u6d88\u9632 \u6d88\u9632\u8f66 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Cybertruck \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u798f\u7279 - \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Sprinter \u5927\u4f17 - T2 2021 \u5df4\u58eb \u4e09\u83f1 - Fusorosa \u7b2c\u4e00 \u4e00\u4ee3 \u7b2c\u4e00\u4ee3 \u8f66 \u5965\u8fea - A2 \u5965\u8fea - E - Tron \u5965\u8fea - TT \u5b9d\u9a6c - \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u96ea\u4f5b\u5170 - Impala \u96ea\u94c1\u9f99 - C3 \u9053\u5947 - Police Charger \u798f\u7279 - Mustang \u5409\u666e \u5409\u666e\u8f66 - Wrangler Rubicon \u6797\u80af - MKZ 2017 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe \u5fae\u578b \u5fae\u578b\u8f66 - Microlino \u8ff7\u4f60 - Cooper S \u5c3c\u6851 - Micra \u5c3c\u6851 - Patrol Seat - Leon \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Model 3 Toyota - Prius \u5361\u8f66 Carla Motors - CarlaCola \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u5927\u4f17 - T2 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider Kawasaki - Ninja Vespa - ZX 125 Yamaha - YZF \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 BH - \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 - Century Gazelle - Omafiets \u68c0\u67e5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u8f66\u8f86 \u8981 \u68c0\u67e5 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u4ece \u4e0b\u9762 \u7684 \u8f66\u8f86 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4e2d \u68c0\u7d22 \u84dd\u56fe ID \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u884c\u4e2d bp _ lib . find ( ' blueprint . id . goes _ here ' ) \uff1a client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) spectator = world . get _ spectator ( ) # \u8bbe\u7f6e \u8f66\u8f86 \u53d8\u6362 vehicle _ loc = carla . Location ( x = - 46.9 , y = 20.0 , z = 0.2 ) vehicle _ rot = carla . Rotation ( pitch = 0.0 , yaw = 142.0 , roll = 0.0 ) vehicle _ trans = carla . Transform ( vehicle _ loc , vehicle _ rot ) # \u5728 \u8fd9\u91cc \u7c98\u8d34 \u84dd\u56fe ID vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) # \u8bbe\u7f6e \u89c6\u89d2 \u53d8\u6362 camera _ loc = carla . Location ( x = - 48.7 , y = 24.8 , z = 1.7 ) camera _ rot = carla . Rotation ( pitch = - 13.4 , yaw = - 75.7 , roll = 0.0 ) camera _ trans = carla . Transform ( camera _ loc , camera _ rot ) # \u751f\u6210 \u8f66\u8f86 vehicle = world . spawn _ actor ( vehicle _ bp , vehicle _ trans ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( camera _ trans ) \u5728 \u5c1d\u8bd5 \u751f\u6210 \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4e4b\u524d \uff0c \u4e0d\u8981 \u5fd8\u8bb0 \u6467\u6bc1 \u8be5 \u8f66\u8f86 \u4ee5 \u907f\u514d \u78b0\u649e \uff1a vehicle . destroy ( ) \u8f66 \u5965\u8fea - A2 \u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : A2 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . a2 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5965\u8fea - E - Tron \u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : E - Tron \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . etron \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5965\u8fea - TT \u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : TT \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . tt \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5b9d\u9a6c - \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u5236\u9020 \u5236\u9020\u5546 : \u5b9d\u9a6c \u578b\u53f7 : \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bmw . grandtourer \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u96ea\u4f5b\u5170 - Impala \u5236\u9020 \u5236\u9020\u5546 : \u96ea\u4f5b\u5170 \u578b\u53f7 : Impala \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . chevrolet . impala \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u96ea\u94c1\u9f99 - C3 \u5236\u9020 \u5236\u9020\u5546 : \u96ea\u94c1\u9f99 \u578b\u53f7 : C3 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . citroen . c3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u9053\u5947 - Charger 2020 \u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u9053\u5947 - Police Charger \u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . dodge . charger _ police \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u9053\u5947 - Police Charger 2020 \u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ police _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . crown \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : taxi \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u798f\u7279 - Mustang \u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : Mustang \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . ford . mustang \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5409\u666e \u5409\u666e\u8f66 - Wrangler Rubicon \u5236\u9020 \u5236\u9020\u5546 : \u5409\u666e \u5409\u666e\u8f66 \u578b\u53f7 : Wrangler Rubicon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . jeep . wrangler _ rubicon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u6797\u80af - MKZ 2017 \u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2017 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2017 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u6797\u80af - MKZ 2020 \u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe \u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mercedes . coupe \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe 2020 \u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . coupe _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5fae\u578b \u5fae\u578b\u8f66 - Microlino \u5236\u9020 \u5236\u9020\u5546 : \u5fae\u578b \u5fae\u578b\u8f66 \u578b\u53f7 : Microlino \u7c7b\u522b : \u5fae\u578b \u5fae\u578b\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . micro . microlino \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u8ff7\u4f60 - Cooper S \u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mini . cooper _ s \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u8ff7\u4f60 - Cooper S 2021 \u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S 2021 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mini . cooper _ s _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5c3c\u6851 - Micra \u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Micra \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . micra \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5c3c\u6851 - Patrol \u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . patrol \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5c3c\u6851 - Patrol 2021 \u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol 2021 \u7c7b\u522b : SUV \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . nissan . patrol _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True Seat - Leon \u5236\u9020 \u5236\u9020\u5546 : Seat \u578b\u53f7 : Leon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . seat . leon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Model 3 \u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Model 3 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . tesla . model3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Toyota - Prius \u5236\u9020 \u5236\u9020\u5546 : Toyota \u578b\u53f7 : Prius \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . toyota . prius \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5361\u8f66 Carla Motors - CarlaCola \u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : CarlaCola \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . carlamotors . carlacola \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 \u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . european _ hgv \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Carla Motors - Firetruck \u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : Firetruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . firetruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Cybertruck \u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Cybertruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . tesla . cybertruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u798f\u7279 - \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . ambulance \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Sprinter \u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Sprinter \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . sprinter \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5927\u4f17 - T2 \u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . volkswagen . t2 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5927\u4f17 - T2 2021 \u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 2021 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . volkswagen . t2 _ 2021 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5df4\u58eb \u4e09\u83f1 - Fusorosa \u5236\u9020 \u5236\u9020\u5546 : \u4e09\u83f1 \u578b\u53f7 : Fusorosa \u7c7b\u522b : \u5df4\u58eb \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mitsubishi . fusorosa \u57fa\u672c \u7c7b\u578b : \u5df4\u58eb \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider \u5236\u9020 \u5236\u9020\u5546 : \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 : Low Rider \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . harley - davidson . low _ rider \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Kawasaki - Ninja \u5236\u9020 \u5236\u9020\u5546 : Kawasaki \u578b\u53f7 : Ninja \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . kawasaki . ninja \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Vespa - ZX 125 \u5236\u9020 \u5236\u9020\u5546 : Vespa \u578b\u53f7 : ZX 125 \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . vespa . zx125 \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Yamaha - YZF \u5236\u9020 \u5236\u9020\u5546 : Yamaha \u578b\u53f7 : YZF \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . yamaha . yzf \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 BH - \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5236\u9020 \u5236\u9020\u5546 : BH \u578b\u53f7 : \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bh . crossbike \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 - Century \u5236\u9020 \u5236\u9020\u5546 : \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u578b\u53f7 : Century \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . diamondback . century \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Gazelle - Omafiets \u5236\u9020 \u5236\u9020\u5546 : Gazelle \u578b\u53f7 : Omafiets \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . gazelle . omafiets \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Catalogue vehicles"},{"location":"catalogue_vehicles/#_1","text":"","title":"\u8f66\u8f86 \u76ee\u5f55"},{"location":"catalogue_vehicles/#2","text":"\u8f66 \u9053\u5947 - Charger 2020 \u9053\u5947 - Police Charger 2020 \u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u6797\u80af - MKZ 2020 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe 2020 \u8ff7\u4f60 - Cooper S 2021 \u5c3c\u6851 - Patrol 2021 \u5361\u8f66 Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 Carla Motors - \u6d88\u9632 \u6d88\u9632\u8f66 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Cybertruck \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u798f\u7279 - \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Sprinter \u5927\u4f17 - T2 2021 \u5df4\u58eb \u4e09\u83f1 - Fusorosa","title":"\u7b2c 2 \u4ee3"},{"location":"catalogue_vehicles/#_2","text":"\u8f66 \u5965\u8fea - A2 \u5965\u8fea - E - Tron \u5965\u8fea - TT \u5b9d\u9a6c - \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u96ea\u4f5b\u5170 - Impala \u96ea\u94c1\u9f99 - C3 \u9053\u5947 - Police Charger \u798f\u7279 - Mustang \u5409\u666e \u5409\u666e\u8f66 - Wrangler Rubicon \u6797\u80af - MKZ 2017 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe \u5fae\u578b \u5fae\u578b\u8f66 - Microlino \u8ff7\u4f60 - Cooper S \u5c3c\u6851 - Micra \u5c3c\u6851 - Patrol Seat - Leon \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Model 3 Toyota - Prius \u5361\u8f66 Carla Motors - CarlaCola \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u5927\u4f17 - T2 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider Kawasaki - Ninja Vespa - ZX 125 Yamaha - YZF \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 BH - \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 - Century Gazelle - Omafiets","title":"\u7b2c\u4e00\u4ee3"},{"location":"catalogue_vehicles/#_3","text":"\u8981 \u68c0\u67e5 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u4ece \u4e0b\u9762 \u7684 \u8f66\u8f86 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4e2d \u68c0\u7d22 \u84dd\u56fe ID \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u884c\u4e2d bp _ lib . find ( ' blueprint . id . goes _ here ' ) \uff1a client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) spectator = world . get _ spectator ( ) # \u8bbe\u7f6e \u8f66\u8f86 \u53d8\u6362 vehicle _ loc = carla . Location ( x = - 46.9 , y = 20.0 , z = 0.2 ) vehicle _ rot = carla . Rotation ( pitch = 0.0 , yaw = 142.0 , roll = 0.0 ) vehicle _ trans = carla . Transform ( vehicle _ loc , vehicle _ rot ) # \u5728 \u8fd9\u91cc \u7c98\u8d34 \u84dd\u56fe ID vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) # \u8bbe\u7f6e \u89c6\u89d2 \u53d8\u6362 camera _ loc = carla . Location ( x = - 48.7 , y = 24.8 , z = 1.7 ) camera _ rot = carla . Rotation ( pitch = - 13.4 , yaw = - 75.7 , roll = 0.0 ) camera _ trans = carla . Transform ( camera _ loc , camera _ rot ) # \u751f\u6210 \u8f66\u8f86 vehicle = world . spawn _ actor ( vehicle _ bp , vehicle _ trans ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( camera _ trans ) \u5728 \u5c1d\u8bd5 \u751f\u6210 \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4e4b\u524d \uff0c \u4e0d\u8981 \u5fd8\u8bb0 \u6467\u6bc1 \u8be5 \u8f66\u8f86 \u4ee5 \u907f\u514d \u78b0\u649e \uff1a vehicle . destroy ( )","title":"\u68c0\u67e5 \u4eff\u771f\u5668 \u4e2d \u7684 \u8f66\u8f86"},{"location":"catalogue_vehicles/#_4","text":"","title":"\u8f66"},{"location":"catalogue_vehicles/#-a2","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : A2 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . a2 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5965\u8fea - A2"},{"location":"catalogue_vehicles/#-e-tron","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : E - Tron \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . etron \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5965\u8fea - E - Tron"},{"location":"catalogue_vehicles/#-tt","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : TT \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . tt \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5965\u8fea - TT"},{"location":"catalogue_vehicles/#-","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5b9d\u9a6c \u578b\u53f7 : \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bmw . grandtourer \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5b9d\u9a6c - \u591a\u529f\u80fd \u65c5\u884c\u8f66"},{"location":"catalogue_vehicles/#-impala","text":"\u5236\u9020 \u5236\u9020\u5546 : \u96ea\u4f5b\u5170 \u578b\u53f7 : Impala \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . chevrolet . impala \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u96ea\u4f5b\u5170 - Impala"},{"location":"catalogue_vehicles/#-c3","text":"\u5236\u9020 \u5236\u9020\u5546 : \u96ea\u94c1\u9f99 \u578b\u53f7 : C3 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . citroen . c3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u96ea\u94c1\u9f99 - C3"},{"location":"catalogue_vehicles/#-charger-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u9053\u5947 - Charger 2020"},{"location":"catalogue_vehicles/#-police-charger","text":"\u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . dodge . charger _ police \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u9053\u5947 - Police Charger"},{"location":"catalogue_vehicles/#-police-charger-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ police _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u9053\u5947 - Police Charger 2020"},{"location":"catalogue_vehicles/#-_1","text":"\u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . crown \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : taxi \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df\u8f66 \uff09"},{"location":"catalogue_vehicles/#-mustang","text":"\u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : Mustang \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . ford . mustang \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u798f\u7279 - Mustang"},{"location":"catalogue_vehicles/#-wrangler-rubicon","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5409\u666e \u5409\u666e\u8f66 \u578b\u53f7 : Wrangler Rubicon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . jeep . wrangler _ rubicon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5409\u666e\u8f66 - Wrangler Rubicon"},{"location":"catalogue_vehicles/#-mkz-2017","text":"\u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2017 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2017 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u6797\u80af - MKZ 2017"},{"location":"catalogue_vehicles/#-mkz-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u6797\u80af - MKZ 2020"},{"location":"catalogue_vehicles/#-coupe","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mercedes . coupe \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u6885\u8d5b\u5fb7\u65af - Coupe"},{"location":"catalogue_vehicles/#-coupe-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . coupe _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u6885\u8d5b\u5fb7\u65af - Coupe 2020"},{"location":"catalogue_vehicles/#-microlino","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5fae\u578b \u5fae\u578b\u8f66 \u578b\u53f7 : Microlino \u7c7b\u522b : \u5fae\u578b \u5fae\u578b\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . micro . microlino \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5fae\u578b\u8f66 - Microlino"},{"location":"catalogue_vehicles/#-cooper-s","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mini . cooper _ s \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u8ff7\u4f60 - Cooper S"},{"location":"catalogue_vehicles/#-cooper-s-2021","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S 2021 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mini . cooper _ s _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u8ff7\u4f60 - Cooper S 2021"},{"location":"catalogue_vehicles/#-micra","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Micra \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . micra \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5c3c\u6851 - Micra"},{"location":"catalogue_vehicles/#-patrol","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . patrol \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5c3c\u6851 - Patrol"},{"location":"catalogue_vehicles/#-patrol-2021","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol 2021 \u7c7b\u522b : SUV \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . nissan . patrol _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u5c3c\u6851 - Patrol 2021"},{"location":"catalogue_vehicles/#seat-leon","text":"\u5236\u9020 \u5236\u9020\u5546 : Seat \u578b\u53f7 : Leon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . seat . leon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Seat - Leon"},{"location":"catalogue_vehicles/#-model-3","text":"\u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Model 3 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . tesla . model3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u7279\u65af\u62c9 - Model 3"},{"location":"catalogue_vehicles/#toyota-prius","text":"\u5236\u9020 \u5236\u9020\u5546 : Toyota \u578b\u53f7 : Prius \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . toyota . prius \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Toyota - Prius"},{"location":"catalogue_vehicles/#_5","text":"","title":"\u5361\u8f66"},{"location":"catalogue_vehicles/#carla-motors-carlacola","text":"\u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : CarlaCola \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . carlamotors . carlacola \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Carla Motors - CarlaCola"},{"location":"catalogue_vehicles/#carla-motors-hgv","text":"\u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . european _ hgv \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09"},{"location":"catalogue_vehicles/#carla-motors-firetruck","text":"\u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : Firetruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . firetruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"Carla Motors - Firetruck"},{"location":"catalogue_vehicles/#-cybertruck","text":"\u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Cybertruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . tesla . cybertruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u7279\u65af\u62c9 - Cybertruck"},{"location":"catalogue_vehicles/#_6","text":"","title":"\u9762\u5305\u8f66"},{"location":"catalogue_vehicles/#-_2","text":"\u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . ambulance \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u798f\u7279 - \u6551\u62a4\u8f66"},{"location":"catalogue_vehicles/#-sprinter","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Sprinter \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . sprinter \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u6885\u8d5b\u5fb7\u65af - Sprinter"},{"location":"catalogue_vehicles/#-t2","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . volkswagen . t2 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5927\u4f17 - T2"},{"location":"catalogue_vehicles/#-t2-2021","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 2021 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . volkswagen . t2 _ 2021 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u5927\u4f17 - T2 2021"},{"location":"catalogue_vehicles/#_7","text":"","title":"\u5df4\u58eb"},{"location":"catalogue_vehicles/#-fusorosa","text":"\u5236\u9020 \u5236\u9020\u5546 : \u4e09\u83f1 \u578b\u53f7 : Fusorosa \u7c7b\u522b : \u5df4\u58eb \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mitsubishi . fusorosa \u57fa\u672c \u7c7b\u578b : \u5df4\u58eb \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u4e09\u83f1 - Fusorosa"},{"location":"catalogue_vehicles/#_8","text":"","title":"\u6469\u6258\u8f66"},{"location":"catalogue_vehicles/#-low-rider","text":"\u5236\u9020 \u5236\u9020\u5546 : \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 : Low Rider \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . harley - davidson . low _ rider \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider"},{"location":"catalogue_vehicles/#kawasaki-ninja","text":"\u5236\u9020 \u5236\u9020\u5546 : Kawasaki \u578b\u53f7 : Ninja \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . kawasaki . ninja \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Kawasaki - Ninja"},{"location":"catalogue_vehicles/#vespa-zx-125","text":"\u5236\u9020 \u5236\u9020\u5546 : Vespa \u578b\u53f7 : ZX 125 \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . vespa . zx125 \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Vespa - ZX 125"},{"location":"catalogue_vehicles/#yamaha-yzf","text":"\u5236\u9020 \u5236\u9020\u5546 : Yamaha \u578b\u53f7 : YZF \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . yamaha . yzf \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Yamaha - YZF"},{"location":"catalogue_vehicles/#_9","text":"","title":"\u81ea\u884c\u8f66"},{"location":"catalogue_vehicles/#bh-","text":"\u5236\u9020 \u5236\u9020\u5546 : BH \u578b\u53f7 : \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bh . crossbike \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"BH - \u8d8a\u91ce \u81ea\u884c\u8f66"},{"location":"catalogue_vehicles/#-century","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u578b\u53f7 : Century \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . diamondback . century \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5927\u540d \u81ea\u884c\u8f66 - Century"},{"location":"catalogue_vehicles/#gazelle-omafiets","text":"\u5236\u9020 \u5236\u9020\u5546 : Gazelle \u578b\u53f7 : Omafiets \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . gazelle . omafiets \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Gazelle - Omafiets"},{"location":"cont_code_of_conduct/","text":"\u8d21\u732e \u8d21\u732e\u8005 \u5951\u7ea6 \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u6211\u4eec \u7684 \u627f\u8bfa \u6211\u4eec \u7684 \u6807\u51c6 \u6211\u4eec \u7684 \u8d23\u4efb \u8303\u56f4 \u6267\u884c \u5f52\u5c5e \u6211\u4eec \u7684 \u627f\u8bfa \u4e3a\u4e86 \u8425\u9020 \u4e00\u4e2a \u5f00\u653e \u548c \u70ed\u60c5 \u7684 \u73af\u5883 \uff0c \u6211\u4eec \u4f5c\u4e3a \u8d21\u732e \u8d21\u732e\u8005 \u548c \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u627f\u8bfa \u8ba9 \u6bcf\u4e2a \u4eba \u53c2\u4e0e \u6211\u4eec \u7684 \u9879\u76ee \u548c \u793e\u533a \u6210\u4e3a \u65e0 \u9a9a\u6270 \u7684 \u4f53\u9a8c \uff0c \u65e0\u8bba \u5e74\u9f84 \u3001 \u4f53\u578b \u3001 \u6b8b\u75be \u3001 \u79cd\u65cf \u3001 \u6027\u522b \u8ba4\u540c \u548c \u8868\u8fbe \uff0c \u7ecf\u9a8c \u6c34\u5e73 \u3001 \u6559\u80b2 \u7a0b\u5ea6 \u3001 \u793e\u4f1a \u7ecf\u6d4e \u5730\u4f4d \u3001 \u56fd\u7c4d \u3001 \u4e2a\u4eba \u5916\u8868 \u3001 \u79cd\u65cf \u3001 \u5b97\u6559 \u6216\u6027 \u8ba4\u540c \u548c \u53d6\u5411 \u3002 \u6211\u4eec \u7684 \u6807\u51c6 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u9020 \u79ef\u6781 \u73af\u5883 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6b22\u8fce \u548c \u5305\u5bb9 \u7684 \u8bed\u8a00 \u5c0a\u91cd \u4e0d\u540c \u7684 \u89c2\u70b9 \u548c \u7ecf\u9a8c \u4f18\u96c5 \u5730 \u63a5\u53d7 \u5efa\u8bbe \u5efa\u8bbe\u6027 \u7684 \u6279\u8bc4 \u4e13\u6ce8 \u4e8e \u5bf9 \u793e\u533a \u6700 \u6709\u5229 \u7684 \u4e8b\u60c5 \u5bf9 \u5176\u4ed6 \u793e\u533a \u6210\u5458 \u8868\u73b0 \u51fa \u540c\u60c5 \u540c\u60c5\u5fc3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6027 \u8bed\u8a00 \u6216 \u56fe\u50cf \u4ee5\u53ca \u4e0d \u6b22\u8fce \u53d7\u6b22\u8fce \u7684 \u6027 \u5173\u6ce8 \u6216 \u6311\u9017 \u6076\u641e \u3001 \u4fae\u8fb1 / \u8d2c\u635f \u8bc4\u8bba \u4ee5\u53ca \u4e2a\u4eba \u6216 \u653f\u6cbb \u653b\u51fb \u516c\u5f00 \u6216 \u79c1\u4eba \u9a9a\u6270 \u672a\u7ecf \u660e\u786e \u8bb8\u53ef \uff0c \u53d1\u5e03 \u4ed6\u4eba \u7684 \u79c1\u4eba \u4fe1\u606f \uff0c \u4f8b\u5982 \u5b9e\u9645 \u5730\u5740 \u6216 \u7535\u5b50 \u5730\u5740 \u5728 \u4e13\u4e1a \u73af\u5883 \u4e2d \u53ef\u80fd \u88ab \u5408\u7406 \u5730 \u8ba4\u4e3a \u4e0d \u9002\u5f53 \u7684 \u5176\u4ed6 \u884c\u4e3a \u6211\u4eec \u7684 \u8d23\u4efb \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u8d23\u4efb \u9610\u660e \u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u6807\u51c6 \uff0c \u5e76 \u5e94 \u9488\u5bf9 \u4efb\u4f55 \u4e0d\u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u60c5\u51b5 \u91c7\u53d6 \u9002\u5f53 \u548c \u516c\u5e73 \u7684 \u7ea0\u6b63 \u63aa\u65bd \u3002 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u6743\u5229 \u548c \u8d23\u4efb \u5220\u9664 \u3001 \u7f16\u8f91 \u6216 \u62d2\u7edd \u4e0d \u7b26\u5408 \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u8bc4\u8bba \u3001 \u63d0\u4ea4 \u3001 \u4ee3\u7801 \u3001 \u7ef4\u57fa \u7f16\u8f91 \u3001 \u95ee\u9898 \u548c \u5176\u4ed6 \u8d21\u732e \uff0c \u6216\u8005 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7981\u6b62 \u4efb\u4f55 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u5176\u4ed6 \u884c\u4e3a \u4ed6\u4eec \u8ba4\u4e3a \u4e0d \u6070\u5f53 \u3001 \u5177\u6709 \u5a01\u80c1 \u5a01\u80c1\u6027 \u3001 \u5192\u72af \u6027 \u6216 \u6709\u5bb3 \u3002 \u8303\u56f4 \u5f53 \u4e2a\u4eba \u4ee3\u8868 \u9879\u76ee \u6216 \u5176 \u793e\u533a \u65f6 \uff0c \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u9002\u7528 \u4e8e \u9879\u76ee \u7a7a\u95f4 \u548c \u516c\u5171 \u7a7a\u95f4 \u3002 \u4ee3\u8868 \u9879\u76ee \u6216 \u793e\u533a \u7684 \u793a\u4f8b \u5305\u62ec \u4f7f\u7528 \u5b98\u65b9 \u9879\u76ee \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u5730\u5740 \u3001 \u901a\u8fc7 \u5b98\u65b9 \u793e\u4ea4 \u5a92\u4f53 \u5e10\u6237 \u53d1\u5e16 \u6216 \u5728\u7ebf \u4e0a \u6216 \u7ebf\u4e0b \u6d3b\u52a8 \u4e2d \u62c5\u4efb \u6307\u5b9a \u4ee3\u8868 \u3002 \u9879\u76ee \u7684 \u8868\u793a \u53ef\u4ee5 \u7531 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u5b9a\u4e49 \u548c \u6f84\u6e05 \u3002 \u6267\u884c \u53ef\u4ee5 \u901a\u8fc7 info - carla @ osvf . org \u8054\u7cfb \u9879\u76ee \u56e2\u961f \u6765 \u4e3e\u62a5 \u8fb1\u9a82 \u3001 \u9a9a\u6270 \u6216 \u5176\u4ed6 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u3002 \u6240\u6709 \u6295\u8bc9 \u90fd \u5c06 \u63a5\u53d7 \u5ba1\u67e5 \u548c \u8c03\u67e5 \uff0c \u5e76 \u5c06 \u6839\u636e \u5177\u4f53 \u60c5\u51b5 \u5177\u4f53\u60c5\u51b5 \u505a\u51fa \u5fc5\u8981 \u4e14 \u9002\u5f53 \u7684 \u56de\u5e94 \u3002 \u9879\u76ee \u56e2\u961f \u6709 \u4e49\u52a1 \u5bf9 \u4e8b\u4ef6 \u62a5\u544a \u4e8b\u4ef6\u62a5\u544a \u8005 \u4fdd\u5bc6 \u3002 \u5177\u4f53 \u6267\u884c \u653f\u7b56 \u7684 \u66f4 \u591a \u7ec6\u8282 \u53ef\u80fd \u4f1a \u5355\u72ec \u53d1\u5e03 \u3002 \u4e0d \u5584\u610f \u5730 \u9075\u5b88 \u6216 \u6267\u884c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u53ef\u80fd \u4f1a \u9762\u4e34 \u9879\u76ee \u9886\u5bfc \u9886\u5bfc\u5c42 \u5176\u4ed6 \u6210\u5458 \u786e\u5b9a \u7684 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7684 \u5f71\u54cd \u3002 \u5f52\u5c5e \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u6539\u7f16 \u6539\u7f16\u81ea \u8d21\u732e \u8d21\u732e\u8005 \u5951\u7ea6 1.4 \u7248 \uff0c \u53ef \u4ece https : / / www . contributor - covenant . org / version / 1 / 4 / code - of - conduct . html \u83b7\u53d6 \u3002","title":"\u884c\u4e3a\u51c6\u5219"},{"location":"cont_code_of_conduct/#_1","text":"\u6211\u4eec \u7684 \u627f\u8bfa \u6211\u4eec \u7684 \u6807\u51c6 \u6211\u4eec \u7684 \u8d23\u4efb \u8303\u56f4 \u6267\u884c \u5f52\u5c5e","title":"\u8d21\u732e\u8005 \u5951\u7ea6 \u884c\u4e3a\u51c6\u5219"},{"location":"cont_code_of_conduct/#_2","text":"\u4e3a\u4e86 \u8425\u9020 \u4e00\u4e2a \u5f00\u653e \u548c \u70ed\u60c5 \u7684 \u73af\u5883 \uff0c \u6211\u4eec \u4f5c\u4e3a \u8d21\u732e \u8d21\u732e\u8005 \u548c \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u627f\u8bfa \u8ba9 \u6bcf\u4e2a \u4eba \u53c2\u4e0e \u6211\u4eec \u7684 \u9879\u76ee \u548c \u793e\u533a \u6210\u4e3a \u65e0 \u9a9a\u6270 \u7684 \u4f53\u9a8c \uff0c \u65e0\u8bba \u5e74\u9f84 \u3001 \u4f53\u578b \u3001 \u6b8b\u75be \u3001 \u79cd\u65cf \u3001 \u6027\u522b \u8ba4\u540c \u548c \u8868\u8fbe \uff0c \u7ecf\u9a8c \u6c34\u5e73 \u3001 \u6559\u80b2 \u7a0b\u5ea6 \u3001 \u793e\u4f1a \u7ecf\u6d4e \u5730\u4f4d \u3001 \u56fd\u7c4d \u3001 \u4e2a\u4eba \u5916\u8868 \u3001 \u79cd\u65cf \u3001 \u5b97\u6559 \u6216\u6027 \u8ba4\u540c \u548c \u53d6\u5411 \u3002","title":"\u6211\u4eec \u7684 \u627f\u8bfa"},{"location":"cont_code_of_conduct/#_3","text":"\u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u9020 \u79ef\u6781 \u73af\u5883 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6b22\u8fce \u548c \u5305\u5bb9 \u7684 \u8bed\u8a00 \u5c0a\u91cd \u4e0d\u540c \u7684 \u89c2\u70b9 \u548c \u7ecf\u9a8c \u4f18\u96c5 \u5730 \u63a5\u53d7 \u5efa\u8bbe \u5efa\u8bbe\u6027 \u7684 \u6279\u8bc4 \u4e13\u6ce8 \u4e8e \u5bf9 \u793e\u533a \u6700 \u6709\u5229 \u7684 \u4e8b\u60c5 \u5bf9 \u5176\u4ed6 \u793e\u533a \u6210\u5458 \u8868\u73b0 \u51fa \u540c\u60c5 \u540c\u60c5\u5fc3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6027 \u8bed\u8a00 \u6216 \u56fe\u50cf \u4ee5\u53ca \u4e0d \u6b22\u8fce \u53d7\u6b22\u8fce \u7684 \u6027 \u5173\u6ce8 \u6216 \u6311\u9017 \u6076\u641e \u3001 \u4fae\u8fb1 / \u8d2c\u635f \u8bc4\u8bba \u4ee5\u53ca \u4e2a\u4eba \u6216 \u653f\u6cbb \u653b\u51fb \u516c\u5f00 \u6216 \u79c1\u4eba \u9a9a\u6270 \u672a\u7ecf \u660e\u786e \u8bb8\u53ef \uff0c \u53d1\u5e03 \u4ed6\u4eba \u7684 \u79c1\u4eba \u4fe1\u606f \uff0c \u4f8b\u5982 \u5b9e\u9645 \u5730\u5740 \u6216 \u7535\u5b50 \u5730\u5740 \u5728 \u4e13\u4e1a \u73af\u5883 \u4e2d \u53ef\u80fd \u88ab \u5408\u7406 \u5730 \u8ba4\u4e3a \u4e0d \u9002\u5f53 \u7684 \u5176\u4ed6 \u884c\u4e3a","title":"\u6211\u4eec \u7684 \u6807\u51c6"},{"location":"cont_code_of_conduct/#_4","text":"\u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u8d23\u4efb \u9610\u660e \u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u6807\u51c6 \uff0c \u5e76 \u5e94 \u9488\u5bf9 \u4efb\u4f55 \u4e0d\u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u60c5\u51b5 \u91c7\u53d6 \u9002\u5f53 \u548c \u516c\u5e73 \u7684 \u7ea0\u6b63 \u63aa\u65bd \u3002 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u6743\u5229 \u548c \u8d23\u4efb \u5220\u9664 \u3001 \u7f16\u8f91 \u6216 \u62d2\u7edd \u4e0d \u7b26\u5408 \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u8bc4\u8bba \u3001 \u63d0\u4ea4 \u3001 \u4ee3\u7801 \u3001 \u7ef4\u57fa \u7f16\u8f91 \u3001 \u95ee\u9898 \u548c \u5176\u4ed6 \u8d21\u732e \uff0c \u6216\u8005 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7981\u6b62 \u4efb\u4f55 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u5176\u4ed6 \u884c\u4e3a \u4ed6\u4eec \u8ba4\u4e3a \u4e0d \u6070\u5f53 \u3001 \u5177\u6709 \u5a01\u80c1 \u5a01\u80c1\u6027 \u3001 \u5192\u72af \u6027 \u6216 \u6709\u5bb3 \u3002","title":"\u6211\u4eec \u7684 \u8d23\u4efb"},{"location":"cont_code_of_conduct/#_5","text":"\u5f53 \u4e2a\u4eba \u4ee3\u8868 \u9879\u76ee \u6216 \u5176 \u793e\u533a \u65f6 \uff0c \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u9002\u7528 \u4e8e \u9879\u76ee \u7a7a\u95f4 \u548c \u516c\u5171 \u7a7a\u95f4 \u3002 \u4ee3\u8868 \u9879\u76ee \u6216 \u793e\u533a \u7684 \u793a\u4f8b \u5305\u62ec \u4f7f\u7528 \u5b98\u65b9 \u9879\u76ee \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u5730\u5740 \u3001 \u901a\u8fc7 \u5b98\u65b9 \u793e\u4ea4 \u5a92\u4f53 \u5e10\u6237 \u53d1\u5e16 \u6216 \u5728\u7ebf \u4e0a \u6216 \u7ebf\u4e0b \u6d3b\u52a8 \u4e2d \u62c5\u4efb \u6307\u5b9a \u4ee3\u8868 \u3002 \u9879\u76ee \u7684 \u8868\u793a \u53ef\u4ee5 \u7531 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u5b9a\u4e49 \u548c \u6f84\u6e05 \u3002","title":"\u8303\u56f4"},{"location":"cont_code_of_conduct/#_6","text":"\u53ef\u4ee5 \u901a\u8fc7 info - carla @ osvf . org \u8054\u7cfb \u9879\u76ee \u56e2\u961f \u6765 \u4e3e\u62a5 \u8fb1\u9a82 \u3001 \u9a9a\u6270 \u6216 \u5176\u4ed6 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u3002 \u6240\u6709 \u6295\u8bc9 \u90fd \u5c06 \u63a5\u53d7 \u5ba1\u67e5 \u548c \u8c03\u67e5 \uff0c \u5e76 \u5c06 \u6839\u636e \u5177\u4f53 \u60c5\u51b5 \u5177\u4f53\u60c5\u51b5 \u505a\u51fa \u5fc5\u8981 \u4e14 \u9002\u5f53 \u7684 \u56de\u5e94 \u3002 \u9879\u76ee \u56e2\u961f \u6709 \u4e49\u52a1 \u5bf9 \u4e8b\u4ef6 \u62a5\u544a \u4e8b\u4ef6\u62a5\u544a \u8005 \u4fdd\u5bc6 \u3002 \u5177\u4f53 \u6267\u884c \u653f\u7b56 \u7684 \u66f4 \u591a \u7ec6\u8282 \u53ef\u80fd \u4f1a \u5355\u72ec \u53d1\u5e03 \u3002 \u4e0d \u5584\u610f \u5730 \u9075\u5b88 \u6216 \u6267\u884c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u53ef\u80fd \u4f1a \u9762\u4e34 \u9879\u76ee \u9886\u5bfc \u9886\u5bfc\u5c42 \u5176\u4ed6 \u6210\u5458 \u786e\u5b9a \u7684 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7684 \u5f71\u54cd \u3002","title":"\u6267\u884c"},{"location":"cont_code_of_conduct/#_7","text":"\u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u6539\u7f16 \u6539\u7f16\u81ea \u8d21\u732e \u8d21\u732e\u8005 \u5951\u7ea6 1.4 \u7248 \uff0c \u53ef \u4ece https : / / www . contributor - covenant . org / version / 1 / 4 / code - of - conduct . html \u83b7\u53d6 \u3002","title":"\u5f52\u5c5e"},{"location":"cont_coding_standard/","text":"\u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u4e00\u822c Python C++ \u4e00\u822c \u4f7f\u7528 \u7a7a\u683c \uff0c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 \u907f\u514d \u6dfb\u52a0 \u5c3e\u968f \u7a7a\u683c \uff0c \u56e0\u4e3a \u5b83\u4f1a \u5728 \u5dee\u5f02 \u4e2d \u4ea7\u751f \u566a\u97f3 \u3002 Python \u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u4ee3\u7801 \u4e0d \u5e94 \u8d85\u8fc7 120 \u5217 \u3002 \u6240\u6709 \u4ee3\u7801 \u5fc5\u987b \u4e0e Python 2.7 \u548c 3.7 \u517c\u5bb9 \u3002 Pylint \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a \uff08 \u5f88\u5c11 \u6709 \u4f8b\u5916 \u9002\u7528 \u4e8e\u5916 \u90e8\u7c7b \uff0c \u5982 numpy \u548c pygame \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 . pylintrc \uff09 \u3002 Python \u4ee3\u7801 \u9075\u5faa PEP8 \u98ce\u683c \u6307\u5357 \uff08 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 autopep8 \uff09 \u3002 C++ \u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u5982\u679c \u53ef\u4ee5 \u4f7f \u4ee3\u7801 \u66f4 \u6e05\u6670 \uff0c \u5728 \u6781\u5c11 \u5c11\u6570 \u6781\u5c11\u6570 \u60c5\u51b5 \u4e0b \u4ee3\u7801 \u53ef\u80fd \u4f1a \u7a0d\u5fae \u8d85\u51fa \u6b64 \u9650\u5236 \u3002 \u7f16\u8bd1 \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a ( clang ++- 8 - Wall - Wextra - std = C++ 14 - Wno - missing - braces ) . \u7981\u6b62 \u4f7f\u7528 throw \uff0c \u8bf7 \u6539\u4e3a \u4f7f\u7528 carla : : throw _ exception \u3002 \u865a\u5e7b C++ \u4ee3\u7801 \uff08 CarlaUE4 \u548c Carla \u63d2\u4ef6 \uff09 \u9075\u5faa \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \uff0c \u4f46 \u4f7f\u7528 \u7a7a\u683c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 LibCarla \u4f7f\u7528 \u8c37\u6b4c \u98ce\u683c \u6307\u5357 \u7684 \u53d8\u4f53 \u3002 \u5982\u679c \u4ee3\u7801 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f7f\u7528 \uff0c \u5219 \u5e94 \u5c06 try - catch \u5757 \u7684 \u4f7f\u7528 # ifndef LIBCARLA _ NO _ EXCEPTIONS \u62ec \u8d77\u6765 \u3002","title":"\u7f16\u7801\u6807\u51c6"},{"location":"cont_coding_standard/#_1","text":"\u4e00\u822c Python C++","title":"\u7f16\u7801\u6807\u51c6"},{"location":"cont_coding_standard/#_2","text":"\u4f7f\u7528 \u7a7a\u683c \uff0c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 \u907f\u514d \u6dfb\u52a0 \u5c3e\u968f \u7a7a\u683c \uff0c \u56e0\u4e3a \u5b83\u4f1a \u5728 \u5dee\u5f02 \u4e2d \u4ea7\u751f \u566a\u97f3 \u3002","title":"\u4e00\u822c"},{"location":"cont_coding_standard/#python","text":"\u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u4ee3\u7801 \u4e0d \u5e94 \u8d85\u8fc7 120 \u5217 \u3002 \u6240\u6709 \u4ee3\u7801 \u5fc5\u987b \u4e0e Python 2.7 \u548c 3.7 \u517c\u5bb9 \u3002 Pylint \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a \uff08 \u5f88\u5c11 \u6709 \u4f8b\u5916 \u9002\u7528 \u4e8e\u5916 \u90e8\u7c7b \uff0c \u5982 numpy \u548c pygame \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 . pylintrc \uff09 \u3002 Python \u4ee3\u7801 \u9075\u5faa PEP8 \u98ce\u683c \u6307\u5357 \uff08 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 autopep8 \uff09 \u3002","title":"Python"},{"location":"cont_coding_standard/#c","text":"\u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u5982\u679c \u53ef\u4ee5 \u4f7f \u4ee3\u7801 \u66f4 \u6e05\u6670 \uff0c \u5728 \u6781\u5c11 \u5c11\u6570 \u6781\u5c11\u6570 \u60c5\u51b5 \u4e0b \u4ee3\u7801 \u53ef\u80fd \u4f1a \u7a0d\u5fae \u8d85\u51fa \u6b64 \u9650\u5236 \u3002 \u7f16\u8bd1 \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a ( clang ++- 8 - Wall - Wextra - std = C++ 14 - Wno - missing - braces ) . \u7981\u6b62 \u4f7f\u7528 throw \uff0c \u8bf7 \u6539\u4e3a \u4f7f\u7528 carla : : throw _ exception \u3002 \u865a\u5e7b C++ \u4ee3\u7801 \uff08 CarlaUE4 \u548c Carla \u63d2\u4ef6 \uff09 \u9075\u5faa \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \uff0c \u4f46 \u4f7f\u7528 \u7a7a\u683c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 LibCarla \u4f7f\u7528 \u8c37\u6b4c \u98ce\u683c \u6307\u5357 \u7684 \u53d8\u4f53 \u3002 \u5982\u679c \u4ee3\u7801 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f7f\u7528 \uff0c \u5219 \u5e94 \u5c06 try - catch \u5757 \u7684 \u4f7f\u7528 # ifndef LIBCARLA _ NO _ EXCEPTIONS \u62ec \u8d77\u6765 \u3002","title":"C++"},{"location":"cont_contribution_guidelines/","text":"\u4e3a Carla \u505a\u51fa \u8d21\u732e Carla \u56e2\u961f \u5f88 \u9ad8\u5174 \u63a5\u53d7 \u4efb\u4f55 \u613f\u610f \u5408\u4f5c \u7684 \u4eba \u7684 \u8d21\u732e \u3002 \u6839\u636e \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u80fd\u529b \uff0c \u53ef\u4ee5 \u91c7\u7528 \u4e0d\u540c \u7684 \u65b9\u5f0f \u4e3a \u9879\u76ee \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u56e2\u961f \u5c06 \u5c3d \u6700\u5927 \u52aa\u529b \u5c06 \u8d21\u732e \u6210\u529f \u6574\u5408 \u5230 Carla \u4e2d \u3002 \u770b\u770b \u5427 \uff0c \u4e0d\u8981 \u72b9\u8c6b \uff01 \u62a5\u544a \u9519\u8bef \u8bf7\u6c42 \u529f\u80fd \u4ee3\u7801 \u8d21\u732e \u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce \u5f00\u59cb \u4e4b\u524d \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u63d0\u4ea4 \u6e05\u5355 \u827a\u672f \u8d21\u732e \u6587\u6863 \u8d21\u732e \u62a5\u544a \u9519\u8bef \u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 Issues \u90e8\u5206 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 \u62a5\u544a \u65b0 \u9519\u8bef \u4e4b\u524d \uff0c \u8bf7 \u52a1\u5fc5 \u8fdb\u884c \u4e00\u4e9b \u68c0\u67e5 \u3002 1 . \u68c0\u67e5 \u662f\u5426 \u5df2 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 GitHub \u4e0a \u7684 \u540c\u4e00 \u95ee\u9898 \u90e8\u5206 \u67e5\u627e \u5b83 \u3002 2 . \u9605\u8bfb \u6587\u6863 \u3002 \u786e\u4fdd \u95ee\u9898 \u662f \u4e00\u4e2a \u9519\u8bef \uff0c \u800c \u4e0d\u662f \u5bf9 Carla \u5e94\u8be5 \u5982\u4f55 \u5de5\u4f5c \u7684 \u8bef\u89e3 \u3002 \u9605\u8bfb \u6587\u6863 \u4e2d \u4e0e \u8be5 \u95ee\u9898 \u76f8\u5173 \u7684 \u9875\u9762 \u5e76 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u3002 \u8bf7\u6c42 \u529f\u80fd \u65b0 \u529f\u80fd \u7684 \u60f3\u6cd5 \u4e5f \u662f \u4e00\u79cd \u5f88 \u597d \u7684 \u8d21\u732e \u65b9\u5f0f \u3002 \u4efb\u4f55 \u53ef\u4ee5 \u6539\u5584 \u7528\u6237 \u4f53\u9a8c \u7684 \u5efa\u8bae \u90fd \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7684 \u76f8\u5e94 GitHub \u90e8\u5206 \u63d0\u4ea4 \u3002 \u4ee3\u7801 \u8d21\u732e \u5728 \u5f00\u59cb \u52a8\u624b \u7f16\u7801 \u4e4b\u524d \uff0c \u8bf7 \u67e5\u770b Issues \u677f\u5757 \u4ee5 \u4e86\u89e3 \u56e2\u961f \u5df2\u7ecf \u5728 \u505a \u4ec0\u4e48 \uff0c \u4ee5 \u907f\u514d \u91cd\u53e0 \u3002 \u5982 \u6709 \u7591\u95ee \u6216 \u8ba8\u8bba \u5982\u4f55 \u7ee7\u7eed \uff0c \u8bf7 \u8054\u7cfb \u6211\u4eec \u4e4b\u4e00 \uff08 \u6216 \u53d1\u9001 \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u81f3 carla . simulator @ gmail . com \uff09 \u3002 \u4e3a\u4e86 \u5f00\u59cb \u5de5\u4f5c \uff0c \u8bf7 \u521b\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u5206\u53c9 \uff0c \u5e76 \u5c06 \u6240\u8ff0 \u5206\u53c9 \u514b\u9686 \u5230 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \u4f7f \u60a8 \u7684 \u5206\u53c9 \u4e0e \u539f\u59cb \u5b58\u50a8 \u5e93 \u4fdd\u6301 \u540c\u6b65 \u3002 \u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce \u6709\u5173 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u8fdb\u884c C++ \u7f16\u7a0b \u7684 \u57fa\u672c \u4ecb\u7ecd \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u7684 C++ \u7f16\u7a0b \u6559\u7a0b \u3002 \u7f51\u4e0a \u8fd8\u6709 \u5176\u4ed6 \u9009\u9879 \uff0c \u5176\u4e2d \u4e00\u4e9b \u4e0d\u662f \u514d\u8d39 \u7684 \u3002 Udemy \u7684 \u865a\u5e7b C++ \u8bfe\u7a0b \u975e\u5e38 \u5b8c\u6574 \uff0c \u5e76\u4e14 \u901a\u5e38 \u63d0\u4f9b \u4ef7\u683c \u975e\u5e38 \u5b9e\u60e0 \u7684 \u4f18\u60e0 \u3002 \u5f00\u59cb \u4e4b\u524d \u67e5\u770b Carla \u8bbe\u8ba1 \u6587\u6863 \uff0c \u4e86\u89e3 \u7ec4\u6210 Carla \u7684 \u4e0d\u540c \u6a21\u5757 \u3002 \u9009\u62e9 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u4e00\u4e2a \u6765 \u5bb9\u7eb3 \u65b0 \u529f\u80fd \u3002 \u5982\u679c \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u8054\u7cfb Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 \u56e2\u961f \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u63d0\u4ea4 \u65b0 \u4ee3\u7801 \u65f6 \u9075\u5faa \u5f53\u524d \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u3002 \u63d0\u4ea4 \u8d21\u732e \u548c \u65b0 \u529f\u80fd \u4e0d\u4f1a \u76f4\u63a5 \u5408\u5e76 \u5230 master \u5206\u652f \uff0c \u800c\u662f \u5408\u5e76 \u5230 \u540d\u4e3a dev \u7684 \u4e2d\u95f4 \u5206\u652f \u3002 \u8fd9\u79cd Gitflow \u5206\u652f \u6a21\u578b \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u7ef4\u62a4 \u7a33\u5b9a \u7684 \u4e3b \u5206\u652f \u3002 \u8be5 \u6a21\u578b \u9700\u8981 \u7279\u5b9a \u7684 \u8d21\u732e \u5de5\u4f5c \u6d41\u7a0b \u3002 \u59cb\u7ec8 \u8ba9 \u60a8 \u7684 dev \u5206\u652f \u66f4\u65b0 \u6700\u65b0 \u7684 \u66f4\u6539 \u3002 \u4ece \u540d\u4e3a username / name _ of _ the _ contribution \u7684 dev \u5b50 \u5206\u652f \u4e2d \u5f00\u53d1 \u8d21\u732e \u3002 \u8d21\u732e \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u4ece \u60a8 \u7684 \u5206\u652f \u5411 dev \u63d0\u4ea4 \u62c9\u53d6 \u8bf7\u6c42 \uff08 pull - request \uff09 \u3002 \u586b\u5199 \u63cf\u8ff0 \u65f6 \u5c3d\u91cf \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5728 \u5408\u5e76 \u4e4b\u524d \uff0c \u65b0 \u4ee3\u7801 \u9700\u8981 \u901a\u8fc7 \u4e00\u4e9b \u68c0\u67e5 \u3002 \u68c0\u67e5 \u7531 \u6301\u7eed \u96c6\u6210 \u7cfb\u7edf \u96c6\u6210\u7cfb\u7edf \u81ea\u52a8 \u8fd0\u884c \u3002 \u5982\u679c \u68c0\u67e5 \u6210\u529f \uff0c \u5c06\u4f1a \u51fa\u73b0 \u7eff\u8272 \u52fe\u53f7 \u3002 \u5982\u679c \u6709 \u7ea2\u8272 \u6807\u8bb0 \uff0c \u8bf7 \u76f8\u5e94 \u66f4\u6b63 \u4ee3\u7801 \u3002 \u4e00\u65e6 \u8d21\u732e \u88ab \u5408\u5e76 \u5230 dev \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u4e0e \u5176\u4f59 \u65b0 \u529f\u80fd \u4e00\u8d77 \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u5230 \u4e0b \u4e00\u4e2a \u7248\u672c \u65f6 \uff0c \u8be5 dev \u5206\u652f \u5c06 \u5408\u5e76 \u5230 master \uff0c \u5e76\u4e14 \u8d21\u732e \u5c06 \u53ef\u7528 \u5e76 \u516c\u5e03 \u3002 \u6e05\u5355 \u60a8 \u7684 \u5206\u652f \u5df2 \u4e0e dev \u5206\u652f \u4fdd\u6301 \u540c\u6b65 \uff0c \u5e76 \u901a\u8fc7 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u4e86 \u6d4b\u8bd5 \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u6269\u5c55 README / \u6587\u6863 \u3002 \u4ee3\u7801 \u7f16\u8bd1 \u6b63\u786e \u3002 \u6240\u6709 \u6d4b\u8bd5 \u5747 \u901a\u8fc7 make check \u3002 \u827a\u672f \u8d21\u732e \u827a\u672f \u8d21\u732e \u5305\u62ec \u8f66\u8f86 \u3001 \u884c\u4eba \u3001 \u5730\u56fe \u6216 Carla \u4e2d \u4f7f\u7528 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u578b \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u5b58\u50a8 \u5728 BitBucket \u5b58\u50a8 \u5e93\u4e2d \uff0c \u8be5 \u5b58\u50a8 \u5e93\u6709 \u4e00\u4e9b \u5e10\u6237 \u7a7a\u95f4 \u9650\u5236 \u3002 \u51fa\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8d21\u732e \u8d21\u732e\u8005 \u5fc5\u987b \u4e0e Carla \u56e2\u961f \u8054\u7cfb \uff0c \u5e76 \u8981\u6c42 \u4ed6\u4eec \u5728 \u5185\u5bb9 \u5b58\u50a8 \u5e93\u4e0a \u4e3a \u8d21\u732e \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 1 . \u521b\u5efa BitBucket \u8d26\u6237 \u3002 \u8bbf\u95ee Bitbucket \u9875\u9762 \u3002 2 . \u8054\u7cfb \u827a\u672f \u56e2\u961f \u4ee5 \u83b7\u53d6 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u7684 \u8bbf\u95ee \u6743\u9650 \u3002 \u52a0\u5165 Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8f6c \u81f3 \u8d21\u732e \u8d21\u732e\u8005 \u9891\u9053 \u5e76 \u8bf7\u6c42 \u8bbf\u95ee \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 3 . \u5c06 \u4e3a \u6bcf\u4e2a \u8d21\u732e \u8d21\u732e\u8005 \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 \u8be5 \u5206\u652f \u5c06 \u88ab \u547d\u540d \u4e3a contributors / contributor _ name \u3002 \u8be5 \u7528\u6237 \u6240 \u505a \u7684 \u6240\u6709 \u8d21\u732e \u90fd \u5e94 \u5728 \u76f8\u5e94 \u7684 \u5206\u652f \u4e2d \u505a\u51fa \u3002 4 . \u6784\u5efa Carla \u3002 \u4e3a\u4e86 \u505a\u51fa \u8d21\u732e \uff0c Carla \u6784\u5efa \u662f \u5fc5\u8981 \u7684 \u3002 \u6309\u7167 \u8bf4\u660e \u5728 Linux \u6216 Windows \u4e2d \u6784\u5efa \u3002 5 . \u4e0b\u8f7d \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 \u6309\u7167 \u8bf4\u660e \u66f4\u65b0 \u6b64\u5904 \u7684 \u5185\u5bb9 \u3002 6 . \u66f4\u65b0 \u5206\u652f \u4ee5 \u4e0e master \u540c\u6b65 \u3002 \u5206\u652f \u5e94 \u59cb\u7ec8 \u4f7f\u7528 master \u4e2d \u7684 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u66f4\u65b0 \u3002 7 . \u4e0a\u4f20 \u8d21\u732e \u3002 \u8fdb\u884c \u76f8\u5e94 \u7684 \u66f4\u6539 \u5e76 \u5c06 \u5206\u652f \u63a8\u9001 \u5230 origin \u3002 8 . \u7b49\u5f85 \u7f8e\u672f \u7f8e\u672f\u7ec4 \u5ba1\u6838 \u3002 \u4e00\u65e6 \u8d21\u732e \u4e0a\u4f20 \uff0c \u56e2\u961f \u5c06 \u68c0\u67e5 \u4e0e master \u5408\u5e76 \u7684 \u4e00\u5207 \u662f\u5426 \u51c6\u5907 \u597d \u3002 \u6587\u6863 \u8d21\u732e \u5982\u679c \u67d0\u4e9b \u6587\u6863 \u7f3a\u5931 \u3001 \u6a21\u7cca \u6216 \u4e0d \u7cbe\u786e \uff0c \u5219 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 \u9519\u8bef \u4e00\u6837 \u8fdb\u884c \u62a5\u544a \uff08 \u8bf7 \u9605\u8bfb \u4e0a \u4e00\u8282 \u6709\u5173 \u5982\u4f55 \u62a5\u544a \u9519\u8bef \uff09 \u3002 \u4f46\u662f \uff0c \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u5199 \u6587\u6863 \u6765 \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u6587\u6863 \u662f \u7528 Markdown \u548c HTML \u6807\u7b7e \u6df7\u5408 \u7f16\u5199 \u7684 \uff0c \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 CSS \u4ee3\u7801 \u7528\u4e8e \u8868\u683c \u6216 town slider \u7b49 \u529f\u80fd \u3002 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u5f00\u59cb \u7f16\u5199 \u6587\u6863 \u3002 \u91cd\u8981 \u8981 \u63d0\u4ea4 \u6587\u6863 \u8d21\u732e \uff0c \u8bf7 \u9075\u5faa \u4e0a\u9762 \u4ee3\u7801 \u8d21\u732e \u4e2d \u89e3\u91ca \u7684 \u76f8\u540c \u5de5\u4f5c \u6d41\u7a0b \u3002 \u800c\u8a00 \u603b\u800c\u8a00\u4e4b \uff0c \u8d21\u732e \u662f \u5728 \u6765\u81ea dev \u5206\u652f \u7684 \u5b50 \u5206\u652f \u4e2d \u505a\u51fa \u7684 \uff0c \u5e76 \u5408\u5e76 \u5230 \u8be5 \u5206\u652f \u3002 1 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6309\u7167 \u6587\u6863 \u4e2d \u7684 \u6b65\u9aa4 \u5728 Linux \u6216 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 2 . \u5b89\u88c5 MkDocs . MkDocs \u662f \u4e00\u4e2a \u7528\u4e8e \u6784\u5efa \u6587\u6863 \u7684 \u9759\u6001 \u7ad9\u70b9 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u3002 pip install mkdocs 3 . \u53ef\u89c6 \u53ef\u89c6\u5316 \u6587\u6863 \u3002 \u5728 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u5355\u51fb \u7ec8\u7aef \u4e2d \u663e\u793a \u7684 \u94fe\u63a5 \u4ee5 \u6253\u5f00 \u6587\u6863 \u6253\u5f00\u6587\u6863 \u7684 \u672c\u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 mkdocs serve 4 . \u521b\u5efa git \u5206\u652f \u3002 \u521b\u5efa \u65b0 \u5206\u652f \u65f6 \uff0c \u8bf7 \u786e\u4fdd \u4f4d\u4e8e dev \u5206\u652f \u4e2d \uff08 \u66f4\u65b0 \u5230 \u6700\u65b0 \u66f4\u6539 \uff09 \u3002 git checkout - b < contributor _ name > / < branch _ name > 5 . \u7f16\u5199 \u6587\u6863 \u3002 \u6309\u7167 \u6587\u6863 \u6807\u51c6 \u9875\u9762 \u4e2d \u7684 \u6307\u5357 \u7f16\u8f91 \u6587\u4ef6 \u3002 6 . \u63d0\u4ea4 \u66f4\u6539 \u3002 \u5728 GitHub \u5b58\u50a8 \u5e93\u4e2d \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \uff0c \u5e76 \u6dfb\u52a0 \u4e00\u4e2a \u5efa\u8bae \u7684 \u5ba1\u9605 \u8005 \u3002 \u586b\u5199 \u62c9\u53d6 \u8bf7\u6c42 \u63cf\u8ff0 \u65f6 \uff0c \u8bf7 \u5c1d\u8bd5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 7 . \u7b49\u5f85 \u5ba1\u6838 \u3002 \u56e2\u961f \u5c06 \u68c0\u67e5 \u5408\u5e76 \u6216 \u9700\u8981 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u662f\u5426 \u5df2 \u51c6\u5907 \u597d \u3002 \u7b14\u8bb0 \u672c\u5730 \u5b58\u50a8 \u5e93 \u5fc5\u987b \u4f7f\u7528 dev \u5206\u652f \u4e2d \u7684 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u8fdb\u884c \u66f4\u65b0 \u3002","title":"\u8d21\u732e \u6307\u5357"},{"location":"cont_contribution_guidelines/#carla","text":"Carla \u56e2\u961f \u5f88 \u9ad8\u5174 \u63a5\u53d7 \u4efb\u4f55 \u613f\u610f \u5408\u4f5c \u7684 \u4eba \u7684 \u8d21\u732e \u3002 \u6839\u636e \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u80fd\u529b \uff0c \u53ef\u4ee5 \u91c7\u7528 \u4e0d\u540c \u7684 \u65b9\u5f0f \u4e3a \u9879\u76ee \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u56e2\u961f \u5c06 \u5c3d \u6700\u5927 \u52aa\u529b \u5c06 \u8d21\u732e \u6210\u529f \u6574\u5408 \u5230 Carla \u4e2d \u3002 \u770b\u770b \u5427 \uff0c \u4e0d\u8981 \u72b9\u8c6b \uff01 \u62a5\u544a \u9519\u8bef \u8bf7\u6c42 \u529f\u80fd \u4ee3\u7801 \u8d21\u732e \u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce \u5f00\u59cb \u4e4b\u524d \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u63d0\u4ea4 \u6e05\u5355 \u827a\u672f \u8d21\u732e \u6587\u6863 \u8d21\u732e","title":"\u4e3a Carla \u505a\u51fa \u8d21\u732e"},{"location":"cont_contribution_guidelines/#_1","text":"\u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 Issues \u90e8\u5206 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 \u62a5\u544a \u65b0 \u9519\u8bef \u4e4b\u524d \uff0c \u8bf7 \u52a1\u5fc5 \u8fdb\u884c \u4e00\u4e9b \u68c0\u67e5 \u3002 1 . \u68c0\u67e5 \u662f\u5426 \u5df2 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 GitHub \u4e0a \u7684 \u540c\u4e00 \u95ee\u9898 \u90e8\u5206 \u67e5\u627e \u5b83 \u3002 2 . \u9605\u8bfb \u6587\u6863 \u3002 \u786e\u4fdd \u95ee\u9898 \u662f \u4e00\u4e2a \u9519\u8bef \uff0c \u800c \u4e0d\u662f \u5bf9 Carla \u5e94\u8be5 \u5982\u4f55 \u5de5\u4f5c \u7684 \u8bef\u89e3 \u3002 \u9605\u8bfb \u6587\u6863 \u4e2d \u4e0e \u8be5 \u95ee\u9898 \u76f8\u5173 \u7684 \u9875\u9762 \u5e76 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u3002","title":"\u62a5\u544a \u9519\u8bef"},{"location":"cont_contribution_guidelines/#_2","text":"\u65b0 \u529f\u80fd \u7684 \u60f3\u6cd5 \u4e5f \u662f \u4e00\u79cd \u5f88 \u597d \u7684 \u8d21\u732e \u65b9\u5f0f \u3002 \u4efb\u4f55 \u53ef\u4ee5 \u6539\u5584 \u7528\u6237 \u4f53\u9a8c \u7684 \u5efa\u8bae \u90fd \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7684 \u76f8\u5e94 GitHub \u90e8\u5206 \u63d0\u4ea4 \u3002","title":"\u8bf7\u6c42 \u529f\u80fd"},{"location":"cont_contribution_guidelines/#_3","text":"\u5728 \u5f00\u59cb \u52a8\u624b \u7f16\u7801 \u4e4b\u524d \uff0c \u8bf7 \u67e5\u770b Issues \u677f\u5757 \u4ee5 \u4e86\u89e3 \u56e2\u961f \u5df2\u7ecf \u5728 \u505a \u4ec0\u4e48 \uff0c \u4ee5 \u907f\u514d \u91cd\u53e0 \u3002 \u5982 \u6709 \u7591\u95ee \u6216 \u8ba8\u8bba \u5982\u4f55 \u7ee7\u7eed \uff0c \u8bf7 \u8054\u7cfb \u6211\u4eec \u4e4b\u4e00 \uff08 \u6216 \u53d1\u9001 \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u81f3 carla . simulator @ gmail . com \uff09 \u3002 \u4e3a\u4e86 \u5f00\u59cb \u5de5\u4f5c \uff0c \u8bf7 \u521b\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u5206\u53c9 \uff0c \u5e76 \u5c06 \u6240\u8ff0 \u5206\u53c9 \u514b\u9686 \u5230 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \u4f7f \u60a8 \u7684 \u5206\u53c9 \u4e0e \u539f\u59cb \u5b58\u50a8 \u5e93 \u4fdd\u6301 \u540c\u6b65 \u3002","title":"\u4ee3\u7801 \u8d21\u732e"},{"location":"cont_contribution_guidelines/#_4","text":"\u6709\u5173 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u8fdb\u884c C++ \u7f16\u7a0b \u7684 \u57fa\u672c \u4ecb\u7ecd \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u7684 C++ \u7f16\u7a0b \u6559\u7a0b \u3002 \u7f51\u4e0a \u8fd8\u6709 \u5176\u4ed6 \u9009\u9879 \uff0c \u5176\u4e2d \u4e00\u4e9b \u4e0d\u662f \u514d\u8d39 \u7684 \u3002 Udemy \u7684 \u865a\u5e7b C++ \u8bfe\u7a0b \u975e\u5e38 \u5b8c\u6574 \uff0c \u5e76\u4e14 \u901a\u5e38 \u63d0\u4f9b \u4ef7\u683c \u975e\u5e38 \u5b9e\u60e0 \u7684 \u4f18\u60e0 \u3002","title":"\u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce"},{"location":"cont_contribution_guidelines/#_5","text":"\u67e5\u770b Carla \u8bbe\u8ba1 \u6587\u6863 \uff0c \u4e86\u89e3 \u7ec4\u6210 Carla \u7684 \u4e0d\u540c \u6a21\u5757 \u3002 \u9009\u62e9 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u4e00\u4e2a \u6765 \u5bb9\u7eb3 \u65b0 \u529f\u80fd \u3002 \u5982\u679c \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u8054\u7cfb Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 \u56e2\u961f \u3002","title":"\u5f00\u59cb \u4e4b\u524d"},{"location":"cont_contribution_guidelines/#_6","text":"\u63d0\u4ea4 \u65b0 \u4ee3\u7801 \u65f6 \u9075\u5faa \u5f53\u524d \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u3002","title":"\u7f16\u7801\u6807\u51c6"},{"location":"cont_contribution_guidelines/#_7","text":"\u8d21\u732e \u548c \u65b0 \u529f\u80fd \u4e0d\u4f1a \u76f4\u63a5 \u5408\u5e76 \u5230 master \u5206\u652f \uff0c \u800c\u662f \u5408\u5e76 \u5230 \u540d\u4e3a dev \u7684 \u4e2d\u95f4 \u5206\u652f \u3002 \u8fd9\u79cd Gitflow \u5206\u652f \u6a21\u578b \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u7ef4\u62a4 \u7a33\u5b9a \u7684 \u4e3b \u5206\u652f \u3002 \u8be5 \u6a21\u578b \u9700\u8981 \u7279\u5b9a \u7684 \u8d21\u732e \u5de5\u4f5c \u6d41\u7a0b \u3002 \u59cb\u7ec8 \u8ba9 \u60a8 \u7684 dev \u5206\u652f \u66f4\u65b0 \u6700\u65b0 \u7684 \u66f4\u6539 \u3002 \u4ece \u540d\u4e3a username / name _ of _ the _ contribution \u7684 dev \u5b50 \u5206\u652f \u4e2d \u5f00\u53d1 \u8d21\u732e \u3002 \u8d21\u732e \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u4ece \u60a8 \u7684 \u5206\u652f \u5411 dev \u63d0\u4ea4 \u62c9\u53d6 \u8bf7\u6c42 \uff08 pull - request \uff09 \u3002 \u586b\u5199 \u63cf\u8ff0 \u65f6 \u5c3d\u91cf \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5728 \u5408\u5e76 \u4e4b\u524d \uff0c \u65b0 \u4ee3\u7801 \u9700\u8981 \u901a\u8fc7 \u4e00\u4e9b \u68c0\u67e5 \u3002 \u68c0\u67e5 \u7531 \u6301\u7eed \u96c6\u6210 \u7cfb\u7edf \u96c6\u6210\u7cfb\u7edf \u81ea\u52a8 \u8fd0\u884c \u3002 \u5982\u679c \u68c0\u67e5 \u6210\u529f \uff0c \u5c06\u4f1a \u51fa\u73b0 \u7eff\u8272 \u52fe\u53f7 \u3002 \u5982\u679c \u6709 \u7ea2\u8272 \u6807\u8bb0 \uff0c \u8bf7 \u76f8\u5e94 \u66f4\u6b63 \u4ee3\u7801 \u3002 \u4e00\u65e6 \u8d21\u732e \u88ab \u5408\u5e76 \u5230 dev \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u4e0e \u5176\u4f59 \u65b0 \u529f\u80fd \u4e00\u8d77 \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u5230 \u4e0b \u4e00\u4e2a \u7248\u672c \u65f6 \uff0c \u8be5 dev \u5206\u652f \u5c06 \u5408\u5e76 \u5230 master \uff0c \u5e76\u4e14 \u8d21\u732e \u5c06 \u53ef\u7528 \u5e76 \u516c\u5e03 \u3002","title":"\u63d0\u4ea4"},{"location":"cont_contribution_guidelines/#_8","text":"\u60a8 \u7684 \u5206\u652f \u5df2 \u4e0e dev \u5206\u652f \u4fdd\u6301 \u540c\u6b65 \uff0c \u5e76 \u901a\u8fc7 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u4e86 \u6d4b\u8bd5 \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u6269\u5c55 README / \u6587\u6863 \u3002 \u4ee3\u7801 \u7f16\u8bd1 \u6b63\u786e \u3002 \u6240\u6709 \u6d4b\u8bd5 \u5747 \u901a\u8fc7 make check \u3002","title":"\u6e05\u5355"},{"location":"cont_contribution_guidelines/#_9","text":"\u827a\u672f \u8d21\u732e \u5305\u62ec \u8f66\u8f86 \u3001 \u884c\u4eba \u3001 \u5730\u56fe \u6216 Carla \u4e2d \u4f7f\u7528 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u578b \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u5b58\u50a8 \u5728 BitBucket \u5b58\u50a8 \u5e93\u4e2d \uff0c \u8be5 \u5b58\u50a8 \u5e93\u6709 \u4e00\u4e9b \u5e10\u6237 \u7a7a\u95f4 \u9650\u5236 \u3002 \u51fa\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8d21\u732e \u8d21\u732e\u8005 \u5fc5\u987b \u4e0e Carla \u56e2\u961f \u8054\u7cfb \uff0c \u5e76 \u8981\u6c42 \u4ed6\u4eec \u5728 \u5185\u5bb9 \u5b58\u50a8 \u5e93\u4e0a \u4e3a \u8d21\u732e \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 1 . \u521b\u5efa BitBucket \u8d26\u6237 \u3002 \u8bbf\u95ee Bitbucket \u9875\u9762 \u3002 2 . \u8054\u7cfb \u827a\u672f \u56e2\u961f \u4ee5 \u83b7\u53d6 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u7684 \u8bbf\u95ee \u6743\u9650 \u3002 \u52a0\u5165 Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8f6c \u81f3 \u8d21\u732e \u8d21\u732e\u8005 \u9891\u9053 \u5e76 \u8bf7\u6c42 \u8bbf\u95ee \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 3 . \u5c06 \u4e3a \u6bcf\u4e2a \u8d21\u732e \u8d21\u732e\u8005 \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 \u8be5 \u5206\u652f \u5c06 \u88ab \u547d\u540d \u4e3a contributors / contributor _ name \u3002 \u8be5 \u7528\u6237 \u6240 \u505a \u7684 \u6240\u6709 \u8d21\u732e \u90fd \u5e94 \u5728 \u76f8\u5e94 \u7684 \u5206\u652f \u4e2d \u505a\u51fa \u3002 4 . \u6784\u5efa Carla \u3002 \u4e3a\u4e86 \u505a\u51fa \u8d21\u732e \uff0c Carla \u6784\u5efa \u662f \u5fc5\u8981 \u7684 \u3002 \u6309\u7167 \u8bf4\u660e \u5728 Linux \u6216 Windows \u4e2d \u6784\u5efa \u3002 5 . \u4e0b\u8f7d \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 \u6309\u7167 \u8bf4\u660e \u66f4\u65b0 \u6b64\u5904 \u7684 \u5185\u5bb9 \u3002 6 . \u66f4\u65b0 \u5206\u652f \u4ee5 \u4e0e master \u540c\u6b65 \u3002 \u5206\u652f \u5e94 \u59cb\u7ec8 \u4f7f\u7528 master \u4e2d \u7684 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u66f4\u65b0 \u3002 7 . \u4e0a\u4f20 \u8d21\u732e \u3002 \u8fdb\u884c \u76f8\u5e94 \u7684 \u66f4\u6539 \u5e76 \u5c06 \u5206\u652f \u63a8\u9001 \u5230 origin \u3002 8 . \u7b49\u5f85 \u7f8e\u672f \u7f8e\u672f\u7ec4 \u5ba1\u6838 \u3002 \u4e00\u65e6 \u8d21\u732e \u4e0a\u4f20 \uff0c \u56e2\u961f \u5c06 \u68c0\u67e5 \u4e0e master \u5408\u5e76 \u7684 \u4e00\u5207 \u662f\u5426 \u51c6\u5907 \u597d \u3002","title":"\u827a\u672f \u8d21\u732e"},{"location":"cont_contribution_guidelines/#_10","text":"\u5982\u679c \u67d0\u4e9b \u6587\u6863 \u7f3a\u5931 \u3001 \u6a21\u7cca \u6216 \u4e0d \u7cbe\u786e \uff0c \u5219 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 \u9519\u8bef \u4e00\u6837 \u8fdb\u884c \u62a5\u544a \uff08 \u8bf7 \u9605\u8bfb \u4e0a \u4e00\u8282 \u6709\u5173 \u5982\u4f55 \u62a5\u544a \u9519\u8bef \uff09 \u3002 \u4f46\u662f \uff0c \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u5199 \u6587\u6863 \u6765 \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u6587\u6863 \u662f \u7528 Markdown \u548c HTML \u6807\u7b7e \u6df7\u5408 \u7f16\u5199 \u7684 \uff0c \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 CSS \u4ee3\u7801 \u7528\u4e8e \u8868\u683c \u6216 town slider \u7b49 \u529f\u80fd \u3002 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u5f00\u59cb \u7f16\u5199 \u6587\u6863 \u3002 \u91cd\u8981 \u8981 \u63d0\u4ea4 \u6587\u6863 \u8d21\u732e \uff0c \u8bf7 \u9075\u5faa \u4e0a\u9762 \u4ee3\u7801 \u8d21\u732e \u4e2d \u89e3\u91ca \u7684 \u76f8\u540c \u5de5\u4f5c \u6d41\u7a0b \u3002 \u800c\u8a00 \u603b\u800c\u8a00\u4e4b \uff0c \u8d21\u732e \u662f \u5728 \u6765\u81ea dev \u5206\u652f \u7684 \u5b50 \u5206\u652f \u4e2d \u505a\u51fa \u7684 \uff0c \u5e76 \u5408\u5e76 \u5230 \u8be5 \u5206\u652f \u3002 1 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6309\u7167 \u6587\u6863 \u4e2d \u7684 \u6b65\u9aa4 \u5728 Linux \u6216 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 2 . \u5b89\u88c5 MkDocs . MkDocs \u662f \u4e00\u4e2a \u7528\u4e8e \u6784\u5efa \u6587\u6863 \u7684 \u9759\u6001 \u7ad9\u70b9 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u3002 pip install mkdocs 3 . \u53ef\u89c6 \u53ef\u89c6\u5316 \u6587\u6863 \u3002 \u5728 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u5355\u51fb \u7ec8\u7aef \u4e2d \u663e\u793a \u7684 \u94fe\u63a5 \u4ee5 \u6253\u5f00 \u6587\u6863 \u6253\u5f00\u6587\u6863 \u7684 \u672c\u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 mkdocs serve 4 . \u521b\u5efa git \u5206\u652f \u3002 \u521b\u5efa \u65b0 \u5206\u652f \u65f6 \uff0c \u8bf7 \u786e\u4fdd \u4f4d\u4e8e dev \u5206\u652f \u4e2d \uff08 \u66f4\u65b0 \u5230 \u6700\u65b0 \u66f4\u6539 \uff09 \u3002 git checkout - b < contributor _ name > / < branch _ name > 5 . \u7f16\u5199 \u6587\u6863 \u3002 \u6309\u7167 \u6587\u6863 \u6807\u51c6 \u9875\u9762 \u4e2d \u7684 \u6307\u5357 \u7f16\u8f91 \u6587\u4ef6 \u3002 6 . \u63d0\u4ea4 \u66f4\u6539 \u3002 \u5728 GitHub \u5b58\u50a8 \u5e93\u4e2d \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \uff0c \u5e76 \u6dfb\u52a0 \u4e00\u4e2a \u5efa\u8bae \u7684 \u5ba1\u9605 \u8005 \u3002 \u586b\u5199 \u62c9\u53d6 \u8bf7\u6c42 \u63cf\u8ff0 \u65f6 \uff0c \u8bf7 \u5c1d\u8bd5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 7 . \u7b49\u5f85 \u5ba1\u6838 \u3002 \u56e2\u961f \u5c06 \u68c0\u67e5 \u5408\u5e76 \u6216 \u9700\u8981 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u662f\u5426 \u5df2 \u51c6\u5907 \u597d \u3002 \u7b14\u8bb0 \u672c\u5730 \u5b58\u50a8 \u5e93 \u5fc5\u987b \u4f7f\u7528 dev \u5206\u652f \u4e2d \u7684 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u8fdb\u884c \u66f4\u65b0 \u3002","title":"\u6587\u6863 \u8d21\u732e"},{"location":"cont_doc_standard/","text":"\u6587\u6863 \u6807\u51c6 \u672c \u6587\u6863 \u5c06 \u4f5c\u4e3a \u4e3a \u6587\u6863 \u505a\u51fa \u8d21\u732e \u800c \u9700\u8981 \u9075\u5faa \u7684 \u4e00\u4e9b \u89c4\u5219 \u7684 \u6307\u5357 \u548c \u793a\u4f8b \u3002 \u6587\u6863 \u7ed3\u6784 \u89c4\u5219 \u4f8b\u5916 \u60c5\u51b5 \u4f8b\u5916\u60c5\u51b5 \u6587\u6863 \u7ed3\u6784 \u6211\u4eec \u548c extra . css \u4e00\u8d77 \uff0c \u6df7\u5408 \u4f7f\u7528 Markdown \u548c HTML \u6807\u7b7e \u6765\u81ea \u5b9a\u4e49 \u6587\u6863 \u548c \u6587\u4ef6 \u3002 \u8981 \u66f4\u65b0 Python API \u6587\u6863 \uff0c \u60a8 \u9700\u8981 \u7f16\u8f91 carla / PythonAPI / docs / \u5185\u90e8 \u76f8\u5e94 \u7684 YAML \u6587\u4ef6 \u5e76 \u8fd0\u884c doc _ gen . py \u6216 make PythonAPI . docs \uff0c \u800c \u4e0d\u662f \u76f4\u63a5 \u4fee\u6539 Markdown \u3002 \u8fd9 \u5c06 \u5728 carla / Docs / \u4e2d \u91cd\u65b0 \u751f\u6210 \u76f8\u5e94 \u7684 Markdown \u6587\u4ef6 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u8f93\u5165 \u5230 mkdocs . \u89c4\u5219 \u5404\u8282 \u4e4b\u95f4 \u548c \u6587\u6863 \u672b\u5c3e \u59cb\u7ec8 \u7559\u6709 \u7a7a\u884c \u3002 \u9664 HTML \u76f8\u5173 \u5185\u5bb9 \u3001 Markdown \u8868\u683c \u3001 \u4ee3\u7801 \u7247\u6bb5 \u548c \u5f15\u7528 \u94fe\u63a5 \u5916 \uff0c \u4e66\u5199 \u4e0d \u5e94 \u8d85\u8fc7 100 \u5217 \u3002 \u5982\u679c \u5185\u8054 \u94fe\u63a5 \u8d85\u51fa \u9650\u5236 \uff0c \u8bf7 \u4f7f\u7528 \u5f15\u7528 \u7684 [ name ] [ reference _ link ] markdown \u7b26\u53f7 [ reference _ link ] : https : / / \uff0c \u800c \u4e0d\u662f [ name ] ( https : / / ) \u3002 \u4f7f\u7528 < br > \u8fdb\u884c \u5185\u8054 \u8df3\u8f6c \uff0c \u800c \u4e0d\u662f \u5728 \u884c\u5c3e \u7559\u4e0b \u4e24\u4e2a \u7a7a\u683c \u3002 \u5728 \u65b0\u9875 \u9875\u9762 \u65b0\u9875\u9762 \u7684 \u5f00\u5934 \u4f7f\u7528 < h1 > Title < / h1 > \uff0c \u4ee5 \u5236\u4f5c \u6807\u9898 \u6216 < hx > Heading < hx > \u5236\u4f5c \u4e0d\u4f1a \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e0a \u7684 \u6807\u9898 \u3002 \u4f7f\u7528 ------ \u5f3a\u8c03 \u6807\u9898 \u6216 # \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e0b\u5212 \u5212\u7ebf \u4e0b\u5212\u7ebf \u6765 \u5236\u4f5c \u6807\u9898 \u5e76 \u5c06 \u5176 \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e2d \u3002 \u4f8b\u5916 \u60c5\u51b5 \u4f8b\u5916\u60c5\u51b5 \u901a\u8fc7 Python \u811a\u672c \u751f\u6210 \u7684 \u6587\u6863 \uff0c \u4f8b\u5982 PythonAPI \u53c2\u8003 \u65b9\u4fbf \u7684 markdown cheatsheet \u3002","title":"\u6587\u6863 \u6807\u51c6"},{"location":"cont_doc_standard/#_1","text":"\u672c \u6587\u6863 \u5c06 \u4f5c\u4e3a \u4e3a \u6587\u6863 \u505a\u51fa \u8d21\u732e \u800c \u9700\u8981 \u9075\u5faa \u7684 \u4e00\u4e9b \u89c4\u5219 \u7684 \u6307\u5357 \u548c \u793a\u4f8b \u3002 \u6587\u6863 \u7ed3\u6784 \u89c4\u5219 \u4f8b\u5916 \u60c5\u51b5 \u4f8b\u5916\u60c5\u51b5","title":"\u6587\u6863 \u6807\u51c6"},{"location":"cont_doc_standard/#_2","text":"\u6211\u4eec \u548c extra . css \u4e00\u8d77 \uff0c \u6df7\u5408 \u4f7f\u7528 Markdown \u548c HTML \u6807\u7b7e \u6765\u81ea \u5b9a\u4e49 \u6587\u6863 \u548c \u6587\u4ef6 \u3002 \u8981 \u66f4\u65b0 Python API \u6587\u6863 \uff0c \u60a8 \u9700\u8981 \u7f16\u8f91 carla / PythonAPI / docs / \u5185\u90e8 \u76f8\u5e94 \u7684 YAML \u6587\u4ef6 \u5e76 \u8fd0\u884c doc _ gen . py \u6216 make PythonAPI . docs \uff0c \u800c \u4e0d\u662f \u76f4\u63a5 \u4fee\u6539 Markdown \u3002 \u8fd9 \u5c06 \u5728 carla / Docs / \u4e2d \u91cd\u65b0 \u751f\u6210 \u76f8\u5e94 \u7684 Markdown \u6587\u4ef6 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u8f93\u5165 \u5230 mkdocs .","title":"\u6587\u6863 \u7ed3\u6784"},{"location":"cont_doc_standard/#_3","text":"\u5404\u8282 \u4e4b\u95f4 \u548c \u6587\u6863 \u672b\u5c3e \u59cb\u7ec8 \u7559\u6709 \u7a7a\u884c \u3002 \u9664 HTML \u76f8\u5173 \u5185\u5bb9 \u3001 Markdown \u8868\u683c \u3001 \u4ee3\u7801 \u7247\u6bb5 \u548c \u5f15\u7528 \u94fe\u63a5 \u5916 \uff0c \u4e66\u5199 \u4e0d \u5e94 \u8d85\u8fc7 100 \u5217 \u3002 \u5982\u679c \u5185\u8054 \u94fe\u63a5 \u8d85\u51fa \u9650\u5236 \uff0c \u8bf7 \u4f7f\u7528 \u5f15\u7528 \u7684 [ name ] [ reference _ link ] markdown \u7b26\u53f7 [ reference _ link ] : https : / / \uff0c \u800c \u4e0d\u662f [ name ] ( https : / / ) \u3002 \u4f7f\u7528 < br > \u8fdb\u884c \u5185\u8054 \u8df3\u8f6c \uff0c \u800c \u4e0d\u662f \u5728 \u884c\u5c3e \u7559\u4e0b \u4e24\u4e2a \u7a7a\u683c \u3002 \u5728 \u65b0\u9875 \u9875\u9762 \u65b0\u9875\u9762 \u7684 \u5f00\u5934 \u4f7f\u7528 < h1 > Title < / h1 > \uff0c \u4ee5 \u5236\u4f5c \u6807\u9898 \u6216 < hx > Heading < hx > \u5236\u4f5c \u4e0d\u4f1a \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e0a \u7684 \u6807\u9898 \u3002 \u4f7f\u7528 ------ \u5f3a\u8c03 \u6807\u9898 \u6216 # \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e0b\u5212 \u5212\u7ebf \u4e0b\u5212\u7ebf \u6765 \u5236\u4f5c \u6807\u9898 \u5e76 \u5c06 \u5176 \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e2d \u3002","title":"\u89c4\u5219"},{"location":"cont_doc_standard/#_4","text":"\u901a\u8fc7 Python \u811a\u672c \u751f\u6210 \u7684 \u6587\u6863 \uff0c \u4f8b\u5982 PythonAPI \u53c2\u8003 \u65b9\u4fbf \u7684 markdown cheatsheet \u3002","title":"\u4f8b\u5916\u60c5\u51b5"},{"location":"content_authoring_large_maps/","text":"\u4e3a Carla \u521b\u5efa \u5927 \u5730\u56fe Carla \u4e2d \u5927 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 11 \u548c 12 \uff09 \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 10 \uff09 \u4e0d\u540c \u3002 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u56fe\u5757 \uff0c \u5373 \u5730\u56fe \u7684 \u7ec6\u5206 \uff0c \u901a\u5e38 \u5927\u5c0f \u8bbe\u7f6e \u4e3a \u7ea6 1 \u81f3 2 \u516c\u91cc \u3002 \u8fd9\u4e9b \u56fe\u5757 \u5212\u5206 \u4e86 \u5730\u56fe \uff0c \u4ee5\u4fbf \u4ec5 \u5c06 \u9700\u8981 \u7684 \u5730\u56fe \u90e8\u5206 \u52a0\u8f7d \u5230 \u56fe\u5f62 \u5185\u5b58 \u4e2d\u4ee5 \u8fdb\u884c \u9ad8\u6548 \u6e32\u67d3 \u3002 \u4e0d \u9700\u8981 \u7684 \u56fe\u5757 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u5e76 \u51c6\u5907 \u5728 \u9700\u8981 \u65f6 \u52a0\u8f7d \u3002 \u901a\u5e38 \uff0c \u4f1a \u52a0\u8f7d \u81ea\u6211 \u8f66\u8f86 \u4f4d\u7f6e \u4e2d \u7684 \u56fe\u5757 \u65c1\u8fb9 \u7684 \u56fe\u5757 \uff0c \u4f46 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u52a0\u8f7d \u66f4 \u591a \u56fe\u5757 \u3002 \u5f53 Carla \u542f\u52a8 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u8bbe\u7f6e \u4e2d \u4fee\u6539 \u6b64 \u884c\u4e3a \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe RoadRunner \u662f \u63a8\u8350 \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u7684 \u8f6f\u4ef6 \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u4f7f\u7528 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe \u4ee5\u53ca \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5bfc\u5165 \u548c \u5904\u7406 \u5927 \u5730\u56fe \u3002 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe \u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u590d\u6742 \u5730\u56fe \u7684 \u5177\u4f53 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRunner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u4ece \u8868\u9762 \u4e0a \u770b \uff0c \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u4e0e \u6784\u5efa \u6807\u51c6 \u5730\u56fe \u57fa\u672c \u672c\u76f8 \u76f8\u540c \u57fa\u672c\u76f8\u540c \uff0c \u53ea\u662f \u6bd4\u4f8b \u66f4\u5927 \u3002 \u5dee\u5f02 \u4e3b\u8981 \u5728\u4e8e \u5730\u56fe \u7684 \u5bfc\u51fa \u65b9\u5f0f \u3002 \u8fd9\u91cc \u6211\u4eec \u521b\u5efa \u4e86 \u4e00\u5f20 \u5927\u7ea6 1.2 \u516c\u91cc \u5927\u5c0f \u7684 \u5927 \u5730\u56fe \u3002 \u5f53 \u6211\u4eec \u5bfc\u51fa \u5b83 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 700m \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u56e0\u6b64 \u5730\u56fe \u5e94\u8be5 \u5206\u5272 \u6210 \u5927\u7ea6 4 \u4e2a \u56fe\u5757 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5efa\u8bae \u7684 \u5730\u56fe \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20x20 km 2 \u3002 \u5927\u4e8e \u6b64 \u5927\u5c0f \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002 \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe \u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u901a\u8fc7 \u5355\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \uff08 World settings tool \uff09 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5bfc\u51fa \u5b8c\u6574 \u5730\u56fe \u3002 \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb \u201c \u5e94\u7528 \u4e16\u754c \u66f4\u6539 \u201d \uff08 Apply World Changes \uff09 \u3002 \u4f7f\u7528 \u573a\u666f \u5bfc\u51fa \u9884\u89c8 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 \u5982\u4f55 \u5c06 \u5730\u56fe \u5212\u5206 \u4e3a \u56fe\u5757 \u4ee5\u4f9b \u5bfc\u51fa \u3002 \u8c03\u6574 \u201c \u5e73\u94fa \u9009\u9879 \u201d \uff08 Tiling Options \uff09 \u83dc\u5355 \u4e2d \u7684 \u201c \u5e73\u94fa \u5927\u5c0f \u201d \uff08 Tile Size \uff09 \u53c2\u6570 \uff0c \u627e\u5230 \u9002\u5408 \u60a8 \u5730\u56fe \u7684 \u5e73\u94fa \u5927\u5c0f \uff0c \u6309 \u201c \u5237\u65b0 \u573a\u666f \u201d \uff08 Refresh Scene \uff09 \u67e5\u770b \u8c03\u6574 \u7684 \u5f71\u54cd \u3002 \u7b14\u8bb0 Tile size : \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5757 \u5927\u5c0f \u662f \u4e00\u4e2a \u5224\u65ad \u8c03\u7528 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 \u65f6 \u80fd\u591f \u6709\u6548 \u5de5\u4f5c \u3002 \u5982\u679c \u60a8 \u7684 \u5730\u56fe \u5305\u542b \u5bc6\u96c6 \u7684 3D \u8d44\u6e90 \uff08 \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \uff09 \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d7\u76ca \u4e8e \u8f83 \u5c0f \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u4ee5 \u9632\u6b62 \u52a0\u8f7d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u8d44\u6e90 \u3002 \u4f46\u662f \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u589e\u52a0 \u6784\u5efa \u5730\u56fe \u6240 \u9700 \u5de5\u4f5c \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 Carla \u5f15\u64ce \u652f\u6301 \u7684 \u6700\u5927 \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 2 \u516c\u91cc \uff0c \u6211\u4eec \u5efa\u8bae \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 1 \u516c\u91cc \u5de6\u53f3 \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u5bfc\u51fa . fbx \u51e0\u4f55 \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > Firebox ( . fbx ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a \u901a\u8fc7 \u5206\u6bb5 \u5206\u5272 \uff08 Split by Segmentation \uff09 : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u5e76 \u6539\u8fdb \u884c\u4eba \u5bfc\u822a \u3002 \u4e8c\u7ef4 \u7eb9\u7406 \u7684 \u529b\u91cf \uff08 Power of Two Texture Dimensions \uff09 : \u63d0\u9ad8 \u6027\u80fd \u3002 \u5d4c\u5165 \u7eb9\u7406 \uff08 Embed Textures \uff09 : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 \u5bfc\u51fa \u5230 \u56fe\u5757 \uff08 Export to Tiles \uff09 : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 2000 x 2000 \u3002 \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 \uff08 Export Individual Tiles \uff09 : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u56fe\u5757 \u3002 3 . \u5bfc\u51fa . xodr OpenDrive \u5730\u56fe \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u5728 \u60a8 \u9009\u62e9 \u5bfc\u51fa \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u6709 \u51e0\u4e2a \u65b0 \u6587\u4ef6 \uff0c \u4e00\u4e2a . xodr \u6587\u4ef6 \u548c \u51e0\u4e2a . fbx \u6587\u4ef6 \uff1a \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u6839 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u5728 Roadrunner \u4e2d \u521b\u5efa \u4e86 \u5927 \u5730\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u5165 Carla \u4e2d \u3002 RoadRunner \u521b\u5efa \u7684 \u6587\u4ef6 \u5e94 \u8f6c\u79fb \u5230 \u7528\u4e8e \u6784\u5efa Carla \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u76ee\u5f55 \u5185 \u3002 \u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002 \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u8b66\u544a \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c RoadRunner \u5e94 \u7b26\u5408 \u6b64 \u547d\u540d \u7ea6\u5b9a \uff0c \u4f46 \u5728 \u51c6\u5907 \u5bfc\u5165 Carla \u4e4b\u524d \u503c\u5f97 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \uff0c \u56e0\u4e3a \u6b64 \u9636\u6bb5 \u5f15\u8d77 \u7684 \u95ee\u9898 \u7a0d\u540e \u4fee\u590d \u8d77\u6765 \u53ef\u80fd \u4f1a \u5f88 \u4e4f\u5473 \u3002 \u6700\u7ec8 \u5730\u56fe \u4e2d \u7684 \u56fe\u5757 \u5c06 \u5982\u4e0b \u56fe \u6240\u793a \u6392\u5217 \uff1a \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 LargeMap . xodr \u7b14\u8bb0 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 package . json \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 . json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c . xodr \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u6599 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx tile \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" LargeMap \" , \" xodr \" : \" . / LargeMap . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 700 , \" tiles \" : [ \" . / LargeMap _ Tile _ 0 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 0 _ 1 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] } \u8fdb\u884c \u5bfc\u5165 \u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 \u8be5 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76 \u51c6\u5907 \u597d \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u5efa\u7b51 \u7b49 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u73b0\u5728 \u60a8 \u5df2 \u5bfc\u5165 \u65b0 \u5730\u56fe \uff0c \u60a8 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u9ed8\u8ba4 \u547d\u540d map _ package \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u627e\u5230 \u8be5 \u5730\u56fe \u3002 \u5982\u679c \u60a8 \u5728 \u5bfc\u5165 \u547d\u4ee4 \u4e2d \u4f7f\u7528 \u53c2\u6570 \" -- package = < package _ name > \" \uff0c \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u6709 \u4e00\u4e2a \u5907\u7528 \u540d\u79f0 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \uff0c \u6253\u5f00 \u8be5 Maps \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u6253\u5f00 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u91cc\u9762 \u4f60 \u4f1a \u53d1\u73b0 \u51e0\u4e2a \u6a59\u8272 \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u6574\u4e2a \u5730\u56fe \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \uff0c \u800c \u4ece RoadRunner \u5bfc\u51fa \u7684 \u6bcf\u4e2a \u56fe\u5757 \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \u3002 \u8981 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7b49 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \uff0c \u8bf7 \u53cc\u51fb \u8981 \u5904\u7406 \u7684 \u56fe\u5757 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u4f8b\u5982 \u672c\u4f8b \u4e2d LargeMap _ Tile _ 0 _ 0 \uff09 \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u52a0\u8f7d \u5230 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u5757 \u6ca1\u6709 \u4efb\u4f55 \u7167\u660e \u8bbe\u7f6e \uff0c \u56e0\u6b64 \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u89c6\u56fe \u6a21\u5f0f \u4ece \u66f4\u6539 Lit \u4e3a Unlit \u624d\u80fd \u5728 \u52a0\u8f7d \u56fe\u5757 \u540e \u770b\u5230 \u5b83 \u3002 \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b \u5411 \u5730\u56fe \u6dfb\u52a0 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u786e\u4fdd \u4fdd\u5b58 \u5bf9 \u6b63\u5728 \u5904\u7406 \u7684 \u56fe\u5757 \u6240 \u505a \u7684 \u4fee\u6539 \uff0c \u7136\u540e \u52a0\u8f7d \u4e0b \u4e00\u4e2a \u56fe\u5757 \u5e76 \u91cd\u590d \u8be5 \u8fc7\u7a0b \u3002 \u60a8 \u65e0\u6cd5 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u6574\u4e2a \u5730\u56fe \uff0c \u56e0\u6b64 \u52a0\u8f7d \uff08 \u901a\u8fc7 \u53cc\u51fb \uff09 \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5bf9\u4e8e \u88c5\u9970 \u5730\u56fe \u5c06 \u6ca1\u6709 \u7528\u5904 \u3002 \u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u5982\u679c \u60a8 \u60f3 \u52a0\u8f7d \u5730\u56fe \u5e76 \u5f00\u59cb \u4eff\u771f \u8fdb\u884c \u5b9e\u9a8c \uff0c \u60a8 \u5e94\u8be5 \u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u53cc\u51fb \u5e26\u6709 \u6839 \u5730\u56fe \u540d\u79f0 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5e76 \u7b49\u5f85 \u5176 \u52a0\u8f7d \u3002 \u5bf9\u4e8e \u975e\u5e38 \u5927 \u7684 \u5730\u56fe \uff0c \u52a0\u8f7d \u6709\u65f6 \u53ef\u80fd \u9700\u8981 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u751a\u81f3 \u51e0\u5206 \u5206\u949f \u51e0\u5206\u949f \u3002 \u52a0\u8f7d \u540e \uff0c \u5355\u51fb \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u64ad\u653e \u9009\u9879 \u3002 \u4eff\u771f \u73b0\u5728 \u5c06 \u4ece \u60a8 \u7684 \u65b0 \u5927 \u5730\u56fe \u5f00\u59cb \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u4ece \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5efa\u8bae \u5728 \u5f00\u59cb \u4eff\u771f \u4e4b\u524d \u5148 \u9010\u4e2a \u52a0\u8f7d \u6bcf\u4e2a \u56fe\u5757 \uff08 \u901a\u8fc7 \u53cc\u51fb \u5b83\u4eec \uff09 \uff0c \u76f4\u5230 \u52a0\u8f7d \u5b8c \u6240\u6709 \u56fe\u5757 \u3002 \u8fd9\u4f1a \u5728 \u540e\u53f0 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \uff0c \u4f8b\u5982 \u70d8\u7119 \u7f51\u683c \u8ddd\u79bb \u573a \u548c \u56fe\u5757 \u7684 \u7740\u8272 \u7740\u8272\u5668 \u3002 \u5982\u679c \u60a8 \u4e00 \u5f00\u59cb \u4e0d \u9010\u4e00 \u52a0\u8f7d \u56fe\u5757 \uff0c \u8fd9\u4e9b \u64cd\u4f5c \u53ef\u80fd \u4f1a \u5728 \u8fd0\u884c \u65f6 \u6267\u884c \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u865a\u5e7b \u5f15\u64ce \u6302 \u8d77 \u6216 \u5d29\u6e83 \u3002 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u9075\u5faa \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b - \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 Linux \u4e0b \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u548c Windows \u4e0b \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u548c \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"Content authoring large maps"},{"location":"content_authoring_large_maps/#carla","text":"Carla \u4e2d \u5927 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 11 \u548c 12 \uff09 \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 10 \uff09 \u4e0d\u540c \u3002 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u56fe\u5757 \uff0c \u5373 \u5730\u56fe \u7684 \u7ec6\u5206 \uff0c \u901a\u5e38 \u5927\u5c0f \u8bbe\u7f6e \u4e3a \u7ea6 1 \u81f3 2 \u516c\u91cc \u3002 \u8fd9\u4e9b \u56fe\u5757 \u5212\u5206 \u4e86 \u5730\u56fe \uff0c \u4ee5\u4fbf \u4ec5 \u5c06 \u9700\u8981 \u7684 \u5730\u56fe \u90e8\u5206 \u52a0\u8f7d \u5230 \u56fe\u5f62 \u5185\u5b58 \u4e2d\u4ee5 \u8fdb\u884c \u9ad8\u6548 \u6e32\u67d3 \u3002 \u4e0d \u9700\u8981 \u7684 \u56fe\u5757 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u5e76 \u51c6\u5907 \u5728 \u9700\u8981 \u65f6 \u52a0\u8f7d \u3002 \u901a\u5e38 \uff0c \u4f1a \u52a0\u8f7d \u81ea\u6211 \u8f66\u8f86 \u4f4d\u7f6e \u4e2d \u7684 \u56fe\u5757 \u65c1\u8fb9 \u7684 \u56fe\u5757 \uff0c \u4f46 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u52a0\u8f7d \u66f4 \u591a \u56fe\u5757 \u3002 \u5f53 Carla \u542f\u52a8 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u8bbe\u7f6e \u4e2d \u4fee\u6539 \u6b64 \u884c\u4e3a \u3002","title":"\u4e3a Carla \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#roadrunner","text":"RoadRunner \u662f \u63a8\u8350 \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u7684 \u8f6f\u4ef6 \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u4f7f\u7528 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe \u4ee5\u53ca \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5bfc\u5165 \u548c \u5904\u7406 \u5927 \u5730\u56fe \u3002 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe \u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#roadrunner_1","text":"\u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u590d\u6742 \u5730\u56fe \u7684 \u5177\u4f53 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRunner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u4ece \u8868\u9762 \u4e0a \u770b \uff0c \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u4e0e \u6784\u5efa \u6807\u51c6 \u5730\u56fe \u57fa\u672c \u672c\u76f8 \u76f8\u540c \u57fa\u672c\u76f8\u540c \uff0c \u53ea\u662f \u6bd4\u4f8b \u66f4\u5927 \u3002 \u5dee\u5f02 \u4e3b\u8981 \u5728\u4e8e \u5730\u56fe \u7684 \u5bfc\u51fa \u65b9\u5f0f \u3002 \u8fd9\u91cc \u6211\u4eec \u521b\u5efa \u4e86 \u4e00\u5f20 \u5927\u7ea6 1.2 \u516c\u91cc \u5927\u5c0f \u7684 \u5927 \u5730\u56fe \u3002 \u5f53 \u6211\u4eec \u5bfc\u51fa \u5b83 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 700m \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u56e0\u6b64 \u5730\u56fe \u5e94\u8be5 \u5206\u5272 \u6210 \u5927\u7ea6 4 \u4e2a \u56fe\u5757 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5efa\u8bae \u7684 \u5730\u56fe \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20x20 km 2 \u3002 \u5927\u4e8e \u6b64 \u5927\u5c0f \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002","title":"\u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#roadrunner_2","text":"\u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u901a\u8fc7 \u5355\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \uff08 World settings tool \uff09 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5bfc\u51fa \u5b8c\u6574 \u5730\u56fe \u3002 \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb \u201c \u5e94\u7528 \u4e16\u754c \u66f4\u6539 \u201d \uff08 Apply World Changes \uff09 \u3002 \u4f7f\u7528 \u573a\u666f \u5bfc\u51fa \u9884\u89c8 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 \u5982\u4f55 \u5c06 \u5730\u56fe \u5212\u5206 \u4e3a \u56fe\u5757 \u4ee5\u4f9b \u5bfc\u51fa \u3002 \u8c03\u6574 \u201c \u5e73\u94fa \u9009\u9879 \u201d \uff08 Tiling Options \uff09 \u83dc\u5355 \u4e2d \u7684 \u201c \u5e73\u94fa \u5927\u5c0f \u201d \uff08 Tile Size \uff09 \u53c2\u6570 \uff0c \u627e\u5230 \u9002\u5408 \u60a8 \u5730\u56fe \u7684 \u5e73\u94fa \u5927\u5c0f \uff0c \u6309 \u201c \u5237\u65b0 \u573a\u666f \u201d \uff08 Refresh Scene \uff09 \u67e5\u770b \u8c03\u6574 \u7684 \u5f71\u54cd \u3002 \u7b14\u8bb0 Tile size : \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5757 \u5927\u5c0f \u662f \u4e00\u4e2a \u5224\u65ad \u8c03\u7528 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 \u65f6 \u80fd\u591f \u6709\u6548 \u5de5\u4f5c \u3002 \u5982\u679c \u60a8 \u7684 \u5730\u56fe \u5305\u542b \u5bc6\u96c6 \u7684 3D \u8d44\u6e90 \uff08 \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \uff09 \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d7\u76ca \u4e8e \u8f83 \u5c0f \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u4ee5 \u9632\u6b62 \u52a0\u8f7d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u8d44\u6e90 \u3002 \u4f46\u662f \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u589e\u52a0 \u6784\u5efa \u5730\u56fe \u6240 \u9700 \u5de5\u4f5c \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 Carla \u5f15\u64ce \u652f\u6301 \u7684 \u6700\u5927 \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 2 \u516c\u91cc \uff0c \u6211\u4eec \u5efa\u8bae \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 1 \u516c\u91cc \u5de6\u53f3 \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u5bfc\u51fa . fbx \u51e0\u4f55 \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > Firebox ( . fbx ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a \u901a\u8fc7 \u5206\u6bb5 \u5206\u5272 \uff08 Split by Segmentation \uff09 : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u5e76 \u6539\u8fdb \u884c\u4eba \u5bfc\u822a \u3002 \u4e8c\u7ef4 \u7eb9\u7406 \u7684 \u529b\u91cf \uff08 Power of Two Texture Dimensions \uff09 : \u63d0\u9ad8 \u6027\u80fd \u3002 \u5d4c\u5165 \u7eb9\u7406 \uff08 Embed Textures \uff09 : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 \u5bfc\u51fa \u5230 \u56fe\u5757 \uff08 Export to Tiles \uff09 : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 2000 x 2000 \u3002 \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 \uff08 Export Individual Tiles \uff09 : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u56fe\u5757 \u3002 3 . \u5bfc\u51fa . xodr OpenDrive \u5730\u56fe \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u5728 \u60a8 \u9009\u62e9 \u5bfc\u51fa \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u6709 \u51e0\u4e2a \u65b0 \u6587\u4ef6 \uff0c \u4e00\u4e2a . xodr \u6587\u4ef6 \u548c \u51e0\u4e2a . fbx \u6587\u4ef6 \uff1a \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u6839 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u5728 Roadrunner \u4e2d \u521b\u5efa \u4e86 \u5927 \u5730\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u5165 Carla \u4e2d \u3002 RoadRunner \u521b\u5efa \u7684 \u6587\u4ef6 \u5e94 \u8f6c\u79fb \u5230 \u7528\u4e8e \u6784\u5efa Carla \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u76ee\u5f55 \u5185 \u3002","title":"\u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#carla_1","text":"RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002","title":"\u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla"},{"location":"content_authoring_large_maps/#_1","text":"\u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u8b66\u544a \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c RoadRunner \u5e94 \u7b26\u5408 \u6b64 \u547d\u540d \u7ea6\u5b9a \uff0c \u4f46 \u5728 \u51c6\u5907 \u5bfc\u5165 Carla \u4e4b\u524d \u503c\u5f97 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \uff0c \u56e0\u4e3a \u6b64 \u9636\u6bb5 \u5f15\u8d77 \u7684 \u95ee\u9898 \u7a0d\u540e \u4fee\u590d \u8d77\u6765 \u53ef\u80fd \u4f1a \u5f88 \u4e4f\u5473 \u3002 \u6700\u7ec8 \u5730\u56fe \u4e2d \u7684 \u56fe\u5757 \u5c06 \u5982\u4e0b \u56fe \u6240\u793a \u6392\u5217 \uff1a \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 LargeMap . xodr \u7b14\u8bb0 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 package . json \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6587\u4ef6 \u548c \u6587\u4ef6\u5939"},{"location":"content_authoring_large_maps/#json","text":". json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c . xodr \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u6599 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx tile \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" LargeMap \" , \" xodr \" : \" . / LargeMap . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 700 , \" tiles \" : [ \" . / LargeMap _ Tile _ 0 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 0 _ 1 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] }","title":"\u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09"},{"location":"content_authoring_large_maps/#_2","text":"\u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 \u8be5 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76 \u51c6\u5907 \u597d \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u5efa\u7b51 \u7b49 \u3002","title":"\u8fdb\u884c \u5bfc\u5165"},{"location":"content_authoring_large_maps/#_3","text":"\u73b0\u5728 \u60a8 \u5df2 \u5bfc\u5165 \u65b0 \u5730\u56fe \uff0c \u60a8 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u9ed8\u8ba4 \u547d\u540d map _ package \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u627e\u5230 \u8be5 \u5730\u56fe \u3002 \u5982\u679c \u60a8 \u5728 \u5bfc\u5165 \u547d\u4ee4 \u4e2d \u4f7f\u7528 \u53c2\u6570 \" -- package = < package _ name > \" \uff0c \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u6709 \u4e00\u4e2a \u5907\u7528 \u540d\u79f0 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \uff0c \u6253\u5f00 \u8be5 Maps \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u6253\u5f00 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u91cc\u9762 \u4f60 \u4f1a \u53d1\u73b0 \u51e0\u4e2a \u6a59\u8272 \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u6574\u4e2a \u5730\u56fe \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \uff0c \u800c \u4ece RoadRunner \u5bfc\u51fa \u7684 \u6bcf\u4e2a \u56fe\u5757 \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \u3002 \u8981 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7b49 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \uff0c \u8bf7 \u53cc\u51fb \u8981 \u5904\u7406 \u7684 \u56fe\u5757 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u4f8b\u5982 \u672c\u4f8b \u4e2d LargeMap _ Tile _ 0 _ 0 \uff09 \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u52a0\u8f7d \u5230 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u5757 \u6ca1\u6709 \u4efb\u4f55 \u7167\u660e \u8bbe\u7f6e \uff0c \u56e0\u6b64 \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u89c6\u56fe \u6a21\u5f0f \u4ece \u66f4\u6539 Lit \u4e3a Unlit \u624d\u80fd \u5728 \u52a0\u8f7d \u56fe\u5757 \u540e \u770b\u5230 \u5b83 \u3002 \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b \u5411 \u5730\u56fe \u6dfb\u52a0 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u786e\u4fdd \u4fdd\u5b58 \u5bf9 \u6b63\u5728 \u5904\u7406 \u7684 \u56fe\u5757 \u6240 \u505a \u7684 \u4fee\u6539 \uff0c \u7136\u540e \u52a0\u8f7d \u4e0b \u4e00\u4e2a \u56fe\u5757 \u5e76 \u91cd\u590d \u8be5 \u8fc7\u7a0b \u3002 \u60a8 \u65e0\u6cd5 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u6574\u4e2a \u5730\u56fe \uff0c \u56e0\u6b64 \u52a0\u8f7d \uff08 \u901a\u8fc7 \u53cc\u51fb \uff09 \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5bf9\u4e8e \u88c5\u9970 \u5730\u56fe \u5c06 \u6ca1\u6709 \u7528\u5904 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#_4","text":"\u5982\u679c \u60a8 \u60f3 \u52a0\u8f7d \u5730\u56fe \u5e76 \u5f00\u59cb \u4eff\u771f \u8fdb\u884c \u5b9e\u9a8c \uff0c \u60a8 \u5e94\u8be5 \u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u53cc\u51fb \u5e26\u6709 \u6839 \u5730\u56fe \u540d\u79f0 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5e76 \u7b49\u5f85 \u5176 \u52a0\u8f7d \u3002 \u5bf9\u4e8e \u975e\u5e38 \u5927 \u7684 \u5730\u56fe \uff0c \u52a0\u8f7d \u6709\u65f6 \u53ef\u80fd \u9700\u8981 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u751a\u81f3 \u51e0\u5206 \u5206\u949f \u51e0\u5206\u949f \u3002 \u52a0\u8f7d \u540e \uff0c \u5355\u51fb \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u64ad\u653e \u9009\u9879 \u3002 \u4eff\u771f \u73b0\u5728 \u5c06 \u4ece \u60a8 \u7684 \u65b0 \u5927 \u5730\u56fe \u5f00\u59cb \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u4ece \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5efa\u8bae \u5728 \u5f00\u59cb \u4eff\u771f \u4e4b\u524d \u5148 \u9010\u4e2a \u52a0\u8f7d \u6bcf\u4e2a \u56fe\u5757 \uff08 \u901a\u8fc7 \u53cc\u51fb \u5b83\u4eec \uff09 \uff0c \u76f4\u5230 \u52a0\u8f7d \u5b8c \u6240\u6709 \u56fe\u5757 \u3002 \u8fd9\u4f1a \u5728 \u540e\u53f0 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \uff0c \u4f8b\u5982 \u70d8\u7119 \u7f51\u683c \u8ddd\u79bb \u573a \u548c \u56fe\u5757 \u7684 \u7740\u8272 \u7740\u8272\u5668 \u3002 \u5982\u679c \u60a8 \u4e00 \u5f00\u59cb \u4e0d \u9010\u4e00 \u52a0\u8f7d \u56fe\u5757 \uff0c \u8fd9\u4e9b \u64cd\u4f5c \u53ef\u80fd \u4f1a \u5728 \u8fd0\u884c \u65f6 \u6267\u884c \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u865a\u5e7b \u5f15\u64ce \u6302 \u8d77 \u6216 \u5d29\u6e83 \u3002","title":"\u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f"},{"location":"content_authoring_large_maps/#_5","text":"\u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u9075\u5faa \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b - \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 Linux \u4e0b \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u548c Windows \u4e0b \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u548c \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe"},{"location":"core_actors/","text":"\u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u5728 \u4eff\u771f \u4e2d \u6267\u884c \u52a8\u4f5c \u7684 \u5143\u7d20 \uff0c \u4ed6\u4eec \u53ef\u4ee5 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Carla \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5305\u62ec \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u4e5f \u5305\u62ec \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u89c2\u770b \u8005 \u3002 \u5bf9 \u5982\u4f55 \u64cd\u4f5c \u5b83\u4eec \u6709 \u5145\u5206 \u7684 \u4e86\u89e3 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u672c\u8282 \u5c06 \u4ecb\u7ecd \u751f\u6210 \u3001 \u6467\u6bc1 \u3001 \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u7ba1\u7406 \u5b83\u4eec \u3002 \u7136\u800c \uff0c \u53ef\u80fd \u53ef\u80fd\u6027 \u51e0\u4e4e \u662f \u65e0\u7a77 \u65e0\u5c3d \u65e0\u7a77\u65e0\u5c3d \u7684 \u3002 \u5b9e\u9a8c \u3001 \u67e5\u770b \u672c \u6587\u6863 \u4e2d \u7684 \u6559\u7a0b \uff0c \u5e76 \u5728 Carla \u8bba\u575b \u4e2d \u5206\u4eab \u7591\u8651 \u548c \u60f3\u6cd5 \u3002 \u84dd\u56fe \u7ba1\u7406 \u84dd \u56fe\u5e93 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u751f\u6210 \u5904\u7406 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u8f66\u8f86 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u84dd\u56fe \u8fd9\u4e9b \u5e03\u5c40 \u5141\u8bb8 \u7528\u6237 \u5c06 \u65b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e73\u6ed1 \u5730 \u7ed3\u5408 \u5230 \u4eff\u771f \u4e2d \u3002 \u5b83\u4eec \u5df2\u7ecf \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u662f \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u5305\u62ec \u8f66\u8f86 \u989c\u8272 \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u901a\u9053 \u6570\u91cf \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u901f\u5ea6 \u7b49\u7b49 \u3002 \u84dd \u56fe\u5e93 \u5217\u51fa \u4e86 \u53ef\u7528 \u7684 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u3002 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u84dd\u56fe \u5177\u6709 \u4e00\u4e2a \u751f\u6210 \u5c5e\u6027 \uff0c \u7528\u4e8e \u6307\u793a \u5b83\u4eec \u662f \u65b0 \u7684 \uff08 \u7b2c 2 \u4ee3 \uff09 \u8d44\u4ea7 \u8fd8\u662f \u65e7 \u7684 \uff08 \u7b2c 1 \u4ee3 \uff09 \u8d44\u4ea7 \u3002 \u7ba1\u7406 \u84dd \u56fe\u5e93 carla . BlueprintLibrary \u7c7b \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . ActorBlueprint \u5143\u7d20 \u3002 \u5b83 \u662f \u80fd\u591f \u63d0\u4f9b \u5bf9 \u5b83 \u8bbf\u95ee \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 blueprint _ library = world . get _ blueprint _ library ( ) \u84dd\u56fe \u6709 \u4e00\u4e2a ID \u6765 \u8bc6\u522b \u5b83\u4eec \u548c \u7531\u6b64 \u4ea7\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53ef\u4ee5 \u8bfb\u53d6 \u5e93\u6765 \u627e\u5230 \u67d0\u4e2a ID \uff0c \u968f\u673a \u9009\u62e9 \u84dd\u56fe \uff0c \u6216\u8005 \u4f7f\u7528 \u901a\u914d\u7b26 \u6a21\u5f0f \u8fc7\u6ee4 \u7ed3\u679c \u3002 # \u627e \u4e00\u4e2a \u6307\u5b9a \u7684 \u84dd\u56fe collision _ sensor _ bp = blueprint _ library . find ( ' sensor . other . collision ' ) # \u968f\u673a \u9009\u62e9 \u4e00\u4e2a \u8f66\u8f86 \u84dd\u56fe vehicle _ bp = random . choice ( blueprint _ library . filter ( ' vehicle . * . * ' ) ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u6bcf\u4e2a carla . ActorBlueprint \u80fd \u83b7\u53d6 get \u548c \u6539\u53d8 set \u4e00\u4e9b \u5217 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 carla . ActorAttribute \u3002 is _ bike = [ vehicle . get _ attribute ( ' number _ of _ wheels ' ) = = 2 ] if ( is _ bike ) vehicle . set _ attribute ( ' color ' , ' 255 , 0 , 0 ' ) \u7b14\u8bb0 \u67d0\u4e9b \u5c5e\u6027 \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u67e5\u770b \u3002 \u5c5e\u6027 \u6709 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 \u7c7b\u578b carla . ActorAttributeType \u53d8\u91cf \u3002 \u5b83 \u4ece \u679a\u4e3e \u5217\u8868 \u4e2d \u58f0\u660e \u5176 \u7c7b\u578b \u3002 \u6b64\u5916 \uff0c \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u8fd8 \u9644\u5e26 \u4e00\u4e2a \u63a8\u8350 \u63a8\u8350\u503c \u5217\u8868 \u3002 for attr in blueprint : if attr . is _ modifiable : blueprint . set _ attribute ( attr . id , random . choice ( attr . recommended _ values ) ) \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u4ed6\u4eec \u81ea\u5df1 \u7684 \u8f66\u8f86 \u3002 \u67e5\u770b \u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09 \u4ee5 \u4e86\u89e3 \u76f8\u5173 \u4fe1\u606f \u3002 \u8d21\u732e \u8d21\u732e\u8005 \u53ef\u4ee5 \u5c06 \u4ed6\u4eec \u7684 \u65b0 \u5185\u5bb9 \u6dfb\u52a0 \u5230 Carla \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u91cd\u8981 \u672c \u8282 \u63d0\u5230 \u4e86 \u5173\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 Python API \u63d0\u4f9b commands \uff0c \u4ee5\u4fbf \u5728 \u4e00\u4e2a \u6846\u67b6 \u4e2d \u5e94\u7528 \u4e00\u6279 \u6700 \u5e38\u89c1 \u7684 \u547d\u4ee4 \u3002 \u751f\u6210 \u4e16\u754c \u5bf9\u8c61 \u8d1f\u8d23 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u8ddf\u8e2a \u8fd9\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u751f\u6210 \u53ea \u9700\u8981 \u4e00\u5f20 \u84dd\u56fe \u548c \u4e00\u4e2a carla . Transform \u8bf4\u660e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u4e16\u754c \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u629b\u51fa \u4e00\u4e2a \u5f02\u5e38 \u3002 try _ spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u8fd4\u56de None \u3002 transform = Transform ( Location ( x = 230 , y = 195 , z = 40 ) , Rotation ( yaw = 180 ) ) actor = world . spawn _ actor ( blueprint , transform ) \u91cd\u8981 Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf \u3002 \u8bb0\u4f4f \uff1a carla . Rotation \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5b9a\u4e49 \u4e3a \u201c \u4fef\u4ef0 \u3001 \u504f\u822a \u3001 \u7ffb\u6eda \u201d ( pitch , yaw , roll ) \uff0c \u4e0e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u201c \u7ffb\u6eda \u3001 \u4fef\u4ef0 \u3001 \u504f\u822a \u201d ( roll , pitch , yaw ) \u4e0d\u540c \u3002 \u5982\u679c \u5728 \u6307\u5b9a \u4f4d\u7f6e \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u5c06 \u4e0d\u4f1a \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u65e0\u8bba \u8fd9\u79cd \u60c5\u51b5 \u53d1\u751f \u5728 \u9759\u6001 \u5bf9\u8c61 \u8fd8\u662f \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8eab\u4e0a \u3002 \u53ef\u4ee5 \u5c1d\u8bd5 \u907f\u514d \u8fd9\u4e9b \u4e0d \u5e0c\u671b \u7684 \u751f\u6210 \u78b0\u649e \u3002 map . get _ spawn _ points ( ) \u5bf9\u4e8e \u8f66\u8f86 \u3002 \u8fd4\u56de \u63a8\u8350 \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) world . get _ random _ location ( ) \u5bf9\u4e8e \u884c\u4eba \u3002 \u8fd4\u56de \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u7684 \u968f\u673a \u70b9 \u3002 \u540c\u6837 \u7684 \u65b9\u6cd5 \u4e5f \u7528\u4e8e \u4e3a \u884c\u4eba \u8bbe\u7f6e \u76ee\u6807 \u4f4d\u7f6e \u3002 spawn _ point = carla . Transform ( ) spawn _ point . location = world . get _ random _ location _ from _ navigation ( ) \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u751f\u6210 \u65f6 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8ddf\u968f \u4ed6\u4eec \u6240 \u4f9d\u9644 \u7684 \u7236\u7ea7 \u3002 \u8fd9 \u5bf9\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7279\u522b \u6709\u7528 \u3002 \u8be5 \u9644\u4ef6 \u53ef\u4ee5 \u662f \u521a\u6027 \u7684 \uff08 \u9002\u5408 \u68c0\u7d22 \u7cbe\u786e \u6570\u636e \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u6839\u636e \u5176\u7236 \u7ea7 \u7684 \u60c5\u51b5 \u8fdb\u884c \u8f7b\u677e \u79fb\u52a8 \u3002 \u5b83 \u7531 \u8f85\u52a9 \u7c7b carla . AttachmentType \u5b9a\u4e49 \u3002 \u4e0b \u4e00\u4e2a \u793a\u4f8b \u5c06 \u76f8\u673a \u521a\u6027 \u5730 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u56e0\u6b64 \u5b83\u4eec \u7684 \u76f8\u5bf9 \u4f4d\u7f6e \u4fdd\u6301 \u56fa\u5b9a \u3002 camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle , carla . AttachmentType . Rigid ) \u91cd\u8981 \u5f53 \u751f\u6210 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u63d0\u4f9b \u7684 \u53d8\u6362 \u5fc5\u987b \u76f8\u5bf9 \u4e8e \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e00\u65e6 \u751f\u6210 \uff0c \u4e16\u754c \u5bf9\u8c61 \u5c31 \u4f1a \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u5217\u8868 \u4e2d \u3002 \u8fd9 \u53ef\u4ee5 \u5f88 \u5bb9\u6613 \u5730 \u641c\u7d22 \u6216 \u8fed\u4ee3 \u3002 actor _ list = world . get _ actors ( ) # \u6839\u636e id \u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 actor = actor _ list . find ( id ) # \u6253\u5370 \u4e16\u754c \u4e0a \u6240\u6709 \u9650\u901f \u6807\u5fd7 \u7684 \u4f4d\u7f6e \u3002 for speed _ sign in actor _ list . filter ( ' traffic . speed _ limit . * ' ) : print ( speed _ sign . get _ location ( ) ) \u5904\u7406 carla . Actor \u4e3b\u8981 \u7531 get ( ) \u548c set ( ) \u65b9\u6cd5 \u7ec4\u6210 \uff0c \u7528\u4e8e \u7ba1\u7406 \u5730\u56fe \u5468\u56f4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 print ( actor . get _ acceleration ( ) ) print ( actor . get _ velocity ( ) ) location = actor . get _ location ( ) location . z + = 10.0 actor . set _ location ( location ) \u53ef\u4ee5 \u7981\u7528 \u6f14\u5458 \u7684 \u7269\u7406 \u7279\u6027 \u4ee5 \u5c06 \u5176 \u51bb\u7ed3 \u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 actor . set _ simulate _ physics ( False ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8fd8\u6709 \u4ed6\u4eec \u7684 \u84dd\u56fe \u63d0\u4f9b \u7684 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u6709\u7528 \u3002 \u7b14\u8bb0 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u65b9\u6cd5 \u662f \u5f02\u6b65 \u5411 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53d1\u9001 \u8bf7\u6c42 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u89e3\u6790 \u5b83\u4eec \u7684 \u65f6\u95f4 \u6709\u9650 \u3002 \u4f7f\u7528 set ( ) \u65b9\u6cd5 \u6df9\u6ca1 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u79ef\u7d2f \u660e\u663e \u7684 \u5ef6\u8fdf \u3002 \u6467\u6bc1 \u5f53 Python \u811a\u672c \u5b8c\u6210 \u65f6 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u4f1a \u88ab \u9500\u6bc1 \u3002 \u4ed6\u4eec \u5fc5\u987b \u660e\u786e \u5730 \u6467\u6bc1 \u81ea\u5df1 \u3002 destroyed _ sucessfully = actor . destroy ( ) # \u5982\u679c \u6210\u529f \u8fd4\u56de True \u91cd\u8981 \u9500\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f1a \u963b\u585e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u76f4\u5230 \u8be5 \u8fc7\u7a0b \u5b8c\u6210 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4ed6\u4eec \u6709 \u81ea\u5df1 \u7684 \u90e8\u5206 \uff0c \u7b2c\u56db \u90e8\u5206 . \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u3002 \u73b0\u5728 \uff0c \u6211\u4eec \u53ea \u770b \u4e00\u4e0b \u5e38\u89c1 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u5468\u671f \u3002 \u6b64 \u793a\u4f8b \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5176 \u8fde\u63a5 \u5230 \u8f66\u8f86 \uff0c \u5e76 \u544a\u8bc9 \u76f8\u673a \u5c06 \u751f\u6210 \u7684 \u56fe\u50cf \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 camera _ bp = blueprint _ library . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle ) camera . listen ( lambda image : image . save _ to _ disk ( ' output / % 06d . png ' % image . frame ) ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e5f \u6709 \u84dd\u56fe \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u5b89\u88c5 \u5728 \u8f66\u8f86 \u4e0a\u4ee5 \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76d1\u542c \u6570\u636e \u3002 \u6536\u5230 \u6570\u636e \u540e \uff0c \u5b83\u4eec \u4f1a \u8c03\u7528 \u7528 Lambda \u8868\u8fbe \u8fbe\u5f0f \u8868\u8fbe\u5f0f \u63cf\u8ff0 \u7684 \u51fd\u6570 ( \u63d0\u4f9b \u7684 \u94fe\u63a5 \u4e2d \u7684 6.14 ) \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7531 \u865a\u5e7b \u5f15\u64ce \u653e\u7f6e \u4ee5 \u63d0\u4f9b \u6e38\u620f \u5185 \u7684 \u89c6\u89d2 \u3002 \u5b83 \u53ef \u7528\u4e8e \u79fb\u52a8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \u7684 \u89c6\u89d2 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u79fb\u52a8 \u89c2\u4f17 \u6f14\u5458 \uff0c \u5c06 \u89c6\u89d2 \u6307\u5411 \u6240 \u9700 \u7684 \u8f66\u8f86 \u3002 spectator = world . get _ spectator ( ) transform = vehicle . get _ transform ( ) spectator . set _ transform ( carla . Transform ( transform . location + carla . Location ( z = 50 ) , carla . Rotation ( pitch = - 90 ) ) ) \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Carela \u4e2d \u53ea\u6709 \u505c\u9760 \u505c\u9760\u70b9 \u3001 \u8ba9 \u884c \u8def\u7ebf \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u88ab \u89c6\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5176\u4f59 \u7684 OpenDRIVE \u6807\u5fd7 \u53ef \u901a\u8fc7 API \u4f5c\u4e3a \u5730\u6807 \uff08 carla . Landmark \uff09 \u8fdb\u884c \u8bbf\u95ee \u3002 \u4ed6\u4eec \u7684 \u4fe1\u606f \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u5b9e\u4f8b \u8bbf\u95ee \uff0c \u4f46 \u4ed6\u4eec \u5728 \u4eff\u771f \u4e2d \u5e76 \u4e0d \u4f5c\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b58\u5728 \u3002 \u5728 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u7b2c 3 \u90e8\u5206 \u5730\u56fe \u548c \u5bfc\u822a \u4e2d\u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u5730\u6807 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u3001 \u505c\u6b62 \u3001 \u8ba9 \u884c \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u65f6 \uff0c \u4f1a \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u81ea\u52a8 \u751f\u6210 \u3002 \u8fd9\u4e9b \u90fd \u65e0\u6cd5 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \uff0c \u56e0\u6b64 \u65e0\u6cd5 \u751f\u6210 \u3002 \u7b14\u8bb0 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 Carela \u5730\u56fe \u6ca1\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6216 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u8fd9\u4e9b \u662f \u7531 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u624b\u52a8 \u653e\u7f6e \u7684 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u672a \u5728 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u672c\u8eab \u4e2d \u5b9a\u4e49 \uff0c \u5982\u4e0b \u9875 \u6240\u8ff0 \u3002 \u76f8\u53cd \uff0c \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . BoundingBox \u6765 \u5f71\u54cd \u5176\u4e2d \u7684 \u8f66\u8f86 \u3002 # \u83b7\u5f97 \u5f71\u54cd \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f if vehicle _ actor . is _ at _ traffic _ light ( ) : traffic _ light = vehicle _ actor . get _ traffic _ light ( ) \u8def\u53e3 \u8bbe\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u4e0e \u4efb\u4f55 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u4ed6\u4eec \u6709 \u81ea\u5df1 \u72ec\u7279 \u7684 ID \uff0c \u4f46 \u5bf9\u4e8e \u5c94\u8def \u53e3 \u4e5f \u6709 \u4e00\u4e2a \u4e00\u4e2a\u7ec4 \uff08 group \uff09 ID \u3002 \u540c \u4e00\u7ec4 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9075\u5faa \u4e00\u4e2a \u5faa\u73af \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e3a \u7eff\u8272 \uff0c \u800c \u5176\u4f59 \u7684 \u5219 \u4fdd\u6301 \u7ea2\u8272 \u3002 \u6d3b\u8dc3 \u7684 \u706f\u4f1a \u6301\u7eed \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u5448 \u7eff\u8272 \u3001 \u9ec4\u8272 \u548c \u7ea2\u8272 \uff0c \u56e0\u6b64 \u6709 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u6240\u6709 \u706f \u90fd \u662f \u7ea2\u8272 \u7684 \u3002 \u7136\u540e \uff0c \u4e0b \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5f00\u59cb \u5faa\u73af \uff0c \u524d \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e0e \u5176\u4f59 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e00\u8d77 \u51bb\u7ed3 \u3002 \u53ef\u4ee5 \u4f7f\u7528 API \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u6bcf\u4e2a \u72b6\u6001 \u82b1\u8d39 \u7684 \u79d2\u6570 \u4e5f \u662f \u5982\u6b64 \u3002 \u53ef\u80fd \u7684 \u72b6\u6001 \u7528 carla . TrafficLightState \u63cf\u8ff0 \u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u3002 # \u4ea4\u901a \u4ea4\u901a\u706f \u4ece\u7ea2 \u53d8\u7eff if traffic _ light . get _ state ( ) = = carla . TrafficLightState . Red : traffic _ light . set _ state ( carla . TrafficLightState . Green ) traffic _ light . set _ set _ green _ time ( 4.0 ) \u7b14\u8bb0 \u53ea\u6709 \u5f53 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4e3a \u7ea2\u8272 \u65f6 \uff0c \u8f66\u8f86 \u624d \u4f1a \u610f\u8bc6 \u5230 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u8f66\u8f86 carla . Vehicle \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u6f14\u5458 \u3002 \u5b83 \u91c7\u7528 \u4e86 \u4eff\u771f \u8f6e\u5f0f \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u7279\u6b8a \u5185\u90e8 \u7ec4\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5e94\u7528 \u56db\u79cd \u4e0d\u540c \u7684 \u63a7\u4ef6 \u6765 \u5b9e\u73b0 \u7684 \uff1a carla . VehicleControl \u63d0\u4f9b \u6cb9\u95e8 \u3001 \u8f6c\u5411 \u3001 \u5239\u8f66 \u7b49 \u9a7e\u9a76 \u547d\u4ee4 \u7684 \u8f93\u5165 \u3002 vehicle . apply _ control ( carla . VehicleControl ( throttle = 1.0 , steer = - 1.0 ) ) carla . VehiclePhysicsControl \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u7269\u7406 \u5c5e\u6027 \u5e76 \u5305\u542b \u53e6\u5916 \u4e24\u4e2a \u63a7\u5236 \u63a7\u5236\u5668 \uff1a carla . GearPhysicsControl \u63a7\u5236 \u9f7f\u8f6e \u3002 carla . WheelPhysicsControl \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u7279\u5b9a \u63a7\u5236 \u3002 vehicle . apply _ physics _ control ( carla . VehiclePhysicsControl ( max _ rpm = 5000.0 , center _ of _ mass = carla . Vector3D ( 0.0 , 0.0 , 0.0 ) , torque _ curve = [ [ 0 , 400 ] , [ 5000 , 400 ] ] ) ) \u8f66\u8f86 \u6709 \u4e00\u4e2a carla . BoundingBox \u5c01\u88c5 \u5b83\u4eec \u3002 \u8be5 \u8fb9\u754c \u6846 \u5141\u8bb8 \u5c06 \u7269\u7406 \u539f\u7406 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u5e76 \u68c0\u6d4b \u78b0\u649e \u3002 box = vehicle . bounding _ box print ( box . location ) # \u76f8\u5bf9 \u8f66\u8f86 \u7684 \u4f4d\u7f6e print ( box . extent ) # XYZ half - box extents in meters . \u901a\u8fc7 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u53c2\u6570 \u53ef\u4ee5 \u6539\u5584 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u9ed8\u8ba4 \u7684 \u8f6e\u5b50 \u7269\u7406 \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u4f7f\u7528 \u4ece\u8f74\u5230 \u5730\u677f \u7684 \u5355 \u5c04\u7ebf \u6295\u5c04 \uff0c \u4f46\u662f \u5f53 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u65f6 \uff0c \u5c06 \u68c0\u67e5 \u8f6e\u5b50 \u7684 \u6574\u4e2a \u4f53\u79ef \u662f\u5426 \u53d1\u751f \u78b0\u649e \u3002 \u5b83 \u53ef\u4ee5 \u8fd9\u6837 \u542f\u7528 \uff1a physics _ control = vehicle . get _ physics _ control ( ) physics _ control . use _ sweep _ wheel _ collision = True vehicle . apply _ physics _ control ( physics _ control ) \u8f66\u8f86 \u8fd8 \u5305\u62ec \u5176 \u72ec\u6709 \u7684 \u5176\u4ed6 \u529f\u80fd \uff1a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u4f1a \u5c06 \u8f66\u8f86 \u8ba2\u9605 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u57ce\u5e02 \u72b6\u51b5 \u3002 \u8be5 \u6a21\u5757 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4e0d\u662f \u57fa\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u3002 vehicle . set _ autopilot ( True ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 \u548c \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \uff0c \u914d\u5907 \u96c6\u6210 \u8f66\u706f \u7684 \u8f66\u8f86 \u5982\u4e0b \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff1a \u6240\u6709 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u90fd \u6709 \u524d\u540e \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \uff1a \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \uff1a \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 Impala \u3001 \u9053\u5947 \u8b66\u8f66 \u3001 \u9053\u5947 Charger \u3001 \u5965\u8fea e - tron \u3001 \u6797\u80af 2017 \u5e74 \u548c 2020 \u5e74 \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Model 3 \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Cybertruck \u3001 \u5927\u4f17 T2 \u548c \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af C \u7ea7 \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights ) \u884c\u4eba carla . Walker \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u8f66\u8f86 \u7c7b\u4f3c \u3002 \u5bf9 \u5b83\u4eec \u7684 \u63a7\u5236 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u3002 carla . WalkerControl \u4ee5 \u4e00\u5b9a \u7684 \u65b9\u5411 \u548c \u901f\u5ea6 \u79fb\u52a8 \u884c\u4eba \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u4ed6\u4eec \u8df3\u8dc3 \u3002 carla . WalkerBoneControl \u63d0\u4f9b \u5bf9 \u4e09\u7ef4 \u9aa8\u67b6 \u7684 \u63a7\u5236 \u3002 \u672c \u6559\u7a0b \u89e3\u91ca \u4e86 \u5982\u4f55 \u63a7\u5236 \u5b83 \u3002 \u884c\u4eba \u53ef\u4ee5 \u7531 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u3002 \u4ed6\u4eec \u6ca1\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u3002 carla . WalkerAIController \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5b83 \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5468\u56f4 \u79fb\u52a8 \u3002 walker _ controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) world . SpawnActor ( walker _ controller _ bp , carla . Transform ( ) , parent _ walker ) \u7b14\u8bb0 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u65e0\u5f62 \u7684 \uff0c \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u4e0d\u4f1a \u51fa\u73b0 \u5728 \u73b0\u573a \u3002 \u6b64\u5916 \uff0c \u4f4d\u7f6e ( 0 , 0 , 0 ) \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u4f4d\u7f6e \u4e0d\u4f1a \u5bfc\u81f4 \u78b0\u649e \u3002 \u6bcf\u4e2a \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u90fd \u9700\u8981 \u521d\u59cb \u521d\u59cb\u5316 \u3001 \u76ee\u6807 \u548c \u53ef\u9009 \u7684 \u901f\u5ea6 \u3002 \u505c\u6b62 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u76f8\u540c \u3002 ai _ controller . start ( ) ai _ controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) ai _ controller . set _ max _ speed ( 1 + random . random ( ) ) # \u5728 1 \u7c73 \u6bcf\u79d2 \u5230 2 \u7c73 \u6bcf\u79d2 \u4e4b\u95f4 \uff08 \u9ed8\u8ba4 \u662f 1.4 \u7c73 \u6bcf\u79d2 \uff09 ... ai _ controller . stop ( ) \u5f53 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5230\u8fbe \u76ee\u6807 \u4f4d\u7f6e \u65f6 \uff0c \u4ed6\u4eec \u4f1a \u81ea\u52a8 \u6b65\u884c \u5230 \u53e6 \u4e00\u4e2a \u968f\u673a \u70b9 \u3002 \u5982\u679c \u65e0\u6cd5 \u5230\u8fbe \u76ee\u6807 \u70b9 \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5c06 \u524d\u5f80 \u8ddd\u79bb \u5f53\u524d \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u70b9 \u3002 carla . Client \u4e2d \u7684 \u4e00\u4e2a \u7247\u6bb5 \u4f7f\u7528 \u6279\u6b21 \u751f\u6210 \u5927\u91cf \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5e76 \u8ba9 \u5b83\u4eec \u56db\u5904 \u6e38\u8361 \u3002 \u91cd\u8981 \u8981 \u6467\u6bc1 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u884c\u4eba \uff0c \u8bf7 \u505c\u6b62 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u5173\u4e8e Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8fd9 \u5c31\u662f \u4e00\u4e2a \u603b\u7ed3 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 Carla \u7684 \u5730\u56fe \u3001 \u9053\u8def \u548c \u4ea4\u901a \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u6216 \u8bbf\u95ee \u8bba\u575b \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b 3rd . \u5730\u56fe \u548c \u5bfc\u822a","title":"\u7b2c\u4e8c \u3001 \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe"},{"location":"core_actors/#_1","text":"Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u5728 \u4eff\u771f \u4e2d \u6267\u884c \u52a8\u4f5c \u7684 \u5143\u7d20 \uff0c \u4ed6\u4eec \u53ef\u4ee5 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Carla \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5305\u62ec \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u4e5f \u5305\u62ec \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u89c2\u770b \u8005 \u3002 \u5bf9 \u5982\u4f55 \u64cd\u4f5c \u5b83\u4eec \u6709 \u5145\u5206 \u7684 \u4e86\u89e3 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u672c\u8282 \u5c06 \u4ecb\u7ecd \u751f\u6210 \u3001 \u6467\u6bc1 \u3001 \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u7ba1\u7406 \u5b83\u4eec \u3002 \u7136\u800c \uff0c \u53ef\u80fd \u53ef\u80fd\u6027 \u51e0\u4e4e \u662f \u65e0\u7a77 \u65e0\u5c3d \u65e0\u7a77\u65e0\u5c3d \u7684 \u3002 \u5b9e\u9a8c \u3001 \u67e5\u770b \u672c \u6587\u6863 \u4e2d \u7684 \u6559\u7a0b \uff0c \u5e76 \u5728 Carla \u8bba\u575b \u4e2d \u5206\u4eab \u7591\u8651 \u548c \u60f3\u6cd5 \u3002 \u84dd\u56fe \u7ba1\u7406 \u84dd \u56fe\u5e93 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u751f\u6210 \u5904\u7406 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u8f66\u8f86 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005","title":"\u7b2c\u4e8c \u3001 \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe"},{"location":"core_actors/#_2","text":"\u8fd9\u4e9b \u5e03\u5c40 \u5141\u8bb8 \u7528\u6237 \u5c06 \u65b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e73\u6ed1 \u5730 \u7ed3\u5408 \u5230 \u4eff\u771f \u4e2d \u3002 \u5b83\u4eec \u5df2\u7ecf \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u662f \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u5305\u62ec \u8f66\u8f86 \u989c\u8272 \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u901a\u9053 \u6570\u91cf \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u901f\u5ea6 \u7b49\u7b49 \u3002 \u84dd \u56fe\u5e93 \u5217\u51fa \u4e86 \u53ef\u7528 \u7684 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u3002 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u84dd\u56fe \u5177\u6709 \u4e00\u4e2a \u751f\u6210 \u5c5e\u6027 \uff0c \u7528\u4e8e \u6307\u793a \u5b83\u4eec \u662f \u65b0 \u7684 \uff08 \u7b2c 2 \u4ee3 \uff09 \u8d44\u4ea7 \u8fd8\u662f \u65e7 \u7684 \uff08 \u7b2c 1 \u4ee3 \uff09 \u8d44\u4ea7 \u3002","title":"\u84dd\u56fe"},{"location":"core_actors/#_3","text":"carla . BlueprintLibrary \u7c7b \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . ActorBlueprint \u5143\u7d20 \u3002 \u5b83 \u662f \u80fd\u591f \u63d0\u4f9b \u5bf9 \u5b83 \u8bbf\u95ee \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 blueprint _ library = world . get _ blueprint _ library ( ) \u84dd\u56fe \u6709 \u4e00\u4e2a ID \u6765 \u8bc6\u522b \u5b83\u4eec \u548c \u7531\u6b64 \u4ea7\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53ef\u4ee5 \u8bfb\u53d6 \u5e93\u6765 \u627e\u5230 \u67d0\u4e2a ID \uff0c \u968f\u673a \u9009\u62e9 \u84dd\u56fe \uff0c \u6216\u8005 \u4f7f\u7528 \u901a\u914d\u7b26 \u6a21\u5f0f \u8fc7\u6ee4 \u7ed3\u679c \u3002 # \u627e \u4e00\u4e2a \u6307\u5b9a \u7684 \u84dd\u56fe collision _ sensor _ bp = blueprint _ library . find ( ' sensor . other . collision ' ) # \u968f\u673a \u9009\u62e9 \u4e00\u4e2a \u8f66\u8f86 \u84dd\u56fe vehicle _ bp = random . choice ( blueprint _ library . filter ( ' vehicle . * . * ' ) ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u6bcf\u4e2a carla . ActorBlueprint \u80fd \u83b7\u53d6 get \u548c \u6539\u53d8 set \u4e00\u4e9b \u5217 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 carla . ActorAttribute \u3002 is _ bike = [ vehicle . get _ attribute ( ' number _ of _ wheels ' ) = = 2 ] if ( is _ bike ) vehicle . set _ attribute ( ' color ' , ' 255 , 0 , 0 ' ) \u7b14\u8bb0 \u67d0\u4e9b \u5c5e\u6027 \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u67e5\u770b \u3002 \u5c5e\u6027 \u6709 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 \u7c7b\u578b carla . ActorAttributeType \u53d8\u91cf \u3002 \u5b83 \u4ece \u679a\u4e3e \u5217\u8868 \u4e2d \u58f0\u660e \u5176 \u7c7b\u578b \u3002 \u6b64\u5916 \uff0c \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u8fd8 \u9644\u5e26 \u4e00\u4e2a \u63a8\u8350 \u63a8\u8350\u503c \u5217\u8868 \u3002 for attr in blueprint : if attr . is _ modifiable : blueprint . set _ attribute ( attr . id , random . choice ( attr . recommended _ values ) ) \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u4ed6\u4eec \u81ea\u5df1 \u7684 \u8f66\u8f86 \u3002 \u67e5\u770b \u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09 \u4ee5 \u4e86\u89e3 \u76f8\u5173 \u4fe1\u606f \u3002 \u8d21\u732e \u8d21\u732e\u8005 \u53ef\u4ee5 \u5c06 \u4ed6\u4eec \u7684 \u65b0 \u5185\u5bb9 \u6dfb\u52a0 \u5230 Carla \u3002","title":"\u7ba1\u7406 \u84dd \u56fe\u5e93"},{"location":"core_actors/#_4","text":"\u91cd\u8981 \u672c \u8282 \u63d0\u5230 \u4e86 \u5173\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 Python API \u63d0\u4f9b commands \uff0c \u4ee5\u4fbf \u5728 \u4e00\u4e2a \u6846\u67b6 \u4e2d \u5e94\u7528 \u4e00\u6279 \u6700 \u5e38\u89c1 \u7684 \u547d\u4ee4 \u3002","title":"\u53c2\u4e0e\u8005 \u751f\u547d\u5468\u671f"},{"location":"core_actors/#_5","text":"\u4e16\u754c \u5bf9\u8c61 \u8d1f\u8d23 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u8ddf\u8e2a \u8fd9\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u751f\u6210 \u53ea \u9700\u8981 \u4e00\u5f20 \u84dd\u56fe \u548c \u4e00\u4e2a carla . Transform \u8bf4\u660e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u4e16\u754c \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u629b\u51fa \u4e00\u4e2a \u5f02\u5e38 \u3002 try _ spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u8fd4\u56de None \u3002 transform = Transform ( Location ( x = 230 , y = 195 , z = 40 ) , Rotation ( yaw = 180 ) ) actor = world . spawn _ actor ( blueprint , transform ) \u91cd\u8981 Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf \u3002 \u8bb0\u4f4f \uff1a carla . Rotation \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5b9a\u4e49 \u4e3a \u201c \u4fef\u4ef0 \u3001 \u504f\u822a \u3001 \u7ffb\u6eda \u201d ( pitch , yaw , roll ) \uff0c \u4e0e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u201c \u7ffb\u6eda \u3001 \u4fef\u4ef0 \u3001 \u504f\u822a \u201d ( roll , pitch , yaw ) \u4e0d\u540c \u3002 \u5982\u679c \u5728 \u6307\u5b9a \u4f4d\u7f6e \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u5c06 \u4e0d\u4f1a \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u65e0\u8bba \u8fd9\u79cd \u60c5\u51b5 \u53d1\u751f \u5728 \u9759\u6001 \u5bf9\u8c61 \u8fd8\u662f \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8eab\u4e0a \u3002 \u53ef\u4ee5 \u5c1d\u8bd5 \u907f\u514d \u8fd9\u4e9b \u4e0d \u5e0c\u671b \u7684 \u751f\u6210 \u78b0\u649e \u3002 map . get _ spawn _ points ( ) \u5bf9\u4e8e \u8f66\u8f86 \u3002 \u8fd4\u56de \u63a8\u8350 \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) world . get _ random _ location ( ) \u5bf9\u4e8e \u884c\u4eba \u3002 \u8fd4\u56de \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u7684 \u968f\u673a \u70b9 \u3002 \u540c\u6837 \u7684 \u65b9\u6cd5 \u4e5f \u7528\u4e8e \u4e3a \u884c\u4eba \u8bbe\u7f6e \u76ee\u6807 \u4f4d\u7f6e \u3002 spawn _ point = carla . Transform ( ) spawn _ point . location = world . get _ random _ location _ from _ navigation ( ) \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u751f\u6210 \u65f6 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8ddf\u968f \u4ed6\u4eec \u6240 \u4f9d\u9644 \u7684 \u7236\u7ea7 \u3002 \u8fd9 \u5bf9\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7279\u522b \u6709\u7528 \u3002 \u8be5 \u9644\u4ef6 \u53ef\u4ee5 \u662f \u521a\u6027 \u7684 \uff08 \u9002\u5408 \u68c0\u7d22 \u7cbe\u786e \u6570\u636e \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u6839\u636e \u5176\u7236 \u7ea7 \u7684 \u60c5\u51b5 \u8fdb\u884c \u8f7b\u677e \u79fb\u52a8 \u3002 \u5b83 \u7531 \u8f85\u52a9 \u7c7b carla . AttachmentType \u5b9a\u4e49 \u3002 \u4e0b \u4e00\u4e2a \u793a\u4f8b \u5c06 \u76f8\u673a \u521a\u6027 \u5730 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u56e0\u6b64 \u5b83\u4eec \u7684 \u76f8\u5bf9 \u4f4d\u7f6e \u4fdd\u6301 \u56fa\u5b9a \u3002 camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle , carla . AttachmentType . Rigid ) \u91cd\u8981 \u5f53 \u751f\u6210 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u63d0\u4f9b \u7684 \u53d8\u6362 \u5fc5\u987b \u76f8\u5bf9 \u4e8e \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e00\u65e6 \u751f\u6210 \uff0c \u4e16\u754c \u5bf9\u8c61 \u5c31 \u4f1a \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u5217\u8868 \u4e2d \u3002 \u8fd9 \u53ef\u4ee5 \u5f88 \u5bb9\u6613 \u5730 \u641c\u7d22 \u6216 \u8fed\u4ee3 \u3002 actor _ list = world . get _ actors ( ) # \u6839\u636e id \u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 actor = actor _ list . find ( id ) # \u6253\u5370 \u4e16\u754c \u4e0a \u6240\u6709 \u9650\u901f \u6807\u5fd7 \u7684 \u4f4d\u7f6e \u3002 for speed _ sign in actor _ list . filter ( ' traffic . speed _ limit . * ' ) : print ( speed _ sign . get _ location ( ) )","title":"\u751f\u6210"},{"location":"core_actors/#_6","text":"carla . Actor \u4e3b\u8981 \u7531 get ( ) \u548c set ( ) \u65b9\u6cd5 \u7ec4\u6210 \uff0c \u7528\u4e8e \u7ba1\u7406 \u5730\u56fe \u5468\u56f4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 print ( actor . get _ acceleration ( ) ) print ( actor . get _ velocity ( ) ) location = actor . get _ location ( ) location . z + = 10.0 actor . set _ location ( location ) \u53ef\u4ee5 \u7981\u7528 \u6f14\u5458 \u7684 \u7269\u7406 \u7279\u6027 \u4ee5 \u5c06 \u5176 \u51bb\u7ed3 \u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 actor . set _ simulate _ physics ( False ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8fd8\u6709 \u4ed6\u4eec \u7684 \u84dd\u56fe \u63d0\u4f9b \u7684 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u6709\u7528 \u3002 \u7b14\u8bb0 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u65b9\u6cd5 \u662f \u5f02\u6b65 \u5411 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53d1\u9001 \u8bf7\u6c42 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u89e3\u6790 \u5b83\u4eec \u7684 \u65f6\u95f4 \u6709\u9650 \u3002 \u4f7f\u7528 set ( ) \u65b9\u6cd5 \u6df9\u6ca1 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u79ef\u7d2f \u660e\u663e \u7684 \u5ef6\u8fdf \u3002","title":"\u5904\u7406"},{"location":"core_actors/#_7","text":"\u5f53 Python \u811a\u672c \u5b8c\u6210 \u65f6 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u4f1a \u88ab \u9500\u6bc1 \u3002 \u4ed6\u4eec \u5fc5\u987b \u660e\u786e \u5730 \u6467\u6bc1 \u81ea\u5df1 \u3002 destroyed _ sucessfully = actor . destroy ( ) # \u5982\u679c \u6210\u529f \u8fd4\u56de True \u91cd\u8981 \u9500\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f1a \u963b\u585e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u76f4\u5230 \u8be5 \u8fc7\u7a0b \u5b8c\u6210 \u3002","title":"\u6467\u6bc1"},{"location":"core_actors/#_8","text":"","title":"\u53c2\u4e0e\u8005 \u7c7b\u578b"},{"location":"core_actors/#_9","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4ed6\u4eec \u6709 \u81ea\u5df1 \u7684 \u90e8\u5206 \uff0c \u7b2c\u56db \u90e8\u5206 . \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u3002 \u73b0\u5728 \uff0c \u6211\u4eec \u53ea \u770b \u4e00\u4e0b \u5e38\u89c1 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u5468\u671f \u3002 \u6b64 \u793a\u4f8b \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5176 \u8fde\u63a5 \u5230 \u8f66\u8f86 \uff0c \u5e76 \u544a\u8bc9 \u76f8\u673a \u5c06 \u751f\u6210 \u7684 \u56fe\u50cf \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 camera _ bp = blueprint _ library . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle ) camera . listen ( lambda image : image . save _ to _ disk ( ' output / % 06d . png ' % image . frame ) ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e5f \u6709 \u84dd\u56fe \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u5b89\u88c5 \u5728 \u8f66\u8f86 \u4e0a\u4ee5 \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76d1\u542c \u6570\u636e \u3002 \u6536\u5230 \u6570\u636e \u540e \uff0c \u5b83\u4eec \u4f1a \u8c03\u7528 \u7528 Lambda \u8868\u8fbe \u8fbe\u5f0f \u8868\u8fbe\u5f0f \u63cf\u8ff0 \u7684 \u51fd\u6570 ( \u63d0\u4f9b \u7684 \u94fe\u63a5 \u4e2d \u7684 6.14 ) \u3002","title":"\u4f20\u611f\u5668"},{"location":"core_actors/#_10","text":"\u7531 \u865a\u5e7b \u5f15\u64ce \u653e\u7f6e \u4ee5 \u63d0\u4f9b \u6e38\u620f \u5185 \u7684 \u89c6\u89d2 \u3002 \u5b83 \u53ef \u7528\u4e8e \u79fb\u52a8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \u7684 \u89c6\u89d2 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u79fb\u52a8 \u89c2\u4f17 \u6f14\u5458 \uff0c \u5c06 \u89c6\u89d2 \u6307\u5411 \u6240 \u9700 \u7684 \u8f66\u8f86 \u3002 spectator = world . get _ spectator ( ) transform = vehicle . get _ transform ( ) spectator . set _ transform ( carla . Transform ( transform . location + carla . Location ( z = 50 ) , carla . Rotation ( pitch = - 90 ) ) )","title":"\u89c2\u5bdf\u8005"},{"location":"core_actors/#_11","text":"\u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Carela \u4e2d \u53ea\u6709 \u505c\u9760 \u505c\u9760\u70b9 \u3001 \u8ba9 \u884c \u8def\u7ebf \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u88ab \u89c6\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5176\u4f59 \u7684 OpenDRIVE \u6807\u5fd7 \u53ef \u901a\u8fc7 API \u4f5c\u4e3a \u5730\u6807 \uff08 carla . Landmark \uff09 \u8fdb\u884c \u8bbf\u95ee \u3002 \u4ed6\u4eec \u7684 \u4fe1\u606f \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u5b9e\u4f8b \u8bbf\u95ee \uff0c \u4f46 \u4ed6\u4eec \u5728 \u4eff\u771f \u4e2d \u5e76 \u4e0d \u4f5c\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b58\u5728 \u3002 \u5728 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u7b2c 3 \u90e8\u5206 \u5730\u56fe \u548c \u5bfc\u822a \u4e2d\u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u5730\u6807 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u3001 \u505c\u6b62 \u3001 \u8ba9 \u884c \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u65f6 \uff0c \u4f1a \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u81ea\u52a8 \u751f\u6210 \u3002 \u8fd9\u4e9b \u90fd \u65e0\u6cd5 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \uff0c \u56e0\u6b64 \u65e0\u6cd5 \u751f\u6210 \u3002 \u7b14\u8bb0 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 Carela \u5730\u56fe \u6ca1\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6216 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u8fd9\u4e9b \u662f \u7531 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u624b\u52a8 \u653e\u7f6e \u7684 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u672a \u5728 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u672c\u8eab \u4e2d \u5b9a\u4e49 \uff0c \u5982\u4e0b \u9875 \u6240\u8ff0 \u3002 \u76f8\u53cd \uff0c \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . BoundingBox \u6765 \u5f71\u54cd \u5176\u4e2d \u7684 \u8f66\u8f86 \u3002 # \u83b7\u5f97 \u5f71\u54cd \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f if vehicle _ actor . is _ at _ traffic _ light ( ) : traffic _ light = vehicle _ actor . get _ traffic _ light ( ) \u8def\u53e3 \u8bbe\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u4e0e \u4efb\u4f55 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u4ed6\u4eec \u6709 \u81ea\u5df1 \u72ec\u7279 \u7684 ID \uff0c \u4f46 \u5bf9\u4e8e \u5c94\u8def \u53e3 \u4e5f \u6709 \u4e00\u4e2a \u4e00\u4e2a\u7ec4 \uff08 group \uff09 ID \u3002 \u540c \u4e00\u7ec4 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9075\u5faa \u4e00\u4e2a \u5faa\u73af \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e3a \u7eff\u8272 \uff0c \u800c \u5176\u4f59 \u7684 \u5219 \u4fdd\u6301 \u7ea2\u8272 \u3002 \u6d3b\u8dc3 \u7684 \u706f\u4f1a \u6301\u7eed \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u5448 \u7eff\u8272 \u3001 \u9ec4\u8272 \u548c \u7ea2\u8272 \uff0c \u56e0\u6b64 \u6709 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u6240\u6709 \u706f \u90fd \u662f \u7ea2\u8272 \u7684 \u3002 \u7136\u540e \uff0c \u4e0b \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5f00\u59cb \u5faa\u73af \uff0c \u524d \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e0e \u5176\u4f59 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e00\u8d77 \u51bb\u7ed3 \u3002 \u53ef\u4ee5 \u4f7f\u7528 API \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u6bcf\u4e2a \u72b6\u6001 \u82b1\u8d39 \u7684 \u79d2\u6570 \u4e5f \u662f \u5982\u6b64 \u3002 \u53ef\u80fd \u7684 \u72b6\u6001 \u7528 carla . TrafficLightState \u63cf\u8ff0 \u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u3002 # \u4ea4\u901a \u4ea4\u901a\u706f \u4ece\u7ea2 \u53d8\u7eff if traffic _ light . get _ state ( ) = = carla . TrafficLightState . Red : traffic _ light . set _ state ( carla . TrafficLightState . Green ) traffic _ light . set _ set _ green _ time ( 4.0 ) \u7b14\u8bb0 \u53ea\u6709 \u5f53 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4e3a \u7ea2\u8272 \u65f6 \uff0c \u8f66\u8f86 \u624d \u4f1a \u610f\u8bc6 \u5230 \u4ea4\u901a \u4ea4\u901a\u706f \u3002","title":"\u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a\u706f"},{"location":"core_actors/#_12","text":"carla . Vehicle \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u6f14\u5458 \u3002 \u5b83 \u91c7\u7528 \u4e86 \u4eff\u771f \u8f6e\u5f0f \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u7279\u6b8a \u5185\u90e8 \u7ec4\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5e94\u7528 \u56db\u79cd \u4e0d\u540c \u7684 \u63a7\u4ef6 \u6765 \u5b9e\u73b0 \u7684 \uff1a carla . VehicleControl \u63d0\u4f9b \u6cb9\u95e8 \u3001 \u8f6c\u5411 \u3001 \u5239\u8f66 \u7b49 \u9a7e\u9a76 \u547d\u4ee4 \u7684 \u8f93\u5165 \u3002 vehicle . apply _ control ( carla . VehicleControl ( throttle = 1.0 , steer = - 1.0 ) ) carla . VehiclePhysicsControl \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u7269\u7406 \u5c5e\u6027 \u5e76 \u5305\u542b \u53e6\u5916 \u4e24\u4e2a \u63a7\u5236 \u63a7\u5236\u5668 \uff1a carla . GearPhysicsControl \u63a7\u5236 \u9f7f\u8f6e \u3002 carla . WheelPhysicsControl \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u7279\u5b9a \u63a7\u5236 \u3002 vehicle . apply _ physics _ control ( carla . VehiclePhysicsControl ( max _ rpm = 5000.0 , center _ of _ mass = carla . Vector3D ( 0.0 , 0.0 , 0.0 ) , torque _ curve = [ [ 0 , 400 ] , [ 5000 , 400 ] ] ) ) \u8f66\u8f86 \u6709 \u4e00\u4e2a carla . BoundingBox \u5c01\u88c5 \u5b83\u4eec \u3002 \u8be5 \u8fb9\u754c \u6846 \u5141\u8bb8 \u5c06 \u7269\u7406 \u539f\u7406 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u5e76 \u68c0\u6d4b \u78b0\u649e \u3002 box = vehicle . bounding _ box print ( box . location ) # \u76f8\u5bf9 \u8f66\u8f86 \u7684 \u4f4d\u7f6e print ( box . extent ) # XYZ half - box extents in meters . \u901a\u8fc7 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u53c2\u6570 \u53ef\u4ee5 \u6539\u5584 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u9ed8\u8ba4 \u7684 \u8f6e\u5b50 \u7269\u7406 \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u4f7f\u7528 \u4ece\u8f74\u5230 \u5730\u677f \u7684 \u5355 \u5c04\u7ebf \u6295\u5c04 \uff0c \u4f46\u662f \u5f53 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u65f6 \uff0c \u5c06 \u68c0\u67e5 \u8f6e\u5b50 \u7684 \u6574\u4e2a \u4f53\u79ef \u662f\u5426 \u53d1\u751f \u78b0\u649e \u3002 \u5b83 \u53ef\u4ee5 \u8fd9\u6837 \u542f\u7528 \uff1a physics _ control = vehicle . get _ physics _ control ( ) physics _ control . use _ sweep _ wheel _ collision = True vehicle . apply _ physics _ control ( physics _ control ) \u8f66\u8f86 \u8fd8 \u5305\u62ec \u5176 \u72ec\u6709 \u7684 \u5176\u4ed6 \u529f\u80fd \uff1a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u4f1a \u5c06 \u8f66\u8f86 \u8ba2\u9605 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u57ce\u5e02 \u72b6\u51b5 \u3002 \u8be5 \u6a21\u5757 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4e0d\u662f \u57fa\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u3002 vehicle . set _ autopilot ( True ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 \u548c \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \uff0c \u914d\u5907 \u96c6\u6210 \u8f66\u706f \u7684 \u8f66\u8f86 \u5982\u4e0b \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff1a \u6240\u6709 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u90fd \u6709 \u524d\u540e \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \uff1a \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \uff1a \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 Impala \u3001 \u9053\u5947 \u8b66\u8f66 \u3001 \u9053\u5947 Charger \u3001 \u5965\u8fea e - tron \u3001 \u6797\u80af 2017 \u5e74 \u548c 2020 \u5e74 \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Model 3 \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Cybertruck \u3001 \u5927\u4f17 T2 \u548c \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af C \u7ea7 \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights )","title":"\u8f66\u8f86"},{"location":"core_actors/#_13","text":"carla . Walker \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u8f66\u8f86 \u7c7b\u4f3c \u3002 \u5bf9 \u5b83\u4eec \u7684 \u63a7\u5236 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u3002 carla . WalkerControl \u4ee5 \u4e00\u5b9a \u7684 \u65b9\u5411 \u548c \u901f\u5ea6 \u79fb\u52a8 \u884c\u4eba \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u4ed6\u4eec \u8df3\u8dc3 \u3002 carla . WalkerBoneControl \u63d0\u4f9b \u5bf9 \u4e09\u7ef4 \u9aa8\u67b6 \u7684 \u63a7\u5236 \u3002 \u672c \u6559\u7a0b \u89e3\u91ca \u4e86 \u5982\u4f55 \u63a7\u5236 \u5b83 \u3002 \u884c\u4eba \u53ef\u4ee5 \u7531 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u3002 \u4ed6\u4eec \u6ca1\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u3002 carla . WalkerAIController \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5b83 \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5468\u56f4 \u79fb\u52a8 \u3002 walker _ controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) world . SpawnActor ( walker _ controller _ bp , carla . Transform ( ) , parent _ walker ) \u7b14\u8bb0 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u65e0\u5f62 \u7684 \uff0c \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u4e0d\u4f1a \u51fa\u73b0 \u5728 \u73b0\u573a \u3002 \u6b64\u5916 \uff0c \u4f4d\u7f6e ( 0 , 0 , 0 ) \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u4f4d\u7f6e \u4e0d\u4f1a \u5bfc\u81f4 \u78b0\u649e \u3002 \u6bcf\u4e2a \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u90fd \u9700\u8981 \u521d\u59cb \u521d\u59cb\u5316 \u3001 \u76ee\u6807 \u548c \u53ef\u9009 \u7684 \u901f\u5ea6 \u3002 \u505c\u6b62 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u76f8\u540c \u3002 ai _ controller . start ( ) ai _ controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) ai _ controller . set _ max _ speed ( 1 + random . random ( ) ) # \u5728 1 \u7c73 \u6bcf\u79d2 \u5230 2 \u7c73 \u6bcf\u79d2 \u4e4b\u95f4 \uff08 \u9ed8\u8ba4 \u662f 1.4 \u7c73 \u6bcf\u79d2 \uff09 ... ai _ controller . stop ( ) \u5f53 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5230\u8fbe \u76ee\u6807 \u4f4d\u7f6e \u65f6 \uff0c \u4ed6\u4eec \u4f1a \u81ea\u52a8 \u6b65\u884c \u5230 \u53e6 \u4e00\u4e2a \u968f\u673a \u70b9 \u3002 \u5982\u679c \u65e0\u6cd5 \u5230\u8fbe \u76ee\u6807 \u70b9 \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5c06 \u524d\u5f80 \u8ddd\u79bb \u5f53\u524d \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u70b9 \u3002 carla . Client \u4e2d \u7684 \u4e00\u4e2a \u7247\u6bb5 \u4f7f\u7528 \u6279\u6b21 \u751f\u6210 \u5927\u91cf \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5e76 \u8ba9 \u5b83\u4eec \u56db\u5904 \u6e38\u8361 \u3002 \u91cd\u8981 \u8981 \u6467\u6bc1 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u884c\u4eba \uff0c \u8bf7 \u505c\u6b62 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u5173\u4e8e Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8fd9 \u5c31\u662f \u4e00\u4e2a \u603b\u7ed3 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 Carla \u7684 \u5730\u56fe \u3001 \u9053\u8def \u548c \u4ea4\u901a \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u6216 \u8bbf\u95ee \u8bba\u575b \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b 3rd . \u5730\u56fe \u548c \u5bfc\u822a","title":"\u884c\u4eba"},{"location":"core_map/","text":"\u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u5728 \u8ba8\u8bba \u4e86 \u4e16\u754c \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u540e \uff0c \u662f \u65f6\u5019 \u5c06 \u6240\u6709 \u5185\u5bb9 \u90fd \u653e\u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u5e76 \u4e86\u89e3 \u5730\u56fe \u4ee5\u53ca \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5982\u4f55 \u5bfc\u822a \u3002 \u5730\u56fe \u6539\u53d8 \u5730\u56fe \u5730\u6807 \u8f66\u9053 \u8def\u53e3 \u822a\u70b9 \u73af\u5883 \u5bf9\u8c61 \u5728 Carla \u4e2d \u5bfc\u822a \u901a\u8fc7 \u822a\u8def \u70b9 \u5bfc\u822a \u751f\u6210 \u5730\u56fe \u5bfc\u822a Carla \u5730\u56fe \u975e \u5206\u5c42 \u5730\u56fe \u5206\u5c42 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 painting \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5 \u5730\u56fe \u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u5b9a\u4e49 \u3002 \u5730\u56fe \u7684 \u9053\u8def \u5b9a\u4e49 \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \uff0c \u8fd9\u662f \u4e00\u79cd \u6807\u51c6 \u6807\u51c6\u5316 \u7684 \u5e26 \u6ce8\u91ca \u7684 \u9053\u8def \u5b9a\u4e49 \u683c\u5f0f \u3002 OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u9053\u8def \u3001 \u8f66\u9053 \u3001 \u8def\u53e3 \u7b49 \u65b9\u5f0f \u51b3\u5b9a \u4e86 Python API \u7684 \u529f\u80fd \u4ee5\u53ca \u51b3\u7b56 \u80cc\u540e \u7684 \u63a8\u7406 \u3002 Python API \u5145\u5f53 \u9ad8\u7ea7 \u67e5\u8be2 \u7cfb\u7edf \u6765 \u5bfc\u822a \u8fd9\u4e9b \u9053\u8def \u3002 \u5b83 \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u66f4 \u5e7f\u6cdb \u7684 \u5de5\u5177 \u5de5\u5177\u96c6 \u3002 \u6539\u53d8 \u5730\u56fe \u8981 \u6539\u53d8 \u5730\u56fe \uff0c \u4e16\u754c \u4e5f \u5fc5\u987b \u6539\u53d8 \u3002 \u5c06 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u91cd\u65b0 \u521b\u5efa \u4eff\u771f \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u4e16\u754c \u65b0\u4e16\u754c \u4e2d \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u4e5f \u53ef\u4ee5 \u66f4\u6539 \u5730\u56fe \u548c \u4e16\u754c \uff1a reload _ world ( ) \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u521b\u5efa \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 load _ world ( ) \u6539\u53d8 \u5f53\u524d \u5730\u56fe \u5e76 \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 world = client . load _ world ( ' Town01 ' ) \u6bcf\u4e2a \u5730\u56fe \u90fd \u6709 \u4e00\u4e2a \u4e0e \u5f53\u524d \u52a0\u8f7d \u7684 \u57ce\u5e02 \u540d\u79f0 \u5339\u914d \u7684 name \u5c5e\u6027 \uff0c \u4f8b\u5982 Town01 \u3002 \u8981 \u83b7\u53d6 \u53ef\u7528 \u5730\u56fe \u7684 \u5217\u8868 \uff1a print ( client . get _ available _ maps ( ) ) \u5730\u6807 OpenDRIVE \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u5c06 \u8f6c\u6362 \u4e3a Carla \uff0c \u4f5c\u4e3a \u53ef \u4ece API \u67e5\u8be2 \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u4ee5\u4e0b \u65b9\u6cd5 \u548c \u7c7b \u53ef \u7528\u4e8e \u64cd\u4f5c \u548c \u4f7f\u7528 \u5730\u6807 \u5bf9\u8c61 \uff1a carla . Landmark \u5bf9\u8c61 \u4ee3\u8868 OpenDRIVE \u4fe1\u53f7 \u3002 \u8be5\u7c7b \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u63cf\u8ff0 \u4e86 \u5730\u6807 \u53ca\u5176 \u5f71\u54cd \u533a\u57df \u3002 carla . LandmarkOrientation \u8bf4\u660e \u5730\u6807 \u76f8\u5bf9 \u4e8e \u9053\u8def \u51e0\u4f55 \u5b9a\u4e49 \u7684 \u65b9\u5411 \u3002 carla . LandmarkType \u5305\u542b \u5e38\u89c1 \u7684 \u5730\u6807 \u7c7b\u578b \uff0c \u4ee5\u4fbf \u4e8e \u8f6c\u6362 \u4e3a OpenDRIVE \u7c7b\u578b \u3002 carla . Waypoint \u53ef\u4ee5 \u83b7\u5f97 \u4f4d\u4e8e \u5176 \u524d\u65b9 \u4e00\u5b9a \u8ddd\u79bb \u7684 \u5730\u6807 \u3002 \u53ef\u4ee5 \u6307\u5b9a \u8981 \u83b7\u53d6 \u7684 \u5730\u6807 \u7c7b\u578b \u3002 carla . Map \u68c0\u7d22 \u5730\u6807 \u96c6 \u3002 \u5b83 \u53ef\u4ee5 \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \uff0c \u6216\u8005 \u5177\u6709 \u5171\u540c ID \u3001 \u7c7b\u578b \u6216\u7ec4 \u7684 \u5730\u6807 \u3002 carla . World \u5145\u5f53 \u5730\u6807 \u3001 \u4eff\u771f \u4e2d \u4ee3\u8868 \u4ed6\u4eec \u7684 carla . TrafficSign \u548c carla . TrafficLight \u4e4b\u95f4 \u7684 \u4e2d\u95f4 \u3002 my _ waypoint . get _ landmarks ( 200.0 , True ) \u8def\u5f84 \u70b9 carla . Waypoint \u662f Carla \u4e16\u754c \u4e2d \u7684 \u4e09\u7ef4 \u6709 \u5411 \u70b9 \uff0c \u5bf9\u5e94 \u4e8e OpenDRIVE \u8f66\u9053 \u3002 \u4e0e \u8def\u5f84 \u70b9 \u76f8\u5173 \u7684 \u6240\u6709 \u4e8b\u60c5 \u90fd \u53d1\u751f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1b \u53ea \u9700 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e00\u6b21 \u5373\u53ef \u83b7\u53d6 \u5305\u542b \u822a\u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u6bcf\u4e2a \u8def\u5f84 \u70b9 \u90fd \u5305\u542b \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u8bf4\u660e \u5176 \u5728 \u5730\u56fe \u4e0a \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5305\u542b \u8be5 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 \u7684 \u65b9\u5411 \u3002 \u53d8\u91cf road _ id , section _ id , lane _ id \u548c s \u5bf9\u5e94 OpenDRIVE \u9053\u8def \u3002 \u8def\u5f84 \u70b9 id \u7684 \u662f \u7531 \u8fd9 \u56db\u4e2a \u503c \u7684 \u54c8\u5e0c \u7ec4\u5408 \u6784\u9020 \u7684 \u3002 \u7b14\u8bb0 \u540c\u4e00 \u9053\u8def \u5185 \u8ddd\u79bb \u5c0f\u4e8e 2 \u5398\u7c73 \u7684 \u8def\u70b9 \u5171\u4eab \u76f8\u540c \u7684 \u8def\u70b9 id \u3002 \u8def\u5f84 \u70b9 \u4fdd\u5b58 \u6709\u5173 \u5305\u542b \u8be5 \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7684 \u4fe1\u606f \u3002 \u6b64 \u4fe1\u606f \u5305\u62ec \u8f66\u9053 \u7684 \u5de6 \u8f66\u9053 \u548c \u53f3 \u8f66\u9053 \u6807\u8bb0 \u3001 \u7528\u4e8e \u786e\u5b9a \u5176 \u662f\u5426 \u4f4d\u4e8e \u8def\u53e3 \u5185 \u7684 \u5e03\u5c14 \u5e03\u5c14\u503c \u3001 \u8f66\u9053 \u7c7b\u578b \u3001 \u5bbd\u5ea6 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u3002 # \u4ece \u8def\u5f84 \u70b9 \u8bbf\u95ee \u8f66\u9053 \u4fe1\u606f inside _ junction = waypoint . is _ junction ( ) width = waypoint . lane _ width right _ lm _ color = waypoint . right _ lane _ marking . color \u8f66\u9053 OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u7684 \u901a\u9053 \u7c7b\u578b \u5c06 carla . LaneType \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u8f6c\u6362 \u4e3a API \u3002 \u8f66\u9053 \u5468\u56f4 \u7684 \u8f66\u9053 \u6807\u8bb0 \u53ef \u901a\u8fc7 carla . LaneMarking \u8bbf\u95ee \u3002 \u8f66\u9053 \u6807\u8bb0 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53d8\u91cf \u5b9a\u4e49 \uff1a color : carla . LaneMarkingColor \u662f \u5b9a\u4e49 \u6807\u8bb0 \u989c\u8272 \u7684 \u679a\u4e3e \u503c \u3002 lane _ change : carla . LaneChange \u8bf4\u660e \u8f66\u9053 \u662f\u5426 \u5141\u8bb8 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u4e24\u8005 \u90fd \u5141\u8bb8 \u6216 \u4e0d \u5141\u8bb8 \u3002 type : carla . LaneMarkingType \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u6807\u8bb0 \u7c7b\u578b \u7684 \u679a\u4e3e \u503c \u3002 width : \u5b9a\u4e49 \u6807\u8bb0 \u7684 \u539a\u5ea6 \u3002 \u4e0b\u9762 \u7684 \u793a\u4f8b \u663e\u793a \u4e86 \u83b7\u53d6 \u6709\u5173 \u7279\u5b9a \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7c7b\u578b \u3001 \u8f66\u9053 \u6807\u8bb0 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u7684 \u4fe1\u606f \uff1a # \u83b7\u5f97 \u8def\u5f84 \u70b9 \u8f66\u9053 \u7c7b\u578b lane _ type = waypoint . lane _ type # \u83b7\u5f97 \u5de6 \u8f66\u9053 \u6807\u8bb0 \u7684 \u7c7b\u578b left _ lanemarking _ type = waypoint . left _ lane _ marking . type ( ) # \u83b7\u5f97 \u8be5 \u8def\u5f84 \u70b9 \u53ef \u5f97 \u7684 \u8f66\u9053 \u6539\u53d8 lane _ change = waypoint . lane _ change \u8def\u53e3 carla . Junction \u4ee3\u8868 OpenDRIVE \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u3002 \u6b64\u7c7b \u5305\u542b \u5e26\u6709 \u8fb9\u754c \u6846 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \uff0c \u7528\u4e8e \u8bc6\u522b \u5176\u4e2d \u7684 \u8f66\u9053 \u6216 \u8f66\u8f86 \u3002 \u8be5 carla . Junction \u7c7b \u5305\u542b get _ waypoints \u4e3a \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6bcf\u4e2a \u8f66\u9053 \u8fd4\u56de \u4e00\u5bf9 \u8def\u70b9 \u7684 \u65b9\u6cd5 \u3002 \u6bcf \u5bf9 \u4f4d\u4e8e \u4ea4\u754c \u4ea4\u754c\u5904 \u8fb9\u754c \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 waypoints _ junc = my _ junction . get _ waypoints ( ) \u73af\u5883 \u5bf9\u8c61 Carla \u5730\u56fe \u4e0a \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u90fd \u6709 \u4e00\u7ec4 \u5173\u8054 \u7684 \u53d8\u91cf \uff0c \u53ef\u4ee5 \u5728 \u6b64 \u5904 \u627e\u5230 \u8fd9\u4e9b \u53d8\u91cf \u3002 \u8fd9\u4e9b \u53d8\u91cf \u4e2d \u5305\u542b \u4e00\u4e2a \u552f\u4e00 ID \uff0c \u53ef \u7528\u4e8e \u5207\u6362 \u8be5 \u5bf9\u8c61 \u5728 \u5730\u56fe \u4e0a \u7684 \u53ef\u89c1 \u6027 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u6839\u636e \u6bcf\u4e2a \u73af\u5883 \u5bf9\u8c61 \u7684 \u8bed\u4e49 \u6807\u7b7e \u83b7\u53d6 \u5176 ID \uff1a # \u83b7\u5f97 \u4e16\u754c \u4e2d \u7684 \u5efa\u7b51 world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # \u8bbf\u95ee \u5404\u4e2a \u5efa\u7b51 IDs \u5e76 \u4fdd\u5b58 \u5728 \u96c6\u5408 \u5f53\u4e2d building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # \u5207\u6362 \u5efa\u7b51 \u4e3a \u4e0d \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , False ) # \u5207\u6362 \u5efa\u7b51 \u4e3a \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , True ) \u67e5\u770b \u5207\u6362 \u4e0d\u540c \u5bf9\u8c61 \u7684 \u793a\u4f8b \uff1a \u5728 Carla \u4e2d \u5bfc\u822a Carla \u4e2d \u7684 \u5bfc\u822a \u662f \u901a\u8fc7 Waypoint API \uff08 \u6765\u81ea carla . Waypoint \u548c carla . Map \u7684 \u65b9\u6cd5 \u7ec4\u5408 \uff09 \u8fdb\u884c \u7ba1\u7406 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u9996\u5148 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4ee5 \u68c0\u7d22 \u5305\u542b \u8def\u5f84 \u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u4e00\u6b21 \uff0c \u6240\u6709 \u540e\u7eed \u67e5\u8be2 \u90fd \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6267\u884c \u3002 \u901a\u8fc7 \u8def\u5f84 \u70b9 \u5bfc\u822a Waypoint API \u516c\u5f00 \u4e86 \u5141\u8bb8 \u8def\u5f84 \u70b9 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u5e76 \u6784\u5efa \u6cbf \u9053\u8def \u4f9b \u8f66\u8f86 \u5bfc\u822a \u7684 \u8def\u5f84 \u7684 \u65b9\u6cd5 \uff1a next ( d ) \u5728 \u8f66\u9053 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb d \u5185 \u7684 \u822a\u8def \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 previous ( d ) \u5728 \u8f66\u9053 \u76f8\u53cd \u7684 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb \u5c0f\u4e8e d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u8def\u5f84 \u70b9 \u3002 next _ until _ lane _ end ( d ) \u548c previous _ until _ lane _ start ( d ) \u8fd4\u56de \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5217\u8868 \u5206\u522b \u4ece \u5f53\u524d \u8def\u5f84 \u70b9\u5230 \u5176 \u8f66\u9053 \u7684 \u7ec8\u70b9 \u548c \u8d77\u70b9 \u3002 get _ right _ lane ( ) \u548c get _ left _ lane ( ) \u8fd4\u56de \u76f8\u90bb \u8f66\u9053 \u4e2d \u7684 \u7b49 \u8def\u5f84 \u70b9 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u627e\u5230 \u53f3 / \u5de6 \u8f66\u9053 \u4e0a \u7684 \u4e0b \u4e00\u4e2a \u8def\u70b9 \u5e76 \u79fb\u52a8 \u5230 \u8be5 \u8def\u70b9 \u6765 \u8fdb\u884c \u53d8\u9053 \u64cd\u4f5c \u3002 # \u627e\u5230 \u524d\u9762 2 \u7c73 \u7684 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9 waypoint = waypoint . next ( 2.0 ) \u751f\u6210 \u5730\u56fe \u5bfc\u822a \u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u8bf7\u6c42 \u53d1\u51fa\u8bf7\u6c42 \u6765 \u83b7\u53d6 . xodr \u5730\u56fe \u6587\u4ef6 \u5e76 \u5c06 \u5176 \u89e3\u6790 \u4e3a carla . Map \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u505a \u4e00\u6b21 \u3002 \u83b7\u53d6 \u5730\u56fe \u5bf9\u8c61 \uff1a map = world . get _ map ( ) \u5730\u56fe \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u521b\u5efa \u8f66\u8f86 \u7684 \u63a8\u8350 \u751f\u6210 \u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \u83b7\u53d6 \u8fd9\u4e9b \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \uff0c \u6bcf\u4e2a \u751f\u6210 \u70b9 \u90fd \u5305\u542b carla . Transform \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u751f\u6210 \u70b9 \u53ef\u80fd \u5df2 \u88ab \u5360\u7528 \uff0c \u4ece\u800c \u5bfc\u81f4 \u7531\u4e8e \u78b0\u649e \u800c \u5bfc\u81f4 \u8f66\u8f86 \u521b\u5efa \u5931\u8d25 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u83b7\u53d6 \u8ddd \u7279\u5b9a \u4f4d\u7f6e \u6216 \u7279\u5b9a road _ id \u3001 lane _ id \u548c s \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u822a\u8def \u70b9 \u4ee5\u53ca \u5730\u56fe OpenDRIVE \u5b9a\u4e49 \u4e2d \u7684 \u503c\u6765 \u5f00\u59cb \u4f7f\u7528 \u8def\u5f84 \u70b9 \uff1a # \u9a7e\u9a76 \u8f66\u9053 \u6216 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e2d\u5fc3 \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \u3002 waypoint01 = map . get _ waypoint ( vehicle . get _ location ( ) , project _ to _ road = True , lane _ type = ( carla . LaneType . Driving | carla . LaneType . Sidewalk ) ) # \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \uff0c \u540c\u65f6 \u6307\u5b9a OpenDRIVE \u53c2\u6570 \u3002 waypoint02 = map . get _ waypoint _ xodr ( road _ id , lane _ id , s ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c55\u793a \u4e86 \u5982\u4f55 \u751f\u6210 \u8def\u70b9 \u96c6\u5408 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u57ce\u5e02 \u8f66\u9053 \u3002 \u8fd9 \u5c06 \u4e3a \u6574\u4e2a \u5730\u56fe \u4e0a \u7684 \u6bcf\u6761 \u9053\u8def \u548c \u8f66\u9053 \u521b\u5efa \u8def\u5f84 \u70b9 \u3002 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u5927\u7ea6 \u4e3a 2 \u7c73 \uff1a waypoint _ list = map . generate _ waypoints ( 2.0 ) \u8981 \u751f\u6210 \u9053\u8def \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \uff0c \u8bf7 \u4f7f\u7528 \u4e0b\u9762 \u7684 \u793a\u4f8b \u3002 \u8fd9 \u5c06 \u8fd4\u56de \u8def\u5f84 \u70b9 \u5bf9 \uff08 \u5143\u7ec4 \uff09 \u7684 \u5217\u8868 \u3002 \u6bcf \u5bf9 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u5143\u7d20 \u4e0e \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5143\u7d20 \u8fde\u63a5 \uff0c \u4e24\u8005 \u90fd \u5b9a\u4e49 \u4e86 \u5730\u56fe \u4e2d \u6bcf\u6761 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u6709\u5173 \u6b64 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 PythonAPI \u4e2d \u627e\u5230 \u3002 waypoint _ tuple _ list = map . get _ topology ( ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c06 carla . Transform \u8f6c\u6362 \u4e3a \u5730\u7406 \u7eac\u5ea6 \u5730\u7406\u7eac\u5ea6 \u548c \u7ecf\u5ea6 \u5750\u6807 \uff0c \u91c7\u7528 carla . GeoLocation \u7684 \u5f62\u5f0f \uff1a my _ geolocation = map . transform _ to _ geolocation ( vehicle . transform ) \u4f7f\u7528 \u4ee5\u4e0b \u793a\u4f8b \u5c06 OpenDRIVE \u683c\u5f0f \u7684 \u9053\u8def \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a info _ map = map . to _ opendrive ( ) Carla \u5730\u56fe Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d\u6709 \u516b\u4e2a \u57ce\u9547 \uff0c \u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u4e24\u79cd \u5730\u56fe \uff0c \u975e \u5206\u5c42 \u5730\u56fe \u548c \u5206\u5c42 \u5730\u56fe \u3002 \u56fe\u5c42 \u662f \u6307 \u5730\u56fe \u4e2d \u5206\u7ec4 \u7684 \u5bf9\u8c61 \uff0c \u7531 \u4ee5\u4e0b \u90e8\u5206 \u7ec4\u6210 \uff1a NONE \u5efa\u7b51 \u5efa\u7b51\u7269 \u8d34\u6807 \u53f6\u5b50 \u5730\u9762 \u505c\u653e \u7684 \u8f66\u8f86 \u7c92\u5b50 \u9053\u5177 \u8def\u706f \u5899\u58c1 \u5168\u90e8 \u975e \u5206\u5c42 \u5730\u56fe \u4e0b\u8868 \u663e\u793a \u4e86 \u975e \u5206\u5c42 \u5730\u56fe \uff08 \u5355\u51fb \u57ce\u9547 \u540d\u79f0 \u53ef \u67e5\u770b \u5e03\u5c40 \u7684 \u4fef\u89c6 \u89c6\u56fe \u4fef\u89c6\u56fe \uff09 \u3002 \u6240\u6709 \u56fe\u5c42 \u59cb\u7ec8 \u5b58\u5728 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5728 \u8fd9\u4e9b \u5730\u56fe \u4e2d \u6253\u5f00 \u6216 \u5173\u95ed \u3002 \u76f4\u5230 Carla 0.9 . 11 \u4e3a\u6b62 \uff0c \u8fd9\u4e9b \u662f \u552f\u4e00 \u53ef\u7528 \u7684 \u5730\u56fe \u7c7b\u578b \u3002 \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u751a\u81f3 \u521b\u5efa \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u65b0 \u5730\u56fe \u3002 \u57ce\u9547 \u6982\u62ec Town01 \u7531 \u201c T \u5b57 \u8def\u53e3 \u201d \u7ec4\u6210 \u7684 \u57fa\u672c \u57ce\u9547 \u5e03\u5c40 \u3002 Town02 \u548c Town01 \u7c7b\u4f3c \uff0c \u4f46\u662f \u66f4 \u5c0f \u3002 Town03 \u6700 \u590d\u6742 \u7684 \u57ce\u9547 \uff0c \u6709 5 \u8f66\u9053 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 \u73af\u5c9b \u3001 \u51f9\u51f8 \u4e0d\u5e73 \u51f9\u51f8\u4e0d\u5e73 \u3001 \u96a7\u9053 \u7b49 \u3002 Town04 \u6709 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5c0f\u9547 \u7684 \u65e0\u9650 \u5faa\u73af \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u957f \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u8f6c \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town10 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town11 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 Town13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 Town15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002 HUTB \u57fa\u4e8e \u6e56\u5357 \u5de5\u5546 \u5546\u5927 \u5927\u5b66 \u5de5\u5546\u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002 \u5206\u5c42 \u5730\u56fe \u5206\u5c42 \u5730\u56fe \u7684 \u5e03\u5c40 \u4e0e\u975e \u5206\u5c42 \u5730\u56fe \u76f8\u540c \uff0c \u4f46 \u53ef\u4ee5 \u5173\u95ed \u548c \u6253\u5f00 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u6709 \u4e00\u4e2a \u65e0\u6cd5 \u5173\u95ed \u7684 \u6700\u5c0f \u5e03\u5c40 \uff0c \u7531 \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7ec4\u6210 \u3002 \u5206\u5c42 \u5730\u56fe \u53ef\u4ee5 \u901a\u8fc7 \u540e\u7f00 _ Opt \u6765 \u6807\u8bc6 \uff0c \u4f8b\u5982 Town01 _ Opt \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u5730\u56fe \uff0c \u53ef\u4ee5 \u901a\u8fc7 Python API \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff1a # \u52a0\u8f7d \u57ce\u9547 01 \u7684 \u5206\u5c42 \u5730\u56fe \uff0c \u5e26\u6709 \u6700\u5c0f \u5e03\u5c40 \u52a0\u4e0a \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u505c\u653e \u7684 \u8f66\u8f86 world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # \u5173\u95ed \u6240\u6709 \u5efa\u7b51 world . unload _ map _ layer ( carla . MapLayer . Buildings ) # \u6253\u5f00 \u6240\u6709 \u5efa\u7b51 world . load _ map _ layer ( carla . MapLayer . Buildings ) \u67e5\u770b \u6309 \u987a\u5e8f \u52a0\u8f7d \u548c \u5378\u8f7d \u6240\u6709 \u5c42 \u7684 \u793a\u4f8b \uff1a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe Carla \u65e8\u5728 \u9488\u5bf9 \u4e13\u4e1a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fdb\u884c \u53ef \u6269\u5c55 \u548c \u9ad8\u5ea6 \u5b9a\u5236 \u3002 \u56e0\u6b64 \uff0c \u9664\u4e86 Carla \u4e2d \u73b0\u6709 \u7684 \u8bb8\u591a \u5730\u56fe \u548c \u8d44\u4ea7 \u4e4b\u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u548c \u5bfc\u5165 \u65b0 \u7684 \u5730\u56fe \u3001 \u9053\u8def \u7f51\u7edc \u548c \u8d44\u4ea7 \uff0c \u4ee5 \u586b\u5145 Carla \u4eff\u771f \u4e2d \u7684 \u5b9a\u5236 \u73af\u5883 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u6784\u5efa \u548c \u96c6\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6240 \u9700 \u7684 \u6b65\u9aa4 \uff1a \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a "},{"location":"core_map/#_1","text":"\u5728 \u8ba8\u8bba \u4e86 \u4e16\u754c \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u540e \uff0c \u662f \u65f6\u5019 \u5c06 \u6240\u6709 \u5185\u5bb9 \u90fd \u653e\u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u5e76 \u4e86\u89e3 \u5730\u56fe \u4ee5\u53ca \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5982\u4f55 \u5bfc\u822a \u3002 \u5730\u56fe \u6539\u53d8 \u5730\u56fe \u5730\u6807 \u8f66\u9053 \u8def\u53e3 \u822a\u70b9 \u73af\u5883 \u5bf9\u8c61 \u5728 Carla \u4e2d \u5bfc\u822a \u901a\u8fc7 \u822a\u8def \u70b9 \u5bfc\u822a \u751f\u6210 \u5730\u56fe \u5bfc\u822a Carla \u5730\u56fe \u975e \u5206\u5c42 \u5730\u56fe \u5206\u5c42 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 painting \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a"},{"location":"core_map/#_2","text":"\u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u5b9a\u4e49 \u3002 \u5730\u56fe \u7684 \u9053\u8def \u5b9a\u4e49 \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \uff0c \u8fd9\u662f \u4e00\u79cd \u6807\u51c6 \u6807\u51c6\u5316 \u7684 \u5e26 \u6ce8\u91ca \u7684 \u9053\u8def \u5b9a\u4e49 \u683c\u5f0f \u3002 OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u9053\u8def \u3001 \u8f66\u9053 \u3001 \u8def\u53e3 \u7b49 \u65b9\u5f0f \u51b3\u5b9a \u4e86 Python API \u7684 \u529f\u80fd \u4ee5\u53ca \u51b3\u7b56 \u80cc\u540e \u7684 \u63a8\u7406 \u3002 Python API \u5145\u5f53 \u9ad8\u7ea7 \u67e5\u8be2 \u7cfb\u7edf \u6765 \u5bfc\u822a \u8fd9\u4e9b \u9053\u8def \u3002 \u5b83 \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u66f4 \u5e7f\u6cdb \u7684 \u5de5\u5177 \u5de5\u5177\u96c6 \u3002","title":"\u5730\u56fe"},{"location":"core_map/#_3","text":"\u8981 \u6539\u53d8 \u5730\u56fe \uff0c \u4e16\u754c \u4e5f \u5fc5\u987b \u6539\u53d8 \u3002 \u5c06 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u91cd\u65b0 \u521b\u5efa \u4eff\u771f \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u4e16\u754c \u65b0\u4e16\u754c \u4e2d \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u4e5f \u53ef\u4ee5 \u66f4\u6539 \u5730\u56fe \u548c \u4e16\u754c \uff1a reload _ world ( ) \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u521b\u5efa \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 load _ world ( ) \u6539\u53d8 \u5f53\u524d \u5730\u56fe \u5e76 \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 world = client . load _ world ( ' Town01 ' ) \u6bcf\u4e2a \u5730\u56fe \u90fd \u6709 \u4e00\u4e2a \u4e0e \u5f53\u524d \u52a0\u8f7d \u7684 \u57ce\u5e02 \u540d\u79f0 \u5339\u914d \u7684 name \u5c5e\u6027 \uff0c \u4f8b\u5982 Town01 \u3002 \u8981 \u83b7\u53d6 \u53ef\u7528 \u5730\u56fe \u7684 \u5217\u8868 \uff1a print ( client . get _ available _ maps ( ) )","title":"\u6539\u53d8 \u5730\u56fe"},{"location":"core_map/#_4","text":"OpenDRIVE \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u5c06 \u8f6c\u6362 \u4e3a Carla \uff0c \u4f5c\u4e3a \u53ef \u4ece API \u67e5\u8be2 \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u4ee5\u4e0b \u65b9\u6cd5 \u548c \u7c7b \u53ef \u7528\u4e8e \u64cd\u4f5c \u548c \u4f7f\u7528 \u5730\u6807 \u5bf9\u8c61 \uff1a carla . Landmark \u5bf9\u8c61 \u4ee3\u8868 OpenDRIVE \u4fe1\u53f7 \u3002 \u8be5\u7c7b \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u63cf\u8ff0 \u4e86 \u5730\u6807 \u53ca\u5176 \u5f71\u54cd \u533a\u57df \u3002 carla . LandmarkOrientation \u8bf4\u660e \u5730\u6807 \u76f8\u5bf9 \u4e8e \u9053\u8def \u51e0\u4f55 \u5b9a\u4e49 \u7684 \u65b9\u5411 \u3002 carla . LandmarkType \u5305\u542b \u5e38\u89c1 \u7684 \u5730\u6807 \u7c7b\u578b \uff0c \u4ee5\u4fbf \u4e8e \u8f6c\u6362 \u4e3a OpenDRIVE \u7c7b\u578b \u3002 carla . Waypoint \u53ef\u4ee5 \u83b7\u5f97 \u4f4d\u4e8e \u5176 \u524d\u65b9 \u4e00\u5b9a \u8ddd\u79bb \u7684 \u5730\u6807 \u3002 \u53ef\u4ee5 \u6307\u5b9a \u8981 \u83b7\u53d6 \u7684 \u5730\u6807 \u7c7b\u578b \u3002 carla . Map \u68c0\u7d22 \u5730\u6807 \u96c6 \u3002 \u5b83 \u53ef\u4ee5 \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \uff0c \u6216\u8005 \u5177\u6709 \u5171\u540c ID \u3001 \u7c7b\u578b \u6216\u7ec4 \u7684 \u5730\u6807 \u3002 carla . World \u5145\u5f53 \u5730\u6807 \u3001 \u4eff\u771f \u4e2d \u4ee3\u8868 \u4ed6\u4eec \u7684 carla . TrafficSign \u548c carla . TrafficLight \u4e4b\u95f4 \u7684 \u4e2d\u95f4 \u3002 my _ waypoint . get _ landmarks ( 200.0 , True )","title":"\u5730\u6807"},{"location":"core_map/#_5","text":"carla . Waypoint \u662f Carla \u4e16\u754c \u4e2d \u7684 \u4e09\u7ef4 \u6709 \u5411 \u70b9 \uff0c \u5bf9\u5e94 \u4e8e OpenDRIVE \u8f66\u9053 \u3002 \u4e0e \u8def\u5f84 \u70b9 \u76f8\u5173 \u7684 \u6240\u6709 \u4e8b\u60c5 \u90fd \u53d1\u751f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1b \u53ea \u9700 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e00\u6b21 \u5373\u53ef \u83b7\u53d6 \u5305\u542b \u822a\u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u6bcf\u4e2a \u8def\u5f84 \u70b9 \u90fd \u5305\u542b \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u8bf4\u660e \u5176 \u5728 \u5730\u56fe \u4e0a \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5305\u542b \u8be5 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 \u7684 \u65b9\u5411 \u3002 \u53d8\u91cf road _ id , section _ id , lane _ id \u548c s \u5bf9\u5e94 OpenDRIVE \u9053\u8def \u3002 \u8def\u5f84 \u70b9 id \u7684 \u662f \u7531 \u8fd9 \u56db\u4e2a \u503c \u7684 \u54c8\u5e0c \u7ec4\u5408 \u6784\u9020 \u7684 \u3002 \u7b14\u8bb0 \u540c\u4e00 \u9053\u8def \u5185 \u8ddd\u79bb \u5c0f\u4e8e 2 \u5398\u7c73 \u7684 \u8def\u70b9 \u5171\u4eab \u76f8\u540c \u7684 \u8def\u70b9 id \u3002 \u8def\u5f84 \u70b9 \u4fdd\u5b58 \u6709\u5173 \u5305\u542b \u8be5 \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7684 \u4fe1\u606f \u3002 \u6b64 \u4fe1\u606f \u5305\u62ec \u8f66\u9053 \u7684 \u5de6 \u8f66\u9053 \u548c \u53f3 \u8f66\u9053 \u6807\u8bb0 \u3001 \u7528\u4e8e \u786e\u5b9a \u5176 \u662f\u5426 \u4f4d\u4e8e \u8def\u53e3 \u5185 \u7684 \u5e03\u5c14 \u5e03\u5c14\u503c \u3001 \u8f66\u9053 \u7c7b\u578b \u3001 \u5bbd\u5ea6 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u3002 # \u4ece \u8def\u5f84 \u70b9 \u8bbf\u95ee \u8f66\u9053 \u4fe1\u606f inside _ junction = waypoint . is _ junction ( ) width = waypoint . lane _ width right _ lm _ color = waypoint . right _ lane _ marking . color","title":"\u8def\u5f84 \u70b9"},{"location":"core_map/#_6","text":"OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u7684 \u901a\u9053 \u7c7b\u578b \u5c06 carla . LaneType \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u8f6c\u6362 \u4e3a API \u3002 \u8f66\u9053 \u5468\u56f4 \u7684 \u8f66\u9053 \u6807\u8bb0 \u53ef \u901a\u8fc7 carla . LaneMarking \u8bbf\u95ee \u3002 \u8f66\u9053 \u6807\u8bb0 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53d8\u91cf \u5b9a\u4e49 \uff1a color : carla . LaneMarkingColor \u662f \u5b9a\u4e49 \u6807\u8bb0 \u989c\u8272 \u7684 \u679a\u4e3e \u503c \u3002 lane _ change : carla . LaneChange \u8bf4\u660e \u8f66\u9053 \u662f\u5426 \u5141\u8bb8 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u4e24\u8005 \u90fd \u5141\u8bb8 \u6216 \u4e0d \u5141\u8bb8 \u3002 type : carla . LaneMarkingType \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u6807\u8bb0 \u7c7b\u578b \u7684 \u679a\u4e3e \u503c \u3002 width : \u5b9a\u4e49 \u6807\u8bb0 \u7684 \u539a\u5ea6 \u3002 \u4e0b\u9762 \u7684 \u793a\u4f8b \u663e\u793a \u4e86 \u83b7\u53d6 \u6709\u5173 \u7279\u5b9a \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7c7b\u578b \u3001 \u8f66\u9053 \u6807\u8bb0 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u7684 \u4fe1\u606f \uff1a # \u83b7\u5f97 \u8def\u5f84 \u70b9 \u8f66\u9053 \u7c7b\u578b lane _ type = waypoint . lane _ type # \u83b7\u5f97 \u5de6 \u8f66\u9053 \u6807\u8bb0 \u7684 \u7c7b\u578b left _ lanemarking _ type = waypoint . left _ lane _ marking . type ( ) # \u83b7\u5f97 \u8be5 \u8def\u5f84 \u70b9 \u53ef \u5f97 \u7684 \u8f66\u9053 \u6539\u53d8 lane _ change = waypoint . lane _ change","title":"\u8f66\u9053"},{"location":"core_map/#_7","text":"carla . Junction \u4ee3\u8868 OpenDRIVE \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u3002 \u6b64\u7c7b \u5305\u542b \u5e26\u6709 \u8fb9\u754c \u6846 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \uff0c \u7528\u4e8e \u8bc6\u522b \u5176\u4e2d \u7684 \u8f66\u9053 \u6216 \u8f66\u8f86 \u3002 \u8be5 carla . Junction \u7c7b \u5305\u542b get _ waypoints \u4e3a \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6bcf\u4e2a \u8f66\u9053 \u8fd4\u56de \u4e00\u5bf9 \u8def\u70b9 \u7684 \u65b9\u6cd5 \u3002 \u6bcf \u5bf9 \u4f4d\u4e8e \u4ea4\u754c \u4ea4\u754c\u5904 \u8fb9\u754c \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 waypoints _ junc = my _ junction . get _ waypoints ( )","title":"\u8def\u53e3"},{"location":"core_map/#_8","text":"Carla \u5730\u56fe \u4e0a \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u90fd \u6709 \u4e00\u7ec4 \u5173\u8054 \u7684 \u53d8\u91cf \uff0c \u53ef\u4ee5 \u5728 \u6b64 \u5904 \u627e\u5230 \u8fd9\u4e9b \u53d8\u91cf \u3002 \u8fd9\u4e9b \u53d8\u91cf \u4e2d \u5305\u542b \u4e00\u4e2a \u552f\u4e00 ID \uff0c \u53ef \u7528\u4e8e \u5207\u6362 \u8be5 \u5bf9\u8c61 \u5728 \u5730\u56fe \u4e0a \u7684 \u53ef\u89c1 \u6027 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u6839\u636e \u6bcf\u4e2a \u73af\u5883 \u5bf9\u8c61 \u7684 \u8bed\u4e49 \u6807\u7b7e \u83b7\u53d6 \u5176 ID \uff1a # \u83b7\u5f97 \u4e16\u754c \u4e2d \u7684 \u5efa\u7b51 world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # \u8bbf\u95ee \u5404\u4e2a \u5efa\u7b51 IDs \u5e76 \u4fdd\u5b58 \u5728 \u96c6\u5408 \u5f53\u4e2d building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # \u5207\u6362 \u5efa\u7b51 \u4e3a \u4e0d \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , False ) # \u5207\u6362 \u5efa\u7b51 \u4e3a \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , True ) \u67e5\u770b \u5207\u6362 \u4e0d\u540c \u5bf9\u8c61 \u7684 \u793a\u4f8b \uff1a","title":"\u73af\u5883 \u5bf9\u8c61"},{"location":"core_map/#carla","text":"Carla \u4e2d \u7684 \u5bfc\u822a \u662f \u901a\u8fc7 Waypoint API \uff08 \u6765\u81ea carla . Waypoint \u548c carla . Map \u7684 \u65b9\u6cd5 \u7ec4\u5408 \uff09 \u8fdb\u884c \u7ba1\u7406 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u9996\u5148 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4ee5 \u68c0\u7d22 \u5305\u542b \u8def\u5f84 \u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u4e00\u6b21 \uff0c \u6240\u6709 \u540e\u7eed \u67e5\u8be2 \u90fd \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6267\u884c \u3002","title":"\u5728 Carla \u4e2d \u5bfc\u822a"},{"location":"core_map/#_9","text":"Waypoint API \u516c\u5f00 \u4e86 \u5141\u8bb8 \u8def\u5f84 \u70b9 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u5e76 \u6784\u5efa \u6cbf \u9053\u8def \u4f9b \u8f66\u8f86 \u5bfc\u822a \u7684 \u8def\u5f84 \u7684 \u65b9\u6cd5 \uff1a next ( d ) \u5728 \u8f66\u9053 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb d \u5185 \u7684 \u822a\u8def \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 previous ( d ) \u5728 \u8f66\u9053 \u76f8\u53cd \u7684 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb \u5c0f\u4e8e d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u8def\u5f84 \u70b9 \u3002 next _ until _ lane _ end ( d ) \u548c previous _ until _ lane _ start ( d ) \u8fd4\u56de \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5217\u8868 \u5206\u522b \u4ece \u5f53\u524d \u8def\u5f84 \u70b9\u5230 \u5176 \u8f66\u9053 \u7684 \u7ec8\u70b9 \u548c \u8d77\u70b9 \u3002 get _ right _ lane ( ) \u548c get _ left _ lane ( ) \u8fd4\u56de \u76f8\u90bb \u8f66\u9053 \u4e2d \u7684 \u7b49 \u8def\u5f84 \u70b9 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u627e\u5230 \u53f3 / \u5de6 \u8f66\u9053 \u4e0a \u7684 \u4e0b \u4e00\u4e2a \u8def\u70b9 \u5e76 \u79fb\u52a8 \u5230 \u8be5 \u8def\u70b9 \u6765 \u8fdb\u884c \u53d8\u9053 \u64cd\u4f5c \u3002 # \u627e\u5230 \u524d\u9762 2 \u7c73 \u7684 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9 waypoint = waypoint . next ( 2.0 )","title":"\u901a\u8fc7 \u8def\u5f84 \u70b9 \u5bfc\u822a"},{"location":"core_map/#_10","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u8bf7\u6c42 \u53d1\u51fa\u8bf7\u6c42 \u6765 \u83b7\u53d6 . xodr \u5730\u56fe \u6587\u4ef6 \u5e76 \u5c06 \u5176 \u89e3\u6790 \u4e3a carla . Map \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u505a \u4e00\u6b21 \u3002 \u83b7\u53d6 \u5730\u56fe \u5bf9\u8c61 \uff1a map = world . get _ map ( ) \u5730\u56fe \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u521b\u5efa \u8f66\u8f86 \u7684 \u63a8\u8350 \u751f\u6210 \u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \u83b7\u53d6 \u8fd9\u4e9b \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \uff0c \u6bcf\u4e2a \u751f\u6210 \u70b9 \u90fd \u5305\u542b carla . Transform \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u751f\u6210 \u70b9 \u53ef\u80fd \u5df2 \u88ab \u5360\u7528 \uff0c \u4ece\u800c \u5bfc\u81f4 \u7531\u4e8e \u78b0\u649e \u800c \u5bfc\u81f4 \u8f66\u8f86 \u521b\u5efa \u5931\u8d25 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u83b7\u53d6 \u8ddd \u7279\u5b9a \u4f4d\u7f6e \u6216 \u7279\u5b9a road _ id \u3001 lane _ id \u548c s \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u822a\u8def \u70b9 \u4ee5\u53ca \u5730\u56fe OpenDRIVE \u5b9a\u4e49 \u4e2d \u7684 \u503c\u6765 \u5f00\u59cb \u4f7f\u7528 \u8def\u5f84 \u70b9 \uff1a # \u9a7e\u9a76 \u8f66\u9053 \u6216 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e2d\u5fc3 \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \u3002 waypoint01 = map . get _ waypoint ( vehicle . get _ location ( ) , project _ to _ road = True , lane _ type = ( carla . LaneType . Driving | carla . LaneType . Sidewalk ) ) # \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \uff0c \u540c\u65f6 \u6307\u5b9a OpenDRIVE \u53c2\u6570 \u3002 waypoint02 = map . get _ waypoint _ xodr ( road _ id , lane _ id , s ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c55\u793a \u4e86 \u5982\u4f55 \u751f\u6210 \u8def\u70b9 \u96c6\u5408 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u57ce\u5e02 \u8f66\u9053 \u3002 \u8fd9 \u5c06 \u4e3a \u6574\u4e2a \u5730\u56fe \u4e0a \u7684 \u6bcf\u6761 \u9053\u8def \u548c \u8f66\u9053 \u521b\u5efa \u8def\u5f84 \u70b9 \u3002 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u5927\u7ea6 \u4e3a 2 \u7c73 \uff1a waypoint _ list = map . generate _ waypoints ( 2.0 ) \u8981 \u751f\u6210 \u9053\u8def \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \uff0c \u8bf7 \u4f7f\u7528 \u4e0b\u9762 \u7684 \u793a\u4f8b \u3002 \u8fd9 \u5c06 \u8fd4\u56de \u8def\u5f84 \u70b9 \u5bf9 \uff08 \u5143\u7ec4 \uff09 \u7684 \u5217\u8868 \u3002 \u6bcf \u5bf9 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u5143\u7d20 \u4e0e \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5143\u7d20 \u8fde\u63a5 \uff0c \u4e24\u8005 \u90fd \u5b9a\u4e49 \u4e86 \u5730\u56fe \u4e2d \u6bcf\u6761 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u6709\u5173 \u6b64 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 PythonAPI \u4e2d \u627e\u5230 \u3002 waypoint _ tuple _ list = map . get _ topology ( ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c06 carla . Transform \u8f6c\u6362 \u4e3a \u5730\u7406 \u7eac\u5ea6 \u5730\u7406\u7eac\u5ea6 \u548c \u7ecf\u5ea6 \u5750\u6807 \uff0c \u91c7\u7528 carla . GeoLocation \u7684 \u5f62\u5f0f \uff1a my _ geolocation = map . transform _ to _ geolocation ( vehicle . transform ) \u4f7f\u7528 \u4ee5\u4e0b \u793a\u4f8b \u5c06 OpenDRIVE \u683c\u5f0f \u7684 \u9053\u8def \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a info _ map = map . to _ opendrive ( )","title":"\u751f\u6210 \u5730\u56fe \u5bfc\u822a"},{"location":"core_map/#carla_1","text":"Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d\u6709 \u516b\u4e2a \u57ce\u9547 \uff0c \u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u4e24\u79cd \u5730\u56fe \uff0c \u975e \u5206\u5c42 \u5730\u56fe \u548c \u5206\u5c42 \u5730\u56fe \u3002 \u56fe\u5c42 \u662f \u6307 \u5730\u56fe \u4e2d \u5206\u7ec4 \u7684 \u5bf9\u8c61 \uff0c \u7531 \u4ee5\u4e0b \u90e8\u5206 \u7ec4\u6210 \uff1a NONE \u5efa\u7b51 \u5efa\u7b51\u7269 \u8d34\u6807 \u53f6\u5b50 \u5730\u9762 \u505c\u653e \u7684 \u8f66\u8f86 \u7c92\u5b50 \u9053\u5177 \u8def\u706f \u5899\u58c1 \u5168\u90e8","title":"Carla \u5730\u56fe"},{"location":"core_map/#_11","text":"\u4e0b\u8868 \u663e\u793a \u4e86 \u975e \u5206\u5c42 \u5730\u56fe \uff08 \u5355\u51fb \u57ce\u9547 \u540d\u79f0 \u53ef \u67e5\u770b \u5e03\u5c40 \u7684 \u4fef\u89c6 \u89c6\u56fe \u4fef\u89c6\u56fe \uff09 \u3002 \u6240\u6709 \u56fe\u5c42 \u59cb\u7ec8 \u5b58\u5728 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5728 \u8fd9\u4e9b \u5730\u56fe \u4e2d \u6253\u5f00 \u6216 \u5173\u95ed \u3002 \u76f4\u5230 Carla 0.9 . 11 \u4e3a\u6b62 \uff0c \u8fd9\u4e9b \u662f \u552f\u4e00 \u53ef\u7528 \u7684 \u5730\u56fe \u7c7b\u578b \u3002 \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u751a\u81f3 \u521b\u5efa \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u65b0 \u5730\u56fe \u3002 \u57ce\u9547 \u6982\u62ec Town01 \u7531 \u201c T \u5b57 \u8def\u53e3 \u201d \u7ec4\u6210 \u7684 \u57fa\u672c \u57ce\u9547 \u5e03\u5c40 \u3002 Town02 \u548c Town01 \u7c7b\u4f3c \uff0c \u4f46\u662f \u66f4 \u5c0f \u3002 Town03 \u6700 \u590d\u6742 \u7684 \u57ce\u9547 \uff0c \u6709 5 \u8f66\u9053 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 \u73af\u5c9b \u3001 \u51f9\u51f8 \u4e0d\u5e73 \u51f9\u51f8\u4e0d\u5e73 \u3001 \u96a7\u9053 \u7b49 \u3002 Town04 \u6709 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5c0f\u9547 \u7684 \u65e0\u9650 \u5faa\u73af \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u957f \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u8f6c \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town10 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town11 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 Town13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 Town15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002 HUTB \u57fa\u4e8e \u6e56\u5357 \u5de5\u5546 \u5546\u5927 \u5927\u5b66 \u5de5\u5546\u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002","title":"\u975e \u5206\u5c42 \u5730\u56fe"},{"location":"core_map/#_12","text":"\u5206\u5c42 \u5730\u56fe \u7684 \u5e03\u5c40 \u4e0e\u975e \u5206\u5c42 \u5730\u56fe \u76f8\u540c \uff0c \u4f46 \u53ef\u4ee5 \u5173\u95ed \u548c \u6253\u5f00 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u6709 \u4e00\u4e2a \u65e0\u6cd5 \u5173\u95ed \u7684 \u6700\u5c0f \u5e03\u5c40 \uff0c \u7531 \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7ec4\u6210 \u3002 \u5206\u5c42 \u5730\u56fe \u53ef\u4ee5 \u901a\u8fc7 \u540e\u7f00 _ Opt \u6765 \u6807\u8bc6 \uff0c \u4f8b\u5982 Town01 _ Opt \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u5730\u56fe \uff0c \u53ef\u4ee5 \u901a\u8fc7 Python API \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff1a # \u52a0\u8f7d \u57ce\u9547 01 \u7684 \u5206\u5c42 \u5730\u56fe \uff0c \u5e26\u6709 \u6700\u5c0f \u5e03\u5c40 \u52a0\u4e0a \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u505c\u653e \u7684 \u8f66\u8f86 world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # \u5173\u95ed \u6240\u6709 \u5efa\u7b51 world . unload _ map _ layer ( carla . MapLayer . Buildings ) # \u6253\u5f00 \u6240\u6709 \u5efa\u7b51 world . load _ map _ layer ( carla . MapLayer . Buildings ) \u67e5\u770b \u6309 \u987a\u5e8f \u52a0\u8f7d \u548c \u5378\u8f7d \u6240\u6709 \u5c42 \u7684 \u793a\u4f8b \uff1a","title":"\u5206\u5c42 \u5730\u56fe"},{"location":"core_map/#_13","text":"Carla \u65e8\u5728 \u9488\u5bf9 \u4e13\u4e1a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fdb\u884c \u53ef \u6269\u5c55 \u548c \u9ad8\u5ea6 \u5b9a\u5236 \u3002 \u56e0\u6b64 \uff0c \u9664\u4e86 Carla \u4e2d \u73b0\u6709 \u7684 \u8bb8\u591a \u5730\u56fe \u548c \u8d44\u4ea7 \u4e4b\u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u548c \u5bfc\u5165 \u65b0 \u7684 \u5730\u56fe \u3001 \u9053\u8def \u7f51\u7edc \u548c \u8d44\u4ea7 \uff0c \u4ee5 \u586b\u5145 Carla \u4eff\u771f \u4e2d \u7684 \u5b9a\u5236 \u73af\u5883 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u6784\u5efa \u548c \u96c6\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6240 \u9700 \u7684 \u6b65\u9aa4 \uff1a \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"core_sensors/","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u4ece \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4e3a \u9a7e\u9a76 \u667a\u80fd \u4f53 \u521b\u9020 \u5b66\u4e60 \u73af\u5883 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u672c\u9875 \u603b\u7ed3 \u4e86 \u5f00\u59cb \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5b83 \u4ecb\u7ecd \u4e86 \u53ef\u7528 \u7684 \u7c7b\u578b \u53ca\u5176 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u53ef\u4ee5 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd \u8bbe\u7f6e \u751f\u6210 \u76d1\u542c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7c7b\u578b \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd carla . Sensor \u7c7b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u80fd\u591f \u6d4b\u91cf \u548c \u4f20\u8f93 \u6570\u636e \u4f20\u8f93\u6570\u636e \u3002 \u8fd9\u4e2a \u6570\u636e \u662f \u4ec0\u4e48 \uff1f \u6839\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \uff0c \u5b83 \u53d8\u5316 \u5f88\u5927 \u53d8\u5316\u5f88\u5927 \u3002 \u6240\u6709 \u7c7b\u578b \u7684 \u6570\u636e \u90fd \u7ee7\u627f \u81ea \u901a\u7528 \u7684 carla . SensorData \u3002 \u4ed6\u4eec \u4ec0\u4e48 \u65f6\u5019 \u68c0\u7d22 \u6570\u636e \uff1f \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e0a \u6216 \u5728 \u6ce8\u518c \u67d0\u4e2a \u4e8b\u4ef6 \u65f6 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \u3002 \u4ed6\u4eec \u5982\u4f55 \u68c0\u7d22 \u6570\u636e \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u79cd \u63a5\u6536 \u548c \u7ba1\u7406 \u6570\u636e \u7684 listen ( ) \u65b9\u6cd5 \u3002 \u5c3d\u7ba1 \u5b58\u5728 \u5dee\u5f02 \uff0c \u4f46 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f7f\u7528 \u65b9\u5f0f \u90fd \u76f8\u4f3c \u3002 \u8bbe\u7f6e \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u627e\u5230 \u84dd\u56fe \u5e76 \u8bbe\u7f6e \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u5728 \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4ed6\u4eec \u7684 \u5c5e\u6027 \u5c06 \u51b3\u5b9a \u6240 \u83b7\u5f97 \u7684 \u7ed3\u679c \u3002 \u8fd9\u4e9b \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d\u6709 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8bbe\u7f6e \u4eea\u8868 \u4eea\u8868\u677f \u9ad8\u6e05 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3002 # \u627e\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 blueprint = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u4fee\u6539 \u84dd\u56fe \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u56fe\u50cf \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u548c \u89c6\u91ce blueprint . set _ attribute ( ' image _ size _ x ' , ' 1920 ' ) blueprint . set _ attribute ( ' image _ size _ y ' , ' 1080 ' ) blueprint . set _ attribute ( ' fov ' , ' 110 ' ) # \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 blueprint . set _ attribute ( ' sensor _ tick ' , ' 1.0 ' ) \u751f\u6210 attachment _ to \u548c attachment _ type \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94 \u8fde\u63a5 \u5230\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u901a\u5e38 \u662f \u8f66\u8f86 \uff09 \u4e0a \uff0c \u4ee5 \u8ddf\u8e2a \u5b83 \u5e76 \u6536\u96c6 \u4fe1\u606f \u3002 \u9644\u4ef6 \u7c7b\u578b \u5c06 \u786e\u5b9a \u5176 \u5173\u4e8e \u6240\u8ff0 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u5982\u4f55 \u66f4\u65b0 \u3002 \u521a\u6027 \u9644\u4ef6 ( Rigid attachment ) \u3002 \u52a8 \u5bf9\u4e8e \u5176\u7236 \u4f4d\u7f6e \u662f \u4e25\u683c \u7684 \u3002 \u8fd9 \u662f\u4ece \u4eff\u771f \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u5408\u9002 \u9644\u4ef6 \u3002 \u5f39\u7c27 \u81c2 \u9644\u4ef6 ( SpringArm attachment ) \u3002 \u8fd0\u52a8 \u53d8\u5f97 \u8f7b\u677e \uff0c \u51e0\u4e4e \u6ca1\u6709 \u52a0\u901f \u548c \u51cf\u901f \u3002 \u4ec5 \u5efa\u8bae \u4f7f\u7528 \u6b64 \u9644\u4ef6 \u6765 \u5f55\u5236 \u4eff\u771f \u89c6\u9891 \u3002 \u66f4\u65b0 \u6444\u50cf \u6444\u50cf\u673a \u4f4d\u7f6e \u65f6 \uff0c \u79fb\u52a8 \u5e73\u6ed1 \u5e76\u4e14 \u907f\u514d \u201c \u8df3\u8dc3 \u201d \u3002 \u5f39\u7c27 \u81c2 \u5e7d\u7075 \u9644\u4ef6 ( SpringArmGhost attachment ) \u3002 \u4e0e \u524d \u4e00\u4e2a \u7c7b\u4f3c \uff0c \u4f46 \u6ca1\u6709 \u8fdb\u884c \u78b0\u649e \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216\u4f20\u611f\u5668 \u53ef\u4ee5 \u7a7f\u8fc7 \u5899\u58c1 \u6216 \u5176\u4ed6 \u51e0\u4f55 \u5f62\u72b6 \u3002 transform = carla . Transform ( carla . Location ( x = 0.8 , z = 1.7 ) ) sensor = world . spawn _ actor ( blueprint , transform , attach _ to = my _ vehicle ) \u91cd\u8981 \u5f53 \u5e26\u6709 \u9644\u4ef6 \u751f\u6210 \u65f6 \uff0c \u4f4d\u7f6e \u5fc5\u987b \u76f8\u5bf9 \u4e8e\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u76d1\u542c \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a listen ( ) \u65b9\u6cd5 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 \u53c2\u6570 callback \u662f \u4e00\u4e2a lambda \u51fd\u6570 \u3002 \u5b83 \u63cf\u8ff0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u5e94\u8be5 \u505a \u4ec0\u4e48 \u3002 \u8fd9 \u5fc5\u987b \u5c06 \u68c0\u7d22 \u7684 \u6570\u636e \u4f5c\u4e3a \u53c2\u6570 \u3002 # \u6bcf\u6b21 \u76f8\u673a \u751f\u6210 \u65b0 \u56fe\u50cf \u65f6 \uff0c \u90fd \u4f1a \u8c03\u7528 do _ something ( ) \u3002 sensor . listen ( lambda data : do _ something ( data ) ) ... # \u6bcf\u6b21 \u68c0\u6d4b \u5230 \u78b0\u649e \u65f6 \uff0c \u6b64 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u6253\u5370 \u3002 def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor02 . listen ( callback ) \u6570\u636e \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 \u90fd \u5177\u6709 \u5c06 \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u529f\u80fd \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u5b83 \u5728 \u5176\u4ed6 \u73af\u5883 \u4e2d \u4f7f\u7528 \u3002 \u4e0d\u540c \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5dee\u5f02 \u5f88\u5927 \u3002 \u67e5\u770b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4ee5 \u83b7\u5f97 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u7136\u800c \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u603b\u662f \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6807\u7b7e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u8f6e\u6570 \u5f00\u59cb \u4ee5\u6765 \u4ee5 \u4eff\u771f \u79d2 \u4e3a \u5355\u4f4d \u7684 \u6d4b\u91cf \u65f6\u95f4 \u6233 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e16\u754c \u53c2\u8003 \u3002 \u91cd\u8981 is _ listening \u662f \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \uff0c \u53ef\u4ee5 \u968f\u610f \u542f\u7528 / \u7981\u7528 \u6570\u636e \u76d1\u542c \u3002 sensor _ tick \u662f \u4e00\u4e2a \u84dd\u56fe \u5c5e\u6027 \uff0c \u7528\u4e8e \u8bbe\u7f6e \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7c7b\u578b \u76f8\u673a \u4ece \u4ed6\u4eec \u7684 \u89d2\u5ea6 \u62cd\u6444 \u4e16\u754c \u3002 \u5bf9\u4e8e \u8fd4\u56de carla . Image \u7684 \u76f8\u673a \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8f85\u52a9 \u7c7b carla . ColorConverter \u4fee\u6539 \u56fe\u50cf \u4ee5 \u8868\u793a \u4e0d\u540c \u7684 \u4fe1\u606f \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u6df1\u5ea6 carla . Image \u5728 \u7070\u5ea6 \u56fe\u4e2d \u6e32\u67d3 \u89c6\u91ce \u4e2d \u5143\u7d20 \u7684 \u6df1\u5ea6 \u3002 RGB carla . Image \u63d0\u4f9b \u6e05\u6670 \u7684 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u89c6\u91ce \u3002 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u5c31 \u50cf \u4e00\u5f20 \u6b63\u5e38 \u7684 \u73b0\u573a \u7167\u7247 \u3002 \u5149\u6d41 carla . Image \u6e32\u67d3 \u76f8\u673a \u4e2d \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u8fd0\u52a8 \u3002 \u8bed\u4e49 \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 \u5b9e\u4f8b \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u548c \u552f\u4e00 \u7684 \u5bf9\u8c61 ID \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 DVS carla . DVSEventArray \u4f5c\u4e3a \u4e8b\u4ef6 \u6d41 \u5f02\u6b65 \u6d4b\u91cf \u4eae\u5ea6 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u3002 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5f53 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u89e6\u53d1 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u78b0\u649e carla . CollisionEvent \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 carla . LaneInvasionEvent \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d carla . ObstacleDetectionEvent \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002 \u5176\u4ed6 \u4e0d\u540c \u7684 \u529f\u80fd \uff0c \u4f8b\u5982 \u5bfc\u822a \u3001 \u7269\u7406 \u5c5e\u6027 \u6d4b\u91cf \u548c \u573a\u666f \u7684 \u4e8c\u7ef4 / \u4e09\u7ef4 \u70b9\u56fe \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u68c0\u7d22 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf ( GNSS ) carla . GNSSMeasurement \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( IMU ) carla . IMUMeasurement \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe ( LIDAR ) carla . LidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 \u5305\u542b \u6bcf\u4e2a \u70b9 \u7684 \u5750\u6807 \u548c \u5f3a\u5ea6 \u7684 4D \u70b9\u4e91 \uff0c \u4ee5 \u5bf9 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 \u96f7\u8fbe carla . RadarMeasurement \u4e8c\u7ef4 \u70b9\u56fe \u5efa\u6a21 \u89c6\u7ebf \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fd0\u52a8 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( RSS ) carla . RssResponse \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u4e13\u95e8 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe carla . SemanticLidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 3D \u70b9\u4e91 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u5206\u5272 \u7684 \u989d\u5916 \u4fe1\u606f \u3002 \u8fd9\u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5305\u88c5 \u4ee5\u53ca \u5b83\u4eec \u5982\u4f55 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 Carla \u7684 \u4ecb\u7ecd \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u7136\u800c \uff0c \u8fd8\u6709 \u5f88\u591a \u4e1c\u897f \u9700\u8981 \u5b66\u4e60 \u3002 \u7ee7\u7eed \u5b66\u4e60 \u3002 Carla \u4e2d\u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u529f\u80fd \uff1a \u6e32\u67d3 \u9009\u9879 \u3001 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3001 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7b49\u7b49 \u3002 \u8fd9\u662f \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u4ed6\u4eec \u7684 \u65f6\u673a \u597d\u65f6\u673a \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u81ea\u7531 \u5b9e\u9a8c \u3002 \u67e5\u770b \u672c \u6587\u6863 \u7684 \u53c2\u8003 \u90e8\u5206 \u3002 \u5b83 \u5305\u542b \u6709\u5173 Python API \u4e2d \u7684 \u7c7b \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ee3\u7801 \u7247\u6bb5 \u7b49 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Python API \u53c2\u8003 \u53d1\u8868 \u60a8 \u7684 \u610f\u89c1 \u3002 \u6709 \u4efb\u4f55 \u7591\u95ee \u3001 \u5efa\u8bae \u548c \u60f3\u6cd5 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u7b2c\u56db \u3001 \u4f20\u611f\u5668 \u548c \u6570\u636e"},{"location":"core_sensors/#_1","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u4ece \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4e3a \u9a7e\u9a76 \u667a\u80fd \u4f53 \u521b\u9020 \u5b66\u4e60 \u73af\u5883 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u672c\u9875 \u603b\u7ed3 \u4e86 \u5f00\u59cb \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5b83 \u4ecb\u7ecd \u4e86 \u53ef\u7528 \u7684 \u7c7b\u578b \u53ca\u5176 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u53ef\u4ee5 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd \u8bbe\u7f6e \u751f\u6210 \u76d1\u542c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7c7b\u578b \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6","title":"\u4f20\u611f\u5668 \u548c \u6570\u636e"},{"location":"core_sensors/#_2","text":"carla . Sensor \u7c7b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u80fd\u591f \u6d4b\u91cf \u548c \u4f20\u8f93 \u6570\u636e \u4f20\u8f93\u6570\u636e \u3002 \u8fd9\u4e2a \u6570\u636e \u662f \u4ec0\u4e48 \uff1f \u6839\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \uff0c \u5b83 \u53d8\u5316 \u5f88\u5927 \u53d8\u5316\u5f88\u5927 \u3002 \u6240\u6709 \u7c7b\u578b \u7684 \u6570\u636e \u90fd \u7ee7\u627f \u81ea \u901a\u7528 \u7684 carla . SensorData \u3002 \u4ed6\u4eec \u4ec0\u4e48 \u65f6\u5019 \u68c0\u7d22 \u6570\u636e \uff1f \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e0a \u6216 \u5728 \u6ce8\u518c \u67d0\u4e2a \u4e8b\u4ef6 \u65f6 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \u3002 \u4ed6\u4eec \u5982\u4f55 \u68c0\u7d22 \u6570\u636e \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u79cd \u63a5\u6536 \u548c \u7ba1\u7406 \u6570\u636e \u7684 listen ( ) \u65b9\u6cd5 \u3002 \u5c3d\u7ba1 \u5b58\u5728 \u5dee\u5f02 \uff0c \u4f46 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f7f\u7528 \u65b9\u5f0f \u90fd \u76f8\u4f3c \u3002","title":"\u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd"},{"location":"core_sensors/#_3","text":"\u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u627e\u5230 \u84dd\u56fe \u5e76 \u8bbe\u7f6e \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u5728 \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4ed6\u4eec \u7684 \u5c5e\u6027 \u5c06 \u51b3\u5b9a \u6240 \u83b7\u5f97 \u7684 \u7ed3\u679c \u3002 \u8fd9\u4e9b \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d\u6709 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8bbe\u7f6e \u4eea\u8868 \u4eea\u8868\u677f \u9ad8\u6e05 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3002 # \u627e\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 blueprint = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u4fee\u6539 \u84dd\u56fe \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u56fe\u50cf \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u548c \u89c6\u91ce blueprint . set _ attribute ( ' image _ size _ x ' , ' 1920 ' ) blueprint . set _ attribute ( ' image _ size _ y ' , ' 1080 ' ) blueprint . set _ attribute ( ' fov ' , ' 110 ' ) # \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 blueprint . set _ attribute ( ' sensor _ tick ' , ' 1.0 ' )","title":"\u8bbe\u7f6e"},{"location":"core_sensors/#_4","text":"attachment _ to \u548c attachment _ type \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94 \u8fde\u63a5 \u5230\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u901a\u5e38 \u662f \u8f66\u8f86 \uff09 \u4e0a \uff0c \u4ee5 \u8ddf\u8e2a \u5b83 \u5e76 \u6536\u96c6 \u4fe1\u606f \u3002 \u9644\u4ef6 \u7c7b\u578b \u5c06 \u786e\u5b9a \u5176 \u5173\u4e8e \u6240\u8ff0 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u5982\u4f55 \u66f4\u65b0 \u3002 \u521a\u6027 \u9644\u4ef6 ( Rigid attachment ) \u3002 \u52a8 \u5bf9\u4e8e \u5176\u7236 \u4f4d\u7f6e \u662f \u4e25\u683c \u7684 \u3002 \u8fd9 \u662f\u4ece \u4eff\u771f \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u5408\u9002 \u9644\u4ef6 \u3002 \u5f39\u7c27 \u81c2 \u9644\u4ef6 ( SpringArm attachment ) \u3002 \u8fd0\u52a8 \u53d8\u5f97 \u8f7b\u677e \uff0c \u51e0\u4e4e \u6ca1\u6709 \u52a0\u901f \u548c \u51cf\u901f \u3002 \u4ec5 \u5efa\u8bae \u4f7f\u7528 \u6b64 \u9644\u4ef6 \u6765 \u5f55\u5236 \u4eff\u771f \u89c6\u9891 \u3002 \u66f4\u65b0 \u6444\u50cf \u6444\u50cf\u673a \u4f4d\u7f6e \u65f6 \uff0c \u79fb\u52a8 \u5e73\u6ed1 \u5e76\u4e14 \u907f\u514d \u201c \u8df3\u8dc3 \u201d \u3002 \u5f39\u7c27 \u81c2 \u5e7d\u7075 \u9644\u4ef6 ( SpringArmGhost attachment ) \u3002 \u4e0e \u524d \u4e00\u4e2a \u7c7b\u4f3c \uff0c \u4f46 \u6ca1\u6709 \u8fdb\u884c \u78b0\u649e \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216\u4f20\u611f\u5668 \u53ef\u4ee5 \u7a7f\u8fc7 \u5899\u58c1 \u6216 \u5176\u4ed6 \u51e0\u4f55 \u5f62\u72b6 \u3002 transform = carla . Transform ( carla . Location ( x = 0.8 , z = 1.7 ) ) sensor = world . spawn _ actor ( blueprint , transform , attach _ to = my _ vehicle ) \u91cd\u8981 \u5f53 \u5e26\u6709 \u9644\u4ef6 \u751f\u6210 \u65f6 \uff0c \u4f4d\u7f6e \u5fc5\u987b \u76f8\u5bf9 \u4e8e\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u751f\u6210"},{"location":"core_sensors/#_5","text":"\u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a listen ( ) \u65b9\u6cd5 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 \u53c2\u6570 callback \u662f \u4e00\u4e2a lambda \u51fd\u6570 \u3002 \u5b83 \u63cf\u8ff0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u5e94\u8be5 \u505a \u4ec0\u4e48 \u3002 \u8fd9 \u5fc5\u987b \u5c06 \u68c0\u7d22 \u7684 \u6570\u636e \u4f5c\u4e3a \u53c2\u6570 \u3002 # \u6bcf\u6b21 \u76f8\u673a \u751f\u6210 \u65b0 \u56fe\u50cf \u65f6 \uff0c \u90fd \u4f1a \u8c03\u7528 do _ something ( ) \u3002 sensor . listen ( lambda data : do _ something ( data ) ) ... # \u6bcf\u6b21 \u68c0\u6d4b \u5230 \u78b0\u649e \u65f6 \uff0c \u6b64 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u6253\u5370 \u3002 def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor02 . listen ( callback )","title":"\u76d1\u542c"},{"location":"core_sensors/#_6","text":"\u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 \u90fd \u5177\u6709 \u5c06 \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u529f\u80fd \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u5b83 \u5728 \u5176\u4ed6 \u73af\u5883 \u4e2d \u4f7f\u7528 \u3002 \u4e0d\u540c \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5dee\u5f02 \u5f88\u5927 \u3002 \u67e5\u770b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4ee5 \u83b7\u5f97 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u7136\u800c \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u603b\u662f \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6807\u7b7e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u8f6e\u6570 \u5f00\u59cb \u4ee5\u6765 \u4ee5 \u4eff\u771f \u79d2 \u4e3a \u5355\u4f4d \u7684 \u6d4b\u91cf \u65f6\u95f4 \u6233 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e16\u754c \u53c2\u8003 \u3002 \u91cd\u8981 is _ listening \u662f \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \uff0c \u53ef\u4ee5 \u968f\u610f \u542f\u7528 / \u7981\u7528 \u6570\u636e \u76d1\u542c \u3002 sensor _ tick \u662f \u4e00\u4e2a \u84dd\u56fe \u5c5e\u6027 \uff0c \u7528\u4e8e \u8bbe\u7f6e \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002","title":"\u6570\u636e"},{"location":"core_sensors/#_7","text":"","title":"\u4f20\u611f\u5668 \u7c7b\u578b"},{"location":"core_sensors/#_8","text":"\u4ece \u4ed6\u4eec \u7684 \u89d2\u5ea6 \u62cd\u6444 \u4e16\u754c \u3002 \u5bf9\u4e8e \u8fd4\u56de carla . Image \u7684 \u76f8\u673a \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8f85\u52a9 \u7c7b carla . ColorConverter \u4fee\u6539 \u56fe\u50cf \u4ee5 \u8868\u793a \u4e0d\u540c \u7684 \u4fe1\u606f \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u6df1\u5ea6 carla . Image \u5728 \u7070\u5ea6 \u56fe\u4e2d \u6e32\u67d3 \u89c6\u91ce \u4e2d \u5143\u7d20 \u7684 \u6df1\u5ea6 \u3002 RGB carla . Image \u63d0\u4f9b \u6e05\u6670 \u7684 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u89c6\u91ce \u3002 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u5c31 \u50cf \u4e00\u5f20 \u6b63\u5e38 \u7684 \u73b0\u573a \u7167\u7247 \u3002 \u5149\u6d41 carla . Image \u6e32\u67d3 \u76f8\u673a \u4e2d \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u8fd0\u52a8 \u3002 \u8bed\u4e49 \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 \u5b9e\u4f8b \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u548c \u552f\u4e00 \u7684 \u5bf9\u8c61 ID \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 DVS carla . DVSEventArray \u4f5c\u4e3a \u4e8b\u4ef6 \u6d41 \u5f02\u6b65 \u6d4b\u91cf \u4eae\u5ea6 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u3002","title":"\u76f8\u673a"},{"location":"core_sensors/#_9","text":"\u5f53 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u89e6\u53d1 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u78b0\u649e carla . CollisionEvent \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 carla . LaneInvasionEvent \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d carla . ObstacleDetectionEvent \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002","title":"\u68c0\u6d4b\u5668"},{"location":"core_sensors/#_10","text":"\u4e0d\u540c \u7684 \u529f\u80fd \uff0c \u4f8b\u5982 \u5bfc\u822a \u3001 \u7269\u7406 \u5c5e\u6027 \u6d4b\u91cf \u548c \u573a\u666f \u7684 \u4e8c\u7ef4 / \u4e09\u7ef4 \u70b9\u56fe \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u68c0\u7d22 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf ( GNSS ) carla . GNSSMeasurement \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( IMU ) carla . IMUMeasurement \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe ( LIDAR ) carla . LidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 \u5305\u542b \u6bcf\u4e2a \u70b9 \u7684 \u5750\u6807 \u548c \u5f3a\u5ea6 \u7684 4D \u70b9\u4e91 \uff0c \u4ee5 \u5bf9 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 \u96f7\u8fbe carla . RadarMeasurement \u4e8c\u7ef4 \u70b9\u56fe \u5efa\u6a21 \u89c6\u7ebf \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fd0\u52a8 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( RSS ) carla . RssResponse \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u4e13\u95e8 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe carla . SemanticLidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 3D \u70b9\u4e91 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u5206\u5272 \u7684 \u989d\u5916 \u4fe1\u606f \u3002 \u8fd9\u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5305\u88c5 \u4ee5\u53ca \u5b83\u4eec \u5982\u4f55 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 Carla \u7684 \u4ecb\u7ecd \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u7136\u800c \uff0c \u8fd8\u6709 \u5f88\u591a \u4e1c\u897f \u9700\u8981 \u5b66\u4e60 \u3002 \u7ee7\u7eed \u5b66\u4e60 \u3002 Carla \u4e2d\u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u529f\u80fd \uff1a \u6e32\u67d3 \u9009\u9879 \u3001 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3001 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7b49\u7b49 \u3002 \u8fd9\u662f \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u4ed6\u4eec \u7684 \u65f6\u673a \u597d\u65f6\u673a \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u81ea\u7531 \u5b9e\u9a8c \u3002 \u67e5\u770b \u672c \u6587\u6863 \u7684 \u53c2\u8003 \u90e8\u5206 \u3002 \u5b83 \u5305\u542b \u6709\u5173 Python API \u4e2d \u7684 \u7c7b \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ee3\u7801 \u7247\u6bb5 \u7b49 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Python API \u53c2\u8003 \u53d1\u8868 \u60a8 \u7684 \u610f\u89c1 \u3002 \u6709 \u4efb\u4f55 \u7591\u95ee \u3001 \u5efa\u8bae \u548c \u60f3\u6cd5 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u5176\u4ed6"},{"location":"core_world/","text":"\u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u662f Carla \u7684 \u4e24\u4e2a \u57fa\u672c \u8981\u7d20 \u57fa\u672c\u8981\u7d20 \uff0c \u662f \u64cd\u4f5c \u4eff\u771f \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5fc5\u8981 \u62bd\u8c61 \u3002 \u672c \u6559\u7a0b \u4ece \u5b9a\u4e49 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u548c \u521b\u5efa \uff0c \u5230 \u63cf\u8ff0 \u5b83\u4eec \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u3002 \u5982\u679c \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \u6216 \u95ee\u9898 \uff0c Carla \u8bba\u575b \u53ef\u4ee5 \u4e3a \u60a8 \u89e3\u51b3 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e16\u754c \u8fde\u63a5 \u5176\u4ed6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u4e16\u754c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5929\u6c14 \u706f\u5149 \u8c03\u8bd5 \u4e16\u754c \u5feb\u7167 \u4e16\u754c \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u662f Carla \u67b6\u6784 \u4e2d \u7684 \u4e3b\u8981 \u5143\u7d20 \u4e4b\u4e00 \u3002 \u5b83\u4eec \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u68c0\u7d22 \u4fe1\u606f \u5e76 \u66f4\u6539 \u547d\u4ee4 \u3002 \u8fd9\u662f \u901a\u8fc7 \u811a\u672c \u5b8c\u6210 \u7684 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bc6\u522b \u81ea\u5df1 \u7684 \u8eab\u4efd \uff0c \u5e76 \u8fde\u63a5 \u5230 \u4e16\u754c \uff0c \u7136\u540e \u8fdb\u884c \u4eff\u771f \u64cd\u4f5c \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u5ba2\u6237 \u8fd8 \u53ef\u4ee5 \u8bbf\u95ee \u9ad8\u7ea7 Carla \u6a21\u5757 \u3001 \u529f\u80fd \u5e76 \u5e94\u7528 \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u672c\u8282 \u4ec5 \u4ecb\u7ecd \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bf8\u5982 \u751f\u6210 \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u7c7b \u7684 \u57fa\u672c \u4e8b\u60c5 \u5f88 \u6709\u7528 \u3002 \u5176\u4f59 \u529f\u80fd \u66f4\u52a0 \u590d\u6742 \uff0c \u5c06 \u5728 \u9ad8\u7ea7 \u6b65\u9aa4 \u4e2d \u5404\u81ea \u7684 \u9875\u9762 \u4e2d \u8fdb\u884c \u89e3\u51b3 \u3002 \u67e5\u770b Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u4ee5 \u4e86\u89e3 \u8be5\u7c7b \u7684 \u7279\u5b9a \u65b9\u6cd5 \u548c \u53d8\u91cf \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u9700\u8981 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u3002 \u6807\u8bc6 \u5b83 \u7684 IP \u5730\u5740 \u4ee5\u53ca \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u7684 \u4e24\u4e2a TCP \u7aef\u53e3 \u3002 \u53ef\u9009 \u7684 \u7b2c\u4e09 \u4e09\u4e2a \u7b2c\u4e09\u4e2a \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u5de5\u4f5c \u7ebf\u7a0b \u7684 \u6570\u91cf \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a \u5168\u90e8 ( 0 ) \u3002 Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u5305\u542b \u4e00\u4e2a \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u5728 \u8fd0\u884c \u811a\u672c \u65f6 \u5c06 \u8fd9\u4e9b \u89e3\u6790 \u4e3a \u53c2\u6570 \u3002 client = carla . Client ( ' localhost ' , 2000 ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4f7f\u7528 \u672c\u5730 \u4e3b\u673a IP \u548c \u7aef\u53e3 2000 \u8fdb\u884c \u8fde\u63a5 \uff0c \u4f46 \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u59cb\u7ec8 \u4e3a n + 1 , 2001 \u3002 \u521b\u5efa \u5ba2\u6237 \u5ba2\u6237\u7aef \u540e \uff0c \u8bbe\u7f6e \u5176 time - out \u3002 \u8fd9 \u9650\u5236 \u4e86 \u6240\u6709 \u7f51\u7edc \u64cd\u4f5c \uff0c \u4ee5\u4fbf \u8fd9\u4e9b \u64cd\u4f5c \u4e0d\u4f1a \u6c38\u8fdc \u963b\u6b62 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5982\u679c \u8fde\u63a5 \u5931\u8d25 \uff0c \u5c06 \u8fd4\u56de \u9519\u8bef \u3002 client . set _ timeout ( 10.0 ) # \u79d2 \u53ef\u4ee5 \u8fde\u63a5 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u56e0\u4e3a \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u811a\u672c \u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u5728 \u5177\u6709 \u9ad8\u7ea7 Carla \u529f\u80fd \uff08 \u4f8b\u5982 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \u7684 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65b9\u6848 \u4e2d \u5de5\u4f5c \uff0c \u5fc5\u7136 \u4f1a \u4f7f \u901a\u4fe1 \u66f4\u52a0 \u590d\u6742 \u3002 \u7b14\u8bb0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6709 \u4e0d\u540c \u7684 libcarla \u6a21\u5757 \u3002 \u5982\u679c \u7248\u672c \u4e0d\u540c \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 get _ client _ version ( ) \u548c get _ server _ version ( ) \u65b9\u6cd5 \u8fdb\u884c \u68c0\u67e5 \u3002 \u4e16\u754c \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u76f8\u5f53 \u8f7b\u677e \u5730 \u8fde\u63a5 \u548c \u68c0\u7d22 \u5f53\u524d \u4e16\u754c \u3002 world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u53ef\u4ee5 \u83b7\u5f97 \u53ef\u7528 \u5730\u56fe \u5217\u8868 \u6765 \u66f4\u6539 \u5f53\u524d \u5730\u56fe \u3002 \u8fd9 \u5c06 \u6467\u6bc1 \u5f53\u524d \u7684 \u4e16\u754c \u5e76 \u521b\u9020 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u754c \u3002 print ( client . get _ available _ maps ( ) ) ... world = client . load _ world ( ' Town01 ' ) # client . reload _ world ( ) \u521b\u5efa \u4e00\u4e2a \u76f8\u540c \u5730\u56fe \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4e16\u754c \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a id \u6216 \u4e16\u4ee3 \u3002 \u6bcf\u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8c03\u7528 load _ world ( ) \u6216 reload _ world ( ) \u65f6 \uff0c \u524d \u4e00\u4e2a \u88ab \u9500\u6bc1 \u3002 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u4ee3 \u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u7684 \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u865a\u5e7b \u5f15\u64ce \u4e0d\u4f1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u3002 \u4f7f\u7528 \u547d\u4ee4 \u547d\u4ee4 \u662f \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 Carla \u65b9\u6cd5 \u7684 \u6539\u7f16 \uff0c \u53ef\u4ee5 \u6279\u91cf \u5e94\u7528 \u3002 \u4f8b\u5982 \uff0c command . SetAutopilot \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e command . SetAutopilot \uff0c \u542f\u7528 \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 Client . apply _ batch \u6216 Client . apply _ batch _ sync ( ) \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u5728 \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u5e94\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u547d\u4ee4 \u3002 \u8fd9 \u5bf9\u4e8e \u901a\u5e38 \u5e94\u7528 \u4e8e \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u5143\u7d20 \u7684 \u65b9\u6cd5 \u6765\u8bf4 \u53d8\u5f97 \u975e\u5e38 \u6709\u7528 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u4f7f\u7528 \u5904\u7406 \u6279\u5904\u7406 \u4e00\u6b21 \u4e00\u6b21\u6027 \u9500\u6bc1 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8f66\u8f86 \u3002 client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) Python API \u53c2\u8003 \u7684 \u6700\u65b0 \u90e8\u5206 \u5217\u51fa \u4e86 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 \u5176\u4ed6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u4e3b\u8981 \u76ee\u7684 \u662f \u83b7\u53d6 \u6216 \u6539\u53d8 \u4e16\u754c \uff0c \u5e76 \u5e94\u7528 \u547d\u4ee4 \u3002 \u4f46\u662f \uff0c \u5b83 \u8fd8 \u63d0\u4f9b \u5bf9 \u4e00\u4e9b \u9644\u52a0 \u529f\u80fd \u7684 \u8bbf\u95ee \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6bcf\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u4ee5 \u91cd\u5efa \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 . \u5141\u8bb8 \u91cd\u65b0 \u8fdb\u884c \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u5feb\u7167 \u603b\u7ed3 \u6bcf\u5e27 \u7684 \u4eff\u771f \u72b6\u6001 \u3002 \u4e16\u754c \u4eff\u771f \u7684 \u4e3b\u8981 \u6807\u5c3a \u3002 \u5b83 \u7684 \u5b9e\u4f8b \u5e94\u8be5 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u3002 \u5b83 \u4e0d \u5305\u542b \u4e16\u754c \u672c\u8eab \u7684 \u6a21\u578b \uff0c \u8fd9\u662f Map \u7c7b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u76f8\u53cd \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4fe1\u606f \u548c \u5e38\u89c4 \u8bbe\u7f6e \u53ef\u4ee5 \u4ece \u6b64\u7c7b \u8bbf\u95ee \u3002 \u4eff\u771f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u3002 \u84dd \u56fe\u5e93 \u3002 \u5730\u56fe \u3002 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5feb\u7167 \u3002 \u5929\u6c14 \u548c \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u3002 \u5b83 \u7684 \u4e00\u4e9b \u6700 \u91cd\u8981 \u7684 \u65b9\u6cd5 \u662f getters \uff0c \u7cbe\u786e \u5730 \u68c0\u7d22 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u4fe1\u606f \u6216 \u5b9e\u4f8b \u3002 \u67e5\u770b carla . World \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e16\u754c \u4e0a \u6709 \u4e0d\u540c \u7684 \u4e0e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u5173 \u7684 \u65b9\u6cd5 \uff0c \u5141\u8bb8 \u4e0d\u540c \u7684 \u529f\u80fd \u3002 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f46 \u4e0d \u6467\u6bc1 \u4ed6\u4eec \uff09 \u3002 \u83b7\u5f97 \u573a\u666f \u4e2d \u7684 \u6bcf \u4e00\u4f4d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u6216\u8005 \u627e\u5230 \u4e00\u4e2a \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u84dd \u56fe\u5e93 \u3002 \u8bbf\u95ee \u89c2\u5bdf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4eff\u771f \u7684 \u89c6\u89d2 \u3002 \u68c0\u7d22 \u9002\u5408 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u968f\u673a \u4f4d\u7f6e \u3002 \u751f\u6210 \u5c06 \u5728 \u7b2c\u4e8c \u90e8\u5206 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u3002 \u9700\u8981 \u5bf9 \u84dd \u56fe\u5e93 \u3001 \u5c5e\u6027 \u7b49 \u6709 \u4e00\u5b9a \u7684 \u4e86\u89e3 \u3002 \u5929\u6c14 \u5929\u6c14 \u672c\u8eab \u5e76 \u4e0d\u662f \u4e00\u4e2a \u7c7b \uff0c \u800c\u662f \u4e00\u7ec4 \u53ef \u4ece \u4e16\u754c \u83b7\u53d6 \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \u5316 \u5305\u62ec \u592a\u9633 \u65b9\u5411 \u3001 \u4e91\u91cf \u3001 \u98ce \u3001 \u96fe \u7b49\u7b49 \u3002 \u8f85\u52a9 \u7c7b carla . WeatherParameters \u7528\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u3002 weather = carla . WeatherParameters ( cloudiness = 80.0 , precipitation = 30.0 , sun _ altitude _ angle = 70.0 ) world . set _ weather ( weather ) print ( world . get _ weather ( ) ) \u6709 \u4e00\u4e9b \u5929\u6c14 \u9884\u8bbe \u53ef\u4ee5 \u76f4\u63a5 \u5e94\u7528 \u4e8e \u4e16\u754c \u3002 \u8fd9\u4e9b \u5217 \u5728 carla . WeatherParameters \u4e2d \u5e76 \u53ef \u4f5c\u4e3a \u679a\u4e3e \u8bbf\u95ee \u3002 world . set _ weather ( carla . WeatherParameters . WetCloudySunset ) \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u4e24\u4e2a \u811a\u672c \u6765\u81ea \u5b9a\u4e49 \u5929\u6c14 \u3002 environment . py ( \u5728 PythonAPI / util \u76ee\u5f55 \u4e0b ) \u2014 \u63d0\u4f9b \u5bf9 \u5929\u6c14 \u548c \u5149\u7167 \u53c2\u6570 \u7684 \u8bbf\u95ee \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5b9e\u65f6 \u66f4\u6539 \u8fd9\u4e9b \u53c2\u6570 \u3002 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] dynamic _ weather . py ( \u5728 PythonAPI / examples \u76ee\u5f55 \u4e0b ) \u2014 \u542f\u7528 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4e3a \u6bcf\u5f20 Carla \u5730\u56fe \u51c6\u5907 \u7684 \u7279\u5b9a \u5929\u6c14 \u5468\u671f \u3002 dynamic _ weather . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - s FACTOR , -- speed FACTOR rate at which the weather changes ( default : 1.0 ) \u7b14\u8bb0 \u5929\u6c14 \u7684 \u53d8\u5316 \u4e0d\u4f1a \u5f71\u54cd \u7269\u7406 \u3002 \u5b83\u4eec \u53ea\u662f \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6355\u83b7 \u7684 \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \u3002 \u5f53 sun _ altitude _ angle < 0 \u65f6 \uff0c \u591c\u95f4 \u6a21\u5f0f \u5f00\u59cb \uff0c \u8fd9 \u88ab \u8ba4\u4e3a \u662f \u65e5\u843d \u3002 \u8fd9\u662f \u706f\u5149 \u53d8\u5f97 \u7279\u522b \u91cd\u8981 \u7684 \u65f6\u5019 \u3002 \u706f\u5149 \u5f53 \u4eff\u771f \u8fdb\u5165 \u591c\u95f4 \u6a21\u5f0f \u65f6 \uff0c \u8def\u706f \u4f1a \u81ea\u52a8 \u6253\u5f00 \u3002 \u706f\u5149 \u7531 \u5730\u56fe \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u653e\u7f6e \uff0c \u5e76 \u53ef \u4f5c\u4e3a carla . Light \u5bf9\u8c61 \u8bbf\u95ee \u3002 \u989c\u8272 \u548c \u5f3a\u5ea6 \u7b49 \u5c5e\u6027 \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 carla . LightState \u7c7b\u578b \u7684 \u53d8\u91cf light _ state \u5141\u8bb8 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u8bbe\u7f6e \u6240\u6709 \u8fd9\u4e9b \u3002 \u8def\u706f \u4f7f\u7528 \u5176 \u7c7b\u578b \u4e3a carla . LightState \u7684 \u5c5e\u6027 light _ state \u8fdb\u884c \u5206\u7c7b \u3002 \u8fd9 \u5141\u8bb8 \u5c06 \u706f \u5206\u7c7b \u4e3a \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u706f ... \u53ef\u4ee5 \u68c0\u7d22 [ carla . LightManager ] \u7684 \u5b9e\u4f8b \u6765 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u5904\u7406 \u4e00\u7ec4 \u706f \u3002 # \u83b7\u5f97 \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u548c \u706f\u5149 lmanager = world . get _ lightmanager ( ) mylights = lmanager . get _ all _ lights ( ) # \u5b9a\u5236 \u4e00\u4e2a \u7279\u5b9a \u7684 \u706f\u5149 light01 = mylights [ 0 ] light01 . turn _ on ( ) light01 . set _ intensity ( 100.0 ) state01 = carla . LightState ( 200.0 , red , carla . LightGroup . Building , True ) light01 . set _ light _ state ( state01 ) # \u5b9a\u5236 \u4e00\u7ec4 \u706f my _ lights = lmanager . get _ light _ group ( carla . LightGroup . Building ) lmanager . turn _ on ( my _ lights ) lmanager . set _ color ( my _ lights , carla . Color ( 255 , 0 , 0 ) ) lmanager . set _ intensities ( my _ lights , list _ of _ intensities ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 / \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u4ee5\u4e0b \u662f \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \u53ef\u7528 \u7684 \u5217\u8868 \u3002 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3002 \u5b83\u4eec \u90fd \u6709 \u524d\u540e \u793a\u5ed3 \u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \u3002 \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 \u3001 \u9053\u5947 \uff08 \u8b66\u8f66 \uff09 \u3001 \u94b0 \u521b \u3001 \u6797\u80af \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 3S \u3001 \u5927\u4f17 T2 \u4ee5\u53ca \u5373\u5c06 \u5230\u6765 \u7684 Carla \u65b0 \u5ba2\u4eba \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights ) \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u5929\u6c14 environment . py \u90e8\u5206 \u4e2d \u63cf\u8ff0 \u7684 \u5b9e\u65f6 \u8bbe\u7f6e \u706f\u5149 \u3002 \u8c03\u8bd5 \u4e16\u754c \u5bf9\u8c61 \u6709 \u4e00\u4e2a carla . DebugHelper \u5bf9\u8c61 \u4f5c\u4e3a \u516c\u5171 \u5c5e\u6027 \u3002 \u5b83 \u5141\u8bb8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7ed8\u5236 \u4e0d\u540c \u7684 \u5f62\u72b6 \u3002 \u8fd9\u4e9b \u7528\u4e8e \u8ddf\u8e2a \u6b63\u5728 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5904 \u7ed8\u5236 \u4e00\u4e2a \u7ea2\u8272 \u6846 \u3002 debug = world . debug debug . draw _ box ( carla . BoundingBox ( actor _ snapshot . get _ transform ( ) . location , carla . Vector3D ( 0.5 , 0.5 , 2 ) ) , actor _ snapshot . get _ transform ( ) . rotation , 0.05 , carla . Color ( 255 , 0 , 0 , 0 ) , 0 ) \u6b64 \u793a\u4f8b \u5728 carla . DebugHelper \u7684 \u7247\u6bb5 \u4e2d \u8fdb\u884c \u4e86 \u6269\u5c55 \uff0c \u5c55\u793a \u4e86 \u5982\u4f55 \u4e3a \u4e16\u754c \u5feb\u7167 \u4e2d \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7ed8\u5236 \u65b9\u6846 \u3002 \u4e16\u754c \u5feb\u7167 \u5305\u542b \u4eff\u771f \u4e2d \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u7684 \u72b6\u6001 \u3002 \u4e00\u79cd \u5e26\u6709 \u65f6\u95f4 \u53c2\u8003 \u7684 \u9759\u6001 \u4e16\u754c \u56fe\u50cf \u3002 \u5373\u4f7f \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u4fe1\u606f \u4e5f \u6765\u81ea \u76f8\u540c \u7684 \u4eff\u771f \u6b65\u9aa4 \u3002 # \u68c0\u7d22 \u5f53\u524d \u5e27 \u7684 \u4e16\u754c \u5feb\u7167 \u3002 world _ snapshot = world . get _ snapshot ( ) carla . WorldSnapshot \u5305\u542b carla . Timestamp \u548c carla . ActorSnapshot \u5217\u8868 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u7684 \u641c\u7d22 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167 \u3002 \u5feb\u7167 \u5217\u51fa \u4e86 \u5176\u4e2d \u51fa\u73b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u3002 timestamp = world _ snapshot . timestamp # \u83b7\u53d6 \u65f6\u95f4 \u53c2\u8003 for actor _ snapshot in world _ snapshot : # \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u5feb\u7167 \u4fe1\u606f actual _ actor = world . get _ actor ( actor _ snapshot . id ) actor _ snapshot . get _ transform ( ) actor _ snapshot . get _ velocity ( ) actor _ snapshot . get _ angular _ velocity ( ) actor _ snapshot . get _ acceleration ( ) actor _ snapshot = world _ snapshot . find ( actual _ actor . id ) # \u83b7\u5f97 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167 \u4e16\u754c \u8bbe\u7f6e \u4e16\u754c \u53ef\u4ee5 \u4f7f\u7528 \u4e00\u4e9b \u9ad8\u7ea7 \u7684 \u4eff\u771f \u914d\u7f6e \u3002 \u8fd9\u4e9b \u51b3\u5b9a \u4e86 \u6e32\u67d3 \u6761\u4ef6 \u3001 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u4ece \u8f85\u52a9 \u7c7b carla . WorldSettings \u8bbf\u95ee \u3002 \u76ee\u524d \uff0c \u9ed8\u8ba4 \u7684 Carla \u4ee5 \u6700\u4f73 \u56fe\u5f62 \u8d28\u91cf \u3001 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u548c \u5f02\u6b65 \u65b9\u5f0f \u8fd0\u884c \u3002 \u8981 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u6df1\u5165 \u4e86\u89e3 \u6b64 \u95ee\u9898 \uff0c \u8bf7 \u67e5\u770b \u9ad8\u7ea7 \u6b65\u9aa4 \u90e8\u5206 \u3002 \u6709\u5173 \u540c\u6b65 \u3001 \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u6e32\u67d3 \u9009\u9879 \u7684 \u9875\u9762 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u8d77\u70b9 \u3002 \u8fd9 \u662f \u5bf9 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u5305\u88c5 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \uff0c \u4e3a \u4eff\u771f \u8d4b\u4e88 \u751f\u547d \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe","title":"\u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237\u7aef"},{"location":"core_world/#_1","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u662f Carla \u7684 \u4e24\u4e2a \u57fa\u672c \u8981\u7d20 \u57fa\u672c\u8981\u7d20 \uff0c \u662f \u64cd\u4f5c \u4eff\u771f \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5fc5\u8981 \u62bd\u8c61 \u3002 \u672c \u6559\u7a0b \u4ece \u5b9a\u4e49 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u548c \u521b\u5efa \uff0c \u5230 \u63cf\u8ff0 \u5b83\u4eec \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u3002 \u5982\u679c \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \u6216 \u95ee\u9898 \uff0c Carla \u8bba\u575b \u53ef\u4ee5 \u4e3a \u60a8 \u89e3\u51b3 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e16\u754c \u8fde\u63a5 \u5176\u4ed6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u4e16\u754c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5929\u6c14 \u706f\u5149 \u8c03\u8bd5 \u4e16\u754c \u5feb\u7167 \u4e16\u754c \u8bbe\u7f6e","title":"\u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237\u7aef"},{"location":"core_world/#_2","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u662f Carla \u67b6\u6784 \u4e2d \u7684 \u4e3b\u8981 \u5143\u7d20 \u4e4b\u4e00 \u3002 \u5b83\u4eec \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u68c0\u7d22 \u4fe1\u606f \u5e76 \u66f4\u6539 \u547d\u4ee4 \u3002 \u8fd9\u662f \u901a\u8fc7 \u811a\u672c \u5b8c\u6210 \u7684 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bc6\u522b \u81ea\u5df1 \u7684 \u8eab\u4efd \uff0c \u5e76 \u8fde\u63a5 \u5230 \u4e16\u754c \uff0c \u7136\u540e \u8fdb\u884c \u4eff\u771f \u64cd\u4f5c \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u5ba2\u6237 \u8fd8 \u53ef\u4ee5 \u8bbf\u95ee \u9ad8\u7ea7 Carla \u6a21\u5757 \u3001 \u529f\u80fd \u5e76 \u5e94\u7528 \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u672c\u8282 \u4ec5 \u4ecb\u7ecd \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bf8\u5982 \u751f\u6210 \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u7c7b \u7684 \u57fa\u672c \u4e8b\u60c5 \u5f88 \u6709\u7528 \u3002 \u5176\u4f59 \u529f\u80fd \u66f4\u52a0 \u590d\u6742 \uff0c \u5c06 \u5728 \u9ad8\u7ea7 \u6b65\u9aa4 \u4e2d \u5404\u81ea \u7684 \u9875\u9762 \u4e2d \u8fdb\u884c \u89e3\u51b3 \u3002 \u67e5\u770b Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u4ee5 \u4e86\u89e3 \u8be5\u7c7b \u7684 \u7279\u5b9a \u65b9\u6cd5 \u548c \u53d8\u91cf \u3002","title":"\u5ba2\u6237\u7aef"},{"location":"core_world/#_3","text":"\u9700\u8981 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u3002 \u6807\u8bc6 \u5b83 \u7684 IP \u5730\u5740 \u4ee5\u53ca \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u7684 \u4e24\u4e2a TCP \u7aef\u53e3 \u3002 \u53ef\u9009 \u7684 \u7b2c\u4e09 \u4e09\u4e2a \u7b2c\u4e09\u4e2a \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u5de5\u4f5c \u7ebf\u7a0b \u7684 \u6570\u91cf \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a \u5168\u90e8 ( 0 ) \u3002 Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u5305\u542b \u4e00\u4e2a \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u5728 \u8fd0\u884c \u811a\u672c \u65f6 \u5c06 \u8fd9\u4e9b \u89e3\u6790 \u4e3a \u53c2\u6570 \u3002 client = carla . Client ( ' localhost ' , 2000 ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4f7f\u7528 \u672c\u5730 \u4e3b\u673a IP \u548c \u7aef\u53e3 2000 \u8fdb\u884c \u8fde\u63a5 \uff0c \u4f46 \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u59cb\u7ec8 \u4e3a n + 1 , 2001 \u3002 \u521b\u5efa \u5ba2\u6237 \u5ba2\u6237\u7aef \u540e \uff0c \u8bbe\u7f6e \u5176 time - out \u3002 \u8fd9 \u9650\u5236 \u4e86 \u6240\u6709 \u7f51\u7edc \u64cd\u4f5c \uff0c \u4ee5\u4fbf \u8fd9\u4e9b \u64cd\u4f5c \u4e0d\u4f1a \u6c38\u8fdc \u963b\u6b62 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5982\u679c \u8fde\u63a5 \u5931\u8d25 \uff0c \u5c06 \u8fd4\u56de \u9519\u8bef \u3002 client . set _ timeout ( 10.0 ) # \u79d2 \u53ef\u4ee5 \u8fde\u63a5 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u56e0\u4e3a \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u811a\u672c \u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u5728 \u5177\u6709 \u9ad8\u7ea7 Carla \u529f\u80fd \uff08 \u4f8b\u5982 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \u7684 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65b9\u6848 \u4e2d \u5de5\u4f5c \uff0c \u5fc5\u7136 \u4f1a \u4f7f \u901a\u4fe1 \u66f4\u52a0 \u590d\u6742 \u3002 \u7b14\u8bb0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6709 \u4e0d\u540c \u7684 libcarla \u6a21\u5757 \u3002 \u5982\u679c \u7248\u672c \u4e0d\u540c \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 get _ client _ version ( ) \u548c get _ server _ version ( ) \u65b9\u6cd5 \u8fdb\u884c \u68c0\u67e5 \u3002","title":"\u5ba2\u6237\u7aef \u521b\u5efa"},{"location":"core_world/#_4","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u76f8\u5f53 \u8f7b\u677e \u5730 \u8fde\u63a5 \u548c \u68c0\u7d22 \u5f53\u524d \u4e16\u754c \u3002 world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u53ef\u4ee5 \u83b7\u5f97 \u53ef\u7528 \u5730\u56fe \u5217\u8868 \u6765 \u66f4\u6539 \u5f53\u524d \u5730\u56fe \u3002 \u8fd9 \u5c06 \u6467\u6bc1 \u5f53\u524d \u7684 \u4e16\u754c \u5e76 \u521b\u9020 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u754c \u3002 print ( client . get _ available _ maps ( ) ) ... world = client . load _ world ( ' Town01 ' ) # client . reload _ world ( ) \u521b\u5efa \u4e00\u4e2a \u76f8\u540c \u5730\u56fe \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4e16\u754c \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a id \u6216 \u4e16\u4ee3 \u3002 \u6bcf\u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8c03\u7528 load _ world ( ) \u6216 reload _ world ( ) \u65f6 \uff0c \u524d \u4e00\u4e2a \u88ab \u9500\u6bc1 \u3002 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u4ee3 \u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u7684 \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u865a\u5e7b \u5f15\u64ce \u4e0d\u4f1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u3002","title":"\u4e16\u754c \u8fde\u63a5"},{"location":"core_world/#_5","text":"\u547d\u4ee4 \u662f \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 Carla \u65b9\u6cd5 \u7684 \u6539\u7f16 \uff0c \u53ef\u4ee5 \u6279\u91cf \u5e94\u7528 \u3002 \u4f8b\u5982 \uff0c command . SetAutopilot \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e command . SetAutopilot \uff0c \u542f\u7528 \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 Client . apply _ batch \u6216 Client . apply _ batch _ sync ( ) \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u5728 \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u5e94\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u547d\u4ee4 \u3002 \u8fd9 \u5bf9\u4e8e \u901a\u5e38 \u5e94\u7528 \u4e8e \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u5143\u7d20 \u7684 \u65b9\u6cd5 \u6765\u8bf4 \u53d8\u5f97 \u975e\u5e38 \u6709\u7528 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u4f7f\u7528 \u5904\u7406 \u6279\u5904\u7406 \u4e00\u6b21 \u4e00\u6b21\u6027 \u9500\u6bc1 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8f66\u8f86 \u3002 client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) Python API \u53c2\u8003 \u7684 \u6700\u65b0 \u90e8\u5206 \u5217\u51fa \u4e86 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002","title":"\u4f7f\u7528 \u547d\u4ee4"},{"location":"core_world/#_6","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u4e3b\u8981 \u76ee\u7684 \u662f \u83b7\u53d6 \u6216 \u6539\u53d8 \u4e16\u754c \uff0c \u5e76 \u5e94\u7528 \u547d\u4ee4 \u3002 \u4f46\u662f \uff0c \u5b83 \u8fd8 \u63d0\u4f9b \u5bf9 \u4e00\u4e9b \u9644\u52a0 \u529f\u80fd \u7684 \u8bbf\u95ee \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6bcf\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u4ee5 \u91cd\u5efa \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 . \u5141\u8bb8 \u91cd\u65b0 \u8fdb\u884c \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u5feb\u7167 \u603b\u7ed3 \u6bcf\u5e27 \u7684 \u4eff\u771f \u72b6\u6001 \u3002","title":"\u5176\u4ed6 \u5ba2\u6237\u7aef \u5b9e\u7528\u7a0b\u5e8f"},{"location":"core_world/#_7","text":"\u4eff\u771f \u7684 \u4e3b\u8981 \u6807\u5c3a \u3002 \u5b83 \u7684 \u5b9e\u4f8b \u5e94\u8be5 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u3002 \u5b83 \u4e0d \u5305\u542b \u4e16\u754c \u672c\u8eab \u7684 \u6a21\u578b \uff0c \u8fd9\u662f Map \u7c7b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u76f8\u53cd \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4fe1\u606f \u548c \u5e38\u89c4 \u8bbe\u7f6e \u53ef\u4ee5 \u4ece \u6b64\u7c7b \u8bbf\u95ee \u3002 \u4eff\u771f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u3002 \u84dd \u56fe\u5e93 \u3002 \u5730\u56fe \u3002 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5feb\u7167 \u3002 \u5929\u6c14 \u548c \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u3002 \u5b83 \u7684 \u4e00\u4e9b \u6700 \u91cd\u8981 \u7684 \u65b9\u6cd5 \u662f getters \uff0c \u7cbe\u786e \u5730 \u68c0\u7d22 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u4fe1\u606f \u6216 \u5b9e\u4f8b \u3002 \u67e5\u770b carla . World \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u4e16\u754c"},{"location":"core_world/#_8","text":"\u4e16\u754c \u4e0a \u6709 \u4e0d\u540c \u7684 \u4e0e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u5173 \u7684 \u65b9\u6cd5 \uff0c \u5141\u8bb8 \u4e0d\u540c \u7684 \u529f\u80fd \u3002 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f46 \u4e0d \u6467\u6bc1 \u4ed6\u4eec \uff09 \u3002 \u83b7\u5f97 \u573a\u666f \u4e2d \u7684 \u6bcf \u4e00\u4f4d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u6216\u8005 \u627e\u5230 \u4e00\u4e2a \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u84dd \u56fe\u5e93 \u3002 \u8bbf\u95ee \u89c2\u5bdf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4eff\u771f \u7684 \u89c6\u89d2 \u3002 \u68c0\u7d22 \u9002\u5408 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u968f\u673a \u4f4d\u7f6e \u3002 \u751f\u6210 \u5c06 \u5728 \u7b2c\u4e8c \u90e8\u5206 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u3002 \u9700\u8981 \u5bf9 \u84dd \u56fe\u5e93 \u3001 \u5c5e\u6027 \u7b49 \u6709 \u4e00\u5b9a \u7684 \u4e86\u89e3 \u3002","title":"\u53c2\u4e0e\u8005"},{"location":"core_world/#_9","text":"\u5929\u6c14 \u672c\u8eab \u5e76 \u4e0d\u662f \u4e00\u4e2a \u7c7b \uff0c \u800c\u662f \u4e00\u7ec4 \u53ef \u4ece \u4e16\u754c \u83b7\u53d6 \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \u5316 \u5305\u62ec \u592a\u9633 \u65b9\u5411 \u3001 \u4e91\u91cf \u3001 \u98ce \u3001 \u96fe \u7b49\u7b49 \u3002 \u8f85\u52a9 \u7c7b carla . WeatherParameters \u7528\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u3002 weather = carla . WeatherParameters ( cloudiness = 80.0 , precipitation = 30.0 , sun _ altitude _ angle = 70.0 ) world . set _ weather ( weather ) print ( world . get _ weather ( ) ) \u6709 \u4e00\u4e9b \u5929\u6c14 \u9884\u8bbe \u53ef\u4ee5 \u76f4\u63a5 \u5e94\u7528 \u4e8e \u4e16\u754c \u3002 \u8fd9\u4e9b \u5217 \u5728 carla . WeatherParameters \u4e2d \u5e76 \u53ef \u4f5c\u4e3a \u679a\u4e3e \u8bbf\u95ee \u3002 world . set _ weather ( carla . WeatherParameters . WetCloudySunset ) \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u4e24\u4e2a \u811a\u672c \u6765\u81ea \u5b9a\u4e49 \u5929\u6c14 \u3002 environment . py ( \u5728 PythonAPI / util \u76ee\u5f55 \u4e0b ) \u2014 \u63d0\u4f9b \u5bf9 \u5929\u6c14 \u548c \u5149\u7167 \u53c2\u6570 \u7684 \u8bbf\u95ee \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5b9e\u65f6 \u66f4\u6539 \u8fd9\u4e9b \u53c2\u6570 \u3002 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] dynamic _ weather . py ( \u5728 PythonAPI / examples \u76ee\u5f55 \u4e0b ) \u2014 \u542f\u7528 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4e3a \u6bcf\u5f20 Carla \u5730\u56fe \u51c6\u5907 \u7684 \u7279\u5b9a \u5929\u6c14 \u5468\u671f \u3002 dynamic _ weather . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - s FACTOR , -- speed FACTOR rate at which the weather changes ( default : 1.0 ) \u7b14\u8bb0 \u5929\u6c14 \u7684 \u53d8\u5316 \u4e0d\u4f1a \u5f71\u54cd \u7269\u7406 \u3002 \u5b83\u4eec \u53ea\u662f \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6355\u83b7 \u7684 \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \u3002 \u5f53 sun _ altitude _ angle < 0 \u65f6 \uff0c \u591c\u95f4 \u6a21\u5f0f \u5f00\u59cb \uff0c \u8fd9 \u88ab \u8ba4\u4e3a \u662f \u65e5\u843d \u3002 \u8fd9\u662f \u706f\u5149 \u53d8\u5f97 \u7279\u522b \u91cd\u8981 \u7684 \u65f6\u5019 \u3002","title":"\u5929\u6c14"},{"location":"core_world/#_10","text":"\u5f53 \u4eff\u771f \u8fdb\u5165 \u591c\u95f4 \u6a21\u5f0f \u65f6 \uff0c \u8def\u706f \u4f1a \u81ea\u52a8 \u6253\u5f00 \u3002 \u706f\u5149 \u7531 \u5730\u56fe \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u653e\u7f6e \uff0c \u5e76 \u53ef \u4f5c\u4e3a carla . Light \u5bf9\u8c61 \u8bbf\u95ee \u3002 \u989c\u8272 \u548c \u5f3a\u5ea6 \u7b49 \u5c5e\u6027 \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 carla . LightState \u7c7b\u578b \u7684 \u53d8\u91cf light _ state \u5141\u8bb8 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u8bbe\u7f6e \u6240\u6709 \u8fd9\u4e9b \u3002 \u8def\u706f \u4f7f\u7528 \u5176 \u7c7b\u578b \u4e3a carla . LightState \u7684 \u5c5e\u6027 light _ state \u8fdb\u884c \u5206\u7c7b \u3002 \u8fd9 \u5141\u8bb8 \u5c06 \u706f \u5206\u7c7b \u4e3a \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u706f ... \u53ef\u4ee5 \u68c0\u7d22 [ carla . LightManager ] \u7684 \u5b9e\u4f8b \u6765 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u5904\u7406 \u4e00\u7ec4 \u706f \u3002 # \u83b7\u5f97 \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u548c \u706f\u5149 lmanager = world . get _ lightmanager ( ) mylights = lmanager . get _ all _ lights ( ) # \u5b9a\u5236 \u4e00\u4e2a \u7279\u5b9a \u7684 \u706f\u5149 light01 = mylights [ 0 ] light01 . turn _ on ( ) light01 . set _ intensity ( 100.0 ) state01 = carla . LightState ( 200.0 , red , carla . LightGroup . Building , True ) light01 . set _ light _ state ( state01 ) # \u5b9a\u5236 \u4e00\u7ec4 \u706f my _ lights = lmanager . get _ light _ group ( carla . LightGroup . Building ) lmanager . turn _ on ( my _ lights ) lmanager . set _ color ( my _ lights , carla . Color ( 255 , 0 , 0 ) ) lmanager . set _ intensities ( my _ lights , list _ of _ intensities ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 / \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u4ee5\u4e0b \u662f \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \u53ef\u7528 \u7684 \u5217\u8868 \u3002 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3002 \u5b83\u4eec \u90fd \u6709 \u524d\u540e \u793a\u5ed3 \u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \u3002 \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 \u3001 \u9053\u5947 \uff08 \u8b66\u8f66 \uff09 \u3001 \u94b0 \u521b \u3001 \u6797\u80af \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 3S \u3001 \u5927\u4f17 T2 \u4ee5\u53ca \u5373\u5c06 \u5230\u6765 \u7684 Carla \u65b0 \u5ba2\u4eba \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights ) \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u5929\u6c14 environment . py \u90e8\u5206 \u4e2d \u63cf\u8ff0 \u7684 \u5b9e\u65f6 \u8bbe\u7f6e \u706f\u5149 \u3002","title":"\u706f\u5149"},{"location":"core_world/#_11","text":"\u4e16\u754c \u5bf9\u8c61 \u6709 \u4e00\u4e2a carla . DebugHelper \u5bf9\u8c61 \u4f5c\u4e3a \u516c\u5171 \u5c5e\u6027 \u3002 \u5b83 \u5141\u8bb8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7ed8\u5236 \u4e0d\u540c \u7684 \u5f62\u72b6 \u3002 \u8fd9\u4e9b \u7528\u4e8e \u8ddf\u8e2a \u6b63\u5728 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5904 \u7ed8\u5236 \u4e00\u4e2a \u7ea2\u8272 \u6846 \u3002 debug = world . debug debug . draw _ box ( carla . BoundingBox ( actor _ snapshot . get _ transform ( ) . location , carla . Vector3D ( 0.5 , 0.5 , 2 ) ) , actor _ snapshot . get _ transform ( ) . rotation , 0.05 , carla . Color ( 255 , 0 , 0 , 0 ) , 0 ) \u6b64 \u793a\u4f8b \u5728 carla . DebugHelper \u7684 \u7247\u6bb5 \u4e2d \u8fdb\u884c \u4e86 \u6269\u5c55 \uff0c \u5c55\u793a \u4e86 \u5982\u4f55 \u4e3a \u4e16\u754c \u5feb\u7167 \u4e2d \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7ed8\u5236 \u65b9\u6846 \u3002","title":"\u8c03\u8bd5"},{"location":"core_world/#_12","text":"\u5305\u542b \u4eff\u771f \u4e2d \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u7684 \u72b6\u6001 \u3002 \u4e00\u79cd \u5e26\u6709 \u65f6\u95f4 \u53c2\u8003 \u7684 \u9759\u6001 \u4e16\u754c \u56fe\u50cf \u3002 \u5373\u4f7f \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u4fe1\u606f \u4e5f \u6765\u81ea \u76f8\u540c \u7684 \u4eff\u771f \u6b65\u9aa4 \u3002 # \u68c0\u7d22 \u5f53\u524d \u5e27 \u7684 \u4e16\u754c \u5feb\u7167 \u3002 world _ snapshot = world . get _ snapshot ( ) carla . WorldSnapshot \u5305\u542b carla . Timestamp \u548c carla . ActorSnapshot \u5217\u8868 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u7684 \u641c\u7d22 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167 \u3002 \u5feb\u7167 \u5217\u51fa \u4e86 \u5176\u4e2d \u51fa\u73b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u3002 timestamp = world _ snapshot . timestamp # \u83b7\u53d6 \u65f6\u95f4 \u53c2\u8003 for actor _ snapshot in world _ snapshot : # \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u5feb\u7167 \u4fe1\u606f actual _ actor = world . get _ actor ( actor _ snapshot . id ) actor _ snapshot . get _ transform ( ) actor _ snapshot . get _ velocity ( ) actor _ snapshot . get _ angular _ velocity ( ) actor _ snapshot . get _ acceleration ( ) actor _ snapshot = world _ snapshot . find ( actual _ actor . id ) # \u83b7\u5f97 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167","title":"\u4e16\u754c \u5feb\u7167"},{"location":"core_world/#_13","text":"\u4e16\u754c \u53ef\u4ee5 \u4f7f\u7528 \u4e00\u4e9b \u9ad8\u7ea7 \u7684 \u4eff\u771f \u914d\u7f6e \u3002 \u8fd9\u4e9b \u51b3\u5b9a \u4e86 \u6e32\u67d3 \u6761\u4ef6 \u3001 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u4ece \u8f85\u52a9 \u7c7b carla . WorldSettings \u8bbf\u95ee \u3002 \u76ee\u524d \uff0c \u9ed8\u8ba4 \u7684 Carla \u4ee5 \u6700\u4f73 \u56fe\u5f62 \u8d28\u91cf \u3001 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u548c \u5f02\u6b65 \u65b9\u5f0f \u8fd0\u884c \u3002 \u8981 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u6df1\u5165 \u4e86\u89e3 \u6b64 \u95ee\u9898 \uff0c \u8bf7 \u67e5\u770b \u9ad8\u7ea7 \u6b65\u9aa4 \u90e8\u5206 \u3002 \u6709\u5173 \u540c\u6b65 \u3001 \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u6e32\u67d3 \u9009\u9879 \u7684 \u9875\u9762 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u8d77\u70b9 \u3002 \u8fd9 \u662f \u5bf9 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u5305\u88c5 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \uff0c \u4e3a \u4eff\u771f \u8d4b\u4e88 \u751f\u547d \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe","title":"\u4e16\u754c \u8bbe\u7f6e"},{"location":"cpp/","text":"C++ \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u8fd0\u884c doxygen \u5c06 \u5728 Doxygen / html \u76ee\u5f55 \u4e0b \u751f\u6210 html \u6587\u4ef6 \uff0c \u6587\u6863 \u4e3b\u9875 \u4f4d\u4e8e \u3002 \u6240\u6709 \u7c7b \u7684 \u7ee7\u627f \u5173\u7cfb \u3002 LibCarla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u4e0d \u4f7f\u7528 Nagle \u7b97\u6cd5 \uff0c \u5c06 Linux \u4e0a \u7684 \u540c\u6b65 \u6a21\u5f0f \u901f\u5ea6 \u63d0\u9ad8 \u4e86 \u7ea6 3 \u500d \u3002 _ socket . set _ option ( boost : : asio : : ip : : tcp : : no _ delay ( true ) ) ; \u7b14\u8bb0 Nagle \u7b97\u6cd5 \u662f \u4e00\u79cd \u7528\u4e8e \u63d0\u9ad8 TCP / IP \u7f51\u7edc \u6027\u80fd \u7684 \u7b97\u6cd5 \uff0c \u5b83 \u901a\u8fc7 \u51cf\u5c11 \u6570\u636e \u6570\u636e\u5305 \u7684 \u53d1\u9001 \u53d1\u9001\u91cf \u6765 \u51cf\u5c11 \u7f51\u7edc \u62e5\u5835 \u3002 Nagle \u7b97\u6cd5 \u7684 \u4e3b\u8981 \u76ee\u7684 \u662f \u5408\u5e76 \u4e00\u5b9a \u6570\u91cf \u7684 \u8f93\u51fa \u6570\u636e \u540e \u4e00\u6b21 \u4e00\u6b21\u6027 \u63d0\u4ea4 \uff0c \u4ee5 \u907f\u514d \u7f51\u7edc \u4e2d \u5145\u65a5 \u7740 \u8bb8\u591a \u5c0f \u6570\u636e \u5757 \u3002 \u5f53 TCP \u62a5\u6587 \u627f\u8f7d \u7684 \u6570\u636e \u6570\u636e\u91cf \u975e\u5e38 \u5c0f\u65f6 \uff0c \u4f8b\u5982 \u51e0\u4e2a \u5b57\u8282 \uff0c \u6574\u4e2a \u7f51\u7edc \u7684 \u6548\u7387 \u4f1a \u5f88 \u4f4e \uff0c \u56e0\u4e3a \u6bcf\u4e2a TCP \u62a5\u6587 \u4e2d \u90fd \u4f1a \u5305\u542b \u5927\u91cf \u7684 \u5934\u90e8 \u4fe1\u606f \uff0c \u800c \u6709\u6548 \u6570\u636e \u5360\u6709 \u7684 \u6bd4\u91cd \u5c31 \u4f1a \u975e\u5e38 \u975e\u5e38\u4f4e \u3002 Nagle \u7b97\u6cd5 \u8981\u6c42 \uff0c \u5f53 \u4e00\u4e2a TCP \u8fde\u63a5 \u4e2d\u6709 \u5728 \u4f20 \u6570\u636e \uff08 \u5df2\u7ecf \u53d1\u51fa \u4f46 \u8fd8 \u672a \u786e\u8ba4 \u7684 \u6570\u636e \uff09 \u65f6 \uff0c \u5c0f\u4e8e MSS \uff08 \u6700\u5927 \u5206\u6bb5 \u5927\u5c0f \uff09 \u7684 \u62a5\u6587 \u6bb5 \u5c31 \u4e0d\u80fd \u88ab \u53d1\u9001 \uff0c \u76f4\u5230 \u6240\u6709 \u7684 \u5728 \u4f20 \u6570\u636e \u90fd \u6536\u5230 \u4e86 ACK \u3002 \u540c\u65f6 \u6536\u5230 ACK \u540e \uff0c TCP \u8fd8 \u4e0d\u4f1a \u9a6c\u4e0a \u5c31 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \uff0c \u4f1a \u6536\u96c6 \u5c0f\u5305 \u5408\u5e76 \u4e00\u8d77 \u53d1\u9001 \u3002 \u7136\u800c \uff0c Nagle \u7b97\u6cd5 \u5e76 \u4e0d\u9002 \u7528\u4e8e \u6240\u6709 \u60c5\u51b5 \uff0c \u5728 \u4e00\u4e9b \u8981\u6c42 \u4f4e \u5ef6\u8fdf \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \uff08 \u4f8b\u5982 \u5373\u65f6 \u901a\u8baf \u5373\u65f6\u901a \u5373\u65f6\u901a\u8baf \u5e94\u7528 \uff09 \uff0c Nagle \u7b97\u6cd5 \u7684 \u89c4\u5b9a \u662f \u4e0d\u6613 \u88ab \u63a5\u53d7 \u7684 \uff0c \u56e0\u6b64 \u9700\u8981 \u8bbe\u7f6e TCP _ NODELAY \u6216\u8005 TCP _ CORK \u5173\u95ed Nagle \u7b97\u6cd5 \u3002 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u793a\u4f8b \u53ea \u652f\u6301 \u5728 Linux \u4e0a \u8fd0\u884c \u3002","title":"Cpp"},{"location":"cpp/#c","text":"\u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u8fd0\u884c doxygen \u5c06 \u5728 Doxygen / html \u76ee\u5f55 \u4e0b \u751f\u6210 html \u6587\u4ef6 \uff0c \u6587\u6863 \u4e3b\u9875 \u4f4d\u4e8e \u3002 \u6240\u6709 \u7c7b \u7684 \u7ee7\u627f \u5173\u7cfb \u3002","title":"C++"},{"location":"cpp/#libcarla","text":"","title":"LibCarla"},{"location":"cpp/#_1","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u4e0d \u4f7f\u7528 Nagle \u7b97\u6cd5 \uff0c \u5c06 Linux \u4e0a \u7684 \u540c\u6b65 \u6a21\u5f0f \u901f\u5ea6 \u63d0\u9ad8 \u4e86 \u7ea6 3 \u500d \u3002 _ socket . set _ option ( boost : : asio : : ip : : tcp : : no _ delay ( true ) ) ; \u7b14\u8bb0 Nagle \u7b97\u6cd5 \u662f \u4e00\u79cd \u7528\u4e8e \u63d0\u9ad8 TCP / IP \u7f51\u7edc \u6027\u80fd \u7684 \u7b97\u6cd5 \uff0c \u5b83 \u901a\u8fc7 \u51cf\u5c11 \u6570\u636e \u6570\u636e\u5305 \u7684 \u53d1\u9001 \u53d1\u9001\u91cf \u6765 \u51cf\u5c11 \u7f51\u7edc \u62e5\u5835 \u3002 Nagle \u7b97\u6cd5 \u7684 \u4e3b\u8981 \u76ee\u7684 \u662f \u5408\u5e76 \u4e00\u5b9a \u6570\u91cf \u7684 \u8f93\u51fa \u6570\u636e \u540e \u4e00\u6b21 \u4e00\u6b21\u6027 \u63d0\u4ea4 \uff0c \u4ee5 \u907f\u514d \u7f51\u7edc \u4e2d \u5145\u65a5 \u7740 \u8bb8\u591a \u5c0f \u6570\u636e \u5757 \u3002 \u5f53 TCP \u62a5\u6587 \u627f\u8f7d \u7684 \u6570\u636e \u6570\u636e\u91cf \u975e\u5e38 \u5c0f\u65f6 \uff0c \u4f8b\u5982 \u51e0\u4e2a \u5b57\u8282 \uff0c \u6574\u4e2a \u7f51\u7edc \u7684 \u6548\u7387 \u4f1a \u5f88 \u4f4e \uff0c \u56e0\u4e3a \u6bcf\u4e2a TCP \u62a5\u6587 \u4e2d \u90fd \u4f1a \u5305\u542b \u5927\u91cf \u7684 \u5934\u90e8 \u4fe1\u606f \uff0c \u800c \u6709\u6548 \u6570\u636e \u5360\u6709 \u7684 \u6bd4\u91cd \u5c31 \u4f1a \u975e\u5e38 \u975e\u5e38\u4f4e \u3002 Nagle \u7b97\u6cd5 \u8981\u6c42 \uff0c \u5f53 \u4e00\u4e2a TCP \u8fde\u63a5 \u4e2d\u6709 \u5728 \u4f20 \u6570\u636e \uff08 \u5df2\u7ecf \u53d1\u51fa \u4f46 \u8fd8 \u672a \u786e\u8ba4 \u7684 \u6570\u636e \uff09 \u65f6 \uff0c \u5c0f\u4e8e MSS \uff08 \u6700\u5927 \u5206\u6bb5 \u5927\u5c0f \uff09 \u7684 \u62a5\u6587 \u6bb5 \u5c31 \u4e0d\u80fd \u88ab \u53d1\u9001 \uff0c \u76f4\u5230 \u6240\u6709 \u7684 \u5728 \u4f20 \u6570\u636e \u90fd \u6536\u5230 \u4e86 ACK \u3002 \u540c\u65f6 \u6536\u5230 ACK \u540e \uff0c TCP \u8fd8 \u4e0d\u4f1a \u9a6c\u4e0a \u5c31 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \uff0c \u4f1a \u6536\u96c6 \u5c0f\u5305 \u5408\u5e76 \u4e00\u8d77 \u53d1\u9001 \u3002 \u7136\u800c \uff0c Nagle \u7b97\u6cd5 \u5e76 \u4e0d\u9002 \u7528\u4e8e \u6240\u6709 \u60c5\u51b5 \uff0c \u5728 \u4e00\u4e9b \u8981\u6c42 \u4f4e \u5ef6\u8fdf \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \uff08 \u4f8b\u5982 \u5373\u65f6 \u901a\u8baf \u5373\u65f6\u901a \u5373\u65f6\u901a\u8baf \u5e94\u7528 \uff09 \uff0c Nagle \u7b97\u6cd5 \u7684 \u89c4\u5b9a \u662f \u4e0d\u6613 \u88ab \u63a5\u53d7 \u7684 \uff0c \u56e0\u6b64 \u9700\u8981 \u8bbe\u7f6e TCP _ NODELAY \u6216\u8005 TCP _ CORK \u5173\u95ed Nagle \u7b97\u6cd5 \u3002 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u793a\u4f8b \u53ea \u652f\u6301 \u5728 Linux \u4e0a \u8fd0\u884c \u3002","title":"\u5ba2\u6237\u7aef"},{"location":"cpp_client/","text":"C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \u6b64 \u793a\u4f8b \u4f7f\u7528 CARLA \u7684 C++ API \u521b\u5efa \u4e00\u4e2a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u4ee5 \u4ece C++ \u8fde\u63a5 \u548c \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u7f16\u8bd1 \u548c \u8fd0\u884c \u4f7f\u7528 \u63d0\u4f9b \u7684 Makefile \uff08 \u4ec5\u9650 Linux \uff09 \u7f16\u8bd1 \u5e76 \u8fd0\u884c \u793a\u4f8b \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5b83 \u5e0c\u671b \u6709 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5728 2000 \u7aef\u53e3 \u8fd0\u884c \u3002 make run \u5b83 \u7684 \u5de5\u4f5c \u539f\u7406 \u4e3a\u4e86 \u5c06 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u94fe\u63a5 \u5230 LibCarla \uff0c \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u4e0e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u76f8\u540c \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u914d\u7f6e \u6765 \u7f16\u8bd1 LibCarla \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u751f\u6210 \u4e00\u4e2a CMake \u5de5\u5177 \u94fe \u6587\u4ef6 \uff0c \u6307\u5b9a \u6240 \u9700 \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u6807\u5fd7 # Example ToolChain . cmake set ( CMAKE _ C _ COMPILER / usr / bin / clang - 8 ) set ( CMAKE _ CXX _ COMPILER / usr / bin / clang ++- 8 ) set ( CMAKE _ CXX _ FLAGS \" $ { CMAKE _ CXX _ FLAGS } - std = c++ 14 - O3 - DNDEBUG \" CACHE STRING \" \" FORCE ) We pass this file to CMake when compiling LibCarla . client cd / path / to / carla - root - folder make setup cd / path / to / build - folder cmake \\ - G \" Ninja \" \\ - DCMAKE _ BUILD _ TYPE = Client \\ - DLIBCARLA _ BUILD _ RELEASE = ON \\ - DLIBCARLA _ BUILD _ DEBUG = OFF \\ - DLIBCARLA _ BUILD _ TEST = OFF \\ - DCMAKE _ TOOLCHAIN _ FILE = / path / to / ToolChain . cmake \\ - DCMAKE _ INSTALL _ PREFIX = / path / to / install - folder \\ / path / to / carla - root - folder ninja ninja install This will generate the following structure at the provided install path libcarla - install \u251c \u2500 \u2500 include \u2502 \u251c \u2500 \u2500 carla \u2502 \u251c \u2500 \u2500 cephes \u2502 \u251c \u2500 \u2500 pugixml | \u251c \u2500 \u2500 ... \u2502 \u2514 \u2500 \u2500 system \u2502 \u251c \u2500 \u2500 boost \u2502 \u251c \u2500 \u2500 recast \u2502 \u2514 \u2500 \u2500 rpc \u2514 \u2500 \u2500 lib \u251c \u2500 \u2500 libcarla _ client . a \u251c \u2500 \u2500 librpc . a \u251c \u2500 \u2500 libboost _ filesystem . a \u2514 \u2500 \u2500 ... Our application needs to be linked at minimum against libcarla _ client . a , librpc . a , libRecast . a , and libDetour * . a . If we make use of IO functionality and / or image processing we would need to link against boost _ filesystem , png , tiff , and / or jpeg . For more details take a look at the Makefile provided .","title":"C++ \u5ba2\u6237\u7aef \u793a\u4f8b"},{"location":"cpp_client/#c","text":"\u6b64 \u793a\u4f8b \u4f7f\u7528 CARLA \u7684 C++ API \u521b\u5efa \u4e00\u4e2a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u4ee5 \u4ece C++ \u8fde\u63a5 \u548c \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002","title":"C++ \u5ba2\u6237\u7aef \u793a\u4f8b"},{"location":"cpp_client/#_1","text":"\u4f7f\u7528 \u63d0\u4f9b \u7684 Makefile \uff08 \u4ec5\u9650 Linux \uff09 \u7f16\u8bd1 \u5e76 \u8fd0\u884c \u793a\u4f8b \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5b83 \u5e0c\u671b \u6709 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5728 2000 \u7aef\u53e3 \u8fd0\u884c \u3002 make run","title":"\u7f16\u8bd1 \u548c \u8fd0\u884c"},{"location":"cpp_client/#_2","text":"\u4e3a\u4e86 \u5c06 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u94fe\u63a5 \u5230 LibCarla \uff0c \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u4e0e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u76f8\u540c \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u914d\u7f6e \u6765 \u7f16\u8bd1 LibCarla \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u751f\u6210 \u4e00\u4e2a CMake \u5de5\u5177 \u94fe \u6587\u4ef6 \uff0c \u6307\u5b9a \u6240 \u9700 \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u6807\u5fd7 # Example ToolChain . cmake set ( CMAKE _ C _ COMPILER / usr / bin / clang - 8 ) set ( CMAKE _ CXX _ COMPILER / usr / bin / clang ++- 8 ) set ( CMAKE _ CXX _ FLAGS \" $ { CMAKE _ CXX _ FLAGS } - std = c++ 14 - O3 - DNDEBUG \" CACHE STRING \" \" FORCE ) We pass this file to CMake when compiling LibCarla . client cd / path / to / carla - root - folder make setup cd / path / to / build - folder cmake \\ - G \" Ninja \" \\ - DCMAKE _ BUILD _ TYPE = Client \\ - DLIBCARLA _ BUILD _ RELEASE = ON \\ - DLIBCARLA _ BUILD _ DEBUG = OFF \\ - DLIBCARLA _ BUILD _ TEST = OFF \\ - DCMAKE _ TOOLCHAIN _ FILE = / path / to / ToolChain . cmake \\ - DCMAKE _ INSTALL _ PREFIX = / path / to / install - folder \\ / path / to / carla - root - folder ninja ninja install This will generate the following structure at the provided install path libcarla - install \u251c \u2500 \u2500 include \u2502 \u251c \u2500 \u2500 carla \u2502 \u251c \u2500 \u2500 cephes \u2502 \u251c \u2500 \u2500 pugixml | \u251c \u2500 \u2500 ... \u2502 \u2514 \u2500 \u2500 system \u2502 \u251c \u2500 \u2500 boost \u2502 \u251c \u2500 \u2500 recast \u2502 \u2514 \u2500 \u2500 rpc \u2514 \u2500 \u2500 lib \u251c \u2500 \u2500 libcarla _ client . a \u251c \u2500 \u2500 librpc . a \u251c \u2500 \u2500 libboost _ filesystem . a \u2514 \u2500 \u2500 ... Our application needs to be linked at minimum against libcarla _ client . a , librpc . a , libRecast . a , and libDetour * . a . If we make use of IO functionality and / or image processing we would need to link against boost _ filesystem , png , tiff , and / or jpeg . For more details take a look at the Makefile provided .","title":"\u5b83 \u7684 \u5de5\u4f5c \u539f\u7406"},{"location":"custom_assets_tutorials/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 Carla \u62e5\u6709 \u5927\u91cf \u5f00\u7bb1 \u5373\u7528 \u7684 \u8d44\u4ea7 \uff0c \u5305\u62ec \u5b8c\u6574 \u7684 \u57ce\u9547 \u548c \u57ce\u5e02 \u4ee5\u53ca \u9053\u8def \u7f51\u7edc \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u4ee5 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u3002 \u7136\u800c \uff0c \u5bf9\u4e8e \u8bb8\u591a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u60a8 \u53ef\u80fd \u60f3\u8981 \u6dfb\u52a0 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \uff0c \u800c Carla \u5b8c\u5168 \u6709 \u80fd\u529b \u52a0\u8f7d \u5b8c\u5168 \u7531 \u7528\u6237 \u521b\u5efa \u7684 \u65b0 \u8d44\u4ea7 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \u5e76 \u5c06 \u5176 \u6dfb\u52a0 \u5230 Carla \u7684 \u591a\u79cd \u6280\u672f \u3002 \u6dfb\u52a0 \u9053\u5177 \u6dfb\u52a0 \u8f66\u8f86 \u6253\u5305 \u8d44\u4ea7 \u5b9a\u5236 \u6750\u6599 \u6dfb\u52a0 \u9053\u5177 \u9053\u5177 \u662f \u573a\u666f \u4e2d\u9664 \u9053\u8def \u548c \u8f66\u8f86 \u4e4b\u5916 \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5305\u542b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u5177 \u3002 \u6dfb\u52a0 \u8f66\u8f86 \u8f66\u8f86 \u662f Carla \u7684 \u652f\u67f1 \u3002 \u5b83\u4eec \u7528\u4e8e \u4eff\u771f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \uff0c \u5e76 \u5145\u5f53 \u81ea\u52a8 \u667a\u80fd \u4f53 \u63a7\u5236 \u7684 \u8f66\u8f86 \u7684 \u865a\u62df \u4eff\u771f \u3002 Carla \u62e5\u6709 \u4e00\u4e2a \u5e9e\u5927 \u4e14 \u4e0d\u65ad \u589e\u957f \u7684 \u5f00\u7bb1 \u5373\u7528 \u8f66\u8f86 \u5e93 \uff0c \u4f46 \u5bf9\u4e8e \u7279\u6b8a \u5e94\u7528 \uff0c Carla \u80fd\u591f \u88c5\u8f7d \u5b9a\u5236 \u8bbe\u8ba1 \u7684 \u8f66\u8f86 \u3002 \u672c \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u3002 \u6253\u5305 \u8d44\u4ea7 \u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u6253\u5305 \u8d44\u6e90 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u5b9a\u5236 \u6750\u6599 Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u5b9e\u73b0 \u8fd9\u4e00 \u76ee\u6807 \u3002","title":"\u81ea\u5b9a\u4e49 \u8d44\u4ea7"},{"location":"custom_assets_tutorials/#_1","text":"Carla \u62e5\u6709 \u5927\u91cf \u5f00\u7bb1 \u5373\u7528 \u7684 \u8d44\u4ea7 \uff0c \u5305\u62ec \u5b8c\u6574 \u7684 \u57ce\u9547 \u548c \u57ce\u5e02 \u4ee5\u53ca \u9053\u8def \u7f51\u7edc \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u4ee5 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u3002 \u7136\u800c \uff0c \u5bf9\u4e8e \u8bb8\u591a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u60a8 \u53ef\u80fd \u60f3\u8981 \u6dfb\u52a0 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \uff0c \u800c Carla \u5b8c\u5168 \u6709 \u80fd\u529b \u52a0\u8f7d \u5b8c\u5168 \u7531 \u7528\u6237 \u521b\u5efa \u7684 \u65b0 \u8d44\u4ea7 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \u5e76 \u5c06 \u5176 \u6dfb\u52a0 \u5230 Carla \u7684 \u591a\u79cd \u6280\u672f \u3002 \u6dfb\u52a0 \u9053\u5177 \u6dfb\u52a0 \u8f66\u8f86 \u6253\u5305 \u8d44\u4ea7 \u5b9a\u5236 \u6750\u6599","title":"\u81ea\u5b9a\u4e49 \u8d44\u4ea7"},{"location":"custom_assets_tutorials/#_2","text":"\u9053\u5177 \u662f \u573a\u666f \u4e2d\u9664 \u9053\u8def \u548c \u8f66\u8f86 \u4e4b\u5916 \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5305\u542b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u5177 \u3002","title":"\u6dfb\u52a0 \u9053\u5177"},{"location":"custom_assets_tutorials/#_3","text":"\u8f66\u8f86 \u662f Carla \u7684 \u652f\u67f1 \u3002 \u5b83\u4eec \u7528\u4e8e \u4eff\u771f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \uff0c \u5e76 \u5145\u5f53 \u81ea\u52a8 \u667a\u80fd \u4f53 \u63a7\u5236 \u7684 \u8f66\u8f86 \u7684 \u865a\u62df \u4eff\u771f \u3002 Carla \u62e5\u6709 \u4e00\u4e2a \u5e9e\u5927 \u4e14 \u4e0d\u65ad \u589e\u957f \u7684 \u5f00\u7bb1 \u5373\u7528 \u8f66\u8f86 \u5e93 \uff0c \u4f46 \u5bf9\u4e8e \u7279\u6b8a \u5e94\u7528 \uff0c Carla \u80fd\u591f \u88c5\u8f7d \u5b9a\u5236 \u8bbe\u8ba1 \u7684 \u8f66\u8f86 \u3002 \u672c \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u3002","title":"\u6dfb\u52a0 \u8f66\u8f86"},{"location":"custom_assets_tutorials/#_4","text":"\u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u6253\u5305 \u8d44\u6e90 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002","title":"\u6253\u5305 \u8d44\u4ea7"},{"location":"custom_assets_tutorials/#_5","text":"Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u5b9e\u73b0 \u8fd9\u4e00 \u76ee\u6807 \u3002","title":"\u5b9a\u5236 \u6750\u6599"},{"location":"custom_plate/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 Carla \u4e2d \u8f66\u8f86 \u7684 \u8f66\u724c \u5728 Carla \u6a21\u62df \u73af\u5883 \u4e2d \uff0c \u9ed8\u8ba4 \u7684 \u8f66\u8f86 \u8f66\u724c \u662f \u9884\u8bbe \u7684 \u9759\u6001 \u8d44\u4ea7 \u3002 \u5982\u679c \u9700\u8981 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u8f66\u724c \u4ee5 \u6ee1\u8db3 \u7279\u5b9a \u7684 \u6d4b\u8bd5 \u9700\u6c42 \u6216 \u589e\u5f3a \u573a\u666f \u7684 \u771f\u5b9e \u771f\u5b9e\u6027 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u4e13\u4e1a \u65b9\u6cd5 \u6765 \u66ff\u6362 Carla \u4e2d \u8f66\u8f86 \u7684 \u8f66\u724c \uff1a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u8f66\u724c \u7684 \u6b65\u9aa4 1 . \u8d44\u4ea7 \u51c6\u5907 \u9996\u5148 \uff0c \u8bbe\u8ba1 \u6216 \u83b7\u53d6 \u4f60 \u60f3\u8981 \u5e94\u7528 \u7684 \u8f66\u724c \u56fe\u50cf \u3002 \u786e\u4fdd \u56fe\u50cf \u7b26\u5408 \u5b9e\u9645 \u7b26\u5408\u5b9e\u9645 \u8f66\u724c \u7684 \u5c3a\u5bf8 \u548c \u8bbe\u8ba1 \u89c4\u8303 \u8bbe\u8ba1\u89c4\u8303 \u3002 \u8f66\u724c \u56fe\u50cf \u5e94 \u4fdd\u5b58 \u4e3a \u9ad8\u5206 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u9ad8\u5206\u8fa8\u7387 \u7684 . PNG \u6216 . JPG \u6587\u4ef6 \uff0c \u4ee5 \u4fdd\u6301 \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \u7684 \u6e05\u6670 \u6e05\u6670\u5ea6 \u3002 \u5c06 \u8bbe\u8ba1 \u597d \u7684 \u56fe\u7247 \u5bfc\u5165 Carla \u4e2d \u5bf9\u5e94 \u7684 \u76ee\u5f55 \u4e0b \uff0c \u5e76 \u8f6c\u6362 \u4e3a \u6750\u8d28 \u3002 \u5982\u4e0b \u56fe \u6240\u793a \uff1a \u5c06 \u56fe\u7247 \u76f4\u63a5 \u62d6\u81f3 / Game / Carla / Static / GenericMaterials / Licenseplates , \u53f3\u952e \u9009\u62e9 \u521b\u5efa \u6750\u8d28 2 . \u6750\u8d28 \u66ff\u6362 \u5bfc \u80ae\u81f3 Carla / Blueprints / Vehicles \u4e0b \u7684 \u76ee\u6807 \u8f66\u8f86 \uff0c \u53f3\u952e \u9009\u62e9 \u7f16\u8f91 \u3002 \u5982\u4e0b \u56fe \u6240\u793a \uff1a \u8fdb\u5165 \u8f66\u8f86 \u8d44\u4ea7 \u7f16\u8f91 \u754c\u9762 \u540e \uff0c \u53cc\u51fb \u7f51\u683c \u4f53 \uff08 VehicleMesh \uff09 \u7ee7\u627f \uff0c \u4f1a \u51fa\u73b0 \u8f66\u8f86 \u4ee5\u53ca \u8f66\u8f86 \u6240 \u5f15\u7528 \u7684 \u8d44\u4ea7 \u3002 \u5c06 \u8f66\u8f86 \u653e\u5927 \uff0c \u4ee5\u4fbf \u67e5\u770b \u662f\u5426 \u4fee\u6539 \u6210\u529f \u3002 \u627e\u5230 \u8f66\u8f86 \u8f66\u724c \u4f4d\u7f6e \uff0c \u5c06\u6750 \u8def\u5f84 \u66ff\u6362 \u4e3a \u5148\u524d \u6240 \u51c6\u5907 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \u3002 \u8fd9\u6837 \uff0c \u6211\u4eec \u7684 \u8f66\u724c \u5df2\u7ecf \u66ff\u6362 \u6210\u529f \uff01 \u56de\u5230 \u4e3b \u754c\u9762 \uff0c \u70b9\u51fb \u7f16\u8bd1 \u8fd0\u884c \uff0c \u5219 \u51fa\u73b0 \u6211\u4eec \u60f3\u8981 \u7684 \u6548\u679c \uff01 3 . \u6d4b\u8bd5 \u8f66\u724c \u66ff\u6362 \u6210\u529f \u540e \uff0c \u5c06 \u573a\u666f \u5bfc\u51fa \uff0c \u6253\u5305 \u6210 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u8fd0\u884c python \u811a\u672c \u5728 \u573a\u666f \u4e2d \u6dfb\u52a0 \u5df2\u7ecf \u88ab \u66ff\u6362 \u8fc7 \u8f66\u724c \u7684 \u8f66\u8f86 \uff0c \u8c03\u6574 \u89c6\u89d2 \uff0c \u89c2\u5bdf \u8f66\u724c \u3002 \u6700\u540e \u663e\u793a \u7ed3\u679c \u5982\u4e0b \u56fe \u6240\u793a \uff1a","title":"\u81ea\u5b9a\u4e49 Carla \u4e2d \u8f66\u8f86 \u7684 \u8f66\u724c"},{"location":"custom_plate/#carla","text":"\u5728 Carla \u6a21\u62df \u73af\u5883 \u4e2d \uff0c \u9ed8\u8ba4 \u7684 \u8f66\u8f86 \u8f66\u724c \u662f \u9884\u8bbe \u7684 \u9759\u6001 \u8d44\u4ea7 \u3002 \u5982\u679c \u9700\u8981 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u8f66\u724c \u4ee5 \u6ee1\u8db3 \u7279\u5b9a \u7684 \u6d4b\u8bd5 \u9700\u6c42 \u6216 \u589e\u5f3a \u573a\u666f \u7684 \u771f\u5b9e \u771f\u5b9e\u6027 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u4e13\u4e1a \u65b9\u6cd5 \u6765 \u66ff\u6362 Carla \u4e2d \u8f66\u8f86 \u7684 \u8f66\u724c \uff1a","title":"\u81ea\u5b9a\u4e49 Carla \u4e2d \u8f66\u8f86 \u7684 \u8f66\u724c"},{"location":"custom_plate/#_1","text":"1 . \u8d44\u4ea7 \u51c6\u5907 \u9996\u5148 \uff0c \u8bbe\u8ba1 \u6216 \u83b7\u53d6 \u4f60 \u60f3\u8981 \u5e94\u7528 \u7684 \u8f66\u724c \u56fe\u50cf \u3002 \u786e\u4fdd \u56fe\u50cf \u7b26\u5408 \u5b9e\u9645 \u7b26\u5408\u5b9e\u9645 \u8f66\u724c \u7684 \u5c3a\u5bf8 \u548c \u8bbe\u8ba1 \u89c4\u8303 \u8bbe\u8ba1\u89c4\u8303 \u3002 \u8f66\u724c \u56fe\u50cf \u5e94 \u4fdd\u5b58 \u4e3a \u9ad8\u5206 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u9ad8\u5206\u8fa8\u7387 \u7684 . PNG \u6216 . JPG \u6587\u4ef6 \uff0c \u4ee5 \u4fdd\u6301 \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \u7684 \u6e05\u6670 \u6e05\u6670\u5ea6 \u3002 \u5c06 \u8bbe\u8ba1 \u597d \u7684 \u56fe\u7247 \u5bfc\u5165 Carla \u4e2d \u5bf9\u5e94 \u7684 \u76ee\u5f55 \u4e0b \uff0c \u5e76 \u8f6c\u6362 \u4e3a \u6750\u8d28 \u3002 \u5982\u4e0b \u56fe \u6240\u793a \uff1a \u5c06 \u56fe\u7247 \u76f4\u63a5 \u62d6\u81f3 / Game / Carla / Static / GenericMaterials / Licenseplates , \u53f3\u952e \u9009\u62e9 \u521b\u5efa \u6750\u8d28 2 . \u6750\u8d28 \u66ff\u6362 \u5bfc \u80ae\u81f3 Carla / Blueprints / Vehicles \u4e0b \u7684 \u76ee\u6807 \u8f66\u8f86 \uff0c \u53f3\u952e \u9009\u62e9 \u7f16\u8f91 \u3002 \u5982\u4e0b \u56fe \u6240\u793a \uff1a \u8fdb\u5165 \u8f66\u8f86 \u8d44\u4ea7 \u7f16\u8f91 \u754c\u9762 \u540e \uff0c \u53cc\u51fb \u7f51\u683c \u4f53 \uff08 VehicleMesh \uff09 \u7ee7\u627f \uff0c \u4f1a \u51fa\u73b0 \u8f66\u8f86 \u4ee5\u53ca \u8f66\u8f86 \u6240 \u5f15\u7528 \u7684 \u8d44\u4ea7 \u3002 \u5c06 \u8f66\u8f86 \u653e\u5927 \uff0c \u4ee5\u4fbf \u67e5\u770b \u662f\u5426 \u4fee\u6539 \u6210\u529f \u3002 \u627e\u5230 \u8f66\u8f86 \u8f66\u724c \u4f4d\u7f6e \uff0c \u5c06\u6750 \u8def\u5f84 \u66ff\u6362 \u4e3a \u5148\u524d \u6240 \u51c6\u5907 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \u3002 \u8fd9\u6837 \uff0c \u6211\u4eec \u7684 \u8f66\u724c \u5df2\u7ecf \u66ff\u6362 \u6210\u529f \uff01 \u56de\u5230 \u4e3b \u754c\u9762 \uff0c \u70b9\u51fb \u7f16\u8bd1 \u8fd0\u884c \uff0c \u5219 \u51fa\u73b0 \u6211\u4eec \u60f3\u8981 \u7684 \u6548\u679c \uff01 3 . \u6d4b\u8bd5 \u8f66\u724c \u66ff\u6362 \u6210\u529f \u540e \uff0c \u5c06 \u573a\u666f \u5bfc\u51fa \uff0c \u6253\u5305 \u6210 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u8fd0\u884c python \u811a\u672c \u5728 \u573a\u666f \u4e2d \u6dfb\u52a0 \u5df2\u7ecf \u88ab \u66ff\u6362 \u8fc7 \u8f66\u724c \u7684 \u8f66\u8f86 \uff0c \u8c03\u6574 \u89c6\u89d2 \uff0c \u89c2\u5bdf \u8f66\u724c \u3002 \u6700\u540e \u663e\u793a \u7ed3\u679c \u5982\u4e0b \u56fe \u6240\u793a \uff1a","title":"\u81ea\u5b9a\u4e49 \u8f66\u8f86 \u8f66\u724c \u7684 \u6b65\u9aa4"},{"location":"development_tutorials/","text":"\u5f00\u53d1 Carla \u662f \u5f00\u6e90 \u7684 \uff0c \u5e76\u4e14 \u5177\u6709 \u9ad8\u5ea6 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u529f\u80fd \u6216 \u5185\u5bb9 \u4ee5 \u6ee1\u8db3 \u4e13\u95e8 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6216 \u7279\u5b9a \u9700\u6c42 \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u4f7f\u7528 Carla \u4ee3\u7801 \u5e93 \u5b9e\u73b0 \u7279\u5b9a \u7684 \u5f00\u53d1 \u76ee\u6807 \uff1a \u8fdb\u884c \u53d1\u5e03 \u5347\u7ea7 \u5185\u5bb9 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u78b0\u649e \u8fb9\u754c \u8fdb\u884c \u53d1\u5e03 \u5982\u679c \u60a8 \u60f3 \u5f00\u53d1 \u81ea\u5df1 \u7684 Carla \u5206\u652f \u5e76 \u53d1\u5e03 \u4ee3\u7801 \u7248\u672c \uff0c \u8bf7 \u9075\u5faa \u672c \u6307\u5357 \u3002 \u5347\u7ea7 \u5185\u5bb9 \u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u5b58\u50a8 \u5e93\u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u5b58\u50a8 \u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u8bf7 \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u5347\u7ea7 \u5185\u5bb9 \u3002 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e Carla \u6709 \u4e00\u7ec4 \u5df2 \u5b9a\u4e49 \u7684 \u8bed\u4e49 \u6807\u7b7e \uff0c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7528\u4f8b \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u9700\u8981 \u5176\u4ed6 \u8bfe\u7a0b \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u672c \u6307\u5357 \u4e2d \u7684 \u8be6\u7ec6 \u8bf4\u660e \u6dfb\u52a0 \u5b83\u4eec \u3002 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u60a8 \u53ef\u4ee5 \u4fee\u6539 Carla \u7684 C++ \u4ee3\u7801 \u6765 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7528\u4f8b \u521b\u5efa \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 Carla \u6709 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u53ef \u5e2e\u52a9 \u7cfb\u7edf \u5bf9\u7cfb\u7edf \u6027\u80fd \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u5728 \u8fd9\u91cc \u627e\u5230 \u5b8c\u6574 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u6709\u5173 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u3002 \u751f\u6210 \u78b0\u649e \u8fb9\u754c \u6709\u5173 \u4e3a \u8f66\u8f86 \u751f\u6210 \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6307\u5357 \u3002","title":"\u5f00\u53d1"},{"location":"development_tutorials/#_1","text":"Carla \u662f \u5f00\u6e90 \u7684 \uff0c \u5e76\u4e14 \u5177\u6709 \u9ad8\u5ea6 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u529f\u80fd \u6216 \u5185\u5bb9 \u4ee5 \u6ee1\u8db3 \u4e13\u95e8 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6216 \u7279\u5b9a \u9700\u6c42 \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u4f7f\u7528 Carla \u4ee3\u7801 \u5e93 \u5b9e\u73b0 \u7279\u5b9a \u7684 \u5f00\u53d1 \u76ee\u6807 \uff1a \u8fdb\u884c \u53d1\u5e03 \u5347\u7ea7 \u5185\u5bb9 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u78b0\u649e \u8fb9\u754c","title":"\u5f00\u53d1"},{"location":"development_tutorials/#_2","text":"\u5982\u679c \u60a8 \u60f3 \u5f00\u53d1 \u81ea\u5df1 \u7684 Carla \u5206\u652f \u5e76 \u53d1\u5e03 \u4ee3\u7801 \u7248\u672c \uff0c \u8bf7 \u9075\u5faa \u672c \u6307\u5357 \u3002","title":"\u8fdb\u884c \u53d1\u5e03"},{"location":"development_tutorials/#_3","text":"\u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u5b58\u50a8 \u5e93\u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u5b58\u50a8 \u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u8bf7 \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u5347\u7ea7 \u5185\u5bb9 \u3002","title":"\u5347\u7ea7 \u5185\u5bb9"},{"location":"development_tutorials/#_4","text":"Carla \u6709 \u4e00\u7ec4 \u5df2 \u5b9a\u4e49 \u7684 \u8bed\u4e49 \u6807\u7b7e \uff0c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7528\u4f8b \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u9700\u8981 \u5176\u4ed6 \u8bfe\u7a0b \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u672c \u6307\u5357 \u4e2d \u7684 \u8be6\u7ec6 \u8bf4\u660e \u6dfb\u52a0 \u5b83\u4eec \u3002","title":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e"},{"location":"development_tutorials/#_5","text":"\u60a8 \u53ef\u4ee5 \u4fee\u6539 Carla \u7684 C++ \u4ee3\u7801 \u6765 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7528\u4f8b \u521b\u5efa \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u521b\u5efa \u65b0 \u4f20\u611f\u5668"},{"location":"development_tutorials/#_6","text":"Carla \u6709 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u53ef \u5e2e\u52a9 \u7cfb\u7edf \u5bf9\u7cfb\u7edf \u6027\u80fd \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u5728 \u8fd9\u91cc \u627e\u5230 \u5b8c\u6574 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5"},{"location":"development_tutorials/#_7","text":"\u6709\u5173 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u3002","title":"\u8bb0\u5f55\u5668 \u6587\u4ef6\u683c\u5f0f"},{"location":"development_tutorials/#_8","text":"\u6709\u5173 \u4e3a \u8f66\u8f86 \u751f\u6210 \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6307\u5357 \u3002","title":"\u751f\u6210 \u78b0\u649e \u8fb9\u754c"},{"location":"download/","text":"\u4e0b\u8f7d \u6700\u65b0 \u53d1\u5e03 Carla 0.9 . 15 - \u6587\u6863 \u6bcf\u665a \u6784\u5efa \u8fd9\u662f \u4e00\u4e2a \u81ea\u52a8 \u6784\u5efa \uff0c \u6700\u65b0 \u7684 \u66f4\u6539 \u5df2 \u63a8\u9001 \u5230 \u6211\u4eec \u7684 dev \u5206\u652f \u3002 \u5b83 \u5305\u542b \u5c06 \u6210\u4e3a \u4e0b \u4e00\u4e2a \u7248\u672c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \uff0c \u4f46 \u4e5f \u5305\u542b \u4e00\u4e9b \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u66f4\u6539 \u3002 \u4f7f\u7528 \u98ce\u9669 \u81ea\u8d1f \uff01 Carla \u6bcf\u665a \u6784\u5efa ( Linux ) \u9644\u52a0 \u5730\u56fe \u591c\u95f4 \u6784\u5efa ( Linux ) Carla \u6bcf\u665a \u6784\u5efa \uff08 Windows \uff09 \u9644\u52a0 \u5730\u56fe \u6bcf\u665a \u6784\u5efa ( Windows ) \u7248\u672c 0.9 . x \u4ee5\u4e0b \u662f Carla \u7684 \u5148\u524d \u7248\u672c \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u7248\u672c \u7684 \u7279\u5b9a \u6587\u6863 \u7684 \u94fe\u63a5 \uff1a Carla 0.9 . 14 - \u6587\u6863 Carla 0.9 . 13 - \u6587\u6863 Carla 0.9 . 12 - \u6587\u6863 Carla 0.9 . 11 - \u6587\u6863 Carla 0.9 . 10 - \u6587\u6863 Carla 0.9 . 9 - \u6587\u6863 Carla 0.9 . 8 - \u6587\u6863 Carla 0.9 . 7 - \u6587\u6863 Carla 0.9 . 6 - \u6587\u6863 Carla 0.9 . 5 - \u6587\u6863 Carla 0.9 . 4 - \u6587\u6863 Carla 0.9 . 3 - \u6587\u6863 Carla 0.9 . 2 - \u6587\u6863 Carla 0.9 . 1 - \u6587\u6863 Carla 0.9 . 0 - \u6587\u6863 Versions 0.8 . x Carla 0.8 . 4 - \u6587\u6863 Carla 0.8 . 3 Carla 0.8 . 2 - \u6587\u6863 Docker \u6240\u6709 \u7248\u672c \u90fd \u53ef\u4ee5 \u4ece DockerHub \u4e2d \u83b7\u53d6 \uff1a docker pull carlasim / carla : X . X . X \u4f7f\u7528 \u6807\u7b7e \u201c latest \u201d \u8868\u793a \u6700\u65b0 \u7248\u672c \uff1a docker pull carlasim / carla : latest","title":"\u4e0b\u8f7d"},{"location":"download/#_1","text":"","title":"\u4e0b\u8f7d"},{"location":"download/#_2","text":"Carla 0.9 . 15 - \u6587\u6863","title":"\u6700\u65b0 \u53d1\u5e03"},{"location":"download/#_3","text":"\u8fd9\u662f \u4e00\u4e2a \u81ea\u52a8 \u6784\u5efa \uff0c \u6700\u65b0 \u7684 \u66f4\u6539 \u5df2 \u63a8\u9001 \u5230 \u6211\u4eec \u7684 dev \u5206\u652f \u3002 \u5b83 \u5305\u542b \u5c06 \u6210\u4e3a \u4e0b \u4e00\u4e2a \u7248\u672c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \uff0c \u4f46 \u4e5f \u5305\u542b \u4e00\u4e9b \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u66f4\u6539 \u3002 \u4f7f\u7528 \u98ce\u9669 \u81ea\u8d1f \uff01 Carla \u6bcf\u665a \u6784\u5efa ( Linux ) \u9644\u52a0 \u5730\u56fe \u591c\u95f4 \u6784\u5efa ( Linux ) Carla \u6bcf\u665a \u6784\u5efa \uff08 Windows \uff09 \u9644\u52a0 \u5730\u56fe \u6bcf\u665a \u6784\u5efa ( Windows )","title":"\u6bcf\u665a \u6784\u5efa"},{"location":"download/#09x","text":"\u4ee5\u4e0b \u662f Carla \u7684 \u5148\u524d \u7248\u672c \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u7248\u672c \u7684 \u7279\u5b9a \u6587\u6863 \u7684 \u94fe\u63a5 \uff1a Carla 0.9 . 14 - \u6587\u6863 Carla 0.9 . 13 - \u6587\u6863 Carla 0.9 . 12 - \u6587\u6863 Carla 0.9 . 11 - \u6587\u6863 Carla 0.9 . 10 - \u6587\u6863 Carla 0.9 . 9 - \u6587\u6863 Carla 0.9 . 8 - \u6587\u6863 Carla 0.9 . 7 - \u6587\u6863 Carla 0.9 . 6 - \u6587\u6863 Carla 0.9 . 5 - \u6587\u6863 Carla 0.9 . 4 - \u6587\u6863 Carla 0.9 . 3 - \u6587\u6863 Carla 0.9 . 2 - \u6587\u6863 Carla 0.9 . 1 - \u6587\u6863 Carla 0.9 . 0 - \u6587\u6863","title":"\u7248\u672c 0.9 . x"},{"location":"download/#versions-08x","text":"Carla 0.8 . 4 - \u6587\u6863 Carla 0.8 . 3 Carla 0.8 . 2 - \u6587\u6863","title":"Versions 0.8 . x"},{"location":"download/#docker","text":"\u6240\u6709 \u7248\u672c \u90fd \u53ef\u4ee5 \u4ece DockerHub \u4e2d \u83b7\u53d6 \uff1a docker pull carlasim / carla : X . X . X \u4f7f\u7528 \u6807\u7b7e \u201c latest \u201d \u8868\u793a \u6700\u65b0 \u7248\u672c \uff1a docker pull carlasim / carla : latest","title":"Docker"},{"location":"ecosys_ansys/","text":"Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \uff1a \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \u5728 2021 \u5e74 4 \u6708 \u7684 \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7cfb\u5217 \u4e2d \uff0c Ansys \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Ansys \u5b9e\u65f6 \u96f7\u8fbe ( Real Time Radar , RTR ) \u4e0e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u96c6\u6210 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u4e0b\u8f7d \u5e76 \u67e5\u770b \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u9644\u5e26 \u7684 \u6f14\u793a \u5e7b\u706f \u5e7b\u706f\u7247 \u548c \u89c6\u9891 \u3002 \u8be5 \u6f14\u793a \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5b9e\u65f6 \u96f7\u8fbe \u5982\u4f55 \u4e0e Carla \u96c6\u6210 \uff0c \u4ee5 \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u5e76 \u5305\u62ec \u6240 \u4f7f\u7528 \u7684 \u6a21\u578b \u3001 \u52a8\u4f5c \u7a7a\u95f4 \u548c \u5956\u52b1 \u7b56\u7565 \u3002 \u89c6\u9891 \u663e\u793a \u4e86 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u8bad\u7ec3 \u7ed3\u679c \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6f14\u793a \u6587\u7a3f \u5e76 \u5728 \u6b64\u5904 \u67e5\u770b \u89c6\u9891 \u3002","title":"Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b"},{"location":"ecosys_ansys/#ansys","text":"\u5728 2021 \u5e74 4 \u6708 \u7684 \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7cfb\u5217 \u4e2d \uff0c Ansys \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Ansys \u5b9e\u65f6 \u96f7\u8fbe ( Real Time Radar , RTR ) \u4e0e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u96c6\u6210 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u4e0b\u8f7d \u5e76 \u67e5\u770b \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u9644\u5e26 \u7684 \u6f14\u793a \u5e7b\u706f \u5e7b\u706f\u7247 \u548c \u89c6\u9891 \u3002 \u8be5 \u6f14\u793a \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5b9e\u65f6 \u96f7\u8fbe \u5982\u4f55 \u4e0e Carla \u96c6\u6210 \uff0c \u4ee5 \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u5e76 \u5305\u62ec \u6240 \u4f7f\u7528 \u7684 \u6a21\u578b \u3001 \u52a8\u4f5c \u7a7a\u95f4 \u548c \u5956\u52b1 \u7b56\u7565 \u3002 \u89c6\u9891 \u663e\u793a \u4e86 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u8bad\u7ec3 \u7ed3\u679c \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6f14\u793a \u6587\u7a3f \u5e76 \u5728 \u6b64\u5904 \u67e5\u770b \u89c6\u9891 \u3002","title":"Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \uff1a \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236\u5668"},{"location":"ecosys_femfx/","text":"\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6 FEMFX \u662f \u4e00\u4e2a \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \uff0c \u4f7f\u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 ( Finite Element Method , FEM ) \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u6211\u4eec \u6253\u7b97 \u8ba9 \u8fd9\u4e9b \u529f\u80fd \u8865\u5145 \u800c \u4e0d\u662f \u53d6\u4ee3 \u4f20\u7edf \u7684 \u521a\u4f53 \u7269\u7406 \u3002 \u8be5 \u7cfb\u7edf \u7684 \u8bbe\u8ba1 \u8003\u8651 \u4e86 \u4ee5\u4e0b \u56e0\u7d20 \uff1a \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \uff1a \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u903c\u771f \u7684 \u6728\u6750 \u3001 \u91d1\u5c5e \u3001 \u5851\u6599 \uff0c \u751a\u81f3 \u73bb\u7483 \uff0c \u56e0\u4e3a \u5b83\u4eec \u50cf \u771f\u5b9e \u6750\u6599 \u4e00\u6837 \u6839\u636e \u538b\u529b \u5f2f\u66f2 \u548c \u65ad\u88c2 \u3002 \u53d8\u5f62 \u6548\u679c \uff1a \u975e \u521a\u6027 \u7528\u4f8b \uff0c \u4f8b\u5982 \u8f6f\u4f53 \u7269\u4f53 \u3001 \u5f2f\u66f2 \u6216 \u626d\u66f2 \u7684 \u7269\u4f53 \u3002 \u8fd9 \u4e0d\u4ec5 \u4ec5\u4ec5 \u4e0d\u4ec5\u4ec5 \u662f \u4e00\u79cd \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \uff0c \u800c\u4e14 \u6750\u6599 \u4f1a \u62b5\u6297 \u6216 \u63a8\u56de \u5176\u4ed6 \u7269\u4f53 \u3002 \u52a8\u6001 \u66f4\u6539 \u6750\u8d28 \uff1a \u60a8 \u53ef\u4ee5 \u66f4\u6539 \u8bbe\u7f6e \u4ee5 \u4f7f \u540c\u4e00 \u5bf9\u8c61 \u7684 \u884c\u4e3a \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \uff0c \u4f8b\u5982 \u53d8\u6210 \u51dd\u80f6 \u72b6 \u6216 \u878d\u5316 \u6e38\u620f \u6216 \u8c1c\u9898 \u7684 \u6709\u8da3 \u7269\u7406 \u4ea4\u4e92 \u8be5\u5e93 \u4f7f\u7528 \u5e7f\u6cdb \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u6765 \u5229\u7528 \u591a\u6838 CPU \uff0c \u5e76 \u4ece CPU \u6838\u5fc3 \u6570\u91cf \u589e\u52a0 \u7684 \u8d8b\u52bf \u4e2d \u53d7\u76ca \u3002","title":"\u6709\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6"},{"location":"ecosys_femfx/#_1","text":"FEMFX \u662f \u4e00\u4e2a \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \uff0c \u4f7f\u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 ( Finite Element Method , FEM ) \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u6211\u4eec \u6253\u7b97 \u8ba9 \u8fd9\u4e9b \u529f\u80fd \u8865\u5145 \u800c \u4e0d\u662f \u53d6\u4ee3 \u4f20\u7edf \u7684 \u521a\u4f53 \u7269\u7406 \u3002 \u8be5 \u7cfb\u7edf \u7684 \u8bbe\u8ba1 \u8003\u8651 \u4e86 \u4ee5\u4e0b \u56e0\u7d20 \uff1a \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \uff1a \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u903c\u771f \u7684 \u6728\u6750 \u3001 \u91d1\u5c5e \u3001 \u5851\u6599 \uff0c \u751a\u81f3 \u73bb\u7483 \uff0c \u56e0\u4e3a \u5b83\u4eec \u50cf \u771f\u5b9e \u6750\u6599 \u4e00\u6837 \u6839\u636e \u538b\u529b \u5f2f\u66f2 \u548c \u65ad\u88c2 \u3002 \u53d8\u5f62 \u6548\u679c \uff1a \u975e \u521a\u6027 \u7528\u4f8b \uff0c \u4f8b\u5982 \u8f6f\u4f53 \u7269\u4f53 \u3001 \u5f2f\u66f2 \u6216 \u626d\u66f2 \u7684 \u7269\u4f53 \u3002 \u8fd9 \u4e0d\u4ec5 \u4ec5\u4ec5 \u4e0d\u4ec5\u4ec5 \u662f \u4e00\u79cd \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \uff0c \u800c\u4e14 \u6750\u6599 \u4f1a \u62b5\u6297 \u6216 \u63a8\u56de \u5176\u4ed6 \u7269\u4f53 \u3002 \u52a8\u6001 \u66f4\u6539 \u6750\u8d28 \uff1a \u60a8 \u53ef\u4ee5 \u66f4\u6539 \u8bbe\u7f6e \u4ee5 \u4f7f \u540c\u4e00 \u5bf9\u8c61 \u7684 \u884c\u4e3a \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \uff0c \u4f8b\u5982 \u53d8\u6210 \u51dd\u80f6 \u72b6 \u6216 \u878d\u5316 \u6e38\u620f \u6216 \u8c1c\u9898 \u7684 \u6709\u8da3 \u7269\u7406 \u4ea4\u4e92 \u8be5\u5e93 \u4f7f\u7528 \u5e7f\u6cdb \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u6765 \u5229\u7528 \u591a\u6838 CPU \uff0c \u5e76 \u4ece CPU \u6838\u5fc3 \u6570\u91cf \u589e\u52a0 \u7684 \u8d8b\u52bf \u4e2d \u53d7\u76ca \u3002","title":"\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6"},{"location":"ecosys_iss/","text":"\u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \uff08 Intelligent Self - driving System , ISS \uff09 \u662f \u4e00\u4e2a \u7528 Python \u548c C++ \u7f16\u5199 \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u6846\u67b6 \uff0c \u65e8\u5728 \u6784\u5efa \u4e00\u4e2a \u9002\u5408 \u7814\u7a76 \u7684 \u53ef \u6269\u5c55 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u611f\u77e5 \u3001 \u5b9a\u4f4d \u3001 \u6620\u5c04 \u3001 \u9884\u6d4b \u3001 \u89c4\u5212 \u548c \u63a7\u5236 \u3002 \u5bf9\u5916 \u5916\u90e8 \u5bf9\u5916\u90e8 \u5e93 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6700\u5c0f \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u8bbe\u8ba1 \u53ef\u4ee5 \u4e3a \u7814\u7a76 \u4eba\u5458 \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u900f\u660e \u3001 \u5e72\u51c0 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u5b89\u88c5 \u7b97\u6cd5 \u611f\u77e5 \u5b9a\u4f4d \u9884\u6d4b \u89c4\u5212 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u793a\u4f8b \u76ee\u524d \uff0c \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u6846\u67b6 \u80fd\u591f \u4f7f\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u6765 \u90e8\u7f72 \u548c \u6d4b\u8bd5 \u7b97\u6cd5 \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u96c6\u6210 \u5230 \u6211\u4eec \u7684 \u6846\u67b6 \u4e2d\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bc4\u4f30 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7b97\u6cd5 \u3002 \u6b64\u5916 \uff0c \u53ef\u4ee5 \u91c7\u7528 \u76f8\u5e94 \u7684 \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u6765 \u64cd\u7eb5 \u4eff\u771f \u8f66\u8f86 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u6f14\u793a \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d PointPillar 3D \u68c0\u6d4b \u7b97\u6cd5 \u7684 \u5b9e\u65f6 \u6f14\u793a \u5c55\u793a \u672c\u5730 \u884c\u4e3a \u89c4\u5212 \u7684 \u6f14\u793a \u5fae\u578b \u5fae\u578b\u8f66 \u6f14\u793a \u9664\u4e86 \u4eff\u771f \u7ed3\u679c \u4e4b\u5916 \uff0c \u5982\u679c \u6765\u81ea \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u901a\u8fc7 ROS \u4f20\u8f93 \u56de ISS \uff0c \u5219 ISS \u6846\u67b6 \u53ef\u4ee5 \u5229\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5b8c\u6210 \u5404\u79cd \u4efb\u52a1 \u5e76 \u5bf9 \u7269\u7406 \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u8fdb\u884c \u63a7\u5236 \u3002 \u6211\u4eec \u5728 \u4e0b\u9762 \u5c55\u793a \u4e86 \u4e09\u4e2a \u89c6\u9891 \uff0c \u5c55\u793a \u4e86 ISS \u4e0e \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4e92\u52a8 \u3002 \u4e24\u4e2a \u6f14\u793a \u5206\u522b \u5c55\u793a \u4e86 \u5728 \u5ba4\u5185 \u548c \u5ba4\u5916 \u73af\u5883 \u4e2d \u5bfc\u822a \u7684 \u5b9e\u4f53 \u5fae\u578b \u5fae\u578b\u8f66 \u4f7f\u7528 \u6765\u81ea \u7269\u7406 \u5fae\u578b \u5fae\u578b\u8f66 \u7684 \u6570\u636e \u5c55\u793a A - LOAM SLAM \u7b97\u6cd5 \u7684 \u6f14\u793a","title":"ISS \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf"},{"location":"ecosys_iss/#_1","text":"\u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \uff08 Intelligent Self - driving System , ISS \uff09 \u662f \u4e00\u4e2a \u7528 Python \u548c C++ \u7f16\u5199 \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u6846\u67b6 \uff0c \u65e8\u5728 \u6784\u5efa \u4e00\u4e2a \u9002\u5408 \u7814\u7a76 \u7684 \u53ef \u6269\u5c55 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u611f\u77e5 \u3001 \u5b9a\u4f4d \u3001 \u6620\u5c04 \u3001 \u9884\u6d4b \u3001 \u89c4\u5212 \u548c \u63a7\u5236 \u3002 \u5bf9\u5916 \u5916\u90e8 \u5bf9\u5916\u90e8 \u5e93 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6700\u5c0f \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u8bbe\u8ba1 \u53ef\u4ee5 \u4e3a \u7814\u7a76 \u4eba\u5458 \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u900f\u660e \u3001 \u5e72\u51c0 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u5b89\u88c5 \u7b97\u6cd5 \u611f\u77e5 \u5b9a\u4f4d \u9884\u6d4b \u89c4\u5212 \u63a7\u5236","title":"\u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf"},{"location":"ecosys_iss/#_2","text":"\u76ee\u524d \uff0c \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u6846\u67b6 \u80fd\u591f \u4f7f\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u6765 \u90e8\u7f72 \u548c \u6d4b\u8bd5 \u7b97\u6cd5 \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u96c6\u6210 \u5230 \u6211\u4eec \u7684 \u6846\u67b6 \u4e2d\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bc4\u4f30 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7b97\u6cd5 \u3002 \u6b64\u5916 \uff0c \u53ef\u4ee5 \u91c7\u7528 \u76f8\u5e94 \u7684 \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u6765 \u64cd\u7eb5 \u4eff\u771f \u8f66\u8f86 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u6f14\u793a \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d PointPillar 3D \u68c0\u6d4b \u7b97\u6cd5 \u7684 \u5b9e\u65f6 \u6f14\u793a \u5c55\u793a \u672c\u5730 \u884c\u4e3a \u89c4\u5212 \u7684 \u6f14\u793a","title":"\u4eff\u771f\u5668 \u793a\u4f8b"},{"location":"ecosys_iss/#_3","text":"\u9664\u4e86 \u4eff\u771f \u7ed3\u679c \u4e4b\u5916 \uff0c \u5982\u679c \u6765\u81ea \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u901a\u8fc7 ROS \u4f20\u8f93 \u56de ISS \uff0c \u5219 ISS \u6846\u67b6 \u53ef\u4ee5 \u5229\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5b8c\u6210 \u5404\u79cd \u4efb\u52a1 \u5e76 \u5bf9 \u7269\u7406 \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u8fdb\u884c \u63a7\u5236 \u3002 \u6211\u4eec \u5728 \u4e0b\u9762 \u5c55\u793a \u4e86 \u4e09\u4e2a \u89c6\u9891 \uff0c \u5c55\u793a \u4e86 ISS \u4e0e \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4e92\u52a8 \u3002 \u4e24\u4e2a \u6f14\u793a \u5206\u522b \u5c55\u793a \u4e86 \u5728 \u5ba4\u5185 \u548c \u5ba4\u5916 \u73af\u5883 \u4e2d \u5bfc\u822a \u7684 \u5b9e\u4f53 \u5fae\u578b \u5fae\u578b\u8f66 \u4f7f\u7528 \u6765\u81ea \u7269\u7406 \u5fae\u578b \u5fae\u578b\u8f66 \u7684 \u6570\u636e \u5c55\u793a A - LOAM SLAM \u7b97\u6cd5 \u7684 \u6f14\u793a","title":"\u5fae\u578b\u8f66 \u6f14\u793a"},{"location":"ecosys_ros/","text":"\u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff08 Robotic Operating System , ROS \uff09 \u662f \u4e00\u7ec4 \u7528\u4e8e \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u8f6f\u4ef6 \u5e93 \u3002 Carla \u53ef\u4ee5 \u901a\u8fc7 \u5176 ROS \u63a5\u53e3 \u76f4\u63a5 \u8fde\u63a5 \u5230 ROS \uff0c \u63a7\u5236 \u4fe1\u53f7 \u53ef\u4ee5 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u901a\u8fc7 ROS \u4e3b\u9898 \u8bbf\u95ee \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u8fde\u63a5 Carla \u548c ROS \u6709 \u4e24\u79cd \u9009\u62e9 \u3002 Carla \u539f\u751f \u63a5\u53e3 : \u76f4\u63a5 \u6784\u5efa \u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 ROS \u63a5\u53e3 ROS \u6865 : \u4e00\u4e2a \u5355\u72ec \u7684 \u5e93 \uff0c \u7528\u4e8e \u5728 ROS \u548c Carla \u4e4b\u95f4 \u4f20\u8f93 \u4fe1\u53f7 Carla \u7684 \u539f\u751f ROS \u63a5\u53e3 \u8fd9\u662f \u63a8\u8350 \u7684 \u63a5\u53e3 \uff0c \u56e0\u4e3a \u5b83 \u63d0\u4f9b \u6700\u4f73 \u6027\u80fd \u548c \u6700\u4f4e \u5ef6\u8fdf \u3002 \u76ee\u524d \u672c \u673a \u63a5\u53e3 \u4ec5 \u652f\u6301 ROS 2 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 ROS 1 \uff0c \u5219 \u5fc5\u987b \u4f7f\u7528 ROS \u6865 \u3002 Carla ROS \u6865 Carla ROS \u6865 \u662f \u4e00\u4e2a \u7528\u4e8e \u5c06 ROS \u8fde\u63a5 \u5230 Carla \u7684 \u5e93 \uff0c \u5b83 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 \u7531\u4e8e Carla ROS \u6865 \u662f \u4e00\u4e2a \u5355\u72ec \u7684 \u5305 \uff0c \u56e0\u6b64 \u4e0e \u672c\u673a \u63a5\u53e3 \u76f8\u6bd4 \uff0c \u5b58\u5728 \u989d\u5916 \u7684 \u5ef6\u8fdf \u3002 ROS \u6865 \u4ecd\u7136 \u63d0\u4f9b \u652f\u6301 ROS 1 \u548c ROS 2 \u7684 \u65e7 \u5b9e\u73b0 \u3002","title":"Ecosys ros"},{"location":"ecosys_ros/#_1","text":"\u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff08 Robotic Operating System , ROS \uff09 \u662f \u4e00\u7ec4 \u7528\u4e8e \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u8f6f\u4ef6 \u5e93 \u3002 Carla \u53ef\u4ee5 \u901a\u8fc7 \u5176 ROS \u63a5\u53e3 \u76f4\u63a5 \u8fde\u63a5 \u5230 ROS \uff0c \u63a7\u5236 \u4fe1\u53f7 \u53ef\u4ee5 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u901a\u8fc7 ROS \u4e3b\u9898 \u8bbf\u95ee \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u8fde\u63a5 Carla \u548c ROS \u6709 \u4e24\u79cd \u9009\u62e9 \u3002 Carla \u539f\u751f \u63a5\u53e3 : \u76f4\u63a5 \u6784\u5efa \u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 ROS \u63a5\u53e3 ROS \u6865 : \u4e00\u4e2a \u5355\u72ec \u7684 \u5e93 \uff0c \u7528\u4e8e \u5728 ROS \u548c Carla \u4e4b\u95f4 \u4f20\u8f93 \u4fe1\u53f7","title":"\u673a\u5668\u4eba \u64cd\u4f5c\u7cfb\u7edf"},{"location":"ecosys_ros/#carla-ros","text":"\u8fd9\u662f \u63a8\u8350 \u7684 \u63a5\u53e3 \uff0c \u56e0\u4e3a \u5b83 \u63d0\u4f9b \u6700\u4f73 \u6027\u80fd \u548c \u6700\u4f4e \u5ef6\u8fdf \u3002 \u76ee\u524d \u672c \u673a \u63a5\u53e3 \u4ec5 \u652f\u6301 ROS 2 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 ROS 1 \uff0c \u5219 \u5fc5\u987b \u4f7f\u7528 ROS \u6865 \u3002","title":"Carla \u7684 \u539f\u751f ROS \u63a5\u53e3"},{"location":"ecosys_ros/#carla-ros_1","text":"Carla ROS \u6865 \u662f \u4e00\u4e2a \u7528\u4e8e \u5c06 ROS \u8fde\u63a5 \u5230 Carla \u7684 \u5e93 \uff0c \u5b83 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 \u7531\u4e8e Carla ROS \u6865 \u662f \u4e00\u4e2a \u5355\u72ec \u7684 \u5305 \uff0c \u56e0\u6b64 \u4e0e \u672c\u673a \u63a5\u53e3 \u76f8\u6bd4 \uff0c \u5b58\u5728 \u989d\u5916 \u7684 \u5ef6\u8fdf \u3002 ROS \u6865 \u4ecd\u7136 \u63d0\u4f9b \u652f\u6301 ROS 1 \u548c ROS 2 \u7684 \u65e7 \u5b9e\u73b0 \u3002","title":"Carla ROS \u6865"},{"location":"ecosys_simready/","text":"NVIDIA Omniverse \u7684 SimReady \u5185\u5bb9 NVIDIA \u7684 SimReady \u89c4\u8303 \u652f\u6301 \u51c6\u5907 \u4e13 \u4e3a \u6a21\u62df \u800c \u6784\u5efa \u7684 \u4e09\u7ef4 \u5185\u5bb9 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u6a21\u62df 3D \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u7684 \u5185\u5bb9 \u521b\u5efa \u7ba1\u9053 \uff0c \u4ee5 \u5b9e\u73b0 \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u4e2d \u7684 \u673a\u5668 \u5b66\u4e60 \u76ee\u7684 \u3002 \u901a\u8fc7 \u73b0\u5df2 \u96c6\u6210 \u5230 CARLA \u4e2d \u7684 Omniverse \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \uff0c \u7528\u6237 \u53ea \u9700 \u70b9\u51fb \u51e0\u4e0b \u5373\u53ef \u5bfc\u5165 SimReady \u5185\u5bb9 \uff0c \u4f8b\u5982 \u5df2 \u914d\u7f6e \u5de5\u4f5c \u706f \u3001 \u95e8 \u3001 \u8f66\u8f6e \u548c \u9053\u5177 \u7684 \u8f66\u8f86 \uff0c \u53ef \u7acb\u5373 \u7528\u4e8e \u88c5\u9970 CARLA \u5730\u56fe \u3002 CARLA \u7684 Omniverse \u96c6\u6210 \u80fd\u591f \u663e \u7740 \u52a0\u901f \u60a8 \u7684 \u73af\u5883 \u6784\u5efa \u6d41\u7a0b \uff0c \u5e76 \u4e3a Omniverse \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d \u7684 \u6574\u4e2a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e16\u754c \u6253\u5f00 \u5927\u95e8 \u3002 \u7b14\u8bb0 Omniverse \u865a\u5e7b \u5f15\u64ce \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u76ee\u524d \u4ec5 \u5728 Windows \u4e2d \u53ef\u7528 \u3002 \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u5f00\u59cb \u4f7f\u7528 Omniverse \u5e76 \u5728 CARLA \u4e2d \u4f7f\u7528 SimReady \u5185\u5bb9 \uff1a \u9996\u5148 \uff0c \u60a8 \u5e94\u8be5 \u5148 \u5b89\u88c5 NVIDIA Omniverse 1 . \u5b89\u88c5 \u865a\u5e7b \u5f15\u64ce Omniverse \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u542f\u52a8 NVIDIA Omniverse \u542f\u52a8 \u542f\u52a8\u5668 \u5bfc\u822a \u81f3 Exchange \u9009\u9879 \u9009\u9879\u5361 \u627e\u5230 Epic Games Unreal Engine 4.26 Omniverse \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u786e\u4fdd \u5b89\u88c5 \u7248\u672c \u4e3a Release 105.1 . 578 \u5355\u51fb \u5b89\u88c5 Omniverse \u5c06 \u65e0\u6cd5 \u627e\u5230 Unreal Engine \uff0c \u5355\u51fb \u8bf7\u5355\u51fb OK \u3002 \u5b83\u4f1a \u63d0\u793a \u4f60 \u627e\u5230 \u4f60 \u7684 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \uff0c \u9009\u62e9 \u8fd9\u4e2a \u8def\u5f84 \uff1a { UE4 _ ROOT } \\ Engine \\ Plugins \\ Marketplace \\ NVIDIA \u6309 \u5b89\u88c5 \u3002 2 . \u8bbe\u7f6e \u672c\u5730 Omniverse \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u542f\u52a8 \u542f\u52a8\u5668 \u6253\u5f00 NVIDIA Omniverse \u5bfc\u822a \u81f3 Nucleus \u9009\u9879 \u9009\u9879\u5361 \u70b9\u51fb Create Local Server \u521b\u5efa \u7ba1\u7406 \u7ba1\u7406\u5458 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9009\u62e9 Local Nucleus Service \u65c1\u8fb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u56fe\u6807 \uff0c \u8fd9 \u5e94\u8be5 \u5728 Web \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 \u672c\u5730 \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 3 . \u8fde\u63a5 CARLA \u6a21\u62df \u6a21\u62df\u5668 \u4ece CARLA \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 make launch \u542f\u52a8 CARLA \u5982\u679c \u73b0\u6709 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u5e76\u4e14 \u60a8 \u60f3\u8981 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8bbe\u7f6e \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Clean Local Assets \uff08 \u53ef \u9009 \uff09 \u9009\u62e9 Omniverse \u56fe\u6807 \u5e76 \u5355\u51fb Add Server \u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u547d\u540d \u5e76 \u5355\u51fb Add to Content Browser \u767b\u5f55 \u8868\u5355 \u5e94 \u5728 \u60a8 \u7684 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u542f\u52a8 \uff0c \u5355\u51fb Create Account \u521b\u5efa \u7ba1\u7406 \u7ba1\u7406\u5458 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f Omniverse \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u73b0\u5728 \u5e94\u8be5 \u5728 \u865a\u5e7b \u5f15\u64ce \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7684 Content / Omniverse \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u53ef\u89c1 \u518d\u6b21 \u8bbf\u95ee \u60a8 \u7684 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5355\u51fb Connect to a Server \u4f7f\u7528 \u60a8 \u4e3a CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540d\u79f0 \u8fdb\u884c \u8eab\u4efd \u9a8c\u8bc1 \u8eab\u4efd\u9a8c\u8bc1 \u4f7f\u7528 \u60a8 \u4e3a CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u7684 \u7ba1\u7406 \u7ba1\u7406\u5458 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u73b0\u5728 \u5e94\u8be5 \u663e\u793a \u5728 \u60a8 \u7684 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d 4 . \u5bfc\u5165 SimReady \u8d44\u4ea7 \u5bfc\u822a \u81f3 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5668\u4e2d \u7684 \u201c Projects \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u53f3\u952e \u5355\u51fb \uff0c \u7136\u540e \u9009\u62e9 Upload Folder \u9009\u62e9 \u60a8 \u7684 SimReady \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0a\u4f20 \u6587\u4ef6 5 . \u4f7f\u7528 Omniverse \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u5c06 \u8f66\u8f86 \u52a0\u8f7d \u5230 CARLA \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 CARLA \u9879\u76ee \u5bfc\u822a \u81f3 CarlaTools / Content / USDImporter \u53f3\u952e \u5355\u51fb UW _ USDVehicleImporterEditorWidget \u9009\u62e9 Run Editor Utility Widget \u5728 Omniverse \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5668\u4e2d \u67e5\u627e \u8f66\u8f86 \u590d\u5236 \u8def\u5f84 \uff08 \u5e94 \u7c7b\u4f3c \u4e8e \uff1a omniverse : / / localhost / Projects / SimReadyUSD ... / vehicle . usd ) \u5c06 \u5176 \u7c98\u8d34 \u5230 \u5c0f\u7ec4 \u4ef6 \u5185 \u7684 Omiverse URL \u9009\u9879 \u9009\u9879\u5361 \u4e2d \u9009\u62e9 Import Asset \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u8f66\u8f86 \u663e\u793a \u5728 \u5f15\u64ce \u4e2d \u60a8 \u5728 Import destination \u5b57\u6bb5 \u4e2d \u6307\u5b9a \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 \u53e6 \u4e00\u4e2a \u5730\u56fe \u573a\u666f \uff08 \u5b83 \u53ef\u80fd \u5df2 \u6253\u5f00 \u5305\u542b \u5bfc\u5165 \u6570\u636e \u7684 \u65b0 \u573a\u666f \uff09 \uff0c \u5e94 \u51fa\u73b0 Save Content \u63d0\u793a \u3002 \u53d6\u6d88 \u9009\u4e2d Untitled \u573a\u666f \uff0c \u7136\u540e \u5355\u51fb Save selected \u4ee5 \u4fdd\u5b58 \u65b0 \u5185\u5bb9 \u8be5 \u8f66\u8f86 \u73b0\u5df2 \u53ef \u5728 CARLA \u5185 \u4f7f\u7528 \uff0c \u5e76 \u5c06 \u901a\u8fc7 Python API \u63d0\u4f9b","title":"NVIDIA Omniverse \u7684 SimReady \u5185\u5bb9"},{"location":"ecosys_simready/#nvidia-omniverse-simready","text":"NVIDIA \u7684 SimReady \u89c4\u8303 \u652f\u6301 \u51c6\u5907 \u4e13 \u4e3a \u6a21\u62df \u800c \u6784\u5efa \u7684 \u4e09\u7ef4 \u5185\u5bb9 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u6a21\u62df 3D \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u7684 \u5185\u5bb9 \u521b\u5efa \u7ba1\u9053 \uff0c \u4ee5 \u5b9e\u73b0 \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u4e2d \u7684 \u673a\u5668 \u5b66\u4e60 \u76ee\u7684 \u3002 \u901a\u8fc7 \u73b0\u5df2 \u96c6\u6210 \u5230 CARLA \u4e2d \u7684 Omniverse \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \uff0c \u7528\u6237 \u53ea \u9700 \u70b9\u51fb \u51e0\u4e0b \u5373\u53ef \u5bfc\u5165 SimReady \u5185\u5bb9 \uff0c \u4f8b\u5982 \u5df2 \u914d\u7f6e \u5de5\u4f5c \u706f \u3001 \u95e8 \u3001 \u8f66\u8f6e \u548c \u9053\u5177 \u7684 \u8f66\u8f86 \uff0c \u53ef \u7acb\u5373 \u7528\u4e8e \u88c5\u9970 CARLA \u5730\u56fe \u3002 CARLA \u7684 Omniverse \u96c6\u6210 \u80fd\u591f \u663e \u7740 \u52a0\u901f \u60a8 \u7684 \u73af\u5883 \u6784\u5efa \u6d41\u7a0b \uff0c \u5e76 \u4e3a Omniverse \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d \u7684 \u6574\u4e2a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e16\u754c \u6253\u5f00 \u5927\u95e8 \u3002 \u7b14\u8bb0 Omniverse \u865a\u5e7b \u5f15\u64ce \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u76ee\u524d \u4ec5 \u5728 Windows \u4e2d \u53ef\u7528 \u3002 \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u5f00\u59cb \u4f7f\u7528 Omniverse \u5e76 \u5728 CARLA \u4e2d \u4f7f\u7528 SimReady \u5185\u5bb9 \uff1a \u9996\u5148 \uff0c \u60a8 \u5e94\u8be5 \u5148 \u5b89\u88c5 NVIDIA Omniverse","title":"NVIDIA Omniverse \u7684 SimReady \u5185\u5bb9"},{"location":"ecosys_simready/#1-omniverse","text":"\u542f\u52a8 NVIDIA Omniverse \u542f\u52a8 \u542f\u52a8\u5668 \u5bfc\u822a \u81f3 Exchange \u9009\u9879 \u9009\u9879\u5361 \u627e\u5230 Epic Games Unreal Engine 4.26 Omniverse \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u786e\u4fdd \u5b89\u88c5 \u7248\u672c \u4e3a Release 105.1 . 578 \u5355\u51fb \u5b89\u88c5 Omniverse \u5c06 \u65e0\u6cd5 \u627e\u5230 Unreal Engine \uff0c \u5355\u51fb \u8bf7\u5355\u51fb OK \u3002 \u5b83\u4f1a \u63d0\u793a \u4f60 \u627e\u5230 \u4f60 \u7684 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \uff0c \u9009\u62e9 \u8fd9\u4e2a \u8def\u5f84 \uff1a { UE4 _ ROOT } \\ Engine \\ Plugins \\ Marketplace \\ NVIDIA \u6309 \u5b89\u88c5 \u3002","title":"1 . \u5b89\u88c5 \u865a\u5e7b \u5f15\u64ce Omniverse \u8fde\u63a5\u5668"},{"location":"ecosys_simready/#2-omniverse","text":"\u4f7f\u7528 \u542f\u52a8 \u542f\u52a8\u5668 \u6253\u5f00 NVIDIA Omniverse \u5bfc\u822a \u81f3 Nucleus \u9009\u9879 \u9009\u9879\u5361 \u70b9\u51fb Create Local Server \u521b\u5efa \u7ba1\u7406 \u7ba1\u7406\u5458 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9009\u62e9 Local Nucleus Service \u65c1\u8fb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u56fe\u6807 \uff0c \u8fd9 \u5e94\u8be5 \u5728 Web \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 \u672c\u5730 \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668","title":"2 . \u8bbe\u7f6e \u672c\u5730 Omniverse \u670d\u52a1\u5668"},{"location":"ecosys_simready/#3-carla","text":"\u4ece CARLA \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 make launch \u542f\u52a8 CARLA \u5982\u679c \u73b0\u6709 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u5e76\u4e14 \u60a8 \u60f3\u8981 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8bbe\u7f6e \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Clean Local Assets \uff08 \u53ef \u9009 \uff09 \u9009\u62e9 Omniverse \u56fe\u6807 \u5e76 \u5355\u51fb Add Server \u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u547d\u540d \u5e76 \u5355\u51fb Add to Content Browser \u767b\u5f55 \u8868\u5355 \u5e94 \u5728 \u60a8 \u7684 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u542f\u52a8 \uff0c \u5355\u51fb Create Account \u521b\u5efa \u7ba1\u7406 \u7ba1\u7406\u5458 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f Omniverse \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u73b0\u5728 \u5e94\u8be5 \u5728 \u865a\u5e7b \u5f15\u64ce \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7684 Content / Omniverse \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u53ef\u89c1 \u518d\u6b21 \u8bbf\u95ee \u60a8 \u7684 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5355\u51fb Connect to a Server \u4f7f\u7528 \u60a8 \u4e3a CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540d\u79f0 \u8fdb\u884c \u8eab\u4efd \u9a8c\u8bc1 \u8eab\u4efd\u9a8c\u8bc1 \u4f7f\u7528 \u60a8 \u4e3a CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u7684 \u7ba1\u7406 \u7ba1\u7406\u5458 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u73b0\u5728 \u5e94\u8be5 \u663e\u793a \u5728 \u60a8 \u7684 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d","title":"3 . \u8fde\u63a5 CARLA \u6a21\u62df\u5668"},{"location":"ecosys_simready/#4-simready","text":"\u5bfc\u822a \u81f3 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5668\u4e2d \u7684 \u201c Projects \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u53f3\u952e \u5355\u51fb \uff0c \u7136\u540e \u9009\u62e9 Upload Folder \u9009\u62e9 \u60a8 \u7684 SimReady \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0a\u4f20 \u6587\u4ef6","title":"4 . \u5bfc\u5165 SimReady \u8d44\u4ea7"},{"location":"ecosys_simready/#5-omniverse-carla","text":"\u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 CARLA \u9879\u76ee \u5bfc\u822a \u81f3 CarlaTools / Content / USDImporter \u53f3\u952e \u5355\u51fb UW _ USDVehicleImporterEditorWidget \u9009\u62e9 Run Editor Utility Widget \u5728 Omniverse \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5668\u4e2d \u67e5\u627e \u8f66\u8f86 \u590d\u5236 \u8def\u5f84 \uff08 \u5e94 \u7c7b\u4f3c \u4e8e \uff1a omniverse : / / localhost / Projects / SimReadyUSD ... / vehicle . usd ) \u5c06 \u5176 \u7c98\u8d34 \u5230 \u5c0f\u7ec4 \u4ef6 \u5185 \u7684 Omiverse URL \u9009\u9879 \u9009\u9879\u5361 \u4e2d \u9009\u62e9 Import Asset \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u8f66\u8f86 \u663e\u793a \u5728 \u5f15\u64ce \u4e2d \u60a8 \u5728 Import destination \u5b57\u6bb5 \u4e2d \u6307\u5b9a \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 \u53e6 \u4e00\u4e2a \u5730\u56fe \u573a\u666f \uff08 \u5b83 \u53ef\u80fd \u5df2 \u6253\u5f00 \u5305\u542b \u5bfc\u5165 \u6570\u636e \u7684 \u65b0 \u573a\u666f \uff09 \uff0c \u5e94 \u51fa\u73b0 Save Content \u63d0\u793a \u3002 \u53d6\u6d88 \u9009\u4e2d Untitled \u573a\u666f \uff0c \u7136\u540e \u5355\u51fb Save selected \u4ee5 \u4fdd\u5b58 \u65b0 \u5185\u5bb9 \u8be5 \u8f66\u8f86 \u73b0\u5df2 \u53ef \u5728 CARLA \u5185 \u4f7f\u7528 \uff0c \u5e76 \u5c06 \u901a\u8fc7 Python API \u63d0\u4f9b","title":"5 . \u4f7f\u7528 Omniverse \u8fde\u63a5\u5668 \u5c06 \u8f66\u8f86 \u52a0\u8f7d \u5230 CARLA"},{"location":"ext_docs/","text":"\u6269\u5c55 \u6587\u6863 \u4e0b\u9762 \uff0c \u60a8 \u5c06 \u627e\u5230 \u6709\u5173 Carla \u8bb8\u591a \u5e7f\u6cdb \u529f\u80fd \u7684 \u6df1\u5165 \u6587\u6863 \u3002 \u5148\u8fdb \u7406\u5ff5 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u6ce8\u518c \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u65e0 \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6d4b\u8bd5 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u884c\u9a76 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u591a GPU \u2014 \u8bbe\u7f6e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ee5 \u4f7f\u7528 \u591a\u4e2a GPU \u8fdb\u884c \u5904\u7406 \u3002 \u4ea4\u901a \u4eff\u771f \u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u7528 \u586b\u5145 \u4ea4\u901a \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u53c2\u8003 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u4f7f\u7528 OpenStreetMap \u6570\u636e \u7684 \u7a0b\u5e8f \u5730\u56fe \u751f\u6210 \u5de5\u5177 \u3002 Carla \u4e2d \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u3002 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5728 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u7528\u4e8e \u624b\u52a8 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u66f4\u6539 \u9053\u8def \u7684 \u5916\u89c2 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u8d44\u6599 \u5e76 \u586b\u5145 \u666f\u89c2 \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u5927 \u5730\u56fe \u5927 \u5730\u56fe \u6982\u8ff0 \u2014 \u89e3\u91ca \u5927 \u5730\u56fe \u5728 Carla \u4e2d \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe \u3002","title":"\u6269\u5c55 \u6587\u6863"},{"location":"ext_docs/#_1","text":"\u4e0b\u9762 \uff0c \u60a8 \u5c06 \u627e\u5230 \u6709\u5173 Carla \u8bb8\u591a \u5e7f\u6cdb \u529f\u80fd \u7684 \u6df1\u5165 \u6587\u6863 \u3002","title":"\u6269\u5c55 \u6587\u6863"},{"location":"ext_docs/#_2","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u6ce8\u518c \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u65e0 \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6d4b\u8bd5 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u884c\u9a76 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u591a GPU \u2014 \u8bbe\u7f6e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ee5 \u4f7f\u7528 \u591a\u4e2a GPU \u8fdb\u884c \u5904\u7406 \u3002","title":"\u5148\u8fdb \u7406\u5ff5"},{"location":"ext_docs/#_3","text":"\u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u7528 \u586b\u5145 \u4ea4\u901a \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002","title":"\u4ea4\u901a \u4eff\u771f"},{"location":"ext_docs/#_4","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u6240\u6709 \u5185\u5bb9 \u3002","title":"\u53c2\u8003"},{"location":"ext_docs/#_5","text":"\u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u4f7f\u7528 OpenStreetMap \u6570\u636e \u7684 \u7a0b\u5e8f \u5730\u56fe \u751f\u6210 \u5de5\u5177 \u3002 Carla \u4e2d \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u3002 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5728 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u7528\u4e8e \u624b\u52a8 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u66f4\u6539 \u9053\u8def \u7684 \u5916\u89c2 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u8d44\u6599 \u5e76 \u586b\u5145 \u666f\u89c2 \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"ext_docs/#_6","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u2014 \u89e3\u91ca \u5927 \u5730\u56fe \u5728 Carla \u4e2d \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe \u3002","title":"\u5927 \u5730\u56fe"},{"location":"file_specification/","text":"Util / BuildTools / * BuildUE4Plugins . bat : \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 StreetMap Setup . bat \uff1a \u8c03\u7528 Util / InstallersWin / * . bat \u4e0b\u8f7d \u5e76 \u751f\u6210 zlib \u3001 libpng \u3001 rpclib \u3001 Google Test \u3001 Recast & Detour \u3001 Fast - DDS ( for ROS2 ) \u3001 Boost \u3001 Xercesc \u3001 Sqlite3 \u3001 PROJ \u3001 Eigen \u3001 Chrono \u5e93 \uff1b \u8bbe\u7f6e \u8d44\u4ea7 \u4e0b\u8f7d URL \uff1b \u751f\u6210 CMakeLists . txt . in \uff1b BuildLibCarla . bat \uff1a \u521b\u5efa LibCarla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u670d\u52a1\u7aef \uff1b BuildOSM2ODR . bat \uff1a \u521b\u5efa OSM \u8f6c OpenDRIVE \u7684 \u5e93 \uff1b \u9644\u52a0 \uff1a \u6784\u5efa \u6b65\u9aa4 \u5206\u6790 Update . bat \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u521d\u59cb \u521d\u59cb\u5316 \uff1b \u83b7\u53d6 \u6700\u65b0 \u7684 \u8d44\u4ea7 \u5305 \uff1b \u4e0b\u8f7d \u5e76 \u89e3\u538b \u8d44\u4ea7 \u5185\u5bb9 \uff1b \u5982\u679c \u4e0d \u5b58\u5728 7zip \u5c31 \u7528 powershell - Command \" Expand - Archive ' \u547d\u4ee4 \u8fdb\u884c \u89e3\u538b \u3002 Makefile make PythonAPI \u6267\u884c Util / BuildTools / BuildPythonAPI . bat \uff0c \u771f\u6b63 \u6267\u884c \u7684 \u662f python setup . py bdist _ egg bdist _ wheel \uff0c \u5728 PythonAPI / carla / dist \u76ee\u5f55 \u4e0b \u751f\u6210 * . egg \u548c * . whl \u6587\u4ef6 \uff1b make launch \u6267\u884c Makefile \uff0c \u8c03\u7528 Util / BuildTools / Windows . mk \uff0c \u771f\u6b63 \u6267\u884c \u7684 \u662f BuildLibCarla . bat \uff0c \u6784\u5efa LibCarla \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1b Build Xerces \u662f \u7531 Apache \u7ec4\u7ec7 \u6240 \u63a8\u52a8 \u7684 \u4e00\u9879 XML \u6587\u6863 \u89e3\u6790 \u5f00\u6e90 \u9879\u76ee \u3002 SQLite \u662f \u4e00\u6b3e \u8f7b\u578b \u7684 \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \uff0c \u662f \u9075\u5b88 ACID \u7684 \u5173\u7cfb \u578b \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \u7ba1\u7406 \u7cfb\u7edf \u7ba1\u7406\u7cfb \u7ba1\u7406\u7cfb\u7edf \uff0c \u5b83 \u5305\u542b \u5728 \u4e00\u4e2a \u76f8\u5bf9 \u5c0f \u7684 C \u5e93\u4e2d \u3002 PROJ \u662f \u4e00\u79cd \u901a\u7528 \u5750\u6807 \u8f6c\u6362 \u8f6f\u4ef6 \uff0c \u5b83 \u5c06 \u5750\u6807 \u4ece \u4e00\u4e2a \u5750\u6807 \u53c2\u8003 \u53c2\u8003\u7cfb \uff08 CRS \uff09 \u8f6c\u6362 \u4e3a \u53e6 \u4e00\u4e2a \u5750\u6807 \u53c2\u8003 \u53c2\u8003\u7cfb \u3002 \u8fd9 \u5305\u62ec \u5730\u56fe \u6295\u5f71 \u5730\u56fe\u6295\u5f71 \u548c \u5927\u5730 \u5750\u6807 \u53d8\u6362 \u3002","title":"\u6587\u4ef6 \u8bf4\u660e"},{"location":"file_specification/#utilbuildtools","text":"BuildUE4Plugins . bat : \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 StreetMap Setup . bat \uff1a \u8c03\u7528 Util / InstallersWin / * . bat \u4e0b\u8f7d \u5e76 \u751f\u6210 zlib \u3001 libpng \u3001 rpclib \u3001 Google Test \u3001 Recast & Detour \u3001 Fast - DDS ( for ROS2 ) \u3001 Boost \u3001 Xercesc \u3001 Sqlite3 \u3001 PROJ \u3001 Eigen \u3001 Chrono \u5e93 \uff1b \u8bbe\u7f6e \u8d44\u4ea7 \u4e0b\u8f7d URL \uff1b \u751f\u6210 CMakeLists . txt . in \uff1b BuildLibCarla . bat \uff1a \u521b\u5efa LibCarla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u670d\u52a1\u7aef \uff1b BuildOSM2ODR . bat \uff1a \u521b\u5efa OSM \u8f6c OpenDRIVE \u7684 \u5e93 \uff1b","title":"Util / BuildTools / *"},{"location":"file_specification/#_1","text":"","title":"\u9644\u52a0 \uff1a \u6784\u5efa \u6b65\u9aa4 \u5206\u6790"},{"location":"file_specification/#updatebat","text":"\u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u521d\u59cb \u521d\u59cb\u5316 \uff1b \u83b7\u53d6 \u6700\u65b0 \u7684 \u8d44\u4ea7 \u5305 \uff1b \u4e0b\u8f7d \u5e76 \u89e3\u538b \u8d44\u4ea7 \u5185\u5bb9 \uff1b \u5982\u679c \u4e0d \u5b58\u5728 7zip \u5c31 \u7528 powershell - Command \" Expand - Archive ' \u547d\u4ee4 \u8fdb\u884c \u89e3\u538b \u3002","title":"Update . bat"},{"location":"file_specification/#makefile","text":"make PythonAPI \u6267\u884c Util / BuildTools / BuildPythonAPI . bat \uff0c \u771f\u6b63 \u6267\u884c \u7684 \u662f python setup . py bdist _ egg bdist _ wheel \uff0c \u5728 PythonAPI / carla / dist \u76ee\u5f55 \u4e0b \u751f\u6210 * . egg \u548c * . whl \u6587\u4ef6 \uff1b make launch \u6267\u884c Makefile \uff0c \u8c03\u7528 Util / BuildTools / Windows . mk \uff0c \u771f\u6b63 \u6267\u884c \u7684 \u662f BuildLibCarla . bat \uff0c \u6784\u5efa LibCarla \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1b","title":"Makefile"},{"location":"file_specification/#build","text":"Xerces \u662f \u7531 Apache \u7ec4\u7ec7 \u6240 \u63a8\u52a8 \u7684 \u4e00\u9879 XML \u6587\u6863 \u89e3\u6790 \u5f00\u6e90 \u9879\u76ee \u3002 SQLite \u662f \u4e00\u6b3e \u8f7b\u578b \u7684 \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \uff0c \u662f \u9075\u5b88 ACID \u7684 \u5173\u7cfb \u578b \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \u7ba1\u7406 \u7cfb\u7edf \u7ba1\u7406\u7cfb \u7ba1\u7406\u7cfb\u7edf \uff0c \u5b83 \u5305\u542b \u5728 \u4e00\u4e2a \u76f8\u5bf9 \u5c0f \u7684 C \u5e93\u4e2d \u3002 PROJ \u662f \u4e00\u79cd \u901a\u7528 \u5750\u6807 \u8f6c\u6362 \u8f6f\u4ef6 \uff0c \u5b83 \u5c06 \u5750\u6807 \u4ece \u4e00\u4e2a \u5750\u6807 \u53c2\u8003 \u53c2\u8003\u7cfb \uff08 CRS \uff09 \u8f6c\u6362 \u4e3a \u53e6 \u4e00\u4e2a \u5750\u6807 \u53c2\u8003 \u53c2\u8003\u7cfb \u3002 \u8fd9 \u5305\u62ec \u5730\u56fe \u6295\u5f71 \u5730\u56fe\u6295\u5f71 \u548c \u5927\u5730 \u5750\u6807 \u53d8\u6362 \u3002","title":"Build"},{"location":"foundations/","text":"\u57fa\u7840 \u672c\u9875 \u4ecb\u7ecd \u4e86 \u4e86\u89e3 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5982\u4f55 \u901a\u8fc7 API \u8fdb\u884c \u64cd\u4f5c \u548c \u901a\u4fe1 \u6240 \u9700 \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 Carla \u4f7f\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u8fd0\u884c \uff0c \u5176\u4e2d Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u5e76 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u5176 \u53d1\u9001 \u6307\u4ee4 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u4f7f\u7528 API \u4e0e \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u8981 \u4f7f\u7528 Python API \uff0c \u60a8 \u5fc5\u987b \u901a\u8fc7 pip \u5b89\u88c5 \u8be5 \u6a21\u5757 \uff1a pip install carla - simulator # Python 2 pip3 install carla - simulator # Python 3 \u8fd8\u8981 \u786e\u4fdd \u5728 python \u811a\u672c \u4e2d \u5bfc\u5165 Carla \u5305 \uff1a import carla \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e16\u754c \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u4eff\u771f \u56de\u653e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u662f \u7528\u6237 \u8fd0\u884c \u4ee5 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u4fe1\u606f \u6216 \u66f4\u6539 \u7684 \u6a21\u5757 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f7f\u7528 IP \u548c \u7279\u5b9a \u7aef\u53e3 \u8fd0\u884c \u3002 \u5b83 \u901a\u8fc7 \u7ec8\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u6709 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u540c\u65f6 \u8fd0\u884c \u3002 \u9ad8\u7ea7 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7ba1\u7406 \u9700\u8981 \u5bf9 Carla \u548c \u540c\u6b65 \u6709 \u900f\u5f7b \u7684 \u4e86\u89e3 \u3002 \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a client = carla . Client ( ' localhost ' , 2000 ) \u8fd9\u4f1a \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \u4e3a \u4e0e \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a localhost \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u6216\u8005 \uff0c \u5982\u679c \u5728 \u5355\u72ec \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u7f51\u7edc \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7f51\u7edc\u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u6570 \u662f \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5728 \u7aef\u53e3 2000 \u4e0a \u8fd0\u884c \uff0c \u5982 \u6709 \u5fc5\u8981 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u542f\u52a8 Carla \u65f6 \u5728 \u8bbe\u7f6e \u4e2d \u66f4\u6539 \u6b64 \u8bbe\u7f6e \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u53ef \u7528\u4e8e \u591a\u79cd \u529f\u80fd \uff0c \u5305\u62ec \u52a0\u8f7d \u65b0 \u5730\u56fe \u3001 \u8bb0\u5f55 \u4eff\u771f \u548c \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a client . load _ world ( ' Town07 ' ) client . start _ recorder ( ' recording . log ' ) \u4e16\u754c \u4e16\u754c \u662f \u4ee3\u8868 \u4eff\u771f \u7684 \u5bf9\u8c61 \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u62bd\u8c61 \u5c42 \uff0c \u5305\u542b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u6539\u53d8 \u5929\u6c14 \u3001 \u83b7\u53d6 \u4e16\u754c \u5f53\u524d \u72b6\u6001 \u7b49 \u7684 \u4e3b\u8981 \u65b9\u6cd5 \u3002 \u6bcf\u4e2a \u4eff\u771f \u53ea\u6709 \u4e00\u4e2a \u4e16\u754c \u3002 \u5f53 \u5730\u56fe \u6539\u53d8 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u6467\u6bc1 \u5e76 \u66ff\u6362 \u4e3a \u65b0 \u7684 \u3002 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u68c0\u7d22 \u4e16\u754c \u5bf9\u8c61 \uff1a world = client . get _ world ( ) \u4e16\u754c \u5bf9\u8c61 \u53ef \u7528\u4e8e \u4f7f\u7528 \u5176 \u591a\u79cd \u65b9\u6cd5 \u8bbf\u95ee \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5929\u6c14 \u3001 \u8f66\u8f86 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u5730\u56fe \uff1a level = world . get _ map ( ) weather = world . get _ weather ( ) blueprint _ library = world . get _ blueprint _ library ( ) \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u6f14\u5458 \u662f \u5728 \u4eff\u771f \u4e2d \u626e\u6f14 \u89d2\u8272 \u7684 \u4efb\u4f55 \u4e1c\u897f \u3002 \u8f66\u8f86 \u884c\u4eba \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u4f17 \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u662f \u751f\u6210 \u89d2\u8272 \u6240 \u5fc5\u9700 \u7684 \u5df2\u7ecf \u5236\u4f5c \u597d \u7684 \u89d2\u8272 \u5e03\u5c40 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7ec4 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c5e\u6027 \u53ef\u4ee5 \u7531 \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u80fd \u3002 \u6709 \u4e00\u4e2a Blueprint \u5e93 \uff0c \u5176\u4e2d \u5305\u542b \u6240\u6709 \u53ef\u7528 \u7684 \u84dd\u56fe \u4ee5\u53ca \u6709\u5173 \u5b83\u4eec \u7684 \u4fe1\u606f \u3002 \u5730\u56fe \u548c \u5bfc\u822a \u5730\u56fe \u662f \u4ee3\u8868 \u4eff\u771f \u4e16\u754c \u7684 \u5bf9\u8c61 \uff0c \u4e3b\u8981 \u662f \u57ce\u9547 \u3002 \u6709 \u516b\u5f20 \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5b83\u4eec \u90fd \u4f7f\u7528 opdrive 1.4 \u6807\u51c6 \u6765 \u63cf\u8ff0 \u9053\u8def \u3002 \u9053\u8def \u3001 \u8f66\u9053 \u548c \u8def\u53e3 \u7531 Python API \u7ba1\u7406 \uff0c \u4ee5\u4fbf \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbf\u95ee \u3002 \u8fd9\u4e9b \u4e0e waypoint \u7c7b \u4e00\u8d77 \u4f7f\u7528 \uff0c \u4e3a \u8f66\u8f86 \u63d0\u4f9b \u5bfc\u822a \u8def\u5f84 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u662f \u53ef \u8bbf\u95ee \u7684 carla . Landmark \u3002 \u8fd9\u4e9b \u5730\u6807 \u5bf9\u8c61 \u5305\u542b \u5173\u4e8e \u5b83\u4eec \u7684 OpenDRIVE \u5b9a\u4e49 \u7684 \u4fe1\u606f \u3002 \u6b64\u5916 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5728 \u8fd0\u884c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u505c\u8f66 \u6807\u5fd7 \u3001 \u8ba9 \u884c \u6807\u5fd7 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5bf9\u8c61 \uff0c \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u4f1a \u653e\u7f6e \u5728 \u9053\u8def \u4e0a \uff0c \u6709 \u8fb9\u754c \u6846 \u5305\u56f4 \u3002 \u4e00\u65e6 \u8f66\u8f86 \u8fdb\u5165 \u5b83\u4eec \u7684 \u8fb9\u754c \u6846 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u610f\u8bc6 \u5230 \u8fd9\u4e9b \u5bf9\u8c61 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49\u5f85 \u4e00\u4e9b \u4e8b\u4ef6 \u53d1\u751f \uff0c \u7136\u540e \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u6570\u636e \u3002 \u5b83\u4eec \u8c03\u7528 \u5b9a\u4e49 \u5982\u4f55 \u7ba1\u7406 \u6570\u636e \u7684 \u51fd\u6570 \u3002 \u6839\u636e \u4e0d\u540c \u7684 \u60c5\u51b5 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u9644\u7740 \u5728 \u7236 \u8f66\u8f86 \u4e0a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u8ddf\u968f \u8f66\u8f86 \uff0c \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7531 Blueprint \u5e93 \u4e2d \u7684 \u84dd\u56fe \u5b9a\u4e49 \u3002 \u76f8\u673a ( RGB \uff0c \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 ) \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 Gnss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c04\u7ebf \u6295\u5c04 \u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u969c\u788d \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe RSS \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f Carla \u5177\u6709 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u4fe1\u606f \u5e76 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u66f4\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u672c\u8d28 \u4e0a \uff0c \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f1a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u5ba2\u6237 \u8bf7\u6c42 \u662f \u5373\u65f6 \u5904\u7406 \u7684 \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8fd0\u884c Python \u4ee3\u7801 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u63a7\u5236 \u5e76 \u544a\u8bc9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f55\u65f6 \u66f4\u65b0 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u5b9e\u9a8c \u6216 \u8bbe\u7f6e \u4eff\u771f \uff0c \u5f02\u6b65 \u6a21\u5f0f \u662f \u8fd0\u884c Carla \u7684 \u5408\u9002 \u6a21\u5f0f \uff0c \u56e0\u6b64 \u60a8 \u53ef\u4ee5 \u5728 \u653e\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u5728 \u5730\u56fe \u4e0a \u98de\u884c \u3002 \u5f53 \u60a8 \u60f3\u8981 \u5f00\u59cb \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \u6216 \u5728 \u4eff\u771f \u4e2d \u90e8\u7f72 \u667a\u80fd \u4f53\u65f6 \uff0c \u5efa\u8bae \u5efa\u8bae\u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a \u8fd9 \u5c06 \u4e3a \u60a8 \u63d0\u4f9b \u66f4 \u591a \u7684 \u63a7\u5236 \u63a7\u5236\u529b \u548c \u9884\u6d4b \u6d4b\u6027 \u9884\u6d4b\u6027 \u53ef\u9884\u6d4b\u6027 \u3002 \u9605\u8bfb \u6709\u5173 \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u4e2d \uff0c \u53ea\u6709 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u8be5 \u53d1\u51fa \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9 \u6536\u5230 \u7684 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u505a\u51fa \u54cd\u5e94 \uff0c \u5c31 \u597d\u50cf \u5b83 \u6765\u81ea \u540c\u4e00 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u6837 \u3002 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u6ef4\u7b54 \u4fe1\u53f7 \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u4ea7\u751f \u4e0d \u4e00\u81f4 \u3002 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u7684 \u66f4\u6539 \u53ea\u662f \u5e03\u5c14 \u72b6\u6001 \u7684 \u95ee\u9898 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u672c\u6587 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a False \u6216 \u4f7f\u7528 \u811a\u672c PythonAPI / util / config . py \u3002 cd PythonAPI / util && python3 config . py -- no - sync # \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u65e0\u6cd5 \u4f7f\u7528 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u4f7f\u7528 \u6b64 \u811a\u672c \uff0c \u7528\u6237 \u65e0\u6cd5 \u5728 \u9700\u8981 \u65f6 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u4e0e \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \u4e4b\u95f4 \u7684 \u540c\u6b65 \u65f6 \u7279\u522b \u76f8\u5173 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ca1\u6709 \u7b49\u5f85 \uff0c \u5c31 \u4f1a \u51fa\u73b0 \u4fe1\u606f \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u4e00\u5207 \uff0c \u5e76\u4e14 \u4f1a \u4e22\u5931 \u6216 \u6df7\u5408 \u3002 \u540c\u6837 \uff0c \u5bf9\u4e8e \u8bb8\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u60c5\u51b5 \uff0c \u4e0d \u53ef\u80fd \u77e5\u9053 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u90fd \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u4e2a \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u7ed9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u7684 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u751f\u6210 \u3002 \u540c\u6b65 \u5728 \u8fd9\u91cc \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4e16\u754c \u4e0a \u6709 \u5f02\u6b65 \u65b9\u6cd5 \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u6216\u8005 \u5728 \u6536\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u5e76 \u83b7\u53d6 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u5feb\u7167 world _ snapshot = world . wait _ for _ tick ( ) # \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u6536\u5230 \u65b0 \u7684 \u5feb\u7167 \u65f6 \u90fd \u88ab \u8c03\u7528 \u3002 world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) ) \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u5c06 \u91cd\u73b0 \u5148\u524d \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u6570\u636e \u4fdd\u5b58 \u5230 \u6587\u4ef6 \u4e2d \u3002 \u8fd9\u4e9b \u6570\u636e \u5305\u62ec \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3001 \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u4ee5\u53ca \u592a\u9633 \u7684 \u4f4d\u7f6e \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u6570\u636e \u88ab \u8bb0\u5f55 \u5230 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a0d\u540e \u53ef\u4ee5 \u52a0\u8f7d \u8be5 \u6587\u4ef6 \u4ee5 \u51c6\u786e \u5730 \u518d\u73b0 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u5728 \u6bcf \u4e00\u5e27 \u4e0a \u8fdb\u884c \u66f4\u65b0 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u8bb0\u5f55 \u4e2d \u7684 \u4eba\u4f1a \u7ee7\u7eed \u4ed6\u4eec \u7684 \u8def \uff0c \u5c31 \u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u4e0d\u4f1a \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u2014 \u521b\u9020 \u548c \u6467\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u76d2 \u3002 \u4ea4\u901a \u7b49 \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u8bb0\u5f55 \u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ , / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c additional _ data \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u8bb0\u5f55 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002 \u4eff\u771f \u56de\u653e \u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \u4e4b\u5916 \uff0c \u6b64 \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u63cf\u8ff0 \u7b14\u8bb0 start \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5982\u679c \u4e3a \u6b63 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u7b97 \u8d77 \u3002 \u5982\u679c \u4e3a \u8d1f \uff0c \u5219 \u4ece \u6700\u540e \u8003\u8651 \u3002 duration \u64ad\u653e \u79d2\u6570 \u3002 0 \u4e3a \u5168\u90e8 \u8bb0\u5f55 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 camera \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u662f \u8ba9 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u81ea\u7531 \u79fb\u52a8 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ee5 \u672c \u6587\u6863 \u4e2d \u6307\u5b9a \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u4fdd\u5b58 \u6240\u6709 \u6570\u636e \u3002 \u6e32\u67d3 Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u6709\u5173 \u6e32\u67d3 \u8d28\u91cf \u548c \u6548\u7387 \u7684 \u9009\u9879 \u3002 \u5728 \u6700 \u57fa\u672c \u7684 \u5c42\u9762 \u4e0a \uff0c Carla \u63d0\u4f9b \u4e86 \u4e24\u79cd \u8d28\u91cf \u9009\u9879 \uff0c \u53ef\u4ee5 \u5728 \u9ad8 \u89c4\u683c \u548c \u4f4e \u89c4\u683c \u786c\u4ef6 \u4e0a \u8fd0\u884c \u5e76 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u6548\u679c \uff1a \u53f2\u8bd7 \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe Carla \u8fd8 \u63d0\u4f9b \u6682\u505c \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u9009\u9879 \uff0c \u4ee5\u4fbf \u66f4 \u6709\u6548 \u5730 \u8bb0\u5f55 \u6216 \u8fd0\u884c \u4eff\u771f \u3002 \u6709\u5173 \u6e32\u67d3 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002 \u8fdb\u9636 \u6b65\u9aa4 Carla \u63d0\u4f9b \u4e86 \u5e7f\u6cdb \u7684 \u529f\u80fd \uff0c \u8d85\u51fa \u4e86 \u672c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ecb\u7ecd \u7684 \u8303\u56f4 \u3002 \u8fd9\u91cc \u5217\u51fa \u4e86 \u4e00\u4e9b \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u3002 \u7136\u800c \uff0c \u5728 \u5f00\u59cb \u8fdb\u9636 \u6b65\u9aa4 \u4e4b\u524d \uff0c \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u9605\u8bfb \u6574\u4e2a \u201c \u57fa\u7840 \u201d \u90e8\u5206 \u3002 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u683c \u3002 \u5141\u8bb8 \u5728 Carla \u4e2d \u52a0\u8f7d \u4efb\u4f55 OpenDRIVE \u5730\u56fe \uff0c \u65e0\u9700 \u521b\u5efa \u8d44\u6e90 \u3002 PTV - Vissim \u534f\u540c \u4eff\u771f \u3002 \u5728 Carla \u548c PTV - Vissim \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u5f55\u5236 \u5668 \u3002 \u4fdd\u5b58 \u4eff\u771f \u72b6\u6001 \u7684 \u5feb\u7167 \uff0c \u4ee5\u4fbf \u4ee5 \u7cbe\u786e \u7684 \u7cbe\u5ea6 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u3002 \u6e32\u67d3 \u9009\u9879 \u3002 \u5305\u62ec \u56fe\u5f62 \u8d28\u91cf \u8bbe\u7f6e \u3001 \u79bb\u5c4f \u6e32\u67d3 \u548c \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u3002 RSS \uff08 Responsibility Sensitive Safety \uff09 \uff1a \u96c6\u6210 \u7528\u4e8e \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u8f66\u8f86 \u8f68\u8ff9 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b89\u5168\u6027 C++ \u5e93 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u540c\u6b65 \u3002 \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u4fe1 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 SUMO \u534f\u540c \u4eff\u771f \uff1a \u5728 Carla \u548c SUMO \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6240\u6709 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u7684 \u8f66\u8f86 \u3002 \u5b83 \u4eff\u771f \u57ce\u5e02 \u4e2d \u7684 \u4ea4\u901a \uff0c \u4f7f \u4eff\u771f \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u4e00\u4e2a \u771f\u5b9e \u7684 \u57ce\u5e02 \u73af\u5883 \u3002","title":"\u6982\u5ff5 \u548c \u57fa\u7840"},{"location":"foundations/#_1","text":"\u672c\u9875 \u4ecb\u7ecd \u4e86 \u4e86\u89e3 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5982\u4f55 \u901a\u8fc7 API \u8fdb\u884c \u64cd\u4f5c \u548c \u901a\u4fe1 \u6240 \u9700 \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 Carla \u4f7f\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u8fd0\u884c \uff0c \u5176\u4e2d Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u5e76 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u5176 \u53d1\u9001 \u6307\u4ee4 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u4f7f\u7528 API \u4e0e \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u8981 \u4f7f\u7528 Python API \uff0c \u60a8 \u5fc5\u987b \u901a\u8fc7 pip \u5b89\u88c5 \u8be5 \u6a21\u5757 \uff1a pip install carla - simulator # Python 2 pip3 install carla - simulator # Python 3 \u8fd8\u8981 \u786e\u4fdd \u5728 python \u811a\u672c \u4e2d \u5bfc\u5165 Carla \u5305 \uff1a import carla \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e16\u754c \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u4eff\u771f \u56de\u653e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f","title":"\u57fa\u7840"},{"location":"foundations/#_2","text":"","title":"\u4e16\u754c \u548c \u5ba2\u6237\u7aef"},{"location":"foundations/#_3","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u662f \u7528\u6237 \u8fd0\u884c \u4ee5 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u4fe1\u606f \u6216 \u66f4\u6539 \u7684 \u6a21\u5757 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f7f\u7528 IP \u548c \u7279\u5b9a \u7aef\u53e3 \u8fd0\u884c \u3002 \u5b83 \u901a\u8fc7 \u7ec8\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u6709 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u540c\u65f6 \u8fd0\u884c \u3002 \u9ad8\u7ea7 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7ba1\u7406 \u9700\u8981 \u5bf9 Carla \u548c \u540c\u6b65 \u6709 \u900f\u5f7b \u7684 \u4e86\u89e3 \u3002 \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a client = carla . Client ( ' localhost ' , 2000 ) \u8fd9\u4f1a \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \u4e3a \u4e0e \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a localhost \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u6216\u8005 \uff0c \u5982\u679c \u5728 \u5355\u72ec \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u7f51\u7edc \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7f51\u7edc\u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u6570 \u662f \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5728 \u7aef\u53e3 2000 \u4e0a \u8fd0\u884c \uff0c \u5982 \u6709 \u5fc5\u8981 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u542f\u52a8 Carla \u65f6 \u5728 \u8bbe\u7f6e \u4e2d \u66f4\u6539 \u6b64 \u8bbe\u7f6e \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u53ef \u7528\u4e8e \u591a\u79cd \u529f\u80fd \uff0c \u5305\u62ec \u52a0\u8f7d \u65b0 \u5730\u56fe \u3001 \u8bb0\u5f55 \u4eff\u771f \u548c \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a client . load _ world ( ' Town07 ' ) client . start _ recorder ( ' recording . log ' )","title":"\u5ba2\u6237\u7aef"},{"location":"foundations/#_4","text":"\u4e16\u754c \u662f \u4ee3\u8868 \u4eff\u771f \u7684 \u5bf9\u8c61 \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u62bd\u8c61 \u5c42 \uff0c \u5305\u542b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u6539\u53d8 \u5929\u6c14 \u3001 \u83b7\u53d6 \u4e16\u754c \u5f53\u524d \u72b6\u6001 \u7b49 \u7684 \u4e3b\u8981 \u65b9\u6cd5 \u3002 \u6bcf\u4e2a \u4eff\u771f \u53ea\u6709 \u4e00\u4e2a \u4e16\u754c \u3002 \u5f53 \u5730\u56fe \u6539\u53d8 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u6467\u6bc1 \u5e76 \u66ff\u6362 \u4e3a \u65b0 \u7684 \u3002 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u68c0\u7d22 \u4e16\u754c \u5bf9\u8c61 \uff1a world = client . get _ world ( ) \u4e16\u754c \u5bf9\u8c61 \u53ef \u7528\u4e8e \u4f7f\u7528 \u5176 \u591a\u79cd \u65b9\u6cd5 \u8bbf\u95ee \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5929\u6c14 \u3001 \u8f66\u8f86 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u5730\u56fe \uff1a level = world . get _ map ( ) weather = world . get _ weather ( ) blueprint _ library = world . get _ blueprint _ library ( )","title":"\u4e16\u754c"},{"location":"foundations/#_5","text":"\u6f14\u5458 \u662f \u5728 \u4eff\u771f \u4e2d \u626e\u6f14 \u89d2\u8272 \u7684 \u4efb\u4f55 \u4e1c\u897f \u3002 \u8f66\u8f86 \u884c\u4eba \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u4f17 \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u662f \u751f\u6210 \u89d2\u8272 \u6240 \u5fc5\u9700 \u7684 \u5df2\u7ecf \u5236\u4f5c \u597d \u7684 \u89d2\u8272 \u5e03\u5c40 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7ec4 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c5e\u6027 \u53ef\u4ee5 \u7531 \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u80fd \u3002 \u6709 \u4e00\u4e2a Blueprint \u5e93 \uff0c \u5176\u4e2d \u5305\u542b \u6240\u6709 \u53ef\u7528 \u7684 \u84dd\u56fe \u4ee5\u53ca \u6709\u5173 \u5b83\u4eec \u7684 \u4fe1\u606f \u3002","title":"\u53c2\u4e0e\u8005 \u548c \u84dd\u56fe"},{"location":"foundations/#_6","text":"\u5730\u56fe \u662f \u4ee3\u8868 \u4eff\u771f \u4e16\u754c \u7684 \u5bf9\u8c61 \uff0c \u4e3b\u8981 \u662f \u57ce\u9547 \u3002 \u6709 \u516b\u5f20 \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5b83\u4eec \u90fd \u4f7f\u7528 opdrive 1.4 \u6807\u51c6 \u6765 \u63cf\u8ff0 \u9053\u8def \u3002 \u9053\u8def \u3001 \u8f66\u9053 \u548c \u8def\u53e3 \u7531 Python API \u7ba1\u7406 \uff0c \u4ee5\u4fbf \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbf\u95ee \u3002 \u8fd9\u4e9b \u4e0e waypoint \u7c7b \u4e00\u8d77 \u4f7f\u7528 \uff0c \u4e3a \u8f66\u8f86 \u63d0\u4f9b \u5bfc\u822a \u8def\u5f84 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u662f \u53ef \u8bbf\u95ee \u7684 carla . Landmark \u3002 \u8fd9\u4e9b \u5730\u6807 \u5bf9\u8c61 \u5305\u542b \u5173\u4e8e \u5b83\u4eec \u7684 OpenDRIVE \u5b9a\u4e49 \u7684 \u4fe1\u606f \u3002 \u6b64\u5916 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5728 \u8fd0\u884c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u505c\u8f66 \u6807\u5fd7 \u3001 \u8ba9 \u884c \u6807\u5fd7 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5bf9\u8c61 \uff0c \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u4f1a \u653e\u7f6e \u5728 \u9053\u8def \u4e0a \uff0c \u6709 \u8fb9\u754c \u6846 \u5305\u56f4 \u3002 \u4e00\u65e6 \u8f66\u8f86 \u8fdb\u5165 \u5b83\u4eec \u7684 \u8fb9\u754c \u6846 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u610f\u8bc6 \u5230 \u8fd9\u4e9b \u5bf9\u8c61 \u3002","title":"\u5730\u56fe \u548c \u5bfc\u822a"},{"location":"foundations/#_7","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49\u5f85 \u4e00\u4e9b \u4e8b\u4ef6 \u53d1\u751f \uff0c \u7136\u540e \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u6570\u636e \u3002 \u5b83\u4eec \u8c03\u7528 \u5b9a\u4e49 \u5982\u4f55 \u7ba1\u7406 \u6570\u636e \u7684 \u51fd\u6570 \u3002 \u6839\u636e \u4e0d\u540c \u7684 \u60c5\u51b5 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u9644\u7740 \u5728 \u7236 \u8f66\u8f86 \u4e0a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u8ddf\u968f \u8f66\u8f86 \uff0c \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7531 Blueprint \u5e93 \u4e2d \u7684 \u84dd\u56fe \u5b9a\u4e49 \u3002 \u76f8\u673a ( RGB \uff0c \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 ) \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 Gnss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c04\u7ebf \u6295\u5c04 \u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u969c\u788d \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe RSS","title":"\u4f20\u611f\u5668 \u548c \u6570\u636e"},{"location":"foundations/#_8","text":"Carla \u5177\u6709 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u4fe1\u606f \u5e76 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u66f4\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u672c\u8d28 \u4e0a \uff0c \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f1a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u5ba2\u6237 \u8bf7\u6c42 \u662f \u5373\u65f6 \u5904\u7406 \u7684 \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8fd0\u884c Python \u4ee3\u7801 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u63a7\u5236 \u5e76 \u544a\u8bc9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f55\u65f6 \u66f4\u65b0 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u5b9e\u9a8c \u6216 \u8bbe\u7f6e \u4eff\u771f \uff0c \u5f02\u6b65 \u6a21\u5f0f \u662f \u8fd0\u884c Carla \u7684 \u5408\u9002 \u6a21\u5f0f \uff0c \u56e0\u6b64 \u60a8 \u53ef\u4ee5 \u5728 \u653e\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u5728 \u5730\u56fe \u4e0a \u98de\u884c \u3002 \u5f53 \u60a8 \u60f3\u8981 \u5f00\u59cb \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \u6216 \u5728 \u4eff\u771f \u4e2d \u90e8\u7f72 \u667a\u80fd \u4f53\u65f6 \uff0c \u5efa\u8bae \u5efa\u8bae\u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a \u8fd9 \u5c06 \u4e3a \u60a8 \u63d0\u4f9b \u66f4 \u591a \u7684 \u63a7\u5236 \u63a7\u5236\u529b \u548c \u9884\u6d4b \u6d4b\u6027 \u9884\u6d4b\u6027 \u53ef\u9884\u6d4b\u6027 \u3002 \u9605\u8bfb \u6709\u5173 \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u4e2d \uff0c \u53ea\u6709 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u8be5 \u53d1\u51fa \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9 \u6536\u5230 \u7684 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u505a\u51fa \u54cd\u5e94 \uff0c \u5c31 \u597d\u50cf \u5b83 \u6765\u81ea \u540c\u4e00 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u6837 \u3002 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u6ef4\u7b54 \u4fe1\u53f7 \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u4ea7\u751f \u4e0d \u4e00\u81f4 \u3002","title":"\u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f"},{"location":"foundations/#_9","text":"\u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u7684 \u66f4\u6539 \u53ea\u662f \u5e03\u5c14 \u72b6\u6001 \u7684 \u95ee\u9898 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u672c\u6587 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a False \u6216 \u4f7f\u7528 \u811a\u672c PythonAPI / util / config . py \u3002 cd PythonAPI / util && python3 config . py -- no - sync # \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u65e0\u6cd5 \u4f7f\u7528 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u4f7f\u7528 \u6b64 \u811a\u672c \uff0c \u7528\u6237 \u65e0\u6cd5 \u5728 \u9700\u8981 \u65f6 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u3002","title":"\u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f"},{"location":"foundations/#_10","text":"\u540c\u6b65 \u6a21\u5f0f \u4e0e \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \u4e4b\u95f4 \u7684 \u540c\u6b65 \u65f6 \u7279\u522b \u76f8\u5173 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ca1\u6709 \u7b49\u5f85 \uff0c \u5c31 \u4f1a \u51fa\u73b0 \u4fe1\u606f \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u4e00\u5207 \uff0c \u5e76\u4e14 \u4f1a \u4e22\u5931 \u6216 \u6df7\u5408 \u3002 \u540c\u6837 \uff0c \u5bf9\u4e8e \u8bb8\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u60c5\u51b5 \uff0c \u4e0d \u53ef\u80fd \u77e5\u9053 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u90fd \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u4e2a \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u7ed9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u7684 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u751f\u6210 \u3002 \u540c\u6b65 \u5728 \u8fd9\u91cc \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4e16\u754c \u4e0a \u6709 \u5f02\u6b65 \u65b9\u6cd5 \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u6216\u8005 \u5728 \u6536\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u5e76 \u83b7\u53d6 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u5feb\u7167 world _ snapshot = world . wait _ for _ tick ( ) # \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u6536\u5230 \u65b0 \u7684 \u5feb\u7167 \u65f6 \u90fd \u88ab \u8c03\u7528 \u3002 world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) )","title":"\u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f"},{"location":"foundations/#_11","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u5c06 \u91cd\u73b0 \u5148\u524d \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u6570\u636e \u4fdd\u5b58 \u5230 \u6587\u4ef6 \u4e2d \u3002 \u8fd9\u4e9b \u6570\u636e \u5305\u62ec \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3001 \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u4ee5\u53ca \u592a\u9633 \u7684 \u4f4d\u7f6e \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u6570\u636e \u88ab \u8bb0\u5f55 \u5230 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a0d\u540e \u53ef\u4ee5 \u52a0\u8f7d \u8be5 \u6587\u4ef6 \u4ee5 \u51c6\u786e \u5730 \u518d\u73b0 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u5728 \u6bcf \u4e00\u5e27 \u4e0a \u8fdb\u884c \u66f4\u65b0 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u8bb0\u5f55 \u4e2d \u7684 \u4eba\u4f1a \u7ee7\u7eed \u4ed6\u4eec \u7684 \u8def \uff0c \u5c31 \u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u4e0d\u4f1a \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u2014 \u521b\u9020 \u548c \u6467\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u76d2 \u3002 \u4ea4\u901a \u7b49 \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002","title":"\u8bb0\u5f55\u5668"},{"location":"foundations/#_12","text":"\u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ , / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c additional _ data \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u8bb0\u5f55 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002","title":"\u8bb0\u5f55"},{"location":"foundations/#_13","text":"\u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \u4e4b\u5916 \uff0c \u6b64 \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u63cf\u8ff0 \u7b14\u8bb0 start \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5982\u679c \u4e3a \u6b63 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u7b97 \u8d77 \u3002 \u5982\u679c \u4e3a \u8d1f \uff0c \u5219 \u4ece \u6700\u540e \u8003\u8651 \u3002 duration \u64ad\u653e \u79d2\u6570 \u3002 0 \u4e3a \u5168\u90e8 \u8bb0\u5f55 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 camera \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u662f \u8ba9 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u81ea\u7531 \u79fb\u52a8 \u3002","title":"\u4eff\u771f \u56de\u653e"},{"location":"foundations/#_14","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ee5 \u672c \u6587\u6863 \u4e2d \u6307\u5b9a \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u4fdd\u5b58 \u6240\u6709 \u6570\u636e \u3002","title":"\u8bb0\u5f55\u5668 \u6587\u4ef6\u683c\u5f0f"},{"location":"foundations/#_15","text":"Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u6709\u5173 \u6e32\u67d3 \u8d28\u91cf \u548c \u6548\u7387 \u7684 \u9009\u9879 \u3002 \u5728 \u6700 \u57fa\u672c \u7684 \u5c42\u9762 \u4e0a \uff0c Carla \u63d0\u4f9b \u4e86 \u4e24\u79cd \u8d28\u91cf \u9009\u9879 \uff0c \u53ef\u4ee5 \u5728 \u9ad8 \u89c4\u683c \u548c \u4f4e \u89c4\u683c \u786c\u4ef6 \u4e0a \u8fd0\u884c \u5e76 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u6548\u679c \uff1a","title":"\u6e32\u67d3"},{"location":"foundations/#_16","text":". / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe","title":"\u53f2\u8bd7 \u6a21\u5f0f"},{"location":"foundations/#_17","text":". / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe Carla \u8fd8 \u63d0\u4f9b \u6682\u505c \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u9009\u9879 \uff0c \u4ee5\u4fbf \u66f4 \u6709\u6548 \u5730 \u8bb0\u5f55 \u6216 \u8fd0\u884c \u4eff\u771f \u3002 \u6709\u5173 \u6e32\u67d3 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002","title":"\u4f4e\u8d28\u91cf \u6a21\u5f0f"},{"location":"foundations/#_18","text":"Carla \u63d0\u4f9b \u4e86 \u5e7f\u6cdb \u7684 \u529f\u80fd \uff0c \u8d85\u51fa \u4e86 \u672c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ecb\u7ecd \u7684 \u8303\u56f4 \u3002 \u8fd9\u91cc \u5217\u51fa \u4e86 \u4e00\u4e9b \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u3002 \u7136\u800c \uff0c \u5728 \u5f00\u59cb \u8fdb\u9636 \u6b65\u9aa4 \u4e4b\u524d \uff0c \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u9605\u8bfb \u6574\u4e2a \u201c \u57fa\u7840 \u201d \u90e8\u5206 \u3002 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u683c \u3002 \u5141\u8bb8 \u5728 Carla \u4e2d \u52a0\u8f7d \u4efb\u4f55 OpenDRIVE \u5730\u56fe \uff0c \u65e0\u9700 \u521b\u5efa \u8d44\u6e90 \u3002 PTV - Vissim \u534f\u540c \u4eff\u771f \u3002 \u5728 Carla \u548c PTV - Vissim \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u5f55\u5236 \u5668 \u3002 \u4fdd\u5b58 \u4eff\u771f \u72b6\u6001 \u7684 \u5feb\u7167 \uff0c \u4ee5\u4fbf \u4ee5 \u7cbe\u786e \u7684 \u7cbe\u5ea6 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u3002 \u6e32\u67d3 \u9009\u9879 \u3002 \u5305\u62ec \u56fe\u5f62 \u8d28\u91cf \u8bbe\u7f6e \u3001 \u79bb\u5c4f \u6e32\u67d3 \u548c \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u3002 RSS \uff08 Responsibility Sensitive Safety \uff09 \uff1a \u96c6\u6210 \u7528\u4e8e \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u8f66\u8f86 \u8f68\u8ff9 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b89\u5168\u6027 C++ \u5e93 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u540c\u6b65 \u3002 \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u4fe1 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 SUMO \u534f\u540c \u4eff\u771f \uff1a \u5728 Carla \u548c SUMO \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6240\u6709 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u7684 \u8f66\u8f86 \u3002 \u5b83 \u4eff\u771f \u57ce\u5e02 \u4e2d \u7684 \u4ea4\u901a \uff0c \u4f7f \u4eff\u771f \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u4e00\u4e2a \u771f\u5b9e \u7684 \u57ce\u5e02 \u73af\u5883 \u3002","title":"\u8fdb\u9636 \u6b65\u9aa4"},{"location":"iss_install/","text":"\u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \uff08 ISS \uff09 \u662f \u4e00\u4e2a \u7528 Python \u548c C++ \u7f16\u5199 \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u6846\u67b6 \uff0c \u65e8\u5728 \u6784\u5efa \u4e00\u4e2a \u9002\u5408 \u7814\u7a76 \u7684 \u53ef \u6269\u5c55 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u611f\u77e5 \u3001 \u5b9a\u4f4d \u3001 \u6620\u5c04 \u3001 \u9884\u6d4b \u3001 \u89c4\u5212 \u548c \u63a7\u5236 \u3002 \u5bf9\u5916 \u5916\u90e8 \u5bf9\u5916\u90e8 \u5e93 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6700\u5c0f \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u8bbe\u8ba1 \u53ef\u4ee5 \u4e3a \u7814\u7a76 \u4eba\u5458 \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u900f\u660e \u3001 \u5e72\u51c0 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \u3002 ISS \u7684 \u4ee3\u7801 \u53ef\u4ee5 \u4ece \u5176 Github \u4ed3\u5e93 \u4e0b\u8f7d \uff0c \u5176\u4e2d \u53ef\u4ee5 \u627e\u5230 \u8be6\u7ec6 \u7684 \u5b89\u88c5 \u8bf4\u660e \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 ISS \u4f7f\u7528 Ubuntu 20.04 \u8fdb\u884c \u6d4b\u8bd5 \uff0c \u8fd0\u884c Python 3.8 \u3002 \u5bf9\u4e8e \u90a3\u4e9b \u6709 \u5174\u8da3 \u5c06 ISS \u4e0e Gazebo \u548c ROS - Noetic \u7ed3\u5408 \u4f7f\u7528 \u7684 \u4eba \uff0c \u60a8 \u5e94\u8be5 \u6309\u7167 \u5b98\u65b9 ROS \u6587\u6863 \u4e2d \u63d0\u4f9b \u7684 \u8bf4\u660e \u5b89\u88c5 ROS - Noetic \u3002 \u8981 \u5c06 ISS \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \uff0c \u5fc5\u987b \u5b89\u88c5 Carla \u3002 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u7248\u672c 0.9 . 13 \uff0c \u53ef\u4ee5 \u5728 Carla GitHub \u53d1\u5e03 \u9875\u9762 \u53d1\u5e03\u9875 \u53d1\u5e03\u9875\u9762 \u627e\u5230 \u8be5 \u7248\u672c \u3002 \u5b89\u88c5 \u5b89\u88c5 ROS Noetic , \u4ee5\u53ca \u4e0b\u8f7d \u76f8\u5173 \u4f9d\u8d56 : sudo apt - get install ros - noetic - navigation ros - noetic - gmapping ros - noetic - teb - local - planner ros - noetic - ackermann - msgs ros - noetic - gazebo - ros - pkgs ros - noetic - gazebo - ros - control ros - noetic - joint - state - publisher - gui ros - noetic - ros - control ros - noetic - ros - controllers \u5b89\u88c5 CARLA 0.9 . 13 \u5e76 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf : ` ` ` export CARLA _ ROOT = export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6ce8\u610f \u8fd0\u884c \u4ee3\u7801 \u65f6 \u9700\u8981 agents \u6a21\u5757 \uff0c \u5728 conda \u73af\u5883 ISS \u76ee\u5f55 \u4e0b \uff0c \u8fd8 \u9700\u8981 \u914d\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf export PYTHONPATH = $ PYTHONPATH : / home / ... / carla - 0.9 . 13 / carla : / home / ... / carla - 0.9 . 13 / PythonAPI / carla / agents ` ` ` \u521b\u5efa \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 conda create - n iss python = 3.8 conda activate iss \u6ce8\u610f \u82e5 \u8981 \u9000\u51fa \u5f53\u524d conda \u73af\u5883 \uff0c \u6267\u884c conda deactivate \u5b89\u88c5 git - lfs \u9012\u5f52 \u514b\u9686 \u9879\u76ee \u53ca\u5176 \u5b50 \u6a21\u5757 : ` ` ` git clone -- recurse - submodules https : / / github . com / CAS - LRJ / ISS . git && cd ISS pip3 install - r Install / requirements . txt python3 Install / setup . py develop \u6ce8\u610f \uff1a \u8fd9\u91cc \u5fc5\u987b \u9012\u5f52 \u514b\u9686 \uff0c \u5c06\u5b50 \u6a21\u5757 \u4e00\u5e76 \u514b\u9686 \u4e0b\u6765 \uff0c \u67e5\u770b \u5b50 \u6a21\u5757 \u5185\u5bb9 \u662f\u5426 \u514b\u9686 \u6210\u529f \uff0c \u5426\u5219 \u8fd0\u884c \u62a5\u9519 \u3002 ` ` ` \u5b89\u88c5 PyTorch \u548c torch - scatter : pip3 install torch = = 1.7 . 1 + cu110 torchvision = = 0.8 . 2 + cu110 torchaudio = = 0.7 . 2 - f https : / / download . pytorch . org / whl / torch _ stable . htmlpip3 install Install / torch _ scatter - 2.0 . 7 - cp38 - cp38 - linux _ x86 _ 64 . whl \u5b89\u88c5 CUDA Toolkit 11.8 \u5b89\u88c5 MMDetection \u6784\u5efa \u8981 \u4f7f\u7528 ROS - Noetic , \u9996\u5148 \u6784\u5efa ROS \u5de5\u4f5c \u7a7a\u95f4 \u3002 ` ` ` cd ros1 _ ws && catkin build source devel / setup . bash # or setup . zsh \u6ce8\u610f \uff1a \u4f1a \u751f\u6210 devel \u76ee\u5f55 \uff01 ` ` ` \u8fd0\u884c \u4efb\u52a1 \u6253\u5f00 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 cd carla - 0.9 . 13 . / CarlaUE4 . sh \u542f\u52a8 ros \u8282\u70b9 \uff0c \u4e3a \u667a\u80fd \u9a7e\u9a76 \u8f66\u8f86 \u4f5c \u5168\u5c40 \u8def\u5f84 \u89c4\u5212 roslaunch carla _ bridge carla _ demo . launch \u6ce8\u610f \uff1a \u8fd0\u884c \u8fc7\u7a0b \u4e2d \u8981\u6c42 \u5b89\u88c5 \u5176\u4ed6 \u5305 \uff0c \u9664 CARLA client API \u4e3a 0.9 . 13 \uff0c \u5176\u4ed6 \u4e0d \u505a \u8981\u6c42","title":"\u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf"},{"location":"iss_install/#_1","text":"\u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \uff08 ISS \uff09 \u662f \u4e00\u4e2a \u7528 Python \u548c C++ \u7f16\u5199 \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u6846\u67b6 \uff0c \u65e8\u5728 \u6784\u5efa \u4e00\u4e2a \u9002\u5408 \u7814\u7a76 \u7684 \u53ef \u6269\u5c55 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u611f\u77e5 \u3001 \u5b9a\u4f4d \u3001 \u6620\u5c04 \u3001 \u9884\u6d4b \u3001 \u89c4\u5212 \u548c \u63a7\u5236 \u3002 \u5bf9\u5916 \u5916\u90e8 \u5bf9\u5916\u90e8 \u5e93 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6700\u5c0f \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u8bbe\u8ba1 \u53ef\u4ee5 \u4e3a \u7814\u7a76 \u4eba\u5458 \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u900f\u660e \u3001 \u5e72\u51c0 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \u3002 ISS \u7684 \u4ee3\u7801 \u53ef\u4ee5 \u4ece \u5176 Github \u4ed3\u5e93 \u4e0b\u8f7d \uff0c \u5176\u4e2d \u53ef\u4ee5 \u627e\u5230 \u8be6\u7ec6 \u7684 \u5b89\u88c5 \u8bf4\u660e \u3002","title":"\u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf"},{"location":"iss_install/#_2","text":"ISS \u4f7f\u7528 Ubuntu 20.04 \u8fdb\u884c \u6d4b\u8bd5 \uff0c \u8fd0\u884c Python 3.8 \u3002 \u5bf9\u4e8e \u90a3\u4e9b \u6709 \u5174\u8da3 \u5c06 ISS \u4e0e Gazebo \u548c ROS - Noetic \u7ed3\u5408 \u4f7f\u7528 \u7684 \u4eba \uff0c \u60a8 \u5e94\u8be5 \u6309\u7167 \u5b98\u65b9 ROS \u6587\u6863 \u4e2d \u63d0\u4f9b \u7684 \u8bf4\u660e \u5b89\u88c5 ROS - Noetic \u3002 \u8981 \u5c06 ISS \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \uff0c \u5fc5\u987b \u5b89\u88c5 Carla \u3002 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u7248\u672c 0.9 . 13 \uff0c \u53ef\u4ee5 \u5728 Carla GitHub \u53d1\u5e03 \u9875\u9762 \u53d1\u5e03\u9875 \u53d1\u5e03\u9875\u9762 \u627e\u5230 \u8be5 \u7248\u672c \u3002","title":"\u5148\u51b3\u6761\u4ef6"},{"location":"iss_install/#_3","text":"\u5b89\u88c5 ROS Noetic , \u4ee5\u53ca \u4e0b\u8f7d \u76f8\u5173 \u4f9d\u8d56 : sudo apt - get install ros - noetic - navigation ros - noetic - gmapping ros - noetic - teb - local - planner ros - noetic - ackermann - msgs ros - noetic - gazebo - ros - pkgs ros - noetic - gazebo - ros - control ros - noetic - joint - state - publisher - gui ros - noetic - ros - control ros - noetic - ros - controllers \u5b89\u88c5 CARLA 0.9 . 13 \u5e76 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf : ` ` ` export CARLA _ ROOT = export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6ce8\u610f \u8fd0\u884c \u4ee3\u7801 \u65f6 \u9700\u8981 agents \u6a21\u5757 \uff0c \u5728 conda \u73af\u5883 ISS \u76ee\u5f55 \u4e0b \uff0c \u8fd8 \u9700\u8981 \u914d\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf export PYTHONPATH = $ PYTHONPATH : / home / ... / carla - 0.9 . 13 / carla : / home / ... / carla - 0.9 . 13 / PythonAPI / carla / agents ` ` ` \u521b\u5efa \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 conda create - n iss python = 3.8 conda activate iss \u6ce8\u610f \u82e5 \u8981 \u9000\u51fa \u5f53\u524d conda \u73af\u5883 \uff0c \u6267\u884c conda deactivate \u5b89\u88c5 git - lfs \u9012\u5f52 \u514b\u9686 \u9879\u76ee \u53ca\u5176 \u5b50 \u6a21\u5757 : ` ` ` git clone -- recurse - submodules https : / / github . com / CAS - LRJ / ISS . git && cd ISS pip3 install - r Install / requirements . txt python3 Install / setup . py develop \u6ce8\u610f \uff1a \u8fd9\u91cc \u5fc5\u987b \u9012\u5f52 \u514b\u9686 \uff0c \u5c06\u5b50 \u6a21\u5757 \u4e00\u5e76 \u514b\u9686 \u4e0b\u6765 \uff0c \u67e5\u770b \u5b50 \u6a21\u5757 \u5185\u5bb9 \u662f\u5426 \u514b\u9686 \u6210\u529f \uff0c \u5426\u5219 \u8fd0\u884c \u62a5\u9519 \u3002 ` ` ` \u5b89\u88c5 PyTorch \u548c torch - scatter : pip3 install torch = = 1.7 . 1 + cu110 torchvision = = 0.8 . 2 + cu110 torchaudio = = 0.7 . 2 - f https : / / download . pytorch . org / whl / torch _ stable . htmlpip3 install Install / torch _ scatter - 2.0 . 7 - cp38 - cp38 - linux _ x86 _ 64 . whl \u5b89\u88c5 CUDA Toolkit 11.8 \u5b89\u88c5 MMDetection","title":"\u5b89\u88c5"},{"location":"iss_install/#_4","text":"\u8981 \u4f7f\u7528 ROS - Noetic , \u9996\u5148 \u6784\u5efa ROS \u5de5\u4f5c \u7a7a\u95f4 \u3002 ` ` ` cd ros1 _ ws && catkin build source devel / setup . bash # or setup . zsh \u6ce8\u610f \uff1a \u4f1a \u751f\u6210 devel \u76ee\u5f55 \uff01 ` ` `","title":"\u6784\u5efa"},{"location":"iss_install/#_5","text":"\u6253\u5f00 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 cd carla - 0.9 . 13 . / CarlaUE4 . sh \u542f\u52a8 ros \u8282\u70b9 \uff0c \u4e3a \u667a\u80fd \u9a7e\u9a76 \u8f66\u8f86 \u4f5c \u5168\u5c40 \u8def\u5f84 \u89c4\u5212 roslaunch carla _ bridge carla _ demo . launch \u6ce8\u610f \uff1a \u8fd0\u884c \u8fc7\u7a0b \u4e2d \u8981\u6c42 \u5b89\u88c5 \u5176\u4ed6 \u5305 \uff0c \u9664 CARLA client API \u4e3a 0.9 . 13 \uff0c \u5176\u4ed6 \u4e0d \u505a \u8981\u6c42","title":"\u8fd0\u884c \u4efb\u52a1"},{"location":"large_map_import/","text":"\u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u7248\u672c \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002 \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u8bf7 \u6ce8\u610f \uff0c \u66f4\u6b63 \u7684 y \u5750 \u6807\u662f \u6307 y \u8f74\u4e0a \u8f83 \u4f4e \u7684 \u56fe\u5757 \u3002 \u4f8b\u5982 \uff0c Map01 _ Tile _ 0 _ 1 \u4f1a \u5750\u5728 Map01 _ Tile _ 0 _ 0 \u7684 \u4e0b\u9762 \u3002 \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 Map01 . xodr \u7b14\u8bb0 \u8be5 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 . json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 Maps \u548c Props \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx \u56fe\u5757 \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" xodr \" : \" . / Map01 . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 2000 , \" tiles \" : [ \" . / Map01 _ Tile _ 0 _ 0 . fbx \" , \" . / Map01 _ Tile _ 0 _ 1 . fbx \" , \" . / Map01 _ Tile _ 1 _ 0 . fbx \" , \" . / Map01 _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] } \u8fdb\u884c \u5bfc\u5165 \u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 < mapName > \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef \u4f9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7b49 \u3002 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e2d \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u76ee\u5f55 \u4e0b \uff0c \u5728 Windows \u4e2d \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe"},{"location":"large_map_import/#_1","text":"RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u7248\u672c \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002 \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe","title":"\u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe"},{"location":"large_map_import/#_2","text":"\u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u8bf7 \u6ce8\u610f \uff0c \u66f4\u6b63 \u7684 y \u5750 \u6807\u662f \u6307 y \u8f74\u4e0a \u8f83 \u4f4e \u7684 \u56fe\u5757 \u3002 \u4f8b\u5982 \uff0c Map01 _ Tile _ 0 _ 1 \u4f1a \u5750\u5728 Map01 _ Tile _ 0 _ 0 \u7684 \u4e0b\u9762 \u3002 \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 Map01 . xodr \u7b14\u8bb0 \u8be5 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6587\u4ef6 \u548c \u6587\u4ef6\u5939"},{"location":"large_map_import/#json","text":". json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 Maps \u548c Props \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx \u56fe\u5757 \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" xodr \" : \" . / Map01 . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 2000 , \" tiles \" : [ \" . / Map01 _ Tile _ 0 _ 0 . fbx \" , \" . / Map01 _ Tile _ 0 _ 1 . fbx \" , \" . / Map01 _ Tile _ 1 _ 0 . fbx \" , \" . / Map01 _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] }","title":"\u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09"},{"location":"large_map_import/#_3","text":"\u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 < mapName > \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef \u4f9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7b49 \u3002","title":"\u8fdb\u884c \u5bfc\u5165"},{"location":"large_map_import/#_4","text":"\u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e2d \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u76ee\u5f55 \u4e0b \uff0c \u5728 Windows \u4e2d \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe"},{"location":"large_map_overview/","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u5927 \u5730\u56fe \u6982\u8ff0 \u74e6\u7247 \u6d41 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5927 \u5730\u56fe \u6982\u8ff0 Carla \u4e2d \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8fdb\u884c \u5927 \u8303\u56f4 \u7684 \u4eff\u771f \u3002 \u5728 Carla \u4e2d \uff0c \u5927 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u4e0d \u5927\u4e8e 2kmx2km \u7684 \u65b9\u5f62 \u74e6\u7247 \u3002 \u74e6\u7247 \u6839\u636e \u5b83\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u63a5\u8fd1 \u5ea6 \uff08 \u6d41 \u8ddd\u79bb \uff09 \u6d41\u5165 \u548c \u6d41\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5730\u56fe \u4e0a \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e5f \u6839\u636e \u4ed6\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u8fdb\u884c \u7ba1\u7406 \u3002 \u74e6\u7247 \u6d41 \u81ea\u4e3b \u8f66\u8f86 \u5bf9\u4e8e \u5730\u56fe \u74e6\u7247 \u7684 \u88c5\u8f7d \u548c \u5378\u8f7d \u662f \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u3002 \u6839\u636e \u8ddd \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u503c \uff0c \u74e6\u7247 \u88ab \u6d41\u5f0f \u4f20\u8f93 \u8fdb \u548c \u4f20\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u4f8b\u5982 \uff0c \u4f4d\u4e8e \u6d41 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u74e6\u7247 \u5c06 \u4e0d\u4f1a \u5728 \u4eff\u771f \u4e2d \u6e32\u67d3 \uff0c \u800c \u5c06 \u6e32\u67d3 \u6d41 \u8ddd\u79bb \u5185 \u7684 \u74e6\u7247 \u3002 \u6e32\u67d3 \u7684 \u74e6\u7247 \u5c06 \u968f\u7740 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u79fb\u52a8 \u800c \u53d8\u5316 \u3002 \u8981 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \uff0c \u8bf7 \u4f7f\u7528 \u5982\u4e0b \u7684 set _ attribute \u65b9\u6cd5 \uff1a blueprint . set _ attribute ( ' role _ name ' , ' hero ' ) world . spawn _ actor ( blueprint , spawn _ point ) \u4f7f\u7528 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u8bbe\u7f6e \u6d41 \u8ddd\u79bb \uff0c \u4ee5\u4fbf \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 2 \u516c\u91cc \u534a\u5f84 \u5185 \u52a0\u8f7d \u74e6\u7247 \uff1a settings = world . get _ settings ( ) settings . tile _ stream _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u547d\u4ee4 \u8bbe\u7f6e \u6d41 \u4f20\u8f93 \u8ddd\u79bb : cd PythonAPI / util python3 config . py -- tile - stream - distance 2000 \u7b14\u8bb0 \u5927 \u5730\u56fe \u76ee\u524d \u4e00\u6b21 \u4ec5 \u652f\u6301 \u4e00\u8f86 \u81ea\u4e3b \u8f66\u8f86 \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5411 Carla \u5f15\u5165 \u4e86 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6982\u5ff5 \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ec5 \u5b58\u5728 \u4e8e \u5927 \u5730\u56fe \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u4e2d \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u4eff\u771f \u4e2d \u4f4d\u4e8e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u975e \u81ea\u4e3b \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f8b\u5982 \uff0c \u8fdc\u79bb \u81ea\u4e3b \u8f66\u8f86 \u7684 \u8f66\u8f86 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u53ef\u4ee5 \u7b49\u4e8e \u6216 \u5c0f\u4e8e \u6d41 \u8ddd\u79bb \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u73b0 \u81ea\u5df1 \u53d1\u73b0\u81ea\u5df1 \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \uff0c \u5b83 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ecd\u7136 \u5b58\u5728 \uff0c \u4f46 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \u3002 \u5c3d\u7ba1 \u4ecd\u7136 \u53ef\u4ee5 \u8bbe\u7f6e \u4f4d\u7f6e \u548c \u53d8\u6362 \uff0c \u4f46 \u4e0d\u4f1a \u8ba1\u7b97 \u7269\u7406 \u7269\u7406\u91cf \uff08 \u9664\u975e \u901a\u8fc7 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4ee5 \u6df7\u5408 \u6a21\u5f0f \u8fd0\u884c \uff09 \u3002 \u4e00\u65e6 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u518d\u6b21 \u8fdb\u5165 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u5185 \uff0c \u5b83 \u5c06 \u9192\u6765 \uff0c \u5e76\u4e14 \u5176 \u6e32\u67d3 \u548c \u7269\u7406 \u5c06 \u6062\u590d \u6b63\u5e38 \u6062\u590d\u6b63\u5e38 \u3002 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5177\u6709 \u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u53ef\u4ee5 \u5728 \u5927 \u5730\u56fe \u4e2d \u64cd\u4f5c \u65f6 \u8fdb\u884c \u914d\u7f6e \u3002 \u8bf7 \u9605\u8bfb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u5176 \u5de5\u4f5c \u539f\u7406 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u6216 \u5728 world . tick ( ) \u65f6 \u9192\u6765 \u3002 \u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \u8f66\u8f86 \u5468\u56f4 2 \u516c\u91cc \u534a\u5f84 \uff1a settings = world . get _ settings ( ) settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u65b9\u6cd5 \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb cd PythonAPI / util python3 config . py -- actor - active - distance 2000 \u8981 \u68c0\u67e5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \uff1a actor . is _ dormant \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5927 \u5730\u56fe \u6982\u8ff0"},{"location":"large_map_overview/#_1","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u74e6\u7247 \u6d41 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005","title":"\u5927 \u5730\u56fe \u6982\u8ff0"},{"location":"large_map_overview/#_2","text":"Carla \u4e2d \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8fdb\u884c \u5927 \u8303\u56f4 \u7684 \u4eff\u771f \u3002 \u5728 Carla \u4e2d \uff0c \u5927 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u4e0d \u5927\u4e8e 2kmx2km \u7684 \u65b9\u5f62 \u74e6\u7247 \u3002 \u74e6\u7247 \u6839\u636e \u5b83\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u63a5\u8fd1 \u5ea6 \uff08 \u6d41 \u8ddd\u79bb \uff09 \u6d41\u5165 \u548c \u6d41\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5730\u56fe \u4e0a \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e5f \u6839\u636e \u4ed6\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u8fdb\u884c \u7ba1\u7406 \u3002","title":"\u5927 \u5730\u56fe \u6982\u8ff0"},{"location":"large_map_overview/#_3","text":"\u81ea\u4e3b \u8f66\u8f86 \u5bf9\u4e8e \u5730\u56fe \u74e6\u7247 \u7684 \u88c5\u8f7d \u548c \u5378\u8f7d \u662f \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u3002 \u6839\u636e \u8ddd \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u503c \uff0c \u74e6\u7247 \u88ab \u6d41\u5f0f \u4f20\u8f93 \u8fdb \u548c \u4f20\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u4f8b\u5982 \uff0c \u4f4d\u4e8e \u6d41 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u74e6\u7247 \u5c06 \u4e0d\u4f1a \u5728 \u4eff\u771f \u4e2d \u6e32\u67d3 \uff0c \u800c \u5c06 \u6e32\u67d3 \u6d41 \u8ddd\u79bb \u5185 \u7684 \u74e6\u7247 \u3002 \u6e32\u67d3 \u7684 \u74e6\u7247 \u5c06 \u968f\u7740 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u79fb\u52a8 \u800c \u53d8\u5316 \u3002 \u8981 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \uff0c \u8bf7 \u4f7f\u7528 \u5982\u4e0b \u7684 set _ attribute \u65b9\u6cd5 \uff1a blueprint . set _ attribute ( ' role _ name ' , ' hero ' ) world . spawn _ actor ( blueprint , spawn _ point ) \u4f7f\u7528 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u8bbe\u7f6e \u6d41 \u8ddd\u79bb \uff0c \u4ee5\u4fbf \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 2 \u516c\u91cc \u534a\u5f84 \u5185 \u52a0\u8f7d \u74e6\u7247 \uff1a settings = world . get _ settings ( ) settings . tile _ stream _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u547d\u4ee4 \u8bbe\u7f6e \u6d41 \u4f20\u8f93 \u8ddd\u79bb : cd PythonAPI / util python3 config . py -- tile - stream - distance 2000 \u7b14\u8bb0 \u5927 \u5730\u56fe \u76ee\u524d \u4e00\u6b21 \u4ec5 \u652f\u6301 \u4e00\u8f86 \u81ea\u4e3b \u8f66\u8f86 \u3002","title":"\u74e6\u7247 \u6d41"},{"location":"large_map_overview/#_4","text":"\u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5411 Carla \u5f15\u5165 \u4e86 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6982\u5ff5 \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ec5 \u5b58\u5728 \u4e8e \u5927 \u5730\u56fe \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u4e2d \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u4eff\u771f \u4e2d \u4f4d\u4e8e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u975e \u81ea\u4e3b \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f8b\u5982 \uff0c \u8fdc\u79bb \u81ea\u4e3b \u8f66\u8f86 \u7684 \u8f66\u8f86 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u53ef\u4ee5 \u7b49\u4e8e \u6216 \u5c0f\u4e8e \u6d41 \u8ddd\u79bb \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u73b0 \u81ea\u5df1 \u53d1\u73b0\u81ea\u5df1 \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \uff0c \u5b83 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ecd\u7136 \u5b58\u5728 \uff0c \u4f46 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \u3002 \u5c3d\u7ba1 \u4ecd\u7136 \u53ef\u4ee5 \u8bbe\u7f6e \u4f4d\u7f6e \u548c \u53d8\u6362 \uff0c \u4f46 \u4e0d\u4f1a \u8ba1\u7b97 \u7269\u7406 \u7269\u7406\u91cf \uff08 \u9664\u975e \u901a\u8fc7 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4ee5 \u6df7\u5408 \u6a21\u5f0f \u8fd0\u884c \uff09 \u3002 \u4e00\u65e6 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u518d\u6b21 \u8fdb\u5165 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u5185 \uff0c \u5b83 \u5c06 \u9192\u6765 \uff0c \u5e76\u4e14 \u5176 \u6e32\u67d3 \u548c \u7269\u7406 \u5c06 \u6062\u590d \u6b63\u5e38 \u6062\u590d\u6b63\u5e38 \u3002 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5177\u6709 \u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u53ef\u4ee5 \u5728 \u5927 \u5730\u56fe \u4e2d \u64cd\u4f5c \u65f6 \u8fdb\u884c \u914d\u7f6e \u3002 \u8bf7 \u9605\u8bfb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u5176 \u5de5\u4f5c \u539f\u7406 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u6216 \u5728 world . tick ( ) \u65f6 \u9192\u6765 \u3002 \u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \u8f66\u8f86 \u5468\u56f4 2 \u516c\u91cc \u534a\u5f84 \uff1a settings = world . get _ settings ( ) settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u65b9\u6cd5 \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb cd PythonAPI / util python3 config . py -- actor - active - distance 2000 \u8981 \u68c0\u67e5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \uff1a actor . is _ dormant \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4f11\u7720 \u53c2\u4e0e\u8005"},{"location":"large_map_roadrunner/","text":"\u5728 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \uff0c \u5728 \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u60c5 \uff0c \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u5927 \u5730\u56fe \uff0c \u4ee5\u4fbf \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe \u4e0b \u4e00\u4e2a \u6b65\u9aa4 RoadRunner \u7b80\u4ecb RoadRunner \u662f \u4e00\u4e2a \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u8bbe\u8ba1 3D \u573a\u666f \u6765 \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u3002 \u5b83 \u53ef\u4ee5 \u7528\u6765 \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u548c \u4f34\u968f \u7684 opdrive \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e RoadRunner \u7684 \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB \u6821\u56ed \u8bb8\u53ef \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u4e00\u4e0b \u4f60 \u7684 \u5927\u5b66 \u662f\u5426 \u6709 \u8bbf\u95ee \u6743\u9650 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u5173\u4e8e \u53ef \u8bbf\u95ee \u6027 \u7684 \u95ee\u9898 \u6216 \u9ebb\u70e6 \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u4e00\u4e2a \u8bd5\u7528 \u8bd5\u7528\u7248 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c \u5728 RoadRunner \u6587\u6863 \u4e2d\u6709 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5730\u56fe \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20km \u00d7 20km \u3002 \u5927\u4e8e \u8fd9\u4e2a \u503c \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002 \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe \u4e0b\u9762 \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u4e00\u65e6 \u4f60 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u4e86 \u4f60 \u7684 \u5730\u56fe \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u5bfc\u51fa \u5b83 \u4e86 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5728 \u5bfc\u51fa \u540e \u4e0d\u80fd \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd : \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u6620\u5c04 \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u4e00\u65e6 \u5730\u56fe \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb opdrive \u9884\u89c8 \u5de5\u5177 \u6309\u94ae \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 opdrive \u9053\u8def \u7f51\u7edc \uff0c \u5e76 \u7ed9 \u4e00\u5207 \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 _ opdrive \u9884\u89c8 \u5de5\u5177 _ \u4f7f \u5b83 \u66f4 \u5bb9\u6613 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8def\u53e3 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u70b9\u51fb \u2018 Maneuver Tool \u2019 \uff0c \u7136\u540e \u70b9\u51fb \u2018 Rebuild Maneuver Roads \u2019 \u3002 \u901a\u8fc7 \u70b9\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u60a8 \u60f3\u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5b8c\u6574 \u7684 \u5730\u56fe \u8fdb\u884c \u5bfc\u51fa \u3002 \u5f53 \u5b83 \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb Apply World Changes \u3002 \u5f53 \u60a8 \u51c6\u5907 \u5bfc\u51fa \u65f6 : 1 . \u5bfc\u51fa . fbx \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 , \u9009\u62e9 File - > Export - > Firebox ( . fbx ) __ 2 .__ \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d : \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 : Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u5bf9 \u7f51\u683c \u8fdb\u884c \u5212\u5206 \uff0c \u6539\u5584 \u884c\u4eba \u5bfc\u822a \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u4e86 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u74f7\u7816 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u662f 2000 x 2000 \u3002 Export Individual Tiles : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u5757 \u3002 3 . \u5bfc\u51fa . xodr \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u7684 \u6587\u4ef6 \u540d\u79f0 \u6587\u4ef6\u540d \u6587\u4ef6\u540d\u79f0 \u76f8\u540c \u3002 \u4e0b \u4e00\u4e2a \u6b65\u9aa4 \u73b0\u5728 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u4e86 \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5bfc\u5165 \u5927 \u5730\u56fe \u6307\u5357 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#roadrunner","text":"RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \uff0c \u5728 \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u60c5 \uff0c \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u5927 \u5730\u56fe \uff0c \u4ee5\u4fbf \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe \u4e0b \u4e00\u4e2a \u6b65\u9aa4","title":"\u5728 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#roadrunner_1","text":"RoadRunner \u662f \u4e00\u4e2a \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u8bbe\u8ba1 3D \u573a\u666f \u6765 \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u3002 \u5b83 \u53ef\u4ee5 \u7528\u6765 \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u548c \u4f34\u968f \u7684 opdrive \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e RoadRunner \u7684 \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB \u6821\u56ed \u8bb8\u53ef \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u4e00\u4e0b \u4f60 \u7684 \u5927\u5b66 \u662f\u5426 \u6709 \u8bbf\u95ee \u6743\u9650 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u5173\u4e8e \u53ef \u8bbf\u95ee \u6027 \u7684 \u95ee\u9898 \u6216 \u9ebb\u70e6 \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u4e00\u4e2a \u8bd5\u7528 \u8bd5\u7528\u7248 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"RoadRunner \u7b80\u4ecb"},{"location":"large_map_roadrunner/#_1","text":"\u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u5f00\u59cb \u4e4b\u524d"},{"location":"large_map_roadrunner/#roadrunner_2","text":"\u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c \u5728 RoadRunner \u6587\u6863 \u4e2d\u6709 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5730\u56fe \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20km \u00d7 20km \u3002 \u5927\u4e8e \u8fd9\u4e2a \u503c \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#roadrunner_3","text":"\u4e0b\u9762 \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u4e00\u65e6 \u4f60 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u4e86 \u4f60 \u7684 \u5730\u56fe \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u5bfc\u51fa \u5b83 \u4e86 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5728 \u5bfc\u51fa \u540e \u4e0d\u80fd \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd : \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u6620\u5c04 \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u4e00\u65e6 \u5730\u56fe \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb opdrive \u9884\u89c8 \u5de5\u5177 \u6309\u94ae \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 opdrive \u9053\u8def \u7f51\u7edc \uff0c \u5e76 \u7ed9 \u4e00\u5207 \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 _ opdrive \u9884\u89c8 \u5de5\u5177 _ \u4f7f \u5b83 \u66f4 \u5bb9\u6613 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8def\u53e3 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u70b9\u51fb \u2018 Maneuver Tool \u2019 \uff0c \u7136\u540e \u70b9\u51fb \u2018 Rebuild Maneuver Roads \u2019 \u3002 \u901a\u8fc7 \u70b9\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u60a8 \u60f3\u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5b8c\u6574 \u7684 \u5730\u56fe \u8fdb\u884c \u5bfc\u51fa \u3002 \u5f53 \u5b83 \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb Apply World Changes \u3002 \u5f53 \u60a8 \u51c6\u5907 \u5bfc\u51fa \u65f6 : 1 . \u5bfc\u51fa . fbx \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 , \u9009\u62e9 File - > Export - > Firebox ( . fbx ) __ 2 .__ \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d : \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 : Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u5bf9 \u7f51\u683c \u8fdb\u884c \u5212\u5206 \uff0c \u6539\u5584 \u884c\u4eba \u5bfc\u822a \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u4e86 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u74f7\u7816 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u662f 2000 x 2000 \u3002 Export Individual Tiles : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u5757 \u3002 3 . \u5bfc\u51fa . xodr \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u7684 \u6587\u4ef6 \u540d\u79f0 \u6587\u4ef6\u540d \u6587\u4ef6\u540d\u79f0 \u76f8\u540c \u3002","title":"\u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#_2","text":"\u73b0\u5728 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u4e86 \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5bfc\u5165 \u5927 \u5730\u56fe \u6307\u5357 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u4e2a \u6b65\u9aa4"},{"location":"launch_windows/","text":"Windows \u4e0b \u7684 \u542f\u52a8 \u5305 \u7684 \u6784\u5efa \u53d1\u5e03 \u5b89\u88c5 \u7248\u672c \u53c2\u8003 \u94fe\u63a5 \u8fdb\u884c \u865a\u5e7b \u5f15\u64ce \u7684 \u53d1\u5e03 \u3002 \u4f7f\u7528 Visual Studio \u6253\u5f00 UE4 . shn \u3002 \u5728 \u53f3\u4fa7 \u8fb9\u680f \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u4e00\u4e2a \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668 \u9762\u677f \u3002 \u5c55\u5f00 Programs \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u627e\u5230 AutomationTool \u9879\u76ee \uff08 Engine \\ Source \\ Programs \\ AutomationTool \uff09 \uff1a \u53f3\u952e \u5355\u51fb \u5b83 \u5e76 \u9009\u62e9 \u751f\u6210 ( Build ) \uff0c \u5e94\u8be5 \u5f88\u5feb \u3002 \u8fd0\u884c \u5b89\u88c5 \u8f6f\u4ef6 \u7684 \u6784\u5efa \u811a\u672c \u5b89\u88c5 Windows 10 SDK ; \u8fd0\u884c \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u7684 \u5b89\u88c5 \u6784\u5efa \u811a\u672c GenerateInstalledBuild . bat \u3002 \u5982\u679c \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 LocalBuilds \u4e0e \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5904\u4e8e \u540c\u4e00 \u7ea7\u522b \u7684 Engine \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76\u4e14 \u63a7\u5236 \u63a7\u5236\u53f0 \u4e2d \u6ca1\u6709 \u9519\u8bef \u3002 ( \u8fd8 \u5305\u62ec \u4e00\u4e2a InstalledDDC \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a DerivedDataCache ) \u3002 \u95ee\u9898 ERROR : Visual Studio 2017 must be installed in order to build this target . \u89e3\u51b3 \uff1a \u4e0b\u8f7d 3d5 _ VisualStudio20171509 . rar \u8fdb\u884c \u5b89\u88c5 \u3002 Unable to find installation of PDBCOPY . EXE \u89e3\u51b3 \uff1a \u53c2\u8003 \u94fe\u63a5 \u4ece \u767e\u5ea6 \u767e\u5ea6\u7f51 \u76d8 \u4e0b\u8f7d X64 Debuggers And Tools - x64 _ en - us . msi \u5b89\u88c5 \u3002 \u65e0\u6cd5 \u542f\u52a8 \u6b64 \u7a0b\u5e8f \uff0c \u56e0\u4e3a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u4e22\u5931 XINPUT1 _ 3 . dll \u3002 \u5c1d\u8bd5 \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 \u8be5\u7a0b \u89e3\u51b3 \uff1a \u53c2\u8003 \u94fe\u63a5 \u5b89\u88c5 DirectX Redist ( June 2010 ) \u3002 \u5355\u72ec \u8fd0\u884c Engine - > Binaries - > Win64 \u4f1a \u51fa\u73b0 \u9519\u8bef \u63d0\u793a \uff1a Plugin ' ExampleDeviceProfileSelector ' failed to load because moduleExampleDeviceProfileSelector ' could not be found . Please ensure the plugin isproperly installed , otherwise consider disabling the plugin for this project . \u4f46\u662f make launch \u4e0d\u4f1a \u51fa\u9519 \u3002","title":"Windows \u4e0b \u7684 \u542f\u52a8 \u5305 \u7684 \u6784\u5efa"},{"location":"launch_windows/#windows","text":"","title":"Windows \u4e0b \u7684 \u542f\u52a8 \u5305 \u7684 \u6784\u5efa"},{"location":"launch_windows/#_1","text":"\u53c2\u8003 \u94fe\u63a5 \u8fdb\u884c \u865a\u5e7b \u5f15\u64ce \u7684 \u53d1\u5e03 \u3002 \u4f7f\u7528 Visual Studio \u6253\u5f00 UE4 . shn \u3002 \u5728 \u53f3\u4fa7 \u8fb9\u680f \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u4e00\u4e2a \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668 \u9762\u677f \u3002 \u5c55\u5f00 Programs \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u627e\u5230 AutomationTool \u9879\u76ee \uff08 Engine \\ Source \\ Programs \\ AutomationTool \uff09 \uff1a \u53f3\u952e \u5355\u51fb \u5b83 \u5e76 \u9009\u62e9 \u751f\u6210 ( Build ) \uff0c \u5e94\u8be5 \u5f88\u5feb \u3002","title":"\u53d1\u5e03 \u5b89\u88c5 \u7248\u672c"},{"location":"launch_windows/#_2","text":"\u5b89\u88c5 Windows 10 SDK ; \u8fd0\u884c \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u7684 \u5b89\u88c5 \u6784\u5efa \u811a\u672c GenerateInstalledBuild . bat \u3002 \u5982\u679c \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 LocalBuilds \u4e0e \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5904\u4e8e \u540c\u4e00 \u7ea7\u522b \u7684 Engine \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76\u4e14 \u63a7\u5236 \u63a7\u5236\u53f0 \u4e2d \u6ca1\u6709 \u9519\u8bef \u3002 ( \u8fd8 \u5305\u62ec \u4e00\u4e2a InstalledDDC \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a DerivedDataCache ) \u3002","title":"\u8fd0\u884c \u5b89\u88c5 \u8f6f\u4ef6 \u7684 \u6784\u5efa \u811a\u672c"},{"location":"launch_windows/#_3","text":"ERROR : Visual Studio 2017 must be installed in order to build this target . \u89e3\u51b3 \uff1a \u4e0b\u8f7d 3d5 _ VisualStudio20171509 . rar \u8fdb\u884c \u5b89\u88c5 \u3002 Unable to find installation of PDBCOPY . EXE \u89e3\u51b3 \uff1a \u53c2\u8003 \u94fe\u63a5 \u4ece \u767e\u5ea6 \u767e\u5ea6\u7f51 \u76d8 \u4e0b\u8f7d X64 Debuggers And Tools - x64 _ en - us . msi \u5b89\u88c5 \u3002 \u65e0\u6cd5 \u542f\u52a8 \u6b64 \u7a0b\u5e8f \uff0c \u56e0\u4e3a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u4e22\u5931 XINPUT1 _ 3 . dll \u3002 \u5c1d\u8bd5 \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 \u8be5\u7a0b \u89e3\u51b3 \uff1a \u53c2\u8003 \u94fe\u63a5 \u5b89\u88c5 DirectX Redist ( June 2010 ) \u3002 \u5355\u72ec \u8fd0\u884c Engine - > Binaries - > Win64 \u4f1a \u51fa\u73b0 \u9519\u8bef \u63d0\u793a \uff1a Plugin ' ExampleDeviceProfileSelector ' failed to load because moduleExampleDeviceProfileSelector ' could not be found . Please ensure the plugin isproperly installed , otherwise consider disabling the plugin for this project . \u4f46\u662f make launch \u4e0d\u4f1a \u51fa\u9519 \u3002","title":"\u95ee\u9898"},{"location":"libcarla/","text":"LibCarla C++ \u6587\u6863","title":"Libcarla"},{"location":"libcarla/#libcarla","text":"C++ \u6587\u6863","title":"LibCarla"},{"location":"map_town01/","text":"\u57ce\u9547 1 \u57ce\u9547 1 \u662f \u4e00\u5ea7 \u5c0f\u9547 \uff0c \u62e5\u6709 \u4f17\u591a \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \uff0c \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u9488\u53f6 \u9488\u53f6\u6811 \uff0c \u8fd8\u6709 \u51e0\u5ea7 \u6a2a\u8de8 \u6cb3\u6d41 \u7684 \u5c0f\u6865 \uff0c \u5c06 \u5c0f\u9547 \u5206\u4e3a \u4e24\u534a \u3002 \u8def\u7f51 \u9053\u8def \u7f51\u7edc \u6709 \u51e0\u5ea7 \u8de8\u6c34 \u6865\u6881 \u548c \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u3002 \u7279\u5f81 \u5730\u56fe \u4e0a \u6709 \u4e00\u6761 \u5c0f\u6cb3 \uff0c \u6709 \u51e0\u4e2a \u8def\u53e3 \u3002 \u5546\u4e1a \u98ce\u683c \u5efa\u7b51 \u6797\u7acb \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u57ce\u9547 1"},{"location":"map_town01/#1","text":"\u57ce\u9547 1 \u662f \u4e00\u5ea7 \u5c0f\u9547 \uff0c \u62e5\u6709 \u4f17\u591a \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \uff0c \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u9488\u53f6 \u9488\u53f6\u6811 \uff0c \u8fd8\u6709 \u51e0\u5ea7 \u6a2a\u8de8 \u6cb3\u6d41 \u7684 \u5c0f\u6865 \uff0c \u5c06 \u5c0f\u9547 \u5206\u4e3a \u4e24\u534a \u3002","title":"\u57ce\u9547 1"},{"location":"map_town01/#_1","text":"\u9053\u8def \u7f51\u7edc \u6709 \u51e0\u5ea7 \u8de8\u6c34 \u6865\u6881 \u548c \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u3002","title":"\u8def\u7f51"},{"location":"map_town01/#_2","text":"\u5730\u56fe \u4e0a \u6709 \u4e00\u6761 \u5c0f\u6cb3 \uff0c \u6709 \u51e0\u4e2a \u8def\u53e3 \u3002 \u5546\u4e1a \u98ce\u683c \u5efa\u7b51 \u6797\u7acb \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u7279\u5f81"},{"location":"map_town02/","text":"\u57ce\u9547 2 \u57ce\u9547 2 \u662f \u4e00\u4e2a \u5c0f\u9547 \uff0c \u6709 \u4f17\u591a \u7684 \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6709 \u6210\u7247 \u7684 \u9488\u53f6 \u9488\u53f6\u6811 \u3001 \u4e00\u4e2a \u516c\u56ed \u4ee5\u53ca \u4e00\u4e2a \u4f4f\u5b85 \u548c \u5546\u4e1a \u5546\u4e1a\u533a \u3002 \u8def\u7f51 \u8def\u7f51 \u7531 \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u7ec4\u6210 \u3002 \u7279\u5f81 \u5730\u56fe \u4e0a \u6709 \u5546\u4e1a \u5546\u4e1a\u533a \u548c \u5927\u8857 \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u516c\u5bd3 \u516c\u5bd3\u697c \u548c \u6559\u5802 \u3002 \u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8fd8\u6709 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u9053\u8def \u3002","title":"\u57ce\u9547 2"},{"location":"map_town02/#2","text":"\u57ce\u9547 2 \u662f \u4e00\u4e2a \u5c0f\u9547 \uff0c \u6709 \u4f17\u591a \u7684 \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6709 \u6210\u7247 \u7684 \u9488\u53f6 \u9488\u53f6\u6811 \u3001 \u4e00\u4e2a \u516c\u56ed \u4ee5\u53ca \u4e00\u4e2a \u4f4f\u5b85 \u548c \u5546\u4e1a \u5546\u4e1a\u533a \u3002","title":"\u57ce\u9547 2"},{"location":"map_town02/#_1","text":"\u8def\u7f51 \u7531 \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u7ec4\u6210 \u3002","title":"\u8def\u7f51"},{"location":"map_town02/#_2","text":"\u5730\u56fe \u4e0a \u6709 \u5546\u4e1a \u5546\u4e1a\u533a \u548c \u5927\u8857 \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u516c\u5bd3 \u516c\u5bd3\u697c \u548c \u6559\u5802 \u3002 \u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8fd8\u6709 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u9053\u8def \u3002","title":"\u7279\u5f81"},{"location":"map_town03/","text":"\u57ce\u9547 3 \u57ce\u9547 3 \u662f \u4e00\u4e2a \u8f83\u5927 \u7684 \u9547 \uff0c \u5177\u6709 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u57ce\u533a \u7684 \u7279\u70b9 \u3002 \u8be5 \u5730\u56fe \u5305\u62ec \u4e00\u4e9b \u6709\u8da3 \u7684 \u9053\u8def \u7f51\u7edc \u7279\u5f81 \uff0c \u4f8b\u5982 \u73af\u5c9b \u3001 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002 \u8be5\u9547 \u8fd8 \u5305\u62ec \u4e00\u6761 \u9ad8\u67b6 \u5730\u94c1 \u8f68\u9053 \u548c \u4e00\u5ea7 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u7684 \u5927\u578b \u5efa\u7b51 \u3002 \u8def\u7f51 \u8def\u7f51 \u8bbe\u6709 \u4e2d\u592e \u73af\u5c9b \u548c \u4f4f\u5b85 \u80e1\u540c \u6b7b\u80e1\u540c \uff0c \u4ee5\u53ca \u4f17\u591a \u56db\u5411 \u8def\u53e3 \u548c \u4e01\u5b57 \u8def\u53e3 \u3002 \u7279\u5f81 \u8be5 \u5730\u56fe \u4ee5 \u7a81\u51fa \u7684 \u4e2d\u592e \u73af\u5c9b \u4e3a \u7279\u8272 \uff0c \u5176\u4e2d \u6709 \u4e00\u5ea7 \u73b0\u4ee3 \u4e3b\u4e49 \u73b0\u4ee3\u4e3b\u4e49 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u548c \u6c34\u57df \u3002 \u4e2d\u5fc3 \u5468\u56f4 \u6709 \u4e00\u6761 \u51f8\u8d77 \u7684 \u5730\u94c1 \u8f68\u9053 \u3002 \u4e00\u4e2a \u5927\u8def \u8def\u53e3 \u5927\u8def\u53e3 \u65c1\u8fb9 \u8fd8\u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8def\u7f51 \u8bbe\u6709 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u3002 \u8fd9\u91cc \u6709 \u516c\u56ed \u548c \u5404\u79cd \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u5546\u4e1a \u5efa\u7b51 \u548c \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u57ce\u9547 3"},{"location":"map_town03/#3","text":"\u57ce\u9547 3 \u662f \u4e00\u4e2a \u8f83\u5927 \u7684 \u9547 \uff0c \u5177\u6709 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u57ce\u533a \u7684 \u7279\u70b9 \u3002 \u8be5 \u5730\u56fe \u5305\u62ec \u4e00\u4e9b \u6709\u8da3 \u7684 \u9053\u8def \u7f51\u7edc \u7279\u5f81 \uff0c \u4f8b\u5982 \u73af\u5c9b \u3001 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002 \u8be5\u9547 \u8fd8 \u5305\u62ec \u4e00\u6761 \u9ad8\u67b6 \u5730\u94c1 \u8f68\u9053 \u548c \u4e00\u5ea7 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u7684 \u5927\u578b \u5efa\u7b51 \u3002","title":"\u57ce\u9547 3"},{"location":"map_town03/#_1","text":"\u8def\u7f51 \u8bbe\u6709 \u4e2d\u592e \u73af\u5c9b \u548c \u4f4f\u5b85 \u80e1\u540c \u6b7b\u80e1\u540c \uff0c \u4ee5\u53ca \u4f17\u591a \u56db\u5411 \u8def\u53e3 \u548c \u4e01\u5b57 \u8def\u53e3 \u3002","title":"\u8def\u7f51"},{"location":"map_town03/#_2","text":"\u8be5 \u5730\u56fe \u4ee5 \u7a81\u51fa \u7684 \u4e2d\u592e \u73af\u5c9b \u4e3a \u7279\u8272 \uff0c \u5176\u4e2d \u6709 \u4e00\u5ea7 \u73b0\u4ee3 \u4e3b\u4e49 \u73b0\u4ee3\u4e3b\u4e49 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u548c \u6c34\u57df \u3002 \u4e2d\u5fc3 \u5468\u56f4 \u6709 \u4e00\u6761 \u51f8\u8d77 \u7684 \u5730\u94c1 \u8f68\u9053 \u3002 \u4e00\u4e2a \u5927\u8def \u8def\u53e3 \u5927\u8def\u53e3 \u65c1\u8fb9 \u8fd8\u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8def\u7f51 \u8bbe\u6709 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u3002 \u8fd9\u91cc \u6709 \u516c\u56ed \u548c \u5404\u79cd \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u5546\u4e1a \u5efa\u7b51 \u548c \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u7279\u5f81"},{"location":"map_town04/","text":"\u57ce\u9547 4 \u57ce\u9547 4 \u662f \u4e00\u4e2a \u4ee5 \u96ea\u5c71 \u548c \u9488\u53f6 \u9488\u53f6\u6811 \u4e3a \u80cc\u666f \u7684 \u5c0f\u9547 \u3002 \u4e00\u6761 \u591a \u8f66\u9053 \u9053\u8def \u4ee5 \u201c 8 \u5b57\u5f62 \u201d \u73af\u7ed5 \u57ce\u9547 \u3002 \u8def\u7f51 \u8def\u7f51 \u7531 \u5546\u4e1a \u548c \u4f4f\u5b85 \u5efa\u7b51 \u4e4b\u95f4 \u7684 \u77ed \u8857\u9053 \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7ec4\u6210 \u7684 \u5c0f\u578b \u7f51\u7edc \u7ec4\u6210 \uff0c \u201c 8 \u5b57\u5f62 \u201d \u98ce\u683c \u7684 \u73af\u5f62 \u9053\u8def \u73af\u7ed5 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u9644\u8fd1 \u7684 \u4e00\u5ea7 \u5c71 \u3002 8 \u5b57\u5f62 \u7684 \u5341\u5b57 \u4ee3\u8868 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 / \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u548c \u73af\u5f62 \u652f\u8def \u3002 \u8be5 \u7f51\u7edc \u8fd8 \u8bbe\u6709 \u5e26 \u73af\u5f62 \u652f\u8def \u7684 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002 \u7279\u5f81 \u4f9d\u5c71 \u800c \u5efa \u7684 \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u9547 \u4e2d\u5fc3 \u662f \u4e00\u4e2a \u8bbe\u6709 \u6237\u5916 \u5ea7\u4f4d \u7684 \u6b65\u884c \u8d2d\u7269 \u5546\u573a \u3002 \u8fd9\u91cc \u6709 \u5404\u79cd \u98ce\u683c \u7684 \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u4ee5\u53ca \u8857\u9053 \uff0c \u5305\u62ec \u6811\u6728 \u548c \u5e7f\u544a \u5e7f\u544a\u724c \u3002","title":"\u57ce\u9547 4"},{"location":"map_town04/#4","text":"\u57ce\u9547 4 \u662f \u4e00\u4e2a \u4ee5 \u96ea\u5c71 \u548c \u9488\u53f6 \u9488\u53f6\u6811 \u4e3a \u80cc\u666f \u7684 \u5c0f\u9547 \u3002 \u4e00\u6761 \u591a \u8f66\u9053 \u9053\u8def \u4ee5 \u201c 8 \u5b57\u5f62 \u201d \u73af\u7ed5 \u57ce\u9547 \u3002","title":"\u57ce\u9547 4"},{"location":"map_town04/#_1","text":"\u8def\u7f51 \u7531 \u5546\u4e1a \u548c \u4f4f\u5b85 \u5efa\u7b51 \u4e4b\u95f4 \u7684 \u77ed \u8857\u9053 \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7ec4\u6210 \u7684 \u5c0f\u578b \u7f51\u7edc \u7ec4\u6210 \uff0c \u201c 8 \u5b57\u5f62 \u201d \u98ce\u683c \u7684 \u73af\u5f62 \u9053\u8def \u73af\u7ed5 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u9644\u8fd1 \u7684 \u4e00\u5ea7 \u5c71 \u3002 8 \u5b57\u5f62 \u7684 \u5341\u5b57 \u4ee3\u8868 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 / \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u548c \u73af\u5f62 \u652f\u8def \u3002 \u8be5 \u7f51\u7edc \u8fd8 \u8bbe\u6709 \u5e26 \u73af\u5f62 \u652f\u8def \u7684 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002","title":"\u8def\u7f51"},{"location":"map_town04/#_2","text":"\u4f9d\u5c71 \u800c \u5efa \u7684 \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u9547 \u4e2d\u5fc3 \u662f \u4e00\u4e2a \u8bbe\u6709 \u6237\u5916 \u5ea7\u4f4d \u7684 \u6b65\u884c \u8d2d\u7269 \u5546\u573a \u3002 \u8fd9\u91cc \u6709 \u5404\u79cd \u98ce\u683c \u7684 \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u4ee5\u53ca \u8857\u9053 \uff0c \u5305\u62ec \u6811\u6728 \u548c \u5e7f\u544a \u5e7f\u544a\u724c \u3002","title":"\u7279\u5f81"},{"location":"map_town05/","text":"\u57ce\u9547 5 \u57ce\u9547 5 \u662f \u4e00\u4e2a \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5 \u9488\u53f6 \u9488\u53f6\u6811 \u8986\u76d6 \u7684 \u5c71\u4e18 \u4e3a \u80cc\u666f \uff0c \u6709 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5927\u578b \u591a \u8f66\u9053 \u9053\u8def \u548c \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002 \u8def\u7f51 \u8fd9\u4e9b \u9053\u8def \u7531 \u8bb8\u591a \u53cc \u8f66\u9053 \u57ce\u5e02 \u5e02\u9053 \u9053\u8def \u57ce\u5e02\u9053\u8def \u7ec4\u6210 \uff0c \u5728 \u8bb8\u591a \u5927\u578b \u8def\u53e3 \u76f8\u4ea4 \u3002 \u57ce\u9547 \u4e24\u4fa7 \u7684 \u8def\u53e3 \u53ef \u901a\u5f80 \u7528\u4f5c \u73af\u8def \u7684 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u7279\u5f81 \u8be5\u9547 \u62e5\u6709 \u4f17\u591a \u5546\u4e1a \u5efa\u7b51 \u3002 \u57ce\u9547 \u4e2d\u5fc3 \u8fd8\u6709 \u4e00\u5ea7 \u5efa\u7b51 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u3002 \u6709 \u4e00\u4e2a \u505c\u8f66 \u8f66\u573a \u505c\u8f66\u573a \uff0c \u5360\u636e \u4e00\u4e2a \u8857\u533a \u3002 \u9053\u8def \u5ef6\u4f38 \u5230 \u4e00\u5904 \u5546\u4e1a \u5efa\u7b51 \u4e0b\u65b9 \u3002","title":"\u57ce\u9547 5"},{"location":"map_town05/#5","text":"\u57ce\u9547 5 \u662f \u4e00\u4e2a \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5 \u9488\u53f6 \u9488\u53f6\u6811 \u8986\u76d6 \u7684 \u5c71\u4e18 \u4e3a \u80cc\u666f \uff0c \u6709 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5927\u578b \u591a \u8f66\u9053 \u9053\u8def \u548c \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002","title":"\u57ce\u9547 5"},{"location":"map_town05/#_1","text":"\u8fd9\u4e9b \u9053\u8def \u7531 \u8bb8\u591a \u53cc \u8f66\u9053 \u57ce\u5e02 \u5e02\u9053 \u9053\u8def \u57ce\u5e02\u9053\u8def \u7ec4\u6210 \uff0c \u5728 \u8bb8\u591a \u5927\u578b \u8def\u53e3 \u76f8\u4ea4 \u3002 \u57ce\u9547 \u4e24\u4fa7 \u7684 \u8def\u53e3 \u53ef \u901a\u5f80 \u7528\u4f5c \u73af\u8def \u7684 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002","title":"\u8def\u7f51"},{"location":"map_town05/#_2","text":"\u8be5\u9547 \u62e5\u6709 \u4f17\u591a \u5546\u4e1a \u5efa\u7b51 \u3002 \u57ce\u9547 \u4e2d\u5fc3 \u8fd8\u6709 \u4e00\u5ea7 \u5efa\u7b51 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u3002 \u6709 \u4e00\u4e2a \u505c\u8f66 \u8f66\u573a \u505c\u8f66\u573a \uff0c \u5360\u636e \u4e00\u4e2a \u8857\u533a \u3002 \u9053\u8def \u5ef6\u4f38 \u5230 \u4e00\u5904 \u5546\u4e1a \u5efa\u7b51 \u4e0b\u65b9 \u3002","title":"\u7279\u5f81"},{"location":"map_town06/","text":"\u57ce\u9547 6 \u57ce\u9547 6 \u662f \u4e00\u4e2a \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u5c0f\u9547 \uff0c \u5750\u843d \u5728 \u9488\u53f6 \u9488\u53f6\u6797 \u666f\u89c2 \u4e2d \uff0c \u62e5\u6709 \u4f17\u591a \u5927\u578b 4 - 6 \u8f66\u9053 \u9053\u8def \u548c \u7279\u6b8a \u8def\u53e3 \uff0c \u4f8b\u5982 \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 6 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002 \u8def\u7f51 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u6709 4 \u6761 \u5927\u578b \u5e73\u884c \u9053\u8def \uff0c \u6709 4 \u81f3 6 \u6761 \u8f66\u9053 \uff0c \u901a\u8fc7 \u591a\u4e2a \u652f\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u3002 \u57ce\u9547 6 \u7684 \u4f17\u591a \u652f\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u5305\u62ec \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u5c55\u793a \u4e86 \u591a\u79cd \u9053\u8def \u573a\u666f \uff0c \u5305\u62ec 5 \u8f66\u9053 \u9053\u8def \u3001 \u80e1\u540c \u6b7b\u80e1\u540c \u548c \u6307\u5b9a \u8f6c\u5f2f \u8f66\u9053 \u3002","title":"\u57ce\u9547 6"},{"location":"map_town06/#6","text":"\u57ce\u9547 6 \u662f \u4e00\u4e2a \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u5c0f\u9547 \uff0c \u5750\u843d \u5728 \u9488\u53f6 \u9488\u53f6\u6797 \u666f\u89c2 \u4e2d \uff0c \u62e5\u6709 \u4f17\u591a \u5927\u578b 4 - 6 \u8f66\u9053 \u9053\u8def \u548c \u7279\u6b8a \u8def\u53e3 \uff0c \u4f8b\u5982 \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 6 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002","title":"\u57ce\u9547 6"},{"location":"map_town06/#_1","text":"\u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u6709 4 \u6761 \u5927\u578b \u5e73\u884c \u9053\u8def \uff0c \u6709 4 \u81f3 6 \u6761 \u8f66\u9053 \uff0c \u901a\u8fc7 \u591a\u4e2a \u652f\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u3002 \u57ce\u9547 6 \u7684 \u4f17\u591a \u652f\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u5305\u62ec \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u5c55\u793a \u4e86 \u591a\u79cd \u9053\u8def \u573a\u666f \uff0c \u5305\u62ec 5 \u8f66\u9053 \u9053\u8def \u3001 \u80e1\u540c \u6b7b\u80e1\u540c \u548c \u6307\u5b9a \u8f6c\u5f2f \u8f66\u9053 \u3002","title":"\u8def\u7f51"},{"location":"map_town07/","text":"\u57ce\u9547 7 \u57ce\u9547 7 \u6a21\u4eff \u4e86 \u4e00\u4e2a \u5b89\u9759 \u7684 \u4e61\u6751 \u793e\u533a \uff0c \u7eff\u8272 \u7684 \u666f\u89c2 \u5145\u6ee1 \u4e86 \u7389\u7c73 \u7389\u7c73\u5730 \u3001 \u8c37\u4ed3 \u3001 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u57ce\u9547 7 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002 \u8def\u7f51 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u5f88\u5c0f \uff0c \u5305\u542b \u4e00\u7ec4 \u7b80\u5355 \u7684 \u8def\u53e3 \u548c \u6ca1\u6709 \u6807\u8bb0 \u7684 \u9053\u8def \u4ee5\u53ca \u51e0\u6761 \u4f4f\u5b85 \u505c\u8f66 \u8857 \u3002 \u7279\u5f81 \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u5305\u62ec \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u573a \u5efa\u7b51 \u3002 \u6709\u4e9b \u7ed3\u6784 \u53ea \u5728 \u519c\u6751 \u519c\u4e1a \u73af\u5883 \u4e2d \u51fa\u73b0 \uff0c \u4f8b\u5982 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u8fd8\u6709 \u4e00\u5c0f \u5c0f\u7247 \u4e00\u5c0f\u7247 \u6c34\u57df \uff0c \u4e0a\u9762 \u6709 \u4e00\u5ea7 \u77ed \u516c\u8def \u8def\u6865 \u516c\u8def\u6865 \u3002 \u4e00\u4e9b \u9053\u8def \u4e24\u65c1 \u90fd \u662f \u7389\u7c73 \u7389\u7c73\u5730 \u3002","title":"\u57ce\u9547 7"},{"location":"map_town07/#7","text":"\u57ce\u9547 7 \u6a21\u4eff \u4e86 \u4e00\u4e2a \u5b89\u9759 \u7684 \u4e61\u6751 \u793e\u533a \uff0c \u7eff\u8272 \u7684 \u666f\u89c2 \u5145\u6ee1 \u4e86 \u7389\u7c73 \u7389\u7c73\u5730 \u3001 \u8c37\u4ed3 \u3001 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u57ce\u9547 7 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002","title":"\u57ce\u9547 7"},{"location":"map_town07/#_1","text":"\u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u5f88\u5c0f \uff0c \u5305\u542b \u4e00\u7ec4 \u7b80\u5355 \u7684 \u8def\u53e3 \u548c \u6ca1\u6709 \u6807\u8bb0 \u7684 \u9053\u8def \u4ee5\u53ca \u51e0\u6761 \u4f4f\u5b85 \u505c\u8f66 \u8857 \u3002","title":"\u8def\u7f51"},{"location":"map_town07/#_2","text":"\u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u5305\u62ec \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u573a \u5efa\u7b51 \u3002 \u6709\u4e9b \u7ed3\u6784 \u53ea \u5728 \u519c\u6751 \u519c\u4e1a \u73af\u5883 \u4e2d \u51fa\u73b0 \uff0c \u4f8b\u5982 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u8fd8\u6709 \u4e00\u5c0f \u5c0f\u7247 \u4e00\u5c0f\u7247 \u6c34\u57df \uff0c \u4e0a\u9762 \u6709 \u4e00\u5ea7 \u77ed \u516c\u8def \u8def\u6865 \u516c\u8def\u6865 \u3002 \u4e00\u4e9b \u9053\u8def \u4e24\u65c1 \u90fd \u662f \u7389\u7c73 \u7389\u7c73\u5730 \u3002","title":"\u7279\u5f81"},{"location":"map_town10/","text":"\u57ce\u9547 10 \u57ce\u9547 10 \u878d\u5408 \u4e86 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u73af\u5883 \u7684 \u7279\u8272 \uff0c \u62e5\u6709 \u5149\u9c9c \u9c9c\u4eae \u4eae\u4e3d \u5149\u9c9c\u4eae\u4e3d \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u548c \u5de5\u4e1a \u5efa\u7b51 \uff0c \u6bd7\u90bb \u6d77\u6ee8 \u957f\u5eca \u3001 \u516c\u5bd3 \u516c\u5bd3\u697c \u3001 \u9152\u5e97 \u3001 \u516c\u5171 \u5171\u5efa \u5efa\u7b51 \u516c\u5171\u5efa\u7b51 \u548c \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \u3002 \u57ce\u9547 10 \u7684 \u8def\u7f51 \u62e5\u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \u5e03\u7f6e \uff0c \u5177\u6709 \u5404\u79cd \u8f66\u9053 \u6807\u8bb0 \u3001 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u548c \u4fe1\u53f7 \u7c7b\u578b \uff0c \u4ee5 \u6311\u6218 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u4e0e \u5176\u4ed6 \u4ea4\u901a \u7684 \u534f\u5546 \u3002 \u8def\u7f51 \u9053\u8def \u7f51\u7edc \u7531 \u7f51\u683c \u5e03\u5c40 \u7ec4\u6210 \uff0c \u5305\u62ec \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \uff0c \u5305\u62ec \u56db\u5411 \u9ec4\u7bb1 \u8def\u53e3 \u3001 \u4e13\u7528 \u8f6c\u5f2f \u8f66\u9053 \u548c \u4e2d\u592e \u9884\u7559 \u533a \u3002 \u7279\u5f81 \u9547 \u4e2d\u5fc3 \u6709 \u4e00\u6761 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \uff0c \u5373\u4f7f \u5728 \u4e2d\u5348 \uff0c \u6811\u51a0 \u4e5f \u4f1a \u5728 \u6811\u836b \u6811\u836b\u4e0b \u6295 \u4e0b \u9634\u5f71 \u3002 \u4e00\u5ea7 \u5b8f\u4f1f \u7684 \u535a\u7269 \u535a\u7269\u9986 \u5360\u636e \u4e86 \u9547 \u4e2d\u5fc3 \u7684 \u4e00\u4fa7 \u3002 \u57ce\u9547 \u7684 \u4e00\u4fa7 \u53e6\u4e00\u4fa7 \u6709 \u4e00\u6761 \u6d77\u6d0b \u957f\u5eca \u3002 \u8be5 \u5efa\u7b51 \u5305\u62ec \u4f17\u591a \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5305\u62ec \u5149\u6ed1 \u7684 \u53cd\u5149 \u5efa\u7b51 \u548c \u5f62\u72b6 \u5f02\u5e38 \u7684 \u626d\u66f2 \u548c \u5706\u67f1 \u67f1\u5f62 \u5706\u67f1\u5f62 \u5854\u697c \u3002","title":"\u57ce\u9547 10"},{"location":"map_town10/#10","text":"\u57ce\u9547 10 \u878d\u5408 \u4e86 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u73af\u5883 \u7684 \u7279\u8272 \uff0c \u62e5\u6709 \u5149\u9c9c \u9c9c\u4eae \u4eae\u4e3d \u5149\u9c9c\u4eae\u4e3d \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u548c \u5de5\u4e1a \u5efa\u7b51 \uff0c \u6bd7\u90bb \u6d77\u6ee8 \u957f\u5eca \u3001 \u516c\u5bd3 \u516c\u5bd3\u697c \u3001 \u9152\u5e97 \u3001 \u516c\u5171 \u5171\u5efa \u5efa\u7b51 \u516c\u5171\u5efa\u7b51 \u548c \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \u3002 \u57ce\u9547 10 \u7684 \u8def\u7f51 \u62e5\u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \u5e03\u7f6e \uff0c \u5177\u6709 \u5404\u79cd \u8f66\u9053 \u6807\u8bb0 \u3001 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u548c \u4fe1\u53f7 \u7c7b\u578b \uff0c \u4ee5 \u6311\u6218 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u4e0e \u5176\u4ed6 \u4ea4\u901a \u7684 \u534f\u5546 \u3002","title":"\u57ce\u9547 10"},{"location":"map_town10/#_1","text":"\u9053\u8def \u7f51\u7edc \u7531 \u7f51\u683c \u5e03\u5c40 \u7ec4\u6210 \uff0c \u5305\u62ec \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \uff0c \u5305\u62ec \u56db\u5411 \u9ec4\u7bb1 \u8def\u53e3 \u3001 \u4e13\u7528 \u8f6c\u5f2f \u8f66\u9053 \u548c \u4e2d\u592e \u9884\u7559 \u533a \u3002","title":"\u8def\u7f51"},{"location":"map_town10/#_2","text":"\u9547 \u4e2d\u5fc3 \u6709 \u4e00\u6761 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \uff0c \u5373\u4f7f \u5728 \u4e2d\u5348 \uff0c \u6811\u51a0 \u4e5f \u4f1a \u5728 \u6811\u836b \u6811\u836b\u4e0b \u6295 \u4e0b \u9634\u5f71 \u3002 \u4e00\u5ea7 \u5b8f\u4f1f \u7684 \u535a\u7269 \u535a\u7269\u9986 \u5360\u636e \u4e86 \u9547 \u4e2d\u5fc3 \u7684 \u4e00\u4fa7 \u3002 \u57ce\u9547 \u7684 \u4e00\u4fa7 \u53e6\u4e00\u4fa7 \u6709 \u4e00\u6761 \u6d77\u6d0b \u957f\u5eca \u3002 \u8be5 \u5efa\u7b51 \u5305\u62ec \u4f17\u591a \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5305\u62ec \u5149\u6ed1 \u7684 \u53cd\u5149 \u5efa\u7b51 \u548c \u5f62\u72b6 \u5f02\u5e38 \u7684 \u626d\u66f2 \u548c \u5706\u67f1 \u67f1\u5f62 \u5706\u67f1\u5f62 \u5854\u697c \u3002","title":"\u7279\u5f81"},{"location":"map_town11/","text":"\u57ce\u9547 11 \u662f \u4e00\u5f20 \u6ca1\u6709 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u6216 \u690d\u88ab \u7b49 \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u7531 \u6742\u4e71 \u6742\u4e71\u65e0\u7ae0 \u7684 \u5355\u8f66 \u9053 \u9053\u8def \u7ec4\u6210 \uff0c \u6563\u5e03 \u7740 \u5c0f\u7fa4 \u7f51\u683c \u72b6 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3002 \u8be5 \u666f\u89c2 \u6709 \u4e00\u4e9b \u4e18\u9675 \u548c \u9ad8\u5730 \uff0c \u5e76\u4e14 \u5177\u6709 \u8349\u72b6 \u7eb9\u7406 \u3002 \u57ce\u9547 11 \u4e3b\u8981 \u7528\u4f5c Carla 0.9 . 12 \u4e2d \u5f15\u5165 \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u7684 \u6982\u5ff5 \u9a8c\u8bc1 \uff0c \u5e76\u4e14 \u662f \u7b2c\u4e00 \u4e00\u5f20 \u7b2c\u4e00\u5f20 \u96c6\u6210 \u5230 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u5927 \u5730\u56fe \u3002 \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u67e5\u770b \u57ce\u9547 11 \u7684 \u8d44\u6e90 \u6587\u4ef6 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u7684 \u60c5\u51b5 \u3002","title":"Map town11"},{"location":"map_town12/","text":"\u57ce\u9547 12 \u57ce\u9547 12 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u9053\u8def \u5e03\u5c40 \u90e8\u5206 \u53d7\u5230 \u7f8e\u56fd \u5fb7\u514b \u8428\u65af \u8428\u65af\u5dde \u5fb7\u514b\u8428\u65af\u5dde \u963f\u9a6c \u9a6c\u91cc \u963f\u9a6c\u91cc \u6d1b\u5e02 \u9053\u8def \u5e03\u5c40 \u7684 \u542f\u53d1 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002 \u5bfc\u822a \u5668 \u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 500.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) ) \u57ce\u9547 12 \u533a \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \uff1a \u57ce\u9547 12 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 12 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002 \u793e\u533a \u5efa\u7b51 \uff1a \u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u7cbe\u54c1 \u7cbe\u54c1\u5e97 \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 12 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u7f8e\u56fd \u57ce\u5e02 \u7684 \u7ecf\u5178 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u3002 \u516c\u56ed \uff1a \u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \uff1a \u57ce\u9547 12 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u5176\u4e2d \u6563\u5e03 \u7740 \u4ee4\u4eba \u5370\u8c61 \u6df1\u523b \u7684 \u73af\u5c9b \u8def\u53e3 \u548c \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u3002 \u519c\u6751 \u548c \u519c\u7530 \uff1a \u57ce\u9547 12 \u8fd8\u6709 \u4e61\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002 \u6c34\u57df \uff1a \u57ce\u9547 12 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec 2 \u4e2a \u5927\u6e56 \u548c \u51e0\u4e2a \u6c60\u5858 \u3002 \u7531\u4e8e \u57ce\u5e02 \u65c1\u8fb9 \u6709 \u4e00\u4e9b \u5927\u578b \u6c34\u666f \uff0c \u8fd9\u4e9b \u6c34\u666f \u4f1a \u4ea7\u751f \u5929\u9645 \u5929\u9645\u7ebf \u7684 \u5012 \u53cd\u5c04 \uff0c \u7ed9 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5e26\u6765 \u6311\u6218 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 10482.4274 * state . pX + - 5.39801455 * state . pY - 5673.07949 ; const carlaY = 5.39801455 * state . pX + 10482.4274 * state . pY - 2885.15738 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u57ce\u9547 12"},{"location":"map_town12/#12","text":"\u57ce\u9547 12 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u9053\u8def \u5e03\u5c40 \u90e8\u5206 \u53d7\u5230 \u7f8e\u56fd \u5fb7\u514b \u8428\u65af \u8428\u65af\u5dde \u5fb7\u514b\u8428\u65af\u5dde \u963f\u9a6c \u9a6c\u91cc \u963f\u9a6c\u91cc \u6d1b\u5e02 \u9053\u8def \u5e03\u5c40 \u7684 \u542f\u53d1 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002","title":"\u57ce\u9547 12"},{"location":"map_town12/#_1","text":"\u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 500.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) )","title":"\u5bfc\u822a \u5668"},{"location":"map_town12/#12_1","text":"","title":"\u57ce\u9547 12 \u533a"},{"location":"map_town12/#_2","text":"\u57ce\u9547 12 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002","title":"\u5e02\u4e2d\u5fc3 \u9ad8\u5c42\u5efa\u7b51 \uff1a"},{"location":"map_town12/#_3","text":"\u57ce\u9547 12 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002","title":"\u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town12/#_4","text":"\u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u7cbe\u54c1 \u7cbe\u54c1\u5e97 \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002","title":"\u793e\u533a \u5efa\u7b51 \uff1a"},{"location":"map_town12/#_5","text":"\u57ce\u9547 12 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u7f8e\u56fd \u57ce\u5e02 \u7684 \u7ecf\u5178 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u3002","title":"\u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town12/#_6","text":"\u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002","title":"\u516c\u56ed \uff1a"},{"location":"map_town12/#_7","text":"\u57ce\u9547 12 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u5176\u4e2d \u6563\u5e03 \u7740 \u4ee4\u4eba \u5370\u8c61 \u6df1\u523b \u7684 \u73af\u5c9b \u8def\u53e3 \u548c \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u3002","title":"\u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9\u8def\u53e3 \uff1a"},{"location":"map_town12/#_8","text":"\u57ce\u9547 12 \u8fd8\u6709 \u4e61\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002","title":"\u519c\u6751 \u548c \u519c\u7530 \uff1a"},{"location":"map_town12/#_9","text":"\u57ce\u9547 12 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec 2 \u4e2a \u5927\u6e56 \u548c \u51e0\u4e2a \u6c60\u5858 \u3002 \u7531\u4e8e \u57ce\u5e02 \u65c1\u8fb9 \u6709 \u4e00\u4e9b \u5927\u578b \u6c34\u666f \uff0c \u8fd9\u4e9b \u6c34\u666f \u4f1a \u4ea7\u751f \u5929\u9645 \u5929\u9645\u7ebf \u7684 \u5012 \u53cd\u5c04 \uff0c \u7ed9 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5e26\u6765 \u6311\u6218 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 10482.4274 * state . pX + - 5.39801455 * state . pY - 5673.07949 ; const carlaY = 5.39801455 * state . pX + 10482.4274 * state . pY - 2885.15738 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u6c34\u57df \uff1a"},{"location":"map_town13/","text":"\u57ce\u9547 13 \u57ce\u9547 13 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002 \u7b14\u8bb0 \u57ce\u9547 13 \u88ab \u8bbe\u8ba1 \u4e3a \u57ce\u9547 12 \u7684 \u9644\u5c5e \u8bbe\u65bd \uff0c \u8fd9\u6837 \u5b83\u4eec \u5c31 \u53ef\u4ee5 \u4f5c\u4e3a \u8bad\u7ec3 - \u6d4b\u8bd5 \u5bf9 \u3002 \u8fd9\u4e9b \u57ce\u9547 \u6709 \u8bb8\u591a \u5171\u540c \u7279\u5f81 \uff0c \u4f46 \u5728 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3001 \u9053\u8def \u7eb9\u7406 \u3001 \u8def\u9762 \u7eb9\u7406 \u548c \u690d\u88ab \u65b9\u9762 \u4e5f \u6709 \u8bb8\u591a \u5dee\u5f02 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e00\u4e2a \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \uff0c \u7136\u540e \u4f7f\u7528 \u53e6 \u4e00\u4e2a \u8fdb\u884c \u6d4b\u8bd5 \uff0c \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u66b4\u9732 \u5f00\u53d1 \u81ea\u52a8 \u9a7e\u9a76 \u6280\u672f \u6808\u65f6 \u53ef\u80fd \u51fa\u73b0 \u7684 \u8fc7\u5ea6 \u62df\u5408 \u95ee\u9898 \u3002 \u5bfc\u822a \u5668 \u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u4f17 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 300.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) ) \u57ce\u9547 13 \u533a \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \uff1a \u57ce\u9547 13 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002 \u793e\u533a \u5efa\u7b51 \uff1a \u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u4e3a \u5546\u4e1a \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 13 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002 \u8bb8\u591a \u4f4f\u5b85 \u4f4f\u5b85\u533a \u90fd \u8bbe\u6709 \u5e26\u6709 \u906e\u9633 \u5e18 \u7684 \u9633\u53f0 \uff0c \u7c7b\u4f3c \u4e8e \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \u7684 \u5357\u6b27 \u56fd\u5bb6 \u5357\u6b27\u56fd\u5bb6 \u3002 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 13 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u6b27\u6d32 \u57ce\u5e02 \u7684 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u88ab \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u5305\u56f4 \u3002 \u516c\u56ed \uff1a \u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \uff1a \u57ce\u9547 13 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u5927\u578b \u73af\u5c9b \u548c \u6a2a\u8de8 \u5927\u7247 \u6c34\u57df \u7684 \u5824 \u9053 \u3002 \u519c\u6751 \u548c \u519c\u7530 \uff1a \u57ce\u9547 13 \u8fd8\u6709 \u4e00\u4e9b \u519c\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002 \u6c34\u57df \uff1a \u57ce\u9547 13 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec \u4e00\u4e2a \u5e26\u6709 \u4e2d\u5fc3 \u5c9b \u7684 \u5927\u6e56 \u548c \u519c\u6751 \u5730\u533a \u7684 \u51e0\u4e2a \u6c60\u5858 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 14556.0868 * state . pX + - 7.34734913 * state . pY - 6655.00941 ; const carlaY = 2.19186383 * state . pX + 12431.3323 * state . pY - 4524.46039 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u57ce\u9547 13"},{"location":"map_town13/#13","text":"\u57ce\u9547 13 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002 \u7b14\u8bb0 \u57ce\u9547 13 \u88ab \u8bbe\u8ba1 \u4e3a \u57ce\u9547 12 \u7684 \u9644\u5c5e \u8bbe\u65bd \uff0c \u8fd9\u6837 \u5b83\u4eec \u5c31 \u53ef\u4ee5 \u4f5c\u4e3a \u8bad\u7ec3 - \u6d4b\u8bd5 \u5bf9 \u3002 \u8fd9\u4e9b \u57ce\u9547 \u6709 \u8bb8\u591a \u5171\u540c \u7279\u5f81 \uff0c \u4f46 \u5728 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3001 \u9053\u8def \u7eb9\u7406 \u3001 \u8def\u9762 \u7eb9\u7406 \u548c \u690d\u88ab \u65b9\u9762 \u4e5f \u6709 \u8bb8\u591a \u5dee\u5f02 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e00\u4e2a \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \uff0c \u7136\u540e \u4f7f\u7528 \u53e6 \u4e00\u4e2a \u8fdb\u884c \u6d4b\u8bd5 \uff0c \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u66b4\u9732 \u5f00\u53d1 \u81ea\u52a8 \u9a7e\u9a76 \u6280\u672f \u6808\u65f6 \u53ef\u80fd \u51fa\u73b0 \u7684 \u8fc7\u5ea6 \u62df\u5408 \u95ee\u9898 \u3002","title":"\u57ce\u9547 13"},{"location":"map_town13/#_1","text":"\u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u4f17 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 300.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) )","title":"\u5bfc\u822a \u5668"},{"location":"map_town13/#13_1","text":"","title":"\u57ce\u9547 13 \u533a"},{"location":"map_town13/#_2","text":"\u57ce\u9547 13 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002","title":"\u5e02\u4e2d\u5fc3 \u9ad8\u5c42\u5efa\u7b51 \uff1a"},{"location":"map_town13/#_3","text":"\u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u4e3a \u5546\u4e1a \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002","title":"\u793e\u533a \u5efa\u7b51 \uff1a"},{"location":"map_town13/#_4","text":"\u57ce\u9547 13 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002 \u8bb8\u591a \u4f4f\u5b85 \u4f4f\u5b85\u533a \u90fd \u8bbe\u6709 \u5e26\u6709 \u906e\u9633 \u5e18 \u7684 \u9633\u53f0 \uff0c \u7c7b\u4f3c \u4e8e \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \u7684 \u5357\u6b27 \u56fd\u5bb6 \u5357\u6b27\u56fd\u5bb6 \u3002","title":"\u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town13/#_5","text":"\u57ce\u9547 13 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u6b27\u6d32 \u57ce\u5e02 \u7684 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u88ab \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u5305\u56f4 \u3002","title":"\u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town13/#_6","text":"\u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002","title":"\u516c\u56ed \uff1a"},{"location":"map_town13/#_7","text":"\u57ce\u9547 13 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u5927\u578b \u73af\u5c9b \u548c \u6a2a\u8de8 \u5927\u7247 \u6c34\u57df \u7684 \u5824 \u9053 \u3002","title":"\u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9\u8def\u53e3 \uff1a"},{"location":"map_town13/#_8","text":"\u57ce\u9547 13 \u8fd8\u6709 \u4e00\u4e9b \u519c\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002","title":"\u519c\u6751 \u548c \u519c\u7530 \uff1a"},{"location":"map_town13/#_9","text":"\u57ce\u9547 13 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec \u4e00\u4e2a \u5e26\u6709 \u4e2d\u5fc3 \u5c9b \u7684 \u5927\u6e56 \u548c \u519c\u6751 \u5730\u533a \u7684 \u51e0\u4e2a \u6c60\u5858 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 14556.0868 * state . pX + - 7.34734913 * state . pY - 6655.00941 ; const carlaY = 2.19186383 * state . pX + 12431.3323 * state . pY - 4524.46039 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u6c34\u57df \uff1a"},{"location":"map_town15/","text":"\u57ce\u9547 15 \u57ce\u9547 15 \u662f \u6839\u636e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u7684 \u9053\u8def \u5e03\u5c40 \u7ed8\u5236 \u7684 \u5730\u56fe \u3002 \u5730\u56fe \u4e2d \u4eff\u771f \u4e86 \u73b0\u4ee3 \u6821\u56ed \u7684 \u4e00\u4e9b \u6807\u5fd7 \u6807\u5fd7\u6027 \u5efa\u7b51 \uff0c \u5305\u62ec \u4eba\u6587 \u56fe\u4e66 \u4e66\u9986 \u56fe\u4e66\u9986 \u3001 \u533b\u5b66 \u5927\u697c \u4ee5\u53ca Carla \u7684 \u8bde\u751f \u751f\u5730 \u8bde\u751f\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \u3002 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \u8be5 \u5730\u56fe \u5305\u62ec \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \uff0c \u8be5 \u4e2d\u5fc3 \u662f \u4e16\u754c \u77e5\u540d \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u7814\u7a76 \u4e2d\u5fc3 \uff0c \u4e5f \u662f Carla \u5f00\u53d1 \u56e2\u961f \u7684 \u6240\u5728 \u6240\u5728\u5730 \u3002 \u4eba\u6587 \u56fe\u4e66 \u4e66\u9986 \u56fe\u4e66\u9986 \u8fd9\u5ea7 \u5efa\u7b51 \u5728 \u6cf0\u7f57 \u5c3c\u4e9a \u4e9a\u8bed \u52a0\u6cf0\u7f57 \u7f57\u5c3c\u4e9a \u5c3c\u4e9a\u8bed \u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed \u4e2d \u88ab \u79f0\u4e3a Biblioteca d ' Humanitats \uff0c \u4e3a \u5728 \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u5b66\u4e60 \u548c \u5de5\u4f5c \u7684 \u5b66\u751f \u548c \u7814\u7a76 \u4eba\u5458 \u63d0\u4f9b \u4e86 \u6db5\u76d6 \u591a\u4e2a \u5b66\u79d1 \u7684 \u6587\u732e \u3002","title":"\u57ce\u9547 15"},{"location":"map_town15/#15","text":"\u57ce\u9547 15 \u662f \u6839\u636e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u7684 \u9053\u8def \u5e03\u5c40 \u7ed8\u5236 \u7684 \u5730\u56fe \u3002 \u5730\u56fe \u4e2d \u4eff\u771f \u4e86 \u73b0\u4ee3 \u6821\u56ed \u7684 \u4e00\u4e9b \u6807\u5fd7 \u6807\u5fd7\u6027 \u5efa\u7b51 \uff0c \u5305\u62ec \u4eba\u6587 \u56fe\u4e66 \u4e66\u9986 \u56fe\u4e66\u9986 \u3001 \u533b\u5b66 \u5927\u697c \u4ee5\u53ca Carla \u7684 \u8bde\u751f \u751f\u5730 \u8bde\u751f\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \u3002","title":"\u57ce\u9547 15"},{"location":"map_town15/#_1","text":"\u8be5 \u5730\u56fe \u5305\u62ec \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \uff0c \u8be5 \u4e2d\u5fc3 \u662f \u4e16\u754c \u77e5\u540d \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u7814\u7a76 \u4e2d\u5fc3 \uff0c \u4e5f \u662f Carla \u5f00\u53d1 \u56e2\u961f \u7684 \u6240\u5728 \u6240\u5728\u5730 \u3002","title":"\u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3"},{"location":"map_town15/#_2","text":"\u8fd9\u5ea7 \u5efa\u7b51 \u5728 \u6cf0\u7f57 \u5c3c\u4e9a \u4e9a\u8bed \u52a0\u6cf0\u7f57 \u7f57\u5c3c\u4e9a \u5c3c\u4e9a\u8bed \u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed \u4e2d \u88ab \u79f0\u4e3a Biblioteca d ' Humanitats \uff0c \u4e3a \u5728 \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u5b66\u4e60 \u548c \u5de5\u4f5c \u7684 \u5b66\u751f \u548c \u7814\u7a76 \u4eba\u5458 \u63d0\u4f9b \u4e86 \u6db5\u76d6 \u591a\u4e2a \u5b66\u79d1 \u7684 \u6587\u732e \u3002","title":"\u4eba\u6587 \u56fe\u4e66\u9986"},{"location":"maps_tutorials/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5728 Carla \u4e2d \uff0c \u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u7f51\u7edc \u7684 \u5b9a\u4e49 \u3002 \u9053\u8def \u7f51\u7edc \u662f \u901a\u8fc7 OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5f00\u7bb1 \u5373\u7528 \u7684 \u5730\u56fe \uff0c \u53ef \u7528\u4e8e \u591a\u79cd \u5e94\u7528 \u3002 \u7528\u6237 \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5df1 \u7684 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"maps_tutorials/#_1","text":"\u5728 Carla \u4e2d \uff0c \u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u7f51\u7edc \u7684 \u5b9a\u4e49 \u3002 \u9053\u8def \u7f51\u7edc \u662f \u901a\u8fc7 OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5f00\u7bb1 \u5373\u7528 \u7684 \u5730\u56fe \uff0c \u53ef \u7528\u4e8e \u591a\u79cd \u5e94\u7528 \u3002 \u7528\u6237 \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5df1 \u7684 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"pcl_recorder/","text":"\u70b9\u4e91 \u5730\u56fe \u521b\u5efa PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \u5141\u8bb8 \u60a8 \u4ece Carla \u5730\u56fe \u521b\u5efa \u70b9\u4e91 \u5730\u56fe \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5b89\u88c5 pcl - tools \u5e93 \uff1a sudo apt install pcl - tools \u4f7f\u7528 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305\u5c06 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u6216 Carla PythonAPI \u4e2d \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u8fdb\u884c \u63a7\u5236 \u3002 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u65b0 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u542f\u52a8 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \uff1a # ROS 1 roslaunch pcl _ recorder pcl _ recorder . launch # ROS 2 ros2 launch pcl _ recorder pcl _ recorder . launch . py 2 . \u6355\u83b7 \u9a71\u52a8 \u5b8c\u6210 \u540e \uff0c \u51cf\u5c0f \u70b9\u4e91 \u7684 \u6574\u4f53 \u5927\u5c0f \uff1a # Create one point cloud file pcl _ concatenate _ points _ pcd / tmp / pcl _ capture / * . pcd # Filter duplicates pcl _ voxel _ grid - leaf 0.1 , 0.1 , 0.1 output . pcd map . pcd 3 . \u9a8c\u8bc1 \u7ed3\u679c \uff1a pcl _ viewer map . pcd","title":"\u70b9\u4e91 \u5730\u56fe \u521b\u5efa"},{"location":"pcl_recorder/#_1","text":"PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \u5141\u8bb8 \u60a8 \u4ece Carla \u5730\u56fe \u521b\u5efa \u70b9\u4e91 \u5730\u56fe \u3002","title":"\u70b9\u4e91 \u5730\u56fe \u521b\u5efa"},{"location":"pcl_recorder/#_2","text":"\u5b89\u88c5 pcl - tools \u5e93 \uff1a sudo apt install pcl - tools","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"pcl_recorder/#pcl","text":"PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305\u5c06 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u6216 Carla PythonAPI \u4e2d \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u8fdb\u884c \u63a7\u5236 \u3002 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u65b0 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u542f\u52a8 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \uff1a # ROS 1 roslaunch pcl _ recorder pcl _ recorder . launch # ROS 2 ros2 launch pcl _ recorder pcl _ recorder . launch . py 2 . \u6355\u83b7 \u9a71\u52a8 \u5b8c\u6210 \u540e \uff0c \u51cf\u5c0f \u70b9\u4e91 \u7684 \u6574\u4f53 \u5927\u5c0f \uff1a # Create one point cloud file pcl _ concatenate _ points _ pcd / tmp / pcl _ capture / * . pcd # Filter duplicates pcl _ voxel _ grid - leaf 0.1 , 0.1 , 0.1 output . pcd map . pcd 3 . \u9a8c\u8bc1 \u7ed3\u679c \uff1a pcl _ viewer map . pcd","title":"\u4f7f\u7528 PCL \u8bb0\u5f55\u5668"},{"location":"plugins_carlaviz/","text":"carlaviz carlaviz \u63d2\u4ef6 \u7528\u4e8e \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3002 \u521b\u5efa \u4e86 \u4e00\u4e2a \u5177\u6709 \u573a\u666f \u7684 \u4e00\u4e9b \u57fa\u672c \u8868\u793a \u7684 \u7a97\u53e3 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u5373\u65f6 \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u8fd8 \u53ef\u4ee5 \u5728 \u573a\u666f \u4e2d \u7ed8\u5236 \u9644\u52a0 \u6587\u672c \u3001 \u7ebf\u6761 \u548c \u6298\u7ebf \u3002 \u4e00\u822c \u4fe1\u606f \u652f\u6301 \u83b7\u53d6 carlaviz \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4e0b\u8f7d \u63d2\u4ef6 \u5de5\u5177 \u4e00\u822c \u4fe1\u606f \u8d21\u732e \u8d21\u732e\u8005 \u2014 Minjun Xu , \u4e5f \u88ab \u79f0\u4e3a wx9698 . \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u2014 MIT . \u652f\u6301 Linux \u2014 Carla 0.9 . 6 , 0.9 . 7 , 0.9 . 8 , 0.9 . 9 , 0.9 . 10 . Windows \u2014 Carla 0.9 . 9 , 0.9 . 10 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u2014 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002 \u83b7\u53d6 carlaviz \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 Docker \u2014 \u8bbf\u95ee \u6587\u6863 \u5e76 \u5b89\u88c5 Docker . \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u2014 \u4efb\u4f55 \u80fd\u591f \u8fd0\u884c Carla \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u90fd \u5e94\u8be5 \u53ef\u4ee5 \u5de5\u4f5c \u3002 Websocket - client \u2014 pip3 install websocket _ client \u3002 \u5982\u679c \u7cfb\u7edf \u4e2d \u5c1a\u672a \u5b89\u88c5 pip \u3002 \u4e0b\u8f7d \u63d2\u4ef6 \u6253\u5f00 \u7ec8\u7aef \u5e76 \u6839\u636e \u8981 \u8fd0\u884c \u7684 Carla \u7248\u672c \u62c9\u53d6 carlaviz \u7684 Docker \u6620\u50cf \u3002 # \u4ec5\u62c9\u53d6 \u548c \u6240 \u4f7f\u7528 \u7684 Carla \u5305 \u5339\u914d \u7684 \u955c\u50cf \u3002 docker pull mjxu96 / carlaviz : 0.9 . 6 docker pull mjxu96 / carlaviz : 0.9 . 7 docker pull mjxu96 / carlaviz : 0.9 . 8 docker pull mjxu96 / carlaviz : 0.9 . 9 docker pull mjxu96 / carlaviz : 0.9 . 10 # \u5982\u679c \u5de5\u4f5c \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e0a \uff0c \u5219 \u62c9\u53d6 \u8be5 \u955c\u50cf docker pull mjxu96 / carlaviz : latest \u91cd\u8981 \u76ee\u524d \u5728 Windows \u4e2d\u4ec5 \u652f\u6301 0.9 . 9 \u548c 0.9 . 10 \u3002 Carla \u81f3 0.9 . 9 \uff08 \u5305\u542b \uff09 \u8bbe\u7f6e \u4e3a \u5355\u6d41 \u3002 \u5bf9\u4e8e \u66f4\u9ad8 \u7248\u672c \uff0c \u5b9e\u73b0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u591a\u6d41 \u3002 \u5728 \u5355\u6d41 \u4e2d , \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ea\u80fd \u88ab \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u542c\u5230 \u3002 \u5f53 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5df2\u7ecf \u542c\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u4f8b\u5982 \u5728 \u8fd0\u884c manual _ control . py \u65f6 \uff0c carlaviz \u88ab\u8feb \u590d\u5236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u68c0\u7d22 \u6570\u636e \uff0c \u5e76\u4e14 \u6027\u80fd \u53ef\u80fd \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u5728 \u591a\u6d41 \u4e2d \uff0c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u542c\u5230 \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 carlaviz \u4e0d \u9700\u8981 \u91cd\u590d \u8fd9\u4e9b \uff0c \u5e76\u4e14 \u6027\u80fd \u4e0d\u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u7b14\u8bb0 \u6216\u8005 \uff0c \u5728 Linux \u4e0a \uff0c \u7528\u6237 \u53ef\u4ee5 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u6784\u5efa carlaviz \uff0c \u4f46 \u4f7f\u7528 Docker \u6620\u50cf \u5c06 \u4f7f \u4e8b\u60c5 \u53d8\u5f97 \u66f4\u52a0 \u5bb9\u6613 \u3002 \u8fd0\u884c carlaviz 1 . \u8fd0\u884c Carla \u3002 a ) \u5728 Carla \u5305\u4e2d \u2014 \u8f6c \u81f3 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u4f7f\u7528 CarlaUE4 . exe ( Windows ) \u6216 . / CarlaUE4 . sh ( Linux ) \u542f\u52a8 \u4eff\u771f \u3002 b ) \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u5305\u4e2d \u2014 \u8f6c \u5230 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u4f7f\u7528 make launch \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u5e76 \u6309 Play \u3002 2 . \u8fd0\u884c carlaviz . \u6839\u636e \u5df2 \u4e0b\u8f7d \u7684 Docker \u955c\u50cf \uff0c \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 \u66f4\u6539 \u5148\u524d \u4e0b\u8f7d \u7684 \u955c\u50cf \u7684 \u540d\u79f0 < name _ of _ Docker _ image > \uff0c \u4f8b\u5982 mjxu96 / carlaviz : latest \u6216 mjxu96 / carlaviz : 0.9 . 10 \u3002 # \u5728 Linux \u7cfb\u7edf docker run - it -- network = \" host \" - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = localhost - e CARLA _ SERVER _ PORT = 2000 < name _ of _ Docker _ image > # \u5728 Windows / MacOS \u7cfb\u7edf docker run - it - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = host . docker . internal - e CARLA _ SERVER _ PORT = 2000 - p 8080 - 8081 : 8080 - 8081 - p 8089 : 8089 < name _ of _ Docker _ image > \u5982\u679c \u4e00\u5207 \u90fd \u5df2 \u6b63\u786e \u8bbe\u7f6e \uff0c carlaviz \u5c06 \u663e\u793a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u6210\u529f \u6d88\u606f \u3002 \u8b66\u544a \u8bf7 \u8bb0\u4f4f \u7f16\u8f91 \u524d\u9762 \u7684 \u547d\u4ee4 \u4ee5 \u5339\u914d \u6b63\u5728 \u4f7f\u7528 \u7684 Docker \u6620\u50cf \u3002 3 . \u4ece \u672c\u5730 \u6253\u5f00 \u6253\u5f00 Web \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u8f6c\u5230 http : / / 127.0 . 0.1 : 8080 / \u3002 carlaviz \u9ed8\u8ba4 \u5728 8080 \u7aef\u53e3 \u8fd0\u884c \u3002 \u8f93\u51fa \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u3002 \u5de5\u5177 \u4e00\u65e6 \u63d2\u4ef6 \u8fd0\u884c \uff0c \u5b83 \u5c31 \u53ef\u4ee5 \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3001 \u5176\u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u8be5 \u63d2\u4ef6 \u5728 \u53f3\u4fa7 \u663e\u793a \u4e00\u4e2a \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \uff0c \u573a\u666f \u5b9e\u65f6 \u66f4\u65b0 \uff0c \u5de6\u4fa7 \u663e\u793a \u4e00\u4e2a \u4fa7\u8fb9 \u680f \uff0c \u5176\u4e2d \u5305\u542b \u8981 \u663e\u793a \u7684 \u9879\u76ee \u5217\u8868 \u3002 \u5176\u4e2d \u4e00\u4e9b \u9879\u76ee \u5c06 \u51fa\u73b0 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \uff0c \u5176\u4ed6 \u9879\u76ee \uff08 \u4e3b\u8981 \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6e38\u620f \u6570\u636e \uff09 \u51fa\u73b0 \u5728 \u9879\u76ee \u5217\u8868 \u4e0a\u65b9 \u3002 \u4ee5\u4e0b \u662f \u53ef \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u9009\u9879 \u5217\u8868 \u3002 \u53ef\u80fd \u4f1a \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \uff0c \u4f8b\u5982 View Mode \u2014 \u66f4\u6539 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u7684 \u89c6\u89d2 \u3002 Top Down \u2014 \u7a7a\u4e2d \u89c6\u89d2 \u3002 Perspective \u2014 \u81ea\u7531 \u7684 \u89c6\u89d2 \u3002 Driver \u2014 \u7b2c\u4e00 \u4eba\u79f0 \u7b2c\u4e00\u4eba\u79f0 \u89c6\u89d2 \u3002 / vehicle \u2014 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5c5e\u6027 \u3002 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u5305\u62ec \u901f\u5ea6 \u901f\u5ea6\u8ba1 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \uff0c \u4ee5\u53ca IMU \u3001 GNSS \u548c \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 / velocity \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u3002 / acceleration \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u3002 / drawing \u2014 \u5728 \u4f7f\u7528 CarlaPainter \u7ed8\u5236 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \u3002 / texts \u2014 \u6587\u672c \u5143\u7d20 \u3002 / points \u2014 \u70b9 \u5143\u7d20 \u3002 / polylines \u2014 \u6298\u7ebf \u5143\u7d20 \u3002 / objects \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 / walkers \u2014 \u66f4\u65b0 \u884c\u4eba \u3002 / vehicles \u2014 \u66f4\u65b0 \u8f66\u8f86 \u3002 / game \u2014 \u663e\u793a \u6e38\u620f \u6570\u636e \u3002 / time \u2014 \u5f53\u524d \u4eff\u771f \u65f6\u95f4 \u548c \u5e27 \u3002 / lidar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / radar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / traffic \u2014 \u5730\u6807 \u6570\u636e \u3002 / traffic _ light \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 / stop _ sign \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u505c\u8f66 \u6807\u5fd7 \u3002 \u5c1d\u8bd5 \u751f\u6210 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9\u4e9b \u5c06 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \u3002 cd PythonAPI / examples # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4eff\u771f \u4e0b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 python3 generate _ traffic . py - n 10 - w 5 \u751f\u6210 \u4e00\u4e2a \u624b\u52a8 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u5e76 \u56db\u5904 \u79fb\u52a8 \uff0c \u4ee5 \u67e5\u770b \u63d2\u4ef6 \u5982\u4f55 \u66f4\u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 cd PythonAPI / examples python3 manual _ control . py \u8d21\u732e \u8d21\u732e\u8005 ( wx9698 ) \u521b\u5efa \u4e86 \u4e00\u4e2a \u9644\u52a0 \u7c7b CarlaPainter \uff0c \u5b83 \u5141\u8bb8 \u7528\u6237 \u7ed8\u5236 \u8981 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u7684 \u5143\u7d20 \u3002 \u5176\u4e2d \u5305\u62ec \u6587\u672c \u3001 \u70b9 \u548c \u6298\u7ebf \u3002 \u6309\u7167 \u6b64 \u793a\u4f8b \u751f\u6210 \u5e26\u6709 LIDAR \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u7ed8\u5236 LIDAR \u6570\u636e \u3001 \u8f66\u8f86 \u7684 \u8f68\u8ff9 \u548c \u901f\u5ea6 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e carlaviz \u63d2\u4ef6 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"Web \u53ef\u89c6\u5316 \u5668"},{"location":"plugins_carlaviz/#carlaviz","text":"carlaviz \u63d2\u4ef6 \u7528\u4e8e \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3002 \u521b\u5efa \u4e86 \u4e00\u4e2a \u5177\u6709 \u573a\u666f \u7684 \u4e00\u4e9b \u57fa\u672c \u8868\u793a \u7684 \u7a97\u53e3 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u5373\u65f6 \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u8fd8 \u53ef\u4ee5 \u5728 \u573a\u666f \u4e2d \u7ed8\u5236 \u9644\u52a0 \u6587\u672c \u3001 \u7ebf\u6761 \u548c \u6298\u7ebf \u3002 \u4e00\u822c \u4fe1\u606f \u652f\u6301 \u83b7\u53d6 carlaviz \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4e0b\u8f7d \u63d2\u4ef6 \u5de5\u5177","title":"carlaviz"},{"location":"plugins_carlaviz/#_1","text":"\u8d21\u732e \u8d21\u732e\u8005 \u2014 Minjun Xu , \u4e5f \u88ab \u79f0\u4e3a wx9698 . \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u2014 MIT .","title":"\u4e00\u822c \u4fe1\u606f"},{"location":"plugins_carlaviz/#_2","text":"Linux \u2014 Carla 0.9 . 6 , 0.9 . 7 , 0.9 . 8 , 0.9 . 9 , 0.9 . 10 . Windows \u2014 Carla 0.9 . 9 , 0.9 . 10 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u2014 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002","title":"\u652f\u6301"},{"location":"plugins_carlaviz/#carlaviz_1","text":"","title":"\u83b7\u53d6 carlaviz"},{"location":"plugins_carlaviz/#_3","text":"Docker \u2014 \u8bbf\u95ee \u6587\u6863 \u5e76 \u5b89\u88c5 Docker . \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u2014 \u4efb\u4f55 \u80fd\u591f \u8fd0\u884c Carla \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u90fd \u5e94\u8be5 \u53ef\u4ee5 \u5de5\u4f5c \u3002 Websocket - client \u2014 pip3 install websocket _ client \u3002 \u5982\u679c \u7cfb\u7edf \u4e2d \u5c1a\u672a \u5b89\u88c5 pip \u3002","title":"\u5148\u51b3\u6761\u4ef6"},{"location":"plugins_carlaviz/#_4","text":"\u6253\u5f00 \u7ec8\u7aef \u5e76 \u6839\u636e \u8981 \u8fd0\u884c \u7684 Carla \u7248\u672c \u62c9\u53d6 carlaviz \u7684 Docker \u6620\u50cf \u3002 # \u4ec5\u62c9\u53d6 \u548c \u6240 \u4f7f\u7528 \u7684 Carla \u5305 \u5339\u914d \u7684 \u955c\u50cf \u3002 docker pull mjxu96 / carlaviz : 0.9 . 6 docker pull mjxu96 / carlaviz : 0.9 . 7 docker pull mjxu96 / carlaviz : 0.9 . 8 docker pull mjxu96 / carlaviz : 0.9 . 9 docker pull mjxu96 / carlaviz : 0.9 . 10 # \u5982\u679c \u5de5\u4f5c \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e0a \uff0c \u5219 \u62c9\u53d6 \u8be5 \u955c\u50cf docker pull mjxu96 / carlaviz : latest \u91cd\u8981 \u76ee\u524d \u5728 Windows \u4e2d\u4ec5 \u652f\u6301 0.9 . 9 \u548c 0.9 . 10 \u3002 Carla \u81f3 0.9 . 9 \uff08 \u5305\u542b \uff09 \u8bbe\u7f6e \u4e3a \u5355\u6d41 \u3002 \u5bf9\u4e8e \u66f4\u9ad8 \u7248\u672c \uff0c \u5b9e\u73b0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u591a\u6d41 \u3002 \u5728 \u5355\u6d41 \u4e2d , \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ea\u80fd \u88ab \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u542c\u5230 \u3002 \u5f53 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5df2\u7ecf \u542c\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u4f8b\u5982 \u5728 \u8fd0\u884c manual _ control . py \u65f6 \uff0c carlaviz \u88ab\u8feb \u590d\u5236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u68c0\u7d22 \u6570\u636e \uff0c \u5e76\u4e14 \u6027\u80fd \u53ef\u80fd \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u5728 \u591a\u6d41 \u4e2d \uff0c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u542c\u5230 \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 carlaviz \u4e0d \u9700\u8981 \u91cd\u590d \u8fd9\u4e9b \uff0c \u5e76\u4e14 \u6027\u80fd \u4e0d\u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u7b14\u8bb0 \u6216\u8005 \uff0c \u5728 Linux \u4e0a \uff0c \u7528\u6237 \u53ef\u4ee5 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u6784\u5efa carlaviz \uff0c \u4f46 \u4f7f\u7528 Docker \u6620\u50cf \u5c06 \u4f7f \u4e8b\u60c5 \u53d8\u5f97 \u66f4\u52a0 \u5bb9\u6613 \u3002","title":"\u4e0b\u8f7d \u63d2\u4ef6"},{"location":"plugins_carlaviz/#carlaviz_2","text":"1 . \u8fd0\u884c Carla \u3002 a ) \u5728 Carla \u5305\u4e2d \u2014 \u8f6c \u81f3 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u4f7f\u7528 CarlaUE4 . exe ( Windows ) \u6216 . / CarlaUE4 . sh ( Linux ) \u542f\u52a8 \u4eff\u771f \u3002 b ) \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u5305\u4e2d \u2014 \u8f6c \u5230 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u4f7f\u7528 make launch \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u5e76 \u6309 Play \u3002 2 . \u8fd0\u884c carlaviz . \u6839\u636e \u5df2 \u4e0b\u8f7d \u7684 Docker \u955c\u50cf \uff0c \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 \u66f4\u6539 \u5148\u524d \u4e0b\u8f7d \u7684 \u955c\u50cf \u7684 \u540d\u79f0 < name _ of _ Docker _ image > \uff0c \u4f8b\u5982 mjxu96 / carlaviz : latest \u6216 mjxu96 / carlaviz : 0.9 . 10 \u3002 # \u5728 Linux \u7cfb\u7edf docker run - it -- network = \" host \" - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = localhost - e CARLA _ SERVER _ PORT = 2000 < name _ of _ Docker _ image > # \u5728 Windows / MacOS \u7cfb\u7edf docker run - it - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = host . docker . internal - e CARLA _ SERVER _ PORT = 2000 - p 8080 - 8081 : 8080 - 8081 - p 8089 : 8089 < name _ of _ Docker _ image > \u5982\u679c \u4e00\u5207 \u90fd \u5df2 \u6b63\u786e \u8bbe\u7f6e \uff0c carlaviz \u5c06 \u663e\u793a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u6210\u529f \u6d88\u606f \u3002 \u8b66\u544a \u8bf7 \u8bb0\u4f4f \u7f16\u8f91 \u524d\u9762 \u7684 \u547d\u4ee4 \u4ee5 \u5339\u914d \u6b63\u5728 \u4f7f\u7528 \u7684 Docker \u6620\u50cf \u3002 3 . \u4ece \u672c\u5730 \u6253\u5f00 \u6253\u5f00 Web \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u8f6c\u5230 http : / / 127.0 . 0.1 : 8080 / \u3002 carlaviz \u9ed8\u8ba4 \u5728 8080 \u7aef\u53e3 \u8fd0\u884c \u3002 \u8f93\u51fa \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u3002","title":"\u8fd0\u884c carlaviz"},{"location":"plugins_carlaviz/#_5","text":"\u4e00\u65e6 \u63d2\u4ef6 \u8fd0\u884c \uff0c \u5b83 \u5c31 \u53ef\u4ee5 \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3001 \u5176\u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u8be5 \u63d2\u4ef6 \u5728 \u53f3\u4fa7 \u663e\u793a \u4e00\u4e2a \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \uff0c \u573a\u666f \u5b9e\u65f6 \u66f4\u65b0 \uff0c \u5de6\u4fa7 \u663e\u793a \u4e00\u4e2a \u4fa7\u8fb9 \u680f \uff0c \u5176\u4e2d \u5305\u542b \u8981 \u663e\u793a \u7684 \u9879\u76ee \u5217\u8868 \u3002 \u5176\u4e2d \u4e00\u4e9b \u9879\u76ee \u5c06 \u51fa\u73b0 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \uff0c \u5176\u4ed6 \u9879\u76ee \uff08 \u4e3b\u8981 \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6e38\u620f \u6570\u636e \uff09 \u51fa\u73b0 \u5728 \u9879\u76ee \u5217\u8868 \u4e0a\u65b9 \u3002 \u4ee5\u4e0b \u662f \u53ef \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u9009\u9879 \u5217\u8868 \u3002 \u53ef\u80fd \u4f1a \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \uff0c \u4f8b\u5982 View Mode \u2014 \u66f4\u6539 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u7684 \u89c6\u89d2 \u3002 Top Down \u2014 \u7a7a\u4e2d \u89c6\u89d2 \u3002 Perspective \u2014 \u81ea\u7531 \u7684 \u89c6\u89d2 \u3002 Driver \u2014 \u7b2c\u4e00 \u4eba\u79f0 \u7b2c\u4e00\u4eba\u79f0 \u89c6\u89d2 \u3002 / vehicle \u2014 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5c5e\u6027 \u3002 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u5305\u62ec \u901f\u5ea6 \u901f\u5ea6\u8ba1 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \uff0c \u4ee5\u53ca IMU \u3001 GNSS \u548c \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 / velocity \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u3002 / acceleration \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u3002 / drawing \u2014 \u5728 \u4f7f\u7528 CarlaPainter \u7ed8\u5236 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \u3002 / texts \u2014 \u6587\u672c \u5143\u7d20 \u3002 / points \u2014 \u70b9 \u5143\u7d20 \u3002 / polylines \u2014 \u6298\u7ebf \u5143\u7d20 \u3002 / objects \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 / walkers \u2014 \u66f4\u65b0 \u884c\u4eba \u3002 / vehicles \u2014 \u66f4\u65b0 \u8f66\u8f86 \u3002 / game \u2014 \u663e\u793a \u6e38\u620f \u6570\u636e \u3002 / time \u2014 \u5f53\u524d \u4eff\u771f \u65f6\u95f4 \u548c \u5e27 \u3002 / lidar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / radar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / traffic \u2014 \u5730\u6807 \u6570\u636e \u3002 / traffic _ light \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 / stop _ sign \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u505c\u8f66 \u6807\u5fd7 \u3002 \u5c1d\u8bd5 \u751f\u6210 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9\u4e9b \u5c06 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \u3002 cd PythonAPI / examples # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4eff\u771f \u4e0b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 python3 generate _ traffic . py - n 10 - w 5 \u751f\u6210 \u4e00\u4e2a \u624b\u52a8 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u5e76 \u56db\u5904 \u79fb\u52a8 \uff0c \u4ee5 \u67e5\u770b \u63d2\u4ef6 \u5982\u4f55 \u66f4\u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 cd PythonAPI / examples python3 manual _ control . py \u8d21\u732e \u8d21\u732e\u8005 ( wx9698 ) \u521b\u5efa \u4e86 \u4e00\u4e2a \u9644\u52a0 \u7c7b CarlaPainter \uff0c \u5b83 \u5141\u8bb8 \u7528\u6237 \u7ed8\u5236 \u8981 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u7684 \u5143\u7d20 \u3002 \u5176\u4e2d \u5305\u62ec \u6587\u672c \u3001 \u70b9 \u548c \u6298\u7ebf \u3002 \u6309\u7167 \u6b64 \u793a\u4f8b \u751f\u6210 \u5e26\u6709 LIDAR \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u7ed8\u5236 LIDAR \u6570\u636e \u3001 \u8f66\u8f86 \u7684 \u8f68\u8ff9 \u548c \u901f\u5ea6 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e carlaviz \u63d2\u4ef6 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u5de5\u5177"},{"location":"python_api/","text":"Python API \u53c2\u8003 \u6b64 \u53c2\u8003 \u5305\u542b Python API \u7684 \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u8981 \u67e5\u9605 \u7279\u5b9a Carla \u7248\u672c \u7684 \u5148\u524d \u53c2\u8003 \uff0c \u8bf7 \u4f7f\u7528 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4\u6539 \u6587\u6863 \u7248\u672c \u3002 \u8fd9\u4f1a \u5c06 \u6574\u4e2a \u6587\u6863 \u66f4 \u6539\u4e3a \u4e4b\u524d \u7684 \u72b6\u6001 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6700\u65b0 \u7248\u672c \u662f dev \u5206\u652f \uff0c \u53ef\u80fd \u4f1a \u663e\u793a \u4efb\u4f55 Carla \u6253\u5305 \u7248\u672c \u4e2d \u4e0d\u53ef \u7528 \u7684 \u529f\u80fd \u3002 carla . AckermannControllerSettings \u7ba1\u7406 Ackermann PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \u3002 \u5b9e\u4f8b \u53d8\u91cf speed _ kp ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 speed _ ki ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 speed _ kd ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002 accel _ kp ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 accel _ ki ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 accel _ kd ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002 \u65b9\u6cd5 __ init __ ( self , speed _ kp = 0.15 , speed _ ki = 0.0 , speed _ kd = 0.25 , accel _ kp = 0.01 , accel _ ki = 0.0 , accel _ kd = 0.01 ) Parameters : speed _ kp ( float ) speed _ ki ( float ) speed _ kd ( float ) accel _ kp ( float ) accel _ ki ( float ) accel _ kd ( float ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . AckermannControllerSettings ) __ ne __ ( self , other = carla . AckermannControllerSettings ) __ str __ ( self ) carla . Actor Carla \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b9a\u4e49 \u4e3a \u5728 \u4eff\u771f \u4e2d \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \u6216 \u53ef\u4ee5 \u79fb\u52a8 \u7684 \u4efb\u4f55 \u7269\u4f53 \u3002 \u5176\u4e2d \u5305\u62ec \uff1a \u884c\u4eba \u3001 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff08 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u89c6\u4e3a \u5176\u4e2d \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u4eff\u771f \u4e2d \u7531 carla . World \u751f\u6210 \uff0c \u5e76\u4e14 \u9700\u8981 \u521b\u5efa carla . ActorBlueprint \u3002 \u8fd9\u4e9b \u84dd\u56fe \u5c5e\u4e8e Carla \u63d0\u4f9b \u7684 \u5e93 \uff0c \u8bf7 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf attributes ( dict ) \u5305\u542b \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u84dd\u56fe \u5c5e\u6027 \u7684 \u5b57\u5178 \u3002 id ( int ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u5728 \u7ed9\u5b9a \u7684 \u60c5\u8282 \u4e2d\u662f \u552f\u4e00 \u7684 \u3002 type _ id ( str ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \uff0c \u4f8b\u5982 vehicle . ford . mustang \u3002 is _ alive ( bool ) \u8fd4\u56de \u6b64 \u5bf9\u8c61 \u662f\u5426 \u662f\u5426\u662f \u4f7f\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53e5\u67c4 \u9500\u6bc1 \u7684 \u3002 is _ active ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( True ) \u6216\u975e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( False ) \u3002 is _ dormant ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( True ) \u6216\u975e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( False ) - \u4e0e is _ active \u76f8\u53cd \u3002 parent ( carla . Actor ) \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u4ed6\u4eec \u5c06 \u8ddf\u968f \u7684 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u5c31\u662f \u6240\u8bf4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 semantic _ tags ( list ( int ) ) \u84dd\u56fe \u5217\u8868 \u7ec4\u4ef6 \u4e3a\u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u7684 \u8bed\u4e49 \u6807\u7b7e \u5217\u8868 \u3002 \u4f8b\u5982 \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u53ef\u4ee5 \u7528 Pole \u548c TrafficLight . \u3002 \u8fd9\u4e9b \u6807\u7b7e \u7531 \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u3002 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 actor _ state ( carla . ActorState ) \u8fd4\u56de carla . ActorState \uff0c \u5b83 \u53ef\u4ee5 \u8bc6\u522b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u3001 \u4f11\u7720 \u6216 \u65e0\u6548 \u72b6\u6001 \u3002 bounding _ box ( carla . BoundingBox ) \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u51e0\u4f55 \u5f62\u72b6 \u7684 \u8fb9\u754c \u6846 \u3002 \u5b83 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u662f \u76f8\u5bf9 \u4e8e \u5b83 \u6240 \u9644\u7740 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u3002 \u65b9\u6cd5 add _ angular _ impulse ( self , angular _ impulse ) \u5728 \u89d2\u8272 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u89d2 \u51b2\u91cf \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u626d\u77e9 \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ torque ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u65cb\u8f6c \u529b \u3002 \u53c2\u6570 : angular _ impulse ( carla . Vector3D - degrees * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u89d2 \u8109\u51b2 \u77e2\u91cf \u3002 add _ force ( self , force ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u529b \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u529b \u3002 \u4f7f\u7528 add _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u8109\u51b2 \u3002 \u53c2\u6570 : force ( carla . Vector3D - N ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u529b \u77e2\u91cf \u3002 add _ impulse ( self , impulse ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u8109\u51b2 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u529b \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ force ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u529b \u3002 \u53c2\u6570 : impulse ( carla . Vector3D - N * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u8109\u51b2 \u77e2\u91cf \u3002 add _ torque ( self , torque ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u626d\u77e9 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u626d\u77e9 \u3002 \u4f7f\u7528 add _ angular _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u626d\u77e9 \u3002 \u53c2\u6570 : torque ( carla . Vector3D - \u5ea6 ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u626d\u77e9 \u77e2\u91cf \u3002 destroy ( self ) \u544a\u8bc9 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u9500\u6bc1 \u8fd9\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5982\u679c \u6210\u529f \u5219 True \u3002 \u5982\u679c \u5df2\u7ecf \u88ab \u7834\u574f \u5219 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u8fd4\u56de : bool \u8b66\u544a : T \u6b64 \u65b9\u6cd5 \u4f1a \u963b\u6b62 \u811a\u672c \uff0c \u76f4\u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b8c\u6210 \u9500\u6bc1 \u4e3a\u6b62 \u3002 disable _ constant _ velocity ( self ) \u7981\u7528 \u4e4b\u524d \u4e3a carla . Vehicle \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbe\u7f6e \u7684 \u4efb\u4f55 \u6052\u5b9a \u901f\u5ea6 \u3002 enable _ constant _ velocity ( self , velocity ) \u5c06 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u77e2\u91cf \u8bbe\u7f6e \u4e3a \u968f \u65f6\u95f4 \u53d8\u5316 \u7684 \u6052\u5b9a \u503c \u3002 \u6240 \u5f97\u5230 \u7684 \u901f\u5ea6 \u5c06 \u8fd1\u4f3c \u8fd1\u4f3c\u4e8e velocity \u6240 \u8bbe\u7f6e \u7684 \u901f\u5ea6 \uff0c \u4e0e set _ target _ velocity ( ) \u4e00\u6837 \u3002 \u53c2\u6570 : velocity ( carla . Vector3D - m / s ) - Velocity vector in local space . \u6ce8\u610f : \u53ea\u6709 carla . Vehicle \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u3002 \u8b66\u544a : \u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u542f\u7528 \u6052\u5b9a \u901f\u5ea6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 \u6b64 \u65b9\u6cd5 \u4f1a \u8986\u76d6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5bf9 \u901f\u5ea6 \u7684 \u4efb\u4f55 \u66f4\u6539 \u3002 \u83b7\u53d6 \u5668 get _ acceleration ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u6536\u5230 \u7684 \u89d2\u8272 \u7684 \u4e09\u7ef4 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Vector3D - m / s 2 get _ angular _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - deg / s get _ location ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u4e0a \u4e00\u6b21 tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Location - \u7c73 \u8bbe\u7f6e \u5668 : carla . Actor . set _ location get _ transform ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Transform \u8bbe\u7f6e \u5668 : carla . Actor . set _ transform get _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s get _ world ( self ) \u8fd4\u56de \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240\u5c5e \u7684 \u4e16\u754c \u3002 \u8fd4\u56de : carla . World \u8bbe\u7f6e \u5668 set _ enable _ gravity ( self , enabled ) \u542f\u7528 \u6216 \u7981\u7528 \u6f14\u5458 \u7684 \u91cd\u529b \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 \u53c2\u6570 \uff1a enabled ( bool ) set _ location ( self , location ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ location set _ simulate _ physics ( self , enabled = True ) \u542f\u7528 \u6216 \u7981\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u7684 \u7269\u7406 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1a enabled ( bool ) set _ target _ angular _ velocity ( self , angular _ velocity ) \u8bbe\u7f6e \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u77e2\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a angular _ velocity ( carla . Vector3D - deg / s ) set _ target _ velocity ( self , velocity ) \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a velocity ( carla . Vector3D ) set _ transform ( self , transform ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ transform \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . ActorAttribute Carla \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . BlueprintLibrary \u8fdb\u884c \u8bbf\u95ee \u3002 \u6bcf\u4e2a \u84dd\u56fe \u90fd \u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5185\u90e8 \u5b9a\u4e49 \u7684 \u5c5e\u6027 \u3002 \u5176\u4e2d \u4e00\u4e9b \u662f \u53ef\u4ee5 \u4fee\u6539 \u7684 \uff0c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u662f \u4e0d\u53ef \u4fee\u6539 \u7684 \u3002 \u4e3a \u53ef \u8bbe\u7f6e \u7684 \u503c \u63d0\u4f9b \u4e86 \u63a8\u8350 \u63a8\u8350\u503c \u5217\u8868 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( str ) \u5e93\u4e2d \u5c5e\u6027 \u7684 \u540d\u79f0 \u548c \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 is _ modifiable ( bool ) \u5982\u679c \u5c5e\u6027 \u7684 \u503c \u53ef\u4ee5 \u4fee\u6539 \uff0c \u5219 \u4e3a True \u3002 recommended _ values ( list ( str ) ) \u8bbe\u8ba1 \u84dd\u56fe \u7684 \u4eba\u5458 \u5efa\u8bae \u7684 \u503c \u5217\u8868 \u3002 type ( carla . ActorAttributeType ) \u5c5e\u6027 \u7684 \u53c2\u6570 \u7c7b\u578b \u3002 \u65b9\u6cd5 as _ bool ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a \u5e03\u5c14 \u5e03\u5c14\u503c \u3002 as _ color ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a carla . Color \u3002 as _ float ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a \u6d6e\u70b9 \u578b \u3002 as _ int ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a int \u3002 as _ str ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u9b54\u672f \u65b9\u6cd5 __ bool __ ( self ) __ eq __ ( self , other = bool / int / float / str / carla . Color / carla . ActorAttribute ) \u5982\u679c \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5c5e\u6027 \u548c other \u76f8\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ float __ ( self ) __ int __ ( self ) __ ne __ ( self , other = bool / int / float / str / carla . Color / carla . ActorAttribute ) \u5982\u679c \u6b64 actor \u7684 \u5c5e\u6027 \u548c other \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ nonzero __ ( self ) \u5982\u679c \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5c5e\u6027 \u4e0d\u4e3a \u96f6 \u6216 null \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de : bool __ str __ ( self ) carla . ActorAttributeType Carla \u5728 carla . BlueprintLibrary \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u6bcf\u4e2a \u84dd\u56fe \u5177\u6709 \u4e0d\u540c \u7684 \u5c5e\u6027 \u3002 \u6b64\u7c7b \u5c06 carla . ActorAttribute \u4e2d \u7684 \u7c7b\u578b \u5b9a\u4e49 \u7c7b\u578b\u5b9a\u4e49 \u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u3002 \u6240\u6709 \u8fd9\u4e9b \u4fe1\u606f \u5747 \u5728 \u5185\u90e8 \u7ba1\u7406 \uff0c \u5e76 \u5728 \u6b64\u5904 \u5217\u51fa \uff0c \u4ee5\u4fbf \u66f4\u597d \u5730 \u7406\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u5b9e\u4f8b \u53d8\u91cf Bool Int Float String RGBColor carla . ActorBlueprint Carla \u4e3a Actor \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . BlueprintLibrary \u8fdb\u884c \u67e5\u9605 \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u5305\u542b \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53ef\u4ee5 \u4fee\u6539 \u6216 \u4e0d\u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u3002 \u8be5\u7c7b \u662f \u5e93 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u521b\u5efa \u4e4b\u95f4 \u7684 \u4e2d\u95f4 \u6b65\u9aa4 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9700\u8981 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u624d\u80fd \u4ea7\u751f \u3002 \u8fd9\u4e9b \u5c06 \u6240\u8ff0 \u84dd\u56fe \u7684 \u4fe1\u606f \u53ca\u5176 \u5c5e\u6027 \u548c \u4e00\u4e9b \u6807\u7b7e \u5b58\u50a8 \u5728 \u5bf9\u8c61 \u4e2d\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u5206\u7c7b \u3002 \u7136\u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u5c5e\u6027 \u5e76 \u6700\u7ec8 \u901a\u8fc7 carla . World \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( str ) \u5e93\u5185 \u6240\u8ff0 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u4f8b\u5982 walker . pedestrian.0001 \u3002 tags ( list ( str ) ) \u6bcf\u4e2a \u84dd\u56fe \u5177\u6709 \u7684 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63cf\u8ff0 \u5b83\u4eec \u7684 \u6807\u7b7e \u5217\u8868 \u3002 \u4f8b\u5982 [ ' 0001 ' , ' pedestrian ' , ' walker ' ] \u3002 \u65b9\u6cd5 has _ attribute ( self , id ) \u5982\u679c \u84dd\u56fe \u5305\u542b \u8be5 id \u5c5e\u6027 \uff0c \u5219 \u8fd4\u56de True \u3002 \u53c2\u6570 \uff1a id ( str ) - \u4f8b\u5982 gender \u5c06 \u4e3a \u884c\u4eba \u7684 \u84dd\u56fe \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool has _ tag ( self , tag ) \u5982\u679c \u84dd\u56fe \u5df2 \u5217\u51fa \u6307\u5b9a tag \u7684 \u5185\u5bb9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u53c2\u6570 \uff1a tag ( str ) - \u4f8b\u5982 \uff1a ' walker ' \u3002 \u8fd4\u56de \uff1a bool match _ tags ( self , wildcard _ pattern ) \u5982\u679c \u4e3a\u6b64 \u84dd\u56fe \u5217\u51fa \u7684 \u4efb\u4f55 \u6807\u8bb0 \u5339\u914d wildcard _ pattern \uff0c \u5219 \u8fd4\u56de True \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a bool \u83b7\u53d6 \u5668 get _ attribute ( self , id ) \u8fd4\u56de \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5c5e\u6027 \u4ee5\u53ca id \u6807\u8bc6 \u6807\u8bc6\u7b26 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1a id ( str ) \u8fd4\u56de \uff1a carla . ActorAttribute \u8bbe\u7f6e \u5668 \uff1a carla . ActorBlueprint . set _ attribute \u8bbe\u7f6e \u5668 set _ attribute ( self , id , value ) snippet \u2192 \u5982\u679c id \u5c5e\u6027 \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u5c06 \u5176\u503c \u6539\u4e3a value \u3002 \u53c2\u6570 \uff1a id ( str ) - \u8981 \u66f4\u6539 \u5c5e\u6027 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 value ( str ) - \u6240\u8ff0 \u5c5e\u6027 \u7684 \u65b0\u503c \u3002 \u83b7\u53d6 \u5668 \uff1a carla . ActorBlueprint . get _ attribute Dunder \u65b9\u6cd5 __ iter __ ( self ) \u5728 \u84dd\u56fe \u6709 \u7684 carla . ActorAttribute \u4e4b\u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u6b64 \u84dd\u56fe \u7684 \u5c5e\u6027 \u6570\u91cf \u3002 __ str __ ( self ) carla . ActorList \u4e00\u4e2a \u7c7b \uff0c \u5b83 \u5305\u542b \u73b0\u573a \u51fa\u73b0 \u7684 \u6bcf\u4e2a \u6f14\u5458 \u5e76 \u63d0\u4f9b \u5bf9 \u4ed6\u4eec \u7684 \u8bbf\u95ee \u3002 \u8be5 \u5217\u8868 \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81ea\u52a8 \u521b\u5efa \u548c \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u4f7f\u7528 carla . World \u8fd4\u56de \u3002 \u65b9\u6cd5 filter ( self , wildcard _ pattern ) \u7b5b\u9009 \u5339\u914d wildcard _ pattern \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \uff0c \u4ee5 \u5bf9\u6297 \u53d8\u91cf type _ id ( \u5b83 \u6807\u8bc6 \u7528\u4e8e \u751f\u6210 \u5b83\u4eec \u7684 \u84dd\u56fe ) \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a list find ( self , actor _ id ) \u4f7f\u7528 \u5176 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u67e5\u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u8fd4\u56de \u5b83 \uff0c \u5982\u679c \u4e0d \u5b58\u5728 \u5219 \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a actor _ id ( int ) \u8fd4\u56de \uff1a carla . Actor Dunder \u65b9\u6cd5 __ getitem __ ( self , pos = int ) \u8fd4\u56de \u4e0e \u5217\u8868 \u4e2d pos \u4f4d\u7f6e \u76f8\u5bf9 \u5e94 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de \uff1a carla . Actor __ iter __ ( self ) \u5728 \u5305\u542b carla . Actor \u7684 \u5217\u8868 \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u5217\u51fa \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int __ str __ ( self ) \u5728 \u5217\u51fa \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u89e3\u6790 ID \u3002 \u8fd4\u56de \uff1a str carla . ActorSnapshot \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u7279\u5b9a \u65f6\u523b \u7684 \u6240\u6709 \u4fe1\u606f \u7684 \u7c7b \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u5305\u542b \u5728 carla . WorldSnapshot \u4e2d \uff0c \u5e76 \u5728 \u6bcf\u4e2a \u65f6\u949f \u5468\u671f \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u6b21 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( int ) \u5feb\u7167 \u672c\u8eab \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ acceleration ( self ) \u8fd4\u56de \u5728 \u8be5 tick \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s 2 get _ angular _ velocity ( self ) \u8fd4\u56de \u4e3a \u8be5 tick \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - rad / s get _ transform ( self ) \u8fd4\u56de \u8be5 tick \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u8fd4\u56de \uff1a carla . Transform get _ velocity ( self ) \u8fd4\u56de \u5728 \u8be5 tick \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s carla . ActorState \u5b9a\u4e49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u72b6\u6001 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf Invalid \u5982\u679c \u51fa\u73b0 \u95ee\u9898 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c31\u662f \u65e0\u6548 \u7684 \u3002 Active \u5f53 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5e76\u4e14 \u53ef\u4ee5 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u5b83 \u5c31\u662f \u6d3b\u8dc3 \u7684 \u3002 Dormant \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d \u88ab \u53ef\u89c6 \u53ef\u89c6\u5316 \u5e76\u4e14 \u4e0d\u4f1a \u901a\u8fc7 \u7269\u7406 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c31 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u4e8e \u5927 \u5730\u56fe \u4e2d \u5df2 \u5378\u8f7d \u7684 \u56fe\u5757 \u4e0a \uff0c \u5219 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 carla . AttachmentType \u5b9a\u4e49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0e \u5176\u7236 \u7ea7 \u4e4b\u95f4 \u7684 \u9644\u4ef6 \u9009\u9879 \u7684 \u7c7b \u3002 \u5f53 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u5b83\u4eec \u53ef\u4ee5 \u9644\u52a0 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \uff0c \u8fd9\u6837 \u5b83\u4eec \u7684 \u4f4d\u7f6e \u5c31 \u4f1a \u76f8\u5e94 \u6539\u53d8 \u3002 \u8fd9 \u5bf9\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7279\u522b \u6709\u7528 \u3002 carla . World . spawn _ actor \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u751f\u6210 \u65f6 \u8fde\u63a5 \u5230 \u6c7d\u8f66 \u4e0a \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9644\u4ef6 \u7c7b\u578b \u5728 \u7c7b \u4e2d \u58f0\u660e \u4e3a \u679a\u4e3e \u3002 \u5b9e\u4f8b \u53d8\u91cf Rigid \u901a\u8fc7 \u6b64 \u56fa\u5b9a \u9644\u4ef6 \uff0c \u5bf9\u8c61 \u4e25\u683c \u9075\u5faa \u5176\u7236 \u4f4d\u7f6e \u3002 \u8fd9\u662f \u63a8\u8350 \u7684 \u9644\u4ef6 \uff0c \u7528\u4e8e \u4ece \u4eff\u771f \u4e2d \u68c0\u7d22 \u7cbe\u786e \u6570\u636e \u3002 SpringArm \u4e00\u79cd \u9644\u4ef6 \uff0c \u53ef \u6839\u636e \u5176\u7236 \u7ea7 \u6269\u5c55 \u6216 \u7f29\u56de \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 \u4ec5 \u5efa\u8bae \u5728 \u9700\u8981 \u5e73\u6ed1 \u8fd0\u52a8 \u7684 \u4eff\u771f \u4e2d \u5f55\u5236 \u89c6\u9891 \u65f6 \u4f7f\u7528 \u6b64 \u9644\u4ef6 \u3002 SpringArms \u662f \u4e00\u4e2a \u865a\u5e7b \u5f15\u64ce \u7ec4\u4ef6 \uff0c \u56e0\u6b64 check the UE \u6587\u6863 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8b66\u544a \uff1a \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 Z \u8f74\u4e0a \u4ea7\u751f \u76f8\u5bf9 \u5e73\u79fb \u65f6 \uff0c SpringArm \u9644\u4ef6 \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u5947\u602a \u7684 \u884c\u4e3a \u3002 \uff08 \u6bd4\u5982 \uff1a child _ location = Location ( 0 , 0 , 2 ) \uff09 \u3002 SpringArmGhost \u4e00\u4e2a \u4e0e \u524d \u4e00\u4e2a \u7c7b\u4f3c \u7684 \u9644\u4ef6 \uff0c \u4f46 \u5b83 \u4e0d\u4f1a \u8fdb\u884c \u78b0\u649e \u6d4b\u8bd5 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83 \u4e0d\u4f1a \u6269\u5c55 \u6216 \u6536\u7f29 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 ghost \u4e00\u8bcd \u56e0\u4e3a \u662f\u56e0\u4e3a \u8fd9\u6837 \u76f8\u673a \u5c31 \u53ef\u4ee5 \u7a7f\u8fc7 \u5899\u58c1 \u548c \u5176\u4ed6 \u51e0\u4f55 \u5f62\u72b6 \u3002 \u6b64 \u9644\u4ef6 \u4ec5 \u5efa\u8bae \u7528\u4e8e \u5f55\u5236 \u9700\u8981 \u5e73\u6ed1 \u79fb\u52a8 \u7684 \u4eff\u771f \u89c6\u9891 \u3002 SpringArms \u662f \u4e00\u4e2a \u865a\u5e7b \u5f15\u64ce \u7ec4\u4ef6 \uff0c \u8bf7 \u67e5\u770b \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8b66\u544a \uff1a \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 Z \u8f74\u4e0a \u4ea7\u751f \u76f8\u5bf9 \u5e73\u79fb \u65f6 \uff0c SpringArm \u9644\u4ef6 \u4f1a \u51fa\u73b0 \u5947\u602a \u7684 \u884c\u4e3a \uff08 \u6bd4\u5982 child _ location = Location ( 0 , 0 , 2 ) \uff09 \u3002 carla . BlueprintLibrary \u5305\u542b \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u6210 \u63d0\u4f9b \u7684 \u84dd\u56fe \u7684 \u7c7b \u3002 \u5b83 \u7684 \u4e3b\u8981 \u5e94\u7528 \u662f \u8fd4\u56de \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u9700 \u7684 carla . ActorBlueprint \u5bf9\u8c61 \u3002 \u6bcf\u4e2a \u84dd\u56fe \u90fd \u6709 \u4e00\u4e2a \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u53ef\u80fd \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u4e5f \u53ef\u80fd \u662f \u4e0d\u53ef \u4fee\u6539 \u7684 \u3002 \u8be5\u5e93 \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81ea\u52a8 \u521b\u5efa \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . World \u8bbf\u95ee \u3002 \u8fd9 \u662f \u5305\u542b \u6bcf\u4e2a \u53ef\u7528 \u84dd\u56fe \u53ca\u5176 \u7ec6\u8282 \u7684 \u53c2\u8003 \u3002 \u65b9\u6cd5 filter ( self , wildcard _ pattern ) \u6839\u636e \u6b64\u5e93 \u4e2d \u5305\u542b \u7684 \u6bcf\u4e2a \u84dd\u56fe \u7684 id \u548c \u6807\u8bb0 \u8fc7\u6ee4 \u4e0e \u901a\u914d\u7b26 \u6a21\u5f0f wildcard _ pattern \u5339\u914d \u7684 \u84dd\u56fe \u5217\u8868 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u4f5c\u4e3a \u65b0 \u7684 \u7ed3\u679c \u8fd4\u56de \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a carla . BlueprintLibrary filter _ by _ attribute ( self , name , value ) \u6839\u636e \u6b64\u5e93 \u4e2d \u5305\u542b \u7684 \u6bcf\u4e2a \u84dd\u56fe \uff0c \u7b5b\u9009 \u5177\u6709 \u4e0e\u503c value \u5339\u914d \u7684 \u7ed9\u5b9a \u5c5e\u6027 \u7684 \u84dd\u56fe \u5217\u8868 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u4f5c\u4e3a \u65b0 \u7684 \u7ed3\u679c \u8fd4\u56de \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a name ( str ) value ( str ) \u8fd4\u56de \uff1a carla . BlueprintLibrary find ( self , id ) \u8fd4\u56de \u4e0e \u8be5 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u5bf9\u5e94 \u7684 \u84dd\u56fe \u3002 \u53c2\u6570 \uff1a id ( str ) \u8fd4\u56de \uff1a carla . ActorBlueprint Dunder \u65b9\u6cd5 __ getitem __ ( self , pos = int ) \u8fd4\u56de \u5b58\u50a8 \u5728 \u5305\u542b \u84dd\u56fe \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u5185 pos \u4f4d\u7f6e \u7684 \u84dd\u56fe \u3002 \u8fd4\u56de : carla . ActorBlueprint __ iter __ ( self ) \u5728 \u5b58\u50a8 \u5e93 carla . ActorBlueprint \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u6784\u6210 \u5e93 \u7684 \u84dd\u56fe \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int __ str __ ( self ) \u89e3\u6790 \u8981 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5316 \u7684 \u6bcf\u4e2a \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u8fd4\u56de \uff1a string carla . BoundingBox \u8fb9\u754c \u6846 \u5305\u542b \u573a\u666f \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5143\u7d20 \u7684 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u88ab carla . DebugHelper \u6216 carla . Client \u7528\u4e8e \u7ed8\u5236 \u5b83\u4eec \u7684 \u5f62\u72b6 \u4ee5 \u8fdb\u884c \u8c03\u8bd5 \u3002 \u770b\u770b carla . DebugHelper . draw _ box \uff0c \u5176\u4e2d \u4f7f\u7528 \u4e16\u754c \u5feb\u7167 \u7ed8\u5236 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u8fb9\u754c \u6846 \u3002 \u5b9e\u4f8b \u53d8\u91cf extent ( carla . Vector3D - \u7c73 ) \u4ece \u957f\u65b9 \u957f\u65b9\u4f53 \u4e2d\u5fc3 \u5230 \u4e00\u4e2a \u9876\u70b9 \u7684 \u77e2\u91cf \u3002 \u6bcf\u4e2a \u8f74\u4e2d \u7684 \u503c \u7b49\u4e8e \u8be5\u8f74\u6846 \u5927\u5c0f \u7684 \u4e00\u534a \u3002 extent . x * 2 \u5c06 \u8fd4\u56de \u6846\u5728 x \u8f74\u4e0a \u7684 \u5927\u5c0f \u3002 location ( carla . Location - \u7c73 ) \u8fb9\u754c \u6846 \u7684 \u4e2d\u5fc3 \u3002 rotation ( carla . Rotation ) \u8fb9\u754c \u6846 \u7684 \u671d\u5411 \u3002 \u65b9\u6cd5 __ init __ ( self , location , extent ) \u53c2\u6570 \uff1a location ( carla . Location ) - \u76f8\u5bf9 \u4e8e \u5176\u7236 \u6846 \u7684 \u4e2d\u5fc3 \u3002 extent ( carla . Vector3D - \u7c73 ) - \u5305\u542b \u6bcf\u4e2a \u8f74 \u7684 \u957f\u65b9 \u957f\u65b9\u4f53 \u5927\u5c0f \u7684 \u4e00\u534a \u7684 \u77e2\u91cf \u3002 contains ( self , world _ point , transform ) \u5982\u679c \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u4f20\u9012 \u7684 \u70b9 \u5728 \u6b64 \u8fb9\u754c \u6846\u5185 \uff0c \u5219 \u8fd4\u56de True \u3002 Parameters : world _ point ( carla . Location - \u7c73 ) - \u8981 \u68c0\u67e5 \u7684 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u70b9 \u3002 transform ( carla . Transform ) - \u5305\u542b \u5c06 \u6b64 \u5bf9\u8c61 \u7684 \u5c40\u90e8 \u7a7a\u95f4 \u8f6c\u6362 \u4e3a \u4e16\u754c \u7a7a\u95f4 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8fd4\u56de \uff1a bool \u83b7\u53d6 \u5668 get _ local _ vertices ( self ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u5c40\u90e8 \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ world _ vertices ( self , transform ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) - \u5305\u542b \u5c06 \u6b64 \u5bf9\u8c61 \u7684 \u672c\u5730 \u7a7a\u95f4 \u8f6c\u6362 \u4e3a \u4e16\u754c \u7a7a\u95f4 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u53e6 \u4e00\u4e2a other \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u5176\u4ed6 other \u7684 \u4f4d\u7f6e \u6216 \u8303\u56f4 \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str carla . CityObjectLabel \u5305\u542b \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World . get _ level _ bbs ( ) \u8fd4\u56de \u7684 \u8fb9\u754c \u6846 \u7684 \u4e0d\u540c \u6807\u7b7e \u7684 \u679a\u4e3e \u58f0\u660e \u3002 \u8fd9\u4e9b \u503c \u5bf9\u5e94 \u4e8e \u573a\u666f \u4e2d \u5143\u7d20 \u6240 \u5177\u6709 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u5b9e\u4f8b \u53d8\u91cf None Buildings Fences Other Pedestrians Poles RoadLines Roads Sidewalks TrafficSigns Vegetation Vehicles Walls Sky Ground Bridge RailTrack GuardRail TrafficLight Static Dynamic Water Terrain Any carla . Client \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 Carla \u8fde\u63a5 \u5230 \u8fd0\u884c \u4eff\u771f \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u5305\u542b Carla \u5e93 ( libcarla ) \uff0c \u4f46 \u5b58\u5728 \u4e00\u4e9b \u5dee\u5f02 \uff0c \u5141\u8bb8 \u5b83\u4eec \u4e4b\u95f4 \u8fdb\u884c \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u521b\u5efa \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u4f1a \u8fde\u63a5 \u5230 \u4eff\u771f \u5185 \u7684 RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53d1\u9001 \u547d\u4ee4 \u3002 \u4eff\u771f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u8fd0\u884c \u3002 \u4e00\u65e6 \u5efa\u7acb \u8fde\u63a5 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u4ec5 \u63a5\u6536 \u4ece \u4eff\u771f \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u662f \u4f8b\u5916 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u7ba1\u7406 \u8d1f\u8d23\u7ba1\u7406 \u884c\u4eba \uff0c \u56e0\u6b64 \uff0c \u5982\u679c \u60a8 \u4e0e \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u8d77 \u8fd0\u884c \u4eff\u771f \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u901a\u8fc7 \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u751f\u6210 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u56e0\u4e3a \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ea \u77e5\u9053 \u5b83 \u8d1f\u8d23 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u5177\u6709 \u8bb0\u5f55 \u529f\u80fd \uff0c \u53ef\u4ee5 \u5728 \u8fd0\u884c \u4eff\u771f \u65f6 \u4fdd\u5b58 \u4eff\u771f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u8fd9 \u4f7f\u5f97 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u968f\u610f \u91cd\u653e \u91cd\u653e\u4ee5 \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u8fdb\u884c \u5b9e\u9a8c \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u6b64 \u5f55\u97f3 \u5f55\u97f3\u673a \u7684 \u4e00\u4e9b \u4fe1\u606f \u3002 \u65b9\u6cd5 __ init __ ( self , host = 127.0 . 0.1 , port = 2000 , worker _ threads = 0 ) snippet \u2192 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6784\u9020 \u5668 \u3002 \u53c2\u6570 \uff1a host ( str ) - \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b9e\u4f8b \u7684 \u5730\u5740 IP\u5730\u5740 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a localhost \uff08 127.0 . 0.1 \uff09 \u3002 port ( int ) - \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b9e\u4f8b \u7684 TCP \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u548c \u968f\u540e \u7684 2001 \u3002 worker _ threads ( int ) - \u7528\u4e8e \u540e\u53f0 \u66f4\u65b0 \u7684 \u5de5\u4f5c \u7ebf\u7a0b \u6570 \u3002 \u5982\u679c \u4e3a 0 \uff0c \u5219 \u4f7f\u7528 \u6240\u6709 \u53ef\u7528 \u7684 \u5e76\u53d1 \u6027 \u3002 apply _ batch ( self , commands ) \u5728 \u5355\u4e2a \u4eff\u771f \u6b65\u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u4e0d \u68c0\u7d22 \u4efb\u4f55 \u4fe1\u606f \u3002 \u5982\u679c \u9700\u8981 \u6709\u5173 \u6bcf\u4e2a \u547d\u4ee4 \u7684 \u54cd\u5e94 \u7684 \u4fe1\u606f \uff0c \u8bf7 \u4f7f\u7528 apply _ batch _ sync ( ) \u65b9\u6cd5 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u5220\u9664 \u5361\u62c9 \u4e2d \u51fa\u73b0 \u7684 \u6f14\u5458 \u7684 \u793a\u4f8b \u3002 \u4e00\u6b21 \u5217\u51fa \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 carla . ActorList \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u6bcf\u4e2a \u547d\u4ee4 \u90fd \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u81ea\u5df1 \u7684 \u53c2\u6570 \u3002 \u5b83\u4eec \u663e\u793a \u5728 \u6b64 \u9875\u9762 \u5e95\u90e8 \u5217\u51fa \u3002 apply _ batch _ sync ( self , commands , due _ tick _ cue = False ) snippet \u2192 \u5728 \u5355\u4e2a \u4eff\u771f \u6b65\u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u963b\u6b62 \u76f4\u5230 \u547d\u4ee4 \u94fe\u63a5 \uff0c \u5e76 \u8fd4\u56de command . Response \u5217\u8868 \u3002 \u53ef \u7528\u4e8e \u786e\u5b9a \u5355\u4e2a \u547d\u4ee4 \u662f\u5426 \u6210\u529f \u7684 \u54cd\u5e94 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u7528\u6765 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f8b\u5b50 \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u53ef\u7528 \u7684 \u547d\u4ee4 \u5217 \u5728 \u65b9\u6cd5 apply _ batch ( ) \u7684 \u6b63\u4e0a \u4e0a\u65b9 \u6b63\u4e0a\u65b9 \u3002 due _ tick _ cue ( bool ) - \u4e00\u4e2a \u5e03\u5c14 \u53c2\u6570 \uff0c \u7528\u4e8e \u6307\u5b9a \u662f\u5426 \u6267\u884c Carla \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5e94\u7528 \u5904\u7406 \u6279\u5904\u7406 \u540e \u8fdb\u884c carla . World . tick \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a False \u3002 \u8fd4\u56de \uff1a list ( command . Response ) generate _ opendrive _ world ( self , opendrive , parameters = ( 2.0 , 50.0 , 1.0 , 0.6 , true , true ) , reset _ settings = True ) \u4f7f\u7528 \u4ece OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u57fa\u672c \u4e09\u7ef4 \u62d3\u6251 \u52a0\u8f7d \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u6b64 \u5185\u5bb9 \u4f5c\u4e3a string \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u3002 \u5b83 \u7c7b\u4f3c \u4e8e client . load _ world ( map _ name ) \uff0c \u4f46 \u5141\u8bb8 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 OpenDRIVE \u6620\u5c04 \u3002 \u6c7d\u8f66 \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u4f46 \u9664\u4e86 \u9053\u8def \u548c \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e4b\u5916 \uff0c \u6ca1\u6709 \u4efb\u4f55 \u56fe\u5f62 \u3002 \u53c2\u6570 \uff1a opendrive ( str ) - OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 string \uff0c \u800c \u4e0d\u662f . xodr \u7684 \u8def\u5f84 \u3002 parameters ( carla . OpendriveGenerationParameters ) - \u7f51\u683c \u751f\u6210 \u7684 \u5176\u4ed6 \u8bbe\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u5267\u96c6 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 load _ world ( self , map _ name , reset _ settings = True , map _ layers = carla . MapLayer . All ) Creates a new world with default settings using map _ name map . All actors in the current world will be destroyed . \u53c2\u6570 \uff1a map _ name ( str ) - \u8981 \u5728 \u8fd9\u4e2a \u4e16\u754c \u4e0a \u4f7f\u7528 \u7684 \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u63a5\u53d7 \u5b8c\u6574 \u8def\u5f84 \u548c \u5730\u56fe \u540d\u79f0 \uff0c \u4f8b\u5982 \u201c / Game / Calla / Maps / Town01 \u201d \u6216 \u201c Town01 \u201d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 map _ layers ( carla . MapLayer ) - \u5c06 \u52a0\u8f7d \u7684 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5c06 \u52a0\u8f7d \u6240\u6709 \u56fe\u5c42 \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u7684 \u4f5c\u7528 \u7c7b\u4f3c \u4e8e \u6807\u5fd7 \u63a9\u7801 \u3002 \u8b66\u544a \uff1a map _ layers \u4ec5 \u5bf9 \" Opt \" \u5730\u56fe \u53ef\u7528 \u3002 reload _ world ( self , reset _ settings = True ) \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u4e16\u754c \uff0c \u8bf7 \u6ce8\u610f \uff0c \u5c06 \u4f7f\u7528 \u540c\u4e00 \u5730\u56fe \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u4e16\u754c \u4e0a \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 Raises : \u5bf9\u5e94 \u7684 \u8fd0\u884c \u65f6 \u9519\u8bef RuntimeError \u3002 replay _ file ( self , name , start , duration , follow _ id , replay _ sensors ) \u4f7f\u7528 map _ name \u52a0\u8f7d \u5177\u6709 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u5f53\u524d \u4e16\u754c \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5305\u542b \u4eff\u771f \u4fe1\u606f \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 start ( float - seconds ) - \u5f00\u59cb \u64ad\u653e \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u8d1f\u6570 \u8868\u793a \u4ece \u7ed3\u5c3e \u5f00\u59cb \u8bfb\u53d6 \uff0c \u5728 \u5f55\u5236 \u7ed3\u675f \u524d 10 \u79d2 \u4e3a - 10 \u3002 duration ( float - seconds ) - \u5c06 \u4f7f\u7528 \u4fe1\u606f name \u6587\u4ef6 \u91cd\u65b0 \u6267\u884c \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u5230\u8fbe \u7ec8\u70b9 \uff0c \u4eff\u771f \u5c06 \u7ee7\u7eed \u3002 follow _ id ( int ) - \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6b64\u503c \u4e3a 0 \uff0c \u5219 \u7981\u7528 \u76f8\u673a \u3002 replay _ sensors ( bool ) - \u7528\u4e8e \u5728 \u64ad\u653e \u671f\u95f4 \u542f\u7528 \u6216 \u7981\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6807\u5fd7 \u3002 request _ file ( self , name ) \u7531 carla . Client . get _ required _ files \u8fd4\u56de \u9700\u8981 \u6587\u4ef6 \u7684 \u4e00\u4e2a \u8bf7\u6c42 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u60a8 \u8bf7\u6c42 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 show _ recorder _ actors _ blocked ( self , filename , min _ time , min _ distance ) \u7ec8\u7aef \u5c06 \u663e\u793a \u88ab \u89c6\u4e3a \u88ab \u5c4f\u853d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6ce8\u518c \u4fe1\u606f \u3002 \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \u65f6 \uff0c \u5373 min _ distance \u548c min _ time \uff0c \u5219 \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8981 \u52a0\u8f7d \u7684 \u5f55\u5236 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 min _ time ( float - seconds ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u6321 \u4e4b\u524d \u5fc5\u987b \u79fb\u52a8 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \u7684 \u6700 \u77ed\u65f6 \u65f6\u95f4 \u77ed\u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 60 \u79d2 \u3002 min _ distance ( float - centimeters ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5fc5\u987b \u79fb\u52a8 \u7684 \u6700\u5c0f \u8ddd\u79bb \u624d\u80fd \u4e0d \u88ab \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 100 \u5398\u7c73 \u3002 \u8fd4\u56de \uff1a string show _ recorder _ collisions ( self , filename , category1 , category2 ) \u7ec8\u7aef \u5c06 \u663e\u793a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u6307\u5b9a \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u6765 \u8fc7\u6ee4 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u7c7b\u522b \u5c06 \u5728 category1 \u548c category1 \u4e2d \u6307\u5b9a \u5982\u4e0b \uff1a \u201c h \u201d = \u82f1\u96c4 \uff0c \u4e00\u79cd \u53ef\u4ee5 \u624b\u52a8 \u63a7\u5236 \u6216 \u7531 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u201d v ' = \u8f66\u8f86 ' w ' = \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 ' t ' = \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f ' o ' = \u5176\u4ed6 ' a ' = \u4efb\u4f55 \u5982\u679c \u60a8 \u53ea \u60f3 \u770b\u5230 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \uff0c \u8bf7 \u5c06 category1 \u7528\u4f5c ' v ' \uff0c \u5c06 category2 \u7528\u4f5c ' w ' \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u3002 \u5982\u679c \u8981 \u67e5\u770b \u6240\u6709 \u78b0\u649e \uff08 \u8fc7\u6ee4 \u6389 \uff09 \uff0c \u53ef\u4ee5 \u5bf9 \u4e24\u4e2a \u53c2\u6570 \u90fd \u4f7f\u7528 \u201c a \u201d \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 category1 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e00 \u4e00\u7c7b \u7b2c\u4e00\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 category2 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e8c \u4e8c\u7c7b \u7b2c\u4e8c\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 \u8fd4\u56de \uff1a string show _ recorder _ file _ info ( self , filename , show _ all ) \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4fdd\u5b58 \u7684 \u4fe1\u606f \u5c06 \u88ab \u89e3\u6790 \u5e76 \u4ee5 \u6587\u672c \u5f62\u5f0f \u663e\u793a \u5728 \u60a8 \u7684 \u7ec8\u7aef \u4e2d \uff08 \u5e27 \u3001 \u65f6\u95f4 \u3001 \u4e8b\u4ef6 \u3001 \u72b6\u6001 \u3001 \u4f4d\u7f6e \u2026 \uff09 \u3002 \u53ef\u4ee5 \u4f7f\u7528 show _ all \u53c2\u6570 \u6307\u5b9a \u663e\u793a \u7684 \u4fe1\u606f \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u8bfb\u53d6 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 show _ all ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u8fd4\u56de \u4e3a \u6bcf \u5e27 \u5b58\u50a8 \u7684 \u6240\u6709 \u4fe1\u606f \uff08 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3001 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u548c \u52a8\u753b \u6570\u636e \u2026 \uff09 \u3002 \u5982\u679c \u4e3a False \uff0c \u5219 \u8fd4\u56de \u5173\u952e \u4e8b\u4ef6 \u548c \u5e27 \u7684 \u6458\u8981 \u3002 \u8fd4\u56de \uff1a string start _ recorder ( self , filename , additional _ data = False ) \u542f\u7528 \u5f55\u5236 \u529f\u80fd \uff0c \u8be5 \u529f\u80fd \u5c06 \u5f00\u59cb \u4fdd\u5b58 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u91cd\u64ad \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u7528\u4e8e \u5199\u5165 \u8bb0\u5f55 \u6570\u636e \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 \u4e00\u4e2a \u7b80\u5355 \u7684 \u540d\u79f0 \u4f1a \u5c06 \u5f55\u5236 \u4fdd\u5b58 \u5728 \u201c CarlaUE4 / Saved / recording . log \u201d \u4e2d \u3002 \u5426\u5219 \uff0c \u5982\u679c \u540d\u79f0 \u4e2d \u51fa\u73b0 \u67d0\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5219 \u4f1a \u5c06 \u5176 \u89c6\u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 additional _ data ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u8bb0\u5f55 \u7528\u4e8e \u518d\u73b0 \u4eff\u771f \u7684 \u5fc5\u8981 \u975e\u5fc5\u8981 \u6570\u636e \uff08 \u8fb9\u754c \u6846 \u4f4d\u7f6e \u3001 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 \u7b49 \uff09 \u3002 stop _ recorder ( self ) \u505c\u6b62 \u6b63\u5728 \u8fdb\u884c \u7684 \u5f55\u5236 \u3002 \u5982\u679c \u60a8 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u6307\u5b9a \u4e86 \u4e00\u4e2a \u8def\u5f84 \uff0c \u5219 \u5f55\u5236 \u6587\u4ef6 \u5c06 \u5728 \u90a3\u91cc \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u8bf7 \u67e5\u770b CarlaUE4 / Saved / \u5185\u90e8 \u3002 stop _ replayer ( self , keep _ actors ) \u505c\u6b62 \u5f53\u524d \u91cd\u64ad \u3002 \u53c2\u6570 \uff1a keep _ actors ( bool ) - \u5982\u679c \u4f60 \u60f3 \u81ea\u52a8 \u5220\u9664 \u91cd\u64ad \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5219 \u4e3a True \uff0c \u5982\u679c \u4f60 \u60f3 \u4fdd\u7559 \u4ed6\u4eec \uff0c \u5219 \u4e3a False \u3002 \u83b7\u53d6 \u5668 get _ available _ maps ( self ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u53ef\u7528 \u6620\u5c04 \u7684 \u8def\u5f84 \u3002 \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u521b\u5efa \uff0c \u56e0\u6b64 \u5728 \u6587\u4ef6 \u4e2d \u67e5\u627e \u65f6 \u627e \u4e0d\u5230 \u5b83\u4eec \u3002 \u6b64 \u65b9\u6cd5 \u53ef\u80fd \u7684 \u8fd4\u56de \u7ed3\u679c \u4e4b\u4e00 \u662f \uff1a [ ' / Game / Carla / Maps / Town01 ' , ' / Game / Carla / Maps / Town02 ' , ' / Game / Carla / Maps / Town03 ' , ' / Game / Carla / Maps / Town04 ' , ' / Game / Carla / Maps / Town05 ' , ' / Game / Carla / Maps / Town06 ' , ' / Game / Carla / Maps / Town07 ' ] . \u8fd4\u56de \uff1a list ( str ) get _ client _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u5ba2\u6237 \u5ba2\u6237\u7aef libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 libcarla \u7248\u672c \uff0c \u4f46 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u4e0e \u610f\u5916 \u4e0d \u517c\u5bb9 \u6709\u5173 \u7684 \u95ee\u9898 \u3002 \u8fd4\u56de \uff1a str get _ required _ files ( self , folder , download = True ) \u8be2\u95ee \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u54ea\u4e9b \u6587\u4ef6 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u5730\u56fe \u3002 \u9009\u9879 \uff0c \u5982\u679c \u6587\u4ef6 \u4e0d \u5728 \u7f13\u5b58 \u4e2d \uff0c \u5219 \u81ea\u52a8 \u4e0b\u8f7d \u6587\u4ef6 \u3002 \u53c2\u6570 \uff1a folder ( str ) - \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6240 \u9700 \u6587\u4ef6 \u4e0b\u8f7d \u5230 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 download ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u4e0b\u8f7d \u5c1a\u672a \u5728 \u7f13\u5b58 \u4e2d \u7684 \u6587\u4ef6 \u3002 get _ server _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u5e94\u8be5 \u4f7f\u7528 \u76f8\u540c \u7684 libcarla \u7248\u672c \u3002 \u8fd4\u56de \uff1a str get _ trafficmanager ( self , client _ connection = 8000 ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u7aef\u53e3 \u76f8\u5173 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5982\u679c \u8be5 \u5b9e\u4f8b \u4e0d \u5b58\u5728 \uff0c \u5219 \u4f1a \u521b\u5efa \u8be5 \u5b9e\u4f8b \u3002 \u53c2\u6570 \uff1a client _ connection ( int ) - \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 8000 \u3002 \u8fd4\u56de \uff1a carla . TrafficManager get _ world ( self ) \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 \u8fd4\u56de \uff1a carla . World \u8bbe\u7f6e \u5668 set _ files _ base _ folder ( self , path ) \u53c2\u6570 \uff1a path ( str ) - \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 set _ replayer _ ignore _ hero ( self , ignore _ hero ) \u53c2\u6570 \uff1a ignore _ hero ( bool ) - \u5728 \u64ad\u653e \u5f55\u5236 \u7684 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u542f\u7528 \u6216 \u7981\u7528 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u64ad\u653e \u3002 set _ replayer _ ignore _ spectator ( self , ignore _ spectator ) \u53c2\u6570 \uff1a ignore _ spectator ( bool ) - \u786e\u5b9a \u56de\u653e \u7a0b\u5e8f \u662f\u5426 \u4f1a \u590d\u5236 \u8bb0\u5f55 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u52a8\u4f5c \u3002 set _ replayer _ time _ factor ( self , time _ factor = 1.0 ) \u4f7f\u7528 \u65f6 \uff0c \u4f1a \u968f\u610f \u4fee\u6539 \u91cd\u65b0 \u4eff\u771f \u7684 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5f53 \u64ad\u653e \u65f6 \uff0c \u5b83 \u53ef\u4ee5 \u4f7f\u7528 \u591a\u6b21 \u3002 \u53c2\u6570 \uff1a time _ factor ( float ) - 1.0 \u8868\u793a \u6b63\u5e38 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5927\u4e8e 1.0 \u8868\u793a \u5feb\u901f \u8fd0\u52a8 \uff08 2.0 \u8868\u793a \u53cc\u500d \u901f\u5ea6 \uff09 \uff0c \u5c0f\u4e8e 1.0 \u8868\u793a \u6162\u901f \u8fd0\u52a8 \uff08 0.5 \u8868\u793a \u4e00\u534a \u901f\u5ea6 \uff09 \u3002 set _ timeout ( self , seconds ) \u8bbe\u7f6e \u5728 \u963b\u6b62 \u7f51\u7edc \u8c03\u7528 \u5e76 \u5f15\u53d1 \u8d85\u65f6 \u8d85\u65f6 \u9519\u8bef \u4e4b\u524d \u5141\u8bb8 \u7f51\u7edc \u8c03\u7528 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a seconds ( float - seconds ) - \u65b0 \u7684 \u8d85 \u65f6\u503c \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 5 \u79d2 \u3002 carla . CollisionEvent \u4ece carla . SensorData \u7ee7\u627f \u4e3a sensor . other . collision \u5b9a\u4e49 \u78b0\u649e \u6570\u636e \u7684 \u7c7b \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3a \u68c0\u6d4b \u5230 \u7684 \u6bcf\u4e2a \u78b0\u649e \u521b\u5efa \u4e00\u4e2a \u78b0\u649e \u6570\u636e \u3002 \u6bcf\u4e2a \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u5e27 \u6bcf\u4e2a \u78b0\u649e \u4ea7\u751f \u4e00\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u901a\u8fc7 \u4e0e \u591a\u4e2a \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \uff0c \u53ef\u4ee5 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u4ea7\u751f \u591a\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf actor ( carla . Actor ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4e5f \u5c31\u662f \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 other _ actor ( carla . Actor ) \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u4e0e \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse ( carla . Vector3D - N * s ) \u78b0\u649e \u4ea7\u751f \u7684 \u6b63\u5e38 \u8109\u51b2 \u3002 carla . Color \u5b9a\u4e49 32 \u4f4d RGBA \u989c\u8272 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf r ( int ) \u7ea2\u8272 ( 0 - 255 ) \u3002 g ( int ) \u7eff\u8272 ( 0 - 255 ) \u3002 b ( int ) \u84dd\u8272 ( 0 - 255 ) \u3002 a ( int ) Alpha \u901a\u9053 ( 0 - 255 ) . \u3002 \u65b9\u6cd5 __ init __ ( self , r = 0 , g = 0 , b = 0 , a = 255 ) \u521d\u59cb \u521d\u59cb\u5316 \u989c\u8272 \uff0c \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 \u53c2\u6570 \uff1a r ( int ) g ( int ) b ( int ) a ( int ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . Color ) __ ne __ ( self , other = carla . Color ) __ str __ ( self ) carla . ColorConverter \u5b9a\u4e49 \u53ef \u5e94\u7528 \u4e8e carla . Image \u7684 \u8f6c\u6362 \u6a21\u5f0f \u7684 \u7c7b \uff0c \u4ee5 \u663e\u793a carla . Sensor \u63d0\u4f9b \u7684 \u4fe1\u606f \u3002 \u6df1\u5ea6 \u8f6c\u6362 \u4f1a \u5bfc\u81f4 \u7cbe\u5ea6 \u635f\u5931 \uff0c \u56e0\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u6df1\u5ea6 \u68c0\u6d4b \u4e3a \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a 0 \u5230 255 \u4e4b\u95f4 \u7684 \u7070\u5ea6 \u503c \u3002 \u67e5\u770b carla . Sensor . listen \u4e2d \u7684 \u7247\u6bb5 \uff0c \u4e86\u89e3 \u5982\u4f55 \u521b\u5efa \u548c \u4fdd\u5b58 \u56fe\u50cf \u7684 \u793a\u4f8b sensor . camera . semantic _ segmentation \u7684 \u6570\u636e \u3002 \u5b9e\u4f8b \u53d8\u91cf CityScapesPalette \u4f7f\u7528 \u84dd \u56fe\u5e93 \u63d0\u4f9b \u7684 \u6807\u7b7e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u5206\u6bb5 \u5730\u56fe \u3002 \u7531 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4f7f\u7528 \u3002 Depth \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u7ebf\u6027 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u7531 \u6df1\u5ea6 \u76f8\u673a \u4f7f\u7528 \u3002 LogarithmicDepth \u4f7f\u7528 \u5bf9\u6570 \u523b\u5ea6 \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u6df1\u5ea6 \u6df1\u5ea6\u56fe \uff0c \u4ece\u800c \u5728 \u5c0f \u8ddd\u79bb \u4e0a \u83b7\u5f97 \u66f4\u597d \u7684 \u7cbe\u5ea6 \uff0c \u4f46 \u5728 \u8ddd\u79bb \u8f83 \u8fdc \u65f6\u4f1a \u4e22\u5931 \u7cbe\u5ea6 \u3002 Raw \u672a \u5bf9 \u56fe\u50cf \u5e94\u7528 \u4efb\u4f55 \u66f4\u6539 \u3002 \u7531 RGB \u76f8\u673a \u4f7f\u7528 \u3002 carla . DVSEvent \u5b9a\u4e49 DVS \u4e8b\u4ef6 \u7684 \u7c7b \u3002 \u4e8b\u4ef6 \u662f \u4e00\u4e2a \u56db\u5143 \u5143\u7ec4 \u56db\u5143\u7ec4 \uff0c \u56e0\u6b64 \u662f \u4e00\u4e2a \u7531 4 \u4e2a \u5143\u7d20 \u7ec4\u6210 \u7684 \u5143\u7ec4 \uff0c \u5176\u4e2d x \u3001 \u50cf\u7d20 y \u5750\u6807 \u4f4d\u7f6e \u3001 \u65f6\u95f4 \u6233 t \u548c \u4e8b\u4ef6 \u6781\u6027 pol \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf x ( int ) X \u50cf\u7d20 \u5750\u6807 \u3002 y ( int ) Y \u50cf\u7d20 \u5750\u6807 \u3002 t ( int ) \u4e8b\u4ef6 \u53d1\u751f \u65f6\u523b \u7684 \u65f6\u95f4 \u6233 \u3002 pol ( bool ) \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 True \u8868\u793a \u6b63\u6570 \uff0c False \u8868\u793a \u8d1f\u6570 \u3002 \u65b9\u6cd5 Dunder \u65b9\u6cd5 __ str __ ( self ) carla . DVSEventArray \u5728 carla . DVSEvent \u4e2d \u5b9a\u4e49 \u4e8b\u4ef6 \u6d41 \u7684 \u7c7b \u3002 \u6b64\u7c7b \u6d41\u662f \u4efb\u610f \u5927\u5c0f \u7684 \u6570\u7ec4 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4e8b\u4ef6 \u7684 \u6570\u91cf \u3002 \u4e3a\u4e86 \u65b9\u4fbf \u8d77 \u89c1 \uff0c \u8be5\u7c7b \u8fd8 \u5b58\u50a8 \u89c6\u91ce \u3001 \u56fe\u50cf \u7684 \u9ad8\u5ea6 \u548c \u5bbd\u5ea6 \u4ee5\u53ca \u65f6\u95f4 \u6233 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf fov ( float - \u5ea6 ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( \u5b57\u8282 ) \u65b9\u6cd5 to _ array ( self ) \u6309 \u4ee5\u4e0b \u987a\u5e8f \u5c06 \u4e8b\u4ef6 \u6d41 \u8f6c\u6362 \u4e3a int \u503c \u6570\u7ec4 [ x , y , t , pol ] \u3002 to _ array _ pol ( self ) \u8fd4\u56de \u4e00\u4e2a \u6570\u7ec4 \uff0c \u8be5 \u6570\u7ec4 \u5177\u6709 \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 to _ array _ t ( self ) \u8fd4\u56de \u4e00\u4e2a \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 \u65f6\u95f4 \u6233 \u3002 to _ array _ x ( self ) \u8fd4\u56de \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 X \u50cf\u7d20 \u5750\u6807 \u7684 \u6570\u7ec4 \u3002 to _ array _ y ( self ) \u8fd4\u56de \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 Y \u50cf\u7d20 \u5750\u6807 \u6570\u7ec4 \u3002 to _ image ( self ) \u6309\u7167 \u4ee5\u4e0b \u6a21\u5f0f \u8f6c\u6362 \u56fe\u50cf \uff1a \u84dd\u8272 \u8868\u793a \u6b63 \u4e8b\u4ef6 \uff0c \u7ea2\u8272 \u8868\u793a \u8d1f \u4e8b\u4ef6 \u3002 \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 carla . DVSEvent \u4f5c\u4e3a \u68c0\u7d22 \u7684 \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self ) carla . DebugHelper carla . World \u7684 \u8f85\u52a9 \u7c7b \u90e8\u5206 \uff0c \u5b9a\u4e49 \u521b\u5efa \u8c03\u8bd5 \u5f62\u72b6 \u7684 \u65b9\u6cd5 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f62\u72b6 \u6301\u7eed \u4e00\u79d2 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u662f \u6c38\u4e45 \u6c38\u4e45\u6027 \u7684 \uff0c \u4f46 \u8981 \u8003\u8651 \u5230 \u8fd9\u6837 \u505a \u6240 \u9700 \u7684 \u8d44\u6e90 \u3002 \u67e5\u770b \u6b64\u7c7b \u7684 \u53ef\u7528 \u7247\u6bb5 \uff0c \u4e86\u89e3 \u5982\u4f55 \u5728 Carla \u4e2d \u8f7b\u677e \u8c03\u8bd5 \u3002 \u65b9\u6cd5 draw _ arrow ( self , begin , end , thickness = 0.1 , arrow _ size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u4ece \u5f00\u59cb begin \u5230 \u7ed3\u675f end \u7ed8\u5236 \u4e00\u4e2a \u6307\u5411 \u8be5 \u65b9\u5411 \u7684 \u7bad\u5934 \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u5f00\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u7ed3\u675f \u5e76 \u6307\u5411 \u7684 \u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 arrow _ size ( float - \u7c73 ) - \u7bad\u5934 \u5c16\u7aef \u7684 \u5927\u5c0f \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ box ( self , box , rotation , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) snippet \u2192 \u7ed8\u5236 \u4e00\u4e2a \u6846 \uff0c \u901a\u5e38 \u7528\u4e8e \u5bf9\u8c61 \u78b0\u649e \u5668 \u3002 \u53c2\u6570 \uff1a box ( carla . BoundingBox ) - \u5305\u542b \u6bcf\u4e2a \u8f74 \u7684 \u4f4d\u7f6e \u548c \u6846 \u957f\u5ea6 \u7684 \u5bf9\u8c61 \u3002 rotation ( carla . Rotation - \u5ea6 ( pitch , yaw , roll ) ) - \u6839\u636e \u865a\u5e7b \u5f15\u64ce \u8f74\u7cfb \u7684 \u8fb9\u754c \u6846 \u65b9\u5411 \u3002 thickness ( float - \u7c73 ) - \u5b9a\u4e49 \u8fb9\u754c \u6846 \u7684 \u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - \u79d2 ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ hud _ arrow ( self , begin , end , thickness = 0.1 , arrow _ size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u4e0a \u4ece\u5934 begin \u5230 \u5c3e end \u753b \u4e00\u4e2a \u7bad\u5934 \uff0c \u8fd9\u4e2a \u7bad\u5934 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u7bad\u5934 \u8d77\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u7bad\u5934 \u7ed3\u675f \u5e76 \u6307\u5411 \u7684 \u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 arrow _ size ( float - \u7c73 ) - \u7bad\u5c16 \u7684 \u5927\u5c0f \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ hud _ box ( self , box , rotation , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u4e0a \u7ed8\u5236 \u4e00\u4e2a \u6846 \uff0c \u901a\u5e38 \u7528\u4e8e \u5bf9\u8c61 \u78b0\u649e \u5668 \u3002 \u8be5\u6846 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 Parameters : box ( carla . BoundingBox ) - \u5305\u542b \u6bcf\u4e2a \u8f74 \u7684 \u6846 \u7684 \u4f4d\u7f6e \u548c \u957f\u5ea6 \u7684 \u5bf9\u8c61 \u3002 rotation ( carla . Rotation - degrees ( pitch , yaw , roll ) ) - \u6839\u636e \u865a\u5e7b \u5f15\u64ce \u7684 \u8f74 \u7cfb\u7edf \u786e\u5b9a \u8fb9\u754c \u6846 \u7684 \u65b9\u5411 \u3002 thickness ( float - \u7c73 ) - \u5b9a\u4e49 \u8fb9\u754c \u6846\u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ hud _ line ( self , begin , end , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u4e0a \u5f00\u59cb begin \u548c \u7ed3\u675f end \u4e4b\u95f4 \u753b \u4e00\u6761 \u4e00\u6761\u7ebf \u3002 \u8fd9\u6761 \u8fd9\u6761\u7ebf \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u76f4\u7ebf \u5f00\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u76f4\u7ebf \u7ed3\u675f \u7684 \u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - \u79d2 ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ hud _ point ( self , location , size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u7684 \u4f4d\u7f6e location \u4e0a \u7ed8\u5236 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u8fd9\u4e2a \u70b9 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u70b9 \u5728 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d\u4f7f \u7269\u4f53 \u5c45\u4e2d \u3002 size ( float - \u7c73 ) - \u70b9 \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ line ( self , begin , end , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 \u5f00\u59cb begin \u548c \u7ed3\u675f end \u4e4b\u95f4 \u7ed8\u5236 \u4e00\u6761 \u4e00\u6761\u7ebf \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u76f4\u7ebf \u8d77\u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u76f4\u7ebf \u7ec8\u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - \u79d2 ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ point ( self , location , size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u7ed8\u5236 \u4e00\u4e2a \u4e00\u4e2a\u70b9 location \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u5728 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d\u70b9 \u4ee5 \u5c06 \u5bf9\u8c61 \u5c45\u4e2d \u3002 size ( float - \u7c73 ) - \u70b9 \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ string ( self , location , text , draw _ shadow = False , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) snippet \u2192 \u5728 \u4eff\u771f \u7684 \u7ed9\u5b9a \u4f4d\u7f6e \u7ed8\u5236 \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u8be5 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u4eff\u771f \u4e2d \u6587\u672c \u5c45\u4e2d \u7684 \u4f4d\u7f6e \u3002 text ( str ) - \u65e8\u5728 \u5411 \u4e16\u754c \u5c55\u793a \u7684 \u6587\u672c \u3002 draw _ shadow ( bool ) - \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u6295\u5c04 \u9634\u5f71 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u662f \u7981\u7528 \u7684 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 carla . EnvironmentObject \u8868\u793a \u5173\u5361 \u4e2d \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u7684 \u7c7b \uff0c \u8be5 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u53ef\u4ee5 \u662f \u4e0e \u5176\u4ed6 \u73af\u5883 \u5bf9\u8c61 \uff08 \u5373 \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \uff09 \u5f62\u6210 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b9e\u4f8b \u53d8\u91cf transform ( carla . Transform ) \u5305\u542b \u73af\u5883 \u5bf9\u8c61 \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 bounding _ box ( carla . BoundingBox ) \u5305\u542b \u4e16\u754c \u7a7a\u95f4 \u4e2d \u6bcf\u4e2a \u8f74 \u7684 \u4f4d\u7f6e \u3001 \u65cb\u8f6c \u548c \u8fb9\u754c \u6846 \u957f\u5ea6 \u7684 \u5bf9\u8c61 \u3002 id ( int ) \u7528\u4e8e \u6807\u8bc6 \u5173\u5361 \u4e2d \u5bf9\u8c61 \u7684 \u552f\u4e00 ID \u3002 name ( string ) \u73af\u5883 \u5bf9\u8c61 EnvironmentObject \u7684 \u540d\u79f0 \u3002 type ( carla . CityObjectLabel ) Semantic tag . \u65b9\u6cd5 Dunder \u65b9\u6cd5 __ str __ ( self ) \u5c06 \u73af\u5883 \u5bf9\u8c61 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5e76 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u663e\u793a \u5b83\u4eec \u3002 \u8fd4\u56de \uff1a str carla . FloatColor \u5b9a\u4e49 \u6d6e\u70b9 RGBA \u989c\u8272 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf r ( float ) \u7ea2\u8272 \u3002 g ( float ) \u7eff\u8272 \u3002 b ( float ) \u84dd\u8272 \u3002 a ( float ) Alpha \u901a\u9053 \u3002 \u65b9\u6cd5 __ init __ ( self , r = 0 , g = 0 , b = 0 , a = 1.0 ) \u521d\u59cb \u521d\u59cb\u5316 \u989c\u8272 \uff0c \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 \u53c2\u6570 \uff1a r ( float ) g ( float ) b ( float ) a ( float ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . FloatColor ) __ ne __ ( self , other = carla . FloatColor ) carla . GBufferTextureID \u5b9a\u4e49 \u6bcf\u4e2a GBuffer \u7eb9\u7406 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 ( \u53c2\u89c1 \u65b9\u6cd5 [ carla . Sensor . listen _ to _ gbuffer ] ( # carla . Sensor . listen _ to _ gbuffer ) ) \u3002 \u5b9e\u4f8b \u53d8\u91cf SceneColor \u7eb9\u7406 \u201c SceneColor \u201d \u5305\u542b \u56fe\u50cf \u7684 \u6700\u7ec8 \u989c\u8272 \u3002 SceneDepth \u7eb9\u7406 \u201c SceneDepth \u201d \u5305\u542b \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a - \u4ee5 \u4e16\u754c \u5355\u4f4d \u4e3a \u7ebf\u6027 \u3002 SceneStencil \u7eb9\u7406 \u201c SceneStencil \u201d \u5305\u542b \u6a21\u677f \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 GBufferA \u7eb9\u7406 \u201c GBufferA \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u4e16\u754c \u7a7a\u95f4 \u6cd5\u7ebf \u5411\u91cf \u3002 Alpha \u901a\u9053 \u5305\u542b \u201c \u6bcf\u4e2a \u5bf9\u8c61 \u7684 \u6570\u636e \u201d \u3002 GBufferB \u7eb9\u7406 \u201c GBufferB \u201d \u5206\u522b \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u91d1\u5c5e \u3001 \u955c\u9762 \u548c \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Alpha \u901a\u9053 \u5305\u542b \u4e00\u4e2a \u63a9\u7801 \uff0c \u5176\u4e2d \u4f4e 4 \u4f4d \u8868\u793a \u7740\u8272 \u6a21\u578b \uff0c \u9ad8 4 \u4f4d \u5305\u542b \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 \u3002 GBufferC \u7eb9\u7406 \u201c GBufferC \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u989c\u8272 \uff0c \u4ee5\u53ca Alpha \u901a\u9053 \u4e2d \u7684 \u95f4\u63a5 \u8f90\u7167 \u7167\u5ea6 \u8f90\u7167\u5ea6 \u3002 \u5982\u679c \u4e0d \u5141\u8bb8 \u9759\u6001 \u95ea\u7535 \uff0c Alpha \u901a\u9053 \u5c06 \u5305\u542b \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u3002 GBufferD \u201c GBufferD \u201d \u7684 \u5185\u5bb9 \u6839\u636e \u6e32\u67d3 \u5bf9\u8c61 \u7684 \u6750\u8d28 \u7740\u8272 \u6a21\u578b ( GBufferB ) \u7684 \u4e0d\u540c \u800c \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \uff1a MSM _ Subsurface ( 2 ) , MSM _ PreintegratedSkin ( 3 ) , MSM _ TwoSidedFoliage ( 6 ) : RGB : \u6b21 \u8868\u9762 \u989c\u8272 \u3002 A : \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 MSM _ ClearCoat ( 4 ) : R : \u900f\u660e \u6d82\u5c42 \u3002 G : \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 MSM _ SubsurfaceProfile ( 5 ) : RGB : \u6b21 \u8868\u9762 \u8f6e\u5ed3 \u3002 MSM _ Hair ( 7 ) : RG : \u4e16\u754c \u6cd5\u7ebf \u3002 B : \u80cc\u5149 \u503c \u3002 MSM _ Cloth ( 8 ) : RGB : \u6b21 \u8868\u9762 \u989c\u8272 \u3002 A : Cloth value . MSM _ Eye ( 9 ) : RG : \u773c \u5207\u7ebf \u3002 B : \u8679\u819c \u63a9\u6a21 \u3002 A : \u8679\u819c \u8ddd\u79bb \u3002 GBufferE \u7eb9\u7406 \u201c GBufferE \u201d \u5305\u542b RGBA \u901a\u9053 \u4e2d \u9884\u5148 \u8ba1\u7b97 \u7684 \u9634\u5f71 \u56e0\u5b50 \u3002 \u5982\u679c \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 ( GBufferB ) \u6ca1\u6709 \u8bbe\u7f6e \u5176 \u7b2c 4 \u4f4d \uff0c \u5219 \u6b64 \u7eb9\u7406 \u4e0d\u53ef \u7528 \u3002 GBufferF \u7eb9\u7406 \u201c GBufferF \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u4e16\u754c \u7a7a\u95f4 \u5207\u7ebf \u548c Alpha \u901a\u9053 \u4e2d \u7684 \u5f02\u6027 \u5404\u5411\u5f02\u6027 \u3002 \u5982\u679c \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 ( GBufferB ) \u6ca1\u6709 \u8bbe\u7f6e \u5176 \u7b2c 5 \u4f4d \uff0c \u5219 \u6b64 \u7eb9\u7406 \u4e0d\u53ef \u7528 \u3002 Velocity \u7eb9\u7406 \u201c \u901f\u5ea6 \u201d \u5305\u542b \u573a\u666f \u5bf9\u8c61 \u7684 \u5c4f\u5e55 \u7a7a\u95f4 \u901f\u5ea6 \u3002 SSAO \u7eb9\u7406 \u201c SSAO \u201d \u5305\u542b \u5c4f\u5e55 \u7a7a\u95f4 \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u7eb9\u7406 \u3002 CustomDepth \u7eb9\u7406 \u201c CustomDepth \u201d \u5305\u542b \u865a\u5e7b \u5f15\u64ce \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6df1\u5ea6 \u6570\u636e \u3002 CustomStencil \u7eb9\u7406 \u201c CustomStencil \u201d \u5305\u542b \u865a\u5e7b \u5f15\u64ce \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6a21\u677f \u6570\u636e \u3002 carla . GearPhysicsControl \u901a\u8fc7 \u5b9a\u4e49 \u6863\u4f4d \u4ee5\u53ca \u4f55\u65f6 \u8fd0\u884c \u8be5 \u6863\u4f4d \u6765 \u63d0\u4f9b \u5bf9 \u8f66\u8f86 \u53d8\u901f \u53d8\u901f\u7bb1 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u7684 \u8bbf\u95ee \u7684 \u7c7b \u3002 carla . VehiclePhysicsControl \u7a0d\u540e \u5c06 \u4f7f\u7528 \u5b83 \u6765 \u5e2e\u52a9 \u4eff\u771f \u7269\u7406 \u3002 \u5b9e\u4f8b \u53d8\u91cf ratio ( float ) \u9f7f\u8f6e \u7684 \u4f20\u52a8 \u4f20\u52a8\u6bd4 \u3002 down _ ratio ( float ) \u5f53\u524d RPM \u4e0e \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u5e94\u964d \u6863 \u7684 MaxRPM \u4e4b\u95f4 \u7684 \u5546 \u3002 up _ ratio ( float ) \u5f53\u524d RPM \u4e0e \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u5e94 \u5347\u6863 \u7684 MaxRPM \u4e4b\u95f4 \u7684 \u5546 \u3002 \u65b9\u6cd5 __ init __ ( self , ratio = 1.0 , down _ ratio = 0.5 , up _ ratio = 0.65 ) \u53c2\u6570 \uff1a ratio ( float ) down _ ratio ( float ) up _ ratio ( float ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . GearPhysicsControl ) __ ne __ ( self , other = carla . GearPhysicsControl ) __ str __ ( self ) carla . GeoLocation \u5305\u542b \u5730\u7406 \u5750\u6807 \u5730\u7406\u5750\u6807 \u4eff\u771f \u6570\u636e \u7684 \u7c7b \u3002 carla . Map \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \u8f6c\u6362 \u4eff\u771f \u4f4d\u7f6e OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u6807\u8bb0 \u3002 \u5b9e\u4f8b \u53d8\u91cf latitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 altitude ( float - \u7c73 ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002 \u65b9\u6cd5 __ init __ ( self , latitude = 0.0 , longitude = 0.0 , altitude = 0.0 ) \u53c2\u6570 \uff1a latitude ( float - \u5ea6 ) longitude ( float - \u5ea6 ) altitude ( float - \u7c73 ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . GeoLocation ) __ ne __ ( self , other = carla . GeoLocation ) __ str __ ( self ) carla . GnssMeasurement \u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u7531 sensor . other . gnss \u6ce8\u518c \u7684 Gnss \u6570\u636e \u7684 \u7c7b \u3002 \u5b83 \u672c\u8d28 \u4e0a \u662f \u901a\u8fc7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f4d\u7f6e \u548c OpenDRIVE \u5730\u7406 \u53c2\u8003 \u6765 \u62a5\u544a \u5176 \u4f4d\u7f6e \u3002 \u5b9e\u4f8b \u53d8\u91cf altitude ( float - \u7c73 ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002 latitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . IMUMeasurement \u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u7531 sensor . other . imu \u6ce8\u518c \u7684 \u6570\u636e \u7c7b \uff0c \u6d89\u53ca \u6839\u636e \u5f53\u524d carla . World \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f6c\u6362 \u3002 \u5b83 \u672c\u8d28 \u4e0a \u5145\u5f53 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u5b9e\u4f8b \u53d8\u91cf accelerometer ( carla . Vector3D - m / s 2 ) \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 compass ( float - \u5f27\u5ea6 ) \u76f8\u5bf9 \u4e8e \u5317\u65b9 \u7684 \u65b9\u5411 \uff08 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d\u4e3a [ 0.0 , - 1.0 , 0.0 ] \uff09 \u3002 gyroscope ( carla . Vector3D - \u5f27\u5ea6 / \u79d2 ) \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . Image \u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 32 \u4f4d BGRA \u989c\u8272 \u56fe\u50cf \u7684 \u7c7b \uff0c \u8be5 \u56fe\u50cf \u5c06 \u7528\u4f5c \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u521d\u59cb \u6570\u636e \u3002 \u6709 \u4e0d\u540c \u7684 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u76ee\u524d \u6709 \u4e09\u79cd \uff0c RGB \u3001 \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 \uff09 \uff0c \u6bcf\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5bf9 \u56fe\u50cf \u90fd \u6709 \u4e0d\u540c \u7684 \u7528\u9014 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf fov ( float - \u5ea6 ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( bytes ) \u50cf\u7d20 \u6570\u636e \u7684 \u6241\u5e73 \u6570\u7ec4 \uff0c \u4f7f\u7528 reshape \u521b\u5efa \u56fe\u50cf \u6570\u7ec4 \u3002 \u65b9\u6cd5 convert ( self , color _ converter ) \u6309\u7167 color _ converter \u6a21\u5f0f \u8f6c\u6362 \u56fe\u50cf \u3002 \u53c2\u6570 \uff1a color _ converter ( carla . ColorConverter ) save _ to _ disk ( self , path , color _ converter = Raw ) \u4f7f\u7528 \u5982\u4e0b \u6240\u793a \u7684 \u8f6c\u6362 \u8f6c\u6362\u5668 \u6a21\u5f0f color _ converter \u5c06 \u56fe\u50cf \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u9ed8\u8ba4 \u8f6c\u6362 \u6a21\u5f0f \u662f Raw \uff0c \u4e0d\u4f1a \u5bf9 \u56fe\u50cf \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u3002 \u53c2\u6570 \uff1a path ( str ) - \u5c06 \u5305\u542b \u56fe\u50cf \u7684 \u8def\u5f84 \u3002 color _ converter ( carla . ColorConverter ) - \u9ed8\u8ba4 Raw \u4e0d\u4f1a \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u3002 \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u5f62\u6210 \u56fe\u50cf \u7684 carla . Color \u4e0a\u9762 \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self ) carla . Junction \u6839\u636e OpenDRIVE 1.4 \u6807\u51c6 \uff0c \u4f53\u73b0 OpenDRIVE \u6587\u4ef6 \u4e2d \u63cf\u8ff0 \u7684 \u9053\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( int ) OpenDRIVE \u6587\u4ef6 \u4e2d \u627e\u5230 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 bounding _ box ( carla . BoundingBox ) \u5c01\u88c5 \u8fde\u63a5 \u8f66\u9053 \u7684 \u8fb9\u754c \u6846 \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ waypoints ( self , lane _ type ) \u8fd4\u56de \u822a\u8def \u70b9 \u5bf9 \u7684 \u5217\u8868 \u3002 \u5217\u8868 \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7ec4 \u9996\u5148 \u5305\u542b \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u8fb9\u754c \u5185 \u7684 \u521d\u59cb \u8def\u5f84 \u70b9 \uff0c \u7136\u540e \u5305\u542b \u6700\u7ec8 \u8def\u5f84 \u70b9 \uff0c \u63cf\u8ff0 \u6cbf \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u7684 \u6240\u8ff0 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8f66\u9053 \u9075\u5faa \u5176 OpenDRIVE \u5b9a\u4e49 \uff0c \u56e0\u6b64 \u7531\u4e8e \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u53ef\u80fd \u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u5143\u7ec4 \u5177\u6709 \u76f8\u540c \u7684 \u8d77\u59cb \u822a\u8def \u70b9 \uff0c \u56e0\u4e3a \u8fd9 \u88ab \u89c6\u4e3a \u4e0d\u540c \u7684 \u8f66\u9053 \u3002 \u53c2\u6570 \uff1a lane _ type ( carla . LaneType ) - \u83b7\u53d6 \u8def\u70b9 \u7684 \u8f66\u9053 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a list ( tuple ( carla . Waypoint ) ) carla . LabelledPoint \u4f7f\u7528 \u8bed\u4e49 \u6807\u7b7e \u8868\u793a \u7a7a\u95f4 \u4f4d\u7f6e \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf location \u4e09\u7ef4 \u7a7a\u95f4 \u7ef4\u7a7a\u95f4 \u4e09\u7ef4\u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 label \u70b9 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 carla . Landmark \u5b9a\u4e49 \u5f71\u54cd \u9053\u8def \u7684 \u4efb\u4f55 \u7c7b\u578b \u7684 \u4ea4\u901a \u5730\u6807 \u6216 \u6807\u5fd7 \u7684 \u7c7b \u3002 \u8fd9\u4e9b \u7c7b \u5728 \u5730 \u6807\u7684 OpenDRIVE 1.4 standard \u6807\u51c6 \u5b9a\u4e49 \u53ca\u5176 \u5728 \u4eff\u771f \u4e2d \u7684 \u8868\u793a \u4e4b\u95f4 \u8fdb\u884c \u534f\u8c03 \u3002 \u6b64\u7c7b \u68c0\u7d22 \u5728 OpenDRIVE \u4e2d \u5b9a\u4e49 \u5730 \u6807\u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5e76 \u63d0\u4f9b \u6709\u5173 \u5176 \u5f71\u54cd \u54ea\u4e9b \u8f66\u9053 \u4ee5\u53ca \u4f55\u65f6 \u5f71\u54cd \u7684 \u4fe1\u606f \u3002 carla . Waypoint \u5bf9\u8c61 \u5c06 \u5c1d\u8bd5 \u68c0\u7d22 \u5176 \u8f66\u9053 \u89c4\u5219 \u6765 \u8bbf\u95ee \u5730\u6807 \u3002 \u56e0\u6b64 \uff0c \u67d0\u4e9b \u5c5e\u6027 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6b63\u5728 \u54a8\u8be2 \u5730 \u6807\u7684 \u822a\u8def \u70b9 \uff0c \u4ece\u800c \u521b\u5efa \u5bf9\u8c61 \u521b\u5efa\u5bf9\u8c61 \u3002 \u5b9e\u4f8b \u53d8\u91cf road _ id ( int ) \u5b9a\u4e49 \u6b64\u5730 \u6807\u7684 \u9053\u8def \u7684 OpenDRIVE ID \u3002 \u7531\u4e8e OpenDRIVE \u9053\u8def \u5b9a\u4e49 \uff0c \u8be5 \u9053\u8def \u53ef\u80fd \u4e0e \u5730\u6807 \u5f53\u524d \u5f71\u54cd \u7684 \u9053\u8def \u4e0d\u540c \u3002 \u8fd9\u79cd \u60c5\u51b5 \u4e3b\u8981 \u53d1\u751f \u5728 \u4e0d\u540c \u8def\u7ebf \u7684 \u9053\u8def \u5206\u53c9 \u5904 \u3002 \u793a\u4f8b \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u4e00\u6761 \u5206\u53c9 \u9053\u8def \u4e2d \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u4f46 \u5b83 \u4f1a \u5f71\u54cd \u6240\u6709 \u53ef\u80fd \u7684 \u8def\u7ebf \u3002 distance ( float - \u7c73 ) \u5730\u6807 \u4e0e \u521b\u5efa \u5bf9\u8c61 \u521b\u5efa\u5bf9\u8c61 \u7684 \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \uff08 \u67e5\u8be2 get _ landmarks \u6216 get _ landmarks _ of _ type \uff09 \u3002 s ( float - \u7c73 ) \u5730\u6807 \u6cbf \u9053\u8def \u51e0\u4f55 \u5f62\u72b6 \u5b9a\u4f4d \u7684 \u8ddd\u79bb road _ id \u3002 t ( float - \u7c73 ) \u5730\u6807 \u8ddd \u9053\u8def \u8fb9\u7f18 \u7684 \u6a2a\u5411 \u8ddd\u79bb road _ id \u3002 id ( str ) OpenDRIVE \u6587\u4ef6 \u4e2d \u5730 \u6807\u7684 \u552f\u4e00 ID \u3002 name ( str ) OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u5730\u6807 \u540d\u79f0 \u3002 is _ dynamic ( bool ) \u6307\u793a \u5730 \u6807\u7684 \u72b6\u6001 \u662f\u5426 \u968f \u65f6\u95f4 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \uff0c \u4f8b\u5982 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 orientation ( carla . LandmarkOrientation - \u7c73 ) \u6307\u793a \u5730\u6807 \u9762\u5411 \u7684 \u8f66\u9053 \u3002 z _ offset ( float - \u7c73 ) \u653e\u7f6e \u5730 \u6807\u7684 \u9ad8\u5ea6 \u3002 country ( str ) \u5b9a\u4e49 \u5730 \u6807\u7684 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \uff08 OpenDRIVE \u9ed8\u8ba4 \u4e3a \u5fb7\u56fd 2017 \uff09 \u3002 type ( str ) \u6839\u636e \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u8f93\u5165 \u8f93\u5165\u5730 \u6807\u7684 \u7c7b\u578b \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 sub _ type ( str ) \u6839\u636e \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u7684 \u5730\u6807 \u5b50 \u7c7b\u578b \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 value ( float ) \u4fe1\u53f7 \u4e2d \u6253\u5370 \u7684 \u503c \uff08 \u4f8b\u5982 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3001 \u6700\u5927 \u91cd\u91cf \u7b49 \uff09 \u3002 unit ( str ) \u5c5e\u6027 value \u7684 \u6d4b\u91cf \u5355\u4f4d \u3002 height ( float - \u7c73 ) \u4fe1\u53f7 \u7684 \u603b \u9ad8\u5ea6 \u3002 width ( float - \u7c73 ) \u4fe1\u53f7 \u7684 \u603b \u5bbd\u5ea6 \u3002 text ( str ) \u4fe1\u53f7 \u4e2d \u7684 \u9644\u52a0 \u6587\u672c \u3002 h _ offset ( float - \u7c73 ) \u4fe1\u53f7 \u76f8\u5bf9 \u4e8e OpenDRIVE \u4e2d s \u5904 road _ id \u5b9a\u4e49 \u7684 \u65b9\u5411 \u504f\u79fb \u3002 pitch ( float - \u7c73 ) \u4fe1\u53f7 \u7684 \u4fef\u4ef0 \u4ef0\u89d2 \u4fef\u4ef0\u89d2 ( Y - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . roll ( float ) \u4fe1\u53f7 \u7684 \u7ffb\u6eda \u89d2 ( X - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . waypoint ( carla . Waypoint ) \u653e\u7f6e \u5728 \u8fdb\u884c \u67e5\u8be2 \u7684 \u8f66\u9053 \u548c \u5730\u6807 s \u5904 \u7684 \u822a\u8def \u70b9 \u3002 \u8fd9\u662f \u5730\u6807 \u6709\u6548 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u822a\u8def \u70b9 \u3002 transform ( carla . Transform ) \u4eff\u771f \u4e2d \u5730 \u6807\u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ lane _ validities ( self ) \u8fd4\u56de \u5730\u6807 \u5f71\u54cd \u7684 \u8f66\u9053 \u3002 \u7531\u4e8e \u53ef\u80fd \u5b58\u5728 \u5730\u6807 \u65e0\u6548 \u7684 \u7279\u5b9a \u8f66\u9053 \uff0c \u56e0\u6b64 \u8fd4\u56de \u7684 \u662f \u5305\u542b \u53d7 \u5f71\u54cd \u7684 lane _ id \u8303\u56f4 \u7684 \u5bf9 \u5217\u8868 \uff1a \u793a\u4f8b \uff1a \u5728 \u6709 5 \u6761 \u8f66\u9053 \u7684 \u9053\u8def \u4e2d \uff0c \u5176\u4e2d 3 \u4e0d\u53d7 \u6761\u4e0d\u53d7 \u5f71\u54cd \uff1a [ ( from _ lane1 , to _ lane2 ) , ( from _ lane4 , to _ lane5 ) ] \u3002 \u8fd4\u56de \uff1a list ( tuple ( int ) ) carla . LandmarkOrientation \u7528\u4e8e \u5b9a\u4e49 \u9053\u8def \u4e2d \u5730\u6807 \u65b9\u5411 \u7684 \u8f85\u52a9 \u7c7b \u3002 \u8be5 \u5b9a\u4e49 \u5e76\u975e \u76f4\u63a5 \u4ece OpenDRIVE \u8f6c\u6362 \u800c \u6765 \uff0c \u800c\u662f \u4e3a\u4e86 \u4fbf\u4e8e \u7406\u89e3 \u800c \u8fdb\u884c \u4e86 \u8f6c\u6362 \u3002 \u5b9e\u4f8b \u53d8\u91cf Positive \u5730\u6807 \u671d\u5411 \u4e0e \u9053\u8def \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u5b9a\u4e49 \u65b9\u5411 \u76f8\u540c \u7684 \u8f66\u8f86 \uff08 OpenDRIVE \u4e2d \u7684 0 \u8f66\u9053 \u548c \u8d1f \u8f66\u9053 \uff09 \u3002 Negative \u5730\u6807 \u671d\u5411 \u4e0e \u9053\u8def \u51e0\u4f55 \u5b9a\u4e49 \u76f8\u53cd \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \uff08 OpenDRIVE \u4e2d \u7684 \u6b63 \u8f66\u9053 \uff09 \u3002 Both \u90fd \u4f1a \u5f71\u54cd \u6cbf \u9053\u8def \u4e24\u4e2a \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 carla . LandmarkType Helper \u7c7b \u5305\u542b OpenDRIVE \u6807\u51c6 \uff08 \u5fb7\u56fd 2017 \uff09 \u4e2d \u9ed8\u8ba4 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u5b9a\u4e49 \u7684 \u4e00\u7ec4 \u5e38\u7528 \u5730\u6807 \u7c7b\u578b \u3002 carla . Landmark \u4e0d \u5f15\u7528 \u6b64\u7c7b \u3002 \u5730\u6807 \u7c7b\u578b \u662f \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u6839\u636e \u6240 \u4f7f\u7528 \u7684 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u7684 \u4e0d\u540c \uff0c \u5176 \u53d8\u5316 \u5f88\u5927 \u53d8\u5316\u5f88\u5927 \u3002 \u6b64\u7c7b \u4ec5 \u901a\u8fc7 \u5c06 \u9ed8\u8ba4 \u96c6\u4e2d \u7684 \u4e00\u4e9b \u6700 \u5e38\u7528 \u7684 \u63cf\u8ff0 \u4e3a \u679a\u4e3e \u6765 \u4f7f \u7ba1\u7406 \u5b83\u4eec \u53d8\u5f97 \u66f4 \u5bb9\u6613 \u3002 \u5b9e\u4f8b \u53d8\u91cf Danger \u7c7b\u578b 101 \u3002 LanesMerging \u7c7b\u578b 121 \u3002 CautionPedestrian \u7c7b\u578b 133 \u3002 CautionBicycle \u7c7b\u578b 138 \u3002 LevelCrossing \u7c7b\u578b 150 \u3002 StopSign \u7c7b\u578b 206 \u3002 YieldSign \u7c7b\u578b 205 \u3002 MandatoryTurnDirection \u7c7b\u578b 209 \u3002 MandatoryLeftRightDirection \u7c7b\u578b 211 \u3002 TwoChoiceTurnDirection \u7c7b\u578b 214 \u3002 Roundabout \u7c7b\u578b 215 \u3002 PassRightLeft \u7c7b\u578b 222 \u3002 AccessForbidden \u7c7b\u578b 250 \u3002 AccessForbiddenMotorvehicles \u7c7b\u578b 251 \u3002 AccessForbiddenTrucks \u7c7b\u578b 253 \u3002 AccessForbiddenBicycle \u7c7b\u578b 254 \u3002 AccessForbiddenWeight \u7c7b\u578b 263 \u3002 AccessForbiddenWidth \u7c7b\u578b 264 \u3002 AccessForbiddenHeight \u7c7b\u578b 265 \u3002 AccessForbiddenWrongDirection \u7c7b\u578b 267 \u3002 ForbiddenUTurn \u7c7b\u578b 272 \u3002 MaximumSpeed \u7c7b\u578b 274 \u3002 ForbiddenOvertakingMotorvehicles \u7c7b\u578b 276 \u3002 ForbiddenOvertakingTrucks \u7c7b\u578b 277 \u3002 AbsoluteNoStop \u7c7b\u578b 283 \u3002 RestrictedStop \u7c7b\u578b 286 \u3002 HasWayNextIntersection \u7c7b\u578b 301 \u3002 PriorityWay \u7c7b\u578b 306 \u3002 PriorityWayEnd \u7c7b\u578b 307 \u3002 CityBegin \u7c7b\u578b 310 \u3002 CityEnd \u7c7b\u578b 311 \u3002 Highway \u7c7b\u578b 330 \u3002 DeadEnd \u7c7b\u578b 357 \u3002 RecomendedSpeed \u7c7b\u578b 380 \u3002 RecomendedSpeedEnd \u7c7b\u578b 381 \u3002 carla . LaneChange \u5b9a\u4e49 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u53cc\u8f6c \u6216 \u4e0d \u8f6c \u7684 \u6743\u9650 \u7684 \u7c7b \uff08 \u610f\u5473 \u610f\u5473\u7740 \u53ea \u5141\u8bb8 \u76f4\u884c \uff09 \u3002 \u6839\u636e OpenDRIVE \u6587\u4ef6 \u4e3a \u6bcf\u4e2a carla . Waypoint \u5b58\u50a8 \u6b64 \u4fe1\u606f \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u8def \u70b9\u6765 \u4e86\u89e3 \u5141\u8bb8 \u54ea\u4e9b \u8f6c\u5f2f \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u4e0d \u5141\u8bb8 \u53f3\u8f6c \u6216 \u5de6\u8f6c \uff0c \u53ea\u80fd \u76f4\u884c \u3002 Right \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5141\u8bb8 \u53f3\u8f6c \u3002 Left \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5141\u8bb8 \u5de6\u8f6c \u3002 Both \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u90fd \u5141\u8bb8 \u53f3\u8f6c \u6216 \u5de6\u8f6c \u3002 carla . LaneInvasionEvent \u4ece carla . SensorData \u7ee7\u627f \u4e3a sensor . other . lane _ invasion \u5b9a\u4e49 \u8f66\u9053 \u5165\u4fb5 \u7684 \u7c7b \u3002 \u5b83 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \uff0c \u5e76 \u4f9d\u8d56 OpenDRIVE \u6765 \u63d0\u4f9b \u53ef\u9760 \u7684 \u4fe1\u606f \u3002 \u6bcf\u6b21 \u53d1\u751f \u8f66\u9053 \u5165\u4fb5 \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u521b\u5efa \u4e00\u4e2a \u8fd9\u6837 \u7684 \u60c5\u51b5 \uff0c \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u53ef\u80fd \u4f1a \u53d1\u751f \u591a\u6b21 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf actor ( carla . Actor ) \u83b7\u53d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u8fde\u63a5 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5373 \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 crossed _ lane _ markings ( list ( carla . LaneMarking ) ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5df2 \u7a7f\u8fc7 \u5e76 \u68c0\u6d4b \u5230 \u7684 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . LaneMarking \u6839\u636e OpenDRIVE 1.4 \u6807\u51c6 \u6536\u96c6 \u6709\u5173 \u8f66\u9053 \u6807\u8bb0 \u7684 \u6240\u6709 \u4fe1\u606f \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf color ( carla . LaneMarkingColor ) \u6807\u8bb0 \u7684 \u5b9e\u9645 \u989c\u8272 \u3002 lane _ change ( carla . LaneChange ) \u8de8\u8d8a \u6240\u8ff0 \u8f66\u9053 \u6807\u8bb0 \u7684 \u6743\u9650 \u3002 type ( carla . LaneMarkingType ) \u8f66\u9053 \u6807\u8bb0 \u7c7b\u578b \u3002 width ( float ) \u6c34\u5e73 \u8f66\u9053 \u6807\u8bb0 \u539a\u5ea6 \u3002 carla . LaneMarkingColor \u6839\u636e OpenDRIVE 1.4 \u5b9a\u4e49 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf Standard \u9ed8\u8ba4 \u4e3a \u767d\u8272 \u3002 Blue Green Red White Yellow Other carla . LaneMarkingType \u5b9a\u4e49 OpenDRIVE 1.4 \u63a5\u53d7 \u7684 \u8f66\u9053 \u6807\u8bb0 \u7c7b\u578b \u7684 \u7c7b \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u70b9 \u6765 \u68c0\u7d22 \u6709\u5173 \u76f8\u90bb \u8f66\u9053 \u6807\u8bb0 \u7684 \u4fe1\u606f \u3002 \u5173\u4e8e \u53cc \u7cbe\u5ea6 \u7c7b\u578b \u7684 \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 \uff1a \u8f66\u9053 \u6807\u8bb0 \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \uff0c \u8be5 \u6807\u51c6 \u786e\u5b9a \u4e00\u6761 \u4e00\u6761\u7ebf \u5c06 \u88ab \u89c6\u4e3a \u201c BrokenSolid \u201d \u6216 \u201c SolidBroken \u201d \u3002 \u6bcf\u6761 \u9053\u8def \u90fd \u6709 \u4e00\u4e2a \u4e2d\u5fc3 \u8f66\u9053 \u6807\u8bb0 \uff0c \u6839\u636e \u8f66\u9053 \u65b9\u5411 \u4ece\u5de6\u5230\u53f3 \u5b9a\u4e49 \u3002 \u5176\u4f59 \u8f66\u9053 \u6807\u8bb0 \u6309 \u4ece \u4e2d\u5fc3 \u8f66\u9053 \u5230 \u6700\u8fd1 \u7684 \u9053\u8def \u5916\u4fa7 \u7684 \u987a\u5e8f \u5b9a\u4e49 \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE Other Broken Solid SolidSolid SolidBroken BrokenSolid BrokenBroken BottsDots Grass Curb carla . LaneType \u5b9a\u4e49 OpenDRIVE 1.4 \u63a5\u53d7 \u7684 \u53ef\u80fd \u901a\u9053 \u7c7b\u578b \u7684 \u7c7b \u3002 \u8be5 \u6807\u51c6 \u5b9a\u4e49 \u4e86 \u9053\u8def \u4fe1\u606f \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u5229\u7528 \u8def\u70b9 \u6765 \u83b7\u53d6 \u5f53\u524d \u548c \u76f8\u90bb \u8f66\u9053 \u7c7b\u578b \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE Driving Stop Shoulder Biking Sidewalk Border Restricted Parking Bidirectional Median Special1 Special2 Special3 RoadWorks Tram Rail Entry Exit OffRamp OnRamp Any \u9664 NONE \u4e4b\u5916 \u7684 \u6240\u6709 \u7c7b\u578b \u3002 carla . LidarDetection carla . LidarMeasurement \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u4ee3\u8868 \u4e91\u4e2d \u7684 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u53ca\u5176 \u4f4d\u7f6e \u548c \u76f8\u5173 \u5f3a\u5ea6 \u3002 \u5b9e\u4f8b \u53d8\u91cf point ( carla . Location - \u7c73 ) xyz \u5750\u6807 \u4e2d \u7684 \u70b9 \u3002 intensity ( float ) \u8ba1\u7b97 \u8be5\u70b9 \u7684 \u5f3a\u5ea6 \u4f5c\u4e3a [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . LidarMeasurement \u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u7531 sensor . lidar . ray _ cast \u68c0\u7d22 \u7684 LIDAR \u6570\u636e \u7684 \u7c7b \u3002 \u8fd9 \u672c\u8d28 \u4e0a \u662f \u4f7f\u7528 \u5149\u7ebf \u6295\u5c04 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf channels ( int ) \u53d1\u5c04 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 horizontal _ angle ( float - radians ) \u6d4b\u91cf \u65f6 LIDAR \u65cb\u8f6c \u7684 \u6c34\u5e73 \u89d2\u5ea6 \u3002 raw _ data ( bytes ) \u63a5\u6536 \u5230 \u7684 4D \u70b9 \u5217\u8868 \u3002 \u6bcf\u4e2a \u70b9 \u7531 [ x , y , z ] \u5750\u6807 \u52a0\u4e0a \u4e3a \u8be5\u70b9 \u8ba1\u7b97 \u7684 \u5f3a\u5ea6 \u7ec4\u6210 \u3002 \u65b9\u6cd5 save _ to _ disk ( self , path ) \u5c06 \u70b9\u4e91 \u4f5c\u4e3a \u63cf\u8ff0 \u6765\u81ea 3D \u626b\u63cf \u626b\u63cf\u4eea \u7684 \u6570\u636e \u7684 . ply \u6587\u4ef6 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u751f\u6210 \u7684 \u6587\u4ef6 \u53ef\u4ee5 \u5728 MeshLab \u4e2d \u4f7f\u7528 \uff0c MeshLab \u662f \u4e00\u4e2a \u7528\u4e8e \u5904\u7406 \u6240\u8ff0 \u6587\u4ef6 \u7684 \u5f00\u6e90 \u7cfb\u7edf \u3002 \u53ea \u9700 \u8003\u8651 \u5230 \u8be5 \u8f74 \u53ef\u80fd \u4e0e \u865a\u5e7b \u5f15\u64ce \u4e0d\u540c \uff0c \u56e0\u6b64 \u9700\u8981 \u91cd\u65b0 \u5206\u914d \u91cd\u65b0\u5206\u914d \u3002 \u53c2\u6570 \uff1a path ( str ) \u83b7\u53d6 \u5668 get _ point _ count ( self , channel ) \u68c0\u7d22 \u7531\u6b64 \u6d4b\u91cf \u751f\u6210 \u7684 \u6309 \u901a\u9053 \u6392\u5e8f \u7684 \u70b9\u6570 \u3002 \u6309 \u901a\u9053 \u6392\u5e8f \u53ef\u4ee5 \u8bc6\u522b \u6bcf\u4e2a \u70b9 \u7684 \u539f\u59cb \u901a\u9053 \u3002 \u53c2\u6570 \uff1a channel ( int ) \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 carla . LidarDetection \u83b7\u53d6 \u7684 \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . LidarDetection ) __ str __ ( self ) carla . Light \u6b64\u7c7b \u516c\u5f00 \u573a\u666f \u4e2d \u5b58\u5728 \u7684 \u706f\u5149 \uff08 \u8f66\u8f86 \u706f\u5149 \u9664\u5916 \uff09 \u3002 \u706f\u5149 \u7684 \u5c5e\u6027 \u53ef\u4ee5 \u968f\u610f \u67e5\u8be2 \u548c \u6539\u53d8 \u3002 \u5f53 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fdb\u5165 \u591c\u95f4 \u6a21\u5f0f \uff08 \u592a\u9633 \u9ad8\u5ea6 \u4f4e\u4e8e \u96f6 \uff09 \u65f6 \uff0c \u706f\u4f1a \u81ea\u52a8 \u6253\u5f00 \u3002 \u5b9e\u4f8b \u53d8\u91cf color ( carla . Color ) \u706f\u5149 \u7684 \u989c\u8272 \u3002 id ( int ) \u706f \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 intensity ( float - lumens ) \u5149 \u7684 \u5f3a\u5ea6 \u3002 is _ on ( bool ) \u706f \u7684 \u5f00\u5173 \u3002 \u5f53\u706f\u4eae \u65f6 \u8fd9 \u662f True \u3002 \u5f53 \u591c\u95f4 \u6a21\u5f0f \u542f\u52a8 \u65f6 \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a True \u3002 location ( carla . Location - \u7c73 ) \u706f\u5149 \u7684 \u4f4d\u7f6e \u3002 light _ group ( carla . LightGroup ) \u706f\u5149 \u6240\u5c5e \u7684 \u7ec4 \u3002 light _ state ( carla . LightState ) \u706f\u5149 \u7684 \u72b6\u6001 \u3002 \u603b\u7ed3 \u5176 \u5c5e\u6027 \u3001 \u7ec4 \u4ee5\u53ca \u662f\u5426 \u6253\u5f00 / \u5173\u95ed \u3002 \u65b9\u6cd5 turn _ off ( self ) \u5173\u95ed \u706f \u3002 turn _ on ( self ) \u6253\u5f00 \u706f \u3002 \u8bbe\u7f6e \u5668 set _ color ( self , color ) \u5c06 \u706f\u5149 \u7684 \u989c\u8272 \u66f4 \u6539\u4e3a color \u3002 \u53c2\u6570 \uff1a color ( carla . Color ) set _ intensity ( self , intensity ) \u5c06\u5149 \u7684 \u5f3a\u5ea6 \u66f4 \u6539\u4e3a intensity \u3002 \u53c2\u6570 \uff1a intensity ( float - lumens ) set _ light _ group ( self , light _ group ) \u5c06 \u706f\u5149 \u66f4 \u6539\u4e3a \u7ec4 light _ group \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) set _ light _ state ( self , light _ state ) \u5c06 \u706f\u5149 \u7684 \u72b6\u6001 \u66f4 \u6539\u4e3a light _ state \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u540c\u65f6 \u66f4\u6539 \u5c5e\u6027 \u3001 \u5206\u7ec4 \u4ee5\u53ca \u6253\u5f00 / \u5173\u95ed \u706f \u3002 \u53c2\u6570 \uff1a light _ state ( carla . LightState ) carla . LightGroup \u6b64\u7c7b \u5c06 \u573a\u666f \u4e2d \u7684 \u706f\u5149 \u5206\u4e3a \u4e0d\u540c \u7684 \u7ec4 \u3002 \u8fd9\u4e9b \u53ef\u7528 \u7ec4 \u4f5c\u4e3a \u53ef \u7528\u4f5c \u6807\u5fd7 \u7684 \u679a\u4e3e \u503c \u63d0\u4f9b \u3002 \u7b14\u8bb0 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u867d\u7136 \u6709 \u4e00\u4e2a vehicle \u7ec4 \uff0c \u4f46 \u8f66\u706f \u8fd8 \u4e0d\u80fd \u7528\u4f5c carla . Light \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u5fc5\u987b \u4f7f\u7528 carla . Vehicle \u548c carla . VehicleLightState \u8fdb\u884c \u7ba1\u7406 \u3002 \u5b9e\u4f8b \u53d8\u91cf None \u6240\u6709 \u706f \u3002 Vehicle Street Building Other carla . LightManager \u6b64\u7c7b \u5904\u7406 \u573a\u666f \u4e2d \u7684 \u706f\u5149 \u3002 \u5b83 \u7684 \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \u662f \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u83b7\u53d6 \u548c \u8bbe\u7f6e \u706f\u5149 \u7ec4 \u6216 \u706f\u5149 \u5217\u8868 \u7684 \u72b6\u6001 \u3002 \u6b64\u7c7b \u7684 \u5b9e\u4f8b \u53ef\u4ee5 \u901a\u8fc7 carla . World . get _ lightmanager ( ) \u68c0\u7d22 \u3002 \u7b14\u8bb0 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u867d\u7136 \u6709 \u4e00\u4e2a vehicle \u7ec4 \uff0c \u4f46 \u8f66\u706f \u8fd8 \u4e0d\u80fd \u7528\u4f5c carla . Light \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u5fc5\u987b \u4f7f\u7528 carla . Vehicle \u548c carla . VehicleLightState \u8fdb\u884c \u7ba1\u7406 \u3002 \u65b9\u6cd5 is _ active ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u5e03\u5c14 \u5e03\u5c14\u503c \uff0c \u8bf4\u660e \u5176\u4e2d \u7684 \u5143\u7d20 lights \u662f\u5426 \u6253\u5f00 / \u5173\u95ed \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( bool ) turn _ off ( self , lights ) \u5173\u95ed lights \u4e2d \u7684 \u6240\u6709 \u706f \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u5173\u95ed \u7684 \u706f \u5217\u8868 \u3002 turn _ on ( self , lights ) \u6253\u5f00 lights \u4e2d \u7684 \u6240\u6709 \u706f \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u6253\u5f00 \u7684 \u706f \u5217\u8868 \u3002 \u83b7\u53d6 \u5668 get _ all _ lights ( self , light _ group = carla . LightGroup . None ) \u8fd4\u56de \u5305\u542b \u7279\u5b9a \u7ec4\u4e2d \u7684 \u706f\u5149 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u7ec4 \u662f None \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) - \u7528\u4e8e \u8fc7\u6ee4 \u8fd4\u56de \u7684 \u706f\u5149 \u7684 \u7ec4 \u3002 \u9ed8\u8ba4 \u4e3a None \u3002 \u8fd4\u56de \uff1a list ( carla . Light ) get _ color ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u989c\u8272 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( carla . Color ) \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ color get _ intensity ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5f3a\u5ea6 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( float ) - lumens \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ intensity get _ light _ group ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u7ec4 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( carla . LightGroup ) \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ light _ group get _ light _ state ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u6240\u6709 \u5c5e\u6027 \u7684 \u72b6\u6001 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 * * \u8fd4\u56de \uff1a * * list ( carla . LightState ) \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ light _ state get _ turned _ off _ lights ( self , light _ group ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u573a\u666f \u4e2d \u5173\u95ed \u7684 \u706f\u5149 \uff08 \u6309\u7ec4 \u8fc7\u6ee4 \uff09 \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( carla . Light ) get _ turned _ on _ lights ( self , light _ group ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u573a\u666f \u4e2d \u6253\u5f00 \u7684 \u706f\u5149 \uff08 \u6309\u7ec4 \u8fc7\u6ee4 \uff09 \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) - List of lights to be queried . \u8fd4\u56de \uff1a list ( carla . Light ) \u8bbe\u7f6e \u5668 set _ active ( self , lights , active ) \u6253\u5f00 / \u5173\u95ed lights \u4e2d \u7684 \u5143\u7d20 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u6253\u5f00 / \u5173\u95ed \u7684 \u706f \u5217\u8868 \u3002 active ( list ( bool ) ) - \u8981 \u5e94\u7528 \u7684 \u5e03\u5c14 \u5e03\u5c14\u503c \u5217\u8868 \u3002 set _ color ( self , lights , color ) lights \u5230 color \u4e2d \u5143\u7d20 \u7684 \u989c\u8272 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 color ( carla . Color ) - \u8981 \u5e94\u7528 \u7684 \u989c\u8272 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ color set _ colors ( self , lights , colors ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u989c\u8272 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 colors \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 colors ( list ( carla . Color ) ) - \u8981 \u5e94\u7528 \u7684 \u989c\u8272 \u5217\u8868 \u3002 set _ day _ night _ cycle ( self , active ) \u6240\u6709 \u573a\u666f \u706f \u90fd \u6709 \u663c\u591c \u5faa\u73af \uff0c \u968f\u7740 \u592a\u9633 \u7684 \u9ad8\u5ea6 \u81ea\u52a8 \u6253\u5f00 \u548c \u5173\u95ed \u3002 \u8fd9\u4f1a \u5e72\u6270 \u9700\u8981 \u5b8c\u5168 \u63a7\u5236 \u573a\u666f \u706f\u5149 \u7684 \u60c5\u51b5 \uff0c \u56e0\u6b64 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a False \u4f1a \u505c\u7528 \u5b83 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a True \u6765 \u91cd\u65b0 \u6fc0\u6d3b \u5b83 \u3002 \u53c2\u6570 \uff1a active ( bool ) - ( \u53d6\u6d88 ) \u6fc0\u6d3b \u663c\u591c \u5faa\u73af \u3002 set _ intensities ( self , lights , intensities ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5f3a\u5ea6 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 intensities \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 intensities ( list ( float ) - lumens ) - \u8981 \u5e94\u7528 \u7684 \u5f3a\u5ea6 \u5217\u8868 \u3002 set _ intensity ( self , lights , intensity ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5f3a\u5ea6 \u6539\u4e3a intensity \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 intensity ( float - lumens ) - \u8981 \u5e94\u7528 \u7684 \u5f3a\u5ea6 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ intensity set _ light _ group ( self , lights , light _ group ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u7ec4 \u66f4 \u6539\u4e3a light _ group \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ group ( carla . LightGroup ) - \u8981 \u5e94\u7528 \u7684 \u7ec4 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ light _ group set _ light _ groups ( self , lights , light _ groups ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u7ec4 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 light _ groups \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ groups ( list ( carla . LightGroup ) ) - \u8981 \u5e94\u7528 \u7684 \u7ec4 \u5217\u8868 \u3002 set _ light _ state ( self , lights , light _ state ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5c5e\u6027 \u72b6\u6001 \u6539\u4e3a light _ state \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ state ( carla . LightState ) - \u8981 \u5e94\u7528 \u7684 \u5c5e\u6027 \u7684 \u72b6\u6001 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ light _ state set _ light _ states ( self , lights , light _ states ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5c5e\u6027 \u72b6\u6001 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 light _ states \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ states ( list ( carla . LightState ) ) - \u8981 \u5e94\u7528 \u7684 \u5c5e\u6027 \u7684 \u72b6\u6001 \u5217\u8868 \u3002 carla . LightState \u8fd9\u4e2a \u7c7b \u4ee3\u8868 \u9664\u4e86 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u4f4d\u7f6e \u4e4b\u5916 \u7684 \u6240\u6709 \u706f\u5149 \u53d8\u91cf \uff0c \u5b83\u4eec \u5e94\u8be5 \u662f \u9759\u6001 \u7684 \u3002 \u4f7f\u7528 \u6b64\u7c7b \u53ef\u4ee5 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u7ba1\u7406 \u706f\u5149 \u7684 \u6240\u6709 \u53c2\u6570 \u5316 \u3002 \u5b9e\u4f8b \u53d8\u91cf intensity ( float - lumens ) \u5149 \u7684 \u5f3a\u5ea6 \u3002 color ( carla . Color ) \u706f\u5149 \u7684 \u989c\u8272 \u3002 group ( carla . LightGroup ) \u706f\u5149 \u6240\u5c5e \u7684 \u7ec4 \u3002 active ( bool ) \u706f \u7684 \u5f00\u5173 \u3002 \u5f53\u706f\u4eae \u65f6 \u4e3a True \u3002 \u65b9\u6cd5 __ init __ ( self , intensity = 0.0 , color = carla . Color ( ) , group = carla . LightGroup . None , active = False ) \u53c2\u6570 \uff1a intensity ( float - lumens ) - \u5149 \u7684 \u5f3a\u5ea6 \u3002 \u9ed8\u8ba4 \u4e3a 0.0 \u3002 color ( carla . Color ) - \u5149 \u7684 \u989c\u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 group ( carla . LightGroup ) - \u706f\u5149 \u6240\u5c5e \u7684 \u7ec4 \u3002 \u9ed8\u8ba4 \u4e3a \u901a\u7528 \u7ec4 None \u3002 active ( bool ) - \u706f\u5149 \u5f00\u5173 \u3002 \u9ed8\u8ba4 \u4e3a False \uff0c \u706f \u5173\u95ed \u3002 carla . Location \u4ece carla . Vector3D \u7ee7\u627f \u4ee3\u8868 \u4e16\u754c \u4e0a \u7684 \u4e00\u4e2a \u5730\u65b9 \u3002 \u5b9e\u4f8b \u53d8\u91cf x ( float - \u7c73 ) X \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 y ( float - \u7c73 ) Y \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 z ( float - \u7c73 ) Z \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 \u65b9\u6cd5 __ init __ ( self , x = 0.0 , y = 0.0 , z = 0.0 ) \u53c2\u6570 \uff1a x ( float ) y ( float ) z ( float ) distance ( self , location ) \u8fd4\u56de \u4ece \u8be5 \u4f4d\u7f6e \u5230 \u53e6 \u4e00 \u4f4d\u7f6e \u7684 \u6b27\u51e0 \u51e0\u91cc \u6b27\u51e0\u91cc\u5f97 \u8ddd\u79bb \u3002 \u53c2\u6570 \uff1a location ( carla . Location ) - \u7528\u4e8e \u8ba1\u7b97 \u8ddd\u79bb \u7684 \u53e6 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u8fd4\u56de \uff1a float - \u7c73 \u9b54\u672f \u65b9\u6cd5 __ abs __ ( self ) \u8fd4\u56de \u5177\u6709 x \u3001 y \u548c z \u5206\u91cf \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u4f4d\u7f6e \u3002 \u8fd4\u56de \uff1a carla . Location __ eq __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u540c \u4e00\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u4e0d\u540c \u540c\u70b9 \u4e0d\u540c\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8f74 \u7684 \u503c \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str carla . Map \u5305\u542b \u9053\u8def \u4fe1\u606f \u548c \u822a\u70b9 \u7ba1\u7406 \u7684 \u7c7b \u3002 \u4ece \u63cf\u8ff0 \u9053\u8def \u7684 OpenDRIVE \u6587\u4ef6 \u4e2d \u68c0\u7d22 \u6570\u636e \u3002 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u67e5\u8be2 \u7cfb\u7edf \uff0c \u5b83 \u4e0e carla . Waypoint \u643a\u624b \u5408\u4f5c \uff0c \u5c06 \u51e0\u4f55 \u4fe1\u606f \u4ece . xodr \u8f6c\u6362 \u4e3a \u81ea\u7136 \u4e16\u754c \u70b9 \u3002 Carla \u76ee\u524d \u6b63\u5728 \u4f7f\u7528 OpenDRIVE 1.4 \u6807\u51c6 \u3002 \u5b9e\u4f8b \u53d8\u91cf name ( str ) \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u5b83 \u5bf9\u5e94 \u4e8e \u4ece Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u52a0\u8f7d \u7684 \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 . umap \uff0c \u7136\u540e \u5f15\u7528 . xodr \u9053\u8def \u63cf\u8ff0 \u3002 \u65b9\u6cd5 __ init __ ( self , name , xodr _ content ) \u6b64\u7c7b \u7684 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u3002 \u5c3d\u7ba1 \u5728 \u521d\u59cb \u521d\u59cb\u5316 \u4e16\u754c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u5730\u56fe \uff0c \u4f46 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5728 \u4e0d \u8fd0\u884c \u4efb\u4f55 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u60c5\u51b5 \u4e0b \u4f7f\u7528 . xodr \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5f53\u524d \u5730\u56fe \u7684 \u540d\u79f0 \u3002 xodr _ content ( str ) - \u5b57\u7b26 \u5b57\u7b26\u4e32 \u683c\u5f0f \u7684 . xodr \u5185\u5bb9 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) cook _ in _ memory _ map ( self , path ) \u4ece Carla \u6620\u5c04 \u751f\u6210 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4f7f\u7528 \u7684 \u4fe1\u606f \u3002 \u6b64 \u65b9\u6cd5 \u4ec5 \u5728 \u5730\u56fe \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f7f\u7528 \u3002 \u53c2\u6570 \uff1a path ( str ) - \u5b58\u50a8 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6620\u5c04 \u6587\u4ef6 \u7684 \u9884\u671f \u4f4d\u7f6e \u7684 \u8def\u5f84 \u3002 generate _ waypoints ( self , distance ) \u8fd4\u56de \u4e00\u4e2a \u8def\u70b9 \u5217\u8868 \uff0c \u6bcf\u4e2a \u8f66\u9053 \u7684 \u8def\u70b9 \u4e4b\u95f4 \u90fd \u6709 \u4e00\u5b9a \u7684 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u5176 \u4e3a \u4e2d\u5fc3 \u3002 \u8def\u70b9 \u4e0d \u6309 \u4efb\u4f55 \u7279\u5b9a \u987a\u5e8f \u5217\u51fa \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u540c\u4e00 \u9053\u8def \u3001 \u8def\u6bb5 \u548c \u8f66\u9053 \u5185 \u8ddd\u79bb \u8d85\u8fc7 2 \u5398\u7c73 \u7684 \u8def \u70b9\u5c06 \u5177\u6709 \u76f8\u540c \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u53c2\u6570 \uff1a distance ( float - \u7c73 ) - \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u8fd1\u4f3c \u8ddd\u79bb \u3002 \u8fd4\u56de \uff1a list ( carla . Waypoint ) save _ to _ disk ( self , path ) \u5c06 \u5f53\u524d \u6620\u5c04 \u7684 . xodr OpenDRIVE \u6587\u4ef6 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u53c2\u6570 \uff1a path - \u4fdd\u5b58 \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 to _ opendrive ( self ) \u4ee5 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \u8fd4\u56de \u5f53\u524d \u5730\u56fe \u7684 . xodr OpenDRIVe \u6587\u4ef6 \u3002 \u8fd4\u56de \uff1a str transform _ to _ geolocation ( self , location ) \u5c06 \u4eff\u771f \u4e2d \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u7684 \u7ed9\u5b9a \u4f4d\u7f6e location \u8f6c\u6362 \u4e3a carla . GeoLocation \uff0c \u4ed6 \u8868\u793a \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u5730\u56fe \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u5728 OpenDRIVE \u6807\u7b7e \u5185 \u5b9a\u4e49 \u3002 \u53c2\u6570 \uff1a location ( carla . Location ) \u8fd4\u56de \uff1a carla . GeoLocation \u83b7\u53d6 \u5668 get _ all _ landmarks ( self ) \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u5230 \u7684 \u5730\u6807 \u6709 \u4e00\u4e2a null \u822a\u8def \u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ from _ id ( self , opendrive _ id ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a OpenDRIVE ID \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a opendrive _ id ( string ) - \u5730 \u6807\u7684 OpenDRIVE ID \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ of _ type ( self , type ) \u8fd4\u56de \u7279\u5b9a \u7c7b\u578b \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a type ( string ) - \u5730 \u6807\u7684 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ crosswalks ( self ) \u4ee5 \u95ed\u5408 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u5f62\u5f0f \u8fd4\u56de \u5305\u542b \u6240\u6709 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u533a\u57df \u7684 \u4f4d\u7f6e \u5217\u8868 \u3002 \u91cd\u590d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u70b9 \uff0c \u8868\u793a \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ landmark _ group ( self , landmark ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u5730\u6807 \uff08 \u5305\u62ec \u5176 \u81ea\u8eab \uff09 \u4f4d\u4e8e \u540c \u4e00\u7ec4 \u4e2d \u7684 \u5730\u6807 \u3002 \u5982\u679c \u5730\u6807 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u7ec4 \uff0c \u5219 \u8fd4\u56de \u7a7a \u5217\u8868 \u3002 \u53c2\u6570 \uff1a landmark ( carla . Landmark ) - \u5c5e\u4e8e \u8be5\u7ec4 \u7684 \u5730\u6807 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ spawn _ points ( self ) \u8fd4\u56de \u5730\u56fe \u521b\u5efa \u521b\u5efa\u8005 \u63d0\u51fa \u7684 \u5efa\u8bae \u5217\u8868 \uff0c \u4ee5 \u7528\u4f5c \u8f66\u8f86 \u7684 \u751f\u6210 \u70b9 \u3002 \u8be5 \u5217\u8868 \u5305\u62ec \u5177\u6709 \u7279\u5b9a \u4f4d\u7f6e \u548c \u65b9\u5411 \u7684 carla . Transform \u5bf9\u8c61 \u3002 \u4e3a\u4e86 \u907f\u514d Z \u578b \u78b0\u649e \uff0c \u4e0a\u8ff0 \u5730\u70b9 \u4f1a \u7a0d\u5fae \u5728 \u7a7a\u4e2d \uff0c \u56e0\u6b64 \u8f66\u8f86 \u5728 \u51fa\u53d1 \u524d\u4f1a \u7a0d\u5fae \u4e0b\u5760 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) get _ topology ( self ) \u8fd4\u56de \u63cf\u8ff0 OpenDRIVE \u6587\u4ef6 \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \u7684 \u5143\u7ec4 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5143\u7ec4 \u5305\u542b \u4f4d\u4e8e \u9053\u8def \u8d77\u70b9 \u6216 \u7ec8\u70b9 \u7684 \u6210 \u5bf9 \u8def\u70b9 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u8d77\u70b9 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u4ee3\u8868 \u53e6 \u4e00\u4e2a \u53ef\u4ee5 \u5230\u8fbe \u7684 \u8def \u7ec8\u70b9 \u3002 \u8be5\u56fe \u53ef\u4ee5 \u52a0\u8f7d \u5230 NetworkX \u4e2d \u8fdb\u884c \u4f7f\u7528 \u3002 \u8f93\u51fa \u53ef\u80fd \u5982\u4e0b \u6240\u793a \uff1a [ ( w0 , w1 ) , ( w0 , w2 ) , ( w1 , w3 ) , ( w2 , w3 ) , ( w0 , w4 ) ] \u3002 \u8fd4\u56de \uff1a list ( tuple ( carla . Waypoint , carla . Waypoint ) ) get _ waypoint ( self , location , project _ to _ road = True , lane _ type = carla . LaneType . Driving ) snippet \u2192 \u8fd4\u56de \u53ef\u4ee5 \u4f4d\u4e8e \u7cbe\u786e \u4f4d\u7f6e \u6216 \u8f6c\u6362 \u5230 \u6700\u8fd1 \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u822a\u8def \u70b9 \u3002 \u6240\u8ff0 \u8f66\u9053 \u7c7b\u578b \u53ef\u4ee5 \u4f7f\u7528 \u8bf8\u5982 LaneType . Driving & LaneType . Shoulder \u7684 \u6807\u5fd7 \u6765 \u5b9a\u4e49 \u3002 \u5982\u679c \u627e\u5230 \u672a\u627e\u5230 \u822a\u8def \u70b9 \uff0c \u8be5 \u65b9\u6cd5 \u5c06 \u8fd4\u56de None \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4ec5 \u5728 \u5c1d\u8bd5 \u68c0\u7d22 \u786e\u5207 \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9\u65f6 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8fd9 \u53ef\u4ee5 \u8f7b\u677e \u68c0\u67e5 \u67d0\u4e2a \u70b9 \u662f\u5426 \u5728 \u67d0\u6761 \u9053\u8def \u5185 \uff0c \u5426\u5219 \uff0c \u5b83 \u5c06 \u8fd4\u56de \u76f8\u5e94 \u7684 \u8def\u5f84 \u70b9 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u7528\u4f5c carla . Waypoint \u53c2\u8003 \u7684 \u4efb\u52a1 \u3002 project _ to _ road ( bool ) - \u5982\u679c \u662f True \uff0c \u8def\u5f84 \u70b9\u5c06 \u4f4d\u4e8e \u6700\u8fd1 \u8f66\u9053 \u7684 \u4e2d\u5fc3 \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u5982\u679c \u4e3a False \uff0c \u8def\u5f84 \u70b9\u5c06 \u6070\u597d \u4f4d\u4e8e location \u3002 None \u8868\u793a \u8be5 \u4f4d\u7f6e \u4e0d \u5c5e\u4e8e \u9053\u8def \u3002 lane _ type ( carla . LaneType ) - \u5c06 \u5bf9 \u6700\u8fd1 \u8f66\u9053 \u7684 \u641c\u7d22 \u9650\u5236 \u4e3a \u53ef\u4ee5 \u6807\u8bb0 \u7684 \u4e00\u79cd \u6216 \u591a\u79cd \u8f66\u9053 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a carla . Waypoint get _ waypoint _ xodr ( self , road _ id , lane _ id , s ) \u5982\u679c \u4f20\u9012 \u7684 \u6240\u6709 \u53c2\u6570 \u90fd \u6b63\u786e \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5426\u5219 \uff0c \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a road _ id ( int ) - \u83b7\u53d6 \u8def\u70b9 \u7684 \u9053\u8def id \u3002 lane _ id ( int ) - \u83b7\u53d6 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 id \u3002 s ( float - \u7c73 ) - \u6307\u5b9a \u4ece \u9053\u8def \u8d77\u70b9 \u5f00\u59cb \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Waypoint \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . MapLayer \u8868\u793a \u5730\u56fe \u7684 \u6bcf\u4e2a \u53ef \u7ba1\u7406 \u7ba1\u7406\u5c42 \u7684 \u7c7b \u3002 \u53ef\u4ee5 \u7528\u4f5c \u6807\u5fd7 \u3002 \u8b66\u544a \uff1a \u53ea\u6709 \u201c Opt \u201d \u5730\u56fe \u624d\u80fd \u4f7f\u7528 \u5730\u56fe \u56fe\u5c42 \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE \u672a \u9009\u62e9 \u4efb\u4f55 \u56fe\u5c42 \u3002 Buildings Decals Foliage Ground ParkedVehicles Particles Props StreetLights Walls All \u9009\u5b9a \u6240\u6709 \u56fe\u5c42 \u3002 carla . MaterialParameter \u8868\u793a \u6750\u6599 \u53c2\u6570 \u7684 \u7c7b \u3002 \u5e76\u975e \u573a\u666f \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u90fd \u5305\u542b \u6240\u6709 \u53c2\u6570 \u3002 \u5b9e\u4f8b \u53d8\u91cf Normal \u5bf9\u8c61 \u7684 \u6cd5\u7ebf \u8d34\u56fe \u3002 \u5b58\u5728 \u4e8e \u4e00\u5207 \u7269\u4f53 \u4e2d \u3002 Diffuse \u7269\u4f53 \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7eb9\u7406 \u3002 \u5b58\u5728 \u4e8e \u4e00\u5207 \u7269\u4f53 \u4e2d \u3002 AO _ Roughness _ Metallic _ Emissive \u6bcf\u4e2a \u989c\u8272 \u901a\u9053 \u4ee3\u8868 \u6750\u8d28 \u5c5e\u6027 \u7684 \u7eb9\u7406 \uff08 R \uff1a \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \uff0c G \uff1a \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff0c B \uff1a \u91d1\u5c5e \uff0c A \uff1a \u67d0\u4e9b \u7269\u4f53 \u4e2d \u7684 \u53d1\u5c04 / \u9ad8\u5ea6 \u8d34\u56fe \uff09 \u3002 Emissive \u53d1\u5c04 \u7eb9\u7406 \u3002 \u5b58\u5728 \u4e8e \u4e00\u4e9b \u7269\u4f53 \u4e2d \u3002 carla . ObstacleDetectionEvent \u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 sensor . other . obstacle \u969c\u788d \u969c\u788d\u7269 \u6570\u636e \u7684 \u7c7b \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf actor ( carla . Actor ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u8fde\u63a5 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 other _ actor ( carla . Actor ) \u88ab \u89c6\u4e3a \u969c\u788d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u7269\u4f53 \u3002 distance ( float - \u7c73 ) \u53c2\u4e0e \u53c2\u4e0e\u8005 actor \u548c \u5176\u4ed6 \u4ed6\u4eba \u5176\u4ed6\u4eba other \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . OpendriveGenerationParameters \u6b64\u7c7b \u5b9a\u4e49 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u751f\u6210 \u4e16\u754c \u65f6 \u4f7f\u7528 \u7684 \u53c2\u6570 \u3002 \u5b9e\u4f8b \u53d8\u91cf vertex _ distance ( float ) \u751f\u6210 \u7684 \u7f51\u683c \u9876\u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2.0 \u3002 max _ road _ length ( float ) \u5355\u4e2a \u7f51\u683c \u90e8\u5206 \u7684 \u6700\u5927 \u9053\u8def \u957f\u5ea6 \u3002 \u5730\u56fe \u7684 \u7f51\u683c \u88ab \u5206\u4e3a \u591a\u4e2a \u90e8\u5206 \uff0c \u4ee5 \u907f\u514d \u4f20\u64ad \u95ee\u9898 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 50.0 \u3002 wall _ height ( float ) \u5728 \u9053\u8def \u8fb9\u754c \u4e0a \u521b\u5efa \u7684 \u5899\u58c1 \u7684 \u9ad8\u5ea6 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u4ece \u9053\u8def \u4e0a \u4e0b\u6765 \u6389\u4e0b\u6765 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 1.0 \u3002 additional _ width ( float ) \u53e6\u5916 \u8fd8\u6709 \u5e94\u7528 \u7684 \u8fde\u63a5 \u8f66\u9053 \u3002 \u590d\u6742 \u7684 \u60c5\u51b5 \u5f80\u5f80 \u53d1\u751f \u5728 \u8def\u53e3 \uff0c \u7a0d\u5fae \u589e\u52a0 \u4e00\u70b9 \u5c31 \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u5760\u843d \u8def\u9762 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.6 \u3002 smooth _ junctions ( bool ) \u5982\u679c \u4e3a True \uff0c \u4ea4\u53c9 \u4ea4\u53c9\u70b9 \u5904 \u7684 \u7f51\u683c \u5c06 \u88ab \u5e73\u6ed1 \uff0c \u4ee5 \u9632\u6b62 \u9053\u8def \u963b\u585e \u5176\u4ed6 \u9053\u8def \u7684 \u95ee\u9898 \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 enable _ mesh _ visibility ( bool ) \u5982\u679c \u4e3a True \uff0c \u5c06 \u6e32\u67d3 \u9053\u8def \u7f51\u683c \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a False \u5e94\u8be5 \u4f1a \u51cf\u5c11 \u6e32\u67d3 \u5f00\u9500 \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 enable _ pedestrian _ navigation ( bool ) \u5982\u679c \u4e3a True \uff0c \u5c06 \u4f7f\u7528 Recast \u5de5\u5177 \u542f\u7528 \u884c\u4eba \u5bfc\u822a \u3002 \u5bf9\u4e8e \u975e\u5e38 \u5927 \u7684 \u5730\u56fe \uff0c \u5efa\u8bae \u7981\u7528 \u6b64 \u9009\u9879 \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 carla . OpticalFlowImage \u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u8868\u793a \u89c6\u573a \u4e2d \u68c0\u6d4b \u5230 \u7684 \u5149\u6d41 \u7684 \u4e8c\u7ef4 \u6d6e\u70b9 \uff08 32 \u4f4d \uff09 \u5411\u91cf \u7684 \u5149\u6d41 \u56fe\u50cf \u7684 \u7c7b \u3002 \u77e2\u91cf \u7684 \u5206\u91cf \u8868\u793a \u7269\u4f53 \u5728 \u56fe\u50cf \u5e73\u9762 \u4e2d \u7684 \u4f4d\u79fb \u3002 \u6bcf\u4e2a \u7ec4\u4ef6 \u8f93\u51fa \u5f52\u4e00\u5316 \u8303\u56f4 [ - 2 , 2 ] \u5185 \u7684 \u503c \uff0c \u8be5 \u8303\u56f4 \u7f29\u653e \u4e3a [ - 2 size \uff0c 2 size ] \uff0c \u5927\u5c0f \u662f \u76f8\u5e94 \u7ec4\u4ef6 \u4e2d \u7684 \u603b \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u3002 \u5b9e\u4f8b \u53d8\u91cf fov ( float - \u5ea6 ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( bytes ) \u5c55\u5e73 \u50cf\u7d20 \u6570\u636e \u6570\u7ec4 \uff0c \u4f7f\u7528 reshape \u521b\u5efa \u56fe\u50cf \u6570\u7ec4 \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ color _ coded _ flow ( self ) \u53ef\u89c6 \u53ef\u89c6\u5316 \u52a9\u624b \u3002 \u5c06 \u5149\u6d41 \u56fe\u50cf \u8f6c\u6362 \u4e3a RGB \u56fe\u50cf \u3002 \u8fd4\u56de \uff1a carla . Image \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) \u8fed\u4ee3 \u5f62\u6210 \u56fe\u50cf \u7684 carla . OpticalFlowPixel \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self ) carla . OpticalFlowPixel \u5b9a\u4e49 \u8868\u793a \u5149\u6d41 \u50cf\u7d20 \u7684 \u4e8c\u7ef4 \u5411\u91cf \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf x ( float ) x \u5206\u91cf \u4e2d \u7684 \u5149\u6d41 \u3002 y ( float ) y \u5206\u91cf \u4e2d \u7684 \u5149\u6d41 \u3002 \u65b9\u6cd5 __ init __ ( self , x = 0 , y = 0 ) \u521d\u59cb \u521d\u59cb\u5316 \u5149\u6d41 \u50cf\u7d20 \u3002 \u9ed8\u8ba4 \u4e3a \u96f6 \u3002 \u53c2\u6570 \uff1a x ( float ) y ( float ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . OpticalFlowPixel ) __ ne __ ( self , other = carla . OpticalFlowPixel ) __ str __ ( self ) carla . Osm2Odr \u5c06 OpenStreetMap \u5730\u56fe \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u7684 \u7c7b \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u4e2d \u52a0\u8f7d \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u65b9\u6cd5 convert ( osm _ file , settings ) \u83b7\u53d6 . osm \u6587\u4ef6 \uff08 OpenStreetMap \u683c\u5f0f \uff09 \u7684 \u5185\u5bb9 \u5e76 \u8fd4\u56de \u63cf\u8ff0 \u6240\u8ff0 \u5730\u56fe \u7684 . xodr \uff08 OpenDRIVE \u683c\u5f0f \uff09 \u7684 \u5185\u5bb9 \u3002 \u4f20\u9012 \u4e00\u4e9b \u53c2\u6570 \u5316\u6765 \u8fdb\u884c \u8f6c\u6362 \u3002 \u53c2\u6570 \uff1a osm _ file ( str ) - \u8f93\u5165 OpenStreetMap \u6587\u4ef6 \u7684 \u5185\u5bb9 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 settings ( carla . OSM2ODRSettings ) - \u8f6c\u6362 \u7684 \u53c2\u6570 \u5316 \u3002 \u8fd4\u56de \uff1a str carla . Osm2OdrSettings \u5305\u542b carla . Osm2Odr \u5c06 \u4f7f\u7528 \u7684 \u53c2\u6570 \u5316 \u7684 \u5e2e\u52a9 \u7a0b\u5e8f \u7c7b \uff0c \u7528\u4e8e \u5c06 OpenStreetMap \u5730\u56fe \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf use _ offsets ( bool ) \u5141\u8bb8 \u4f7f\u7528 \u504f\u79fb \u504f\u79fb\u91cf \u8fdb\u884c \u8f6c\u6362 \u3002 \u504f\u79fb \u504f\u79fb\u91cf \u5c06 \u79fb\u52a8 \u5730\u56fe \u7684 \u539f\u70b9 \u4f4d\u7f6e \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a False \u3002 offset _ x ( float - \u7c73 ) X \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 offset _ y ( float - \u7c73 ) Y \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 default _ lane _ width ( float - \u7c73 ) \u751f\u6210 \u7684 XODR \u5730\u56fe \u4e2d \u63cf\u8ff0 \u7684 \u8f66\u9053 \u5bbd\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 4.0 \u3002 elevation _ layer _ height ( float - \u7c73 ) \u5b9a\u4e49 \u5206\u9694 \u4e24\u4e2a \u4e0d\u540c OpenStreetMap \u56fe\u5c42 \u7684 \u9ad8\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 center _ map ( bool ) \u542f\u7528 \u6b64 \u9009\u9879 \u540e \uff0c \u5730\u56fe \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u5c06 \u53d1\u751f \u4f4d\u79fb \uff0c \u4ee5 \u4f7f \u5750\u6807 \u539f\u70b9 \u4e0e \u6574\u4e2a \u9053\u8def \u5730\u56fe \u7684 \u8fb9\u754c \u6846 \u4e2d\u5fc3 \u5339\u914d \u76f8\u5339\u914d \u3002 proj _ string ( str ) \u5b9a\u4e49 \u5c06 \u7528\u4e8e \u8ba1\u7b97 \u4ece \u5730\u7406 \u5750\u6807 \u5730\u7406\u5750\u6807 \u5230 \u5361\u5c14 \u7b1b\u5361\u5c14 \u5750\u6807 \u7684 \u6295\u5f71 \u7684 proj4 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8be5 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5c06 \u5199\u5165 \u751f\u6210 \u7684 OpenDRIVE \u4e2d \uff0c \u9664\u975e \u542f\u7528 \u4e86 use _ offsets \u6216 center _ map \u9009\u9879 \uff0c \u56e0\u4e3a \u8fd9\u4e9b \u9009\u9879 \u4f1a \u8986\u76d6 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u4e2d \u7684 \u67d0\u4e9b \u5b9a\u4e49 \u3002 generate _ traffic _ lights ( bool ) \u6307\u793a \u662f\u5426 \u5728 OpenDRIVE \u4e2d \u751f\u6210 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6570\u636e \u3002 set _ traffic _ light _ excluded _ way _ types ( way _ types ) \u5b9a\u4e49 \u7684 \u9053\u8def \u7c7b\u578b \u4e0d\u4f1a \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 all _ junctions _ with _ traffic _ lights ( bool ) \u7981\u7528 \u65f6 \uff0c \u8f6c\u6362 \u8f6c\u6362\u5668 \u5c06 \u4ec5 \u4ece OpenStreetMaps \u6570\u636e \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u3002 \u542f\u7528 \u540e \uff0c \u6240\u6709 \u8def\u53e3 \u90fd \u4f1a \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u65b9\u6cd5 \u8bbe\u7f6e \u5668 set _ osm _ way _ types ( self , way _ types ) \u5b9a\u4e49 \u5c06 \u5bfc\u5165 \u5bfc\u5165\u5230 OpenDRIVE \u7684 OpenStreetMaps \u9053\u8def \u7c7b\u578b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5bfc\u5165 \u7684 \u9053\u8def \u7c7b\u578b \u4e3a motorway , motorway _ link , trunk , trunk _ link , primary , primary _ link , secondary , secondary _ link , tertiary , tertiary _ link , unclassified , residential \u3002 \u6709\u5173 \u9053\u8def \u7c7b\u578b \u7684 \u5b8c\u6574 \u5217\u8868 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u53c2\u6570 \uff1a way _ types ( list ( str ) ) - \u9053\u8def \u7c7b\u578b \u5217\u8868 \u3002 set _ traffic _ light _ excluded _ way _ types ( self , way _ types ) \u5b9a\u4e49 \u5373\u4f7f \u542f\u7528 generate _ traffic _ lights \u4e5f \u4e0d\u4f1a \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 OpenStreetMaps \u9053\u8def \u7c7b\u578b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6392\u9664 \u7684 \u9053\u8def \u7c7b\u578b \u4e3a motorway _ link , primary _ link , secondary _ link , tertiary _ link \u3002 \u53c2\u6570 \uff1a way _ types ( list ( str ) ) - \u9053\u8def \u7c7b\u578b \u5217\u8868 \u3002 carla . RadarDetection carla . RadarMeasurement \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u4ee3\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 . sensor . other . radar \u8bb0\u5f55 \u7684 \u4e91\u4e2d \u7684 \u70b9 \u4e4b\u4e00 \uff0c \u5e76 \u5305\u542b \u4e0e \u96f7\u8fbe \u76f8\u5173 \u7684 \u8ddd\u79bb \u3001 \u89d2\u5ea6 \u548c \u901f\u5ea6 \u3002 \u5b9e\u4f8b \u53d8\u91cf altitude ( float - radians ) Altitude angle of the detection . azimuth ( float - radians ) Azimuth angle of the detection . depth ( float - \u7c73 ) Distance from the sensor to the detection position . velocity ( float - m / s ) The velocity of the detected object towards the sensor . \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . RadarMeasurement \u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u5e76 \u6536\u96c6 \u7531 sensor . other . radar \u6ce8\u518c \u7684 \u6d4b\u91cf \u503c \u7684 \u7c7b \uff0c \u4ee3\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u524d\u9762 \u7684 \u70b9 \u5899 \u4ee5\u53ca \u4e0e\u5176 \u76f8\u5173 \u7684 \u8ddd\u79bb \u3001 \u89d2\u5ea6 \u548c \u901f\u5ea6 \u3002 \u6570\u636e \u7531 carla . RadarDetection \u6570\u7ec4 \u7ec4\u6210 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf raw _ data ( bytes ) carla . RadarDetection \u96f7\u8fbe \u7684 \u5b8c\u6210 \u4fe1\u606f \u5df2\u7ecf \u88ab \u6ce8\u518c \u3002 \u65b9\u6cd5 \u8bbe\u7f6e \u5668 get _ detection _ count ( self ) \u68c0\u7d22 \u751f\u6210 \u7684 \u6761\u76ee \u6570 \uff0c \u4e0e __ str __ ( ) \u76f8\u540c \u3002 \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u83b7\u53d6 \u7684 \u6570\u636e carla . RadarDetection \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . RadarDetection ) __ str __ ( self ) carla . Rotation \u8868\u793a 3D \u65cb\u8f6c \u4ee5\u53ca \u7a7a\u95f4 \u65b9\u5411 \u7684 \u7c7b \u3002 Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u8fd9\u662f Z \u5411\u4e0a \u5de6\u624b \u7cfb\u7edf \u3002 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u65b9\u6cd5 \u9075\u5faa \u7279\u5b9a \u7684 \u58f0\u660e \u987a\u5e8f \uff1a ( pitch , yaw , roll ) \u5bf9\u5e94 \u4e8e ( Y - rotation , Z - rotation , X - rotation ) . \u865a\u5e7b \u5f15\u64ce \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u5b9e\u4f8b \u53d8\u91cf pitch ( float - \u5ea6 ) Y - \u8f74 \u65cb\u8f6c \u89d2\u5ea6 \u3002 yaw ( float - \u5ea6 ) Z - \u8f74 \u65cb\u8f6c \u89d2\u5ea6 \u3002 roll ( float - \u5ea6 ) X - \u8f74 \u65cb\u8f6c \u89d2\u5ea6 \u3002 \u65b9\u6cd5 __ init __ ( self , pitch = 0.0 , yaw = 0.0 , roll = 0.0 ) \u53c2\u6570 \uff1a pitch ( float - \u5ea6 ) - Y - axis rotation angle . yaw ( float - \u5ea6 ) - Z - axis rotation angle . roll ( float - \u5ea6 ) - X - axis rotation angle . \u8b66\u544a \uff1a CARLA ( pitch , yaw , roll ) \u548c \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u58f0\u660e \u987a\u5e8f \u4e0d\u540c \u3002 \u5f53 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u65f6 \uff0c \u4e0d\u8981 \u6df7\u6dc6 \u8f74 \u7684 \u65cb\u8f6c \u3002 \u8bbe\u7f6e \u5668 get _ forward _ vector ( self ) \u6839\u636e \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u6307\u5411 \u524d\u65b9 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D get _ right _ vector ( self ) \u6839\u636e \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u6307\u5411 \u53f3\u4fa7 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D get _ up _ vector ( self ) \u6839\u636e \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u6307\u5411 \u4e0a\u65b9 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . Rotation ) \u5982\u679c \u4e24\u4e2a \u65cb\u8f6c \u4ee3\u8868 \u6bcf\u4e2a \u8f74 \u7684 \u76f8\u540c \u65b9\u5411 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . Rotation ) \u5982\u679c \u4e24\u4e2a \u65cb\u8f6c \u4ee3\u8868 \u6bcf\u4e2a \u8f74 \u7684 \u76f8\u540c \u65b9\u5411 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8f74 \u7684 \u65b9\u5411 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 carla . RssActorConstellationData \u7531 RssSensor . register _ actor _ constellation _ callback ( ) \u6ce8\u518c \u7684 \u56de\u8c03 \u4e2d \u63d0\u4f9b \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u5b9e\u4f8b \u53d8\u91cf ego _ match _ object ( ad . map . match . Object ) \u81ea\u6211 \u6620\u5c04 \u5339\u914d \u4fe1\u606f \u3002 ego _ route ( ad . map . route . FullRoute ) \u81ea\u6211 \u8def\u7531 \u3002 ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u6001 \u3002 other _ match _ object ( ad . map . match . Object ) \u5176\u4ed6 \u5bf9\u8c61 \u7684 \u5730\u56fe \u5339\u914d \u4fe1\u606f \u3002 \u4ec5\u5f53 \u201c other _ actor \u201d \u4e0d\u662f \u201c None \u201d \u65f6 \u8fd9 \u624d \u6709\u6548 \u3002 other _ actor ( carla . Actor ) \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u67e5\u8be2 \u9ed8\u8ba4 \u53c2\u6570 \u6216 \u7c7b\u578b \u4e3a ad . rss . world . ObjectType . ArtificialObject \u4e14 \u6ca1\u6709 \u4e13\u7528 \u201c carla . Actor ' ( as e . g . for the road boundaries \u201d \u7684 \u4eba\u5de5 \u5bf9\u8c61 \uff08 \u4f8b\u5982 \u76ee\u524d \u7684 \u9053\u8def \u8fb9\u754c \uff09 \uff0c \u5219 \u4e3a \u201c None \u201d \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . RssActorConstellationResult \u5e94\u8be5 \u7531 RssSensor . register _ actor _ constellation _ callback ( ) \u6ce8\u518c \u7684 \u56de\u8c03 \u8fd4\u56de \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u5b9e\u4f8b \u53d8\u91cf rss _ calculation _ mode ( ad . rss . map . RssMode ) \u8981 \u5e94\u7528 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8ba1\u7b97 \u6a21\u5f0f \u3002 restrict _ speed _ limit _ mode ( ad . rss . map . RestrictSpeedLimitMode ) \u9650\u901f \u6a21\u5f0f \u3002 ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) \u5c06 RSS \u52a8\u6001 \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u3002 actor _ object _ type ( ad . rss . world . ObjectType ) \u8981 \u7528\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 RSS \u5bf9\u8c61 \u7c7b\u578b \u3002 actor _ dynamics ( ad . rss . world . RssDynamics ) \u8981 \u5e94\u7528 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 RSS \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . RssEgoDynamicsOnRoute \u63cf\u8ff0 \u8f66\u8f86 \u72b6\u6001 \u7684 carla . RssResponse \u4e2d \u5305\u542b \u7684 \u90e8\u5206 \u6570\u636e \u3002 \u53c2\u6570 \u5305\u62ec \u5b83 \u5f53\u524d \u7684 \u52a8\u6001 \uff0c \u4ee5\u53ca \u5b83 \u5982\u4f55 \u6839\u636e \u76ee\u6807 \u8def\u7ebf \u524d\u8fdb \u3002 \u5b9e\u4f8b \u53d8\u91cf ego _ speed ( ad . physics . Speed ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u3002 min _ stopping _ distance ( ad . physics . Distance ) \u5f53\u524d \u6700\u5c0f \u505c\u8f66 \u8ddd\u79bb \u3002 ego _ center ( ad . map . point . ENUPoint ) \u81ea\u6211 \u8f66\u8f86 \u88ab \u8003\u8651 \u7684 enu \u4f4d\u7f6e \u3002 ego _ heading ( ad . map . point . ENUHeading ) \u8003\u8651 \u7684 \u81ea\u6211 \u8f66\u8f86 \u7684 \u822a\u5411 \u3002 ego _ center _ within _ route ( bool ) \u8bf4\u660e \u81ea\u6211 \u8f66\u8f86 \u7684 \u4e2d\u5fc3 \u662f\u5426 \u5728 \u8def\u7ebf \u5185 \u3002 crossing _ border ( bool ) \u8bf4\u660e \u8f66\u8f86 \u662f\u5426 \u5df2\u7ecf \u8d8a\u8fc7 \u5176\u4e2d \u4e00\u4e2a \u8f66\u9053 \u8fb9\u754c \u3002 route _ heading ( ad . map . point . ENUHeading ) \u8def\u7ebf \u7684 \u8003\u8651 \u65b9\u5411 \u3002 route _ nominal _ center ( ad . map . point . ENUPoint ) \u5f53\u524d \u8def\u7ebf \u7684 \u540d\u4e49 \u4e2d\u5fc3 \u3002 heading _ diff ( ad . map . point . ENUHeading ) \u88ab \u8003\u8651 \u7684 \u65b9\u5411 \u504f\u79bb \u4e86 \u8def\u7ebf \u3002 route _ speed _ lat ( ad . physics . Speed ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u5206\u91cf lat \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 route _ speed _ lon ( ad . physics . Speed ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u5206\u91cf lon \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 route _ accel _ lat ( ad . physics . Acceleration ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lat \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 route _ accel _ lon ( ad . physics . Acceleration ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lon \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 avg _ route _ accel _ lat ( ad . physics . Acceleration ) \u81ea\u6211 \u8f66 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lat \u4e0e \u7ecf\u8fc7 \u5e73\u5747 \u6ee4\u6ce2 \u5e73\u6ed1 \u7684 \u8def\u7ebf \u6709\u5173 \u3002 The ego vehicle ' s acceleration component lat regarding the route smoothened by an average filter . avg _ route _ accel _ lon ( ad . physics . Acceleration ) \u5bf9 \u7ecf\u8fc7 \u5e73\u5747 \u6ee4\u6ce2 \u5e73\u6ed1 \u7684 \u8def\u7ebf \u8fdb\u884c \u81ea \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lon \u5206\u6790 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . RssLogLevel \u679a\u4e3e \u58f0\u660e \u4e2d \u4f7f\u7528 \u7684 carla . RssSensor \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 \u5b9e\u4f8b \u53d8\u91cf trace debug info warn err critical off carla . RssResponse \u4ece carla . SensorData \u7ee7\u627f \u5305\u542b c carla . RssSensor \u8f93\u51fa \u7684 \u7c7b \u3002 \u8fd9 \u662f \u5bf9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236 \u8f66\u8f86 \u6267\u884c \u7684 RSS \u8ba1\u7b97 \u7684 \u7ed3\u679c \u3002 carla . RssRestrictor \u5c06 \u4f7f\u7528 \u6570\u636e \u4fee\u6539 \u8f66\u8f86 \u7684 carla . VehicleControl \u3002 \u5b9e\u4f8b \u53d8\u91cf response _ valid ( bool ) \u8bf4\u660e \u54cd\u5e94 \u662f\u5426 \u6709\u6548 \u3002 \u5982\u679c \u8ba1\u7b97 \u5931\u8d25 \u6216 \u53d1\u751f \u5f02\u5e38 \uff0c \u5219 \u4e3a False \u3002 proper _ response ( ad . rss . state . ProperResponse ) RSS \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \u3002 rss _ state _ snapshot ( ad . rss . state . RssStateSnapshot ) \u8be6\u7ec6 \u7684 RSS \u5728 \u5f53\u524d \u65f6\u523b \u7684 \u72b6\u6001 \u3002 ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002 world _ model ( ad . rss . world . WorldModel ) \u7528\u4e8e \u8ba1\u7b97 \u7684 \u4e16\u754c \u6a21\u578b \u3002 situation _ snapshot ( ad . rss . situation . SituationSnapshot ) \u4ece \u4e16\u754c \u6a21\u578b \u4e2d \u63d0\u53d6 \u7684 \u8be6\u7ec6 RSS \u60c5\u51b5 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . RssRestrictor \u8fd9\u4e9b \u5bf9\u8c61 \u5c06 \u9650\u5236 \u5e94\u7528 \u4e8e carla . VehicleControl \u3002 \u5b83 \u662f \u8d1f\u8d23 \u654f\u611f \u5b89\u5168 \u7684 C++ \u5e93 \u7684 Carla \u5b9e\u73b0 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u6b64\u7c7b \u4e0e rss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u534f\u540c \u540c\u5de5 \u5de5\u4f5c \u534f\u540c\u5de5\u4f5c \uff0c rss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u8981 \u5e94\u7528 \u7684 \u9650\u5236 \u7684 \u6570\u636e \u3002 \u65b9\u6cd5 restrict _ vehicle _ control ( self , vehicle _ control , proper _ response , ego _ dynamics _ on _ route , vehicle _ physics ) \u5e94\u7528 carla . RssSensor \u5bf9 carla . VehicleControl \u7ed9\u51fa \u7684 \u5b89\u5168 \u9650\u5236 \u3002 \u53c2\u6570 \uff1a vehicle _ control ( carla . VehicleControl ) - \u8981 \u9650\u5236 \u7684 \u8f93\u5165 \u8f66\u8f86 \u63a7\u5236 \u3002 proper _ response ( ad . rss . state . ProperResponse ) - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ea7\u751f \u7684 \u90e8\u5206 \u54cd\u5e94 \u3002 \u5305\u542b \u9002\u7528 \u4e8e \u8f66\u8f86 \u52a0\u901f \u7684 \u9650\u5236 \u3002 ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ea7\u751f \u7684 \u90e8\u5206 \u54cd\u5e94 \u3002 \u5305\u542b \u6709\u5173 \u5176 \u8def\u7ebf \u7684 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u548c \u65b9\u5411 \u3002 vehicle _ physics ( carla . VehiclePhysicsControl ) - \u8f66\u8f86 \u7684 \u5f53\u524d \u7269\u7406 \u7279\u6027 \u3002 \u7528\u4e8e \u6b63\u786e \u5e94\u7528 \u9650\u5236 \u3002 \u8fd4\u56de : carla . VehicleControl \u8bbe\u7f6e \u5668 set _ log _ level ( self , log _ level ) \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 \u53c2\u6570 \uff1a log _ level ( carla . RssLogLevel ) - \u65b0 \u65e5\u5fd7 \u7ea7\u522b \u3002 carla . RssRoadBoundariesMode carla . RssSensor \u4e2d \u4f7f\u7528 \u7684 \u679a\u4e3e \u58f0\u660e \uff0c \u7528\u4e8e \u542f\u7528 \u6216 \u7981\u7528 \u516c\u8def \u505c\u7559 \u529f\u80fd \u3002 \u800c\u8a00 \u603b\u800c\u8a00\u4e4b \uff0c \u6b64 \u529f\u80fd \u5c06 \u9053\u8def \u8fb9\u754c \u89c6\u4e3a \u865a\u62df \u5bf9\u8c61 \u3002 \u6700\u5c0f \u5b89\u5168 \u8ddd\u79bb \u68c0\u67e5 \u5e94\u7528 \u4e8e \u8fd9\u4e9b \u865a\u62df \u5899 \uff0c \u4ee5 \u786e\u4fdd \u8f66\u8f86 \u4e0d\u4f1a \u9a76\u79bb \u9053\u8def \u3002 \u5b9e\u4f8b \u53d8\u91cf On \u542f\u7528 \u201c \u505c\u7559 \u5728 \u8def\u4e0a \uff08 stay on road \uff09 \u201d \u529f\u80fd \u3002 Off \u7981\u7528 \u201c \u505c\u7559 \u5728 \u8def\u4e0a \uff08 stay on road \uff09 \u201d \u529f\u80fd \u3002 carla . RssSensor \u4ece carla . Sensor \u7ee7\u627f \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u539f\u7406 \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \u3002 \u8bf7 \u67e5\u770b \u7279\u5b9a \u6587\u6863 \u548c rss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \uff0c \u4ee5 \u5145\u5206 \u4e86\u89e3 \u5b83 \u3002 RSS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4e16\u754c \u4fe1\u606f \u548c RSS \u5e93 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u5230 \u7684 \u8f93\u51fa \u662f carla . RssResponse \u3002 \u8fd9 \u5c06 \u7531 carla . RssRestrictor \u4f7f\u7528 \u3002 \u5728 \u5c06 \u5176 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u4e4b\u524d \u8fdb\u884c carla . VehicleControl \u3002 \u5b9e\u4f8b \u53d8\u91cf ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) \u8bf4\u660e \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u56de\u8c03 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8003\u8651 \u7684 \u81ea\u6211 \u8f66\u8f86 \u7684 RSS \u53c2\u6570 \u3002 other _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) \u8bf4\u660e \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u56de\u8c03 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4e3a \u5176\u4f59 \u8f66\u8f86 \u8003\u8651 \u7684 RSS \u53c2\u6570 \u3002 pedestrian _ dynamics ( ad . rss . world . RssDynamics ) \u8bf4\u660e \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u56de\u8c03 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4e3a \u884c\u4eba \u8003\u8651 \u7684 RSS \u53c2\u6570 \u3002 road _ boundaries _ mode ( carla . RssRoadBoundariesMode ) \u5207\u6362 \u505c\u7559 \u5728 \u9053\u8def \u4e0a stay on road \u7684 \u529f\u80fd \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5904\u4e8e \u7981\u7528 \uff08 Off \uff09 \u72b6\u6001 \u3002 routing _ targets ( vector < carla . Transform > ) \u5f53\u524d \u8003\u8651 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u8def\u7531 \u7684 \u76ee\u6807 \u5217\u8868 \u3002 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u8def\u7531 \u76ee\u6807 \uff0c \u5219 \u968f\u673a \u751f\u6210 \u8def\u7531 \u3002 \u65b9\u6cd5 append _ routing _ target ( self , routing _ target ) \u5c06 \u65b0 \u7684 \u76ee\u6807 \u4f4d\u7f6e \u9644\u52a0 \u5230 \u8f66\u8f86 \u7684 \u5f53\u524d \u8def\u7ebf \u3002 \u53c2\u6570 \uff1a routing _ target ( carla . Transform ) - \u4e3a \u8def\u7ebf \u65b0\u5efa \u76ee\u6807 \u70b9 \u3002 \u5728 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u540e \u9009\u62e9 \u8fd9\u4e9b \u9009\u9879 \uff0c \u4ee5 \u5f3a\u5236 \u8def\u7ebf \u8f6c\u5f2f \u3002 drop _ route ( self ) \u653e\u5f03 \u5f53\u524d \u8def\u7531 \u3002 \u5982\u679c routing _ targets \u4e2d \u8fd8\u6709 \u76ee\u6807 \uff0c \u5219 \u4f7f\u7528 \u8fd9\u4e9b \u76ee\u6807 \u521b\u5efa \u65b0\u8def \u7531 \u3002 \u5426\u5219 \uff0c \u5c06 \u968f\u673a \u521b\u5efa \u65b0\u8def \u7531 \u3002 register _ actor _ constellation _ callback ( self , callback ) \u6ce8\u518c \u56de\u8c03 \u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 carla . RssActorConstellationResult \u3002 \u901a\u8fc7 \u6b64 \u56de\u8c03 \uff0c RSS \u53c2\u6570 \u7684 \u8bbe\u7f6e \u662f \u6839\u636e \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u5b8c\u6210 \u7684 \uff0c \u5e76\u4e14 \u8bbe\u7f6e \uff08 ego _ vehicle _ dynamics , other _ vehicle _ dynamics and pedestrian _ dynamics \uff09 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 \uff1a callback - \u6bcf\u5f53 \u8981 \u8ba1\u7b97 RSS \u60c5\u51b5 \u65f6\u8981 \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 reset _ routing _ targets ( self ) \u5220\u9664 \u5df2 \u9644\u52a0 \u5230 \u8def\u7531 \u7684 \u76ee\u6807 \u3002 \u8bbe\u7f6e \u5668 set _ log _ level ( self , log _ level ) \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 \u53c2\u6570 \uff1a log _ level ( carla . RssLogLevel ) - \u65b0 \u7684 \u65e5\u5fd7 \u7ea7\u522b \u3002 set _ map _ log _ level ( self , log _ level ) \u8bbe\u7f6e \u65e5\u5fd7 \u65e5\u5fd7 \u7ea7\u522b \u3002 \u53c2\u6570 \uff1a log _ level ( carla . RssLogLevel ) - New map log level . \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . SemanticLidarDetection carla . SemanticLidarMeasurement \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u4ee3\u8868 \u4e91\u4e2d \u7684 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u53ca\u5176 \u4f4d\u7f6e \u3001 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3001 \u547d\u4e2d \u7269\u4f53 \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u8bb0 \u3002 \u5b9e\u4f8b \u53d8\u91cf point ( carla . Location - \u7c73 ) \u70b9 \u7684 [ x \uff0c y \uff0c z ] \u5750\u6807 \u3002 cos _ inc _ angle ( float ) \u5149\u7ebf \u4e0e \u88ab \u51fb\u4e2d \u7269\u4f53 \u6cd5\u7ebf \u4e4b\u95f4 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3002 object _ idx ( uint ) \u88ab \u5149\u7ebf \u51fb\u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 object _ tag ( uint ) \u88ab \u5149\u7ebf \u51fb\u4e2d \u90e8\u4ef6 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . SemanticLidarMeasurement \u4ece carla . SensorData \u7ee7\u627f \u8be5\u7c7b \u5b9a\u4e49 \u7531 sensor . lidar . ray _ cast _ semantic \u68c0\u7d22 \u7684 \u8bed\u4e49 LIDAR \u6570\u636e \u3002 \u8fd9 \u5b9e\u8d28 \u4e0a \u662f \u4f7f\u7528 \u5149\u7ebf \u6295\u5c04 \u6765 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5728 \u6b64 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf channels ( int ) \u6fc0\u5149 \u53d1\u5c04 \u6b21\u6570 \u3002 horizontal _ angle ( float - radians ) \u6c34\u5e73 \u89d2\u5ea6 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5728 \u6d4b\u91cf \u65f6 \u65cb\u8f6c \u3002 raw _ data ( bytes ) \u6536\u5230 \u539f\u59cb \u68c0\u6d4b \u6d4b\u70b9 \u68c0\u6d4b\u70b9 \u5217\u8868 \u3002 \u6bcf\u4e2a \u70b9 \u7531 [ x \uff0c y \uff0c z ] \u5750\u6807 \u52a0\u4e0a \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \uff0c \u547d\u4e2d \u89d2\u8272 \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u8bb0 \u7ec4\u6210 \u3002 \u65b9\u6cd5 save _ to _ disk ( self , path ) \u5c06 \u70b9\u4e91 \u4fdd\u5b58 \u4e3a \u63cf\u8ff0 \u4e09\u7ef4 \u626b\u63cf \u626b\u63cf\u4eea \u6570\u636e \u7684 . ply \u6587\u4ef6 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u751f\u6210 \u7684 \u6587\u4ef6 \u53ef\u4ee5 \u5728 MeshLab \u4e2d \u4f7f\u7528 \uff0c MeshLab \u662f \u4e00\u4e2a \u7528\u4e8e \u5904\u7406 \u4e0a\u8ff0 \u6587\u4ef6 \u7684 \u5f00\u6e90 \u7cfb\u7edf \u3002 \u53ea \u9700 \u8003\u8651 \u5230 \u8f74 \u53ef\u80fd \u4e0e \u4e0d \u771f\u5b9e \u7684 \u5f15\u64ce \u4e0d\u540c \uff0c \u56e0\u6b64 \u9700\u8981 \u91cd\u65b0 \u5206\u914d \u91cd\u65b0\u5206\u914d \u3002 \u53c2\u6570 \uff1a path ( str ) \u8bbe\u7f6e \u5668 get _ point _ count ( self , channel ) \u83b7\u53d6 \u6b64 \u5ea6\u91cf \u751f\u6210 \u7684 \u6309 \u901a\u9053 \u6392\u5e8f \u7684 \u70b9\u6570 \u3002 \u901a\u8fc7 \u901a\u9053 \u6392\u5e8f \u53ef\u4ee5 \u8bc6\u522b \u6bcf\u4e2a \u70b9 \u7684 \u539f\u59cb \u901a\u9053 \u3002 \u53c2\u6570 \uff1a channel ( int ) \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) Iterate over the carla . SemanticLidarDetection retrieved as data . __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . SemanticLidarDetection ) __ str __ ( self ) carla . Sensor \u4ece carla . Actor \u7ee7\u627f Sensors compound a specific family of actors quite diverse and unique . They are normally spawned as attachment / sons of a vehicle ( take a look at carla . World to learn about actor spawning ) . Sensors are thoroughly designed to retrieve different types of data that they are listening to . The data they receive is shaped as different subclasses inherited from carla . SensorData ( depending on the sensor ) . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary . All the information on their preferences and settlement can be found here , but the list of those available in CARLA so far goes as follow . Receive data on every tick . - depth camera . - Gnss sensor . - IMU sensor . - Lidar raycast . - SemanticLidar raycast . - Radar . - RGB camera . - RSS sensor . - Semantic Segmentation camera . Only receive data when triggered . - Collision detector . - Lane invasion detector . - Obstacle detector . \u5b9e\u4f8b \u53d8\u91cf is _ listening ( boolean ) When True the sensor will be waiting for data . \u65b9\u6cd5 is _ listening ( self ) Returns whether the sensor is in a listening state . is _ listening _ gbuffer ( self , gbuffer _ id ) Returns whether the sensor is in a listening state for a specific GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . listen _ to _ gbuffer ( self , gbuffer _ id , callback ) The function the sensor will be calling to every time the desired GBuffer texture is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . callback ( function ) - The called function with one argument containing the received GBuffer texture . stop ( self ) Commands the sensor to stop listening for data . stop _ gbuffer ( self , gbuffer _ id ) Commands the sensor to stop listening for the specified GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the Unreal Engine GBuffer texture . \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . SensorData Base class for all the objects containing data generated by a carla . Sensor . This objects should be the argument of the function said sensor is listening to , in order to work with them . Each of these sensors needs for a specific type of sensor data . Hereunder is a list of the sensors and their corresponding data . - Cameras ( RGB , depth and semantic segmentation ) : carla . Image . - Collision detector : carla . CollisionEvent . - GNSS sensor : carla . GnssMeasurement . - IMU sensor : carla . IMUMeasurement . - Lane invasion detector : carla . LaneInvasionEvent . - LIDAR sensor : carla . LidarMeasurement . - Obstacle detector : carla . ObstacleDetectionEvent . - Radar sensor : carla . RadarMeasurement . - RSS sensor : carla . RssResponse . - Semantic LIDAR sensor : carla . SemanticLidarMeasurement . \u5b9e\u4f8b \u53d8\u91cf frame ( int ) Frame count when the data was generated . timestamp ( float - seconds ) Simulation - time when the data was generated . transform ( carla . Transform ) Sensor ' s transform when the data was generated . carla . TextureColor Class representing a texture object to be uploaded to the server . Pixel format is RGBA , uint8 per channel . \u5b9e\u4f8b \u53d8\u91cf width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture . \u65b9\u6cd5 __ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) \u8fd4\u56de : carla . Color set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . Color ) \u8bbe\u7f6e \u5668 set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int ) carla . TextureFloatColor Class representing a texture object to be uploaded to the server . Pixel format is RGBA , float per channel . \u5b9e\u4f8b \u53d8\u91cf width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture . \u65b9\u6cd5 __ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) \u8fd4\u56de : carla . FloatColor set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . FloatColor ) \u8bbe\u7f6e \u5668 set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int ) carla . Timestamp Class that contains time information for simulated data . This information is automatically retrieved as part of the carla . WorldSnapshot the client gets on every frame , but might also be used in many other situations such as a carla . Sensor retrieveing data . \u5b9e\u4f8b \u53d8\u91cf frame ( int ) The number of frames elapsed since the simulator was launched . elapsed _ seconds ( float - seconds ) Simulated seconds elapsed since the beginning of the current episode . delta _ seconds ( float - seconds ) Simulated seconds elapsed since the previous frame . platform _ timestamp ( float - seconds ) Time register of the frame at which this measurement was taken given by the OS in seconds . \u65b9\u6cd5 __ init __ ( self , frame , elapsed _ seconds , delta _ seconds , platform _ timestamp ) Parameters : frame ( int ) elapsed _ seconds ( float - seconds ) delta _ seconds ( float - seconds ) platform _ timestamp ( float - seconds ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . Timestamp ) __ ne __ ( self , other = carla . Timestamp ) __ str __ ( self ) carla . TrafficLight \u4ece carla . TrafficSign \u7ee7\u627f A traffic light actor , considered a specific type of traffic sign . As traffic lights will mostly appear at junctions , they belong to a group which contains the different traffic lights in it . Inside the group , traffic lights are differenciated by their pole index . Within a group the state of traffic lights is changed in a cyclic pattern : one index is chosen and it spends a few seconds in green , yellow and eventually red . The rest of the traffic lights remain frozen in red this whole time , meaning that there is a gap in the last seconds of the cycle where all the traffic lights are red . However , the state of a traffic light can be changed manually . \u5b9e\u4f8b \u53d8\u91cf state ( carla . TrafficLightState ) Current state of the traffic light . \u65b9\u6cd5 freeze ( self , freeze ) Stops all the traffic lights in the scene at their current state . Parameters : freeze ( bool ) is _ frozen ( self ) The client returns True if a traffic light is frozen according to last tick . The method does not call the simulator . \u8fd4\u56de : bool reset _ group ( self ) Resets the state of the traffic lights of the group to the initial state at the start of the simulation . Note : This method calls the simulator . \u8bbe\u7f6e \u5668 get _ affected _ lane _ waypoints ( self ) Returns a list of waypoints indicating the positions and lanes where the traffic light is having an effect . \u8fd4\u56de : list ( carla . Waypoint ) get _ elapsed _ time ( self ) The client returns the time in seconds since current light state started according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds get _ green _ time ( self ) The client returns the time set for the traffic light to be green , according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds Setter : carla . TrafficLight . set _ green _ time get _ group _ traffic _ lights ( self ) Returns all traffic lights in the group this one belongs to . \u8fd4\u56de : list ( carla . TrafficLight ) Note : This method calls the simulator . get _ light _ boxes ( self ) Returns a list of the bounding boxes encapsulating each light box of the traffic light . \u8fd4\u56de : list ( carla . BoundingBox ) get _ opendrive _ id ( self ) Returns the OpenDRIVE id of this traffic light . \u8fd4\u56de : str get _ pole _ index ( self ) Returns the index of the pole that identifies it as part of the traffic light group of a junction . \u8fd4\u56de : int get _ red _ time ( self ) The client returns the time set for the traffic light to be red , according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds Setter : carla . TrafficLight . set _ red _ time get _ state ( self ) The client returns the state of the traffic light according to last tick . The method does not call the simulator . \u8fd4\u56de : carla . TrafficLightState Setter : carla . TrafficLight . set _ state get _ stop _ waypoints ( self ) Returns a list of waypoints indicating the stop position for the traffic light . These waypoints are computed from the trigger boxes of the traffic light that indicate where a vehicle should stop . \u8fd4\u56de : list ( carla . Waypoint ) get _ yellow _ time ( self ) The client returns the time set for the traffic light to be yellow , according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds Setter : carla . TrafficLight . set _ yellow _ time \u8bbe\u7f6e \u5668 set _ green _ time ( self , green _ time ) Parameters : green _ time ( float - seconds ) - Sets a given time for the green light to be active . \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ green _ time set _ red _ time ( self , red _ time ) Sets a given time for the red state to be active . Parameters : red _ time ( float - seconds ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ red _ time set _ state ( self , state ) snippet \u2192 Sets a given state to a traffic light actor . Parameters : state ( carla . TrafficLightState ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ state set _ yellow _ time ( self , yellow _ time ) Sets a given time for the yellow light to be active . Parameters : yellow _ time ( float - seconds ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ yellow _ time \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . TrafficLightState \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u6240\u6709 \u53ef\u80fd \u72b6\u6001 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u5728 \u7279\u5b9a \u65f6\u95f4 \u6b65\u957f \u66f4\u6539 \u6216 \u624b\u52a8 \u66f4\u6539 \u3002 carla . TrafficLight . set _ state \u4e2d \u7684 \u7247\u6bb5 \u4f1a \u52a8\u6001 \u66f4\u6539 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u5b9e\u4f8b \u53d8\u91cf Red Yellow Green Off Unknown carla . TrafficManager \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u662f \u4e00\u4e2a \u7528 C++ \u6784\u5efa \u5728 CARLA API \u4e4b\u4e0a \u7684 \u6a21\u5757 \u3002 \u5b83 \u53ef\u4ee5 \u5904\u7406 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u7684 \u4efb\u4f55 \u8f66\u8f86 \u7ec4 \uff0c \u4ee5 \u73b0\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u586b\u5145 \u4eff\u771f \uff0c \u5e76 \u4e3a \u7528\u6237 \u63d0\u4f9b \u5b9a\u5236 \u67d0\u4e9b \u884c\u4e3a \u7684 \u673a\u4f1a \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u67b6\u6784 \u5206\u4e3a \u4e94\u4e2a \u4e0d\u540c \u7684 \u9762\u5411 \u76ee\u6807 \u7684 \u9636\u6bb5 \u548c \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4fe1\u606f \u5728 \u5176\u4e2d \u6d41\u52a8 \uff0c \u76f4\u5230 \u6700\u7ec8 \u5c06 carla . VehicleControl \u5e94\u7528 \u4e8e \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \u6ce8\u518c \u7684 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8f86 \u3002 \u8981 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u8bbf\u95ee \u6709\u5173 \u6b64 \u6a21\u5757 \u7684 \u6587\u6863 \u3002 \u65b9\u6cd5 auto _ lane _ change ( self , actor , enable ) \u6253\u5f00 \u6216 \u5173\u95ed \u8f66\u8f86 \u7684 \u8f66\u9053 \u53d8\u6362 \u884c\u4e3a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u8bbe\u7f6e \u88ab \u66f4\u6539 \u7684 \u8f66\u8f86 \u3002 enable ( bool ) - True \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5e76 \u542f\u7528 \u8f66\u9053 \u53d8\u66f4 \u3002 False \u5c06 \u7981\u7528 \u5b83\u4eec \u3002 collision _ detection ( self , reference _ actor , other _ actor , detect _ collision ) \u8c03\u6574 \u8f66\u8f86 \u4e0e \u53e6 \u4e00\u4e2a \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u4e3a\u4e86 \u5ffd\u7565 \u6240\u6709 \u5176\u4ed6 \u8f66\u8f86 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6216 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u8bf7 \u4f7f\u7528 \u540c \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e2d \u63cf\u8ff0 \u7684 \u7279\u5b9a ignore \u65b9\u6cd5 \u3002 \u53c2\u6570 : reference _ actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u78b0\u649e \u7684 \u8f66\u8f86 \u3002 other _ actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u4e0e \u4e4b \u53d1\u751f \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 reference _ actor \u3002 detect _ collision ( bool ) - True \u662f \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5e76 \u542f\u7528 \u78b0\u649e \u3002 False \u5c06 \u7981\u7528 \u5b83\u4eec \u3002 distance _ to _ leading _ vehicle ( self , actor , distance ) \u8bbe\u7f6e \u8f66\u8f86 \u5fc5\u987b \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4fdd\u6301 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u4f1a \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 \u5b83 \u662f\u4ece \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u524d \u5230 \u540e \u8ba1\u7b97 \u7684 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u6b63\u5728 \u66f4\u6539 \u6700\u5c0f \u8ddd\u79bb \u7684 \u8f66\u8f86 \u3002 distance ( float - \u7c73 ) - \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u4e4b\u95f4 \u7684 \u7c73 \u3002 force _ lane _ change ( self , actor , direction ) \u5f3a\u5236 \u8f66\u8f86 \u6539\u53d8 \u5230 \u5176 \u5de6\u4fa7 \u6216 \u53f3\u4fa7 \u7684 \u8f66\u9053 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \uff0c \u5982 \u4e2d \u6240\u793a direction \u3002 \u65e0\u8bba \u53d1\u751f \u4ec0\u4e48 \u60c5\u51b5 \uff0c \u8be5 \u65b9\u6cd5 \u90fd \u4f1a \u5e94\u7528 \u8f66\u9053 \u53d8\u6362 \uff0c \u800c \u5ffd\u7565 \u53ef\u80fd \u53d1\u751f \u7684 \u78b0\u649e \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u8f66\u8f86 \u88ab\u8feb \u6539\u53d8 \u8f66\u9053 \u3002 direction ( bool ) - \u76ee\u6807 \u8f66\u9053 \u3002 True \u662f \u53f3\u8fb9 \u7684 \uff0c False \u662f \u5de6\u8fb9 \u7684 \u3002 global _ lane _ offset ( self , offset ) \u8bbe\u7f6e \u8ddd \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u5168\u5c40 \u8f66\u9053 \u504f\u79fb \u4f4d\u79fb \u3002 \u6b63\u503c \u8868\u793a \u5411 \u53f3 \u504f\u79fb \uff0c \u8d1f\u503c \u8868\u793a \u5411 \u5de6 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0 \u3002 \u6570\u5b57 \u9ad8\u5230 \u8db3\u4ee5 \u5bfc\u81f4 \u8f66\u8f86 \u9a76\u8fc7 \u5176\u4ed6 \u8f66\u9053 \u53ef\u80fd \u4f1a \u635f\u574f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u53c2\u6570 : offset ( float ) - \u8f66\u9053 \u8ddd \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u504f\u79fb \u4f4d\u79fb \u3002 global _ percentage _ speed _ difference ( self , percentage ) \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u9884\u671f \u901f\u5ea6 \u4e0e\u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 \u5dee\u503c \u3002 \u901a\u8fc7 \u5c06 perc \u8bbe \u4e3a \u8d1f\u503c \u53ef\u4ee5 \u8d85\u51fa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 30 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u8d1f \u767e\u5206 \u767e\u5206\u6bd4 \u6765 \u8d85\u8fc7 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 \u53c2\u6570 : percentage ( float ) - \u9884\u671f \u901f\u5ea6 \u548c \u5f53\u524d \u9650\u5236 \u4e4b\u95f4 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u5dee\u5f02 \u3002 ignore _ lights _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u5ffd\u7565 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 perc ( float ) - 0 \u5230 100 \u4e4b\u95f4 \u3002 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 ignore _ signs _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 perc ( float ) - 0 \u5230 100 \u4e4b\u95f4 \u3002 \u505c\u8f66 \u6807\u5fd7 \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 ignore _ vehicles _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u4e00\u4e2a \u8f66\u8f86 \u5ffd\u7565 \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u78b0\u649e \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u5176\u4ed6 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u3002 perc ( float ) - Between 0 and 100 . 0 \u5230 100 \u4e4b\u95f4 \u3002 \u78b0\u649e \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 ignore _ walkers _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u5ffd\u7565 \u4e0e \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u78b0\u649e \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u573a\u666f \u4e2d \u884c\u4eba \u7684 \u8f66\u8f86 \u3002 perc ( float ) - Between 0 and 100 . 0 \u5230 100 \u4e4b\u95f4 \u3002 \u78b0\u649e \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 keep _ right _ rule _ percentage ( self , actor , perc ) \u5728 \u5b9a\u4f4d \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u9075\u5faa \u9760\u53f3 \u89c4\u5219 \u5e76 \u7559\u5728 \u53f3\u4fa7 \u8f66\u9053 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u6b63\u5728 \u6539\u53d8 \u884c\u4e3a \u7684 \u8f66\u8f86 \u3002 perc ( float ) - Between 0 and 100 . 0 \u5230 100 \u4e4b\u95f4 \u3002 \u8f66\u8f86 \u9075\u5faa \u9760\u53f3 \u89c4\u5219 \u7684 \u6b21\u6570 \u3002 random _ left _ lanechange _ percentage ( self , actor , percentage ) \u8c03\u6574 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \u6267\u884c \u5de6\u53d8 \u9053 \u7684 \u6982\u7387 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u53d8\u9053 \u53ef\u7528 \u53ef\u7528\u6027 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 percentage ( float ) - \u6362\u9053 \u6982\u7387 \uff0c \u4ee5 \u767e\u5206 \u767e\u5206\u6bd4 \u4e3a \u5355\u4f4d \uff08 0 \u5230 100 \u4e4b\u95f4 \uff09 \u3002 random _ right _ lanechange _ percentage ( self , actor , percentage ) \u8c03\u6574 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65 \u6267\u884c \u53f3\u53d8 \u9053 \u7684 \u6982\u7387 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u53d8\u9053 \u53ef\u7528 \u53ef\u7528\u6027 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 percentage ( float ) - \u6362\u9053 \u6982\u7387 \uff0c \u4ee5 \u767e\u5206 \u767e\u5206\u6bd4 \u4e3a \u5355\u4f4d \uff08 0 \u5230 100 \u4e4b\u95f4 \uff09 \u3002 shut _ down ( self ) \u5173\u95ed \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 update _ vehicle _ lights ( self , actor , do _ update ) \u8bbe\u7f6e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u662f\u5426 \u8d1f\u8d23 \u66f4\u65b0 \u8f66\u706f \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4e0d\u4f1a \u66f4\u6539 \u8f66\u8f86 \u7684 \u8f66\u706f \u72b6\u6001 \uff0c \u9664\u975e \u5176 auto _ update _ status \u8bbe \u4e3a True \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5176 \u706f\u5149 \u72b6\u6001 \u6b63\u5728 \u66f4\u6539 \u7684 \u8f66\u8f86 \u3002 do _ update ( bool ) - \u5982\u679c \u4e3a True \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u7ba1\u7406 \u6307\u5b9a \u8f66\u8f86 \u7684 \u8f66\u706f \u3002 vehicle _ lane _ offset ( self , actor , offset ) \u8bbe\u7f6e \u76f8\u5bf9 \u4e8e \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u8f66\u9053 \u504f\u79fb \u4f4d\u79fb \u3002 \u6b63\u503c \u8868\u793a \u5411 \u53f3 \u504f\u79fb \uff0c \u8d1f\u503c \u8868\u793a \u5411 \u5de6 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0 \u3002 \u6570\u5b57 \u9ad8\u5230 \u8db3\u4ee5 \u5bfc\u81f4 \u8f66\u8f86 \u9a76\u8fc7 \u5176\u4ed6 \u8f66\u9053 \u53ef\u80fd \u4f1a \u635f\u574f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u8f66\u9053 \u504f\u79fb \u884c\u4e3a \u6b63\u5728 \u66f4\u6539 \u7684 \u8f66\u8f86 \u3002 offset ( float ) - \u8f66\u9053 \u8ddd \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u504f\u79fb \u4f4d\u79fb \u3002 vehicle _ percentage _ speed _ difference ( self , actor , percentage ) \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u9884\u671f \u901f\u5ea6 \u4e0e\u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 \u5dee\u503c \u3002 \u901a\u8fc7 \u5c06 perc \u8bbe \u4e3a \u8d1f\u503c \u53ef\u4ee5 \u8d85\u51fa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 30 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u8d1f \u767e\u5206 \u767e\u5206\u6bd4 \u6765 \u8d85\u8fc7 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u901f\u5ea6 \u884c\u4e3a \u6b63\u5728 \u6539\u53d8 \u7684 \u8f66\u8f86 \u3002 percentage ( float ) - \u9884\u671f \u901f\u5ea6 \u548c \u5f53\u524d \u9650\u5236 \u4e4b\u95f4 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u5dee\u5f02 \u3002 \u8bbe\u7f6e \u5668 get _ all _ actions ( self , actor ) \u8fd4\u56de \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5728 \u540e\u7eed \u6b65\u9aa4 \u4e2d \u6267\u884c \u7684 \u6240\u6709 \u5df2\u77e5 \u64cd\u4f5c \uff08 \u5373 \u9053\u8def \u9009\u9879 \u548c \u8def\u5f84 \u70b9 \uff09 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de : \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5217\u8868 \u5217\u8868 \u5982\u4e0b - [ \u9053\u8def \u9009\u9879 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 \u201c \u5de6 \u201d \u3001 \u201c \u53f3 \u201d \u3001 \u201c \u76f4 \u201d \uff09 \u3001 \u4e0b \u4e00\u4e2a \u822a\u70b9 ( carla . Waypoint ) ] get _ next _ action ( self , actor ) \u8fd4\u56de \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u9075\u5faa \u7684 \u4e0b \u4e00\u4e2a \u5df2\u77e5 \u9053\u8def \u9009\u9879 \u548c \u8def\u5f84 \u70b9 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de : \u4e24\u4e2a \u5143\u7d20 \u7684 \u5217\u8868 - [ \u9053\u8def \u9009\u9879 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 \u201c \u5de6 \u201d \u3001 \u201c \u53f3 \u201d \u3001 \u201c \u76f4 \u201d \uff09 \u3001 \u4e0b \u4e00\u4e2a \u822a\u70b9 ( carla . Waypoint ) ] get _ port ( self ) \u8fd4\u56de \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8fde\u63a5 \u7684 \u7aef\u53e3 \u3002 \u5982\u679c \u8be5 \u5bf9\u8c61 \u662f TM - Client \uff0c \u5b83 \u5c06 \u8fd4\u56de \u5176 TM - Server \u7684 \u7aef\u53e3 \u3002 \u9605\u8bfb \u6587\u6863 \u4ee5 \u4e86\u89e3 \u5176\u4e2d \u7684 \u5dee\u5f02 \u3002 \u8fd4\u56de : uint16 \u8bbe\u7f6e \u5668 set _ boundaries _ respawn _ dormant _ vehicles ( self , lower _ bound = 25.0 , upper _ bound = actor _ active _ distance ) \u8bbe\u7f6e \u8981 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u9644\u8fd1 \u91cd\u751f \u7684 \u4f11\u7720 \u89d2\u8272 \u7684 \u4e0a\u9650 \u548c \u4e0b\u9650 \u3002 \u53c2\u6570 : lower _ bound ( float ) - \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \u65f6\u8ddd \u82f1\u96c4 \u8f66\u8f86 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 upper _ bound ( float ) - \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \u65f6\u8ddd \u82f1\u96c4 \u8f66\u8f86 \u7684 \u6700\u5927 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8b66\u544a : upper _ bound \u4e0d\u80fd \u9ad8\u4e8e actor _ active _ distance \u3002 lower _ bound \u4e0d\u80fd \u5c0f\u4e8e 25 \u3002 set _ desired _ speed ( self , actor , speed ) \u5c06 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u8bbe\u7f6e \u4e3a \u6307\u5b9a \u503c \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u901f\u5ea6 \u6b63\u5728 \u6539\u53d8 \u7684 \u8f66\u8f86 \u3002 speed ( float ) - \u8f66\u8f86 \u79fb\u52a8 \u6240 \u9700 \u7684 \u901f\u5ea6 \u3002 set _ global _ distance _ to _ leading _ vehicle ( self , distance ) \u8bbe\u7f6e \u8f66\u8f86 \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u5fc5\u987b \u4fdd\u6301 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u4f1a \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 \u5b83 \u662f\u4ece \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u4e2d\u5fc3 \u5230 \u4e2d\u5fc3 \u8ba1\u7b97 \u7684 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u7c73\u6570 \u3002 set _ hybrid _ physics _ mode ( self , enabled = False ) \u542f\u7528 \u6216 \u7981\u7528 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u3002 \u5728 \u6b64 \u6a21\u5f0f \u4e0b \uff0c \u8ddd\u79bb \u81ea\u8eab \u8f66\u8f86 \u8d85\u8fc7 \u4e00\u5b9a \u534a\u5f84 \u7684 \u8f66\u8f86 \u5c06 \u7981\u7528 \u5176 \u7269\u7406 \u529f\u80fd \u3002 \u901a\u8fc7 \u4e0d \u8ba1\u7b97 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5c06 \u964d\u4f4e \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u3002 \u8f66\u8f86 \u5c06 \u88ab \u4f20\u9001 \u3002 \u53c2\u6570 : enabled ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u6df7\u5408 \u7269\u7406 \u3002 set _ hybrid _ physics _ radius ( self , r = 50.0 ) \u542f\u7528 \u6df7\u5408 \u7269\u7406 \u529f\u80fd \u540e \uff0c \u66f4\u6539 \u542f\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u5f71\u54cd \u533a\u57df \u7684 \u534a\u5f84 \u3002 \u53c2\u6570 : r ( float - \u7c73 ) - \u542f\u7528 \u7269\u7406 \u7684 \u65b0 \u534a\u5f84 \u3002 set _ osm _ mode ( self , mode _ switch = True ) \u542f\u7528 \u6216 \u7981\u7528 OSM \u6a21\u5f0f \u3002 \u8be5 \u6a21\u5f0f \u5141\u8bb8 \u7528\u6237 \u5728 \u4f7f\u7528 OSM \u529f\u80fd \u521b\u5efa \u7684 \u5730\u56fe \u4e2d \u8fd0\u884c TM \u3002 \u8fd9\u4e9b \u5730\u56fe \u5141\u8bb8 \u6709 \u80e1\u540c \u6b7b\u80e1\u540c \u3002 \u901a\u5e38 \uff0c \u5982\u679c \u8f66\u8f86 \u65e0\u6cd5 \u627e\u5230 \u4e0b \u4e00\u4e2a \u822a\u8def \u70b9 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c31 \u4f1a \u5d29\u6e83 \u3002 \u5982\u679c \u542f\u7528 OSM \u6a21\u5f0f \uff0c \u5b83 \u5c06 \u663e\u793a \u8b66\u544a \uff0c \u5e76 \u5728 \u5fc5\u8981 \u65f6 \u6467\u6bc1 \u8f66\u8f86 \u3002 \u53c2\u6570 : mode _ switch ( bool ) - \u5982\u679c True \uff0c \u5219 \u542f\u7528 OSM \u6a21\u5f0f \u3002 set _ path ( self , actor , path ) \u8bbe\u7f6e \u8f66\u8f86 \u5728 \u53d7 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u63a7\u5236 \u65f6\u8981 \u9075\u5faa \u7684 \u4f4d\u7f6e \u5217\u8868 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5fc5\u987b \u9075\u5faa \u7ed9\u5b9a \u8def\u5f84 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 path ( list ) - carla . Locations \u7684 \u5217\u8868 \uff0c \u4f9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8ddf\u968f \u3002 \u8b66\u544a : \u786e\u4fdd \u9053\u8def \u62d3\u6251 \u4e0d\u4f1a \u59a8\u788d \u7ed9\u5b9a \u8def\u5f84 \u3002 set _ random _ device _ seed ( self , value ) \u4e3a \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u968f\u673a \u79cd\u5b50 \uff0c \u4ece\u800c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \u3002 \u53c2\u6570 : value ( int ) - \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u7684 \u79cd\u5b50 \u503c \u3002 set _ respawn _ dormant _ vehicles ( self , mode _ switch = False ) \u5982\u679c \u4e3a True \uff0c \u5927 \u5730\u56fe \u4e2d \u7684 \u8f66\u8f86 \u5728 \u4f11\u7720 \u65f6\u4f1a \u5728 \u82f1\u96c4 \u8f66\u8f86 \u9644\u8fd1 \u91cd\u751f \u3002 \u5426\u5219 \uff0c \u5b83\u4eec \u5c06 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u76f4\u5230 actor _ active _ distance \u518d\u6b21 \u8fdb\u5165 \u82f1\u96c4 \u8f66\u8f86 \u3002 \u53c2\u6570 : mode _ switch ( bool ) set _ route ( self , actor , path ) \u8bbe\u7f6e \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u8f66\u8f86 \u8981 \u9075\u5faa \u7684 \u8def\u7ebf \u6307\u4ee4 \u5217\u8868 \u3002 \u53ef\u80fd \u7684 \u8def\u7ebf \u6307\u4ee4 \u662f ' Left ' , ' Right ' , ' Straight ' \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5fc5\u987b \u9075\u5faa \u7ed9\u5b9a \u8def\u7ebf \u6307\u793a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 path ( list ) - \u8f66\u8f86 \u8981 \u9075\u5faa \u7684 \u8def\u7ebf \u6307\u4ee4 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff09 \u5217\u8868 \u3002 \u8b66\u544a : \u786e\u4fdd \u8f66\u9053 \u62d3\u6251 \u4e0d\u4f1a \u59a8\u788d \u7ed9\u5b9a \u8def\u7ebf \u3002 set _ synchronous _ mode ( self , mode _ switch = True ) \u5c06 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 TM - Server \u53ef\u4ee5 \u8fd0\u884c \u3002 \u7c7b\u4f3c \u5730 \uff0c \u5728 \u591a TM \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 \u4e00\u4e2a TM - Server \u5fc5\u987b \u52fe\u9009 \u3002 \u5728 \u8fdb\u884c \u4e16\u754c \u52fe\u9009 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \uff0c \u5e76 \u5728 \u5c06 \u4e16\u754c \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u540e \u7acb\u5373 \u8bbe\u7f6e \u540c\u6b65 \u65f6 \u54ea\u4e2a TM \u5c06 \u6210\u4e3a \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53c2\u6570 : mode _ switch ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u540c\u6b65 \u6a21\u5f0f \u3002 \u8b66\u544a : \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u6267\u884c \u6807\u8bb0 \u7684 \u540c\u4e00 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u7684 TM \u4e5f \u5fc5\u987b \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 carla . TrafficSign \u4ece carla . Actor \u7ee7\u627f \u4eff\u771f \u4e2d \u51fa\u73b0 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff08 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u9664\u5916 \uff09 \u3002 \u8fd9\u4e9b \u5728 carla . TrafficLight \u4e2d\u6709 \u81ea\u5df1 \u7684 \u7c7b \u4ece \u8be5\u7c7b \u7ee7\u627f \u3002 \u76ee\u524d \uff0c \u4e3b\u8981 \u5b9e\u65bd \u7684 \u662f \u901f\u5ea6 \u6807\u5fd7 \u3001 \u505c\u9760 \u505c\u9760\u7ad9 \u548c \u8ba9 \u884c \u6807\u5fd7 \uff0c \u4f46 \u8fd8\u6709 \u8bb8\u591a \u5176\u4ed6 \u6807\u5fd7 \u4e5f \u88ab \u7262\u8bb0 \u7262\u8bb0\u5728\u5fc3 \u3002 \u5b9e\u4f8b \u53d8\u91cf trigger _ volume \u4f4d\u4e8e \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u9644\u8fd1 \u7684 carla . BoundingBox \uff0c \u91cc\u9762 \u7684 carla . Actor \u53ef\u4ee5 \u77e5\u9053 \u5b83 \u3002 carla . Transform \u8be5\u7c7b \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u53d8\u6362 \uff0c \u5373 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u7684 \u7ec4\u5408 \uff0c \u800c \u4e0d \u8fdb\u884c \u7f29\u653e \u3002 \u5b9e\u4f8b \u53d8\u91cf location ( carla . Location ) \u63cf\u8ff0 \u5750\u6807 \u7cfb\u7edf \u4e2d \u7684 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 rotation ( carla . Rotation - degrees ( pitch , yaw , roll ) ) \u63cf\u8ff0 \u6839\u636e \u865a\u5e7b \u5f15\u64ce \u7684 \u8f74 \u7cfb\u7edf \u8fdb\u884c \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u3002 \u65b9\u6cd5 __ init __ ( self , location , rotation ) \u53c2\u6570 : location ( carla . Location ) rotation ( carla . Rotation - \u5ea6\u6570 \uff08 \u4fef\u4ef0 \u3001 \u504f\u822a \u3001 \u7ffb\u6eda \uff09 ) transform ( self , in _ point ) \u4f7f\u7528 \u5f53\u524d \u53d8\u6362 \u4f5c\u4e3a \u53c2\u8003 \u53c2\u8003\u7cfb \u5c06 \u4e09\u7ef4 \u70b9 \u4ece \u5c40\u90e8 \u5750\u6807 \u8f6c\u6362 \u4e3a \u5168\u5c40 \u5750\u6807 \u3002 \u53c2\u6570 : in _ point ( carla . Location ) - \u5c06 \u5e94\u7528 \u53d8\u6362 \u7684 \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 transform _ vector ( self , in _ vector ) \u4f7f\u7528 \u5f53\u524d \u53d8\u6362 \u4f5c\u4e3a \u53c2\u8003 \u53c2\u8003\u7cfb \u6765 \u65cb\u8f6c \u5411\u91cf \uff0c \u800c \u4e0d \u5e94\u7528 \u5e73\u79fb \u3002 \u4f8b\u5982 \uff0c \u7528 \u5b83 \u6765 \u53d8\u6362 \u901f\u5ea6 \u3002 \u53c2\u6570 : in _ vector ( carla . Vector3D ) - \u5c06 \u5e94\u7528 \u8f6c\u6362 \u7684 \u5411\u91cf \u3002 \u8bbe\u7f6e \u5668 get _ forward _ vector ( self ) \u4f7f\u7528 \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u524d\u5411 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D get _ inverse _ matrix ( self ) \u8ba1\u7b97 \u9006\u53d8 \u53d8\u6362 \u9006\u53d8\u6362 \u7684 4 \u77e9\u9635 \u8868\u793a \u3002 \u8fd4\u56de : list ( list ( float ) ) get _ matrix ( self ) \u8ba1\u7b97 \u53d8\u6362 \u7684 4 \u77e9\u9635 \u8868\u793a \u3002 \u8fd4\u56de : list ( list ( float ) ) get _ right _ vector ( self ) \u4f7f\u7528 \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u53f3 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D get _ up _ vector ( self ) \u4f7f\u7528 \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u5411\u4e0a \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . Transform ) \u5982\u679c this \u548c other \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u90fd \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ ne __ ( self , other = carla . Transform ) \u5982\u679c this \u548c other \u7684 \u4efb\u4f55 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u4e0d \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u5c06 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de : str carla . Vector2D \u6267\u884c \u4e8c\u7ef4 \u64cd\u4f5c \u7684 \u8f85\u52a9 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf x ( float ) X - axis value . y ( float ) Y - axis value . \u65b9\u6cd5 __ init __ ( self , x = 0.0 , y = 0.0 ) \u53c2\u6570 : x ( float ) y ( float ) length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de : float make _ unit _ vector ( self ) \u8fd4\u56de \u5177\u6709 \u76f8\u540c \u65b9\u5411 \u548c \u5355\u4f4d \u957f\u5ea6 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D squared _ length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u5e73\u65b9 \u957f\u5ea6 \u3002 \u8fd4\u56de : float \u9b54\u672f \u65b9\u6cd5 __ add __ ( self , other = carla . Vector2D ) __ eq __ ( self , other = carla . Vector2D ) \u5982\u679c \u6bcf\u4e2a \u8f74 \u7684 \u503c \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ mul __ ( self , other = carla . Vector2D ) __ ne __ ( self , bool = carla . Vector2D ) \u5982\u679c \u4efb\u4f55 \u8f74 \u7684 \u503c \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u8fd4\u56de \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 \u5411\u91cf \u7684 \u8f74\u503c \u3002 \u8fd4\u56de : str __ sub __ ( self , other = carla . Vector2D ) __ truediv __ ( self , other = carla . Vector2D ) carla . Vector3D \u6267\u884c \u4e09\u7ef4 \u64cd\u4f5c \u7684 \u8f85\u52a9 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf x ( float ) X - axis value . y ( float ) Y - axis value . z ( float ) Z - axis value . \u65b9\u6cd5 __ init __ ( self , x = 0.0 , y = 0.0 , z = 0.0 ) \u53c2\u6570 : x ( float ) y ( float ) z ( float ) cross ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u53c9\u79ef \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : carla . Vector3D distance ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float distance _ 2d ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u4e8c\u7ef4 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float distance _ squared ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u5e73\u65b9 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float distance _ squared _ 2d ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u4e8c\u7ef4 \u5e73\u65b9 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float dot ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u70b9\u79ef \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float dot _ 2d ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u4e8c\u7ef4 \u70b9\u79ef \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de : float make _ unit _ vector ( self ) \u8fd4\u56de \u5177\u6709 \u76f8\u540c \u65b9\u5411 \u548c \u5355\u4f4d \u957f\u5ea6 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D squared _ length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u5e73\u65b9 \u957f\u5ea6 \u3002 \u8fd4\u56de : float \u8bbe\u7f6e \u5668 get _ vector _ angle ( self , vector ) \u8ba1\u7b97 \u4e00\u5bf9 \u4e09\u7ef4 \u5411\u91cf \u4e4b\u95f4 \u7684 \u89d2\u5ea6 \uff08 \u4ee5 \u5f27\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float \u9b54\u672f \u65b9\u6cd5 __ abs __ ( self ) \u8fd4\u56de \u5177\u6709 x \u3001 y \u548c z \u5206\u91cf \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 Vector3D \u3002 \u8fd4\u56de : carla . Vector3D __ add __ ( self , other = carla . Vector3D ) __ eq __ ( self , other = carla . Vector3D ) \u5982\u679c \u6bcf\u4e2a \u8f74 \u7684 \u503c \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ mul __ ( self , other = carla . Vector3D ) __ ne __ ( self , other = carla . Vector3D ) \u5982\u679c \u4efb\u4f55 \u8f74 \u7684 \u503c \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u8fd4\u56de \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 \u5411\u91cf \u7684 \u8f74\u503c \u3002 \u8fd4\u56de : str __ sub __ ( self , other = carla . Vector3D ) __ truediv __ ( self , other = carla . Vector3D ) carla . Vehicle \u4ece carla . Actor \u7ee7\u627f CARLA \u4e2d \u6700 \u91cd\u8981 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7fa4\u4f53 \u4e4b\u4e00 \u3002 \u5176\u4e2d \u5305\u62ec \u4ece \u6c7d\u8f66 \u5230 \u5361\u8f66 \u3001 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3001 \u8d27\u8f66 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u4ee5\u53ca \u8b66\u8f66 \u7b49 \u5b98\u65b9 \u8f66\u8f86 \u3002 carla . BlueprintLibrary \u4e2d \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5e7f\u6cdb \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5 \u6ee1\u8db3 \u4e0d\u540c \u7684 \u9700\u6c42 \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u624b\u52a8 \u63a7\u5236 \uff0c \u4e5f \u53ef\u4ee5 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \uff0c \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fdb\u884c \u63a7\u5236 \u3002 \u5b9e\u4f8b \u53d8\u91cf bounding _ box ( carla . BoundingBox ) \u5305\u542b \u8f66\u8f86 \u51e0\u4f55 \u5f62\u72b6 \u7684 \u8fb9\u754c \u6846 \u3002 \u5b83 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u662f \u76f8\u5bf9 \u4e8e \u5b83 \u6240 \u9644\u7740 \u7684 \u8f66\u8f86 \u800c\u8a00 \u7684 \u3002 \u65b9\u6cd5 apply _ ackermann _ control ( self , control ) \u5728 \u4e0b \u4e00\u4e2a \u523b\u5ea6 \u5904 \u5e94\u7528 \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u5bf9\u8c61 \u3002 \u53c2\u6570 : control ( carla . VehicleAckermannControl ) apply _ ackermann _ controller _ settings ( self , settings ) \u5728 \u4e0b \u4e00\u4e2a tick \u4e2d\u5c06 \u65b0 \u7684 \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u8bbe\u7f6e \u5e94\u7528 \u4e8e \u6b64 \u8f66\u8f86 \u3002 \u53c2\u6570 : settings ( carla . AckermannControllerSettings ) \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 apply _ control ( self , control ) \u5728 \u4e0b \u4e00\u4e2a tick \u4e0a \u5e94\u7528 \u63a7\u5236 \u5bf9\u8c61 \uff0c \u5176\u4e2d \u5305\u542b \u6cb9\u95e8 \u3001 \u8f6c\u5411 \u6216 \u6362\u6863 \u7b49 \u9a7e\u9a76 \u53c2\u6570 \u3002 \u53c2\u6570 : control ( carla . VehicleControl ) apply _ physics _ control ( self , physics _ control ) \u5728 \u4e0b \u4e00\u4e2a tick \u4e2d \u5e94\u7528 \u7269\u7406 \u63a7\u5236 \u5bf9\u8c61 \uff0c \u5176\u4e2d \u5305\u542b \u5c06 \u8f66\u8f86 \u5b9a\u4e49 \u4e3a \u5b9e\u4f53 \u7684 \u53c2\u6570 \u3002 \u4f8b\u5982 \uff1a \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3001 \u8d28\u91cf \u3001 \u963b\u529b \u7cfb\u6570 \u7b49\u7b49 \u3002 \u53c2\u6570 : physics _ control ( carla . VehiclePhysicsControl ) close _ door ( self , door _ idx ) \u5982\u679c \u8f66\u8f86 \u6709 \u5b83 \uff0c \u5219 \u5173\u95ed \u8f66\u95e8 door _ idx \u3002 \u4f7f\u7528 carla . VehicleDoor . All \u5173\u95ed \u6240\u6709 \u53ef\u7528 \u7684 \u95e8 \u3002 \u53c2\u6570 : door _ idx ( carla . VehicleDoor ) - \u95e8 \u7d22\u5f15 \u3002 enable _ carsim ( self , simfile _ path ) \u4e3a \u8be5 \u7279\u5b9a \u8f66\u8f86 \u542f\u7528 CarSim \u7269 \u7406\u89e3 \u7b97\u5668 \u3002 \u4e3a\u4e86 \u4f7f\u6b64 \u529f\u80fd \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \uff0c \u9700\u8981 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u8fd0\u884c \u6709\u6548 \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u3002 \u63a7\u5236 \u8f93\u5165 \u88ab \u5b9a\u5411 \u91cd\u5b9a\u5411 \u5230 CarSim \uff0c \u5b83 \u5c06 \u63d0\u4f9b \u6bcf \u4e00\u5e27 \u7684 \u8f66\u8f86 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u53c2\u6570 : simfile _ path ( str ) - \u5305\u542b \u4eff\u771f \u53c2\u6570 \u7684 . simfile \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 enable _ chrono _ physics ( self , max _ substeps , max _ substep _ delta _ time , vehicle _ json , powertrain _ json , tire _ json , base _ json _ path ) \u5728 \u751f\u6210 \u7684 \u8f66\u8f86 \u4e0a \u542f\u7528 Chrono \u7269\u7406 \u3002 \u53c2\u6570 : max _ substeps ( int ) - Chrono \u5b50 \u6b65\u9aa4 \u7684 \u6700\u5927 \u6570\u91cf \u3002 max _ substep _ delta _ time ( int ) - \u5b50\u6b65 \u7684 \u6700\u5927 \u5927\u5c0f \u3002 vehicle _ json ( str ) - \u76f8\u5bf9 \u4e8e base _ json _ path \u7684 \u8f66\u8f86 json \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 powertrain _ json ( str ) - \u76f8\u5bf9 \u4e8e base _ json _ path \u7684 \u52a8\u529b \u603b\u6210 json \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 tire _ json ( str ) - \u76f8\u5bf9 \u4e8e base _ json _ path \u7684 \u8f6e\u80ce json \u6587\u4ef6 \u3002 base _ json _ path ( str ) - \u6307\u5411 chrono / data / vehicle \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u8def\u5f84 \u3002 \u4f8b\u5982 \uff0c / home / user / carla / Build / chrono - install / share / chrono / data / vehicle / ( \u6700\u540e \u4e00\u4e2a \u5b57\u7b26 \u9700\u8981 \u662f / ) \u3002 \u6ce8\u610f : \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u4f7f\u7528 \u8be5 \u6807\u5fd7 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 ARGS = \" -- chrono \" \u3002 \u5982\u679c \u6ca1\u6709 \u8bbe\u7f6e \u6b64 \u6807\u5fd7 \uff0c \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 Chrono \u7269\u7406 \u3002 \u8b66\u544a : \u4e0d \u652f\u6301 \u78b0\u649e \u3002 \u5f53 \u68c0\u6d4b \u5230 \u78b0\u649e \u65f6 \uff0c \u7269\u7406 \u7cfb\u7edf \u5c06 \u6062\u590d \u4e3a \u9ed8\u8ba4 \u7684 Carla \u7269\u7406 \u7cfb\u7edf \u3002 is _ at _ traffic _ light ( self ) \u5f53 \u4ea4\u901a \u4ea4\u901a\u706f \u4e3a \u7ea2\u8272 \u5e76\u4e14 \u8f66\u8f86 \u4f4d\u4e8e \u5176 \u8fb9\u754c \u6846\u5185 \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u53d7\u5230 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u523b\u5ea6 \u8fd4\u56de \u4ea4\u901a \u4ea4\u901a\u706f \u662f\u5426 \u5f71\u54cd \u8be5 \u8f66\u8f86 \uff08 \u5b83 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff09 \u3002 \u8fd4\u56de : bool open _ door ( self , door _ idx ) \u5982\u679c \u8f66\u8f86 \u6709 \u8f66\u95e8 \uff0c \u5219 \u6253\u5f00 \u8f66\u95e8 door _ idx \u3002 \u4f7f\u7528 carla . VehicleDoor . All \u6253\u5f00 \u6240\u6709 \u53ef\u7528 \u7684 \u95e8 \u3002 \u53c2\u6570 : door _ idx ( carla . VehicleDoor ) - \u95e8 \u7d22\u5f15 \u3002 show _ debug _ telemetry ( self , enabled = True ) \u542f\u7528 \u6216 \u7981\u7528 \u6b64 \u8f66\u8f86 \u4e0a \u7684 \u9065\u6d4b \u3002 \u8fd9\u4f1a \u5728 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7a97\u53e3 \u4e2d \u663e\u793a \u6709\u5173 \u8f66\u8f86 \u5f53\u524d \u72b6\u6001 \u548c \u65bd\u52a0 \u5230 \u5176 \u4e0a \u7684 \u529b \u7684 \u4fe1\u606f \u3002 \u53ea\u80fd \u663e\u793a \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u7684 \u4fe1\u606f \uff0c \u56e0\u6b64 \uff0c \u5982\u679c \u542f\u7528 \u7b2c\u4e8c \u4e8c\u8f86 \u7b2c\u4e8c\u8f86 \u8f66 \uff0c \u524d \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5c06 \u81ea\u52a8 \u7981\u7528 \u3002 \u53c2\u6570 : enabled ( bool ) use _ carsim _ road ( self , enabled ) \u542f\u7528 \u6216 \u7981\u7528 CarSim \u4e0e \u5730\u5f62 \u6587\u4ef6 . simfile \u4e2d \u6307\u5b9a \u7684 \u4f7f\u7528 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64 \u9009\u9879 \u5904\u4e8e \u7981\u7528 \u72b6\u6001 \uff0c CarSim \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u65b9\u6cd5 \u6765 \u5904\u7406 \u573a\u666f \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u3002 \u53c2\u6570 : enabled ( bool ) \u8bbe\u7f6e \u5668 get _ ackermann _ controller _ settings ( self ) \u8fd4\u56de \u5e94\u7528 \u4e8e \u8be5 \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u8bbe\u7f6e \u3002 \u8fd4\u56de : carla . AckermannControllerSettings \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6765 \u68c0\u7d22 \u503c \u3002 get _ control ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd4\u56de \u6700\u540e \u4e00\u4e2a tick \u4e2d \u5e94\u7528 \u7684 \u63a7\u5236 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . VehicleControl get _ failure _ state ( self ) \u8f66\u8f86 \u6709 \u6545\u969c \u72b6\u6001 \uff0c \u8868\u660e \u5b83 \u65e0\u6cd5 \u7ee7\u7eed \u5176 \u8def\u7ebf \u3002 \u8be5 \u51fd\u6570 \u8fd4\u56de \u8f66\u8f86 \u7684 \u5177\u4f53 \u6545\u969c \u72b6\u6001 \uff0c \u6216\u8005 \u6362\u53e5 \u6362\u53e5\u8bdd \u6362\u53e5\u8bdd\u8bf4 \uff0c \u8fd4\u56de \u5bfc\u81f4 \u6545\u969c \u7684 \u539f\u56e0 \u3002 \u8fd4\u56de : carla . VehicleFailureState get _ light _ state ( self ) \u8fd4\u56de \u8868\u793a \u8f66\u8f86 \u706f \u72b6\u6001 \u7684 \u6807\u5fd7 \uff0c \u8fd9 \u8868\u793a \u54ea\u4e9b \u706f \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u6216 \u4e0d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u3002 \u8fd4\u56de : carla . VehicleLightState Setter : carla . Vehicle . set _ light _ state get _ physics _ control ( self ) \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd4\u56de \u5e94\u7528 \u4e8e \u8be5 \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u7269\u7406 \u63a7\u5236 \u3002 \u8fd4\u56de : carla . VehiclePhysicsControl \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u6765 \u68c0\u7d22 \u503c \u3002 get _ speed _ limit ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a tick \u8fd4\u56de \u5f71\u54cd \u8be5 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \uff08 \u5b83 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \uff09 \u3002 \u5f53 \u7ecf\u8fc7 \u9650\u901f \u4fe1\u53f7 \u65f6 \uff0c \u9650\u901f \u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u8f66\u8f86 \u5728 \u751f\u6210 \u540e \u53ef\u80fd \u5c31 \u6ca1\u6709 \u9650\u901f \u4fe1\u53f7 \u3002 \u8fd4\u56de : float - km / h get _ traffic _ light ( self ) \u6839\u636e \u6700\u540e \u4e00\u4e2a \u523b\u5ea6 \u68c0\u7d22 \u5f71\u54cd \u6b64 \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u5982\u679c \u6709 \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . TrafficLight get _ traffic _ light _ state ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u4e0a \u4e00\u4e2a tick \u8fd4\u56de \u5f71\u54cd \u8be5 \u8f66\u8f86 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5982\u679c \u5f53\u524d \u6ca1\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u8f66\u8f86 \uff0c \u5219 \u8fd4\u56de green \u3002 \u8fd4\u56de : carla . TrafficLightState get _ wheel _ steer _ angle ( self , wheel _ location ) \u8fd4\u56de \u8f66\u8f86 \u8f66\u8f6e \u7684 \u7269\u7406 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 \u53c2\u6570 : wheel _ location ( carla . VehicleWheelLocation ) \u8fd4\u56de : float Note : \u8fd4\u56de \u57fa\u4e8e \u8f66\u8f6e \u7269\u7406 \u539f\u7406 \u7684 \u89d2\u5ea6 \uff0c \u800c \u4e0d\u662f \u89c6\u89d2 \u3002 \u8bbe\u7f6e \u5668 set _ autopilot ( self , enabled = True , port = 8000 ) \u5728 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u7684 \u5217\u8868 \u4e2d \u6ce8\u518c \u6216 \u5220\u9664 \u8f66\u8f86 \u3002 \u5f53 True \u65f6 \uff0c \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5c06 \u79fb\u52a8 \u8f66\u8f86 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u53d1\u751f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u53c2\u6570 : enabled ( bool ) port ( uint16 ) - \u8f66\u8f86 \u8981 \u5728 \u5176\u4e2d \u6ce8\u518c \u6216 \u4e0d \u5217\u51fa \u7684 TM - Server \u7aef\u53e3 \u3002 \u5982\u679c \u4f20\u9012 None \uff0c \u5b83 \u5c06 \u8003\u8651 \u9ed8\u8ba4 8000 \u7aef\u53e3 \u4e0a \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 set _ light _ state ( self , light _ state ) \u4f7f\u7528 \u8868\u793a \u706f\u5149 \u6253\u5f00 \u548c \u5173\u95ed \u7684 \u6807\u5fd7 \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u53c2\u6570 : light _ state ( carla . VehicleLightState ) \u83b7\u53d6 \u5668 : carla . Vehicle . get _ light _ state set _ wheel _ steer _ direction ( self , wheel _ location , angle _ in _ deg ) snippet \u2192 \u76f4\u89c2 \u5730 \u8bbe\u7f6e \u8f66\u8f6e \u7684 \u89d2\u5ea6 \u3002 \u53c2\u6570 : wheel _ location ( carla . VehicleWheelLocation ) angle _ in _ deg ( float ) \u8b66\u544a : \u4e0d \u5f71\u54cd \u8f66\u8f86 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . VehicleAckermannControl \u4f7f\u7528 \u963f\u514b \u963f\u514b\u66fc \u9a7e\u9a76 \u63a7\u5236 \u88c5\u7f6e \u7ba1\u7406 \u8f66\u8f86 \u7684 \u57fa\u672c \u8fd0\u52a8 \u3002 \u5b9e\u4f8b \u53d8\u91cf steer ( float ) \u6240 \u9700 \u8f6c\u5411 ( rad ) \u3002 \u6b63\u503c \u4f4d\u4e8e \u53f3\u4fa7 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 steer _ speed ( float ) \u8f6c\u5411 \u901f\u5ea6 ( rad / s ) \u3002 \u96f6 \u8f6c\u5411 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u610f\u5473 \u610f\u5473\u7740 \u5c3d\u5feb \u6539\u53d8 \u8f6c\u5411 \u89d2 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 speed ( float ) \u6240 \u9700 \u901f\u5ea6 ( m / s ) \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 acceleration ( float ) \u6240 \u9700 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 ( m / s2 ) \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 jerk ( float ) \u6240 \u9700 \u7684 jerk ( m / s3 ) \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 \u65b9\u6cd5 __ init __ ( self , steer = 0.0 , steer _ speed = 0.0 , speed = 0.0 , acceleration = 0.0 , jerk = 0.0 ) \u53c2\u6570 : steer ( float ) steer _ speed ( float ) speed ( float ) acceleration ( float ) jerk ( float ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . AckermannVehicleControl ) __ ne __ ( self , other = carla . AckermannVehicleControl ) __ str __ ( self ) carla . VehicleControl \u4f7f\u7528 \u5178\u578b \u7684 \u9a7e\u9a76 \u63a7\u5236 \u6765 \u7ba1\u7406 \u8f66\u8f86 \u7684 \u57fa\u672c \u8fd0\u52a8 \u3002 \u5b9e\u4f8b \u53d8\u91cf throttle ( float ) \u7528\u4e8e \u63a7\u5236 \u8f66\u8f86 \u6cb9\u95e8 \u7684 \u6807\u91cf \u503c [ 0.0 , 1.0 ] \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 steer ( float ) \u7528\u4e8e \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 \u7684 \u6807\u91cf \u503c [ - 1.0 , 1.0 ] \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 brake ( float ) \u7528\u4e8e \u63a7\u5236 \u8f66\u8f86 \u5236\u52a8 \u7684 \u6807\u91cf \u503c [ 0.0 , 1.0 ] \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 hand _ brake ( bool ) \u786e\u5b9a \u662f\u5426 \u4f7f\u7528 \u624b\u5239 \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 reverse ( bool ) \u786e\u5b9a \u8f66\u8f86 \u662f\u5426 \u5411 \u540e \u79fb\u52a8 \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 manual _ gear _ shift ( bool ) \u786e\u5b9a \u662f\u5426 \u901a\u8fc7 \u624b\u52a8 \u6362\u6863 \u6765 \u63a7\u5236 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 gear ( int ) \u6307\u793a \u8f66\u8f86 \u884c\u9a76 \u7684 \u6863\u4f4d \u3002 \u65b9\u6cd5 __ init __ ( self , throttle = 0.0 , steer = 0.0 , brake = 0.0 , hand _ brake = False , reverse = False , manual _ gear _ shift = False , gear = 0 ) \u53c2\u6570 : throttle ( float ) - [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002 steer ( float ) - [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002 brake ( float ) - [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002 hand _ brake ( bool ) reverse ( bool ) manual _ gear _ shift ( bool ) gear ( int ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . VehicleControl ) __ ne __ ( self , other = carla . VehicleControl ) __ str __ ( self ) carla . VehicleDoor \u53ef\u80fd \u7684 \u7d22\u5f15 \u8868\u793a \u53ef\u80fd \u6253\u5f00 \u7684 \u95e8 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u67d0\u4e9b \u8f66\u8f86 \u5e76\u975e \u6240\u6709 \u53ef\u80fd \u7684 \u8f66\u95e8 \u90fd \u80fd \u6253\u5f00 \u3002 \u5b9e\u4f8b \u53d8\u91cf FL \u5de6 \u524d\u95e8 \u3002 FR \u53f3 \u524d\u95e8 \u3002 RL \u5de6 \u540e\u95e8 \u3002 RR \u53f3 \u540e\u95e8 \u3002 All \u4ee3\u8868 \u6240\u6709 \u95e8 \u3002 carla . VehicleFailureState \u5305\u542b \u8f66\u8f86 \u65e0\u6cd5 \u6062\u590d \u7684 \u4e0d\u540c \u6545\u969c \u72b6\u6001 \u7684 \u679a\u4e3e \u3002 \u8fd9\u4e9b \u7531 get _ failure _ state ( ) \u8fd4\u56de \uff0c \u5f53\u524d \u4ec5 \u5b9e\u73b0 \u4e86 Rollover \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE Rollover Engine TirePuncture carla . VehicleLightState \u6982\u62ec \u8f66\u8f86 \u706f \u72b6\u6001 \u7684 \u7c7b \uff0c \u8fd9\u4e9b \u53ef\u4ee5 \u7528\u4f5c \u6807\u5fd7 \u3002 \u4f8b\u5982 \uff1a VehicleLightState . HighBeam & VehicleLightState . Brake \u5f53 \u4e24\u8005 \u90fd \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u65f6 \uff0c \u5c06 \u8fd4\u56de True \u3002 \u5728 \u4efb\u4f55 \u60c5\u51b5 \u4e0b \uff0c \u706f \u9ed8\u8ba4 \u90fd \u662f \u5173\u95ed \u7684 \uff0c \u5e76\u4e14 \u5e94\u8be5 \u7531 \u7528\u6237 \u901a\u8fc7 \u811a\u672c \u8fdb\u884c \u7ba1\u7406 \u3002 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u81ea\u52a8 \u95ea\u70c1 \u3002 \u8b66\u544a \uff1a \u76ee\u524d \uff0c \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u51c6\u5907 \u597d \u4f7f\u7528 \u6b64 \u529f\u80fd \uff0c \u8fd9 \u5c06 \u5728 \u4ee5\u540e \u7684 \u66f4\u65b0 \u4e2d \u6dfb\u52a0 \u5230 \u6240\u6709 \u8f66\u8f86 \u4e2d \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE \u6240\u6709 \u706f\u5747 \u5173\u95ed \u3002 Position LowBeam HighBeam Brake RightBlinker LeftBlinker Reverse Fog Interior Special1 \u8fd9 \u662f \u4e3a \u67d0\u4e9b \u5177\u6709 \u7279\u6b8a \u706f \uff08 \u4f8b\u5982 \u8b66\u62a5 \u8b66\u62a5\u5668 \uff09 \u7684 \u8f66\u8f86 \u4fdd\u7559 \u7684 \u3002 Special2 \u8fd9 \u662f \u4e3a \u67d0\u4e9b \u5177\u6709 \u7279\u6b8a \u706f \uff08 \u4f8b\u5982 \u8b66\u62a5 \u8b66\u62a5\u5668 \uff09 \u7684 \u8f66\u8f86 \u4fdd\u7559 \u7684 \u3002 All \u6240\u6709 \u706f\u5747\u4eae \u8d77 \u3002 carla . VehiclePhysicsControl \u603b\u7ed3 \u5c06 \u7528\u4e8e \u5c06 carla . Vehicle \u4eff\u771f \u4e3a \u7269\u7406 \u5bf9\u8c61 \u7684 \u53c2\u6570 \u3002 \u4e0d\u8fc7 \uff0c \u8f66\u8f6e \u7684 \u5177\u4f53 \u8bbe\u7f6e \u662f \u4f7f\u7528 carla . WheelPhysicsControl \u89c4\u5b9a \u7684 \u3002 \u5b9e\u4f8b \u53d8\u91cf torque _ curve ( list ( carla . Vector2D ) ) \u66f2\u7ebf \uff0c \u6307\u793a \u5728 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u7279\u5b9a RPM \u4e0b \u6d4b\u91cf \u7684 \u626d\u77e9 \uff08 \u4ee5 Nm \u4e3a \u5355\u4f4d \uff09 \u3002 max _ rpm ( float ) \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u6700\u5927 \u8f6c\u901f \u3002 moi ( float - kg * m 2 ) \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3002 damping _ rate _ full _ throttle ( float ) \u6cb9\u95e8 \u6700\u5927 \u65f6 \u7684 \u963b\u5c3c \u963b\u5c3c\u6bd4 \u3002 damping _ rate _ zero _ throttle _ clutch _ engaged ( float ) \u79bb\u5408 \u79bb\u5408\u5668 \u63a5\u5408 \u65f6 \u6cb9\u95e8 \u4e3a \u96f6\u65f6 \u7684 \u963b\u5c3c \u963b\u5c3c\u6bd4 \u3002 damping _ rate _ zero _ throttle _ clutch _ disengaged ( float ) \u5f53 \u6cb9\u95e8 \u4e3a \u96f6\u4e14 \u79bb\u5408 \u79bb\u5408\u5668 \u5206\u79bb \u65f6 \u7684 \u963b\u5c3c \u963b\u5c3c\u6bd4 \u3002 use _ gear _ autobox ( bool ) \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u914d\u5907 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u3002 gear _ switch _ time ( float - seconds ) \u9f7f\u8f6e \u4e4b\u95f4 \u7684 \u5207\u6362 \u65f6\u95f4 \u3002 clutch _ strength ( float - kg * m 2 / s ) \u8f66\u8f86 \u7684 \u79bb\u5408 \u79bb\u5408\u5668 \u5f3a\u5ea6 \u3002 final _ ratio ( float ) \u4ece \u53d8\u901f \u53d8\u901f\u7bb1 \u5230 \u8f66\u8f6e \u7684 \u56fa\u5b9a \u6bd4\u7387 \u3002 forward _ gears ( list ( carla . GearPhysicsControl ) ) \u5b9a\u4e49 \u8f66\u8f86 \u9f7f\u8f6e \u7684 \u5bf9\u8c61 \u5217\u8868 \u3002 mass ( float - kilograms ) \u8f66\u8f86 \u7684 \u8d28\u91cf \u3002 drag _ coefficient ( float ) \u8f66\u8f86 \u5e95\u76d8 \u7684 \u963b\u529b \u7cfb\u6570 \u3002 center _ of _ mass ( carla . Vector3D - \u7c73 ) \u8f66\u8f86 \u7684 \u8d28\u5fc3 \u3002 steering _ curve ( list ( carla . Vector2D ) ) \u6307\u793a \u7279\u5b9a \u524d\u8fdb \u901f\u5ea6 \u7684 \u6700\u5927 \u8f6c\u5411 \u7684 \u66f2\u7ebf \u3002 use _ sweep _ wheel _ collision ( bool ) \u542f\u7528 \u8f66\u8f6e \u78b0\u649e \u626b\u63cf \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u662f \u7981\u7528 \u7684 \uff0c \u5e76\u4e14 \u5b83 \u4e3a \u6bcf\u4e2a \u8f6e\u5b50 \u4f7f\u7528 \u4ece\u8f74\u5230 \u5730\u677f \u7684 \u7b80\u5355 \u5149\u7ebf \u6295\u5c04 \u3002 \u6b64 \u9009\u9879 \u63d0\u4f9b \u4e86 \u66f4\u597d \u7684 \u78b0\u649e \u6a21\u578b \uff0c \u5176\u4e2d \u68c0\u67e5 \u8f66\u8f6e \u7684 \u6574\u4e2a \u4f53\u79ef \u662f\u5426 \u53d1\u751f \u78b0\u649e \u3002 wheels ( list ( carla . WheelPhysicsControl ) ) \u8f6e\u5b50 \u7269\u7406 \u5bf9\u8c61 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5e94\u8be5 \u6709 4 \u4e2a \u5143\u7d20 \uff0c \u5176\u4e2d \u7d22\u5f15 0 \u5bf9\u5e94 \u4e8e \u5de6 \u524d\u8f6e \uff0c \u7d22\u5f15 1 \u5bf9\u5e94 \u4e8e \u53f3 \u524d\u8f6e \uff0c \u7d22\u5f15 2 \u5bf9\u5e94 \u4e8e \u5de6 \u540e\u8f6e \uff0c \u7d22\u5f15 3 \u5bf9\u5e94 \u4e8e \u53f3 \u540e\u8f6e \u3002 \u5bf9\u4e8e \u4e24\u8f6e \u8f66\u8f86 \uff0c \u524d\u8f6e \u548c \u540e\u8f6e \u8bbe\u7f6e \u76f8\u540c \u7684 \u503c \u3002 \u65b9\u6cd5 __ init __ ( self , torque _ curve = [ [ 0.0 , 500.0 ] , [ 5000.0 , 500.0 ] ] , max _ rpm = 5000.0 , moi = 1.0 , damping _ rate _ full _ throttle = 0.15 , damping _ rate _ zero _ throttle _ clutch _ engaged = 2.0 , damping _ rate _ zero _ throttle _ clutch _ disengaged = 0.35 , use _ gear _ autobox = True , gear _ switch _ time = 0.5 , clutch _ strength = 10.0 , final _ ratio = 4.0 , forward _ gears = list ( ) , drag _ coefficient = 0.3 , center _ of _ mass = [ 0.0 , 0.0 , 0.0 ] , steering _ curve = [ [ 0.0 , 1.0 ] , [ 10.0 , 0.5 ] ] , wheels = list ( ) , use _ sweep _ wheel _ collision = False , mass = 1000.0 ) VehiclePhysicsControl \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u3002 \u53c2\u6570 : torque _ curve ( list ( carla . Vector2D ) ) max _ rpm ( float ) moi ( float - kg * m 2 ) damping _ rate _ full _ throttle ( float ) damping _ rate _ zero _ throttle _ clutch _ engaged ( float ) damping _ rate _ zero _ throttle _ clutch _ disengaged ( float ) use _ gear _ autobox ( bool ) gear _ switch _ time ( float - seconds ) clutch _ strength ( float - kg * m 2 / s ) final _ ratio ( float ) forward _ gears ( list ( carla . GearPhysicsControl ) ) drag _ coefficient ( float ) center _ of _ mass ( carla . Vector3D ) steering _ curve ( carla . Vector2D ) wheels ( list ( carla . WheelPhysicsControl ) ) use _ sweep _ wheel _ collision ( bool ) mass ( float - kilograms ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . VehiclePhysicsControl ) __ ne __ ( self , other = carla . VehiclePhysicsControl ) __ str __ ( self ) carla . VehicleWheelLocation enum \u4ee3\u8868 \u8f66\u8f86 \u4e0a \u6bcf\u4e2a \u8f66\u8f6e \u7684 \u4f4d\u7f6e \u3002 \u7528\u4e8e \u5728 carla . Vehicle . set _ wheel _ steer _ direction \u6216 carla . Vehicle . get _ wheel _ steer _ angle \u4e2d \u8bbe\u7f6e \u89d2\u5ea6 \u65f6 \u8bc6\u522b \u76ee\u6807 \u8f66\u8f6e \u3002 \u5b9e\u4f8b \u53d8\u91cf FL _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u5de6 \u524d\u8f6e \u3002 FR _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u53f3 \u524d\u8f6e \u3002 BL _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u5de6 \u540e\u8f6e \u3002 BR _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u53f3 \u540e\u8f6e \u3002 Front _ Wheel \u4e24\u8f6e \u8f66\u8f86 \u7684 \u524d\u8f6e \u3002 Back _ Wheel \u4e24\u8f6e \u8f66\u8f86 \u7684 \u540e\u8f6e \u3002 carla . Walker \u4ece carla . Actor \u7ee7\u627f \u8be5\u7c7b \u4ece carla . Actor \u7ee7\u627f \u5e76 \u5b9a\u4e49 \u4eff\u771f \u4e2d \u7684 \u884c\u4eba \u3002 Walkers \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 actor \uff0c \u53ef\u4ee5 \u7531 AI ( carla . WalkerAIController ) \u63a7\u5236 \uff0c \u4e5f \u53ef\u4ee5 \u901a\u8fc7 \u811a\u672c \u624b\u52a8 \u63a7\u5236 \uff0c \u4f7f\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . WalkerControl \u6765 \u79fb\u52a8 \u5b83\u4eec \u53ca\u5176 \u9aa8\u9abc \u3002 \u65b9\u6cd5 apply _ control ( self , control ) \u5728 \u4e0b \u4e00\u4e2a \u523b\u5ea6 \u4e0a \uff0c \u63a7\u4ef6 \u5c06 \u4ee5 \u7279\u5b9a \u901f\u5ea6 \u5411 \u7279\u5b9a \u65b9\u5411 \u79fb\u52a8 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u4e5f \u53ef\u4ee5 \u547d\u4ee4 \u8df3\u8dc3 \u3002 \u53c2\u6570 : control ( carla . WalkerControl ) blend _ pose ( self , blend _ value ) \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u4e0e \u52a8\u753b \u7684 \u6df7\u5408 \u503c \u3002 \u8fd9\u4e9b \u503c \u53ef\u4ee5 \u662f \uff1a 0 : \u4ec5 \u663e\u793a \u52a8\u753b 1 : \u4ec5 \u663e\u793a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \uff08 \u7531 \u7528\u6237 \u4f7f\u7528 set _ bones ( ) \u8bbe\u7f6e \uff09 any other : \u5c06 \u5728 \u52a8\u753b \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u4e4b\u95f4 \u63d2\u5165 \u6240\u6709 \u9aa8\u9abc \u4f4d\u7f6e \u3002 \u53c2\u6570 : blend _ value ( float - value from 0 to 1 with the blend percentage ) hide _ pose ( self ) \u9690\u85cf \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u5e76 \u663e\u793a \u52a8\u753b \uff08 \u4e0e \u8c03\u7528 blend _ pose ( 0 ) \u76f8\u540c \uff09 \u3002 show _ pose ( self ) \u663e\u793a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u5e76 \u9690\u85cf \u52a8\u753b \uff08 \u4e0e \u8c03\u7528 blend _ pose ( 1 ) \u76f8\u540c \uff09 \u3002 \u8bbe\u7f6e \u5668 get _ bones ( self ) \u8fd4\u56de \u5305\u542b \u6765\u81ea \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6240\u6709 \u9aa8\u9abc \u53d8\u6362 \u7684 \u7ed3\u6784 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u6211\u4eec \u5728 \u4e09\u4e2a \u4e0d\u540c \u7684 \u7a7a\u95f4 \u4e2d \u83b7\u53d6 \u540d\u79f0 \u53ca\u5176 \u53d8\u6362 \uff1a name : \u9aa8\u9abc \u540d\u79f0 world : \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u53d8\u6362 component : \u57fa\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u67a2\u8f74 \u8fdb\u884c \u53d8\u6362 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002 \u8fd4\u56de : carla . WalkerBoneControlOut Setter : carla . Walker . set _ bones get _ control ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd4\u56de \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u5e94\u7528 \u4e8e \u6b64\u884c \u4eba \u7684 \u63a7\u5236 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . WalkerControl get _ pose _ from _ animation ( self ) \u590d\u5236 \u5f53\u524d \u52a8\u753b \u5e27 \u4f5c\u4e3a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u3002 \u6700\u521d \uff0c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u662f \u4e2d\u6027 \u884c\u4eba \u59ff\u52bf \u3002 \u8bbe\u7f6e \u5668 set _ bones ( self , bones ) \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u9aa8\u9abc \u3002 \u5bf9\u4e8e \u6211\u4eec \u60f3\u8981 \u8bbe\u7f6e \u7684 \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u5bf9 \u53d8\u6362 \u3002 \u4ec5\u4f1a \u8bbe\u7f6e \u6b64 \u5217\u8868 \u4e2d \u7684 \u9aa8\u9abc \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u60a8 \u9700\u8981 \u8bbe\u7f6e \u4ee5\u4e0b \u4fe1\u606f \uff1a name : \u9aa8\u9abc \u540d\u79f0 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002 \u53c2\u6570 : bones ( carla . WalkerBoneControlIn - \u6211\u4eec \u60f3\u8981 \u8bbe\u7f6e \u7684 \u9aa8\u9abc \u5bf9 \uff08 bone _ name \uff0c transform \uff09 \u7684 \u5217\u8868 ) \u83b7\u53d6 \u5668 : carla . Walker . get _ bones \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . WalkerAIController \u4ece carla . Actor \u7ee7\u627f \u5bf9 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8fdb\u884c AI \u63a7\u5236 \u7684 \u7c7b \u3002 \u63a7\u5236 \u63a7\u5236\u5668 \u88ab \u5b9a\u4e49 \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5b83\u4eec \u4e0e \u5176\u4ed6 \u63a7\u5236 \u63a7\u5236\u5668 \u6709 \u5f88\u5927 \u4e0d\u540c \u3002 \u5b83\u4eec \u5728 \u521b\u5efa \u8fc7\u7a0b \u4e2d \u9700\u8981 \u9644\u52a0 \u5230\u7236 Actor \uff0c \u8fd9\u662f \u5b83\u4eec \u5c06 \u63a7\u5236 \u7684 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff08 \u5982\u679c \u60a8 \u5c1a\u672a \u4e86\u89e3 \u5982\u4f55 \u751f\u6210 Actor \uff0c \u8bf7 \u67e5\u770b carla . World \uff09 \u3002 \u4ed6\u4eec \u8fd8 \u9700\u8981 \u4e00\u4e2a \u7279\u6b8a \u7684 \u84dd\u56fe \uff08 \u5df2 \u5728 carla . BlueprintLibrary \u4e2d \u5b9a\u4e49 \u4e3a \u201c controller . ai . walker \u201d \uff09 \u3002 \u8fd9\u662f \u4e00\u4e2a \u7a7a \u7684 \u84dd\u56fe \uff0c \u56e0\u4e3a \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u5728 \u6a21\u62df \u4e2d\u662f \u4e0d \u53ef\u89c1 \u7684 \uff0c \u4f46\u4f1a \u8ddf\u968f \u5176\u7236 \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u6307\u793a \u6bcf \u4e00\u6b65 \u3002 \u65b9\u6cd5 go _ to _ location ( self , destination ) \u8bbe\u7f6e \u884c\u4eba \u5c06 \u5230\u8fbe \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u53c2\u6570 : destination ( carla . Location - \u7c73 ) start ( self ) \u4e3a \u5176\u7236 \u884c\u4eba \u542f\u7528 AI \u63a7\u5236 \u3002 stop ( self ) snippet \u2192 \u7981\u7528 \u5176\u7236 \u884c\u4eba \u7684 AI \u63a7\u5236 \u3002 \u8bbe\u7f6e \u5668 set _ max _ speed ( self , speed = 1.4 ) \u8bbe\u7f6e \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u901f\u5ea6 \uff08 \u4ee5\u7c73 \u6bcf\u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u53c2\u6570 : speed ( float - m / s ) - \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u8f7b\u677e \u6b65\u884c \u901f\u5ea6 \u3002 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . WalkerBoneControlIn \u8be5\u7c7b \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u63d0\u4f9b \u9aa8\u9abc \u7279\u5b9a \u7684 \u64cd\u4f5c \u3002 \u4e3a\u4e86 \u6e05\u6670 \u8d77 \u89c1 \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u9aa8\u9abc \u5df2\u7ecf \u7edf\u4e00 \uff0c \u5e76\u4e14 \u5e94\u7528 \u4e8e \u6bcf\u4e2a \u9aa8\u9abc \u7684 \u53d8\u6362 \u59cb\u7ec8 \u76f8\u5bf9 \u4e8e \u5176\u7236 \u9aa8\u9abc \u3002 \u8bf7 \u67e5\u770b \u6b64\u5904 \uff0c \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u521b\u5efa \u52a9\u884c\u5668 \u5e76 \u5b9a\u4e49 \u5176 \u8fd0\u52a8 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf bone _ transforms ( list ( [ name , transform ] ) ) \u5217\u51fa \u6211\u4eec \u8981 \u8bbe\u7f6e \u7684 \u6bcf\u4e2a \u9aa8\u9abc \u7684 \u6570\u636e \uff1a name : \u9aa8\u9abc \u540d\u79f0 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002 \u65b9\u6cd5 __ init __ ( self , list ( name , transform ) ) \u521d\u59cb \u521d\u59cb\u5316 \u4e00\u4e2a \u5305\u542b \u8981 \u5728 \u523b\u5ea6 \u4e0a \u5e94\u7528 \u7684 \u79fb\u52a8 \u7684 \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u4e0e \u9aa8\u9abc \u7684 \u540d\u79f0 \u548c \u5c06 \u5e94\u7528 \u4e8e \u5b83 \u7684 \u53d8\u6362 \u4e00\u8d77 \u5217\u51fa \u3002 \u53c2\u6570 : list ( name , transform ) ( tuple ) \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . WalkerBoneControlOut \u8be5\u7c7b \u7528\u4e8e \u8fd4\u56de \u884c\u4eba \u7684 \u6240\u6709 \u9aa8\u9abc \u4f4d\u7f6e \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u6211\u4eec \u5f97\u5230 \u5b83 \u7684 \u540d\u79f0 \u53ca\u5176 \u5728 \u4e09\u4e2a \u4e0d\u540c \u7a7a\u95f4 \uff08 \u4e16\u754c \u3001 \u6f14\u5458 \u548c \u76f8\u5bf9 \uff09 \u4e2d \u7684 \u53d8\u6362 \u3002 \u5b9e\u4f8b \u53d8\u91cf bone _ transforms ( list ( [ name , world , actor , relative ] ) ) \u6bcf\u4e2a \u9aa8\u9abc \u7684 \u4e00\u4e2a \u6761\u76ee \u5217\u8868 \uff0c \u5305\u542b \u4ee5\u4e0b \u4fe1\u606f \uff1a name : \u9aa8\u9abc \u540d\u79f0 world : \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u53d8\u6362 component : \u57fa\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u67a2\u8f74 \u8fdb\u884c \u53d8\u6362 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . WalkerControl \u6b64\u7c7b \u5b9a\u4e49 \u4e86 \u53ef\u4ee5 \u5411 carla . Walker \u547d\u4ee4 \u901a\u8fc7 \u811a\u672c \u63a7\u5236 \u5b83 \u7684 \u7279\u5b9a \u65b9\u5411 \u3002 \u53ef\u4ee5 \u4e3a \u884c\u4eba \u89e3\u51b3 AI \u63a7\u5236 \uff0c \u4f46 \u7528\u4e8e \u6b64 \u76ee\u7684 \u7684 \u63a7\u4ef6 \u662f carla . WalkerAIController \u3002 \u5b9e\u4f8b \u53d8\u91cf direction ( carla . Vector3D ) \u4f7f\u7528 \u4e0e \u884c\u4eba \u65b9\u5411 \u76f8\u5bf9 \u5e94 \u7684 \u5168\u5c40 \u5750\u6807 \u7684 \u5411\u91cf \u3002 speed ( float - m / s ) \u63a7\u5236 \u884c\u4eba \u901f\u5ea6 \u7684 \u6807\u91cf \u503c \u3002 jump ( bool ) \u5982\u679c \u4e3a True \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5c06 \u6267\u884c \u8df3\u8dc3 \u3002 \u65b9\u6cd5 __ init __ ( self , direction = [ 1.0 , 0.0 , 0.0 ] , speed = 0.0 , jump = False ) \u53c2\u6570 : direction ( carla . Vector3D ) speed ( float - m / s ) jump ( bool ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . WalkerControl ) \u548c other \u6bd4\u8f83 \u6bcf\u4e2a \u53d8\u91cf \uff0c \u5982\u679c \u5b83\u4eec \u90fd \u76f8\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 __ ne __ ( self , other = carla . WalkerControl ) \u548c other \u6bd4\u8f83 \u6bcf\u4e2a \u53d8\u91cf \uff0c \u5982\u679c \u5176\u4e2d \u4efb\u4f55 \u4e00\u4e2a \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 __ str __ ( self ) carla . Waypoint CARLA \u4e2d \u7684 \u822a\u8def \u70b9 \u88ab \u63cf\u8ff0 \u4e3a 3D \u5b9a\u5411 \u70b9 \u3002 \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u53ef\u4ee5 \u5b9a\u4f4d \u9053\u8def \u4e2d \u7684 \u8def\u70b9 \u5e76 \u6839\u636e \u8f66\u9053 \u786e\u5b9a \u5176 \u65b9\u5411 \u3002 \u4ed6\u4eec \u8fd8 \u5b58\u50a8 \u5c5e\u4e8e \u8be5\u70b9 \u7684 \u6709\u5173 \u5176 \u8f66\u9053 \u548c \u8f66\u9053 \u6807\u8bb0 \u7684 \u9053\u8def \u4fe1\u606f \u3002 \u6709\u5173 \u822a\u8def \u70b9 \u548c \u8def\u7ebf API \u7684 \u6240\u6709 \u4fe1\u606f \u5747 \u6309 OpenDRIVE \u6587\u4ef6 \u63d0\u4f9b \u7684 \u65b9\u5f0f \u68c0\u7d22 \u3002 \u4e00\u65e6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bf7\u6c42 \u5730\u56fe \u5bf9\u8c61 \uff0c \u5c31 \u4e0d\u518d \u9700\u8981 \u901a\u4fe1 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( int ) \u6807\u8bc6 \u6807\u8bc6\u7b26 \u662f \u4f7f\u7528 \u4e0e OpenDRIVE \u51e0\u4f55 \u4e2d \u7684 \u6240\u8ff0 \u70b9 \u76f8\u5bf9 \u5e94 \u7684 road , section , lane \u548c s \u503c \u7684 \u54c8\u5e0c \u7ec4\u5408 \u751f\u6210 \u7684 \u3002 s \u7cbe\u5ea6 \u8bbe\u7f6e \u4e3a 2 \u5398\u7c73 \uff0c \u56e0\u6b64 \u5728 \u540c\u4e00 \u9053\u8def \u3001 \u8def\u6bb5 \u548c \u8f66\u9053 \u8ddd\u79bb \u4e2d\u8ddd\u79bb \u5c0f\u4e8e 2 \u5398\u7c73 \u7684 2 \u4e2a \u822a\u8def \u70b9\u5c06 \u5177\u6709 \u76f8\u540c \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 transform ( carla . Transform ) \u6839\u636e \u5f53\u524d \u8f66\u9053 \u4fe1\u606f \u786e\u5b9a \u8def\u70b9 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u8be5 \u6570\u636e \u662f \u5728 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u8bbf\u95ee \u65f6 \u8ba1\u7b97 \u7684 \u3002 \u5f53 \u521b\u5efa \u5927\u91cf \u822a\u8def \u70b9 \u4f46 \u4e0d \u9700\u8981 \u5b83\u4eec \u7684 \u7279\u5b9a \u8f6c\u6362 \u65f6 \uff0c \u5b83 \u4e0d\u4f1a \u7acb\u5373 \u521b\u5efa \uff0c \u4ee5 \u51cf\u8f7b \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u3002 road _ id ( int ) OpenDRIVE \u9053\u8def \u7684 id \u3002 section _ id ( int ) OpenDRIVE \u90e8\u5206 \u7684 id \uff0c \u57fa\u4e8e \u5b83\u4eec \u6700\u521d \u5b9a\u4e49 \u7684 \u987a\u5e8f \u3002 is _ junction ( bool ) \u5982\u679c \u5f53\u524d \u8def\u70b9 \u4f4d\u4e8e OpenDRIVE \u5b9a\u4e49 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \uff0c \u5219 \u4e3a True \u3002 junction _ id ( int ) OpenDRIVE \u7ed3\u70b9 \u7684 id \u3002 \u6709\u5173 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 OpenDRIVE \u6587\u6863 \u3002 lane _ id ( int ) OpenDRIVE \u8f66\u9053 \u7684 id \uff0c \u8be5\u503c \u53ef\u4ee5 \u662f \u6b63\u6570 \u6216 \u8d1f\u6570 \uff0c \u8868\u793a \u5f53\u524d \u8f66\u9053 \u76f8\u5bf9 \u4e8e \u9053\u8def \u7684 \u65b9\u5411 \u3002 \u6709\u5173 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 OpenDRIVE \u6587\u6863 \u3002 s ( float ) OpenDRIVE \u5f53\u524d \u4f4d\u7f6e \u7684 s \u503c \u3002 lane _ width ( float ) \u5f53\u524d s \u5904 \u9053\u8def \u7684 \u6c34\u5e73 \u5c3a\u5bf8 \u3002 lane _ change ( carla . LaneChange ) \u5f53\u524d \u8def\u70b9 \u4f4d\u7f6e \u7684 \u8f66\u9053 \u53d8\u66f4 \u5b9a\u4e49 \uff0c \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u7684 \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u3002 \u5b83 \u8bf4\u660e \u662f\u5426 \u53ef\u4ee5 \u53d8\u9053 \u4ee5\u53ca \u671d \u54ea\u4e2a \u65b9\u5411 \u53d8\u9053 \u3002 lane _ type ( carla . LaneType ) \u5f53\u524d Waypoint \u7684 \u8f66\u9053 \u7c7b\u578b \uff0c \u57fa\u4e8e OpenDRIVE 1.4 \u6807\u51c6 \u3002 right _ lane _ marking ( carla . LaneMarking ) \u57fa\u4e8e Waypoint \u65b9\u5411 \u7684 \u53f3 \u8f66\u9053 \u6807\u8bb0 \u4fe1\u606f \u3002 left _ lane _ marking ( carla . LaneMarking ) \u57fa\u4e8e Waypoint \u65b9\u5411 \u7684 \u5de6 \u8f66\u9053 \u6807\u8bb0 \u4fe1\u606f \u3002 \u65b9\u6cd5 next ( self , distance ) \u5f53\u524d \u70b9 \u67d0\u4e2a \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u7684 \u822a\u8def \u70b9 \u5217\u8868 distance \u5b83\u4f1a \u8003\u8651 \u9053\u8def \u53ca\u5176 \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u800c \u4e0d \u6267\u884c \u4efb\u4f55 \u8f66\u9053 \u53d8\u66f4 \uff0c \u5e76 \u4e3a \u6bcf\u4e2a \u9009\u9879 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5982\u679c \u8f66\u9053 \u5728 \u6307\u5b9a \u8ddd\u79bb \u8ddd\u79bb\u5904 \u672a \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u8f66\u9053 \u76f8\u8fde \uff0c \u5219 \u5217\u8868 \u53ef\u80fd \u4e3a\u7a7a \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u83b7\u53d6 \u4e0b \u4e00\u4e2a \u822a\u8def \u70b9 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint ) next _ until _ lane _ end ( self , distance ) \u8fd4\u56de \u4ece \u8fd9\u91cc \u5230 \u8f66\u9053 \u672b\u7aef \u7684 \u8def\u70b9 \u5217\u8868 \uff0c \u8fd9\u4e9b \u8def\u70b9 \u4e4b\u95f4 \u4ee5 \u4e00\u5b9a \u8ddd\u79bb distance \u5206\u9694 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u822a\u8def \u70b9 \u4e4b\u95f4 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint ) previous ( self , distance ) \u4f46 \u4e0e \u8f66\u9053 \u76f8\u53cd \u65b9\u5411 \u7684 \u8def\u70b9 \u5217\u8868 distance \u4e0e next ( ) \u7c7b\u4f3c \uff0c \u5b83\u4f1a \u8003\u8651 \u9053\u8def \u53ca\u5176 \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u800c \u4e0d \u6267\u884c \u4efb\u4f55 \u8f66\u9053 \u53d8\u66f4 \uff0c \u5e76 \u4e3a \u6bcf\u4e2a \u9009\u9879 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5982\u679c \u8f66\u9053 \u5728 \u6307\u5b9a \u8ddd\u79bb \u8ddd\u79bb\u5904 \u672a \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u8f66\u9053 \u76f8\u8fde \uff0c \u5219 \u5217\u8868 \u53ef\u80fd \u4e3a\u7a7a \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u83b7\u53d6 \u5148\u524d \u822a\u8def \u70b9 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint ) previous _ until _ lane _ start ( self , distance ) \u8fd4\u56de \u4ece \u8fd9\u91cc \u5230 \u8f66\u9053 \u8d77\u70b9 \u7684 \u8def\u70b9 \u5217\u8868 \uff0c \u4ee5 \u4e00\u5b9a \u7684 \u8ddd\u79bb distance \u5206\u9694 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u822a\u8def \u70b9 \u4e4b\u95f4 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint ) \u8bbe\u7f6e \u5668 get _ junction ( self ) \u5982\u679c \u8def\u5f84 \u70b9 \u5c5e\u4e8e \u8def\u53e3 \uff0c \u5219 \u6b64 \u65b9\u6cd5 \u8fd4\u56de \u5173\u8054 \u7684 \u8def\u53e3 \u5bf9\u8c61 \u3002 \u5426\u5219 \u8fd4\u56de null \u3002 \u8fd4\u56de : carla . Junction get _ landmarks ( self , distance , stop _ at _ junction = False ) \u8fd4\u56de \u4ece \u5f53\u524d \u822a\u8def \u70b9\u5230 \u6307\u5b9a \u8ddd\u79bb \u7684 \u9053\u8def \u4e0a \u7684 \u5730\u6807 \u5217\u8868 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u4ece \u5f53\u524d \u822a\u8def \u70b9 \u641c\u7d22 \u5730 \u6807\u7684 \u6700\u5927 \u8ddd\u79bb \u3002 stop _ at _ junction ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u901a\u8fc7 \u8def\u53e3 \u7684 \u5730\u6807 \u641c\u7d22 \u3002 \u8fd4\u56de : list ( carla . Landmark ) get _ landmarks _ of _ type ( self , distance , type , stop _ at _ junction = False ) \u8fd4\u56de \u4ece \u5f53\u524d \u8def\u5f84 \u70b9\u5230 \u6307\u5b9a \u8ddd\u79bb \u7684 \u6307\u5b9a \u7c7b\u578b \u9053\u8def \u4e2d \u7684 \u5730\u6807 \u5217\u8868 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u4ece \u5f53\u524d \u822a\u8def \u70b9 \u641c\u7d22 \u5730 \u6807\u7684 \u6700\u5927 \u8ddd\u79bb \u3002 type ( str ) - \u8981 \u641c\u7d22 \u7684 \u5730\u6807 \u7c7b\u578b \u3002 stop _ at _ junction ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u901a\u8fc7 \u8def\u53e3 \u7684 \u5730\u6807 \u641c\u7d22 \u3002 \u8fd4\u56de : list ( carla . Landmark ) get _ left _ lane ( self ) \u6839\u636e \u5f53\u524d \u8def\u70b9 \u7684 \u65b9\u5411 \u5728 \u5de6 \u8f66\u9053 \u4e2d\u5fc3 \u751f\u6210 \u8def\u70b9 \uff0c \u540c\u65f6 \u8003\u8651 \u8be5 \u4f4d\u7f6e \u662f\u5426 \u5141\u8bb8 \u53d8\u9053 \u3002 \u5982\u679c \u8f66\u9053 \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 \u8fd4\u56de : carla . Waypoint get _ right _ lane ( self ) \u6839\u636e \u5f53\u524d \u8def\u70b9 \u7684 \u65b9\u5411 \u5728 \u53f3 \u8f66\u9053 \u4e2d\u5fc3 \u751f\u6210 \u8def\u70b9 \uff0c \u5e76 \u8003\u8651 \u8be5 \u4f4d\u7f6e \u662f\u5426 \u5141\u8bb8 \u53d8\u9053 \u3002 \u5982\u679c \u8f66\u9053 \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 \u8fd4\u56de : carla . Waypoint \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . WeatherParameters \u6b64\u7c7b \u5b9a\u4e49 \u4e86 \u5305\u542b \u5149\u7167 \u548c \u5929\u6c14 \u89c4\u8303 \u7684 \u5bf9\u8c61 \uff0c \u8fd9\u4e9b \u89c4\u8303 \u7a0d\u540e \u53ef\u4ee5 \u5e94\u7528 \u5728 carla . World \u4e2d \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9\u4e9b \u6761\u4ef6 \u4ec5 \u5f71\u54cd sensor . camera . rgb \u3002 \u5b83\u4eec \u65e2 \u4e0d \u5f71\u54cd \u6f14\u5458 \u7684 \u7269\u7406 \u7279\u6027 \uff0c \u4e5f \u4e0d \u5f71\u54cd \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8fd9\u4e9b \u53c2\u6570 \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u72ec\u7acb \u4e8e \u5176\u4ed6 \u53c2\u6570 \u8d77 \u4f5c\u7528 \u3002 \u589e\u52a0 \u964d\u96e8 \u96e8\u91cf \u964d\u96e8\u91cf \u4e0d\u4f1a \u81ea\u52a8 \u5f62\u6210 \u6c34\u5751 \uff0c \u4e5f \u4e0d\u4f1a \u6539\u53d8 \u9053\u8def \u7684 \u6e7f\u5ea6 \u3002 \u8fd9 \u53ef\u4ee5 \u5b9e\u73b0 \u66f4\u597d \u7684 \u5b9a\u5236 \uff0c \u4f46 \u4e5f \u610f\u5473 \u610f\u5473\u7740 \u9700\u8981 \u7f16\u5199 \u73b0\u5b9e \u6761\u4ef6 \u7684 \u811a\u672c \u3002 \u7136\u800c \uff0c \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u5b9e\u9645 \u8fd0\u884c \u7684 \u52a8\u6001 \u5929\u6c14 \u6761\u4ef6 \u7684 \u793a\u4f8b \u3002 \u5b9e\u4f8b \u53d8\u91cf cloudiness ( float ) \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \uff0c 0 \u8868\u793a \u6674\u6717 \u7684 \u5929\u7a7a \uff0c 100 \u8868\u793a \u5b8c\u5168 \u88ab \u4e91 \u8986\u76d6 \u3002 precipitation ( float ) \u964d\u96e8 \u5f3a\u5ea6 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \uff0c 0 \u8868\u793a \u65e0\u96e8 \uff0c 100 \u8868\u793a \u5927\u96e8 \u3002 precipitation _ deposits ( float ) \u786e\u5b9a \u6c34\u5751 \u7684 \u521b\u5efa \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \uff0c 0 \u8868\u793a \u5b8c\u5168 \u6ca1\u6709 \u6c34 \uff0c 100 \u8868\u793a \u9053\u8def \u5b8c\u5168 \u88ab \u6c34 \u8986\u76d6 \u3002 \u6c34\u5751 \u662f \u7528 \u9759\u6001 \u566a\u97f3 \u521b\u5efa \u7684 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83\u4eec \u603b\u662f \u51fa\u73b0 \u5728 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 wind _ intensity ( float ) \u63a7\u5236 \u98ce \u7684 \u5f3a\u5ea6 \uff0c \u503c \u4ece 0 \uff08 \u65e0 \u98ce \uff09 \u5230 100 \uff08 \u5f3a\u98ce \uff09 \u3002 \u98ce \u786e\u5b9e \u4f1a \u5f71\u54cd \u964d\u96e8 \u65b9\u5411 \u548c \u6811\u53f6 \uff0c \u56e0\u6b64 \u9650\u5236 \u8be5\u503c \u4ee5 \u907f\u514d \u52a8\u753b \u95ee\u9898 \u3002 sun _ azimuth _ angle ( float - \u5ea6 ) \u592a\u9633 \u7684 \u65b9\u4f4d \u65b9\u4f4d\u89d2 \u3002 \u503c \u8303\u56f4 \u4e3a 0 \u5230 360 \u3002 \u96f6\u662f \u7531 \u865a\u5e7b \u5f15\u64ce \u786e\u5b9a \u7684 \u7403\u4f53 \u4e2d \u7684 \u539f\u70b9 \u3002 sun _ altitude _ angle ( float - \u5ea6 ) \u592a\u9633 \u7684 \u9ad8\u5ea6 \u89d2 \u3002 \u503c \u8303\u56f4 \u4ece - 90 \u5230 90 \uff0c \u5206\u522b \u5bf9\u5e94 \u4e8e \u5348\u591c \u548c \u4e2d\u5348 \u3002 fog _ density ( float ) \u96fe \u6d53\u5ea6 \u6216 \u539a\u5ea6 \u3002 \u5b83 \u4ec5 \u5f71\u54cd RGB \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \u3002 fog _ distance ( float - \u7c73 ) \u96fe \u5f00\u59cb \u8ddd\u79bb \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 \u65e0\u7a77 \u65e0\u7a77\u5927 \u3002 wetness ( float ) \u6e7f\u5ea6 \u5f3a\u5ea6 \u3002 \u5b83 \u4ec5 \u5f71\u54cd RGB \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \u3002 fog _ falloff ( float ) \u96fe \u7684 \u5bc6\u5ea6 \uff08 \u4ee5 \u7279\u5b9a \u8d28\u91cf \u8ba1 \uff09 \u4ece 0 \u5230 \u65e0\u7a77 \u65e0\u7a77\u5927 \u3002 \u503c\u8d8a \u5927 \uff0c \u96fe\u6c14 \u8d8a \u6d53\u91cd \uff0c \u96fe\u6c14 \u8fbe\u5230 \u7684 \u9ad8\u5ea6 \u4e5f \u8d8a \u5c0f \u3002 \u5bf9\u5e94 \u4e8e UE \u6587\u6863 \u4e2d \u7684 \u96fe \u9ad8\u5ea6 \u8870\u51cf \u3002 \u5982\u679c \u503c\u4e3a 0 \uff0c \u96fe \u5c06 \u6bd4 \u7a7a\u6c14 \u4eae \uff0c \u5e76 \u8986\u76d6 \u6574\u4e2a \u573a\u666f \u3002 \u503c\u4e3a 1 \u65f6 \uff0c \u5bc6\u5ea6 \u5927\u7ea6 \u4e0e \u7a7a\u6c14 \u4e00\u6837 \uff0c \u53ef \u5230\u8fbe \u6b63\u5e38 \u5927\u5c0f \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u5bf9\u4e8e \u5927\u4e8e 5 \u7684 \u503c \uff0c \u7a7a\u6c14 \u5c06 \u975e\u5e38 \u7a20\u5bc6 \uff0c \u4ee5\u81f3 \u81f3\u4e8e \u4ee5\u81f3\u4e8e \u5728 \u5730\u9762 \u4e0a\u4f1a \u88ab \u538b\u7f29 \u3002 scattering _ intensity ( float ) \u63a7\u5236 \u5149\u5bf9 \u4f53\u79ef \u96fe \u7684 \u8d21\u732e \u7a0b\u5ea6 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 mie _ scattering _ scale ( float ) \u63a7\u5236 \u5149 \u4e0e \u5927 \u9897\u7c92 \uff08 \u5982 \u82b1\u7c89 \u6216 \u7a7a\u6c14 \u6c61\u67d3 \u7a7a\u6c14\u6c61\u67d3 \uff09 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \uff0c \u5bfc\u81f4 \u5929\u7a7a \u6726\u80e7 \uff0c \u5149\u6e90 \u5468\u56f4 \u6709 \u5149\u6655 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 rayleigh _ scattering _ scale ( float ) \u63a7\u5236 \u5149 \u4e0e \u7a7a\u6c14 \u5206\u5b50 \u7b49 \u5c0f \u7c92\u5b50 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5149 \u7684 \u6ce2\u957f \uff0c \u5bfc\u81f4 \u767d\u5929 \u7684 \u5929\u7a7a \u4e3a \u84dd\u8272 \uff0c \u665a\u4e0a \u7684 \u5929\u7a7a \u4e3a \u7ea2\u8272 \u3002 dust _ storm ( float ) \u786e\u5b9a \u6c99\u5c18 \u5c18\u66b4 \u6c99\u5c18\u66b4 \u5929\u6c14 \u7684 \u5f3a\u5ea6 \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \u3002 \u65b9\u6cd5 __ init __ ( self , cloudiness = 0.0 , precipitation = 0.0 , precipitation _ deposits = 0.0 , wind _ intensity = 0.0 , sun _ azimuth _ angle = 0.0 , sun _ altitude _ angle = 0.0 , fog _ density = 0.0 , fog _ distance = 0.0 , wetness = 0.0 , fog _ falloff = 0.0 , scattering _ intensity = 0.0 , mie _ scattering _ scale = 0.0 , rayleigh _ scattering _ scale = 0.0331 ) \u521d\u59cb \u521d\u59cb\u5316 \u5b9a\u4e49 \u5929\u6c14 \u6761\u4ef6 \u7684 \u5bf9\u8c61 \u7684 \u65b9\u6cd5 \u3002 \u8be5\u7c7b \u6709 \u4e00\u4e9b \u9488\u5bf9 \u4e0d\u540c \u4e2d\u5348 \u548c \u65e5\u843d \u6761\u4ef6 \u7684 \u9884\u8bbe \uff0c \u5982 \u4e0b\u9762 \u7684 \u6ce8\u91ca \u6240\u793a \u3002 \u53c2\u6570 : cloudiness ( float ) - 0 \u4e3a \u6674\u5929 \uff0c 100 \u4e3a \u9634\u5929 \u3002 precipitation ( float ) - 0 \u8868\u793a \u5b8c\u5168 \u6ca1\u6709 \u4e0b\u96e8 \uff0c 100 \u8868\u793a \u5927\u96e8 \u3002 precipitation _ deposits ( float ) - 0 \u8868\u793a \u9053\u8def \u4e0a \u6ca1\u6709 \u6c34\u5751 \uff0c 100 \u8868\u793a \u9053\u8def \u5b8c\u5168 \u88ab \u96e8\u6c34 \u8986\u76d6 \u3002 wind _ intensity ( float ) - 0 \u8868\u793a \u5e73\u6d6a \u98ce\u5e73\u6d6a\u9759 \uff0c 100 \u8868\u793a \u5f3a\u98ce \u3002 sun _ azimuth _ angle ( float - \u5ea6 ) - 0 \u662f \u4efb\u610f \u5317 \uff0c 180 \u662f \u5176 \u5bf9\u5e94 \u7684 \u5357 \u3002 sun _ altitude _ angle ( float - \u5ea6 ) - 90 \u662f \u4e2d\u5348 \uff0c - 90 \u662f \u5348\u591c \u3002 fog _ density ( float ) - \u96fe \u7684 \u6d53\u5ea6 \u6216 \u539a\u5ea6 \uff0c \u4ece 0 \u5230 100 \u3002 fog _ distance ( float - \u7c73 ) - \u96fe \u5f00\u59cb \u7684 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 wetness ( float ) - \u9053\u8def \u7684 \u6e7f\u5ea6 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u4ece 0 \u5230 100 \u3002 fog _ falloff ( float ) - \u96fe \u7684 \u5bc6\u5ea6 \uff08 \u7279\u5b9a \u8d28\u91cf \uff09 \uff0c \u4ece 0 \u5230 \u65e0\u7a77 \u65e0\u7a77\u5927 \u3002 scattering _ intensity ( float ) - \u63a7\u5236 \u5149\u7ebf \u5bf9 \u4f53\u79ef \u96fe \u7684 \u8d21\u732e \u7a0b\u5ea6 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 mie _ scattering _ scale ( float ) - \u63a7\u5236 \u5149 \u4e0e \u5927 \u9897\u7c92 \uff08 \u5982 \u82b1\u7c89 \u6216 \u7a7a\u6c14 \u6c61\u67d3 \u7a7a\u6c14\u6c61\u67d3 \uff09 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \uff0c \u5bfc\u81f4 \u5929\u7a7a \u6726\u80e7 \uff0c \u5149\u6e90 \u5468\u56f4 \u6709 \u5149\u6655 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 rayleigh _ scattering _ scale ( float ) - \u63a7\u5236 \u5149 \u4e0e \u7a7a\u6c14 \u5206\u5b50 \u7b49 \u5c0f \u9897\u7c92 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5149 \u7684 \u6ce2\u957f \uff0c \u5bfc\u81f4 \u767d\u5929 \u7684 \u5929\u7a7a \u4e3a \u84dd\u8272 \uff0c \u665a\u4e0a \u7684 \u5929\u7a7a \u4e3a \u7ea2\u8272 \u3002 \u7b14\u8bb0 : ClearNoon , CloudyNoon , WetNoon , WetCloudyNoon , SoftRainNoon , MidRainyNoon , HardRainNoon , ClearSunset , CloudySunset , WetSunset , WetCloudySunset , SoftRainSunset , MidRainSunset , HardRainSunset . \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other ) \u5982\u679c \u4e24\u4e2a \u5bf9\u8c61 \u7684 \u53d8\u91cf \u76f8\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ ne __ ( self , other ) \u5982\u679c \u4e24\u4e2a \u5bf9\u8c61 \u7684 \u53d8\u91cf \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) carla . WheelPhysicsControl \u4e3a \u8f66\u8f6e \u5bf9\u8c61 \u5b9a\u4e49 \u7279\u5b9a \u7269\u7406 \u53c2\u6570 \u7684 \u7c7b \uff0c \u8fd9\u4e9b \u8f66\u8f6e \u5bf9\u8c61 \u5c06 \u6210\u4e3a carla . VehiclePhysicsControl \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u4ee5 \u5c06 \u8f66\u8f86 \u4eff\u771f \u4e3a \u6750\u8d28 \u5bf9\u8c61 \u3002 \u5b9e\u4f8b \u53d8\u91cf tire _ friction ( float ) \u6307\u793a \u8f66\u8f6e \u6469\u64e6 \u6469\u64e6\u529b \u7684 \u6807\u91cf \u503c \u3002 damping _ rate ( float ) \u8f66\u8f6e \u7684 \u963b\u5c3c \u7387 \u3002 max _ steer _ angle ( float - \u5ea6 ) \u8f66\u8f6e \u53ef\u4ee5 \u8f6c\u5411 \u7684 \u6700\u5927 \u89d2\u5ea6 \u3002 radius ( float - centimeters ) \u8f6e\u5b50 \u7684 \u534a\u5f84 \u3002 max _ brake _ torque ( float - N * m ) \u6700\u5927 \u5236\u52a8 \u626d\u77e9 \u3002 max _ handbrake _ torque ( float - N * m ) \u6700\u5927 \u624b\u5239 \u626d\u77e9 \u3002 position ( carla . Vector3D ) \u8f66\u8f6e \u7684 \u4e16\u754c \u4f4d\u7f6e \u3002 \u8fd9\u662f \u4e00\u4e2a \u53ea\u8bfb \u53c2\u6570 \u3002 long _ stiff _ value ( float - kg per radian ) \u6bcf \u5355\u4f4d \u91cd\u529b \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u8f6e\u80ce \u7eb5\u5411 \u521a\u5ea6 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u4e2a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \u3002 lat _ stiff _ max _ load ( float ) \u6700\u5927 \u6807\u51c6 \u6807\u51c6\u5316 \u8f6e\u80ce \u8d1f\u8f7d \uff0c \u5728 \u8be5 \u8d1f\u8f7d \u4e0b \uff0c \u65e0\u8bba \u5411 \u8f6e\u80ce \u65bd\u52a0 \u591a\u5c11 \u989d\u5916 \u8d1f\u8f7d \uff0c \u8f6e\u80ce \u90fd \u4e0d\u518d \u63d0\u4f9b \u4fa7\u5411 \u521a\u5ea6 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u4e2a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \u3002 lat _ stiff _ value ( float ) \u6bcf \u5355\u4f4d \u6a2a\u5411 \u6ed1\u79fb \u7684 \u6700\u5927 \u521a\u5ea6 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u4e2a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \u3002 \u65b9\u6cd5 __ init __ ( self , tire _ friction = 2.0 , damping _ rate = 0.25 , max _ steer _ angle = 70.0 , radius = 30.0 , max _ brake _ torque = 1500.0 , max _ handbrake _ torque = 3000.0 , position = ( 0.0 , 0.0 , 0.0 ) ) \u53c2\u6570 : tire _ friction ( float ) damping _ rate ( float ) max _ steer _ angle ( float - \u5ea6 ) radius ( float - \u5398\u7c73 ) max _ brake _ torque ( float - N * m ) max _ handbrake _ torque ( float - N * m ) position ( carla . Vector3D - \u7c73 ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . WheelPhysicsControl ) __ ne __ ( self , other = carla . WheelPhysicsControl ) __ str __ ( self ) carla . World \u4e16\u754c \u5bf9\u8c61 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \uff0c \u4ee5\u4fbf \u4e3a \u4eff\u771f \u63d0\u4f9b \u4e00\u4e2a \u53d1\u751f \u7684 \u5730\u65b9 \u3002 \u4e16\u754c \u5305\u542b \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u7684 \u5730\u56fe \uff0c \u5373 \u8d44\u4ea7 \uff0c \u800c \u4e0d\u662f \u5bfc\u822a \u5730\u56fe \u3002 \u5bfc\u822a \u5730\u56fe \u662f carla . Map \u7c7b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b83 \u8fd8 \u7ba1\u7406 \u5176\u4e2d \u7684 \u5929\u6c14 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6bcf\u4e2a \u4eff\u771f \u53ea\u80fd \u6709 \u4e00\u4e2a \u4e16\u754c \uff0c \u4f46 \u53ef\u4ee5 \u968f\u65f6 \u66f4\u6539 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( int ) \u4e0e \u8fd9\u4e2a \u4e16\u754c \u76f8\u5173 \u7684 \u5267\u96c6 \u7684 ID \u3002 \u5267\u96c6 \u662f \u4eff\u771f \u7684 \u4e0d\u540c \u9636\u6bb5 \u3002 \u6bcf\u5f53 \u4e16\u754c \u88ab \u7981\u7528 \u6216 \u91cd\u65b0 \u52a0\u8f7d \u65f6 \uff0c \u8fd9\u4e9b \u90fd \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u8ddf\u8e2a \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u907f\u514d \u53ef\u80fd \u51fa\u73b0 \u7684 \u95ee\u9898 \u3002 debug ( carla . DebugHelper ) \u8d1f\u8d23 \u521b\u5efa \u4e0d\u540c \u7684 \u5f62\u72b6 \u4ee5 \u8fdb\u884c \u8c03\u8bd5 \u3002 \u67e5\u770b \u5b83 \u7684 \u7c7b \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u65b9\u6cd5 apply _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter ( normal , diffuse , etc ) \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u5bf9\u5e94 \u4e8e object _ name \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter ( normal , diffuse , etc ) \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u5bf9\u5e94 \u4e8e objects _ name _ list \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ float _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter \uff08 \u6cd5\u7ebf \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7b49 \uff09 \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u4e0e object _ name \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u5bf9\u5e94 \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ float _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter \uff08 \u6cd5\u7ebf \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7b49 \uff09 \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u4e0e objects _ name _ list \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u5bf9\u5e94 \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ settings ( self , world _ settings ) \u6b64 \u65b9\u6cd5 \u5c06 \u5bf9\u8c61 \u4e2d \u5305\u542b \u7684 \u8bbe\u7f6e \u5e94\u7528 \u4e8e \u8fd0\u884c \u7684 \u4eff\u771f \uff0c \u5e76 \u8fd4\u56de \u5b83\u4eec \u6240 \u5b9e\u73b0 \u7684 \u5e27 \u7684 ID \u3002 \u53c2\u6570 : world _ settings ( carla . WorldSettings ) \u8fd4\u56de : int \u8b66\u544a : \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u672c\u6587 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 apply _ textures _ to _ object ( self , object _ name , diffuse _ texture , emissive _ texture , normal _ texture , ao _ roughness _ metallic _ emissive _ texture ) \u5c06 carla . MaterialParameter \u4e2d \u7684 \u6240\u6709 \u7eb9\u7406 \u5b57 \u6bb5 \u5e94\u7528 \u5230 \u5bf9\u8c61 object _ name \u3002 \u8fd9\u91cc \u4e0d\u4f1a \u5e94\u7528 \u7a7a \u7eb9\u7406 \u3002 \u53c2\u6570 : object _ name ( str ) diffuse _ texture ( TextureColor ) emissive _ texture ( TextureFloatColor ) normal _ texture ( TextureFloatColor ) ao _ roughness _ metallic _ emissive _ texture ( TextureFloatColor ) apply _ textures _ to _ objects ( self , objects _ name _ list , diffuse _ texture , emissive _ texture , normal _ texture , ao _ roughness _ metallic _ emissive _ texture ) \u5c06 carla . MaterialParameter \u4e2d \u7684 \u6240\u6709 \u7eb9\u7406 \u5b57 \u6bb5 \u5e94\u7528 \u4e8e objects _ name _ list \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u3002 \u8fd9\u91cc \u4e0d\u4f1a \u5e94\u7528 \u7a7a \u7eb9\u7406 \u3002 \u53c2\u6570 : objects _ name _ list ( list ( str ) ) diffuse _ texture ( TextureColor ) emissive _ texture ( TextureFloatColor ) normal _ texture ( TextureFloatColor ) ao _ roughness _ metallic _ emissive _ texture ( TextureFloatColor ) cast _ ray ( self , initial _ location , final _ location ) \u5c06 \u5149\u7ebf \u4ece \u6307\u5b9a \u7684 initial _ location \u6295\u5c04 \u5230 final _ location \u3002 \u7136\u540e \uff0c \u8be5 \u51fd\u6570 \u68c0\u6d4b \u4e0e \u5c04\u7ebf \u76f8\u4ea4 \u7684 \u6240\u6709 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \uff0c \u5e76 \u6309 \u987a\u5e8f \u8fd4\u56de carla . LabelledPoint \u5217\u8868 \u3002 \u53c2\u6570 : initial _ location ( carla . Location ) - The initial position of the ray . final _ location ( carla . Location ) - The final position of the ray . \u8fd4\u56de : list ( carla . LabelledPoint ) enable _ environment _ objects ( self , env _ objects _ ids , enable ) snippet \u2192 \u542f\u7528 \u6216 \u7981\u7528 \u4e00\u7ec4 \u7531 \u5176 id \u6807\u8bc6 \u7684 \u73af\u5883 \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u5c06 \u4ece \u5173\u5361 \u4e2d \u51fa\u73b0 \u6216 \u6d88\u5931 \u3002 \u53c2\u6570 : env _ objects _ ids ( set ( int ) ) - \u8981 \u66f4\u6539 \u7684 \u73af\u5883 \u5bf9\u8c61 ID \u96c6 \u3002 enable ( bool ) - \u5e94\u7528 \u4e8e \u96c6\u5408 \u4e2d \u6240\u6709 \u73af\u5883 \u5bf9\u8c61 \u7684 \u72b6\u6001 \u3002 freeze _ all _ traffic _ lights ( self , frozen ) \u51bb\u7ed3 \u6216 \u89e3\u51bb \u573a\u666f \u4e2d \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u51bb\u7ed3 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u4f46 \u65f6\u95f4 \u4e0d\u4f1a \u66f4\u65b0 \u5b83\u4eec \uff0c \u76f4\u5230 \u89e3\u51bb \u3002 \u53c2\u6570 : frozen ( bool ) ground _ projection ( self , location , search _ distance ) \u5728 \u573a\u666f \u4e2d \u5411\u4e0b \u6295\u5f71 \u6307\u5b9a \u70b9 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u4ece \u4f4d\u7f6e ( 0 , 0 , - 1 ) \uff08 \u5411\u4e0b \uff09 \u6295\u5c04 \u4e00\u6761 \u5c04\u7ebf \uff0c \u5e76 \u8fd4\u56de \u4e00\u4e2a carla . LabelledPoint \u5bf9\u8c61 \uff0c \u8be5 \u5bf9\u8c61 \u5177\u6709 \u8be5 \u5c04\u7ebf \u76f8\u4ea4 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u51e0\u4f55 \u51e0\u4f55\u4f53 \uff08 \u901a\u5e38 \u662f \u5730\u9762 \uff09 \u3002 \u5982\u679c \u5728 search _ distance \u8303\u56f4 \u5185 \u627e\u5230 \u672a\u627e\u5230 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \uff0c \u5219 \u51fd\u6570 \u8fd4\u56de None \u3002 \u53c2\u6570 : location ( carla . Location ) - \u8981 \u6295\u5f71 \u7684 \u70b9 \u3002 search _ distance ( float ) - \u6267\u884c \u6295\u5f71 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 \u8fd4\u56de : carla . LabelledPoint load _ map _ layer ( self , map _ layers ) snippet \u2192 \u52a0\u8f7d \u56fe\u5c42 \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u8be5 \u5c42\u6b21 \u5df2\u7ecf \u52a0\u8f7d \u5219 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 \uff1a map _ layers ( carla . MapLayer ) - \u52a0\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u7684 \u63a9\u819c \u3002 \u8b66\u544a \uff1a \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 on _ tick ( self , callback ) \u6b64 \u65b9\u6cd5 \u7528\u4e8e \u5f02\u6b65 \u6a21\u5f0f \u3002 \u5b83 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9a\u4e49 \u7684 callback \u51fd\u6570 \u542f\u52a8 \u56de\u8c03 \uff0c \u5e76 \u8fd4\u56de \u56de\u8c03 \u7684 ID \u3002 \u6bcf\u5f53 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u65f6 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \uff0c \u5c31 \u4f1a \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 \u5b83 \u9700\u8981 \u4e00\u4e2a carla . WorldSnapshot \u4f5c\u4e3a \u53c2\u6570 \uff0c \u8fd9 \u53ef\u4ee5 \u4ece wait _ for _ tick ( ) \u83b7\u5f97 \u3002 \u4f7f\u7528 remove _ on _ tick ( ) \u6765 \u505c\u6b62 \u56de\u8c03 \u3002 \u53c2\u6570 \uff1a callback ( carla . WorldSnapshot ) - \u5c06 \u5feb\u7167 \u4f5c\u4e3a \u5f3a\u5236 \u53c2\u6570 \u7684 \u51fd\u6570 \uff0c \u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u5c06 \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 \u8fd4\u56de : int project _ point ( self , location , direction , search _ distance ) \u5c06 \u6307\u5b9a \u70b9 \u6295\u5f71 \u5230 \u573a\u666f \u4e2d \u7684 \u6240 \u9700 \u65b9\u5411 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u4ece \u67d0\u4e2a \u65b9\u5411 \u7684 \u67d0\u4e2a \u4f4d\u7f6e \u6295\u5c04 \u4e00\u6761 \u5c04\u7ebf \uff0c \u5e76 \u8fd4\u56de \u4e00\u4e2a \u5e26\u6709 \u8be5 \u5c04\u7ebf \u76f8\u4ea4 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 carla . Labelled \u5bf9\u8c61 \u3002 \u5982\u679c \u5728 search _ distance \u8303\u56f4 \u5185 \u627e\u5230 \u672a\u627e\u5230 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \uff0c \u5219 \u51fd\u6570 \u8fd4\u56de None \u3002 \u53c2\u6570 : location ( carla . Location ) - \u8981 \u6295\u5f71 \u7684 \u70b9 \u3002 direction ( carla . Vector3D ) - \u6295\u5f71 \u65b9\u5411 \u3002 search _ distance ( float ) - \u6267\u884c \u6295\u5f71 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 \u8fd4\u56de : carla . LabelledPoint remove _ on _ tick ( self , callback _ id ) \u505c\u6b62 \u4ee5 on _ tick ( ) \u542f\u52a8 \u7684 \u56de\u8c03 callback _ id \u3002 \u53c2\u6570 : callback _ id ( callback ) - \u8981 \u5220\u9664 \u7684 \u56de\u8c03 \u3002 \u521b\u5efa \u56de\u8c03 \u65f6 \u8fd4\u56de ID \u3002 reset _ all _ traffic _ lights ( self ) \u5c06 \u5730\u56fe \u4e2d \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5468\u671f \u91cd\u7f6e \u4e3a \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \u3002 spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) snippet \u2192 \u8be5 \u65b9\u6cd5 \u5c06 \u521b\u5efa \u3001 \u8fd4\u56de \u5e76 \u751f\u6210 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5230 \u4e16\u754c \u4e2d \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u9700\u8981 \u521b\u5efa \u53ef\u7528 \u7684 \u84dd\u56fe \u548c \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u5b83 \u8fd8 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u5177\u6709 \u7279\u5b9a \u9644\u4ef6 \u7c7b\u578b \u7684 \u7236\u7ea7 \u3002 \u53c2\u6570 : blueprint ( carla . ActorBlueprint ) - \u5c06 \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5f15\u7528 \u3002 transform ( carla . Transform ) - \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u6210 \u65f6 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 attach _ to ( carla . Actor ) - \u751f\u6210 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8ddf\u968f \u7684 \u7236 \u5bf9\u8c61 \u3002 attachment ( carla . AttachmentType ) - \u6839\u636e \u5176\u7236 \u5bf9\u8c61 \u786e\u5b9a \u4f4d\u7f6e \u53d8\u5316 \u7684 \u56fa\u5b9a \u548c \u4e25\u5bc6 \u7a0b\u5ea6 \u3002 \u8fd4\u56de : carla . Actor tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5373 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u8ba1\u7b97 \u4e0b \u4e00\u5e27 \u4e4b\u524d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u8fd9\u4e2a \u65b9\u6cd5 \u5c06 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5e76 \u8ba9 \u4f4d\u4e8e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5b83 \u8fd4\u56de \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u7684 \u65b0 \u5e27 ID \u3002 \u53c2\u6570 \uff1a seconds ( float - \u79d2 ) - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e94\u8be5 \u7b49\u5f85 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u6700\u5927 \u65f6\u95f4 \u3002 \u5b83 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 10.0 \u3002 \u8fd4\u56de \uff1a int \u6ce8\u610f \uff1a \u5982\u679c \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u6ca1\u6709 \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4eff\u771f \u5c06 \u51bb\u7ed3 \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u4ece \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a5\u6536 \u5230 \u8bb8\u591a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5219 \u53ef\u80fd \u5b58\u5728 \u540c\u6b65 \u95ee\u9898 \u3002 \u8bf7 \u9605\u8bfb \u6709\u5173 __ \u540c\u6b65 \u6a21\u5f0f __ \u7684 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 try _ spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) \u548c spawn _ actor ( ) \u4e00\u6837 \uff0c \u4f46\u662f \u5355 \u5931\u8d25 \u65f6\u5019 \u8fd4\u56de None \u800c \u4e0d\u662f \u629b\u51fa \u5f02\u5e38 \u3002 \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) - \u5c06 \u4ece\u4e2d \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5f15\u7528 \u3002 transform ( carla . Transform ) - \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u4f7f\u7528 \u7684 \u4f4d\u7f6e \u548c \u671d\u5411 \u3002 attach _ to ( carla . Actor ) - \u6d3e\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8ddf\u968f \u7684 \u7236 \u5bf9\u8c61 \u3002 attachment ( carla . AttachmentType ) - \u6839\u636e \u5176\u7236 \u5bf9\u8c61 \u786e\u5b9a \u4f4d\u7f6e \u66f4\u6539 \u7684 \u56fa\u5b9a \u548c \u4e25\u683c \u7a0b\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Actor unload _ map _ layer ( self , map _ layers ) snippet \u2192 \u5c06 \u9009\u5b9a \u7684 \u56fe\u5c42 \u5378\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u5c42 \u5df2\u7ecf \u5378\u8f7d \uff0c \u5219 \u8c03\u7528 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 : map _ layers ( carla . MapLayer ) - \u8981 \u5378\u8f7d \u56fe\u5c42 \u7684 \u63a9\u819c \u3002 \u8b66\u544a : \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 wait _ for _ tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u4f7f\u7528 \u5f02\u6b65 \u6a21\u5f0f \u3002 \u5b83 \u4f7f \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u5f53 \u8ba1\u7b97 \u4e0b \u4e00\u5e27 \u65f6 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u52fe\u9009 \u5e76 \u8fd4\u56de \u63cf\u8ff0 \u4e16\u754c \u65b0 \u72b6\u6001 \u7684 \u5feb\u7167 \u3002 \u53c2\u6570 : seconds ( float - seconds ) - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u6ef4\u7b54 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 10.0 \u3002 \u8fd4\u56de : carla . WorldSnapshot \u8bbe\u7f6e \u5668 get _ actor ( self , actor _ id ) \u901a\u8fc7 ID \u67e5\u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5982\u679c \u627e\u5230 \u672a\u627e\u5230 \u5219 \u8fd4\u56de None \u3002 \u53c2\u6570 : actor _ id ( int ) \u8fd4\u56de : carla . Actor get _ actors ( self , actor _ ids = None ) \u68c0\u7d22 carla . Actor \u5143\u7d20 \u5217\u8868 \uff0c \u4f7f\u7528 \u63d0\u4f9b \u7684 ID \u5217\u8868 \u6216\u4ec5 \u5217\u51fa \u821e\u53f0 \u4e0a \u7684 \u6bcf\u4e2a \u4eba \u3002 \u5982\u679c \u4e00\u4e2a ID \u4e0d \u4e0e \u4efb\u4f55 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u5bf9 \u5e94 \uff0c \u5b83 \u5c06 \u88ab \u6392\u9664 \u5728 \u8fd4\u56de \u7684 \u5217\u8868 \u4e4b\u5916 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 ID \u5217\u8868 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u53ef\u80fd \u5177\u6709 \u4e0d\u540c \u7684 \u957f\u5ea6 \u3002 \u53c2\u6570 : actor _ ids ( list ) - \u6b63\u5728 \u641c\u7d22 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u8bbe\u7f6e \u4e3a None \u5e76 \u8fd4\u56de \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de : carla . ActorList get _ blueprint _ library ( self ) \u8fd4\u56de \u53ef\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u5217\u8868 \uff0c \u4ee5 \u65b9\u4fbf \u5b83\u4eec \u5728 \u4e16\u754c \u4e2d \u7684 \u751f\u6210 \u3002 \u8fd4\u56de : carla . BlueprintLibrary get _ environment _ objects ( self , object _ type = Any ) \u8fd4\u56de \u5177\u6709 \u8bf7\u6c42 \u7684 \u8bed\u4e49 \u6807\u8bb0 \u7684 EnvironmentObject \u5217\u8868 \u3002 \u8be5 \u65b9\u6cd5 \u9ed8\u8ba4 \u8fd4\u56de \u5173\u5361 \u4e2d \u7684 \u6240\u6709 \u73af\u5883 \u5bf9\u8c61 \uff0c \u4f46 \u53ef\u4ee5 \u4f7f\u7528 object _ type \u53c2\u6570 \u901a\u8fc7 \u8bed\u4e49 \u6807\u7b7e \u8fc7\u6ee4 \u67e5\u8be2 \u3002 \u53c2\u6570 : object _ type ( carla . CityObjectLabel ) - Semantic tag of the \u8fd4\u56de \u7684 EnvironmentObjects \u3002 \u8fd4\u56de : array ( carla . EnvironmentObject ) get _ level _ bbs ( self , actor _ type = Any ) \u8fd4\u56de \u4e00\u4e2a \u8fb9\u754c \u6846 \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8be5 \u65b9\u6cd5 \u9ed8\u8ba4 \u8fd4\u56de \u8be5 \u7ea7\u522b \u4e2d \u7684 \u6240\u6709 \u8fb9\u754c \u6846 \uff0c \u4f46 \u53ef\u4ee5 \u4f7f\u7528 actor _ type \u53c2\u6570 \u901a\u8fc7 \u8bed\u4e49 \u6807\u7b7e \u8fc7\u6ee4 \u67e5\u8be2 \u3002 \u53c2\u6570 : actor _ type ( carla . CityObjectLabel ) - \u8fd4\u56de \u7684 \u8fb9\u754c \u6846\u4e2d \u5305\u542b \u7684 \u5143\u7d20 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8fd4\u56de : array ( carla . BoundingBox ) get _ lightmanager ( self ) \u8fd4\u56de carla . LightManager \u7684 \u5b9e\u4f8b \uff0c \u53ef \u7528\u4e8e \u5904\u7406 \u573a\u666f \u4e2d \u7684 \u706f\u5149 \u3002 \u8fd4\u56de : carla . LightManager get _ map ( self ) \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bf7\u6c42 \u5305\u542b \u6620\u5c04 \u6587\u4ef6 \u7684 XODR \uff0c \u5e76 \u5c06 \u5176 \u89e3\u6790 \u4e3a carla . Map \u8fd4\u56de \u3002 \u8fd4\u56de : carla . Map \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u4eff\u771f \u3002 \u5b83 \u4ee3\u4ef7 \u5f88 \u9ad8 \uff0c \u5e76\u4e14 \u53ea\u80fd \u8c03\u7528 \u4e00\u6b21 \u3002 get _ names _ of _ all _ objects ( self ) \u8fd4\u56de \u573a\u666f \u4e2d \u53ef\u4ee5 \u4f7f\u7528 \u5e94\u7528 \u7eb9\u7406 \u51fd\u6570 \u7ed8\u5236 \u7684 \u6240\u6709 \u5bf9\u8c61 \u7684 \u540d\u79f0 \u5217\u8868 \u3002 \u8fd4\u56de : list ( str ) get _ random _ location _ from _ navigation ( self ) \u8fd9 \u53ea\u80fd \u4e0e \u884c\u4eba \u4e00\u8d77 \u4f7f\u7528 \u3002 \u5b83 \u4f7f\u7528 carla . WalkerAIController \u4e2d \u7684 go _ to _ location ( ) \u65b9\u6cd5 \u68c0\u7d22 \u8981 \u7528\u4f5c \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u968f\u673a \u4f4d\u7f6e \u3002 \u8be5 \u4f4d\u7f6e \u5c06 \u662f \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u9053\u8def \u3001 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u548c \u8349\u5730 \u533a\u57df \u4e0d \u5305\u62ec \u5728\u5185 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8003\u8651 \u73b0\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \uff0c \u56e0\u6b64 \u5982\u679c \u5728 \u5c1d\u8bd5 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u53d1\u751f \u78b0\u649e \uff0c \u5b83 \u5c06 \u8fd4\u56de \u9519\u8bef \u3002 \u770b \u4e00\u4e0b \u4f8b\u5b50 generate _ traffic . py \u3002 \u8fd4\u56de : carla . Location get _ settings ( self ) \u8fd4\u56de \u4e00\u4e2a \u5bf9\u8c61 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u4eff\u771f \u7684 \u4e00\u4e9b \u6570\u636e \uff0c \u4f8b\u5982 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u6216 \u6e32\u67d3 \u6a21\u5f0f \u3002 \u8fd4\u56de : carla . WorldSettings get _ snapshot ( self ) \u8fd4\u56de \u67d0\u4e2a \u65f6\u523b \u7684 \u4e16\u754c \u5feb\u7167 \uff0c \u5305\u542b \u6709\u5173 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u8fd4\u56de : carla . WorldSnapshot get _ spectator ( self ) snippet \u2192 \u8fd4\u56de \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u662f \u865a\u5e7b \u5f15\u64ce \u521b\u5efa \u7684 \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u901a\u5e38 ID = 0 \uff0c \u5145\u5f53 \u6444\u50cf \u6444\u50cf\u673a \u5e76 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \u4e2d \u7684 \u89c6\u56fe \u3002 \u8fd4\u56de : carla . Actor get _ traffic _ light ( self , landmark ) \u63d0\u4f9b \u4e00\u4e2a \u5730\u6807 \uff0c \u8fd4\u56de \u5b83 \u63cf\u8ff0 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u5bf9\u8c61 \u3002 \u53c2\u6570 : landmark ( carla . Landmark ) - \u63cf\u8ff0 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u8fd4\u56de : carla . TrafficLight get _ traffic _ light _ from _ opendrive _ id ( self , traffic _ light _ id ) \u8fd4\u56de \u4e0e \u6307\u793a \u7684 OpenDRIVE id \u5bf9\u5e94 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53c2\u6570 : traffic _ light _ id ( str ) - The OpenDRIVE id . \u8fd4\u56de : carla . TrafficLight get _ traffic _ lights _ from _ waypoint ( self , waypoint , distance ) \u6b64 \u51fd\u6570 \u6cbf\u7740 \u6307\u5b9a \u8def\u70b9 \u524d\u9762 \u7684 \u9053\u8def \u6267\u884c \u641c\u7d22 \uff0c \u5e76 \u8fd4\u56de \u5728 \u6307\u5b9a \u641c\u7d22 \u8ddd\u79bb \u5185 \u627e\u5230 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u3002 \u53c2\u6570 : waypoint ( carla . Waypoint ) - \u8f93\u5165 \u8def\u5f84 \u70b9 \u3002 distance ( float ) - \u641c\u7d22 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . TrafficLight ) get _ traffic _ lights _ in _ junction ( self , junction _ id ) \u8fd4\u56de \u5f71\u54cd junction _ id \u4e2d \u6307\u793a \u7684 \u8def\u53e3 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u3002 \u53c2\u6570 : junction _ id ( int ) - \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u7684 id \u3002 \u8fd4\u56de : list ( carla . TrafficLight ) get _ traffic _ sign ( self , landmark ) \u63d0\u4f9b \u4e00\u4e2a \u5730\u6807 \uff0c \u8fd4\u56de \u5b83 \u63cf\u8ff0 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u5bf9\u8c61 \u3002 \u53c2\u6570 : landmark ( carla . Landmark ) - \u63cf\u8ff0 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u8fd4\u56de : carla . TrafficSign get _ vehicles _ light _ states ( self ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f carla . Actor ID \uff0c \u503c \u662f \u8be5 \u8f66\u8f86 \u7684 carla . VehicleLightState \u3002 \u8fd4\u56de : dict get _ weather ( self ) \u68c0\u7d22 \u5305\u542b \u4eff\u771f \u4e2d \u5f53\u524d \u6d3b\u52a8 \u7684 \u5929\u6c14 \u53c2\u6570 \u7684 \u5bf9\u8c61 \uff0c \u4e3b\u8981 \u662f \u4e91\u91cf \u3001 \u964d\u6c34 \u6c34\u91cf \u964d\u6c34\u91cf \u3001 \u98ce \u548c \u592a\u9633 \u4f4d\u7f6e \u3002 \u8fd4\u56de : carla . WeatherParameters Setter : carla . World . set _ weather \u8bbe\u7f6e \u5668 set _ pedestrians _ cross _ factor ( self , percentage ) \u53c2\u6570 : percentage ( float ) - \u8bbe\u7f6e \u53ef\u4ee5 \u5728 \u9053\u8def \u4e0a \u884c\u8d70 \u6216 \u5728 \u9053\u8def \u4e0a \u7684 \u4efb\u4f55 \u70b9 \u7a7f\u8d8a \u7684 \u884c\u4eba \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u503c\u5e94 \u4ecb\u4e8e 0.0 \u548c \u4e4b\u95f4 1.0 \u3002 \u4f8b\u5982 \uff0c \u503c 0.1 \u8868\u793a \u5141\u8bb8 10% \u7684 \u884c\u4eba \u5728 \u9053\u8def \u4e0a \u884c\u8d70 \u3002 \u9ed8\u8ba4 \u4e3a 0.0 \u3002 \u7b14\u8bb0 : \u5e94 \u5728 \u884c\u4eba \u751f\u6210 \u4e4b\u524d \u8bbe\u7f6e \u3002 set _ pedestrians _ seed ( self , seed ) \u53c2\u6570 : seed ( int ) - \u8bbe\u7f6e \u7528\u4e8e \u751f\u6210 \u4e0e \u884c\u4eba \u76f8\u5173 \u7684 \u4efb\u4f55 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u7684 \u79cd\u5b50 \u3002 \u7b14\u8bb0 : \u5e94 \u5728 \u884c\u4eba \u751f\u6210 \u4e4b\u524d \u8bbe\u7f6e \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u6bcf\u4e2a \u884c\u4eba \u91cd\u590d \u76f8\u540c \u7684 \u8eab\u4f53 \uff08 \u84dd\u56fe \uff09 \uff0c \u8bf7 \u5728 Python \u4ee3\u7801 \uff08 \u968f\u673a \u9009\u62e9 \u84dd\u56fe \uff09 \u548c \u6b64\u5904 \u4f7f\u7528 \u76f8\u540c \u7684 \u79cd\u5b50 \uff0c \u5426\u5219 \u884c\u4eba \u5c06 \u91cd\u590d \u76f8\u540c \u7684 \u8def\u5f84 \uff0c \u4f46 \u8eab\u4f53 \u4f1a \u4e0d\u540c \u3002 set _ weather ( self , weather ) \u5c06 \u6a21\u62df \u7684 \u5929\u6c14 \u53c2\u6570 \u66f4 \u6539\u4e3a \u5bf9\u8c61 \u4e2d \u5b9a\u4e49 \u7684 \u5176\u4ed6 \u53c2\u6570 \u3002 \u53c2\u6570 : weather ( carla . WeatherParameters ) - \u8981 \u5e94\u7528 \u7684 \u65b0 \u6761\u4ef6 \u3002 \u83b7\u53d6 \u5668 : carla . World . get _ weather \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) \u4e16\u754c \u7684 \u5185\u5bb9 \u88ab \u89e3\u6790 \u6253\u5370 \u5e76\u6253\u5370 \u4e3a \u5f53\u524d \u72b6\u6001 \u7684 \u7b80\u77ed \u62a5\u544a \u3002 \u8fd4\u56de : string carla . WorldSettings \u8be5 \u4eff\u771f \u5177\u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u914d\u7f6e \u9009\u9879 \uff0c \u8fd9\u4e9b \u9009\u9879 \u5305\u542b \u5728 \u6b64\u7c7b \u4e2d \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u4f7f\u7528 carla . World \u53ca\u5176 \u65b9\u6cd5 \u8fdb\u884c \u7ba1\u7406 \u3002 \u8fd9\u4e9b \u5141\u8bb8 \u7528\u6237 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 / \u5f02\u6b65 \u3001 \u6fc0\u6d3b \u201c \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u201d \u4ee5\u53ca \u4eff\u771f \u662f\u5426 \u5e94 \u4ee5 \u56fa\u5b9a \u6216 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \u3002 \u5982\u679c \u60a8 \u60f3 \u4e86\u89e3 \u7684\u8bdd \u8bf7 \u67e5\u770b \u6b64 \u5185\u5bb9 \u3002 \u5b9e\u4f8b \u53d8\u91cf synchronous _ mode ( bool ) \u8868\u793a \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a true \u65f6 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4ee5\u4fbf \u7ee7\u7eed \u524d\u8fdb \u7ee7\u7eed\u524d\u8fdb \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a false \u3002 no _ rendering _ mode ( bool ) \u542f\u7528 \u540e \uff0c \u4eff\u771f \u5c06 \u6839\u672c \u4e0d \u8fd0\u884c \u6e32\u67d3 \u3002 \u8fd9 \u4e3b\u8981 \u7528\u4e8e \u907f\u514d \u7e41\u5fd9 \u4ea4\u901a \u4eff\u771f \u671f\u95f4 \u7684 \u5f00\u9500 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a false \u3002 fixed _ delta _ seconds ( float ) \u786e\u4fdd \u4eff\u771f \u7684 \u4e24\u4e2a \u6b65\u9aa4 \u4e4b\u95f4 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u662f \u56fa\u5b9a \u7684 \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0.0 \u4ee5 \u4f7f\u7528 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \uff0c \u5c31 \u50cf \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u53d1\u751f \u7684 \u90a3\u6837 \u3002 substepping ( bool ) \u542f\u7528 \u7269\u7406 \u5b50 \u6b65\u8fdb \u3002 \u6b64 \u9009\u9879 \u5141\u8bb8 \u8ba1\u7b97 \u4e24\u4e2a \u6e32\u67d3 \u5e27 \u4e4b\u95f4 \u7684 \u4e00\u4e9b \u7269\u7406 \u5b50 \u6b65\u9aa4 \u3002 \u5982\u679c \u8bbe\u7f6e \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u5b50 \u6b65\u9aa4 \u7684 \u6570\u91cf \u53ca\u5176 \u65f6\u95f4 \u95f4\u9694 \u662f \u56fa\u5b9a \u7684 \u5e76 \u8fdb\u884c \u8ba1\u7b97 \uff0c \u4ee5\u4fbf \u6ee1\u8db3 carla . WorldSettings . max _ substep \u548c carla . WorldSettings . max _ substep _ delta _ time \u7684 \u8981\u6c42 \u3002 \u6700\u540e \u4e24\u4e2a \u53c2\u6570 \u9700\u8981 \u4e0e carla . WorldSettings . fixed _ delta _ seconds \u517c\u5bb9 \u3002 \u9ed8\u8ba4 \u542f\u7528 \u3002 max _ substep _ delta _ time ( float ) \u5b50 \u6b65\u9aa4 \u7684 \u6700\u5927 \u589e\u91cf \u65f6\u95f4 \u3002 \u5982\u679c carla . WorldSettingsmax _ substep \u8db3\u591f \u9ad8 \uff0c \u5219 \u5b50\u6b65 \u589e\u91cf \u65f6\u95f4 \u5c06 \u59cb\u7ec8 \u4f4e\u4e8e \u6216 \u7b49\u4e8e \u8be5\u503c \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a 0.01 \u3002 max _ substeps ( int ) \u5141\u8bb8 \u7684 \u6700\u5927 \u7269\u7406 \u5b50 \u6b65\u6570 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a 10 \u3002 max _ culling _ distance ( float ) \u914d\u7f6e \u5173\u5361 \u4e2d \u6bcf\u4e2a \u7f51\u683c \u7684 \u6700\u5927 \u7ed8\u5236 \u8ddd\u79bb \u3002 deterministic _ ragdolls ( bool ) \u5b9a\u4e49 \u662f\u5426 \u5bf9 \u884c\u4eba \u6b7b\u4ea1 \u52a8\u753b \u6216 \u7269\u7406 \u5a03\u5a03 \u5e03\u5a03\u5a03 \u4eff\u771f \u4f7f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7269\u7406 \u3002 \u542f\u7528 \u540e \uff0c \u884c\u4eba \u7684 \u6b7b\u4ea1 \u52a8\u753b \u4e0d\u592a \u771f\u5b9e \uff0c \u4f46 \u786e\u4fdd \u4e86 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 \u7981\u7528 \u540e \uff0c \u884c\u4eba \u5c06 \u88ab \u4eff\u771f \u4e3a \u5a03\u5a03 \u5e03\u5a03\u5a03 \uff0c \u5177\u6709 \u66f4 \u771f\u5b9e \u7684 \u4eff\u771f \u548c \u78b0\u649e \uff0c \u4f46 \u65e0\u6cd5 \u786e\u4fdd \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 tile _ stream _ distance ( float ) \u4ec5 \u7528\u4e8e \u5927\u578b \u5730\u56fe \u3002 \u914d\u7f6e \u4ece \u82f1\u96c4 \u8f66\u8f86 \u4f20\u8f93 \u74e6\u7247 \u5730\u56fe \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 \u6b64 \u8303\u56f4 \u5185 \u7684 \u5730\u56fe \u533a\u57df \u5c06 \u53ef\u89c1 \uff08 \u5e76\u4e14 \u80fd\u591f \u4eff\u771f \u7269\u7406 \uff09 \u3002 \u8be5 \u533a\u57df \u4e4b\u5916 \u7684 \u533a\u57df \u5c06 \u4e0d\u4f1a \u88ab \u52a0\u8f7d \u3002 actor _ active _ distance ( float ) \u4ec5 \u7528\u4e8e \u5927\u578b \u5730\u56fe \u3002 \u914d\u7f6e \u4e0e \u82f1\u96c4 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u4ee5 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8f6c\u6362 \u4e3a \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u5728 \u6b64 \u8303\u56f4 \u5185 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5904\u4e8e \u6d3b\u8dc3 \u72b6\u6001 \uff0c \u800c \u5728 \u8be5 \u8303\u56f4 \u4e4b\u5916 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 spectator _ as _ ego ( bool ) \u4ec5 \u7528\u4e8e \u5927\u578b \u5730\u56fe \u3002 \u5b9a\u4e49 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bf9\u5927 \u5730\u56fe \u4e2d \u56fe\u5757 \u52a0\u8f7d \u7684 \u5f71\u54cd \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5728 \u6ca1\u6709 \u81ea\u6211 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5c06 \u5f15\u53d1 \u76f8\u90bb \u56fe\u5757 \u7684 \u52a0\u8f7d \u3002 \u5bf9\u4e8e \u7acb\u5373 \u4ea7\u751f \u81ea\u6211 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6765\u8bf4 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5e26\u6765 \u4e0d\u4fbf \u3002 \u65b9\u6cd5 __ init __ ( self , synchronous _ mode = False , no _ rendering _ mode = False , fixed _ delta _ seconds = 0.0 , max _ culling _ distance = 0.0 , deterministic _ ragdolls = False , tile _ stream _ distance = 3000 , actor _ active _ distance = 2000 , spectator _ as _ ego = True ) \u521b\u5efa \u4e00\u4e2a \u5305\u542b \u6240 \u9700 \u8bbe\u7f6e \u7684 \u5bf9\u8c61 \uff0c \u8fd9\u4e9b \u8bbe\u7f6e \u7a0d\u540e \u53ef\u4ee5 \u901a\u8fc7 carla . World \u53ca\u5176 \u65b9\u6cd5 apply _ settings ( ) \u5e94\u7528 \u3002 \u53c2\u6570 : synchronous _ mode ( bool ) - \u542f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5219 \u8bbe\u7f6e \u4e3a true \u3002 no _ rendering _ mode ( bool ) - \u5728 \u4eff\u771f \u4e2d \u5b8c\u5168 \u7981\u7528 \u6e32\u67d3 \u5219 \u8bbe\u7f6e \u4e3a true \u3002 fixed _ delta _ seconds ( float - seconds ) - \u5728 \u5e27 \u4e4b\u95f4 \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u7684 \u6b65\u957f \u3002 0.0 \u610f\u5473 \u610f\u5473\u7740 \u53d8 \u6b65\u957f \u4e14 \u4e3a \u6a21\u5f0f \u6a21\u5f0f \u3002 max _ culling _ distance ( float - \u7c73 ) - \u5bf9\u4e8e \u5173\u5361 \u7684 \u6bcf \u4e00\u4e2a \u7f51\u683c \u914d\u7f6e \u6700\u5927 \u7684 \u7ed8\u5236 \u8ddd\u79bb \u3002 deterministic _ ragdolls ( bool ) - \u5bf9\u4e8e \u884c\u4eba \u6b7b\u4ea1 \u4f7f\u7528 \u786e\u5b9a \u7684 \u7269\u7406 \u6216 \u5a03\u5a03 \u5e03\u5a03\u5a03 \u4eff\u771f \u5b9a\u4e49 wether \u3002 tile _ stream _ distance ( float - \u7c73 ) - \u4ec5 \u7528\u4e8e \u5927 \u5730\u56fe \u3002 \u4ece \u82f1\u96c4 \u8f66\u8f86 \u5230\u6d41 \u74e6\u7247 \u5730\u56fe \u914d\u7f6e \u6700\u5927 \u8ddd\u79bb \u3002 actor _ active _ distance ( float - \u7c73 ) - \u4ec5 \u7528\u4e8e \u5927 \u5730\u56fe \u3002 \u914d\u7f6e \u4e0e \u82f1\u96c4 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u4ee5 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8f6c\u6362 \u4e3a \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 spectator _ as _ ego ( bool ) - \u4ec5 \u7528\u4e8e \u5927 \u5730\u56fe \u3002 \u5728 \u5927\u578b \u8d34\u56fe \u4e2d \u5b9a\u4e49 \u89c2\u4f17 \u5bf9 \u5e73\u94fa \u52a0\u8f7d \u7684 \u5f71\u54cd \u3002 \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . WorldSettings ) \u5982\u679c \u5bf9\u8c61 \u7684 \u53d8\u91cf \u76f8\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ ne __ ( self , other = carla . WorldSettings ) \u5982\u679c \u5bf9\u8c61 \u7684 \u53d8\u91cf \u4e0d\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u5bf9\u4e8e \u5b57\u7b26 \u5b57\u7b26\u4e32 \u89e3\u6790 \u5df2 \u5efa\u7acb \u7684 \u8bbe\u7f6e \u5e76 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u663e\u793a \u51fa\u6765 \u3002 \u8fd4\u56de : str carla . WorldSnapshot \u5feb\u7167 \u5305\u62ec \u67d0\u4e00 \u65f6\u523b \u573a\u666f \u4e2d \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5b83 \u521b\u5efa \u5e76 \u7ed9\u51fa \u4e00\u4e9b \u5217 \u5305\u542b carla . ActorSnapshot \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6bcf \u4e00\u4e2a \u4e0d\u80fd \u5b58\u50a8 \u7684 \u6ef4\u7b54 \u4fe1\u53f7 \u4e2d \u83b7\u53d6 \u4e00\u4e2a \u65b0 \u7684 \u5feb\u7167 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( int ) \u4e3a\u4e86 \u5206\u8fa8 \u6bcf \u4e00\u4e2a \u5feb\u7167 \u7684 \u552f\u4e00 \u503c \u3002 frame ( int ) \u83b7\u53d6 \u5feb\u7167 \u65f6 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 timestamp ( carla . Timestamp - seconds ) \u83b7\u53d6 \u5feb\u7167 \u65f6\u5019 \u7684 \u7cbe\u786e \u65f6\u523b \u3002 \u7531 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7ed9\u51fa \u7684 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u7684 \u7c7b \u3002 \u65b9\u6cd5 find ( self , actor _ id ) \u7ed9\u51fa \u67d0\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \uff0c \u8fd4\u56de \u5bf9\u5e94 \u7684 \u5feb\u7167 \uff0c \u5982\u679c \u6ca1\u6709 \u627e\u5230 \u5219 \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a actor _ id ( int ) \u8fd4\u56de : carla . ActorSnapshot has _ actor ( self , actor _ id ) \u7ed9\u51fa \u67d0\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \uff0c \u5982\u679c \u6709 \u5bf9\u5e94 \u7684 \u5feb\u7167 \u5219 \u68c0\u67e5 \uff0c \u5982\u679c \u5728 \u8fd9\u4e2a \u65f6\u523b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u51fa\u73b0 \u3002 \u53c2\u6570 \uff1a actor _ id ( int ) \u8fd4\u56de \uff1a bool \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . WorldSnapshot ) \u5982\u679c \u65f6\u95f4 \u6233 timestamp \u76f8\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ iter __ ( self ) \u5728 \u5b58\u50a8 \u7684 \u5feb\u7167 \u4e0a \u8fdb\u884c \u8fed\u4ee3 carla . ActorSnapshot \u3002 __ len __ ( self ) \u8fd4\u56de \u5728 \u8be5 \u5feb\u7167 \u4e0a \u5448\u73b0 \u7684 carla . ActorSnapshot \u7684 \u6570\u91cf \u3002 \u8fd4\u56de : int __ ne __ ( self , other = carla . WorldSnapshot ) \u5982\u679c \u65f6\u95f4 \u6233 timestamp \u90fd \u4e0d\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool command . ApplyAngularImpulse carla . Actor \u4e2d add _ angular _ impulse ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f7f\u7528 angular impulse \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) Actor affected by the command . impulse ( carla . Vector3D - degrees * s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u7684 \u89d2 \u51b2\u91cf \u3002 \u65b9\u6cd5 __ init __ ( self , actor , impulse ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 impulse ( carla . Vector3D - degrees * s ) command . ApplyForce carla . Actor \u4e2d add _ force ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65bd\u52a0 \u4e00\u4e2a \u529b \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u88ab \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 force ( carla . Vector3D - N ) \u5728 \u65f6\u95f4 \u4e0a \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65bd\u52a0 \u529b \u3002 \u65b9\u6cd5 __ init __ ( self , actor , force ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u65bd\u52a0 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 force ( carla . Vector3D - N ) command . ApplyImpulse carla . Actor \u4e2d add _ impulse ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u6700 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65bd\u52a0 \u7684 impulse \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 impulse ( carla . Vector3D - N * s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 Impulse \u3002 \u65b9\u6cd5 __ init __ ( self , actor , impulse ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 impulse ( carla . Vector3D - N * s ) command . ApplyTargetAngularVelocity carla . Actor \u4e2d set _ target _ angular _ velocity ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u88ab \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 angular _ velocity ( carla . Vector3D - deg / s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e09\u7ef4 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , angular _ velocity ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5c06\u8981 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 angular _ velocity ( carla . Vector3D - deg / s ) - \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 command . ApplyTargetVelocity carla . Actor \u4e2d set _ target _ velocity ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u88ab \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 velocity ( carla . Vector3D - m / s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e09\u7ef4 \u901f\u5ea6 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , velocity ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 velocity ( carla . Vector3D - m / s ) - \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 command . ApplyTorque carla . Actor \u4e2d add _ torque ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e94\u7528 torque \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 torque ( carla . Vector3D - \u5ea6 ) \u5728 \u65f6\u95f4 \u4e0a \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e94\u7528 \u529b\u77e9 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , torque ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u5b83 \u7684 ID \u3002 torque ( carla . Vector3D - \u5ea6 ) command . ApplyTransform carla . Actor \u4e2d set _ transform ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbe\u7f6e \u65b0 \u7684 \u53d8\u6362 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 transform ( carla . Transform ) \u6240 \u4f7f\u7528 \u7684 \u53d8\u6362 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , transform ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 transform ( carla . Transform ) command . ApplyVehicleAckermannControl carla . Vehicle \u4e2d apply _ ackermann _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u67d0\u4e2a \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 control ( carla . AckermannVehicleControl ) \u5e94\u7528 \u7684 \u8f66\u8f86 \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 control ( carla . AckermannVehicleControl ) command . ApplyVehicleControl in carla . Vehicle \u4e2d apply _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u67d0\u4e2a \u63a7\u5236 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 control ( carla . VehicleControl ) \u5e94\u7528 \u7684 \u8f66\u8f86 \u63a7\u5236 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u5e94\u7528 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 control ( carla . VehicleControl ) command . ApplyVehiclePhysicsControl carla . Vehicle \u4e2d apply _ physics _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u4e00\u4e2a \u65b0 \u7684 \u7269\u7406 \u63a7\u5236 \uff0c \u4fee\u6539 \u5b83 \u7684 \u7269\u7406 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 physics _ control ( carla . VehiclePhysicsControl ) \u5e94\u7528 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , physics _ control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 physics _ control ( carla . VehiclePhysicsControl ) command . ApplyWalkerControl carla . Walker \u4e2d apply _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u884c\u4eba \u5e94\u7528 \u63a7\u5236 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 control ( carla . WalkerControl ) \u5e94\u7528 \u7684 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u5e94\u7528 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 control ( carla . WalkerControl ) command . ApplyWalkerState \u5bf9 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e94\u7528 \u72b6\u6001 \u3002 \u5bf9 \u521d\u59cb \u521d\u59cb\u5316 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3001 \u671d\u5411 \u548c \u901f\u5ea6 \u7279\u522b \u6709\u7528 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 transform ( carla . Transform ) \u5e94\u7528 \u7684 \u8f6c\u6362 \u3002 speed ( float - m / s ) \u5e94\u7528 \u7684 \u901f\u5ea6 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , transform , speed ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5f15\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 transform ( carla . Transform ) speed ( float - m / s ) command . DestroyActor carla . Actor \u4e2d destroy ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \uff0c \u5c06 \u544a\u8bc9 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6467\u6bc1 \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5df2\u7ecf \u88ab \u6467\u6bc1 \u5219 \u6ca1\u6709 \u5f71\u54cd \u3002 \u5f53 \u5728 carla . Client \u4e2d \u6267\u884c apply _ batch _ sync ( ) \u5c06\u4f1a \u8fd4\u56de \u4e00\u4e2a \u5e03\u5c14 \u5e03\u5c14\u503c \u72b6\u6001 \u8868\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u88ab \u6210\u529f \u6467\u6bc1 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u65b9\u6cd5 __ init __ ( self , actor ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 command . Response \u58f0\u660e \u547d\u4ee4 \u6267\u884c \u7684 \u7ed3\u679c \uff0c \u4e0d\u662f \u547d\u4ee4 \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \uff08 \u5f53 \u6210\u529f \u65f6 \uff09 \uff0c \u5c31\u662f \u9519\u8bef \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff08 \u5f53 \u5931\u8d25 \u65f6 \uff09 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u53d6\u51b3 \u53d6\u51b3\u4e8e \u547d\u4ee4 \u662f\u5426 \u6267\u884c \u6210\u529f \u3002 carla . Client \u4e2d \u7684 \u65b9\u6cd5 apply _ batch _ sync ( ) \u8fd4\u56de \u8fd9\u4e9b \u7684 \u5217\u8868 \u6765 \u603b\u7ed3 \u6279\u91cf \u7684 \u6267\u884c \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u58f0\u660e \u8be5 \u547d\u4ee4 \u6210\u529f \u4e86 \u3002 error ( str ) \u58f0\u660e \u547d\u4ee4 \u5931\u8d25 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u65b9\u6cd5 has _ error ( self ) \u5982\u679c \u547d\u4ee4 \u6267\u884c \u5931\u8d25 \u5219 \u8fd4\u56de True \uff0c \u5982\u679c \u6210\u529f \u5219 \u8fd4\u56de False \u3002 \u8fd4\u56de : bool command . SetAutopilot carla . Vehicle \u4e2d set _ autopilot ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u6253\u5f00 / \u5173\u95ed \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool ) \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u5c06 \u88ab \u6fc0\u6d3b \u6216\u8005 \u5931\u6d3b \u3002 port ( uint16 ) \u6ce8\u518c \u6216 unlisted \u8f66\u8f86 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7aef\u53e3 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , enabled , port = 8000 ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5e94\u7528 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 enabled ( bool ) port ( uint16 ) - \u6ce8\u518c \u6216 unlisted \u8f66\u8f86 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7aef\u53e3 \u3002 \u5982\u679c \u4f20\u9012 \u7684 \u662f None \uff0c \u4f1a \u8003\u8651 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u9ed8\u8ba4 \u7aef\u53e3 8000 \u3002 command . SetEnableGravity carla . Actor \u4e2d set _ enable _ gravity ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u7981\u7528 \u6216 \u542f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cd\u529b \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( carla . Actor or int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool ) \u65b9\u6cd5 __ init __ ( self , actor , enabled ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u3002 enabled ( bool ) command . SetSimulatePhysics carla . Actor \u4e2d set _ simulate _ physics ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u786e\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u4f1a \u88ab \u7269\u7406 \u5f71\u54cd \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool ) \u662f\u5426 \u6fc0\u6d3b \u7269\u7406 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , enabled ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 ID \u3002 enabled ( bool ) command . SetVehicleLightState carla . Vehicle \u4e2d set _ light _ state ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 light _ state ( carla . VehicleLightState ) \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u65b9\u6cd5 __ init __ ( self , actor , light _ state ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 light _ state ( carla . VehicleLightState ) - Recaps \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \uff0c \u8fd9\u4e9b \u80fd \u88ab \u7528\u4f5c \u4e00\u4e2a \u6807\u5fd7 \u3002 command . ShowDebugTelemetry carla . Actor \u4e2d show _ debug _ telemetry ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u663e\u793a \u8f66\u8f86 \u7684 telemetry \u6570\u636e \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( carla . Actor or int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool ) \u65b9\u6cd5 __ init __ ( self , actor , enabled ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u3002 enabled ( bool ) command . SpawnActor carla . World \u4e2d spawn _ actor ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u57fa\u4e8e \u63d0\u4f9b \u7684 \u84dd\u56fe \u548c \u53d8\u6362 \u5728 \u4e16\u754c \u4e2d \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u63d0\u4f9b \u4e86 \u7236\u7c7b \uff0c \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06\u4f1a \u9644 \u5728 \u4e0a\u9762 \u3002 \u5b9e\u4f8b \u53d8\u91cf transform ( carla . Transform ) \u5e94\u7528 \u7684 \u53d8\u6362 \u3002 parent _ id ( int ) \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6807\u5fd7 \u3002 \u65b9\u6cd5 __ init __ ( self ) __ init __ ( self , blueprint , transform ) \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) __ init __ ( self , blueprint , transform , parent ) \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) parent ( carla . Actor or int ) then ( self , command ) \u94fe\u63a5 \u4e00\u4e2a \u5176\u4ed6 \u5c06\u8981 \u7acb\u523b \u6267\u884c \u7684 \u547d\u4ee4 \u3002 \u5b83 \u5141\u8bb8 ease \u975e\u5e38 \u5e38\u89c1 \u7684 \u6d41 \uff0c \u6bd4\u5982 \u901a\u8fc7 \u547d\u4ee4 \u751f\u6210 \u4e00\u7ec4 \u8f66\u8f86 \uff0c \u5e76 \u4f7f\u7528 \u8be5 \u65b9\u6cd5 \u8bbe\u7f6e \u81ea\u52a8 \u9a7e\u9a76 \u3002 \u53c2\u6570 \uff1a command ( any carla Command ) - \u4e00\u4e2a Carla \u547d\u4ee4 \u3002 function CopyToClipboard ( containerid ) { if ( document . selection ) { var range = document . body . createTextRange ( ) ; range . moveToElementText ( document . getElementById ( containerid ) ) ; range . select ( ) . createTextRange ( ) ; document . execCommand ( \" copy \" ) ; } else if ( window . getSelection ) { var range = document . createRange ( ) ; range . selectNode ( document . getElementById ( containerid ) ) ; window . getSelection ( ) . addRange ( range ) ; document . execCommand ( \" copy \" ) ; } } function CloseSnipet ( ) { document . getElementById ( \" snipets - container \" ) . innerHTML = null ; } carla . World . enable _ environment _ objects \u4ee3\u7801 \u7247\u6bb5 # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u5728 \u5730\u56fe \u4e0a \u663e\u793a \u6216 \u9690\u85cf \u7279\u5b9a \u5efa\u7b51 \u3002 # Get the buildings in the world world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # \u8bbf\u95ee \u5355\u4e2a \u5efa\u7b51 IDs \u5e76 \u4fdd\u5b58 \u5230 \u4e00\u4e2a \u96c6\u5408 \u4e2d building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # \u9690\u85cf \u5efa\u7b51 world . enable _ environment _ objects ( objects _ to _ toggle , False ) # \u663e\u793a \u5efa\u7b51 world . enable _ environment _ objects ( objects _ to _ toggle , True ) Copy snippet Close snippet carla . DebugHelper . draw _ string \u4ee3\u7801 \u7247\u6bb5 # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u662f lane _ explorer . py \u793a\u4f8b \u7684 \u4fee\u6539 # \u5b83 \u5728 \u76f4\u63a5 \u4e2d \u7ed8\u5236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8def\u5f84 \uff0c \u6253\u5370 \u6bcf\u4e2a \u8def\u5f84 \u70b9 \u7684 \u4fe1\u606f \u3002 # ... current _ w = map . get _ waypoint ( vehicle . get _ location ( ) ) while True : next _ w = map . get _ waypoint ( vehicle . get _ location ( ) , lane _ type = carla . LaneType . Driving | carla . LaneType . Shoulder | carla . LaneType . Sidewalk ) # \u68c0\u67e5 \u8f66\u8f86 \u662f\u5426 \u5728 \u79fb\u52a8 if next _ w . id ! = current _ w . id : vector = vehicle . get _ velocity ( ) # Check if the vehicle is on a sidewalk if current _ w . lane _ type = = carla . LaneType . Sidewalk : draw _ waypoint _ union ( debug , current _ w , next _ w , cyan if current _ w . is _ junction else red , 60 ) else : draw _ waypoint _ union ( debug , current _ w , next _ w , cyan if current _ w . is _ junction else green , 60 ) debug . draw _ string ( current _ w . transform . location , str ( ' % 15.0 f km / h ' % ( 3.6 * math . sqrt ( vector . x * * 2 + vector . y * * 2 + vector . z * * 2 ) ) ) , False , orange , 60 ) draw _ transform ( debug , current _ w . transform , white , 60 ) # \u66f4\u65b0 \u5f53\u524d \u8def\u5f84 \u70b9 \u5e76 \u4f11\u7720 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 current _ w = next _ w time . sleep ( args . tick _ time ) # ... Copy snippet Close snippet Snippet for carla . World . unload _ map _ layer # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u5728 \u5206\u5c42 \u5730\u56fe \" _ Opt \" \u4e0a \u5173\u95ed \u51e0\u5c42 # \u4ee5 \u6700\u5c0f \u5e03\u5c40 \uff08 \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff09 \u52a0\u8f7d \u57ce\u9547 \uff0c \u8fd8 \u5305\u62ec \u5efa\u7b51 \u548c \u505c\u9760 \u7684 \u8f66\u8f86 world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # \u9690\u85cf \u5efa\u7b51 world . unload _ map _ layer ( carla . MapLayer . Buildings ) # \u9690\u85cf \u505c\u9760 \u7684 \u8f66\u8f86 world . unload _ map _ layer ( carla . MapLayer . ParkedVehicles ) Copy snippet Close snippet Snippet for carla . Vehicle . set _ wheel _ steer _ direction # \u8bbe\u7f6e \u524d \u8f6e\u8f6c 40 \u00b0 \u8f66\u8f86 \u7684 \u5916\u89c2 \u3002 \u4e0d\u4f1a \u5f71\u54cd \u8f66\u8f86 \u7684 \u7269\u7406 \u3002 vehicle . set _ wheel _ steer _ direction ( carla . VehicleWheelLocation . FR _ Wheel , 40.0 ) vehicle . set _ wheel _ steer _ direction ( carla . VehicleWheelLocation . FL _ Wheel , 40.0 ) Copy snippet Close snippet Snippet for carla . Client .__ init __ # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u5728 PythonAPI / Examples \u4e2d \u7684 \u6bcf\u4e2a \u811a\u672c \u4e2d \u90fd \u6709 \uff0c \u8fd0\u884c \u811a\u672c \u65f6\u5019 \u7528\u4e8e \u89e3\u6790 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u53c2\u6570 \u3002 argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) argparser . add _ argument ( ' - s ' , ' -- speed ' , metavar = ' FACTOR ' , default = 1.0 , type = float , help = ' rate at which the weather changes ( default : 1.0 ) ' ) args = argparser . parse _ args ( ) speed _ factor = args . speed update _ freq = 0.1 / speed _ factor client = carla . Client ( args . host , args . port ) Copy snippet Close snippet carla . Map . get _ waypoint \u4ee3\u7801 \u7247\u6bb5 # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u663e\u793a \u5f53\u524d \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5f71\u54cd \u7684 \u8f66\u8f86 \u3002 # \u663e\u793a \u5f53\u524d \u8f66\u8f86 \u7c7b\u578b \uff0c \u5728 \u5b9e\u9645 \u7684 \u8f66\u9053 \u6216 \u5468\u56f4 \u7684 \u7269\u4f53 \u4e2d \u8f66\u9053 \u7ebf \u662f\u5426 \u6539\u53d8 \u3002 # ... waypoint = world . get _ map ( ) . get _ waypoint ( vehicle . get _ location ( ) , project _ to _ road = True , lane _ type = ( carla . LaneType . Driving | carla . LaneType . Shoulder | carla . LaneType . Sidewalk ) ) print ( \" Current lane type : \" + str ( waypoint . lane _ type ) ) # Check current lane change allowed print ( \" Current Lane change : \" + str ( waypoint . lane _ change ) ) # Left and Right lane markings print ( \" L lane marking type : \" + str ( waypoint . left _ lane _ marking . type ) ) print ( \" L lane marking change : \" + str ( waypoint . left _ lane _ marking . lane _ change ) ) print ( \" R lane marking type : \" + str ( waypoint . right _ lane _ marking . type ) ) print ( \" R lane marking change : \" + str ( waypoint . right _ lane _ marking . lane _ change ) ) # ... Copy snippet Close snippet Snippet for carla . World . spawn _ actor # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u4f7f\u7528 \u4e0d\u540c \u7684 \u9644\u7740 \u5c06 \u4e0d\u540c \u7684 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216\u4f20\u611f\u5668 \u9644\u7740 \u5230 \u8f66\u8f86 \u4e2d \u3002 # ... camera = world . spawn _ actor ( rgb _ camera _ bp , transform , attach _ to = vehicle , attachment _ type = Attachment . Rigid ) # \u9ed8\u8ba4 \u9644\u7740 \uff1a Attachment . Rigid gnss _ sensor = world . spawn _ actor ( sensor _ gnss _ bp , transform , attach _ to = vehicle ) collision _ sensor = world . spawn _ actor ( sensor _ collision _ bp , transform , attach _ to = vehicle ) lane _ invasion _ sensor = world . spawn _ actor ( sensor _ lane _ invasion _ bp , transform , attach _ to = vehicle ) # ... Copy snippet Close snippet carla . WalkerAIController . stop \u4ee3\u7801 \u7247\u6bb5 # To destroy the pedestrians , stop them from the navigation , and then destroy the objects ( actor and controller ) . # stop pedestrians ( list is [ controller , actor , controller , actor ... ] ) for i in range ( 0 , len ( all _ id ) , 2 ) : all _ actors [ i ] . stop ( ) # destroy pedestrian ( actor and controller ) client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in all _ id ] ) Copy snippet Close snippet Snippet for carla . DebugHelper . draw _ box # This recipe shows how to draw traffic light actor bounding boxes from a world snapshot . # .... debug = world . debug world _ snapshot = world . get _ snapshot ( ) for actor _ snapshot in world _ snapshot : actual _ actor = world . get _ actor ( actor _ snapshot . id ) if actual _ actor . type _ id = = ' traffic . traffic _ light ' : debug . draw _ box ( carla . BoundingBox ( actor _ snapshot . get _ transform ( ) . location , carla . Vector3D ( 0.5 , 0.5 , 2 ) ) , actor _ snapshot . get _ transform ( ) . rotation , 0.05 , carla . Color ( 255 , 0 , 0 , 0 ) , 0 ) # ... Copy snippet Close snippet Snippet for carla . World . get _ spectator # This recipe spawns an actor and the spectator camera at the actor ' s location . # ... world = client . get _ world ( ) spectator = world . get _ spectator ( ) vehicle _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) ) transform = random . choice ( world . get _ map ( ) . get _ spawn _ points ( ) ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , transform ) # Wait for world to get the vehicle actor world . tick ( ) world _ snapshot = world . wait _ for _ tick ( ) actor _ snapshot = world _ snapshot . find ( vehicle . id ) # Set spectator at given transform ( vehicle transform ) spectator . set _ transform ( actor _ snapshot . get _ transform ( ) ) # ... Copy snippet Close snippet Snippet for carla . Sensor . listen # This recipe applies a color conversion to the image taken by a camera sensor , # so it is converted to a semantic segmentation image . # ... camera _ bp = world . get _ blueprint _ library ( ) . filter ( ' sensor . camera . semantic _ segmentation ' ) # ... cc = carla . ColorConverter . CityScapesPalette camera . listen ( lambda image : image . save _ to _ disk ( ' output / % 06d . png ' % image . frame , cc ) ) # ... Copy snippet Close snippet Snippet for carla . TrafficLight . set _ state # This recipe changes from red to green the traffic light that affects the vehicle . # This is done by detecting if the vehicle actor is at a traffic light . # ... world = client . get _ world ( ) spectator = world . get _ spectator ( ) vehicle _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) ) transform = random . choice ( world . get _ map ( ) . get _ spawn _ points ( ) ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , transform ) # Wait for world to get the vehicle actor world . tick ( ) world _ snapshot = world . wait _ for _ tick ( ) actor _ snapshot = world _ snapshot . find ( vehicle . id ) # Set spectator at given transform ( vehicle transform ) spectator . set _ transform ( actor _ snapshot . get _ transform ( ) ) # ...# ... if vehicle _ actor . is _ at _ traffic _ light ( ) : traffic _ light = vehicle _ actor . get _ traffic _ light ( ) if traffic _ light . get _ state ( ) = = carla . TrafficLightState . Red : # world . hud . notification ( \" Traffic light changed ! Good to go ! \" ) traffic _ light . set _ state ( carla . TrafficLightState . Green ) # ... Copy snippet Close snippet Snippet for carla . ActorBlueprint . set _ attribute # This recipe changes attributes of different type of blueprint actors . # ... walker _ bp = world . get _ blueprint _ library ( ) . filter ( ' walker . pedestrian.0002 ' ) walker _ bp . set _ attribute ( ' is _ invincible ' , True ) # ... # Changes attribute randomly by the recommended value vehicle _ bp = wolrd . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) color = random . choice ( vehicle _ bp . get _ attribute ( ' color ' ) . recommended _ values ) vehicle _ bp . set _ attribute ( ' color ' , color ) # ... camera _ bp = world . get _ blueprint _ library ( ) . filter ( ' sensor . camera . rgb ' ) camera _ bp . set _ attribute ( ' image _ size _ x ' , 600 ) camera _ bp . set _ attribute ( ' image _ size _ y ' , 600 ) # ... Copy snippet Close snippet Snippet for carla . Client . apply _ batch _ sync # 0 . Choose a blueprint fo the walkers world = client . get _ world ( ) blueprintsWalkers = world . get _ blueprint _ library ( ) . filter ( \" walker . pedestrian . * \" ) walker _ bp = random . choice ( blueprintsWalkers ) # 1 . Take all the random locations to spawn spawn _ points = [ ] for i in range ( 50 ) : spawn _ point = carla . Transform ( ) spawn _ point . location = world . get _ random _ location _ from _ navigation ( ) if ( spawn _ point . location ! = None ) : spawn _ points . append ( spawn _ point ) # 2 . Build the batch of commands to spawn the pedestrians batch = [ ] for spawn _ point in spawn _ points : walker _ bp = random . choice ( blueprintsWalkers ) batch . append ( carla . command . SpawnActor ( walker _ bp , spawn _ point ) ) # 2.1 apply the batch results = client . apply _ batch _ sync ( batch , True ) for i in range ( len ( results ) ) : if results [ i ] . error : logging . error ( results [ i ] . error ) else : walkers _ list . append ( { \" id \" : results [ i ] . actor _ id } ) # 3 . Spawn walker AI controllers for each walker batch = [ ] walker _ controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) for i in range ( len ( walkers _ list ) ) : batch . append ( carla . command . SpawnActor ( walker _ controller _ bp , carla . Transform ( ) , walkers _ list [ i ] [ \" id \" ] ) ) # 3.1 apply the batch results = client . apply _ batch _ sync ( batch , True ) for i in range ( len ( results ) ) : if results [ i ] . error : logging . error ( results [ i ] . error ) else : walkers _ list [ i ] [ \" con \" ] = results [ i ] . actor _ id # 4 . Put altogether the walker and controller ids for i in range ( len ( walkers _ list ) ) : all _ id . append ( walkers _ list [ i ] [ \" con \" ] ) all _ id . append ( walkers _ list [ i ] [ \" id \" ] ) all _ actors = world . get _ actors ( all _ id ) # wait for a tick to ensure client receives the last transform of the walkers we have just created world . wait _ for _ tick ( ) # 5 . initialize each controller and set target to walk to ( list is [ controller , actor , controller , actor ... ] ) for i in range ( 0 , len ( all _ actors ) , 2 ) : # start walker all _ actors [ i ] . start ( ) # set walk to random point all _ actors [ i ] . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) # random max speed all _ actors [ i ] . set _ max _ speed ( 1 + random . random ( ) ) # max speed between 1 and 2 ( default is 1.4 m / s ) Copy snippet Close snippet Snippet for carla . World . load _ map _ layer # This recipe toggles on several layers in our \" _ Opt \" maps # Load town one with only minimum layout ( roads , sidewalks , traffic lights and traffic signs ) world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . None ) # Toggle all buildings on world . load _ map _ layer ( carla . MapLayer . Buildings ) # Toggle all foliage on world . load _ map _ layer ( carla . MapLayer . Foliage ) # Toggle all parked vehicles on world . load _ map _ layer ( carla . MapLayer . ParkedVehicles ) Copy snippet Close snippet function ButtonAction ( container _ name ) { if ( window _ big ) { snipet _ name = container _ name . replace ( ' - snipet _ button ' , ' - snipet ' ) ; document . getElementById ( \" snipets - container \" ) . innerHTML = document . getElementById ( snipet _ name ) . innerHTML ; } else { document . getElementById ( \" snipets - container \" ) . innerHTML = null ; code _ name = container _ name . replace ( ' - snipet _ button ' , ' - code ' ) ; var range = document . createRange ( ) ; range . selectNode ( document . getElementById ( code _ name ) ) ; alert ( range ) ; } } function WindowResize ( ) { if ( window . innerWidth > 1200 ) { window _ big = true ; } else { window _ big = false ; } } var window _ big ; if ( window . innerWidth > 1200 ) { window _ big = true ; } else { window _ big = false ; } buttons = document . getElementsByClassName ( ' SnipetButton ' ) for ( let i = 0 ; i < buttons . length ; i ++ ) { buttons [ i ] . addEventListener ( \" click \" , function ( ) { ButtonAction ( buttons [ i ] . id ) ; } , true ) ; } window . onresize = WindowResize ;","title":"Python API \u53c2\u8003"},{"location":"python_api/#python-api","text":"\u6b64 \u53c2\u8003 \u5305\u542b Python API \u7684 \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u8981 \u67e5\u9605 \u7279\u5b9a Carla \u7248\u672c \u7684 \u5148\u524d \u53c2\u8003 \uff0c \u8bf7 \u4f7f\u7528 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4\u6539 \u6587\u6863 \u7248\u672c \u3002 \u8fd9\u4f1a \u5c06 \u6574\u4e2a \u6587\u6863 \u66f4 \u6539\u4e3a \u4e4b\u524d \u7684 \u72b6\u6001 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6700\u65b0 \u7248\u672c \u662f dev \u5206\u652f \uff0c \u53ef\u80fd \u4f1a \u663e\u793a \u4efb\u4f55 Carla \u6253\u5305 \u7248\u672c \u4e2d \u4e0d\u53ef \u7528 \u7684 \u529f\u80fd \u3002","title":"Python API \u53c2\u8003"},{"location":"python_api/#carlaackermanncontrollersettings","text":"\u7ba1\u7406 Ackermann PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \u3002","title":"carla . AckermannControllerSettings"},{"location":"python_api/#_1","text":"speed _ kp ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 speed _ ki ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 speed _ kd ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002 accel _ kp ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 accel _ ki ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 accel _ kd ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_2","text":"__ init __ ( self , speed _ kp = 0.15 , speed _ ki = 0.0 , speed _ kd = 0.25 , accel _ kp = 0.01 , accel _ ki = 0.0 , accel _ kd = 0.01 ) Parameters : speed _ kp ( float ) speed _ ki ( float ) speed _ kd ( float ) accel _ kp ( float ) accel _ ki ( float ) accel _ kd ( float )","title":"\u65b9\u6cd5"},{"location":"python_api/#_3","text":"__ eq __ ( self , other = carla . AckermannControllerSettings ) __ ne __ ( self , other = carla . AckermannControllerSettings ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaactor","text":"Carla \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b9a\u4e49 \u4e3a \u5728 \u4eff\u771f \u4e2d \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \u6216 \u53ef\u4ee5 \u79fb\u52a8 \u7684 \u4efb\u4f55 \u7269\u4f53 \u3002 \u5176\u4e2d \u5305\u62ec \uff1a \u884c\u4eba \u3001 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff08 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u89c6\u4e3a \u5176\u4e2d \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u4eff\u771f \u4e2d \u7531 carla . World \u751f\u6210 \uff0c \u5e76\u4e14 \u9700\u8981 \u521b\u5efa carla . ActorBlueprint \u3002 \u8fd9\u4e9b \u84dd\u56fe \u5c5e\u4e8e Carla \u63d0\u4f9b \u7684 \u5e93 \uff0c \u8bf7 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"carla . Actor"},{"location":"python_api/#_4","text":"attributes ( dict ) \u5305\u542b \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u84dd\u56fe \u5c5e\u6027 \u7684 \u5b57\u5178 \u3002 id ( int ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u5728 \u7ed9\u5b9a \u7684 \u60c5\u8282 \u4e2d\u662f \u552f\u4e00 \u7684 \u3002 type _ id ( str ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \uff0c \u4f8b\u5982 vehicle . ford . mustang \u3002 is _ alive ( bool ) \u8fd4\u56de \u6b64 \u5bf9\u8c61 \u662f\u5426 \u662f\u5426\u662f \u4f7f\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53e5\u67c4 \u9500\u6bc1 \u7684 \u3002 is _ active ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( True ) \u6216\u975e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( False ) \u3002 is _ dormant ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( True ) \u6216\u975e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( False ) - \u4e0e is _ active \u76f8\u53cd \u3002 parent ( carla . Actor ) \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u4ed6\u4eec \u5c06 \u8ddf\u968f \u7684 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u5c31\u662f \u6240\u8bf4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 semantic _ tags ( list ( int ) ) \u84dd\u56fe \u5217\u8868 \u7ec4\u4ef6 \u4e3a\u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u7684 \u8bed\u4e49 \u6807\u7b7e \u5217\u8868 \u3002 \u4f8b\u5982 \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u53ef\u4ee5 \u7528 Pole \u548c TrafficLight . \u3002 \u8fd9\u4e9b \u6807\u7b7e \u7531 \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u3002 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 actor _ state ( carla . ActorState ) \u8fd4\u56de carla . ActorState \uff0c \u5b83 \u53ef\u4ee5 \u8bc6\u522b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u3001 \u4f11\u7720 \u6216 \u65e0\u6548 \u72b6\u6001 \u3002 bounding _ box ( carla . BoundingBox ) \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u51e0\u4f55 \u5f62\u72b6 \u7684 \u8fb9\u754c \u6846 \u3002 \u5b83 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u662f \u76f8\u5bf9 \u4e8e \u5b83 \u6240 \u9644\u7740 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_5","text":"add _ angular _ impulse ( self , angular _ impulse ) \u5728 \u89d2\u8272 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u89d2 \u51b2\u91cf \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u626d\u77e9 \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ torque ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u65cb\u8f6c \u529b \u3002 \u53c2\u6570 : angular _ impulse ( carla . Vector3D - degrees * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u89d2 \u8109\u51b2 \u77e2\u91cf \u3002 add _ force ( self , force ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u529b \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u529b \u3002 \u4f7f\u7528 add _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u8109\u51b2 \u3002 \u53c2\u6570 : force ( carla . Vector3D - N ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u529b \u77e2\u91cf \u3002 add _ impulse ( self , impulse ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u8109\u51b2 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u529b \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ force ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u529b \u3002 \u53c2\u6570 : impulse ( carla . Vector3D - N * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u8109\u51b2 \u77e2\u91cf \u3002 add _ torque ( self , torque ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u626d\u77e9 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u626d\u77e9 \u3002 \u4f7f\u7528 add _ angular _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u626d\u77e9 \u3002 \u53c2\u6570 : torque ( carla . Vector3D - \u5ea6 ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u626d\u77e9 \u77e2\u91cf \u3002 destroy ( self ) \u544a\u8bc9 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u9500\u6bc1 \u8fd9\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5982\u679c \u6210\u529f \u5219 True \u3002 \u5982\u679c \u5df2\u7ecf \u88ab \u7834\u574f \u5219 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u8fd4\u56de : bool \u8b66\u544a : T \u6b64 \u65b9\u6cd5 \u4f1a \u963b\u6b62 \u811a\u672c \uff0c \u76f4\u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b8c\u6210 \u9500\u6bc1 \u4e3a\u6b62 \u3002 disable _ constant _ velocity ( self ) \u7981\u7528 \u4e4b\u524d \u4e3a carla . Vehicle \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbe\u7f6e \u7684 \u4efb\u4f55 \u6052\u5b9a \u901f\u5ea6 \u3002 enable _ constant _ velocity ( self , velocity ) \u5c06 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u77e2\u91cf \u8bbe\u7f6e \u4e3a \u968f \u65f6\u95f4 \u53d8\u5316 \u7684 \u6052\u5b9a \u503c \u3002 \u6240 \u5f97\u5230 \u7684 \u901f\u5ea6 \u5c06 \u8fd1\u4f3c \u8fd1\u4f3c\u4e8e velocity \u6240 \u8bbe\u7f6e \u7684 \u901f\u5ea6 \uff0c \u4e0e set _ target _ velocity ( ) \u4e00\u6837 \u3002 \u53c2\u6570 : velocity ( carla . Vector3D - m / s ) - Velocity vector in local space . \u6ce8\u610f : \u53ea\u6709 carla . Vehicle \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u3002 \u8b66\u544a : \u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u542f\u7528 \u6052\u5b9a \u901f\u5ea6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 \u6b64 \u65b9\u6cd5 \u4f1a \u8986\u76d6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5bf9 \u901f\u5ea6 \u7684 \u4efb\u4f55 \u66f4\u6539 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_6","text":"get _ acceleration ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u6536\u5230 \u7684 \u89d2\u8272 \u7684 \u4e09\u7ef4 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Vector3D - m / s 2 get _ angular _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - deg / s get _ location ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u4e0a \u4e00\u6b21 tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Location - \u7c73 \u8bbe\u7f6e \u5668 : carla . Actor . set _ location get _ transform ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Transform \u8bbe\u7f6e \u5668 : carla . Actor . set _ transform get _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s get _ world ( self ) \u8fd4\u56de \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240\u5c5e \u7684 \u4e16\u754c \u3002 \u8fd4\u56de : carla . World","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_7","text":"set _ enable _ gravity ( self , enabled ) \u542f\u7528 \u6216 \u7981\u7528 \u6f14\u5458 \u7684 \u91cd\u529b \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 \u53c2\u6570 \uff1a enabled ( bool ) set _ location ( self , location ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ location set _ simulate _ physics ( self , enabled = True ) \u542f\u7528 \u6216 \u7981\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u7684 \u7269\u7406 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1a enabled ( bool ) set _ target _ angular _ velocity ( self , angular _ velocity ) \u8bbe\u7f6e \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u77e2\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a angular _ velocity ( carla . Vector3D - deg / s ) set _ target _ velocity ( self , velocity ) \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a velocity ( carla . Vector3D ) set _ transform ( self , transform ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ transform","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_8","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaactorattribute","text":"Carla \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . BlueprintLibrary \u8fdb\u884c \u8bbf\u95ee \u3002 \u6bcf\u4e2a \u84dd\u56fe \u90fd \u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5185\u90e8 \u5b9a\u4e49 \u7684 \u5c5e\u6027 \u3002 \u5176\u4e2d \u4e00\u4e9b \u662f \u53ef\u4ee5 \u4fee\u6539 \u7684 \uff0c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u662f \u4e0d\u53ef \u4fee\u6539 \u7684 \u3002 \u4e3a \u53ef \u8bbe\u7f6e \u7684 \u503c \u63d0\u4f9b \u4e86 \u63a8\u8350 \u63a8\u8350\u503c \u5217\u8868 \u3002","title":"carla . ActorAttribute"},{"location":"python_api/#_9","text":"id ( str ) \u5e93\u4e2d \u5c5e\u6027 \u7684 \u540d\u79f0 \u548c \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 is _ modifiable ( bool ) \u5982\u679c \u5c5e\u6027 \u7684 \u503c \u53ef\u4ee5 \u4fee\u6539 \uff0c \u5219 \u4e3a True \u3002 recommended _ values ( list ( str ) ) \u8bbe\u8ba1 \u84dd\u56fe \u7684 \u4eba\u5458 \u5efa\u8bae \u7684 \u503c \u5217\u8868 \u3002 type ( carla . ActorAttributeType ) \u5c5e\u6027 \u7684 \u53c2\u6570 \u7c7b\u578b \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_10","text":"as _ bool ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a \u5e03\u5c14 \u5e03\u5c14\u503c \u3002 as _ color ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a carla . Color \u3002 as _ float ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a \u6d6e\u70b9 \u578b \u3002 as _ int ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a int \u3002 as _ str ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_11","text":"__ bool __ ( self ) __ eq __ ( self , other = bool / int / float / str / carla . Color / carla . ActorAttribute ) \u5982\u679c \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5c5e\u6027 \u548c other \u76f8\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ float __ ( self ) __ int __ ( self ) __ ne __ ( self , other = bool / int / float / str / carla . Color / carla . ActorAttribute ) \u5982\u679c \u6b64 actor \u7684 \u5c5e\u6027 \u548c other \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ nonzero __ ( self ) \u5982\u679c \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5c5e\u6027 \u4e0d\u4e3a \u96f6 \u6216 null \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de : bool __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaactorattributetype","text":"Carla \u5728 carla . BlueprintLibrary \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u6bcf\u4e2a \u84dd\u56fe \u5177\u6709 \u4e0d\u540c \u7684 \u5c5e\u6027 \u3002 \u6b64\u7c7b \u5c06 carla . ActorAttribute \u4e2d \u7684 \u7c7b\u578b \u5b9a\u4e49 \u7c7b\u578b\u5b9a\u4e49 \u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u3002 \u6240\u6709 \u8fd9\u4e9b \u4fe1\u606f \u5747 \u5728 \u5185\u90e8 \u7ba1\u7406 \uff0c \u5e76 \u5728 \u6b64\u5904 \u5217\u51fa \uff0c \u4ee5\u4fbf \u66f4\u597d \u5730 \u7406\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u3002","title":"carla . ActorAttributeType"},{"location":"python_api/#_12","text":"Bool Int Float String RGBColor","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlaactorblueprint","text":"Carla \u4e3a Actor \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . BlueprintLibrary \u8fdb\u884c \u67e5\u9605 \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u5305\u542b \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53ef\u4ee5 \u4fee\u6539 \u6216 \u4e0d\u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u3002 \u8be5\u7c7b \u662f \u5e93 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u521b\u5efa \u4e4b\u95f4 \u7684 \u4e2d\u95f4 \u6b65\u9aa4 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9700\u8981 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u624d\u80fd \u4ea7\u751f \u3002 \u8fd9\u4e9b \u5c06 \u6240\u8ff0 \u84dd\u56fe \u7684 \u4fe1\u606f \u53ca\u5176 \u5c5e\u6027 \u548c \u4e00\u4e9b \u6807\u7b7e \u5b58\u50a8 \u5728 \u5bf9\u8c61 \u4e2d\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u5206\u7c7b \u3002 \u7136\u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u5c5e\u6027 \u5e76 \u6700\u7ec8 \u901a\u8fc7 carla . World \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"carla . ActorBlueprint"},{"location":"python_api/#_13","text":"id ( str ) \u5e93\u5185 \u6240\u8ff0 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u4f8b\u5982 walker . pedestrian.0001 \u3002 tags ( list ( str ) ) \u6bcf\u4e2a \u84dd\u56fe \u5177\u6709 \u7684 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63cf\u8ff0 \u5b83\u4eec \u7684 \u6807\u7b7e \u5217\u8868 \u3002 \u4f8b\u5982 [ ' 0001 ' , ' pedestrian ' , ' walker ' ] \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_14","text":"has _ attribute ( self , id ) \u5982\u679c \u84dd\u56fe \u5305\u542b \u8be5 id \u5c5e\u6027 \uff0c \u5219 \u8fd4\u56de True \u3002 \u53c2\u6570 \uff1a id ( str ) - \u4f8b\u5982 gender \u5c06 \u4e3a \u884c\u4eba \u7684 \u84dd\u56fe \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool has _ tag ( self , tag ) \u5982\u679c \u84dd\u56fe \u5df2 \u5217\u51fa \u6307\u5b9a tag \u7684 \u5185\u5bb9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u53c2\u6570 \uff1a tag ( str ) - \u4f8b\u5982 \uff1a ' walker ' \u3002 \u8fd4\u56de \uff1a bool match _ tags ( self , wildcard _ pattern ) \u5982\u679c \u4e3a\u6b64 \u84dd\u56fe \u5217\u51fa \u7684 \u4efb\u4f55 \u6807\u8bb0 \u5339\u914d wildcard _ pattern \uff0c \u5219 \u8fd4\u56de True \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a bool","title":"\u65b9\u6cd5"},{"location":"python_api/#_15","text":"get _ attribute ( self , id ) \u8fd4\u56de \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5c5e\u6027 \u4ee5\u53ca id \u6807\u8bc6 \u6807\u8bc6\u7b26 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1a id ( str ) \u8fd4\u56de \uff1a carla . ActorAttribute \u8bbe\u7f6e \u5668 \uff1a carla . ActorBlueprint . set _ attribute","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_16","text":"set _ attribute ( self , id , value ) snippet \u2192 \u5982\u679c id \u5c5e\u6027 \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u5c06 \u5176\u503c \u6539\u4e3a value \u3002 \u53c2\u6570 \uff1a id ( str ) - \u8981 \u66f4\u6539 \u5c5e\u6027 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 value ( str ) - \u6240\u8ff0 \u5c5e\u6027 \u7684 \u65b0\u503c \u3002 \u83b7\u53d6 \u5668 \uff1a carla . ActorBlueprint . get _ attribute","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#dunder","text":"__ iter __ ( self ) \u5728 \u84dd\u56fe \u6709 \u7684 carla . ActorAttribute \u4e4b\u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u6b64 \u84dd\u56fe \u7684 \u5c5e\u6027 \u6570\u91cf \u3002 __ str __ ( self )","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlaactorlist","text":"\u4e00\u4e2a \u7c7b \uff0c \u5b83 \u5305\u542b \u73b0\u573a \u51fa\u73b0 \u7684 \u6bcf\u4e2a \u6f14\u5458 \u5e76 \u63d0\u4f9b \u5bf9 \u4ed6\u4eec \u7684 \u8bbf\u95ee \u3002 \u8be5 \u5217\u8868 \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81ea\u52a8 \u521b\u5efa \u548c \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u4f7f\u7528 carla . World \u8fd4\u56de \u3002","title":"carla . ActorList"},{"location":"python_api/#_17","text":"filter ( self , wildcard _ pattern ) \u7b5b\u9009 \u5339\u914d wildcard _ pattern \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \uff0c \u4ee5 \u5bf9\u6297 \u53d8\u91cf type _ id ( \u5b83 \u6807\u8bc6 \u7528\u4e8e \u751f\u6210 \u5b83\u4eec \u7684 \u84dd\u56fe ) \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a list find ( self , actor _ id ) \u4f7f\u7528 \u5176 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u67e5\u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u8fd4\u56de \u5b83 \uff0c \u5982\u679c \u4e0d \u5b58\u5728 \u5219 \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a actor _ id ( int ) \u8fd4\u56de \uff1a carla . Actor","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_1","text":"__ getitem __ ( self , pos = int ) \u8fd4\u56de \u4e0e \u5217\u8868 \u4e2d pos \u4f4d\u7f6e \u76f8\u5bf9 \u5e94 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de \uff1a carla . Actor __ iter __ ( self ) \u5728 \u5305\u542b carla . Actor \u7684 \u5217\u8868 \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u5217\u51fa \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int __ str __ ( self ) \u5728 \u5217\u51fa \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u89e3\u6790 ID \u3002 \u8fd4\u56de \uff1a str","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlaactorsnapshot","text":"\u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u7279\u5b9a \u65f6\u523b \u7684 \u6240\u6709 \u4fe1\u606f \u7684 \u7c7b \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u5305\u542b \u5728 carla . WorldSnapshot \u4e2d \uff0c \u5e76 \u5728 \u6bcf\u4e2a \u65f6\u949f \u5468\u671f \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u6b21 \u3002","title":"carla . ActorSnapshot"},{"location":"python_api/#_18","text":"id ( int ) \u5feb\u7167 \u672c\u8eab \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_19","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_20","text":"get _ acceleration ( self ) \u8fd4\u56de \u5728 \u8be5 tick \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s 2 get _ angular _ velocity ( self ) \u8fd4\u56de \u4e3a \u8be5 tick \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - rad / s get _ transform ( self ) \u8fd4\u56de \u8be5 tick \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u8fd4\u56de \uff1a carla . Transform get _ velocity ( self ) \u8fd4\u56de \u5728 \u8be5 tick \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#carlaactorstate","text":"\u5b9a\u4e49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u72b6\u6001 \u7684 \u7c7b \u3002","title":"carla . ActorState"},{"location":"python_api/#_21","text":"Invalid \u5982\u679c \u51fa\u73b0 \u95ee\u9898 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c31\u662f \u65e0\u6548 \u7684 \u3002 Active \u5f53 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5e76\u4e14 \u53ef\u4ee5 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u5b83 \u5c31\u662f \u6d3b\u8dc3 \u7684 \u3002 Dormant \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d \u88ab \u53ef\u89c6 \u53ef\u89c6\u5316 \u5e76\u4e14 \u4e0d\u4f1a \u901a\u8fc7 \u7269\u7406 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c31 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u4e8e \u5927 \u5730\u56fe \u4e2d \u5df2 \u5378\u8f7d \u7684 \u56fe\u5757 \u4e0a \uff0c \u5219 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlaattachmenttype","text":"\u5b9a\u4e49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0e \u5176\u7236 \u7ea7 \u4e4b\u95f4 \u7684 \u9644\u4ef6 \u9009\u9879 \u7684 \u7c7b \u3002 \u5f53 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u5b83\u4eec \u53ef\u4ee5 \u9644\u52a0 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \uff0c \u8fd9\u6837 \u5b83\u4eec \u7684 \u4f4d\u7f6e \u5c31 \u4f1a \u76f8\u5e94 \u6539\u53d8 \u3002 \u8fd9 \u5bf9\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7279\u522b \u6709\u7528 \u3002 carla . World . spawn _ actor \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u751f\u6210 \u65f6 \u8fde\u63a5 \u5230 \u6c7d\u8f66 \u4e0a \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9644\u4ef6 \u7c7b\u578b \u5728 \u7c7b \u4e2d \u58f0\u660e \u4e3a \u679a\u4e3e \u3002","title":"carla . AttachmentType"},{"location":"python_api/#_22","text":"Rigid \u901a\u8fc7 \u6b64 \u56fa\u5b9a \u9644\u4ef6 \uff0c \u5bf9\u8c61 \u4e25\u683c \u9075\u5faa \u5176\u7236 \u4f4d\u7f6e \u3002 \u8fd9\u662f \u63a8\u8350 \u7684 \u9644\u4ef6 \uff0c \u7528\u4e8e \u4ece \u4eff\u771f \u4e2d \u68c0\u7d22 \u7cbe\u786e \u6570\u636e \u3002 SpringArm \u4e00\u79cd \u9644\u4ef6 \uff0c \u53ef \u6839\u636e \u5176\u7236 \u7ea7 \u6269\u5c55 \u6216 \u7f29\u56de \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 \u4ec5 \u5efa\u8bae \u5728 \u9700\u8981 \u5e73\u6ed1 \u8fd0\u52a8 \u7684 \u4eff\u771f \u4e2d \u5f55\u5236 \u89c6\u9891 \u65f6 \u4f7f\u7528 \u6b64 \u9644\u4ef6 \u3002 SpringArms \u662f \u4e00\u4e2a \u865a\u5e7b \u5f15\u64ce \u7ec4\u4ef6 \uff0c \u56e0\u6b64 check the UE \u6587\u6863 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8b66\u544a \uff1a \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 Z \u8f74\u4e0a \u4ea7\u751f \u76f8\u5bf9 \u5e73\u79fb \u65f6 \uff0c SpringArm \u9644\u4ef6 \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u5947\u602a \u7684 \u884c\u4e3a \u3002 \uff08 \u6bd4\u5982 \uff1a child _ location = Location ( 0 , 0 , 2 ) \uff09 \u3002 SpringArmGhost \u4e00\u4e2a \u4e0e \u524d \u4e00\u4e2a \u7c7b\u4f3c \u7684 \u9644\u4ef6 \uff0c \u4f46 \u5b83 \u4e0d\u4f1a \u8fdb\u884c \u78b0\u649e \u6d4b\u8bd5 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83 \u4e0d\u4f1a \u6269\u5c55 \u6216 \u6536\u7f29 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 ghost \u4e00\u8bcd \u56e0\u4e3a \u662f\u56e0\u4e3a \u8fd9\u6837 \u76f8\u673a \u5c31 \u53ef\u4ee5 \u7a7f\u8fc7 \u5899\u58c1 \u548c \u5176\u4ed6 \u51e0\u4f55 \u5f62\u72b6 \u3002 \u6b64 \u9644\u4ef6 \u4ec5 \u5efa\u8bae \u7528\u4e8e \u5f55\u5236 \u9700\u8981 \u5e73\u6ed1 \u79fb\u52a8 \u7684 \u4eff\u771f \u89c6\u9891 \u3002 SpringArms \u662f \u4e00\u4e2a \u865a\u5e7b \u5f15\u64ce \u7ec4\u4ef6 \uff0c \u8bf7 \u67e5\u770b \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8b66\u544a \uff1a \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 Z \u8f74\u4e0a \u4ea7\u751f \u76f8\u5bf9 \u5e73\u79fb \u65f6 \uff0c SpringArm \u9644\u4ef6 \u4f1a \u51fa\u73b0 \u5947\u602a \u7684 \u884c\u4e3a \uff08 \u6bd4\u5982 child _ location = Location ( 0 , 0 , 2 ) \uff09 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlablueprintlibrary","text":"\u5305\u542b \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u6210 \u63d0\u4f9b \u7684 \u84dd\u56fe \u7684 \u7c7b \u3002 \u5b83 \u7684 \u4e3b\u8981 \u5e94\u7528 \u662f \u8fd4\u56de \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u9700 \u7684 carla . ActorBlueprint \u5bf9\u8c61 \u3002 \u6bcf\u4e2a \u84dd\u56fe \u90fd \u6709 \u4e00\u4e2a \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u53ef\u80fd \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u4e5f \u53ef\u80fd \u662f \u4e0d\u53ef \u4fee\u6539 \u7684 \u3002 \u8be5\u5e93 \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81ea\u52a8 \u521b\u5efa \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . World \u8bbf\u95ee \u3002 \u8fd9 \u662f \u5305\u542b \u6bcf\u4e2a \u53ef\u7528 \u84dd\u56fe \u53ca\u5176 \u7ec6\u8282 \u7684 \u53c2\u8003 \u3002","title":"carla . BlueprintLibrary"},{"location":"python_api/#_23","text":"filter ( self , wildcard _ pattern ) \u6839\u636e \u6b64\u5e93 \u4e2d \u5305\u542b \u7684 \u6bcf\u4e2a \u84dd\u56fe \u7684 id \u548c \u6807\u8bb0 \u8fc7\u6ee4 \u4e0e \u901a\u914d\u7b26 \u6a21\u5f0f wildcard _ pattern \u5339\u914d \u7684 \u84dd\u56fe \u5217\u8868 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u4f5c\u4e3a \u65b0 \u7684 \u7ed3\u679c \u8fd4\u56de \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a carla . BlueprintLibrary filter _ by _ attribute ( self , name , value ) \u6839\u636e \u6b64\u5e93 \u4e2d \u5305\u542b \u7684 \u6bcf\u4e2a \u84dd\u56fe \uff0c \u7b5b\u9009 \u5177\u6709 \u4e0e\u503c value \u5339\u914d \u7684 \u7ed9\u5b9a \u5c5e\u6027 \u7684 \u84dd\u56fe \u5217\u8868 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u4f5c\u4e3a \u65b0 \u7684 \u7ed3\u679c \u8fd4\u56de \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a name ( str ) value ( str ) \u8fd4\u56de \uff1a carla . BlueprintLibrary find ( self , id ) \u8fd4\u56de \u4e0e \u8be5 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u5bf9\u5e94 \u7684 \u84dd\u56fe \u3002 \u53c2\u6570 \uff1a id ( str ) \u8fd4\u56de \uff1a carla . ActorBlueprint","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_2","text":"__ getitem __ ( self , pos = int ) \u8fd4\u56de \u5b58\u50a8 \u5728 \u5305\u542b \u84dd\u56fe \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u5185 pos \u4f4d\u7f6e \u7684 \u84dd\u56fe \u3002 \u8fd4\u56de : carla . ActorBlueprint __ iter __ ( self ) \u5728 \u5b58\u50a8 \u5e93 carla . ActorBlueprint \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u6784\u6210 \u5e93 \u7684 \u84dd\u56fe \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int __ str __ ( self ) \u89e3\u6790 \u8981 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5316 \u7684 \u6bcf\u4e2a \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u8fd4\u56de \uff1a string","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlaboundingbox","text":"\u8fb9\u754c \u6846 \u5305\u542b \u573a\u666f \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5143\u7d20 \u7684 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u88ab carla . DebugHelper \u6216 carla . Client \u7528\u4e8e \u7ed8\u5236 \u5b83\u4eec \u7684 \u5f62\u72b6 \u4ee5 \u8fdb\u884c \u8c03\u8bd5 \u3002 \u770b\u770b carla . DebugHelper . draw _ box \uff0c \u5176\u4e2d \u4f7f\u7528 \u4e16\u754c \u5feb\u7167 \u7ed8\u5236 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u8fb9\u754c \u6846 \u3002","title":"carla . BoundingBox"},{"location":"python_api/#_24","text":"extent ( carla . Vector3D - \u7c73 ) \u4ece \u957f\u65b9 \u957f\u65b9\u4f53 \u4e2d\u5fc3 \u5230 \u4e00\u4e2a \u9876\u70b9 \u7684 \u77e2\u91cf \u3002 \u6bcf\u4e2a \u8f74\u4e2d \u7684 \u503c \u7b49\u4e8e \u8be5\u8f74\u6846 \u5927\u5c0f \u7684 \u4e00\u534a \u3002 extent . x * 2 \u5c06 \u8fd4\u56de \u6846\u5728 x \u8f74\u4e0a \u7684 \u5927\u5c0f \u3002 location ( carla . Location - \u7c73 ) \u8fb9\u754c \u6846 \u7684 \u4e2d\u5fc3 \u3002 rotation ( carla . Rotation ) \u8fb9\u754c \u6846 \u7684 \u671d\u5411 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_25","text":"__ init __ ( self , location , extent ) \u53c2\u6570 \uff1a location ( carla . Location ) - \u76f8\u5bf9 \u4e8e \u5176\u7236 \u6846 \u7684 \u4e2d\u5fc3 \u3002 extent ( carla . Vector3D - \u7c73 ) - \u5305\u542b \u6bcf\u4e2a \u8f74 \u7684 \u957f\u65b9 \u957f\u65b9\u4f53 \u5927\u5c0f \u7684 \u4e00\u534a \u7684 \u77e2\u91cf \u3002 contains ( self , world _ point , transform ) \u5982\u679c \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u4f20\u9012 \u7684 \u70b9 \u5728 \u6b64 \u8fb9\u754c \u6846\u5185 \uff0c \u5219 \u8fd4\u56de True \u3002 Parameters : world _ point ( carla . Location - \u7c73 ) - \u8981 \u68c0\u67e5 \u7684 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u70b9 \u3002 transform ( carla . Transform ) - \u5305\u542b \u5c06 \u6b64 \u5bf9\u8c61 \u7684 \u5c40\u90e8 \u7a7a\u95f4 \u8f6c\u6362 \u4e3a \u4e16\u754c \u7a7a\u95f4 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8fd4\u56de \uff1a bool","title":"\u65b9\u6cd5"},{"location":"python_api/#_26","text":"get _ local _ vertices ( self ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u5c40\u90e8 \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ world _ vertices ( self , transform ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) - \u5305\u542b \u5c06 \u6b64 \u5bf9\u8c61 \u7684 \u672c\u5730 \u7a7a\u95f4 \u8f6c\u6362 \u4e3a \u4e16\u754c \u7a7a\u95f4 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8fd4\u56de \uff1a list ( carla . Location )","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#dunder_3","text":"__ eq __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u53e6 \u4e00\u4e2a other \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u5176\u4ed6 other \u7684 \u4f4d\u7f6e \u6216 \u8303\u56f4 \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlacityobjectlabel","text":"\u5305\u542b \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World . get _ level _ bbs ( ) \u8fd4\u56de \u7684 \u8fb9\u754c \u6846 \u7684 \u4e0d\u540c \u6807\u7b7e \u7684 \u679a\u4e3e \u58f0\u660e \u3002 \u8fd9\u4e9b \u503c \u5bf9\u5e94 \u4e8e \u573a\u666f \u4e2d \u5143\u7d20 \u6240 \u5177\u6709 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"carla . CityObjectLabel"},{"location":"python_api/#_27","text":"None Buildings Fences Other Pedestrians Poles RoadLines Roads Sidewalks TrafficSigns Vegetation Vehicles Walls Sky Ground Bridge RailTrack GuardRail TrafficLight Static Dynamic Water Terrain Any","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlaclient","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 Carla \u8fde\u63a5 \u5230 \u8fd0\u884c \u4eff\u771f \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u5305\u542b Carla \u5e93 ( libcarla ) \uff0c \u4f46 \u5b58\u5728 \u4e00\u4e9b \u5dee\u5f02 \uff0c \u5141\u8bb8 \u5b83\u4eec \u4e4b\u95f4 \u8fdb\u884c \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u521b\u5efa \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u4f1a \u8fde\u63a5 \u5230 \u4eff\u771f \u5185 \u7684 RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53d1\u9001 \u547d\u4ee4 \u3002 \u4eff\u771f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u8fd0\u884c \u3002 \u4e00\u65e6 \u5efa\u7acb \u8fde\u63a5 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u4ec5 \u63a5\u6536 \u4ece \u4eff\u771f \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u662f \u4f8b\u5916 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u7ba1\u7406 \u8d1f\u8d23\u7ba1\u7406 \u884c\u4eba \uff0c \u56e0\u6b64 \uff0c \u5982\u679c \u60a8 \u4e0e \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u8d77 \u8fd0\u884c \u4eff\u771f \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u901a\u8fc7 \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u751f\u6210 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u56e0\u4e3a \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ea \u77e5\u9053 \u5b83 \u8d1f\u8d23 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u5177\u6709 \u8bb0\u5f55 \u529f\u80fd \uff0c \u53ef\u4ee5 \u5728 \u8fd0\u884c \u4eff\u771f \u65f6 \u4fdd\u5b58 \u4eff\u771f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u8fd9 \u4f7f\u5f97 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u968f\u610f \u91cd\u653e \u91cd\u653e\u4ee5 \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u8fdb\u884c \u5b9e\u9a8c \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u6b64 \u5f55\u97f3 \u5f55\u97f3\u673a \u7684 \u4e00\u4e9b \u4fe1\u606f \u3002","title":"carla . Client"},{"location":"python_api/#_28","text":"__ init __ ( self , host = 127.0 . 0.1 , port = 2000 , worker _ threads = 0 ) snippet \u2192 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6784\u9020 \u5668 \u3002 \u53c2\u6570 \uff1a host ( str ) - \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b9e\u4f8b \u7684 \u5730\u5740 IP\u5730\u5740 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a localhost \uff08 127.0 . 0.1 \uff09 \u3002 port ( int ) - \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b9e\u4f8b \u7684 TCP \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u548c \u968f\u540e \u7684 2001 \u3002 worker _ threads ( int ) - \u7528\u4e8e \u540e\u53f0 \u66f4\u65b0 \u7684 \u5de5\u4f5c \u7ebf\u7a0b \u6570 \u3002 \u5982\u679c \u4e3a 0 \uff0c \u5219 \u4f7f\u7528 \u6240\u6709 \u53ef\u7528 \u7684 \u5e76\u53d1 \u6027 \u3002 apply _ batch ( self , commands ) \u5728 \u5355\u4e2a \u4eff\u771f \u6b65\u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u4e0d \u68c0\u7d22 \u4efb\u4f55 \u4fe1\u606f \u3002 \u5982\u679c \u9700\u8981 \u6709\u5173 \u6bcf\u4e2a \u547d\u4ee4 \u7684 \u54cd\u5e94 \u7684 \u4fe1\u606f \uff0c \u8bf7 \u4f7f\u7528 apply _ batch _ sync ( ) \u65b9\u6cd5 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u5220\u9664 \u5361\u62c9 \u4e2d \u51fa\u73b0 \u7684 \u6f14\u5458 \u7684 \u793a\u4f8b \u3002 \u4e00\u6b21 \u5217\u51fa \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 carla . ActorList \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u6bcf\u4e2a \u547d\u4ee4 \u90fd \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u81ea\u5df1 \u7684 \u53c2\u6570 \u3002 \u5b83\u4eec \u663e\u793a \u5728 \u6b64 \u9875\u9762 \u5e95\u90e8 \u5217\u51fa \u3002 apply _ batch _ sync ( self , commands , due _ tick _ cue = False ) snippet \u2192 \u5728 \u5355\u4e2a \u4eff\u771f \u6b65\u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u963b\u6b62 \u76f4\u5230 \u547d\u4ee4 \u94fe\u63a5 \uff0c \u5e76 \u8fd4\u56de command . Response \u5217\u8868 \u3002 \u53ef \u7528\u4e8e \u786e\u5b9a \u5355\u4e2a \u547d\u4ee4 \u662f\u5426 \u6210\u529f \u7684 \u54cd\u5e94 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u7528\u6765 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f8b\u5b50 \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u53ef\u7528 \u7684 \u547d\u4ee4 \u5217 \u5728 \u65b9\u6cd5 apply _ batch ( ) \u7684 \u6b63\u4e0a \u4e0a\u65b9 \u6b63\u4e0a\u65b9 \u3002 due _ tick _ cue ( bool ) - \u4e00\u4e2a \u5e03\u5c14 \u53c2\u6570 \uff0c \u7528\u4e8e \u6307\u5b9a \u662f\u5426 \u6267\u884c Carla \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5e94\u7528 \u5904\u7406 \u6279\u5904\u7406 \u540e \u8fdb\u884c carla . World . tick \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a False \u3002 \u8fd4\u56de \uff1a list ( command . Response ) generate _ opendrive _ world ( self , opendrive , parameters = ( 2.0 , 50.0 , 1.0 , 0.6 , true , true ) , reset _ settings = True ) \u4f7f\u7528 \u4ece OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u57fa\u672c \u4e09\u7ef4 \u62d3\u6251 \u52a0\u8f7d \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u6b64 \u5185\u5bb9 \u4f5c\u4e3a string \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u3002 \u5b83 \u7c7b\u4f3c \u4e8e client . load _ world ( map _ name ) \uff0c \u4f46 \u5141\u8bb8 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 OpenDRIVE \u6620\u5c04 \u3002 \u6c7d\u8f66 \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u4f46 \u9664\u4e86 \u9053\u8def \u548c \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e4b\u5916 \uff0c \u6ca1\u6709 \u4efb\u4f55 \u56fe\u5f62 \u3002 \u53c2\u6570 \uff1a opendrive ( str ) - OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 string \uff0c \u800c \u4e0d\u662f . xodr \u7684 \u8def\u5f84 \u3002 parameters ( carla . OpendriveGenerationParameters ) - \u7f51\u683c \u751f\u6210 \u7684 \u5176\u4ed6 \u8bbe\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u5267\u96c6 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 load _ world ( self , map _ name , reset _ settings = True , map _ layers = carla . MapLayer . All ) Creates a new world with default settings using map _ name map . All actors in the current world will be destroyed . \u53c2\u6570 \uff1a map _ name ( str ) - \u8981 \u5728 \u8fd9\u4e2a \u4e16\u754c \u4e0a \u4f7f\u7528 \u7684 \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u63a5\u53d7 \u5b8c\u6574 \u8def\u5f84 \u548c \u5730\u56fe \u540d\u79f0 \uff0c \u4f8b\u5982 \u201c / Game / Calla / Maps / Town01 \u201d \u6216 \u201c Town01 \u201d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 map _ layers ( carla . MapLayer ) - \u5c06 \u52a0\u8f7d \u7684 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5c06 \u52a0\u8f7d \u6240\u6709 \u56fe\u5c42 \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u7684 \u4f5c\u7528 \u7c7b\u4f3c \u4e8e \u6807\u5fd7 \u63a9\u7801 \u3002 \u8b66\u544a \uff1a map _ layers \u4ec5 \u5bf9 \" Opt \" \u5730\u56fe \u53ef\u7528 \u3002 reload _ world ( self , reset _ settings = True ) \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u4e16\u754c \uff0c \u8bf7 \u6ce8\u610f \uff0c \u5c06 \u4f7f\u7528 \u540c\u4e00 \u5730\u56fe \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u4e16\u754c \u4e0a \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 Raises : \u5bf9\u5e94 \u7684 \u8fd0\u884c \u65f6 \u9519\u8bef RuntimeError \u3002 replay _ file ( self , name , start , duration , follow _ id , replay _ sensors ) \u4f7f\u7528 map _ name \u52a0\u8f7d \u5177\u6709 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u5f53\u524d \u4e16\u754c \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5305\u542b \u4eff\u771f \u4fe1\u606f \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 start ( float - seconds ) - \u5f00\u59cb \u64ad\u653e \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u8d1f\u6570 \u8868\u793a \u4ece \u7ed3\u5c3e \u5f00\u59cb \u8bfb\u53d6 \uff0c \u5728 \u5f55\u5236 \u7ed3\u675f \u524d 10 \u79d2 \u4e3a - 10 \u3002 duration ( float - seconds ) - \u5c06 \u4f7f\u7528 \u4fe1\u606f name \u6587\u4ef6 \u91cd\u65b0 \u6267\u884c \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u5230\u8fbe \u7ec8\u70b9 \uff0c \u4eff\u771f \u5c06 \u7ee7\u7eed \u3002 follow _ id ( int ) - \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6b64\u503c \u4e3a 0 \uff0c \u5219 \u7981\u7528 \u76f8\u673a \u3002 replay _ sensors ( bool ) - \u7528\u4e8e \u5728 \u64ad\u653e \u671f\u95f4 \u542f\u7528 \u6216 \u7981\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6807\u5fd7 \u3002 request _ file ( self , name ) \u7531 carla . Client . get _ required _ files \u8fd4\u56de \u9700\u8981 \u6587\u4ef6 \u7684 \u4e00\u4e2a \u8bf7\u6c42 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u60a8 \u8bf7\u6c42 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 show _ recorder _ actors _ blocked ( self , filename , min _ time , min _ distance ) \u7ec8\u7aef \u5c06 \u663e\u793a \u88ab \u89c6\u4e3a \u88ab \u5c4f\u853d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6ce8\u518c \u4fe1\u606f \u3002 \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \u65f6 \uff0c \u5373 min _ distance \u548c min _ time \uff0c \u5219 \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8981 \u52a0\u8f7d \u7684 \u5f55\u5236 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 min _ time ( float - seconds ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u6321 \u4e4b\u524d \u5fc5\u987b \u79fb\u52a8 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \u7684 \u6700 \u77ed\u65f6 \u65f6\u95f4 \u77ed\u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 60 \u79d2 \u3002 min _ distance ( float - centimeters ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5fc5\u987b \u79fb\u52a8 \u7684 \u6700\u5c0f \u8ddd\u79bb \u624d\u80fd \u4e0d \u88ab \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 100 \u5398\u7c73 \u3002 \u8fd4\u56de \uff1a string show _ recorder _ collisions ( self , filename , category1 , category2 ) \u7ec8\u7aef \u5c06 \u663e\u793a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u6307\u5b9a \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u6765 \u8fc7\u6ee4 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u7c7b\u522b \u5c06 \u5728 category1 \u548c category1 \u4e2d \u6307\u5b9a \u5982\u4e0b \uff1a \u201c h \u201d = \u82f1\u96c4 \uff0c \u4e00\u79cd \u53ef\u4ee5 \u624b\u52a8 \u63a7\u5236 \u6216 \u7531 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u201d v ' = \u8f66\u8f86 ' w ' = \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 ' t ' = \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f ' o ' = \u5176\u4ed6 ' a ' = \u4efb\u4f55 \u5982\u679c \u60a8 \u53ea \u60f3 \u770b\u5230 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \uff0c \u8bf7 \u5c06 category1 \u7528\u4f5c ' v ' \uff0c \u5c06 category2 \u7528\u4f5c ' w ' \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u3002 \u5982\u679c \u8981 \u67e5\u770b \u6240\u6709 \u78b0\u649e \uff08 \u8fc7\u6ee4 \u6389 \uff09 \uff0c \u53ef\u4ee5 \u5bf9 \u4e24\u4e2a \u53c2\u6570 \u90fd \u4f7f\u7528 \u201c a \u201d \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 category1 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e00 \u4e00\u7c7b \u7b2c\u4e00\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 category2 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e8c \u4e8c\u7c7b \u7b2c\u4e8c\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 \u8fd4\u56de \uff1a string show _ recorder _ file _ info ( self , filename , show _ all ) \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4fdd\u5b58 \u7684 \u4fe1\u606f \u5c06 \u88ab \u89e3\u6790 \u5e76 \u4ee5 \u6587\u672c \u5f62\u5f0f \u663e\u793a \u5728 \u60a8 \u7684 \u7ec8\u7aef \u4e2d \uff08 \u5e27 \u3001 \u65f6\u95f4 \u3001 \u4e8b\u4ef6 \u3001 \u72b6\u6001 \u3001 \u4f4d\u7f6e \u2026 \uff09 \u3002 \u53ef\u4ee5 \u4f7f\u7528 show _ all \u53c2\u6570 \u6307\u5b9a \u663e\u793a \u7684 \u4fe1\u606f \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u8bfb\u53d6 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 show _ all ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u8fd4\u56de \u4e3a \u6bcf \u5e27 \u5b58\u50a8 \u7684 \u6240\u6709 \u4fe1\u606f \uff08 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3001 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u548c \u52a8\u753b \u6570\u636e \u2026 \uff09 \u3002 \u5982\u679c \u4e3a False \uff0c \u5219 \u8fd4\u56de \u5173\u952e \u4e8b\u4ef6 \u548c \u5e27 \u7684 \u6458\u8981 \u3002 \u8fd4\u56de \uff1a string start _ recorder ( self , filename , additional _ data = False ) \u542f\u7528 \u5f55\u5236 \u529f\u80fd \uff0c \u8be5 \u529f\u80fd \u5c06 \u5f00\u59cb \u4fdd\u5b58 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u91cd\u64ad \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u7528\u4e8e \u5199\u5165 \u8bb0\u5f55 \u6570\u636e \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 \u4e00\u4e2a \u7b80\u5355 \u7684 \u540d\u79f0 \u4f1a \u5c06 \u5f55\u5236 \u4fdd\u5b58 \u5728 \u201c CarlaUE4 / Saved / recording . log \u201d \u4e2d \u3002 \u5426\u5219 \uff0c \u5982\u679c \u540d\u79f0 \u4e2d \u51fa\u73b0 \u67d0\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5219 \u4f1a \u5c06 \u5176 \u89c6\u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 additional _ data ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u8bb0\u5f55 \u7528\u4e8e \u518d\u73b0 \u4eff\u771f \u7684 \u5fc5\u8981 \u975e\u5fc5\u8981 \u6570\u636e \uff08 \u8fb9\u754c \u6846 \u4f4d\u7f6e \u3001 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 \u7b49 \uff09 \u3002 stop _ recorder ( self ) \u505c\u6b62 \u6b63\u5728 \u8fdb\u884c \u7684 \u5f55\u5236 \u3002 \u5982\u679c \u60a8 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u6307\u5b9a \u4e86 \u4e00\u4e2a \u8def\u5f84 \uff0c \u5219 \u5f55\u5236 \u6587\u4ef6 \u5c06 \u5728 \u90a3\u91cc \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u8bf7 \u67e5\u770b CarlaUE4 / Saved / \u5185\u90e8 \u3002 stop _ replayer ( self , keep _ actors ) \u505c\u6b62 \u5f53\u524d \u91cd\u64ad \u3002 \u53c2\u6570 \uff1a keep _ actors ( bool ) - \u5982\u679c \u4f60 \u60f3 \u81ea\u52a8 \u5220\u9664 \u91cd\u64ad \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5219 \u4e3a True \uff0c \u5982\u679c \u4f60 \u60f3 \u4fdd\u7559 \u4ed6\u4eec \uff0c \u5219 \u4e3a False \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_29","text":"get _ available _ maps ( self ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u53ef\u7528 \u6620\u5c04 \u7684 \u8def\u5f84 \u3002 \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u521b\u5efa \uff0c \u56e0\u6b64 \u5728 \u6587\u4ef6 \u4e2d \u67e5\u627e \u65f6 \u627e \u4e0d\u5230 \u5b83\u4eec \u3002 \u6b64 \u65b9\u6cd5 \u53ef\u80fd \u7684 \u8fd4\u56de \u7ed3\u679c \u4e4b\u4e00 \u662f \uff1a [ ' / Game / Carla / Maps / Town01 ' , ' / Game / Carla / Maps / Town02 ' , ' / Game / Carla / Maps / Town03 ' , ' / Game / Carla / Maps / Town04 ' , ' / Game / Carla / Maps / Town05 ' , ' / Game / Carla / Maps / Town06 ' , ' / Game / Carla / Maps / Town07 ' ] . \u8fd4\u56de \uff1a list ( str ) get _ client _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u5ba2\u6237 \u5ba2\u6237\u7aef libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 libcarla \u7248\u672c \uff0c \u4f46 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u4e0e \u610f\u5916 \u4e0d \u517c\u5bb9 \u6709\u5173 \u7684 \u95ee\u9898 \u3002 \u8fd4\u56de \uff1a str get _ required _ files ( self , folder , download = True ) \u8be2\u95ee \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u54ea\u4e9b \u6587\u4ef6 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u5730\u56fe \u3002 \u9009\u9879 \uff0c \u5982\u679c \u6587\u4ef6 \u4e0d \u5728 \u7f13\u5b58 \u4e2d \uff0c \u5219 \u81ea\u52a8 \u4e0b\u8f7d \u6587\u4ef6 \u3002 \u53c2\u6570 \uff1a folder ( str ) - \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6240 \u9700 \u6587\u4ef6 \u4e0b\u8f7d \u5230 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 download ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u4e0b\u8f7d \u5c1a\u672a \u5728 \u7f13\u5b58 \u4e2d \u7684 \u6587\u4ef6 \u3002 get _ server _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u5e94\u8be5 \u4f7f\u7528 \u76f8\u540c \u7684 libcarla \u7248\u672c \u3002 \u8fd4\u56de \uff1a str get _ trafficmanager ( self , client _ connection = 8000 ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u7aef\u53e3 \u76f8\u5173 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5982\u679c \u8be5 \u5b9e\u4f8b \u4e0d \u5b58\u5728 \uff0c \u5219 \u4f1a \u521b\u5efa \u8be5 \u5b9e\u4f8b \u3002 \u53c2\u6570 \uff1a client _ connection ( int ) - \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 8000 \u3002 \u8fd4\u56de \uff1a carla . TrafficManager get _ world ( self ) \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 \u8fd4\u56de \uff1a carla . World","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_30","text":"set _ files _ base _ folder ( self , path ) \u53c2\u6570 \uff1a path ( str ) - \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 set _ replayer _ ignore _ hero ( self , ignore _ hero ) \u53c2\u6570 \uff1a ignore _ hero ( bool ) - \u5728 \u64ad\u653e \u5f55\u5236 \u7684 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u542f\u7528 \u6216 \u7981\u7528 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u64ad\u653e \u3002 set _ replayer _ ignore _ spectator ( self , ignore _ spectator ) \u53c2\u6570 \uff1a ignore _ spectator ( bool ) - \u786e\u5b9a \u56de\u653e \u7a0b\u5e8f \u662f\u5426 \u4f1a \u590d\u5236 \u8bb0\u5f55 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u52a8\u4f5c \u3002 set _ replayer _ time _ factor ( self , time _ factor = 1.0 ) \u4f7f\u7528 \u65f6 \uff0c \u4f1a \u968f\u610f \u4fee\u6539 \u91cd\u65b0 \u4eff\u771f \u7684 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5f53 \u64ad\u653e \u65f6 \uff0c \u5b83 \u53ef\u4ee5 \u4f7f\u7528 \u591a\u6b21 \u3002 \u53c2\u6570 \uff1a time _ factor ( float ) - 1.0 \u8868\u793a \u6b63\u5e38 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5927\u4e8e 1.0 \u8868\u793a \u5feb\u901f \u8fd0\u52a8 \uff08 2.0 \u8868\u793a \u53cc\u500d \u901f\u5ea6 \uff09 \uff0c \u5c0f\u4e8e 1.0 \u8868\u793a \u6162\u901f \u8fd0\u52a8 \uff08 0.5 \u8868\u793a \u4e00\u534a \u901f\u5ea6 \uff09 \u3002 set _ timeout ( self , seconds ) \u8bbe\u7f6e \u5728 \u963b\u6b62 \u7f51\u7edc \u8c03\u7528 \u5e76 \u5f15\u53d1 \u8d85\u65f6 \u8d85\u65f6 \u9519\u8bef \u4e4b\u524d \u5141\u8bb8 \u7f51\u7edc \u8c03\u7528 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a seconds ( float - seconds ) - \u65b0 \u7684 \u8d85 \u65f6\u503c \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 5 \u79d2 \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlacollisionevent","text":"\u4ece carla . SensorData \u7ee7\u627f \u4e3a sensor . other . collision \u5b9a\u4e49 \u78b0\u649e \u6570\u636e \u7684 \u7c7b \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3a \u68c0\u6d4b \u5230 \u7684 \u6bcf\u4e2a \u78b0\u649e \u521b\u5efa \u4e00\u4e2a \u78b0\u649e \u6570\u636e \u3002 \u6bcf\u4e2a \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u5e27 \u6bcf\u4e2a \u78b0\u649e \u4ea7\u751f \u4e00\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u901a\u8fc7 \u4e0e \u591a\u4e2a \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \uff0c \u53ef\u4ee5 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u4ea7\u751f \u591a\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"carla . CollisionEvent"},{"location":"python_api/#_31","text":"actor ( carla . Actor ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4e5f \u5c31\u662f \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 other _ actor ( carla . Actor ) \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u4e0e \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse ( carla . Vector3D - N * s ) \u78b0\u649e \u4ea7\u751f \u7684 \u6b63\u5e38 \u8109\u51b2 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlacolor","text":"\u5b9a\u4e49 32 \u4f4d RGBA \u989c\u8272 \u7684 \u7c7b \u3002","title":"carla . Color"},{"location":"python_api/#_32","text":"r ( int ) \u7ea2\u8272 ( 0 - 255 ) \u3002 g ( int ) \u7eff\u8272 ( 0 - 255 ) \u3002 b ( int ) \u84dd\u8272 ( 0 - 255 ) \u3002 a ( int ) Alpha \u901a\u9053 ( 0 - 255 ) . \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_33","text":"__ init __ ( self , r = 0 , g = 0 , b = 0 , a = 255 ) \u521d\u59cb \u521d\u59cb\u5316 \u989c\u8272 \uff0c \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 \u53c2\u6570 \uff1a r ( int ) g ( int ) b ( int ) a ( int )","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_4","text":"__ eq __ ( self , other = carla . Color ) __ ne __ ( self , other = carla . Color ) __ str __ ( self )","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlacolorconverter","text":"\u5b9a\u4e49 \u53ef \u5e94\u7528 \u4e8e carla . Image \u7684 \u8f6c\u6362 \u6a21\u5f0f \u7684 \u7c7b \uff0c \u4ee5 \u663e\u793a carla . Sensor \u63d0\u4f9b \u7684 \u4fe1\u606f \u3002 \u6df1\u5ea6 \u8f6c\u6362 \u4f1a \u5bfc\u81f4 \u7cbe\u5ea6 \u635f\u5931 \uff0c \u56e0\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u6df1\u5ea6 \u68c0\u6d4b \u4e3a \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a 0 \u5230 255 \u4e4b\u95f4 \u7684 \u7070\u5ea6 \u503c \u3002 \u67e5\u770b carla . Sensor . listen \u4e2d \u7684 \u7247\u6bb5 \uff0c \u4e86\u89e3 \u5982\u4f55 \u521b\u5efa \u548c \u4fdd\u5b58 \u56fe\u50cf \u7684 \u793a\u4f8b sensor . camera . semantic _ segmentation \u7684 \u6570\u636e \u3002","title":"carla . ColorConverter"},{"location":"python_api/#_34","text":"CityScapesPalette \u4f7f\u7528 \u84dd \u56fe\u5e93 \u63d0\u4f9b \u7684 \u6807\u7b7e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u5206\u6bb5 \u5730\u56fe \u3002 \u7531 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4f7f\u7528 \u3002 Depth \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u7ebf\u6027 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u7531 \u6df1\u5ea6 \u76f8\u673a \u4f7f\u7528 \u3002 LogarithmicDepth \u4f7f\u7528 \u5bf9\u6570 \u523b\u5ea6 \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u6df1\u5ea6 \u6df1\u5ea6\u56fe \uff0c \u4ece\u800c \u5728 \u5c0f \u8ddd\u79bb \u4e0a \u83b7\u5f97 \u66f4\u597d \u7684 \u7cbe\u5ea6 \uff0c \u4f46 \u5728 \u8ddd\u79bb \u8f83 \u8fdc \u65f6\u4f1a \u4e22\u5931 \u7cbe\u5ea6 \u3002 Raw \u672a \u5bf9 \u56fe\u50cf \u5e94\u7528 \u4efb\u4f55 \u66f4\u6539 \u3002 \u7531 RGB \u76f8\u673a \u4f7f\u7528 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carladvsevent","text":"\u5b9a\u4e49 DVS \u4e8b\u4ef6 \u7684 \u7c7b \u3002 \u4e8b\u4ef6 \u662f \u4e00\u4e2a \u56db\u5143 \u5143\u7ec4 \u56db\u5143\u7ec4 \uff0c \u56e0\u6b64 \u662f \u4e00\u4e2a \u7531 4 \u4e2a \u5143\u7d20 \u7ec4\u6210 \u7684 \u5143\u7ec4 \uff0c \u5176\u4e2d x \u3001 \u50cf\u7d20 y \u5750\u6807 \u4f4d\u7f6e \u3001 \u65f6\u95f4 \u6233 t \u548c \u4e8b\u4ef6 \u6781\u6027 pol \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002","title":"carla . DVSEvent"},{"location":"python_api/#_35","text":"x ( int ) X \u50cf\u7d20 \u5750\u6807 \u3002 y ( int ) Y \u50cf\u7d20 \u5750\u6807 \u3002 t ( int ) \u4e8b\u4ef6 \u53d1\u751f \u65f6\u523b \u7684 \u65f6\u95f4 \u6233 \u3002 pol ( bool ) \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 True \u8868\u793a \u6b63\u6570 \uff0c False \u8868\u793a \u8d1f\u6570 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_36","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_5","text":"__ str __ ( self )","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carladvseventarray","text":"\u5728 carla . DVSEvent \u4e2d \u5b9a\u4e49 \u4e8b\u4ef6 \u6d41 \u7684 \u7c7b \u3002 \u6b64\u7c7b \u6d41\u662f \u4efb\u610f \u5927\u5c0f \u7684 \u6570\u7ec4 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4e8b\u4ef6 \u7684 \u6570\u91cf \u3002 \u4e3a\u4e86 \u65b9\u4fbf \u8d77 \u89c1 \uff0c \u8be5\u7c7b \u8fd8 \u5b58\u50a8 \u89c6\u91ce \u3001 \u56fe\u50cf \u7684 \u9ad8\u5ea6 \u548c \u5bbd\u5ea6 \u4ee5\u53ca \u65f6\u95f4 \u6233 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002","title":"carla . DVSEventArray"},{"location":"python_api/#_37","text":"fov ( float - \u5ea6 ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( \u5b57\u8282 )","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_38","text":"to _ array ( self ) \u6309 \u4ee5\u4e0b \u987a\u5e8f \u5c06 \u4e8b\u4ef6 \u6d41 \u8f6c\u6362 \u4e3a int \u503c \u6570\u7ec4 [ x , y , t , pol ] \u3002 to _ array _ pol ( self ) \u8fd4\u56de \u4e00\u4e2a \u6570\u7ec4 \uff0c \u8be5 \u6570\u7ec4 \u5177\u6709 \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 to _ array _ t ( self ) \u8fd4\u56de \u4e00\u4e2a \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 \u65f6\u95f4 \u6233 \u3002 to _ array _ x ( self ) \u8fd4\u56de \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 X \u50cf\u7d20 \u5750\u6807 \u7684 \u6570\u7ec4 \u3002 to _ array _ y ( self ) \u8fd4\u56de \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 Y \u50cf\u7d20 \u5750\u6807 \u6570\u7ec4 \u3002 to _ image ( self ) \u6309\u7167 \u4ee5\u4e0b \u6a21\u5f0f \u8f6c\u6362 \u56fe\u50cf \uff1a \u84dd\u8272 \u8868\u793a \u6b63 \u4e8b\u4ef6 \uff0c \u7ea2\u8272 \u8868\u793a \u8d1f \u4e8b\u4ef6 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_39","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 carla . DVSEvent \u4f5c\u4e3a \u68c0\u7d22 \u7684 \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carladebughelper","text":"carla . World \u7684 \u8f85\u52a9 \u7c7b \u90e8\u5206 \uff0c \u5b9a\u4e49 \u521b\u5efa \u8c03\u8bd5 \u5f62\u72b6 \u7684 \u65b9\u6cd5 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f62\u72b6 \u6301\u7eed \u4e00\u79d2 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u662f \u6c38\u4e45 \u6c38\u4e45\u6027 \u7684 \uff0c \u4f46 \u8981 \u8003\u8651 \u5230 \u8fd9\u6837 \u505a \u6240 \u9700 \u7684 \u8d44\u6e90 \u3002 \u67e5\u770b \u6b64\u7c7b \u7684 \u53ef\u7528 \u7247\u6bb5 \uff0c \u4e86\u89e3 \u5982\u4f55 \u5728 Carla \u4e2d \u8f7b\u677e \u8c03\u8bd5 \u3002","title":"carla . DebugHelper"},{"location":"python_api/#_40","text":"draw _ arrow ( self , begin , end , thickness = 0.1 , arrow _ size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u4ece \u5f00\u59cb begin \u5230 \u7ed3\u675f end \u7ed8\u5236 \u4e00\u4e2a \u6307\u5411 \u8be5 \u65b9\u5411 \u7684 \u7bad\u5934 \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u5f00\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u7ed3\u675f \u5e76 \u6307\u5411 \u7684 \u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 arrow _ size ( float - \u7c73 ) - \u7bad\u5934 \u5c16\u7aef \u7684 \u5927\u5c0f \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ box ( self , box , rotation , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) snippet \u2192 \u7ed8\u5236 \u4e00\u4e2a \u6846 \uff0c \u901a\u5e38 \u7528\u4e8e \u5bf9\u8c61 \u78b0\u649e \u5668 \u3002 \u53c2\u6570 \uff1a box ( carla . BoundingBox ) - \u5305\u542b \u6bcf\u4e2a \u8f74 \u7684 \u4f4d\u7f6e \u548c \u6846 \u957f\u5ea6 \u7684 \u5bf9\u8c61 \u3002 rotation ( carla . Rotation - \u5ea6 ( pitch , yaw , roll ) ) - \u6839\u636e \u865a\u5e7b \u5f15\u64ce \u8f74\u7cfb \u7684 \u8fb9\u754c \u6846 \u65b9\u5411 \u3002 thickness ( float - \u7c73 ) - \u5b9a\u4e49 \u8fb9\u754c \u6846 \u7684 \u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - \u79d2 ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ hud _ arrow ( self , begin , end , thickness = 0.1 , arrow _ size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u4e0a \u4ece\u5934 begin \u5230 \u5c3e end \u753b \u4e00\u4e2a \u7bad\u5934 \uff0c \u8fd9\u4e2a \u7bad\u5934 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u7bad\u5934 \u8d77\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u7bad\u5934 \u7ed3\u675f \u5e76 \u6307\u5411 \u7684 \u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 arrow _ size ( float - \u7c73 ) - \u7bad\u5c16 \u7684 \u5927\u5c0f \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ hud _ box ( self , box , rotation , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u4e0a \u7ed8\u5236 \u4e00\u4e2a \u6846 \uff0c \u901a\u5e38 \u7528\u4e8e \u5bf9\u8c61 \u78b0\u649e \u5668 \u3002 \u8be5\u6846 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 Parameters : box ( carla . BoundingBox ) - \u5305\u542b \u6bcf\u4e2a \u8f74 \u7684 \u6846 \u7684 \u4f4d\u7f6e \u548c \u957f\u5ea6 \u7684 \u5bf9\u8c61 \u3002 rotation ( carla . Rotation - degrees ( pitch , yaw , roll ) ) - \u6839\u636e \u865a\u5e7b \u5f15\u64ce \u7684 \u8f74 \u7cfb\u7edf \u786e\u5b9a \u8fb9\u754c \u6846 \u7684 \u65b9\u5411 \u3002 thickness ( float - \u7c73 ) - \u5b9a\u4e49 \u8fb9\u754c \u6846\u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ hud _ line ( self , begin , end , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u4e0a \u5f00\u59cb begin \u548c \u7ed3\u675f end \u4e4b\u95f4 \u753b \u4e00\u6761 \u4e00\u6761\u7ebf \u3002 \u8fd9\u6761 \u8fd9\u6761\u7ebf \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u76f4\u7ebf \u5f00\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u76f4\u7ebf \u7ed3\u675f \u7684 \u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - \u79d2 ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ hud _ point ( self , location , size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u7684 \u4f4d\u7f6e location \u4e0a \u7ed8\u5236 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u8fd9\u4e2a \u70b9 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u70b9 \u5728 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d\u4f7f \u7269\u4f53 \u5c45\u4e2d \u3002 size ( float - \u7c73 ) - \u70b9 \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ line ( self , begin , end , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 \u5f00\u59cb begin \u548c \u7ed3\u675f end \u4e4b\u95f4 \u7ed8\u5236 \u4e00\u6761 \u4e00\u6761\u7ebf \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u76f4\u7ebf \u8d77\u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u76f4\u7ebf \u7ec8\u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - \u79d2 ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ point ( self , location , size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u7ed8\u5236 \u4e00\u4e2a \u4e00\u4e2a\u70b9 location \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u5728 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d\u70b9 \u4ee5 \u5c06 \u5bf9\u8c61 \u5c45\u4e2d \u3002 size ( float - \u7c73 ) - \u70b9 \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ string ( self , location , text , draw _ shadow = False , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) snippet \u2192 \u5728 \u4eff\u771f \u7684 \u7ed9\u5b9a \u4f4d\u7f6e \u7ed8\u5236 \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u8be5 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u4eff\u771f \u4e2d \u6587\u672c \u5c45\u4e2d \u7684 \u4f4d\u7f6e \u3002 text ( str ) - \u65e8\u5728 \u5411 \u4e16\u754c \u5c55\u793a \u7684 \u6587\u672c \u3002 draw _ shadow ( bool ) - \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u6295\u5c04 \u9634\u5f71 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u662f \u7981\u7528 \u7684 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#carlaenvironmentobject","text":"\u8868\u793a \u5173\u5361 \u4e2d \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u7684 \u7c7b \uff0c \u8be5 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u53ef\u4ee5 \u662f \u4e0e \u5176\u4ed6 \u73af\u5883 \u5bf9\u8c61 \uff08 \u5373 \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \uff09 \u5f62\u6210 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002","title":"carla . EnvironmentObject"},{"location":"python_api/#_41","text":"transform ( carla . Transform ) \u5305\u542b \u73af\u5883 \u5bf9\u8c61 \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 bounding _ box ( carla . BoundingBox ) \u5305\u542b \u4e16\u754c \u7a7a\u95f4 \u4e2d \u6bcf\u4e2a \u8f74 \u7684 \u4f4d\u7f6e \u3001 \u65cb\u8f6c \u548c \u8fb9\u754c \u6846 \u957f\u5ea6 \u7684 \u5bf9\u8c61 \u3002 id ( int ) \u7528\u4e8e \u6807\u8bc6 \u5173\u5361 \u4e2d \u5bf9\u8c61 \u7684 \u552f\u4e00 ID \u3002 name ( string ) \u73af\u5883 \u5bf9\u8c61 EnvironmentObject \u7684 \u540d\u79f0 \u3002 type ( carla . CityObjectLabel ) Semantic tag .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_42","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_6","text":"__ str __ ( self ) \u5c06 \u73af\u5883 \u5bf9\u8c61 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5e76 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u663e\u793a \u5b83\u4eec \u3002 \u8fd4\u56de \uff1a str","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlafloatcolor","text":"\u5b9a\u4e49 \u6d6e\u70b9 RGBA \u989c\u8272 \u7684 \u7c7b \u3002","title":"carla . FloatColor"},{"location":"python_api/#_43","text":"r ( float ) \u7ea2\u8272 \u3002 g ( float ) \u7eff\u8272 \u3002 b ( float ) \u84dd\u8272 \u3002 a ( float ) Alpha \u901a\u9053 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_44","text":"__ init __ ( self , r = 0 , g = 0 , b = 0 , a = 1.0 ) \u521d\u59cb \u521d\u59cb\u5316 \u989c\u8272 \uff0c \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 \u53c2\u6570 \uff1a r ( float ) g ( float ) b ( float ) a ( float )","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_7","text":"__ eq __ ( self , other = carla . FloatColor ) __ ne __ ( self , other = carla . FloatColor )","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlagbuffertextureid","text":"\u5b9a\u4e49 \u6bcf\u4e2a GBuffer \u7eb9\u7406 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 ( \u53c2\u89c1 \u65b9\u6cd5 [ carla . Sensor . listen _ to _ gbuffer ] ( # carla . Sensor . listen _ to _ gbuffer ) ) \u3002","title":"carla . GBufferTextureID"},{"location":"python_api/#_45","text":"SceneColor \u7eb9\u7406 \u201c SceneColor \u201d \u5305\u542b \u56fe\u50cf \u7684 \u6700\u7ec8 \u989c\u8272 \u3002 SceneDepth \u7eb9\u7406 \u201c SceneDepth \u201d \u5305\u542b \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a - \u4ee5 \u4e16\u754c \u5355\u4f4d \u4e3a \u7ebf\u6027 \u3002 SceneStencil \u7eb9\u7406 \u201c SceneStencil \u201d \u5305\u542b \u6a21\u677f \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 GBufferA \u7eb9\u7406 \u201c GBufferA \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u4e16\u754c \u7a7a\u95f4 \u6cd5\u7ebf \u5411\u91cf \u3002 Alpha \u901a\u9053 \u5305\u542b \u201c \u6bcf\u4e2a \u5bf9\u8c61 \u7684 \u6570\u636e \u201d \u3002 GBufferB \u7eb9\u7406 \u201c GBufferB \u201d \u5206\u522b \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u91d1\u5c5e \u3001 \u955c\u9762 \u548c \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Alpha \u901a\u9053 \u5305\u542b \u4e00\u4e2a \u63a9\u7801 \uff0c \u5176\u4e2d \u4f4e 4 \u4f4d \u8868\u793a \u7740\u8272 \u6a21\u578b \uff0c \u9ad8 4 \u4f4d \u5305\u542b \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 \u3002 GBufferC \u7eb9\u7406 \u201c GBufferC \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u989c\u8272 \uff0c \u4ee5\u53ca Alpha \u901a\u9053 \u4e2d \u7684 \u95f4\u63a5 \u8f90\u7167 \u7167\u5ea6 \u8f90\u7167\u5ea6 \u3002 \u5982\u679c \u4e0d \u5141\u8bb8 \u9759\u6001 \u95ea\u7535 \uff0c Alpha \u901a\u9053 \u5c06 \u5305\u542b \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u3002 GBufferD \u201c GBufferD \u201d \u7684 \u5185\u5bb9 \u6839\u636e \u6e32\u67d3 \u5bf9\u8c61 \u7684 \u6750\u8d28 \u7740\u8272 \u6a21\u578b ( GBufferB ) \u7684 \u4e0d\u540c \u800c \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \uff1a MSM _ Subsurface ( 2 ) , MSM _ PreintegratedSkin ( 3 ) , MSM _ TwoSidedFoliage ( 6 ) : RGB : \u6b21 \u8868\u9762 \u989c\u8272 \u3002 A : \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 MSM _ ClearCoat ( 4 ) : R : \u900f\u660e \u6d82\u5c42 \u3002 G : \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 MSM _ SubsurfaceProfile ( 5 ) : RGB : \u6b21 \u8868\u9762 \u8f6e\u5ed3 \u3002 MSM _ Hair ( 7 ) : RG : \u4e16\u754c \u6cd5\u7ebf \u3002 B : \u80cc\u5149 \u503c \u3002 MSM _ Cloth ( 8 ) : RGB : \u6b21 \u8868\u9762 \u989c\u8272 \u3002 A : Cloth value . MSM _ Eye ( 9 ) : RG : \u773c \u5207\u7ebf \u3002 B : \u8679\u819c \u63a9\u6a21 \u3002 A : \u8679\u819c \u8ddd\u79bb \u3002 GBufferE \u7eb9\u7406 \u201c GBufferE \u201d \u5305\u542b RGBA \u901a\u9053 \u4e2d \u9884\u5148 \u8ba1\u7b97 \u7684 \u9634\u5f71 \u56e0\u5b50 \u3002 \u5982\u679c \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 ( GBufferB ) \u6ca1\u6709 \u8bbe\u7f6e \u5176 \u7b2c 4 \u4f4d \uff0c \u5219 \u6b64 \u7eb9\u7406 \u4e0d\u53ef \u7528 \u3002 GBufferF \u7eb9\u7406 \u201c GBufferF \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u4e16\u754c \u7a7a\u95f4 \u5207\u7ebf \u548c Alpha \u901a\u9053 \u4e2d \u7684 \u5f02\u6027 \u5404\u5411\u5f02\u6027 \u3002 \u5982\u679c \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 ( GBufferB ) \u6ca1\u6709 \u8bbe\u7f6e \u5176 \u7b2c 5 \u4f4d \uff0c \u5219 \u6b64 \u7eb9\u7406 \u4e0d\u53ef \u7528 \u3002 Velocity \u7eb9\u7406 \u201c \u901f\u5ea6 \u201d \u5305\u542b \u573a\u666f \u5bf9\u8c61 \u7684 \u5c4f\u5e55 \u7a7a\u95f4 \u901f\u5ea6 \u3002 SSAO \u7eb9\u7406 \u201c SSAO \u201d \u5305\u542b \u5c4f\u5e55 \u7a7a\u95f4 \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u7eb9\u7406 \u3002 CustomDepth \u7eb9\u7406 \u201c CustomDepth \u201d \u5305\u542b \u865a\u5e7b \u5f15\u64ce \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6df1\u5ea6 \u6570\u636e \u3002 CustomStencil \u7eb9\u7406 \u201c CustomStencil \u201d \u5305\u542b \u865a\u5e7b \u5f15\u64ce \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6a21\u677f \u6570\u636e \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlagearphysicscontrol","text":"\u901a\u8fc7 \u5b9a\u4e49 \u6863\u4f4d \u4ee5\u53ca \u4f55\u65f6 \u8fd0\u884c \u8be5 \u6863\u4f4d \u6765 \u63d0\u4f9b \u5bf9 \u8f66\u8f86 \u53d8\u901f \u53d8\u901f\u7bb1 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u7684 \u8bbf\u95ee \u7684 \u7c7b \u3002 carla . VehiclePhysicsControl \u7a0d\u540e \u5c06 \u4f7f\u7528 \u5b83 \u6765 \u5e2e\u52a9 \u4eff\u771f \u7269\u7406 \u3002","title":"carla . GearPhysicsControl"},{"location":"python_api/#_46","text":"ratio ( float ) \u9f7f\u8f6e \u7684 \u4f20\u52a8 \u4f20\u52a8\u6bd4 \u3002 down _ ratio ( float ) \u5f53\u524d RPM \u4e0e \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u5e94\u964d \u6863 \u7684 MaxRPM \u4e4b\u95f4 \u7684 \u5546 \u3002 up _ ratio ( float ) \u5f53\u524d RPM \u4e0e \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u5e94 \u5347\u6863 \u7684 MaxRPM \u4e4b\u95f4 \u7684 \u5546 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_47","text":"__ init __ ( self , ratio = 1.0 , down _ ratio = 0.5 , up _ ratio = 0.65 ) \u53c2\u6570 \uff1a ratio ( float ) down _ ratio ( float ) up _ ratio ( float )","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_8","text":"__ eq __ ( self , other = carla . GearPhysicsControl ) __ ne __ ( self , other = carla . GearPhysicsControl ) __ str __ ( self )","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlageolocation","text":"\u5305\u542b \u5730\u7406 \u5750\u6807 \u5730\u7406\u5750\u6807 \u4eff\u771f \u6570\u636e \u7684 \u7c7b \u3002 carla . Map \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \u8f6c\u6362 \u4eff\u771f \u4f4d\u7f6e OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u6807\u8bb0 \u3002","title":"carla . GeoLocation"},{"location":"python_api/#_48","text":"latitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 altitude ( float - \u7c73 ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_49","text":"__ init __ ( self , latitude = 0.0 , longitude = 0.0 , altitude = 0.0 ) \u53c2\u6570 \uff1a latitude ( float - \u5ea6 ) longitude ( float - \u5ea6 ) altitude ( float - \u7c73 )","title":"\u65b9\u6cd5"},{"location":"python_api/#_50","text":"__ eq __ ( self , other = carla . GeoLocation ) __ ne __ ( self , other = carla . GeoLocation ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlagnssmeasurement","text":"\u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u7531 sensor . other . gnss \u6ce8\u518c \u7684 Gnss \u6570\u636e \u7684 \u7c7b \u3002 \u5b83 \u672c\u8d28 \u4e0a \u662f \u901a\u8fc7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f4d\u7f6e \u548c OpenDRIVE \u5730\u7406 \u53c2\u8003 \u6765 \u62a5\u544a \u5176 \u4f4d\u7f6e \u3002","title":"carla . GnssMeasurement"},{"location":"python_api/#_51","text":"altitude ( float - \u7c73 ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002 latitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_52","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_53","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaimumeasurement","text":"\u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u7531 sensor . other . imu \u6ce8\u518c \u7684 \u6570\u636e \u7c7b \uff0c \u6d89\u53ca \u6839\u636e \u5f53\u524d carla . World \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f6c\u6362 \u3002 \u5b83 \u672c\u8d28 \u4e0a \u5145\u5f53 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002","title":"carla . IMUMeasurement"},{"location":"python_api/#_54","text":"accelerometer ( carla . Vector3D - m / s 2 ) \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 compass ( float - \u5f27\u5ea6 ) \u76f8\u5bf9 \u4e8e \u5317\u65b9 \u7684 \u65b9\u5411 \uff08 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d\u4e3a [ 0.0 , - 1.0 , 0.0 ] \uff09 \u3002 gyroscope ( carla . Vector3D - \u5f27\u5ea6 / \u79d2 ) \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_55","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_56","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaimage","text":"\u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 32 \u4f4d BGRA \u989c\u8272 \u56fe\u50cf \u7684 \u7c7b \uff0c \u8be5 \u56fe\u50cf \u5c06 \u7528\u4f5c \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u521d\u59cb \u6570\u636e \u3002 \u6709 \u4e0d\u540c \u7684 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u76ee\u524d \u6709 \u4e09\u79cd \uff0c RGB \u3001 \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 \uff09 \uff0c \u6bcf\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5bf9 \u56fe\u50cf \u90fd \u6709 \u4e0d\u540c \u7684 \u7528\u9014 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002","title":"carla . Image"},{"location":"python_api/#_57","text":"fov ( float - \u5ea6 ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( bytes ) \u50cf\u7d20 \u6570\u636e \u7684 \u6241\u5e73 \u6570\u7ec4 \uff0c \u4f7f\u7528 reshape \u521b\u5efa \u56fe\u50cf \u6570\u7ec4 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_58","text":"convert ( self , color _ converter ) \u6309\u7167 color _ converter \u6a21\u5f0f \u8f6c\u6362 \u56fe\u50cf \u3002 \u53c2\u6570 \uff1a color _ converter ( carla . ColorConverter ) save _ to _ disk ( self , path , color _ converter = Raw ) \u4f7f\u7528 \u5982\u4e0b \u6240\u793a \u7684 \u8f6c\u6362 \u8f6c\u6362\u5668 \u6a21\u5f0f color _ converter \u5c06 \u56fe\u50cf \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u9ed8\u8ba4 \u8f6c\u6362 \u6a21\u5f0f \u662f Raw \uff0c \u4e0d\u4f1a \u5bf9 \u56fe\u50cf \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u3002 \u53c2\u6570 \uff1a path ( str ) - \u5c06 \u5305\u542b \u56fe\u50cf \u7684 \u8def\u5f84 \u3002 color _ converter ( carla . ColorConverter ) - \u9ed8\u8ba4 Raw \u4e0d\u4f1a \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_59","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u5f62\u6210 \u56fe\u50cf \u7684 carla . Color \u4e0a\u9762 \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlajunction","text":"\u6839\u636e OpenDRIVE 1.4 \u6807\u51c6 \uff0c \u4f53\u73b0 OpenDRIVE \u6587\u4ef6 \u4e2d \u63cf\u8ff0 \u7684 \u9053\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u7684 \u7c7b \u3002","title":"carla . Junction"},{"location":"python_api/#_60","text":"id ( int ) OpenDRIVE \u6587\u4ef6 \u4e2d \u627e\u5230 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 bounding _ box ( carla . BoundingBox ) \u5c01\u88c5 \u8fde\u63a5 \u8f66\u9053 \u7684 \u8fb9\u754c \u6846 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_61","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_62","text":"get _ waypoints ( self , lane _ type ) \u8fd4\u56de \u822a\u8def \u70b9 \u5bf9 \u7684 \u5217\u8868 \u3002 \u5217\u8868 \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7ec4 \u9996\u5148 \u5305\u542b \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u8fb9\u754c \u5185 \u7684 \u521d\u59cb \u8def\u5f84 \u70b9 \uff0c \u7136\u540e \u5305\u542b \u6700\u7ec8 \u8def\u5f84 \u70b9 \uff0c \u63cf\u8ff0 \u6cbf \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u7684 \u6240\u8ff0 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8f66\u9053 \u9075\u5faa \u5176 OpenDRIVE \u5b9a\u4e49 \uff0c \u56e0\u6b64 \u7531\u4e8e \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u53ef\u80fd \u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u5143\u7ec4 \u5177\u6709 \u76f8\u540c \u7684 \u8d77\u59cb \u822a\u8def \u70b9 \uff0c \u56e0\u4e3a \u8fd9 \u88ab \u89c6\u4e3a \u4e0d\u540c \u7684 \u8f66\u9053 \u3002 \u53c2\u6570 \uff1a lane _ type ( carla . LaneType ) - \u83b7\u53d6 \u8def\u70b9 \u7684 \u8f66\u9053 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a list ( tuple ( carla . Waypoint ) )","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#carlalabelledpoint","text":"\u4f7f\u7528 \u8bed\u4e49 \u6807\u7b7e \u8868\u793a \u7a7a\u95f4 \u4f4d\u7f6e \u7684 \u7c7b \u3002","title":"carla . LabelledPoint"},{"location":"python_api/#_63","text":"location \u4e09\u7ef4 \u7a7a\u95f4 \u7ef4\u7a7a\u95f4 \u4e09\u7ef4\u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 label \u70b9 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalandmark","text":"\u5b9a\u4e49 \u5f71\u54cd \u9053\u8def \u7684 \u4efb\u4f55 \u7c7b\u578b \u7684 \u4ea4\u901a \u5730\u6807 \u6216 \u6807\u5fd7 \u7684 \u7c7b \u3002 \u8fd9\u4e9b \u7c7b \u5728 \u5730 \u6807\u7684 OpenDRIVE 1.4 standard \u6807\u51c6 \u5b9a\u4e49 \u53ca\u5176 \u5728 \u4eff\u771f \u4e2d \u7684 \u8868\u793a \u4e4b\u95f4 \u8fdb\u884c \u534f\u8c03 \u3002 \u6b64\u7c7b \u68c0\u7d22 \u5728 OpenDRIVE \u4e2d \u5b9a\u4e49 \u5730 \u6807\u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5e76 \u63d0\u4f9b \u6709\u5173 \u5176 \u5f71\u54cd \u54ea\u4e9b \u8f66\u9053 \u4ee5\u53ca \u4f55\u65f6 \u5f71\u54cd \u7684 \u4fe1\u606f \u3002 carla . Waypoint \u5bf9\u8c61 \u5c06 \u5c1d\u8bd5 \u68c0\u7d22 \u5176 \u8f66\u9053 \u89c4\u5219 \u6765 \u8bbf\u95ee \u5730\u6807 \u3002 \u56e0\u6b64 \uff0c \u67d0\u4e9b \u5c5e\u6027 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6b63\u5728 \u54a8\u8be2 \u5730 \u6807\u7684 \u822a\u8def \u70b9 \uff0c \u4ece\u800c \u521b\u5efa \u5bf9\u8c61 \u521b\u5efa\u5bf9\u8c61 \u3002","title":"carla . Landmark"},{"location":"python_api/#_64","text":"road _ id ( int ) \u5b9a\u4e49 \u6b64\u5730 \u6807\u7684 \u9053\u8def \u7684 OpenDRIVE ID \u3002 \u7531\u4e8e OpenDRIVE \u9053\u8def \u5b9a\u4e49 \uff0c \u8be5 \u9053\u8def \u53ef\u80fd \u4e0e \u5730\u6807 \u5f53\u524d \u5f71\u54cd \u7684 \u9053\u8def \u4e0d\u540c \u3002 \u8fd9\u79cd \u60c5\u51b5 \u4e3b\u8981 \u53d1\u751f \u5728 \u4e0d\u540c \u8def\u7ebf \u7684 \u9053\u8def \u5206\u53c9 \u5904 \u3002 \u793a\u4f8b \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u4e00\u6761 \u5206\u53c9 \u9053\u8def \u4e2d \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u4f46 \u5b83 \u4f1a \u5f71\u54cd \u6240\u6709 \u53ef\u80fd \u7684 \u8def\u7ebf \u3002 distance ( float - \u7c73 ) \u5730\u6807 \u4e0e \u521b\u5efa \u5bf9\u8c61 \u521b\u5efa\u5bf9\u8c61 \u7684 \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \uff08 \u67e5\u8be2 get _ landmarks \u6216 get _ landmarks _ of _ type \uff09 \u3002 s ( float - \u7c73 ) \u5730\u6807 \u6cbf \u9053\u8def \u51e0\u4f55 \u5f62\u72b6 \u5b9a\u4f4d \u7684 \u8ddd\u79bb road _ id \u3002 t ( float - \u7c73 ) \u5730\u6807 \u8ddd \u9053\u8def \u8fb9\u7f18 \u7684 \u6a2a\u5411 \u8ddd\u79bb road _ id \u3002 id ( str ) OpenDRIVE \u6587\u4ef6 \u4e2d \u5730 \u6807\u7684 \u552f\u4e00 ID \u3002 name ( str ) OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u5730\u6807 \u540d\u79f0 \u3002 is _ dynamic ( bool ) \u6307\u793a \u5730 \u6807\u7684 \u72b6\u6001 \u662f\u5426 \u968f \u65f6\u95f4 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \uff0c \u4f8b\u5982 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 orientation ( carla . LandmarkOrientation - \u7c73 ) \u6307\u793a \u5730\u6807 \u9762\u5411 \u7684 \u8f66\u9053 \u3002 z _ offset ( float - \u7c73 ) \u653e\u7f6e \u5730 \u6807\u7684 \u9ad8\u5ea6 \u3002 country ( str ) \u5b9a\u4e49 \u5730 \u6807\u7684 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \uff08 OpenDRIVE \u9ed8\u8ba4 \u4e3a \u5fb7\u56fd 2017 \uff09 \u3002 type ( str ) \u6839\u636e \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u8f93\u5165 \u8f93\u5165\u5730 \u6807\u7684 \u7c7b\u578b \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 sub _ type ( str ) \u6839\u636e \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u7684 \u5730\u6807 \u5b50 \u7c7b\u578b \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 value ( float ) \u4fe1\u53f7 \u4e2d \u6253\u5370 \u7684 \u503c \uff08 \u4f8b\u5982 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3001 \u6700\u5927 \u91cd\u91cf \u7b49 \uff09 \u3002 unit ( str ) \u5c5e\u6027 value \u7684 \u6d4b\u91cf \u5355\u4f4d \u3002 height ( float - \u7c73 ) \u4fe1\u53f7 \u7684 \u603b \u9ad8\u5ea6 \u3002 width ( float - \u7c73 ) \u4fe1\u53f7 \u7684 \u603b \u5bbd\u5ea6 \u3002 text ( str ) \u4fe1\u53f7 \u4e2d \u7684 \u9644\u52a0 \u6587\u672c \u3002 h _ offset ( float - \u7c73 ) \u4fe1\u53f7 \u76f8\u5bf9 \u4e8e OpenDRIVE \u4e2d s \u5904 road _ id \u5b9a\u4e49 \u7684 \u65b9\u5411 \u504f\u79fb \u3002 pitch ( float - \u7c73 ) \u4fe1\u53f7 \u7684 \u4fef\u4ef0 \u4ef0\u89d2 \u4fef\u4ef0\u89d2 ( Y - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . roll ( float ) \u4fe1\u53f7 \u7684 \u7ffb\u6eda \u89d2 ( X - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . waypoint ( carla . Waypoint ) \u653e\u7f6e \u5728 \u8fdb\u884c \u67e5\u8be2 \u7684 \u8f66\u9053 \u548c \u5730\u6807 s \u5904 \u7684 \u822a\u8def \u70b9 \u3002 \u8fd9\u662f \u5730\u6807 \u6709\u6548 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u822a\u8def \u70b9 \u3002 transform ( carla . Transform ) \u4eff\u771f \u4e2d \u5730 \u6807\u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_65","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_66","text":"get _ lane _ validities ( self ) \u8fd4\u56de \u5730\u6807 \u5f71\u54cd \u7684 \u8f66\u9053 \u3002 \u7531\u4e8e \u53ef\u80fd \u5b58\u5728 \u5730\u6807 \u65e0\u6548 \u7684 \u7279\u5b9a \u8f66\u9053 \uff0c \u56e0\u6b64 \u8fd4\u56de \u7684 \u662f \u5305\u542b \u53d7 \u5f71\u54cd \u7684 lane _ id \u8303\u56f4 \u7684 \u5bf9 \u5217\u8868 \uff1a \u793a\u4f8b \uff1a \u5728 \u6709 5 \u6761 \u8f66\u9053 \u7684 \u9053\u8def \u4e2d \uff0c \u5176\u4e2d 3 \u4e0d\u53d7 \u6761\u4e0d\u53d7 \u5f71\u54cd \uff1a [ ( from _ lane1 , to _ lane2 ) , ( from _ lane4 , to _ lane5 ) ] \u3002 \u8fd4\u56de \uff1a list ( tuple ( int ) )","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#carlalandmarkorientation","text":"\u7528\u4e8e \u5b9a\u4e49 \u9053\u8def \u4e2d \u5730\u6807 \u65b9\u5411 \u7684 \u8f85\u52a9 \u7c7b \u3002 \u8be5 \u5b9a\u4e49 \u5e76\u975e \u76f4\u63a5 \u4ece OpenDRIVE \u8f6c\u6362 \u800c \u6765 \uff0c \u800c\u662f \u4e3a\u4e86 \u4fbf\u4e8e \u7406\u89e3 \u800c \u8fdb\u884c \u4e86 \u8f6c\u6362 \u3002","title":"carla . LandmarkOrientation"},{"location":"python_api/#_67","text":"Positive \u5730\u6807 \u671d\u5411 \u4e0e \u9053\u8def \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u5b9a\u4e49 \u65b9\u5411 \u76f8\u540c \u7684 \u8f66\u8f86 \uff08 OpenDRIVE \u4e2d \u7684 0 \u8f66\u9053 \u548c \u8d1f \u8f66\u9053 \uff09 \u3002 Negative \u5730\u6807 \u671d\u5411 \u4e0e \u9053\u8def \u51e0\u4f55 \u5b9a\u4e49 \u76f8\u53cd \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \uff08 OpenDRIVE \u4e2d \u7684 \u6b63 \u8f66\u9053 \uff09 \u3002 Both \u90fd \u4f1a \u5f71\u54cd \u6cbf \u9053\u8def \u4e24\u4e2a \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalandmarktype","text":"Helper \u7c7b \u5305\u542b OpenDRIVE \u6807\u51c6 \uff08 \u5fb7\u56fd 2017 \uff09 \u4e2d \u9ed8\u8ba4 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u5b9a\u4e49 \u7684 \u4e00\u7ec4 \u5e38\u7528 \u5730\u6807 \u7c7b\u578b \u3002 carla . Landmark \u4e0d \u5f15\u7528 \u6b64\u7c7b \u3002 \u5730\u6807 \u7c7b\u578b \u662f \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u6839\u636e \u6240 \u4f7f\u7528 \u7684 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u7684 \u4e0d\u540c \uff0c \u5176 \u53d8\u5316 \u5f88\u5927 \u53d8\u5316\u5f88\u5927 \u3002 \u6b64\u7c7b \u4ec5 \u901a\u8fc7 \u5c06 \u9ed8\u8ba4 \u96c6\u4e2d \u7684 \u4e00\u4e9b \u6700 \u5e38\u7528 \u7684 \u63cf\u8ff0 \u4e3a \u679a\u4e3e \u6765 \u4f7f \u7ba1\u7406 \u5b83\u4eec \u53d8\u5f97 \u66f4 \u5bb9\u6613 \u3002","title":"carla . LandmarkType"},{"location":"python_api/#_68","text":"Danger \u7c7b\u578b 101 \u3002 LanesMerging \u7c7b\u578b 121 \u3002 CautionPedestrian \u7c7b\u578b 133 \u3002 CautionBicycle \u7c7b\u578b 138 \u3002 LevelCrossing \u7c7b\u578b 150 \u3002 StopSign \u7c7b\u578b 206 \u3002 YieldSign \u7c7b\u578b 205 \u3002 MandatoryTurnDirection \u7c7b\u578b 209 \u3002 MandatoryLeftRightDirection \u7c7b\u578b 211 \u3002 TwoChoiceTurnDirection \u7c7b\u578b 214 \u3002 Roundabout \u7c7b\u578b 215 \u3002 PassRightLeft \u7c7b\u578b 222 \u3002 AccessForbidden \u7c7b\u578b 250 \u3002 AccessForbiddenMotorvehicles \u7c7b\u578b 251 \u3002 AccessForbiddenTrucks \u7c7b\u578b 253 \u3002 AccessForbiddenBicycle \u7c7b\u578b 254 \u3002 AccessForbiddenWeight \u7c7b\u578b 263 \u3002 AccessForbiddenWidth \u7c7b\u578b 264 \u3002 AccessForbiddenHeight \u7c7b\u578b 265 \u3002 AccessForbiddenWrongDirection \u7c7b\u578b 267 \u3002 ForbiddenUTurn \u7c7b\u578b 272 \u3002 MaximumSpeed \u7c7b\u578b 274 \u3002 ForbiddenOvertakingMotorvehicles \u7c7b\u578b 276 \u3002 ForbiddenOvertakingTrucks \u7c7b\u578b 277 \u3002 AbsoluteNoStop \u7c7b\u578b 283 \u3002 RestrictedStop \u7c7b\u578b 286 \u3002 HasWayNextIntersection \u7c7b\u578b 301 \u3002 PriorityWay \u7c7b\u578b 306 \u3002 PriorityWayEnd \u7c7b\u578b 307 \u3002 CityBegin \u7c7b\u578b 310 \u3002 CityEnd \u7c7b\u578b 311 \u3002 Highway \u7c7b\u578b 330 \u3002 DeadEnd \u7c7b\u578b 357 \u3002 RecomendedSpeed \u7c7b\u578b 380 \u3002 RecomendedSpeedEnd \u7c7b\u578b 381 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalanechange","text":"\u5b9a\u4e49 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u53cc\u8f6c \u6216 \u4e0d \u8f6c \u7684 \u6743\u9650 \u7684 \u7c7b \uff08 \u610f\u5473 \u610f\u5473\u7740 \u53ea \u5141\u8bb8 \u76f4\u884c \uff09 \u3002 \u6839\u636e OpenDRIVE \u6587\u4ef6 \u4e3a \u6bcf\u4e2a carla . Waypoint \u5b58\u50a8 \u6b64 \u4fe1\u606f \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u8def \u70b9\u6765 \u4e86\u89e3 \u5141\u8bb8 \u54ea\u4e9b \u8f6c\u5f2f \u3002","title":"carla . LaneChange"},{"location":"python_api/#_69","text":"NONE \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u4e0d \u5141\u8bb8 \u53f3\u8f6c \u6216 \u5de6\u8f6c \uff0c \u53ea\u80fd \u76f4\u884c \u3002 Right \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5141\u8bb8 \u53f3\u8f6c \u3002 Left \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5141\u8bb8 \u5de6\u8f6c \u3002 Both \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u90fd \u5141\u8bb8 \u53f3\u8f6c \u6216 \u5de6\u8f6c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalaneinvasionevent","text":"\u4ece carla . SensorData \u7ee7\u627f \u4e3a sensor . other . lane _ invasion \u5b9a\u4e49 \u8f66\u9053 \u5165\u4fb5 \u7684 \u7c7b \u3002 \u5b83 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \uff0c \u5e76 \u4f9d\u8d56 OpenDRIVE \u6765 \u63d0\u4f9b \u53ef\u9760 \u7684 \u4fe1\u606f \u3002 \u6bcf\u6b21 \u53d1\u751f \u8f66\u9053 \u5165\u4fb5 \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u521b\u5efa \u4e00\u4e2a \u8fd9\u6837 \u7684 \u60c5\u51b5 \uff0c \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u53ef\u80fd \u4f1a \u53d1\u751f \u591a\u6b21 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002","title":"carla . LaneInvasionEvent"},{"location":"python_api/#_70","text":"actor ( carla . Actor ) \u83b7\u53d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u8fde\u63a5 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5373 \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 crossed _ lane _ markings ( list ( carla . LaneMarking ) ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5df2 \u7a7f\u8fc7 \u5e76 \u68c0\u6d4b \u5230 \u7684 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_71","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_72","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlalanemarking","text":"\u6839\u636e OpenDRIVE 1.4 \u6807\u51c6 \u6536\u96c6 \u6709\u5173 \u8f66\u9053 \u6807\u8bb0 \u7684 \u6240\u6709 \u4fe1\u606f \u7684 \u7c7b \u3002","title":"carla . LaneMarking"},{"location":"python_api/#_73","text":"color ( carla . LaneMarkingColor ) \u6807\u8bb0 \u7684 \u5b9e\u9645 \u989c\u8272 \u3002 lane _ change ( carla . LaneChange ) \u8de8\u8d8a \u6240\u8ff0 \u8f66\u9053 \u6807\u8bb0 \u7684 \u6743\u9650 \u3002 type ( carla . LaneMarkingType ) \u8f66\u9053 \u6807\u8bb0 \u7c7b\u578b \u3002 width ( float ) \u6c34\u5e73 \u8f66\u9053 \u6807\u8bb0 \u539a\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalanemarkingcolor","text":"\u6839\u636e OpenDRIVE 1.4 \u5b9a\u4e49 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u7684 \u7c7b \u3002","title":"carla . LaneMarkingColor"},{"location":"python_api/#_74","text":"Standard \u9ed8\u8ba4 \u4e3a \u767d\u8272 \u3002 Blue Green Red White Yellow Other","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalanemarkingtype","text":"\u5b9a\u4e49 OpenDRIVE 1.4 \u63a5\u53d7 \u7684 \u8f66\u9053 \u6807\u8bb0 \u7c7b\u578b \u7684 \u7c7b \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u70b9 \u6765 \u68c0\u7d22 \u6709\u5173 \u76f8\u90bb \u8f66\u9053 \u6807\u8bb0 \u7684 \u4fe1\u606f \u3002 \u5173\u4e8e \u53cc \u7cbe\u5ea6 \u7c7b\u578b \u7684 \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 \uff1a \u8f66\u9053 \u6807\u8bb0 \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \uff0c \u8be5 \u6807\u51c6 \u786e\u5b9a \u4e00\u6761 \u4e00\u6761\u7ebf \u5c06 \u88ab \u89c6\u4e3a \u201c BrokenSolid \u201d \u6216 \u201c SolidBroken \u201d \u3002 \u6bcf\u6761 \u9053\u8def \u90fd \u6709 \u4e00\u4e2a \u4e2d\u5fc3 \u8f66\u9053 \u6807\u8bb0 \uff0c \u6839\u636e \u8f66\u9053 \u65b9\u5411 \u4ece\u5de6\u5230\u53f3 \u5b9a\u4e49 \u3002 \u5176\u4f59 \u8f66\u9053 \u6807\u8bb0 \u6309 \u4ece \u4e2d\u5fc3 \u8f66\u9053 \u5230 \u6700\u8fd1 \u7684 \u9053\u8def \u5916\u4fa7 \u7684 \u987a\u5e8f \u5b9a\u4e49 \u3002","title":"carla . LaneMarkingType"},{"location":"python_api/#_75","text":"NONE Other Broken Solid SolidSolid SolidBroken BrokenSolid BrokenBroken BottsDots Grass Curb","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalanetype","text":"\u5b9a\u4e49 OpenDRIVE 1.4 \u63a5\u53d7 \u7684 \u53ef\u80fd \u901a\u9053 \u7c7b\u578b \u7684 \u7c7b \u3002 \u8be5 \u6807\u51c6 \u5b9a\u4e49 \u4e86 \u9053\u8def \u4fe1\u606f \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u5229\u7528 \u8def\u70b9 \u6765 \u83b7\u53d6 \u5f53\u524d \u548c \u76f8\u90bb \u8f66\u9053 \u7c7b\u578b \u3002","title":"carla . LaneType"},{"location":"python_api/#_76","text":"NONE Driving Stop Shoulder Biking Sidewalk Border Restricted Parking Bidirectional Median Special1 Special2 Special3 RoadWorks Tram Rail Entry Exit OffRamp OnRamp Any \u9664 NONE \u4e4b\u5916 \u7684 \u6240\u6709 \u7c7b\u578b \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalidardetection","text":"carla . LidarMeasurement \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u4ee3\u8868 \u4e91\u4e2d \u7684 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u53ca\u5176 \u4f4d\u7f6e \u548c \u76f8\u5173 \u5f3a\u5ea6 \u3002","title":"carla . LidarDetection"},{"location":"python_api/#_77","text":"point ( carla . Location - \u7c73 ) xyz \u5750\u6807 \u4e2d \u7684 \u70b9 \u3002 intensity ( float ) \u8ba1\u7b97 \u8be5\u70b9 \u7684 \u5f3a\u5ea6 \u4f5c\u4e3a [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_78","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_79","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlalidarmeasurement","text":"\u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u7531 sensor . lidar . ray _ cast \u68c0\u7d22 \u7684 LIDAR \u6570\u636e \u7684 \u7c7b \u3002 \u8fd9 \u672c\u8d28 \u4e0a \u662f \u4f7f\u7528 \u5149\u7ebf \u6295\u5c04 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002","title":"carla . LidarMeasurement"},{"location":"python_api/#_80","text":"channels ( int ) \u53d1\u5c04 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 horizontal _ angle ( float - radians ) \u6d4b\u91cf \u65f6 LIDAR \u65cb\u8f6c \u7684 \u6c34\u5e73 \u89d2\u5ea6 \u3002 raw _ data ( bytes ) \u63a5\u6536 \u5230 \u7684 4D \u70b9 \u5217\u8868 \u3002 \u6bcf\u4e2a \u70b9 \u7531 [ x , y , z ] \u5750\u6807 \u52a0\u4e0a \u4e3a \u8be5\u70b9 \u8ba1\u7b97 \u7684 \u5f3a\u5ea6 \u7ec4\u6210 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_81","text":"save _ to _ disk ( self , path ) \u5c06 \u70b9\u4e91 \u4f5c\u4e3a \u63cf\u8ff0 \u6765\u81ea 3D \u626b\u63cf \u626b\u63cf\u4eea \u7684 \u6570\u636e \u7684 . ply \u6587\u4ef6 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u751f\u6210 \u7684 \u6587\u4ef6 \u53ef\u4ee5 \u5728 MeshLab \u4e2d \u4f7f\u7528 \uff0c MeshLab \u662f \u4e00\u4e2a \u7528\u4e8e \u5904\u7406 \u6240\u8ff0 \u6587\u4ef6 \u7684 \u5f00\u6e90 \u7cfb\u7edf \u3002 \u53ea \u9700 \u8003\u8651 \u5230 \u8be5 \u8f74 \u53ef\u80fd \u4e0e \u865a\u5e7b \u5f15\u64ce \u4e0d\u540c \uff0c \u56e0\u6b64 \u9700\u8981 \u91cd\u65b0 \u5206\u914d \u91cd\u65b0\u5206\u914d \u3002 \u53c2\u6570 \uff1a path ( str )","title":"\u65b9\u6cd5"},{"location":"python_api/#_82","text":"get _ point _ count ( self , channel ) \u68c0\u7d22 \u7531\u6b64 \u6d4b\u91cf \u751f\u6210 \u7684 \u6309 \u901a\u9053 \u6392\u5e8f \u7684 \u70b9\u6570 \u3002 \u6309 \u901a\u9053 \u6392\u5e8f \u53ef\u4ee5 \u8bc6\u522b \u6bcf\u4e2a \u70b9 \u7684 \u539f\u59cb \u901a\u9053 \u3002 \u53c2\u6570 \uff1a channel ( int )","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_83","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 carla . LidarDetection \u83b7\u53d6 \u7684 \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . LidarDetection ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlalight","text":"\u6b64\u7c7b \u516c\u5f00 \u573a\u666f \u4e2d \u5b58\u5728 \u7684 \u706f\u5149 \uff08 \u8f66\u8f86 \u706f\u5149 \u9664\u5916 \uff09 \u3002 \u706f\u5149 \u7684 \u5c5e\u6027 \u53ef\u4ee5 \u968f\u610f \u67e5\u8be2 \u548c \u6539\u53d8 \u3002 \u5f53 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fdb\u5165 \u591c\u95f4 \u6a21\u5f0f \uff08 \u592a\u9633 \u9ad8\u5ea6 \u4f4e\u4e8e \u96f6 \uff09 \u65f6 \uff0c \u706f\u4f1a \u81ea\u52a8 \u6253\u5f00 \u3002","title":"carla . Light"},{"location":"python_api/#_84","text":"color ( carla . Color ) \u706f\u5149 \u7684 \u989c\u8272 \u3002 id ( int ) \u706f \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 intensity ( float - lumens ) \u5149 \u7684 \u5f3a\u5ea6 \u3002 is _ on ( bool ) \u706f \u7684 \u5f00\u5173 \u3002 \u5f53\u706f\u4eae \u65f6 \u8fd9 \u662f True \u3002 \u5f53 \u591c\u95f4 \u6a21\u5f0f \u542f\u52a8 \u65f6 \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a True \u3002 location ( carla . Location - \u7c73 ) \u706f\u5149 \u7684 \u4f4d\u7f6e \u3002 light _ group ( carla . LightGroup ) \u706f\u5149 \u6240\u5c5e \u7684 \u7ec4 \u3002 light _ state ( carla . LightState ) \u706f\u5149 \u7684 \u72b6\u6001 \u3002 \u603b\u7ed3 \u5176 \u5c5e\u6027 \u3001 \u7ec4 \u4ee5\u53ca \u662f\u5426 \u6253\u5f00 / \u5173\u95ed \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_85","text":"turn _ off ( self ) \u5173\u95ed \u706f \u3002 turn _ on ( self ) \u6253\u5f00 \u706f \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_86","text":"set _ color ( self , color ) \u5c06 \u706f\u5149 \u7684 \u989c\u8272 \u66f4 \u6539\u4e3a color \u3002 \u53c2\u6570 \uff1a color ( carla . Color ) set _ intensity ( self , intensity ) \u5c06\u5149 \u7684 \u5f3a\u5ea6 \u66f4 \u6539\u4e3a intensity \u3002 \u53c2\u6570 \uff1a intensity ( float - lumens ) set _ light _ group ( self , light _ group ) \u5c06 \u706f\u5149 \u66f4 \u6539\u4e3a \u7ec4 light _ group \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) set _ light _ state ( self , light _ state ) \u5c06 \u706f\u5149 \u7684 \u72b6\u6001 \u66f4 \u6539\u4e3a light _ state \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u540c\u65f6 \u66f4\u6539 \u5c5e\u6027 \u3001 \u5206\u7ec4 \u4ee5\u53ca \u6253\u5f00 / \u5173\u95ed \u706f \u3002 \u53c2\u6570 \uff1a light _ state ( carla . LightState )","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlalightgroup","text":"\u6b64\u7c7b \u5c06 \u573a\u666f \u4e2d \u7684 \u706f\u5149 \u5206\u4e3a \u4e0d\u540c \u7684 \u7ec4 \u3002 \u8fd9\u4e9b \u53ef\u7528 \u7ec4 \u4f5c\u4e3a \u53ef \u7528\u4f5c \u6807\u5fd7 \u7684 \u679a\u4e3e \u503c \u63d0\u4f9b \u3002 \u7b14\u8bb0 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u867d\u7136 \u6709 \u4e00\u4e2a vehicle \u7ec4 \uff0c \u4f46 \u8f66\u706f \u8fd8 \u4e0d\u80fd \u7528\u4f5c carla . Light \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u5fc5\u987b \u4f7f\u7528 carla . Vehicle \u548c carla . VehicleLightState \u8fdb\u884c \u7ba1\u7406 \u3002","title":"carla . LightGroup"},{"location":"python_api/#_87","text":"None \u6240\u6709 \u706f \u3002 Vehicle Street Building Other","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalightmanager","text":"\u6b64\u7c7b \u5904\u7406 \u573a\u666f \u4e2d \u7684 \u706f\u5149 \u3002 \u5b83 \u7684 \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \u662f \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u83b7\u53d6 \u548c \u8bbe\u7f6e \u706f\u5149 \u7ec4 \u6216 \u706f\u5149 \u5217\u8868 \u7684 \u72b6\u6001 \u3002 \u6b64\u7c7b \u7684 \u5b9e\u4f8b \u53ef\u4ee5 \u901a\u8fc7 carla . World . get _ lightmanager ( ) \u68c0\u7d22 \u3002 \u7b14\u8bb0 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u867d\u7136 \u6709 \u4e00\u4e2a vehicle \u7ec4 \uff0c \u4f46 \u8f66\u706f \u8fd8 \u4e0d\u80fd \u7528\u4f5c carla . Light \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u5fc5\u987b \u4f7f\u7528 carla . Vehicle \u548c carla . VehicleLightState \u8fdb\u884c \u7ba1\u7406 \u3002","title":"carla . LightManager"},{"location":"python_api/#_88","text":"is _ active ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u5e03\u5c14 \u5e03\u5c14\u503c \uff0c \u8bf4\u660e \u5176\u4e2d \u7684 \u5143\u7d20 lights \u662f\u5426 \u6253\u5f00 / \u5173\u95ed \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( bool ) turn _ off ( self , lights ) \u5173\u95ed lights \u4e2d \u7684 \u6240\u6709 \u706f \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u5173\u95ed \u7684 \u706f \u5217\u8868 \u3002 turn _ on ( self , lights ) \u6253\u5f00 lights \u4e2d \u7684 \u6240\u6709 \u706f \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u6253\u5f00 \u7684 \u706f \u5217\u8868 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_89","text":"get _ all _ lights ( self , light _ group = carla . LightGroup . None ) \u8fd4\u56de \u5305\u542b \u7279\u5b9a \u7ec4\u4e2d \u7684 \u706f\u5149 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u7ec4 \u662f None \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) - \u7528\u4e8e \u8fc7\u6ee4 \u8fd4\u56de \u7684 \u706f\u5149 \u7684 \u7ec4 \u3002 \u9ed8\u8ba4 \u4e3a None \u3002 \u8fd4\u56de \uff1a list ( carla . Light ) get _ color ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u989c\u8272 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( carla . Color ) \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ color get _ intensity ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5f3a\u5ea6 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( float ) - lumens \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ intensity get _ light _ group ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u7ec4 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( carla . LightGroup ) \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ light _ group get _ light _ state ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u6240\u6709 \u5c5e\u6027 \u7684 \u72b6\u6001 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 * * \u8fd4\u56de \uff1a * * list ( carla . LightState ) \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ light _ state get _ turned _ off _ lights ( self , light _ group ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u573a\u666f \u4e2d \u5173\u95ed \u7684 \u706f\u5149 \uff08 \u6309\u7ec4 \u8fc7\u6ee4 \uff09 \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( carla . Light ) get _ turned _ on _ lights ( self , light _ group ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u573a\u666f \u4e2d \u6253\u5f00 \u7684 \u706f\u5149 \uff08 \u6309\u7ec4 \u8fc7\u6ee4 \uff09 \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) - List of lights to be queried . \u8fd4\u56de \uff1a list ( carla . Light )","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_90","text":"set _ active ( self , lights , active ) \u6253\u5f00 / \u5173\u95ed lights \u4e2d \u7684 \u5143\u7d20 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u6253\u5f00 / \u5173\u95ed \u7684 \u706f \u5217\u8868 \u3002 active ( list ( bool ) ) - \u8981 \u5e94\u7528 \u7684 \u5e03\u5c14 \u5e03\u5c14\u503c \u5217\u8868 \u3002 set _ color ( self , lights , color ) lights \u5230 color \u4e2d \u5143\u7d20 \u7684 \u989c\u8272 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 color ( carla . Color ) - \u8981 \u5e94\u7528 \u7684 \u989c\u8272 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ color set _ colors ( self , lights , colors ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u989c\u8272 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 colors \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 colors ( list ( carla . Color ) ) - \u8981 \u5e94\u7528 \u7684 \u989c\u8272 \u5217\u8868 \u3002 set _ day _ night _ cycle ( self , active ) \u6240\u6709 \u573a\u666f \u706f \u90fd \u6709 \u663c\u591c \u5faa\u73af \uff0c \u968f\u7740 \u592a\u9633 \u7684 \u9ad8\u5ea6 \u81ea\u52a8 \u6253\u5f00 \u548c \u5173\u95ed \u3002 \u8fd9\u4f1a \u5e72\u6270 \u9700\u8981 \u5b8c\u5168 \u63a7\u5236 \u573a\u666f \u706f\u5149 \u7684 \u60c5\u51b5 \uff0c \u56e0\u6b64 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a False \u4f1a \u505c\u7528 \u5b83 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a True \u6765 \u91cd\u65b0 \u6fc0\u6d3b \u5b83 \u3002 \u53c2\u6570 \uff1a active ( bool ) - ( \u53d6\u6d88 ) \u6fc0\u6d3b \u663c\u591c \u5faa\u73af \u3002 set _ intensities ( self , lights , intensities ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5f3a\u5ea6 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 intensities \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 intensities ( list ( float ) - lumens ) - \u8981 \u5e94\u7528 \u7684 \u5f3a\u5ea6 \u5217\u8868 \u3002 set _ intensity ( self , lights , intensity ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5f3a\u5ea6 \u6539\u4e3a intensity \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 intensity ( float - lumens ) - \u8981 \u5e94\u7528 \u7684 \u5f3a\u5ea6 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ intensity set _ light _ group ( self , lights , light _ group ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u7ec4 \u66f4 \u6539\u4e3a light _ group \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ group ( carla . LightGroup ) - \u8981 \u5e94\u7528 \u7684 \u7ec4 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ light _ group set _ light _ groups ( self , lights , light _ groups ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u7ec4 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 light _ groups \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ groups ( list ( carla . LightGroup ) ) - \u8981 \u5e94\u7528 \u7684 \u7ec4 \u5217\u8868 \u3002 set _ light _ state ( self , lights , light _ state ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5c5e\u6027 \u72b6\u6001 \u6539\u4e3a light _ state \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ state ( carla . LightState ) - \u8981 \u5e94\u7528 \u7684 \u5c5e\u6027 \u7684 \u72b6\u6001 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ light _ state set _ light _ states ( self , lights , light _ states ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5c5e\u6027 \u72b6\u6001 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 light _ states \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ states ( list ( carla . LightState ) ) - \u8981 \u5e94\u7528 \u7684 \u5c5e\u6027 \u7684 \u72b6\u6001 \u5217\u8868 \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlalightstate","text":"\u8fd9\u4e2a \u7c7b \u4ee3\u8868 \u9664\u4e86 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u4f4d\u7f6e \u4e4b\u5916 \u7684 \u6240\u6709 \u706f\u5149 \u53d8\u91cf \uff0c \u5b83\u4eec \u5e94\u8be5 \u662f \u9759\u6001 \u7684 \u3002 \u4f7f\u7528 \u6b64\u7c7b \u53ef\u4ee5 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u7ba1\u7406 \u706f\u5149 \u7684 \u6240\u6709 \u53c2\u6570 \u5316 \u3002","title":"carla . LightState"},{"location":"python_api/#_91","text":"intensity ( float - lumens ) \u5149 \u7684 \u5f3a\u5ea6 \u3002 color ( carla . Color ) \u706f\u5149 \u7684 \u989c\u8272 \u3002 group ( carla . LightGroup ) \u706f\u5149 \u6240\u5c5e \u7684 \u7ec4 \u3002 active ( bool ) \u706f \u7684 \u5f00\u5173 \u3002 \u5f53\u706f\u4eae \u65f6 \u4e3a True \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_92","text":"__ init __ ( self , intensity = 0.0 , color = carla . Color ( ) , group = carla . LightGroup . None , active = False ) \u53c2\u6570 \uff1a intensity ( float - lumens ) - \u5149 \u7684 \u5f3a\u5ea6 \u3002 \u9ed8\u8ba4 \u4e3a 0.0 \u3002 color ( carla . Color ) - \u5149 \u7684 \u989c\u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 group ( carla . LightGroup ) - \u706f\u5149 \u6240\u5c5e \u7684 \u7ec4 \u3002 \u9ed8\u8ba4 \u4e3a \u901a\u7528 \u7ec4 None \u3002 active ( bool ) - \u706f\u5149 \u5f00\u5173 \u3002 \u9ed8\u8ba4 \u4e3a False \uff0c \u706f \u5173\u95ed \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#carlalocation","text":"\u4ece carla . Vector3D \u7ee7\u627f \u4ee3\u8868 \u4e16\u754c \u4e0a \u7684 \u4e00\u4e2a \u5730\u65b9 \u3002","title":"carla . Location"},{"location":"python_api/#_93","text":"x ( float - \u7c73 ) X \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 y ( float - \u7c73 ) Y \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 z ( float - \u7c73 ) Z \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_94","text":"__ init __ ( self , x = 0.0 , y = 0.0 , z = 0.0 ) \u53c2\u6570 \uff1a x ( float ) y ( float ) z ( float ) distance ( self , location ) \u8fd4\u56de \u4ece \u8be5 \u4f4d\u7f6e \u5230 \u53e6 \u4e00 \u4f4d\u7f6e \u7684 \u6b27\u51e0 \u51e0\u91cc \u6b27\u51e0\u91cc\u5f97 \u8ddd\u79bb \u3002 \u53c2\u6570 \uff1a location ( carla . Location ) - \u7528\u4e8e \u8ba1\u7b97 \u8ddd\u79bb \u7684 \u53e6 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u8fd4\u56de \uff1a float - \u7c73","title":"\u65b9\u6cd5"},{"location":"python_api/#_95","text":"__ abs __ ( self ) \u8fd4\u56de \u5177\u6709 x \u3001 y \u548c z \u5206\u91cf \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u4f4d\u7f6e \u3002 \u8fd4\u56de \uff1a carla . Location __ eq __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u540c \u4e00\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u4e0d\u540c \u540c\u70b9 \u4e0d\u540c\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8f74 \u7684 \u503c \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlamap","text":"\u5305\u542b \u9053\u8def \u4fe1\u606f \u548c \u822a\u70b9 \u7ba1\u7406 \u7684 \u7c7b \u3002 \u4ece \u63cf\u8ff0 \u9053\u8def \u7684 OpenDRIVE \u6587\u4ef6 \u4e2d \u68c0\u7d22 \u6570\u636e \u3002 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u67e5\u8be2 \u7cfb\u7edf \uff0c \u5b83 \u4e0e carla . Waypoint \u643a\u624b \u5408\u4f5c \uff0c \u5c06 \u51e0\u4f55 \u4fe1\u606f \u4ece . xodr \u8f6c\u6362 \u4e3a \u81ea\u7136 \u4e16\u754c \u70b9 \u3002 Carla \u76ee\u524d \u6b63\u5728 \u4f7f\u7528 OpenDRIVE 1.4 \u6807\u51c6 \u3002","title":"carla . Map"},{"location":"python_api/#_96","text":"name ( str ) \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u5b83 \u5bf9\u5e94 \u4e8e \u4ece Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u52a0\u8f7d \u7684 \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 . umap \uff0c \u7136\u540e \u5f15\u7528 . xodr \u9053\u8def \u63cf\u8ff0 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_97","text":"__ init __ ( self , name , xodr _ content ) \u6b64\u7c7b \u7684 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u3002 \u5c3d\u7ba1 \u5728 \u521d\u59cb \u521d\u59cb\u5316 \u4e16\u754c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u5730\u56fe \uff0c \u4f46 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5728 \u4e0d \u8fd0\u884c \u4efb\u4f55 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u60c5\u51b5 \u4e0b \u4f7f\u7528 . xodr \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5f53\u524d \u5730\u56fe \u7684 \u540d\u79f0 \u3002 xodr _ content ( str ) - \u5b57\u7b26 \u5b57\u7b26\u4e32 \u683c\u5f0f \u7684 . xodr \u5185\u5bb9 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) cook _ in _ memory _ map ( self , path ) \u4ece Carla \u6620\u5c04 \u751f\u6210 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4f7f\u7528 \u7684 \u4fe1\u606f \u3002 \u6b64 \u65b9\u6cd5 \u4ec5 \u5728 \u5730\u56fe \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f7f\u7528 \u3002 \u53c2\u6570 \uff1a path ( str ) - \u5b58\u50a8 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6620\u5c04 \u6587\u4ef6 \u7684 \u9884\u671f \u4f4d\u7f6e \u7684 \u8def\u5f84 \u3002 generate _ waypoints ( self , distance ) \u8fd4\u56de \u4e00\u4e2a \u8def\u70b9 \u5217\u8868 \uff0c \u6bcf\u4e2a \u8f66\u9053 \u7684 \u8def\u70b9 \u4e4b\u95f4 \u90fd \u6709 \u4e00\u5b9a \u7684 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u5176 \u4e3a \u4e2d\u5fc3 \u3002 \u8def\u70b9 \u4e0d \u6309 \u4efb\u4f55 \u7279\u5b9a \u987a\u5e8f \u5217\u51fa \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u540c\u4e00 \u9053\u8def \u3001 \u8def\u6bb5 \u548c \u8f66\u9053 \u5185 \u8ddd\u79bb \u8d85\u8fc7 2 \u5398\u7c73 \u7684 \u8def \u70b9\u5c06 \u5177\u6709 \u76f8\u540c \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u53c2\u6570 \uff1a distance ( float - \u7c73 ) - \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u8fd1\u4f3c \u8ddd\u79bb \u3002 \u8fd4\u56de \uff1a list ( carla . Waypoint ) save _ to _ disk ( self , path ) \u5c06 \u5f53\u524d \u6620\u5c04 \u7684 . xodr OpenDRIVE \u6587\u4ef6 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u53c2\u6570 \uff1a path - \u4fdd\u5b58 \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 to _ opendrive ( self ) \u4ee5 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \u8fd4\u56de \u5f53\u524d \u5730\u56fe \u7684 . xodr OpenDRIVe \u6587\u4ef6 \u3002 \u8fd4\u56de \uff1a str transform _ to _ geolocation ( self , location ) \u5c06 \u4eff\u771f \u4e2d \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u7684 \u7ed9\u5b9a \u4f4d\u7f6e location \u8f6c\u6362 \u4e3a carla . GeoLocation \uff0c \u4ed6 \u8868\u793a \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u5730\u56fe \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u5728 OpenDRIVE \u6807\u7b7e \u5185 \u5b9a\u4e49 \u3002 \u53c2\u6570 \uff1a location ( carla . Location ) \u8fd4\u56de \uff1a carla . GeoLocation","title":"\u65b9\u6cd5"},{"location":"python_api/#_98","text":"get _ all _ landmarks ( self ) \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u5230 \u7684 \u5730\u6807 \u6709 \u4e00\u4e2a null \u822a\u8def \u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ from _ id ( self , opendrive _ id ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a OpenDRIVE ID \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a opendrive _ id ( string ) - \u5730 \u6807\u7684 OpenDRIVE ID \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ of _ type ( self , type ) \u8fd4\u56de \u7279\u5b9a \u7c7b\u578b \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a type ( string ) - \u5730 \u6807\u7684 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ crosswalks ( self ) \u4ee5 \u95ed\u5408 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u5f62\u5f0f \u8fd4\u56de \u5305\u542b \u6240\u6709 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u533a\u57df \u7684 \u4f4d\u7f6e \u5217\u8868 \u3002 \u91cd\u590d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u70b9 \uff0c \u8868\u793a \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ landmark _ group ( self , landmark ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u5730\u6807 \uff08 \u5305\u62ec \u5176 \u81ea\u8eab \uff09 \u4f4d\u4e8e \u540c \u4e00\u7ec4 \u4e2d \u7684 \u5730\u6807 \u3002 \u5982\u679c \u5730\u6807 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u7ec4 \uff0c \u5219 \u8fd4\u56de \u7a7a \u5217\u8868 \u3002 \u53c2\u6570 \uff1a landmark ( carla . Landmark ) - \u5c5e\u4e8e \u8be5\u7ec4 \u7684 \u5730\u6807 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ spawn _ points ( self ) \u8fd4\u56de \u5730\u56fe \u521b\u5efa \u521b\u5efa\u8005 \u63d0\u51fa \u7684 \u5efa\u8bae \u5217\u8868 \uff0c \u4ee5 \u7528\u4f5c \u8f66\u8f86 \u7684 \u751f\u6210 \u70b9 \u3002 \u8be5 \u5217\u8868 \u5305\u62ec \u5177\u6709 \u7279\u5b9a \u4f4d\u7f6e \u548c \u65b9\u5411 \u7684 carla . Transform \u5bf9\u8c61 \u3002 \u4e3a\u4e86 \u907f\u514d Z \u578b \u78b0\u649e \uff0c \u4e0a\u8ff0 \u5730\u70b9 \u4f1a \u7a0d\u5fae \u5728 \u7a7a\u4e2d \uff0c \u56e0\u6b64 \u8f66\u8f86 \u5728 \u51fa\u53d1 \u524d\u4f1a \u7a0d\u5fae \u4e0b\u5760 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) get _ topology ( self ) \u8fd4\u56de \u63cf\u8ff0 OpenDRIVE \u6587\u4ef6 \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \u7684 \u5143\u7ec4 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5143\u7ec4 \u5305\u542b \u4f4d\u4e8e \u9053\u8def \u8d77\u70b9 \u6216 \u7ec8\u70b9 \u7684 \u6210 \u5bf9 \u8def\u70b9 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u8d77\u70b9 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u4ee3\u8868 \u53e6 \u4e00\u4e2a \u53ef\u4ee5 \u5230\u8fbe \u7684 \u8def \u7ec8\u70b9 \u3002 \u8be5\u56fe \u53ef\u4ee5 \u52a0\u8f7d \u5230 NetworkX \u4e2d \u8fdb\u884c \u4f7f\u7528 \u3002 \u8f93\u51fa \u53ef\u80fd \u5982\u4e0b \u6240\u793a \uff1a [ ( w0 , w1 ) , ( w0 , w2 ) , ( w1 , w3 ) , ( w2 , w3 ) , ( w0 , w4 ) ] \u3002 \u8fd4\u56de \uff1a list ( tuple ( carla . Waypoint , carla . Waypoint ) ) get _ waypoint ( self , location , project _ to _ road = True , lane _ type = carla . LaneType . Driving ) snippet \u2192 \u8fd4\u56de \u53ef\u4ee5 \u4f4d\u4e8e \u7cbe\u786e \u4f4d\u7f6e \u6216 \u8f6c\u6362 \u5230 \u6700\u8fd1 \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u822a\u8def \u70b9 \u3002 \u6240\u8ff0 \u8f66\u9053 \u7c7b\u578b \u53ef\u4ee5 \u4f7f\u7528 \u8bf8\u5982 LaneType . Driving & LaneType . Shoulder \u7684 \u6807\u5fd7 \u6765 \u5b9a\u4e49 \u3002 \u5982\u679c \u627e\u5230 \u672a\u627e\u5230 \u822a\u8def \u70b9 \uff0c \u8be5 \u65b9\u6cd5 \u5c06 \u8fd4\u56de None \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4ec5 \u5728 \u5c1d\u8bd5 \u68c0\u7d22 \u786e\u5207 \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9\u65f6 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8fd9 \u53ef\u4ee5 \u8f7b\u677e \u68c0\u67e5 \u67d0\u4e2a \u70b9 \u662f\u5426 \u5728 \u67d0\u6761 \u9053\u8def \u5185 \uff0c \u5426\u5219 \uff0c \u5b83 \u5c06 \u8fd4\u56de \u76f8\u5e94 \u7684 \u8def\u5f84 \u70b9 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u7528\u4f5c carla . Waypoint \u53c2\u8003 \u7684 \u4efb\u52a1 \u3002 project _ to _ road ( bool ) - \u5982\u679c \u662f True \uff0c \u8def\u5f84 \u70b9\u5c06 \u4f4d\u4e8e \u6700\u8fd1 \u8f66\u9053 \u7684 \u4e2d\u5fc3 \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u5982\u679c \u4e3a False \uff0c \u8def\u5f84 \u70b9\u5c06 \u6070\u597d \u4f4d\u4e8e location \u3002 None \u8868\u793a \u8be5 \u4f4d\u7f6e \u4e0d \u5c5e\u4e8e \u9053\u8def \u3002 lane _ type ( carla . LaneType ) - \u5c06 \u5bf9 \u6700\u8fd1 \u8f66\u9053 \u7684 \u641c\u7d22 \u9650\u5236 \u4e3a \u53ef\u4ee5 \u6807\u8bb0 \u7684 \u4e00\u79cd \u6216 \u591a\u79cd \u8f66\u9053 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a carla . Waypoint get _ waypoint _ xodr ( self , road _ id , lane _ id , s ) \u5982\u679c \u4f20\u9012 \u7684 \u6240\u6709 \u53c2\u6570 \u90fd \u6b63\u786e \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5426\u5219 \uff0c \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a road _ id ( int ) - \u83b7\u53d6 \u8def\u70b9 \u7684 \u9053\u8def id \u3002 lane _ id ( int ) - \u83b7\u53d6 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 id \u3002 s ( float - \u7c73 ) - \u6307\u5b9a \u4ece \u9053\u8def \u8d77\u70b9 \u5f00\u59cb \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Waypoint","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_99","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlamaplayer","text":"\u8868\u793a \u5730\u56fe \u7684 \u6bcf\u4e2a \u53ef \u7ba1\u7406 \u7ba1\u7406\u5c42 \u7684 \u7c7b \u3002 \u53ef\u4ee5 \u7528\u4f5c \u6807\u5fd7 \u3002 \u8b66\u544a \uff1a \u53ea\u6709 \u201c Opt \u201d \u5730\u56fe \u624d\u80fd \u4f7f\u7528 \u5730\u56fe \u56fe\u5c42 \u3002","title":"carla . MapLayer"},{"location":"python_api/#_100","text":"NONE \u672a \u9009\u62e9 \u4efb\u4f55 \u56fe\u5c42 \u3002 Buildings Decals Foliage Ground ParkedVehicles Particles Props StreetLights Walls All \u9009\u5b9a \u6240\u6709 \u56fe\u5c42 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlamaterialparameter","text":"\u8868\u793a \u6750\u6599 \u53c2\u6570 \u7684 \u7c7b \u3002 \u5e76\u975e \u573a\u666f \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u90fd \u5305\u542b \u6240\u6709 \u53c2\u6570 \u3002","title":"carla . MaterialParameter"},{"location":"python_api/#_101","text":"Normal \u5bf9\u8c61 \u7684 \u6cd5\u7ebf \u8d34\u56fe \u3002 \u5b58\u5728 \u4e8e \u4e00\u5207 \u7269\u4f53 \u4e2d \u3002 Diffuse \u7269\u4f53 \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7eb9\u7406 \u3002 \u5b58\u5728 \u4e8e \u4e00\u5207 \u7269\u4f53 \u4e2d \u3002 AO _ Roughness _ Metallic _ Emissive \u6bcf\u4e2a \u989c\u8272 \u901a\u9053 \u4ee3\u8868 \u6750\u8d28 \u5c5e\u6027 \u7684 \u7eb9\u7406 \uff08 R \uff1a \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \uff0c G \uff1a \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff0c B \uff1a \u91d1\u5c5e \uff0c A \uff1a \u67d0\u4e9b \u7269\u4f53 \u4e2d \u7684 \u53d1\u5c04 / \u9ad8\u5ea6 \u8d34\u56fe \uff09 \u3002 Emissive \u53d1\u5c04 \u7eb9\u7406 \u3002 \u5b58\u5728 \u4e8e \u4e00\u4e9b \u7269\u4f53 \u4e2d \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlaobstacledetectionevent","text":"\u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 sensor . other . obstacle \u969c\u788d \u969c\u788d\u7269 \u6570\u636e \u7684 \u7c7b \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002","title":"carla . ObstacleDetectionEvent"},{"location":"python_api/#_102","text":"actor ( carla . Actor ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u8fde\u63a5 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 other _ actor ( carla . Actor ) \u88ab \u89c6\u4e3a \u969c\u788d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u7269\u4f53 \u3002 distance ( float - \u7c73 ) \u53c2\u4e0e \u53c2\u4e0e\u8005 actor \u548c \u5176\u4ed6 \u4ed6\u4eba \u5176\u4ed6\u4eba other \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_103","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_104","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaopendrivegenerationparameters","text":"\u6b64\u7c7b \u5b9a\u4e49 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u751f\u6210 \u4e16\u754c \u65f6 \u4f7f\u7528 \u7684 \u53c2\u6570 \u3002","title":"carla . OpendriveGenerationParameters"},{"location":"python_api/#_105","text":"vertex _ distance ( float ) \u751f\u6210 \u7684 \u7f51\u683c \u9876\u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2.0 \u3002 max _ road _ length ( float ) \u5355\u4e2a \u7f51\u683c \u90e8\u5206 \u7684 \u6700\u5927 \u9053\u8def \u957f\u5ea6 \u3002 \u5730\u56fe \u7684 \u7f51\u683c \u88ab \u5206\u4e3a \u591a\u4e2a \u90e8\u5206 \uff0c \u4ee5 \u907f\u514d \u4f20\u64ad \u95ee\u9898 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 50.0 \u3002 wall _ height ( float ) \u5728 \u9053\u8def \u8fb9\u754c \u4e0a \u521b\u5efa \u7684 \u5899\u58c1 \u7684 \u9ad8\u5ea6 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u4ece \u9053\u8def \u4e0a \u4e0b\u6765 \u6389\u4e0b\u6765 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 1.0 \u3002 additional _ width ( float ) \u53e6\u5916 \u8fd8\u6709 \u5e94\u7528 \u7684 \u8fde\u63a5 \u8f66\u9053 \u3002 \u590d\u6742 \u7684 \u60c5\u51b5 \u5f80\u5f80 \u53d1\u751f \u5728 \u8def\u53e3 \uff0c \u7a0d\u5fae \u589e\u52a0 \u4e00\u70b9 \u5c31 \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u5760\u843d \u8def\u9762 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.6 \u3002 smooth _ junctions ( bool ) \u5982\u679c \u4e3a True \uff0c \u4ea4\u53c9 \u4ea4\u53c9\u70b9 \u5904 \u7684 \u7f51\u683c \u5c06 \u88ab \u5e73\u6ed1 \uff0c \u4ee5 \u9632\u6b62 \u9053\u8def \u963b\u585e \u5176\u4ed6 \u9053\u8def \u7684 \u95ee\u9898 \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 enable _ mesh _ visibility ( bool ) \u5982\u679c \u4e3a True \uff0c \u5c06 \u6e32\u67d3 \u9053\u8def \u7f51\u683c \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a False \u5e94\u8be5 \u4f1a \u51cf\u5c11 \u6e32\u67d3 \u5f00\u9500 \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 enable _ pedestrian _ navigation ( bool ) \u5982\u679c \u4e3a True \uff0c \u5c06 \u4f7f\u7528 Recast \u5de5\u5177 \u542f\u7528 \u884c\u4eba \u5bfc\u822a \u3002 \u5bf9\u4e8e \u975e\u5e38 \u5927 \u7684 \u5730\u56fe \uff0c \u5efa\u8bae \u7981\u7528 \u6b64 \u9009\u9879 \u3002 \u9ed8\u8ba4 \u4e3a True \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlaopticalflowimage","text":"\u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u8868\u793a \u89c6\u573a \u4e2d \u68c0\u6d4b \u5230 \u7684 \u5149\u6d41 \u7684 \u4e8c\u7ef4 \u6d6e\u70b9 \uff08 32 \u4f4d \uff09 \u5411\u91cf \u7684 \u5149\u6d41 \u56fe\u50cf \u7684 \u7c7b \u3002 \u77e2\u91cf \u7684 \u5206\u91cf \u8868\u793a \u7269\u4f53 \u5728 \u56fe\u50cf \u5e73\u9762 \u4e2d \u7684 \u4f4d\u79fb \u3002 \u6bcf\u4e2a \u7ec4\u4ef6 \u8f93\u51fa \u5f52\u4e00\u5316 \u8303\u56f4 [ - 2 , 2 ] \u5185 \u7684 \u503c \uff0c \u8be5 \u8303\u56f4 \u7f29\u653e \u4e3a [ - 2 size \uff0c 2 size ] \uff0c \u5927\u5c0f \u662f \u76f8\u5e94 \u7ec4\u4ef6 \u4e2d \u7684 \u603b \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u3002","title":"carla . OpticalFlowImage"},{"location":"python_api/#_106","text":"fov ( float - \u5ea6 ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( bytes ) \u5c55\u5e73 \u50cf\u7d20 \u6570\u636e \u6570\u7ec4 \uff0c \u4f7f\u7528 reshape \u521b\u5efa \u56fe\u50cf \u6570\u7ec4 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_107","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_108","text":"get _ color _ coded _ flow ( self ) \u53ef\u89c6 \u53ef\u89c6\u5316 \u52a9\u624b \u3002 \u5c06 \u5149\u6d41 \u56fe\u50cf \u8f6c\u6362 \u4e3a RGB \u56fe\u50cf \u3002 \u8fd4\u56de \uff1a carla . Image","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_109","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) \u8fed\u4ee3 \u5f62\u6210 \u56fe\u50cf \u7684 carla . OpticalFlowPixel \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaopticalflowpixel","text":"\u5b9a\u4e49 \u8868\u793a \u5149\u6d41 \u50cf\u7d20 \u7684 \u4e8c\u7ef4 \u5411\u91cf \u7684 \u7c7b \u3002","title":"carla . OpticalFlowPixel"},{"location":"python_api/#_110","text":"x ( float ) x \u5206\u91cf \u4e2d \u7684 \u5149\u6d41 \u3002 y ( float ) y \u5206\u91cf \u4e2d \u7684 \u5149\u6d41 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_111","text":"__ init __ ( self , x = 0 , y = 0 ) \u521d\u59cb \u521d\u59cb\u5316 \u5149\u6d41 \u50cf\u7d20 \u3002 \u9ed8\u8ba4 \u4e3a \u96f6 \u3002 \u53c2\u6570 \uff1a x ( float ) y ( float )","title":"\u65b9\u6cd5"},{"location":"python_api/#_112","text":"__ eq __ ( self , other = carla . OpticalFlowPixel ) __ ne __ ( self , other = carla . OpticalFlowPixel ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaosm2odr","text":"\u5c06 OpenStreetMap \u5730\u56fe \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u7684 \u7c7b \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u4e2d \u52a0\u8f7d \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"carla . Osm2Odr"},{"location":"python_api/#_113","text":"convert ( osm _ file , settings ) \u83b7\u53d6 . osm \u6587\u4ef6 \uff08 OpenStreetMap \u683c\u5f0f \uff09 \u7684 \u5185\u5bb9 \u5e76 \u8fd4\u56de \u63cf\u8ff0 \u6240\u8ff0 \u5730\u56fe \u7684 . xodr \uff08 OpenDRIVE \u683c\u5f0f \uff09 \u7684 \u5185\u5bb9 \u3002 \u4f20\u9012 \u4e00\u4e9b \u53c2\u6570 \u5316\u6765 \u8fdb\u884c \u8f6c\u6362 \u3002 \u53c2\u6570 \uff1a osm _ file ( str ) - \u8f93\u5165 OpenStreetMap \u6587\u4ef6 \u7684 \u5185\u5bb9 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 settings ( carla . OSM2ODRSettings ) - \u8f6c\u6362 \u7684 \u53c2\u6570 \u5316 \u3002 \u8fd4\u56de \uff1a str","title":"\u65b9\u6cd5"},{"location":"python_api/#carlaosm2odrsettings","text":"\u5305\u542b carla . Osm2Odr \u5c06 \u4f7f\u7528 \u7684 \u53c2\u6570 \u5316 \u7684 \u5e2e\u52a9 \u7a0b\u5e8f \u7c7b \uff0c \u7528\u4e8e \u5c06 OpenStreetMap \u5730\u56fe \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"carla . Osm2OdrSettings"},{"location":"python_api/#_114","text":"use _ offsets ( bool ) \u5141\u8bb8 \u4f7f\u7528 \u504f\u79fb \u504f\u79fb\u91cf \u8fdb\u884c \u8f6c\u6362 \u3002 \u504f\u79fb \u504f\u79fb\u91cf \u5c06 \u79fb\u52a8 \u5730\u56fe \u7684 \u539f\u70b9 \u4f4d\u7f6e \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a False \u3002 offset _ x ( float - \u7c73 ) X \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 offset _ y ( float - \u7c73 ) Y \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 default _ lane _ width ( float - \u7c73 ) \u751f\u6210 \u7684 XODR \u5730\u56fe \u4e2d \u63cf\u8ff0 \u7684 \u8f66\u9053 \u5bbd\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 4.0 \u3002 elevation _ layer _ height ( float - \u7c73 ) \u5b9a\u4e49 \u5206\u9694 \u4e24\u4e2a \u4e0d\u540c OpenStreetMap \u56fe\u5c42 \u7684 \u9ad8\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 center _ map ( bool ) \u542f\u7528 \u6b64 \u9009\u9879 \u540e \uff0c \u5730\u56fe \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u5c06 \u53d1\u751f \u4f4d\u79fb \uff0c \u4ee5 \u4f7f \u5750\u6807 \u539f\u70b9 \u4e0e \u6574\u4e2a \u9053\u8def \u5730\u56fe \u7684 \u8fb9\u754c \u6846 \u4e2d\u5fc3 \u5339\u914d \u76f8\u5339\u914d \u3002 proj _ string ( str ) \u5b9a\u4e49 \u5c06 \u7528\u4e8e \u8ba1\u7b97 \u4ece \u5730\u7406 \u5750\u6807 \u5730\u7406\u5750\u6807 \u5230 \u5361\u5c14 \u7b1b\u5361\u5c14 \u5750\u6807 \u7684 \u6295\u5f71 \u7684 proj4 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8be5 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5c06 \u5199\u5165 \u751f\u6210 \u7684 OpenDRIVE \u4e2d \uff0c \u9664\u975e \u542f\u7528 \u4e86 use _ offsets \u6216 center _ map \u9009\u9879 \uff0c \u56e0\u4e3a \u8fd9\u4e9b \u9009\u9879 \u4f1a \u8986\u76d6 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u4e2d \u7684 \u67d0\u4e9b \u5b9a\u4e49 \u3002 generate _ traffic _ lights ( bool ) \u6307\u793a \u662f\u5426 \u5728 OpenDRIVE \u4e2d \u751f\u6210 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6570\u636e \u3002 set _ traffic _ light _ excluded _ way _ types ( way _ types ) \u5b9a\u4e49 \u7684 \u9053\u8def \u7c7b\u578b \u4e0d\u4f1a \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 all _ junctions _ with _ traffic _ lights ( bool ) \u7981\u7528 \u65f6 \uff0c \u8f6c\u6362 \u8f6c\u6362\u5668 \u5c06 \u4ec5 \u4ece OpenStreetMaps \u6570\u636e \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u3002 \u542f\u7528 \u540e \uff0c \u6240\u6709 \u8def\u53e3 \u90fd \u4f1a \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_115","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_116","text":"set _ osm _ way _ types ( self , way _ types ) \u5b9a\u4e49 \u5c06 \u5bfc\u5165 \u5bfc\u5165\u5230 OpenDRIVE \u7684 OpenStreetMaps \u9053\u8def \u7c7b\u578b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5bfc\u5165 \u7684 \u9053\u8def \u7c7b\u578b \u4e3a motorway , motorway _ link , trunk , trunk _ link , primary , primary _ link , secondary , secondary _ link , tertiary , tertiary _ link , unclassified , residential \u3002 \u6709\u5173 \u9053\u8def \u7c7b\u578b \u7684 \u5b8c\u6574 \u5217\u8868 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u53c2\u6570 \uff1a way _ types ( list ( str ) ) - \u9053\u8def \u7c7b\u578b \u5217\u8868 \u3002 set _ traffic _ light _ excluded _ way _ types ( self , way _ types ) \u5b9a\u4e49 \u5373\u4f7f \u542f\u7528 generate _ traffic _ lights \u4e5f \u4e0d\u4f1a \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 OpenStreetMaps \u9053\u8def \u7c7b\u578b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6392\u9664 \u7684 \u9053\u8def \u7c7b\u578b \u4e3a motorway _ link , primary _ link , secondary _ link , tertiary _ link \u3002 \u53c2\u6570 \uff1a way _ types ( list ( str ) ) - \u9053\u8def \u7c7b\u578b \u5217\u8868 \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlaradardetection","text":"carla . RadarMeasurement \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u4ee3\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 . sensor . other . radar \u8bb0\u5f55 \u7684 \u4e91\u4e2d \u7684 \u70b9 \u4e4b\u4e00 \uff0c \u5e76 \u5305\u542b \u4e0e \u96f7\u8fbe \u76f8\u5173 \u7684 \u8ddd\u79bb \u3001 \u89d2\u5ea6 \u548c \u901f\u5ea6 \u3002","title":"carla . RadarDetection"},{"location":"python_api/#_117","text":"altitude ( float - radians ) Altitude angle of the detection . azimuth ( float - radians ) Azimuth angle of the detection . depth ( float - \u7c73 ) Distance from the sensor to the detection position . velocity ( float - m / s ) The velocity of the detected object towards the sensor .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_118","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_119","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaradarmeasurement","text":"\u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u5e76 \u6536\u96c6 \u7531 sensor . other . radar \u6ce8\u518c \u7684 \u6d4b\u91cf \u503c \u7684 \u7c7b \uff0c \u4ee3\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u524d\u9762 \u7684 \u70b9 \u5899 \u4ee5\u53ca \u4e0e\u5176 \u76f8\u5173 \u7684 \u8ddd\u79bb \u3001 \u89d2\u5ea6 \u548c \u901f\u5ea6 \u3002 \u6570\u636e \u7531 carla . RadarDetection \u6570\u7ec4 \u7ec4\u6210 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002","title":"carla . RadarMeasurement"},{"location":"python_api/#_120","text":"raw _ data ( bytes ) carla . RadarDetection \u96f7\u8fbe \u7684 \u5b8c\u6210 \u4fe1\u606f \u5df2\u7ecf \u88ab \u6ce8\u518c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_121","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_122","text":"get _ detection _ count ( self ) \u68c0\u7d22 \u751f\u6210 \u7684 \u6761\u76ee \u6570 \uff0c \u4e0e __ str __ ( ) \u76f8\u540c \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_123","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u83b7\u53d6 \u7684 \u6570\u636e carla . RadarDetection \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . RadarDetection ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlarotation","text":"\u8868\u793a 3D \u65cb\u8f6c \u4ee5\u53ca \u7a7a\u95f4 \u65b9\u5411 \u7684 \u7c7b \u3002 Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u8fd9\u662f Z \u5411\u4e0a \u5de6\u624b \u7cfb\u7edf \u3002 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u65b9\u6cd5 \u9075\u5faa \u7279\u5b9a \u7684 \u58f0\u660e \u987a\u5e8f \uff1a ( pitch , yaw , roll ) \u5bf9\u5e94 \u4e8e ( Y - rotation , Z - rotation , X - rotation ) . \u865a\u5e7b \u5f15\u64ce \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u3002","title":"carla . Rotation"},{"location":"python_api/#_124","text":"pitch ( float - \u5ea6 ) Y - \u8f74 \u65cb\u8f6c \u89d2\u5ea6 \u3002 yaw ( float - \u5ea6 ) Z - \u8f74 \u65cb\u8f6c \u89d2\u5ea6 \u3002 roll ( float - \u5ea6 ) X - \u8f74 \u65cb\u8f6c \u89d2\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_125","text":"__ init __ ( self , pitch = 0.0 , yaw = 0.0 , roll = 0.0 ) \u53c2\u6570 \uff1a pitch ( float - \u5ea6 ) - Y - axis rotation angle . yaw ( float - \u5ea6 ) - Z - axis rotation angle . roll ( float - \u5ea6 ) - X - axis rotation angle . \u8b66\u544a \uff1a CARLA ( pitch , yaw , roll ) \u548c \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u58f0\u660e \u987a\u5e8f \u4e0d\u540c \u3002 \u5f53 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u65f6 \uff0c \u4e0d\u8981 \u6df7\u6dc6 \u8f74 \u7684 \u65cb\u8f6c \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_126","text":"get _ forward _ vector ( self ) \u6839\u636e \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u6307\u5411 \u524d\u65b9 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D get _ right _ vector ( self ) \u6839\u636e \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u6307\u5411 \u53f3\u4fa7 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D get _ up _ vector ( self ) \u6839\u636e \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u6307\u5411 \u4e0a\u65b9 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_127","text":"__ eq __ ( self , other = carla . Rotation ) \u5982\u679c \u4e24\u4e2a \u65cb\u8f6c \u4ee3\u8868 \u6bcf\u4e2a \u8f74 \u7684 \u76f8\u540c \u65b9\u5411 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . Rotation ) \u5982\u679c \u4e24\u4e2a \u65cb\u8f6c \u4ee3\u8868 \u6bcf\u4e2a \u8f74 \u7684 \u76f8\u540c \u65b9\u5411 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8f74 \u7684 \u65b9\u5411 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlarssactorconstellationdata","text":"\u7531 RssSensor . register _ actor _ constellation _ callback ( ) \u6ce8\u518c \u7684 \u56de\u8c03 \u4e2d \u63d0\u4f9b \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002","title":"carla . RssActorConstellationData"},{"location":"python_api/#_128","text":"ego _ match _ object ( ad . map . match . Object ) \u81ea\u6211 \u6620\u5c04 \u5339\u914d \u4fe1\u606f \u3002 ego _ route ( ad . map . route . FullRoute ) \u81ea\u6211 \u8def\u7531 \u3002 ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u6001 \u3002 other _ match _ object ( ad . map . match . Object ) \u5176\u4ed6 \u5bf9\u8c61 \u7684 \u5730\u56fe \u5339\u914d \u4fe1\u606f \u3002 \u4ec5\u5f53 \u201c other _ actor \u201d \u4e0d\u662f \u201c None \u201d \u65f6 \u8fd9 \u624d \u6709\u6548 \u3002 other _ actor ( carla . Actor ) \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u67e5\u8be2 \u9ed8\u8ba4 \u53c2\u6570 \u6216 \u7c7b\u578b \u4e3a ad . rss . world . ObjectType . ArtificialObject \u4e14 \u6ca1\u6709 \u4e13\u7528 \u201c carla . Actor ' ( as e . g . for the road boundaries \u201d \u7684 \u4eba\u5de5 \u5bf9\u8c61 \uff08 \u4f8b\u5982 \u76ee\u524d \u7684 \u9053\u8def \u8fb9\u754c \uff09 \uff0c \u5219 \u4e3a \u201c None \u201d \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_129","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_130","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlarssactorconstellationresult","text":"\u5e94\u8be5 \u7531 RssSensor . register _ actor _ constellation _ callback ( ) \u6ce8\u518c \u7684 \u56de\u8c03 \u8fd4\u56de \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002","title":"carla . RssActorConstellationResult"},{"location":"python_api/#_131","text":"rss _ calculation _ mode ( ad . rss . map . RssMode ) \u8981 \u5e94\u7528 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8ba1\u7b97 \u6a21\u5f0f \u3002 restrict _ speed _ limit _ mode ( ad . rss . map . RestrictSpeedLimitMode ) \u9650\u901f \u6a21\u5f0f \u3002 ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) \u5c06 RSS \u52a8\u6001 \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u3002 actor _ object _ type ( ad . rss . world . ObjectType ) \u8981 \u7528\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 RSS \u5bf9\u8c61 \u7c7b\u578b \u3002 actor _ dynamics ( ad . rss . world . RssDynamics ) \u8981 \u5e94\u7528 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 RSS \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_132","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_133","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlarssegodynamicsonroute","text":"\u63cf\u8ff0 \u8f66\u8f86 \u72b6\u6001 \u7684 carla . RssResponse \u4e2d \u5305\u542b \u7684 \u90e8\u5206 \u6570\u636e \u3002 \u53c2\u6570 \u5305\u62ec \u5b83 \u5f53\u524d \u7684 \u52a8\u6001 \uff0c \u4ee5\u53ca \u5b83 \u5982\u4f55 \u6839\u636e \u76ee\u6807 \u8def\u7ebf \u524d\u8fdb \u3002","title":"carla . RssEgoDynamicsOnRoute"},{"location":"python_api/#_134","text":"ego _ speed ( ad . physics . Speed ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u3002 min _ stopping _ distance ( ad . physics . Distance ) \u5f53\u524d \u6700\u5c0f \u505c\u8f66 \u8ddd\u79bb \u3002 ego _ center ( ad . map . point . ENUPoint ) \u81ea\u6211 \u8f66\u8f86 \u88ab \u8003\u8651 \u7684 enu \u4f4d\u7f6e \u3002 ego _ heading ( ad . map . point . ENUHeading ) \u8003\u8651 \u7684 \u81ea\u6211 \u8f66\u8f86 \u7684 \u822a\u5411 \u3002 ego _ center _ within _ route ( bool ) \u8bf4\u660e \u81ea\u6211 \u8f66\u8f86 \u7684 \u4e2d\u5fc3 \u662f\u5426 \u5728 \u8def\u7ebf \u5185 \u3002 crossing _ border ( bool ) \u8bf4\u660e \u8f66\u8f86 \u662f\u5426 \u5df2\u7ecf \u8d8a\u8fc7 \u5176\u4e2d \u4e00\u4e2a \u8f66\u9053 \u8fb9\u754c \u3002 route _ heading ( ad . map . point . ENUHeading ) \u8def\u7ebf \u7684 \u8003\u8651 \u65b9\u5411 \u3002 route _ nominal _ center ( ad . map . point . ENUPoint ) \u5f53\u524d \u8def\u7ebf \u7684 \u540d\u4e49 \u4e2d\u5fc3 \u3002 heading _ diff ( ad . map . point . ENUHeading ) \u88ab \u8003\u8651 \u7684 \u65b9\u5411 \u504f\u79bb \u4e86 \u8def\u7ebf \u3002 route _ speed _ lat ( ad . physics . Speed ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u5206\u91cf lat \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 route _ speed _ lon ( ad . physics . Speed ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u5206\u91cf lon \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 route _ accel _ lat ( ad . physics . Acceleration ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lat \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 route _ accel _ lon ( ad . physics . Acceleration ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lon \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 avg _ route _ accel _ lat ( ad . physics . Acceleration ) \u81ea\u6211 \u8f66 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lat \u4e0e \u7ecf\u8fc7 \u5e73\u5747 \u6ee4\u6ce2 \u5e73\u6ed1 \u7684 \u8def\u7ebf \u6709\u5173 \u3002 The ego vehicle ' s acceleration component lat regarding the route smoothened by an average filter . avg _ route _ accel _ lon ( ad . physics . Acceleration ) \u5bf9 \u7ecf\u8fc7 \u5e73\u5747 \u6ee4\u6ce2 \u5e73\u6ed1 \u7684 \u8def\u7ebf \u8fdb\u884c \u81ea \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lon \u5206\u6790 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_135","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_136","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlarssloglevel","text":"\u679a\u4e3e \u58f0\u660e \u4e2d \u4f7f\u7528 \u7684 carla . RssSensor \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002","title":"carla . RssLogLevel"},{"location":"python_api/#_137","text":"trace debug info warn err critical off","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlarssresponse","text":"\u4ece carla . SensorData \u7ee7\u627f \u5305\u542b c carla . RssSensor \u8f93\u51fa \u7684 \u7c7b \u3002 \u8fd9 \u662f \u5bf9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236 \u8f66\u8f86 \u6267\u884c \u7684 RSS \u8ba1\u7b97 \u7684 \u7ed3\u679c \u3002 carla . RssRestrictor \u5c06 \u4f7f\u7528 \u6570\u636e \u4fee\u6539 \u8f66\u8f86 \u7684 carla . VehicleControl \u3002","title":"carla . RssResponse"},{"location":"python_api/#_138","text":"response _ valid ( bool ) \u8bf4\u660e \u54cd\u5e94 \u662f\u5426 \u6709\u6548 \u3002 \u5982\u679c \u8ba1\u7b97 \u5931\u8d25 \u6216 \u53d1\u751f \u5f02\u5e38 \uff0c \u5219 \u4e3a False \u3002 proper _ response ( ad . rss . state . ProperResponse ) RSS \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \u3002 rss _ state _ snapshot ( ad . rss . state . RssStateSnapshot ) \u8be6\u7ec6 \u7684 RSS \u5728 \u5f53\u524d \u65f6\u523b \u7684 \u72b6\u6001 \u3002 ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002 world _ model ( ad . rss . world . WorldModel ) \u7528\u4e8e \u8ba1\u7b97 \u7684 \u4e16\u754c \u6a21\u578b \u3002 situation _ snapshot ( ad . rss . situation . SituationSnapshot ) \u4ece \u4e16\u754c \u6a21\u578b \u4e2d \u63d0\u53d6 \u7684 \u8be6\u7ec6 RSS \u60c5\u51b5 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_139","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_140","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlarssrestrictor","text":"\u8fd9\u4e9b \u5bf9\u8c61 \u5c06 \u9650\u5236 \u5e94\u7528 \u4e8e carla . VehicleControl \u3002 \u5b83 \u662f \u8d1f\u8d23 \u654f\u611f \u5b89\u5168 \u7684 C++ \u5e93 \u7684 Carla \u5b9e\u73b0 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u6b64\u7c7b \u4e0e rss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u534f\u540c \u540c\u5de5 \u5de5\u4f5c \u534f\u540c\u5de5\u4f5c \uff0c rss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u8981 \u5e94\u7528 \u7684 \u9650\u5236 \u7684 \u6570\u636e \u3002","title":"carla . RssRestrictor"},{"location":"python_api/#_141","text":"restrict _ vehicle _ control ( self , vehicle _ control , proper _ response , ego _ dynamics _ on _ route , vehicle _ physics ) \u5e94\u7528 carla . RssSensor \u5bf9 carla . VehicleControl \u7ed9\u51fa \u7684 \u5b89\u5168 \u9650\u5236 \u3002 \u53c2\u6570 \uff1a vehicle _ control ( carla . VehicleControl ) - \u8981 \u9650\u5236 \u7684 \u8f93\u5165 \u8f66\u8f86 \u63a7\u5236 \u3002 proper _ response ( ad . rss . state . ProperResponse ) - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ea7\u751f \u7684 \u90e8\u5206 \u54cd\u5e94 \u3002 \u5305\u542b \u9002\u7528 \u4e8e \u8f66\u8f86 \u52a0\u901f \u7684 \u9650\u5236 \u3002 ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ea7\u751f \u7684 \u90e8\u5206 \u54cd\u5e94 \u3002 \u5305\u542b \u6709\u5173 \u5176 \u8def\u7ebf \u7684 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u548c \u65b9\u5411 \u3002 vehicle _ physics ( carla . VehiclePhysicsControl ) - \u8f66\u8f86 \u7684 \u5f53\u524d \u7269\u7406 \u7279\u6027 \u3002 \u7528\u4e8e \u6b63\u786e \u5e94\u7528 \u9650\u5236 \u3002 \u8fd4\u56de : carla . VehicleControl","title":"\u65b9\u6cd5"},{"location":"python_api/#_142","text":"set _ log _ level ( self , log _ level ) \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 \u53c2\u6570 \uff1a log _ level ( carla . RssLogLevel ) - \u65b0 \u65e5\u5fd7 \u7ea7\u522b \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlarssroadboundariesmode","text":"carla . RssSensor \u4e2d \u4f7f\u7528 \u7684 \u679a\u4e3e \u58f0\u660e \uff0c \u7528\u4e8e \u542f\u7528 \u6216 \u7981\u7528 \u516c\u8def \u505c\u7559 \u529f\u80fd \u3002 \u800c\u8a00 \u603b\u800c\u8a00\u4e4b \uff0c \u6b64 \u529f\u80fd \u5c06 \u9053\u8def \u8fb9\u754c \u89c6\u4e3a \u865a\u62df \u5bf9\u8c61 \u3002 \u6700\u5c0f \u5b89\u5168 \u8ddd\u79bb \u68c0\u67e5 \u5e94\u7528 \u4e8e \u8fd9\u4e9b \u865a\u62df \u5899 \uff0c \u4ee5 \u786e\u4fdd \u8f66\u8f86 \u4e0d\u4f1a \u9a76\u79bb \u9053\u8def \u3002","title":"carla . RssRoadBoundariesMode"},{"location":"python_api/#_143","text":"On \u542f\u7528 \u201c \u505c\u7559 \u5728 \u8def\u4e0a \uff08 stay on road \uff09 \u201d \u529f\u80fd \u3002 Off \u7981\u7528 \u201c \u505c\u7559 \u5728 \u8def\u4e0a \uff08 stay on road \uff09 \u201d \u529f\u80fd \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlarsssensor","text":"\u4ece carla . Sensor \u7ee7\u627f \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u539f\u7406 \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \u3002 \u8bf7 \u67e5\u770b \u7279\u5b9a \u6587\u6863 \u548c rss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \uff0c \u4ee5 \u5145\u5206 \u4e86\u89e3 \u5b83 \u3002 RSS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4e16\u754c \u4fe1\u606f \u548c RSS \u5e93 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u5230 \u7684 \u8f93\u51fa \u662f carla . RssResponse \u3002 \u8fd9 \u5c06 \u7531 carla . RssRestrictor \u4f7f\u7528 \u3002 \u5728 \u5c06 \u5176 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u4e4b\u524d \u8fdb\u884c carla . VehicleControl \u3002","title":"carla . RssSensor"},{"location":"python_api/#_144","text":"ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) \u8bf4\u660e \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u56de\u8c03 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8003\u8651 \u7684 \u81ea\u6211 \u8f66\u8f86 \u7684 RSS \u53c2\u6570 \u3002 other _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) \u8bf4\u660e \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u56de\u8c03 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4e3a \u5176\u4f59 \u8f66\u8f86 \u8003\u8651 \u7684 RSS \u53c2\u6570 \u3002 pedestrian _ dynamics ( ad . rss . world . RssDynamics ) \u8bf4\u660e \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u56de\u8c03 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4e3a \u884c\u4eba \u8003\u8651 \u7684 RSS \u53c2\u6570 \u3002 road _ boundaries _ mode ( carla . RssRoadBoundariesMode ) \u5207\u6362 \u505c\u7559 \u5728 \u9053\u8def \u4e0a stay on road \u7684 \u529f\u80fd \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5904\u4e8e \u7981\u7528 \uff08 Off \uff09 \u72b6\u6001 \u3002 routing _ targets ( vector < carla . Transform > ) \u5f53\u524d \u8003\u8651 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u8def\u7531 \u7684 \u76ee\u6807 \u5217\u8868 \u3002 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u8def\u7531 \u76ee\u6807 \uff0c \u5219 \u968f\u673a \u751f\u6210 \u8def\u7531 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_145","text":"append _ routing _ target ( self , routing _ target ) \u5c06 \u65b0 \u7684 \u76ee\u6807 \u4f4d\u7f6e \u9644\u52a0 \u5230 \u8f66\u8f86 \u7684 \u5f53\u524d \u8def\u7ebf \u3002 \u53c2\u6570 \uff1a routing _ target ( carla . Transform ) - \u4e3a \u8def\u7ebf \u65b0\u5efa \u76ee\u6807 \u70b9 \u3002 \u5728 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u540e \u9009\u62e9 \u8fd9\u4e9b \u9009\u9879 \uff0c \u4ee5 \u5f3a\u5236 \u8def\u7ebf \u8f6c\u5f2f \u3002 drop _ route ( self ) \u653e\u5f03 \u5f53\u524d \u8def\u7531 \u3002 \u5982\u679c routing _ targets \u4e2d \u8fd8\u6709 \u76ee\u6807 \uff0c \u5219 \u4f7f\u7528 \u8fd9\u4e9b \u76ee\u6807 \u521b\u5efa \u65b0\u8def \u7531 \u3002 \u5426\u5219 \uff0c \u5c06 \u968f\u673a \u521b\u5efa \u65b0\u8def \u7531 \u3002 register _ actor _ constellation _ callback ( self , callback ) \u6ce8\u518c \u56de\u8c03 \u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 carla . RssActorConstellationResult \u3002 \u901a\u8fc7 \u6b64 \u56de\u8c03 \uff0c RSS \u53c2\u6570 \u7684 \u8bbe\u7f6e \u662f \u6839\u636e \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u5b8c\u6210 \u7684 \uff0c \u5e76\u4e14 \u8bbe\u7f6e \uff08 ego _ vehicle _ dynamics , other _ vehicle _ dynamics and pedestrian _ dynamics \uff09 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 \uff1a callback - \u6bcf\u5f53 \u8981 \u8ba1\u7b97 RSS \u60c5\u51b5 \u65f6\u8981 \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 reset _ routing _ targets ( self ) \u5220\u9664 \u5df2 \u9644\u52a0 \u5230 \u8def\u7531 \u7684 \u76ee\u6807 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_146","text":"set _ log _ level ( self , log _ level ) \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 \u53c2\u6570 \uff1a log _ level ( carla . RssLogLevel ) - \u65b0 \u7684 \u65e5\u5fd7 \u7ea7\u522b \u3002 set _ map _ log _ level ( self , log _ level ) \u8bbe\u7f6e \u65e5\u5fd7 \u65e5\u5fd7 \u7ea7\u522b \u3002 \u53c2\u6570 \uff1a log _ level ( carla . RssLogLevel ) - New map log level .","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_147","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlasemanticlidardetection","text":"carla . SemanticLidarMeasurement \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u4ee3\u8868 \u4e91\u4e2d \u7684 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u53ca\u5176 \u4f4d\u7f6e \u3001 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3001 \u547d\u4e2d \u7269\u4f53 \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u8bb0 \u3002","title":"carla . SemanticLidarDetection"},{"location":"python_api/#_148","text":"point ( carla . Location - \u7c73 ) \u70b9 \u7684 [ x \uff0c y \uff0c z ] \u5750\u6807 \u3002 cos _ inc _ angle ( float ) \u5149\u7ebf \u4e0e \u88ab \u51fb\u4e2d \u7269\u4f53 \u6cd5\u7ebf \u4e4b\u95f4 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3002 object _ idx ( uint ) \u88ab \u5149\u7ebf \u51fb\u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 object _ tag ( uint ) \u88ab \u5149\u7ebf \u51fb\u4e2d \u90e8\u4ef6 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_149","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_150","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlasemanticlidarmeasurement","text":"\u4ece carla . SensorData \u7ee7\u627f \u8be5\u7c7b \u5b9a\u4e49 \u7531 sensor . lidar . ray _ cast _ semantic \u68c0\u7d22 \u7684 \u8bed\u4e49 LIDAR \u6570\u636e \u3002 \u8fd9 \u5b9e\u8d28 \u4e0a \u662f \u4f7f\u7528 \u5149\u7ebf \u6295\u5c04 \u6765 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5728 \u6b64 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"carla . SemanticLidarMeasurement"},{"location":"python_api/#_151","text":"channels ( int ) \u6fc0\u5149 \u53d1\u5c04 \u6b21\u6570 \u3002 horizontal _ angle ( float - radians ) \u6c34\u5e73 \u89d2\u5ea6 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5728 \u6d4b\u91cf \u65f6 \u65cb\u8f6c \u3002 raw _ data ( bytes ) \u6536\u5230 \u539f\u59cb \u68c0\u6d4b \u6d4b\u70b9 \u68c0\u6d4b\u70b9 \u5217\u8868 \u3002 \u6bcf\u4e2a \u70b9 \u7531 [ x \uff0c y \uff0c z ] \u5750\u6807 \u52a0\u4e0a \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \uff0c \u547d\u4e2d \u89d2\u8272 \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u8bb0 \u7ec4\u6210 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_152","text":"save _ to _ disk ( self , path ) \u5c06 \u70b9\u4e91 \u4fdd\u5b58 \u4e3a \u63cf\u8ff0 \u4e09\u7ef4 \u626b\u63cf \u626b\u63cf\u4eea \u6570\u636e \u7684 . ply \u6587\u4ef6 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u751f\u6210 \u7684 \u6587\u4ef6 \u53ef\u4ee5 \u5728 MeshLab \u4e2d \u4f7f\u7528 \uff0c MeshLab \u662f \u4e00\u4e2a \u7528\u4e8e \u5904\u7406 \u4e0a\u8ff0 \u6587\u4ef6 \u7684 \u5f00\u6e90 \u7cfb\u7edf \u3002 \u53ea \u9700 \u8003\u8651 \u5230 \u8f74 \u53ef\u80fd \u4e0e \u4e0d \u771f\u5b9e \u7684 \u5f15\u64ce \u4e0d\u540c \uff0c \u56e0\u6b64 \u9700\u8981 \u91cd\u65b0 \u5206\u914d \u91cd\u65b0\u5206\u914d \u3002 \u53c2\u6570 \uff1a path ( str )","title":"\u65b9\u6cd5"},{"location":"python_api/#_153","text":"get _ point _ count ( self , channel ) \u83b7\u53d6 \u6b64 \u5ea6\u91cf \u751f\u6210 \u7684 \u6309 \u901a\u9053 \u6392\u5e8f \u7684 \u70b9\u6570 \u3002 \u901a\u8fc7 \u901a\u9053 \u6392\u5e8f \u53ef\u4ee5 \u8bc6\u522b \u6bcf\u4e2a \u70b9 \u7684 \u539f\u59cb \u901a\u9053 \u3002 \u53c2\u6570 \uff1a channel ( int )","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_154","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) Iterate over the carla . SemanticLidarDetection retrieved as data . __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . SemanticLidarDetection ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlasensor","text":"\u4ece carla . Actor \u7ee7\u627f Sensors compound a specific family of actors quite diverse and unique . They are normally spawned as attachment / sons of a vehicle ( take a look at carla . World to learn about actor spawning ) . Sensors are thoroughly designed to retrieve different types of data that they are listening to . The data they receive is shaped as different subclasses inherited from carla . SensorData ( depending on the sensor ) . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary . All the information on their preferences and settlement can be found here , but the list of those available in CARLA so far goes as follow . Receive data on every tick . - depth camera . - Gnss sensor . - IMU sensor . - Lidar raycast . - SemanticLidar raycast . - Radar . - RGB camera . - RSS sensor . - Semantic Segmentation camera . Only receive data when triggered . - Collision detector . - Lane invasion detector . - Obstacle detector .","title":"carla . Sensor"},{"location":"python_api/#_155","text":"is _ listening ( boolean ) When True the sensor will be waiting for data .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_156","text":"is _ listening ( self ) Returns whether the sensor is in a listening state . is _ listening _ gbuffer ( self , gbuffer _ id ) Returns whether the sensor is in a listening state for a specific GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . listen _ to _ gbuffer ( self , gbuffer _ id , callback ) The function the sensor will be calling to every time the desired GBuffer texture is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . callback ( function ) - The called function with one argument containing the received GBuffer texture . stop ( self ) Commands the sensor to stop listening for data . stop _ gbuffer ( self , gbuffer _ id ) Commands the sensor to stop listening for the specified GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the Unreal Engine GBuffer texture .","title":"\u65b9\u6cd5"},{"location":"python_api/#_157","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlasensordata","text":"Base class for all the objects containing data generated by a carla . Sensor . This objects should be the argument of the function said sensor is listening to , in order to work with them . Each of these sensors needs for a specific type of sensor data . Hereunder is a list of the sensors and their corresponding data . - Cameras ( RGB , depth and semantic segmentation ) : carla . Image . - Collision detector : carla . CollisionEvent . - GNSS sensor : carla . GnssMeasurement . - IMU sensor : carla . IMUMeasurement . - Lane invasion detector : carla . LaneInvasionEvent . - LIDAR sensor : carla . LidarMeasurement . - Obstacle detector : carla . ObstacleDetectionEvent . - Radar sensor : carla . RadarMeasurement . - RSS sensor : carla . RssResponse . - Semantic LIDAR sensor : carla . SemanticLidarMeasurement .","title":"carla . SensorData"},{"location":"python_api/#_158","text":"frame ( int ) Frame count when the data was generated . timestamp ( float - seconds ) Simulation - time when the data was generated . transform ( carla . Transform ) Sensor ' s transform when the data was generated .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlatexturecolor","text":"Class representing a texture object to be uploaded to the server . Pixel format is RGBA , uint8 per channel .","title":"carla . TextureColor"},{"location":"python_api/#_159","text":"width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_160","text":"__ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) \u8fd4\u56de : carla . Color set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . Color )","title":"\u65b9\u6cd5"},{"location":"python_api/#_161","text":"set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int )","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlatexturefloatcolor","text":"Class representing a texture object to be uploaded to the server . Pixel format is RGBA , float per channel .","title":"carla . TextureFloatColor"},{"location":"python_api/#_162","text":"width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_163","text":"__ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) \u8fd4\u56de : carla . FloatColor set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . FloatColor )","title":"\u65b9\u6cd5"},{"location":"python_api/#_164","text":"set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int )","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlatimestamp","text":"Class that contains time information for simulated data . This information is automatically retrieved as part of the carla . WorldSnapshot the client gets on every frame , but might also be used in many other situations such as a carla . Sensor retrieveing data .","title":"carla . Timestamp"},{"location":"python_api/#_165","text":"frame ( int ) The number of frames elapsed since the simulator was launched . elapsed _ seconds ( float - seconds ) Simulated seconds elapsed since the beginning of the current episode . delta _ seconds ( float - seconds ) Simulated seconds elapsed since the previous frame . platform _ timestamp ( float - seconds ) Time register of the frame at which this measurement was taken given by the OS in seconds .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_166","text":"__ init __ ( self , frame , elapsed _ seconds , delta _ seconds , platform _ timestamp ) Parameters : frame ( int ) elapsed _ seconds ( float - seconds ) delta _ seconds ( float - seconds ) platform _ timestamp ( float - seconds )","title":"\u65b9\u6cd5"},{"location":"python_api/#_167","text":"__ eq __ ( self , other = carla . Timestamp ) __ ne __ ( self , other = carla . Timestamp ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlatrafficlight","text":"\u4ece carla . TrafficSign \u7ee7\u627f A traffic light actor , considered a specific type of traffic sign . As traffic lights will mostly appear at junctions , they belong to a group which contains the different traffic lights in it . Inside the group , traffic lights are differenciated by their pole index . Within a group the state of traffic lights is changed in a cyclic pattern : one index is chosen and it spends a few seconds in green , yellow and eventually red . The rest of the traffic lights remain frozen in red this whole time , meaning that there is a gap in the last seconds of the cycle where all the traffic lights are red . However , the state of a traffic light can be changed manually .","title":"carla . TrafficLight"},{"location":"python_api/#_168","text":"state ( carla . TrafficLightState ) Current state of the traffic light .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_169","text":"freeze ( self , freeze ) Stops all the traffic lights in the scene at their current state . Parameters : freeze ( bool ) is _ frozen ( self ) The client returns True if a traffic light is frozen according to last tick . The method does not call the simulator . \u8fd4\u56de : bool reset _ group ( self ) Resets the state of the traffic lights of the group to the initial state at the start of the simulation . Note : This method calls the simulator .","title":"\u65b9\u6cd5"},{"location":"python_api/#_170","text":"get _ affected _ lane _ waypoints ( self ) Returns a list of waypoints indicating the positions and lanes where the traffic light is having an effect . \u8fd4\u56de : list ( carla . Waypoint ) get _ elapsed _ time ( self ) The client returns the time in seconds since current light state started according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds get _ green _ time ( self ) The client returns the time set for the traffic light to be green , according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds Setter : carla . TrafficLight . set _ green _ time get _ group _ traffic _ lights ( self ) Returns all traffic lights in the group this one belongs to . \u8fd4\u56de : list ( carla . TrafficLight ) Note : This method calls the simulator . get _ light _ boxes ( self ) Returns a list of the bounding boxes encapsulating each light box of the traffic light . \u8fd4\u56de : list ( carla . BoundingBox ) get _ opendrive _ id ( self ) Returns the OpenDRIVE id of this traffic light . \u8fd4\u56de : str get _ pole _ index ( self ) Returns the index of the pole that identifies it as part of the traffic light group of a junction . \u8fd4\u56de : int get _ red _ time ( self ) The client returns the time set for the traffic light to be red , according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds Setter : carla . TrafficLight . set _ red _ time get _ state ( self ) The client returns the state of the traffic light according to last tick . The method does not call the simulator . \u8fd4\u56de : carla . TrafficLightState Setter : carla . TrafficLight . set _ state get _ stop _ waypoints ( self ) Returns a list of waypoints indicating the stop position for the traffic light . These waypoints are computed from the trigger boxes of the traffic light that indicate where a vehicle should stop . \u8fd4\u56de : list ( carla . Waypoint ) get _ yellow _ time ( self ) The client returns the time set for the traffic light to be yellow , according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds Setter : carla . TrafficLight . set _ yellow _ time","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_171","text":"set _ green _ time ( self , green _ time ) Parameters : green _ time ( float - seconds ) - Sets a given time for the green light to be active . \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ green _ time set _ red _ time ( self , red _ time ) Sets a given time for the red state to be active . Parameters : red _ time ( float - seconds ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ red _ time set _ state ( self , state ) snippet \u2192 Sets a given state to a traffic light actor . Parameters : state ( carla . TrafficLightState ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ state set _ yellow _ time ( self , yellow _ time ) Sets a given time for the yellow light to be active . Parameters : yellow _ time ( float - seconds ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ yellow _ time","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_172","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlatrafficlightstate","text":"\u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u6240\u6709 \u53ef\u80fd \u72b6\u6001 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u5728 \u7279\u5b9a \u65f6\u95f4 \u6b65\u957f \u66f4\u6539 \u6216 \u624b\u52a8 \u66f4\u6539 \u3002 carla . TrafficLight . set _ state \u4e2d \u7684 \u7247\u6bb5 \u4f1a \u52a8\u6001 \u66f4\u6539 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002","title":"carla . TrafficLightState"},{"location":"python_api/#_173","text":"Red Yellow Green Off Unknown","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlatrafficmanager","text":"\u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u662f \u4e00\u4e2a \u7528 C++ \u6784\u5efa \u5728 CARLA API \u4e4b\u4e0a \u7684 \u6a21\u5757 \u3002 \u5b83 \u53ef\u4ee5 \u5904\u7406 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u7684 \u4efb\u4f55 \u8f66\u8f86 \u7ec4 \uff0c \u4ee5 \u73b0\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u586b\u5145 \u4eff\u771f \uff0c \u5e76 \u4e3a \u7528\u6237 \u63d0\u4f9b \u5b9a\u5236 \u67d0\u4e9b \u884c\u4e3a \u7684 \u673a\u4f1a \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u67b6\u6784 \u5206\u4e3a \u4e94\u4e2a \u4e0d\u540c \u7684 \u9762\u5411 \u76ee\u6807 \u7684 \u9636\u6bb5 \u548c \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4fe1\u606f \u5728 \u5176\u4e2d \u6d41\u52a8 \uff0c \u76f4\u5230 \u6700\u7ec8 \u5c06 carla . VehicleControl \u5e94\u7528 \u4e8e \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \u6ce8\u518c \u7684 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8f86 \u3002 \u8981 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u8bbf\u95ee \u6709\u5173 \u6b64 \u6a21\u5757 \u7684 \u6587\u6863 \u3002","title":"carla . TrafficManager"},{"location":"python_api/#_174","text":"auto _ lane _ change ( self , actor , enable ) \u6253\u5f00 \u6216 \u5173\u95ed \u8f66\u8f86 \u7684 \u8f66\u9053 \u53d8\u6362 \u884c\u4e3a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u8bbe\u7f6e \u88ab \u66f4\u6539 \u7684 \u8f66\u8f86 \u3002 enable ( bool ) - True \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5e76 \u542f\u7528 \u8f66\u9053 \u53d8\u66f4 \u3002 False \u5c06 \u7981\u7528 \u5b83\u4eec \u3002 collision _ detection ( self , reference _ actor , other _ actor , detect _ collision ) \u8c03\u6574 \u8f66\u8f86 \u4e0e \u53e6 \u4e00\u4e2a \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u4e3a\u4e86 \u5ffd\u7565 \u6240\u6709 \u5176\u4ed6 \u8f66\u8f86 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6216 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u8bf7 \u4f7f\u7528 \u540c \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e2d \u63cf\u8ff0 \u7684 \u7279\u5b9a ignore \u65b9\u6cd5 \u3002 \u53c2\u6570 : reference _ actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u78b0\u649e \u7684 \u8f66\u8f86 \u3002 other _ actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u4e0e \u4e4b \u53d1\u751f \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 reference _ actor \u3002 detect _ collision ( bool ) - True \u662f \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5e76 \u542f\u7528 \u78b0\u649e \u3002 False \u5c06 \u7981\u7528 \u5b83\u4eec \u3002 distance _ to _ leading _ vehicle ( self , actor , distance ) \u8bbe\u7f6e \u8f66\u8f86 \u5fc5\u987b \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4fdd\u6301 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u4f1a \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 \u5b83 \u662f\u4ece \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u524d \u5230 \u540e \u8ba1\u7b97 \u7684 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u6b63\u5728 \u66f4\u6539 \u6700\u5c0f \u8ddd\u79bb \u7684 \u8f66\u8f86 \u3002 distance ( float - \u7c73 ) - \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u4e4b\u95f4 \u7684 \u7c73 \u3002 force _ lane _ change ( self , actor , direction ) \u5f3a\u5236 \u8f66\u8f86 \u6539\u53d8 \u5230 \u5176 \u5de6\u4fa7 \u6216 \u53f3\u4fa7 \u7684 \u8f66\u9053 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \uff0c \u5982 \u4e2d \u6240\u793a direction \u3002 \u65e0\u8bba \u53d1\u751f \u4ec0\u4e48 \u60c5\u51b5 \uff0c \u8be5 \u65b9\u6cd5 \u90fd \u4f1a \u5e94\u7528 \u8f66\u9053 \u53d8\u6362 \uff0c \u800c \u5ffd\u7565 \u53ef\u80fd \u53d1\u751f \u7684 \u78b0\u649e \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u8f66\u8f86 \u88ab\u8feb \u6539\u53d8 \u8f66\u9053 \u3002 direction ( bool ) - \u76ee\u6807 \u8f66\u9053 \u3002 True \u662f \u53f3\u8fb9 \u7684 \uff0c False \u662f \u5de6\u8fb9 \u7684 \u3002 global _ lane _ offset ( self , offset ) \u8bbe\u7f6e \u8ddd \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u5168\u5c40 \u8f66\u9053 \u504f\u79fb \u4f4d\u79fb \u3002 \u6b63\u503c \u8868\u793a \u5411 \u53f3 \u504f\u79fb \uff0c \u8d1f\u503c \u8868\u793a \u5411 \u5de6 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0 \u3002 \u6570\u5b57 \u9ad8\u5230 \u8db3\u4ee5 \u5bfc\u81f4 \u8f66\u8f86 \u9a76\u8fc7 \u5176\u4ed6 \u8f66\u9053 \u53ef\u80fd \u4f1a \u635f\u574f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u53c2\u6570 : offset ( float ) - \u8f66\u9053 \u8ddd \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u504f\u79fb \u4f4d\u79fb \u3002 global _ percentage _ speed _ difference ( self , percentage ) \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u9884\u671f \u901f\u5ea6 \u4e0e\u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 \u5dee\u503c \u3002 \u901a\u8fc7 \u5c06 perc \u8bbe \u4e3a \u8d1f\u503c \u53ef\u4ee5 \u8d85\u51fa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 30 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u8d1f \u767e\u5206 \u767e\u5206\u6bd4 \u6765 \u8d85\u8fc7 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 \u53c2\u6570 : percentage ( float ) - \u9884\u671f \u901f\u5ea6 \u548c \u5f53\u524d \u9650\u5236 \u4e4b\u95f4 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u5dee\u5f02 \u3002 ignore _ lights _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u5ffd\u7565 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 perc ( float ) - 0 \u5230 100 \u4e4b\u95f4 \u3002 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 ignore _ signs _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 perc ( float ) - 0 \u5230 100 \u4e4b\u95f4 \u3002 \u505c\u8f66 \u6807\u5fd7 \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 ignore _ vehicles _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u4e00\u4e2a \u8f66\u8f86 \u5ffd\u7565 \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u78b0\u649e \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u5176\u4ed6 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u3002 perc ( float ) - Between 0 and 100 . 0 \u5230 100 \u4e4b\u95f4 \u3002 \u78b0\u649e \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 ignore _ walkers _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u5ffd\u7565 \u4e0e \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u78b0\u649e \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u573a\u666f \u4e2d \u884c\u4eba \u7684 \u8f66\u8f86 \u3002 perc ( float ) - Between 0 and 100 . 0 \u5230 100 \u4e4b\u95f4 \u3002 \u78b0\u649e \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 keep _ right _ rule _ percentage ( self , actor , perc ) \u5728 \u5b9a\u4f4d \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u9075\u5faa \u9760\u53f3 \u89c4\u5219 \u5e76 \u7559\u5728 \u53f3\u4fa7 \u8f66\u9053 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u6b63\u5728 \u6539\u53d8 \u884c\u4e3a \u7684 \u8f66\u8f86 \u3002 perc ( float ) - Between 0 and 100 . 0 \u5230 100 \u4e4b\u95f4 \u3002 \u8f66\u8f86 \u9075\u5faa \u9760\u53f3 \u89c4\u5219 \u7684 \u6b21\u6570 \u3002 random _ left _ lanechange _ percentage ( self , actor , percentage ) \u8c03\u6574 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \u6267\u884c \u5de6\u53d8 \u9053 \u7684 \u6982\u7387 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u53d8\u9053 \u53ef\u7528 \u53ef\u7528\u6027 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 percentage ( float ) - \u6362\u9053 \u6982\u7387 \uff0c \u4ee5 \u767e\u5206 \u767e\u5206\u6bd4 \u4e3a \u5355\u4f4d \uff08 0 \u5230 100 \u4e4b\u95f4 \uff09 \u3002 random _ right _ lanechange _ percentage ( self , actor , percentage ) \u8c03\u6574 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65 \u6267\u884c \u53f3\u53d8 \u9053 \u7684 \u6982\u7387 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u53d8\u9053 \u53ef\u7528 \u53ef\u7528\u6027 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 percentage ( float ) - \u6362\u9053 \u6982\u7387 \uff0c \u4ee5 \u767e\u5206 \u767e\u5206\u6bd4 \u4e3a \u5355\u4f4d \uff08 0 \u5230 100 \u4e4b\u95f4 \uff09 \u3002 shut _ down ( self ) \u5173\u95ed \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 update _ vehicle _ lights ( self , actor , do _ update ) \u8bbe\u7f6e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u662f\u5426 \u8d1f\u8d23 \u66f4\u65b0 \u8f66\u706f \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4e0d\u4f1a \u66f4\u6539 \u8f66\u8f86 \u7684 \u8f66\u706f \u72b6\u6001 \uff0c \u9664\u975e \u5176 auto _ update _ status \u8bbe \u4e3a True \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5176 \u706f\u5149 \u72b6\u6001 \u6b63\u5728 \u66f4\u6539 \u7684 \u8f66\u8f86 \u3002 do _ update ( bool ) - \u5982\u679c \u4e3a True \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u7ba1\u7406 \u6307\u5b9a \u8f66\u8f86 \u7684 \u8f66\u706f \u3002 vehicle _ lane _ offset ( self , actor , offset ) \u8bbe\u7f6e \u76f8\u5bf9 \u4e8e \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u8f66\u9053 \u504f\u79fb \u4f4d\u79fb \u3002 \u6b63\u503c \u8868\u793a \u5411 \u53f3 \u504f\u79fb \uff0c \u8d1f\u503c \u8868\u793a \u5411 \u5de6 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0 \u3002 \u6570\u5b57 \u9ad8\u5230 \u8db3\u4ee5 \u5bfc\u81f4 \u8f66\u8f86 \u9a76\u8fc7 \u5176\u4ed6 \u8f66\u9053 \u53ef\u80fd \u4f1a \u635f\u574f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u8f66\u9053 \u504f\u79fb \u884c\u4e3a \u6b63\u5728 \u66f4\u6539 \u7684 \u8f66\u8f86 \u3002 offset ( float ) - \u8f66\u9053 \u8ddd \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u504f\u79fb \u4f4d\u79fb \u3002 vehicle _ percentage _ speed _ difference ( self , actor , percentage ) \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u9884\u671f \u901f\u5ea6 \u4e0e\u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 \u5dee\u503c \u3002 \u901a\u8fc7 \u5c06 perc \u8bbe \u4e3a \u8d1f\u503c \u53ef\u4ee5 \u8d85\u51fa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 30 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u8d1f \u767e\u5206 \u767e\u5206\u6bd4 \u6765 \u8d85\u8fc7 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u901f\u5ea6 \u884c\u4e3a \u6b63\u5728 \u6539\u53d8 \u7684 \u8f66\u8f86 \u3002 percentage ( float ) - \u9884\u671f \u901f\u5ea6 \u548c \u5f53\u524d \u9650\u5236 \u4e4b\u95f4 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u5dee\u5f02 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_175","text":"get _ all _ actions ( self , actor ) \u8fd4\u56de \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5728 \u540e\u7eed \u6b65\u9aa4 \u4e2d \u6267\u884c \u7684 \u6240\u6709 \u5df2\u77e5 \u64cd\u4f5c \uff08 \u5373 \u9053\u8def \u9009\u9879 \u548c \u8def\u5f84 \u70b9 \uff09 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de : \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5217\u8868 \u5217\u8868 \u5982\u4e0b - [ \u9053\u8def \u9009\u9879 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 \u201c \u5de6 \u201d \u3001 \u201c \u53f3 \u201d \u3001 \u201c \u76f4 \u201d \uff09 \u3001 \u4e0b \u4e00\u4e2a \u822a\u70b9 ( carla . Waypoint ) ] get _ next _ action ( self , actor ) \u8fd4\u56de \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u9075\u5faa \u7684 \u4e0b \u4e00\u4e2a \u5df2\u77e5 \u9053\u8def \u9009\u9879 \u548c \u8def\u5f84 \u70b9 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de : \u4e24\u4e2a \u5143\u7d20 \u7684 \u5217\u8868 - [ \u9053\u8def \u9009\u9879 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 \u201c \u5de6 \u201d \u3001 \u201c \u53f3 \u201d \u3001 \u201c \u76f4 \u201d \uff09 \u3001 \u4e0b \u4e00\u4e2a \u822a\u70b9 ( carla . Waypoint ) ] get _ port ( self ) \u8fd4\u56de \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8fde\u63a5 \u7684 \u7aef\u53e3 \u3002 \u5982\u679c \u8be5 \u5bf9\u8c61 \u662f TM - Client \uff0c \u5b83 \u5c06 \u8fd4\u56de \u5176 TM - Server \u7684 \u7aef\u53e3 \u3002 \u9605\u8bfb \u6587\u6863 \u4ee5 \u4e86\u89e3 \u5176\u4e2d \u7684 \u5dee\u5f02 \u3002 \u8fd4\u56de : uint16","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_176","text":"set _ boundaries _ respawn _ dormant _ vehicles ( self , lower _ bound = 25.0 , upper _ bound = actor _ active _ distance ) \u8bbe\u7f6e \u8981 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u9644\u8fd1 \u91cd\u751f \u7684 \u4f11\u7720 \u89d2\u8272 \u7684 \u4e0a\u9650 \u548c \u4e0b\u9650 \u3002 \u53c2\u6570 : lower _ bound ( float ) - \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \u65f6\u8ddd \u82f1\u96c4 \u8f66\u8f86 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 upper _ bound ( float ) - \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \u65f6\u8ddd \u82f1\u96c4 \u8f66\u8f86 \u7684 \u6700\u5927 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8b66\u544a : upper _ bound \u4e0d\u80fd \u9ad8\u4e8e actor _ active _ distance \u3002 lower _ bound \u4e0d\u80fd \u5c0f\u4e8e 25 \u3002 set _ desired _ speed ( self , actor , speed ) \u5c06 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u8bbe\u7f6e \u4e3a \u6307\u5b9a \u503c \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u901f\u5ea6 \u6b63\u5728 \u6539\u53d8 \u7684 \u8f66\u8f86 \u3002 speed ( float ) - \u8f66\u8f86 \u79fb\u52a8 \u6240 \u9700 \u7684 \u901f\u5ea6 \u3002 set _ global _ distance _ to _ leading _ vehicle ( self , distance ) \u8bbe\u7f6e \u8f66\u8f86 \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u5fc5\u987b \u4fdd\u6301 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u4f1a \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 \u5b83 \u662f\u4ece \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u4e2d\u5fc3 \u5230 \u4e2d\u5fc3 \u8ba1\u7b97 \u7684 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u7c73\u6570 \u3002 set _ hybrid _ physics _ mode ( self , enabled = False ) \u542f\u7528 \u6216 \u7981\u7528 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u3002 \u5728 \u6b64 \u6a21\u5f0f \u4e0b \uff0c \u8ddd\u79bb \u81ea\u8eab \u8f66\u8f86 \u8d85\u8fc7 \u4e00\u5b9a \u534a\u5f84 \u7684 \u8f66\u8f86 \u5c06 \u7981\u7528 \u5176 \u7269\u7406 \u529f\u80fd \u3002 \u901a\u8fc7 \u4e0d \u8ba1\u7b97 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5c06 \u964d\u4f4e \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u3002 \u8f66\u8f86 \u5c06 \u88ab \u4f20\u9001 \u3002 \u53c2\u6570 : enabled ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u6df7\u5408 \u7269\u7406 \u3002 set _ hybrid _ physics _ radius ( self , r = 50.0 ) \u542f\u7528 \u6df7\u5408 \u7269\u7406 \u529f\u80fd \u540e \uff0c \u66f4\u6539 \u542f\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u5f71\u54cd \u533a\u57df \u7684 \u534a\u5f84 \u3002 \u53c2\u6570 : r ( float - \u7c73 ) - \u542f\u7528 \u7269\u7406 \u7684 \u65b0 \u534a\u5f84 \u3002 set _ osm _ mode ( self , mode _ switch = True ) \u542f\u7528 \u6216 \u7981\u7528 OSM \u6a21\u5f0f \u3002 \u8be5 \u6a21\u5f0f \u5141\u8bb8 \u7528\u6237 \u5728 \u4f7f\u7528 OSM \u529f\u80fd \u521b\u5efa \u7684 \u5730\u56fe \u4e2d \u8fd0\u884c TM \u3002 \u8fd9\u4e9b \u5730\u56fe \u5141\u8bb8 \u6709 \u80e1\u540c \u6b7b\u80e1\u540c \u3002 \u901a\u5e38 \uff0c \u5982\u679c \u8f66\u8f86 \u65e0\u6cd5 \u627e\u5230 \u4e0b \u4e00\u4e2a \u822a\u8def \u70b9 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c31 \u4f1a \u5d29\u6e83 \u3002 \u5982\u679c \u542f\u7528 OSM \u6a21\u5f0f \uff0c \u5b83 \u5c06 \u663e\u793a \u8b66\u544a \uff0c \u5e76 \u5728 \u5fc5\u8981 \u65f6 \u6467\u6bc1 \u8f66\u8f86 \u3002 \u53c2\u6570 : mode _ switch ( bool ) - \u5982\u679c True \uff0c \u5219 \u542f\u7528 OSM \u6a21\u5f0f \u3002 set _ path ( self , actor , path ) \u8bbe\u7f6e \u8f66\u8f86 \u5728 \u53d7 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u63a7\u5236 \u65f6\u8981 \u9075\u5faa \u7684 \u4f4d\u7f6e \u5217\u8868 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5fc5\u987b \u9075\u5faa \u7ed9\u5b9a \u8def\u5f84 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 path ( list ) - carla . Locations \u7684 \u5217\u8868 \uff0c \u4f9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8ddf\u968f \u3002 \u8b66\u544a : \u786e\u4fdd \u9053\u8def \u62d3\u6251 \u4e0d\u4f1a \u59a8\u788d \u7ed9\u5b9a \u8def\u5f84 \u3002 set _ random _ device _ seed ( self , value ) \u4e3a \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u968f\u673a \u79cd\u5b50 \uff0c \u4ece\u800c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \u3002 \u53c2\u6570 : value ( int ) - \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u7684 \u79cd\u5b50 \u503c \u3002 set _ respawn _ dormant _ vehicles ( self , mode _ switch = False ) \u5982\u679c \u4e3a True \uff0c \u5927 \u5730\u56fe \u4e2d \u7684 \u8f66\u8f86 \u5728 \u4f11\u7720 \u65f6\u4f1a \u5728 \u82f1\u96c4 \u8f66\u8f86 \u9644\u8fd1 \u91cd\u751f \u3002 \u5426\u5219 \uff0c \u5b83\u4eec \u5c06 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u76f4\u5230 actor _ active _ distance \u518d\u6b21 \u8fdb\u5165 \u82f1\u96c4 \u8f66\u8f86 \u3002 \u53c2\u6570 : mode _ switch ( bool ) set _ route ( self , actor , path ) \u8bbe\u7f6e \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u8f66\u8f86 \u8981 \u9075\u5faa \u7684 \u8def\u7ebf \u6307\u4ee4 \u5217\u8868 \u3002 \u53ef\u80fd \u7684 \u8def\u7ebf \u6307\u4ee4 \u662f ' Left ' , ' Right ' , ' Straight ' \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5fc5\u987b \u9075\u5faa \u7ed9\u5b9a \u8def\u7ebf \u6307\u793a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 path ( list ) - \u8f66\u8f86 \u8981 \u9075\u5faa \u7684 \u8def\u7ebf \u6307\u4ee4 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff09 \u5217\u8868 \u3002 \u8b66\u544a : \u786e\u4fdd \u8f66\u9053 \u62d3\u6251 \u4e0d\u4f1a \u59a8\u788d \u7ed9\u5b9a \u8def\u7ebf \u3002 set _ synchronous _ mode ( self , mode _ switch = True ) \u5c06 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 TM - Server \u53ef\u4ee5 \u8fd0\u884c \u3002 \u7c7b\u4f3c \u5730 \uff0c \u5728 \u591a TM \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 \u4e00\u4e2a TM - Server \u5fc5\u987b \u52fe\u9009 \u3002 \u5728 \u8fdb\u884c \u4e16\u754c \u52fe\u9009 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \uff0c \u5e76 \u5728 \u5c06 \u4e16\u754c \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u540e \u7acb\u5373 \u8bbe\u7f6e \u540c\u6b65 \u65f6 \u54ea\u4e2a TM \u5c06 \u6210\u4e3a \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53c2\u6570 : mode _ switch ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u540c\u6b65 \u6a21\u5f0f \u3002 \u8b66\u544a : \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u6267\u884c \u6807\u8bb0 \u7684 \u540c\u4e00 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u7684 TM \u4e5f \u5fc5\u987b \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlatrafficsign","text":"\u4ece carla . Actor \u7ee7\u627f \u4eff\u771f \u4e2d \u51fa\u73b0 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff08 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u9664\u5916 \uff09 \u3002 \u8fd9\u4e9b \u5728 carla . TrafficLight \u4e2d\u6709 \u81ea\u5df1 \u7684 \u7c7b \u4ece \u8be5\u7c7b \u7ee7\u627f \u3002 \u76ee\u524d \uff0c \u4e3b\u8981 \u5b9e\u65bd \u7684 \u662f \u901f\u5ea6 \u6807\u5fd7 \u3001 \u505c\u9760 \u505c\u9760\u7ad9 \u548c \u8ba9 \u884c \u6807\u5fd7 \uff0c \u4f46 \u8fd8\u6709 \u8bb8\u591a \u5176\u4ed6 \u6807\u5fd7 \u4e5f \u88ab \u7262\u8bb0 \u7262\u8bb0\u5728\u5fc3 \u3002","title":"carla . TrafficSign"},{"location":"python_api/#_177","text":"trigger _ volume \u4f4d\u4e8e \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u9644\u8fd1 \u7684 carla . BoundingBox \uff0c \u91cc\u9762 \u7684 carla . Actor \u53ef\u4ee5 \u77e5\u9053 \u5b83 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlatransform","text":"\u8be5\u7c7b \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u53d8\u6362 \uff0c \u5373 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u7684 \u7ec4\u5408 \uff0c \u800c \u4e0d \u8fdb\u884c \u7f29\u653e \u3002","title":"carla . Transform"},{"location":"python_api/#_178","text":"location ( carla . Location ) \u63cf\u8ff0 \u5750\u6807 \u7cfb\u7edf \u4e2d \u7684 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 rotation ( carla . Rotation - degrees ( pitch , yaw , roll ) ) \u63cf\u8ff0 \u6839\u636e \u865a\u5e7b \u5f15\u64ce \u7684 \u8f74 \u7cfb\u7edf \u8fdb\u884c \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_179","text":"__ init __ ( self , location , rotation ) \u53c2\u6570 : location ( carla . Location ) rotation ( carla . Rotation - \u5ea6\u6570 \uff08 \u4fef\u4ef0 \u3001 \u504f\u822a \u3001 \u7ffb\u6eda \uff09 ) transform ( self , in _ point ) \u4f7f\u7528 \u5f53\u524d \u53d8\u6362 \u4f5c\u4e3a \u53c2\u8003 \u53c2\u8003\u7cfb \u5c06 \u4e09\u7ef4 \u70b9 \u4ece \u5c40\u90e8 \u5750\u6807 \u8f6c\u6362 \u4e3a \u5168\u5c40 \u5750\u6807 \u3002 \u53c2\u6570 : in _ point ( carla . Location ) - \u5c06 \u5e94\u7528 \u53d8\u6362 \u7684 \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 transform _ vector ( self , in _ vector ) \u4f7f\u7528 \u5f53\u524d \u53d8\u6362 \u4f5c\u4e3a \u53c2\u8003 \u53c2\u8003\u7cfb \u6765 \u65cb\u8f6c \u5411\u91cf \uff0c \u800c \u4e0d \u5e94\u7528 \u5e73\u79fb \u3002 \u4f8b\u5982 \uff0c \u7528 \u5b83 \u6765 \u53d8\u6362 \u901f\u5ea6 \u3002 \u53c2\u6570 : in _ vector ( carla . Vector3D ) - \u5c06 \u5e94\u7528 \u8f6c\u6362 \u7684 \u5411\u91cf \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_180","text":"get _ forward _ vector ( self ) \u4f7f\u7528 \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u524d\u5411 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D get _ inverse _ matrix ( self ) \u8ba1\u7b97 \u9006\u53d8 \u53d8\u6362 \u9006\u53d8\u6362 \u7684 4 \u77e9\u9635 \u8868\u793a \u3002 \u8fd4\u56de : list ( list ( float ) ) get _ matrix ( self ) \u8ba1\u7b97 \u53d8\u6362 \u7684 4 \u77e9\u9635 \u8868\u793a \u3002 \u8fd4\u56de : list ( list ( float ) ) get _ right _ vector ( self ) \u4f7f\u7528 \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u53f3 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D get _ up _ vector ( self ) \u4f7f\u7528 \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u5411\u4e0a \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_181","text":"__ eq __ ( self , other = carla . Transform ) \u5982\u679c this \u548c other \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u90fd \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ ne __ ( self , other = carla . Transform ) \u5982\u679c this \u548c other \u7684 \u4efb\u4f55 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u4e0d \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u5c06 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de : str","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlavector2d","text":"\u6267\u884c \u4e8c\u7ef4 \u64cd\u4f5c \u7684 \u8f85\u52a9 \u7c7b \u3002","title":"carla . Vector2D"},{"location":"python_api/#_182","text":"x ( float ) X - axis value . y ( float ) Y - axis value .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_183","text":"__ init __ ( self , x = 0.0 , y = 0.0 ) \u53c2\u6570 : x ( float ) y ( float ) length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de : float make _ unit _ vector ( self ) \u8fd4\u56de \u5177\u6709 \u76f8\u540c \u65b9\u5411 \u548c \u5355\u4f4d \u957f\u5ea6 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D squared _ length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u5e73\u65b9 \u957f\u5ea6 \u3002 \u8fd4\u56de : float","title":"\u65b9\u6cd5"},{"location":"python_api/#_184","text":"__ add __ ( self , other = carla . Vector2D ) __ eq __ ( self , other = carla . Vector2D ) \u5982\u679c \u6bcf\u4e2a \u8f74 \u7684 \u503c \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ mul __ ( self , other = carla . Vector2D ) __ ne __ ( self , bool = carla . Vector2D ) \u5982\u679c \u4efb\u4f55 \u8f74 \u7684 \u503c \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u8fd4\u56de \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 \u5411\u91cf \u7684 \u8f74\u503c \u3002 \u8fd4\u56de : str __ sub __ ( self , other = carla . Vector2D ) __ truediv __ ( self , other = carla . Vector2D )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlavector3d","text":"\u6267\u884c \u4e09\u7ef4 \u64cd\u4f5c \u7684 \u8f85\u52a9 \u7c7b \u3002","title":"carla . Vector3D"},{"location":"python_api/#_185","text":"x ( float ) X - axis value . y ( float ) Y - axis value . z ( float ) Z - axis value .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_186","text":"__ init __ ( self , x = 0.0 , y = 0.0 , z = 0.0 ) \u53c2\u6570 : x ( float ) y ( float ) z ( float ) cross ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u53c9\u79ef \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : carla . Vector3D distance ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float distance _ 2d ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u4e8c\u7ef4 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float distance _ squared ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u5e73\u65b9 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float distance _ squared _ 2d ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u4e8c\u7ef4 \u5e73\u65b9 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float dot ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u70b9\u79ef \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float dot _ 2d ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u4e8c\u7ef4 \u70b9\u79ef \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de : float make _ unit _ vector ( self ) \u8fd4\u56de \u5177\u6709 \u76f8\u540c \u65b9\u5411 \u548c \u5355\u4f4d \u957f\u5ea6 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D squared _ length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u5e73\u65b9 \u957f\u5ea6 \u3002 \u8fd4\u56de : float","title":"\u65b9\u6cd5"},{"location":"python_api/#_187","text":"get _ vector _ angle ( self , vector ) \u8ba1\u7b97 \u4e00\u5bf9 \u4e09\u7ef4 \u5411\u91cf \u4e4b\u95f4 \u7684 \u89d2\u5ea6 \uff08 \u4ee5 \u5f27\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_188","text":"__ abs __ ( self ) \u8fd4\u56de \u5177\u6709 x \u3001 y \u548c z \u5206\u91cf \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 Vector3D \u3002 \u8fd4\u56de : carla . Vector3D __ add __ ( self , other = carla . Vector3D ) __ eq __ ( self , other = carla . Vector3D ) \u5982\u679c \u6bcf\u4e2a \u8f74 \u7684 \u503c \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ mul __ ( self , other = carla . Vector3D ) __ ne __ ( self , other = carla . Vector3D ) \u5982\u679c \u4efb\u4f55 \u8f74 \u7684 \u503c \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u8fd4\u56de \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 \u5411\u91cf \u7684 \u8f74\u503c \u3002 \u8fd4\u56de : str __ sub __ ( self , other = carla . Vector3D ) __ truediv __ ( self , other = carla . Vector3D )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlavehicle","text":"\u4ece carla . Actor \u7ee7\u627f CARLA \u4e2d \u6700 \u91cd\u8981 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7fa4\u4f53 \u4e4b\u4e00 \u3002 \u5176\u4e2d \u5305\u62ec \u4ece \u6c7d\u8f66 \u5230 \u5361\u8f66 \u3001 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3001 \u8d27\u8f66 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u4ee5\u53ca \u8b66\u8f66 \u7b49 \u5b98\u65b9 \u8f66\u8f86 \u3002 carla . BlueprintLibrary \u4e2d \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5e7f\u6cdb \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5 \u6ee1\u8db3 \u4e0d\u540c \u7684 \u9700\u6c42 \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u624b\u52a8 \u63a7\u5236 \uff0c \u4e5f \u53ef\u4ee5 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \uff0c \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fdb\u884c \u63a7\u5236 \u3002","title":"carla . Vehicle"},{"location":"python_api/#_189","text":"bounding _ box ( carla . BoundingBox ) \u5305\u542b \u8f66\u8f86 \u51e0\u4f55 \u5f62\u72b6 \u7684 \u8fb9\u754c \u6846 \u3002 \u5b83 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u662f \u76f8\u5bf9 \u4e8e \u5b83 \u6240 \u9644\u7740 \u7684 \u8f66\u8f86 \u800c\u8a00 \u7684 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_190","text":"apply _ ackermann _ control ( self , control ) \u5728 \u4e0b \u4e00\u4e2a \u523b\u5ea6 \u5904 \u5e94\u7528 \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u5bf9\u8c61 \u3002 \u53c2\u6570 : control ( carla . VehicleAckermannControl ) apply _ ackermann _ controller _ settings ( self , settings ) \u5728 \u4e0b \u4e00\u4e2a tick \u4e2d\u5c06 \u65b0 \u7684 \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u8bbe\u7f6e \u5e94\u7528 \u4e8e \u6b64 \u8f66\u8f86 \u3002 \u53c2\u6570 : settings ( carla . AckermannControllerSettings ) \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 apply _ control ( self , control ) \u5728 \u4e0b \u4e00\u4e2a tick \u4e0a \u5e94\u7528 \u63a7\u5236 \u5bf9\u8c61 \uff0c \u5176\u4e2d \u5305\u542b \u6cb9\u95e8 \u3001 \u8f6c\u5411 \u6216 \u6362\u6863 \u7b49 \u9a7e\u9a76 \u53c2\u6570 \u3002 \u53c2\u6570 : control ( carla . VehicleControl ) apply _ physics _ control ( self , physics _ control ) \u5728 \u4e0b \u4e00\u4e2a tick \u4e2d \u5e94\u7528 \u7269\u7406 \u63a7\u5236 \u5bf9\u8c61 \uff0c \u5176\u4e2d \u5305\u542b \u5c06 \u8f66\u8f86 \u5b9a\u4e49 \u4e3a \u5b9e\u4f53 \u7684 \u53c2\u6570 \u3002 \u4f8b\u5982 \uff1a \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3001 \u8d28\u91cf \u3001 \u963b\u529b \u7cfb\u6570 \u7b49\u7b49 \u3002 \u53c2\u6570 : physics _ control ( carla . VehiclePhysicsControl ) close _ door ( self , door _ idx ) \u5982\u679c \u8f66\u8f86 \u6709 \u5b83 \uff0c \u5219 \u5173\u95ed \u8f66\u95e8 door _ idx \u3002 \u4f7f\u7528 carla . VehicleDoor . All \u5173\u95ed \u6240\u6709 \u53ef\u7528 \u7684 \u95e8 \u3002 \u53c2\u6570 : door _ idx ( carla . VehicleDoor ) - \u95e8 \u7d22\u5f15 \u3002 enable _ carsim ( self , simfile _ path ) \u4e3a \u8be5 \u7279\u5b9a \u8f66\u8f86 \u542f\u7528 CarSim \u7269 \u7406\u89e3 \u7b97\u5668 \u3002 \u4e3a\u4e86 \u4f7f\u6b64 \u529f\u80fd \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \uff0c \u9700\u8981 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u8fd0\u884c \u6709\u6548 \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u3002 \u63a7\u5236 \u8f93\u5165 \u88ab \u5b9a\u5411 \u91cd\u5b9a\u5411 \u5230 CarSim \uff0c \u5b83 \u5c06 \u63d0\u4f9b \u6bcf \u4e00\u5e27 \u7684 \u8f66\u8f86 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u53c2\u6570 : simfile _ path ( str ) - \u5305\u542b \u4eff\u771f \u53c2\u6570 \u7684 . simfile \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 enable _ chrono _ physics ( self , max _ substeps , max _ substep _ delta _ time , vehicle _ json , powertrain _ json , tire _ json , base _ json _ path ) \u5728 \u751f\u6210 \u7684 \u8f66\u8f86 \u4e0a \u542f\u7528 Chrono \u7269\u7406 \u3002 \u53c2\u6570 : max _ substeps ( int ) - Chrono \u5b50 \u6b65\u9aa4 \u7684 \u6700\u5927 \u6570\u91cf \u3002 max _ substep _ delta _ time ( int ) - \u5b50\u6b65 \u7684 \u6700\u5927 \u5927\u5c0f \u3002 vehicle _ json ( str ) - \u76f8\u5bf9 \u4e8e base _ json _ path \u7684 \u8f66\u8f86 json \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 powertrain _ json ( str ) - \u76f8\u5bf9 \u4e8e base _ json _ path \u7684 \u52a8\u529b \u603b\u6210 json \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 tire _ json ( str ) - \u76f8\u5bf9 \u4e8e base _ json _ path \u7684 \u8f6e\u80ce json \u6587\u4ef6 \u3002 base _ json _ path ( str ) - \u6307\u5411 chrono / data / vehicle \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u8def\u5f84 \u3002 \u4f8b\u5982 \uff0c / home / user / carla / Build / chrono - install / share / chrono / data / vehicle / ( \u6700\u540e \u4e00\u4e2a \u5b57\u7b26 \u9700\u8981 \u662f / ) \u3002 \u6ce8\u610f : \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u4f7f\u7528 \u8be5 \u6807\u5fd7 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 ARGS = \" -- chrono \" \u3002 \u5982\u679c \u6ca1\u6709 \u8bbe\u7f6e \u6b64 \u6807\u5fd7 \uff0c \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 Chrono \u7269\u7406 \u3002 \u8b66\u544a : \u4e0d \u652f\u6301 \u78b0\u649e \u3002 \u5f53 \u68c0\u6d4b \u5230 \u78b0\u649e \u65f6 \uff0c \u7269\u7406 \u7cfb\u7edf \u5c06 \u6062\u590d \u4e3a \u9ed8\u8ba4 \u7684 Carla \u7269\u7406 \u7cfb\u7edf \u3002 is _ at _ traffic _ light ( self ) \u5f53 \u4ea4\u901a \u4ea4\u901a\u706f \u4e3a \u7ea2\u8272 \u5e76\u4e14 \u8f66\u8f86 \u4f4d\u4e8e \u5176 \u8fb9\u754c \u6846\u5185 \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u53d7\u5230 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u523b\u5ea6 \u8fd4\u56de \u4ea4\u901a \u4ea4\u901a\u706f \u662f\u5426 \u5f71\u54cd \u8be5 \u8f66\u8f86 \uff08 \u5b83 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff09 \u3002 \u8fd4\u56de : bool open _ door ( self , door _ idx ) \u5982\u679c \u8f66\u8f86 \u6709 \u8f66\u95e8 \uff0c \u5219 \u6253\u5f00 \u8f66\u95e8 door _ idx \u3002 \u4f7f\u7528 carla . VehicleDoor . All \u6253\u5f00 \u6240\u6709 \u53ef\u7528 \u7684 \u95e8 \u3002 \u53c2\u6570 : door _ idx ( carla . VehicleDoor ) - \u95e8 \u7d22\u5f15 \u3002 show _ debug _ telemetry ( self , enabled = True ) \u542f\u7528 \u6216 \u7981\u7528 \u6b64 \u8f66\u8f86 \u4e0a \u7684 \u9065\u6d4b \u3002 \u8fd9\u4f1a \u5728 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7a97\u53e3 \u4e2d \u663e\u793a \u6709\u5173 \u8f66\u8f86 \u5f53\u524d \u72b6\u6001 \u548c \u65bd\u52a0 \u5230 \u5176 \u4e0a \u7684 \u529b \u7684 \u4fe1\u606f \u3002 \u53ea\u80fd \u663e\u793a \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u7684 \u4fe1\u606f \uff0c \u56e0\u6b64 \uff0c \u5982\u679c \u542f\u7528 \u7b2c\u4e8c \u4e8c\u8f86 \u7b2c\u4e8c\u8f86 \u8f66 \uff0c \u524d \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5c06 \u81ea\u52a8 \u7981\u7528 \u3002 \u53c2\u6570 : enabled ( bool ) use _ carsim _ road ( self , enabled ) \u542f\u7528 \u6216 \u7981\u7528 CarSim \u4e0e \u5730\u5f62 \u6587\u4ef6 . simfile \u4e2d \u6307\u5b9a \u7684 \u4f7f\u7528 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64 \u9009\u9879 \u5904\u4e8e \u7981\u7528 \u72b6\u6001 \uff0c CarSim \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u65b9\u6cd5 \u6765 \u5904\u7406 \u573a\u666f \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u3002 \u53c2\u6570 : enabled ( bool )","title":"\u65b9\u6cd5"},{"location":"python_api/#_191","text":"get _ ackermann _ controller _ settings ( self ) \u8fd4\u56de \u5e94\u7528 \u4e8e \u8be5 \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u8bbe\u7f6e \u3002 \u8fd4\u56de : carla . AckermannControllerSettings \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6765 \u68c0\u7d22 \u503c \u3002 get _ control ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd4\u56de \u6700\u540e \u4e00\u4e2a tick \u4e2d \u5e94\u7528 \u7684 \u63a7\u5236 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . VehicleControl get _ failure _ state ( self ) \u8f66\u8f86 \u6709 \u6545\u969c \u72b6\u6001 \uff0c \u8868\u660e \u5b83 \u65e0\u6cd5 \u7ee7\u7eed \u5176 \u8def\u7ebf \u3002 \u8be5 \u51fd\u6570 \u8fd4\u56de \u8f66\u8f86 \u7684 \u5177\u4f53 \u6545\u969c \u72b6\u6001 \uff0c \u6216\u8005 \u6362\u53e5 \u6362\u53e5\u8bdd \u6362\u53e5\u8bdd\u8bf4 \uff0c \u8fd4\u56de \u5bfc\u81f4 \u6545\u969c \u7684 \u539f\u56e0 \u3002 \u8fd4\u56de : carla . VehicleFailureState get _ light _ state ( self ) \u8fd4\u56de \u8868\u793a \u8f66\u8f86 \u706f \u72b6\u6001 \u7684 \u6807\u5fd7 \uff0c \u8fd9 \u8868\u793a \u54ea\u4e9b \u706f \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u6216 \u4e0d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u3002 \u8fd4\u56de : carla . VehicleLightState Setter : carla . Vehicle . set _ light _ state get _ physics _ control ( self ) \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd4\u56de \u5e94\u7528 \u4e8e \u8be5 \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u7269\u7406 \u63a7\u5236 \u3002 \u8fd4\u56de : carla . VehiclePhysicsControl \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u6765 \u68c0\u7d22 \u503c \u3002 get _ speed _ limit ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a tick \u8fd4\u56de \u5f71\u54cd \u8be5 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \uff08 \u5b83 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \uff09 \u3002 \u5f53 \u7ecf\u8fc7 \u9650\u901f \u4fe1\u53f7 \u65f6 \uff0c \u9650\u901f \u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u8f66\u8f86 \u5728 \u751f\u6210 \u540e \u53ef\u80fd \u5c31 \u6ca1\u6709 \u9650\u901f \u4fe1\u53f7 \u3002 \u8fd4\u56de : float - km / h get _ traffic _ light ( self ) \u6839\u636e \u6700\u540e \u4e00\u4e2a \u523b\u5ea6 \u68c0\u7d22 \u5f71\u54cd \u6b64 \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u5982\u679c \u6709 \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . TrafficLight get _ traffic _ light _ state ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u4e0a \u4e00\u4e2a tick \u8fd4\u56de \u5f71\u54cd \u8be5 \u8f66\u8f86 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5982\u679c \u5f53\u524d \u6ca1\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u8f66\u8f86 \uff0c \u5219 \u8fd4\u56de green \u3002 \u8fd4\u56de : carla . TrafficLightState get _ wheel _ steer _ angle ( self , wheel _ location ) \u8fd4\u56de \u8f66\u8f86 \u8f66\u8f6e \u7684 \u7269\u7406 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 \u53c2\u6570 : wheel _ location ( carla . VehicleWheelLocation ) \u8fd4\u56de : float Note : \u8fd4\u56de \u57fa\u4e8e \u8f66\u8f6e \u7269\u7406 \u539f\u7406 \u7684 \u89d2\u5ea6 \uff0c \u800c \u4e0d\u662f \u89c6\u89d2 \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_192","text":"set _ autopilot ( self , enabled = True , port = 8000 ) \u5728 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u7684 \u5217\u8868 \u4e2d \u6ce8\u518c \u6216 \u5220\u9664 \u8f66\u8f86 \u3002 \u5f53 True \u65f6 \uff0c \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5c06 \u79fb\u52a8 \u8f66\u8f86 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u53d1\u751f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u53c2\u6570 : enabled ( bool ) port ( uint16 ) - \u8f66\u8f86 \u8981 \u5728 \u5176\u4e2d \u6ce8\u518c \u6216 \u4e0d \u5217\u51fa \u7684 TM - Server \u7aef\u53e3 \u3002 \u5982\u679c \u4f20\u9012 None \uff0c \u5b83 \u5c06 \u8003\u8651 \u9ed8\u8ba4 8000 \u7aef\u53e3 \u4e0a \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 set _ light _ state ( self , light _ state ) \u4f7f\u7528 \u8868\u793a \u706f\u5149 \u6253\u5f00 \u548c \u5173\u95ed \u7684 \u6807\u5fd7 \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u53c2\u6570 : light _ state ( carla . VehicleLightState ) \u83b7\u53d6 \u5668 : carla . Vehicle . get _ light _ state set _ wheel _ steer _ direction ( self , wheel _ location , angle _ in _ deg ) snippet \u2192 \u76f4\u89c2 \u5730 \u8bbe\u7f6e \u8f66\u8f6e \u7684 \u89d2\u5ea6 \u3002 \u53c2\u6570 : wheel _ location ( carla . VehicleWheelLocation ) angle _ in _ deg ( float ) \u8b66\u544a : \u4e0d \u5f71\u54cd \u8f66\u8f86 \u7684 \u7269\u7406 \u7279\u6027 \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_193","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlavehicleackermanncontrol","text":"\u4f7f\u7528 \u963f\u514b \u963f\u514b\u66fc \u9a7e\u9a76 \u63a7\u5236 \u88c5\u7f6e \u7ba1\u7406 \u8f66\u8f86 \u7684 \u57fa\u672c \u8fd0\u52a8 \u3002","title":"carla . VehicleAckermannControl"},{"location":"python_api/#_194","text":"steer ( float ) \u6240 \u9700 \u8f6c\u5411 ( rad ) \u3002 \u6b63\u503c \u4f4d\u4e8e \u53f3\u4fa7 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 steer _ speed ( float ) \u8f6c\u5411 \u901f\u5ea6 ( rad / s ) \u3002 \u96f6 \u8f6c\u5411 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u610f\u5473 \u610f\u5473\u7740 \u5c3d\u5feb \u6539\u53d8 \u8f6c\u5411 \u89d2 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 speed ( float ) \u6240 \u9700 \u901f\u5ea6 ( m / s ) \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 acceleration ( float ) \u6240 \u9700 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 ( m / s2 ) \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 jerk ( float ) \u6240 \u9700 \u7684 jerk ( m / s3 ) \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_195","text":"__ init __ ( self , steer = 0.0 , steer _ speed = 0.0 , speed = 0.0 , acceleration = 0.0 , jerk = 0.0 ) \u53c2\u6570 : steer ( float ) steer _ speed ( float ) speed ( float ) acceleration ( float ) jerk ( float )","title":"\u65b9\u6cd5"},{"location":"python_api/#_196","text":"__ eq __ ( self , other = carla . AckermannVehicleControl ) __ ne __ ( self , other = carla . AckermannVehicleControl ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlavehiclecontrol","text":"\u4f7f\u7528 \u5178\u578b \u7684 \u9a7e\u9a76 \u63a7\u5236 \u6765 \u7ba1\u7406 \u8f66\u8f86 \u7684 \u57fa\u672c \u8fd0\u52a8 \u3002","title":"carla . VehicleControl"},{"location":"python_api/#_197","text":"throttle ( float ) \u7528\u4e8e \u63a7\u5236 \u8f66\u8f86 \u6cb9\u95e8 \u7684 \u6807\u91cf \u503c [ 0.0 , 1.0 ] \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 steer ( float ) \u7528\u4e8e \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 \u7684 \u6807\u91cf \u503c [ - 1.0 , 1.0 ] \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 brake ( float ) \u7528\u4e8e \u63a7\u5236 \u8f66\u8f86 \u5236\u52a8 \u7684 \u6807\u91cf \u503c [ 0.0 , 1.0 ] \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 hand _ brake ( bool ) \u786e\u5b9a \u662f\u5426 \u4f7f\u7528 \u624b\u5239 \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 reverse ( bool ) \u786e\u5b9a \u8f66\u8f86 \u662f\u5426 \u5411 \u540e \u79fb\u52a8 \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 manual _ gear _ shift ( bool ) \u786e\u5b9a \u662f\u5426 \u901a\u8fc7 \u624b\u52a8 \u6362\u6863 \u6765 \u63a7\u5236 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 gear ( int ) \u6307\u793a \u8f66\u8f86 \u884c\u9a76 \u7684 \u6863\u4f4d \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_198","text":"__ init __ ( self , throttle = 0.0 , steer = 0.0 , brake = 0.0 , hand _ brake = False , reverse = False , manual _ gear _ shift = False , gear = 0 ) \u53c2\u6570 : throttle ( float ) - [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002 steer ( float ) - [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002 brake ( float ) - [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002 hand _ brake ( bool ) reverse ( bool ) manual _ gear _ shift ( bool ) gear ( int )","title":"\u65b9\u6cd5"},{"location":"python_api/#_199","text":"__ eq __ ( self , other = carla . VehicleControl ) __ ne __ ( self , other = carla . VehicleControl ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlavehicledoor","text":"\u53ef\u80fd \u7684 \u7d22\u5f15 \u8868\u793a \u53ef\u80fd \u6253\u5f00 \u7684 \u95e8 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u67d0\u4e9b \u8f66\u8f86 \u5e76\u975e \u6240\u6709 \u53ef\u80fd \u7684 \u8f66\u95e8 \u90fd \u80fd \u6253\u5f00 \u3002","title":"carla . VehicleDoor"},{"location":"python_api/#_200","text":"FL \u5de6 \u524d\u95e8 \u3002 FR \u53f3 \u524d\u95e8 \u3002 RL \u5de6 \u540e\u95e8 \u3002 RR \u53f3 \u540e\u95e8 \u3002 All \u4ee3\u8868 \u6240\u6709 \u95e8 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlavehiclefailurestate","text":"\u5305\u542b \u8f66\u8f86 \u65e0\u6cd5 \u6062\u590d \u7684 \u4e0d\u540c \u6545\u969c \u72b6\u6001 \u7684 \u679a\u4e3e \u3002 \u8fd9\u4e9b \u7531 get _ failure _ state ( ) \u8fd4\u56de \uff0c \u5f53\u524d \u4ec5 \u5b9e\u73b0 \u4e86 Rollover \u3002","title":"carla . VehicleFailureState"},{"location":"python_api/#_201","text":"NONE Rollover Engine TirePuncture","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlavehiclelightstate","text":"\u6982\u62ec \u8f66\u8f86 \u706f \u72b6\u6001 \u7684 \u7c7b \uff0c \u8fd9\u4e9b \u53ef\u4ee5 \u7528\u4f5c \u6807\u5fd7 \u3002 \u4f8b\u5982 \uff1a VehicleLightState . HighBeam & VehicleLightState . Brake \u5f53 \u4e24\u8005 \u90fd \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u65f6 \uff0c \u5c06 \u8fd4\u56de True \u3002 \u5728 \u4efb\u4f55 \u60c5\u51b5 \u4e0b \uff0c \u706f \u9ed8\u8ba4 \u90fd \u662f \u5173\u95ed \u7684 \uff0c \u5e76\u4e14 \u5e94\u8be5 \u7531 \u7528\u6237 \u901a\u8fc7 \u811a\u672c \u8fdb\u884c \u7ba1\u7406 \u3002 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u81ea\u52a8 \u95ea\u70c1 \u3002 \u8b66\u544a \uff1a \u76ee\u524d \uff0c \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u51c6\u5907 \u597d \u4f7f\u7528 \u6b64 \u529f\u80fd \uff0c \u8fd9 \u5c06 \u5728 \u4ee5\u540e \u7684 \u66f4\u65b0 \u4e2d \u6dfb\u52a0 \u5230 \u6240\u6709 \u8f66\u8f86 \u4e2d \u3002","title":"carla . VehicleLightState"},{"location":"python_api/#_202","text":"NONE \u6240\u6709 \u706f\u5747 \u5173\u95ed \u3002 Position LowBeam HighBeam Brake RightBlinker LeftBlinker Reverse Fog Interior Special1 \u8fd9 \u662f \u4e3a \u67d0\u4e9b \u5177\u6709 \u7279\u6b8a \u706f \uff08 \u4f8b\u5982 \u8b66\u62a5 \u8b66\u62a5\u5668 \uff09 \u7684 \u8f66\u8f86 \u4fdd\u7559 \u7684 \u3002 Special2 \u8fd9 \u662f \u4e3a \u67d0\u4e9b \u5177\u6709 \u7279\u6b8a \u706f \uff08 \u4f8b\u5982 \u8b66\u62a5 \u8b66\u62a5\u5668 \uff09 \u7684 \u8f66\u8f86 \u4fdd\u7559 \u7684 \u3002 All \u6240\u6709 \u706f\u5747\u4eae \u8d77 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlavehiclephysicscontrol","text":"\u603b\u7ed3 \u5c06 \u7528\u4e8e \u5c06 carla . Vehicle \u4eff\u771f \u4e3a \u7269\u7406 \u5bf9\u8c61 \u7684 \u53c2\u6570 \u3002 \u4e0d\u8fc7 \uff0c \u8f66\u8f6e \u7684 \u5177\u4f53 \u8bbe\u7f6e \u662f \u4f7f\u7528 carla . WheelPhysicsControl \u89c4\u5b9a \u7684 \u3002","title":"carla . VehiclePhysicsControl"},{"location":"python_api/#_203","text":"torque _ curve ( list ( carla . Vector2D ) ) \u66f2\u7ebf \uff0c \u6307\u793a \u5728 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u7279\u5b9a RPM \u4e0b \u6d4b\u91cf \u7684 \u626d\u77e9 \uff08 \u4ee5 Nm \u4e3a \u5355\u4f4d \uff09 \u3002 max _ rpm ( float ) \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u6700\u5927 \u8f6c\u901f \u3002 moi ( float - kg * m 2 ) \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3002 damping _ rate _ full _ throttle ( float ) \u6cb9\u95e8 \u6700\u5927 \u65f6 \u7684 \u963b\u5c3c \u963b\u5c3c\u6bd4 \u3002 damping _ rate _ zero _ throttle _ clutch _ engaged ( float ) \u79bb\u5408 \u79bb\u5408\u5668 \u63a5\u5408 \u65f6 \u6cb9\u95e8 \u4e3a \u96f6\u65f6 \u7684 \u963b\u5c3c \u963b\u5c3c\u6bd4 \u3002 damping _ rate _ zero _ throttle _ clutch _ disengaged ( float ) \u5f53 \u6cb9\u95e8 \u4e3a \u96f6\u4e14 \u79bb\u5408 \u79bb\u5408\u5668 \u5206\u79bb \u65f6 \u7684 \u963b\u5c3c \u963b\u5c3c\u6bd4 \u3002 use _ gear _ autobox ( bool ) \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u914d\u5907 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u3002 gear _ switch _ time ( float - seconds ) \u9f7f\u8f6e \u4e4b\u95f4 \u7684 \u5207\u6362 \u65f6\u95f4 \u3002 clutch _ strength ( float - kg * m 2 / s ) \u8f66\u8f86 \u7684 \u79bb\u5408 \u79bb\u5408\u5668 \u5f3a\u5ea6 \u3002 final _ ratio ( float ) \u4ece \u53d8\u901f \u53d8\u901f\u7bb1 \u5230 \u8f66\u8f6e \u7684 \u56fa\u5b9a \u6bd4\u7387 \u3002 forward _ gears ( list ( carla . GearPhysicsControl ) ) \u5b9a\u4e49 \u8f66\u8f86 \u9f7f\u8f6e \u7684 \u5bf9\u8c61 \u5217\u8868 \u3002 mass ( float - kilograms ) \u8f66\u8f86 \u7684 \u8d28\u91cf \u3002 drag _ coefficient ( float ) \u8f66\u8f86 \u5e95\u76d8 \u7684 \u963b\u529b \u7cfb\u6570 \u3002 center _ of _ mass ( carla . Vector3D - \u7c73 ) \u8f66\u8f86 \u7684 \u8d28\u5fc3 \u3002 steering _ curve ( list ( carla . Vector2D ) ) \u6307\u793a \u7279\u5b9a \u524d\u8fdb \u901f\u5ea6 \u7684 \u6700\u5927 \u8f6c\u5411 \u7684 \u66f2\u7ebf \u3002 use _ sweep _ wheel _ collision ( bool ) \u542f\u7528 \u8f66\u8f6e \u78b0\u649e \u626b\u63cf \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u662f \u7981\u7528 \u7684 \uff0c \u5e76\u4e14 \u5b83 \u4e3a \u6bcf\u4e2a \u8f6e\u5b50 \u4f7f\u7528 \u4ece\u8f74\u5230 \u5730\u677f \u7684 \u7b80\u5355 \u5149\u7ebf \u6295\u5c04 \u3002 \u6b64 \u9009\u9879 \u63d0\u4f9b \u4e86 \u66f4\u597d \u7684 \u78b0\u649e \u6a21\u578b \uff0c \u5176\u4e2d \u68c0\u67e5 \u8f66\u8f6e \u7684 \u6574\u4e2a \u4f53\u79ef \u662f\u5426 \u53d1\u751f \u78b0\u649e \u3002 wheels ( list ( carla . WheelPhysicsControl ) ) \u8f6e\u5b50 \u7269\u7406 \u5bf9\u8c61 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5e94\u8be5 \u6709 4 \u4e2a \u5143\u7d20 \uff0c \u5176\u4e2d \u7d22\u5f15 0 \u5bf9\u5e94 \u4e8e \u5de6 \u524d\u8f6e \uff0c \u7d22\u5f15 1 \u5bf9\u5e94 \u4e8e \u53f3 \u524d\u8f6e \uff0c \u7d22\u5f15 2 \u5bf9\u5e94 \u4e8e \u5de6 \u540e\u8f6e \uff0c \u7d22\u5f15 3 \u5bf9\u5e94 \u4e8e \u53f3 \u540e\u8f6e \u3002 \u5bf9\u4e8e \u4e24\u8f6e \u8f66\u8f86 \uff0c \u524d\u8f6e \u548c \u540e\u8f6e \u8bbe\u7f6e \u76f8\u540c \u7684 \u503c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_204","text":"__ init __ ( self , torque _ curve = [ [ 0.0 , 500.0 ] , [ 5000.0 , 500.0 ] ] , max _ rpm = 5000.0 , moi = 1.0 , damping _ rate _ full _ throttle = 0.15 , damping _ rate _ zero _ throttle _ clutch _ engaged = 2.0 , damping _ rate _ zero _ throttle _ clutch _ disengaged = 0.35 , use _ gear _ autobox = True , gear _ switch _ time = 0.5 , clutch _ strength = 10.0 , final _ ratio = 4.0 , forward _ gears = list ( ) , drag _ coefficient = 0.3 , center _ of _ mass = [ 0.0 , 0.0 , 0.0 ] , steering _ curve = [ [ 0.0 , 1.0 ] , [ 10.0 , 0.5 ] ] , wheels = list ( ) , use _ sweep _ wheel _ collision = False , mass = 1000.0 ) VehiclePhysicsControl \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u3002 \u53c2\u6570 : torque _ curve ( list ( carla . Vector2D ) ) max _ rpm ( float ) moi ( float - kg * m 2 ) damping _ rate _ full _ throttle ( float ) damping _ rate _ zero _ throttle _ clutch _ engaged ( float ) damping _ rate _ zero _ throttle _ clutch _ disengaged ( float ) use _ gear _ autobox ( bool ) gear _ switch _ time ( float - seconds ) clutch _ strength ( float - kg * m 2 / s ) final _ ratio ( float ) forward _ gears ( list ( carla . GearPhysicsControl ) ) drag _ coefficient ( float ) center _ of _ mass ( carla . Vector3D ) steering _ curve ( carla . Vector2D ) wheels ( list ( carla . WheelPhysicsControl ) ) use _ sweep _ wheel _ collision ( bool ) mass ( float - kilograms )","title":"\u65b9\u6cd5"},{"location":"python_api/#_205","text":"__ eq __ ( self , other = carla . VehiclePhysicsControl ) __ ne __ ( self , other = carla . VehiclePhysicsControl ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlavehiclewheellocation","text":"enum \u4ee3\u8868 \u8f66\u8f86 \u4e0a \u6bcf\u4e2a \u8f66\u8f6e \u7684 \u4f4d\u7f6e \u3002 \u7528\u4e8e \u5728 carla . Vehicle . set _ wheel _ steer _ direction \u6216 carla . Vehicle . get _ wheel _ steer _ angle \u4e2d \u8bbe\u7f6e \u89d2\u5ea6 \u65f6 \u8bc6\u522b \u76ee\u6807 \u8f66\u8f6e \u3002","title":"carla . VehicleWheelLocation"},{"location":"python_api/#_206","text":"FL _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u5de6 \u524d\u8f6e \u3002 FR _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u53f3 \u524d\u8f6e \u3002 BL _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u5de6 \u540e\u8f6e \u3002 BR _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u53f3 \u540e\u8f6e \u3002 Front _ Wheel \u4e24\u8f6e \u8f66\u8f86 \u7684 \u524d\u8f6e \u3002 Back _ Wheel \u4e24\u8f6e \u8f66\u8f86 \u7684 \u540e\u8f6e \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlawalker","text":"\u4ece carla . Actor \u7ee7\u627f \u8be5\u7c7b \u4ece carla . Actor \u7ee7\u627f \u5e76 \u5b9a\u4e49 \u4eff\u771f \u4e2d \u7684 \u884c\u4eba \u3002 Walkers \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 actor \uff0c \u53ef\u4ee5 \u7531 AI ( carla . WalkerAIController ) \u63a7\u5236 \uff0c \u4e5f \u53ef\u4ee5 \u901a\u8fc7 \u811a\u672c \u624b\u52a8 \u63a7\u5236 \uff0c \u4f7f\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . WalkerControl \u6765 \u79fb\u52a8 \u5b83\u4eec \u53ca\u5176 \u9aa8\u9abc \u3002","title":"carla . Walker"},{"location":"python_api/#_207","text":"apply _ control ( self , control ) \u5728 \u4e0b \u4e00\u4e2a \u523b\u5ea6 \u4e0a \uff0c \u63a7\u4ef6 \u5c06 \u4ee5 \u7279\u5b9a \u901f\u5ea6 \u5411 \u7279\u5b9a \u65b9\u5411 \u79fb\u52a8 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u4e5f \u53ef\u4ee5 \u547d\u4ee4 \u8df3\u8dc3 \u3002 \u53c2\u6570 : control ( carla . WalkerControl ) blend _ pose ( self , blend _ value ) \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u4e0e \u52a8\u753b \u7684 \u6df7\u5408 \u503c \u3002 \u8fd9\u4e9b \u503c \u53ef\u4ee5 \u662f \uff1a 0 : \u4ec5 \u663e\u793a \u52a8\u753b 1 : \u4ec5 \u663e\u793a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \uff08 \u7531 \u7528\u6237 \u4f7f\u7528 set _ bones ( ) \u8bbe\u7f6e \uff09 any other : \u5c06 \u5728 \u52a8\u753b \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u4e4b\u95f4 \u63d2\u5165 \u6240\u6709 \u9aa8\u9abc \u4f4d\u7f6e \u3002 \u53c2\u6570 : blend _ value ( float - value from 0 to 1 with the blend percentage ) hide _ pose ( self ) \u9690\u85cf \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u5e76 \u663e\u793a \u52a8\u753b \uff08 \u4e0e \u8c03\u7528 blend _ pose ( 0 ) \u76f8\u540c \uff09 \u3002 show _ pose ( self ) \u663e\u793a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u5e76 \u9690\u85cf \u52a8\u753b \uff08 \u4e0e \u8c03\u7528 blend _ pose ( 1 ) \u76f8\u540c \uff09 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_208","text":"get _ bones ( self ) \u8fd4\u56de \u5305\u542b \u6765\u81ea \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6240\u6709 \u9aa8\u9abc \u53d8\u6362 \u7684 \u7ed3\u6784 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u6211\u4eec \u5728 \u4e09\u4e2a \u4e0d\u540c \u7684 \u7a7a\u95f4 \u4e2d \u83b7\u53d6 \u540d\u79f0 \u53ca\u5176 \u53d8\u6362 \uff1a name : \u9aa8\u9abc \u540d\u79f0 world : \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u53d8\u6362 component : \u57fa\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u67a2\u8f74 \u8fdb\u884c \u53d8\u6362 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002 \u8fd4\u56de : carla . WalkerBoneControlOut Setter : carla . Walker . set _ bones get _ control ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd4\u56de \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u5e94\u7528 \u4e8e \u6b64\u884c \u4eba \u7684 \u63a7\u5236 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . WalkerControl get _ pose _ from _ animation ( self ) \u590d\u5236 \u5f53\u524d \u52a8\u753b \u5e27 \u4f5c\u4e3a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u3002 \u6700\u521d \uff0c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u662f \u4e2d\u6027 \u884c\u4eba \u59ff\u52bf \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_209","text":"set _ bones ( self , bones ) \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u9aa8\u9abc \u3002 \u5bf9\u4e8e \u6211\u4eec \u60f3\u8981 \u8bbe\u7f6e \u7684 \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u5bf9 \u53d8\u6362 \u3002 \u4ec5\u4f1a \u8bbe\u7f6e \u6b64 \u5217\u8868 \u4e2d \u7684 \u9aa8\u9abc \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u60a8 \u9700\u8981 \u8bbe\u7f6e \u4ee5\u4e0b \u4fe1\u606f \uff1a name : \u9aa8\u9abc \u540d\u79f0 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002 \u53c2\u6570 : bones ( carla . WalkerBoneControlIn - \u6211\u4eec \u60f3\u8981 \u8bbe\u7f6e \u7684 \u9aa8\u9abc \u5bf9 \uff08 bone _ name \uff0c transform \uff09 \u7684 \u5217\u8868 ) \u83b7\u53d6 \u5668 : carla . Walker . get _ bones","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_210","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawalkeraicontroller","text":"\u4ece carla . Actor \u7ee7\u627f \u5bf9 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8fdb\u884c AI \u63a7\u5236 \u7684 \u7c7b \u3002 \u63a7\u5236 \u63a7\u5236\u5668 \u88ab \u5b9a\u4e49 \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5b83\u4eec \u4e0e \u5176\u4ed6 \u63a7\u5236 \u63a7\u5236\u5668 \u6709 \u5f88\u5927 \u4e0d\u540c \u3002 \u5b83\u4eec \u5728 \u521b\u5efa \u8fc7\u7a0b \u4e2d \u9700\u8981 \u9644\u52a0 \u5230\u7236 Actor \uff0c \u8fd9\u662f \u5b83\u4eec \u5c06 \u63a7\u5236 \u7684 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff08 \u5982\u679c \u60a8 \u5c1a\u672a \u4e86\u89e3 \u5982\u4f55 \u751f\u6210 Actor \uff0c \u8bf7 \u67e5\u770b carla . World \uff09 \u3002 \u4ed6\u4eec \u8fd8 \u9700\u8981 \u4e00\u4e2a \u7279\u6b8a \u7684 \u84dd\u56fe \uff08 \u5df2 \u5728 carla . BlueprintLibrary \u4e2d \u5b9a\u4e49 \u4e3a \u201c controller . ai . walker \u201d \uff09 \u3002 \u8fd9\u662f \u4e00\u4e2a \u7a7a \u7684 \u84dd\u56fe \uff0c \u56e0\u4e3a \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u5728 \u6a21\u62df \u4e2d\u662f \u4e0d \u53ef\u89c1 \u7684 \uff0c \u4f46\u4f1a \u8ddf\u968f \u5176\u7236 \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u6307\u793a \u6bcf \u4e00\u6b65 \u3002","title":"carla . WalkerAIController"},{"location":"python_api/#_211","text":"go _ to _ location ( self , destination ) \u8bbe\u7f6e \u884c\u4eba \u5c06 \u5230\u8fbe \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u53c2\u6570 : destination ( carla . Location - \u7c73 ) start ( self ) \u4e3a \u5176\u7236 \u884c\u4eba \u542f\u7528 AI \u63a7\u5236 \u3002 stop ( self ) snippet \u2192 \u7981\u7528 \u5176\u7236 \u884c\u4eba \u7684 AI \u63a7\u5236 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_212","text":"set _ max _ speed ( self , speed = 1.4 ) \u8bbe\u7f6e \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u901f\u5ea6 \uff08 \u4ee5\u7c73 \u6bcf\u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u53c2\u6570 : speed ( float - m / s ) - \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u8f7b\u677e \u6b65\u884c \u901f\u5ea6 \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_213","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawalkerbonecontrolin","text":"\u8be5\u7c7b \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u63d0\u4f9b \u9aa8\u9abc \u7279\u5b9a \u7684 \u64cd\u4f5c \u3002 \u4e3a\u4e86 \u6e05\u6670 \u8d77 \u89c1 \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u9aa8\u9abc \u5df2\u7ecf \u7edf\u4e00 \uff0c \u5e76\u4e14 \u5e94\u7528 \u4e8e \u6bcf\u4e2a \u9aa8\u9abc \u7684 \u53d8\u6362 \u59cb\u7ec8 \u76f8\u5bf9 \u4e8e \u5176\u7236 \u9aa8\u9abc \u3002 \u8bf7 \u67e5\u770b \u6b64\u5904 \uff0c \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u521b\u5efa \u52a9\u884c\u5668 \u5e76 \u5b9a\u4e49 \u5176 \u8fd0\u52a8 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"carla . WalkerBoneControlIn"},{"location":"python_api/#_214","text":"bone _ transforms ( list ( [ name , transform ] ) ) \u5217\u51fa \u6211\u4eec \u8981 \u8bbe\u7f6e \u7684 \u6bcf\u4e2a \u9aa8\u9abc \u7684 \u6570\u636e \uff1a name : \u9aa8\u9abc \u540d\u79f0 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_215","text":"__ init __ ( self , list ( name , transform ) ) \u521d\u59cb \u521d\u59cb\u5316 \u4e00\u4e2a \u5305\u542b \u8981 \u5728 \u523b\u5ea6 \u4e0a \u5e94\u7528 \u7684 \u79fb\u52a8 \u7684 \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u4e0e \u9aa8\u9abc \u7684 \u540d\u79f0 \u548c \u5c06 \u5e94\u7528 \u4e8e \u5b83 \u7684 \u53d8\u6362 \u4e00\u8d77 \u5217\u51fa \u3002 \u53c2\u6570 : list ( name , transform ) ( tuple )","title":"\u65b9\u6cd5"},{"location":"python_api/#_216","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawalkerbonecontrolout","text":"\u8be5\u7c7b \u7528\u4e8e \u8fd4\u56de \u884c\u4eba \u7684 \u6240\u6709 \u9aa8\u9abc \u4f4d\u7f6e \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u6211\u4eec \u5f97\u5230 \u5b83 \u7684 \u540d\u79f0 \u53ca\u5176 \u5728 \u4e09\u4e2a \u4e0d\u540c \u7a7a\u95f4 \uff08 \u4e16\u754c \u3001 \u6f14\u5458 \u548c \u76f8\u5bf9 \uff09 \u4e2d \u7684 \u53d8\u6362 \u3002","title":"carla . WalkerBoneControlOut"},{"location":"python_api/#_217","text":"bone _ transforms ( list ( [ name , world , actor , relative ] ) ) \u6bcf\u4e2a \u9aa8\u9abc \u7684 \u4e00\u4e2a \u6761\u76ee \u5217\u8868 \uff0c \u5305\u542b \u4ee5\u4e0b \u4fe1\u606f \uff1a name : \u9aa8\u9abc \u540d\u79f0 world : \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u53d8\u6362 component : \u57fa\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u67a2\u8f74 \u8fdb\u884c \u53d8\u6362 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_218","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_219","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawalkercontrol","text":"\u6b64\u7c7b \u5b9a\u4e49 \u4e86 \u53ef\u4ee5 \u5411 carla . Walker \u547d\u4ee4 \u901a\u8fc7 \u811a\u672c \u63a7\u5236 \u5b83 \u7684 \u7279\u5b9a \u65b9\u5411 \u3002 \u53ef\u4ee5 \u4e3a \u884c\u4eba \u89e3\u51b3 AI \u63a7\u5236 \uff0c \u4f46 \u7528\u4e8e \u6b64 \u76ee\u7684 \u7684 \u63a7\u4ef6 \u662f carla . WalkerAIController \u3002","title":"carla . WalkerControl"},{"location":"python_api/#_220","text":"direction ( carla . Vector3D ) \u4f7f\u7528 \u4e0e \u884c\u4eba \u65b9\u5411 \u76f8\u5bf9 \u5e94 \u7684 \u5168\u5c40 \u5750\u6807 \u7684 \u5411\u91cf \u3002 speed ( float - m / s ) \u63a7\u5236 \u884c\u4eba \u901f\u5ea6 \u7684 \u6807\u91cf \u503c \u3002 jump ( bool ) \u5982\u679c \u4e3a True \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5c06 \u6267\u884c \u8df3\u8dc3 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_221","text":"__ init __ ( self , direction = [ 1.0 , 0.0 , 0.0 ] , speed = 0.0 , jump = False ) \u53c2\u6570 : direction ( carla . Vector3D ) speed ( float - m / s ) jump ( bool )","title":"\u65b9\u6cd5"},{"location":"python_api/#_222","text":"__ eq __ ( self , other = carla . WalkerControl ) \u548c other \u6bd4\u8f83 \u6bcf\u4e2a \u53d8\u91cf \uff0c \u5982\u679c \u5b83\u4eec \u90fd \u76f8\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 __ ne __ ( self , other = carla . WalkerControl ) \u548c other \u6bd4\u8f83 \u6bcf\u4e2a \u53d8\u91cf \uff0c \u5982\u679c \u5176\u4e2d \u4efb\u4f55 \u4e00\u4e2a \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawaypoint","text":"CARLA \u4e2d \u7684 \u822a\u8def \u70b9 \u88ab \u63cf\u8ff0 \u4e3a 3D \u5b9a\u5411 \u70b9 \u3002 \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u53ef\u4ee5 \u5b9a\u4f4d \u9053\u8def \u4e2d \u7684 \u8def\u70b9 \u5e76 \u6839\u636e \u8f66\u9053 \u786e\u5b9a \u5176 \u65b9\u5411 \u3002 \u4ed6\u4eec \u8fd8 \u5b58\u50a8 \u5c5e\u4e8e \u8be5\u70b9 \u7684 \u6709\u5173 \u5176 \u8f66\u9053 \u548c \u8f66\u9053 \u6807\u8bb0 \u7684 \u9053\u8def \u4fe1\u606f \u3002 \u6709\u5173 \u822a\u8def \u70b9 \u548c \u8def\u7ebf API \u7684 \u6240\u6709 \u4fe1\u606f \u5747 \u6309 OpenDRIVE \u6587\u4ef6 \u63d0\u4f9b \u7684 \u65b9\u5f0f \u68c0\u7d22 \u3002 \u4e00\u65e6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bf7\u6c42 \u5730\u56fe \u5bf9\u8c61 \uff0c \u5c31 \u4e0d\u518d \u9700\u8981 \u901a\u4fe1 \u3002","title":"carla . Waypoint"},{"location":"python_api/#_223","text":"id ( int ) \u6807\u8bc6 \u6807\u8bc6\u7b26 \u662f \u4f7f\u7528 \u4e0e OpenDRIVE \u51e0\u4f55 \u4e2d \u7684 \u6240\u8ff0 \u70b9 \u76f8\u5bf9 \u5e94 \u7684 road , section , lane \u548c s \u503c \u7684 \u54c8\u5e0c \u7ec4\u5408 \u751f\u6210 \u7684 \u3002 s \u7cbe\u5ea6 \u8bbe\u7f6e \u4e3a 2 \u5398\u7c73 \uff0c \u56e0\u6b64 \u5728 \u540c\u4e00 \u9053\u8def \u3001 \u8def\u6bb5 \u548c \u8f66\u9053 \u8ddd\u79bb \u4e2d\u8ddd\u79bb \u5c0f\u4e8e 2 \u5398\u7c73 \u7684 2 \u4e2a \u822a\u8def \u70b9\u5c06 \u5177\u6709 \u76f8\u540c \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 transform ( carla . Transform ) \u6839\u636e \u5f53\u524d \u8f66\u9053 \u4fe1\u606f \u786e\u5b9a \u8def\u70b9 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u8be5 \u6570\u636e \u662f \u5728 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u8bbf\u95ee \u65f6 \u8ba1\u7b97 \u7684 \u3002 \u5f53 \u521b\u5efa \u5927\u91cf \u822a\u8def \u70b9 \u4f46 \u4e0d \u9700\u8981 \u5b83\u4eec \u7684 \u7279\u5b9a \u8f6c\u6362 \u65f6 \uff0c \u5b83 \u4e0d\u4f1a \u7acb\u5373 \u521b\u5efa \uff0c \u4ee5 \u51cf\u8f7b \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u3002 road _ id ( int ) OpenDRIVE \u9053\u8def \u7684 id \u3002 section _ id ( int ) OpenDRIVE \u90e8\u5206 \u7684 id \uff0c \u57fa\u4e8e \u5b83\u4eec \u6700\u521d \u5b9a\u4e49 \u7684 \u987a\u5e8f \u3002 is _ junction ( bool ) \u5982\u679c \u5f53\u524d \u8def\u70b9 \u4f4d\u4e8e OpenDRIVE \u5b9a\u4e49 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \uff0c \u5219 \u4e3a True \u3002 junction _ id ( int ) OpenDRIVE \u7ed3\u70b9 \u7684 id \u3002 \u6709\u5173 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 OpenDRIVE \u6587\u6863 \u3002 lane _ id ( int ) OpenDRIVE \u8f66\u9053 \u7684 id \uff0c \u8be5\u503c \u53ef\u4ee5 \u662f \u6b63\u6570 \u6216 \u8d1f\u6570 \uff0c \u8868\u793a \u5f53\u524d \u8f66\u9053 \u76f8\u5bf9 \u4e8e \u9053\u8def \u7684 \u65b9\u5411 \u3002 \u6709\u5173 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 OpenDRIVE \u6587\u6863 \u3002 s ( float ) OpenDRIVE \u5f53\u524d \u4f4d\u7f6e \u7684 s \u503c \u3002 lane _ width ( float ) \u5f53\u524d s \u5904 \u9053\u8def \u7684 \u6c34\u5e73 \u5c3a\u5bf8 \u3002 lane _ change ( carla . LaneChange ) \u5f53\u524d \u8def\u70b9 \u4f4d\u7f6e \u7684 \u8f66\u9053 \u53d8\u66f4 \u5b9a\u4e49 \uff0c \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u7684 \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u3002 \u5b83 \u8bf4\u660e \u662f\u5426 \u53ef\u4ee5 \u53d8\u9053 \u4ee5\u53ca \u671d \u54ea\u4e2a \u65b9\u5411 \u53d8\u9053 \u3002 lane _ type ( carla . LaneType ) \u5f53\u524d Waypoint \u7684 \u8f66\u9053 \u7c7b\u578b \uff0c \u57fa\u4e8e OpenDRIVE 1.4 \u6807\u51c6 \u3002 right _ lane _ marking ( carla . LaneMarking ) \u57fa\u4e8e Waypoint \u65b9\u5411 \u7684 \u53f3 \u8f66\u9053 \u6807\u8bb0 \u4fe1\u606f \u3002 left _ lane _ marking ( carla . LaneMarking ) \u57fa\u4e8e Waypoint \u65b9\u5411 \u7684 \u5de6 \u8f66\u9053 \u6807\u8bb0 \u4fe1\u606f \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_224","text":"next ( self , distance ) \u5f53\u524d \u70b9 \u67d0\u4e2a \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u7684 \u822a\u8def \u70b9 \u5217\u8868 distance \u5b83\u4f1a \u8003\u8651 \u9053\u8def \u53ca\u5176 \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u800c \u4e0d \u6267\u884c \u4efb\u4f55 \u8f66\u9053 \u53d8\u66f4 \uff0c \u5e76 \u4e3a \u6bcf\u4e2a \u9009\u9879 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5982\u679c \u8f66\u9053 \u5728 \u6307\u5b9a \u8ddd\u79bb \u8ddd\u79bb\u5904 \u672a \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u8f66\u9053 \u76f8\u8fde \uff0c \u5219 \u5217\u8868 \u53ef\u80fd \u4e3a\u7a7a \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u83b7\u53d6 \u4e0b \u4e00\u4e2a \u822a\u8def \u70b9 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint ) next _ until _ lane _ end ( self , distance ) \u8fd4\u56de \u4ece \u8fd9\u91cc \u5230 \u8f66\u9053 \u672b\u7aef \u7684 \u8def\u70b9 \u5217\u8868 \uff0c \u8fd9\u4e9b \u8def\u70b9 \u4e4b\u95f4 \u4ee5 \u4e00\u5b9a \u8ddd\u79bb distance \u5206\u9694 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u822a\u8def \u70b9 \u4e4b\u95f4 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint ) previous ( self , distance ) \u4f46 \u4e0e \u8f66\u9053 \u76f8\u53cd \u65b9\u5411 \u7684 \u8def\u70b9 \u5217\u8868 distance \u4e0e next ( ) \u7c7b\u4f3c \uff0c \u5b83\u4f1a \u8003\u8651 \u9053\u8def \u53ca\u5176 \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u800c \u4e0d \u6267\u884c \u4efb\u4f55 \u8f66\u9053 \u53d8\u66f4 \uff0c \u5e76 \u4e3a \u6bcf\u4e2a \u9009\u9879 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5982\u679c \u8f66\u9053 \u5728 \u6307\u5b9a \u8ddd\u79bb \u8ddd\u79bb\u5904 \u672a \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u8f66\u9053 \u76f8\u8fde \uff0c \u5219 \u5217\u8868 \u53ef\u80fd \u4e3a\u7a7a \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u83b7\u53d6 \u5148\u524d \u822a\u8def \u70b9 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint ) previous _ until _ lane _ start ( self , distance ) \u8fd4\u56de \u4ece \u8fd9\u91cc \u5230 \u8f66\u9053 \u8d77\u70b9 \u7684 \u8def\u70b9 \u5217\u8868 \uff0c \u4ee5 \u4e00\u5b9a \u7684 \u8ddd\u79bb distance \u5206\u9694 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u822a\u8def \u70b9 \u4e4b\u95f4 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint )","title":"\u65b9\u6cd5"},{"location":"python_api/#_225","text":"get _ junction ( self ) \u5982\u679c \u8def\u5f84 \u70b9 \u5c5e\u4e8e \u8def\u53e3 \uff0c \u5219 \u6b64 \u65b9\u6cd5 \u8fd4\u56de \u5173\u8054 \u7684 \u8def\u53e3 \u5bf9\u8c61 \u3002 \u5426\u5219 \u8fd4\u56de null \u3002 \u8fd4\u56de : carla . Junction get _ landmarks ( self , distance , stop _ at _ junction = False ) \u8fd4\u56de \u4ece \u5f53\u524d \u822a\u8def \u70b9\u5230 \u6307\u5b9a \u8ddd\u79bb \u7684 \u9053\u8def \u4e0a \u7684 \u5730\u6807 \u5217\u8868 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u4ece \u5f53\u524d \u822a\u8def \u70b9 \u641c\u7d22 \u5730 \u6807\u7684 \u6700\u5927 \u8ddd\u79bb \u3002 stop _ at _ junction ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u901a\u8fc7 \u8def\u53e3 \u7684 \u5730\u6807 \u641c\u7d22 \u3002 \u8fd4\u56de : list ( carla . Landmark ) get _ landmarks _ of _ type ( self , distance , type , stop _ at _ junction = False ) \u8fd4\u56de \u4ece \u5f53\u524d \u8def\u5f84 \u70b9\u5230 \u6307\u5b9a \u8ddd\u79bb \u7684 \u6307\u5b9a \u7c7b\u578b \u9053\u8def \u4e2d \u7684 \u5730\u6807 \u5217\u8868 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u4ece \u5f53\u524d \u822a\u8def \u70b9 \u641c\u7d22 \u5730 \u6807\u7684 \u6700\u5927 \u8ddd\u79bb \u3002 type ( str ) - \u8981 \u641c\u7d22 \u7684 \u5730\u6807 \u7c7b\u578b \u3002 stop _ at _ junction ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u901a\u8fc7 \u8def\u53e3 \u7684 \u5730\u6807 \u641c\u7d22 \u3002 \u8fd4\u56de : list ( carla . Landmark ) get _ left _ lane ( self ) \u6839\u636e \u5f53\u524d \u8def\u70b9 \u7684 \u65b9\u5411 \u5728 \u5de6 \u8f66\u9053 \u4e2d\u5fc3 \u751f\u6210 \u8def\u70b9 \uff0c \u540c\u65f6 \u8003\u8651 \u8be5 \u4f4d\u7f6e \u662f\u5426 \u5141\u8bb8 \u53d8\u9053 \u3002 \u5982\u679c \u8f66\u9053 \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 \u8fd4\u56de : carla . Waypoint get _ right _ lane ( self ) \u6839\u636e \u5f53\u524d \u8def\u70b9 \u7684 \u65b9\u5411 \u5728 \u53f3 \u8f66\u9053 \u4e2d\u5fc3 \u751f\u6210 \u8def\u70b9 \uff0c \u5e76 \u8003\u8651 \u8be5 \u4f4d\u7f6e \u662f\u5426 \u5141\u8bb8 \u53d8\u9053 \u3002 \u5982\u679c \u8f66\u9053 \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 \u8fd4\u56de : carla . Waypoint","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_226","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaweatherparameters","text":"\u6b64\u7c7b \u5b9a\u4e49 \u4e86 \u5305\u542b \u5149\u7167 \u548c \u5929\u6c14 \u89c4\u8303 \u7684 \u5bf9\u8c61 \uff0c \u8fd9\u4e9b \u89c4\u8303 \u7a0d\u540e \u53ef\u4ee5 \u5e94\u7528 \u5728 carla . World \u4e2d \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9\u4e9b \u6761\u4ef6 \u4ec5 \u5f71\u54cd sensor . camera . rgb \u3002 \u5b83\u4eec \u65e2 \u4e0d \u5f71\u54cd \u6f14\u5458 \u7684 \u7269\u7406 \u7279\u6027 \uff0c \u4e5f \u4e0d \u5f71\u54cd \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8fd9\u4e9b \u53c2\u6570 \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u72ec\u7acb \u4e8e \u5176\u4ed6 \u53c2\u6570 \u8d77 \u4f5c\u7528 \u3002 \u589e\u52a0 \u964d\u96e8 \u96e8\u91cf \u964d\u96e8\u91cf \u4e0d\u4f1a \u81ea\u52a8 \u5f62\u6210 \u6c34\u5751 \uff0c \u4e5f \u4e0d\u4f1a \u6539\u53d8 \u9053\u8def \u7684 \u6e7f\u5ea6 \u3002 \u8fd9 \u53ef\u4ee5 \u5b9e\u73b0 \u66f4\u597d \u7684 \u5b9a\u5236 \uff0c \u4f46 \u4e5f \u610f\u5473 \u610f\u5473\u7740 \u9700\u8981 \u7f16\u5199 \u73b0\u5b9e \u6761\u4ef6 \u7684 \u811a\u672c \u3002 \u7136\u800c \uff0c \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u5b9e\u9645 \u8fd0\u884c \u7684 \u52a8\u6001 \u5929\u6c14 \u6761\u4ef6 \u7684 \u793a\u4f8b \u3002","title":"carla . WeatherParameters"},{"location":"python_api/#_227","text":"cloudiness ( float ) \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \uff0c 0 \u8868\u793a \u6674\u6717 \u7684 \u5929\u7a7a \uff0c 100 \u8868\u793a \u5b8c\u5168 \u88ab \u4e91 \u8986\u76d6 \u3002 precipitation ( float ) \u964d\u96e8 \u5f3a\u5ea6 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \uff0c 0 \u8868\u793a \u65e0\u96e8 \uff0c 100 \u8868\u793a \u5927\u96e8 \u3002 precipitation _ deposits ( float ) \u786e\u5b9a \u6c34\u5751 \u7684 \u521b\u5efa \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \uff0c 0 \u8868\u793a \u5b8c\u5168 \u6ca1\u6709 \u6c34 \uff0c 100 \u8868\u793a \u9053\u8def \u5b8c\u5168 \u88ab \u6c34 \u8986\u76d6 \u3002 \u6c34\u5751 \u662f \u7528 \u9759\u6001 \u566a\u97f3 \u521b\u5efa \u7684 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83\u4eec \u603b\u662f \u51fa\u73b0 \u5728 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 wind _ intensity ( float ) \u63a7\u5236 \u98ce \u7684 \u5f3a\u5ea6 \uff0c \u503c \u4ece 0 \uff08 \u65e0 \u98ce \uff09 \u5230 100 \uff08 \u5f3a\u98ce \uff09 \u3002 \u98ce \u786e\u5b9e \u4f1a \u5f71\u54cd \u964d\u96e8 \u65b9\u5411 \u548c \u6811\u53f6 \uff0c \u56e0\u6b64 \u9650\u5236 \u8be5\u503c \u4ee5 \u907f\u514d \u52a8\u753b \u95ee\u9898 \u3002 sun _ azimuth _ angle ( float - \u5ea6 ) \u592a\u9633 \u7684 \u65b9\u4f4d \u65b9\u4f4d\u89d2 \u3002 \u503c \u8303\u56f4 \u4e3a 0 \u5230 360 \u3002 \u96f6\u662f \u7531 \u865a\u5e7b \u5f15\u64ce \u786e\u5b9a \u7684 \u7403\u4f53 \u4e2d \u7684 \u539f\u70b9 \u3002 sun _ altitude _ angle ( float - \u5ea6 ) \u592a\u9633 \u7684 \u9ad8\u5ea6 \u89d2 \u3002 \u503c \u8303\u56f4 \u4ece - 90 \u5230 90 \uff0c \u5206\u522b \u5bf9\u5e94 \u4e8e \u5348\u591c \u548c \u4e2d\u5348 \u3002 fog _ density ( float ) \u96fe \u6d53\u5ea6 \u6216 \u539a\u5ea6 \u3002 \u5b83 \u4ec5 \u5f71\u54cd RGB \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \u3002 fog _ distance ( float - \u7c73 ) \u96fe \u5f00\u59cb \u8ddd\u79bb \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 \u65e0\u7a77 \u65e0\u7a77\u5927 \u3002 wetness ( float ) \u6e7f\u5ea6 \u5f3a\u5ea6 \u3002 \u5b83 \u4ec5 \u5f71\u54cd RGB \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \u3002 fog _ falloff ( float ) \u96fe \u7684 \u5bc6\u5ea6 \uff08 \u4ee5 \u7279\u5b9a \u8d28\u91cf \u8ba1 \uff09 \u4ece 0 \u5230 \u65e0\u7a77 \u65e0\u7a77\u5927 \u3002 \u503c\u8d8a \u5927 \uff0c \u96fe\u6c14 \u8d8a \u6d53\u91cd \uff0c \u96fe\u6c14 \u8fbe\u5230 \u7684 \u9ad8\u5ea6 \u4e5f \u8d8a \u5c0f \u3002 \u5bf9\u5e94 \u4e8e UE \u6587\u6863 \u4e2d \u7684 \u96fe \u9ad8\u5ea6 \u8870\u51cf \u3002 \u5982\u679c \u503c\u4e3a 0 \uff0c \u96fe \u5c06 \u6bd4 \u7a7a\u6c14 \u4eae \uff0c \u5e76 \u8986\u76d6 \u6574\u4e2a \u573a\u666f \u3002 \u503c\u4e3a 1 \u65f6 \uff0c \u5bc6\u5ea6 \u5927\u7ea6 \u4e0e \u7a7a\u6c14 \u4e00\u6837 \uff0c \u53ef \u5230\u8fbe \u6b63\u5e38 \u5927\u5c0f \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u5bf9\u4e8e \u5927\u4e8e 5 \u7684 \u503c \uff0c \u7a7a\u6c14 \u5c06 \u975e\u5e38 \u7a20\u5bc6 \uff0c \u4ee5\u81f3 \u81f3\u4e8e \u4ee5\u81f3\u4e8e \u5728 \u5730\u9762 \u4e0a\u4f1a \u88ab \u538b\u7f29 \u3002 scattering _ intensity ( float ) \u63a7\u5236 \u5149\u5bf9 \u4f53\u79ef \u96fe \u7684 \u8d21\u732e \u7a0b\u5ea6 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 mie _ scattering _ scale ( float ) \u63a7\u5236 \u5149 \u4e0e \u5927 \u9897\u7c92 \uff08 \u5982 \u82b1\u7c89 \u6216 \u7a7a\u6c14 \u6c61\u67d3 \u7a7a\u6c14\u6c61\u67d3 \uff09 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \uff0c \u5bfc\u81f4 \u5929\u7a7a \u6726\u80e7 \uff0c \u5149\u6e90 \u5468\u56f4 \u6709 \u5149\u6655 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 rayleigh _ scattering _ scale ( float ) \u63a7\u5236 \u5149 \u4e0e \u7a7a\u6c14 \u5206\u5b50 \u7b49 \u5c0f \u7c92\u5b50 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5149 \u7684 \u6ce2\u957f \uff0c \u5bfc\u81f4 \u767d\u5929 \u7684 \u5929\u7a7a \u4e3a \u84dd\u8272 \uff0c \u665a\u4e0a \u7684 \u5929\u7a7a \u4e3a \u7ea2\u8272 \u3002 dust _ storm ( float ) \u786e\u5b9a \u6c99\u5c18 \u5c18\u66b4 \u6c99\u5c18\u66b4 \u5929\u6c14 \u7684 \u5f3a\u5ea6 \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_228","text":"__ init __ ( self , cloudiness = 0.0 , precipitation = 0.0 , precipitation _ deposits = 0.0 , wind _ intensity = 0.0 , sun _ azimuth _ angle = 0.0 , sun _ altitude _ angle = 0.0 , fog _ density = 0.0 , fog _ distance = 0.0 , wetness = 0.0 , fog _ falloff = 0.0 , scattering _ intensity = 0.0 , mie _ scattering _ scale = 0.0 , rayleigh _ scattering _ scale = 0.0331 ) \u521d\u59cb \u521d\u59cb\u5316 \u5b9a\u4e49 \u5929\u6c14 \u6761\u4ef6 \u7684 \u5bf9\u8c61 \u7684 \u65b9\u6cd5 \u3002 \u8be5\u7c7b \u6709 \u4e00\u4e9b \u9488\u5bf9 \u4e0d\u540c \u4e2d\u5348 \u548c \u65e5\u843d \u6761\u4ef6 \u7684 \u9884\u8bbe \uff0c \u5982 \u4e0b\u9762 \u7684 \u6ce8\u91ca \u6240\u793a \u3002 \u53c2\u6570 : cloudiness ( float ) - 0 \u4e3a \u6674\u5929 \uff0c 100 \u4e3a \u9634\u5929 \u3002 precipitation ( float ) - 0 \u8868\u793a \u5b8c\u5168 \u6ca1\u6709 \u4e0b\u96e8 \uff0c 100 \u8868\u793a \u5927\u96e8 \u3002 precipitation _ deposits ( float ) - 0 \u8868\u793a \u9053\u8def \u4e0a \u6ca1\u6709 \u6c34\u5751 \uff0c 100 \u8868\u793a \u9053\u8def \u5b8c\u5168 \u88ab \u96e8\u6c34 \u8986\u76d6 \u3002 wind _ intensity ( float ) - 0 \u8868\u793a \u5e73\u6d6a \u98ce\u5e73\u6d6a\u9759 \uff0c 100 \u8868\u793a \u5f3a\u98ce \u3002 sun _ azimuth _ angle ( float - \u5ea6 ) - 0 \u662f \u4efb\u610f \u5317 \uff0c 180 \u662f \u5176 \u5bf9\u5e94 \u7684 \u5357 \u3002 sun _ altitude _ angle ( float - \u5ea6 ) - 90 \u662f \u4e2d\u5348 \uff0c - 90 \u662f \u5348\u591c \u3002 fog _ density ( float ) - \u96fe \u7684 \u6d53\u5ea6 \u6216 \u539a\u5ea6 \uff0c \u4ece 0 \u5230 100 \u3002 fog _ distance ( float - \u7c73 ) - \u96fe \u5f00\u59cb \u7684 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 wetness ( float ) - \u9053\u8def \u7684 \u6e7f\u5ea6 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u4ece 0 \u5230 100 \u3002 fog _ falloff ( float ) - \u96fe \u7684 \u5bc6\u5ea6 \uff08 \u7279\u5b9a \u8d28\u91cf \uff09 \uff0c \u4ece 0 \u5230 \u65e0\u7a77 \u65e0\u7a77\u5927 \u3002 scattering _ intensity ( float ) - \u63a7\u5236 \u5149\u7ebf \u5bf9 \u4f53\u79ef \u96fe \u7684 \u8d21\u732e \u7a0b\u5ea6 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 mie _ scattering _ scale ( float ) - \u63a7\u5236 \u5149 \u4e0e \u5927 \u9897\u7c92 \uff08 \u5982 \u82b1\u7c89 \u6216 \u7a7a\u6c14 \u6c61\u67d3 \u7a7a\u6c14\u6c61\u67d3 \uff09 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \uff0c \u5bfc\u81f4 \u5929\u7a7a \u6726\u80e7 \uff0c \u5149\u6e90 \u5468\u56f4 \u6709 \u5149\u6655 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 rayleigh _ scattering _ scale ( float ) - \u63a7\u5236 \u5149 \u4e0e \u7a7a\u6c14 \u5206\u5b50 \u7b49 \u5c0f \u9897\u7c92 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5149 \u7684 \u6ce2\u957f \uff0c \u5bfc\u81f4 \u767d\u5929 \u7684 \u5929\u7a7a \u4e3a \u84dd\u8272 \uff0c \u665a\u4e0a \u7684 \u5929\u7a7a \u4e3a \u7ea2\u8272 \u3002 \u7b14\u8bb0 : ClearNoon , CloudyNoon , WetNoon , WetCloudyNoon , SoftRainNoon , MidRainyNoon , HardRainNoon , ClearSunset , CloudySunset , WetSunset , WetCloudySunset , SoftRainSunset , MidRainSunset , HardRainSunset .","title":"\u65b9\u6cd5"},{"location":"python_api/#_229","text":"__ eq __ ( self , other ) \u5982\u679c \u4e24\u4e2a \u5bf9\u8c61 \u7684 \u53d8\u91cf \u76f8\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ ne __ ( self , other ) \u5982\u679c \u4e24\u4e2a \u5bf9\u8c61 \u7684 \u53d8\u91cf \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawheelphysicscontrol","text":"\u4e3a \u8f66\u8f6e \u5bf9\u8c61 \u5b9a\u4e49 \u7279\u5b9a \u7269\u7406 \u53c2\u6570 \u7684 \u7c7b \uff0c \u8fd9\u4e9b \u8f66\u8f6e \u5bf9\u8c61 \u5c06 \u6210\u4e3a carla . VehiclePhysicsControl \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u4ee5 \u5c06 \u8f66\u8f86 \u4eff\u771f \u4e3a \u6750\u8d28 \u5bf9\u8c61 \u3002","title":"carla . WheelPhysicsControl"},{"location":"python_api/#_230","text":"tire _ friction ( float ) \u6307\u793a \u8f66\u8f6e \u6469\u64e6 \u6469\u64e6\u529b \u7684 \u6807\u91cf \u503c \u3002 damping _ rate ( float ) \u8f66\u8f6e \u7684 \u963b\u5c3c \u7387 \u3002 max _ steer _ angle ( float - \u5ea6 ) \u8f66\u8f6e \u53ef\u4ee5 \u8f6c\u5411 \u7684 \u6700\u5927 \u89d2\u5ea6 \u3002 radius ( float - centimeters ) \u8f6e\u5b50 \u7684 \u534a\u5f84 \u3002 max _ brake _ torque ( float - N * m ) \u6700\u5927 \u5236\u52a8 \u626d\u77e9 \u3002 max _ handbrake _ torque ( float - N * m ) \u6700\u5927 \u624b\u5239 \u626d\u77e9 \u3002 position ( carla . Vector3D ) \u8f66\u8f6e \u7684 \u4e16\u754c \u4f4d\u7f6e \u3002 \u8fd9\u662f \u4e00\u4e2a \u53ea\u8bfb \u53c2\u6570 \u3002 long _ stiff _ value ( float - kg per radian ) \u6bcf \u5355\u4f4d \u91cd\u529b \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u8f6e\u80ce \u7eb5\u5411 \u521a\u5ea6 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u4e2a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \u3002 lat _ stiff _ max _ load ( float ) \u6700\u5927 \u6807\u51c6 \u6807\u51c6\u5316 \u8f6e\u80ce \u8d1f\u8f7d \uff0c \u5728 \u8be5 \u8d1f\u8f7d \u4e0b \uff0c \u65e0\u8bba \u5411 \u8f6e\u80ce \u65bd\u52a0 \u591a\u5c11 \u989d\u5916 \u8d1f\u8f7d \uff0c \u8f6e\u80ce \u90fd \u4e0d\u518d \u63d0\u4f9b \u4fa7\u5411 \u521a\u5ea6 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u4e2a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \u3002 lat _ stiff _ value ( float ) \u6bcf \u5355\u4f4d \u6a2a\u5411 \u6ed1\u79fb \u7684 \u6700\u5927 \u521a\u5ea6 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u4e2a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_231","text":"__ init __ ( self , tire _ friction = 2.0 , damping _ rate = 0.25 , max _ steer _ angle = 70.0 , radius = 30.0 , max _ brake _ torque = 1500.0 , max _ handbrake _ torque = 3000.0 , position = ( 0.0 , 0.0 , 0.0 ) ) \u53c2\u6570 : tire _ friction ( float ) damping _ rate ( float ) max _ steer _ angle ( float - \u5ea6 ) radius ( float - \u5398\u7c73 ) max _ brake _ torque ( float - N * m ) max _ handbrake _ torque ( float - N * m ) position ( carla . Vector3D - \u7c73 )","title":"\u65b9\u6cd5"},{"location":"python_api/#_232","text":"__ eq __ ( self , other = carla . WheelPhysicsControl ) __ ne __ ( self , other = carla . WheelPhysicsControl ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaworld","text":"\u4e16\u754c \u5bf9\u8c61 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \uff0c \u4ee5\u4fbf \u4e3a \u4eff\u771f \u63d0\u4f9b \u4e00\u4e2a \u53d1\u751f \u7684 \u5730\u65b9 \u3002 \u4e16\u754c \u5305\u542b \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u7684 \u5730\u56fe \uff0c \u5373 \u8d44\u4ea7 \uff0c \u800c \u4e0d\u662f \u5bfc\u822a \u5730\u56fe \u3002 \u5bfc\u822a \u5730\u56fe \u662f carla . Map \u7c7b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b83 \u8fd8 \u7ba1\u7406 \u5176\u4e2d \u7684 \u5929\u6c14 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6bcf\u4e2a \u4eff\u771f \u53ea\u80fd \u6709 \u4e00\u4e2a \u4e16\u754c \uff0c \u4f46 \u53ef\u4ee5 \u968f\u65f6 \u66f4\u6539 \u3002","title":"carla . World"},{"location":"python_api/#_233","text":"id ( int ) \u4e0e \u8fd9\u4e2a \u4e16\u754c \u76f8\u5173 \u7684 \u5267\u96c6 \u7684 ID \u3002 \u5267\u96c6 \u662f \u4eff\u771f \u7684 \u4e0d\u540c \u9636\u6bb5 \u3002 \u6bcf\u5f53 \u4e16\u754c \u88ab \u7981\u7528 \u6216 \u91cd\u65b0 \u52a0\u8f7d \u65f6 \uff0c \u8fd9\u4e9b \u90fd \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u8ddf\u8e2a \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u907f\u514d \u53ef\u80fd \u51fa\u73b0 \u7684 \u95ee\u9898 \u3002 debug ( carla . DebugHelper ) \u8d1f\u8d23 \u521b\u5efa \u4e0d\u540c \u7684 \u5f62\u72b6 \u4ee5 \u8fdb\u884c \u8c03\u8bd5 \u3002 \u67e5\u770b \u5b83 \u7684 \u7c7b \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_234","text":"apply _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter ( normal , diffuse , etc ) \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u5bf9\u5e94 \u4e8e object _ name \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter ( normal , diffuse , etc ) \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u5bf9\u5e94 \u4e8e objects _ name _ list \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ float _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter \uff08 \u6cd5\u7ebf \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7b49 \uff09 \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u4e0e object _ name \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u5bf9\u5e94 \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ float _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter \uff08 \u6cd5\u7ebf \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7b49 \uff09 \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u4e0e objects _ name _ list \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u5bf9\u5e94 \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ settings ( self , world _ settings ) \u6b64 \u65b9\u6cd5 \u5c06 \u5bf9\u8c61 \u4e2d \u5305\u542b \u7684 \u8bbe\u7f6e \u5e94\u7528 \u4e8e \u8fd0\u884c \u7684 \u4eff\u771f \uff0c \u5e76 \u8fd4\u56de \u5b83\u4eec \u6240 \u5b9e\u73b0 \u7684 \u5e27 \u7684 ID \u3002 \u53c2\u6570 : world _ settings ( carla . WorldSettings ) \u8fd4\u56de : int \u8b66\u544a : \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u672c\u6587 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 apply _ textures _ to _ object ( self , object _ name , diffuse _ texture , emissive _ texture , normal _ texture , ao _ roughness _ metallic _ emissive _ texture ) \u5c06 carla . MaterialParameter \u4e2d \u7684 \u6240\u6709 \u7eb9\u7406 \u5b57 \u6bb5 \u5e94\u7528 \u5230 \u5bf9\u8c61 object _ name \u3002 \u8fd9\u91cc \u4e0d\u4f1a \u5e94\u7528 \u7a7a \u7eb9\u7406 \u3002 \u53c2\u6570 : object _ name ( str ) diffuse _ texture ( TextureColor ) emissive _ texture ( TextureFloatColor ) normal _ texture ( TextureFloatColor ) ao _ roughness _ metallic _ emissive _ texture ( TextureFloatColor ) apply _ textures _ to _ objects ( self , objects _ name _ list , diffuse _ texture , emissive _ texture , normal _ texture , ao _ roughness _ metallic _ emissive _ texture ) \u5c06 carla . MaterialParameter \u4e2d \u7684 \u6240\u6709 \u7eb9\u7406 \u5b57 \u6bb5 \u5e94\u7528 \u4e8e objects _ name _ list \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u3002 \u8fd9\u91cc \u4e0d\u4f1a \u5e94\u7528 \u7a7a \u7eb9\u7406 \u3002 \u53c2\u6570 : objects _ name _ list ( list ( str ) ) diffuse _ texture ( TextureColor ) emissive _ texture ( TextureFloatColor ) normal _ texture ( TextureFloatColor ) ao _ roughness _ metallic _ emissive _ texture ( TextureFloatColor ) cast _ ray ( self , initial _ location , final _ location ) \u5c06 \u5149\u7ebf \u4ece \u6307\u5b9a \u7684 initial _ location \u6295\u5c04 \u5230 final _ location \u3002 \u7136\u540e \uff0c \u8be5 \u51fd\u6570 \u68c0\u6d4b \u4e0e \u5c04\u7ebf \u76f8\u4ea4 \u7684 \u6240\u6709 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \uff0c \u5e76 \u6309 \u987a\u5e8f \u8fd4\u56de carla . LabelledPoint \u5217\u8868 \u3002 \u53c2\u6570 : initial _ location ( carla . Location ) - The initial position of the ray . final _ location ( carla . Location ) - The final position of the ray . \u8fd4\u56de : list ( carla . LabelledPoint ) enable _ environment _ objects ( self , env _ objects _ ids , enable ) snippet \u2192 \u542f\u7528 \u6216 \u7981\u7528 \u4e00\u7ec4 \u7531 \u5176 id \u6807\u8bc6 \u7684 \u73af\u5883 \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u5c06 \u4ece \u5173\u5361 \u4e2d \u51fa\u73b0 \u6216 \u6d88\u5931 \u3002 \u53c2\u6570 : env _ objects _ ids ( set ( int ) ) - \u8981 \u66f4\u6539 \u7684 \u73af\u5883 \u5bf9\u8c61 ID \u96c6 \u3002 enable ( bool ) - \u5e94\u7528 \u4e8e \u96c6\u5408 \u4e2d \u6240\u6709 \u73af\u5883 \u5bf9\u8c61 \u7684 \u72b6\u6001 \u3002 freeze _ all _ traffic _ lights ( self , frozen ) \u51bb\u7ed3 \u6216 \u89e3\u51bb \u573a\u666f \u4e2d \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u51bb\u7ed3 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u4f46 \u65f6\u95f4 \u4e0d\u4f1a \u66f4\u65b0 \u5b83\u4eec \uff0c \u76f4\u5230 \u89e3\u51bb \u3002 \u53c2\u6570 : frozen ( bool ) ground _ projection ( self , location , search _ distance ) \u5728 \u573a\u666f \u4e2d \u5411\u4e0b \u6295\u5f71 \u6307\u5b9a \u70b9 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u4ece \u4f4d\u7f6e ( 0 , 0 , - 1 ) \uff08 \u5411\u4e0b \uff09 \u6295\u5c04 \u4e00\u6761 \u5c04\u7ebf \uff0c \u5e76 \u8fd4\u56de \u4e00\u4e2a carla . LabelledPoint \u5bf9\u8c61 \uff0c \u8be5 \u5bf9\u8c61 \u5177\u6709 \u8be5 \u5c04\u7ebf \u76f8\u4ea4 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u51e0\u4f55 \u51e0\u4f55\u4f53 \uff08 \u901a\u5e38 \u662f \u5730\u9762 \uff09 \u3002 \u5982\u679c \u5728 search _ distance \u8303\u56f4 \u5185 \u627e\u5230 \u672a\u627e\u5230 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \uff0c \u5219 \u51fd\u6570 \u8fd4\u56de None \u3002 \u53c2\u6570 : location ( carla . Location ) - \u8981 \u6295\u5f71 \u7684 \u70b9 \u3002 search _ distance ( float ) - \u6267\u884c \u6295\u5f71 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 \u8fd4\u56de : carla . LabelledPoint load _ map _ layer ( self , map _ layers ) snippet \u2192 \u52a0\u8f7d \u56fe\u5c42 \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u8be5 \u5c42\u6b21 \u5df2\u7ecf \u52a0\u8f7d \u5219 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 \uff1a map _ layers ( carla . MapLayer ) - \u52a0\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u7684 \u63a9\u819c \u3002 \u8b66\u544a \uff1a \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 on _ tick ( self , callback ) \u6b64 \u65b9\u6cd5 \u7528\u4e8e \u5f02\u6b65 \u6a21\u5f0f \u3002 \u5b83 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9a\u4e49 \u7684 callback \u51fd\u6570 \u542f\u52a8 \u56de\u8c03 \uff0c \u5e76 \u8fd4\u56de \u56de\u8c03 \u7684 ID \u3002 \u6bcf\u5f53 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u65f6 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \uff0c \u5c31 \u4f1a \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 \u5b83 \u9700\u8981 \u4e00\u4e2a carla . WorldSnapshot \u4f5c\u4e3a \u53c2\u6570 \uff0c \u8fd9 \u53ef\u4ee5 \u4ece wait _ for _ tick ( ) \u83b7\u5f97 \u3002 \u4f7f\u7528 remove _ on _ tick ( ) \u6765 \u505c\u6b62 \u56de\u8c03 \u3002 \u53c2\u6570 \uff1a callback ( carla . WorldSnapshot ) - \u5c06 \u5feb\u7167 \u4f5c\u4e3a \u5f3a\u5236 \u53c2\u6570 \u7684 \u51fd\u6570 \uff0c \u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u5c06 \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 \u8fd4\u56de : int project _ point ( self , location , direction , search _ distance ) \u5c06 \u6307\u5b9a \u70b9 \u6295\u5f71 \u5230 \u573a\u666f \u4e2d \u7684 \u6240 \u9700 \u65b9\u5411 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u4ece \u67d0\u4e2a \u65b9\u5411 \u7684 \u67d0\u4e2a \u4f4d\u7f6e \u6295\u5c04 \u4e00\u6761 \u5c04\u7ebf \uff0c \u5e76 \u8fd4\u56de \u4e00\u4e2a \u5e26\u6709 \u8be5 \u5c04\u7ebf \u76f8\u4ea4 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 carla . Labelled \u5bf9\u8c61 \u3002 \u5982\u679c \u5728 search _ distance \u8303\u56f4 \u5185 \u627e\u5230 \u672a\u627e\u5230 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \uff0c \u5219 \u51fd\u6570 \u8fd4\u56de None \u3002 \u53c2\u6570 : location ( carla . Location ) - \u8981 \u6295\u5f71 \u7684 \u70b9 \u3002 direction ( carla . Vector3D ) - \u6295\u5f71 \u65b9\u5411 \u3002 search _ distance ( float ) - \u6267\u884c \u6295\u5f71 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 \u8fd4\u56de : carla . LabelledPoint remove _ on _ tick ( self , callback _ id ) \u505c\u6b62 \u4ee5 on _ tick ( ) \u542f\u52a8 \u7684 \u56de\u8c03 callback _ id \u3002 \u53c2\u6570 : callback _ id ( callback ) - \u8981 \u5220\u9664 \u7684 \u56de\u8c03 \u3002 \u521b\u5efa \u56de\u8c03 \u65f6 \u8fd4\u56de ID \u3002 reset _ all _ traffic _ lights ( self ) \u5c06 \u5730\u56fe \u4e2d \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5468\u671f \u91cd\u7f6e \u4e3a \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \u3002 spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) snippet \u2192 \u8be5 \u65b9\u6cd5 \u5c06 \u521b\u5efa \u3001 \u8fd4\u56de \u5e76 \u751f\u6210 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5230 \u4e16\u754c \u4e2d \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u9700\u8981 \u521b\u5efa \u53ef\u7528 \u7684 \u84dd\u56fe \u548c \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u5b83 \u8fd8 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u5177\u6709 \u7279\u5b9a \u9644\u4ef6 \u7c7b\u578b \u7684 \u7236\u7ea7 \u3002 \u53c2\u6570 : blueprint ( carla . ActorBlueprint ) - \u5c06 \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5f15\u7528 \u3002 transform ( carla . Transform ) - \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u6210 \u65f6 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 attach _ to ( carla . Actor ) - \u751f\u6210 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8ddf\u968f \u7684 \u7236 \u5bf9\u8c61 \u3002 attachment ( carla . AttachmentType ) - \u6839\u636e \u5176\u7236 \u5bf9\u8c61 \u786e\u5b9a \u4f4d\u7f6e \u53d8\u5316 \u7684 \u56fa\u5b9a \u548c \u4e25\u5bc6 \u7a0b\u5ea6 \u3002 \u8fd4\u56de : carla . Actor tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5373 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u8ba1\u7b97 \u4e0b \u4e00\u5e27 \u4e4b\u524d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u8fd9\u4e2a \u65b9\u6cd5 \u5c06 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5e76 \u8ba9 \u4f4d\u4e8e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5b83 \u8fd4\u56de \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u7684 \u65b0 \u5e27 ID \u3002 \u53c2\u6570 \uff1a seconds ( float - \u79d2 ) - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e94\u8be5 \u7b49\u5f85 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u6700\u5927 \u65f6\u95f4 \u3002 \u5b83 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 10.0 \u3002 \u8fd4\u56de \uff1a int \u6ce8\u610f \uff1a \u5982\u679c \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u6ca1\u6709 \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4eff\u771f \u5c06 \u51bb\u7ed3 \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u4ece \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a5\u6536 \u5230 \u8bb8\u591a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5219 \u53ef\u80fd \u5b58\u5728 \u540c\u6b65 \u95ee\u9898 \u3002 \u8bf7 \u9605\u8bfb \u6709\u5173 __ \u540c\u6b65 \u6a21\u5f0f __ \u7684 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 try _ spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) \u548c spawn _ actor ( ) \u4e00\u6837 \uff0c \u4f46\u662f \u5355 \u5931\u8d25 \u65f6\u5019 \u8fd4\u56de None \u800c \u4e0d\u662f \u629b\u51fa \u5f02\u5e38 \u3002 \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) - \u5c06 \u4ece\u4e2d \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5f15\u7528 \u3002 transform ( carla . Transform ) - \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u4f7f\u7528 \u7684 \u4f4d\u7f6e \u548c \u671d\u5411 \u3002 attach _ to ( carla . Actor ) - \u6d3e\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8ddf\u968f \u7684 \u7236 \u5bf9\u8c61 \u3002 attachment ( carla . AttachmentType ) - \u6839\u636e \u5176\u7236 \u5bf9\u8c61 \u786e\u5b9a \u4f4d\u7f6e \u66f4\u6539 \u7684 \u56fa\u5b9a \u548c \u4e25\u683c \u7a0b\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Actor unload _ map _ layer ( self , map _ layers ) snippet \u2192 \u5c06 \u9009\u5b9a \u7684 \u56fe\u5c42 \u5378\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u5c42 \u5df2\u7ecf \u5378\u8f7d \uff0c \u5219 \u8c03\u7528 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 : map _ layers ( carla . MapLayer ) - \u8981 \u5378\u8f7d \u56fe\u5c42 \u7684 \u63a9\u819c \u3002 \u8b66\u544a : \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 wait _ for _ tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u4f7f\u7528 \u5f02\u6b65 \u6a21\u5f0f \u3002 \u5b83 \u4f7f \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u5f53 \u8ba1\u7b97 \u4e0b \u4e00\u5e27 \u65f6 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u52fe\u9009 \u5e76 \u8fd4\u56de \u63cf\u8ff0 \u4e16\u754c \u65b0 \u72b6\u6001 \u7684 \u5feb\u7167 \u3002 \u53c2\u6570 : seconds ( float - seconds ) - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u6ef4\u7b54 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 10.0 \u3002 \u8fd4\u56de : carla . WorldSnapshot","title":"\u65b9\u6cd5"},{"location":"python_api/#_235","text":"get _ actor ( self , actor _ id ) \u901a\u8fc7 ID \u67e5\u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5982\u679c \u627e\u5230 \u672a\u627e\u5230 \u5219 \u8fd4\u56de None \u3002 \u53c2\u6570 : actor _ id ( int ) \u8fd4\u56de : carla . Actor get _ actors ( self , actor _ ids = None ) \u68c0\u7d22 carla . Actor \u5143\u7d20 \u5217\u8868 \uff0c \u4f7f\u7528 \u63d0\u4f9b \u7684 ID \u5217\u8868 \u6216\u4ec5 \u5217\u51fa \u821e\u53f0 \u4e0a \u7684 \u6bcf\u4e2a \u4eba \u3002 \u5982\u679c \u4e00\u4e2a ID \u4e0d \u4e0e \u4efb\u4f55 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u5bf9 \u5e94 \uff0c \u5b83 \u5c06 \u88ab \u6392\u9664 \u5728 \u8fd4\u56de \u7684 \u5217\u8868 \u4e4b\u5916 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 ID \u5217\u8868 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u53ef\u80fd \u5177\u6709 \u4e0d\u540c \u7684 \u957f\u5ea6 \u3002 \u53c2\u6570 : actor _ ids ( list ) - \u6b63\u5728 \u641c\u7d22 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u8bbe\u7f6e \u4e3a None \u5e76 \u8fd4\u56de \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de : carla . ActorList get _ blueprint _ library ( self ) \u8fd4\u56de \u53ef\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u5217\u8868 \uff0c \u4ee5 \u65b9\u4fbf \u5b83\u4eec \u5728 \u4e16\u754c \u4e2d \u7684 \u751f\u6210 \u3002 \u8fd4\u56de : carla . BlueprintLibrary get _ environment _ objects ( self , object _ type = Any ) \u8fd4\u56de \u5177\u6709 \u8bf7\u6c42 \u7684 \u8bed\u4e49 \u6807\u8bb0 \u7684 EnvironmentObject \u5217\u8868 \u3002 \u8be5 \u65b9\u6cd5 \u9ed8\u8ba4 \u8fd4\u56de \u5173\u5361 \u4e2d \u7684 \u6240\u6709 \u73af\u5883 \u5bf9\u8c61 \uff0c \u4f46 \u53ef\u4ee5 \u4f7f\u7528 object _ type \u53c2\u6570 \u901a\u8fc7 \u8bed\u4e49 \u6807\u7b7e \u8fc7\u6ee4 \u67e5\u8be2 \u3002 \u53c2\u6570 : object _ type ( carla . CityObjectLabel ) - Semantic tag of the \u8fd4\u56de \u7684 EnvironmentObjects \u3002 \u8fd4\u56de : array ( carla . EnvironmentObject ) get _ level _ bbs ( self , actor _ type = Any ) \u8fd4\u56de \u4e00\u4e2a \u8fb9\u754c \u6846 \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8be5 \u65b9\u6cd5 \u9ed8\u8ba4 \u8fd4\u56de \u8be5 \u7ea7\u522b \u4e2d \u7684 \u6240\u6709 \u8fb9\u754c \u6846 \uff0c \u4f46 \u53ef\u4ee5 \u4f7f\u7528 actor _ type \u53c2\u6570 \u901a\u8fc7 \u8bed\u4e49 \u6807\u7b7e \u8fc7\u6ee4 \u67e5\u8be2 \u3002 \u53c2\u6570 : actor _ type ( carla . CityObjectLabel ) - \u8fd4\u56de \u7684 \u8fb9\u754c \u6846\u4e2d \u5305\u542b \u7684 \u5143\u7d20 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8fd4\u56de : array ( carla . BoundingBox ) get _ lightmanager ( self ) \u8fd4\u56de carla . LightManager \u7684 \u5b9e\u4f8b \uff0c \u53ef \u7528\u4e8e \u5904\u7406 \u573a\u666f \u4e2d \u7684 \u706f\u5149 \u3002 \u8fd4\u56de : carla . LightManager get _ map ( self ) \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bf7\u6c42 \u5305\u542b \u6620\u5c04 \u6587\u4ef6 \u7684 XODR \uff0c \u5e76 \u5c06 \u5176 \u89e3\u6790 \u4e3a carla . Map \u8fd4\u56de \u3002 \u8fd4\u56de : carla . Map \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u4eff\u771f \u3002 \u5b83 \u4ee3\u4ef7 \u5f88 \u9ad8 \uff0c \u5e76\u4e14 \u53ea\u80fd \u8c03\u7528 \u4e00\u6b21 \u3002 get _ names _ of _ all _ objects ( self ) \u8fd4\u56de \u573a\u666f \u4e2d \u53ef\u4ee5 \u4f7f\u7528 \u5e94\u7528 \u7eb9\u7406 \u51fd\u6570 \u7ed8\u5236 \u7684 \u6240\u6709 \u5bf9\u8c61 \u7684 \u540d\u79f0 \u5217\u8868 \u3002 \u8fd4\u56de : list ( str ) get _ random _ location _ from _ navigation ( self ) \u8fd9 \u53ea\u80fd \u4e0e \u884c\u4eba \u4e00\u8d77 \u4f7f\u7528 \u3002 \u5b83 \u4f7f\u7528 carla . WalkerAIController \u4e2d \u7684 go _ to _ location ( ) \u65b9\u6cd5 \u68c0\u7d22 \u8981 \u7528\u4f5c \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u968f\u673a \u4f4d\u7f6e \u3002 \u8be5 \u4f4d\u7f6e \u5c06 \u662f \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u9053\u8def \u3001 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u548c \u8349\u5730 \u533a\u57df \u4e0d \u5305\u62ec \u5728\u5185 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8003\u8651 \u73b0\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \uff0c \u56e0\u6b64 \u5982\u679c \u5728 \u5c1d\u8bd5 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u53d1\u751f \u78b0\u649e \uff0c \u5b83 \u5c06 \u8fd4\u56de \u9519\u8bef \u3002 \u770b \u4e00\u4e0b \u4f8b\u5b50 generate _ traffic . py \u3002 \u8fd4\u56de : carla . Location get _ settings ( self ) \u8fd4\u56de \u4e00\u4e2a \u5bf9\u8c61 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u4eff\u771f \u7684 \u4e00\u4e9b \u6570\u636e \uff0c \u4f8b\u5982 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u6216 \u6e32\u67d3 \u6a21\u5f0f \u3002 \u8fd4\u56de : carla . WorldSettings get _ snapshot ( self ) \u8fd4\u56de \u67d0\u4e2a \u65f6\u523b \u7684 \u4e16\u754c \u5feb\u7167 \uff0c \u5305\u542b \u6709\u5173 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u8fd4\u56de : carla . WorldSnapshot get _ spectator ( self ) snippet \u2192 \u8fd4\u56de \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u662f \u865a\u5e7b \u5f15\u64ce \u521b\u5efa \u7684 \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u901a\u5e38 ID = 0 \uff0c \u5145\u5f53 \u6444\u50cf \u6444\u50cf\u673a \u5e76 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \u4e2d \u7684 \u89c6\u56fe \u3002 \u8fd4\u56de : carla . Actor get _ traffic _ light ( self , landmark ) \u63d0\u4f9b \u4e00\u4e2a \u5730\u6807 \uff0c \u8fd4\u56de \u5b83 \u63cf\u8ff0 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u5bf9\u8c61 \u3002 \u53c2\u6570 : landmark ( carla . Landmark ) - \u63cf\u8ff0 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u8fd4\u56de : carla . TrafficLight get _ traffic _ light _ from _ opendrive _ id ( self , traffic _ light _ id ) \u8fd4\u56de \u4e0e \u6307\u793a \u7684 OpenDRIVE id \u5bf9\u5e94 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53c2\u6570 : traffic _ light _ id ( str ) - The OpenDRIVE id . \u8fd4\u56de : carla . TrafficLight get _ traffic _ lights _ from _ waypoint ( self , waypoint , distance ) \u6b64 \u51fd\u6570 \u6cbf\u7740 \u6307\u5b9a \u8def\u70b9 \u524d\u9762 \u7684 \u9053\u8def \u6267\u884c \u641c\u7d22 \uff0c \u5e76 \u8fd4\u56de \u5728 \u6307\u5b9a \u641c\u7d22 \u8ddd\u79bb \u5185 \u627e\u5230 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u3002 \u53c2\u6570 : waypoint ( carla . Waypoint ) - \u8f93\u5165 \u8def\u5f84 \u70b9 \u3002 distance ( float ) - \u641c\u7d22 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . TrafficLight ) get _ traffic _ lights _ in _ junction ( self , junction _ id ) \u8fd4\u56de \u5f71\u54cd junction _ id \u4e2d \u6307\u793a \u7684 \u8def\u53e3 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u3002 \u53c2\u6570 : junction _ id ( int ) - \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u7684 id \u3002 \u8fd4\u56de : list ( carla . TrafficLight ) get _ traffic _ sign ( self , landmark ) \u63d0\u4f9b \u4e00\u4e2a \u5730\u6807 \uff0c \u8fd4\u56de \u5b83 \u63cf\u8ff0 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u5bf9\u8c61 \u3002 \u53c2\u6570 : landmark ( carla . Landmark ) - \u63cf\u8ff0 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u8fd4\u56de : carla . TrafficSign get _ vehicles _ light _ states ( self ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f carla . Actor ID \uff0c \u503c \u662f \u8be5 \u8f66\u8f86 \u7684 carla . VehicleLightState \u3002 \u8fd4\u56de : dict get _ weather ( self ) \u68c0\u7d22 \u5305\u542b \u4eff\u771f \u4e2d \u5f53\u524d \u6d3b\u52a8 \u7684 \u5929\u6c14 \u53c2\u6570 \u7684 \u5bf9\u8c61 \uff0c \u4e3b\u8981 \u662f \u4e91\u91cf \u3001 \u964d\u6c34 \u6c34\u91cf \u964d\u6c34\u91cf \u3001 \u98ce \u548c \u592a\u9633 \u4f4d\u7f6e \u3002 \u8fd4\u56de : carla . WeatherParameters Setter : carla . World . set _ weather","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_236","text":"set _ pedestrians _ cross _ factor ( self , percentage ) \u53c2\u6570 : percentage ( float ) - \u8bbe\u7f6e \u53ef\u4ee5 \u5728 \u9053\u8def \u4e0a \u884c\u8d70 \u6216 \u5728 \u9053\u8def \u4e0a \u7684 \u4efb\u4f55 \u70b9 \u7a7f\u8d8a \u7684 \u884c\u4eba \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u503c\u5e94 \u4ecb\u4e8e 0.0 \u548c \u4e4b\u95f4 1.0 \u3002 \u4f8b\u5982 \uff0c \u503c 0.1 \u8868\u793a \u5141\u8bb8 10% \u7684 \u884c\u4eba \u5728 \u9053\u8def \u4e0a \u884c\u8d70 \u3002 \u9ed8\u8ba4 \u4e3a 0.0 \u3002 \u7b14\u8bb0 : \u5e94 \u5728 \u884c\u4eba \u751f\u6210 \u4e4b\u524d \u8bbe\u7f6e \u3002 set _ pedestrians _ seed ( self , seed ) \u53c2\u6570 : seed ( int ) - \u8bbe\u7f6e \u7528\u4e8e \u751f\u6210 \u4e0e \u884c\u4eba \u76f8\u5173 \u7684 \u4efb\u4f55 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u7684 \u79cd\u5b50 \u3002 \u7b14\u8bb0 : \u5e94 \u5728 \u884c\u4eba \u751f\u6210 \u4e4b\u524d \u8bbe\u7f6e \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u6bcf\u4e2a \u884c\u4eba \u91cd\u590d \u76f8\u540c \u7684 \u8eab\u4f53 \uff08 \u84dd\u56fe \uff09 \uff0c \u8bf7 \u5728 Python \u4ee3\u7801 \uff08 \u968f\u673a \u9009\u62e9 \u84dd\u56fe \uff09 \u548c \u6b64\u5904 \u4f7f\u7528 \u76f8\u540c \u7684 \u79cd\u5b50 \uff0c \u5426\u5219 \u884c\u4eba \u5c06 \u91cd\u590d \u76f8\u540c \u7684 \u8def\u5f84 \uff0c \u4f46 \u8eab\u4f53 \u4f1a \u4e0d\u540c \u3002 set _ weather ( self , weather ) \u5c06 \u6a21\u62df \u7684 \u5929\u6c14 \u53c2\u6570 \u66f4 \u6539\u4e3a \u5bf9\u8c61 \u4e2d \u5b9a\u4e49 \u7684 \u5176\u4ed6 \u53c2\u6570 \u3002 \u53c2\u6570 : weather ( carla . WeatherParameters ) - \u8981 \u5e94\u7528 \u7684 \u65b0 \u6761\u4ef6 \u3002 \u83b7\u53d6 \u5668 : carla . World . get _ weather","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_237","text":"__ str __ ( self ) \u4e16\u754c \u7684 \u5185\u5bb9 \u88ab \u89e3\u6790 \u6253\u5370 \u5e76\u6253\u5370 \u4e3a \u5f53\u524d \u72b6\u6001 \u7684 \u7b80\u77ed \u62a5\u544a \u3002 \u8fd4\u56de : string","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaworldsettings","text":"\u8be5 \u4eff\u771f \u5177\u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u914d\u7f6e \u9009\u9879 \uff0c \u8fd9\u4e9b \u9009\u9879 \u5305\u542b \u5728 \u6b64\u7c7b \u4e2d \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u4f7f\u7528 carla . World \u53ca\u5176 \u65b9\u6cd5 \u8fdb\u884c \u7ba1\u7406 \u3002 \u8fd9\u4e9b \u5141\u8bb8 \u7528\u6237 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 / \u5f02\u6b65 \u3001 \u6fc0\u6d3b \u201c \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u201d \u4ee5\u53ca \u4eff\u771f \u662f\u5426 \u5e94 \u4ee5 \u56fa\u5b9a \u6216 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \u3002 \u5982\u679c \u60a8 \u60f3 \u4e86\u89e3 \u7684\u8bdd \u8bf7 \u67e5\u770b \u6b64 \u5185\u5bb9 \u3002","title":"carla . WorldSettings"},{"location":"python_api/#_238","text":"synchronous _ mode ( bool ) \u8868\u793a \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a true \u65f6 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4ee5\u4fbf \u7ee7\u7eed \u524d\u8fdb \u7ee7\u7eed\u524d\u8fdb \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a false \u3002 no _ rendering _ mode ( bool ) \u542f\u7528 \u540e \uff0c \u4eff\u771f \u5c06 \u6839\u672c \u4e0d \u8fd0\u884c \u6e32\u67d3 \u3002 \u8fd9 \u4e3b\u8981 \u7528\u4e8e \u907f\u514d \u7e41\u5fd9 \u4ea4\u901a \u4eff\u771f \u671f\u95f4 \u7684 \u5f00\u9500 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a false \u3002 fixed _ delta _ seconds ( float ) \u786e\u4fdd \u4eff\u771f \u7684 \u4e24\u4e2a \u6b65\u9aa4 \u4e4b\u95f4 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u662f \u56fa\u5b9a \u7684 \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0.0 \u4ee5 \u4f7f\u7528 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \uff0c \u5c31 \u50cf \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u53d1\u751f \u7684 \u90a3\u6837 \u3002 substepping ( bool ) \u542f\u7528 \u7269\u7406 \u5b50 \u6b65\u8fdb \u3002 \u6b64 \u9009\u9879 \u5141\u8bb8 \u8ba1\u7b97 \u4e24\u4e2a \u6e32\u67d3 \u5e27 \u4e4b\u95f4 \u7684 \u4e00\u4e9b \u7269\u7406 \u5b50 \u6b65\u9aa4 \u3002 \u5982\u679c \u8bbe\u7f6e \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u5b50 \u6b65\u9aa4 \u7684 \u6570\u91cf \u53ca\u5176 \u65f6\u95f4 \u95f4\u9694 \u662f \u56fa\u5b9a \u7684 \u5e76 \u8fdb\u884c \u8ba1\u7b97 \uff0c \u4ee5\u4fbf \u6ee1\u8db3 carla . WorldSettings . max _ substep \u548c carla . WorldSettings . max _ substep _ delta _ time \u7684 \u8981\u6c42 \u3002 \u6700\u540e \u4e24\u4e2a \u53c2\u6570 \u9700\u8981 \u4e0e carla . WorldSettings . fixed _ delta _ seconds \u517c\u5bb9 \u3002 \u9ed8\u8ba4 \u542f\u7528 \u3002 max _ substep _ delta _ time ( float ) \u5b50 \u6b65\u9aa4 \u7684 \u6700\u5927 \u589e\u91cf \u65f6\u95f4 \u3002 \u5982\u679c carla . WorldSettingsmax _ substep \u8db3\u591f \u9ad8 \uff0c \u5219 \u5b50\u6b65 \u589e\u91cf \u65f6\u95f4 \u5c06 \u59cb\u7ec8 \u4f4e\u4e8e \u6216 \u7b49\u4e8e \u8be5\u503c \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a 0.01 \u3002 max _ substeps ( int ) \u5141\u8bb8 \u7684 \u6700\u5927 \u7269\u7406 \u5b50 \u6b65\u6570 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a 10 \u3002 max _ culling _ distance ( float ) \u914d\u7f6e \u5173\u5361 \u4e2d \u6bcf\u4e2a \u7f51\u683c \u7684 \u6700\u5927 \u7ed8\u5236 \u8ddd\u79bb \u3002 deterministic _ ragdolls ( bool ) \u5b9a\u4e49 \u662f\u5426 \u5bf9 \u884c\u4eba \u6b7b\u4ea1 \u52a8\u753b \u6216 \u7269\u7406 \u5a03\u5a03 \u5e03\u5a03\u5a03 \u4eff\u771f \u4f7f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7269\u7406 \u3002 \u542f\u7528 \u540e \uff0c \u884c\u4eba \u7684 \u6b7b\u4ea1 \u52a8\u753b \u4e0d\u592a \u771f\u5b9e \uff0c \u4f46 \u786e\u4fdd \u4e86 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 \u7981\u7528 \u540e \uff0c \u884c\u4eba \u5c06 \u88ab \u4eff\u771f \u4e3a \u5a03\u5a03 \u5e03\u5a03\u5a03 \uff0c \u5177\u6709 \u66f4 \u771f\u5b9e \u7684 \u4eff\u771f \u548c \u78b0\u649e \uff0c \u4f46 \u65e0\u6cd5 \u786e\u4fdd \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 tile _ stream _ distance ( float ) \u4ec5 \u7528\u4e8e \u5927\u578b \u5730\u56fe \u3002 \u914d\u7f6e \u4ece \u82f1\u96c4 \u8f66\u8f86 \u4f20\u8f93 \u74e6\u7247 \u5730\u56fe \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 \u6b64 \u8303\u56f4 \u5185 \u7684 \u5730\u56fe \u533a\u57df \u5c06 \u53ef\u89c1 \uff08 \u5e76\u4e14 \u80fd\u591f \u4eff\u771f \u7269\u7406 \uff09 \u3002 \u8be5 \u533a\u57df \u4e4b\u5916 \u7684 \u533a\u57df \u5c06 \u4e0d\u4f1a \u88ab \u52a0\u8f7d \u3002 actor _ active _ distance ( float ) \u4ec5 \u7528\u4e8e \u5927\u578b \u5730\u56fe \u3002 \u914d\u7f6e \u4e0e \u82f1\u96c4 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u4ee5 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8f6c\u6362 \u4e3a \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u5728 \u6b64 \u8303\u56f4 \u5185 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5904\u4e8e \u6d3b\u8dc3 \u72b6\u6001 \uff0c \u800c \u5728 \u8be5 \u8303\u56f4 \u4e4b\u5916 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 spectator _ as _ ego ( bool ) \u4ec5 \u7528\u4e8e \u5927\u578b \u5730\u56fe \u3002 \u5b9a\u4e49 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bf9\u5927 \u5730\u56fe \u4e2d \u56fe\u5757 \u52a0\u8f7d \u7684 \u5f71\u54cd \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5728 \u6ca1\u6709 \u81ea\u6211 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5c06 \u5f15\u53d1 \u76f8\u90bb \u56fe\u5757 \u7684 \u52a0\u8f7d \u3002 \u5bf9\u4e8e \u7acb\u5373 \u4ea7\u751f \u81ea\u6211 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6765\u8bf4 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5e26\u6765 \u4e0d\u4fbf \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_239","text":"__ init __ ( self , synchronous _ mode = False , no _ rendering _ mode = False , fixed _ delta _ seconds = 0.0 , max _ culling _ distance = 0.0 , deterministic _ ragdolls = False , tile _ stream _ distance = 3000 , actor _ active _ distance = 2000 , spectator _ as _ ego = True ) \u521b\u5efa \u4e00\u4e2a \u5305\u542b \u6240 \u9700 \u8bbe\u7f6e \u7684 \u5bf9\u8c61 \uff0c \u8fd9\u4e9b \u8bbe\u7f6e \u7a0d\u540e \u53ef\u4ee5 \u901a\u8fc7 carla . World \u53ca\u5176 \u65b9\u6cd5 apply _ settings ( ) \u5e94\u7528 \u3002 \u53c2\u6570 : synchronous _ mode ( bool ) - \u542f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5219 \u8bbe\u7f6e \u4e3a true \u3002 no _ rendering _ mode ( bool ) - \u5728 \u4eff\u771f \u4e2d \u5b8c\u5168 \u7981\u7528 \u6e32\u67d3 \u5219 \u8bbe\u7f6e \u4e3a true \u3002 fixed _ delta _ seconds ( float - seconds ) - \u5728 \u5e27 \u4e4b\u95f4 \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u7684 \u6b65\u957f \u3002 0.0 \u610f\u5473 \u610f\u5473\u7740 \u53d8 \u6b65\u957f \u4e14 \u4e3a \u6a21\u5f0f \u6a21\u5f0f \u3002 max _ culling _ distance ( float - \u7c73 ) - \u5bf9\u4e8e \u5173\u5361 \u7684 \u6bcf \u4e00\u4e2a \u7f51\u683c \u914d\u7f6e \u6700\u5927 \u7684 \u7ed8\u5236 \u8ddd\u79bb \u3002 deterministic _ ragdolls ( bool ) - \u5bf9\u4e8e \u884c\u4eba \u6b7b\u4ea1 \u4f7f\u7528 \u786e\u5b9a \u7684 \u7269\u7406 \u6216 \u5a03\u5a03 \u5e03\u5a03\u5a03 \u4eff\u771f \u5b9a\u4e49 wether \u3002 tile _ stream _ distance ( float - \u7c73 ) - \u4ec5 \u7528\u4e8e \u5927 \u5730\u56fe \u3002 \u4ece \u82f1\u96c4 \u8f66\u8f86 \u5230\u6d41 \u74e6\u7247 \u5730\u56fe \u914d\u7f6e \u6700\u5927 \u8ddd\u79bb \u3002 actor _ active _ distance ( float - \u7c73 ) - \u4ec5 \u7528\u4e8e \u5927 \u5730\u56fe \u3002 \u914d\u7f6e \u4e0e \u82f1\u96c4 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u4ee5 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8f6c\u6362 \u4e3a \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 spectator _ as _ ego ( bool ) - \u4ec5 \u7528\u4e8e \u5927 \u5730\u56fe \u3002 \u5728 \u5927\u578b \u8d34\u56fe \u4e2d \u5b9a\u4e49 \u89c2\u4f17 \u5bf9 \u5e73\u94fa \u52a0\u8f7d \u7684 \u5f71\u54cd \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_240","text":"__ eq __ ( self , other = carla . WorldSettings ) \u5982\u679c \u5bf9\u8c61 \u7684 \u53d8\u91cf \u76f8\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ ne __ ( self , other = carla . WorldSettings ) \u5982\u679c \u5bf9\u8c61 \u7684 \u53d8\u91cf \u4e0d\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u5bf9\u4e8e \u5b57\u7b26 \u5b57\u7b26\u4e32 \u89e3\u6790 \u5df2 \u5efa\u7acb \u7684 \u8bbe\u7f6e \u5e76 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u663e\u793a \u51fa\u6765 \u3002 \u8fd4\u56de : str","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaworldsnapshot","text":"\u5feb\u7167 \u5305\u62ec \u67d0\u4e00 \u65f6\u523b \u573a\u666f \u4e2d \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5b83 \u521b\u5efa \u5e76 \u7ed9\u51fa \u4e00\u4e9b \u5217 \u5305\u542b carla . ActorSnapshot \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6bcf \u4e00\u4e2a \u4e0d\u80fd \u5b58\u50a8 \u7684 \u6ef4\u7b54 \u4fe1\u53f7 \u4e2d \u83b7\u53d6 \u4e00\u4e2a \u65b0 \u7684 \u5feb\u7167 \u3002","title":"carla . WorldSnapshot"},{"location":"python_api/#_241","text":"id ( int ) \u4e3a\u4e86 \u5206\u8fa8 \u6bcf \u4e00\u4e2a \u5feb\u7167 \u7684 \u552f\u4e00 \u503c \u3002 frame ( int ) \u83b7\u53d6 \u5feb\u7167 \u65f6 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 timestamp ( carla . Timestamp - seconds ) \u83b7\u53d6 \u5feb\u7167 \u65f6\u5019 \u7684 \u7cbe\u786e \u65f6\u523b \u3002 \u7531 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7ed9\u51fa \u7684 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u7684 \u7c7b \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_242","text":"find ( self , actor _ id ) \u7ed9\u51fa \u67d0\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \uff0c \u8fd4\u56de \u5bf9\u5e94 \u7684 \u5feb\u7167 \uff0c \u5982\u679c \u6ca1\u6709 \u627e\u5230 \u5219 \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a actor _ id ( int ) \u8fd4\u56de : carla . ActorSnapshot has _ actor ( self , actor _ id ) \u7ed9\u51fa \u67d0\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \uff0c \u5982\u679c \u6709 \u5bf9\u5e94 \u7684 \u5feb\u7167 \u5219 \u68c0\u67e5 \uff0c \u5982\u679c \u5728 \u8fd9\u4e2a \u65f6\u523b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u51fa\u73b0 \u3002 \u53c2\u6570 \uff1a actor _ id ( int ) \u8fd4\u56de \uff1a bool","title":"\u65b9\u6cd5"},{"location":"python_api/#_243","text":"__ eq __ ( self , other = carla . WorldSnapshot ) \u5982\u679c \u65f6\u95f4 \u6233 timestamp \u76f8\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ iter __ ( self ) \u5728 \u5b58\u50a8 \u7684 \u5feb\u7167 \u4e0a \u8fdb\u884c \u8fed\u4ee3 carla . ActorSnapshot \u3002 __ len __ ( self ) \u8fd4\u56de \u5728 \u8be5 \u5feb\u7167 \u4e0a \u5448\u73b0 \u7684 carla . ActorSnapshot \u7684 \u6570\u91cf \u3002 \u8fd4\u56de : int __ ne __ ( self , other = carla . WorldSnapshot ) \u5982\u679c \u65f6\u95f4 \u6233 timestamp \u90fd \u4e0d\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#commandapplyangularimpulse","text":"carla . Actor \u4e2d add _ angular _ impulse ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f7f\u7528 angular impulse \u3002","title":"command . ApplyAngularImpulse"},{"location":"python_api/#_244","text":"actor _ id ( int ) Actor affected by the command . impulse ( carla . Vector3D - degrees * s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u7684 \u89d2 \u51b2\u91cf \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_245","text":"__ init __ ( self , actor , impulse ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 impulse ( carla . Vector3D - degrees * s )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplyforce","text":"carla . Actor \u4e2d add _ force ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65bd\u52a0 \u4e00\u4e2a \u529b \u3002","title":"command . ApplyForce"},{"location":"python_api/#_246","text":"actor _ id ( int ) \u88ab \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 force ( carla . Vector3D - N ) \u5728 \u65f6\u95f4 \u4e0a \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65bd\u52a0 \u529b \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_247","text":"__ init __ ( self , actor , force ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u65bd\u52a0 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 force ( carla . Vector3D - N )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplyimpulse","text":"carla . Actor \u4e2d add _ impulse ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u6700 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65bd\u52a0 \u7684 impulse \u3002","title":"command . ApplyImpulse"},{"location":"python_api/#_248","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 impulse ( carla . Vector3D - N * s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 Impulse \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_249","text":"__ init __ ( self , actor , impulse ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 impulse ( carla . Vector3D - N * s )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplytargetangularvelocity","text":"carla . Actor \u4e2d set _ target _ angular _ velocity ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002","title":"command . ApplyTargetAngularVelocity"},{"location":"python_api/#_250","text":"actor _ id ( int ) \u88ab \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 angular _ velocity ( carla . Vector3D - deg / s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e09\u7ef4 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_251","text":"__ init __ ( self , actor , angular _ velocity ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5c06\u8981 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 angular _ velocity ( carla . Vector3D - deg / s ) - \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplytargetvelocity","text":"carla . Actor \u4e2d set _ target _ velocity ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002","title":"command . ApplyTargetVelocity"},{"location":"python_api/#_252","text":"actor _ id ( int ) \u88ab \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 velocity ( carla . Vector3D - m / s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e09\u7ef4 \u901f\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_253","text":"__ init __ ( self , actor , velocity ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 velocity ( carla . Vector3D - m / s ) - \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplytorque","text":"carla . Actor \u4e2d add _ torque ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e94\u7528 torque \u3002","title":"command . ApplyTorque"},{"location":"python_api/#_254","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 torque ( carla . Vector3D - \u5ea6 ) \u5728 \u65f6\u95f4 \u4e0a \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e94\u7528 \u529b\u77e9 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_255","text":"__ init __ ( self , actor , torque ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u5b83 \u7684 ID \u3002 torque ( carla . Vector3D - \u5ea6 )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplytransform","text":"carla . Actor \u4e2d set _ transform ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbe\u7f6e \u65b0 \u7684 \u53d8\u6362 \u3002","title":"command . ApplyTransform"},{"location":"python_api/#_256","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 transform ( carla . Transform ) \u6240 \u4f7f\u7528 \u7684 \u53d8\u6362 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_257","text":"__ init __ ( self , actor , transform ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 transform ( carla . Transform )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplyvehicleackermanncontrol","text":"carla . Vehicle \u4e2d apply _ ackermann _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u67d0\u4e2a \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u63a7\u5236\u5668 \u3002","title":"command . ApplyVehicleAckermannControl"},{"location":"python_api/#_258","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 control ( carla . AckermannVehicleControl ) \u5e94\u7528 \u7684 \u8f66\u8f86 \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_259","text":"__ init __ ( self , actor , control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 control ( carla . AckermannVehicleControl )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplyvehiclecontrol","text":"in carla . Vehicle \u4e2d apply _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u67d0\u4e2a \u63a7\u5236 \u3002","title":"command . ApplyVehicleControl"},{"location":"python_api/#_260","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 control ( carla . VehicleControl ) \u5e94\u7528 \u7684 \u8f66\u8f86 \u63a7\u5236 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_261","text":"__ init __ ( self , actor , control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u5e94\u7528 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 control ( carla . VehicleControl )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplyvehiclephysicscontrol","text":"carla . Vehicle \u4e2d apply _ physics _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u4e00\u4e2a \u65b0 \u7684 \u7269\u7406 \u63a7\u5236 \uff0c \u4fee\u6539 \u5b83 \u7684 \u7269\u7406 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"command . ApplyVehiclePhysicsControl"},{"location":"python_api/#_262","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 physics _ control ( carla . VehiclePhysicsControl ) \u5e94\u7528 \u7684 \u7269\u7406 \u63a7\u5236 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_263","text":"__ init __ ( self , actor , physics _ control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 physics _ control ( carla . VehiclePhysicsControl )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplywalkercontrol","text":"carla . Walker \u4e2d apply _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u884c\u4eba \u5e94\u7528 \u63a7\u5236 \u3002","title":"command . ApplyWalkerControl"},{"location":"python_api/#_264","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 control ( carla . WalkerControl ) \u5e94\u7528 \u7684 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_265","text":"__ init __ ( self , actor , control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u5e94\u7528 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 control ( carla . WalkerControl )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplywalkerstate","text":"\u5bf9 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e94\u7528 \u72b6\u6001 \u3002 \u5bf9 \u521d\u59cb \u521d\u59cb\u5316 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3001 \u671d\u5411 \u548c \u901f\u5ea6 \u7279\u522b \u6709\u7528 \u3002","title":"command . ApplyWalkerState"},{"location":"python_api/#_266","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 transform ( carla . Transform ) \u5e94\u7528 \u7684 \u8f6c\u6362 \u3002 speed ( float - m / s ) \u5e94\u7528 \u7684 \u901f\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_267","text":"__ init __ ( self , actor , transform , speed ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5f15\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 transform ( carla . Transform ) speed ( float - m / s )","title":"\u65b9\u6cd5"},{"location":"python_api/#commanddestroyactor","text":"carla . Actor \u4e2d destroy ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \uff0c \u5c06 \u544a\u8bc9 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6467\u6bc1 \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5df2\u7ecf \u88ab \u6467\u6bc1 \u5219 \u6ca1\u6709 \u5f71\u54cd \u3002 \u5f53 \u5728 carla . Client \u4e2d \u6267\u884c apply _ batch _ sync ( ) \u5c06\u4f1a \u8fd4\u56de \u4e00\u4e2a \u5e03\u5c14 \u5e03\u5c14\u503c \u72b6\u6001 \u8868\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u88ab \u6210\u529f \u6467\u6bc1 \u3002","title":"command . DestroyActor"},{"location":"python_api/#_268","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_269","text":"__ init __ ( self , actor ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#commandresponse","text":"\u58f0\u660e \u547d\u4ee4 \u6267\u884c \u7684 \u7ed3\u679c \uff0c \u4e0d\u662f \u547d\u4ee4 \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \uff08 \u5f53 \u6210\u529f \u65f6 \uff09 \uff0c \u5c31\u662f \u9519\u8bef \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff08 \u5f53 \u5931\u8d25 \u65f6 \uff09 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u53d6\u51b3 \u53d6\u51b3\u4e8e \u547d\u4ee4 \u662f\u5426 \u6267\u884c \u6210\u529f \u3002 carla . Client \u4e2d \u7684 \u65b9\u6cd5 apply _ batch _ sync ( ) \u8fd4\u56de \u8fd9\u4e9b \u7684 \u5217\u8868 \u6765 \u603b\u7ed3 \u6279\u91cf \u7684 \u6267\u884c \u3002","title":"command . Response"},{"location":"python_api/#_270","text":"actor _ id ( int ) \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u58f0\u660e \u8be5 \u547d\u4ee4 \u6210\u529f \u4e86 \u3002 error ( str ) \u58f0\u660e \u547d\u4ee4 \u5931\u8d25 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_271","text":"has _ error ( self ) \u5982\u679c \u547d\u4ee4 \u6267\u884c \u5931\u8d25 \u5219 \u8fd4\u56de True \uff0c \u5982\u679c \u6210\u529f \u5219 \u8fd4\u56de False \u3002 \u8fd4\u56de : bool","title":"\u65b9\u6cd5"},{"location":"python_api/#commandsetautopilot","text":"carla . Vehicle \u4e2d set _ autopilot ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u6253\u5f00 / \u5173\u95ed \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u3002","title":"command . SetAutopilot"},{"location":"python_api/#_272","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool ) \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u5c06 \u88ab \u6fc0\u6d3b \u6216\u8005 \u5931\u6d3b \u3002 port ( uint16 ) \u6ce8\u518c \u6216 unlisted \u8f66\u8f86 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7aef\u53e3 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_273","text":"__ init __ ( self , actor , enabled , port = 8000 ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5e94\u7528 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 enabled ( bool ) port ( uint16 ) - \u6ce8\u518c \u6216 unlisted \u8f66\u8f86 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7aef\u53e3 \u3002 \u5982\u679c \u4f20\u9012 \u7684 \u662f None \uff0c \u4f1a \u8003\u8651 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u9ed8\u8ba4 \u7aef\u53e3 8000 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#commandsetenablegravity","text":"carla . Actor \u4e2d set _ enable _ gravity ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u7981\u7528 \u6216 \u542f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cd\u529b \u3002","title":"command . SetEnableGravity"},{"location":"python_api/#_274","text":"actor _ id ( carla . Actor or int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool )","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_275","text":"__ init __ ( self , actor , enabled ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u3002 enabled ( bool )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandsetsimulatephysics","text":"carla . Actor \u4e2d set _ simulate _ physics ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u786e\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u4f1a \u88ab \u7269\u7406 \u5f71\u54cd \u3002","title":"command . SetSimulatePhysics"},{"location":"python_api/#_276","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool ) \u662f\u5426 \u6fc0\u6d3b \u7269\u7406 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_277","text":"__ init __ ( self , actor , enabled ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 ID \u3002 enabled ( bool )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandsetvehiclelightstate","text":"carla . Vehicle \u4e2d set _ light _ state ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002","title":"command . SetVehicleLightState"},{"location":"python_api/#_278","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 light _ state ( carla . VehicleLightState ) \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_279","text":"__ init __ ( self , actor , light _ state ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 light _ state ( carla . VehicleLightState ) - Recaps \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \uff0c \u8fd9\u4e9b \u80fd \u88ab \u7528\u4f5c \u4e00\u4e2a \u6807\u5fd7 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#commandshowdebugtelemetry","text":"carla . Actor \u4e2d show _ debug _ telemetry ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u663e\u793a \u8f66\u8f86 \u7684 telemetry \u6570\u636e \u3002","title":"command . ShowDebugTelemetry"},{"location":"python_api/#_280","text":"actor _ id ( carla . Actor or int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool )","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_281","text":"__ init __ ( self , actor , enabled ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u3002 enabled ( bool )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandspawnactor","text":"carla . World \u4e2d spawn _ actor ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u57fa\u4e8e \u63d0\u4f9b \u7684 \u84dd\u56fe \u548c \u53d8\u6362 \u5728 \u4e16\u754c \u4e2d \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u63d0\u4f9b \u4e86 \u7236\u7c7b \uff0c \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06\u4f1a \u9644 \u5728 \u4e0a\u9762 \u3002","title":"command . SpawnActor"},{"location":"python_api/#_282","text":"transform ( carla . Transform ) \u5e94\u7528 \u7684 \u53d8\u6362 \u3002 parent _ id ( int ) \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6807\u5fd7 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_283","text":"__ init __ ( self ) __ init __ ( self , blueprint , transform ) \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) __ init __ ( self , blueprint , transform , parent ) \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) parent ( carla . Actor or int ) then ( self , command ) \u94fe\u63a5 \u4e00\u4e2a \u5176\u4ed6 \u5c06\u8981 \u7acb\u523b \u6267\u884c \u7684 \u547d\u4ee4 \u3002 \u5b83 \u5141\u8bb8 ease \u975e\u5e38 \u5e38\u89c1 \u7684 \u6d41 \uff0c \u6bd4\u5982 \u901a\u8fc7 \u547d\u4ee4 \u751f\u6210 \u4e00\u7ec4 \u8f66\u8f86 \uff0c \u5e76 \u4f7f\u7528 \u8be5 \u65b9\u6cd5 \u8bbe\u7f6e \u81ea\u52a8 \u9a7e\u9a76 \u3002 \u53c2\u6570 \uff1a command ( any carla Command ) - \u4e00\u4e2a Carla \u547d\u4ee4 \u3002 function CopyToClipboard ( containerid ) { if ( document . selection ) { var range = document . body . createTextRange ( ) ; range . moveToElementText ( document . getElementById ( containerid ) ) ; range . select ( ) . createTextRange ( ) ; document . execCommand ( \" copy \" ) ; } else if ( window . getSelection ) { var range = document . createRange ( ) ; range . selectNode ( document . getElementById ( containerid ) ) ; window . getSelection ( ) . addRange ( range ) ; document . execCommand ( \" copy \" ) ; } } function CloseSnipet ( ) { document . getElementById ( \" snipets - container \" ) . innerHTML = null ; } carla . World . enable _ environment _ objects \u4ee3\u7801 \u7247\u6bb5 # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u5728 \u5730\u56fe \u4e0a \u663e\u793a \u6216 \u9690\u85cf \u7279\u5b9a \u5efa\u7b51 \u3002 # Get the buildings in the world world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # \u8bbf\u95ee \u5355\u4e2a \u5efa\u7b51 IDs \u5e76 \u4fdd\u5b58 \u5230 \u4e00\u4e2a \u96c6\u5408 \u4e2d building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # \u9690\u85cf \u5efa\u7b51 world . enable _ environment _ objects ( objects _ to _ toggle , False ) # \u663e\u793a \u5efa\u7b51 world . enable _ environment _ objects ( objects _ to _ toggle , True ) Copy snippet Close snippet carla . DebugHelper . draw _ string \u4ee3\u7801 \u7247\u6bb5 # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u662f lane _ explorer . py \u793a\u4f8b \u7684 \u4fee\u6539 # \u5b83 \u5728 \u76f4\u63a5 \u4e2d \u7ed8\u5236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8def\u5f84 \uff0c \u6253\u5370 \u6bcf\u4e2a \u8def\u5f84 \u70b9 \u7684 \u4fe1\u606f \u3002 # ... current _ w = map . get _ waypoint ( vehicle . get _ location ( ) ) while True : next _ w = map . get _ waypoint ( vehicle . get _ location ( ) , lane _ type = carla . LaneType . Driving | carla . LaneType . Shoulder | carla . LaneType . Sidewalk ) # \u68c0\u67e5 \u8f66\u8f86 \u662f\u5426 \u5728 \u79fb\u52a8 if next _ w . id ! = current _ w . id : vector = vehicle . get _ velocity ( ) # Check if the vehicle is on a sidewalk if current _ w . lane _ type = = carla . LaneType . Sidewalk : draw _ waypoint _ union ( debug , current _ w , next _ w , cyan if current _ w . is _ junction else red , 60 ) else : draw _ waypoint _ union ( debug , current _ w , next _ w , cyan if current _ w . is _ junction else green , 60 ) debug . draw _ string ( current _ w . transform . location , str ( ' % 15.0 f km / h ' % ( 3.6 * math . sqrt ( vector . x * * 2 + vector . y * * 2 + vector . z * * 2 ) ) ) , False , orange , 60 ) draw _ transform ( debug , current _ w . transform , white , 60 ) # \u66f4\u65b0 \u5f53\u524d \u8def\u5f84 \u70b9 \u5e76 \u4f11\u7720 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 current _ w = next _ w time . sleep ( args . tick _ time ) # ... Copy snippet Close snippet Snippet for carla . World . unload _ map _ layer # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u5728 \u5206\u5c42 \u5730\u56fe \" _ Opt \" \u4e0a \u5173\u95ed \u51e0\u5c42 # \u4ee5 \u6700\u5c0f \u5e03\u5c40 \uff08 \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff09 \u52a0\u8f7d \u57ce\u9547 \uff0c \u8fd8 \u5305\u62ec \u5efa\u7b51 \u548c \u505c\u9760 \u7684 \u8f66\u8f86 world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # \u9690\u85cf \u5efa\u7b51 world . unload _ map _ layer ( carla . MapLayer . Buildings ) # \u9690\u85cf \u505c\u9760 \u7684 \u8f66\u8f86 world . unload _ map _ layer ( carla . MapLayer . ParkedVehicles ) Copy snippet Close snippet Snippet for carla . Vehicle . set _ wheel _ steer _ direction # \u8bbe\u7f6e \u524d \u8f6e\u8f6c 40 \u00b0 \u8f66\u8f86 \u7684 \u5916\u89c2 \u3002 \u4e0d\u4f1a \u5f71\u54cd \u8f66\u8f86 \u7684 \u7269\u7406 \u3002 vehicle . set _ wheel _ steer _ direction ( carla . VehicleWheelLocation . FR _ Wheel , 40.0 ) vehicle . set _ wheel _ steer _ direction ( carla . VehicleWheelLocation . FL _ Wheel , 40.0 ) Copy snippet Close snippet Snippet for carla . Client .__ init __ # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u5728 PythonAPI / Examples \u4e2d \u7684 \u6bcf\u4e2a \u811a\u672c \u4e2d \u90fd \u6709 \uff0c \u8fd0\u884c \u811a\u672c \u65f6\u5019 \u7528\u4e8e \u89e3\u6790 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u53c2\u6570 \u3002 argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) argparser . add _ argument ( ' - s ' , ' -- speed ' , metavar = ' FACTOR ' , default = 1.0 , type = float , help = ' rate at which the weather changes ( default : 1.0 ) ' ) args = argparser . parse _ args ( ) speed _ factor = args . speed update _ freq = 0.1 / speed _ factor client = carla . Client ( args . host , args . port ) Copy snippet Close snippet carla . Map . get _ waypoint \u4ee3\u7801 \u7247\u6bb5 # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u663e\u793a \u5f53\u524d \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5f71\u54cd \u7684 \u8f66\u8f86 \u3002 # \u663e\u793a \u5f53\u524d \u8f66\u8f86 \u7c7b\u578b \uff0c \u5728 \u5b9e\u9645 \u7684 \u8f66\u9053 \u6216 \u5468\u56f4 \u7684 \u7269\u4f53 \u4e2d \u8f66\u9053 \u7ebf \u662f\u5426 \u6539\u53d8 \u3002 # ... waypoint = world . get _ map ( ) . get _ waypoint ( vehicle . get _ location ( ) , project _ to _ road = True , lane _ type = ( carla . LaneType . Driving | carla . LaneType . Shoulder | carla . LaneType . Sidewalk ) ) print ( \" Current lane type : \" + str ( waypoint . lane _ type ) ) # Check current lane change allowed print ( \" Current Lane change : \" + str ( waypoint . lane _ change ) ) # Left and Right lane markings print ( \" L lane marking type : \" + str ( waypoint . left _ lane _ marking . type ) ) print ( \" L lane marking change : \" + str ( waypoint . left _ lane _ marking . lane _ change ) ) print ( \" R lane marking type : \" + str ( waypoint . right _ lane _ marking . type ) ) print ( \" R lane marking change : \" + str ( waypoint . right _ lane _ marking . lane _ change ) ) # ... Copy snippet Close snippet Snippet for carla . World . spawn _ actor # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u4f7f\u7528 \u4e0d\u540c \u7684 \u9644\u7740 \u5c06 \u4e0d\u540c \u7684 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216\u4f20\u611f\u5668 \u9644\u7740 \u5230 \u8f66\u8f86 \u4e2d \u3002 # ... camera = world . spawn _ actor ( rgb _ camera _ bp , transform , attach _ to = vehicle , attachment _ type = Attachment . Rigid ) # \u9ed8\u8ba4 \u9644\u7740 \uff1a Attachment . Rigid gnss _ sensor = world . spawn _ actor ( sensor _ gnss _ bp , transform , attach _ to = vehicle ) collision _ sensor = world . spawn _ actor ( sensor _ collision _ bp , transform , attach _ to = vehicle ) lane _ invasion _ sensor = world . spawn _ actor ( sensor _ lane _ invasion _ bp , transform , attach _ to = vehicle ) # ... Copy snippet Close snippet carla . WalkerAIController . stop \u4ee3\u7801 \u7247\u6bb5 # To destroy the pedestrians , stop them from the navigation , and then destroy the objects ( actor and controller ) . # stop pedestrians ( list is [ controller , actor , controller , actor ... ] ) for i in range ( 0 , len ( all _ id ) , 2 ) : all _ actors [ i ] . stop ( ) # destroy pedestrian ( actor and controller ) client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in all _ id ] ) Copy snippet Close snippet Snippet for carla . DebugHelper . draw _ box # This recipe shows how to draw traffic light actor bounding boxes from a world snapshot . # .... debug = world . debug world _ snapshot = world . get _ snapshot ( ) for actor _ snapshot in world _ snapshot : actual _ actor = world . get _ actor ( actor _ snapshot . id ) if actual _ actor . type _ id = = ' traffic . traffic _ light ' : debug . draw _ box ( carla . BoundingBox ( actor _ snapshot . get _ transform ( ) . location , carla . Vector3D ( 0.5 , 0.5 , 2 ) ) , actor _ snapshot . get _ transform ( ) . rotation , 0.05 , carla . Color ( 255 , 0 , 0 , 0 ) , 0 ) # ... Copy snippet Close snippet Snippet for carla . World . get _ spectator # This recipe spawns an actor and the spectator camera at the actor ' s location . # ... world = client . get _ world ( ) spectator = world . get _ spectator ( ) vehicle _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) ) transform = random . choice ( world . get _ map ( ) . get _ spawn _ points ( ) ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , transform ) # Wait for world to get the vehicle actor world . tick ( ) world _ snapshot = world . wait _ for _ tick ( ) actor _ snapshot = world _ snapshot . find ( vehicle . id ) # Set spectator at given transform ( vehicle transform ) spectator . set _ transform ( actor _ snapshot . get _ transform ( ) ) # ... Copy snippet Close snippet Snippet for carla . Sensor . listen # This recipe applies a color conversion to the image taken by a camera sensor , # so it is converted to a semantic segmentation image . # ... camera _ bp = world . get _ blueprint _ library ( ) . filter ( ' sensor . camera . semantic _ segmentation ' ) # ... cc = carla . ColorConverter . CityScapesPalette camera . listen ( lambda image : image . save _ to _ disk ( ' output / % 06d . png ' % image . frame , cc ) ) # ... Copy snippet Close snippet Snippet for carla . TrafficLight . set _ state # This recipe changes from red to green the traffic light that affects the vehicle . # This is done by detecting if the vehicle actor is at a traffic light . # ... world = client . get _ world ( ) spectator = world . get _ spectator ( ) vehicle _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) ) transform = random . choice ( world . get _ map ( ) . get _ spawn _ points ( ) ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , transform ) # Wait for world to get the vehicle actor world . tick ( ) world _ snapshot = world . wait _ for _ tick ( ) actor _ snapshot = world _ snapshot . find ( vehicle . id ) # Set spectator at given transform ( vehicle transform ) spectator . set _ transform ( actor _ snapshot . get _ transform ( ) ) # ...# ... if vehicle _ actor . is _ at _ traffic _ light ( ) : traffic _ light = vehicle _ actor . get _ traffic _ light ( ) if traffic _ light . get _ state ( ) = = carla . TrafficLightState . Red : # world . hud . notification ( \" Traffic light changed ! Good to go ! \" ) traffic _ light . set _ state ( carla . TrafficLightState . Green ) # ... Copy snippet Close snippet Snippet for carla . ActorBlueprint . set _ attribute # This recipe changes attributes of different type of blueprint actors . # ... walker _ bp = world . get _ blueprint _ library ( ) . filter ( ' walker . pedestrian.0002 ' ) walker _ bp . set _ attribute ( ' is _ invincible ' , True ) # ... # Changes attribute randomly by the recommended value vehicle _ bp = wolrd . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) color = random . choice ( vehicle _ bp . get _ attribute ( ' color ' ) . recommended _ values ) vehicle _ bp . set _ attribute ( ' color ' , color ) # ... camera _ bp = world . get _ blueprint _ library ( ) . filter ( ' sensor . camera . rgb ' ) camera _ bp . set _ attribute ( ' image _ size _ x ' , 600 ) camera _ bp . set _ attribute ( ' image _ size _ y ' , 600 ) # ... Copy snippet Close snippet Snippet for carla . Client . apply _ batch _ sync # 0 . Choose a blueprint fo the walkers world = client . get _ world ( ) blueprintsWalkers = world . get _ blueprint _ library ( ) . filter ( \" walker . pedestrian . * \" ) walker _ bp = random . choice ( blueprintsWalkers ) # 1 . Take all the random locations to spawn spawn _ points = [ ] for i in range ( 50 ) : spawn _ point = carla . Transform ( ) spawn _ point . location = world . get _ random _ location _ from _ navigation ( ) if ( spawn _ point . location ! = None ) : spawn _ points . append ( spawn _ point ) # 2 . Build the batch of commands to spawn the pedestrians batch = [ ] for spawn _ point in spawn _ points : walker _ bp = random . choice ( blueprintsWalkers ) batch . append ( carla . command . SpawnActor ( walker _ bp , spawn _ point ) ) # 2.1 apply the batch results = client . apply _ batch _ sync ( batch , True ) for i in range ( len ( results ) ) : if results [ i ] . error : logging . error ( results [ i ] . error ) else : walkers _ list . append ( { \" id \" : results [ i ] . actor _ id } ) # 3 . Spawn walker AI controllers for each walker batch = [ ] walker _ controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) for i in range ( len ( walkers _ list ) ) : batch . append ( carla . command . SpawnActor ( walker _ controller _ bp , carla . Transform ( ) , walkers _ list [ i ] [ \" id \" ] ) ) # 3.1 apply the batch results = client . apply _ batch _ sync ( batch , True ) for i in range ( len ( results ) ) : if results [ i ] . error : logging . error ( results [ i ] . error ) else : walkers _ list [ i ] [ \" con \" ] = results [ i ] . actor _ id # 4 . Put altogether the walker and controller ids for i in range ( len ( walkers _ list ) ) : all _ id . append ( walkers _ list [ i ] [ \" con \" ] ) all _ id . append ( walkers _ list [ i ] [ \" id \" ] ) all _ actors = world . get _ actors ( all _ id ) # wait for a tick to ensure client receives the last transform of the walkers we have just created world . wait _ for _ tick ( ) # 5 . initialize each controller and set target to walk to ( list is [ controller , actor , controller , actor ... ] ) for i in range ( 0 , len ( all _ actors ) , 2 ) : # start walker all _ actors [ i ] . start ( ) # set walk to random point all _ actors [ i ] . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) # random max speed all _ actors [ i ] . set _ max _ speed ( 1 + random . random ( ) ) # max speed between 1 and 2 ( default is 1.4 m / s ) Copy snippet Close snippet Snippet for carla . World . load _ map _ layer # This recipe toggles on several layers in our \" _ Opt \" maps # Load town one with only minimum layout ( roads , sidewalks , traffic lights and traffic signs ) world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . None ) # Toggle all buildings on world . load _ map _ layer ( carla . MapLayer . Buildings ) # Toggle all foliage on world . load _ map _ layer ( carla . MapLayer . Foliage ) # Toggle all parked vehicles on world . load _ map _ layer ( carla . MapLayer . ParkedVehicles ) Copy snippet Close snippet function ButtonAction ( container _ name ) { if ( window _ big ) { snipet _ name = container _ name . replace ( ' - snipet _ button ' , ' - snipet ' ) ; document . getElementById ( \" snipets - container \" ) . innerHTML = document . getElementById ( snipet _ name ) . innerHTML ; } else { document . getElementById ( \" snipets - container \" ) . innerHTML = null ; code _ name = container _ name . replace ( ' - snipet _ button ' , ' - code ' ) ; var range = document . createRange ( ) ; range . selectNode ( document . getElementById ( code _ name ) ) ; alert ( range ) ; } } function WindowResize ( ) { if ( window . innerWidth > 1200 ) { window _ big = true ; } else { window _ big = false ; } } var window _ big ; if ( window . innerWidth > 1200 ) { window _ big = true ; } else { window _ big = false ; } buttons = document . getElementsByClassName ( ' SnipetButton ' ) for ( let i = 0 ; i < buttons . length ; i ++ ) { buttons [ i ] . addEventListener ( \" click \" , function ( ) { ButtonAction ( buttons [ i ] . id ) ; } , true ) ; } window . onresize = WindowResize ;","title":"\u65b9\u6cd5"},{"location":"ref_cpp/","text":"C++ \u53c2\u8003 \u6211\u4eec \u4f7f\u7528 Doxygen \u751f\u6210 C++ \u4ee3\u7801 \u7684 \u6587\u6863 \uff1a Libcarla / source Unreal / CarlaUE4 / Source Unreal / CarlaUE4 / Plugins \u751f\u6210 \u7684 \u6587\u6863 \u53ef \u901a\u8fc7 \u6b64 \u94fe\u63a5 \u83b7\u53d6 \uff1a http : / / carla . org / Doxygen / html / index . html \u7b14\u8bb0 \u6587\u6863 \u66f4\u65b0 \u7531 GitHub \u81ea\u52a8 \u5b8c\u6210 \u3002 \u521b\u5efa doxygen \u6587\u6863 \u91cd\u8981 \u9700\u8981 Doxygen \u6765 \u751f\u6210 \u6587\u6863 \uff0c \u9700\u8981 Graphviz \u4f5c\u4e3a \u56fe\u5f62 \u7ed8\u5236 \u5de5\u5177 \u5de5\u5177\u5305 \u3002 1 - \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 doxygen \u548c graphviz \uff1a # linux > sudo apt - get install doxygen graphviz 2 - \u5b89\u88c5 \u540e \uff0c \u8f6c \u5230 Doxyfile \u6587\u4ef6 \u6240\u5728 \u7684 \u9879\u76ee \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a > doxygen \u5b83 \u5c06 \u5f00\u59cb \u6784\u5efa \u6587\u6863 \u7f51\u9875 \u3002 \u751f\u6210 \u7684 \u7f51\u9875 \u53ef\u4ee5 \u5728 Doxygen / html / \u4e2d \u627e\u5230 3 - \u5728 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 index . html \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u6709 \u4e86 \u672c\u5730 cpp \u6587\u6863 \uff01","title":"C++ \u53c2\u8003"},{"location":"ref_cpp/#c","text":"\u6211\u4eec \u4f7f\u7528 Doxygen \u751f\u6210 C++ \u4ee3\u7801 \u7684 \u6587\u6863 \uff1a Libcarla / source Unreal / CarlaUE4 / Source Unreal / CarlaUE4 / Plugins \u751f\u6210 \u7684 \u6587\u6863 \u53ef \u901a\u8fc7 \u6b64 \u94fe\u63a5 \u83b7\u53d6 \uff1a http : / / carla . org / Doxygen / html / index . html \u7b14\u8bb0 \u6587\u6863 \u66f4\u65b0 \u7531 GitHub \u81ea\u52a8 \u5b8c\u6210 \u3002","title":"C++ \u53c2\u8003"},{"location":"ref_cpp/#doxygen","text":"\u91cd\u8981 \u9700\u8981 Doxygen \u6765 \u751f\u6210 \u6587\u6863 \uff0c \u9700\u8981 Graphviz \u4f5c\u4e3a \u56fe\u5f62 \u7ed8\u5236 \u5de5\u5177 \u5de5\u5177\u5305 \u3002 1 - \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 doxygen \u548c graphviz \uff1a # linux > sudo apt - get install doxygen graphviz 2 - \u5b89\u88c5 \u540e \uff0c \u8f6c \u5230 Doxyfile \u6587\u4ef6 \u6240\u5728 \u7684 \u9879\u76ee \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a > doxygen \u5b83 \u5c06 \u5f00\u59cb \u6784\u5efa \u6587\u6863 \u7f51\u9875 \u3002 \u751f\u6210 \u7684 \u7f51\u9875 \u53ef\u4ee5 \u5728 Doxygen / html / \u4e2d \u627e\u5230 3 - \u5728 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 index . html \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u6709 \u4e86 \u672c\u5730 cpp \u6587\u6863 \uff01","title":"\u521b\u5efa doxygen \u6587\u6863"},{"location":"ref_recorder_binary_file_format/","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7cfb\u7edf \u5c06 \u91cd\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u4fdd\u5b58 \u5728 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c \u5bf9 \u591a \u5b57\u8282 \u503c \u4f7f\u7528 \u5c0f\u7aef \u5b57\u8282 \u987a\u5e8f \u3002 1 - \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u5b57\u7b26 \u5b57\u7b26\u4e32 2 - \u4fe1\u606f \u5934 3 - \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0 \u6570\u636e \u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664 \u6570\u636e \u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7 \u6570\u636e \u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e \u6570\u636e \u6570\u636e\u5305 6 - \u4f4d\u7f6e \u6570\u636e \u6570\u636e\u5305 7 - \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b \u6570\u636e \u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b 4 - \u5e27 \u5e03\u5c40 5 - \u6587\u4ef6 \u5e03\u5c40 \u5728 \u4e0b \u4e00\u5f20 \u4ee3\u8868 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u56fe\u50cf \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u5feb\u901f \u67e5\u770b \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u56fe\u50cf \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u5c06 \u5728 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8fdb\u884c \u89e3\u91ca \uff1a \u603b\u4e4b \uff0c \u8be5 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u6709 \u4e00\u4e2a \u5c0f \u5934 \uff0c \u5176\u4e2d \u5305\u542b \u4e00\u822c \u4fe1\u606f \uff08 \u7248\u672c \u3001 \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3001 \u65e5\u671f \u548c \u4f7f\u7528 \u7684 \u5730\u56fe \uff09 \u548c \u4e0d\u540c \u7c7b\u578b \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \uff08 \u76ee\u524d \u6211\u4eec \u4f7f\u7528 10 \u79cd \u7c7b\u578b \uff0c \u4f46 \u5c06\u6765 \u4f1a \u7ee7\u7eed \u589e\u957f \uff09 \u3002 1 - \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u9996\u5148 \u4f7f\u7528 \u5176 \u957f\u5ea6 \u8fdb\u884c \u7f16\u7801 \uff0c \u7136\u540e \u662f \u5176 \u5b57\u7b26 \uff08 \u4e0d \u4ee5 \u5b57\u7b26 \u7a7a\u5b57\u7b26 \u7ed3\u5c3e \uff09 \u3002 \u4f8b\u5982 \uff0c \u5b57\u7b26 \u5b57\u7b26\u4e32 \u201c Town06 \u201d \u5c06 \u4fdd\u5b58 \u4e3a \u5341\u516d \u8fdb\u5236 \u5341\u516d\u8fdb\u5236 \u503c \uff1a 06 00 54 6f 77 6e 30 36 2 - \u4fe1\u606f \u5934 \u4fe1\u606f \u6807\u5934 \u5305\u542b \u6709\u5173 \u5f55\u5236 \u6587\u4ef6 \u7684 \u4e00\u822c \u4fe1\u606f \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u5b83 \u5305\u542b \u7248\u672c \u548c \u4e00\u4e2a \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u7528\u4e8e \u5c06 \u8be5 \u6587\u4ef6 \u6807\u8bc6 \u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u3002 \u5982\u679c \u6807\u9898 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \uff0c \u90a3\u4e48 \u7248\u672c \u4e5f \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8 \u5305\u542b \u4e00\u4e2a \u65e5\u671f \u65f6\u95f4 \u6233 \uff0c \u4ee5\u53ca \u4ece 1900 \u5e74 \u5f00\u59cb \u7684 \u79d2\u6570 \uff0c \u5e76\u4e14 \u8fd8 \u5305\u542b \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u5176\u4e2d \u5305\u542b \u7528\u4e8e \u8bb0\u5f55 \u7684 \u5730\u56fe \u540d\u79f0 \u3002 \u793a\u4f8b \u4fe1\u606f \u5934 \u662f \uff1a 3 - \u6570\u636e \u6570\u636e\u5305 \u6bcf\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u4e24\u4e2a \u5b57 \u6bb5 \uff08 5 \u4e2a \u5b57\u8282 \uff09 \u7684 \u5c0f \u6807\u5934 \u5f00\u5934 \uff1a id : \u6570\u636e \u6570\u636e\u5305 \u7c7b\u578b size : \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \u5934 \u4fe1\u606f \u540e\u9762 \u8ddf\u7740 \u6570\u636e \u3002 \u6570\u636e \u662f \u53ef\u9009 \u7684 \uff0c \u5927\u5c0f \u4e3a 0 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u6ca1\u6709 \u6570\u636e \u3002 \u5982\u679c \u5927\u5c0f \u5927\u4e8e 0 \uff0c \u5219 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u6709 \u6570\u636e \u5b57\u8282 \u3002 \u56e0\u6b64 \uff0c \u9700\u8981 \u6839\u636e \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u91cd\u65b0 \u89e3\u91ca \u6570\u636e \u3002 \u6570\u636e \u6570\u636e\u5305 \u7684 \u5934 \u5f88 \u6709\u7528 \uff0c \u56e0\u4e3a \u6211\u4eec \u53ef\u4ee5 \u5728 \u64ad\u653e \u65f6 \u5ffd\u7565 \u90a3\u4e9b \u6211\u4eec \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u4e0d\u611f\u5174\u8da3 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u5305 \u7684 \u5934 \uff08 \u524d 5 \u4e2a \u5b57\u8282 \uff09 \u5e76 \u8df3 \u8fc7 \u6570\u636e \u6570\u636e\u5305 \u7684 \u6570\u636e \u8df3\u8f6c \u5230 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff1a \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u6709 \uff1a \u6211\u4eec \u5efa\u8bae \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6570\u636e \u6570\u636e\u5305 \u4f7f\u7528 \u8d85\u8fc7 100 \u7684 id \uff0c \u56e0\u4e3a \u8fd9\u4e2a \u5217\u8868 \u5c06\u6765 \u4f1a \u4e0d\u65ad \u589e\u957f \u3002 \u6570\u636e \u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb \u8be5 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bb0 \u65b0\u5e27 \u7684 \u5f00\u59cb \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u662f \u5f00\u59cb \u6bcf\u4e2a \u5e27 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u3002 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u9700\u8981 \u653e\u7f6e \u5728 Frame Start \u548c Frame End \u4e4b\u95f4 \u3002 \u56e0\u6b64 \uff0c \u7ecf\u8fc7 \u65f6\u95f4 + \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 = \u4e0b \u4e00\u5e27 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002 \u6570\u636e \u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f \u8be5 \u5e27 \u6ca1\u6709 \u6570\u636e \uff0c \u4ec5 \u6807\u8bb0 \u5f53\u524d \u5e27 \u7684 \u7ed3\u675f \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u91cd\u653e \u91cd\u653e\u5668 \u5728 \u65b0 \u4e00\u5e27 \u5f00\u59cb \u4e4b\u524d \u77e5\u9053 \u6bcf \u4e00\u5e27 \u7684 \u7ed3\u675f \u3002 \u901a\u5e38 \uff0c \u4e0b \u4e00\u5e27 \u5e94\u8be5 \u662f \u5e27 \u8d77\u59cb \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u5f00\u59cb \u65b0\u5e27 \u3002 \u6570\u636e \u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u6211\u4eec \u9700\u8981 \u5728 \u5f53\u524d \u5e27 \u521b\u5efa \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b57 \u6bb5 \u603b\u8ba1 \u8868\u793a \u540e\u9762 \u6709 \u591a\u5c11 \u6761 \u8bb0\u5f55 \u3002 \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u4ee5 id \u5b57 \u6bb5 \u5f00\u5934 \uff0c \u5373 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5f55\u5236 \u65f6\u6240 \u62e5\u6709 \u7684 id \uff08 \u5728 \u64ad\u653e \u65f6 \uff0c \u8be5 id \u53ef\u4ee5 \u5728 \u5185\u90e8 \u66f4\u6539 \uff0c \u4f46 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u6b64 id \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u53ef\u4ee5 \u6709 \u4ee5\u4e0b \u53ef\u80fd \u7684 \u503c \uff1a 0 = \u5176\u4ed6 1 = \u8f66\u8f86 2 = \u884c\u4eba 3 = \u4ea4\u901a \u4ea4\u901a\u706f 4 = \u65e0\u6548 \u4e4b\u540e \uff0c \u7ee7\u7eed \u6211\u4eec \u60f3\u8981 \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u5728 \u6211\u4eec \u5f97\u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u63cf\u8ff0 \u4e4b\u540e \u3002 \u63cf\u8ff0 uid \u662f \u63cf\u8ff0 \u7684 \u6570\u5b57 ID \uff0c \u800c id \u662f \u6587\u672c ID \uff0c \u4f8b\u5982 \" vehicle . seat . leon \" \u3002 \u7136\u540e \u662f \u5176 \u5c5e\u6027 \u7684 \u96c6\u5408 \uff0c \u4f8b\u5982 \u989c\u8272 \u3001 \u8f6e\u5b50 \u6570\u91cf \u3001 \u89d2\u8272 \u7b49 \u3002 \u5c5e\u6027 \u7684 \u6570\u91cf \u662f \u53ef\u53d8 \u7684 \uff0c \u5e94\u8be5 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a number _ of _ wheels = 4 sticky _ control = true color = 79 , 33 , 85 role _ name = autopilot \u6570\u636e \u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u8fd9 \u4e00\u5e27 \u9700\u8981 \u9500\u6bc1 \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u6709 \u8bb0\u5f55 \u603b\u6570 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u6709 \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u4f8b\u5982 \uff0c \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u53ef\u80fd \u662f \u8fd9\u6837 \u7684 \uff1a \u6570\u5b57 3 \u5c06 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bc6 \u4e3a \u4e8b\u4ef6 \u5220\u9664 \u3002 \u6570\u5b57 16 \u662f \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \uff08 4 \u4e2a \u5b57 \u6bb5 \uff0c \u6bcf\u4e2a \u5b57 \u6bb5 4 \u5b57\u8282 \uff09 \u3002 \u56e0\u6b64 \uff0c \u5982\u679c \u6211\u4eec \u4e0d\u60f3 \u5904\u7406 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8df3\u8fc7 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 16 \u4e2a \u5b57\u8282 \uff0c \u76f4\u63a5 \u8fdb\u5165 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7684 \u5f00\u5934 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 3 \u8868\u793a \u540e\u9762 \u7684 \u603b \u8bb0\u5f55 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u662f \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u8fd9 \u4e00\u5e27 \u4e2d \u5220\u9664 \u53c2\u4e0e \u53c2\u4e0e\u8005 100 \u3001 101 \u548c 120 \u3002 \u6570\u636e \u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7 \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u54ea\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u6bcd \uff09 \u7684 \u5b69\u5b50 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a id \u662f\u5b50 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a id \u662f \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6570\u636e \u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e \u5982\u679c \u4e24\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u53d1\u751f \u78b0\u649e \uff0c \u5b83 \u5c06 \u88ab \u6ce8\u518c \u5230 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u3002 \u76ee\u524d \uff0c \u53ea\u6709 \u5177\u6709 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u624d \u4f1a \u62a5\u544a \u78b0\u649e \uff0c \u56e0\u6b64 \u76ee\u524d \u53ea\u6709 \u82f1\u96c4 \u8f66\u8f86 \u4f1a \u81ea\u52a8 \u8fde\u63a5 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 id \u53ea\u662f \u4e00\u4e2a \u7528\u4e8e \u5728 \u5185\u90e8 \u6807\u8bc6 \u6bcf\u6b21 \u78b0\u649e \u7684 \u5e8f\u5217 \u3002 \u540c\u4e00 \u5e27 \u4e2d \u53ef\u80fd \u4f1a \u53d1\u751f \u540c\u4e00 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u591a\u6b21 \u78b0\u649e \uff0c \u56e0\u4e3a \u7269\u7406 \u5e27 \u901f\u7387 \u662f \u56fa\u5b9a \u7684 \uff0c \u5e76\u4e14 \u540c\u4e00 \u6e32\u67d3 \u5e27 \u4e2d \u901a\u5e38 \u5b58\u5728 \u591a\u4e2a \u7269\u7406 \u5b50 \u6b65\u9aa4 \u3002 \u6570\u636e \u6570\u636e\u5305 6 - \u4f4d\u7f6e \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u573a\u666f \u4e2d \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u6570\u636e \u6570\u636e\u5305 7 - \u4ea4\u901a \u4ea4\u901a\u706f \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u573a\u666f \u4e2d \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83 \u5b58\u50a8 \u72b6\u6001 \u5b58\u50a8\u72b6\u6001 \uff08 \u7ea2\u8272 \u3001 \u6a59\u8272 \u6216 \u7eff\u8272 \uff09 \u4ee5\u53ca \u7b49\u5f85 \u66f4 \u6539\u4e3a \u65b0 \u72b6\u6001 \u7684 \u65f6\u95f4 \u3002 \u6570\u636e \u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u8f66\u8f86 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u548c \u5c71\u5730 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u52a8\u753b \u3002 \u8be5 \u6570\u636e \u6570\u636e\u5305 \u5b58\u50a8 \u4e86 \u6cb9\u95e8 \u3001 \u65b9\u5411 \u65b9\u5411\u76d8 \u3001 \u5220\u8f66 \u3001 \u624b\u5239 \u548c \u6392\u6321 \u8f93\u5165 \uff0c \u7136\u540e \u5728 \u64ad\u653e \u65f6 \u8bbe\u7f6e \u5b83\u4eec \u3002 \u6570\u636e \u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u884c\u4eba \u7684 \u52a8\u753b \u3002 \u5b83 \u53ea\u662f \u4fdd\u5b58 \u52a8\u753b \u4e2d \u4f7f\u7528 \u7684 \u884c\u4eba \u7684 \u901f\u5ea6 \u3002 4 - \u5e27 \u5e03\u5c40 \u4e00\u4e2a \u5e27 \u7531 \u591a\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7ec4\u6210 \uff0c \u5176\u4e2d \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u662f \u53ef\u9009 \u7684 \uff0c \u9664\u4e86 \u90a3\u4e9b \u5728 \u8be5 \u5e27 \u4e2d \u5177\u6709 \u5f00\u59cb \u548c \u7ed3\u675f \u7684 \u6570\u636e \u6570\u636e\u5305 \u4e4b\u5916 \uff0c \u5b83\u4eec \u5fc5\u987b \u59cb\u7ec8 \u5b58\u5728 \u3002 \u4e8b\u4ef6 \u6570\u636e \u6570\u636e\u5305 \u4ec5 \u5b58\u5728 \u4e8e \u5b83\u4eec \u53d1\u751f \u7684 \u5e27 \u4e2d \u3002 \u4f4d\u7f6e \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 \u5e94\u8be5 \u5b58\u5728 \u4e8e \u6240\u6709 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u5b83\u4eec \u9700\u8981 \u79fb\u52a8 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u4e3a \u5176 \u72b6\u6001 \u3002 \u5b83\u4eec \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5982\u679c \u5b83\u4eec \u4e0d \u5b58\u5728 \uff0c \u90a3\u4e48 \u91cd\u653e \u91cd\u653e\u5668 \u5c06 \u65e0\u6cd5 \u79fb\u52a8 \u6216 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u52a8\u753b \u5305 \u4e5f \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83\u4eec \u4f1a \u88ab \u8bb0\u5f55 \u3002 \u8fd9\u6837 \u884c\u4eba \u5c31 \u4f1a \u88ab \u52a8\u753b \u5316 \uff0c \u5e76\u4e14 \u8f66\u8f6e \u4e5f \u4f1a \u8ddf\u968f \u8f66\u8f86 \u7684 \u65b9\u5411 \u3002 5 - \u6587\u4ef6 \u5e03\u5c40 \u6587\u4ef6 \u7684 \u5e03\u5c40 \u4ee5 \u4fe1\u606f \u5934 \u5f00\u59cb \uff0c \u7136\u540e \u662f \u5206\u7ec4 \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \u3002 \u6bcf\u7ec4 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 \u3002 \u5728 \u8fd9 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \uff0c \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u627e\u5230 \u5176\u4f59 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u901a\u5e38 \uff0c \u6700\u597d \u9996\u5148 \u62e5\u6709 \u6709\u5173 \u4e8b\u4ef6 \u7684 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \uff0c \u7136\u540e \u518d \u62e5\u6709 \u6709\u5173 \u4f4d\u7f6e \u548c \u72b6\u6001 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u4e8b\u4ef6 \u5305\u662f \u53ef\u9009 \u7684 \uff0c \u56e0\u4e3a \u5b83\u4eec \u5728 \u53d1\u751f \u65f6 \u51fa\u73b0 \uff0c \u6240\u4ee5 \u6211\u4eec \u53ef\u4ee5 \u6709 \u8fd9\u6837 \u7684 \u5e03\u5c40 \uff1a \u5728 \u7b2c 1 \u5e27 \u4e2d \uff0c \u521b\u5efa \u4e86 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u91cd\u65b0 \u8bbe\u7f6e \u4e86 \u7236\u7ea7 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ef\u4ee5 \u5728 \u56fe\u50cf \u4e2d \u89c2\u5bdf \u5176 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 2 \u5e27 \u4e2d \u6ca1\u6709 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 3 \u5e27 \u4e2d \uff0c \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u751f \u4e86 \u78b0\u649e \uff0c \u56e0\u6b64 \u78b0\u649e \u4e8b\u4ef6 \u4f1a \u968f\u8be5 \u4fe1\u606f \u4e00\u8d77 \u51fa\u73b0 \u3002 \u5728 \u7b2c 4 \u5e27 \u4e2d \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u6467\u6bc1 \u3002","title":"\u8bb0\u5f55\u5668 \u4e8c\u8fdb\u5236 \u6587\u4ef6\u683c\u5f0f"},{"location":"ref_recorder_binary_file_format/#_1","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7cfb\u7edf \u5c06 \u91cd\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u4fdd\u5b58 \u5728 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c \u5bf9 \u591a \u5b57\u8282 \u503c \u4f7f\u7528 \u5c0f\u7aef \u5b57\u8282 \u987a\u5e8f \u3002 1 - \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u5b57\u7b26 \u5b57\u7b26\u4e32 2 - \u4fe1\u606f \u5934 3 - \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0 \u6570\u636e \u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664 \u6570\u636e \u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7 \u6570\u636e \u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e \u6570\u636e \u6570\u636e\u5305 6 - \u4f4d\u7f6e \u6570\u636e \u6570\u636e\u5305 7 - \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b \u6570\u636e \u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b 4 - \u5e27 \u5e03\u5c40 5 - \u6587\u4ef6 \u5e03\u5c40 \u5728 \u4e0b \u4e00\u5f20 \u4ee3\u8868 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u56fe\u50cf \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u5feb\u901f \u67e5\u770b \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u56fe\u50cf \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u5c06 \u5728 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8fdb\u884c \u89e3\u91ca \uff1a \u603b\u4e4b \uff0c \u8be5 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u6709 \u4e00\u4e2a \u5c0f \u5934 \uff0c \u5176\u4e2d \u5305\u542b \u4e00\u822c \u4fe1\u606f \uff08 \u7248\u672c \u3001 \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3001 \u65e5\u671f \u548c \u4f7f\u7528 \u7684 \u5730\u56fe \uff09 \u548c \u4e0d\u540c \u7c7b\u578b \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \uff08 \u76ee\u524d \u6211\u4eec \u4f7f\u7528 10 \u79cd \u7c7b\u578b \uff0c \u4f46 \u5c06\u6765 \u4f1a \u7ee7\u7eed \u589e\u957f \uff09 \u3002","title":"\u8bb0\u5f55\u5668 \u4e8c\u8fdb\u5236 \u6587\u4ef6\u683c\u5f0f"},{"location":"ref_recorder_binary_file_format/#1-","text":"\u5b57\u7b26 \u5b57\u7b26\u4e32 \u9996\u5148 \u4f7f\u7528 \u5176 \u957f\u5ea6 \u8fdb\u884c \u7f16\u7801 \uff0c \u7136\u540e \u662f \u5176 \u5b57\u7b26 \uff08 \u4e0d \u4ee5 \u5b57\u7b26 \u7a7a\u5b57\u7b26 \u7ed3\u5c3e \uff09 \u3002 \u4f8b\u5982 \uff0c \u5b57\u7b26 \u5b57\u7b26\u4e32 \u201c Town06 \u201d \u5c06 \u4fdd\u5b58 \u4e3a \u5341\u516d \u8fdb\u5236 \u5341\u516d\u8fdb\u5236 \u503c \uff1a 06 00 54 6f 77 6e 30 36","title":"1 - \u4e8c\u8fdb\u5236 \u5b57\u7b26\u4e32"},{"location":"ref_recorder_binary_file_format/#2-","text":"\u4fe1\u606f \u6807\u5934 \u5305\u542b \u6709\u5173 \u5f55\u5236 \u6587\u4ef6 \u7684 \u4e00\u822c \u4fe1\u606f \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u5b83 \u5305\u542b \u7248\u672c \u548c \u4e00\u4e2a \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u7528\u4e8e \u5c06 \u8be5 \u6587\u4ef6 \u6807\u8bc6 \u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u3002 \u5982\u679c \u6807\u9898 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \uff0c \u90a3\u4e48 \u7248\u672c \u4e5f \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8 \u5305\u542b \u4e00\u4e2a \u65e5\u671f \u65f6\u95f4 \u6233 \uff0c \u4ee5\u53ca \u4ece 1900 \u5e74 \u5f00\u59cb \u7684 \u79d2\u6570 \uff0c \u5e76\u4e14 \u8fd8 \u5305\u542b \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u5176\u4e2d \u5305\u542b \u7528\u4e8e \u8bb0\u5f55 \u7684 \u5730\u56fe \u540d\u79f0 \u3002 \u793a\u4f8b \u4fe1\u606f \u5934 \u662f \uff1a","title":"2 - \u4fe1\u606f \u5934"},{"location":"ref_recorder_binary_file_format/#3-","text":"\u6bcf\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u4e24\u4e2a \u5b57 \u6bb5 \uff08 5 \u4e2a \u5b57\u8282 \uff09 \u7684 \u5c0f \u6807\u5934 \u5f00\u5934 \uff1a id : \u6570\u636e \u6570\u636e\u5305 \u7c7b\u578b size : \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \u5934 \u4fe1\u606f \u540e\u9762 \u8ddf\u7740 \u6570\u636e \u3002 \u6570\u636e \u662f \u53ef\u9009 \u7684 \uff0c \u5927\u5c0f \u4e3a 0 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u6ca1\u6709 \u6570\u636e \u3002 \u5982\u679c \u5927\u5c0f \u5927\u4e8e 0 \uff0c \u5219 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u6709 \u6570\u636e \u5b57\u8282 \u3002 \u56e0\u6b64 \uff0c \u9700\u8981 \u6839\u636e \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u91cd\u65b0 \u89e3\u91ca \u6570\u636e \u3002 \u6570\u636e \u6570\u636e\u5305 \u7684 \u5934 \u5f88 \u6709\u7528 \uff0c \u56e0\u4e3a \u6211\u4eec \u53ef\u4ee5 \u5728 \u64ad\u653e \u65f6 \u5ffd\u7565 \u90a3\u4e9b \u6211\u4eec \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u4e0d\u611f\u5174\u8da3 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u5305 \u7684 \u5934 \uff08 \u524d 5 \u4e2a \u5b57\u8282 \uff09 \u5e76 \u8df3 \u8fc7 \u6570\u636e \u6570\u636e\u5305 \u7684 \u6570\u636e \u8df3\u8f6c \u5230 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff1a \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u6709 \uff1a \u6211\u4eec \u5efa\u8bae \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6570\u636e \u6570\u636e\u5305 \u4f7f\u7528 \u8d85\u8fc7 100 \u7684 id \uff0c \u56e0\u4e3a \u8fd9\u4e2a \u5217\u8868 \u5c06\u6765 \u4f1a \u4e0d\u65ad \u589e\u957f \u3002","title":"3 - \u6570\u636e\u5305"},{"location":"ref_recorder_binary_file_format/#0-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bb0 \u65b0\u5e27 \u7684 \u5f00\u59cb \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u662f \u5f00\u59cb \u6bcf\u4e2a \u5e27 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u3002 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u9700\u8981 \u653e\u7f6e \u5728 Frame Start \u548c Frame End \u4e4b\u95f4 \u3002 \u56e0\u6b64 \uff0c \u7ecf\u8fc7 \u65f6\u95f4 + \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 = \u4e0b \u4e00\u5e27 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002","title":"\u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb"},{"location":"ref_recorder_binary_file_format/#1-_1","text":"\u8be5 \u5e27 \u6ca1\u6709 \u6570\u636e \uff0c \u4ec5 \u6807\u8bb0 \u5f53\u524d \u5e27 \u7684 \u7ed3\u675f \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u91cd\u653e \u91cd\u653e\u5668 \u5728 \u65b0 \u4e00\u5e27 \u5f00\u59cb \u4e4b\u524d \u77e5\u9053 \u6bcf \u4e00\u5e27 \u7684 \u7ed3\u675f \u3002 \u901a\u5e38 \uff0c \u4e0b \u4e00\u5e27 \u5e94\u8be5 \u662f \u5e27 \u8d77\u59cb \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u5f00\u59cb \u65b0\u5e27 \u3002","title":"\u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f"},{"location":"ref_recorder_binary_file_format/#2-_1","text":"\u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u6211\u4eec \u9700\u8981 \u5728 \u5f53\u524d \u5e27 \u521b\u5efa \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b57 \u6bb5 \u603b\u8ba1 \u8868\u793a \u540e\u9762 \u6709 \u591a\u5c11 \u6761 \u8bb0\u5f55 \u3002 \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u4ee5 id \u5b57 \u6bb5 \u5f00\u5934 \uff0c \u5373 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5f55\u5236 \u65f6\u6240 \u62e5\u6709 \u7684 id \uff08 \u5728 \u64ad\u653e \u65f6 \uff0c \u8be5 id \u53ef\u4ee5 \u5728 \u5185\u90e8 \u66f4\u6539 \uff0c \u4f46 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u6b64 id \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u53ef\u4ee5 \u6709 \u4ee5\u4e0b \u53ef\u80fd \u7684 \u503c \uff1a 0 = \u5176\u4ed6 1 = \u8f66\u8f86 2 = \u884c\u4eba 3 = \u4ea4\u901a \u4ea4\u901a\u706f 4 = \u65e0\u6548 \u4e4b\u540e \uff0c \u7ee7\u7eed \u6211\u4eec \u60f3\u8981 \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u5728 \u6211\u4eec \u5f97\u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u63cf\u8ff0 \u4e4b\u540e \u3002 \u63cf\u8ff0 uid \u662f \u63cf\u8ff0 \u7684 \u6570\u5b57 ID \uff0c \u800c id \u662f \u6587\u672c ID \uff0c \u4f8b\u5982 \" vehicle . seat . leon \" \u3002 \u7136\u540e \u662f \u5176 \u5c5e\u6027 \u7684 \u96c6\u5408 \uff0c \u4f8b\u5982 \u989c\u8272 \u3001 \u8f6e\u5b50 \u6570\u91cf \u3001 \u89d2\u8272 \u7b49 \u3002 \u5c5e\u6027 \u7684 \u6570\u91cf \u662f \u53ef\u53d8 \u7684 \uff0c \u5e94\u8be5 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a number _ of _ wheels = 4 sticky _ control = true color = 79 , 33 , 85 role _ name = autopilot","title":"\u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0"},{"location":"ref_recorder_binary_file_format/#3-_1","text":"\u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u8fd9 \u4e00\u5e27 \u9700\u8981 \u9500\u6bc1 \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u6709 \u8bb0\u5f55 \u603b\u6570 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u6709 \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u4f8b\u5982 \uff0c \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u53ef\u80fd \u662f \u8fd9\u6837 \u7684 \uff1a \u6570\u5b57 3 \u5c06 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bc6 \u4e3a \u4e8b\u4ef6 \u5220\u9664 \u3002 \u6570\u5b57 16 \u662f \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \uff08 4 \u4e2a \u5b57 \u6bb5 \uff0c \u6bcf\u4e2a \u5b57 \u6bb5 4 \u5b57\u8282 \uff09 \u3002 \u56e0\u6b64 \uff0c \u5982\u679c \u6211\u4eec \u4e0d\u60f3 \u5904\u7406 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8df3\u8fc7 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 16 \u4e2a \u5b57\u8282 \uff0c \u76f4\u63a5 \u8fdb\u5165 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7684 \u5f00\u5934 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 3 \u8868\u793a \u540e\u9762 \u7684 \u603b \u8bb0\u5f55 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u662f \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u8fd9 \u4e00\u5e27 \u4e2d \u5220\u9664 \u53c2\u4e0e \u53c2\u4e0e\u8005 100 \u3001 101 \u548c 120 \u3002","title":"\u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664"},{"location":"ref_recorder_binary_file_format/#4-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u54ea\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u6bcd \uff09 \u7684 \u5b69\u5b50 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a id \u662f\u5b50 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a id \u662f \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7"},{"location":"ref_recorder_binary_file_format/#5-","text":"\u5982\u679c \u4e24\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u53d1\u751f \u78b0\u649e \uff0c \u5b83 \u5c06 \u88ab \u6ce8\u518c \u5230 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u3002 \u76ee\u524d \uff0c \u53ea\u6709 \u5177\u6709 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u624d \u4f1a \u62a5\u544a \u78b0\u649e \uff0c \u56e0\u6b64 \u76ee\u524d \u53ea\u6709 \u82f1\u96c4 \u8f66\u8f86 \u4f1a \u81ea\u52a8 \u8fde\u63a5 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 id \u53ea\u662f \u4e00\u4e2a \u7528\u4e8e \u5728 \u5185\u90e8 \u6807\u8bc6 \u6bcf\u6b21 \u78b0\u649e \u7684 \u5e8f\u5217 \u3002 \u540c\u4e00 \u5e27 \u4e2d \u53ef\u80fd \u4f1a \u53d1\u751f \u540c\u4e00 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u591a\u6b21 \u78b0\u649e \uff0c \u56e0\u4e3a \u7269\u7406 \u5e27 \u901f\u7387 \u662f \u56fa\u5b9a \u7684 \uff0c \u5e76\u4e14 \u540c\u4e00 \u6e32\u67d3 \u5e27 \u4e2d \u901a\u5e38 \u5b58\u5728 \u591a\u4e2a \u7269\u7406 \u5b50 \u6b65\u9aa4 \u3002","title":"\u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e"},{"location":"ref_recorder_binary_file_format/#6-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u573a\u666f \u4e2d \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002","title":"\u6570\u636e\u5305 6 - \u4f4d\u7f6e"},{"location":"ref_recorder_binary_file_format/#7-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u573a\u666f \u4e2d \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83 \u5b58\u50a8 \u72b6\u6001 \u5b58\u50a8\u72b6\u6001 \uff08 \u7ea2\u8272 \u3001 \u6a59\u8272 \u6216 \u7eff\u8272 \uff09 \u4ee5\u53ca \u7b49\u5f85 \u66f4 \u6539\u4e3a \u65b0 \u72b6\u6001 \u7684 \u65f6\u95f4 \u3002","title":"\u6570\u636e\u5305 7 - \u4ea4\u901a\u706f"},{"location":"ref_recorder_binary_file_format/#8-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u8f66\u8f86 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u548c \u5c71\u5730 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u52a8\u753b \u3002 \u8be5 \u6570\u636e \u6570\u636e\u5305 \u5b58\u50a8 \u4e86 \u6cb9\u95e8 \u3001 \u65b9\u5411 \u65b9\u5411\u76d8 \u3001 \u5220\u8f66 \u3001 \u624b\u5239 \u548c \u6392\u6321 \u8f93\u5165 \uff0c \u7136\u540e \u5728 \u64ad\u653e \u65f6 \u8bbe\u7f6e \u5b83\u4eec \u3002","title":"\u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b"},{"location":"ref_recorder_binary_file_format/#9-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u884c\u4eba \u7684 \u52a8\u753b \u3002 \u5b83 \u53ea\u662f \u4fdd\u5b58 \u52a8\u753b \u4e2d \u4f7f\u7528 \u7684 \u884c\u4eba \u7684 \u901f\u5ea6 \u3002","title":"\u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b"},{"location":"ref_recorder_binary_file_format/#4-_1","text":"\u4e00\u4e2a \u5e27 \u7531 \u591a\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7ec4\u6210 \uff0c \u5176\u4e2d \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u662f \u53ef\u9009 \u7684 \uff0c \u9664\u4e86 \u90a3\u4e9b \u5728 \u8be5 \u5e27 \u4e2d \u5177\u6709 \u5f00\u59cb \u548c \u7ed3\u675f \u7684 \u6570\u636e \u6570\u636e\u5305 \u4e4b\u5916 \uff0c \u5b83\u4eec \u5fc5\u987b \u59cb\u7ec8 \u5b58\u5728 \u3002 \u4e8b\u4ef6 \u6570\u636e \u6570\u636e\u5305 \u4ec5 \u5b58\u5728 \u4e8e \u5b83\u4eec \u53d1\u751f \u7684 \u5e27 \u4e2d \u3002 \u4f4d\u7f6e \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 \u5e94\u8be5 \u5b58\u5728 \u4e8e \u6240\u6709 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u5b83\u4eec \u9700\u8981 \u79fb\u52a8 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u4e3a \u5176 \u72b6\u6001 \u3002 \u5b83\u4eec \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5982\u679c \u5b83\u4eec \u4e0d \u5b58\u5728 \uff0c \u90a3\u4e48 \u91cd\u653e \u91cd\u653e\u5668 \u5c06 \u65e0\u6cd5 \u79fb\u52a8 \u6216 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u52a8\u753b \u5305 \u4e5f \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83\u4eec \u4f1a \u88ab \u8bb0\u5f55 \u3002 \u8fd9\u6837 \u884c\u4eba \u5c31 \u4f1a \u88ab \u52a8\u753b \u5316 \uff0c \u5e76\u4e14 \u8f66\u8f6e \u4e5f \u4f1a \u8ddf\u968f \u8f66\u8f86 \u7684 \u65b9\u5411 \u3002","title":"4 - \u5e27 \u5e03\u5c40"},{"location":"ref_recorder_binary_file_format/#5-_1","text":"\u6587\u4ef6 \u7684 \u5e03\u5c40 \u4ee5 \u4fe1\u606f \u5934 \u5f00\u59cb \uff0c \u7136\u540e \u662f \u5206\u7ec4 \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \u3002 \u6bcf\u7ec4 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 \u3002 \u5728 \u8fd9 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \uff0c \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u627e\u5230 \u5176\u4f59 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u901a\u5e38 \uff0c \u6700\u597d \u9996\u5148 \u62e5\u6709 \u6709\u5173 \u4e8b\u4ef6 \u7684 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \uff0c \u7136\u540e \u518d \u62e5\u6709 \u6709\u5173 \u4f4d\u7f6e \u548c \u72b6\u6001 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u4e8b\u4ef6 \u5305\u662f \u53ef\u9009 \u7684 \uff0c \u56e0\u4e3a \u5b83\u4eec \u5728 \u53d1\u751f \u65f6 \u51fa\u73b0 \uff0c \u6240\u4ee5 \u6211\u4eec \u53ef\u4ee5 \u6709 \u8fd9\u6837 \u7684 \u5e03\u5c40 \uff1a \u5728 \u7b2c 1 \u5e27 \u4e2d \uff0c \u521b\u5efa \u4e86 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u91cd\u65b0 \u8bbe\u7f6e \u4e86 \u7236\u7ea7 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ef\u4ee5 \u5728 \u56fe\u50cf \u4e2d \u89c2\u5bdf \u5176 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 2 \u5e27 \u4e2d \u6ca1\u6709 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 3 \u5e27 \u4e2d \uff0c \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u751f \u4e86 \u78b0\u649e \uff0c \u56e0\u6b64 \u78b0\u649e \u4e8b\u4ef6 \u4f1a \u968f\u8be5 \u4fe1\u606f \u4e00\u8d77 \u51fa\u73b0 \u3002 \u5728 \u7b2c 4 \u5e27 \u4e2d \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u6467\u6bc1 \u3002","title":"5 - \u6587\u4ef6 \u5e03\u5c40"},{"location":"ref_sensors/","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6df1\u5ea6 \u76f8\u673a \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76f8\u673a \u5149\u6d41 \u76f8\u673a \u91cd\u8981 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \uff08 x - \u5411\u524d \uff0c y - \u5411 \u53f3 \uff0c z - \u5411\u4e0a \uff09 \uff0c \u5e76 \u8fd4\u56de \u672c\u5730 \u7a7a\u95f4 \u4e2d \u7684 \u5750\u6807 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f6f\u4ef6 \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u5176 \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u8bb8\u591a \u53cd\u8f6c Y \u8f74 \uff0c \u56e0\u6b64 \u76f4\u63a5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u955c\u50cf \u8f93\u51fa \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \uff1a sensor . other . collision \u8f93\u51fa \uff1a \u6bcf\u6b21 \u78b0\u649e \u7684 carla . CollisionEvent \u3002 \u6bcf\u5f53 \u5176\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0e \u4e16\u754c \u4e0a \u7684 \u67d0\u4e9b \u7269\u4f53 \u53d1\u751f \u78b0\u649e \u65f6 \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u8bb0\u5f55 \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u6bcf\u4e2a \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u5e27 \u6bcf\u6b21 \u78b0\u649e \u90fd \u4f1a \u4ea7\u751f \u4e00\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u901a\u8fc7 \u4e0e \u591a\u4e2a \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \uff0c \u53ef\u4ee5 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u4ea7\u751f \u591a\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u7684 \u5c5e\u6027 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \uff09 \u3002 other _ actor carla . Actor \u4e0e \u7236\u7ea7 \u76f8\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse carla . Vector3D \u78b0\u649e \u7684 \u6b63\u5e38 \u8109\u51b2 \u7ed3\u679c \u3002 \u6df1\u5ea6 \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . depth \u8f93\u51fa \uff1a \u6bcf\u6b65 \u7684 \u56fe\u50cf carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u76f8\u673a \u63d0\u4f9b \u573a\u666f \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u7f16\u7801 \u6bcf\u4e2a \u50cf\u7d20 \u5230 \u76f8\u673a \u7684 \u8ddd\u79bb \uff08 \u4e5f \u79f0\u4e3a \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u6216 z \u7f13\u51b2 \u7f13\u51b2\u533a \uff09 \u4ee5 \u521b\u5efa \u5143\u7d20 \u7684 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u8be5 \u56fe\u50cf \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u7684 3 \u4e2a \u901a\u9053 \uff08 \u4ece \u5b57\u8282 \u4f4e\u5b57\u8282 \u5230 \u5b57\u8282 \u9ad8\u5b57\u8282 \uff09 \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u6df1\u5ea6 \u503c \u8fdb\u884c \u7f16\u7801 \uff1a R - > G - > B \u3002 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u7684 \u5b9e\u9645 \u8ddd\u79bb \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u65b9\u5f0f \u89e3\u7801 \uff1a normalized = ( R + G * 256 + B * 256 * 256 ) / ( 256 * 256 * 256 - 1 ) in _ meters = 1000 * normalized \u7136\u540e \uff0c \u5e94 \u4f7f\u7528 carla . colorConverter \u5c06 \u8f93\u51fa carla . Image \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff0c \u8be5 carla . colorConverter \u4f1a \u5c06 \u5b58\u50a8 \u5728 RGB \u901a\u9053 \u4e2d \u7684 \u8ddd\u79bb \u8f6c\u6362 \u4e3a \u5305\u542b \u8be5 \u8ddd\u79bb \u7684 [ 0 , 1 ] \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u3002 carla . colorConverter \u4e2d\u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u83b7\u53d6 \u6df1\u5ea6 \u89c6\u56fe \uff1a Depth \u548c Logaritmic depth \u3002 \u4e24\u8005 \u7684 \u7cbe\u5ea6 \u90fd \u662f \u6beb\u7c73 \u7ea7 \u7684 \uff0c \u4f46 \u5bf9\u6570 \u65b9\u6cd5 \u53ef\u4ee5 \u4e3a \u66f4 \u8fd1 \u7684 \u7269\u4f53 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . Depth ) \u76f8\u673a \u57fa\u672c \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . gnss Output : \u6bcf \u4e00\u6b65 \u7684 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u7684 \u6d4b\u91cf carla . GNSSMeasurement \uff08 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u62a5\u544a \u5176\u7236 \u5bf9\u8c61 \u7684 \u5f53\u524d gnss \u4f4d\u7f6e \u3002 \u8fd9\u662f \u901a\u8fc7 \u5c06 \u5ea6\u91cf \u4f4d\u7f6e \u6dfb\u52a0 \u5230 OpenDRIVE \u5730\u56fe \u5b9a\u4e49 \u4e2d \u5b9a\u4e49 \u7684 \u521d\u59cb \u5730\u7406 \u53c2\u8003 \u4f4d\u7f6e \u6765 \u8ba1\u7b97 \u7684 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ alt _ bias float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ alt _ stddev float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lat _ bias float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lat _ stddev float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lon _ bias float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lon _ stddev float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 latitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7eac\u5ea6 \u3002 longitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7ecf\u5ea6 \u3002 altitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . imu \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 \u7684 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u6d4b\u91cf \u503c carla . IMUMeasurement \uff08 \u9664\u975e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ef4\u7b54 \u4fe1\u53f7 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u63d0\u4f9b \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u5c06 \u4e3a \u7236 \u5bf9\u8c61 \u68c0\u7d22 \u7684 \u6d4b\u91cf \u503c \u3002 \u6570\u636e \u662f\u4ece \u5bf9\u8c61 \u7684 \u5f53\u524d \u72b6\u6001 \u6536\u96c6 \u7684 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ accel _ stddev _ x float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 X \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ y float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Y \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ z float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Z \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ gyro _ bias _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ bias _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ bias _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 accelerometer carla . Vector3D \u6d4b\u91cf \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 \u4ee5 m / s ^ 2 \u4e3a \u5355\u4f4d \uff09 \u3002 gyroscope carla . Vector3D \u6d4b\u91cf \u901f\u5ea6 \u89d2\u901f\u5ea6 \uff08 \u4ee5 rad / sec \u4e3a \u5355\u4f4d \uff09 \u3002 compass float \u4ee5 \u5f27\u5ea6 \u4e3a \u5355\u4f4d \u7684 \u65b9\u5411 \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d\u5317 \u662f ( 0.0 , - 1.0 , 0.0 ) \u3002 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u8ba1\u7b97 \u65b9\u6cd5 \u8ba1\u7b97\u65b9\u6cd5 \uff1a $ $ d _ 2 ( i ) = - 2.0 \\ times [ { y _ 1 \\ over { h _ 1 \\ times h _ 2 } } - { y _ 2 \\ over { h _ 2 \\ times ( h _ 1 + h _ 2 ) } } - { y _ 0 \\ over { h _ 1 \\ times ( h _ 1 + h _ 2 ) } } ] . $ $ \u5176\u4e2d \uff0c ( h _ 1 ) \u4e3a \u5f53\u524d \u65f6\u95f4 \u589e\u91cf \uff0c ( h _ 2 ) \u4e3a \u524d \u4e00\u4e2a \u65f6\u95f4 \u589e\u91cf \u3002 \u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \uff1a sensor . other . lane _ invasion \u8f93\u51fa \uff1a \u6bcf\u6b21 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 carla . LaneInvasionEvent \u3002 \u6bcf\u6b21 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u5730\u56fe \u7684 OpenDRIVE \u63cf\u8ff0 \u63d0\u4f9b \u7684 \u9053\u8def \u6570\u636e \uff0c \u901a\u8fc7 \u8003\u8651 \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \u6765 \u786e\u5b9a \u4e3b \u8f66\u8f86 \u662f\u5426 \u6b63\u5728 \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u3002 \u7136\u800c \uff0c \u6709 \u4e00\u4e9b \u4e8b\u60c5 \u9700\u8981 \u8003\u8651 \uff1a OpenDRIVE \u6587\u4ef6 \u548c \u5730\u56fe \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u5c06 \u5bfc\u81f4 \u89c4\u5219 \u4e0d\u89c4\u5219 \u73b0\u8c61 \uff0c \u4f8b\u5982 \u5728 \u5730\u56fe \u4e2d \u4e0d \u53ef\u89c1 \u7684 \u4ea4\u53c9 \u8f66\u9053 \u3002 \u8f93\u51fa \u68c0\u7d22 \u4ea4\u53c9 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \uff1a \u8ba1\u7b97 \u5728 OpenDRIVE \u4e2d \u5b8c\u6210 \uff0c \u5e76 \u5c06 \u56db\u4e2a \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u6574\u4e2a \u7a7a\u95f4 \u89c6\u4e3a \u4e00\u4e2a \u6574\u4f53 \u3002 \u56e0\u6b64 \uff0c \u53ef\u80fd \u6709 \u4e0d\u6b62 \u4e00\u6761 \u8f66\u9053 \u540c\u65f6 \u7a7f\u8fc7 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u5c5e\u6027 \u3002 \u91cd\u8981 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u7684 \u8f66\u8f86 \uff08 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 crossed _ lane _ markings list ( carla . LaneMarking ) \u5df2 \u7a7f\u8d8a \u7684 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . lidar . ray _ cast \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . LidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 1 / FPS \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6b64 \u8f93\u51fa \u5305\u542b \u4eff\u771f \u70b9\u4e91 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5b83\u4eec \u7684 \u5217\u8868 carla . Location \uff1a for location in lidar _ measurement : print ( location ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u7684 \u4fe1\u606f \u88ab \u7f16\u7801 \u4e3a 4D \u70b9 \u3002 \u524d \u4e09\u4e2a \u662f xyz \u5750\u6807 \u4e2d \u7684 \u7a7a\u95f4 \u70b9 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u65c5\u884c \u8fc7\u7a0b \u4e2d \u7684 \u5f3a\u5ea6 \u635f\u5931 \u3002 \u8be5 \u5f3a\u5ea6 \u901a\u8fc7 \u4ee5\u4e0b \u516c\u5f0f \u8ba1\u7b97 \u3002 a \u2014 \u8870\u51cf \u7cfb\u6570 \u8870\u51cf\u7cfb\u6570 \u3002 \u8fd9 \u53ef\u80fd \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6ce2\u957f \u548c \u5927\u6c14 \u6761\u4ef6 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 atmosphere _ attenuation _ rate \u3002 d \u2014 \u4ece \u51fb\u4e2d \u70b9\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8ddd\u79bb \u4e3a\u4e86 \u83b7\u5f97 \u66f4\u597d \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u53ef\u4ee5 \u5220\u9664 \u4e91\u4e2d \u7684 \u70b9 \u3002 \u8fd9\u662f \u4eff\u771f \u5916\u90e8 \u6270\u52a8 \u9020\u6210 \u7684 \u635f\u5931 \u7684 \u7b80\u5355 \u65b9\u6cd5 \u3002 \u8fd9 \u53ef\u4ee5 \u7ed3\u5408 \u4e24\u4e2a \u4e0d\u540c \u7684 \u6765 \u5b8c\u6210 \u3002 General drop - off \u2014 \u968f\u673a \u6389\u843d \u7684 \u5206\u6570 \u6bd4\u4f8b \u3002 \u8fd9 \u662f \u5728 \u8ddf\u8e2a \u4e4b\u524d \u5b8c\u6210 \u7684 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u4e0d\u4f1a \u8ba1\u7b97 \u88ab \u4e22\u5f03 \u7684 \u70b9 \uff0c \u4ece\u800c \u63d0\u9ad8 \u6027\u80fd \u3002 \u5982\u679c \u662f dropoff _ general _ rate = 0.5 \uff0c \u5219 \u6263\u6389 \u4e00\u534a \u7684 \u5206\u6570 \u3002 Instensity - based drop - off \u2014 \u5bf9\u4e8e \u68c0\u6d4b \u5230 \u7684 \u6bcf\u4e2a \u70b9 \uff0c \u6839\u636e \u8ba1\u7b97 \u7684 \u5f3a\u5ea6 \u7684 \u6982\u7387 \u6267\u884c \u989d\u5916 \u7684 \u4e0b\u964d \u3002 \u8be5 \u6982\u7387 \u7531 \u4e24\u4e2a \u53c2\u6570 \u786e\u5b9a \u3002 dropoff _ zero _ intensity \u662f \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u3002 dropoff _ intensity _ limit \u662f \u9608\u503c \u5f3a\u5ea6 \uff0c \u8d85\u8fc7 \u8be5 \u9608\u503c \u5c06 \u4e0d\u4f1a \u6389\u843d \u4efb\u4f55 \u5206\u6570 \u3002 \u8303\u56f4 \u5185 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u662f \u57fa\u4e8e \u8fd9 \u4e24\u4e2a \u53c2\u6570 \u7684 \u7ebf\u6027 \u6bd4\u4f8b \u3002 \u6b64\u5916 \uff0c \u8be5 noise _ stddev \u5c5e\u6027 \u8fd8 \u4f7f \u566a\u58f0 \u6a21\u578b \u80fd\u591f \u4eff\u771f \u73b0\u5b9e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u51fa\u73b0 \u7684 \u610f\u5916 \u504f\u5dee \u3002 \u5bf9\u4e8e \u6b63\u503c \uff0c \u6bcf\u4e2a \u70b9 \u90fd \u4f1a \u6cbf\u7740 \u6fc0\u5149 \u5c04\u7ebf \u7684 \u77e2\u91cf \u968f\u673a \u6270\u52a8 \u3002 \u7ed3\u679c \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5177\u6709 \u5b8c\u7f8e \u7684 \u89d2\u5ea6 \u5b9a\u4f4d \uff0c \u4f46 \u8ddd\u79bb \u6d4b\u91cf \u5b58\u5728 \u566a\u97f3 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 atmosphere _ attenuation _ rate float 0.004 \u6d4b\u91cf \u6bcf\u7c73 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5f3a\u5ea6 \u635f\u5931 \u7684 \u7cfb\u6570 \u3002 \u68c0\u67e5 \u4e0a\u9762 \u7684 \u5f3a\u5ea6 \u8ba1\u7b97 \u3002 dropoff _ general _ rate float 0.45 \u968f\u673a \u4e22\u5f03 \u7684 \u70b9 \u7684 \u4e00\u822c \u6bd4\u4f8b \u3002 dropoff _ intensity _ limit float 0.8 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u5f3a\u5ea6 \u9608\u503c \uff0c \u9ad8\u4e8e \u8be5\u503c \u5219 \u4e0d\u4f1a \u4e0b\u964d \u4efb\u4f55 \u70b9 \u3002 dropoff _ zero _ intensity float 0.4 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u6bcf\u4e2a \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e0b\u964d \u7684 \u6982\u7387 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 noise _ stddev float 0.0 \u566a\u58f0 \u6a21\u578b \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \uff0c \u7528\u4e8e \u5e72\u6270 \u6cbf\u5176 \u5149\u7ebf \u6295\u5c04 \u77e2\u91cf \u7684 \u6bcf\u4e2a \u70b9 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u6bcf\u4e2a \u901a\u9053 \u6355\u83b7 \u6b64\u5e27 \u7684 \u70b9\u6570 \u3002 raw _ data bytes 32 \u4f4d \u6d6e\u70b9 \u6570\u7ec4 \uff08 \u6bcf\u4e2a \u70b9 \u7684 XYZI \uff09 \u3002 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \uff1a sensor . other . obstacle \u8f93\u51fa \uff1a \u6bcf\u4e2a \u969c\u788d \u969c\u788d\u7269 \u7684 carla . ObstacleDetectionEvent \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6bcf\u5f53 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u524d\u65b9 \u6709 \u969c\u788d \u65f6 \uff0c \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u9884\u6d4b \u969c\u788d \u969c\u788d\u7269 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6bcd\u8f66 \u524d\u65b9 \u521b\u5efa \u4e00\u4e2a \u80f6\u56ca \u5f62\u72b6 \uff0c \u5e76\u7528 \u5b83 \u6765 \u68c0\u67e5 \u78b0\u649e \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 distance float 5 \u8f68\u8ff9 \u8ddd\u79bb \u3002 hit _ radius float 0.5 \u8f68\u8ff9 \u7684 \u534a\u5f84 \u3002 only _ dynamics bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 debug _ linetrace bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u53ef\u89c1 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u8f66 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u68c0\u6d4b \u5230 \u969c\u788d \u969c\u788d\u7269 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 other _ actor carla . Actor \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u68c0\u6d4b \u4e3a \u969c\u788d \u969c\u788d\u7269 \u3002 distance float \u4ece \u53c2\u4e0e \u53c2\u4e0e\u8005 actor \u5230 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 other _ actor \u7684 \u8ddd\u79bb \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . radar \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RadarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u8be5 \u89c6\u56fe \u88ab \u8f6c\u6362 \u4e3a \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u7684 \u4e8c\u7ef4 \u70b9\u56fe \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5851\u9020 \u5143\u7d20 \u5e76 \u8bc4\u4f30 \u5b83\u4eec \u7684 \u8fd0\u52a8 \u548c \u65b9\u5411 \u3002 \u7531\u4e8e \u4f7f\u7528 \u5750\u6807 \u6781\u5750\u6807 \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u96c6\u4e2d \u5728 \u89c6\u56fe \u4e2d\u5fc3 \u5468\u56f4 \u3002 \u6d4b\u91cf \u7684 \u70b9 \u4f5c\u4e3a carla . RadarDetection \u6570\u7ec4 \u5305\u542b \u5728 carla . RadarMeasurement \u4e2d \uff0c \u8be5 \u6570\u7ec4 \u6307\u5b9a \u5b83\u4eec \u7684 \u5750\u6807 \u6781\u5750\u6807 \u3001 \u8ddd\u79bb \u548c \u901f\u5ea6 \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u53ef\u4ee5 \u8f7b\u677e \u8f6c\u6362 \u4e3a numpy \u53ef \u7ba1\u7406 \u7684 \u683c\u5f0f \uff1a # To get a numpy [ [ vel , azimuth , altitude , depth ] , ... [ , , , ] ] : points = np . frombuffer ( radar _ data . raw _ data , dtype = np . dtype ( ' f4 ' ) ) points = np . reshape ( points , ( len ( radar _ data ) , 4 ) ) \u63d0\u4f9b \u7684 \u811a\u672c manual _ control . py \u4f7f\u7528 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u663e\u793a \u6b63\u5728 \u68c0\u6d4b \u7684 \u70b9 \uff0c \u5e76 \u5728 \u9759\u6001 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u767d\u8272 \uff0c \u5728 \u5411 \u7269\u4f53 \u79fb\u52a8 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u7ea2\u8272 \uff0c \u5728 \u8fdc\u79bb \u7269\u4f53 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u84dd\u8272 \uff1a \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 horizontal _ fov float 30.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 points _ per _ second int 1500 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 range float 100 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 vertical _ fov float 30.0 \u5782\u76f4 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 raw _ data carla . RadarDetection \u68c0\u6d4b \u5230 \u7684 \u70b9 \u5217\u8868 \u3002 RadarDetection \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 altitude float \u4ee5 \u5f27\u5ea6 \u8868\u793a \u7684 \u9ad8\u5ea6 \u89d2 \u3002 azimuth float \u65b9\u4f4d \u65b9\u4f4d\u89d2 \uff08 \u4ee5 \u5f27\u5ea6 \u8868\u793a \uff09 \u3002 depth float \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u3002 velocity float \u671d\u5411 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u3002 RGB \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . rgb \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u201c RGB \u201d \u76f8\u673a \u5145\u5f53 \u6355\u83b7 \u573a\u666f \u56fe\u50cf \u7684 \u5e38\u89c4 \u76f8\u673a \u3002 carla . colorConverter \u5982\u679c enable _ postprocess _ effects \u542f\u7528 \uff0c \u4e3a\u4e86 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4e00\u7ec4 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u5c06 \u5e94\u7528 \u4e8e \u56fe\u50cf \uff1a Vignette : \u4f7f \u5c4f\u5e55 \u8fb9\u6846 \u53d8\u6697 \u3002 Grain jitter : \u4e3a \u6e32\u67d3 \u6dfb\u52a0 \u4e00\u4e9b \u566a\u70b9 \u3002 Bloom : \u5f3a\u70c8 \u7684 \u5149\u7ebf \u4f1a \u707c\u70e7 \u5b83\u4eec \u5468\u56f4 \u7684 \u533a\u57df \u3002 Auto exposure : \u4fee\u6539 \u56fe\u50cf \u4f3d\u739b\u4ee5 \u4eff\u771f \u773c\u775b \u5bf9 \u8f83 \u6697 \u6216 \u8f83\u4eae \u533a\u57df \u7684 \u9002\u5e94 \u3002 Lens flares : \u4eff\u771f \u660e\u4eae \u7269\u4f53 \u5728 \u955c\u5934 \u4e0a \u7684 \u53cd\u5c04 \u3002 Depth of field : \u6a21\u7cca \u9760\u8fd1 \u6216 \u8fdc\u79bb \u76f8\u673a \u7684 \u7269\u4f53 \u3002 sensor _ tick \u544a\u8bc9 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u6570\u636e \u7684 \u901f\u5ea6 \u6709 \u591a \u5feb \u3002 \u503c\u4e3a 1.5 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf \u534a\u79d2 \u6355\u83b7 \u4e00\u6b21 \u6570\u636e \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u503c 0.0 \u8868\u793a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u3002 \u76f8\u673a \u57fa\u672c \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 bloom _ intensity float 0.675 \u5149\u6655 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 fstop float 1.4 \u76f8\u673a \u955c\u5934 \u7684 \u6253\u5f00 \u3002 \u5178\u578b \u955c\u5934 \u7684 \u5149\u5708 1 / fstop \u4e3a f / 1.2 \uff08 \u66f4\u5927 \u7684 \u5149\u5708 \uff09 \u3002 \u8f83\u5927 \u7684 \u6570\u5b57 \u5c06 \u51cf\u5c11 \u666f\u6df1 \u6548\u679c \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 iso float 100.0 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \u3002 gamma float 2.2 \u76f8\u673a \u7684 \u76ee\u6807 \u4f3d\u739b\u503c \u3002 lens _ flare _ intensity float 0.1 \u955c\u5934 \u7729\u5149 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 shutter _ speed float 200.0 \u76f8\u673a \u5feb\u95e8 \u901f\u5ea6 \u5feb\u95e8\u901f\u5ea6 \uff0c \u4ee5 \u79d2 \u4e3a \u5355\u4f4d ( 1.0 / s ) \u3002 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u9ad8\u7ea7 \u76f8\u673a \u5c5e\u6027 \u7531\u4e8e \u8fd9\u4e9b \u6548\u679c \u662f \u7531 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u7684 \uff0c \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u4ed6\u4eec \u7684 \u6587\u6863 \uff1a \u81ea\u52a8 \u66dd\u5149 \u5f71\u89c6 \u7ea7 \u666f\u6df1 \u65b9\u6848 \u989c\u8272 \u5206\u7ea7 \u548c \u7535\u5f71 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 min _ fstop float 1.2 \u6700\u5927 \u5149\u5708 \u3002 blade _ count int 5 \u6784\u6210 \u9694\u819c \u673a\u6784 \u7684 \u53f6\u7247 \u6570\u91cf \u3002 exposure _ mode str histogram \u53ef\u4ee5 \u662f manual \u6216 or histogram \u3002 \u66f4 \u591a \u5185\u5bb9 \u8bf7 \u53c2\u89c1 UE4 \u6587\u6863 \u3002 exposure _ compensation float Linux : + 0.75 Windows : 0.0 \u66dd\u5149 \u7684 \u5bf9\u6570 \u8c03\u6574 \u3002 0 \uff1a \u65e0 \u8c03\u6574 \uff0c - 1 \uff1a 2 \u500d \u66f4 \u6697 \uff0c - 2 \uff1a 4 \u66f4\u6697 \uff0c 1 \uff1a 2 \u500d \u66f4\u4eae \uff0c 2 \uff1a 4 \u500d \u66f4\u4eae \u3002 exposure _ min _ bright float 10.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u4f4e \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u4f4e \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5c0f\u4e8e \u6216 \u7b49\u4e8e exposure _ max _ bright \u3002 exposure _ max _ bright float 12.0 \u5728 ` exposure _ mode : \" histogram \" ` \u4e2d \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u5927 \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u9ad8 \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5927\u4e8e \u6216 \u7b49\u4e8e ` exposure _ min _ bright ` \u3002 exposure _ speed _ up float 3.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u3002 \u4ece \u9ed1\u6697 \u73af\u5883 \u5230 \u660e\u4eae \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 exposure _ speed _ down float 1.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u4ece \u660e\u4eae \u73af\u5883 \u5230 \u9ed1\u6697 \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 calibration _ constant float 16.0 18% \u53cd\u7167 \u53cd\u7167\u7387 \u7684 \u6821\u51c6 \u5e38\u6570 \u3002 focal _ distance float 1000.0 \u666f\u6df1 \u6548\u679c \u5e94 \u6e05\u6670 \u7684 \u8ddd\u79bb \u3002 \u4ee5 \u5398\u7c73 \uff08 \u865a\u5e7b \u5f15\u64ce \u5355\u4f4d \uff09 \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 blur _ amount float 1.0 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 / \u5f3a\u5ea6 \u3002 blur _ radius float 0.0 1080p \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e0b \u7684 \u534a\u5f84 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \uff0c \u6839\u636e \u8ddd \u76f8\u673a \u7684 \u8ddd\u79bb \u4eff\u771f \u5927\u6c14 \u6563\u5c04 \u3002 motion _ blur _ intensity float 0.45 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 [ 0 , 1 ] \u3002 motion _ blur _ max _ distortion float 0.35 \u8fd0\u52a8 \u6a21\u7cca \u5f15\u8d77 \u7684 \u6700\u5927 \u5931\u771f \u3002 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 motion _ blur _ min _ object _ screen _ size float 0.1 \u5bf9\u4e8e \u8fd0\u52a8 \u6a21\u7cca \uff0c \u5bf9\u8c61 \u5fc5\u987b \u5177\u6709 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u8f83 \u4f4e \u7684 \u503c \u610f\u5473 \u610f\u5473\u7740 \u8f83\u5c11 \u7684 \u7ed8\u5236 \u8c03\u7528 \u3002 slope float 0.88 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 S \u66f2\u7ebf \u7684 \u9661\u5ea6 \u3002 \u503c\u8d8a \u5927 \uff0c \u659c\u7387 \u8d8a \u9661 \uff08 \u8d8a\u6697 \uff09 [ 0.0 , 1.0 ] \u3002 toe float 0.55 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u6df1\u8272 [ 0.0 , 1.0 ] \u3002 shoulder float 0.26 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u660e\u4eae \u989c\u8272 [ 0.0 , 1.0 ] \u3002 black _ clip float 0.0 \u4e0d \u5e94 \u8c03\u6574 \u6b64\u503c \u3002 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u548c \u9ed1\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u7684 \u4f4d\u7f6e [ 0.0 , 1.0 ] \u3002 white _ clip float 0.04 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u7684 \u4f4d\u7f6e \uff0c \u5e76\u4e14 \u767d\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b\u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 [ 0.0 , 1.0 ] \u3002 temp float 6500.0 \u5e73\u8861 \u767d\u5e73\u8861 \u4e0e \u573a\u666f \u4e2d \u5149\u7ebf \u7684 \u6e29\u5ea6 \u6709\u5173 \u3002 \u767d\u5149 \uff1a \u5f53 \u4e0e \u5149\u6e29 \u5339\u914d \u65f6 \u3002 \u6696\u5149 \uff1a \u5f53 \u9ad8\u4e8e \u573a\u666f \u4e2d \u7684 \u5149\u7ebf \u65f6 \uff0c \u5448 \u6de1\u9ec4 \u9ec4\u8272 \u6de1\u9ec4\u8272 \u3002 \u51b7\u5149 \uff1a \u4f4e\u4e8e \u5149\u7ebf \u65f6 \u3002 \u84dd\u8272 \u3002 tint float 0.0 \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u8272\u8c03 \u3002 \u8c03\u6574 \u9752\u8272 \u548c \u6d0b\u7ea2 \u7ea2\u8272 \u6d0b\u7ea2\u8272 \u7684 \u989c\u8272 \u8303\u56f4 \u3002 \u8fd9 \u5e94\u8be5 \u4e0e \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u5c5e\u6027 \u4e00\u8d77 \u4f7f\u7528 \u4ee5 \u83b7\u5f97 \u51c6\u786e \u7684 \u989c\u8272 \u3002 \u5728 \u67d0\u4e9b \u5149\u6e29 \u4e0b \uff0c \u989c\u8272 \u53ef\u80fd \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u9ec4 \u6216 \u66f4 \u84dd \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5e73\u8861 \u6700\u7ec8 \u7684 \u989c\u8272 \uff0c \u4f7f \u5176 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u81ea\u7136 \u3002 chromatic _ aberration _ intensity float 0.0 \u7528\u4e8e \u63a7\u5236 \u8272\u5f69 \u504f\u79fb \u7684 \u7f29\u653e \u56e0\u5b50 \uff0c \u5728 \u5c4f\u5e55 \u8fb9\u6846 \u4e0a \u66f4 \u660e\u663e \u3002 chromatic _ aberration _ offset float 0.0 \u5230 \u53d1\u751f \u6548\u679c \u7684 \u56fe\u50cf \u4e2d\u5fc3 \u7684 \u6b63\u5219 \u5316 \u8ddd\u79bb \u3002 enable _ postprocess _ effects bool True \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u6fc0\u6d3b \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . rss \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RssResponse \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u91cd\u8981 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u9605\u8bfb \u672c\u6587 \u4e4b\u524d \u5148 \u9605\u8bfb \u5177\u4f53 \u7684 \u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6\u6210 \u4e86 Carla \u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 C++ \u5e93 \u3002 \u5b83 \u5728 Carla \u4e2d \u9ed8\u8ba4 \u88ab \u7981\u7528 \uff0c \u5e76\u4e14 \u5fc5\u987b \u663e\u5f0f \u6784\u5efa \u624d\u80fd \u4f7f\u7528 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u72b6\u6001 \u5e76 \u68c0\u7d22 \u5f53\u524d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u54cd\u5e94 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 carla . RssRestrictor \u5c06 \u4f7f\u7528 \u6b64 \u6570\u636e \u6765 \u8c03\u6574 carla . VehicleControl \uff0c \u7136\u540e \u518d \u5c06 \u5176 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u53ef\u4ee5 \u901a\u8fc7 \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u6216 \u7528\u6237 \u8f93\u5165 \u751f\u6210 \u3002 \u4f8b\u5982 \uff0c \u4e0b\u9762 \u6709 \u4e00\u6bb5 \u6765\u81ea \u7684 \u4ee3\u7801 \u7247\u6bb5 PythonAPI / examples / rss / manual _ control _ rss . py \uff0c \u5176\u4e2d \u5728 \u5fc5\u8981 \u65f6 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4fee\u6539 \u7528\u6237 \u8f93\u5165 \u3002 1 . \u68c0\u67e5 RssSensor \u662f\u5426 \u751f\u6210 \u5305\u542b \u9650\u5236 \u7684 \u6709\u6548 \u54cd\u5e94 \u3002 2 . \u6536\u96c6 \u8f66\u8f86 \u7684 \u5f53\u524d \u52a8\u6001 \u548c \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u3002 3 . \u4f7f\u7528 RssSensor \u7684 \u54cd\u5e94 \u4ee5\u53ca \u8f66\u8f86 \u5f53\u524d \u7684 \u52a8\u6001 \u548c \u7269\u7406 \u7279\u6027 \u5bf9 \u8f66\u8f86 \u63a7\u5236 \u65bd\u52a0 \u9650\u5236 \u3002 rss _ proper _ response = self ._ world . rss _ sensor . proper _ response if self ._ world . rss _ sensor and self ._ world . rss _ sensor . response _ valid else None if rss _ proper _ response : ... vehicle _ control = self ._ restrictor . restrict _ vehicle _ control ( vehicle _ control , rss _ proper _ response , self ._ world . rss _ sensor . ego _ dynamics _ on _ route , self ._ vehicle _ physics ) carla . RssSensor \u7c7b \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u84dd\u56fe \u6ca1\u6709 \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u3002 \u4f46\u662f \uff0c \u5b83 \u5b9e\u4f8b \u5316 \u7684 carla . RssSensor \u5bf9\u8c61 \u5177\u6709 Python API \u53c2\u8003 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u3002 \u4ee5\u4e0b \u662f \u5b83\u4eec \u7684 \u6458\u8981 \u3002 carla . RssSensor \u53d8\u91cf \u7c7b\u578b \u63cf\u8ff0 ego _ vehicle _ dynamics ad . rss . world . RssDynamics \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 other _ vehicle _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u5176\u4ed6 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 pedestrian _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u884c\u4eba \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 road _ boundaries _ mode carla . RssRoadBoundariesMode \u542f\u7528 / \u7981\u7528 \u7559\u5728 \u9053\u8def \u4e0a \u529f\u80fd \u3002 \u9ed8\u8ba4 \u4e3a \u5173\u95ed \u3002 # Fragment of rss _ sensor . py # The carla . RssSensor is updated when listening for a new carla . RssResponse def _ on _ rss _ response ( weak _ self , response ) : ... self . timestamp = response . timestamp self . response _ valid = response . response _ valid self . proper _ response = response . proper _ response self . ego _ dynamics _ on _ route = response . ego _ dynamics _ on _ route self . rss _ state _ snapshot = response . rss _ state _ snapshot self . situation _ snapshot = response . situation _ snapshot self . world _ model = response . world _ model \u8b66\u544a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b8c\u5168 \u5de5\u4f5c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u6ca1\u6709 \u84dd\u56fe \u3002 \u5bf9 \u5c5e\u6027 \u7684 \u66f4\u6539 \u5c06 \u5728 \u8c03\u7528 listen ( ) \u540e \u751f\u6548 \u3002 \u6b64\u7c7b \u4e2d \u53ef\u7528 \u7684 \u65b9\u6cd5 \u4e0e \u8f66\u8f86 \u7684 \u8def\u7ebf \u6709\u5173 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8ba1\u7b97 \u59cb\u7ec8 \u57fa\u4e8e \u672c\u8f66 \u901a\u8fc7 \u9053\u8def \u7f51\u7edc \u7684 \u8def\u7ebf \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u63d0\u4f9b \u4e00\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u6765 \u63a7\u5236 \u6240 \u8003\u8651 \u7684 \u8def\u7ebf \uff0c \u8fd9\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u53ef\u80fd \u662f carla . Transform \u4e2d \u7684 carla . Waypoint \u3002 \u6700\u597d \u5728 \u4ea4\u53c9 \u4ea4\u53c9\u70b9 \u4e4b\u540e \u9009\u62e9 \u8fd9\u4e9b \u70b9 \uff0c \u4ee5 \u5f3a\u5236 \u8def\u7ebf \u91c7\u53d6 \u6240 \u9700 \u7684 \u8f6c\u5f2f \u3002 carla . RssSensor \u65b9\u6cd5 \u63cf\u8ff0 routing _ targets \u83b7\u53d6 \u7528\u4e8e \u8def\u7531 \u7684 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u5217\u8868 \u3002 append _ routing _ target \u5c06 \u9644\u52a0 \u4f4d\u7f6e \u9644\u52a0 \u5230 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u3002 reset _ routing _ targets \u5220\u9664 \u9644\u52a0 \u7684 \u8def\u7531 \u76ee\u6807 \u3002 drop _ route \u653e\u5f03 \u5f53\u524d \u8def\u7531 \u5e76 \u521b\u5efa \u4e00\u6761 \u65b0\u8def \u7531 \u3002 register _ actor _ constellation _ callback \u6ce8\u518c \u56de\u8c03 \u6765\u81ea \u5b9a\u4e49 \u8ba1\u7b97 \u3002 set _ log _ level \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 set _ map _ log _ level \u8bbe\u7f6e \u7528\u4e8e \u5730\u56fe \u76f8\u5173 \u65e5\u5fd7 \u7684 \u65e5\u5fd7 \u7ea7\u522b \u3002 # Update the current route self . sensor . reset _ routing _ targets ( ) if routing _ targets : for target in routing _ targets : self . sensor . append _ routing _ target ( target ) \u7b14\u8bb0 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u8def\u7531 \u76ee\u6807 \uff0c \u5219 \u4f1a \u521b\u5efa \u968f\u673a \u8def\u7531 \u3002 \u8f93\u51fa \u5c5e\u6027 carla . RssResponse \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 response _ valid bool \u54cd\u5e94 \u6570\u636e \u7684 \u6709\u6548 \u6709\u6548\u6027 \u3002 proper _ response ad . rss . state . ProperResponse RSS \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \uff0c \u5305\u62ec \u52a0\u901f \u9650\u5236 \u3002 rss _ state _ snapshot ad . rss . state . RssStateSnapshot RSS \u72b6\u6001 \u4e3a \u5f53\u524d \u65f6\u95f4 \u70b9 \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8be6\u7ec6 \u7684 \u5355\u72ec \u8f93\u51fa \u3002 situation _ snapshot ad . rss . situation . SituationSnapshot \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u60c5\u51b5 \u3002 \u8fd9\u662f \u7528\u4e8e RSS \u8ba1\u7b97 \u7684 \u7ecf\u8fc7 \u5904\u7406 \u7684 \u8f93\u5165 \u6570\u636e \u3002 world _ model ad . rss . world . WorldModel \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u4e16\u754c \u6a21\u578b \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8f93\u5165 \u6570\u636e \u3002 ego _ dynamics _ on _ route carla . RssEgoDynamicsOnRoute \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u6001 \u3002 \u5982\u679c \u6ce8\u518c \u4e86 actor _ constellation _ callback \uff0c \u5219 \u4f1a \u89e6\u53d1 \u4ee5\u4e0b \u8c03\u7528 \uff1a \u9ed8\u8ba4 \u8ba1\u7b97 ( actor _ constellation _ data . other _ actor = None ) \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8ba1\u7b97 # Fragment of rss _ sensor . py # The function is registered as actor _ constellation _ callback def _ on _ actor _ constellation _ request ( self , actor _ constellation _ data ) : actor _ constellation _ result = carla . RssActorConstellationResult ( ) actor _ constellation _ result . rss _ calculation _ mode = ad . rss . map . RssMode . NotRelevant actor _ constellation _ result . restrict _ speed _ limit _ mode = ad . rss . map . RssSceneCreation . RestrictSpeedLimitMode . IncreasedSpeedLimit10 actor _ constellation _ result . ego _ vehicle _ dynamics = self . current _ vehicle _ parameters actor _ constellation _ result . actor _ object _ type = ad . rss . world . ObjectType . Invalid actor _ constellation _ result . actor _ dynamics = self . current _ vehicle _ parameters actor _ id = - 1 actor _ type _ id = \" none \" if actor _ constellation _ data . other _ actor ! = None : # customize actor _ constellation _ result for specific actor ... else : # default ... return actor _ constellation _ result \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . lidar . ray _ cast _ semantic \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . SemanticLidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u4f7f\u7528 \u5c04\u7ebf \u6295\u5c04 \u5b9e\u73b0 \u7684 \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff0c \u516c\u5f00 \u6709\u5173 \u5c04\u7ebf \u6295\u5c04 \u547d\u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5b83 \u7684 \u884c\u4e3a \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e\u5e38 \u76f8\u4f3c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u6709 \u4e24\u4e2a \u4e3b\u8981 \u533a\u522b \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u68c0\u7d22 \u5230 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u6bcf\u4e2a \u70b9 \u5305\u542b \u66f4 \u591a \u6570\u636e \u3002 \u8be5\u70b9 \u7684 \u5750\u6807 \uff08 \u4e0e \u666e\u901a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e00\u6837 \uff09 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u4e0e \u8868\u9762 \u6cd5\u7ebf \u4e4b\u95f4 \u7684 \u4f59\u5f26 \u503c \u3002 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u57fa\u7840 \u4e8b\u5b9e \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f Carla \u5bf9\u8c61 \u547d\u4e2d \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65e2 \u4e0d \u5305\u542b \u5f3a\u5ea6 \u3001 \u8870\u51cf \u4e5f \u4e0d \u5305\u542b \u566a\u58f0 \u6a21\u578b \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u70b9 \u662f \u901a\u8fc7 \u4e3a \u5782\u76f4 FOV \u4e2d \u5206\u5e03 \u7684 \u6bcf\u4e2a \u901a\u9053 \u6dfb\u52a0 \u6fc0\u5149 \u6765 \u8ba1\u7b97 \u7684 \u3002 \u65cb\u8f6c \u662f \u901a\u8fc7 \u8ba1\u7b97 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5728 \u4e00\u5e27 \u4e2d \u65cb\u8f6c \u7684 \u6c34\u5e73 \u89d2\u5ea6 \u6765 \u4eff\u771f \u7684 \u3002 \u70b9\u4e91 \u662f \u901a\u8fc7 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \u5bf9 \u6bcf\u4e2a \u6fc0\u5149 \u8fdb\u884c \u5149\u7ebf \u6295\u5c04 \u6765 \u8ba1\u7b97 \u7684 \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 1 / FPS \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 \u6b64 \u8f93\u51fa \u5305\u542b \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8bed\u4e49 \u68c0\u6d4b \u4e91 \uff0c \u56e0\u6b64 \uff0c \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5176 \u5217\u8868 carla . SemanticLidarDetection \uff1a for detection in semantic _ lidar _ measurement : print ( detection ) \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) \u3002 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d LIDAR \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int LIDAR \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u5f53\u524d \u5e27 \u4e2d \u6355\u83b7 \u7684 \u6bcf\u4e2a \u901a\u9053 \u7684 \u70b9\u6570 \u3002 raw _ data bytes \u5305\u542b \u5177\u6709 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u4fe1\u606f \u7684 \u70b9\u4e91 \u7684 \u6570\u7ec4 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u70b9 \uff0c \u5b58\u50a8 \u56db\u4e2a 32 \u4f4d \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 XYZ \u5750\u6807 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3002 Unsigned int \u5305\u542b \u547d\u4e2d \u5bf9\u8c61 \u7684 \u7d22\u5f15 \u3002 Unsigned int \u5305\u542b \u5bf9\u8c61 it \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . semantic _ segmentation \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u6444\u50cf \u6444\u50cf\u673a \u6839\u636e \u5176 \u6807\u7b7e \u4ee5 \u4e0d\u540c \u7684 \u989c\u8272 \u663e\u793a \u5b83 \uff0c \u4ece\u800c \u5bf9 \u53ef\u89c1 \u7684 \u6bcf\u4e2a \u7269\u4f53 \u8fdb\u884c \u5206\u7c7b \uff08 \u4f8b\u5982 \uff0c \u884c\u4eba \u4e0e \u8f66\u8f86 \u7684 \u989c\u8272 \u4e0d\u540c \uff09 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u65f6 \uff0c \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7d20 \u90fd \u4f1a \u4f7f\u7528 \u6807\u7b7e \u521b\u5efa \u3002 \u6240\u4ee5 \u5f53 \u6f14\u5458 \u4ea7\u751f \u65f6 \u5c31 \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u5bf9\u8c61 \u6309 \u5176 \u5728 \u9879\u76ee \u4e2d \u7684 \u76f8\u5bf9 \u6587\u4ef6 \u8def\u5f84 \u8fdb\u884c \u5206\u7c7b \u3002 \u4f8b\u5982 \uff0c \u5b58\u50a8 \u5728 \u4e2d \u7684 \u7f51\u683c Unreal / CarlaUE4 / Content / Static / Pedestrians \u88ab \u6807\u8bb0 \u4e3a Pedestrian \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63d0\u4f9b \u7684 \u56fe\u50cf \u7684 \u6807\u7b7e \u4fe1\u606f \u7f16\u7801 \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \uff1a \u7ea2\u8272 \u503c\u4e3a \u7684 \u50cf\u7d20 x \u5c5e\u4e8e \u5e26\u6709 \u6807\u7b7e \u7684 \u5bf9\u8c61 x \u3002 \u8fd9\u4e2a \u539f\u59cb \u7684 carla . Image \u53ef\u4ee5 \u5728 carla . ColorConverter \u4e2d \u7684 CityScapesPalette \u7684 \u5e2e\u52a9 \u4e0b \u5b58\u50a8 \u548c \u8f6c\u6362 \uff0c \u4ee5 \u5e94\u7528 \u6807\u7b7e \u4fe1\u606f \u5e76 \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u663e\u793a \u56fe\u7247 \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . cityScapesPalette ) \u76ee\u524d \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u6807\u7b7e \uff1a \u503c \u6807\u7b7e \u8f6c\u6362 \u540e \u7684 \u989c\u8272 \u63cf\u8ff0 0 Unlabeled ( 0 , 0 , 0 ) \u8003\u8651 \u5c1a\u672a \u5206\u7c7b \u7684 \u5143\u7d20 Unlabeled \u3002 \u8be5 \u7c7b\u522b \u5e94\u8be5 \u662f \u7a7a \u7684 \u6216 \u81f3\u5c11 \u5305\u542b \u6ca1\u6709 \u51b2\u7a81 \u7684 \u5143\u7d20 \u3002 1 Building ( 70 , 70 , 70 ) \u623f\u5c4b \u3001 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u7b49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4ee5\u53ca \u9644\u7740 \u5728 \u5176 \u4e0a \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u7a7a\u8c03 \u3001 \u811a\u624b \u811a\u624b\u67b6 \u3001 \u906e\u9633 \u906e\u9633\u7bf7 \u6216 \u68af\u5b50 \u7b49\u7b49 \u3002 2 Fence ( 100 , 40 , 40 ) \u969c\u788d \u969c\u788d\u7269 \u3001 \u680f\u6746 \u6216 \u5176\u4ed6 \u76f4\u7acb \u7ed3\u6784 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u5305\u56f4 \u5730\u9762 \u533a\u57df \u7684 \u6728\u6750 \u6216 \u7535\u7ebf \u7ec4\u4ef6 \u3002 3 Other ( 55 , 90 , 80 ) \u4e00\u5207 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u7684 \u4e1c\u897f \u3002 4 Pedestrian ( 220 , 20 , 60 ) \u6b65\u884c \u6216 \u4e58\u5750 / \u9a7e\u9a76 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u6216 \u79fb\u52a8 \u7cfb\u7edf \u7684 \u4eba \u3002 \u4f8b\u5982 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6216 \u8e0f\u677f \u677f\u8f66 \u8e0f\u677f\u8f66 \u3001 \u6ed1\u677f \u3001 \u9a6c \u3001 \u65f1\u51b0 \u51b0\u978b \u65f1\u51b0\u978b \u3001 \u8f6e\u6905 \u7b49 \u3002 5 Pole ( 153 , 153 , 153 ) \u4e3b\u8981 \u4e3a \u5782\u76f4 \u65b9\u5411 \u7684 \u5c0f\u578b \u6746 \u3002 \u5982\u679c \u6746\u6709 \u6c34\u5e73 \u90e8\u5206 \uff08 \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \uff09 \uff0c \u5219 \u4e5f \u88ab \u89c6\u4e3a \u6746 \u3002 \u4f8b\u5982 \u6807\u5fd7 \u6746 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \u3002 6 RoadLine ( 157 , 234 , 50 ) \u9053\u8def \u4e0a \u7684 \u6807\u8bb0 \u3002 7 Road ( 128 , 64 , 128 ) \u6c7d\u8f66 \u901a\u5e38 \u884c\u9a76 \u7684 \u90e8\u5206 \u5730\u9762 \u3002 \u4f8b\u5982 \u4efb\u4f55 \u65b9\u5411 \u7684 \u8f66\u9053 \u548c \u8857\u9053 \u3002 8 SideWalk ( 244 , 35 , 232 ) \u6307\u5b9a \u4f9b \u884c\u4eba \u6216 \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8005 \u4f7f\u7528 \u7684 \u5730\u9762 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e0d\u4ec5 \u901a\u8fc7 \u6807\u8bb0 \uff0c \u8fd8 \u901a\u8fc7 \u4e00\u4e9b \u969c\u788d \u969c\u788d\u7269 \uff08 \u4f8b\u5982 \u8def\u7f18 \u77f3 \u6216 \u6746\u5b50 \uff09 \u5c06 \u9053\u8def \u4e0e \u9053\u8def \u5206 \u9694\u5f00 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u5212\u5b9a \u7684 \u8def\u8fb9 \u3001 \u4ea4\u901a \u4ea4\u901a\u5c9b \uff08 \u6b65\u884c \u90e8\u5206 \uff09 \u548c \u6b65\u884c \u533a \u3002 9 Vegetation ( 107 , 142 , 35 ) \u6811\u6728 \u3001 \u6811\u7bf1 \u3001 \u5404\u79cd \u5782\u76f4 \u690d\u88ab \u3002 \u8003\u8651 \u5730\u9762 \u690d\u88ab Terrain \u3002 10 Vehicles ( 0 , 0 , 142 ) \u6c7d\u8f66 \u3001 \u8d27\u8f66 \u3001 \u5361\u8f66 \u3001 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3001 \u516c\u5171 \u6c7d\u8f66 \u516c\u5171\u6c7d\u8f66 \u3001 \u706b\u8f66 \u3002 11 Wall ( 102 , 102 , 156 ) \u72ec\u7acb \u7684 \u7acb\u5899 \u3002 \u4e0d\u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 12 TrafficSign ( 220 , 220 , 0 ) \u7531\u5dde / \u5e02 \u5f53\u5c40 \u5b89\u88c5 \u7684 \u6807\u5fd7 \uff0c \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u3002 \u6b64 \u7c7b\u522b \u4e0d \u5305\u62ec \u9644\u6709 \u6807\u5fd7 \u7684 \u6746 \u3002 \u4f8b\u5982 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u3001 \u65b9\u5411 \u6807\u5fd7 ... 13 Sky ( 70 , 130 , 180 ) \u5f00\u9614 \u7684 \u5929\u7a7a \u3002 \u5305\u62ec \u4e91 \u548c \u592a\u9633 \u3002 14 Ground ( 81 , 0 , 81 ) \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u4e0d \u5339\u914d \u7684 \u4efb\u4f55 \u6c34\u5e73 \u5730\u9762 \u7ed3\u6784 \u3002 \u4f8b\u5982 \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u5171\u4eab \u7684 \u533a\u57df \uff0c \u6216 \u901a\u8fc7 \u8def\u7f18 \u4e0e \u9053\u8def \u5206\u9694 \u7684 \u5e73\u5766 \u73af\u5c9b \u3002 15 Bridge ( 150 , 100 , 100 ) \u53ea\u6709 \u6865 \u7684 \u7ed3\u6784 \u3002 \u6805\u680f \u3001 \u4eba \u3001 \u8f66\u8f86 \u4ee5\u53ca \u5176\u4e0a \u7684 \u5176\u4ed6 \u5143\u7d20 \u90fd \u88ab \u5355\u72ec \u6807\u8bb0 \u3002 16 RailTrack ( 230 , 150 , 140 ) \u5404\u79cd \u975e \u6c7d\u8f66 \u884c\u9a76 \u7684 \u94c1\u8f68 \u3002 \u4f8b\u5982 \u5730\u94c1 \u548c \u706b\u8f66 \u94c1\u8f68 \u3002 17 GuardRail ( 180 , 165 , 180 ) \u6240\u6709 \u7c7b\u578b \u7684 \u62a4\u680f / \u9632\u649e \u680f \u3002 18 TrafficLight ( 250 , 170 , 30 ) \u6ca1\u6709 \u706f\u6746 \u7684 \u4ea4\u901a \u706f\u7bb1 \u3002 19 Static ( 110 , 190 , 160 ) \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u548c \u9053\u5177 \u662f \u4e0d\u53ef \u79fb\u52a8 \u7684 \u3002 \u4f8b\u5982 \u6d88\u9632 \u6d88\u9632\u6813 \u3001 \u56fa\u5b9a \u957f\u51f3 \u3001 \u55b7\u6cc9 \u3001 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u3002 20 Dynamic ( 170 , 120 , 50 ) \u4f4d\u7f6e \u5bb9\u6613 \u968f \u65f6\u95f4 \u53d8\u5316 \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u53ef \u79fb\u52a8 \u5783\u573e \u5783\u573e\u6876 \u3001 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u3001 \u888b\u5b50 \u3001 \u8f6e\u6905 \u3001 \u52a8\u7269 \u7b49 \u3002 21 Water ( 45 , 60 , 150 ) \u6c34\u5e73 \u6c34\u9762 \u3002 \u4f8b\u5982 \u6e56\u6cca \u3001 \u6d77\u6d0b \u3001 \u6cb3\u6d41 \u3002 22 Terrain ( 145 , 170 , 100 ) \u8349 \u3001 \u5730\u9762 \u690d\u88ab \u3001 \u571f\u58e4 \u6216 \u6c99\u5b50 \u3002 \u8fd9\u4e9b \u533a\u57df \u4e0d \u9002\u5408 \u884c\u9a76 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u7684 \u9650\u5236 \u9650\u5236\u6027 \u8def\u7f18\u77f3 \u3002 \u7b14\u8bb0 \u9605\u8bfb \u672c \u6559\u7a0b \u4ee5 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u76f8\u673a \u57fa\u672c \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u6ef4\u7b54\u58f0 \uff09 \u3002 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 DVS \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . dvs \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . DVSEventArray \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216 \u4e8b\u4ef6 \u76f8\u673a \u662f \u4e00\u79cd \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u5b8c\u5168 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e8b\u4ef6 \u76f8\u673a \u4e0d\u662f \u4ee5 \u56fa\u5b9a \u901f\u7387 \u6355\u83b7 \u5f3a\u5ea6 \u56fe\u50cf \uff0c \u800c\u662f \u4ee5 \u4e8b\u4ef6 \u6d41 \u7684 \u5f62\u5f0f \u5f02\u6b65 \u6d4b\u91cf \u5f3a\u5ea6 \u53d8\u5316 \uff0c \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u4eae\u5ea6 \u53d8\u5316 \u8fdb\u884c \u7f16\u7801 \u3002 \u4e0e \u6807\u51c6 \u6444\u50cf \u6444\u50cf\u673a \u76f8\u6bd4 \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u5177\u6709 \u72ec\u7279 \u7684 \u5c5e\u6027 \u3002 \u5b83\u4eec \u5177\u6709 \u975e\u5e38 \u9ad8 \u7684 \u52a8\u6001 \u8303\u56f4 \uff08 140 dB \u4e0e 60 dB \uff09 \u3001 \u65e0 \u8fd0\u52a8 \u6a21\u7cca \u548c \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \u3002 \u56e0\u6b64 \uff0c \u4e8b\u4ef6 \u76f8\u673a \u662f \u5373\u4f7f \u5728 \u5177\u6709 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u9ad8\u901f \u573a\u666f \u548c \u9ad8 \u52a8\u6001 \u8303\u56f4 \u73af\u5883 \u4e0b \u4e5f \u80fd \u63d0\u4f9b \u9ad8\u8d28 \u8d28\u91cf \u9ad8\u8d28\u91cf \u89c6\u89c9 \u4fe1\u606f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4e3a \u57fa\u4e8e \u89c6\u89c9 \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u4e86 \u65b0 \u7684 \u5e94\u7528 \u9886\u57df \u5e94\u7528\u9886\u57df \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u8f93\u51fa \u4e8b\u4ef6 \u6d41 \u3002 \u5f53 \u5bf9\u6570 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u8fbe\u5230 \u9884\u5b9a \u4e49 \u7684 \u6052\u5b9a \u9608\u503c \uff08 \u901a\u5e38 \u5728 15% \u5230 30% \u4e4b\u95f4 \uff09 \u65f6 \uff0c \u5728 \u65f6\u95f4 \u6233 \u5904 \u7684 \u50cf\u7d20 \u5904 e = ( x , y , t , pol ) \u89e6\u53d1 \u4e8b\u4ef6 \u3002 L ( x , y , t ) - L ( x , y , t - \\ delta t ) = pol C t - \\ delta t \u662f \u8be5 \u50cf\u7d20 \u4e0a \u6700\u540e \u4e00\u4e2a \u4e8b\u4ef6 \u88ab \u89e6\u53d1 \u7684 \u65f6\u95f4 \uff0c \u5e76\u4e14 pol \u662f \u6839\u636e \u4eae\u5ea6 \u53d8\u5316 \u7684 \u7b26\u53f7 \u7684 \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 + 1 \u5f53 \u4eae\u5ea6 \u589e\u52a0 \u65f6 \u6781\u6027 \u4e3a \u6b63 \uff0c - 1 \u5f53 \u4eae\u5ea6 \u51cf\u5c11 \u65f6 \u6781\u6027 \u4e3a \u8d1f \u3002 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \u56fe \u6240\u793a \u3002 \u6807\u51c6 \u76f8\u673a \u4ee5 \u56fa\u5b9a \u901f\u7387 \u8f93\u51fa \u5e27 \uff0c \u4ece\u800c \u5728 \u573a\u666f \u4e2d \u4e0d \u5b58\u5728 \u8fd0\u52a8 \u65f6 \u53d1\u9001 \u5197\u4f59 \u4fe1\u606f \u3002 \u76f8\u6bd4 \u4e4b\u4e0b \u76f8\u6bd4\u4e4b\u4e0b \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u662f \u6570\u636e \u9a71\u52a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u80fd\u591f \u4ee5 \u5fae\u79d2 \u5ef6\u8fdf \u54cd\u5e94 \u4eae\u5ea6 \u53d8\u5316 \u3002 \u5728 \u7ed8\u56fe \u4e2d \uff0c \u53ea\u8981 \uff08 \u7b26\u53f7 \u5e26\u7b26\u53f7 \u7684 \uff09 \u4eae\u5ea6 \u53d8\u5316 \u968f \u65f6\u95f4 \u8d85\u8fc7 C \u4e00\u7ef4 \u7684 \u5bf9\u6bd4 \u5bf9\u6bd4\u5ea6 \u9608\u503c \uff0c \u5c31 \u4f1a \u751f\u6210 \u6b63 \uff08 \u6216\u8d1f \uff09 \u4e8b\u4ef6 \uff08 \u84dd\u70b9 \u3001 \u7ea2 \u70b9 \uff09 \u3002 \u89c2\u5bdf \u4fe1\u53f7 \u5feb\u901f \u53d8\u5316 \u65f6 \u4e8b\u4ef6 \u7387 \u5982\u4f55 \u589e\u957f \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5f53\u524d \u5b9e\u73b0 \u5728 \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u4ee5 \u7edf\u4e00 \u91c7\u6837 \u65b9\u5f0f \u5de5\u4f5c \u3002 \u56e0\u6b64 \uff0c \u4e3a\u4e86 \u4eff\u771f \u771f\u5b9e \u4e8b\u4ef6 \u76f8\u673a \u7684 \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u4ee5 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u6267\u884c \uff08 \u6bd4 \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u7684 \u9891\u7387 \u9ad8\u5f97 \u591a \uff09 \u3002 \u5b9e\u9645 \u5b9e\u9645\u4e0a \uff0c Carla \u6c7d\u8f66 \u884c\u9a76 \u901f\u5ea6 \u8d8a \u5feb \uff0c \u4e8b\u4ef6 \u6570\u91cf \u5c31 \u4f1a \u589e\u52a0 \u3002 \u56e0\u6b64 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9891\u7387 \u5e94 \u968f\u7740 \u573a\u666f \u7684 \u52a8\u6001 \u800c \u76f8\u5e94 \u589e\u52a0 \u3002 \u7528\u6237 \u5e94\u8be5 \u5728 \u65f6\u95f4 \u7cbe\u5ea6 \u548c \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u4e4b\u95f4 \u627e\u5230 \u5e73\u8861 \u3002 \u63d0\u4f9b \u7684 \u811a\u672c [ manual _ control . py ] \u4f7f\u7528 DVS \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u5c55\u793a \u5982\u4f55 \u914d\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5982\u4f55 \u83b7\u53d6 \u4e8b\u4ef6 \u6d41 \u4ee5\u53ca \u5982\u4f55 \u4ee5 \u56fe\u50cf \u683c\u5f0f \u56fe\u50cf\u683c\u5f0f \uff08 \u901a\u5e38 \u79f0\u4e3a \u4e8b\u4ef6 \u6846\u67b6 \uff09 \u63cf\u8ff0 \u6b64\u7c7b \u4e8b\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u7531\u4e8e DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u91c7\u6837 \u65b9\u6cd5 \uff0c \u5982\u679c \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u50cf\u7d20 \u5dee\u5f02 \uff0c \u6444\u50cf \u6444\u50cf\u673a \u5c06 \u4e0d\u4f1a \u8fd4\u56de \u56fe\u50cf \u3002 \u8fd9 \u603b\u662f \u53d1\u751f \u5728 \u7b2c\u4e00 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u6ca1\u6709 \u524d \u4e00\u5e27 \u53ef \u4f9b \u6bd4\u8f83 \uff0c \u5e76\u4e14 \u5728 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u79fb\u52a8 \u7684 \u60c5\u51b5 \u4e0b \u4e5f \u662f \u5982\u6b64 \u3002 DVS \u662f \u4e00\u4e2a \u76f8\u673a \uff0c \u56e0\u6b64 \u5177\u6709 RGB \u76f8\u673a \u4e2d \u53ef\u7528 \u7684 \u6240\u6709 \u5c5e\u6027 \u3002 \u7136\u800c \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5de5\u4f5c \u539f\u7406 \u51e0\u4e4e \u6ca1\u6709 \u4ec0\u4e48 \u72ec\u6709 \u7684 \u5c5e\u6027 \u3002 DVS \u76f8\u673a \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 positive _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u589e\u91cf \u76f8\u5173 \u7684 \u6b63 \u9608\u503c C ( 0 - 1 ) \u3002 negative _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u51cf\u5c11 \u76f8\u5173 \u7684 \u8d1f \u9608\u503c C ( 0 - 1 ) \u3002 sigma _ positive _ threshold float 0 \u79ef\u6781 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 sigma _ negative _ threshold float 0 \u8d1f\u9762 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 refractory _ period _ ns int 0.0 \u4e0d\u5e94 \u4e0d\u5e94\u671f \uff08 \u50cf\u7d20 \u5728 \u89e6\u53d1 \u4e8b\u4ef6 \u540e \u65e0\u6cd5 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u65f6\u95f4 \uff09 \uff0c \u4ee5 \u7eb3\u79d2 \u4e3a \u5355\u4f4d \u3002 \u5b83 \u9650\u5236 \u4e86 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u6700\u9ad8 \u9891\u7387 \u3002 use _ log bool true \u662f\u5426 \u4ee5 \u5bf9\u6570 \u5f3a\u5ea6 \u6807\u5ea6 \u5de5\u4f5c \u3002 log _ eps float 0.001 \u7528\u4e8e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u65e5\u5fd7 \u7684 Epsilon \u503c \uff1a L = log ( eps + I / 255.0 ) . \u5176\u4e2d I \u662f RGB \u56fe\u50cf \u7684 \u7070\u5ea6 \u503c \uff1a I = 0.2989 * R + 0.5870 * G + 0.1140 * B . \u5149\u6d41 \u76f8\u673a \u5149\u6d41 \u76f8\u673a \u6355\u6349 \u4ece \u76f8\u673a \u7684 \u89d2\u5ea6 \u611f\u77e5 \u7684 \u8fd0\u52a8 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bb0\u5f55 \u7684 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5bf9 \u6295\u5f71 \u5230 \u56fe\u50cf \u5e73\u9762 \u7684 \u8be5 \u70b9 \u7684 \u901f\u5ea6 \u8fdb\u884c \u7f16\u7801 \u3002 \u50cf\u7d20 \u7684 \u901f\u5ea6 \u5728 [ - 2 , 2 ] \u8303\u56f4 \u5185 \u7f16\u7801 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \u7684 \u8fd0\u52a8 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u4fe1\u606f \u4e0e \u56fe\u50cf \u5927\u5c0f \u4e00\u8d77 \u7f29\u653e \u81f3 [ - 2 * image _ size , 2 * image _ size ] \u3002 \u5149\u6d41 \u76f8\u673a \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u5149\u6d41 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes \u5305\u542b \u4e24\u4e2a \u6d6e\u70b9 \u503c \u7684 BGRA 64 \u4f4d \u50cf\u7d20 \u6570\u7ec4 \u3002","title":"\u4f20\u611f\u5668 \u53c2\u8003"},{"location":"ref_sensors/#_1","text":"\u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6df1\u5ea6 \u76f8\u673a \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76f8\u673a \u5149\u6d41 \u76f8\u673a \u91cd\u8981 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \uff08 x - \u5411\u524d \uff0c y - \u5411 \u53f3 \uff0c z - \u5411\u4e0a \uff09 \uff0c \u5e76 \u8fd4\u56de \u672c\u5730 \u7a7a\u95f4 \u4e2d \u7684 \u5750\u6807 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f6f\u4ef6 \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u5176 \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u8bb8\u591a \u53cd\u8f6c Y \u8f74 \uff0c \u56e0\u6b64 \u76f4\u63a5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u955c\u50cf \u8f93\u51fa \u3002","title":"\u4f20\u611f\u5668 \u53c2\u8003"},{"location":"ref_sensors/#_2","text":"\u84dd\u56fe \uff1a sensor . other . collision \u8f93\u51fa \uff1a \u6bcf\u6b21 \u78b0\u649e \u7684 carla . CollisionEvent \u3002 \u6bcf\u5f53 \u5176\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0e \u4e16\u754c \u4e0a \u7684 \u67d0\u4e9b \u7269\u4f53 \u53d1\u751f \u78b0\u649e \u65f6 \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u8bb0\u5f55 \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u6bcf\u4e2a \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u5e27 \u6bcf\u6b21 \u78b0\u649e \u90fd \u4f1a \u4ea7\u751f \u4e00\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u901a\u8fc7 \u4e0e \u591a\u4e2a \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \uff0c \u53ef\u4ee5 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u4ea7\u751f \u591a\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u7684 \u5c5e\u6027 \u3002","title":"\u78b0\u649e \u68c0\u6d4b\u5668"},{"location":"ref_sensors/#_3","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \uff09 \u3002 other _ actor carla . Actor \u4e0e \u7236\u7ea7 \u76f8\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse carla . Vector3D \u78b0\u649e \u7684 \u6b63\u5e38 \u8109\u51b2 \u7ed3\u679c \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_4","text":"\u84dd\u56fe \uff1a sensor . camera . depth \u8f93\u51fa \uff1a \u6bcf\u6b65 \u7684 \u56fe\u50cf carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u76f8\u673a \u63d0\u4f9b \u573a\u666f \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u7f16\u7801 \u6bcf\u4e2a \u50cf\u7d20 \u5230 \u76f8\u673a \u7684 \u8ddd\u79bb \uff08 \u4e5f \u79f0\u4e3a \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u6216 z \u7f13\u51b2 \u7f13\u51b2\u533a \uff09 \u4ee5 \u521b\u5efa \u5143\u7d20 \u7684 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u8be5 \u56fe\u50cf \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u7684 3 \u4e2a \u901a\u9053 \uff08 \u4ece \u5b57\u8282 \u4f4e\u5b57\u8282 \u5230 \u5b57\u8282 \u9ad8\u5b57\u8282 \uff09 \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u6df1\u5ea6 \u503c \u8fdb\u884c \u7f16\u7801 \uff1a R - > G - > B \u3002 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u7684 \u5b9e\u9645 \u8ddd\u79bb \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u65b9\u5f0f \u89e3\u7801 \uff1a normalized = ( R + G * 256 + B * 256 * 256 ) / ( 256 * 256 * 256 - 1 ) in _ meters = 1000 * normalized \u7136\u540e \uff0c \u5e94 \u4f7f\u7528 carla . colorConverter \u5c06 \u8f93\u51fa carla . Image \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff0c \u8be5 carla . colorConverter \u4f1a \u5c06 \u5b58\u50a8 \u5728 RGB \u901a\u9053 \u4e2d \u7684 \u8ddd\u79bb \u8f6c\u6362 \u4e3a \u5305\u542b \u8be5 \u8ddd\u79bb \u7684 [ 0 , 1 ] \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u3002 carla . colorConverter \u4e2d\u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u83b7\u53d6 \u6df1\u5ea6 \u89c6\u56fe \uff1a Depth \u548c Logaritmic depth \u3002 \u4e24\u8005 \u7684 \u7cbe\u5ea6 \u90fd \u662f \u6beb\u7c73 \u7ea7 \u7684 \uff0c \u4f46 \u5bf9\u6570 \u65b9\u6cd5 \u53ef\u4ee5 \u4e3a \u66f4 \u8fd1 \u7684 \u7269\u4f53 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . Depth )","title":"\u6df1\u5ea6 \u76f8\u673a"},{"location":"ref_sensors/#_5","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u76f8\u673a \u57fa\u672c \u5c5e\u6027"},{"location":"ref_sensors/#_6","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_7","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_8","text":"\u84dd\u56fe \uff1a sensor . other . gnss Output : \u6bcf \u4e00\u6b65 \u7684 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u7684 \u6d4b\u91cf carla . GNSSMeasurement \uff08 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u62a5\u544a \u5176\u7236 \u5bf9\u8c61 \u7684 \u5f53\u524d gnss \u4f4d\u7f6e \u3002 \u8fd9\u662f \u901a\u8fc7 \u5c06 \u5ea6\u91cf \u4f4d\u7f6e \u6dfb\u52a0 \u5230 OpenDRIVE \u5730\u56fe \u5b9a\u4e49 \u4e2d \u5b9a\u4e49 \u7684 \u521d\u59cb \u5730\u7406 \u53c2\u8003 \u4f4d\u7f6e \u6765 \u8ba1\u7b97 \u7684 \u3002","title":"\u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f\u5668"},{"location":"ref_sensors/#_9","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ alt _ bias float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ alt _ stddev float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lat _ bias float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lat _ stddev float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lon _ bias float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lon _ stddev float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u5c5e\u6027"},{"location":"ref_sensors/#_10","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 latitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7eac\u5ea6 \u3002 longitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7ecf\u5ea6 \u3002 altitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_11","text":"\u84dd\u56fe \uff1a sensor . other . imu \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 \u7684 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u6d4b\u91cf \u503c carla . IMUMeasurement \uff08 \u9664\u975e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ef4\u7b54 \u4fe1\u53f7 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u63d0\u4f9b \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u5c06 \u4e3a \u7236 \u5bf9\u8c61 \u68c0\u7d22 \u7684 \u6d4b\u91cf \u503c \u3002 \u6570\u636e \u662f\u4ece \u5bf9\u8c61 \u7684 \u5f53\u524d \u72b6\u6001 \u6536\u96c6 \u7684 \u3002","title":"\u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f\u5668"},{"location":"ref_sensors/#_12","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ accel _ stddev _ x float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 X \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ y float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Y \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ z float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Z \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ gyro _ bias _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ bias _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ bias _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u5c5e\u6027"},{"location":"ref_sensors/#_13","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 accelerometer carla . Vector3D \u6d4b\u91cf \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 \u4ee5 m / s ^ 2 \u4e3a \u5355\u4f4d \uff09 \u3002 gyroscope carla . Vector3D \u6d4b\u91cf \u901f\u5ea6 \u89d2\u901f\u5ea6 \uff08 \u4ee5 rad / sec \u4e3a \u5355\u4f4d \uff09 \u3002 compass float \u4ee5 \u5f27\u5ea6 \u4e3a \u5355\u4f4d \u7684 \u65b9\u5411 \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d\u5317 \u662f ( 0.0 , - 1.0 , 0.0 ) \u3002 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u8ba1\u7b97 \u65b9\u6cd5 \u8ba1\u7b97\u65b9\u6cd5 \uff1a $ $ d _ 2 ( i ) = - 2.0 \\ times [ { y _ 1 \\ over { h _ 1 \\ times h _ 2 } } - { y _ 2 \\ over { h _ 2 \\ times ( h _ 1 + h _ 2 ) } } - { y _ 0 \\ over { h _ 1 \\ times ( h _ 1 + h _ 2 ) } } ] . $ $ \u5176\u4e2d \uff0c ( h _ 1 ) \u4e3a \u5f53\u524d \u65f6\u95f4 \u589e\u91cf \uff0c ( h _ 2 ) \u4e3a \u524d \u4e00\u4e2a \u65f6\u95f4 \u589e\u91cf \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_14","text":"\u84dd\u56fe \uff1a sensor . other . lane _ invasion \u8f93\u51fa \uff1a \u6bcf\u6b21 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 carla . LaneInvasionEvent \u3002 \u6bcf\u6b21 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u5730\u56fe \u7684 OpenDRIVE \u63cf\u8ff0 \u63d0\u4f9b \u7684 \u9053\u8def \u6570\u636e \uff0c \u901a\u8fc7 \u8003\u8651 \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \u6765 \u786e\u5b9a \u4e3b \u8f66\u8f86 \u662f\u5426 \u6b63\u5728 \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u3002 \u7136\u800c \uff0c \u6709 \u4e00\u4e9b \u4e8b\u60c5 \u9700\u8981 \u8003\u8651 \uff1a OpenDRIVE \u6587\u4ef6 \u548c \u5730\u56fe \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u5c06 \u5bfc\u81f4 \u89c4\u5219 \u4e0d\u89c4\u5219 \u73b0\u8c61 \uff0c \u4f8b\u5982 \u5728 \u5730\u56fe \u4e2d \u4e0d \u53ef\u89c1 \u7684 \u4ea4\u53c9 \u8f66\u9053 \u3002 \u8f93\u51fa \u68c0\u7d22 \u4ea4\u53c9 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \uff1a \u8ba1\u7b97 \u5728 OpenDRIVE \u4e2d \u5b8c\u6210 \uff0c \u5e76 \u5c06 \u56db\u4e2a \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u6574\u4e2a \u7a7a\u95f4 \u89c6\u4e3a \u4e00\u4e2a \u6574\u4f53 \u3002 \u56e0\u6b64 \uff0c \u53ef\u80fd \u6709 \u4e0d\u6b62 \u4e00\u6761 \u8f66\u9053 \u540c\u65f6 \u7a7f\u8fc7 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u5c5e\u6027 \u3002 \u91cd\u8981 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \u3002","title":"\u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b\u5668"},{"location":"ref_sensors/#_15","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u7684 \u8f66\u8f86 \uff08 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 crossed _ lane _ markings list ( carla . LaneMarking ) \u5df2 \u7a7f\u8d8a \u7684 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_16","text":"\u84dd\u56fe \uff1a sensor . lidar . ray _ cast \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . LidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 1 / FPS \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6b64 \u8f93\u51fa \u5305\u542b \u4eff\u771f \u70b9\u4e91 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5b83\u4eec \u7684 \u5217\u8868 carla . Location \uff1a for location in lidar _ measurement : print ( location ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u7684 \u4fe1\u606f \u88ab \u7f16\u7801 \u4e3a 4D \u70b9 \u3002 \u524d \u4e09\u4e2a \u662f xyz \u5750\u6807 \u4e2d \u7684 \u7a7a\u95f4 \u70b9 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u65c5\u884c \u8fc7\u7a0b \u4e2d \u7684 \u5f3a\u5ea6 \u635f\u5931 \u3002 \u8be5 \u5f3a\u5ea6 \u901a\u8fc7 \u4ee5\u4e0b \u516c\u5f0f \u8ba1\u7b97 \u3002 a \u2014 \u8870\u51cf \u7cfb\u6570 \u8870\u51cf\u7cfb\u6570 \u3002 \u8fd9 \u53ef\u80fd \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6ce2\u957f \u548c \u5927\u6c14 \u6761\u4ef6 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 atmosphere _ attenuation _ rate \u3002 d \u2014 \u4ece \u51fb\u4e2d \u70b9\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8ddd\u79bb \u4e3a\u4e86 \u83b7\u5f97 \u66f4\u597d \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u53ef\u4ee5 \u5220\u9664 \u4e91\u4e2d \u7684 \u70b9 \u3002 \u8fd9\u662f \u4eff\u771f \u5916\u90e8 \u6270\u52a8 \u9020\u6210 \u7684 \u635f\u5931 \u7684 \u7b80\u5355 \u65b9\u6cd5 \u3002 \u8fd9 \u53ef\u4ee5 \u7ed3\u5408 \u4e24\u4e2a \u4e0d\u540c \u7684 \u6765 \u5b8c\u6210 \u3002 General drop - off \u2014 \u968f\u673a \u6389\u843d \u7684 \u5206\u6570 \u6bd4\u4f8b \u3002 \u8fd9 \u662f \u5728 \u8ddf\u8e2a \u4e4b\u524d \u5b8c\u6210 \u7684 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u4e0d\u4f1a \u8ba1\u7b97 \u88ab \u4e22\u5f03 \u7684 \u70b9 \uff0c \u4ece\u800c \u63d0\u9ad8 \u6027\u80fd \u3002 \u5982\u679c \u662f dropoff _ general _ rate = 0.5 \uff0c \u5219 \u6263\u6389 \u4e00\u534a \u7684 \u5206\u6570 \u3002 Instensity - based drop - off \u2014 \u5bf9\u4e8e \u68c0\u6d4b \u5230 \u7684 \u6bcf\u4e2a \u70b9 \uff0c \u6839\u636e \u8ba1\u7b97 \u7684 \u5f3a\u5ea6 \u7684 \u6982\u7387 \u6267\u884c \u989d\u5916 \u7684 \u4e0b\u964d \u3002 \u8be5 \u6982\u7387 \u7531 \u4e24\u4e2a \u53c2\u6570 \u786e\u5b9a \u3002 dropoff _ zero _ intensity \u662f \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u3002 dropoff _ intensity _ limit \u662f \u9608\u503c \u5f3a\u5ea6 \uff0c \u8d85\u8fc7 \u8be5 \u9608\u503c \u5c06 \u4e0d\u4f1a \u6389\u843d \u4efb\u4f55 \u5206\u6570 \u3002 \u8303\u56f4 \u5185 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u662f \u57fa\u4e8e \u8fd9 \u4e24\u4e2a \u53c2\u6570 \u7684 \u7ebf\u6027 \u6bd4\u4f8b \u3002 \u6b64\u5916 \uff0c \u8be5 noise _ stddev \u5c5e\u6027 \u8fd8 \u4f7f \u566a\u58f0 \u6a21\u578b \u80fd\u591f \u4eff\u771f \u73b0\u5b9e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u51fa\u73b0 \u7684 \u610f\u5916 \u504f\u5dee \u3002 \u5bf9\u4e8e \u6b63\u503c \uff0c \u6bcf\u4e2a \u70b9 \u90fd \u4f1a \u6cbf\u7740 \u6fc0\u5149 \u5c04\u7ebf \u7684 \u77e2\u91cf \u968f\u673a \u6270\u52a8 \u3002 \u7ed3\u679c \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5177\u6709 \u5b8c\u7f8e \u7684 \u89d2\u5ea6 \u5b9a\u4f4d \uff0c \u4f46 \u8ddd\u79bb \u6d4b\u91cf \u5b58\u5728 \u566a\u97f3 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002","title":"\u6fc0\u5149\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"ref_sensors/#_17","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 atmosphere _ attenuation _ rate float 0.004 \u6d4b\u91cf \u6bcf\u7c73 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5f3a\u5ea6 \u635f\u5931 \u7684 \u7cfb\u6570 \u3002 \u68c0\u67e5 \u4e0a\u9762 \u7684 \u5f3a\u5ea6 \u8ba1\u7b97 \u3002 dropoff _ general _ rate float 0.45 \u968f\u673a \u4e22\u5f03 \u7684 \u70b9 \u7684 \u4e00\u822c \u6bd4\u4f8b \u3002 dropoff _ intensity _ limit float 0.8 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u5f3a\u5ea6 \u9608\u503c \uff0c \u9ad8\u4e8e \u8be5\u503c \u5219 \u4e0d\u4f1a \u4e0b\u964d \u4efb\u4f55 \u70b9 \u3002 dropoff _ zero _ intensity float 0.4 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u6bcf\u4e2a \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e0b\u964d \u7684 \u6982\u7387 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 noise _ stddev float 0.0 \u566a\u58f0 \u6a21\u578b \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \uff0c \u7528\u4e8e \u5e72\u6270 \u6cbf\u5176 \u5149\u7ebf \u6295\u5c04 \u77e2\u91cf \u7684 \u6bcf\u4e2a \u70b9 \u3002","title":"\u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027"},{"location":"ref_sensors/#_18","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u6bcf\u4e2a \u901a\u9053 \u6355\u83b7 \u6b64\u5e27 \u7684 \u70b9\u6570 \u3002 raw _ data bytes 32 \u4f4d \u6d6e\u70b9 \u6570\u7ec4 \uff08 \u6bcf\u4e2a \u70b9 \u7684 XYZI \uff09 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_19","text":"\u84dd\u56fe \uff1a sensor . other . obstacle \u8f93\u51fa \uff1a \u6bcf\u4e2a \u969c\u788d \u969c\u788d\u7269 \u7684 carla . ObstacleDetectionEvent \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6bcf\u5f53 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u524d\u65b9 \u6709 \u969c\u788d \u65f6 \uff0c \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u9884\u6d4b \u969c\u788d \u969c\u788d\u7269 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6bcd\u8f66 \u524d\u65b9 \u521b\u5efa \u4e00\u4e2a \u80f6\u56ca \u5f62\u72b6 \uff0c \u5e76\u7528 \u5b83 \u6765 \u68c0\u67e5 \u78b0\u649e \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 distance float 5 \u8f68\u8ff9 \u8ddd\u79bb \u3002 hit _ radius float 0.5 \u8f68\u8ff9 \u7684 \u534a\u5f84 \u3002 only _ dynamics bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 debug _ linetrace bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u53ef\u89c1 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u969c\u788d\u7269 \u68c0\u6d4b\u5668"},{"location":"ref_sensors/#_20","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u8f66 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u68c0\u6d4b \u5230 \u969c\u788d \u969c\u788d\u7269 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 other _ actor carla . Actor \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u68c0\u6d4b \u4e3a \u969c\u788d \u969c\u788d\u7269 \u3002 distance float \u4ece \u53c2\u4e0e \u53c2\u4e0e\u8005 actor \u5230 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 other _ actor \u7684 \u8ddd\u79bb \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_21","text":"\u84dd\u56fe \uff1a sensor . other . radar \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RadarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u8be5 \u89c6\u56fe \u88ab \u8f6c\u6362 \u4e3a \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u7684 \u4e8c\u7ef4 \u70b9\u56fe \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5851\u9020 \u5143\u7d20 \u5e76 \u8bc4\u4f30 \u5b83\u4eec \u7684 \u8fd0\u52a8 \u548c \u65b9\u5411 \u3002 \u7531\u4e8e \u4f7f\u7528 \u5750\u6807 \u6781\u5750\u6807 \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u96c6\u4e2d \u5728 \u89c6\u56fe \u4e2d\u5fc3 \u5468\u56f4 \u3002 \u6d4b\u91cf \u7684 \u70b9 \u4f5c\u4e3a carla . RadarDetection \u6570\u7ec4 \u5305\u542b \u5728 carla . RadarMeasurement \u4e2d \uff0c \u8be5 \u6570\u7ec4 \u6307\u5b9a \u5b83\u4eec \u7684 \u5750\u6807 \u6781\u5750\u6807 \u3001 \u8ddd\u79bb \u548c \u901f\u5ea6 \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u53ef\u4ee5 \u8f7b\u677e \u8f6c\u6362 \u4e3a numpy \u53ef \u7ba1\u7406 \u7684 \u683c\u5f0f \uff1a # To get a numpy [ [ vel , azimuth , altitude , depth ] , ... [ , , , ] ] : points = np . frombuffer ( radar _ data . raw _ data , dtype = np . dtype ( ' f4 ' ) ) points = np . reshape ( points , ( len ( radar _ data ) , 4 ) ) \u63d0\u4f9b \u7684 \u811a\u672c manual _ control . py \u4f7f\u7528 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u663e\u793a \u6b63\u5728 \u68c0\u6d4b \u7684 \u70b9 \uff0c \u5e76 \u5728 \u9759\u6001 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u767d\u8272 \uff0c \u5728 \u5411 \u7269\u4f53 \u79fb\u52a8 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u7ea2\u8272 \uff0c \u5728 \u8fdc\u79bb \u7269\u4f53 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u84dd\u8272 \uff1a \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 horizontal _ fov float 30.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 points _ per _ second int 1500 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 range float 100 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 vertical _ fov float 30.0 \u5782\u76f4 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002","title":"\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"ref_sensors/#_22","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 raw _ data carla . RadarDetection \u68c0\u6d4b \u5230 \u7684 \u70b9 \u5217\u8868 \u3002 RadarDetection \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 altitude float \u4ee5 \u5f27\u5ea6 \u8868\u793a \u7684 \u9ad8\u5ea6 \u89d2 \u3002 azimuth float \u65b9\u4f4d \u65b9\u4f4d\u89d2 \uff08 \u4ee5 \u5f27\u5ea6 \u8868\u793a \uff09 \u3002 depth float \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u3002 velocity float \u671d\u5411 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#rgb","text":"\u84dd\u56fe \uff1a sensor . camera . rgb \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u201c RGB \u201d \u76f8\u673a \u5145\u5f53 \u6355\u83b7 \u573a\u666f \u56fe\u50cf \u7684 \u5e38\u89c4 \u76f8\u673a \u3002 carla . colorConverter \u5982\u679c enable _ postprocess _ effects \u542f\u7528 \uff0c \u4e3a\u4e86 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4e00\u7ec4 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u5c06 \u5e94\u7528 \u4e8e \u56fe\u50cf \uff1a Vignette : \u4f7f \u5c4f\u5e55 \u8fb9\u6846 \u53d8\u6697 \u3002 Grain jitter : \u4e3a \u6e32\u67d3 \u6dfb\u52a0 \u4e00\u4e9b \u566a\u70b9 \u3002 Bloom : \u5f3a\u70c8 \u7684 \u5149\u7ebf \u4f1a \u707c\u70e7 \u5b83\u4eec \u5468\u56f4 \u7684 \u533a\u57df \u3002 Auto exposure : \u4fee\u6539 \u56fe\u50cf \u4f3d\u739b\u4ee5 \u4eff\u771f \u773c\u775b \u5bf9 \u8f83 \u6697 \u6216 \u8f83\u4eae \u533a\u57df \u7684 \u9002\u5e94 \u3002 Lens flares : \u4eff\u771f \u660e\u4eae \u7269\u4f53 \u5728 \u955c\u5934 \u4e0a \u7684 \u53cd\u5c04 \u3002 Depth of field : \u6a21\u7cca \u9760\u8fd1 \u6216 \u8fdc\u79bb \u76f8\u673a \u7684 \u7269\u4f53 \u3002 sensor _ tick \u544a\u8bc9 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u6570\u636e \u7684 \u901f\u5ea6 \u6709 \u591a \u5feb \u3002 \u503c\u4e3a 1.5 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf \u534a\u79d2 \u6355\u83b7 \u4e00\u6b21 \u6570\u636e \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u503c 0.0 \u8868\u793a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u3002","title":"RGB \u76f8\u673a"},{"location":"ref_sensors/#_23","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 bloom _ intensity float 0.675 \u5149\u6655 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 fstop float 1.4 \u76f8\u673a \u955c\u5934 \u7684 \u6253\u5f00 \u3002 \u5178\u578b \u955c\u5934 \u7684 \u5149\u5708 1 / fstop \u4e3a f / 1.2 \uff08 \u66f4\u5927 \u7684 \u5149\u5708 \uff09 \u3002 \u8f83\u5927 \u7684 \u6570\u5b57 \u5c06 \u51cf\u5c11 \u666f\u6df1 \u6548\u679c \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 iso float 100.0 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \u3002 gamma float 2.2 \u76f8\u673a \u7684 \u76ee\u6807 \u4f3d\u739b\u503c \u3002 lens _ flare _ intensity float 0.1 \u955c\u5934 \u7729\u5149 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 shutter _ speed float 200.0 \u76f8\u673a \u5feb\u95e8 \u901f\u5ea6 \u5feb\u95e8\u901f\u5ea6 \uff0c \u4ee5 \u79d2 \u4e3a \u5355\u4f4d ( 1.0 / s ) \u3002","title":"\u76f8\u673a \u57fa\u672c \u5c5e\u6027"},{"location":"ref_sensors/#_24","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_25","text":"\u7531\u4e8e \u8fd9\u4e9b \u6548\u679c \u662f \u7531 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u7684 \uff0c \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u4ed6\u4eec \u7684 \u6587\u6863 \uff1a \u81ea\u52a8 \u66dd\u5149 \u5f71\u89c6 \u7ea7 \u666f\u6df1 \u65b9\u6848 \u989c\u8272 \u5206\u7ea7 \u548c \u7535\u5f71 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 min _ fstop float 1.2 \u6700\u5927 \u5149\u5708 \u3002 blade _ count int 5 \u6784\u6210 \u9694\u819c \u673a\u6784 \u7684 \u53f6\u7247 \u6570\u91cf \u3002 exposure _ mode str histogram \u53ef\u4ee5 \u662f manual \u6216 or histogram \u3002 \u66f4 \u591a \u5185\u5bb9 \u8bf7 \u53c2\u89c1 UE4 \u6587\u6863 \u3002 exposure _ compensation float Linux : + 0.75 Windows : 0.0 \u66dd\u5149 \u7684 \u5bf9\u6570 \u8c03\u6574 \u3002 0 \uff1a \u65e0 \u8c03\u6574 \uff0c - 1 \uff1a 2 \u500d \u66f4 \u6697 \uff0c - 2 \uff1a 4 \u66f4\u6697 \uff0c 1 \uff1a 2 \u500d \u66f4\u4eae \uff0c 2 \uff1a 4 \u500d \u66f4\u4eae \u3002 exposure _ min _ bright float 10.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u4f4e \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u4f4e \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5c0f\u4e8e \u6216 \u7b49\u4e8e exposure _ max _ bright \u3002 exposure _ max _ bright float 12.0 \u5728 ` exposure _ mode : \" histogram \" ` \u4e2d \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u5927 \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u9ad8 \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5927\u4e8e \u6216 \u7b49\u4e8e ` exposure _ min _ bright ` \u3002 exposure _ speed _ up float 3.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u3002 \u4ece \u9ed1\u6697 \u73af\u5883 \u5230 \u660e\u4eae \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 exposure _ speed _ down float 1.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u4ece \u660e\u4eae \u73af\u5883 \u5230 \u9ed1\u6697 \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 calibration _ constant float 16.0 18% \u53cd\u7167 \u53cd\u7167\u7387 \u7684 \u6821\u51c6 \u5e38\u6570 \u3002 focal _ distance float 1000.0 \u666f\u6df1 \u6548\u679c \u5e94 \u6e05\u6670 \u7684 \u8ddd\u79bb \u3002 \u4ee5 \u5398\u7c73 \uff08 \u865a\u5e7b \u5f15\u64ce \u5355\u4f4d \uff09 \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 blur _ amount float 1.0 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 / \u5f3a\u5ea6 \u3002 blur _ radius float 0.0 1080p \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e0b \u7684 \u534a\u5f84 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \uff0c \u6839\u636e \u8ddd \u76f8\u673a \u7684 \u8ddd\u79bb \u4eff\u771f \u5927\u6c14 \u6563\u5c04 \u3002 motion _ blur _ intensity float 0.45 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 [ 0 , 1 ] \u3002 motion _ blur _ max _ distortion float 0.35 \u8fd0\u52a8 \u6a21\u7cca \u5f15\u8d77 \u7684 \u6700\u5927 \u5931\u771f \u3002 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 motion _ blur _ min _ object _ screen _ size float 0.1 \u5bf9\u4e8e \u8fd0\u52a8 \u6a21\u7cca \uff0c \u5bf9\u8c61 \u5fc5\u987b \u5177\u6709 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u8f83 \u4f4e \u7684 \u503c \u610f\u5473 \u610f\u5473\u7740 \u8f83\u5c11 \u7684 \u7ed8\u5236 \u8c03\u7528 \u3002 slope float 0.88 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 S \u66f2\u7ebf \u7684 \u9661\u5ea6 \u3002 \u503c\u8d8a \u5927 \uff0c \u659c\u7387 \u8d8a \u9661 \uff08 \u8d8a\u6697 \uff09 [ 0.0 , 1.0 ] \u3002 toe float 0.55 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u6df1\u8272 [ 0.0 , 1.0 ] \u3002 shoulder float 0.26 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u660e\u4eae \u989c\u8272 [ 0.0 , 1.0 ] \u3002 black _ clip float 0.0 \u4e0d \u5e94 \u8c03\u6574 \u6b64\u503c \u3002 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u548c \u9ed1\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u7684 \u4f4d\u7f6e [ 0.0 , 1.0 ] \u3002 white _ clip float 0.04 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u7684 \u4f4d\u7f6e \uff0c \u5e76\u4e14 \u767d\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b\u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 [ 0.0 , 1.0 ] \u3002 temp float 6500.0 \u5e73\u8861 \u767d\u5e73\u8861 \u4e0e \u573a\u666f \u4e2d \u5149\u7ebf \u7684 \u6e29\u5ea6 \u6709\u5173 \u3002 \u767d\u5149 \uff1a \u5f53 \u4e0e \u5149\u6e29 \u5339\u914d \u65f6 \u3002 \u6696\u5149 \uff1a \u5f53 \u9ad8\u4e8e \u573a\u666f \u4e2d \u7684 \u5149\u7ebf \u65f6 \uff0c \u5448 \u6de1\u9ec4 \u9ec4\u8272 \u6de1\u9ec4\u8272 \u3002 \u51b7\u5149 \uff1a \u4f4e\u4e8e \u5149\u7ebf \u65f6 \u3002 \u84dd\u8272 \u3002 tint float 0.0 \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u8272\u8c03 \u3002 \u8c03\u6574 \u9752\u8272 \u548c \u6d0b\u7ea2 \u7ea2\u8272 \u6d0b\u7ea2\u8272 \u7684 \u989c\u8272 \u8303\u56f4 \u3002 \u8fd9 \u5e94\u8be5 \u4e0e \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u5c5e\u6027 \u4e00\u8d77 \u4f7f\u7528 \u4ee5 \u83b7\u5f97 \u51c6\u786e \u7684 \u989c\u8272 \u3002 \u5728 \u67d0\u4e9b \u5149\u6e29 \u4e0b \uff0c \u989c\u8272 \u53ef\u80fd \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u9ec4 \u6216 \u66f4 \u84dd \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5e73\u8861 \u6700\u7ec8 \u7684 \u989c\u8272 \uff0c \u4f7f \u5176 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u81ea\u7136 \u3002 chromatic _ aberration _ intensity float 0.0 \u7528\u4e8e \u63a7\u5236 \u8272\u5f69 \u504f\u79fb \u7684 \u7f29\u653e \u56e0\u5b50 \uff0c \u5728 \u5c4f\u5e55 \u8fb9\u6846 \u4e0a \u66f4 \u660e\u663e \u3002 chromatic _ aberration _ offset float 0.0 \u5230 \u53d1\u751f \u6548\u679c \u7684 \u56fe\u50cf \u4e2d\u5fc3 \u7684 \u6b63\u5219 \u5316 \u8ddd\u79bb \u3002 enable _ postprocess _ effects bool True \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u6fc0\u6d3b \u3002","title":"\u9ad8\u7ea7 \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_26","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_27","text":"\u84dd\u56fe \uff1a sensor . other . rss \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RssResponse \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u91cd\u8981 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u9605\u8bfb \u672c\u6587 \u4e4b\u524d \u5148 \u9605\u8bfb \u5177\u4f53 \u7684 \u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6\u6210 \u4e86 Carla \u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 C++ \u5e93 \u3002 \u5b83 \u5728 Carla \u4e2d \u9ed8\u8ba4 \u88ab \u7981\u7528 \uff0c \u5e76\u4e14 \u5fc5\u987b \u663e\u5f0f \u6784\u5efa \u624d\u80fd \u4f7f\u7528 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u72b6\u6001 \u5e76 \u68c0\u7d22 \u5f53\u524d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u54cd\u5e94 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 carla . RssRestrictor \u5c06 \u4f7f\u7528 \u6b64 \u6570\u636e \u6765 \u8c03\u6574 carla . VehicleControl \uff0c \u7136\u540e \u518d \u5c06 \u5176 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u53ef\u4ee5 \u901a\u8fc7 \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u6216 \u7528\u6237 \u8f93\u5165 \u751f\u6210 \u3002 \u4f8b\u5982 \uff0c \u4e0b\u9762 \u6709 \u4e00\u6bb5 \u6765\u81ea \u7684 \u4ee3\u7801 \u7247\u6bb5 PythonAPI / examples / rss / manual _ control _ rss . py \uff0c \u5176\u4e2d \u5728 \u5fc5\u8981 \u65f6 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4fee\u6539 \u7528\u6237 \u8f93\u5165 \u3002 1 . \u68c0\u67e5 RssSensor \u662f\u5426 \u751f\u6210 \u5305\u542b \u9650\u5236 \u7684 \u6709\u6548 \u54cd\u5e94 \u3002 2 . \u6536\u96c6 \u8f66\u8f86 \u7684 \u5f53\u524d \u52a8\u6001 \u548c \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u3002 3 . \u4f7f\u7528 RssSensor \u7684 \u54cd\u5e94 \u4ee5\u53ca \u8f66\u8f86 \u5f53\u524d \u7684 \u52a8\u6001 \u548c \u7269\u7406 \u7279\u6027 \u5bf9 \u8f66\u8f86 \u63a7\u5236 \u65bd\u52a0 \u9650\u5236 \u3002 rss _ proper _ response = self ._ world . rss _ sensor . proper _ response if self ._ world . rss _ sensor and self ._ world . rss _ sensor . response _ valid else None if rss _ proper _ response : ... vehicle _ control = self ._ restrictor . restrict _ vehicle _ control ( vehicle _ control , rss _ proper _ response , self ._ world . rss _ sensor . ego _ dynamics _ on _ route , self ._ vehicle _ physics )","title":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f\u5668"},{"location":"ref_sensors/#carlarsssensor","text":"\u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u84dd\u56fe \u6ca1\u6709 \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u3002 \u4f46\u662f \uff0c \u5b83 \u5b9e\u4f8b \u5316 \u7684 carla . RssSensor \u5bf9\u8c61 \u5177\u6709 Python API \u53c2\u8003 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u3002 \u4ee5\u4e0b \u662f \u5b83\u4eec \u7684 \u6458\u8981 \u3002 carla . RssSensor \u53d8\u91cf \u7c7b\u578b \u63cf\u8ff0 ego _ vehicle _ dynamics ad . rss . world . RssDynamics \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 other _ vehicle _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u5176\u4ed6 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 pedestrian _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u884c\u4eba \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 road _ boundaries _ mode carla . RssRoadBoundariesMode \u542f\u7528 / \u7981\u7528 \u7559\u5728 \u9053\u8def \u4e0a \u529f\u80fd \u3002 \u9ed8\u8ba4 \u4e3a \u5173\u95ed \u3002 # Fragment of rss _ sensor . py # The carla . RssSensor is updated when listening for a new carla . RssResponse def _ on _ rss _ response ( weak _ self , response ) : ... self . timestamp = response . timestamp self . response _ valid = response . response _ valid self . proper _ response = response . proper _ response self . ego _ dynamics _ on _ route = response . ego _ dynamics _ on _ route self . rss _ state _ snapshot = response . rss _ state _ snapshot self . situation _ snapshot = response . situation _ snapshot self . world _ model = response . world _ model \u8b66\u544a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b8c\u5168 \u5de5\u4f5c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u6ca1\u6709 \u84dd\u56fe \u3002 \u5bf9 \u5c5e\u6027 \u7684 \u66f4\u6539 \u5c06 \u5728 \u8c03\u7528 listen ( ) \u540e \u751f\u6548 \u3002 \u6b64\u7c7b \u4e2d \u53ef\u7528 \u7684 \u65b9\u6cd5 \u4e0e \u8f66\u8f86 \u7684 \u8def\u7ebf \u6709\u5173 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8ba1\u7b97 \u59cb\u7ec8 \u57fa\u4e8e \u672c\u8f66 \u901a\u8fc7 \u9053\u8def \u7f51\u7edc \u7684 \u8def\u7ebf \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u63d0\u4f9b \u4e00\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u6765 \u63a7\u5236 \u6240 \u8003\u8651 \u7684 \u8def\u7ebf \uff0c \u8fd9\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u53ef\u80fd \u662f carla . Transform \u4e2d \u7684 carla . Waypoint \u3002 \u6700\u597d \u5728 \u4ea4\u53c9 \u4ea4\u53c9\u70b9 \u4e4b\u540e \u9009\u62e9 \u8fd9\u4e9b \u70b9 \uff0c \u4ee5 \u5f3a\u5236 \u8def\u7ebf \u91c7\u53d6 \u6240 \u9700 \u7684 \u8f6c\u5f2f \u3002 carla . RssSensor \u65b9\u6cd5 \u63cf\u8ff0 routing _ targets \u83b7\u53d6 \u7528\u4e8e \u8def\u7531 \u7684 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u5217\u8868 \u3002 append _ routing _ target \u5c06 \u9644\u52a0 \u4f4d\u7f6e \u9644\u52a0 \u5230 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u3002 reset _ routing _ targets \u5220\u9664 \u9644\u52a0 \u7684 \u8def\u7531 \u76ee\u6807 \u3002 drop _ route \u653e\u5f03 \u5f53\u524d \u8def\u7531 \u5e76 \u521b\u5efa \u4e00\u6761 \u65b0\u8def \u7531 \u3002 register _ actor _ constellation _ callback \u6ce8\u518c \u56de\u8c03 \u6765\u81ea \u5b9a\u4e49 \u8ba1\u7b97 \u3002 set _ log _ level \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 set _ map _ log _ level \u8bbe\u7f6e \u7528\u4e8e \u5730\u56fe \u76f8\u5173 \u65e5\u5fd7 \u7684 \u65e5\u5fd7 \u7ea7\u522b \u3002 # Update the current route self . sensor . reset _ routing _ targets ( ) if routing _ targets : for target in routing _ targets : self . sensor . append _ routing _ target ( target ) \u7b14\u8bb0 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u8def\u7531 \u76ee\u6807 \uff0c \u5219 \u4f1a \u521b\u5efa \u968f\u673a \u8def\u7531 \u3002","title":"carla . RssSensor \u7c7b"},{"location":"ref_sensors/#_28","text":"carla . RssResponse \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 response _ valid bool \u54cd\u5e94 \u6570\u636e \u7684 \u6709\u6548 \u6709\u6548\u6027 \u3002 proper _ response ad . rss . state . ProperResponse RSS \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \uff0c \u5305\u62ec \u52a0\u901f \u9650\u5236 \u3002 rss _ state _ snapshot ad . rss . state . RssStateSnapshot RSS \u72b6\u6001 \u4e3a \u5f53\u524d \u65f6\u95f4 \u70b9 \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8be6\u7ec6 \u7684 \u5355\u72ec \u8f93\u51fa \u3002 situation _ snapshot ad . rss . situation . SituationSnapshot \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u60c5\u51b5 \u3002 \u8fd9\u662f \u7528\u4e8e RSS \u8ba1\u7b97 \u7684 \u7ecf\u8fc7 \u5904\u7406 \u7684 \u8f93\u5165 \u6570\u636e \u3002 world _ model ad . rss . world . WorldModel \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u4e16\u754c \u6a21\u578b \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8f93\u5165 \u6570\u636e \u3002 ego _ dynamics _ on _ route carla . RssEgoDynamicsOnRoute \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u6001 \u3002 \u5982\u679c \u6ce8\u518c \u4e86 actor _ constellation _ callback \uff0c \u5219 \u4f1a \u89e6\u53d1 \u4ee5\u4e0b \u8c03\u7528 \uff1a \u9ed8\u8ba4 \u8ba1\u7b97 ( actor _ constellation _ data . other _ actor = None ) \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8ba1\u7b97 # Fragment of rss _ sensor . py # The function is registered as actor _ constellation _ callback def _ on _ actor _ constellation _ request ( self , actor _ constellation _ data ) : actor _ constellation _ result = carla . RssActorConstellationResult ( ) actor _ constellation _ result . rss _ calculation _ mode = ad . rss . map . RssMode . NotRelevant actor _ constellation _ result . restrict _ speed _ limit _ mode = ad . rss . map . RssSceneCreation . RestrictSpeedLimitMode . IncreasedSpeedLimit10 actor _ constellation _ result . ego _ vehicle _ dynamics = self . current _ vehicle _ parameters actor _ constellation _ result . actor _ object _ type = ad . rss . world . ObjectType . Invalid actor _ constellation _ result . actor _ dynamics = self . current _ vehicle _ parameters actor _ id = - 1 actor _ type _ id = \" none \" if actor _ constellation _ data . other _ actor ! = None : # customize actor _ constellation _ result for specific actor ... else : # default ... return actor _ constellation _ result","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_29","text":"\u84dd\u56fe \uff1a sensor . lidar . ray _ cast _ semantic \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . SemanticLidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u4f7f\u7528 \u5c04\u7ebf \u6295\u5c04 \u5b9e\u73b0 \u7684 \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff0c \u516c\u5f00 \u6709\u5173 \u5c04\u7ebf \u6295\u5c04 \u547d\u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5b83 \u7684 \u884c\u4e3a \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e\u5e38 \u76f8\u4f3c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u6709 \u4e24\u4e2a \u4e3b\u8981 \u533a\u522b \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u68c0\u7d22 \u5230 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u6bcf\u4e2a \u70b9 \u5305\u542b \u66f4 \u591a \u6570\u636e \u3002 \u8be5\u70b9 \u7684 \u5750\u6807 \uff08 \u4e0e \u666e\u901a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e00\u6837 \uff09 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u4e0e \u8868\u9762 \u6cd5\u7ebf \u4e4b\u95f4 \u7684 \u4f59\u5f26 \u503c \u3002 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u57fa\u7840 \u4e8b\u5b9e \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f Carla \u5bf9\u8c61 \u547d\u4e2d \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65e2 \u4e0d \u5305\u542b \u5f3a\u5ea6 \u3001 \u8870\u51cf \u4e5f \u4e0d \u5305\u542b \u566a\u58f0 \u6a21\u578b \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u70b9 \u662f \u901a\u8fc7 \u4e3a \u5782\u76f4 FOV \u4e2d \u5206\u5e03 \u7684 \u6bcf\u4e2a \u901a\u9053 \u6dfb\u52a0 \u6fc0\u5149 \u6765 \u8ba1\u7b97 \u7684 \u3002 \u65cb\u8f6c \u662f \u901a\u8fc7 \u8ba1\u7b97 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5728 \u4e00\u5e27 \u4e2d \u65cb\u8f6c \u7684 \u6c34\u5e73 \u89d2\u5ea6 \u6765 \u4eff\u771f \u7684 \u3002 \u70b9\u4e91 \u662f \u901a\u8fc7 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \u5bf9 \u6bcf\u4e2a \u6fc0\u5149 \u8fdb\u884c \u5149\u7ebf \u6295\u5c04 \u6765 \u8ba1\u7b97 \u7684 \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 1 / FPS \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 \u6b64 \u8f93\u51fa \u5305\u542b \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8bed\u4e49 \u68c0\u6d4b \u4e91 \uff0c \u56e0\u6b64 \uff0c \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5176 \u5217\u8868 carla . SemanticLidarDetection \uff1a for detection in semantic _ lidar _ measurement : print ( detection ) \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) \u3002 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002","title":"\u8bed\u4e49 \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"ref_sensors/#_30","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u8bed\u4e49 \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027"},{"location":"ref_sensors/#_31","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d LIDAR \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int LIDAR \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u5f53\u524d \u5e27 \u4e2d \u6355\u83b7 \u7684 \u6bcf\u4e2a \u901a\u9053 \u7684 \u70b9\u6570 \u3002 raw _ data bytes \u5305\u542b \u5177\u6709 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u4fe1\u606f \u7684 \u70b9\u4e91 \u7684 \u6570\u7ec4 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u70b9 \uff0c \u5b58\u50a8 \u56db\u4e2a 32 \u4f4d \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 XYZ \u5750\u6807 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3002 Unsigned int \u5305\u542b \u547d\u4e2d \u5bf9\u8c61 \u7684 \u7d22\u5f15 \u3002 Unsigned int \u5305\u542b \u5bf9\u8c61 it \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_32","text":"\u84dd\u56fe \uff1a sensor . camera . semantic _ segmentation \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u6444\u50cf \u6444\u50cf\u673a \u6839\u636e \u5176 \u6807\u7b7e \u4ee5 \u4e0d\u540c \u7684 \u989c\u8272 \u663e\u793a \u5b83 \uff0c \u4ece\u800c \u5bf9 \u53ef\u89c1 \u7684 \u6bcf\u4e2a \u7269\u4f53 \u8fdb\u884c \u5206\u7c7b \uff08 \u4f8b\u5982 \uff0c \u884c\u4eba \u4e0e \u8f66\u8f86 \u7684 \u989c\u8272 \u4e0d\u540c \uff09 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u65f6 \uff0c \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7d20 \u90fd \u4f1a \u4f7f\u7528 \u6807\u7b7e \u521b\u5efa \u3002 \u6240\u4ee5 \u5f53 \u6f14\u5458 \u4ea7\u751f \u65f6 \u5c31 \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u5bf9\u8c61 \u6309 \u5176 \u5728 \u9879\u76ee \u4e2d \u7684 \u76f8\u5bf9 \u6587\u4ef6 \u8def\u5f84 \u8fdb\u884c \u5206\u7c7b \u3002 \u4f8b\u5982 \uff0c \u5b58\u50a8 \u5728 \u4e2d \u7684 \u7f51\u683c Unreal / CarlaUE4 / Content / Static / Pedestrians \u88ab \u6807\u8bb0 \u4e3a Pedestrian \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63d0\u4f9b \u7684 \u56fe\u50cf \u7684 \u6807\u7b7e \u4fe1\u606f \u7f16\u7801 \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \uff1a \u7ea2\u8272 \u503c\u4e3a \u7684 \u50cf\u7d20 x \u5c5e\u4e8e \u5e26\u6709 \u6807\u7b7e \u7684 \u5bf9\u8c61 x \u3002 \u8fd9\u4e2a \u539f\u59cb \u7684 carla . Image \u53ef\u4ee5 \u5728 carla . ColorConverter \u4e2d \u7684 CityScapesPalette \u7684 \u5e2e\u52a9 \u4e0b \u5b58\u50a8 \u548c \u8f6c\u6362 \uff0c \u4ee5 \u5e94\u7528 \u6807\u7b7e \u4fe1\u606f \u5e76 \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u663e\u793a \u56fe\u7247 \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . cityScapesPalette ) \u76ee\u524d \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u6807\u7b7e \uff1a \u503c \u6807\u7b7e \u8f6c\u6362 \u540e \u7684 \u989c\u8272 \u63cf\u8ff0 0 Unlabeled ( 0 , 0 , 0 ) \u8003\u8651 \u5c1a\u672a \u5206\u7c7b \u7684 \u5143\u7d20 Unlabeled \u3002 \u8be5 \u7c7b\u522b \u5e94\u8be5 \u662f \u7a7a \u7684 \u6216 \u81f3\u5c11 \u5305\u542b \u6ca1\u6709 \u51b2\u7a81 \u7684 \u5143\u7d20 \u3002 1 Building ( 70 , 70 , 70 ) \u623f\u5c4b \u3001 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u7b49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4ee5\u53ca \u9644\u7740 \u5728 \u5176 \u4e0a \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u7a7a\u8c03 \u3001 \u811a\u624b \u811a\u624b\u67b6 \u3001 \u906e\u9633 \u906e\u9633\u7bf7 \u6216 \u68af\u5b50 \u7b49\u7b49 \u3002 2 Fence ( 100 , 40 , 40 ) \u969c\u788d \u969c\u788d\u7269 \u3001 \u680f\u6746 \u6216 \u5176\u4ed6 \u76f4\u7acb \u7ed3\u6784 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u5305\u56f4 \u5730\u9762 \u533a\u57df \u7684 \u6728\u6750 \u6216 \u7535\u7ebf \u7ec4\u4ef6 \u3002 3 Other ( 55 , 90 , 80 ) \u4e00\u5207 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u7684 \u4e1c\u897f \u3002 4 Pedestrian ( 220 , 20 , 60 ) \u6b65\u884c \u6216 \u4e58\u5750 / \u9a7e\u9a76 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u6216 \u79fb\u52a8 \u7cfb\u7edf \u7684 \u4eba \u3002 \u4f8b\u5982 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6216 \u8e0f\u677f \u677f\u8f66 \u8e0f\u677f\u8f66 \u3001 \u6ed1\u677f \u3001 \u9a6c \u3001 \u65f1\u51b0 \u51b0\u978b \u65f1\u51b0\u978b \u3001 \u8f6e\u6905 \u7b49 \u3002 5 Pole ( 153 , 153 , 153 ) \u4e3b\u8981 \u4e3a \u5782\u76f4 \u65b9\u5411 \u7684 \u5c0f\u578b \u6746 \u3002 \u5982\u679c \u6746\u6709 \u6c34\u5e73 \u90e8\u5206 \uff08 \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \uff09 \uff0c \u5219 \u4e5f \u88ab \u89c6\u4e3a \u6746 \u3002 \u4f8b\u5982 \u6807\u5fd7 \u6746 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \u3002 6 RoadLine ( 157 , 234 , 50 ) \u9053\u8def \u4e0a \u7684 \u6807\u8bb0 \u3002 7 Road ( 128 , 64 , 128 ) \u6c7d\u8f66 \u901a\u5e38 \u884c\u9a76 \u7684 \u90e8\u5206 \u5730\u9762 \u3002 \u4f8b\u5982 \u4efb\u4f55 \u65b9\u5411 \u7684 \u8f66\u9053 \u548c \u8857\u9053 \u3002 8 SideWalk ( 244 , 35 , 232 ) \u6307\u5b9a \u4f9b \u884c\u4eba \u6216 \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8005 \u4f7f\u7528 \u7684 \u5730\u9762 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e0d\u4ec5 \u901a\u8fc7 \u6807\u8bb0 \uff0c \u8fd8 \u901a\u8fc7 \u4e00\u4e9b \u969c\u788d \u969c\u788d\u7269 \uff08 \u4f8b\u5982 \u8def\u7f18 \u77f3 \u6216 \u6746\u5b50 \uff09 \u5c06 \u9053\u8def \u4e0e \u9053\u8def \u5206 \u9694\u5f00 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u5212\u5b9a \u7684 \u8def\u8fb9 \u3001 \u4ea4\u901a \u4ea4\u901a\u5c9b \uff08 \u6b65\u884c \u90e8\u5206 \uff09 \u548c \u6b65\u884c \u533a \u3002 9 Vegetation ( 107 , 142 , 35 ) \u6811\u6728 \u3001 \u6811\u7bf1 \u3001 \u5404\u79cd \u5782\u76f4 \u690d\u88ab \u3002 \u8003\u8651 \u5730\u9762 \u690d\u88ab Terrain \u3002 10 Vehicles ( 0 , 0 , 142 ) \u6c7d\u8f66 \u3001 \u8d27\u8f66 \u3001 \u5361\u8f66 \u3001 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3001 \u516c\u5171 \u6c7d\u8f66 \u516c\u5171\u6c7d\u8f66 \u3001 \u706b\u8f66 \u3002 11 Wall ( 102 , 102 , 156 ) \u72ec\u7acb \u7684 \u7acb\u5899 \u3002 \u4e0d\u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 12 TrafficSign ( 220 , 220 , 0 ) \u7531\u5dde / \u5e02 \u5f53\u5c40 \u5b89\u88c5 \u7684 \u6807\u5fd7 \uff0c \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u3002 \u6b64 \u7c7b\u522b \u4e0d \u5305\u62ec \u9644\u6709 \u6807\u5fd7 \u7684 \u6746 \u3002 \u4f8b\u5982 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u3001 \u65b9\u5411 \u6807\u5fd7 ... 13 Sky ( 70 , 130 , 180 ) \u5f00\u9614 \u7684 \u5929\u7a7a \u3002 \u5305\u62ec \u4e91 \u548c \u592a\u9633 \u3002 14 Ground ( 81 , 0 , 81 ) \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u4e0d \u5339\u914d \u7684 \u4efb\u4f55 \u6c34\u5e73 \u5730\u9762 \u7ed3\u6784 \u3002 \u4f8b\u5982 \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u5171\u4eab \u7684 \u533a\u57df \uff0c \u6216 \u901a\u8fc7 \u8def\u7f18 \u4e0e \u9053\u8def \u5206\u9694 \u7684 \u5e73\u5766 \u73af\u5c9b \u3002 15 Bridge ( 150 , 100 , 100 ) \u53ea\u6709 \u6865 \u7684 \u7ed3\u6784 \u3002 \u6805\u680f \u3001 \u4eba \u3001 \u8f66\u8f86 \u4ee5\u53ca \u5176\u4e0a \u7684 \u5176\u4ed6 \u5143\u7d20 \u90fd \u88ab \u5355\u72ec \u6807\u8bb0 \u3002 16 RailTrack ( 230 , 150 , 140 ) \u5404\u79cd \u975e \u6c7d\u8f66 \u884c\u9a76 \u7684 \u94c1\u8f68 \u3002 \u4f8b\u5982 \u5730\u94c1 \u548c \u706b\u8f66 \u94c1\u8f68 \u3002 17 GuardRail ( 180 , 165 , 180 ) \u6240\u6709 \u7c7b\u578b \u7684 \u62a4\u680f / \u9632\u649e \u680f \u3002 18 TrafficLight ( 250 , 170 , 30 ) \u6ca1\u6709 \u706f\u6746 \u7684 \u4ea4\u901a \u706f\u7bb1 \u3002 19 Static ( 110 , 190 , 160 ) \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u548c \u9053\u5177 \u662f \u4e0d\u53ef \u79fb\u52a8 \u7684 \u3002 \u4f8b\u5982 \u6d88\u9632 \u6d88\u9632\u6813 \u3001 \u56fa\u5b9a \u957f\u51f3 \u3001 \u55b7\u6cc9 \u3001 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u3002 20 Dynamic ( 170 , 120 , 50 ) \u4f4d\u7f6e \u5bb9\u6613 \u968f \u65f6\u95f4 \u53d8\u5316 \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u53ef \u79fb\u52a8 \u5783\u573e \u5783\u573e\u6876 \u3001 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u3001 \u888b\u5b50 \u3001 \u8f6e\u6905 \u3001 \u52a8\u7269 \u7b49 \u3002 21 Water ( 45 , 60 , 150 ) \u6c34\u5e73 \u6c34\u9762 \u3002 \u4f8b\u5982 \u6e56\u6cca \u3001 \u6d77\u6d0b \u3001 \u6cb3\u6d41 \u3002 22 Terrain ( 145 , 170 , 100 ) \u8349 \u3001 \u5730\u9762 \u690d\u88ab \u3001 \u571f\u58e4 \u6216 \u6c99\u5b50 \u3002 \u8fd9\u4e9b \u533a\u57df \u4e0d \u9002\u5408 \u884c\u9a76 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u7684 \u9650\u5236 \u9650\u5236\u6027 \u8def\u7f18\u77f3 \u3002 \u7b14\u8bb0 \u9605\u8bfb \u672c \u6559\u7a0b \u4ee5 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a"},{"location":"ref_sensors/#_33","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u6ef4\u7b54\u58f0 \uff09 \u3002","title":"\u76f8\u673a \u57fa\u672c \u5c5e\u6027"},{"location":"ref_sensors/#_34","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_35","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#dvs","text":"\u84dd\u56fe \uff1a sensor . camera . dvs \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . DVSEventArray \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216 \u4e8b\u4ef6 \u76f8\u673a \u662f \u4e00\u79cd \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u5b8c\u5168 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e8b\u4ef6 \u76f8\u673a \u4e0d\u662f \u4ee5 \u56fa\u5b9a \u901f\u7387 \u6355\u83b7 \u5f3a\u5ea6 \u56fe\u50cf \uff0c \u800c\u662f \u4ee5 \u4e8b\u4ef6 \u6d41 \u7684 \u5f62\u5f0f \u5f02\u6b65 \u6d4b\u91cf \u5f3a\u5ea6 \u53d8\u5316 \uff0c \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u4eae\u5ea6 \u53d8\u5316 \u8fdb\u884c \u7f16\u7801 \u3002 \u4e0e \u6807\u51c6 \u6444\u50cf \u6444\u50cf\u673a \u76f8\u6bd4 \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u5177\u6709 \u72ec\u7279 \u7684 \u5c5e\u6027 \u3002 \u5b83\u4eec \u5177\u6709 \u975e\u5e38 \u9ad8 \u7684 \u52a8\u6001 \u8303\u56f4 \uff08 140 dB \u4e0e 60 dB \uff09 \u3001 \u65e0 \u8fd0\u52a8 \u6a21\u7cca \u548c \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \u3002 \u56e0\u6b64 \uff0c \u4e8b\u4ef6 \u76f8\u673a \u662f \u5373\u4f7f \u5728 \u5177\u6709 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u9ad8\u901f \u573a\u666f \u548c \u9ad8 \u52a8\u6001 \u8303\u56f4 \u73af\u5883 \u4e0b \u4e5f \u80fd \u63d0\u4f9b \u9ad8\u8d28 \u8d28\u91cf \u9ad8\u8d28\u91cf \u89c6\u89c9 \u4fe1\u606f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4e3a \u57fa\u4e8e \u89c6\u89c9 \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u4e86 \u65b0 \u7684 \u5e94\u7528 \u9886\u57df \u5e94\u7528\u9886\u57df \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u8f93\u51fa \u4e8b\u4ef6 \u6d41 \u3002 \u5f53 \u5bf9\u6570 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u8fbe\u5230 \u9884\u5b9a \u4e49 \u7684 \u6052\u5b9a \u9608\u503c \uff08 \u901a\u5e38 \u5728 15% \u5230 30% \u4e4b\u95f4 \uff09 \u65f6 \uff0c \u5728 \u65f6\u95f4 \u6233 \u5904 \u7684 \u50cf\u7d20 \u5904 e = ( x , y , t , pol ) \u89e6\u53d1 \u4e8b\u4ef6 \u3002 L ( x , y , t ) - L ( x , y , t - \\ delta t ) = pol C t - \\ delta t \u662f \u8be5 \u50cf\u7d20 \u4e0a \u6700\u540e \u4e00\u4e2a \u4e8b\u4ef6 \u88ab \u89e6\u53d1 \u7684 \u65f6\u95f4 \uff0c \u5e76\u4e14 pol \u662f \u6839\u636e \u4eae\u5ea6 \u53d8\u5316 \u7684 \u7b26\u53f7 \u7684 \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 + 1 \u5f53 \u4eae\u5ea6 \u589e\u52a0 \u65f6 \u6781\u6027 \u4e3a \u6b63 \uff0c - 1 \u5f53 \u4eae\u5ea6 \u51cf\u5c11 \u65f6 \u6781\u6027 \u4e3a \u8d1f \u3002 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \u56fe \u6240\u793a \u3002 \u6807\u51c6 \u76f8\u673a \u4ee5 \u56fa\u5b9a \u901f\u7387 \u8f93\u51fa \u5e27 \uff0c \u4ece\u800c \u5728 \u573a\u666f \u4e2d \u4e0d \u5b58\u5728 \u8fd0\u52a8 \u65f6 \u53d1\u9001 \u5197\u4f59 \u4fe1\u606f \u3002 \u76f8\u6bd4 \u4e4b\u4e0b \u76f8\u6bd4\u4e4b\u4e0b \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u662f \u6570\u636e \u9a71\u52a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u80fd\u591f \u4ee5 \u5fae\u79d2 \u5ef6\u8fdf \u54cd\u5e94 \u4eae\u5ea6 \u53d8\u5316 \u3002 \u5728 \u7ed8\u56fe \u4e2d \uff0c \u53ea\u8981 \uff08 \u7b26\u53f7 \u5e26\u7b26\u53f7 \u7684 \uff09 \u4eae\u5ea6 \u53d8\u5316 \u968f \u65f6\u95f4 \u8d85\u8fc7 C \u4e00\u7ef4 \u7684 \u5bf9\u6bd4 \u5bf9\u6bd4\u5ea6 \u9608\u503c \uff0c \u5c31 \u4f1a \u751f\u6210 \u6b63 \uff08 \u6216\u8d1f \uff09 \u4e8b\u4ef6 \uff08 \u84dd\u70b9 \u3001 \u7ea2 \u70b9 \uff09 \u3002 \u89c2\u5bdf \u4fe1\u53f7 \u5feb\u901f \u53d8\u5316 \u65f6 \u4e8b\u4ef6 \u7387 \u5982\u4f55 \u589e\u957f \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5f53\u524d \u5b9e\u73b0 \u5728 \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u4ee5 \u7edf\u4e00 \u91c7\u6837 \u65b9\u5f0f \u5de5\u4f5c \u3002 \u56e0\u6b64 \uff0c \u4e3a\u4e86 \u4eff\u771f \u771f\u5b9e \u4e8b\u4ef6 \u76f8\u673a \u7684 \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u4ee5 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u6267\u884c \uff08 \u6bd4 \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u7684 \u9891\u7387 \u9ad8\u5f97 \u591a \uff09 \u3002 \u5b9e\u9645 \u5b9e\u9645\u4e0a \uff0c Carla \u6c7d\u8f66 \u884c\u9a76 \u901f\u5ea6 \u8d8a \u5feb \uff0c \u4e8b\u4ef6 \u6570\u91cf \u5c31 \u4f1a \u589e\u52a0 \u3002 \u56e0\u6b64 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9891\u7387 \u5e94 \u968f\u7740 \u573a\u666f \u7684 \u52a8\u6001 \u800c \u76f8\u5e94 \u589e\u52a0 \u3002 \u7528\u6237 \u5e94\u8be5 \u5728 \u65f6\u95f4 \u7cbe\u5ea6 \u548c \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u4e4b\u95f4 \u627e\u5230 \u5e73\u8861 \u3002 \u63d0\u4f9b \u7684 \u811a\u672c [ manual _ control . py ] \u4f7f\u7528 DVS \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u5c55\u793a \u5982\u4f55 \u914d\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5982\u4f55 \u83b7\u53d6 \u4e8b\u4ef6 \u6d41 \u4ee5\u53ca \u5982\u4f55 \u4ee5 \u56fe\u50cf \u683c\u5f0f \u56fe\u50cf\u683c\u5f0f \uff08 \u901a\u5e38 \u79f0\u4e3a \u4e8b\u4ef6 \u6846\u67b6 \uff09 \u63cf\u8ff0 \u6b64\u7c7b \u4e8b\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u7531\u4e8e DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u91c7\u6837 \u65b9\u6cd5 \uff0c \u5982\u679c \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u50cf\u7d20 \u5dee\u5f02 \uff0c \u6444\u50cf \u6444\u50cf\u673a \u5c06 \u4e0d\u4f1a \u8fd4\u56de \u56fe\u50cf \u3002 \u8fd9 \u603b\u662f \u53d1\u751f \u5728 \u7b2c\u4e00 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u6ca1\u6709 \u524d \u4e00\u5e27 \u53ef \u4f9b \u6bd4\u8f83 \uff0c \u5e76\u4e14 \u5728 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u79fb\u52a8 \u7684 \u60c5\u51b5 \u4e0b \u4e5f \u662f \u5982\u6b64 \u3002 DVS \u662f \u4e00\u4e2a \u76f8\u673a \uff0c \u56e0\u6b64 \u5177\u6709 RGB \u76f8\u673a \u4e2d \u53ef\u7528 \u7684 \u6240\u6709 \u5c5e\u6027 \u3002 \u7136\u800c \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5de5\u4f5c \u539f\u7406 \u51e0\u4e4e \u6ca1\u6709 \u4ec0\u4e48 \u72ec\u6709 \u7684 \u5c5e\u6027 \u3002","title":"DVS \u76f8\u673a"},{"location":"ref_sensors/#dvs_1","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 positive _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u589e\u91cf \u76f8\u5173 \u7684 \u6b63 \u9608\u503c C ( 0 - 1 ) \u3002 negative _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u51cf\u5c11 \u76f8\u5173 \u7684 \u8d1f \u9608\u503c C ( 0 - 1 ) \u3002 sigma _ positive _ threshold float 0 \u79ef\u6781 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 sigma _ negative _ threshold float 0 \u8d1f\u9762 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 refractory _ period _ ns int 0.0 \u4e0d\u5e94 \u4e0d\u5e94\u671f \uff08 \u50cf\u7d20 \u5728 \u89e6\u53d1 \u4e8b\u4ef6 \u540e \u65e0\u6cd5 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u65f6\u95f4 \uff09 \uff0c \u4ee5 \u7eb3\u79d2 \u4e3a \u5355\u4f4d \u3002 \u5b83 \u9650\u5236 \u4e86 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u6700\u9ad8 \u9891\u7387 \u3002 use _ log bool true \u662f\u5426 \u4ee5 \u5bf9\u6570 \u5f3a\u5ea6 \u6807\u5ea6 \u5de5\u4f5c \u3002 log _ eps float 0.001 \u7528\u4e8e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u65e5\u5fd7 \u7684 Epsilon \u503c \uff1a L = log ( eps + I / 255.0 ) . \u5176\u4e2d I \u662f RGB \u56fe\u50cf \u7684 \u7070\u5ea6 \u503c \uff1a I = 0.2989 * R + 0.5870 * G + 0.1140 * B .","title":"DVS \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_36","text":"\u5149\u6d41 \u76f8\u673a \u6355\u6349 \u4ece \u76f8\u673a \u7684 \u89d2\u5ea6 \u611f\u77e5 \u7684 \u8fd0\u52a8 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bb0\u5f55 \u7684 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5bf9 \u6295\u5f71 \u5230 \u56fe\u50cf \u5e73\u9762 \u7684 \u8be5 \u70b9 \u7684 \u901f\u5ea6 \u8fdb\u884c \u7f16\u7801 \u3002 \u50cf\u7d20 \u7684 \u901f\u5ea6 \u5728 [ - 2 , 2 ] \u8303\u56f4 \u5185 \u7f16\u7801 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \u7684 \u8fd0\u52a8 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u4fe1\u606f \u4e0e \u56fe\u50cf \u5927\u5c0f \u4e00\u8d77 \u7f29\u653e \u81f3 [ - 2 * image _ size , 2 * image _ size ] \u3002","title":"\u5149\u6d41 \u76f8\u673a"},{"location":"ref_sensors/#_37","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u5149\u6d41 \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_38","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u5149\u6d41 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_39","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes \u5305\u542b \u4e24\u4e2a \u6d6e\u70b9 \u503c \u7684 BGRA 64 \u4f4d \u50cf\u7d20 \u6570\u7ec4 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"release_readme/","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u611f\u8c22 \u611f\u8c22\u60a8 \u4e0b\u8f7d Carla \uff01 http : / / carla . org / \u5982\u4f55 \u8fd0\u884c Carla \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u542f\u52a8 \u7ec8\u7aef \u5e76 \u901a\u8fc7 \u8fd0\u884c \u6765 \u6267\u884c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh \u8fd9 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u53ef\u4ee5 \u770b\u5230 \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u201c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u201d \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u952e \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u4f46 \u65e0\u6cd5 \u4e0e \u6b64 \u89c6\u56fe \u4e2d \u7684 \u4e16\u754c \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u73b0\u5728 \u4f5c\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \uff0c \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u8ba9 \u6211\u4eec \u9996\u5148 \u5411 \u57ce\u5e02 \u6dfb\u52a0 \u4e00\u4e9b \u5b9e\u65f6 \u5185\u5bb9 \uff0c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7684 \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / generate _ traffic . py - n 80 \u8fd9 \u4f7f\u5f97 \u5168\u7403 \u589e\u52a0 \u4e86 80 \u8f86 \u4ee5 \u201c \u81ea\u52a8 \u9a7e\u9a76 \u201d \u6a21\u5f0f \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u56de\u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \uff0c \u6211\u4eec \u5e94\u8be5 \u770b\u5230 \u8fd9\u4e9b \u8f66\u8f86 \u5728 \u57ce\u5e02 \u4e2d \u884c\u9a76 \u3002 \u4ed6\u4eec \u5c06 \u7ee7\u7eed \u968f\u673a \u9a7e\u9a76 \uff0c \u76f4\u5230 \u6211\u4eec \u505c\u6b62 \u811a\u672c \u3002 \u6211\u4eec \u6682\u65f6 \u628a \u5b83\u4eec \u7559\u5728 \u90a3\u91cc \u5427 \u3002 \u73b0\u5728 \uff0c \u5361\u62c9 \u5929\u6c14 \u6674\u6717 \u5929\u6c14\u6674\u6717 \uff0c \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \uff0c \u4f46 \u8fd9 \u5e76 \u4e0d\u662f \u4e00\u4e2a \u975e\u5e38 \u6709\u8da3 \u7684 \u9a7e\u9a76 \u6761\u4ef6 \u3002 Carla \u7684 \u4e00\u9879 \u5f88\u9177 \u7684 \u529f\u80fd \u662f \u60a8 \u53ef\u4ee5 \u63a7\u5236 \u4e16\u754c \u7684 \u5929\u6c14 \u548c \u7167\u660e \u6761\u4ef6 \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u52a8\u6001 \u63a7\u5236 \u52a8\u6001\u63a7\u5236 \u4e00\u5929 \u4e2d \u7684 \u5929\u6c14 \u548c \u65f6\u95f4 \u7684 \u811a\u672c \uff0c \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / dynamic _ weather . py \u8fd9\u5ea7 \u57ce\u5e02 \u73b0\u5728 \u5df2\u7ecf \u51c6\u5907 \u597d \u8ba9 \u6211\u4eec \u5f00\u8f66 \u4e86 \uff0c \u6211\u4eec \u7ec8\u4e8e \u53ef\u4ee5 \u8fd0\u884c \u4e86 . / manual _ control . py \u8fd9 \u5e94\u8be5 \u4f1a \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u5176\u4e2d \u5305\u542b \u6c7d\u8f66 \u7684 \u7b2c\u4e09 \u4eba\u79f0 \u7b2c\u4e09\u4eba\u79f0 \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 WASD / \u7bad\u5934 \u7bad\u5934\u952e \u9a7e\u9a76 \u8fd9\u8f86 \u8f66 \u3002 \u6309 \u201c h \u201d \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u9009\u9879 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u548c \u8fd0\u884c \u9009\u9879 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 \u5728\u7ebf \u6587\u6863 \u3002","title":"Carla \u4eff\u771f\u5668"},{"location":"release_readme/#carla","text":"\u611f\u8c22 \u611f\u8c22\u60a8 \u4e0b\u8f7d Carla \uff01 http : / / carla . org /","title":"Carla \u4eff\u771f\u5668"},{"location":"release_readme/#carla_1","text":"\u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u542f\u52a8 \u7ec8\u7aef \u5e76 \u901a\u8fc7 \u8fd0\u884c \u6765 \u6267\u884c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh \u8fd9 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u53ef\u4ee5 \u770b\u5230 \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u201c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u201d \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u952e \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u4f46 \u65e0\u6cd5 \u4e0e \u6b64 \u89c6\u56fe \u4e2d \u7684 \u4e16\u754c \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u73b0\u5728 \u4f5c\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \uff0c \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u8ba9 \u6211\u4eec \u9996\u5148 \u5411 \u57ce\u5e02 \u6dfb\u52a0 \u4e00\u4e9b \u5b9e\u65f6 \u5185\u5bb9 \uff0c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7684 \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / generate _ traffic . py - n 80 \u8fd9 \u4f7f\u5f97 \u5168\u7403 \u589e\u52a0 \u4e86 80 \u8f86 \u4ee5 \u201c \u81ea\u52a8 \u9a7e\u9a76 \u201d \u6a21\u5f0f \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u56de\u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \uff0c \u6211\u4eec \u5e94\u8be5 \u770b\u5230 \u8fd9\u4e9b \u8f66\u8f86 \u5728 \u57ce\u5e02 \u4e2d \u884c\u9a76 \u3002 \u4ed6\u4eec \u5c06 \u7ee7\u7eed \u968f\u673a \u9a7e\u9a76 \uff0c \u76f4\u5230 \u6211\u4eec \u505c\u6b62 \u811a\u672c \u3002 \u6211\u4eec \u6682\u65f6 \u628a \u5b83\u4eec \u7559\u5728 \u90a3\u91cc \u5427 \u3002 \u73b0\u5728 \uff0c \u5361\u62c9 \u5929\u6c14 \u6674\u6717 \u5929\u6c14\u6674\u6717 \uff0c \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \uff0c \u4f46 \u8fd9 \u5e76 \u4e0d\u662f \u4e00\u4e2a \u975e\u5e38 \u6709\u8da3 \u7684 \u9a7e\u9a76 \u6761\u4ef6 \u3002 Carla \u7684 \u4e00\u9879 \u5f88\u9177 \u7684 \u529f\u80fd \u662f \u60a8 \u53ef\u4ee5 \u63a7\u5236 \u4e16\u754c \u7684 \u5929\u6c14 \u548c \u7167\u660e \u6761\u4ef6 \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u52a8\u6001 \u63a7\u5236 \u52a8\u6001\u63a7\u5236 \u4e00\u5929 \u4e2d \u7684 \u5929\u6c14 \u548c \u65f6\u95f4 \u7684 \u811a\u672c \uff0c \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / dynamic _ weather . py \u8fd9\u5ea7 \u57ce\u5e02 \u73b0\u5728 \u5df2\u7ecf \u51c6\u5907 \u597d \u8ba9 \u6211\u4eec \u5f00\u8f66 \u4e86 \uff0c \u6211\u4eec \u7ec8\u4e8e \u53ef\u4ee5 \u8fd0\u884c \u4e86 . / manual _ control . py \u8fd9 \u5e94\u8be5 \u4f1a \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u5176\u4e2d \u5305\u542b \u6c7d\u8f66 \u7684 \u7b2c\u4e09 \u4eba\u79f0 \u7b2c\u4e09\u4eba\u79f0 \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 WASD / \u7bad\u5934 \u7bad\u5934\u952e \u9a7e\u9a76 \u8fd9\u8f86 \u8f66 \u3002 \u6309 \u201c h \u201d \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u9009\u9879 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u548c \u8fd0\u884c \u9009\u9879 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 \u5728\u7ebf \u6587\u6863 \u3002","title":"\u5982\u4f55 \u8fd0\u884c Carla"},{"location":"ros_compatibility/","text":"ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 \u662f \u4e00\u4e2a \u63a5\u53e3 \uff0c \u5141\u8bb8 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e0e ROS 1 \u548c ROS 2 \u65e0\u7f1d \u4f7f\u7528 \u3002 \u6839\u636e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf ROS _ VERSION \uff0c \u76f8\u540c \u7684 API \u5c06 \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u3002 \u5b83 \u901a\u8fc7 \u521b\u5efa \u7ee7\u627f CompatibleNode \u521b\u5efa \u7c7b \u3002 ROS \u53c2\u6570 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5728 ROS 2 \u4e2d \u8bbe\u7f6e \u6216 \u8bbf\u95ee \u53c2\u6570 \u4e4b\u524d \u9700\u8981 \u58f0\u660e \u53c2\u6570 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u4e3a\u4e86 \u4fdd\u6301 ROS 1 \u548c ROS 2 \u6a21\u5f0f \u4ee5 \u76f8\u4f3c \u7684 \u65b9\u5f0f \u5de5\u4f5c \uff0c \u5728 ROS 2 \u7684 CompatibleNode \u7248\u672c \u4e2d\u5c06 \u53c2\u6570 allow _ undeclared _ parameters \u8bbe\u7f6e \u4e3a True \uff0c \u5141\u8bb8 \u4f7f\u7528 \u53c2\u6570 \u800c \u65e0\u9700 \u4e8b\u5148 \u58f0\u660e \u3002 TrueCompatibleNode \u670d\u52a1 \u5728 ROS 2 \u4e2d \uff0c \u670d\u52a1 \u53ef\u4ee5 \u5f02\u6b65 \u8c03\u7528 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u56e0\u6b64 \uff0c ROS 2 \u7248\u672c \u7684 call _ service ( ) \u65b9\u6cd5 \u5728 \u5f02\u6b65 \u8c03\u7528 \u540e \u4f1a \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u54cd\u5e94 \uff0c \u4ee5 \u6a21\u4eff ROS 1 \u7684 \u540c\u6b65 \u884c\u4e3a \u3002 \u7b14\u8bb0 \u5728 \u7b49\u5f85 \u54cd\u5e94 \u65f6 \uff0c ROS 2 \u7684 call _ service ( ) \u65b9\u6cd5 \u4f1a \u65cb\u8f6c \u8282\u70b9 \u3002 \u5982\u679c \u53e6 \u4e00\u4e2a \u7ebf\u7a0b \u5e76\u884c \u65cb\u8f6c \u540c\u4e00 \u8282\u70b9 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u95ee\u9898 \uff08 \u9519\u8bef \u6216 \u6b7b\u9501 \uff09 \u3002","title":"ROS \u517c\u5bb9\u6027 \u8282\u70b9"},{"location":"ros_compatibility/#ros","text":"ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 \u662f \u4e00\u4e2a \u63a5\u53e3 \uff0c \u5141\u8bb8 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e0e ROS 1 \u548c ROS 2 \u65e0\u7f1d \u4f7f\u7528 \u3002 \u6839\u636e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf ROS _ VERSION \uff0c \u76f8\u540c \u7684 API \u5c06 \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u3002 \u5b83 \u901a\u8fc7 \u521b\u5efa \u7ee7\u627f CompatibleNode \u521b\u5efa \u7c7b \u3002","title":"ROS \u517c\u5bb9\u6027 \u8282\u70b9"},{"location":"ros_compatibility/#ros_1","text":"\u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5728 ROS 2 \u4e2d \u8bbe\u7f6e \u6216 \u8bbf\u95ee \u53c2\u6570 \u4e4b\u524d \u9700\u8981 \u58f0\u660e \u53c2\u6570 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u4e3a\u4e86 \u4fdd\u6301 ROS 1 \u548c ROS 2 \u6a21\u5f0f \u4ee5 \u76f8\u4f3c \u7684 \u65b9\u5f0f \u5de5\u4f5c \uff0c \u5728 ROS 2 \u7684 CompatibleNode \u7248\u672c \u4e2d\u5c06 \u53c2\u6570 allow _ undeclared _ parameters \u8bbe\u7f6e \u4e3a True \uff0c \u5141\u8bb8 \u4f7f\u7528 \u53c2\u6570 \u800c \u65e0\u9700 \u4e8b\u5148 \u58f0\u660e \u3002 TrueCompatibleNode","title":"ROS \u53c2\u6570"},{"location":"ros_compatibility/#_1","text":"\u5728 ROS 2 \u4e2d \uff0c \u670d\u52a1 \u53ef\u4ee5 \u5f02\u6b65 \u8c03\u7528 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u56e0\u6b64 \uff0c ROS 2 \u7248\u672c \u7684 call _ service ( ) \u65b9\u6cd5 \u5728 \u5f02\u6b65 \u8c03\u7528 \u540e \u4f1a \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u54cd\u5e94 \uff0c \u4ee5 \u6a21\u4eff ROS 1 \u7684 \u540c\u6b65 \u884c\u4e3a \u3002 \u7b14\u8bb0 \u5728 \u7b49\u5f85 \u54cd\u5e94 \u65f6 \uff0c ROS 2 \u7684 call _ service ( ) \u65b9\u6cd5 \u4f1a \u65cb\u8f6c \u8282\u70b9 \u3002 \u5982\u679c \u53e6 \u4e00\u4e2a \u7ebf\u7a0b \u5e76\u884c \u65cb\u8f6c \u540c\u4e00 \u8282\u70b9 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u95ee\u9898 \uff08 \u9519\u8bef \u6216 \u6b7b\u9501 \uff09 \u3002","title":"\u670d\u52a1"},{"location":"ros_documentation/","text":"ROS \u6865 ROS \u6865 \u53ef \u5b9e\u73b0 ROS \u548c Carla \u4e4b\u95f4 \u7684 \u53cc\u5411 \u901a\u4fe1 \u53cc\u5411\u901a\u4fe1 \u3002 \u6765\u81ea Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4fe1\u606f \u88ab \u8f6c\u6362 \u4e3a ROS \u4e3b\u9898 \u3002 \u4ee5 \u540c\u6837 \u7684 \u65b9\u5f0f \uff0c ROS \u4e2d \u7684 \u8282\u70b9 \u4e4b\u95f4 \u53d1\u9001 \u7684 \u6d88\u606f \u88ab \u8f6c\u6362 \u4e3a \u8981 \u5728 Carla \u4e2d \u5e94\u7528 \u7684 \u547d\u4ee4 \u3002 ROS \u6865 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 ROS \u6865 \u5177\u6709 \u4ee5\u4e0b \u7279\u70b9 \uff1a \u4e3a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u76f8\u673a \uff08 \u6df1\u5ea6 \u3001 \u5206\u5272 \u3001 rgb \u3001 dvs \uff09 \u3001 GNSS \u3001 \u96f7\u8fbe \u548c \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u63d0\u4f9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u63d0\u4f9b \u5bf9\u8c61 \u6570\u636e \uff0c \u4f8b\u5982 \u53d8\u6362 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u3001 \u53ef\u89c6 \u53ef\u89c6\u5316 \u6807\u8bb0 \u3001 \u78b0\u649e \u548c \u8f66\u9053 \u5165\u4fb5 \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u3002 \u63a7\u5236 Carla \u4eff\u771f \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u4f8b\u5982 \u540c\u6b65 \u6a21\u5f0f \u3001 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u4ee5\u53ca \u8bbe\u7f6e \u4eff\u771f \u53c2\u6570 \u3002 \u5f00\u59cb \u4f7f\u7528 \u4e3a ROS 1 \u5b89\u88c5 ROS \u6865 \u4e3a ROS 2 \u5b89\u88c5 ROS \u6865 \u4e86\u89e3 \u4e3b\u8981 \u7684 ROS \u6865\u63a5 \u5305 Carla \u7684 ROS \u6865 - \u8fd0\u884c ROS \u6865 \u6240 \u9700 \u7684 \u4e3b\u5305 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 - \u5141\u8bb8 \u76f8\u540c API \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u7684 \u63a5\u53e3 \u4e86\u89e3 \u989d\u5916 \u7684 ROS \u6865\u63a5 \u5305 Carla \u751f\u6210 \u5bf9\u8c61 - \u63d0\u4f9b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901a\u7528 \u65b9\u6cd5 Carla \u624b\u52a8 \u63a7\u5236 - \u7528\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u57fa\u4e8e ROS \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u548c \u63a7\u5236 \u5de5\u5177 \uff08 \u7c7b\u4f3c \u4e8e Carla \u63d0\u4f9b \u7684 carla _ manual _ control . py \uff09 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 - \u4e00\u4e2a \u5c06 \u963f\u514b \u963f\u514b\u66fc \u547d\u4ee4 \u8f6c\u4e3a \u8f6c\u5411 / \u6cb9\u95e8 / \u5239\u8f66 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 Carla \u822a\u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u822a\u70b9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 - \u9075\u5faa \u8def\u7ebf \u3001 \u907f\u514d \u78b0\u649e \u5e76 \u9075\u5b88 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u793a\u4f8b \u4ee3\u7406 Carla \u81ea\u52a8 \u9a7e\u9a76 \u793a\u4f8b - \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 Carla ROS Scenario Runner - \u901a\u8fc7 ROS \u4f7f\u7528 Carla Scenario Runner \u6267\u884c OpenScenarios \u7684 \u5305\u88c5 \u5668 Carla \u626d\u8f6c \u63a7\u5236 - \u5c06 \u626d\u8f6c \u63a7\u5236 \u8f6c\u6362 \u4e3a Carla \u8f66\u8f86 \u63a7\u5236 RVIZ \u63d2\u4ef6 - \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 / \u63a7\u5236 Carla \u7684 RVIZ \u63d2\u4ef6 RQT \u63d2\u4ef6 - \u7528\u4e8e \u63a7\u5236 Carla \u7684 RQT \u63d2\u4ef6 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 - \u6839\u636e \u4eff\u771f \u6355\u83b7 \u7684 \u6570\u636e \u521b\u5efa \u70b9\u4e91 \u5730\u56fe \u63a2\u7d22 \u53c2\u8003 \u8d44\u6599 \u53c2\u8003\u8d44\u6599 ROS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u4e0d\u540c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef\u7528 \u7684 \u53c2\u8003 \u4e3b\u9898 ROS \u6d88\u606f - Carla ROS \u6d88\u606f \u4e2d \u63d0\u4f9b \u7684 \u53c2\u8003 \u53c2\u6570","title":"ROS"},{"location":"ros_documentation/#ros","text":"ROS \u6865 \u53ef \u5b9e\u73b0 ROS \u548c Carla \u4e4b\u95f4 \u7684 \u53cc\u5411 \u901a\u4fe1 \u53cc\u5411\u901a\u4fe1 \u3002 \u6765\u81ea Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4fe1\u606f \u88ab \u8f6c\u6362 \u4e3a ROS \u4e3b\u9898 \u3002 \u4ee5 \u540c\u6837 \u7684 \u65b9\u5f0f \uff0c ROS \u4e2d \u7684 \u8282\u70b9 \u4e4b\u95f4 \u53d1\u9001 \u7684 \u6d88\u606f \u88ab \u8f6c\u6362 \u4e3a \u8981 \u5728 Carla \u4e2d \u5e94\u7528 \u7684 \u547d\u4ee4 \u3002 ROS \u6865 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 ROS \u6865 \u5177\u6709 \u4ee5\u4e0b \u7279\u70b9 \uff1a \u4e3a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u76f8\u673a \uff08 \u6df1\u5ea6 \u3001 \u5206\u5272 \u3001 rgb \u3001 dvs \uff09 \u3001 GNSS \u3001 \u96f7\u8fbe \u548c \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u63d0\u4f9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u63d0\u4f9b \u5bf9\u8c61 \u6570\u636e \uff0c \u4f8b\u5982 \u53d8\u6362 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u3001 \u53ef\u89c6 \u53ef\u89c6\u5316 \u6807\u8bb0 \u3001 \u78b0\u649e \u548c \u8f66\u9053 \u5165\u4fb5 \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u3002 \u63a7\u5236 Carla \u4eff\u771f \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u4f8b\u5982 \u540c\u6b65 \u6a21\u5f0f \u3001 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u4ee5\u53ca \u8bbe\u7f6e \u4eff\u771f \u53c2\u6570 \u3002","title":"ROS \u6865"},{"location":"ros_documentation/#_1","text":"\u4e3a ROS 1 \u5b89\u88c5 ROS \u6865 \u4e3a ROS 2 \u5b89\u88c5 ROS \u6865","title":"\u5f00\u59cb \u4f7f\u7528"},{"location":"ros_documentation/#ros_1","text":"Carla \u7684 ROS \u6865 - \u8fd0\u884c ROS \u6865 \u6240 \u9700 \u7684 \u4e3b\u5305 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 - \u5141\u8bb8 \u76f8\u540c API \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u7684 \u63a5\u53e3","title":"\u4e86\u89e3 \u4e3b\u8981 \u7684 ROS \u6865\u63a5 \u5305"},{"location":"ros_documentation/#ros_2","text":"Carla \u751f\u6210 \u5bf9\u8c61 - \u63d0\u4f9b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901a\u7528 \u65b9\u6cd5 Carla \u624b\u52a8 \u63a7\u5236 - \u7528\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u57fa\u4e8e ROS \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u548c \u63a7\u5236 \u5de5\u5177 \uff08 \u7c7b\u4f3c \u4e8e Carla \u63d0\u4f9b \u7684 carla _ manual _ control . py \uff09 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 - \u4e00\u4e2a \u5c06 \u963f\u514b \u963f\u514b\u66fc \u547d\u4ee4 \u8f6c\u4e3a \u8f6c\u5411 / \u6cb9\u95e8 / \u5239\u8f66 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 Carla \u822a\u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u822a\u70b9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 - \u9075\u5faa \u8def\u7ebf \u3001 \u907f\u514d \u78b0\u649e \u5e76 \u9075\u5b88 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u793a\u4f8b \u4ee3\u7406 Carla \u81ea\u52a8 \u9a7e\u9a76 \u793a\u4f8b - \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 Carla ROS Scenario Runner - \u901a\u8fc7 ROS \u4f7f\u7528 Carla Scenario Runner \u6267\u884c OpenScenarios \u7684 \u5305\u88c5 \u5668 Carla \u626d\u8f6c \u63a7\u5236 - \u5c06 \u626d\u8f6c \u63a7\u5236 \u8f6c\u6362 \u4e3a Carla \u8f66\u8f86 \u63a7\u5236 RVIZ \u63d2\u4ef6 - \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 / \u63a7\u5236 Carla \u7684 RVIZ \u63d2\u4ef6 RQT \u63d2\u4ef6 - \u7528\u4e8e \u63a7\u5236 Carla \u7684 RQT \u63d2\u4ef6 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 - \u6839\u636e \u4eff\u771f \u6355\u83b7 \u7684 \u6570\u636e \u521b\u5efa \u70b9\u4e91 \u5730\u56fe","title":"\u4e86\u89e3 \u989d\u5916 \u7684 ROS \u6865\u63a5 \u5305"},{"location":"ros_documentation/#_2","text":"ROS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u4e0d\u540c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef\u7528 \u7684 \u53c2\u8003 \u4e3b\u9898 ROS \u6d88\u606f - Carla ROS \u6d88\u606f \u4e2d \u63d0\u4f9b \u7684 \u53c2\u8003 \u53c2\u6570","title":"\u63a2\u7d22 \u53c2\u8003\u8d44\u6599"},{"location":"ros_index/","text":"ROS Bridge Documentation This is the documentation for the ROS bridge which enables two - way communication between ROS and CARLA . The information from the CARLA server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in CARLA . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the CARLA simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters . Get started Installing ROS bridge for ROS 1 Installing ROS bridge for ROS 2 Learn about the main ROS bridge package CARLA ROS bridge - The main package required to run the ROS bridge ROS Compatiblity Node - The interface that allows the same API to call either ROS 1 or ROS 2 functions Learn about the additional ROS bridge packages CARLA Spawn Objects - Provides a generic way to spawn actors CARLA Manual Control - A ROS - based visualization and control tool for an ego vehicle ( similar to carla _ manual _ control . py provided by CARLA ) CARLA Ackerman Control - A controller to convert ackermann commands to steer / throttle / brake CARLA Waypoint Publisher - Publish and query CARLA waypoints CARLA AD Agent - An example agent that follows a route , avoids collisions and respects traffic lights CARLA AD Demo - An example package that provides everything needed to launch a CARLA ROS environment with an AD vehicle CARLA ROS Scenario Runner - A wrapper to execute OpenScenarios with the CARLA Scenario Runner via ROS CARLA Twist to Control - Convert twist controls to CARLA vehicle controls RVIZ plugin - An RVIZ plugin to visualize / control CARLA RQT Plugin - A RQT plugin to control CARLA PCL Recorder - Create point cloud maps from data captured from simulations Explore the reference material ROS Sensors - Reference topics available in the different sensors ROS messages - Reference parameters available in CARLA ROS messages","title":"ROS Bridge Documentation"},{"location":"ros_index/#ros-bridge-documentation","text":"This is the documentation for the ROS bridge which enables two - way communication between ROS and CARLA . The information from the CARLA server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in CARLA . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the CARLA simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters .","title":"ROS Bridge Documentation"},{"location":"ros_index/#get-started","text":"Installing ROS bridge for ROS 1 Installing ROS bridge for ROS 2","title":"Get started"},{"location":"ros_index/#learn-about-the-main-ros-bridge-package","text":"CARLA ROS bridge - The main package required to run the ROS bridge ROS Compatiblity Node - The interface that allows the same API to call either ROS 1 or ROS 2 functions","title":"Learn about the main ROS bridge package"},{"location":"ros_index/#learn-about-the-additional-ros-bridge-packages","text":"CARLA Spawn Objects - Provides a generic way to spawn actors CARLA Manual Control - A ROS - based visualization and control tool for an ego vehicle ( similar to carla _ manual _ control . py provided by CARLA ) CARLA Ackerman Control - A controller to convert ackermann commands to steer / throttle / brake CARLA Waypoint Publisher - Publish and query CARLA waypoints CARLA AD Agent - An example agent that follows a route , avoids collisions and respects traffic lights CARLA AD Demo - An example package that provides everything needed to launch a CARLA ROS environment with an AD vehicle CARLA ROS Scenario Runner - A wrapper to execute OpenScenarios with the CARLA Scenario Runner via ROS CARLA Twist to Control - Convert twist controls to CARLA vehicle controls RVIZ plugin - An RVIZ plugin to visualize / control CARLA RQT Plugin - A RQT plugin to control CARLA PCL Recorder - Create point cloud maps from data captured from simulations","title":"Learn about the additional ROS bridge packages"},{"location":"ros_index/#explore-the-reference-material","text":"ROS Sensors - Reference topics available in the different sensors ROS messages - Reference parameters available in CARLA ROS messages","title":"Explore the reference material"},{"location":"ros_installation_ros1/","text":"ROS 1 \u7684 ROS \u6865\u63a5 \u5b89\u88c5 \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 Linux \u4e0a \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4ee5 \u4e0e ROS 1 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u60a8 \u5c06 \u627e\u5230 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3001 \u5b89\u88c5 \u6b65\u9aa4 \u3001 \u5982\u4f55 \u8fd0\u884c \u57fa\u672c \u5305\u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u8fd0\u884c \u4ee5\u53ca \u8fd0\u884c \u6d4b\u8bd5 \u7684 \u547d\u4ee4 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d ROS \u6865 \u5b89\u88c5 A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93 B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u8fd0\u884c ROS \u6865 \u6d4b\u8bd5 \u91cd\u8981 ROS \u6865 \u5c1a\u672a \u5728 Windows \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u4f7f\u7528 ROS \u6865 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8f6f\u4ef6 \u8981\u6c42 \uff1a \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 ROS \uff1a ROS Melodic \u2014 \u9002\u7528 \u4e8e Ubuntu 18.04 ( Bionic ) ROS Noetic \u2014 \u9002\u7528 \u4e8e 20.04 ( Focal ) \u6839\u636e \u60a8 \u7684 \u9700\u8981 \uff0c \u53ef\u80fd \u9700\u8981 \u989d\u5916 \u7684 ROS \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 rviz \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 ROS \u6570\u636e \u3002 Carla 0.9 . 7 \u6216 \u66f4 \u9ad8 \u7248\u672c \u2014 \u4ee5\u524d \u7684 \u7248\u672c \u4e0e ROS \u6865 \u4e0d \u517c\u5bb9 \u3002 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6216 \u9488\u5bf9 Linux \u8fdb\u884c \u6784\u5efa \u3002 \u5efa\u8bae \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5c06 ROS \u6865\u63a5 \u7248\u672c \u4e0e Carla \u7248\u672c \u5339\u914d \u3002 ROS \u6865 \u5b89\u88c5 \u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a \u901a\u8fc7 Debian \u5b58\u50a8 \u5e93\u4e2d \u7684 apt \u5de5\u5177 \u8fdb\u884c \u5b89\u88c5 \u3002 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u4ece GitHub \u4e0a \u7684 \u6e90 \u5b58\u50a8 \u5e93 \u514b\u9686 \u3002 \u4e0b\u9762 \u8be6\u7ec6 \u4ecb\u7ecd \u8fd9 \u4e24\u79cd \u65b9\u6cd5 \u3002 \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7248\u672c \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u65e7\u7248 \u7248\u672c \u65e7\u7248\u672c \u7684 Carla \u6587\u6863 \u4e2d \u7684 \u8bf4\u660e \u3002 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u9002\u5f53 \u7248\u672c \u7684 \u6587\u6863 \u3002 A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93 \u7b14\u8bb0 \u6b64 \u5b89\u88c5 \u65b9\u6cd5 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u5bf9\u4e8e \u5176\u4ed6 \u652f\u6301 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 B \u90e8\u5206 \uff1a \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u3002 1 . \u5728 \u60a8 \u7684 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 ROS \u6865 \uff1a \u6700\u65b0 \u7248\u672c \uff1a sudo apt - get update # \u66f4\u65b0 Debian \u5305 \u7d22\u5f15 sudo apt - get install carla - ros - bridge # \u5b89\u88c5 \u6700\u65b0 \u7684 ROS \u6865\u63a5 \u7248\u672c \uff0c \u6216 \u66f4\u65b0 \u5f53\u524d \u7684 \u5b89\u88c5 \u901a\u8fc7 \u5411 \u547d\u4ee4 \u6dfb\u52a0 \u7248\u672c \u6807\u7b7e \u6765 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff1a apt - cache madison carla - ros - bridge # \u5217\u51fa ROS \u6865\u63a5 \u7684 \u53ef\u7528 \u7248\u672c sudo apt - get install carla - ros - bridge = 0.9 . 10 - 1 # \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u201c 0.9 . 10 \u201d \u6307 \u7684 \u662f ROS \u6865\u63a5 \u7248\u672c \uff0c \u201c 1 \u201d \u6307 \u7684 \u662f Debian \u7248\u672c 3 . \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d ROS \u6865 \u662f\u5426 \u5df2 \u5b89\u88c5 \u6210\u529f \u3002 B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 1 . \u521b\u5efa catkin \u5de5\u4f5c \u533a \uff1a mkdir - p ~ / carla - ros - bridge / catkin _ ws / src 2 . \u514b\u9686 ROS \u6865 \u5b58\u50a8 \u5e93\u548c\u5b50 \u6a21\u5757 \uff1a cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git catkin _ ws / src / ros - bridge 5 . \u6839\u636e \u60a8 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a source / opt / ros / < melodic / noetic > / setup . bash 6 . \u5b89\u88c5 \u6240 \u9700 \u7684 ros \u4f9d\u8d56 \u9879 \uff1a cd catkin _ ws rosdep update rosdep install -- from - paths src -- ignore - src - r 7 . \u6784\u5efa ROS \u6865 \uff1a catkin build # alternatively catkin _ make \u8fd0\u884c ROS \u6865 1 . \u6309\u7167 \u5b89\u88c5 Carla \u65f6 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a # \u5305 \u7248\u672c \u5728 carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . / CarlaUE4 . sh # Debian \u5b89\u88c5 \u5728 ` opt / carla - simulator / ` . / CarlaUE4 . sh # \u4ece carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u7684 \u6e90 \u7248\u672c \u6784\u5efa make launch 2 . \u5c06 \u6b63\u786e \u7684 Carla \u6a21\u5757 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \uff1a export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . \u6839\u636e ROS \u6865 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u6dfb\u52a0 ROS \u6865 \u5de5\u4f5c \u7a7a\u95f4 \u7684 \u6e90 \u8def\u5f84 \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u90fd \u5e94\u8be5 \u5728 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u5b8c\u6210 \u6b64 \u64cd\u4f5c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash \u91cd\u8981 \u6e90 \u8def\u5f84 \u53ef\u4ee5 \u6c38\u4e45 \u8bbe\u7f6e \uff0c \u4f46 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u5de5\u4f5c \u533a\u65f6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 4 . \u542f\u52a8 ROS \u6865 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u7528 \u7684 \u4e0d\u540c \u542f\u52a8 \u6587\u4ef6 \u6765 \u68c0\u67e5 \u5b89\u88c5 \uff1a # \u9009\u9879 1 : \u542f\u52a8 ros \u6865 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # \u9009\u9879 2 : \u542f\u52a8 ros \u6865 \u548c \u4e00\u4e2a \u793a\u4f8b \u81ea\u6211 \u8f66\u8f86 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch \u7b14\u8bb0 \u5982\u679c \u60a8 \u6536\u5230 \u9519\u8bef \uff1a ImportError : no module named CARLA \u5219 \u7f3a\u5c11 CARLA Python API \u7684 \u8def\u5f84 \u3002 apt \u5b89\u88c5 \u4f1a \u81ea\u52a8 \u8bbe\u7f6e \u8def\u5f84 \uff0c \u4f46 \u5176\u4ed6 \u5b89\u88c5 \u53ef\u80fd \u4f1a \u4e22\u5931 \u8be5 \u8def\u5f84 \u3002 \u60a8 \u9700\u8981 \u5c06 \u9002\u5f53 \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \u4e2d \u3002 \u60a8 \u5c06 \u5728 / PythonAPI / \u6216 / PythonAPI / dist / \u4e2d \u627e\u5230 \u8be5 \u6587\u4ef6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u5b89\u88c5 \u3002 \u4f7f\u7528 \u4e0e \u60a8 \u5b89\u88c5 \u7684 Python \u7248\u672c \u76f8\u5bf9 \u5e94 \u7684 . egg \u6587\u4ef6 \uff0c \u4f7f\u7528 \u6587\u4ef6 \u7684 \u5b8c\u6574 \u8def\u5f84 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > \u5efa\u8bae \u901a\u8fc7 \u5c06 \u524d \u4e00\u884c \u6dfb\u52a0 \u5230 . bashrc \u6587\u4ef6 \u4e2d\u6765 \u6c38\u4e45 \u8bbe\u7f6e \u6b64 \u53d8\u91cf \u3002 \u8981 \u68c0\u67e5 Carla \u5e93 \u662f\u5426 \u53ef\u4ee5 \u6b63\u786e \u5bfc\u5165 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u7b49\u5f85 \u6210\u529f \u6d88\u606f \uff1a python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2 \u6d4b\u8bd5 \u4f7f\u7528 catkin \u6267\u884c \u6d4b\u8bd5 \uff1a 1 . \u6784\u5efa \u5305 \uff1a catkin _ make - DCATKIN _ ENABLE _ TESTING = 0 2 . \u8fd0\u884c \u6d4b\u8bd5 \uff1a rostest carla _ ros _ bridge ros _ bridge _ client . test","title":"ROS 1 \u7684 ROS \u6865\u63a5 \u5b89\u88c5"},{"location":"ros_installation_ros1/#ros-1-ros","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 Linux \u4e0a \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4ee5 \u4e0e ROS 1 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u60a8 \u5c06 \u627e\u5230 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3001 \u5b89\u88c5 \u6b65\u9aa4 \u3001 \u5982\u4f55 \u8fd0\u884c \u57fa\u672c \u5305\u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u8fd0\u884c \u4ee5\u53ca \u8fd0\u884c \u6d4b\u8bd5 \u7684 \u547d\u4ee4 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d ROS \u6865 \u5b89\u88c5 A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93 B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u8fd0\u884c ROS \u6865 \u6d4b\u8bd5 \u91cd\u8981 ROS \u6865 \u5c1a\u672a \u5728 Windows \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002","title":"ROS 1 \u7684 ROS \u6865\u63a5 \u5b89\u88c5"},{"location":"ros_installation_ros1/#_1","text":"\u5728 \u4f7f\u7528 ROS \u6865 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8f6f\u4ef6 \u8981\u6c42 \uff1a \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 ROS \uff1a ROS Melodic \u2014 \u9002\u7528 \u4e8e Ubuntu 18.04 ( Bionic ) ROS Noetic \u2014 \u9002\u7528 \u4e8e 20.04 ( Focal ) \u6839\u636e \u60a8 \u7684 \u9700\u8981 \uff0c \u53ef\u80fd \u9700\u8981 \u989d\u5916 \u7684 ROS \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 rviz \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 ROS \u6570\u636e \u3002 Carla 0.9 . 7 \u6216 \u66f4 \u9ad8 \u7248\u672c \u2014 \u4ee5\u524d \u7684 \u7248\u672c \u4e0e ROS \u6865 \u4e0d \u517c\u5bb9 \u3002 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6216 \u9488\u5bf9 Linux \u8fdb\u884c \u6784\u5efa \u3002 \u5efa\u8bae \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5c06 ROS \u6865\u63a5 \u7248\u672c \u4e0e Carla \u7248\u672c \u5339\u914d \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"ros_installation_ros1/#ros","text":"\u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a \u901a\u8fc7 Debian \u5b58\u50a8 \u5e93\u4e2d \u7684 apt \u5de5\u5177 \u8fdb\u884c \u5b89\u88c5 \u3002 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u4ece GitHub \u4e0a \u7684 \u6e90 \u5b58\u50a8 \u5e93 \u514b\u9686 \u3002 \u4e0b\u9762 \u8be6\u7ec6 \u4ecb\u7ecd \u8fd9 \u4e24\u79cd \u65b9\u6cd5 \u3002 \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7248\u672c \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u65e7\u7248 \u7248\u672c \u65e7\u7248\u672c \u7684 Carla \u6587\u6863 \u4e2d \u7684 \u8bf4\u660e \u3002 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u9002\u5f53 \u7248\u672c \u7684 \u6587\u6863 \u3002","title":"ROS \u6865 \u5b89\u88c5"},{"location":"ros_installation_ros1/#a-debian","text":"\u7b14\u8bb0 \u6b64 \u5b89\u88c5 \u65b9\u6cd5 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u5bf9\u4e8e \u5176\u4ed6 \u652f\u6301 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 B \u90e8\u5206 \uff1a \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u3002 1 . \u5728 \u60a8 \u7684 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 ROS \u6865 \uff1a \u6700\u65b0 \u7248\u672c \uff1a sudo apt - get update # \u66f4\u65b0 Debian \u5305 \u7d22\u5f15 sudo apt - get install carla - ros - bridge # \u5b89\u88c5 \u6700\u65b0 \u7684 ROS \u6865\u63a5 \u7248\u672c \uff0c \u6216 \u66f4\u65b0 \u5f53\u524d \u7684 \u5b89\u88c5 \u901a\u8fc7 \u5411 \u547d\u4ee4 \u6dfb\u52a0 \u7248\u672c \u6807\u7b7e \u6765 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff1a apt - cache madison carla - ros - bridge # \u5217\u51fa ROS \u6865\u63a5 \u7684 \u53ef\u7528 \u7248\u672c sudo apt - get install carla - ros - bridge = 0.9 . 10 - 1 # \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u201c 0.9 . 10 \u201d \u6307 \u7684 \u662f ROS \u6865\u63a5 \u7248\u672c \uff0c \u201c 1 \u201d \u6307 \u7684 \u662f Debian \u7248\u672c 3 . \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d ROS \u6865 \u662f\u5426 \u5df2 \u5b89\u88c5 \u6210\u529f \u3002","title":"A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93"},{"location":"ros_installation_ros1/#b","text":"1 . \u521b\u5efa catkin \u5de5\u4f5c \u533a \uff1a mkdir - p ~ / carla - ros - bridge / catkin _ ws / src 2 . \u514b\u9686 ROS \u6865 \u5b58\u50a8 \u5e93\u548c\u5b50 \u6a21\u5757 \uff1a cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git catkin _ ws / src / ros - bridge 5 . \u6839\u636e \u60a8 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a source / opt / ros / < melodic / noetic > / setup . bash 6 . \u5b89\u88c5 \u6240 \u9700 \u7684 ros \u4f9d\u8d56 \u9879 \uff1a cd catkin _ ws rosdep update rosdep install -- from - paths src -- ignore - src - r 7 . \u6784\u5efa ROS \u6865 \uff1a catkin build # alternatively catkin _ make","title":"B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93"},{"location":"ros_installation_ros1/#ros_1","text":"1 . \u6309\u7167 \u5b89\u88c5 Carla \u65f6 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a # \u5305 \u7248\u672c \u5728 carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . / CarlaUE4 . sh # Debian \u5b89\u88c5 \u5728 ` opt / carla - simulator / ` . / CarlaUE4 . sh # \u4ece carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u7684 \u6e90 \u7248\u672c \u6784\u5efa make launch 2 . \u5c06 \u6b63\u786e \u7684 Carla \u6a21\u5757 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \uff1a export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . \u6839\u636e ROS \u6865 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u6dfb\u52a0 ROS \u6865 \u5de5\u4f5c \u7a7a\u95f4 \u7684 \u6e90 \u8def\u5f84 \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u90fd \u5e94\u8be5 \u5728 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u5b8c\u6210 \u6b64 \u64cd\u4f5c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash \u91cd\u8981 \u6e90 \u8def\u5f84 \u53ef\u4ee5 \u6c38\u4e45 \u8bbe\u7f6e \uff0c \u4f46 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u5de5\u4f5c \u533a\u65f6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 4 . \u542f\u52a8 ROS \u6865 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u7528 \u7684 \u4e0d\u540c \u542f\u52a8 \u6587\u4ef6 \u6765 \u68c0\u67e5 \u5b89\u88c5 \uff1a # \u9009\u9879 1 : \u542f\u52a8 ros \u6865 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # \u9009\u9879 2 : \u542f\u52a8 ros \u6865 \u548c \u4e00\u4e2a \u793a\u4f8b \u81ea\u6211 \u8f66\u8f86 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch \u7b14\u8bb0 \u5982\u679c \u60a8 \u6536\u5230 \u9519\u8bef \uff1a ImportError : no module named CARLA \u5219 \u7f3a\u5c11 CARLA Python API \u7684 \u8def\u5f84 \u3002 apt \u5b89\u88c5 \u4f1a \u81ea\u52a8 \u8bbe\u7f6e \u8def\u5f84 \uff0c \u4f46 \u5176\u4ed6 \u5b89\u88c5 \u53ef\u80fd \u4f1a \u4e22\u5931 \u8be5 \u8def\u5f84 \u3002 \u60a8 \u9700\u8981 \u5c06 \u9002\u5f53 \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \u4e2d \u3002 \u60a8 \u5c06 \u5728 / PythonAPI / \u6216 / PythonAPI / dist / \u4e2d \u627e\u5230 \u8be5 \u6587\u4ef6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u5b89\u88c5 \u3002 \u4f7f\u7528 \u4e0e \u60a8 \u5b89\u88c5 \u7684 Python \u7248\u672c \u76f8\u5bf9 \u5e94 \u7684 . egg \u6587\u4ef6 \uff0c \u4f7f\u7528 \u6587\u4ef6 \u7684 \u5b8c\u6574 \u8def\u5f84 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > \u5efa\u8bae \u901a\u8fc7 \u5c06 \u524d \u4e00\u884c \u6dfb\u52a0 \u5230 . bashrc \u6587\u4ef6 \u4e2d\u6765 \u6c38\u4e45 \u8bbe\u7f6e \u6b64 \u53d8\u91cf \u3002 \u8981 \u68c0\u67e5 Carla \u5e93 \u662f\u5426 \u53ef\u4ee5 \u6b63\u786e \u5bfc\u5165 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u7b49\u5f85 \u6210\u529f \u6d88\u606f \uff1a python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2","title":"\u8fd0\u884c ROS \u6865"},{"location":"ros_installation_ros1/#_2","text":"\u4f7f\u7528 catkin \u6267\u884c \u6d4b\u8bd5 \uff1a 1 . \u6784\u5efa \u5305 \uff1a catkin _ make - DCATKIN _ ENABLE _ TESTING = 0 2 . \u8fd0\u884c \u6d4b\u8bd5 \uff1a rostest carla _ ros _ bridge ros _ bridge _ client . test","title":"\u6d4b\u8bd5"},{"location":"ros_installation_ros2/","text":"ROS bridge installation for ROS 2 This section is a guide on how to install the ROS bridge on Linux for use with ROS 2 . You will find the prerequisites , installation steps , how to run a basic package to make sure everything is working well and commands to run tests . Before you begin __ ROS bridge installation __ Run the ROS bridge Testing Important ROS is still experimental for Windows . It has only been tested for Linux systems . Before you begin You will need to fulfill the following software requirements before using the ROS bridge : Install ROS : ROS 2 Foxy \u2014 For Ubuntu 20.04 ( Focal ) Additional ROS packages may be required depending on your needs . rviz is highly recommended to visualize ROS data . CARLA 0.9 . 11 or later \u2014 Previous versions are not compatible with the ROS bridge . Follow the quick start installation or make the build for Linux . It is recommended to match the ROS bridge version to the CARLA version when possible . ROS bridge installation Note The Debian package installation is not yet available for ROS 2 . 1 . Set up the project directory and clone the ROS bridge repository and submodules : mkdir - p ~ / carla - ros - bridge && cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git src / ros - bridge 2 . Set up the ROS environment : source / opt / ros / foxy / setup . bash 3 . Install the ROS dependencies : rosdep update rosdep install -- from - paths src -- ignore - src - r 4 . Build the ROS bridge workspace using colcon : colcon build Run the ROS bridge 1 . Start a CARLA server according to the installation method used to install CARLA : # Package version in carla root folder . / CarlaUE4 . sh # Debian installation in ` opt / carla - simulator / ` . / CarlaUE4 . sh # Build from source version in carla root folder make launch 2 . Add the correct CARLA modules to your Python path : export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . Add the source path for the ROS bridge workspace : source . / install / setup . bash 4 . In another terminal , start the ROS 2 bridge . You can run one of the two options below : # Option 1 , start the basic ROS bridge package ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py # Option 2 , start the ROS bridge with an example ego vehicle ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py Note If you receive the error : ImportError : no module named CARLA then the path to the CARLA Python API is missing . The apt installation sets the path automatically , but it may be missing for other installations . You will need to add the appropriate . egg file to your Python path . You will find the file in either / PythonAPI / or / PythonAPI / dist / depending on the CARLA installation . Execute the following command with the complete path to the . egg file , using the file that corresponds to your installed version of Python : export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > It is recommended to set this variable permanently by adding the previous line to your . bashrc file . To check the CARLA library can be imported correctly , run the following command and wait for a success message : python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2 Testing To execute tests using colcon : 1 . Build the package : colcon build -- packages - up - to carla _ ros _ bridge 2 . Run the tests : launch _ test carla _ ros _ bridge / test / ros _ bridge _ client _ ros2 _ test . py","title":"ROS bridge installation for ROS 2"},{"location":"ros_installation_ros2/#ros-bridge-installation-for-ros-2","text":"This section is a guide on how to install the ROS bridge on Linux for use with ROS 2 . You will find the prerequisites , installation steps , how to run a basic package to make sure everything is working well and commands to run tests . Before you begin __ ROS bridge installation __ Run the ROS bridge Testing Important ROS is still experimental for Windows . It has only been tested for Linux systems .","title":"ROS bridge installation for ROS 2"},{"location":"ros_installation_ros2/#before-you-begin","text":"You will need to fulfill the following software requirements before using the ROS bridge : Install ROS : ROS 2 Foxy \u2014 For Ubuntu 20.04 ( Focal ) Additional ROS packages may be required depending on your needs . rviz is highly recommended to visualize ROS data . CARLA 0.9 . 11 or later \u2014 Previous versions are not compatible with the ROS bridge . Follow the quick start installation or make the build for Linux . It is recommended to match the ROS bridge version to the CARLA version when possible .","title":"Before you begin"},{"location":"ros_installation_ros2/#ros-bridge-installation","text":"Note The Debian package installation is not yet available for ROS 2 . 1 . Set up the project directory and clone the ROS bridge repository and submodules : mkdir - p ~ / carla - ros - bridge && cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git src / ros - bridge 2 . Set up the ROS environment : source / opt / ros / foxy / setup . bash 3 . Install the ROS dependencies : rosdep update rosdep install -- from - paths src -- ignore - src - r 4 . Build the ROS bridge workspace using colcon : colcon build","title":"ROS bridge installation"},{"location":"ros_installation_ros2/#run-the-ros-bridge","text":"1 . Start a CARLA server according to the installation method used to install CARLA : # Package version in carla root folder . / CarlaUE4 . sh # Debian installation in ` opt / carla - simulator / ` . / CarlaUE4 . sh # Build from source version in carla root folder make launch 2 . Add the correct CARLA modules to your Python path : export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . Add the source path for the ROS bridge workspace : source . / install / setup . bash 4 . In another terminal , start the ROS 2 bridge . You can run one of the two options below : # Option 1 , start the basic ROS bridge package ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py # Option 2 , start the ROS bridge with an example ego vehicle ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py Note If you receive the error : ImportError : no module named CARLA then the path to the CARLA Python API is missing . The apt installation sets the path automatically , but it may be missing for other installations . You will need to add the appropriate . egg file to your Python path . You will find the file in either / PythonAPI / or / PythonAPI / dist / depending on the CARLA installation . Execute the following command with the complete path to the . egg file , using the file that corresponds to your installed version of Python : export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > It is recommended to set this variable permanently by adding the previous line to your . bashrc file . To check the CARLA library can be imported correctly , run the following command and wait for a success message : python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2","title":"Run the ROS bridge"},{"location":"ros_installation_ros2/#testing","text":"To execute tests using colcon : 1 . Build the package : colcon build -- packages - up - to carla _ ros _ bridge 2 . Run the tests : launch _ test carla _ ros _ bridge / test / ros _ bridge _ client _ ros2 _ test . py","title":"Testing"},{"location":"ros_msgs/","text":"Carla \u6d88\u606f \u53c2\u8003 \u4ee5\u4e0b \u53c2\u8003 \u5217\u51fa \u4e86 ROS \u6865\u4e2d \u53ef\u7528 \u7684 \u6240\u6709 Carla \u6d88\u606f \u3002 \u5bf9 \u8fd9\u4e9b \u6d88\u606f \u6216 Carla - ROS \u6865 \u7684 \u4efb\u4f55 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u89e3\u51b3 \u3002 Carla \u8bba\u575b CarlaActorInfo . msg ROS \u548c Carla \u4e4b\u95f4 \u5171\u4eab \u6709\u5173 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 parent _ id uint32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6ca1\u6709 \u53ef\u7528 \u7684 \u7236\u7ea7 \uff0c \u5219 \u4e3a ` 0 ` \u3002 type string \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u751f\u6210 \u65f6 \u5206\u914d \u7ed9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89d2\u8272 \u3002 CarlaActorList . msg \u5305\u542b Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 actors CarlaActorInfo \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 CarlaCollisionEvent . msg \u68c0\u7d22 \u7531 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u78b0\u649e \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 other _ actor _ id uint32 \u68c0\u6d4b \u5230 \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 normal _ impulse geometry _ msgs / Vector3 \u8868\u793a \u78b0\u649e \u4ea7\u751f \u7684 \u8109\u51b2 \u7684 \u77e2\u91cf \u3002 CarlaControl . msg \u8fd9\u4e9b \u6d88\u606f \u5728 \u540c\u6b65 \u3001 \u975e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u4e0b \u63a7\u5236 \u4eff\u771f \u3002 \u5b9a\u4e49 \u7684 \u5e38\u91cf \u88ab \u7ffb\u8bd1 \u4e3a \u6b65\u8fdb \u547d\u4ee4 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 command int8 \u64ad\u653e = 0 \u6682\u505c = 1 STEP _ ONCE = 2 CarlaEgoVehicleControl . msg \u53d1\u9001 \u6d88\u606f \u4ee5 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u548c \u624b\u52a8 \u4e24\u79cd \u6a21\u5f0f \u4e0b \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u63a7\u5236 \u3002 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u5806\u6808 \u5f62\u5f0f \u53d1\u5e03 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 throttle float32 \u63a7\u5236 \u8f66\u8f86 \u6cb9\u95e8 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] steer float32 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 \u65b9\u5411 \u7684 \u6807\u91cf \u503c \uff1a [ - 1.0 , 1.0 ] \u6765 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 brake float32 \u63a7\u5236 \u8f66\u8f86 \u5239\u8f66 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] hand _ brake bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u624b\u5239 \u3002 reverse bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u5411 \u540e \u79fb\u52a8 \u3002 gear int32 \u8f66\u8f86 \u4e2d \u53ef\u7528 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u53d8\u5316 \u3002 manual _ gear _ shift bool \u5982\u679c \u4e3a True \uff0c \u5219 \u5c06 \u4f7f\u7528 gear \u8fdb\u884c \u6362\u6863 \u3002 CarlaEgoVehicleInfo . msg \u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \uff0c \u4e3b\u8981 \u662f \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u5c5e\u6027 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u5206\u914d \u7ed9 \u8f66\u8f86 \u7684 \u89d2\u8272 \u3002 wheels CarlaEgoVehicleInfoWheel \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 max _ rpm float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u6700\u5927 \u8f6c\u901f \u3002 moi float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3002 damping _ rate _ full _ throttle float32 \u6cb9\u95e8 \u6700\u5927 \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ engaged float32 \u5f53 \u79bb\u5408 \u79bb\u5408\u5668 \u63a5\u5408 \u4e14 \u6cb9\u95e8 \u4e3a \u96f6\u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ disengaged float32 \u5f53 \u6cb9\u95e8 \u4e3a \u96f6\u4e14 \u79bb\u5408 \u79bb\u5408\u5668 \u5206\u79bb \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 use _ gear _ autobox bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u914d\u5907 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u3002 gear _ switch _ time float32 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u5207\u6362 \u65f6\u95f4 \u3002 clutch _ strength float32 \u8f66\u8f86 \u7684 \u79bb\u5408 \u79bb\u5408\u5668 \u5f3a\u5ea6 \u3002 \u4ee5 Kgm ^ 2 / s \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 mass float32 \u8f66\u8f86 \u7684 \u8d28\u91cf \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 drag _ coefficient float32 \u8f66\u8f86 \u5e95\u76d8 \u7684 \u963b\u529b \u7cfb\u6570 \u3002 center _ of _ mass geometry _ msgs / Vector3 \u8f66\u8f86 \u7684 \u8d28\u5fc3 \u3002 CarlaEgoVehicleInfoWheel . msg \u6709\u5173 \u8f66\u8f6e \u7684 \u9759\u6001 \u4fe1\u606f \u5c06 \u6210\u4e3a CarlaEgoVehicleInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 tire _ friction float32 \u8868\u793a \u8f66\u8f6e \u6469\u64e6 \u6469\u64e6\u529b \u7684 \u6807\u91cf \u503c \u3002 damping _ rate float32 \u8f66\u8f6e \u7684 \u963b\u5c3c \u7387 \u3002 max _ steer _ angle float32 \u8f66\u8f6e \u53ef\u4ee5 \u8f6c\u5411 \u7684 \u6700\u5927 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 radius float32 \u8f6e\u5b50 \u7684 \u534a\u5f84 \uff0c \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 max _ brake _ torque float32 \u6700\u5927 \u5236\u52a8 \u626d\u77e9 \uff08 Nm \uff09 \u3002 max _ handbrake _ torque float32 \u6700\u5927 \u624b\u5239 \u626d\u77e9 \uff08 Nm \uff09 \u3002 position geometry _ msgs / Vector3 \u8f66\u8f6e \u7684 \u4e16\u754c \u4f4d\u7f6e \u3002 CarlaEgoVehicleStatus . msg \u8f66\u8f86 \u4f5c\u4e3a \u4e16\u754c \u4e0a \u7269\u4f53 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 velocity float32 \u8f66\u8f86 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 acceleration geometry _ msgs / Accel \u8f66\u8f86 \u5f53\u524d \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 orientation geometry _ msgs / Quaternion \u8f66\u8f86 \u7684 \u5f53\u524d \u671d\u5411 \u3002 control CarlaEgoVehicleControl Carla \u62a5\u544a \u7684 \u5f53\u524d \u63a7\u5236 \u503c \u3002 CarlaLaneInvasionEvent . msg \u8fd9\u4e9b \u6d88\u606f \u53d1\u5e03 \u7531 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u8f66\u9053 \u5165\u4fb5 \u3002 \u6700\u540e \u4e00\u6b65 \u4e2d \u68c0\u6d4b \u5230 \u7684 \u5165\u4fb5 \u5c06 \u4f5c\u4e3a \u5177\u6709 \u5e38\u91cf \u5b9a\u4e49 \u7684 \u5217\u8868 \u4f20\u9012 \uff0c \u4ee5 \u8bc6\u522b \u7a7f\u8fc7 \u7684 \u8f66\u9053 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 crossed _ lane _ markings int32 [ ] LANE _ MARKING _ OTHER = 0 LANE _ MARKING _ BROKEN = 1 LANE _ MARKING _ SOLID = 2 CarlaScenario . msg \u6d4b\u8bd5 \u573a\u666f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 name string \u573a\u666f \u540d\u79f0 \u3002 scenario _ file string \u8be5 \u573a\u666f \u7684 \u6d4b\u8bd5 \u6587\u4ef6 \u3002 destination geometry _ msgs / Pose \u573a\u666f \u7684 \u76ee\u6807 \u4f4d\u7f6e \u3002 target _ speed float64 \u573a\u666f \u671f\u95f4 \u671f\u671b \u7684 \u901f\u5ea6 \u3002 CarlaScenarioList . msg \u8981 \u5728 ScenarioRunner \u4e2d \u8fd0\u884c \u7684 \u6d4b\u8bd5 \u573a\u666f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaScenario [ ] \u573a\u666f \u5217\u8868 \u3002 CarlaScenarioRunnerStatus . msg ScenarioRunner \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f \u4f7f\u7528 \u5e38\u91cf \u6765 \u7ba1\u7406 \u7684 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status uint8 \u573a\u666f \u7684 \u5f53\u524d \u72b6\u6001 \u4f5c\u4e3a \u679a\u4e3e \uff1a STOPPED = 0 STARTING = 1 RUNNING = 2 SHUTTINGDOWN = 3 ERROR = 4 CarlaStatus . msg \u5f53\u524d \u4e16\u754c \u7684 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 frame uint64 \u5f53\u524d \u5e27 \u53f7 \u3002 fixed _ delta _ seconds float32 \u6700\u540e \u4e00\u6b65 \u548c \u5f53\u524d \u6b65 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 synchronous _ mode bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 synchronous _ mode _ running bool \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002 CarlaTrafficLightStatus . msg \u5173\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7684 \u6052\u5b9a \u5b9a\u4e49 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 state uint8 RED = 0 YELLOW = 1 GREEN = 2 OFF = 3 UNKNOWN = 4 CarlaTrafficLightStatusList . msg \u4ea4\u901a \u4ea4\u901a\u706f \u5217\u8868 \u53ca\u5176 \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaTrafficLightStatus [ ] \u6c47\u603b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u6d88\u606f \u5217\u8868 \u3002 CarlaWalkerControl . msg \u5c06 \u8fd0\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u4e8e \u884c\u4eba \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 direction geometry _ msgs / Vector3 \u63a7\u5236 \u884c\u4eba \u65b9\u5411 \u7684 \u5411\u91cf \u3002 speed float32 \u7528\u4e8e \u63a7\u5236 \u884c\u4eba \u901f\u5ea6 \u7684 \u6807\u91cf \u503c \u3002 jump bool \u5982\u679c \u4e3a True \uff0c \u884c\u4eba \u4f1a \u8df3\u8dc3 \u3002 CarlaWaypoint . msg \u822a\u70b9 \u5bf9\u8c61 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 road _ id int32 OpenDRIVE \u9053\u8def \u7684 id \u3002 section _ id int32 OpenDRIVE \u90e8\u5206 \u7684 id \uff0c \u57fa\u4e8e \u5b83\u4eec \u6700\u521d \u5b9a\u4e49 \u7684 \u987a\u5e8f \u3002 lane _ id int32 OpenDRIVE \u8f66\u9053 \u7684 id \uff0c \u8be5\u503c \u53ef\u4ee5 \u662f \u6b63\u6570 \u6216 \u8d1f\u6570 \uff0c \u8868\u793a \u5f53\u524d \u8f66\u9053 \u76f8\u5bf9 \u4e8e \u9053\u8def \u7684 \u65b9\u5411 \u3002 is _ junction bool \u5982\u679c \u5f53\u524d \u8def\u70b9 \u4f4d\u4e8e OpenDRIVE \u5b9a\u4e49 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u4e0a \uff0c \u5219 \u4e3a True \u3002 is _ junction geometry _ msgs / Pose \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002 CarlaWorldInfo . msg \u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 map _ name string \u5f53\u524d \u4e16\u754c \u4e2d \u52a0\u8f7d \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 opendrive string \u5f53\u524d \u5730\u56fe \u7684 . xodr OpenDRIVE \u6587\u4ef6 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \uff09 \u3002 EgoVehicleControlCurrent . msg \u8f66\u8f86 \u7684 \u5f53\u524d \u65f6\u95f4 \u3001 \u901f\u5ea6 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u503c \u3002 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u4f7f\u7528 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 time _ sec float32 \u5e94\u7528 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u65f6\u95f4 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 EgoVehicleControlInfo . msg \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u7684 \u5f53\u524d \u503c \u3002 \u8fd9\u4e9b \u6d88\u606f \u5bf9\u4e8e \u8c03\u8bd5 \u5f88 \u6709\u7528 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 restrictions EgoVehicleControlMaxima \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 target EgoVehicleControlTarget \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 current EgoVehicleControlCurrent \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 status EgoVehicleControlStatus \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 output CarlaEgoVehicleControl \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 EgoVehicleControlMaxima . msg \u63a7\u5236 \u63a7\u5236\u5668 \u9650\u5236 \uff08 \u6781\u9650 \u9650\u503c \u6781\u9650\u503c \uff09 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 max _ steering _ angle float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u8f6c\u5411 \u89d2 \u3002 max _ speed float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u901f\u5ea6 \u3002 max _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 max _ decel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u51cf \u901f\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8m / s ^ 2 min _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5c0f \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u5f53 \u963f\u514b \u963f\u514b\u66fc \u76ee\u6807 \u52a0\u901f \u65f6 \u3002 \u8d85\u8fc7 \u6b64\u503c \uff0c \u8f93\u5165 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u88ab \u63a7\u5236 \u3002 max _ pedal float32 \u6700\u5c0f \u8e0f\u677f \u3002 EgoVehicleControlStatus . msg \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status string \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \u3002 speed _ control _ activation _ count uint8 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ delta float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ target float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ delta float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ target float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 brake _ upper _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002 throttle _ lower _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002 EgoVehicleControlTarget . msg \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 steering _ angle float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u8f6c\u5411 \u89d2 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 jerk float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6296\u52a8 \u3002","title":"Carla \u6d88\u606f \u53c2\u8003"},{"location":"ros_msgs/#carla","text":"\u4ee5\u4e0b \u53c2\u8003 \u5217\u51fa \u4e86 ROS \u6865\u4e2d \u53ef\u7528 \u7684 \u6240\u6709 Carla \u6d88\u606f \u3002 \u5bf9 \u8fd9\u4e9b \u6d88\u606f \u6216 Carla - ROS \u6865 \u7684 \u4efb\u4f55 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u89e3\u51b3 \u3002 Carla \u8bba\u575b","title":"Carla \u6d88\u606f \u53c2\u8003"},{"location":"ros_msgs/#carlaactorinfomsg","text":"ROS \u548c Carla \u4e4b\u95f4 \u5171\u4eab \u6709\u5173 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 parent _ id uint32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6ca1\u6709 \u53ef\u7528 \u7684 \u7236\u7ea7 \uff0c \u5219 \u4e3a ` 0 ` \u3002 type string \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u751f\u6210 \u65f6 \u5206\u914d \u7ed9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89d2\u8272 \u3002","title":"CarlaActorInfo . msg"},{"location":"ros_msgs/#carlaactorlistmsg","text":"\u5305\u542b Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 actors CarlaActorInfo \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002","title":"CarlaActorList . msg"},{"location":"ros_msgs/#carlacollisioneventmsg","text":"\u68c0\u7d22 \u7531 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u78b0\u649e \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 other _ actor _ id uint32 \u68c0\u6d4b \u5230 \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 normal _ impulse geometry _ msgs / Vector3 \u8868\u793a \u78b0\u649e \u4ea7\u751f \u7684 \u8109\u51b2 \u7684 \u77e2\u91cf \u3002","title":"CarlaCollisionEvent . msg"},{"location":"ros_msgs/#carlacontrolmsg","text":"\u8fd9\u4e9b \u6d88\u606f \u5728 \u540c\u6b65 \u3001 \u975e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u4e0b \u63a7\u5236 \u4eff\u771f \u3002 \u5b9a\u4e49 \u7684 \u5e38\u91cf \u88ab \u7ffb\u8bd1 \u4e3a \u6b65\u8fdb \u547d\u4ee4 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 command int8 \u64ad\u653e = 0 \u6682\u505c = 1 STEP _ ONCE = 2","title":"CarlaControl . msg"},{"location":"ros_msgs/#carlaegovehiclecontrolmsg","text":"\u53d1\u9001 \u6d88\u606f \u4ee5 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u548c \u624b\u52a8 \u4e24\u79cd \u6a21\u5f0f \u4e0b \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u63a7\u5236 \u3002 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u5806\u6808 \u5f62\u5f0f \u53d1\u5e03 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 throttle float32 \u63a7\u5236 \u8f66\u8f86 \u6cb9\u95e8 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] steer float32 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 \u65b9\u5411 \u7684 \u6807\u91cf \u503c \uff1a [ - 1.0 , 1.0 ] \u6765 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 brake float32 \u63a7\u5236 \u8f66\u8f86 \u5239\u8f66 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] hand _ brake bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u624b\u5239 \u3002 reverse bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u5411 \u540e \u79fb\u52a8 \u3002 gear int32 \u8f66\u8f86 \u4e2d \u53ef\u7528 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u53d8\u5316 \u3002 manual _ gear _ shift bool \u5982\u679c \u4e3a True \uff0c \u5219 \u5c06 \u4f7f\u7528 gear \u8fdb\u884c \u6362\u6863 \u3002","title":"CarlaEgoVehicleControl . msg"},{"location":"ros_msgs/#carlaegovehicleinfomsg","text":"\u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \uff0c \u4e3b\u8981 \u662f \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u5c5e\u6027 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u5206\u914d \u7ed9 \u8f66\u8f86 \u7684 \u89d2\u8272 \u3002 wheels CarlaEgoVehicleInfoWheel \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 max _ rpm float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u6700\u5927 \u8f6c\u901f \u3002 moi float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3002 damping _ rate _ full _ throttle float32 \u6cb9\u95e8 \u6700\u5927 \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ engaged float32 \u5f53 \u79bb\u5408 \u79bb\u5408\u5668 \u63a5\u5408 \u4e14 \u6cb9\u95e8 \u4e3a \u96f6\u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ disengaged float32 \u5f53 \u6cb9\u95e8 \u4e3a \u96f6\u4e14 \u79bb\u5408 \u79bb\u5408\u5668 \u5206\u79bb \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 use _ gear _ autobox bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u914d\u5907 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u3002 gear _ switch _ time float32 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u5207\u6362 \u65f6\u95f4 \u3002 clutch _ strength float32 \u8f66\u8f86 \u7684 \u79bb\u5408 \u79bb\u5408\u5668 \u5f3a\u5ea6 \u3002 \u4ee5 Kgm ^ 2 / s \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 mass float32 \u8f66\u8f86 \u7684 \u8d28\u91cf \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 drag _ coefficient float32 \u8f66\u8f86 \u5e95\u76d8 \u7684 \u963b\u529b \u7cfb\u6570 \u3002 center _ of _ mass geometry _ msgs / Vector3 \u8f66\u8f86 \u7684 \u8d28\u5fc3 \u3002","title":"CarlaEgoVehicleInfo . msg"},{"location":"ros_msgs/#carlaegovehicleinfowheelmsg","text":"\u6709\u5173 \u8f66\u8f6e \u7684 \u9759\u6001 \u4fe1\u606f \u5c06 \u6210\u4e3a CarlaEgoVehicleInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 tire _ friction float32 \u8868\u793a \u8f66\u8f6e \u6469\u64e6 \u6469\u64e6\u529b \u7684 \u6807\u91cf \u503c \u3002 damping _ rate float32 \u8f66\u8f6e \u7684 \u963b\u5c3c \u7387 \u3002 max _ steer _ angle float32 \u8f66\u8f6e \u53ef\u4ee5 \u8f6c\u5411 \u7684 \u6700\u5927 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 radius float32 \u8f6e\u5b50 \u7684 \u534a\u5f84 \uff0c \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 max _ brake _ torque float32 \u6700\u5927 \u5236\u52a8 \u626d\u77e9 \uff08 Nm \uff09 \u3002 max _ handbrake _ torque float32 \u6700\u5927 \u624b\u5239 \u626d\u77e9 \uff08 Nm \uff09 \u3002 position geometry _ msgs / Vector3 \u8f66\u8f6e \u7684 \u4e16\u754c \u4f4d\u7f6e \u3002","title":"CarlaEgoVehicleInfoWheel . msg"},{"location":"ros_msgs/#carlaegovehiclestatusmsg","text":"\u8f66\u8f86 \u4f5c\u4e3a \u4e16\u754c \u4e0a \u7269\u4f53 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 velocity float32 \u8f66\u8f86 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 acceleration geometry _ msgs / Accel \u8f66\u8f86 \u5f53\u524d \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 orientation geometry _ msgs / Quaternion \u8f66\u8f86 \u7684 \u5f53\u524d \u671d\u5411 \u3002 control CarlaEgoVehicleControl Carla \u62a5\u544a \u7684 \u5f53\u524d \u63a7\u5236 \u503c \u3002","title":"CarlaEgoVehicleStatus . msg"},{"location":"ros_msgs/#carlalaneinvasioneventmsg","text":"\u8fd9\u4e9b \u6d88\u606f \u53d1\u5e03 \u7531 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u8f66\u9053 \u5165\u4fb5 \u3002 \u6700\u540e \u4e00\u6b65 \u4e2d \u68c0\u6d4b \u5230 \u7684 \u5165\u4fb5 \u5c06 \u4f5c\u4e3a \u5177\u6709 \u5e38\u91cf \u5b9a\u4e49 \u7684 \u5217\u8868 \u4f20\u9012 \uff0c \u4ee5 \u8bc6\u522b \u7a7f\u8fc7 \u7684 \u8f66\u9053 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 crossed _ lane _ markings int32 [ ] LANE _ MARKING _ OTHER = 0 LANE _ MARKING _ BROKEN = 1 LANE _ MARKING _ SOLID = 2","title":"CarlaLaneInvasionEvent . msg"},{"location":"ros_msgs/#carlascenariomsg","text":"\u6d4b\u8bd5 \u573a\u666f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 name string \u573a\u666f \u540d\u79f0 \u3002 scenario _ file string \u8be5 \u573a\u666f \u7684 \u6d4b\u8bd5 \u6587\u4ef6 \u3002 destination geometry _ msgs / Pose \u573a\u666f \u7684 \u76ee\u6807 \u4f4d\u7f6e \u3002 target _ speed float64 \u573a\u666f \u671f\u95f4 \u671f\u671b \u7684 \u901f\u5ea6 \u3002","title":"CarlaScenario . msg"},{"location":"ros_msgs/#carlascenariolistmsg","text":"\u8981 \u5728 ScenarioRunner \u4e2d \u8fd0\u884c \u7684 \u6d4b\u8bd5 \u573a\u666f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaScenario [ ] \u573a\u666f \u5217\u8868 \u3002","title":"CarlaScenarioList . msg"},{"location":"ros_msgs/#carlascenariorunnerstatusmsg","text":"ScenarioRunner \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f \u4f7f\u7528 \u5e38\u91cf \u6765 \u7ba1\u7406 \u7684 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status uint8 \u573a\u666f \u7684 \u5f53\u524d \u72b6\u6001 \u4f5c\u4e3a \u679a\u4e3e \uff1a STOPPED = 0 STARTING = 1 RUNNING = 2 SHUTTINGDOWN = 3 ERROR = 4","title":"CarlaScenarioRunnerStatus . msg"},{"location":"ros_msgs/#carlastatusmsg","text":"\u5f53\u524d \u4e16\u754c \u7684 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 frame uint64 \u5f53\u524d \u5e27 \u53f7 \u3002 fixed _ delta _ seconds float32 \u6700\u540e \u4e00\u6b65 \u548c \u5f53\u524d \u6b65 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 synchronous _ mode bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 synchronous _ mode _ running bool \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002","title":"CarlaStatus . msg"},{"location":"ros_msgs/#carlatrafficlightstatusmsg","text":"\u5173\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7684 \u6052\u5b9a \u5b9a\u4e49 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 state uint8 RED = 0 YELLOW = 1 GREEN = 2 OFF = 3 UNKNOWN = 4","title":"CarlaTrafficLightStatus . msg"},{"location":"ros_msgs/#carlatrafficlightstatuslistmsg","text":"\u4ea4\u901a \u4ea4\u901a\u706f \u5217\u8868 \u53ca\u5176 \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaTrafficLightStatus [ ] \u6c47\u603b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u6d88\u606f \u5217\u8868 \u3002","title":"CarlaTrafficLightStatusList . msg"},{"location":"ros_msgs/#carlawalkercontrolmsg","text":"\u5c06 \u8fd0\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u4e8e \u884c\u4eba \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 direction geometry _ msgs / Vector3 \u63a7\u5236 \u884c\u4eba \u65b9\u5411 \u7684 \u5411\u91cf \u3002 speed float32 \u7528\u4e8e \u63a7\u5236 \u884c\u4eba \u901f\u5ea6 \u7684 \u6807\u91cf \u503c \u3002 jump bool \u5982\u679c \u4e3a True \uff0c \u884c\u4eba \u4f1a \u8df3\u8dc3 \u3002","title":"CarlaWalkerControl . msg"},{"location":"ros_msgs/#carlawaypointmsg","text":"\u822a\u70b9 \u5bf9\u8c61 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 road _ id int32 OpenDRIVE \u9053\u8def \u7684 id \u3002 section _ id int32 OpenDRIVE \u90e8\u5206 \u7684 id \uff0c \u57fa\u4e8e \u5b83\u4eec \u6700\u521d \u5b9a\u4e49 \u7684 \u987a\u5e8f \u3002 lane _ id int32 OpenDRIVE \u8f66\u9053 \u7684 id \uff0c \u8be5\u503c \u53ef\u4ee5 \u662f \u6b63\u6570 \u6216 \u8d1f\u6570 \uff0c \u8868\u793a \u5f53\u524d \u8f66\u9053 \u76f8\u5bf9 \u4e8e \u9053\u8def \u7684 \u65b9\u5411 \u3002 is _ junction bool \u5982\u679c \u5f53\u524d \u8def\u70b9 \u4f4d\u4e8e OpenDRIVE \u5b9a\u4e49 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u4e0a \uff0c \u5219 \u4e3a True \u3002 is _ junction geometry _ msgs / Pose \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002","title":"CarlaWaypoint . msg"},{"location":"ros_msgs/#carlaworldinfomsg","text":"\u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 map _ name string \u5f53\u524d \u4e16\u754c \u4e2d \u52a0\u8f7d \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 opendrive string \u5f53\u524d \u5730\u56fe \u7684 . xodr OpenDRIVE \u6587\u4ef6 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \uff09 \u3002","title":"CarlaWorldInfo . msg"},{"location":"ros_msgs/#egovehiclecontrolcurrentmsg","text":"\u8f66\u8f86 \u7684 \u5f53\u524d \u65f6\u95f4 \u3001 \u901f\u5ea6 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u503c \u3002 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u4f7f\u7528 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 time _ sec float32 \u5e94\u7528 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u65f6\u95f4 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002","title":"EgoVehicleControlCurrent . msg"},{"location":"ros_msgs/#egovehiclecontrolinfomsg","text":"\u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u7684 \u5f53\u524d \u503c \u3002 \u8fd9\u4e9b \u6d88\u606f \u5bf9\u4e8e \u8c03\u8bd5 \u5f88 \u6709\u7528 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 restrictions EgoVehicleControlMaxima \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 target EgoVehicleControlTarget \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 current EgoVehicleControlCurrent \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 status EgoVehicleControlStatus \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 output CarlaEgoVehicleControl \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002","title":"EgoVehicleControlInfo . msg"},{"location":"ros_msgs/#egovehiclecontrolmaximamsg","text":"\u63a7\u5236 \u63a7\u5236\u5668 \u9650\u5236 \uff08 \u6781\u9650 \u9650\u503c \u6781\u9650\u503c \uff09 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 max _ steering _ angle float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u8f6c\u5411 \u89d2 \u3002 max _ speed float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u901f\u5ea6 \u3002 max _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 max _ decel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u51cf \u901f\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8m / s ^ 2 min _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5c0f \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u5f53 \u963f\u514b \u963f\u514b\u66fc \u76ee\u6807 \u52a0\u901f \u65f6 \u3002 \u8d85\u8fc7 \u6b64\u503c \uff0c \u8f93\u5165 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u88ab \u63a7\u5236 \u3002 max _ pedal float32 \u6700\u5c0f \u8e0f\u677f \u3002","title":"EgoVehicleControlMaxima . msg"},{"location":"ros_msgs/#egovehiclecontrolstatusmsg","text":"\u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status string \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \u3002 speed _ control _ activation _ count uint8 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ delta float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ target float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ delta float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ target float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 brake _ upper _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002 throttle _ lower _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002","title":"EgoVehicleControlStatus . msg"},{"location":"ros_msgs/#egovehiclecontroltargetmsg","text":"\u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 steering _ angle float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u8f6c\u5411 \u89d2 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 jerk float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6296\u52a8 \u3002","title":"EgoVehicleControlTarget . msg"},{"location":"ros_sensors/","text":"ROS \u6865 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo \u6df1\u5ea6 \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo DVS \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / events sensor _ msgs / PointCloud2 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2 \u96f7\u8fbe \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / Imu \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / NavSatFix \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaCollisionEvent \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaLaneInvasionEvent \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 TF \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f53 \u751f\u6210 \u6b64\u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u5c06 \u53d1\u5e03 \u81ea\u6211 \u8f66\u8f86 \u7684 tf \u6570\u636e \u3002 \u6ce8\u610f \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6d4b\u91cf \u5b8c\u6210 \u540e \u53d1\u5e03 tf \u6570\u636e \u3002 child _ frame _ id \u4e0e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7684 \u524d\u7f00 \u76f8\u5bf9 \u5e94 \u3002 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > nav _ msgs / Odometry \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u3002 \u8f66\u901f \u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > std _ msgs / Float32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u3002 \u5355\u4f4d \uff1a \u7c73 / \u79d2 \u3002 \u5730\u56fe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > std _ msgs / String \u4ee5 \u9501\u5b9a \u4e3b\u9898 \u4e0a \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \u63d0\u4f9b OpenDRIVE \u6620\u5c04 \u3002 \u76ee\u6807 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > derived _ object _ msgs / ObjectArray \u53d1\u5e03 \u6240\u6709 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u5982\u679c \u9644\u52a0 \u5230 \u7236\u7ea7 \uff0c \u5219 \u4e0d \u5305\u542b \u7236\u7ea7 \u3002 \u6807\u8bb0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > visualization _ msgs / Marker \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u4ea4\u901a \u4ea4\u901a\u706f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / status carla _ msgs / CarlaTrafficLightStatusList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u53ca\u5176 \u72b6\u6001 \u7684 \u5217\u8868 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / info carla _ msgs / CarlaTrafficLightInfoList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u9759\u6001 \u4fe1\u606f \uff08 \u4f8b\u5982 \u4f4d\u7f6e \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaActorList \u6240\u6709 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8be5 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u5728 Pose \u548c Twist \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u4e2d \u53d1\u5e03 \u59ff\u52bf \u548c \u901f\u5ea6 \u6765 \u63a7\u5236 \u5176\u6240 \u8fde\u63a5 \u7684 actor \uff08 \u4f8b\u5982 ego _ vehicle \uff09 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u6ce8\u610f \uff1a \u6b64 \u63a7\u5236 \u65b9\u6cd5 \u4e0d \u8003\u8651 \u8f66\u8f86 \u9650\u5236 \u3002 \u5b83 \u5141\u8bb8 \u73b0\u5b9e \u4e16\u754c \u4e2d \u4e0d \u53ef\u80fd \u7684 \u8fd0\u52a8 \uff0c \u4f8b\u5982 \u98de\u884c \u6216 \u65cb\u8f6c \u3002 \u76ee\u524d \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u7528 \u5b8c\u6574 \u7684 \u7ebf\u6027 \u77e2\u91cf \uff0c \u4f46\u4ec5 \u5e94\u7528 \u89d2\u5ea6 \u77e2\u91cf \u7684 \u504f\u822a \u3002 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ transform geometry _ msgs / Pose \u8f6c\u6362 \u4ee5 \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ target _ velocity geometry _ msgs / Twist \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7236\u7ea7 \u7684 \u901f\u5ea6 \uff08 \u89d2\u5ea6 \u548c \u7ebf\u6027 \uff09 \u3002","title":"ROS \u6865 \u4f20\u611f\u5668"},{"location":"ros_sensors/#ros","text":"","title":"ROS \u6865 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_1","text":"","title":"\u53ef\u7528 \u4f20\u611f\u5668"},{"location":"ros_sensors/#rgb","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"RGB \u76f8\u673a"},{"location":"ros_sensors/#_2","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"\u6df1\u5ea6 \u76f8\u673a"},{"location":"ros_sensors/#_3","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a"},{"location":"ros_sensors/#dvs","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / events sensor _ msgs / PointCloud2 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"DVS \u76f8\u673a"},{"location":"ros_sensors/#_4","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2","title":"\u6fc0\u5149\u96f7\u8fbe"},{"location":"ros_sensors/#_5","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2","title":"\u8bed\u4e49 \u6fc0\u5149\u96f7\u8fbe"},{"location":"ros_sensors/#_6","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2","title":"\u96f7\u8fbe"},{"location":"ros_sensors/#_7","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / Imu","title":"\u60ef\u6027 \u6d4b\u91cf \u5355\u5143"},{"location":"ros_sensors/#_8","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / NavSatFix","title":"\u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf"},{"location":"ros_sensors/#_9","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaCollisionEvent","title":"\u78b0\u649e \u4f20\u611f\u5668"},{"location":"ros_sensors/#_10","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaLaneInvasionEvent \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668","title":"\u8f66\u9053 \u5165\u4fb5 \u4f20\u611f\u5668"},{"location":"ros_sensors/#tf","text":"\u5f53 \u751f\u6210 \u6b64\u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u5c06 \u53d1\u5e03 \u81ea\u6211 \u8f66\u8f86 \u7684 tf \u6570\u636e \u3002 \u6ce8\u610f \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6d4b\u91cf \u5b8c\u6210 \u540e \u53d1\u5e03 tf \u6570\u636e \u3002 child _ frame _ id \u4e0e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7684 \u524d\u7f00 \u76f8\u5bf9 \u5e94 \u3002","title":"TF \u4f20\u611f\u5668"},{"location":"ros_sensors/#_11","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > nav _ msgs / Odometry \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u3002","title":"\u91cc\u7a0b\u8ba1 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_12","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > std _ msgs / Float32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u3002 \u5355\u4f4d \uff1a \u7c73 / \u79d2 \u3002","title":"\u8f66\u901f \u8868 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_13","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > std _ msgs / String \u4ee5 \u9501\u5b9a \u4e3b\u9898 \u4e0a \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \u63d0\u4f9b OpenDRIVE \u6620\u5c04 \u3002","title":"\u5730\u56fe \u4f20\u611f\u5668"},{"location":"ros_sensors/#_14","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > derived _ object _ msgs / ObjectArray \u53d1\u5e03 \u6240\u6709 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u5982\u679c \u9644\u52a0 \u5230 \u7236\u7ea7 \uff0c \u5219 \u4e0d \u5305\u542b \u7236\u7ea7 \u3002","title":"\u76ee\u6807 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_15","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > visualization _ msgs / Marker \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316","title":"\u6807\u8bb0 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_16","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / status carla _ msgs / CarlaTrafficLightStatusList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u53ca\u5176 \u72b6\u6001 \u7684 \u5217\u8868 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / info carla _ msgs / CarlaTrafficLightInfoList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u9759\u6001 \u4fe1\u606f \uff08 \u4f8b\u5982 \u4f4d\u7f6e \uff09 \u3002","title":"\u4ea4\u901a\u706f \u4f20\u611f\u5668"},{"location":"ros_sensors/#_17","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaActorList \u6240\u6709 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002","title":"\u53c2\u4e0e\u8005 \u5217\u8868 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_18","text":"\u8be5 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u5728 Pose \u548c Twist \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u4e2d \u53d1\u5e03 \u59ff\u52bf \u548c \u901f\u5ea6 \u6765 \u63a7\u5236 \u5176\u6240 \u8fde\u63a5 \u7684 actor \uff08 \u4f8b\u5982 ego _ vehicle \uff09 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u6ce8\u610f \uff1a \u6b64 \u63a7\u5236 \u65b9\u6cd5 \u4e0d \u8003\u8651 \u8f66\u8f86 \u9650\u5236 \u3002 \u5b83 \u5141\u8bb8 \u73b0\u5b9e \u4e16\u754c \u4e2d \u4e0d \u53ef\u80fd \u7684 \u8fd0\u52a8 \uff0c \u4f8b\u5982 \u98de\u884c \u6216 \u65cb\u8f6c \u3002 \u76ee\u524d \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u7528 \u5b8c\u6574 \u7684 \u7ebf\u6027 \u77e2\u91cf \uff0c \u4f46\u4ec5 \u5e94\u7528 \u89d2\u5ea6 \u77e2\u91cf \u7684 \u504f\u822a \u3002 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ transform geometry _ msgs / Pose \u8f6c\u6362 \u4ee5 \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ target _ velocity geometry _ msgs / Twist \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7236\u7ea7 \u7684 \u901f\u5ea6 \uff08 \u89d2\u5ea6 \u548c \u7ebf\u6027 \uff09 \u3002","title":"\u53c2\u4e0e\u8005 \u63a7\u5236 \u4f20\u611f\u5668"},{"location":"rqt_plugin/","text":"RQT Carla \u63d2\u4ef6 RQT \u63d2\u4ef6 \u662f \u4e00\u4e2a \u7b80\u5355 \u7684 \u754c\u9762 \uff0c \u7528\u4e8e \u6682\u505c \u3001 \u64ad\u653e \u548c \u63a7\u5236 \u4eff\u771f \u7684 \u6b65\u9aa4 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 ROS \u6865\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control \u60a8 \u5c06 \u80fd\u591f \u901a\u8fc7 GUI \u63a7\u5236 \u6b65\u9aa4 \uff1a","title":"RQT Carla \u63d2\u4ef6"},{"location":"rqt_plugin/#rqt-carla","text":"RQT \u63d2\u4ef6 \u662f \u4e00\u4e2a \u7b80\u5355 \u7684 \u754c\u9762 \uff0c \u7528\u4e8e \u6682\u505c \u3001 \u64ad\u653e \u548c \u63a7\u5236 \u4eff\u771f \u7684 \u6b65\u9aa4 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 ROS \u6865\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control \u60a8 \u5c06 \u80fd\u591f \u901a\u8fc7 GUI \u63a7\u5236 \u6b65\u9aa4 \uff1a","title":"RQT Carla \u63d2\u4ef6"},{"location":"run_ros/","text":"ROS \u6865\u5305 carla _ ros _ bridge \u5305\u662f \u8fd0\u884c \u57fa\u672c ROS \u6865\u63a5 \u529f\u80fd \u6240 \u9700 \u7684 \u4e3b\u5305 \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \u5982\u4f55 \u51c6\u5907 ROS \u73af\u5883 \u3001 \u8fd0\u884c ROS \u6865 \u3001 \u5982\u4f55 \u914d\u7f6e \u8bbe\u7f6e \u3001 \u540c\u6b65 \u6a21\u5f0f \u7684 \u4f7f\u7528 \u3001 \u63a7\u5236 \u81ea\u4e3b \u8f66\u8f86 \u4ee5\u53ca \u53ef\u7528 \u7684 \u8ba2\u9605 \u3001 \u51fa\u7248 \u51fa\u7248\u7269 \u548c \u670d\u52a1 \u7684 \u6458\u8981 \u3002 \u8bbe\u7f6e ROS \u73af\u5883 \u51c6\u5907 ROS 1 \u73af\u5883 \u51c6\u5907 ROS 2 \u73af\u5883 \u8fd0\u884c ROS \u6865 \u914d\u7f6e Carla \u8bbe\u7f6e \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS \u6865 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1 \u8bbe\u7f6e ROS \u73af\u5883 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4f7f\u7528 \u5177\u6709 \u901a\u7528 \u63a5\u53e3 \u7684 \u5355\u72ec \u5b9e\u73b0 \u6765 \u652f\u6301 ROS 1 \u548c ROS 2 \u3002 \u5f53 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u60a8 \u5fc5\u987b \u6839\u636e \u60a8 \u4f7f\u7528 \u7684 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a \u51c6\u5907 ROS 1 \u73af\u5883 \uff1a \u8981 \u8fd0\u884c \u7684 \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u901a\u8fc7 Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u8fd8\u662f \u901a\u8fc7 \u6e90 \u6784\u5efa \u5b89\u88c5 ROS \u6865 \u3002 \u60a8 \u8fd8 \u9700\u8981 \u66f4\u6539 Debian \u9009\u9879 \u8def\u5f84 \u4e2d \u7684 ROS \u7248\u672c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash \u51c6\u5907 ROS 2 \u73af\u5883 \uff1a source . / install / setup . bash \u8fd0\u884c ROS \u6865 \u8bbe\u7f6e ROS \u73af\u5883 \u5e76 \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u60a8 \u9700\u8981 \u5148 \u542f\u52a8 carla _ ros _ bridge \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u7136\u540e \u624d\u80fd \u4f7f\u7528 \u4efb\u4f55 \u5176\u4ed6 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py \u8fd8\u6709 \u5176\u4ed6 \u542f\u52a8 \u6587\u4ef6 \u7ed3\u5408 \u4e86 \u4e0a\u8ff0 \u529f\u80fd \uff0c \u5728 \u542f\u52a8 \u5176\u4ed6 \u5305 \u6216 \u63d2\u4ef6 \u7684 \u540c\u65f6 \u542f\u52a8 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch ( ROS 1 ) \u548c carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py ( ROS 2 ) \u6cbf\u7740 carla _ spawn _ objects \u548c carla _ manual _ control \u5305 \u4e00\u8d77 \u542f\u52a8 ROS \u6865 \u3002 \u914d\u7f6e Carla \u8bbe\u7f6e \u914d\u7f6e \u5e94\u8be5 \u5728 \u542f\u52a8 \u6587\u4ef6 \u4e2d \u8bbe\u7f6e \uff0c \u6216\u8005 \u5728 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u6587\u4ef6 \u65f6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \uff0c \u4f8b\u5982 \uff1a roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch passive : = True \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \uff1a use _ sim _ time : \u5e94 \u8bbe\u7f6e \u4e3a True \u4ee5 \u786e\u4fdd ROS \u4f7f\u7528 \u4eff\u771f \u65f6\u95f4 \u800c \u4e0d\u662f \u7cfb\u7edf \u65f6\u95f4 \u3002 \u8be5 \u53c2\u6570 \u5c06 \u4f7f ROS / clock \u4e3b\u9898 \u4e0e Carla \u4eff\u771f \u65f6\u95f4 \u540c\u6b65 \u3002 host and port : \u4f7f\u7528 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 Carla \u7684 \u7f51\u7edc \u8bbe\u7f6e \u3002 timeout : \u7b49\u5f85 \u6210\u529f \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u3002 passive : \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u542f\u7528 \u540e \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u9000\u5c45 \u6b21\u8981 \u5730\u4f4d \uff0c \u800c \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u4e0e \u4e16\u754c \u4ea4\u9053 \u6253\u4ea4\u9053 \u3002 ROS \u6865 \u5c06 \u7b49\u5f85 \u63a5\u6536 \u6765\u81ea \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6240\u6709 \u9884\u671f \u6570\u636e \u3002 synchronous _ mode : \u5982\u679c \u662f false : \u6570\u636e \u5728 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 world . on _ tick ( ) \u548c \u6bcf\u4e2a sensor . listen ( ) \u56de\u8c03 \u65f6 \u8fdb\u884c \u53d1\u5e03 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : ROS \u6865 \u5728 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u4e4b\u524d \u7b49\u5f85 \u6240\u6709 \u9884\u671f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6d88\u606f \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u51cf\u6162 \u6574\u4e2a \u4eff\u771f \u7684 \u901f\u5ea6 \uff0c \u4f46 \u53ef\u4ee5 \u786e\u4fdd \u7ed3\u679c \u7684 \u91cd\u590d \u590d\u6027 \u91cd\u590d\u6027 \u53ef\u91cd\u590d\u6027 \u3002 synchronous _ mode _ wait _ for _ vehicle _ control _ command : \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6682\u505c \u8ba1\u65f6 \u76f4\u5230 \u8f66\u8f86 \u63a7\u5236 \u5b8c\u6210 \u3002 fixed _ delta _ seconds : \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u589e\u91cf \u79d2 \uff09 \u3002 \u5b83 \u5fc5\u987b \u4f4e\u4e8e 0.1 \u3002 \u67e5\u770b \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 ego _ vehicle : \u7528\u4e8e \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 \u89d2\u8272 \u540d\u79f0 \u3002 \u5c06 \u521b\u5efa \u76f8\u5173 \u4e3b\u9898 \uff0c \u4ee5\u4fbf \u80fd\u591f \u901a\u8fc7 ROS \u63a7\u5236 \u8fd9\u4e9b \u8f66\u8f86 \u3002 town : \u4f7f\u7528 \u53ef\u7528 \u7684 Carla \u57ce\u9547 \uff08 \u4f8b\u5982 \u201c town01 \u201d \uff09 \u6216 OpenDRIVE \u6587\u4ef6 \uff08 \u4ee5 . xodr \u7ed3\u5c3e \uff09 \u3002 register _ all _ sensors : \u5982\u679c \u662f false : \u4ec5 \u6ce8\u518c \u6865 \u751f\u6210 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : \u4eff\u771f \u4e2d \u5b58\u5728 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5747 \u5df2 \u6ce8\u518c \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS ROS \u6865 \u9ed8\u8ba4 \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u5b83 \u5c06 \u7b49\u5f85 \u5f53\u524d \u5e27 \u5185 \u9884\u671f \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u4ee5 \u786e\u4fdd \u53ef \u91cd\u73b0 \u7684 \u7ed3\u679c \u3002 \u5f53\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6 \uff0c \u53ea \u5141\u8bb8 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u9664\u975e \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff0c \u5426\u5219 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u662f \u552f\u4e00 \u5141\u8bb8 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 ros - bridge / carla _ ros _ bridge / config / settings . yaml \u4e2d \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u5c06 \u4f7f ROS \u6865 \u540e\u9000 \u4e00\u6b65 \uff0c \u5e76 \u5141\u8bb8 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u6765 \u64cd\u4f5c \u4e16\u754c \u3002 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5fc5\u987b \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5426\u5219 Carla \u5c06 \u51bb\u7ed3 \u3002 \u5982\u679c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4e0d \u5904\u4e8e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff08 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u662f \u552f\u4e00 \u7684 \uff09 \uff0c \u5219 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u5c06 \u6b65\u8fdb \u63a7\u5236 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u7528 \u6d88\u606f \u5411 \u4e3b\u9898 / carla / control \u53d1\u9001 carla _ msgs . CarlaControl \u3002 \u4f7f\u7528 \u63a7\u5236 rqt \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u542f\u52a8 \u4e00\u4e2a \u5177\u6709 \u7b80\u5355 \u754c\u9762 \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 \u7136\u540e \u5b83 \u7528\u4e8e \u7ba1\u7406 \u6b65\u9aa4 \u5e76 \u5728 / carla / control \u4e3b\u9898 \u4e2d \u53d1\u5e03 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 Carla \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u6709 \u4e24\u79cd \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u7684 \u6a21\u5f0f \uff1a \u6b63\u5e38 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd \u8bfb\u53d6 \u547d\u4ee4 \u624b\u52a8 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd _ manual \u8bfb\u53d6 \u547d\u4ee4 \u3002 \u8fd9 \u5141\u8bb8 \u624b\u52a8 \u8986\u76d6 \u8f6f\u4ef6 \u5806\u6808 \u53d1\u5e03 \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / < ROLE NAME > / vehicle _ control _ manual _ override \u6765 \u5728 \u4e24\u79cd \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u3002 \u6709\u5173 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u624b\u52a8 \u63a7\u5236 \u3002 \u8981 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u6d4b\u8bd5 \u8f6c\u5411 \uff1a 1 . \u4f7f\u7528 ego \u8f66\u8f86 \u542f\u52a8 ROS \u6865 \uff1a # 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 2 . \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \uff0c \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ control _ cmd # \u6700\u5927 \u5411\u524d \u6cb9\u95e8 \uff0c \u6700\u5927 \u53f3\u8f6c \u5411\u53f3\u8f6c \u5411 # for ros1 rostopic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 # for ros2 ros2 topic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 \u5f53\u524d \u8f66\u8f86 \u7684 \u72b6\u6001 \u53ef\u4ee5 \u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ status \u83b7\u5f97 \u3002 \u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \u53ef\u4ee5 \u901a\u8fc7 / carla / < ROLE NAME > / vehicle _ info \u63a5\u6536 . \u53ef\u4ee5 \u4f7f\u7528 AckermannDrive \u6d88\u606f \u6765 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u5305\u6765 \u5b9e\u73b0 \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u522b \u63cf\u8ff0 / carla / debug _ marker \u53ef\u89c6 \u53ef\u89c6\u5316 _ msgs / MarkerArray \u5728 Carla \u4e16\u754c \u4e2d \u7ed8\u5236 \u6807\u8bb0 \u3002 / carla / weather _ control carla _ msgs / CarlaWeatherParameters \u8bbe\u7f6e Carla \u5929\u6c14 \u53c2\u6570 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 \u7b14\u8bb0 \u4f7f\u7528 debug _ marker \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u6807\u8bb0 \u53ef\u80fd \u4f1a \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u5e03 \u7684 \u6570\u636e \u3002 \u652f\u6301 \u7684 \u6807\u8bb0 \u5305\u62ec \uff1a \u7bad\u5934 \uff08 \u7531 \u4e24\u4e2a \u70b9 \u6307\u5b9a \uff09 \u3001 \u70b9 \u3001 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u548c \u7ebf\u6761 \u3002 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / world _ info carla _ msgs / CarlaWorldInfo \u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 / rosout rosgraph _ msgs / Log ROS \u65e5\u5fd7 \u8bb0\u5f55 \u3002 \u670d\u52a1 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / destroy _ object carla _ msgs / DestroyObject . srv \u6467\u6bc1 \u4e00\u4e2a \u7269\u4f53 / carla / get _ blueprints carla _ msgs / GetBlueprints . srv \u83b7\u53d6 \u84dd\u56fe / carla / spawn _ object carla _ msgs / SpawnObject . srv \u751f\u6210 \u4e00\u4e2a \u5bf9\u8c61","title":"ROS \u6865\u5305"},{"location":"run_ros/#ros","text":"carla _ ros _ bridge \u5305\u662f \u8fd0\u884c \u57fa\u672c ROS \u6865\u63a5 \u529f\u80fd \u6240 \u9700 \u7684 \u4e3b\u5305 \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \u5982\u4f55 \u51c6\u5907 ROS \u73af\u5883 \u3001 \u8fd0\u884c ROS \u6865 \u3001 \u5982\u4f55 \u914d\u7f6e \u8bbe\u7f6e \u3001 \u540c\u6b65 \u6a21\u5f0f \u7684 \u4f7f\u7528 \u3001 \u63a7\u5236 \u81ea\u4e3b \u8f66\u8f86 \u4ee5\u53ca \u53ef\u7528 \u7684 \u8ba2\u9605 \u3001 \u51fa\u7248 \u51fa\u7248\u7269 \u548c \u670d\u52a1 \u7684 \u6458\u8981 \u3002 \u8bbe\u7f6e ROS \u73af\u5883 \u51c6\u5907 ROS 1 \u73af\u5883 \u51c6\u5907 ROS 2 \u73af\u5883 \u8fd0\u884c ROS \u6865 \u914d\u7f6e Carla \u8bbe\u7f6e \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS \u6865 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1","title":"ROS \u6865\u5305"},{"location":"run_ros/#ros_1","text":"ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4f7f\u7528 \u5177\u6709 \u901a\u7528 \u63a5\u53e3 \u7684 \u5355\u72ec \u5b9e\u73b0 \u6765 \u652f\u6301 ROS 1 \u548c ROS 2 \u3002 \u5f53 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u60a8 \u5fc5\u987b \u6839\u636e \u60a8 \u4f7f\u7528 \u7684 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a","title":"\u8bbe\u7f6e ROS \u73af\u5883"},{"location":"run_ros/#ros-1","text":"\u8981 \u8fd0\u884c \u7684 \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u901a\u8fc7 Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u8fd8\u662f \u901a\u8fc7 \u6e90 \u6784\u5efa \u5b89\u88c5 ROS \u6865 \u3002 \u60a8 \u8fd8 \u9700\u8981 \u66f4\u6539 Debian \u9009\u9879 \u8def\u5f84 \u4e2d \u7684 ROS \u7248\u672c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash","title":"\u51c6\u5907 ROS 1 \u73af\u5883 \uff1a"},{"location":"run_ros/#ros-2","text":"source . / install / setup . bash","title":"\u51c6\u5907 ROS 2 \u73af\u5883 \uff1a"},{"location":"run_ros/#ros_2","text":"\u8bbe\u7f6e ROS \u73af\u5883 \u5e76 \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u60a8 \u9700\u8981 \u5148 \u542f\u52a8 carla _ ros _ bridge \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u7136\u540e \u624d\u80fd \u4f7f\u7528 \u4efb\u4f55 \u5176\u4ed6 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py \u8fd8\u6709 \u5176\u4ed6 \u542f\u52a8 \u6587\u4ef6 \u7ed3\u5408 \u4e86 \u4e0a\u8ff0 \u529f\u80fd \uff0c \u5728 \u542f\u52a8 \u5176\u4ed6 \u5305 \u6216 \u63d2\u4ef6 \u7684 \u540c\u65f6 \u542f\u52a8 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch ( ROS 1 ) \u548c carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py ( ROS 2 ) \u6cbf\u7740 carla _ spawn _ objects \u548c carla _ manual _ control \u5305 \u4e00\u8d77 \u542f\u52a8 ROS \u6865 \u3002","title":"\u8fd0\u884c ROS \u6865"},{"location":"run_ros/#carla","text":"\u914d\u7f6e \u5e94\u8be5 \u5728 \u542f\u52a8 \u6587\u4ef6 \u4e2d \u8bbe\u7f6e \uff0c \u6216\u8005 \u5728 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u6587\u4ef6 \u65f6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \uff0c \u4f8b\u5982 \uff1a roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch passive : = True \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \uff1a use _ sim _ time : \u5e94 \u8bbe\u7f6e \u4e3a True \u4ee5 \u786e\u4fdd ROS \u4f7f\u7528 \u4eff\u771f \u65f6\u95f4 \u800c \u4e0d\u662f \u7cfb\u7edf \u65f6\u95f4 \u3002 \u8be5 \u53c2\u6570 \u5c06 \u4f7f ROS / clock \u4e3b\u9898 \u4e0e Carla \u4eff\u771f \u65f6\u95f4 \u540c\u6b65 \u3002 host and port : \u4f7f\u7528 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 Carla \u7684 \u7f51\u7edc \u8bbe\u7f6e \u3002 timeout : \u7b49\u5f85 \u6210\u529f \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u3002 passive : \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u542f\u7528 \u540e \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u9000\u5c45 \u6b21\u8981 \u5730\u4f4d \uff0c \u800c \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u4e0e \u4e16\u754c \u4ea4\u9053 \u6253\u4ea4\u9053 \u3002 ROS \u6865 \u5c06 \u7b49\u5f85 \u63a5\u6536 \u6765\u81ea \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6240\u6709 \u9884\u671f \u6570\u636e \u3002 synchronous _ mode : \u5982\u679c \u662f false : \u6570\u636e \u5728 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 world . on _ tick ( ) \u548c \u6bcf\u4e2a sensor . listen ( ) \u56de\u8c03 \u65f6 \u8fdb\u884c \u53d1\u5e03 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : ROS \u6865 \u5728 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u4e4b\u524d \u7b49\u5f85 \u6240\u6709 \u9884\u671f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6d88\u606f \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u51cf\u6162 \u6574\u4e2a \u4eff\u771f \u7684 \u901f\u5ea6 \uff0c \u4f46 \u53ef\u4ee5 \u786e\u4fdd \u7ed3\u679c \u7684 \u91cd\u590d \u590d\u6027 \u91cd\u590d\u6027 \u53ef\u91cd\u590d\u6027 \u3002 synchronous _ mode _ wait _ for _ vehicle _ control _ command : \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6682\u505c \u8ba1\u65f6 \u76f4\u5230 \u8f66\u8f86 \u63a7\u5236 \u5b8c\u6210 \u3002 fixed _ delta _ seconds : \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u589e\u91cf \u79d2 \uff09 \u3002 \u5b83 \u5fc5\u987b \u4f4e\u4e8e 0.1 \u3002 \u67e5\u770b \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 ego _ vehicle : \u7528\u4e8e \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 \u89d2\u8272 \u540d\u79f0 \u3002 \u5c06 \u521b\u5efa \u76f8\u5173 \u4e3b\u9898 \uff0c \u4ee5\u4fbf \u80fd\u591f \u901a\u8fc7 ROS \u63a7\u5236 \u8fd9\u4e9b \u8f66\u8f86 \u3002 town : \u4f7f\u7528 \u53ef\u7528 \u7684 Carla \u57ce\u9547 \uff08 \u4f8b\u5982 \u201c town01 \u201d \uff09 \u6216 OpenDRIVE \u6587\u4ef6 \uff08 \u4ee5 . xodr \u7ed3\u5c3e \uff09 \u3002 register _ all _ sensors : \u5982\u679c \u662f false : \u4ec5 \u6ce8\u518c \u6865 \u751f\u6210 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : \u4eff\u771f \u4e2d \u5b58\u5728 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5747 \u5df2 \u6ce8\u518c \u3002","title":"\u914d\u7f6e Carla \u8bbe\u7f6e"},{"location":"run_ros/#ros_3","text":"ROS \u6865 \u9ed8\u8ba4 \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u5b83 \u5c06 \u7b49\u5f85 \u5f53\u524d \u5e27 \u5185 \u9884\u671f \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u4ee5 \u786e\u4fdd \u53ef \u91cd\u73b0 \u7684 \u7ed3\u679c \u3002 \u5f53\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6 \uff0c \u53ea \u5141\u8bb8 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u9664\u975e \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff0c \u5426\u5219 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u662f \u552f\u4e00 \u5141\u8bb8 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 ros - bridge / carla _ ros _ bridge / config / settings . yaml \u4e2d \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u5c06 \u4f7f ROS \u6865 \u540e\u9000 \u4e00\u6b65 \uff0c \u5e76 \u5141\u8bb8 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u6765 \u64cd\u4f5c \u4e16\u754c \u3002 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5fc5\u987b \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5426\u5219 Carla \u5c06 \u51bb\u7ed3 \u3002 \u5982\u679c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4e0d \u5904\u4e8e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff08 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u662f \u552f\u4e00 \u7684 \uff09 \uff0c \u5219 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u5c06 \u6b65\u8fdb \u63a7\u5236 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u7528 \u6d88\u606f \u5411 \u4e3b\u9898 / carla / control \u53d1\u9001 carla _ msgs . CarlaControl \u3002 \u4f7f\u7528 \u63a7\u5236 rqt \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u542f\u52a8 \u4e00\u4e2a \u5177\u6709 \u7b80\u5355 \u754c\u9762 \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 \u7136\u540e \u5b83 \u7528\u4e8e \u7ba1\u7406 \u6b65\u9aa4 \u5e76 \u5728 / carla / control \u4e3b\u9898 \u4e2d \u53d1\u5e03 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 Carla \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control","title":"\u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS"},{"location":"run_ros/#_1","text":"\u6709 \u4e24\u79cd \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u7684 \u6a21\u5f0f \uff1a \u6b63\u5e38 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd \u8bfb\u53d6 \u547d\u4ee4 \u624b\u52a8 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd _ manual \u8bfb\u53d6 \u547d\u4ee4 \u3002 \u8fd9 \u5141\u8bb8 \u624b\u52a8 \u8986\u76d6 \u8f6f\u4ef6 \u5806\u6808 \u53d1\u5e03 \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / < ROLE NAME > / vehicle _ control _ manual _ override \u6765 \u5728 \u4e24\u79cd \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u3002 \u6709\u5173 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u624b\u52a8 \u63a7\u5236 \u3002 \u8981 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u6d4b\u8bd5 \u8f6c\u5411 \uff1a 1 . \u4f7f\u7528 ego \u8f66\u8f86 \u542f\u52a8 ROS \u6865 \uff1a # 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 2 . \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \uff0c \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ control _ cmd # \u6700\u5927 \u5411\u524d \u6cb9\u95e8 \uff0c \u6700\u5927 \u53f3\u8f6c \u5411\u53f3\u8f6c \u5411 # for ros1 rostopic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 # for ros2 ros2 topic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 \u5f53\u524d \u8f66\u8f86 \u7684 \u72b6\u6001 \u53ef\u4ee5 \u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ status \u83b7\u5f97 \u3002 \u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \u53ef\u4ee5 \u901a\u8fc7 / carla / < ROLE NAME > / vehicle _ info \u63a5\u6536 . \u53ef\u4ee5 \u4f7f\u7528 AckermannDrive \u6d88\u606f \u6765 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u5305\u6765 \u5b9e\u73b0 \u3002","title":"\u81ea\u6211 \u8f66\u8f86 \u63a7\u5236"},{"location":"run_ros/#ros_4","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"run_ros/#_2","text":"\u4e3b\u9898 \u7c7b\u522b \u63cf\u8ff0 / carla / debug _ marker \u53ef\u89c6 \u53ef\u89c6\u5316 _ msgs / MarkerArray \u5728 Carla \u4e16\u754c \u4e2d \u7ed8\u5236 \u6807\u8bb0 \u3002 / carla / weather _ control carla _ msgs / CarlaWeatherParameters \u8bbe\u7f6e Carla \u5929\u6c14 \u53c2\u6570 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 \u7b14\u8bb0 \u4f7f\u7528 debug _ marker \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u6807\u8bb0 \u53ef\u80fd \u4f1a \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u5e03 \u7684 \u6570\u636e \u3002 \u652f\u6301 \u7684 \u6807\u8bb0 \u5305\u62ec \uff1a \u7bad\u5934 \uff08 \u7531 \u4e24\u4e2a \u70b9 \u6307\u5b9a \uff09 \u3001 \u70b9 \u3001 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u548c \u7ebf\u6761 \u3002","title":"\u8ba2\u9605"},{"location":"run_ros/#_3","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / world _ info carla _ msgs / CarlaWorldInfo \u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 / rosout rosgraph _ msgs / Log ROS \u65e5\u5fd7 \u8bb0\u5f55 \u3002","title":"\u53d1\u5e03"},{"location":"run_ros/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / destroy _ object carla _ msgs / DestroyObject . srv \u6467\u6bc1 \u4e00\u4e2a \u7269\u4f53 / carla / get _ blueprints carla _ msgs / GetBlueprints . srv \u83b7\u53d6 \u84dd\u56fe / carla / spawn _ object carla _ msgs / SpawnObject . srv \u751f\u6210 \u4e00\u4e2a \u5bf9\u8c61","title":"\u670d\u52a1"},{"location":"rviz_plugin/","text":"RVIZ Carla \u63d2\u4ef6 RVIZ \u63d2\u4ef6 \u63d0\u4f9b \u4e86 \u57fa\u4e8e RVIZ ROS \u5305 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 \u3002 \u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865 RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1 \u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865 RVIZ \u63d2\u4ef6 \u9700\u8981 \u4e00\u4e2a \u540d\u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8981 \u67e5\u770b ROS \u6865 \u4e0e RVIZ \u914d\u5408 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u8bf7 \u5728 \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a 1 . \u5728 \u542f\u7528 RVIZ \u7684 \u60c5\u51b5 \u4e0b \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u542f\u52a8 RVIZ \uff1a # ROS 1 rosrun rviz rviz # ROS 2 ros2 run rviz2 rviz2 2 . \u4f7f\u7528 carla _ spawn _ objects \u5305 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u4f7f\u7528 carla _ manual _ control \u5305 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6309\u4e0b B \u53ef \u542f\u7528 \u624b\u52a8 \u8f6c\u5411 \uff09 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd \u81ea\u6211 \u8f66\u8f86 \u72b6\u6001 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f66\u8f86 \u4f4d\u7f6e \u548c \u63a7\u5236 \u3002 \u5411 \u5176\u4ed6 \u8282\u70b9 \u63d0\u4f9b RVIZ \u89c6\u56fe \u59ff\u52bf - \u8fde\u63a5 actor . pseudo . control \u5230 \u76f8\u673a \u540e \uff0c \u901a\u8fc7 \u53d1\u5e03 \u59ff\u52bf \u6d88\u606f \u5728 Carla \u4e16\u754c \u4e2d \u79fb\u52a8 \u76f8\u673a \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 RGB \u3001 LIDAR \u3001 \u6df1\u5ea6 \u3001 DVS \u548c \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4fe1\u606f \u3002 \u6267\u884c \u573a\u666f - \u4f7f\u7528 carla _ ros _ scenario _ runner \u5305 \u89e6\u53d1 \u573a\u666f \u3002 \u64ad\u653e / \u6682\u505c \u4eff\u771f - \u5982\u679c \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \uff0c \u60a8 \u53ef\u4ee5 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u3002 \u624b\u52a8 \u8986\u76d6 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 - \u4f7f\u7528 RVIZ Visualization Tutorials \u53ef\u89c6 \u53ef\u89c6\u5316 \u6559\u7a0b \u4e2d \u7684 \u9a71\u52a8 \u5c0f \u90e8\u4ef6 \u548c \u4ece \u626d\u66f2 \u8f6c\u6362 \u4e3a \u8f66\u8f86 \u63a7\u5236 \u7684 \u8282\u70b9 \uff0c \u901a\u8fc7 \u9f20\u6807 \u9a7e\u9a76 \u8f66\u8f86 \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 Topic Type Description / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / vehicle _ status carla _ msgs / CarlaEgoVehicleStatus \u663e\u793a \u672c\u8f66 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / odometry nav _ msgs / Odometry \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5f53\u524d \u59ff\u6001 / scenario _ runner / status carla _ ros _ scenario _ runner _ types / CarlaScenarioRunnerStatus \u53ef\u89c6 \u53ef\u89c6\u5316 \u573a\u666f \u8fd0\u884c \u72b6\u6001 / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList \u63d0\u4f9b \u8981 \u6267\u884c \u7684 \u573a\u666f \u5217\u8868 \uff08 \u5728 \u7ec4\u5408 \u6846\u4e2d \u7981\u7528 \uff09 \u53d1\u5e03 Topic Type Description / carla / control carla _ msgs / CarlaControl \u64ad\u653e / \u6682\u505c / \u6b65\u8fdb Carla / carla / ego _ vehicle / spectator _ pose geometry _ msgs / PoseStamped \u53d1\u5e03 RVIZ \u76f8\u673a \u89c6\u56fe \u7684 \u5f53\u524d \u59ff\u6001 / carla / ego _ vehicle / vehicle _ control _ manual _ override std _ msgs / Bool \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u63a7\u5236 \u8986\u76d6 / carla / ego _ vehicle / twist geometry _ msgs / Twist \u901a\u8fc7 \u9f20\u6807 \u521b\u5efa \u7684 \u626d\u66f2 \u547d\u4ee4 \u670d\u52a1 Topic Type Description / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / ExecuteScenario \u6267\u884c \u9009\u5b9a \u7684 \u573a\u666f","title":"RVIZ Carla \u63d2\u4ef6"},{"location":"rviz_plugin/#rviz-carla","text":"RVIZ \u63d2\u4ef6 \u63d0\u4f9b \u4e86 \u57fa\u4e8e RVIZ ROS \u5305 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 \u3002 \u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865 RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1","title":"RVIZ Carla \u63d2\u4ef6"},{"location":"rviz_plugin/#rviz-ros","text":"RVIZ \u63d2\u4ef6 \u9700\u8981 \u4e00\u4e2a \u540d\u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8981 \u67e5\u770b ROS \u6865 \u4e0e RVIZ \u914d\u5408 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u8bf7 \u5728 \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a 1 . \u5728 \u542f\u7528 RVIZ \u7684 \u60c5\u51b5 \u4e0b \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u542f\u52a8 RVIZ \uff1a # ROS 1 rosrun rviz rviz # ROS 2 ros2 run rviz2 rviz2 2 . \u4f7f\u7528 carla _ spawn _ objects \u5305 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u4f7f\u7528 carla _ manual _ control \u5305 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6309\u4e0b B \u53ef \u542f\u7528 \u624b\u52a8 \u8f6c\u5411 \uff09 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py","title":"\u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865"},{"location":"rviz_plugin/#rviz","text":"\u81ea\u6211 \u8f66\u8f86 \u72b6\u6001 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f66\u8f86 \u4f4d\u7f6e \u548c \u63a7\u5236 \u3002 \u5411 \u5176\u4ed6 \u8282\u70b9 \u63d0\u4f9b RVIZ \u89c6\u56fe \u59ff\u52bf - \u8fde\u63a5 actor . pseudo . control \u5230 \u76f8\u673a \u540e \uff0c \u901a\u8fc7 \u53d1\u5e03 \u59ff\u52bf \u6d88\u606f \u5728 Carla \u4e16\u754c \u4e2d \u79fb\u52a8 \u76f8\u673a \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 RGB \u3001 LIDAR \u3001 \u6df1\u5ea6 \u3001 DVS \u548c \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4fe1\u606f \u3002 \u6267\u884c \u573a\u666f - \u4f7f\u7528 carla _ ros _ scenario _ runner \u5305 \u89e6\u53d1 \u573a\u666f \u3002 \u64ad\u653e / \u6682\u505c \u4eff\u771f - \u5982\u679c \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \uff0c \u60a8 \u53ef\u4ee5 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u3002 \u624b\u52a8 \u8986\u76d6 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 - \u4f7f\u7528 RVIZ Visualization Tutorials \u53ef\u89c6 \u53ef\u89c6\u5316 \u6559\u7a0b \u4e2d \u7684 \u9a71\u52a8 \u5c0f \u90e8\u4ef6 \u548c \u4ece \u626d\u66f2 \u8f6c\u6362 \u4e3a \u8f66\u8f86 \u63a7\u5236 \u7684 \u8282\u70b9 \uff0c \u901a\u8fc7 \u9f20\u6807 \u9a7e\u9a76 \u8f66\u8f86 \u3002","title":"RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd"},{"location":"rviz_plugin/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"rviz_plugin/#_1","text":"Topic Type Description / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / vehicle _ status carla _ msgs / CarlaEgoVehicleStatus \u663e\u793a \u672c\u8f66 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / odometry nav _ msgs / Odometry \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5f53\u524d \u59ff\u6001 / scenario _ runner / status carla _ ros _ scenario _ runner _ types / CarlaScenarioRunnerStatus \u53ef\u89c6 \u53ef\u89c6\u5316 \u573a\u666f \u8fd0\u884c \u72b6\u6001 / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList \u63d0\u4f9b \u8981 \u6267\u884c \u7684 \u573a\u666f \u5217\u8868 \uff08 \u5728 \u7ec4\u5408 \u6846\u4e2d \u7981\u7528 \uff09","title":"\u8ba2\u9605"},{"location":"rviz_plugin/#_2","text":"Topic Type Description / carla / control carla _ msgs / CarlaControl \u64ad\u653e / \u6682\u505c / \u6b65\u8fdb Carla / carla / ego _ vehicle / spectator _ pose geometry _ msgs / PoseStamped \u53d1\u5e03 RVIZ \u76f8\u673a \u89c6\u56fe \u7684 \u5f53\u524d \u59ff\u6001 / carla / ego _ vehicle / vehicle _ control _ manual _ override std _ msgs / Bool \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u63a7\u5236 \u8986\u76d6 / carla / ego _ vehicle / twist geometry _ msgs / Twist \u901a\u8fc7 \u9f20\u6807 \u521b\u5efa \u7684 \u626d\u66f2 \u547d\u4ee4","title":"\u53d1\u5e03"},{"location":"rviz_plugin/#_3","text":"Topic Type Description / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / ExecuteScenario \u6267\u884c \u9009\u5b9a \u7684 \u573a\u666f","title":"\u670d\u52a1"},{"location":"scenario_runner/","text":"Carla \u7684 \u573a\u666f \u8fd0\u884c \u5668 ScenarioRunner \u662f \u4e00\u4e2a \u5141\u8bb8 Carla \u6a21\u62df \u6a21\u62df\u5668 \u5b9a\u4e49 \u548c \u6267\u884c \u4ea4\u901a \u573a\u666f \u7684 \u6a21\u5757 \u3002 \u53ef\u4ee5 \u901a\u8fc7 Python \u63a5\u53e3 \u6216 \u4f7f\u7528 OpenSCENARIO \u6807\u51c6 \u6765 \u5b9a\u4e49 \u573a\u666f \u3002 \u6700\u65b0 \u7248\u672c \u7684 scenario _ runner \u8fd8 \u652f\u6301 \u5373\u5c06 \u63a8\u51fa \u7684 OpenSCENARIO \u6807\u51c6 \u548c OpenSCENARIO 2.0 \u6807\u51c6 \u3002 ScenarioRunner \u8fd8 \u53ef \u7528\u4e8e \u901a\u8fc7 \u8f7b\u677e \u521b\u5efa \u590d\u6742 \u7684 \u4ea4\u901a \u573a\u666f \u548c \u4f9b \u4ee3\u7406 \u5bfc\u822a \u7684 \u8def\u7ebf \u6765 \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u7684 \u8bc4\u4f30 \u505a\u597d \u51c6\u5907 \u3002 \u8fd9\u4e9b \u7ed3\u679c \u53ef\u4ee5 \u5728 Carla \u6392\u884c \u6392\u884c\u699c \u4e0a \u8fdb\u884c \u9a8c\u8bc1 \u548c \u5171\u4eab \uff0c Carla \u6392\u884c \u6392\u884c\u699c \u662f \u4e00\u4e2a \u5f00\u653e \u5e73\u53f0 \u5f00\u653e\u5e73\u53f0 \uff0c \u4f9b \u793e\u533a \u516c\u5e73 \u5730 \u6bd4\u8f83 \u4ed6\u4eec \u7684 \u8fdb\u5ea6 \uff0c \u5728 \u73b0\u5b9e \u7684 \u4ea4\u901a \u60c5\u51b5 \u4e0b \u8bc4\u4f30 \u4ee3\u7406 \u3002 Carla \u8bba\u575b \u6709 \u4e00\u4e2a \u5173\u4e8e ScenarioRunner \u7684 \u4e13\u95e8 \u7248\u5757 \uff0c \u4f9b \u7528\u6237 \u53d1\u8868 \u5728 \u9605\u8bfb \u672c \u6587\u6863 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u51fa\u73b0 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u5feb\u901f \u5f00\u59cb \u5165\u95e8 \u6587\u6863 - \u6709\u5173 \u5982\u4f55 \u4e0b\u8f7d \u548c \u542f\u52a8 ScenarioRunner \u7684 \u6559\u7a0b \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u6709\u5173 \u5982\u4f55 \u8fd0\u884c \u4e0d\u540c \u7c7b\u578b \u573a\u666f \u7684 \u7b80\u8981 \u6559\u7a0b \u3002 \u521b\u5efa \u65b0 \u573a\u666f \u2014 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 ScenarioRunner \u521b\u5efa \u65b0 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u6307\u6807 \u6a21\u5757 \u2014 \u6307\u6807 \u6a21\u5757 \u7684 \u8bf4\u660e \u3002 \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898 \u3002 \u53d1\u884c \u8bf4\u660e \u2014 \u6bcf\u4e2a \u7248\u672c \u5217\u51fa \u7684 \u529f\u80fd \u3001 \u4fee\u590d \u548c \u5176\u4ed6 \u66f4\u6539 \u3002 \u53c2\u8003 \u573a\u666f \u5217\u8868 \u2014 ScenarioRunner \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u573a\u666f \u3002 OpenScenario \u652f\u6301 \u2014 OpenSCENARIO \u529f\u80fd \u7684 \u652f\u6301 \u72b6\u6001 \u3002 \u8d21\u732e \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u3002 \u8d21\u732e \u6307\u5357 \u2014 \u4e3a ScenarioRunner \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u3002","title":"Scenario runner"},{"location":"scenario_runner/#carla","text":"ScenarioRunner \u662f \u4e00\u4e2a \u5141\u8bb8 Carla \u6a21\u62df \u6a21\u62df\u5668 \u5b9a\u4e49 \u548c \u6267\u884c \u4ea4\u901a \u573a\u666f \u7684 \u6a21\u5757 \u3002 \u53ef\u4ee5 \u901a\u8fc7 Python \u63a5\u53e3 \u6216 \u4f7f\u7528 OpenSCENARIO \u6807\u51c6 \u6765 \u5b9a\u4e49 \u573a\u666f \u3002 \u6700\u65b0 \u7248\u672c \u7684 scenario _ runner \u8fd8 \u652f\u6301 \u5373\u5c06 \u63a8\u51fa \u7684 OpenSCENARIO \u6807\u51c6 \u548c OpenSCENARIO 2.0 \u6807\u51c6 \u3002 ScenarioRunner \u8fd8 \u53ef \u7528\u4e8e \u901a\u8fc7 \u8f7b\u677e \u521b\u5efa \u590d\u6742 \u7684 \u4ea4\u901a \u573a\u666f \u548c \u4f9b \u4ee3\u7406 \u5bfc\u822a \u7684 \u8def\u7ebf \u6765 \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u7684 \u8bc4\u4f30 \u505a\u597d \u51c6\u5907 \u3002 \u8fd9\u4e9b \u7ed3\u679c \u53ef\u4ee5 \u5728 Carla \u6392\u884c \u6392\u884c\u699c \u4e0a \u8fdb\u884c \u9a8c\u8bc1 \u548c \u5171\u4eab \uff0c Carla \u6392\u884c \u6392\u884c\u699c \u662f \u4e00\u4e2a \u5f00\u653e \u5e73\u53f0 \u5f00\u653e\u5e73\u53f0 \uff0c \u4f9b \u793e\u533a \u516c\u5e73 \u5730 \u6bd4\u8f83 \u4ed6\u4eec \u7684 \u8fdb\u5ea6 \uff0c \u5728 \u73b0\u5b9e \u7684 \u4ea4\u901a \u60c5\u51b5 \u4e0b \u8bc4\u4f30 \u4ee3\u7406 \u3002 Carla \u8bba\u575b \u6709 \u4e00\u4e2a \u5173\u4e8e ScenarioRunner \u7684 \u4e13\u95e8 \u7248\u5757 \uff0c \u4f9b \u7528\u6237 \u53d1\u8868 \u5728 \u9605\u8bfb \u672c \u6587\u6863 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u51fa\u73b0 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"Carla \u7684 \u573a\u666f \u8fd0\u884c \u5668"},{"location":"scenario_runner/#_1","text":"\u5165\u95e8 \u6587\u6863 - \u6709\u5173 \u5982\u4f55 \u4e0b\u8f7d \u548c \u542f\u52a8 ScenarioRunner \u7684 \u6559\u7a0b \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u6709\u5173 \u5982\u4f55 \u8fd0\u884c \u4e0d\u540c \u7c7b\u578b \u573a\u666f \u7684 \u7b80\u8981 \u6559\u7a0b \u3002 \u521b\u5efa \u65b0 \u573a\u666f \u2014 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 ScenarioRunner \u521b\u5efa \u65b0 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u6307\u6807 \u6a21\u5757 \u2014 \u6307\u6807 \u6a21\u5757 \u7684 \u8bf4\u660e \u3002 \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898 \u3002 \u53d1\u884c \u8bf4\u660e \u2014 \u6bcf\u4e2a \u7248\u672c \u5217\u51fa \u7684 \u529f\u80fd \u3001 \u4fee\u590d \u548c \u5176\u4ed6 \u66f4\u6539 \u3002","title":"\u5feb\u901f \u5f00\u59cb"},{"location":"scenario_runner/#_2","text":"\u573a\u666f \u5217\u8868 \u2014 ScenarioRunner \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u573a\u666f \u3002 OpenScenario \u652f\u6301 \u2014 OpenSCENARIO \u529f\u80fd \u7684 \u652f\u6301 \u72b6\u6001 \u3002","title":"\u53c2\u8003"},{"location":"scenario_runner/#_3","text":"\u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u3002 \u8d21\u732e \u6307\u5357 \u2014 \u4e3a ScenarioRunner \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u3002","title":"\u8d21\u732e"},{"location":"start_introduction/","text":"Carla \u91cd\u8981 \u672c \u6587\u6863 \u53c2\u8003 \u6700\u65b0 \u7248\u672c \u7684 Carla \u3002 \u6709\u5173 \u4ee5\u524d \u7248\u672c \u7684 \u6587\u6863 \uff0c \u8bf7 \u5728 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u770b\u5230 \u6b64 \u6309\u94ae \u7684 \u4f4d\u7f6e \u9009\u62e9 \u6240 \u9700 \u7684 \u7248\u672c \uff1a Carla \u662f \u4e00\u6b3e \u5f00\u6e90 \u81ea\u52a8 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5b83 \u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u6784\u5efa \u7684 \uff0c \u4f5c\u4e3a \u4e00\u4e2a \u6a21\u5757 \u6a21\u5757\u5316 \u4e14 \u7075\u6d3b \u7684 API \uff0c \u53ef\u4ee5 \u89e3\u51b3 \u81ea\u52a8 \u9a7e\u9a76 \u95ee\u9898 \u4e2d \u6d89\u53ca \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u4efb\u52a1 \u3002 Carla \u7684 \u4e3b\u8981 \u76ee\u6807 \u4e4b\u4e00 \u662f \u5e2e\u52a9 \u81ea\u52a8 \u9a7e\u9a76 \u7814\u53d1 \u6c11\u4e3b \u6c11\u4e3b\u5316 \uff0c \u6210\u4e3a \u7528\u6237 \u53ef\u4ee5 \u8f7b\u677e \u8bbf\u95ee \u548c \u5b9a\u5236 \u7684 \u5de5\u5177 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5fc5\u987b \u6ee1\u8db3 \u4e00\u822c \u9a7e\u9a76 \u95ee\u9898 \u4e2d \u4e0d\u540c \u7528\u4f8b \u7684 \u8981\u6c42 \uff08 \u4f8b\u5982 \u5b66\u4e60 \u9a7e\u9a76 \u7b56\u7565 \u3001 \u8bad\u7ec3 \u611f\u77e5 \u7b97\u6cd5 \u7b49 \uff09 \u3002 Carla \u57fa\u4e8e \u865a\u5e7b \u5f15\u64ce \u6765 \u8fd0\u884c \u4eff\u771f \uff0c \u5e76 \u4f7f\u7528 OpenDRIVE \u6807\u51c6 \uff08 \u76ee\u524d \u4e3a 1.4 \uff09 \u6765 \u5b9a\u4e49 \u9053\u8def \u548c \u57ce\u5e02 \u8bbe\u7f6e \u3002 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u662f \u901a\u8fc7 Python \u548c C++ \u5904\u7406 \u7684 API \u6388\u4e88 \u7684 \uff0c \u8be5 API \u968f\u7740 \u9879\u76ee \u7684 \u53d1\u5c55 \u800c \u4e0d\u65ad \u589e\u957f \u3002 \u4e3a\u4e86 \u987a\u5229 \u5f00\u53d1 \u3001 \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u8fc7\u7a0b \uff0c Carla \u53d1\u5c55 \u6210\u4e3a \u4e00\u4e2a \u7531 \u793e\u533a \u56f4\u7ed5 \u4e3b \u5e73\u53f0 \u6784\u5efa \u7684 \u9879\u76ee \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u4e86\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u975e\u5e38 \u91cd\u8981 \uff0c \u8fd9\u6837 \u624d\u80fd \u5145\u5206 \u7406\u89e3 \u5176 \u529f\u80fd \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7531 \u53ef \u6269\u5c55 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u7ec4\u6210 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8d1f\u8d23 \u4e0e \u4eff\u771f \u672c\u8eab \u76f8\u5173 \u7684 \u6240\u6709 \u4e8b\u60c5 \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6e32\u67d3 \u3001 \u7269\u7406 \u8ba1\u7b97 \u3001 \u4e16\u754c \u72b6\u6001 \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u66f4\u65b0 \u7b49 \u3002 \u5305\u62ec \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \u3001 [ Libcarla \u670d\u52a1 \u670d\u52a1\u7aef ] \u3001 \u8fdc\u7a0b \u8fc7\u7a0b \u8c03\u7528 \u670d\u52a1 \u3002 \u7531\u4e8e \u5b83 \u7684 \u76ee\u6807 \u662f \u5b9e\u9645 \u7ed3\u679c \uff0c \u56e0\u6b64 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u9009\u62e9 \u662f \u4f7f\u7528 \u4e13\u7528 GPU \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u673a\u5668 \u5b66\u4e60 \u65f6 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7531 \u4e00\u7ec4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6a21\u5757 \u7ec4\u6210 \uff0c \u63a7\u5236 \u573a\u666f \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u903b\u8f91 \u5e76 \u8bbe\u7f6e \u4e16\u754c \u6761\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5229\u7528 Carla API \uff08 Python \u6216 C++ \u8bed\u8a00 \uff09 \u6765 \u5b9e\u73b0 \u7684 \uff0c Carla API \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u7684 \u4e2d\u4ecb \u5c42 \uff0c \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u65b0 \u529f\u80fd \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 Carla \u7684 \u610f\u4e49 \u4e0d\u6b62 \u8fdc\u4e0d\u6b62 \u4e8e \u6b64 \uff0c \u56e0\u4e3a \u5b83 \u5171\u5b58 \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u529f\u80fd \u548c \u5143\u7d20 \u3002 \u4e0b\u9762 \u5217\u51fa \u4e86 \u5176\u4e2d \u4e00\u4e9b \uff0c \u4ee5\u4fbf \u4e86\u89e3 Carla \u53ef\u4ee5 \u5b9e\u73b0 \u7684 \u529f\u80fd \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e00\u79cd \u5185\u7f6e \u7cfb\u7edf \uff0c \u9664\u4e86 \u7528\u4e8e \u5b66\u4e60 \u7684 \u8f66\u8f86 \u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u63a7\u5236 \u8f66\u8f86 \u3002 \u5b83 \u5145\u5f53 Carla \u63d0\u4f9b \u7684 \u6307\u6325 \uff0c \u4ee5 \u73b0\u5b9e \u7684 \u884c\u4e3a \u91cd\u5efa \u7c7b\u4f3c \u57ce\u5e02 \u7684 \u73af\u5883 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8f66\u8f86 \u4f9d\u9760 \u5b83\u4eec \u6765 \u5206\u53d1 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u5728 Carla \u4e2d \uff0c \u5b83\u4eec \u662f \u9644\u7740 \u5728 \u8f66\u8f86 \u4e0a \u7684 \u7279\u5b9a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u548c \u5b58\u50a8 \u5b83\u4eec \u63a5\u6536 \u5230 \u7684 \u6570\u636e \u4ee5 \u7b80\u5316 \u6d41\u7a0b \u3002 \u76ee\u524d \u8be5 \u9879\u76ee \u652f\u6301 \u4e0d\u540c \u7c7b\u578b \u7684 \u6280\u672f \uff0c \u4ece \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u5230 \u96f7\u8fbe \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7b49\u7b49 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6b64 \u529f\u80fd \u7528\u4e8e \u4e3a \u4e16\u754c \u4e0a \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9010\u6b65 \u91cd\u6f14 \u4eff\u771f \u3002 \u5b83 \u5141\u8bb8 \u8bbf\u95ee \u4e16\u754c \u4e0a \u4efb\u4f55 \u5730\u65b9 \u7684 \u65f6\u95f4 \u7ebf\u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \uff0c \u8fd9\u662f \u4e00\u4e2a \u5f88\u68d2 \u7684 \u8ffd\u8e2a \u5de5\u5177 \u3002 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u548c Autoware \u5b9e\u73b0 \u3002 \u4f5c\u4e3a \u666e\u904d \u666e\u904d\u5316 \u7684 \u95ee\u9898 \uff0c Carla \u9879\u76ee \u81f4\u529b \u81f4\u529b\u4e8e \u5c06 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u96c6\u6210 \u5230 \u5176\u4ed6 \u5b66\u4e60 \u73af\u5883 \u4e2d \u3002 \u5f00\u653e \u8d44\u4ea7 \u3002 Carla \u4e3a \u57ce\u5e02 \u73af\u5883 \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u5730\u56fe \uff0c \u53ef\u4ee5 \u63a7\u5236 \u5929\u6c14 \u6761\u4ef6 \uff0c \u5e76 \u63d0\u4f9b \u4e00\u4e2a \u5305\u542b \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd \u56fe\u5e93 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u5143\u7d20 \u53ef\u4ee5 \u5b9a\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u6309\u7167 \u7b80\u5355 \u7684 \u6307\u5bfc \u539f\u5219 \u751f\u6210 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 Scenario runner . \u4e3a\u4e86 \u7b80\u5316 \u8f66\u8f86 \u7684 \u5b66\u4e60 \u8fc7\u7a0b \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u63cf\u8ff0 \u4e0d\u540c \u60c5\u51b5 \u7684 \u8fed\u4ee3 \u8def\u7ebf \u3002 \u8fd9\u4e9b \u4e5f \u4e3a Carla \u6311\u6218 \u5960\u5b9a \u4e86 \u57fa\u7840 \uff0c \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u6d4b\u8bd5 \u4ed6\u4eec \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u5e76 \u8dfb\u8eab \u6392\u884c \u6392\u884c\u699c \u3002 \u8be5 \u9879\u76ee Carla \u5feb\u901f \u7a33\u5b9a \u5730 \u53d1\u5c55 \uff0c \u6269\u5927 \u4e86 \u63d0\u4f9b \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8303\u56f4 \uff0c \u5e76 \u4e3a \u4e0d\u540c \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u65b9\u6cd5 \u5f00\u8f9f \u4e86 \u9053\u8def \u3002 \u5b83 \u5728 \u8fd9\u6837 \u505a \u7684 \u540c\u65f6 \u6c38\u8fdc \u4e0d\u4f1a \u5fd8\u8bb0 \u5176 \u5f00\u6e90 \u6027\u8d28 \u3002 \u8be5 \u9879\u76ee \u662f \u900f\u660e \u7684 \uff0c \u5145\u5f53 \u4e00\u4e2a \u767d\u76d2 \uff0c \u4efb\u4f55 \u4f55\u4eba \u4efb\u4f55\u4eba \u90fd \u53ef\u4ee5 \u8bbf\u95ee \u5de5\u5177 \u548c \u5f00\u53d1 \u793e\u533a \u3002 Carla \u6b63\u662f \u5728 \u6c11\u4e3b \u6c11\u4e3b\u5316 \u4e2d \u627e\u5230 \u4e86 \u81ea\u5df1 \u7684 \u4ef7\u503c \u3002 \u8c08\u8bba Carla \u5982\u4f55 \u6210\u957f \u610f\u5473 \u610f\u5473\u7740 \u8c08\u8bba \u4e00\u4e2a \u5171\u540c \u6df1\u5165 \u7814\u7a76 \u6df1\u5165\u7814\u7a76 \u81ea\u52a8 \u9a7e\u9a76 \u5f7b\u5e95 \u95ee\u9898 \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u793e\u533a \u3002 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u81ea\u7531 \u5730 \u4e0e Carla \u4e00\u8d77 \u63a2\u7d22 \uff0c \u627e\u5230 \u81ea\u5df1 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7136\u540e \u4e0e \u793e\u533a \u5176\u4ed6 \u6210\u5458 \u5206\u4eab \u4ed6\u4eec \u7684 \u6210\u5c31 \u3002 \u672c \u6587\u6863 \u5c06 \u6210\u4e3a \u60a8 \u4e00\u8def \u8def\u4e0a \u4e00\u8def\u4e0a \u7684 \u4f34\u4fa3 \u3002 \u4e0b \u4e00\u9875 \u5305\u542b \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \uff0c \u4f9b \u90a3\u4e9b \u6e34\u671b \u5b89\u88c5 Carla \u7248\u672c \u7684 \u4eba \u4f7f\u7528 \u3002 \u8fd8\u6709 \u9002\u7528 \u4e8e Linux \u548c Windows \u7684 \u6784\u5efa \u6307\u5357 \u3002 \u8fd9 \u5c06 \u4f7f Carla \u4ece \u5b58\u50a8 \u5e93\u4e2d \u51fa\u6765 \uff0c \u5e76 \u5141\u8bb8 \u6df1\u5165 \u4e86\u89e3 \u5176 \u529f\u80fd \u3002 \u6b22\u8fce \u6765\u5230 Carla \u3002 Linux \u6784\u5efa Windows \u6784\u5efa","title":"\u4ecb\u7ecd"},{"location":"start_introduction/#carla","text":"\u91cd\u8981 \u672c \u6587\u6863 \u53c2\u8003 \u6700\u65b0 \u7248\u672c \u7684 Carla \u3002 \u6709\u5173 \u4ee5\u524d \u7248\u672c \u7684 \u6587\u6863 \uff0c \u8bf7 \u5728 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u770b\u5230 \u6b64 \u6309\u94ae \u7684 \u4f4d\u7f6e \u9009\u62e9 \u6240 \u9700 \u7684 \u7248\u672c \uff1a Carla \u662f \u4e00\u6b3e \u5f00\u6e90 \u81ea\u52a8 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5b83 \u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u6784\u5efa \u7684 \uff0c \u4f5c\u4e3a \u4e00\u4e2a \u6a21\u5757 \u6a21\u5757\u5316 \u4e14 \u7075\u6d3b \u7684 API \uff0c \u53ef\u4ee5 \u89e3\u51b3 \u81ea\u52a8 \u9a7e\u9a76 \u95ee\u9898 \u4e2d \u6d89\u53ca \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u4efb\u52a1 \u3002 Carla \u7684 \u4e3b\u8981 \u76ee\u6807 \u4e4b\u4e00 \u662f \u5e2e\u52a9 \u81ea\u52a8 \u9a7e\u9a76 \u7814\u53d1 \u6c11\u4e3b \u6c11\u4e3b\u5316 \uff0c \u6210\u4e3a \u7528\u6237 \u53ef\u4ee5 \u8f7b\u677e \u8bbf\u95ee \u548c \u5b9a\u5236 \u7684 \u5de5\u5177 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5fc5\u987b \u6ee1\u8db3 \u4e00\u822c \u9a7e\u9a76 \u95ee\u9898 \u4e2d \u4e0d\u540c \u7528\u4f8b \u7684 \u8981\u6c42 \uff08 \u4f8b\u5982 \u5b66\u4e60 \u9a7e\u9a76 \u7b56\u7565 \u3001 \u8bad\u7ec3 \u611f\u77e5 \u7b97\u6cd5 \u7b49 \uff09 \u3002 Carla \u57fa\u4e8e \u865a\u5e7b \u5f15\u64ce \u6765 \u8fd0\u884c \u4eff\u771f \uff0c \u5e76 \u4f7f\u7528 OpenDRIVE \u6807\u51c6 \uff08 \u76ee\u524d \u4e3a 1.4 \uff09 \u6765 \u5b9a\u4e49 \u9053\u8def \u548c \u57ce\u5e02 \u8bbe\u7f6e \u3002 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u662f \u901a\u8fc7 Python \u548c C++ \u5904\u7406 \u7684 API \u6388\u4e88 \u7684 \uff0c \u8be5 API \u968f\u7740 \u9879\u76ee \u7684 \u53d1\u5c55 \u800c \u4e0d\u65ad \u589e\u957f \u3002 \u4e3a\u4e86 \u987a\u5229 \u5f00\u53d1 \u3001 \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u8fc7\u7a0b \uff0c Carla \u53d1\u5c55 \u6210\u4e3a \u4e00\u4e2a \u7531 \u793e\u533a \u56f4\u7ed5 \u4e3b \u5e73\u53f0 \u6784\u5efa \u7684 \u9879\u76ee \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u4e86\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u975e\u5e38 \u91cd\u8981 \uff0c \u8fd9\u6837 \u624d\u80fd \u5145\u5206 \u7406\u89e3 \u5176 \u529f\u80fd \u3002","title":"Carla"},{"location":"start_introduction/#_1","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7531 \u53ef \u6269\u5c55 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u7ec4\u6210 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8d1f\u8d23 \u4e0e \u4eff\u771f \u672c\u8eab \u76f8\u5173 \u7684 \u6240\u6709 \u4e8b\u60c5 \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6e32\u67d3 \u3001 \u7269\u7406 \u8ba1\u7b97 \u3001 \u4e16\u754c \u72b6\u6001 \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u66f4\u65b0 \u7b49 \u3002 \u5305\u62ec \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \u3001 [ Libcarla \u670d\u52a1 \u670d\u52a1\u7aef ] \u3001 \u8fdc\u7a0b \u8fc7\u7a0b \u8c03\u7528 \u670d\u52a1 \u3002 \u7531\u4e8e \u5b83 \u7684 \u76ee\u6807 \u662f \u5b9e\u9645 \u7ed3\u679c \uff0c \u56e0\u6b64 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u9009\u62e9 \u662f \u4f7f\u7528 \u4e13\u7528 GPU \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u673a\u5668 \u5b66\u4e60 \u65f6 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7531 \u4e00\u7ec4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6a21\u5757 \u7ec4\u6210 \uff0c \u63a7\u5236 \u573a\u666f \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u903b\u8f91 \u5e76 \u8bbe\u7f6e \u4e16\u754c \u6761\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5229\u7528 Carla API \uff08 Python \u6216 C++ \u8bed\u8a00 \uff09 \u6765 \u5b9e\u73b0 \u7684 \uff0c Carla API \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u7684 \u4e2d\u4ecb \u5c42 \uff0c \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u65b0 \u529f\u80fd \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 Carla \u7684 \u610f\u4e49 \u4e0d\u6b62 \u8fdc\u4e0d\u6b62 \u4e8e \u6b64 \uff0c \u56e0\u4e3a \u5b83 \u5171\u5b58 \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u529f\u80fd \u548c \u5143\u7d20 \u3002 \u4e0b\u9762 \u5217\u51fa \u4e86 \u5176\u4e2d \u4e00\u4e9b \uff0c \u4ee5\u4fbf \u4e86\u89e3 Carla \u53ef\u4ee5 \u5b9e\u73b0 \u7684 \u529f\u80fd \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e00\u79cd \u5185\u7f6e \u7cfb\u7edf \uff0c \u9664\u4e86 \u7528\u4e8e \u5b66\u4e60 \u7684 \u8f66\u8f86 \u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u63a7\u5236 \u8f66\u8f86 \u3002 \u5b83 \u5145\u5f53 Carla \u63d0\u4f9b \u7684 \u6307\u6325 \uff0c \u4ee5 \u73b0\u5b9e \u7684 \u884c\u4e3a \u91cd\u5efa \u7c7b\u4f3c \u57ce\u5e02 \u7684 \u73af\u5883 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8f66\u8f86 \u4f9d\u9760 \u5b83\u4eec \u6765 \u5206\u53d1 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u5728 Carla \u4e2d \uff0c \u5b83\u4eec \u662f \u9644\u7740 \u5728 \u8f66\u8f86 \u4e0a \u7684 \u7279\u5b9a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u548c \u5b58\u50a8 \u5b83\u4eec \u63a5\u6536 \u5230 \u7684 \u6570\u636e \u4ee5 \u7b80\u5316 \u6d41\u7a0b \u3002 \u76ee\u524d \u8be5 \u9879\u76ee \u652f\u6301 \u4e0d\u540c \u7c7b\u578b \u7684 \u6280\u672f \uff0c \u4ece \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u5230 \u96f7\u8fbe \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7b49\u7b49 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6b64 \u529f\u80fd \u7528\u4e8e \u4e3a \u4e16\u754c \u4e0a \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9010\u6b65 \u91cd\u6f14 \u4eff\u771f \u3002 \u5b83 \u5141\u8bb8 \u8bbf\u95ee \u4e16\u754c \u4e0a \u4efb\u4f55 \u5730\u65b9 \u7684 \u65f6\u95f4 \u7ebf\u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \uff0c \u8fd9\u662f \u4e00\u4e2a \u5f88\u68d2 \u7684 \u8ffd\u8e2a \u5de5\u5177 \u3002 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u548c Autoware \u5b9e\u73b0 \u3002 \u4f5c\u4e3a \u666e\u904d \u666e\u904d\u5316 \u7684 \u95ee\u9898 \uff0c Carla \u9879\u76ee \u81f4\u529b \u81f4\u529b\u4e8e \u5c06 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u96c6\u6210 \u5230 \u5176\u4ed6 \u5b66\u4e60 \u73af\u5883 \u4e2d \u3002 \u5f00\u653e \u8d44\u4ea7 \u3002 Carla \u4e3a \u57ce\u5e02 \u73af\u5883 \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u5730\u56fe \uff0c \u53ef\u4ee5 \u63a7\u5236 \u5929\u6c14 \u6761\u4ef6 \uff0c \u5e76 \u63d0\u4f9b \u4e00\u4e2a \u5305\u542b \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd \u56fe\u5e93 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u5143\u7d20 \u53ef\u4ee5 \u5b9a\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u6309\u7167 \u7b80\u5355 \u7684 \u6307\u5bfc \u539f\u5219 \u751f\u6210 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 Scenario runner . \u4e3a\u4e86 \u7b80\u5316 \u8f66\u8f86 \u7684 \u5b66\u4e60 \u8fc7\u7a0b \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u63cf\u8ff0 \u4e0d\u540c \u60c5\u51b5 \u7684 \u8fed\u4ee3 \u8def\u7ebf \u3002 \u8fd9\u4e9b \u4e5f \u4e3a Carla \u6311\u6218 \u5960\u5b9a \u4e86 \u57fa\u7840 \uff0c \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u6d4b\u8bd5 \u4ed6\u4eec \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u5e76 \u8dfb\u8eab \u6392\u884c \u6392\u884c\u699c \u3002","title":"\u4eff\u771f\u5668"},{"location":"start_introduction/#_2","text":"Carla \u5feb\u901f \u7a33\u5b9a \u5730 \u53d1\u5c55 \uff0c \u6269\u5927 \u4e86 \u63d0\u4f9b \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8303\u56f4 \uff0c \u5e76 \u4e3a \u4e0d\u540c \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u65b9\u6cd5 \u5f00\u8f9f \u4e86 \u9053\u8def \u3002 \u5b83 \u5728 \u8fd9\u6837 \u505a \u7684 \u540c\u65f6 \u6c38\u8fdc \u4e0d\u4f1a \u5fd8\u8bb0 \u5176 \u5f00\u6e90 \u6027\u8d28 \u3002 \u8be5 \u9879\u76ee \u662f \u900f\u660e \u7684 \uff0c \u5145\u5f53 \u4e00\u4e2a \u767d\u76d2 \uff0c \u4efb\u4f55 \u4f55\u4eba \u4efb\u4f55\u4eba \u90fd \u53ef\u4ee5 \u8bbf\u95ee \u5de5\u5177 \u548c \u5f00\u53d1 \u793e\u533a \u3002 Carla \u6b63\u662f \u5728 \u6c11\u4e3b \u6c11\u4e3b\u5316 \u4e2d \u627e\u5230 \u4e86 \u81ea\u5df1 \u7684 \u4ef7\u503c \u3002 \u8c08\u8bba Carla \u5982\u4f55 \u6210\u957f \u610f\u5473 \u610f\u5473\u7740 \u8c08\u8bba \u4e00\u4e2a \u5171\u540c \u6df1\u5165 \u7814\u7a76 \u6df1\u5165\u7814\u7a76 \u81ea\u52a8 \u9a7e\u9a76 \u5f7b\u5e95 \u95ee\u9898 \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u793e\u533a \u3002 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u81ea\u7531 \u5730 \u4e0e Carla \u4e00\u8d77 \u63a2\u7d22 \uff0c \u627e\u5230 \u81ea\u5df1 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7136\u540e \u4e0e \u793e\u533a \u5176\u4ed6 \u6210\u5458 \u5206\u4eab \u4ed6\u4eec \u7684 \u6210\u5c31 \u3002 \u672c \u6587\u6863 \u5c06 \u6210\u4e3a \u60a8 \u4e00\u8def \u8def\u4e0a \u4e00\u8def\u4e0a \u7684 \u4f34\u4fa3 \u3002 \u4e0b \u4e00\u9875 \u5305\u542b \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \uff0c \u4f9b \u90a3\u4e9b \u6e34\u671b \u5b89\u88c5 Carla \u7248\u672c \u7684 \u4eba \u4f7f\u7528 \u3002 \u8fd8\u6709 \u9002\u7528 \u4e8e Linux \u548c Windows \u7684 \u6784\u5efa \u6307\u5357 \u3002 \u8fd9 \u5c06 \u4f7f Carla \u4ece \u5b58\u50a8 \u5e93\u4e2d \u51fa\u6765 \uff0c \u5e76 \u5141\u8bb8 \u6df1\u5165 \u4e86\u89e3 \u5176 \u529f\u80fd \u3002 \u6b22\u8fce \u6765\u5230 Carla \u3002 Linux \u6784\u5efa Windows \u6784\u5efa","title":"\u8be5 \u9879\u76ee"},{"location":"start_quickstart/","text":"\u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u672c \u6307\u5357 \u4ecb\u7ecd \u5982\u4f55 \u4e0b\u8f7d \u548c \u5b89\u88c5 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5305\u62ec Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4e24\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u9009\u9879 \u3002 \u8fd8 \u53ef\u4ee5 \u4e0b\u8f7d \u5176\u4ed6 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u5bfc\u5165 \u5bfc\u5165\u5230 \u5305\u4e2d \u3002 \u9700\u8981 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u9ad8\u7ea7 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u5f00\u53d1 \u9009\u9879 \u4e0d\u53ef \u7528 \uff0c \u4f46 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u9002\u7528 \u4e8e Windows \u6216 Linux \u7684 Carla \u6784\u5efa \u7248\u672c \u6765 \u8bbf\u95ee \u8fd9\u4e9b \u9009\u9879 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5b89\u88c5 A . Debian Carla \u5b89\u88c5 B . \u5305 \u5b89\u88c5 \u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7 \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c Carla 0.9 . 12 + \u8fd0\u884c Carla \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u66f4\u65b0 Carla \u8ddf\u8fdb \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5b89\u88c5 Carla \u4e4b\u524d \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u662f \u4e3a Windows \u548c Linux \u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u4f7f\u7528 \u5927\u7ea6 20 GB \u7684 \u7a7a\u95f4 \u3002 Python . Python \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 Carla \u5728 Linux \u4e0a \u652f\u6301 Python 2.7 \u548c Python 3 \uff0c \u5728 Windows \u4e0a \u652f\u6301 Python 3 \u3002 Pip . Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u67d0\u4e9b \u5b89\u88c5 \u65b9\u6cd5 \u9700\u8981 pip \u6216 pip3 \uff08 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Python \u7248\u672c \uff09 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 pip \u7248\u672c \uff1a # For Python 3 pip3 - V # For Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # For Python 3 pip3 install -- upgrade pip # For Python 2 pip install -- upgrade pip \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u5176\u4ed6 \u9700\u6c42 \u3002 Carla \u9700\u8981 \u4e00\u4e9b Python \u4f9d\u8d56 \u9879 \u3002 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 \u4f9d\u8d56 \u9879 \uff1a Windows pip3 install -- user pygame numpy Linux pip install -- user pygame numpy && pip3 install -- user pygame numpy Carla \u5b89\u88c5 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4e0b\u8f7d \u5e76 \u5b89\u88c5 Carla \u4f5c\u4e3a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff1a A ) \u4e0b\u8f7d Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 B ) \u4ece GitHub \u4e0b\u8f7d \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 A . Debian Carla \u5b89\u88c5 Debain \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u9002\u7528 \u4e8e Ubuntu 18.04 \u548c Ubuntu 20.04 \uff0c \u4f46 \u5b98\u65b9 \u652f\u6301 \u7684 \u5e73\u53f0 \u662f Ubuntu 18.04 \u3002 1 . \u5728 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 Carla \u5e76 \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u662f\u5426 \u6709 \u5b89\u88c5 \uff1a sudo apt - get update # Update the Debian package index sudo apt - get install carla - simulator # Install the latest Carla version , or update the current installation cd / opt / carla - simulator # Open the folder where Carla is installed \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b Carla 0.9 . 10 \u53ca \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff0c \u8bf7 \u5c06 \u7248\u672c \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5b89\u88c5 \u547d\u4ee4 \u4e2d \uff1a apt - cache madison carla - simulator # List the available versions of Carla sudo apt - get install carla - simulator = 0.9 . 10 - 1 # In this case , \" 0.9 . 10 \" refers to a CARLA version , and \" 1 \" to the Debian revision \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u6587\u6863 \u7684 \u65e9\u671f \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u65e7 \u7684 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 B . \u5305 \u5b89\u88c5 Carla \u4ed3\u5e93 \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b \u4e0d\u540c \u7248\u672c \u7684 Carla \u3002 \u60a8 \u5c06 \u627e\u5230 \u4e0b\u8f7d \u5305\u542b \u6240\u6709 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u5f53\u524d \u7248\u672c \u3001 \u4ee5\u524d \u7684 \u7248\u672c \u4ee5\u53ca \u5305\u542b \u6240\u6709 \u5f00\u53d1 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u591c\u95f4 \u6784\u5efa \uff08 \u591c\u95f4 \u6784\u5efa \u662f Carla \u6700 \u4e0d \u7a33\u5b9a \u7684 \u7248\u672c \uff09 \u7684 \u9009\u9879 \u3002 \u8be5 \u5305\u662f \u4e00\u4e2a \u540d\u4e3a CARLA _ version . number \u7684 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u3002 \u4e0b\u8f7d \u5e76 \u89e3\u538b \u53d1\u5e03 \u6587\u4ef6 \u3002 \u5b83 \u5305\u542b \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u9884 \u7f16\u8bd1 \u7248\u672c \u3001 Python API \u6a21\u5757 \u548c \u4e00\u4e9b \u7528\u4f5c \u793a\u4f8b \u7684 \u811a\u672c \u3002 \u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7 \u6bcf\u4e2a \u7248\u672c \u90fd \u6709 \u5176 \u81ea\u5df1 \u7684 \u9644\u52a0 \u8d44\u4ea7 \u548c \u5730\u56fe \u5730\u56fe\u5305 \u3002 \u6b64 \u9644\u52a0 \u5305 \u5305\u62ec \u5730\u56fe Town06 \u3001 Town07 \u548c Town10 \u3002 \u5b83\u4eec \u5355\u72ec \u5b58\u50a8 \u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \uff0c \u56e0\u6b64 \u53ea\u80fd \u5728 \u5b89\u88c5 \u4e3b\u5305 \u540e \u624d\u80fd \u5bfc\u5165 \u5b83\u4eec \u3002 1 . \u4e0b\u8f7d \u9002\u5408 \u60a8 \u6240 \u9700 \u7248\u672c \u7684 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 2 . \u89e3\u538b \u89e3\u538b\u5305 \uff1a \u5728 Linux \u4e0a : \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u4ee5 \u63d0\u53d6 \u5185\u5bb9 \uff1a cd path / to / carla / root . / ImportAssets . sh \u5728 Windows \u4e0a : \u76f4\u63a5 \u5c06 \u5185\u5bb9 \u63d0\u53d6 \u5230 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c \u4ee5\u524d \u7248\u672c \u7684 Carla \u4e0d \u9700\u8981 \u5b89\u88c5 Python \u5e93 \uff0c \u5b83\u4eec \u9644\u5e26 \u4e86 \u4e00\u4e2a . egg \u5f00\u7bb1 \u5373\u7528 \u7684 \u6587\u4ef6 \u3002 Carla \u7248\u672c 0.9 . 12 + \u663e \u7740 \u6539\u53d8 \u4e86 \u8fd9\u79cd \u884c\u4e3a \uff1b \u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u8be5 \u7248\u672c \u4ee5 \u67e5\u770b \u76f8\u5173 \u6587\u6863 \u3002 \u5426\u5219 \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 Carla 0.9 . 12 + \u4e2d \u53ef\u7528 \u9009\u9879 \u7684 \u4fe1\u606f \u3002 Carla 0.9 . 12 + \u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u548c \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a . egg \u6587\u4ef6 . whl \u6587\u4ef6 \u53ef \u4e0b\u8f7d \u7684 Python \u5305 \u5728 \u51b3\u5b9a \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 \u6bcf\u79cd \u65b9\u6cd5 \u7684 \u8981\u6c42 \u548c \u9650\u5236 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u6ce8\u610f \uff0c \u6df7\u5408 \u4f7f\u7528 \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u4e0d \u517c\u5bb9 \uff0c \u56e0\u6b64 \u8bf7 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u6216\u8005 \u5728 \u4f7f\u7528 \u65b0\u5e93 \u4e4b\u524d \u5378\u8f7d \u4ee5\u524d \u5b89\u88c5 \u7684 \u5e93 \u3002 A . . egg \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u5728 PythonAPI / carla / dist / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \u4e0d\u540c Python \u7248\u672c . egg \u6587\u4ef6 \uff0c \u53ef\u4ee5 \u5f00\u7bb1 \u5373\u7528 \u3002 PythonAPI / examples \u4e2d \u7684 \u6bcf\u4e2a \u793a\u4f8b \u811a\u672c \u90fd \u5305\u542b \u4e00\u4e2a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 PYTHONPATH \u3002 . \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 Carla \u4e2d . egg \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5df2\u7ecf \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 pip \uff0c \u5219 \u8be5\u5e93 \u5c06 \u4f18\u5148 \u4e8e \u8be5 . egg \u6587\u4ef6 \u3002 \u60a8 \u9700\u8981 \u5148 \u5378\u8f7d \u4ee5\u524d \u7684 \u5e93 \u3002 B . . whl \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u4e0d\u540c Python \u7248\u672c \u7684 . whl \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 \u5b89\u88c5 \u8be5 . whl \u6587\u4ef6 \u3002 \u8be5 . whl \u6587\u4ef6 \u4f4d\u4e8e PythonAPI / carla / dist / \u3002 \u6bcf\u4e2a \u53d7 \u652f\u6301 \u7684 Python \u7248\u672c \u90fd \u6709 \u4e00\u4e2a \u6587\u4ef6 \uff0c \u7531 \u6587\u4ef6 \u6587\u4ef6\u540d \u6307\u793a \uff08 \u4f8b\u5982 \uff0c carla - 0.9 . 12 - cp36 - cp36m - manylinux _ 2 _ 27 _ x86 _ 64 . whl \u8868\u793a Python 3.6 \uff09 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u9009\u62e9 \u9002\u5408 \u60a8 \u6240 \u9700 Python \u7248\u672c \u7684 \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \uff1a # Python 3 pip3 install < wheel - file - name > . whl # Python 2 pip install < wheel - file - name > . whl \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94\u5148 \u5378\u8f7d \u65e7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u7136\u540e \u518d \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 C . \u53ef \u4e0b\u8f7d \u7684 Python \u5305 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u53ef\u4ee5 \u4ece PyPi \u4e0b\u8f7d \u3002 \u8be5\u5e93 \u4e0e Python \u7248\u672c 2.7 \u3001 3.6 \u3001 3.7 \u548c 3.8 \u517c\u5bb9 \u3002 \u8981 \u5b89\u88c5 \u5b83 \uff0c \u60a8 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u4ece PyPi \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # Python 3 pip3 install carla # Python 2 pip install carla PyPi \u4e0b\u8f7d \u4ec5 \u9002\u5408 \u4e0e Carla \u5305 \u4e00\u8d77 \u4f7f\u7528 \uff08 \u5373 \u4e0d\u9002 \u7528\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \uff09 \u3002 \u7531\u4e8e PyPi \u4e0b\u8f7d \u4ec5 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u56e0\u6b64 \u5728 \u60a8 \u5c06 \u4e0e \u8fdc\u7a0b Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e14 \u4e0d \u9700\u8981 \u4e0b\u8f7d \u5b8c\u6574 \u7684 Carla \u5305 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u975e\u5e38 \u6709\u7528 \u3002 \u8fd0\u884c Carla \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u548c \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff1a Debian \u5b89\u88c5 : cd / opt / carla - simulator / bin / . / CarlaUE4 . sh Linux \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root . / CarlaUE4 . sh Windows \u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root CarlaUE4 . exe \u5c06 \u5f39\u51fa \u4e00\u4e2a \u5305\u542b \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u770b\u6cd5 \u3002 \u8981 \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u8bf7 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u6309\u952e \uff0c \u6309\u4f4f \u9f20\u6807 \u53f3\u952e \u63a7\u5236 \u65b9\u5411 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u5b83 \u73b0\u5728 \u6b63\u5728 \u8fd0\u884c \u5e76 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u5728 \u57ce\u5e02 \u4e2d \u4ea7\u751f \u751f\u547d \u5e76 \u9a7e\u9a76 \u6c7d\u8f66 \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples python3 - m pip install - r requirements . txt # Support for Python2 is provided in the CARLA release packages python3 generate _ traffic . py # Terminal B cd PythonAPI \\ examples python3 manual _ control . py \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u542f\u52a8 Carla \u65f6\u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u914d\u7f6e \u9009\u9879 \uff0c \u53ef\u4ee5 \u6309 \u5982\u4e0b \u65b9\u5f0f \u4f7f\u7528 \u5b83\u4eec \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - rpc - port = N \u4fa6\u542c \u7aef\u53e3 N \u4e0a \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u3002 \u5a92\u4f53 \u6d41\u5a92\u4f53 \u7aef\u53e3 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a N + 1 \u3002 - carla - streaming - port = N \u6307\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6570\u636e\u6d41 \u7684 \u7aef\u53e3 \u3002 \u4f7f\u7528 0 \u83b7\u53d6 \u968f\u673a \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a N + 1 \u3002 - quality - level = { Low , Epic } \u66f4\u6539 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 \u5728 \u6e32\u67d3 \u9009\u9879 \u4e2d \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u865a\u5e7b \u5f15\u64ce 4 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5217\u8868 \u3002 \u3002 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u4e86 \u5f88\u591a \u9009\u9879 \uff0c \u4f46 \u5e76\u975e \u6240\u6709 \u8fd9\u4e9b \u9009\u9879 \u5728 Carla \u4e2d \u90fd \u53ef\u7528 \u3002 \u8be5 \u811a\u672c PythonAPI / util / config . py \u63d0\u4f9b \u4e86 \u66f4 \u591a \u914d\u7f6e \u9009\u9879 \uff0c \u5e94 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u542f\u52a8 \u65f6 \u8fd0\u884c \uff1a . / config . py -- no - rendering # Disable rendering . / config . py -- map Town05 # Change map . / config . py -- weather ClearNoon # Change weather . / config . py -- help # Check all the available configuration options \u66f4\u65b0 Carla \u65e0\u6cd5 \u66f4\u65b0 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5f53\u65b0 \u7248\u672c \u53d1\u5e03 \u65f6 \uff0c \u5b58\u50a8 \u5e93\u4f1a \u66f4\u65b0 \uff0c \u60a8 \u9700\u8981 \u5220\u9664 \u4ee5\u524d \u7684 \u7248\u672c \u5e76 \u5b89\u88c5 \u65b0 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla \u8ddf\u8fdb \u73b0\u5728 \u60a8 \u5e94\u8be5 \u5df2\u7ecf \u542f\u52a8 \u5e76 \u8fd0\u884c \u4e86 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u5728 \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u9047\u5230 \u4efb\u4f55 \u56f0\u96be \uff0c \u8bf7 \u968f\u65f6 \u5728 Carla \u8bba\u575b \u6216 Discord \u9891\u9053 \u4e2d \u53d1\u5e16 \u3002 \u4e0b \u4e00\u6b65 \u662f \u8be6\u7ec6 \u4e86\u89e3 Carla \u7684 \u6838\u5fc3 \u6982\u5ff5 \u3002 \u9605\u8bfb \u201c \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u201d \u90e8\u5206 \u5f00\u59cb \u5b66\u4e60 \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u6709\u5173 Python API \u7c7b \u548c \u65b9\u6cd5 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u524d\u5f80 \uff1a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"\u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5"},{"location":"start_quickstart/#_1","text":"\u672c \u6307\u5357 \u4ecb\u7ecd \u5982\u4f55 \u4e0b\u8f7d \u548c \u5b89\u88c5 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5305\u62ec Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4e24\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u9009\u9879 \u3002 \u8fd8 \u53ef\u4ee5 \u4e0b\u8f7d \u5176\u4ed6 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u5bfc\u5165 \u5bfc\u5165\u5230 \u5305\u4e2d \u3002 \u9700\u8981 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u9ad8\u7ea7 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u5f00\u53d1 \u9009\u9879 \u4e0d\u53ef \u7528 \uff0c \u4f46 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u9002\u7528 \u4e8e Windows \u6216 Linux \u7684 Carla \u6784\u5efa \u7248\u672c \u6765 \u8bbf\u95ee \u8fd9\u4e9b \u9009\u9879 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5b89\u88c5 A . Debian Carla \u5b89\u88c5 B . \u5305 \u5b89\u88c5 \u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7 \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c Carla 0.9 . 12 + \u8fd0\u884c Carla \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u66f4\u65b0 Carla \u8ddf\u8fdb","title":"\u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5"},{"location":"start_quickstart/#_2","text":"\u5b89\u88c5 Carla \u4e4b\u524d \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u662f \u4e3a Windows \u548c Linux \u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u4f7f\u7528 \u5927\u7ea6 20 GB \u7684 \u7a7a\u95f4 \u3002 Python . Python \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 Carla \u5728 Linux \u4e0a \u652f\u6301 Python 2.7 \u548c Python 3 \uff0c \u5728 Windows \u4e0a \u652f\u6301 Python 3 \u3002 Pip . Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u67d0\u4e9b \u5b89\u88c5 \u65b9\u6cd5 \u9700\u8981 pip \u6216 pip3 \uff08 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Python \u7248\u672c \uff09 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 pip \u7248\u672c \uff1a # For Python 3 pip3 - V # For Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # For Python 3 pip3 install -- upgrade pip # For Python 2 pip install -- upgrade pip \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u5176\u4ed6 \u9700\u6c42 \u3002 Carla \u9700\u8981 \u4e00\u4e9b Python \u4f9d\u8d56 \u9879 \u3002 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 \u4f9d\u8d56 \u9879 \uff1a","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"start_quickstart/#windows","text":"pip3 install -- user pygame numpy","title":"Windows"},{"location":"start_quickstart/#linux","text":"pip install -- user pygame numpy && pip3 install -- user pygame numpy","title":"Linux"},{"location":"start_quickstart/#carla","text":"\u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4e0b\u8f7d \u5e76 \u5b89\u88c5 Carla \u4f5c\u4e3a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff1a A ) \u4e0b\u8f7d Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 B ) \u4ece GitHub \u4e0b\u8f7d \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002","title":"Carla \u5b89\u88c5"},{"location":"start_quickstart/#a-debian-carla","text":"Debain \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u9002\u7528 \u4e8e Ubuntu 18.04 \u548c Ubuntu 20.04 \uff0c \u4f46 \u5b98\u65b9 \u652f\u6301 \u7684 \u5e73\u53f0 \u662f Ubuntu 18.04 \u3002 1 . \u5728 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 Carla \u5e76 \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u662f\u5426 \u6709 \u5b89\u88c5 \uff1a sudo apt - get update # Update the Debian package index sudo apt - get install carla - simulator # Install the latest Carla version , or update the current installation cd / opt / carla - simulator # Open the folder where Carla is installed \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b Carla 0.9 . 10 \u53ca \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff0c \u8bf7 \u5c06 \u7248\u672c \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5b89\u88c5 \u547d\u4ee4 \u4e2d \uff1a apt - cache madison carla - simulator # List the available versions of Carla sudo apt - get install carla - simulator = 0.9 . 10 - 1 # In this case , \" 0.9 . 10 \" refers to a CARLA version , and \" 1 \" to the Debian revision \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u6587\u6863 \u7684 \u65e9\u671f \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u65e7 \u7684 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002","title":"A . Debian Carla \u5b89\u88c5"},{"location":"start_quickstart/#b","text":"Carla \u4ed3\u5e93 \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b \u4e0d\u540c \u7248\u672c \u7684 Carla \u3002 \u60a8 \u5c06 \u627e\u5230 \u4e0b\u8f7d \u5305\u542b \u6240\u6709 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u5f53\u524d \u7248\u672c \u3001 \u4ee5\u524d \u7684 \u7248\u672c \u4ee5\u53ca \u5305\u542b \u6240\u6709 \u5f00\u53d1 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u591c\u95f4 \u6784\u5efa \uff08 \u591c\u95f4 \u6784\u5efa \u662f Carla \u6700 \u4e0d \u7a33\u5b9a \u7684 \u7248\u672c \uff09 \u7684 \u9009\u9879 \u3002 \u8be5 \u5305\u662f \u4e00\u4e2a \u540d\u4e3a CARLA _ version . number \u7684 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u3002 \u4e0b\u8f7d \u5e76 \u89e3\u538b \u53d1\u5e03 \u6587\u4ef6 \u3002 \u5b83 \u5305\u542b \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u9884 \u7f16\u8bd1 \u7248\u672c \u3001 Python API \u6a21\u5757 \u548c \u4e00\u4e9b \u7528\u4f5c \u793a\u4f8b \u7684 \u811a\u672c \u3002","title":"B . \u5305 \u5b89\u88c5"},{"location":"start_quickstart/#_3","text":"\u6bcf\u4e2a \u7248\u672c \u90fd \u6709 \u5176 \u81ea\u5df1 \u7684 \u9644\u52a0 \u8d44\u4ea7 \u548c \u5730\u56fe \u5730\u56fe\u5305 \u3002 \u6b64 \u9644\u52a0 \u5305 \u5305\u62ec \u5730\u56fe Town06 \u3001 Town07 \u548c Town10 \u3002 \u5b83\u4eec \u5355\u72ec \u5b58\u50a8 \u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \uff0c \u56e0\u6b64 \u53ea\u80fd \u5728 \u5b89\u88c5 \u4e3b\u5305 \u540e \u624d\u80fd \u5bfc\u5165 \u5b83\u4eec \u3002 1 . \u4e0b\u8f7d \u9002\u5408 \u60a8 \u6240 \u9700 \u7248\u672c \u7684 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 2 . \u89e3\u538b \u89e3\u538b\u5305 \uff1a \u5728 Linux \u4e0a : \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u4ee5 \u63d0\u53d6 \u5185\u5bb9 \uff1a cd path / to / carla / root . / ImportAssets . sh \u5728 Windows \u4e0a : \u76f4\u63a5 \u5c06 \u5185\u5bb9 \u63d0\u53d6 \u5230 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002","title":"\u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7"},{"location":"start_quickstart/#_4","text":"","title":"\u5b89\u88c5 \u5ba2\u6237\u7aef \u5e93"},{"location":"start_quickstart/#0912-carla","text":"\u4ee5\u524d \u7248\u672c \u7684 Carla \u4e0d \u9700\u8981 \u5b89\u88c5 Python \u5e93 \uff0c \u5b83\u4eec \u9644\u5e26 \u4e86 \u4e00\u4e2a . egg \u5f00\u7bb1 \u5373\u7528 \u7684 \u6587\u4ef6 \u3002 Carla \u7248\u672c 0.9 . 12 + \u663e \u7740 \u6539\u53d8 \u4e86 \u8fd9\u79cd \u884c\u4e3a \uff1b \u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u8be5 \u7248\u672c \u4ee5 \u67e5\u770b \u76f8\u5173 \u6587\u6863 \u3002 \u5426\u5219 \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 Carla 0.9 . 12 + \u4e2d \u53ef\u7528 \u9009\u9879 \u7684 \u4fe1\u606f \u3002","title":"0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c"},{"location":"start_quickstart/#carla-0912","text":"\u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u548c \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a . egg \u6587\u4ef6 . whl \u6587\u4ef6 \u53ef \u4e0b\u8f7d \u7684 Python \u5305 \u5728 \u51b3\u5b9a \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 \u6bcf\u79cd \u65b9\u6cd5 \u7684 \u8981\u6c42 \u548c \u9650\u5236 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u6ce8\u610f \uff0c \u6df7\u5408 \u4f7f\u7528 \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u4e0d \u517c\u5bb9 \uff0c \u56e0\u6b64 \u8bf7 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u6216\u8005 \u5728 \u4f7f\u7528 \u65b0\u5e93 \u4e4b\u524d \u5378\u8f7d \u4ee5\u524d \u5b89\u88c5 \u7684 \u5e93 \u3002 A . . egg \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u5728 PythonAPI / carla / dist / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \u4e0d\u540c Python \u7248\u672c . egg \u6587\u4ef6 \uff0c \u53ef\u4ee5 \u5f00\u7bb1 \u5373\u7528 \u3002 PythonAPI / examples \u4e2d \u7684 \u6bcf\u4e2a \u793a\u4f8b \u811a\u672c \u90fd \u5305\u542b \u4e00\u4e2a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 PYTHONPATH \u3002 . \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 Carla \u4e2d . egg \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5df2\u7ecf \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 pip \uff0c \u5219 \u8be5\u5e93 \u5c06 \u4f18\u5148 \u4e8e \u8be5 . egg \u6587\u4ef6 \u3002 \u60a8 \u9700\u8981 \u5148 \u5378\u8f7d \u4ee5\u524d \u7684 \u5e93 \u3002 B . . whl \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u4e0d\u540c Python \u7248\u672c \u7684 . whl \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 \u5b89\u88c5 \u8be5 . whl \u6587\u4ef6 \u3002 \u8be5 . whl \u6587\u4ef6 \u4f4d\u4e8e PythonAPI / carla / dist / \u3002 \u6bcf\u4e2a \u53d7 \u652f\u6301 \u7684 Python \u7248\u672c \u90fd \u6709 \u4e00\u4e2a \u6587\u4ef6 \uff0c \u7531 \u6587\u4ef6 \u6587\u4ef6\u540d \u6307\u793a \uff08 \u4f8b\u5982 \uff0c carla - 0.9 . 12 - cp36 - cp36m - manylinux _ 2 _ 27 _ x86 _ 64 . whl \u8868\u793a Python 3.6 \uff09 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u9009\u62e9 \u9002\u5408 \u60a8 \u6240 \u9700 Python \u7248\u672c \u7684 \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \uff1a # Python 3 pip3 install < wheel - file - name > . whl # Python 2 pip install < wheel - file - name > . whl \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94\u5148 \u5378\u8f7d \u65e7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u7136\u540e \u518d \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 C . \u53ef \u4e0b\u8f7d \u7684 Python \u5305 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u53ef\u4ee5 \u4ece PyPi \u4e0b\u8f7d \u3002 \u8be5\u5e93 \u4e0e Python \u7248\u672c 2.7 \u3001 3.6 \u3001 3.7 \u548c 3.8 \u517c\u5bb9 \u3002 \u8981 \u5b89\u88c5 \u5b83 \uff0c \u60a8 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u4ece PyPi \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # Python 3 pip3 install carla # Python 2 pip install carla PyPi \u4e0b\u8f7d \u4ec5 \u9002\u5408 \u4e0e Carla \u5305 \u4e00\u8d77 \u4f7f\u7528 \uff08 \u5373 \u4e0d\u9002 \u7528\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \uff09 \u3002 \u7531\u4e8e PyPi \u4e0b\u8f7d \u4ec5 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u56e0\u6b64 \u5728 \u60a8 \u5c06 \u4e0e \u8fdc\u7a0b Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e14 \u4e0d \u9700\u8981 \u4e0b\u8f7d \u5b8c\u6574 \u7684 Carla \u5305 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u975e\u5e38 \u6709\u7528 \u3002","title":"Carla 0.9 . 12 +"},{"location":"start_quickstart/#carla_1","text":"\u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u548c \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff1a Debian \u5b89\u88c5 : cd / opt / carla - simulator / bin / . / CarlaUE4 . sh Linux \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root . / CarlaUE4 . sh Windows \u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root CarlaUE4 . exe \u5c06 \u5f39\u51fa \u4e00\u4e2a \u5305\u542b \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u770b\u6cd5 \u3002 \u8981 \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u8bf7 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u6309\u952e \uff0c \u6309\u4f4f \u9f20\u6807 \u53f3\u952e \u63a7\u5236 \u65b9\u5411 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u5b83 \u73b0\u5728 \u6b63\u5728 \u8fd0\u884c \u5e76 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u5728 \u57ce\u5e02 \u4e2d \u4ea7\u751f \u751f\u547d \u5e76 \u9a7e\u9a76 \u6c7d\u8f66 \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples python3 - m pip install - r requirements . txt # Support for Python2 is provided in the CARLA release packages python3 generate _ traffic . py # Terminal B cd PythonAPI \\ examples python3 manual _ control . py","title":"\u8fd0\u884c Carla"},{"location":"start_quickstart/#_5","text":"\u542f\u52a8 Carla \u65f6\u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u914d\u7f6e \u9009\u9879 \uff0c \u53ef\u4ee5 \u6309 \u5982\u4e0b \u65b9\u5f0f \u4f7f\u7528 \u5b83\u4eec \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - rpc - port = N \u4fa6\u542c \u7aef\u53e3 N \u4e0a \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u3002 \u5a92\u4f53 \u6d41\u5a92\u4f53 \u7aef\u53e3 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a N + 1 \u3002 - carla - streaming - port = N \u6307\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6570\u636e\u6d41 \u7684 \u7aef\u53e3 \u3002 \u4f7f\u7528 0 \u83b7\u53d6 \u968f\u673a \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a N + 1 \u3002 - quality - level = { Low , Epic } \u66f4\u6539 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 \u5728 \u6e32\u67d3 \u9009\u9879 \u4e2d \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u865a\u5e7b \u5f15\u64ce 4 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5217\u8868 \u3002 \u3002 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u4e86 \u5f88\u591a \u9009\u9879 \uff0c \u4f46 \u5e76\u975e \u6240\u6709 \u8fd9\u4e9b \u9009\u9879 \u5728 Carla \u4e2d \u90fd \u53ef\u7528 \u3002 \u8be5 \u811a\u672c PythonAPI / util / config . py \u63d0\u4f9b \u4e86 \u66f4 \u591a \u914d\u7f6e \u9009\u9879 \uff0c \u5e94 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u542f\u52a8 \u65f6 \u8fd0\u884c \uff1a . / config . py -- no - rendering # Disable rendering . / config . py -- map Town05 # Change map . / config . py -- weather ClearNoon # Change weather . / config . py -- help # Check all the available configuration options","title":"\u547d\u4ee4\u884c \u9009\u9879"},{"location":"start_quickstart/#carla_2","text":"\u65e0\u6cd5 \u66f4\u65b0 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5f53\u65b0 \u7248\u672c \u53d1\u5e03 \u65f6 \uff0c \u5b58\u50a8 \u5e93\u4f1a \u66f4\u65b0 \uff0c \u60a8 \u9700\u8981 \u5220\u9664 \u4ee5\u524d \u7684 \u7248\u672c \u5e76 \u5b89\u88c5 \u65b0 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla","title":"\u66f4\u65b0 Carla"},{"location":"start_quickstart/#_6","text":"\u73b0\u5728 \u60a8 \u5e94\u8be5 \u5df2\u7ecf \u542f\u52a8 \u5e76 \u8fd0\u884c \u4e86 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u5728 \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u9047\u5230 \u4efb\u4f55 \u56f0\u96be \uff0c \u8bf7 \u968f\u65f6 \u5728 Carla \u8bba\u575b \u6216 Discord \u9891\u9053 \u4e2d \u53d1\u5e16 \u3002 \u4e0b \u4e00\u6b65 \u662f \u8be6\u7ec6 \u4e86\u89e3 Carla \u7684 \u6838\u5fc3 \u6982\u5ff5 \u3002 \u9605\u8bfb \u201c \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u201d \u90e8\u5206 \u5f00\u59cb \u5b66\u4e60 \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u6709\u5173 Python API \u7c7b \u548c \u65b9\u6cd5 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u524d\u5f80 \uff1a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"\u8ddf\u8fdb"},{"location":"todo/","text":"\u5f85 \u505a \u6280\u672f \u6587\u6863 \u68c0\u67e5 \u6587\u6863 \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \u3001 \u524d\u540e \u4e0d \u4e00\u81f4 \u7b49 \uff1b \u5b8c\u5584 \u5bf9\u5e94 \u6587\u6863 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff08 \u505a\u597d \u914d\u7f6e \u8bf4\u660e \uff09 \uff1b \u6574\u7406 Carla \u793e\u533a \u7684 \u6587\u6863 \u3001 \u4ee3\u7801 \uff0c \u6bd4\u5982 carla \u3001 awesome \uff1b \u6574\u7406 \u795e\u7ecf \u79d1\u5b66 \u795e\u7ecf\u79d1 \u795e\u7ecf\u79d1\u5b66 \u539f\u7406 \u3001 \u524d\u989d \u53f6 \u76ae\u5c42 \u3001 \u5f3a\u5316 \u5b66\u4e60 \u5bfc\u8bba \u5fc3\u7406 \u7406\u5b66 \u5fc3\u7406\u5b66 \u7ae0\u8282 \uff1b \u5b66\u672f \u7814\u7a76 \u5b66\u672f\u7814\u7a76 \u611f\u77e5 \u76ee\u6807 \u8ddf\u8e2a \u3001 \u518d \u8bc6\u522b \u3001 \u8bed\u4e49 \u5206\u5272 \u3001 \u9aa8\u67b6 \u8bc6\u522b \u7b49 \u3002 \u89c4\u5212 \u5b9a\u4f4d \u3001 \u60ef\u89c6 \u878d\u5408 \u3001 \u5efa\u56fe \u3001 \u89c4\u5212 \u3001 \u51b3\u7b56 \u3002 \u63a7\u5236 PID \u3001 \u57fa\u4e8e \u6a21\u578b \u7684 \u63a7\u5236 \u3002 \u573a\u666f \u667a\u80fd \u4f53 \u3001 \u667a\u80fd \u9a7e\u9a76 \u3001 \u673a\u5668 \u673a\u5668\u4eba \u3001 \u65e0\u4eba \u4eba\u673a \u65e0\u4eba\u673a \u7b49 \u3002 \u63d0\u4f9b \u6570\u636e \u63d0\u4f9b\u6570\u636e \u5b6a\u751f \u5efa\u7b51 \u751f\u6210 \u7684 Python \u63a5\u53e3 \u3002 \u827a\u672f \u6539\u8fdb \u573a\u666f \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u5efa\u6a21 \uff08 \u5220\u9664 \uff09 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u7b49 \uff1b \u8d44\u4ea7 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u3001 \u884c\u4eba \u3001 \u8f66\u8f86 \u3001 \u6811\u6728 \u7b49 \uff1b \u865a\u5e7b \u5f15\u64ce \u5f15\u64ce \u4f18\u5316 \uff1a \u53ef \u53d8\u5f62 \u8d44\u4ea7 \u3001 \u8f66\u8f86 \u78b0\u649e \u3001 \u6587\u6863 \u672c\u5730 \u672c\u5730\u5316 \u6574\u7406 \u3002 \u52a0\u8f7d \u8fdb\u5ea6 \uff1b \u6709\u9650 \u6709\u9650\u5143 \u5f00\u6e90 \u591a \u7269\u7406 \u573a \u4eff\u771f \u5f15\u64ce Chrono \u3002 \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 \u5de5\u5177 Carla \u8c03\u8bd5 \u5de5\u5177","title":"\u5f85 \u505a \u5217\u8868"},{"location":"todo/#_1","text":"","title":"\u5f85 \u505a"},{"location":"todo/#_2","text":"\u68c0\u67e5 \u6587\u6863 \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \u3001 \u524d\u540e \u4e0d \u4e00\u81f4 \u7b49 \uff1b \u5b8c\u5584 \u5bf9\u5e94 \u6587\u6863 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff08 \u505a\u597d \u914d\u7f6e \u8bf4\u660e \uff09 \uff1b \u6574\u7406 Carla \u793e\u533a \u7684 \u6587\u6863 \u3001 \u4ee3\u7801 \uff0c \u6bd4\u5982 carla \u3001 awesome \uff1b \u6574\u7406 \u795e\u7ecf \u79d1\u5b66 \u795e\u7ecf\u79d1 \u795e\u7ecf\u79d1\u5b66 \u539f\u7406 \u3001 \u524d\u989d \u53f6 \u76ae\u5c42 \u3001 \u5f3a\u5316 \u5b66\u4e60 \u5bfc\u8bba \u5fc3\u7406 \u7406\u5b66 \u5fc3\u7406\u5b66 \u7ae0\u8282 \uff1b","title":"\u6280\u672f \u6587\u6863"},{"location":"todo/#_3","text":"","title":"\u5b66\u672f\u7814\u7a76"},{"location":"todo/#_4","text":"\u76ee\u6807 \u8ddf\u8e2a \u3001 \u518d \u8bc6\u522b \u3001 \u8bed\u4e49 \u5206\u5272 \u3001 \u9aa8\u67b6 \u8bc6\u522b \u7b49 \u3002","title":"\u611f\u77e5"},{"location":"todo/#_5","text":"\u5b9a\u4f4d \u3001 \u60ef\u89c6 \u878d\u5408 \u3001 \u5efa\u56fe \u3001 \u89c4\u5212 \u3001 \u51b3\u7b56 \u3002","title":"\u89c4\u5212"},{"location":"todo/#_6","text":"PID \u3001 \u57fa\u4e8e \u6a21\u578b \u7684 \u63a7\u5236 \u3002","title":"\u63a7\u5236"},{"location":"todo/#_7","text":"\u667a\u80fd \u4f53 \u3001 \u667a\u80fd \u9a7e\u9a76 \u3001 \u673a\u5668 \u673a\u5668\u4eba \u3001 \u65e0\u4eba \u4eba\u673a \u65e0\u4eba\u673a \u7b49 \u3002 \u63d0\u4f9b \u6570\u636e \u63d0\u4f9b\u6570\u636e \u5b6a\u751f \u5efa\u7b51 \u751f\u6210 \u7684 Python \u63a5\u53e3 \u3002","title":"\u573a\u666f"},{"location":"todo/#_8","text":"\u573a\u666f \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u5efa\u6a21 \uff08 \u5220\u9664 \uff09 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u7b49 \uff1b \u8d44\u4ea7 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u3001 \u884c\u4eba \u3001 \u8f66\u8f86 \u3001 \u6811\u6728 \u7b49 \uff1b","title":"\u827a\u672f \u6539\u8fdb"},{"location":"todo/#_9","text":"\u5f15\u64ce \u4f18\u5316 \uff1a \u53ef \u53d8\u5f62 \u8d44\u4ea7 \u3001 \u8f66\u8f86 \u78b0\u649e \u3001 \u6587\u6863 \u672c\u5730 \u672c\u5730\u5316 \u6574\u7406 \u3002 \u52a0\u8f7d \u8fdb\u5ea6 \uff1b","title":"\u865a\u5e7b \u5f15\u64ce"},{"location":"todo/#_10","text":"\u5f00\u6e90 \u591a \u7269\u7406 \u573a \u4eff\u771f \u5f15\u64ce Chrono \u3002","title":"\u6709\u9650\u5143"},{"location":"todo/#_11","text":"Carla \u8c03\u8bd5 \u5de5\u5177","title":"\u7b2c\u4e09\u65b9 \u5de5\u5177"},{"location":"todo_list/","text":"\u8ba1\u5212 VS \u786c\u76d8 \u786c\u76d8\u7248 \u5236\u4f5c \u53d1\u5e03 \u6267\u884c \u884c\u7a0b \u7a0b\u5e8f \u53ef\u6267\u884c\u7a0b\u5e8f make launch \u65f6\u62a5 \u9519 \uff1a could not find any instance of Visual Studio . \u7ec8\u6b62 BuildLibCarla . bat \u7684 \u6267\u884c \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8bd1 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6ce8\u91ca \u6389 Util \\ BuildTools \\ BuildCarlaUE4 . bat \u4e2d \u201c \u6784\u5efa Carla \u7f16\u8f91 \u7f16\u8f91\u5668 \u201d \u7684 \u90e8\u5206 \u3002 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6\u62a5 \u9519 \uff1a \u7531\u4e8e \u627e \u4e0d\u5230 XINPUT1 _ 3 . dll \uff0c \u65e0\u6cd5 \u7ee7\u7eed \u6267\u884c \u7ee7\u7eed\u6267\u884c \u4ee3\u7801 \u3002 \u8be5 \u52a8\u6001 \u5e93 \u6587\u4ef6 \u4f4d\u4e8e engine \\ Engine \\ Binaries \\ ThirdParty \\ AppLocalDependencies \\ Win64 \\ DirectX \u76ee\u5f55 \u4e0b \uff0c \u5e94\u8be5 \u662f \u865a\u5e7b \u5f15\u64ce \u7f16\u8bd1 \u65f6\u5411 \u7cfb\u7edf \u6ce8\u5165 \u4e86 \u4e00\u4e9b \u52a8\u6001 \u5e93 \u6587\u4ef6 \u3002 \u4f7f\u7528 \u547d\u4ee4 \u547d\u4ee4\u884c \u7f16\u8bd1 \u5de5\u7a0b sln \" C : \\ \\ Program Files ( x86 ) \\ \\ Microsoft Visual Studio \\ \\ 2019 \\ \\ Enterprise \\ \\ Common7 \\ \\ IDE \\ \\ \\ devenv . com \" UE4 . sln / Build","title":"\u8ba1\u5212"},{"location":"todo_list/#_1","text":"VS \u786c\u76d8 \u786c\u76d8\u7248 \u5236\u4f5c","title":"\u8ba1\u5212"},{"location":"todo_list/#_2","text":"make launch \u65f6\u62a5 \u9519 \uff1a could not find any instance of Visual Studio . \u7ec8\u6b62 BuildLibCarla . bat \u7684 \u6267\u884c \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8bd1 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6ce8\u91ca \u6389 Util \\ BuildTools \\ BuildCarlaUE4 . bat \u4e2d \u201c \u6784\u5efa Carla \u7f16\u8f91 \u7f16\u8f91\u5668 \u201d \u7684 \u90e8\u5206 \u3002 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6\u62a5 \u9519 \uff1a \u7531\u4e8e \u627e \u4e0d\u5230 XINPUT1 _ 3 . dll \uff0c \u65e0\u6cd5 \u7ee7\u7eed \u6267\u884c \u7ee7\u7eed\u6267\u884c \u4ee3\u7801 \u3002 \u8be5 \u52a8\u6001 \u5e93 \u6587\u4ef6 \u4f4d\u4e8e engine \\ Engine \\ Binaries \\ ThirdParty \\ AppLocalDependencies \\ Win64 \\ DirectX \u76ee\u5f55 \u4e0b \uff0c \u5e94\u8be5 \u662f \u865a\u5e7b \u5f15\u64ce \u7f16\u8bd1 \u65f6\u5411 \u7cfb\u7edf \u6ce8\u5165 \u4e86 \u4e00\u4e9b \u52a8\u6001 \u5e93 \u6587\u4ef6 \u3002 \u4f7f\u7528 \u547d\u4ee4 \u547d\u4ee4\u884c \u7f16\u8bd1 \u5de5\u7a0b sln \" C : \\ \\ Program Files ( x86 ) \\ \\ Microsoft Visual Studio \\ \\ 2019 \\ \\ Enterprise \\ \\ Common7 \\ \\ IDE \\ \\ \\ devenv . com \" UE4 . sln / Build","title":"\u53d1\u5e03 \u53ef\u6267\u884c\u7a0b\u5e8f"},{"location":"ts_traffic_simulation_overview/","text":"Carla \u4e2d \u7684 \u4ea4\u901a \u4eff\u771f \u4ea4\u901a \u4eff\u771f \u662f \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u51c6\u786e \u9ad8\u6548 \u7684 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u9009\u9879 \u6765 \u4eff\u771f \u4ea4\u901a \u548c \u7279\u5b9a \u7684 \u4ea4\u901a \u573a\u666f \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u53ef\u7528 \u9009\u9879 \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u786e\u5b9a \u6700 \u9002\u5408 \u60a8 \u7684 \u7528\u4f8b \u7684 \u9009\u9879 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 Scenario Runner \u548c OpenScenario Scenic SUMO \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u662f Carla \u4e2d \u7684 \u4e00\u4e2a \u6a21\u5757 \uff0c \u7528\u4e8e \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u4e2d \u7684 \u67d0\u4e9b \u8f66\u8f86 \u3002 carla . Vehicle . set _ autopilot \u8f66\u8f86 \u901a\u8fc7 \u65b9\u6cd5 \u6216 \u6ce8\u518c \u5230 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 command . SetAutopilot \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u63a7\u5236 \u662f \u901a\u8fc7 \u4e0d\u540c \u9636\u6bb5 \u7684 \u5faa\u73af \u6765 \u7ba1\u7406 \u7684 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u7528\u4e8e \uff1a \u7528 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u586b\u5145 \u4eff\u771f \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ea4\u901a \u884c\u4e3a \u4ee5 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002 \u5f00\u53d1 \u4e0e \u9636\u6bb5 \u76f8\u5173 \u7684 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u8f6c \u81f3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 Scenario Runner \u548c OpenScenario Scenario Runner \u63d0\u4f9b \u5f00\u7bb1 \u5373\u7528 \u7684 \u9884\u5b9a \u4e49 \u4ea4\u901a \u573a\u666f \uff0c \u8fd8 \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 Python \u6216 OpenSCENARIO 1.0 \u6807\u51c6 \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u573a\u666f \u3002 OpenSCENARIO \u7684 \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \u662f \u63cf\u8ff0 \u6d89\u53ca \u591a\u8f86 \u8f66 \u7684 \u590d\u6742 \u64cd\u4f5c \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u67e5\u770b Scenario Runner \u652f\u6301 OpenSCENARIO \u7684 \u54ea\u4e9b \u529f\u80fd \u3002 \u8fd9\u4e9b \u529f\u80fd \u5305\u62ec \u6f14\u4e60 \u3001 \u52a8\u4f5c \u3001 \u6761\u4ef6 \u3001 \u6545\u4e8b \u548c \u6545\u4e8b \u677f \u3002 Scenario Runner \u5fc5\u987b \u4e0e \u4e3b Carla \u5305 \u5206\u5f00 \u5b89\u88c5 \u3002 \u7528\u4e8e \uff1a \u521b\u5efa \u590d\u6742 \u7684 \u4ea4\u901a \u573a\u666f \u548c \u8def\u7ebf \uff0c \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u505a\u597d \u51c6\u5907 \uff0c \u4ee5\u4fbf \u5728 Carla \u6392\u884c \u6392\u884c\u699c \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u3002 \u5b9a\u4e49 \u53ef \u9488\u5bf9 \u573a\u666f \u4eff\u771f \u7684 \u8bb0\u5f55 \u8fd0\u884c \u7684 \u5b9a\u5236 \u6307\u6807 \uff0c \u4ece\u800c \u65e0\u9700 \u91cd\u590d \u8fd0\u884c \u4eff\u771f \u3002 \u8f6c \u5230 Scenario Runner Scenic Scenic \u662f \u4e00\u79cd \u7279\u5b9a \u9886\u57df \u7684 \u6982\u7387 \u7f16\u7a0b \u8bed\u8a00 \u7f16\u7a0b\u8bed\u8a00 \uff0c \u7528\u4e8e \u5bf9 \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u7b49 \u7f51\u7edc \u7269\u7406 \u7cfb\u7edf \u7684 \u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 Scenic \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u4e13\u95e8 \u9886\u57df \u6765 \u4fc3\u8fdb Scenic \u811a\u672c \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u7684 \u6267\u884c \u3002 Scenic \u573a\u666f \u5b9a\u4e49 \u6613\u4e8e \u9605\u8bfb \u548c \u6784\u5efa \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u521b\u5efa \u7b80\u5355 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u7528\u4e8e \uff1a \u4f7f\u7528 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u4e3a \u52a8\u6001 \u667a\u80fd \u4f53 \u5b9a\u4e49 \u6982\u7387 \u7b56\u7565 \uff0c \u4ee5\u4fbf \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \u91c7\u53d6 \u884c\u52a8 \u91c7\u53d6\u884c\u52a8 \u4ee5 \u54cd\u5e94 \u4e16\u754c \u72b6\u51b5 \u3002 \u8f6c \u81f3 Scenic \u6559\u7a0b SUMO SUMO \u662f \u4e00\u79cd \u5f00\u6e90 \u3001 \u5fae\u89c2 \u3001 \u591a \u6a21\u5f0f \u4ea4\u901a \u4eff\u771f \u3002 \u5728 SUMO \u4e2d \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u7ecf\u8fc7 \u660e\u786e \u5efa\u6a21 \uff0c \u6709 \u81ea\u5df1 \u7684 \u8def\u7ebf \uff0c \u5e76 \u901a\u8fc7 \u7f51\u7edc \u5355\u72ec \u79fb\u52a8 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \uff0c \u4f46 \u6709 \u591a\u79cd \u9009\u9879 \u53ef\u4ee5 \u5f15\u5165 \u968f\u673a \u968f\u673a\u6027 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u529f\u80fd \uff0c \u5141\u8bb8 \u5728 \u4e24\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u4ea7\u751f \uff0c \u5e76 \u7531 SUMO \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6240 \u505a \u7684 \u90a3\u6837 \u3002 \u7528\u4e8e \uff1a \u5728 \u4e00\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e2d \u5229\u7528 Carla \u548c SUMO \u7684 \u529f\u80fd \u3002 \u8f6c \u81f3 SUMO \u534f\u540c \u4eff\u771f \u5982\u679c \u60a8 \u5bf9 Carla \u4e2d \u4eff\u771f \u4ea4\u901a \u7684 \u4e0d\u540c \u9009\u9879 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u6216 Discord \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u4ea4\u901a"},{"location":"ts_traffic_simulation_overview/#carla","text":"\u4ea4\u901a \u4eff\u771f \u662f \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u51c6\u786e \u9ad8\u6548 \u7684 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u9009\u9879 \u6765 \u4eff\u771f \u4ea4\u901a \u548c \u7279\u5b9a \u7684 \u4ea4\u901a \u573a\u666f \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u53ef\u7528 \u9009\u9879 \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u786e\u5b9a \u6700 \u9002\u5408 \u60a8 \u7684 \u7528\u4f8b \u7684 \u9009\u9879 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 Scenario Runner \u548c OpenScenario Scenic SUMO","title":"Carla \u4e2d \u7684 \u4ea4\u901a \u4eff\u771f"},{"location":"ts_traffic_simulation_overview/#_1","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u662f Carla \u4e2d \u7684 \u4e00\u4e2a \u6a21\u5757 \uff0c \u7528\u4e8e \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u4e2d \u7684 \u67d0\u4e9b \u8f66\u8f86 \u3002 carla . Vehicle . set _ autopilot \u8f66\u8f86 \u901a\u8fc7 \u65b9\u6cd5 \u6216 \u6ce8\u518c \u5230 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 command . SetAutopilot \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u63a7\u5236 \u662f \u901a\u8fc7 \u4e0d\u540c \u9636\u6bb5 \u7684 \u5faa\u73af \u6765 \u7ba1\u7406 \u7684 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u7528\u4e8e \uff1a \u7528 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u586b\u5145 \u4eff\u771f \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ea4\u901a \u884c\u4e3a \u4ee5 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002 \u5f00\u53d1 \u4e0e \u9636\u6bb5 \u76f8\u5173 \u7684 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u8f6c \u81f3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"ts_traffic_simulation_overview/#scenario-runner-openscenario","text":"Scenario Runner \u63d0\u4f9b \u5f00\u7bb1 \u5373\u7528 \u7684 \u9884\u5b9a \u4e49 \u4ea4\u901a \u573a\u666f \uff0c \u8fd8 \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 Python \u6216 OpenSCENARIO 1.0 \u6807\u51c6 \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u573a\u666f \u3002 OpenSCENARIO \u7684 \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \u662f \u63cf\u8ff0 \u6d89\u53ca \u591a\u8f86 \u8f66 \u7684 \u590d\u6742 \u64cd\u4f5c \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u67e5\u770b Scenario Runner \u652f\u6301 OpenSCENARIO \u7684 \u54ea\u4e9b \u529f\u80fd \u3002 \u8fd9\u4e9b \u529f\u80fd \u5305\u62ec \u6f14\u4e60 \u3001 \u52a8\u4f5c \u3001 \u6761\u4ef6 \u3001 \u6545\u4e8b \u548c \u6545\u4e8b \u677f \u3002 Scenario Runner \u5fc5\u987b \u4e0e \u4e3b Carla \u5305 \u5206\u5f00 \u5b89\u88c5 \u3002 \u7528\u4e8e \uff1a \u521b\u5efa \u590d\u6742 \u7684 \u4ea4\u901a \u573a\u666f \u548c \u8def\u7ebf \uff0c \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u505a\u597d \u51c6\u5907 \uff0c \u4ee5\u4fbf \u5728 Carla \u6392\u884c \u6392\u884c\u699c \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u3002 \u5b9a\u4e49 \u53ef \u9488\u5bf9 \u573a\u666f \u4eff\u771f \u7684 \u8bb0\u5f55 \u8fd0\u884c \u7684 \u5b9a\u5236 \u6307\u6807 \uff0c \u4ece\u800c \u65e0\u9700 \u91cd\u590d \u8fd0\u884c \u4eff\u771f \u3002 \u8f6c \u5230 Scenario Runner","title":"Scenario Runner \u548c OpenScenario"},{"location":"ts_traffic_simulation_overview/#scenic","text":"Scenic \u662f \u4e00\u79cd \u7279\u5b9a \u9886\u57df \u7684 \u6982\u7387 \u7f16\u7a0b \u8bed\u8a00 \u7f16\u7a0b\u8bed\u8a00 \uff0c \u7528\u4e8e \u5bf9 \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u7b49 \u7f51\u7edc \u7269\u7406 \u7cfb\u7edf \u7684 \u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 Scenic \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u4e13\u95e8 \u9886\u57df \u6765 \u4fc3\u8fdb Scenic \u811a\u672c \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u7684 \u6267\u884c \u3002 Scenic \u573a\u666f \u5b9a\u4e49 \u6613\u4e8e \u9605\u8bfb \u548c \u6784\u5efa \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u521b\u5efa \u7b80\u5355 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u7528\u4e8e \uff1a \u4f7f\u7528 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u4e3a \u52a8\u6001 \u667a\u80fd \u4f53 \u5b9a\u4e49 \u6982\u7387 \u7b56\u7565 \uff0c \u4ee5\u4fbf \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \u91c7\u53d6 \u884c\u52a8 \u91c7\u53d6\u884c\u52a8 \u4ee5 \u54cd\u5e94 \u4e16\u754c \u72b6\u51b5 \u3002 \u8f6c \u81f3 Scenic \u6559\u7a0b","title":"Scenic"},{"location":"ts_traffic_simulation_overview/#sumo","text":"SUMO \u662f \u4e00\u79cd \u5f00\u6e90 \u3001 \u5fae\u89c2 \u3001 \u591a \u6a21\u5f0f \u4ea4\u901a \u4eff\u771f \u3002 \u5728 SUMO \u4e2d \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u7ecf\u8fc7 \u660e\u786e \u5efa\u6a21 \uff0c \u6709 \u81ea\u5df1 \u7684 \u8def\u7ebf \uff0c \u5e76 \u901a\u8fc7 \u7f51\u7edc \u5355\u72ec \u79fb\u52a8 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \uff0c \u4f46 \u6709 \u591a\u79cd \u9009\u9879 \u53ef\u4ee5 \u5f15\u5165 \u968f\u673a \u968f\u673a\u6027 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u529f\u80fd \uff0c \u5141\u8bb8 \u5728 \u4e24\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u4ea7\u751f \uff0c \u5e76 \u7531 SUMO \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6240 \u505a \u7684 \u90a3\u6837 \u3002 \u7528\u4e8e \uff1a \u5728 \u4e00\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e2d \u5229\u7528 Carla \u548c SUMO \u7684 \u529f\u80fd \u3002 \u8f6c \u81f3 SUMO \u534f\u540c \u4eff\u771f \u5982\u679c \u60a8 \u5bf9 Carla \u4e2d \u4eff\u771f \u4ea4\u901a \u7684 \u4e0d\u540c \u9009\u9879 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u6216 Discord \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"SUMO"},{"location":"tuto_A_add_props/","text":"\u6dfb\u52a0 \u65b0 \u9053\u5177 \u9664\u4e86 \u5730\u56fe \u548c \u8f66\u8f86 \u4e4b\u5916 \uff0c \u9053\u5177 \u662f \u573a\u666f \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u51c6\u5907 \u5305 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u521b\u5efa JSON \u63cf\u8ff0 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u51c6\u5907 \u5305 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 1 . \u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u4e0d \u76f8\u5173 \u3002 2 . \u521b\u5efa \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u901a\u7528 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u653e \u6240\u6709 \u9053\u5177 \uff0c \u5e76\u4e14 \u5728 \u5176\u4e2d \u5305\u542b \u4e0e \u8981 \u5bfc\u5165 \u7684 \u9053\u5177 \u4e00\u6837 \u591a \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 3 . \u5c06 \u5404\u4e2a \u9053\u5177 \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u9053\u5177 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b . fbx \u7f51\u683c \u7269\u4f53 \uff0c \u4ee5\u53ca \u5b83 \u6240 \u9700 \u7684 \u7eb9\u7406 \uff08 \u53ef \u9009 \uff09 \u3002 \u4f8b\u5982 \uff0c \u5305\u542b \u4e24\u4e2a \u72ec\u7acb \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u251c \u2500 \u2500 Package01 \u2502 \u251c \u2500 \u2500 Package01 . json \u2502 \u2514 \u2500 \u2500 Props \u2502 \u251c \u2500 \u2500 Prop01 \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Diff . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Norm . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Spec . png \u2502 \u2502 \u2514 \u2500 \u2500 Prop01 . fbx \u2502 \u2514 \u2500 \u2500 Prop02 \u2502 \u2514 \u2500 \u2500 Prop02 . fbx \u2514 \u2500 \u2500 Package02 \u251c \u2500 \u2500 Packag02 . json \u2514 \u2500 \u2500 Props \u2514 \u2500 \u2500 Prop03 \u2514 \u2500 \u2500 Prop03 . fbx \u521b\u5efa JSON \u63cf\u8ff0 \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe maps \u548c \u9053\u5177 props \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u4e0d\u662f \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8be5 \u5b9a\u4e49 \u5c06 \u4e3a \u7a7a \u3002 \u6709 \u4e00\u4e2a \u5177\u4f53 \u7684 \u6559\u7a0b \u6765 \u6dfb\u52a0 \u65b0 \u5730\u56fe \u3002 Props \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \u3002 \u9053\u5177 \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u76f8\u540c \u3002 . fbx \u7684 source \u8def\u5f84 \u3002 \u9053\u5177 \u7684 size \u4f30\u8ba1 \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u53ef\u80fd \u7684 \u503c \u3002 tiny small medium big huge \u8bed\u4e49 \u5206\u5272 \u7684 tag \u3002 \u5982\u679c \u6807\u7b7e \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \uff0c \u5b83 \u5c06 \u88ab \u8bfb\u53d6 \u4e3a Unlabeled . Bridge Building Dynamic Fence Ground GuardRail Other Pedestrian Pole RailTrack Road RoadLine SideWalk Sky Static Terrain TrafficLight TrafficSign Unlabeled Vegetation Vehicles Wall Water \u6700\u540e \uff0c . json \u5e94\u8be5 \u4e0e \u4e0b\u9762 \u7684 \u7c7b\u4f3c \u3002 { \" maps \" : [ ] , \" props \" : [ { \" name \" : \" MyProp01 \" , \" size \" : \" medium \" , \" source \" : \" . / Props / Prop01 / Prop01 . fbx \" , \" tag \" : \" SemanticSegmentationTag01 \" } , { \" name \" : \" MyProp02 \" , \" size \" : \" small \" , \" source \" : \" . / Props / Prop02 / Prop02 . fbx \" , \" tag \" : \" SemanticSegmentationTag02 \" } ] } \u8b66\u544a \u5177\u6709 \u76f8\u540c \u540d\u79f0 \u7684 \u5305 \u5c06 \u4ea7\u751f \u9519\u8bef \u3002 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u8fd9\u662f \u7528\u4e8e \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305 \uff08 \u4f8b\u5982 Carla 0.9 . 8 \uff09 \u4e2d \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u9ed1\u76d2 \u76d2\u5b50 \u9ed1\u76d2\u5b50 \uff0c \u81ea\u52a8 \u5c06 \u5305 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u955c\u50cf \u4e2d \uff0c \u5e76 \u751f\u6210 \u5206\u53d1 \u5305 \u3002 Docker \u955c\u50cf \u9700\u8981 4 \u5c0f\u65f6 \u548c 400GB \u624d\u80fd \u6784\u5efa \u3002 \u7136\u800c \uff0c \u8fd9\u4ec5 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u9700\u8981 \u3002 1 . \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u955c\u50cf \u3002 \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u6784\u5efa \u6620\u50cf \u3002 2 . \u8fd0\u884c \u811a\u672c \u6765 \u70d8\u57f9 \u9053\u5177 \u3002 ~ / carla / Util / Docker \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d\u6709 \u4e00\u4e2a \u811a\u672c \uff0c \u5b83 \u4e0e \u4e4b\u524d \u521b\u5efa \u7684 Docker \u6620\u50cf \u8fde\u63a5 \uff0c \u5e76 \u81ea\u52a8 \u8fdb\u884c \u5bfc\u5165 \u3002 \u5b83 \u53ea \u9700\u8981 \u8f93\u5165 \u548c \u8f93\u51fa \u6587\u4ef6 \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u7684 \u5305 \u7684 \u540d\u79f0 \u3002 python3 docker _ tools . py -- input ~ / path _ to _ package -- output ~ / path _ for _ output _ assets -- package = Package01 3 . \u5b9a\u4f4d \u5305 \u3002 Docker \u5e94\u8be5 \u5df2\u7ecf \u5728 \u8f93\u51fa \u8def\u5f84 \u4e2d \u751f\u6210 \u4e86 \u5305 Package01 . tar . gz \u3002 \u8fd9\u662f \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 4 . \u5c06 \u5305 \u5bfc\u5165 Carla \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u5305 \u89e3\u538b \u5230 WindowsNoEditor \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u8fd0\u884c \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \u3002 cd Util . / ImportAssets . sh \u7b14\u8bb0 Linux \u4e0a \u6709 \u4e00\u4e2a \u66ff\u4ee3 \u65b9\u6848 \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u8fd0\u884c \u811a\u672c Util / ImportAssets . sh \u4ee5 \u63d0\u53d6 \u5305 \u3002 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u8fd9 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u8bfb\u53d6 JSON \u6587\u4ef6 \u4ee5 \u5c06 \u9053\u5177 \u653e\u5165 \u865a\u5e7b \u5f15\u64ce Content \u4e2d \u3002 \u6b64\u5916 \uff0c \u5b83 \u5c06 \u5728 \u5305 \u7684 Config \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a Package1 . Package . json \u6587\u4ef6 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5b9a\u4e49 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u9053\u5177 \uff0c \u5e76 \u5728 Python API \u4e2d \u516c\u5f00 \u5b83\u4eec \u3002 \u5982\u679c \u5305 \u4f5c\u4e3a \u72ec\u7acb \u5305 \u5bfc\u51fa \uff0c \u4e5f \u5c06 \u4f7f\u7528 \u5b83 \u3002 \u4e00\u5207 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u8fd0\u884c \u547d\u4ee4 \u3002 make import \u8b66\u544a \u786e\u4fdd \u8be5\u5305 \u4f4d\u4e8e Carla \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u5c06 \u65b0 \u9053\u5177 \u5bfc\u5165 Carla \u7684 \u4e0d\u540c \u65b9\u6cd5 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u6dfb\u52a0 \u65b0 \u9053\u5177"},{"location":"tuto_A_add_props/#_1","text":"\u9664\u4e86 \u5730\u56fe \u548c \u8f66\u8f86 \u4e4b\u5916 \uff0c \u9053\u5177 \u662f \u573a\u666f \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u51c6\u5907 \u5305 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u521b\u5efa JSON \u63cf\u8ff0 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165","title":"\u6dfb\u52a0 \u65b0 \u9053\u5177"},{"location":"tuto_A_add_props/#_2","text":"","title":"\u51c6\u5907 \u5305"},{"location":"tuto_A_add_props/#_3","text":"1 . \u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u4e0d \u76f8\u5173 \u3002 2 . \u521b\u5efa \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u901a\u7528 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u653e \u6240\u6709 \u9053\u5177 \uff0c \u5e76\u4e14 \u5728 \u5176\u4e2d \u5305\u542b \u4e0e \u8981 \u5bfc\u5165 \u7684 \u9053\u5177 \u4e00\u6837 \u591a \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 3 . \u5c06 \u5404\u4e2a \u9053\u5177 \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u9053\u5177 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b . fbx \u7f51\u683c \u7269\u4f53 \uff0c \u4ee5\u53ca \u5b83 \u6240 \u9700 \u7684 \u7eb9\u7406 \uff08 \u53ef \u9009 \uff09 \u3002 \u4f8b\u5982 \uff0c \u5305\u542b \u4e24\u4e2a \u72ec\u7acb \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u251c \u2500 \u2500 Package01 \u2502 \u251c \u2500 \u2500 Package01 . json \u2502 \u2514 \u2500 \u2500 Props \u2502 \u251c \u2500 \u2500 Prop01 \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Diff . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Norm . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Spec . png \u2502 \u2502 \u2514 \u2500 \u2500 Prop01 . fbx \u2502 \u2514 \u2500 \u2500 Prop02 \u2502 \u2514 \u2500 \u2500 Prop02 . fbx \u2514 \u2500 \u2500 Package02 \u251c \u2500 \u2500 Packag02 . json \u2514 \u2500 \u2500 Props \u2514 \u2500 \u2500 Prop03 \u2514 \u2500 \u2500 Prop03 . fbx","title":"\u521b\u5efa \u6587\u4ef6\u5939 \u7ed3\u6784"},{"location":"tuto_A_add_props/#json","text":"\u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe maps \u548c \u9053\u5177 props \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u4e0d\u662f \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8be5 \u5b9a\u4e49 \u5c06 \u4e3a \u7a7a \u3002 \u6709 \u4e00\u4e2a \u5177\u4f53 \u7684 \u6559\u7a0b \u6765 \u6dfb\u52a0 \u65b0 \u5730\u56fe \u3002 Props \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \u3002 \u9053\u5177 \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u76f8\u540c \u3002 . fbx \u7684 source \u8def\u5f84 \u3002 \u9053\u5177 \u7684 size \u4f30\u8ba1 \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u53ef\u80fd \u7684 \u503c \u3002 tiny small medium big huge \u8bed\u4e49 \u5206\u5272 \u7684 tag \u3002 \u5982\u679c \u6807\u7b7e \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \uff0c \u5b83 \u5c06 \u88ab \u8bfb\u53d6 \u4e3a Unlabeled . Bridge Building Dynamic Fence Ground GuardRail Other Pedestrian Pole RailTrack Road RoadLine SideWalk Sky Static Terrain TrafficLight TrafficSign Unlabeled Vegetation Vehicles Wall Water \u6700\u540e \uff0c . json \u5e94\u8be5 \u4e0e \u4e0b\u9762 \u7684 \u7c7b\u4f3c \u3002 { \" maps \" : [ ] , \" props \" : [ { \" name \" : \" MyProp01 \" , \" size \" : \" medium \" , \" source \" : \" . / Props / Prop01 / Prop01 . fbx \" , \" tag \" : \" SemanticSegmentationTag01 \" } , { \" name \" : \" MyProp02 \" , \" size \" : \" small \" , \" source \" : \" . / Props / Prop02 / Prop02 . fbx \" , \" tag \" : \" SemanticSegmentationTag02 \" } ] } \u8b66\u544a \u5177\u6709 \u76f8\u540c \u540d\u79f0 \u7684 \u5305 \u5c06 \u4ea7\u751f \u9519\u8bef \u3002","title":"\u521b\u5efa JSON \u63cf\u8ff0"},{"location":"tuto_A_add_props/#carla","text":"\u8fd9\u662f \u7528\u4e8e \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305 \uff08 \u4f8b\u5982 Carla 0.9 . 8 \uff09 \u4e2d \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u9ed1\u76d2 \u76d2\u5b50 \u9ed1\u76d2\u5b50 \uff0c \u81ea\u52a8 \u5c06 \u5305 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u955c\u50cf \u4e2d \uff0c \u5e76 \u751f\u6210 \u5206\u53d1 \u5305 \u3002 Docker \u955c\u50cf \u9700\u8981 4 \u5c0f\u65f6 \u548c 400GB \u624d\u80fd \u6784\u5efa \u3002 \u7136\u800c \uff0c \u8fd9\u4ec5 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u9700\u8981 \u3002 1 . \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u955c\u50cf \u3002 \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u6784\u5efa \u6620\u50cf \u3002 2 . \u8fd0\u884c \u811a\u672c \u6765 \u70d8\u57f9 \u9053\u5177 \u3002 ~ / carla / Util / Docker \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d\u6709 \u4e00\u4e2a \u811a\u672c \uff0c \u5b83 \u4e0e \u4e4b\u524d \u521b\u5efa \u7684 Docker \u6620\u50cf \u8fde\u63a5 \uff0c \u5e76 \u81ea\u52a8 \u8fdb\u884c \u5bfc\u5165 \u3002 \u5b83 \u53ea \u9700\u8981 \u8f93\u5165 \u548c \u8f93\u51fa \u6587\u4ef6 \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u7684 \u5305 \u7684 \u540d\u79f0 \u3002 python3 docker _ tools . py -- input ~ / path _ to _ package -- output ~ / path _ for _ output _ assets -- package = Package01 3 . \u5b9a\u4f4d \u5305 \u3002 Docker \u5e94\u8be5 \u5df2\u7ecf \u5728 \u8f93\u51fa \u8def\u5f84 \u4e2d \u751f\u6210 \u4e86 \u5305 Package01 . tar . gz \u3002 \u8fd9\u662f \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 4 . \u5c06 \u5305 \u5bfc\u5165 Carla \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u5305 \u89e3\u538b \u5230 WindowsNoEditor \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u8fd0\u884c \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \u3002 cd Util . / ImportAssets . sh \u7b14\u8bb0 Linux \u4e0a \u6709 \u4e00\u4e2a \u66ff\u4ee3 \u65b9\u6848 \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u8fd0\u884c \u811a\u672c Util / ImportAssets . sh \u4ee5 \u63d0\u53d6 \u5305 \u3002","title":"\u5bfc\u5165\u5230 Carla \u5305\u4e2d"},{"location":"tuto_A_add_props/#_4","text":"\u8fd9 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u8bfb\u53d6 JSON \u6587\u4ef6 \u4ee5 \u5c06 \u9053\u5177 \u653e\u5165 \u865a\u5e7b \u5f15\u64ce Content \u4e2d \u3002 \u6b64\u5916 \uff0c \u5b83 \u5c06 \u5728 \u5305 \u7684 Config \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a Package1 . Package . json \u6587\u4ef6 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5b9a\u4e49 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u9053\u5177 \uff0c \u5e76 \u5728 Python API \u4e2d \u516c\u5f00 \u5b83\u4eec \u3002 \u5982\u679c \u5305 \u4f5c\u4e3a \u72ec\u7acb \u5305 \u5bfc\u51fa \uff0c \u4e5f \u5c06 \u4f7f\u7528 \u5b83 \u3002 \u4e00\u5207 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u8fd0\u884c \u547d\u4ee4 \u3002 make import \u8b66\u544a \u786e\u4fdd \u8be5\u5305 \u4f4d\u4e8e Carla \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u5c06 \u65b0 \u9053\u5177 \u5bfc\u5165 Carla \u7684 \u4e0d\u540c \u65b9\u6cd5 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u5728 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165"},{"location":"tuto_A_add_vehicle/","text":"\u6dfb\u52a0 \u65b0\u8f66 \u8fd9\u4e2a \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5411 Carla \u6dfb\u52a0 \u65b0 \u7684 \u8f66\u8f86 \u3002 \u6559\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u4e00\u4e2a \u7528\u4e8e \u56db\u8f6e \u8f66\u8f86 \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u4e24\u8f6e \u8f66\u8f86 \u3002 \u6559\u7a0b \u6982\u8ff0 \u4e86 \u5efa\u6a21 \u8f66\u8f86 \u65f6 \u5fc5\u987b \u6ee1\u8db3 \u7684 \u57fa\u672c \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u8f66\u8f86 \u5728 Carla \u4e2d \u8fd0\u884c \u826f\u597d \uff0c \u5e76 \u63d0\u4f9b \u4e86 \u5728 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u540e \u6240 \u9700 \u7684 \u914d\u7f6e \u8bf4\u660e \u3002 \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86 \u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86 \u6dfb\u52a0 2 \u8f6e \u8f66\u8f86 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u6dfb\u52a0 \u5230 Carla \u7684 \u8f66\u8f86 \u9700\u8981 \u4f7f\u7528 \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \u7684 \u901a\u7528 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u6b64 \u94fe\u63a5 \u5c06 \u4e0b\u8f7d \u4e00\u4e2a \u540d\u4e3a VehicleSkeleton . rar \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5176\u4e2d \u5305\u542b \u4e24\u79cd \u4e0d\u540c \u683c\u5f0f \u7684 \u57fa\u672c \u6846\u67b6 \uff0c \u4e00\u79cd \u4e3a ASCII \uff0c \u53e6 \u4e00\u79cd \u4e3a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u683c\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 3D \u5efa\u6a21 \u8f6f\u4ef6 \u8981\u6c42 \u3002 \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u4f4d\u7f6e \u53ef\u4ee5 \u66f4\u6539 \uff0c \u4f46 \u4efb\u4f55 \u5176\u4ed6 \u64cd\u4f5c \uff08 \u4f8b\u5982 \u65cb\u8f6c \u3001 \u6dfb\u52a0 \u65b0 \u9aa8\u9abc \u6216 \u66f4\u6539 \u5f53\u524d \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff09 \u90fd \u4f1a \u5bfc\u81f4 \u9519\u8bef \u3002 \u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86 \u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8f66\u8f86 \u5efa\u6a21 \u9636\u6bb5 \u7684 \u6700\u4f4e \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u5176 \u53ef\u4ee5 \u5728 Carla \u4e2d \u6210\u529f \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u5305\u62ec \u5c06 \u9aa8\u67b6 \u6b63\u786e \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7684 \u5e95\u5ea7 \u548c \u8f66\u8f6e \u3001 \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u548c \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \uff0c \u4ee5\u53ca \u5bfc\u51fa \u4e3a \u6b63\u786e \u7684 \u683c\u5f0f \u3002 1 . \u5bfc\u5165 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u5c06 \u57fa\u7840 \u9aa8\u67b6 \u5bfc\u5165 \u60a8 \u9996\u9009 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u4e2d \u3002 \u5e38\u89c1 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5305\u62ec Maya \u548c Blender \u3002 2 . \u7ed1\u5b9a \u9aa8\u9abc \u3002 \u6839\u636e \u4e0b\u9762 \u7684 \u547d\u540d \u6cd5\u5c06 \u9aa8\u9abc \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7f51\u683c \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u786e\u4fdd \u8f6e\u5b50 \u7684 \u9aa8\u9abc \u5728 \u7f51\u683c \u5185 \u5c45\u4e2d \u3002 \u5de6 \u524d\u8f6e \uff1a Wheel _ Front _ Left \u53f3 \u524d\u8f6e \uff1a Wheel _ Front _ Right \u5de6 \u540e\u8f6e \uff1a Wheel _ Rear _ Left \u53f3 \u540e\u8f6e \uff1a Wheel _ Rear _ Right \u7f51\u683c \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \uff1a VehicleBase \u8b66\u544a \u4e0d\u8981 \u5bf9 \u9aa8\u9abc \u540d\u79f0 \u6216 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \uff0c \u4e5f \u4e0d\u8981 \u6dfb\u52a0 \u4efb\u4f55 \u65b0 \u9aa8\u9abc \u3002 3 . \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u5efa\u6a21 \u3002 \u8f66\u8f86 \u5e94 \u62e5\u6709 \u5927\u7ea6 50 , 000 - 100 , 000 \u4e2a tris \u3002 \u6211\u4eec \u4f7f\u7528 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u6765 \u5efa\u6a21 \u8f66\u8f86 \u3002 \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u6750\u8d28 \uff1a Bodywork : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 \u3002 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 . fbx \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 Interior : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 . \u6750\u6599 \uff08 Material \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \uff08 Textures \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f T _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 T _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002 \u865a\u5e7b \u5f15\u64ce \u4f1a \u81ea\u52a8 \u521b\u5efa ( Level of Details , LOD ) \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u5728 3D \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u624b\u52a8 \u521b\u5efa \u5b83\u4eec \u3002 Tri \u8ba1\u6570 \u5982\u4e0b \uff1a LOD 0 : 100 , 000 tris LOD 1 : 80 , 000 tris LOD 2 : 60 , 000 tris LOD 3 : 30 , 000 tris 4 . \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u662f \u4e00\u4e2a \u9644\u52a0 \u7f51\u683c \uff0c \u5141\u8bb8 \u865a\u5e7b \u5f15\u64ce \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u5e94\u8be5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u7b80\u5355 \uff0c \u51cf\u5c11 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u5e76\u4e14 \u5e94\u8be5 \u8986\u76d6 \u9664 \u8f66\u8f6e \u4e4b\u5916 \u7684 \u6574\u4e2a \u8f66\u8f86 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u56fe \u7684 \u793a\u4f8b \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u5e94 \u5bfc\u51fa \u4e3a \u5355\u72ec \u7684 . fbx \u6587\u4ef6 \u3002 \u6700\u7ec8 \u6587\u4ef6 \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u6709 \u4e00\u4e2a \u57fa\u7840 \u7f51\u683c \u3002 \u8fd9 \u5e94\u8be5 \u662f \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u7684 \u526f\u672c \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u539f\u59cb \u8f66\u8f86 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u4f53 \u5fc5\u987b \u4f7f\u7528 \u683c\u5f0f UCX _ < vehicle _ name > _ < number _ of _ mesh > \u547d\u540d \uff0c \u5426\u5219 \u865a\u5e7b \u5f15\u64ce \u5c06 \u65e0\u6cd5 \u8bc6\u522b \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94 \u4e0e \u539f\u59cb \u6a21\u578b \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 . fbx \u7f51\u683c \u5bfc\u51fa \u4e3a \u540d\u4e3a SMC _ < vehicle _ name > . fbx \u7684 \u6587\u4ef6 \u3002 5 . \u4e3a \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u7f51\u683c \u3002 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u8bbe\u7f6e \u5c06 \u7531 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 RADAR \u3001 LiDAR \u548c Semantic LiDAR \uff09 \u68c0\u6d4b \u5230 \u7684 \u8f66\u8f86 \u5f62\u72b6 \u3002 \u8be5 \u7f51\u683c \u5e94\u8be5 \u5177\u6709 \u6bd4 \u7269\u7406 \u8d44\u4ea7 \u7f51\u683c \u7a0d\u5fae \u66f4 \u660e\u786e \u7684 \u51e0\u4f55 \u5f62\u72b6 \uff0c \u4ee5 \u63d0\u9ad8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4f46 \u51fa\u4e8e \u6027\u80fd \u539f\u56e0 \uff0c \u4e0d\u5982 \u6c7d\u8f66 \u7f51\u683c \u90a3\u4e48 \u8be6\u7ec6 \u3002 \u521b\u5efa \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u65f6\u8bf7 \u8003\u8651 \u4ee5\u4e0b \u51e0\u70b9 \u4ee5\u4e0b\u51e0\u70b9 \uff1a \u7f51\u683c \u5e94 \u8986\u76d6 \u8f66\u8f86 \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u5305\u62ec \u8f66\u8f6e \u3001 \u540e\u89c6 \u540e\u89c6\u955c \u548c \u683c\u6805 \u3002 \u8f6e\u5b50 \u5e94\u4e3a \u4e0d \u8d85\u8fc7 16 \u5708 \u7684 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u5c06 \u5404\u79cd \u7f51\u683c \u8fde\u63a5 \u5728 \u4e00\u8d77 \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94\u8be5 \u4e0e \u539f\u59cb \u7f51\u683c \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 \u7f51\u683c \u5bfc\u51fa \u540d\u4e3a SM _ sc _ < vehicle _ name > . fbx \u7684 . fbx \u6587\u4ef6 \u3002 5 . \u5bfc\u51fa \u8f66\u8f86 \u7f51\u683c \u3002 \u9009\u62e9 \u6240\u6709 \u4e3b\u8981 \u8f66\u8f86 \u7f51\u683c \u548c \u9aa8\u67b6 \u5e95\u5ea7 \u5e76 \u5bfc\u51fa \u4e3a . fbx \u3002 \u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86 \u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8fc7\u7a0b \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6267\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u3002 1 . \u521b\u5efa \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 Content / Carla / Static / Vehicles / 4Wheeled \u91cc \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a < vehicle _ name > \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 2 . \u5bfc\u5165 . fbx \u3002 \u5728 \u65b0 \u7684 \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u901a\u8fc7 \u5728 Content Browser \u4e2d \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u5bfc\u5165 \u5bfc\u5165\u5230 Game / Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > \u6765 \u5bfc\u5165 \u4e3b \u8f66\u8f86 \u9aa8\u67b6 . fbx \u3002 \u5728 \u5f39\u51fa \u7684 \u5bf9\u8bdd \u5bf9\u8bdd\u6846 \u4e2d \uff1a \u5c06 \u5bfc\u5165 \u5185\u5bb9 \u7c7b\u578b Import Content Type \u8bbe\u7f6e \u4e3a Geometry and Skinning Weights \u3002 \u5c06 Normal Import Method \u8bbe\u7f6e \u4e3a Import Normals \u3002 \uff08 \u53ef \u9009 \uff09 \u5c06 Material Import Method \u8bbe\u7f6e \u4e3a Do not create materials \u3002 \u53d6\u6d88 \u9009\u4e2d Import Textures \u4ee5 \u907f\u514d \u865a\u5e7b \u5f15\u64ce \u521b\u5efa \u9ed8\u8ba4 \u6750\u8d28 \u3002 \u9aa8\u67b6 \u7f51\u683c \u4f53\u5c06 \u4e0e \u4e24\u4e2a \u65b0 \u6587\u4ef6 < vehicle _ name > _ PhysicsAssets and < vehicle _ name > _ Skeleton \u4e00\u8d77 \u51fa\u73b0 \u3002 \u5c06 \u5176\u4f59 . fbx \u6587\u4ef6 \u4e0e \u4e3b \u8f66\u8f86 \u9aa8\u67b6 . fbx \u6587\u4ef6 \u5206\u5f00 \u5bfc\u5165 \u3002 3 . \u8bbe\u7f6e \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser < vehicle _ name > _ PhysicsAssets \u3002 Skeleton Tree \u9762\u677f \u4e2d \u53f3\u952e \u5355\u51fb Vehicle _ Base \u7684 \u7f51\u683c \u4f53 \uff0c \u7136\u540e \u8f6c \u5230 Copy Collision from StaticMesh \u3002 \u641c\u7d22 \u5e76 \u9009\u62e9 \u60a8 \u7684 SMC _ < vehicle _ name > \u6587\u4ef6 \u3002 \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u7684 \u8f6e\u5ed3 \u51fa\u73b0 \u5728 \u89c6 \u53e3\u4e2d \u3002 \u4ece Vehicle _ Base \u4e2d \u5220\u9664 \u9ed8\u8ba4 \u7684 \u80f6\u56ca \u5f62\u72b6 \u3002 \u9009\u62e9 \u6240\u6709 \u8f6e\u5b50 \uff1a \u8f6c \u5230 Tools \u9762\u677f \u5e76 \u5c06 \u201c \u57fa\u5143 \u7c7b\u578b Primitive Type \u201d \u66f4 \u6539\u4e3a Sphere \u3002 \u8f6c \u5230 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f Details \u9762\u677f \u5e76 \u5c06 \u7269\u7406 \u7c7b\u578b Physics Type \u66f4 \u6539\u4e3a Kinematic \u3002 \u5c06 \u7ebf\u6027 \u963b\u5c3c Linear Damping \u8bbe\u7f6e \u4e3a 0 \u3002 \u8fd9 \u5c06 \u6d88\u9664 \u8f66\u8f6e \u4e0a \u7684 \u4efb\u4f55 \u989d\u5916 \u6469\u64e6 \u3002 \u4e3a \u6240\u6709 \u7f51\u683c \u542f\u7528 Simulation Generates Hit Event \u3002 \u5355\u51fb Re - generate Bodies \u3002 \u5c06 \u8f66\u8f6e \u7403\u4f53 \u8c03\u6574 \u81f3 \u8f66\u8f6e \u5c3a\u5bf8 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 4 . \u521b\u5efa \u52a8\u753b \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u9009\u62e9 Animation - > Animation Blueprint \u3002 \u5728 \u7236\u7c7b Parent Class \u4e2d \u641c\u7d22 \u5e76 \u9009\u62e9 VehicleAnimInstance \u3002 \u5728 \u76ee\u6807 \u9aa8\u67b6 Target Skeleton \u4e2d \u641c\u7d22 \u5e76 \u9009\u62e9 < vehicle _ name > _ Skeleton \u3002 \u6309 OK \u5e76 \u5c06 \u84dd\u56fe \u547d\u540d \u91cd\u547d\u540d \u4e3a AnimBP _ < vehicle _ name > \u3002 5 . \u914d\u7f6e \u52a8\u753b \u84dd\u56fe \u3002 \u4e3a\u4e86 \u7b80\u5316 \u914d\u7f6e \u52a8\u753b \u84dd\u56fe \u7684 \u8fc7\u7a0b \uff0c \u6211\u4eec \u5c06 \u4ece \u672c\u5730 Carla \u8f66\u8f86 \u590d\u5236 \u73b0\u6709 \u7684 \u52a8\u753b \u84dd\u56fe \uff1a \u8f6c \u5230 Content / Carla / Static / Vehicle \u5e76 \u9009\u62e9 \u4efb\u4f55 Carla \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u6253\u5f00 \u5176 \u52a8\u753b \u84dd\u56fe \u3002 \u5728 My Blueprint \u9762\u677f \u4e2d \uff0c \u53cc\u51fb AnimGraph \u3002 \u60a8 \u5c06 \u770b\u5230 \u56fe\u8868 \u51fa\u73b0 \u5728 \u89c6 \u53e3\u4e2d \u3002 \u5355\u51fb \u5e76 \u62d6\u52a8 \u4ee5 \u9009\u62e9 Mesh Space Ref Pose \u3001 Wheel Handler \u548c Component To Local \u7ec4\u4ef6 \u3002 \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u590d\u5236 \u3002 \u8fd4\u56de \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u52a8\u753b \u84dd\u56fe \u5e76 \u5c06 \u590d\u5236 \u7684 \u5185\u5bb9 \u7c98\u8d34 \u5230 \u56fe\u5f62 \u533a\u57df \u4e2d \u3002 \u5355\u51fb Component To Local \u7ec4\u4ef6 \u4e2d \u7684 \u7ad9\u7acb \u4eba\u7269 \u5e76 \u5c06 \u5176 \u62d6\u52a8 \u5230 Output Pose \u4e2d \u7684 \u4eba\u7269 \uff0c \u4ee5 \u5c06 \u7ec4\u4ef6 \u8fde\u63a5 \u5728 \u4e00\u8d77 \u3002 \u5355\u51fb \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 Compile \u3002 \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u4e00\u6761 \u8109\u52a8 \u7684 \u7ebf \u6d41\u8fc7 \u6574\u4e2a \u5e8f\u5217 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 6 . \u51c6\u5907 \u8f66\u8f86 \u548c \u8f66\u8f6e \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u8f6c \u5230 Content / Carla / Blueprints / Vehicles \u5e76 \u521b\u5efa \u4e00\u4e2a \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 < vehicle _ name > \u3002 \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u8f6c\u5230 Blueprint Class \u3002 \u5728 \u5f39\u51fa \u7a97\u53e3 \u4e2d \u6253\u5f00 All Classes \u90e8\u5206 \u3002 \u641c\u7d22 BaseVehiclePawn \u5e76 \u6309 Select \u3002 \u5c06 \u6587\u4ef6 \u547d\u540d \u91cd\u547d\u540d \u4e3a BP _ < vehicle _ name > \u3002 \u8f6c \u5230 Carla / Blueprints / Vehicles \u4e2d \u4efb\u4f55 \u672c\u5730 Carla \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u5c06 \u56db\u8f6e \u84dd\u56fe \u590d\u5236 \u590d\u5236\u5230 \u60a8 \u81ea\u5df1 \u8f66\u8f86 \u7684 \u84dd\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u547d\u540d \u91cd\u547d\u540d \u6587\u4ef6 \u4ee5 \u5c06 \u65e7 \u8f66\u8f86 \u540d\u79f0 \u66ff\u6362 \u4e3a \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u540d\u79f0 \u3002 7 . \u914d\u7f6e \u8f6e\u5b50 \u84dd\u56fe \u3002 \u5728 \u8f66\u8f86 \u84dd\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u6253\u5f00 \u6240\u6709 \u56db\u4e2a \u8f66\u8f6e \u84dd\u56fe \u3002 \u5728 Class Defaults \u9762\u677f \u4e2d \uff0c \u5c06 Collision Mesh \u8bbe\u7f6e \u4e3a Wheel _ Shape \u3002 \u7701\u7565 \u6b64 \u6b65\u9aa4 \u5c06 \u5bfc\u81f4 \u8f66\u8f86 \u8f66\u8f6e \u9677\u5165 \u5730\u9762 \u3002 \u6839\u636e \u60a8 \u7684 \u8f66\u8f86 \u89c4\u683c \u8c03\u6574 \u8f66\u8f6e \u5f62\u72b6 \u534a\u5f84 \u3001 \u5bbd\u5ea6 \u3001 \u8d28\u91cf \u548c \u963b\u5c3c \u7387 \u7684 \u503c \u3002 \u5c06 \u8f6e\u80ce \u914d\u7f6e Tire Config \u8bbe\u7f6e \u4e3a CommonTireConfig \u3002 \u5728 \u524d\u8f6e \u4e0a \u6839\u636e \u60a8 \u7684 \u559c\u597d \u8bbe\u7f6e \u8f6c\u5411 \u89d2\u5ea6 Steer Angle \uff08 \u9ed8\u8ba4 \u4e3a 70 \uff09 \u3002 \u53d6\u6d88 \u9009\u4e2d Affected by Handbrake \u3002 \u5728 \u540e\u8f6e \u4e0a\u5c06 \u8f6c\u5411 \u89d2\u5ea6 Steer Angle \u8bbe\u7f6e \u4e3a 0 \u3002 \u68c0\u67e5 Affected by Handbrake \u3002 \u8bbe\u7f6e \u60ac\u67b6 \u503c\u65f6 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u6b64\u5904 \u7684 \u503c \u4f5c\u4e3a \u6307\u5bfc \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 8 . \u914d\u7f6e \u8f66\u8f86 \u84dd\u56fe \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u6253\u5f00 \u60a8 \u7684 BP _ < vehicle _ name > \u3002 \u5728 Components \u9762\u677f \u4e2d \uff0c \u9009\u62e9 Mesh ( VehicleMesh ) ( Inherited ) \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Skeletal Mesh \u5e76 \u641c\u7d22 \u5e76 \u9009\u62e9 \u8f66\u8f86 \u7684 \u57fa\u7840 \u9aa8\u67b6 \u6587\u4ef6 \uff08 \u4f4d\u4e8e Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff09 \u3002 \u8f6c \u5230 Details \u9762\u677f \u4e2d \u7684 Anim Class \u3002 \u641c\u7d22 \u5e76 \u9009\u62e9 \u60a8 \u7684 AnimBP _ < vehicle _ name > \u6587\u4ef6 \u3002 \u5728 Components \u9762\u677f \u4e2d \uff0c \u9009\u62e9 Custom Collision ( Inherited ) \u3002 \u5728 Details \u9762\u677f \u4e2d \u9009\u62e9 Static Mesh \u5e76 \u641c\u7d22 \u60a8 \u7684 SM _ sc _ < vehicle _ name > \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u4f53 \u3002 \u5728 Components \u9762\u677f \u4e2d \uff0c \u9009\u62e9 VehicleMovement ( MovementComp ) ( Inherited ) \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u641c\u7d22 wheel \u3002 \u60a8 \u5c06 \u627e\u5230 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u8bbe\u7f6e \u3002 \u5bf9\u4e8e \u6bcf \u4e00\u4e2a \uff0c \u5355\u51fb Wheel Class \u5e76 \u641c\u7d22 \u4e0e \u6b63\u786e \u8f66\u8f6e \u4f4d\u7f6e \u76f8\u5bf9 \u5e94 \u7684 BP _ < vehicle _ name > _ < wheel _ name > \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u6709 \u4efb\u4f55 \u4e0e \u57fa\u7840 \u7f51\u683c \u5206\u5f00 \u7684 \u9644\u52a0 \u7f51\u683c \uff08 \u95e8 \u3001 \u706f \u7b49 \uff09 \uff1a \u5c06 \u5b83\u4eec \u62d6 \u5230 Components \u9762\u677f \u4e2d \u7684 Mesh ( VehicleMesh ) ( Inherited ) \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u989d\u5916 \u7f51\u683c \u5e76 \u5728 Details \u9762\u677f \u4e2d \u641c\u7d22 Collision \u3002 \u5c06 \u78b0\u649e \u9884\u8bbe Collision Presets \u8bbe\u7f6e \u4e3a NoCollision \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u4efb\u4f55 \u706f\u5149 \u7f51\u683c \u3002 \u5728 Details \u9762\u677f \u4e2d \u641c\u7d22 Tag \u5e76 \u6dfb\u52a0 \u6807\u7b7e emissive \u3002 \u5355\u51fb Save \u5e76 Compile \u3002 \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u8f66\u724c \u3002 9 . \u5c06 \u8f66\u8f86 \u6dfb\u52a0 \u5230 \u84dd \u56fe\u5e93 \u4e2d \u3002 . \u5728 Content / Carla / Blueprint / Vehicle \u4e2d \uff0c \u6253\u5f00 VehicleFactory \u6587\u4ef6 \u3002 \u5728 Generate Definitions \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u53cc\u51fb Vehicles \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u5c55\u5f00 Default Value \u90e8\u5206 \u5e76 \u5411 \u8f66\u8f86 \u6570\u7ec4 \u6dfb\u52a0 \u4e00\u4e2a \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 \u586b\u5199 \u60a8 \u8f66\u8f86 \u7684 Make \u548c Model \u3002 \u4f7f\u7528 \u60a8 \u7684 BP _ < vehicle _ name > \u6587\u4ef6 \u586b\u5199 Class \u503c \u3002 \uff08 \u53ef \u9009 \uff09 \u4e3a \u8f66\u8f86 \u63d0\u4f9b \u4e00\u7ec4 \u63a8\u8350 \u989c\u8272 \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 10 . \u6d4b\u8bd5 \u8f66\u8f86 \u3002 \u542f\u52a8 Carla \uff0c \u6253\u5f00 \u7ec8\u7aef PythonAPI / examples \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a python3 manual _ control . py -- filter < model _ name > # The make or model defined in step 9 \u7b14\u8bb0 \u5373\u4f7f \u60a8 \u5728 \u54c1\u724c \u548c \u578b\u53f7 \u4e2d \u4f7f\u7528 \u4e86 \u5927\u5199 \u5b57\u7b26 \uff0c \u5b83\u4eec \u5728 \u4f20\u9012 \u7ed9 \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 \u65f6 \u4e5f \u9700\u8981 \u8f6c\u6362 \u4e3a \u5c0f\u5199 \u5b57\u7b26 \u3002 \u6dfb\u52a0 N \u8f6e \u8f66\u8f86 \u6dfb\u52a0 N \u8f6e \u8f66\u8f86 \u9075\u5faa \u4e0e \u4e0a\u8ff0 4 \u8f6e \u8f66\u8f86 \u76f8\u540c \u7684 \u5bfc\u5165 \u7ba1\u9053 \uff0c \u4f46 \u6709 \u51e0\u4e2a \u6b65\u9aa4 \u4e0d\u540c \u3002 5 . \u914d\u7f6e N \u8f6e \u8f66\u8f86 \u7684 \u52a8\u753b \u84dd\u56fe \u641c\u7d22 BaseVehiclePawnNW \u5e76 \u6309 Select \u3002 6 . \u51c6\u5907 \u8f66\u8f86 \u548c \u8f66\u8f6e \u84dd\u56fe \u8f6c \u5230 Carla / Blueprints / Vehicles \u4e2d \u6240\u6709 \u672c\u5730 Carla \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5c06 \u56db\u8f6e \u84dd\u56fe \u590d\u5236 \u590d\u5236\u5230 \u60a8 \u81ea\u5df1 \u8f66\u8f86 \u7684 \u84dd\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u547d\u540d \u91cd\u547d\u540d \u6587\u4ef6 \u4ee5 \u5c06 \u65e7 \u8f66\u8f86 \u540d\u79f0 \u66ff\u6362 \u4e3a \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u540d\u79f0 \u3002 \u590d\u5236 \u56db\u4e2a \u8f6e\u5b50 \uff0c \u7136\u540e \u518d\u6b21 \u590d\u5236 \u5176\u4ed6 \u8f6e\u5b50 \u3002 \u5982\u679c \u662f 6 \u8f6e \u8f66\u8f86 \uff0c \u60a8 \u5c06 \u9700\u8981 6 \u4e2a \u4e0d\u540c \u7684 \u8f66\u8f6e \uff1a FLW \u3001 FRW \u3001 MLW \u3001 MRW \u3001 RLW \u3001 RRW \u3002 7 . \u914d\u7f6e \u8f6e\u5b50 \u84dd\u56fe \u5bf9\u4e8e 4 \u8f6e \u8f66\u8f86 \uff0c \u8bf7 \u9075\u5faa \u4e0a\u8ff0 \u7b2c 7 \u8282 \u3002 N \u8f6e \u8f66\u8f86 \u7684 \u4e3b\u8981 \u533a\u522b \u5728\u4e8e \u624b\u5239 \u548c \u8f6c\u5411 \u53c2\u6570 \u7684 \u5f71\u54cd \u3002 \u5728 \u67d0\u4e9b \u8f66\u8f86 \uff08 \u4f8b\u5982 \u957f\u8f74 \u8f74\u8ddd \u957f\u8f74\u8ddd \u5361\u8f66 \uff09 \u4e2d \uff0c \u524d 2 \u5bf9 \u8f66\u8f6e \u5c06 \u8fdb\u884c \u8f6c\u5411 \uff0c \u5176\u4e2d \u4e00\u7ec4 \u53ef\u80fd \u6bd4 \u5176\u4ed6 \u8f66\u8f6e \u8f6c\u5411 \u66f4 \u591a \u3002 \u6700\u540e \u9762 \u7684 \u4e00\u5bf9 \u53ef\u80fd \u4f1a \u53d7\u5230 \u624b\u5239 \u7684 \u5f71\u54cd \uff0c \u5177\u4f53 \u60c5\u51b5 \u5177\u4f53\u60c5\u51b5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u6b63\u5728 \u5efa\u6a21 \u7684 \u8f66\u8f86 \u3002 8 . \u914d\u7f6e \u8f66\u8f86 \u84dd\u56fe \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \uff0c \u641c\u7d22 wheel \u3002 \u60a8 \u5c06 \u627e\u5230 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u8bbe\u7f6e \u3002 \u5bf9\u4e8e \u6bcf \u4e00\u4e2a \uff0c \u5355\u51fb \u8f66\u8f6e \u7c7b\u522b \u5e76 \u641c\u7d22 BP _ _ \u5bf9\u5e94 \u4e8e \u6b63\u786e \u8f66\u8f6e \u4f4d\u7f6e \u7684 \u6587\u4ef6 \u3002 \u8fd9\u662f \u6b63\u786e \u7684 \uff0c \u4f46 \u53ea\u662f \u4e3a\u4e86 \u6307\u5b9a \uff0c \u5728 N \u8f6e \u8f66\u8f86 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u9700\u8981 \u8bbe\u7f6e \u6240\u6709 \u8f66\u8f6e \u3002 \u8fd9\u662f 6 \u8f6e \u8f66\u8f86 \u7684 \u793a\u4f8b \uff1a \u6700\u540e \uff0c \u4e00\u4e2a \u989d\u5916 \u7684 \u8003\u8651 \u56e0\u7d20 \u662f \u8bbe\u7f6e \u5dee\u901f \u5dee\u901f\u5668 \u3002 \u5bf9\u4e8e 4 \u8f6e \u8f66\u8f86 \uff0c \u6211\u4eec \u6709 \u4e0d\u540c \u7684 \u5dee\u901f \u5dee\u901f\u5668 \u9884\u8bbe \uff08 \u9650\u6ed1 \u3001 \u5f00\u653e 4W \u7b49 \uff09 \uff0c \u4f46 \u5bf9\u4e8e N \u8f6e \u8f66\u8f86 \uff0c \u60a8 \u9700\u8981 \u9009\u62e9 \u8981 \u5728 \u54ea\u4e9b \u8f66\u8f6e \u4e0a \u5e94\u7528 \u626d\u77e9 \u3002 \u672c\u4f8b \u4e2d \u6211\u4eec \u9009\u62e9 \u53ea\u6709 \u4e2d \u540e\u8f6e \u6709 \u626d\u77e9 \uff0c \u524d\u8f6e \u6ca1\u6709 \u626d\u77e9 \uff0c \u60a8 \u53ef\u4ee5 \u6307\u5b9a \u5176\u4ed6 \u914d\u7f6e \u3002 \u8fd9\u4e9b \u6570\u5b57 \u5c06 \u4e0e \u672c\u6587 \u4e0a\u65b9 \u7684 \u56fe\u50cf \u76f8\u540c \uff08 \u4f8b\u5982 \uff0c 0 \u5c06 \u662f \u5de6 \u524d\u8f6e \uff0c \u5982\u4e0a \u6240\u8ff0 \u5982\u4e0a\u6240\u8ff0 \uff09 \u3002 \u6240\u6709 \u5176\u4ed6 \u53c2\u6570 \uff0c \u5982 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u3001 \u53d8\u901f \u53d8\u901f\u7bb1 \u3001 \u8f6c\u5411 \u66f2\u7ebf \uff0c \u5747 \u4e0e \u56db\u8f6e \u8f66\u8f86 \u76f8\u540c \u3002 \u6dfb\u52a0 2 \u8f6e \u8f66\u8f86 \u6dfb\u52a0 2 \u8f6e \u8f66\u8f86 \u4e0e \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u7c7b\u4f3c \uff0c \u4f46 \u7531\u4e8e \u52a8\u753b \u7684 \u590d\u6742 \u590d\u6742\u6027 \uff0c \u60a8 \u9700\u8981 \u8bbe\u7f6e \u989d\u5916 \u7684 \u9aa8\u9abc \u6765 \u5f15\u5bfc \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u52a8\u753b \u3002 \u8fd9 \u662f \u4e24\u8f6e \u8f66\u8f86 \u53c2\u8003 \u9aa8\u67b6 \u7684 \u94fe\u63a5 \u3002 \u4e0e 4 \u8f6e \u8f66\u8f86 \u4e00\u6837 \uff0c \u5c06 \u6a21\u578b \u671d\u5411 \u6b63 \u201c x \u201d \uff0c \u6bcf\u4e2a \u9aa8\u9abc \u8f74 \u671d\u5411 \u6b63 x \uff0c z \u8f74\u671d \u4e0a \u3002 Bone Setup : - Bike _ Rig : # The origin point of the mesh . Place it in the point 0 of the scenecomment - BikeBody : # The model ' s body centre . - Pedals : # If the vehicle is a bike bind the pedalier to this bone , will rotate with the bike acceleration . - RightPedal : # Sets the driver ' s feet position and rotates with the pedalier if the vehicle is a bike . - LeftPedal : # ^ - RearWheel : # Rear Wheel of the vehicle - Handler : # Rotates with the frontal wheel of the vehicle bind the vehicle handler to it . - HandlerMidBone : # Positioned over the front wheel bone to orient the handler with the wheel - HandlerRight : # Sets the position of the driver ' s hand , no need to bind it to anything . - HandlerLeft : # ^ - Frontwheel : # Frontal wheel of the vehicle . - RightHelperRotator : # This four additional bones are here for an obsolete system of making the bike stable by using aditional invisible wheels - RightHelprWheel : # ^ - LeftHelperRotator : # ^ - LeftHelperWheel : # ^ - Seat : # Sets the position of the drivers hip bone . No need to bind it to anything but place it carefully . 1 . \u5c06 fbx \u4f5c\u4e3a Skelletal Mesh \u5bfc\u5165 \u5bfc\u5165\u5230 \u5176 \u81ea\u5df1 \u7684 Content / Carla / Static / Vehicles / 2Wheeled \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5bfc\u5165 \u65f6 \uff0c \u9009\u62e9 \u201c General2WheeledVehicleSkeleton \u201d \u4f5c\u4e3a \u9aa8\u67b6 \uff0c \u5e94 \u81ea\u52a8 \u521b\u5efa \u5e76 \u94fe\u63a5 \u7269\u7406 \u8d44\u6e90 \u3002 2 . \u8c03\u6574 \u7269\u7406 \u8d44\u6e90 \u3002 \u5220\u9664 \u81ea\u52a8 \u521b\u5efa \u7684 \u6846 \u5e76 \u5411 BikeBody \u9aa8\u9abc \u6dfb\u52a0 \u6846 \uff0c \u5c1d\u8bd5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5339\u914d \u5f62\u72b6 \uff0c \u786e\u4fdd \u542f\u7528 \u751f\u6210 \u547d\u4e2d \u4e8b\u4ef6 \u3002 \u4e3a \u6bcf\u4e2a \u8f6e\u5b50 \u6dfb\u52a0 \u4e00\u4e2a \u7403\u4f53 \u5e76 \u5c06 \u5176 \u201c \u7269\u7406 \u7c7b\u578b \u201d \u8bbe\u7f6e \u4e3a \u201c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u201d \u3002 3 . \u521b\u5efa Content / Blueprints / Vehicles / < vehicle - model > \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 4 . \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u521b\u5efa \u4e24\u4e2a \u6d3e\u751f \u81ea \u201c VehicleWheel \u201d \u7c7b \u7684 \u84dd\u56fe \u7c7b \u3002 \u8c03\u7528 < vehicle - model > _ FrontWheel \u548c < vehicle - model > _ RearWheel \u3002 \u5c06 \u5176 \" Shape Radius \" \u8bbe\u7f6e \u4e3a \u4e0e \u7f51\u683c \u8f6e \u534a\u5f84 \u5b8c\u5168 \u5339\u914d \uff08 \u5c0f\u5fc3 \uff0c \u534a\u5f84 \u4e0d\u662f \u76f4\u5f84 \uff09 \u3002 \u5c06 \u5176 \u201c \u8f6e\u80ce \u914d\u7f6e \u201d \u8bbe\u7f6e \u4e3a \u201c CommonTireConfig \u201d \u3002 \u5728 \u524d\u8f6e \u4e0a \u53d6\u6d88 \u9009\u4e2d \u201c \u53d7 \u624b\u5239 \u5f71\u54cd \u201d \uff0c \u5728 \u540e\u8f6e \u4e0a\u5c06 \u201c \u8f6c\u5411 \u89d2 \u201d \u8bbe\u7f6e \u4e3a \u96f6 \u3002 5 . \u5728 \u540c\u4e00 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u521b\u5efa \u4e00\u4e2a \u6d3e\u751f Base2WheeledVehicle \u7684 \u84dd\u56fe \u7c7b \uff0c \u5e76 \u8c03\u7528 \u5b83 < vehicle - model > \u3002 \u6253\u5f00 \u5b83 \u8fdb\u884c \u7f16\u8f91 \uff0c \u9009\u62e9 \u7ec4\u4ef6 \u201c Mesh \u201d \uff0c \u5c06 \u201c Skeletal Mesh \u201d \u548c \u201c Anim Class \u201d \u8bbe\u7f6e \u4e3a \u76f8\u5e94 \u7684 \u3002 \u7136\u540e \u9009\u62e9 VehicleBounds \u7ec4\u4ef6 \u5e76 \u8bbe\u7f6e \u5927\u5c0f \u4ee5 \u8986\u76d6 \u8f66\u8f86 \u533a\u57df \uff08 \u5982\u4e0a \u4e0a\u56fe \u5982\u4e0a\u56fe \u6240\u793a \uff09 \u3002 6 . \u9009\u62e9 \u7ec4\u4ef6 \u201c VehicleMovement \u201d \uff0c \u5728 \u201c Vehicle Setup \u201d \u4e0b \u5c55\u5f00 \u201c Wheel Setups \u201d \uff0c \u8bbe\u7f6e \u5404\u4e2a \u8f66\u8f6e \u3002 0 : \u8f6e\u7c7b = < vehicle - model > _ FrontWheel , \u9aa8\u9abc \u540d\u79f0 = FrontWheel 1 : \u8f6e\u7c7b = < vehicle - model > _ FrontWheel , \u9aa8\u9abc \u540d\u79f0 = FrontWheel 2 : \u8f6e\u7c7b = < vehicle - model > _ RearWheel , \u9aa8\u9abc \u540d\u79f0 = RearWheel 3 : \u8f6e\u7c7b = < vehicle - model > _ RearWheel , \u9aa8\u9abc \u540d\u79f0 = RearWheel \uff08 \u60a8 \u4f1a \u6ce8\u610f \u5230 \uff0c \u6211\u4eec \u57fa\u672c \u57fa\u672c\u4e0a \u5728 \u6bcf\u4e2a \u9aa8\u9abc \u4e2d \u653e\u7f6e \u4e86 \u4e24\u4e2a \u8f6e\u5b50 \u3002 unreal \u63d0\u4f9b \u7684 \u8f66\u8f86 \u7c7b\u522b \u4e0d \u652f\u6301 \u8f66\u8f6e \u7f16\u53f7 \u4e0d\u540c \u540c\u4e8e \u4e0d\u540c\u4e8e 4 \u7684 \u8f66\u8f86 \uff0c \u56e0\u6b64 \u6211\u4eec \u5fc5\u987b \u8ba9 \u5b83 \u76f8\u4fe1 \u8f66\u8f86 \u5177\u6709 4 \u4e2a \u8f6e\u5b50 \uff09 7 . \u9009\u62e9 \u53d8\u91cf \" is bike \" \uff0c \u5982\u679c \u60a8 \u7684 \u578b\u53f7 \u662f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff0c \u5219 \u52fe\u9009 \u5b83 \u3002 \u8fd9 \u5c06 \u6fc0\u6d3b \u8e0f\u677f \u65cb\u8f6c \u3002 \u5982\u679c \u60a8 \u8981 \u5b89\u88c5 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \uff0c \u8bf7 \u4e0d\u8981 \u6807\u8bb0 \u3002 8 . \u627e\u5230 \u53d8\u91cf back Rotation \u5e76 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u66f4 \u5408\u9002 \u7684 \u4f4d\u7f6e \uff0c \u66f4\u597d \u5730 \u9009\u62e9 \u7ec4\u4ef6 SkeletalMesh \uff08 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \uff09 \u5e76 \u5c06 \u5176 \u6cbf x \u8f74 \u79fb\u52a8 \uff0c \u76f4\u5230 \u5176 \u4f4d\u4e8e \u5ea7\u6905 \u4f4d\u7f6e \u3002 9 . \u6d4b\u8bd5 \u4e00\u4e0b \uff0c \u8fdb\u5165 CarlaGameMode \u84dd\u56fe \u5e76 \u5c06 \u201c Default Pawn Class \u201d \u66f4 \u6539\u4e3a \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u84dd\u56fe \u3002","title":"\u6dfb\u52a0 \u65b0 \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#_1","text":"\u8fd9\u4e2a \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5411 Carla \u6dfb\u52a0 \u65b0 \u7684 \u8f66\u8f86 \u3002 \u6559\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u4e00\u4e2a \u7528\u4e8e \u56db\u8f6e \u8f66\u8f86 \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u4e24\u8f6e \u8f66\u8f86 \u3002 \u6559\u7a0b \u6982\u8ff0 \u4e86 \u5efa\u6a21 \u8f66\u8f86 \u65f6 \u5fc5\u987b \u6ee1\u8db3 \u7684 \u57fa\u672c \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u8f66\u8f86 \u5728 Carla \u4e2d \u8fd0\u884c \u826f\u597d \uff0c \u5e76 \u63d0\u4f9b \u4e86 \u5728 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u540e \u6240 \u9700 \u7684 \u914d\u7f6e \u8bf4\u660e \u3002 \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86 \u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86 \u6dfb\u52a0 2 \u8f6e \u8f66\u8f86 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002","title":"\u6dfb\u52a0 \u65b0\u8f66"},{"location":"tuto_A_add_vehicle/#4","text":"\u6dfb\u52a0 \u5230 Carla \u7684 \u8f66\u8f86 \u9700\u8981 \u4f7f\u7528 \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \u7684 \u901a\u7528 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u6b64 \u94fe\u63a5 \u5c06 \u4e0b\u8f7d \u4e00\u4e2a \u540d\u4e3a VehicleSkeleton . rar \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5176\u4e2d \u5305\u542b \u4e24\u79cd \u4e0d\u540c \u683c\u5f0f \u7684 \u57fa\u672c \u6846\u67b6 \uff0c \u4e00\u79cd \u4e3a ASCII \uff0c \u53e6 \u4e00\u79cd \u4e3a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u683c\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 3D \u5efa\u6a21 \u8f6f\u4ef6 \u8981\u6c42 \u3002 \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u4f4d\u7f6e \u53ef\u4ee5 \u66f4\u6539 \uff0c \u4f46 \u4efb\u4f55 \u5176\u4ed6 \u64cd\u4f5c \uff08 \u4f8b\u5982 \u65cb\u8f6c \u3001 \u6dfb\u52a0 \u65b0 \u9aa8\u9abc \u6216 \u66f4\u6539 \u5f53\u524d \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff09 \u90fd \u4f1a \u5bfc\u81f4 \u9519\u8bef \u3002","title":"\u6dfb\u52a0 4 \u8f6e \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#_2","text":"\u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8f66\u8f86 \u5efa\u6a21 \u9636\u6bb5 \u7684 \u6700\u4f4e \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u5176 \u53ef\u4ee5 \u5728 Carla \u4e2d \u6210\u529f \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u5305\u62ec \u5c06 \u9aa8\u67b6 \u6b63\u786e \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7684 \u5e95\u5ea7 \u548c \u8f66\u8f6e \u3001 \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u548c \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \uff0c \u4ee5\u53ca \u5bfc\u51fa \u4e3a \u6b63\u786e \u7684 \u683c\u5f0f \u3002 1 . \u5bfc\u5165 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u5c06 \u57fa\u7840 \u9aa8\u67b6 \u5bfc\u5165 \u60a8 \u9996\u9009 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u4e2d \u3002 \u5e38\u89c1 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5305\u62ec Maya \u548c Blender \u3002 2 . \u7ed1\u5b9a \u9aa8\u9abc \u3002 \u6839\u636e \u4e0b\u9762 \u7684 \u547d\u540d \u6cd5\u5c06 \u9aa8\u9abc \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7f51\u683c \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u786e\u4fdd \u8f6e\u5b50 \u7684 \u9aa8\u9abc \u5728 \u7f51\u683c \u5185 \u5c45\u4e2d \u3002 \u5de6 \u524d\u8f6e \uff1a Wheel _ Front _ Left \u53f3 \u524d\u8f6e \uff1a Wheel _ Front _ Right \u5de6 \u540e\u8f6e \uff1a Wheel _ Rear _ Left \u53f3 \u540e\u8f6e \uff1a Wheel _ Rear _ Right \u7f51\u683c \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \uff1a VehicleBase \u8b66\u544a \u4e0d\u8981 \u5bf9 \u9aa8\u9abc \u540d\u79f0 \u6216 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \uff0c \u4e5f \u4e0d\u8981 \u6dfb\u52a0 \u4efb\u4f55 \u65b0 \u9aa8\u9abc \u3002 3 . \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u5efa\u6a21 \u3002 \u8f66\u8f86 \u5e94 \u62e5\u6709 \u5927\u7ea6 50 , 000 - 100 , 000 \u4e2a tris \u3002 \u6211\u4eec \u4f7f\u7528 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u6765 \u5efa\u6a21 \u8f66\u8f86 \u3002 \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u6750\u8d28 \uff1a Bodywork : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 \u3002 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 . fbx \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 Interior : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 . \u6750\u6599 \uff08 Material \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \uff08 Textures \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f T _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 T _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002 \u865a\u5e7b \u5f15\u64ce \u4f1a \u81ea\u52a8 \u521b\u5efa ( Level of Details , LOD ) \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u5728 3D \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u624b\u52a8 \u521b\u5efa \u5b83\u4eec \u3002 Tri \u8ba1\u6570 \u5982\u4e0b \uff1a LOD 0 : 100 , 000 tris LOD 1 : 80 , 000 tris LOD 2 : 60 , 000 tris LOD 3 : 30 , 000 tris 4 . \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u662f \u4e00\u4e2a \u9644\u52a0 \u7f51\u683c \uff0c \u5141\u8bb8 \u865a\u5e7b \u5f15\u64ce \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u5e94\u8be5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u7b80\u5355 \uff0c \u51cf\u5c11 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u5e76\u4e14 \u5e94\u8be5 \u8986\u76d6 \u9664 \u8f66\u8f6e \u4e4b\u5916 \u7684 \u6574\u4e2a \u8f66\u8f86 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u56fe \u7684 \u793a\u4f8b \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u5e94 \u5bfc\u51fa \u4e3a \u5355\u72ec \u7684 . fbx \u6587\u4ef6 \u3002 \u6700\u7ec8 \u6587\u4ef6 \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u6709 \u4e00\u4e2a \u57fa\u7840 \u7f51\u683c \u3002 \u8fd9 \u5e94\u8be5 \u662f \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u7684 \u526f\u672c \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u539f\u59cb \u8f66\u8f86 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u4f53 \u5fc5\u987b \u4f7f\u7528 \u683c\u5f0f UCX _ < vehicle _ name > _ < number _ of _ mesh > \u547d\u540d \uff0c \u5426\u5219 \u865a\u5e7b \u5f15\u64ce \u5c06 \u65e0\u6cd5 \u8bc6\u522b \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94 \u4e0e \u539f\u59cb \u6a21\u578b \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 . fbx \u7f51\u683c \u5bfc\u51fa \u4e3a \u540d\u4e3a SMC _ < vehicle _ name > . fbx \u7684 \u6587\u4ef6 \u3002 5 . \u4e3a \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u7f51\u683c \u3002 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u8bbe\u7f6e \u5c06 \u7531 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 RADAR \u3001 LiDAR \u548c Semantic LiDAR \uff09 \u68c0\u6d4b \u5230 \u7684 \u8f66\u8f86 \u5f62\u72b6 \u3002 \u8be5 \u7f51\u683c \u5e94\u8be5 \u5177\u6709 \u6bd4 \u7269\u7406 \u8d44\u4ea7 \u7f51\u683c \u7a0d\u5fae \u66f4 \u660e\u786e \u7684 \u51e0\u4f55 \u5f62\u72b6 \uff0c \u4ee5 \u63d0\u9ad8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4f46 \u51fa\u4e8e \u6027\u80fd \u539f\u56e0 \uff0c \u4e0d\u5982 \u6c7d\u8f66 \u7f51\u683c \u90a3\u4e48 \u8be6\u7ec6 \u3002 \u521b\u5efa \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u65f6\u8bf7 \u8003\u8651 \u4ee5\u4e0b \u51e0\u70b9 \u4ee5\u4e0b\u51e0\u70b9 \uff1a \u7f51\u683c \u5e94 \u8986\u76d6 \u8f66\u8f86 \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u5305\u62ec \u8f66\u8f6e \u3001 \u540e\u89c6 \u540e\u89c6\u955c \u548c \u683c\u6805 \u3002 \u8f6e\u5b50 \u5e94\u4e3a \u4e0d \u8d85\u8fc7 16 \u5708 \u7684 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u5c06 \u5404\u79cd \u7f51\u683c \u8fde\u63a5 \u5728 \u4e00\u8d77 \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94\u8be5 \u4e0e \u539f\u59cb \u7f51\u683c \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 \u7f51\u683c \u5bfc\u51fa \u540d\u4e3a SM _ sc _ < vehicle _ name > . fbx \u7684 . fbx \u6587\u4ef6 \u3002 5 . \u5bfc\u51fa \u8f66\u8f86 \u7f51\u683c \u3002 \u9009\u62e9 \u6240\u6709 \u4e3b\u8981 \u8f66\u8f86 \u7f51\u683c \u548c \u9aa8\u67b6 \u5e95\u5ea7 \u5e76 \u5bfc\u51fa \u4e3a . fbx \u3002","title":"\u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#_3","text":"\u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8fc7\u7a0b \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6267\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u3002 1 . \u521b\u5efa \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 Content / Carla / Static / Vehicles / 4Wheeled \u91cc \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a < vehicle _ name > \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 2 . \u5bfc\u5165 . fbx \u3002 \u5728 \u65b0 \u7684 \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u901a\u8fc7 \u5728 Content Browser \u4e2d \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u5bfc\u5165 \u5bfc\u5165\u5230 Game / Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > \u6765 \u5bfc\u5165 \u4e3b \u8f66\u8f86 \u9aa8\u67b6 . fbx \u3002 \u5728 \u5f39\u51fa \u7684 \u5bf9\u8bdd \u5bf9\u8bdd\u6846 \u4e2d \uff1a \u5c06 \u5bfc\u5165 \u5185\u5bb9 \u7c7b\u578b Import Content Type \u8bbe\u7f6e \u4e3a Geometry and Skinning Weights \u3002 \u5c06 Normal Import Method \u8bbe\u7f6e \u4e3a Import Normals \u3002 \uff08 \u53ef \u9009 \uff09 \u5c06 Material Import Method \u8bbe\u7f6e \u4e3a Do not create materials \u3002 \u53d6\u6d88 \u9009\u4e2d Import Textures \u4ee5 \u907f\u514d \u865a\u5e7b \u5f15\u64ce \u521b\u5efa \u9ed8\u8ba4 \u6750\u8d28 \u3002 \u9aa8\u67b6 \u7f51\u683c \u4f53\u5c06 \u4e0e \u4e24\u4e2a \u65b0 \u6587\u4ef6 < vehicle _ name > _ PhysicsAssets and < vehicle _ name > _ Skeleton \u4e00\u8d77 \u51fa\u73b0 \u3002 \u5c06 \u5176\u4f59 . fbx \u6587\u4ef6 \u4e0e \u4e3b \u8f66\u8f86 \u9aa8\u67b6 . fbx \u6587\u4ef6 \u5206\u5f00 \u5bfc\u5165 \u3002 3 . \u8bbe\u7f6e \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser < vehicle _ name > _ PhysicsAssets \u3002 Skeleton Tree \u9762\u677f \u4e2d \u53f3\u952e \u5355\u51fb Vehicle _ Base \u7684 \u7f51\u683c \u4f53 \uff0c \u7136\u540e \u8f6c \u5230 Copy Collision from StaticMesh \u3002 \u641c\u7d22 \u5e76 \u9009\u62e9 \u60a8 \u7684 SMC _ < vehicle _ name > \u6587\u4ef6 \u3002 \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u7684 \u8f6e\u5ed3 \u51fa\u73b0 \u5728 \u89c6 \u53e3\u4e2d \u3002 \u4ece Vehicle _ Base \u4e2d \u5220\u9664 \u9ed8\u8ba4 \u7684 \u80f6\u56ca \u5f62\u72b6 \u3002 \u9009\u62e9 \u6240\u6709 \u8f6e\u5b50 \uff1a \u8f6c \u5230 Tools \u9762\u677f \u5e76 \u5c06 \u201c \u57fa\u5143 \u7c7b\u578b Primitive Type \u201d \u66f4 \u6539\u4e3a Sphere \u3002 \u8f6c \u5230 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f Details \u9762\u677f \u5e76 \u5c06 \u7269\u7406 \u7c7b\u578b Physics Type \u66f4 \u6539\u4e3a Kinematic \u3002 \u5c06 \u7ebf\u6027 \u963b\u5c3c Linear Damping \u8bbe\u7f6e \u4e3a 0 \u3002 \u8fd9 \u5c06 \u6d88\u9664 \u8f66\u8f6e \u4e0a \u7684 \u4efb\u4f55 \u989d\u5916 \u6469\u64e6 \u3002 \u4e3a \u6240\u6709 \u7f51\u683c \u542f\u7528 Simulation Generates Hit Event \u3002 \u5355\u51fb Re - generate Bodies \u3002 \u5c06 \u8f66\u8f6e \u7403\u4f53 \u8c03\u6574 \u81f3 \u8f66\u8f6e \u5c3a\u5bf8 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 4 . \u521b\u5efa \u52a8\u753b \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u9009\u62e9 Animation - > Animation Blueprint \u3002 \u5728 \u7236\u7c7b Parent Class \u4e2d \u641c\u7d22 \u5e76 \u9009\u62e9 VehicleAnimInstance \u3002 \u5728 \u76ee\u6807 \u9aa8\u67b6 Target Skeleton \u4e2d \u641c\u7d22 \u5e76 \u9009\u62e9 < vehicle _ name > _ Skeleton \u3002 \u6309 OK \u5e76 \u5c06 \u84dd\u56fe \u547d\u540d \u91cd\u547d\u540d \u4e3a AnimBP _ < vehicle _ name > \u3002 5 . \u914d\u7f6e \u52a8\u753b \u84dd\u56fe \u3002 \u4e3a\u4e86 \u7b80\u5316 \u914d\u7f6e \u52a8\u753b \u84dd\u56fe \u7684 \u8fc7\u7a0b \uff0c \u6211\u4eec \u5c06 \u4ece \u672c\u5730 Carla \u8f66\u8f86 \u590d\u5236 \u73b0\u6709 \u7684 \u52a8\u753b \u84dd\u56fe \uff1a \u8f6c \u5230 Content / Carla / Static / Vehicle \u5e76 \u9009\u62e9 \u4efb\u4f55 Carla \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u6253\u5f00 \u5176 \u52a8\u753b \u84dd\u56fe \u3002 \u5728 My Blueprint \u9762\u677f \u4e2d \uff0c \u53cc\u51fb AnimGraph \u3002 \u60a8 \u5c06 \u770b\u5230 \u56fe\u8868 \u51fa\u73b0 \u5728 \u89c6 \u53e3\u4e2d \u3002 \u5355\u51fb \u5e76 \u62d6\u52a8 \u4ee5 \u9009\u62e9 Mesh Space Ref Pose \u3001 Wheel Handler \u548c Component To Local \u7ec4\u4ef6 \u3002 \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u590d\u5236 \u3002 \u8fd4\u56de \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u52a8\u753b \u84dd\u56fe \u5e76 \u5c06 \u590d\u5236 \u7684 \u5185\u5bb9 \u7c98\u8d34 \u5230 \u56fe\u5f62 \u533a\u57df \u4e2d \u3002 \u5355\u51fb Component To Local \u7ec4\u4ef6 \u4e2d \u7684 \u7ad9\u7acb \u4eba\u7269 \u5e76 \u5c06 \u5176 \u62d6\u52a8 \u5230 Output Pose \u4e2d \u7684 \u4eba\u7269 \uff0c \u4ee5 \u5c06 \u7ec4\u4ef6 \u8fde\u63a5 \u5728 \u4e00\u8d77 \u3002 \u5355\u51fb \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 Compile \u3002 \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u4e00\u6761 \u8109\u52a8 \u7684 \u7ebf \u6d41\u8fc7 \u6574\u4e2a \u5e8f\u5217 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 6 . \u51c6\u5907 \u8f66\u8f86 \u548c \u8f66\u8f6e \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u8f6c \u5230 Content / Carla / Blueprints / Vehicles \u5e76 \u521b\u5efa \u4e00\u4e2a \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 < vehicle _ name > \u3002 \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u8f6c\u5230 Blueprint Class \u3002 \u5728 \u5f39\u51fa \u7a97\u53e3 \u4e2d \u6253\u5f00 All Classes \u90e8\u5206 \u3002 \u641c\u7d22 BaseVehiclePawn \u5e76 \u6309 Select \u3002 \u5c06 \u6587\u4ef6 \u547d\u540d \u91cd\u547d\u540d \u4e3a BP _ < vehicle _ name > \u3002 \u8f6c \u5230 Carla / Blueprints / Vehicles \u4e2d \u4efb\u4f55 \u672c\u5730 Carla \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u5c06 \u56db\u8f6e \u84dd\u56fe \u590d\u5236 \u590d\u5236\u5230 \u60a8 \u81ea\u5df1 \u8f66\u8f86 \u7684 \u84dd\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u547d\u540d \u91cd\u547d\u540d \u6587\u4ef6 \u4ee5 \u5c06 \u65e7 \u8f66\u8f86 \u540d\u79f0 \u66ff\u6362 \u4e3a \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u540d\u79f0 \u3002 7 . \u914d\u7f6e \u8f6e\u5b50 \u84dd\u56fe \u3002 \u5728 \u8f66\u8f86 \u84dd\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u6253\u5f00 \u6240\u6709 \u56db\u4e2a \u8f66\u8f6e \u84dd\u56fe \u3002 \u5728 Class Defaults \u9762\u677f \u4e2d \uff0c \u5c06 Collision Mesh \u8bbe\u7f6e \u4e3a Wheel _ Shape \u3002 \u7701\u7565 \u6b64 \u6b65\u9aa4 \u5c06 \u5bfc\u81f4 \u8f66\u8f86 \u8f66\u8f6e \u9677\u5165 \u5730\u9762 \u3002 \u6839\u636e \u60a8 \u7684 \u8f66\u8f86 \u89c4\u683c \u8c03\u6574 \u8f66\u8f6e \u5f62\u72b6 \u534a\u5f84 \u3001 \u5bbd\u5ea6 \u3001 \u8d28\u91cf \u548c \u963b\u5c3c \u7387 \u7684 \u503c \u3002 \u5c06 \u8f6e\u80ce \u914d\u7f6e Tire Config \u8bbe\u7f6e \u4e3a CommonTireConfig \u3002 \u5728 \u524d\u8f6e \u4e0a \u6839\u636e \u60a8 \u7684 \u559c\u597d \u8bbe\u7f6e \u8f6c\u5411 \u89d2\u5ea6 Steer Angle \uff08 \u9ed8\u8ba4 \u4e3a 70 \uff09 \u3002 \u53d6\u6d88 \u9009\u4e2d Affected by Handbrake \u3002 \u5728 \u540e\u8f6e \u4e0a\u5c06 \u8f6c\u5411 \u89d2\u5ea6 Steer Angle \u8bbe\u7f6e \u4e3a 0 \u3002 \u68c0\u67e5 Affected by Handbrake \u3002 \u8bbe\u7f6e \u60ac\u67b6 \u503c\u65f6 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u6b64\u5904 \u7684 \u503c \u4f5c\u4e3a \u6307\u5bfc \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 8 . \u914d\u7f6e \u8f66\u8f86 \u84dd\u56fe \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u6253\u5f00 \u60a8 \u7684 BP _ < vehicle _ name > \u3002 \u5728 Components \u9762\u677f \u4e2d \uff0c \u9009\u62e9 Mesh ( VehicleMesh ) ( Inherited ) \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Skeletal Mesh \u5e76 \u641c\u7d22 \u5e76 \u9009\u62e9 \u8f66\u8f86 \u7684 \u57fa\u7840 \u9aa8\u67b6 \u6587\u4ef6 \uff08 \u4f4d\u4e8e Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff09 \u3002 \u8f6c \u5230 Details \u9762\u677f \u4e2d \u7684 Anim Class \u3002 \u641c\u7d22 \u5e76 \u9009\u62e9 \u60a8 \u7684 AnimBP _ < vehicle _ name > \u6587\u4ef6 \u3002 \u5728 Components \u9762\u677f \u4e2d \uff0c \u9009\u62e9 Custom Collision ( Inherited ) \u3002 \u5728 Details \u9762\u677f \u4e2d \u9009\u62e9 Static Mesh \u5e76 \u641c\u7d22 \u60a8 \u7684 SM _ sc _ < vehicle _ name > \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u4f53 \u3002 \u5728 Components \u9762\u677f \u4e2d \uff0c \u9009\u62e9 VehicleMovement ( MovementComp ) ( Inherited ) \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u641c\u7d22 wheel \u3002 \u60a8 \u5c06 \u627e\u5230 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u8bbe\u7f6e \u3002 \u5bf9\u4e8e \u6bcf \u4e00\u4e2a \uff0c \u5355\u51fb Wheel Class \u5e76 \u641c\u7d22 \u4e0e \u6b63\u786e \u8f66\u8f6e \u4f4d\u7f6e \u76f8\u5bf9 \u5e94 \u7684 BP _ < vehicle _ name > _ < wheel _ name > \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u6709 \u4efb\u4f55 \u4e0e \u57fa\u7840 \u7f51\u683c \u5206\u5f00 \u7684 \u9644\u52a0 \u7f51\u683c \uff08 \u95e8 \u3001 \u706f \u7b49 \uff09 \uff1a \u5c06 \u5b83\u4eec \u62d6 \u5230 Components \u9762\u677f \u4e2d \u7684 Mesh ( VehicleMesh ) ( Inherited ) \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u989d\u5916 \u7f51\u683c \u5e76 \u5728 Details \u9762\u677f \u4e2d \u641c\u7d22 Collision \u3002 \u5c06 \u78b0\u649e \u9884\u8bbe Collision Presets \u8bbe\u7f6e \u4e3a NoCollision \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u4efb\u4f55 \u706f\u5149 \u7f51\u683c \u3002 \u5728 Details \u9762\u677f \u4e2d \u641c\u7d22 Tag \u5e76 \u6dfb\u52a0 \u6807\u7b7e emissive \u3002 \u5355\u51fb Save \u5e76 Compile \u3002 \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u8f66\u724c \u3002 9 . \u5c06 \u8f66\u8f86 \u6dfb\u52a0 \u5230 \u84dd \u56fe\u5e93 \u4e2d \u3002 . \u5728 Content / Carla / Blueprint / Vehicle \u4e2d \uff0c \u6253\u5f00 VehicleFactory \u6587\u4ef6 \u3002 \u5728 Generate Definitions \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u53cc\u51fb Vehicles \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u5c55\u5f00 Default Value \u90e8\u5206 \u5e76 \u5411 \u8f66\u8f86 \u6570\u7ec4 \u6dfb\u52a0 \u4e00\u4e2a \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 \u586b\u5199 \u60a8 \u8f66\u8f86 \u7684 Make \u548c Model \u3002 \u4f7f\u7528 \u60a8 \u7684 BP _ < vehicle _ name > \u6587\u4ef6 \u586b\u5199 Class \u503c \u3002 \uff08 \u53ef \u9009 \uff09 \u4e3a \u8f66\u8f86 \u63d0\u4f9b \u4e00\u7ec4 \u63a8\u8350 \u989c\u8272 \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 10 . \u6d4b\u8bd5 \u8f66\u8f86 \u3002 \u542f\u52a8 Carla \uff0c \u6253\u5f00 \u7ec8\u7aef PythonAPI / examples \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a python3 manual _ control . py -- filter < model _ name > # The make or model defined in step 9 \u7b14\u8bb0 \u5373\u4f7f \u60a8 \u5728 \u54c1\u724c \u548c \u578b\u53f7 \u4e2d \u4f7f\u7528 \u4e86 \u5927\u5199 \u5b57\u7b26 \uff0c \u5b83\u4eec \u5728 \u4f20\u9012 \u7ed9 \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 \u65f6 \u4e5f \u9700\u8981 \u8f6c\u6362 \u4e3a \u5c0f\u5199 \u5b57\u7b26 \u3002","title":"\u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#n","text":"\u6dfb\u52a0 N \u8f6e \u8f66\u8f86 \u9075\u5faa \u4e0e \u4e0a\u8ff0 4 \u8f6e \u8f66\u8f86 \u76f8\u540c \u7684 \u5bfc\u5165 \u7ba1\u9053 \uff0c \u4f46 \u6709 \u51e0\u4e2a \u6b65\u9aa4 \u4e0d\u540c \u3002 5 . \u914d\u7f6e N \u8f6e \u8f66\u8f86 \u7684 \u52a8\u753b \u84dd\u56fe \u641c\u7d22 BaseVehiclePawnNW \u5e76 \u6309 Select \u3002 6 . \u51c6\u5907 \u8f66\u8f86 \u548c \u8f66\u8f6e \u84dd\u56fe \u8f6c \u5230 Carla / Blueprints / Vehicles \u4e2d \u6240\u6709 \u672c\u5730 Carla \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5c06 \u56db\u8f6e \u84dd\u56fe \u590d\u5236 \u590d\u5236\u5230 \u60a8 \u81ea\u5df1 \u8f66\u8f86 \u7684 \u84dd\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u547d\u540d \u91cd\u547d\u540d \u6587\u4ef6 \u4ee5 \u5c06 \u65e7 \u8f66\u8f86 \u540d\u79f0 \u66ff\u6362 \u4e3a \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u540d\u79f0 \u3002 \u590d\u5236 \u56db\u4e2a \u8f6e\u5b50 \uff0c \u7136\u540e \u518d\u6b21 \u590d\u5236 \u5176\u4ed6 \u8f6e\u5b50 \u3002 \u5982\u679c \u662f 6 \u8f6e \u8f66\u8f86 \uff0c \u60a8 \u5c06 \u9700\u8981 6 \u4e2a \u4e0d\u540c \u7684 \u8f66\u8f6e \uff1a FLW \u3001 FRW \u3001 MLW \u3001 MRW \u3001 RLW \u3001 RRW \u3002 7 . \u914d\u7f6e \u8f6e\u5b50 \u84dd\u56fe \u5bf9\u4e8e 4 \u8f6e \u8f66\u8f86 \uff0c \u8bf7 \u9075\u5faa \u4e0a\u8ff0 \u7b2c 7 \u8282 \u3002 N \u8f6e \u8f66\u8f86 \u7684 \u4e3b\u8981 \u533a\u522b \u5728\u4e8e \u624b\u5239 \u548c \u8f6c\u5411 \u53c2\u6570 \u7684 \u5f71\u54cd \u3002 \u5728 \u67d0\u4e9b \u8f66\u8f86 \uff08 \u4f8b\u5982 \u957f\u8f74 \u8f74\u8ddd \u957f\u8f74\u8ddd \u5361\u8f66 \uff09 \u4e2d \uff0c \u524d 2 \u5bf9 \u8f66\u8f6e \u5c06 \u8fdb\u884c \u8f6c\u5411 \uff0c \u5176\u4e2d \u4e00\u7ec4 \u53ef\u80fd \u6bd4 \u5176\u4ed6 \u8f66\u8f6e \u8f6c\u5411 \u66f4 \u591a \u3002 \u6700\u540e \u9762 \u7684 \u4e00\u5bf9 \u53ef\u80fd \u4f1a \u53d7\u5230 \u624b\u5239 \u7684 \u5f71\u54cd \uff0c \u5177\u4f53 \u60c5\u51b5 \u5177\u4f53\u60c5\u51b5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u6b63\u5728 \u5efa\u6a21 \u7684 \u8f66\u8f86 \u3002 8 . \u914d\u7f6e \u8f66\u8f86 \u84dd\u56fe \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \uff0c \u641c\u7d22 wheel \u3002 \u60a8 \u5c06 \u627e\u5230 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u8bbe\u7f6e \u3002 \u5bf9\u4e8e \u6bcf \u4e00\u4e2a \uff0c \u5355\u51fb \u8f66\u8f6e \u7c7b\u522b \u5e76 \u641c\u7d22 BP _ _ \u5bf9\u5e94 \u4e8e \u6b63\u786e \u8f66\u8f6e \u4f4d\u7f6e \u7684 \u6587\u4ef6 \u3002 \u8fd9\u662f \u6b63\u786e \u7684 \uff0c \u4f46 \u53ea\u662f \u4e3a\u4e86 \u6307\u5b9a \uff0c \u5728 N \u8f6e \u8f66\u8f86 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u9700\u8981 \u8bbe\u7f6e \u6240\u6709 \u8f66\u8f6e \u3002 \u8fd9\u662f 6 \u8f6e \u8f66\u8f86 \u7684 \u793a\u4f8b \uff1a \u6700\u540e \uff0c \u4e00\u4e2a \u989d\u5916 \u7684 \u8003\u8651 \u56e0\u7d20 \u662f \u8bbe\u7f6e \u5dee\u901f \u5dee\u901f\u5668 \u3002 \u5bf9\u4e8e 4 \u8f6e \u8f66\u8f86 \uff0c \u6211\u4eec \u6709 \u4e0d\u540c \u7684 \u5dee\u901f \u5dee\u901f\u5668 \u9884\u8bbe \uff08 \u9650\u6ed1 \u3001 \u5f00\u653e 4W \u7b49 \uff09 \uff0c \u4f46 \u5bf9\u4e8e N \u8f6e \u8f66\u8f86 \uff0c \u60a8 \u9700\u8981 \u9009\u62e9 \u8981 \u5728 \u54ea\u4e9b \u8f66\u8f6e \u4e0a \u5e94\u7528 \u626d\u77e9 \u3002 \u672c\u4f8b \u4e2d \u6211\u4eec \u9009\u62e9 \u53ea\u6709 \u4e2d \u540e\u8f6e \u6709 \u626d\u77e9 \uff0c \u524d\u8f6e \u6ca1\u6709 \u626d\u77e9 \uff0c \u60a8 \u53ef\u4ee5 \u6307\u5b9a \u5176\u4ed6 \u914d\u7f6e \u3002 \u8fd9\u4e9b \u6570\u5b57 \u5c06 \u4e0e \u672c\u6587 \u4e0a\u65b9 \u7684 \u56fe\u50cf \u76f8\u540c \uff08 \u4f8b\u5982 \uff0c 0 \u5c06 \u662f \u5de6 \u524d\u8f6e \uff0c \u5982\u4e0a \u6240\u8ff0 \u5982\u4e0a\u6240\u8ff0 \uff09 \u3002 \u6240\u6709 \u5176\u4ed6 \u53c2\u6570 \uff0c \u5982 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u3001 \u53d8\u901f \u53d8\u901f\u7bb1 \u3001 \u8f6c\u5411 \u66f2\u7ebf \uff0c \u5747 \u4e0e \u56db\u8f6e \u8f66\u8f86 \u76f8\u540c \u3002","title":"\u6dfb\u52a0 N \u8f6e \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#2","text":"\u6dfb\u52a0 2 \u8f6e \u8f66\u8f86 \u4e0e \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u7c7b\u4f3c \uff0c \u4f46 \u7531\u4e8e \u52a8\u753b \u7684 \u590d\u6742 \u590d\u6742\u6027 \uff0c \u60a8 \u9700\u8981 \u8bbe\u7f6e \u989d\u5916 \u7684 \u9aa8\u9abc \u6765 \u5f15\u5bfc \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u52a8\u753b \u3002 \u8fd9 \u662f \u4e24\u8f6e \u8f66\u8f86 \u53c2\u8003 \u9aa8\u67b6 \u7684 \u94fe\u63a5 \u3002 \u4e0e 4 \u8f6e \u8f66\u8f86 \u4e00\u6837 \uff0c \u5c06 \u6a21\u578b \u671d\u5411 \u6b63 \u201c x \u201d \uff0c \u6bcf\u4e2a \u9aa8\u9abc \u8f74 \u671d\u5411 \u6b63 x \uff0c z \u8f74\u671d \u4e0a \u3002 Bone Setup : - Bike _ Rig : # The origin point of the mesh . Place it in the point 0 of the scenecomment - BikeBody : # The model ' s body centre . - Pedals : # If the vehicle is a bike bind the pedalier to this bone , will rotate with the bike acceleration . - RightPedal : # Sets the driver ' s feet position and rotates with the pedalier if the vehicle is a bike . - LeftPedal : # ^ - RearWheel : # Rear Wheel of the vehicle - Handler : # Rotates with the frontal wheel of the vehicle bind the vehicle handler to it . - HandlerMidBone : # Positioned over the front wheel bone to orient the handler with the wheel - HandlerRight : # Sets the position of the driver ' s hand , no need to bind it to anything . - HandlerLeft : # ^ - Frontwheel : # Frontal wheel of the vehicle . - RightHelperRotator : # This four additional bones are here for an obsolete system of making the bike stable by using aditional invisible wheels - RightHelprWheel : # ^ - LeftHelperRotator : # ^ - LeftHelperWheel : # ^ - Seat : # Sets the position of the drivers hip bone . No need to bind it to anything but place it carefully . 1 . \u5c06 fbx \u4f5c\u4e3a Skelletal Mesh \u5bfc\u5165 \u5bfc\u5165\u5230 \u5176 \u81ea\u5df1 \u7684 Content / Carla / Static / Vehicles / 2Wheeled \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5bfc\u5165 \u65f6 \uff0c \u9009\u62e9 \u201c General2WheeledVehicleSkeleton \u201d \u4f5c\u4e3a \u9aa8\u67b6 \uff0c \u5e94 \u81ea\u52a8 \u521b\u5efa \u5e76 \u94fe\u63a5 \u7269\u7406 \u8d44\u6e90 \u3002 2 . \u8c03\u6574 \u7269\u7406 \u8d44\u6e90 \u3002 \u5220\u9664 \u81ea\u52a8 \u521b\u5efa \u7684 \u6846 \u5e76 \u5411 BikeBody \u9aa8\u9abc \u6dfb\u52a0 \u6846 \uff0c \u5c1d\u8bd5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5339\u914d \u5f62\u72b6 \uff0c \u786e\u4fdd \u542f\u7528 \u751f\u6210 \u547d\u4e2d \u4e8b\u4ef6 \u3002 \u4e3a \u6bcf\u4e2a \u8f6e\u5b50 \u6dfb\u52a0 \u4e00\u4e2a \u7403\u4f53 \u5e76 \u5c06 \u5176 \u201c \u7269\u7406 \u7c7b\u578b \u201d \u8bbe\u7f6e \u4e3a \u201c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u201d \u3002 3 . \u521b\u5efa Content / Blueprints / Vehicles / < vehicle - model > \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 4 . \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u521b\u5efa \u4e24\u4e2a \u6d3e\u751f \u81ea \u201c VehicleWheel \u201d \u7c7b \u7684 \u84dd\u56fe \u7c7b \u3002 \u8c03\u7528 < vehicle - model > _ FrontWheel \u548c < vehicle - model > _ RearWheel \u3002 \u5c06 \u5176 \" Shape Radius \" \u8bbe\u7f6e \u4e3a \u4e0e \u7f51\u683c \u8f6e \u534a\u5f84 \u5b8c\u5168 \u5339\u914d \uff08 \u5c0f\u5fc3 \uff0c \u534a\u5f84 \u4e0d\u662f \u76f4\u5f84 \uff09 \u3002 \u5c06 \u5176 \u201c \u8f6e\u80ce \u914d\u7f6e \u201d \u8bbe\u7f6e \u4e3a \u201c CommonTireConfig \u201d \u3002 \u5728 \u524d\u8f6e \u4e0a \u53d6\u6d88 \u9009\u4e2d \u201c \u53d7 \u624b\u5239 \u5f71\u54cd \u201d \uff0c \u5728 \u540e\u8f6e \u4e0a\u5c06 \u201c \u8f6c\u5411 \u89d2 \u201d \u8bbe\u7f6e \u4e3a \u96f6 \u3002 5 . \u5728 \u540c\u4e00 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u521b\u5efa \u4e00\u4e2a \u6d3e\u751f Base2WheeledVehicle \u7684 \u84dd\u56fe \u7c7b \uff0c \u5e76 \u8c03\u7528 \u5b83 < vehicle - model > \u3002 \u6253\u5f00 \u5b83 \u8fdb\u884c \u7f16\u8f91 \uff0c \u9009\u62e9 \u7ec4\u4ef6 \u201c Mesh \u201d \uff0c \u5c06 \u201c Skeletal Mesh \u201d \u548c \u201c Anim Class \u201d \u8bbe\u7f6e \u4e3a \u76f8\u5e94 \u7684 \u3002 \u7136\u540e \u9009\u62e9 VehicleBounds \u7ec4\u4ef6 \u5e76 \u8bbe\u7f6e \u5927\u5c0f \u4ee5 \u8986\u76d6 \u8f66\u8f86 \u533a\u57df \uff08 \u5982\u4e0a \u4e0a\u56fe \u5982\u4e0a\u56fe \u6240\u793a \uff09 \u3002 6 . \u9009\u62e9 \u7ec4\u4ef6 \u201c VehicleMovement \u201d \uff0c \u5728 \u201c Vehicle Setup \u201d \u4e0b \u5c55\u5f00 \u201c Wheel Setups \u201d \uff0c \u8bbe\u7f6e \u5404\u4e2a \u8f66\u8f6e \u3002 0 : \u8f6e\u7c7b = < vehicle - model > _ FrontWheel , \u9aa8\u9abc \u540d\u79f0 = FrontWheel 1 : \u8f6e\u7c7b = < vehicle - model > _ FrontWheel , \u9aa8\u9abc \u540d\u79f0 = FrontWheel 2 : \u8f6e\u7c7b = < vehicle - model > _ RearWheel , \u9aa8\u9abc \u540d\u79f0 = RearWheel 3 : \u8f6e\u7c7b = < vehicle - model > _ RearWheel , \u9aa8\u9abc \u540d\u79f0 = RearWheel \uff08 \u60a8 \u4f1a \u6ce8\u610f \u5230 \uff0c \u6211\u4eec \u57fa\u672c \u57fa\u672c\u4e0a \u5728 \u6bcf\u4e2a \u9aa8\u9abc \u4e2d \u653e\u7f6e \u4e86 \u4e24\u4e2a \u8f6e\u5b50 \u3002 unreal \u63d0\u4f9b \u7684 \u8f66\u8f86 \u7c7b\u522b \u4e0d \u652f\u6301 \u8f66\u8f6e \u7f16\u53f7 \u4e0d\u540c \u540c\u4e8e \u4e0d\u540c\u4e8e 4 \u7684 \u8f66\u8f86 \uff0c \u56e0\u6b64 \u6211\u4eec \u5fc5\u987b \u8ba9 \u5b83 \u76f8\u4fe1 \u8f66\u8f86 \u5177\u6709 4 \u4e2a \u8f6e\u5b50 \uff09 7 . \u9009\u62e9 \u53d8\u91cf \" is bike \" \uff0c \u5982\u679c \u60a8 \u7684 \u578b\u53f7 \u662f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff0c \u5219 \u52fe\u9009 \u5b83 \u3002 \u8fd9 \u5c06 \u6fc0\u6d3b \u8e0f\u677f \u65cb\u8f6c \u3002 \u5982\u679c \u60a8 \u8981 \u5b89\u88c5 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \uff0c \u8bf7 \u4e0d\u8981 \u6807\u8bb0 \u3002 8 . \u627e\u5230 \u53d8\u91cf back Rotation \u5e76 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u66f4 \u5408\u9002 \u7684 \u4f4d\u7f6e \uff0c \u66f4\u597d \u5730 \u9009\u62e9 \u7ec4\u4ef6 SkeletalMesh \uff08 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \uff09 \u5e76 \u5c06 \u5176 \u6cbf x \u8f74 \u79fb\u52a8 \uff0c \u76f4\u5230 \u5176 \u4f4d\u4e8e \u5ea7\u6905 \u4f4d\u7f6e \u3002 9 . \u6d4b\u8bd5 \u4e00\u4e0b \uff0c \u8fdb\u5165 CarlaGameMode \u84dd\u56fe \u5e76 \u5c06 \u201c Default Pawn Class \u201d \u66f4 \u6539\u4e3a \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u84dd\u56fe \u3002","title":"\u6dfb\u52a0 2 \u8f6e \u8f66\u8f86"},{"location":"tuto_A_create_standalone/","text":"\u521b\u5efa \u8d44\u4ea7 \u53d1\u884c \u5305 \u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305 \u4f7f\u7528 Docker \u5bfc\u51fa \u5305 \u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305 \u5c06 \u8d44\u4ea7 \u5bfc\u5165 \u865a\u5e7b \u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5176 \u751f\u6210 \u72ec\u7acb \u7684 \u5305 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5c06 \u5185\u5bb9 \u5206\u53d1 \u5230 Carla \u5305 \uff0c \u4f8b\u5982 0.9 . 8 \u3002 \u8981 \u5bfc\u51fa \u5305 \uff0c \u53ea \u9700 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5373\u53ef \u3002 make package ARGS = \" -- packages = Package1 , Package2 \" \u8fd9 \u5c06 \u4e3a \u5217\u51fa \u7684 \u6bcf\u4e2a \u5305 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e0a \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \uff0c \u5728 Windows \u4e0a \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u3002 \u4f7f\u7528 Docker \u5bfc\u51fa \u5305 \u865a\u5e7b \u5f15\u64ce \u548c Carla \u53ef\u4ee5 \u6784\u5efa \u5728 Docker \u6620\u50cf \u4e2d \uff0c \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 \u8be5 \u6620\u50cf \u521b\u5efa \u5305 \u6216 \u5bfc\u51fa \u8d44\u6e90 \u4ee5 \u5728 \u5305\u4e2d \u4f7f\u7528 \u3002 \u8981 \u521b\u5efa Docker \u6620\u50cf \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u51c6\u5907 \u597d \u955c\u50cf \u540e \uff1a \u5bfc\u822a \u81f3 Util / Docker \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \uff1a # \u521b\u5efa \u72ec\u7acb \u7684 \u5305 . / docker _ tools . py -- output / output / path # \u70d8\u57f9 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u4ea7 . / docker _ tools . py -- input / assets / to / import / path -- output / output / path -- packages PkgeName1 , PkgeName2 \u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305 \u72ec\u7acb \u5305 \u5305\u542b \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u3002 \u63d0\u53d6 \u65b9\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5e73\u53f0 \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u89e3\u538b \u5230 \u4e3b\u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u79fb\u81f3 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u3002 cd Import . / ImportAssets . sh \u7b14\u8bb0 \u72ec\u7acb \u5305 \u65e0\u6cd5 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u6784\u5efa \u4e2d \u3002 \u6309\u7167 \u6559\u7a0b \u5bfc\u5165 \u9053\u5177 \u3001 \u5730\u56fe \u6216 \u8f66\u8f86 \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u5982\u4f55 \u5728 Carla \u4e2d \u521b\u5efa \u548c \u4f7f\u7528 \u72ec\u7acb \u5305 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u610f\u5916 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u521b\u5efa \u72ec\u7acb \u5305"},{"location":"tuto_A_create_standalone/#_1","text":"\u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305 \u4f7f\u7528 Docker \u5bfc\u51fa \u5305 \u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305","title":"\u521b\u5efa \u8d44\u4ea7 \u53d1\u884c \u5305"},{"location":"tuto_A_create_standalone/#carla","text":"\u5c06 \u8d44\u4ea7 \u5bfc\u5165 \u865a\u5e7b \u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5176 \u751f\u6210 \u72ec\u7acb \u7684 \u5305 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5c06 \u5185\u5bb9 \u5206\u53d1 \u5230 Carla \u5305 \uff0c \u4f8b\u5982 0.9 . 8 \u3002 \u8981 \u5bfc\u51fa \u5305 \uff0c \u53ea \u9700 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5373\u53ef \u3002 make package ARGS = \" -- packages = Package1 , Package2 \" \u8fd9 \u5c06 \u4e3a \u5217\u51fa \u7684 \u6bcf\u4e2a \u5305 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e0a \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \uff0c \u5728 Windows \u4e0a \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u3002","title":"\u5728 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305"},{"location":"tuto_A_create_standalone/#docker","text":"\u865a\u5e7b \u5f15\u64ce \u548c Carla \u53ef\u4ee5 \u6784\u5efa \u5728 Docker \u6620\u50cf \u4e2d \uff0c \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 \u8be5 \u6620\u50cf \u521b\u5efa \u5305 \u6216 \u5bfc\u51fa \u8d44\u6e90 \u4ee5 \u5728 \u5305\u4e2d \u4f7f\u7528 \u3002 \u8981 \u521b\u5efa Docker \u6620\u50cf \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u51c6\u5907 \u597d \u955c\u50cf \u540e \uff1a \u5bfc\u822a \u81f3 Util / Docker \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \uff1a # \u521b\u5efa \u72ec\u7acb \u7684 \u5305 . / docker _ tools . py -- output / output / path # \u70d8\u57f9 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u4ea7 . / docker _ tools . py -- input / assets / to / import / path -- output / output / path -- packages PkgeName1 , PkgeName2","title":"\u4f7f\u7528 Docker \u5bfc\u51fa \u5305"},{"location":"tuto_A_create_standalone/#carla_1","text":"\u72ec\u7acb \u5305 \u5305\u542b \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u3002 \u63d0\u53d6 \u65b9\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5e73\u53f0 \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u89e3\u538b \u5230 \u4e3b\u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u79fb\u81f3 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u3002 cd Import . / ImportAssets . sh \u7b14\u8bb0 \u72ec\u7acb \u5305 \u65e0\u6cd5 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u6784\u5efa \u4e2d \u3002 \u6309\u7167 \u6559\u7a0b \u5bfc\u5165 \u9053\u5177 \u3001 \u5730\u56fe \u6216 \u8f66\u8f86 \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u5982\u4f55 \u5728 Carla \u4e2d \u521b\u5efa \u548c \u4f7f\u7528 \u72ec\u7acb \u5305 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u610f\u5916 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305"},{"location":"tuto_A_material_customization/","text":"\u6750\u8d28 \u5b9a\u5236 Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28 \u5916\u89c2 \u7279\u6027 \u5efa\u7b51 \u6750\u8d28 \u5b9a\u5236 \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u5728 Carla \u4e2d \uff0c \u6709 \u4e00\u7ec4 \u4e3b \u6750\u6599 \u7528\u4f5c \u8f66\u8f86 \u4e0d\u540c \u90e8\u4ef6 \u7684 \u6a21\u677f \u3002 \u4e3a \u6bcf\u4e2a \u8f66\u8f86 \u6a21\u578b \u521b\u5efa \u4e00\u4e2a \u5b9e\u4f8b \uff0c \u7136\u540e \u66f4 \u6539\u4e3a \u6240 \u9700 \u7684 \u7ed3\u679c \u3002 \u4e3b\u8981 \u6750\u8d28 \u53ef\u4ee5 \u5728 Content / Carla / Static / GenericMaterials / Vehicles \uff08 \u4f4d\u4e8e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7684 Unreal / CarlaUE4 \u76ee\u5f55 \u4e2d \uff09 \u4e2d \u627e\u5230 \uff0c \u5982\u4e0b \u6240\u793a \u3002 \u9002\u7528 \u4e8e \u6c7d\u8f66 \u7684 \u4e3b \u6750\u6599 \u3002 M _ CarExterior _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u8eab \u7684 \u6750\u8d28 \u3002 M _ CarInterior _ Master \u2014 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u5185\u90e8 \u7684 \u6750\u8d28 \u3002 M _ CarLightsGlass _ Master \u2014 \u5e94\u7528 \u4e8e \u8986\u76d6 \u8f66\u706f \u7684 \u73bb\u7483 \u7684 \u6750\u8d28 \u3002 M _ CarWindows _ Master \u2014 \u5e94\u7528 \u4e8e \u7a97\u6237 \u7684 \u6750\u8d28 \u3002 M _ CarLicensePlate _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u724c \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Master \u2014 \u4f5c\u4e3a \u53d1\u5c04 \u7eb9\u7406 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u8f66\u706f \u6c7d\u8f66\u706f \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Sirens _ Master \u2014 \u5e94\u7528 \u4e8e \u8b66\u62a5 \u8b66\u62a5\u5668 \u7684 \u6750\u8d28 \uff08 \u5982\u679c \u9002\u7528 \uff09 \u3002 \u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28 \u521b\u5efa \u4e3b \u6750\u6599 \u7684 \u5b9e\u4f8b \u5e76 \u5c06 \u5b83\u4eec \u5b58\u50a8 \u5728 \u65b0 \u6a21\u578b \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u4ee5\u4e0b \u662f \u84dd \u56fe\u5e93 \u4e2d\u4e3a \u8b66\u8f66 \u521b\u5efa \u7684 \u5b9e\u4f8b \uff0c vehicle . dodge _ charger . police \u3002 \u8b66\u8f66 \u84dd\u56fe \u7684 \u5b9e\u4f8b \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u901a\u7528 \u6587\u6863 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u4e2d \u627e\u5230 \u3002 \u6240\u6709 \u6750\u6599 \u90fd \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7a0b\u5ea6 \u7684 \u4fee\u6539 \uff0c \u4f46 \u53ea\u6709 \u5916\u89c2 \u6750\u6599 \u7684 \u6027\u80fd \u503c\u5f97 \u503c\u5f97\u4e00\u63d0 \u3002 \u5176\u4ed6 \u6750\u6599 \u5177\u6709 \u67d0\u4e9b \u53ef\u4ee5 \u66f4\u6539 \u7684 \u5c5e\u6027 \uff0c \u4f8b\u5982 \u73bb\u7483 \u6750\u6599 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u548c \u989c\u8272 \uff0c \u4f46 \u4e0d \u5efa\u8bae \u8fd9\u6837 \u505a \uff0c \u9664\u975e \u6709 \u7279\u5b9a \u7528\u9014 \u3002 \u5916\u89c2 \u7279\u6027 \u5916\u89c2 \u6750\u6599 \u5e94\u7528 \u4e8e \u8f66\u8eab \uff0c \u662f \u6700 \u53ef \u5b9a\u5236 \u7684 \u4e00\u79cd \uff08 \u53cc\u51fb M _ CarExterior _ Master \uff0c \u8fdb\u5165 \u53c2\u6570 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u9009\u9879 \u9009\u9879\u5361 \uff09 \u3002 Base color \u2014 \u8f66\u8eab \u7684 \u57fa\u8272 \u3002 Tint shade \u2014 \u8272\u8c03 \u7684 \u53ef\u89c1 \u53ef\u89c1\u5ea6 \u6839\u636e \u53ef\u89c6 \u89d2\u5ea6 \u800c \u53d8\u5316 \u3002 \u5e26\u6709 \u7c89\u7ea2 \u7ea2\u8272 \u7c89\u7ea2\u8272 \u8c03 \u7684 \u7ea2\u8272 \u6c7d\u8f66 \u3002 \u5de6\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u7981\u7528 \uff0c \u53f3\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u542f\u7528 \u3002 Global Dust \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6c61\u57a2 \u7eb9\u7406 \u3002 \u7070\u5c18 \u4f1a \u5806\u79ef \u5728 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 \u9876\u90e8 \uff0c \u800c \u5728 \u5e95\u90e8 \u51e0\u4e4e \u4e0d\u4f1a \u88ab \u6ce8\u610f \u5230 \u3002 \u5982\u679c \u65cb\u8f6c \u51e0\u4f55 \u51e0\u4f55\u4f53 \uff0c \u7070\u5c18 \u5c06 \u51fa\u73b0 \u5728 \u8f66\u8f86 \u9876\u90e8 \u7684 \u90e8\u4ef6 \u4e0a \u3002 Dust _ Amount \u2014 \u7eb9\u7406 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 DustColor \u2014 \u7070\u5c18 \u7eb9\u7406 \u7684 \u57fa\u8272 \u3002 Tiling \u2014 \u7070\u5c18 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Thickness \u2014 \u7070\u5c18 \u7684 \u5bc6\u5ea6 \u3002 Roughness \u2014 \u7531\u4e8e \u7070\u5c18 \u800c \u51cf\u5c11 \u6c7d\u8f66 \u7684 \u91d1\u5c5e \u53cd\u5c04 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u7070\u5c18 \u7279\u6027 \u3002 Global Flakes \u2014 \u6c7d\u8f66 \u91d1\u5c5e \u91d1\u5c5e\u6f06 \u4e0a \u95ea\u95ea \u53d1\u5149 \u95ea\u95ea\u53d1\u5149 \u7684 \u8584\u7247 \u3002 Flakes On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Flake Scale \u2014 \u8584\u7247 \u7684 \u5927\u5c0f \u3002 Flake Brightness \u2014 \u95ea\u5149 \u7684 \u5f3a\u5ea6 \u3002 Flakes Color \u2014 \u7c92\u5b50 \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u8584\u7247 \u7279\u6027 \u3002 Global Gain \u2014 \u6c7d\u8f66 \u5e95\u6f06 \u7684 \u566a\u97f3 \u3002 Gain On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Scale \u2014 \u589e\u76ca \u7684 \u5927\u5c0f \u3002 Color \u2014 \u589e\u76ca \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u589e\u76ca \u5c5e\u6027 \u3002 Global Mud \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6ce5\u6d46 \u7eb9\u7406 \u3002 \u6ce5\u6d46 \u4ece\u8f66 \u7684 \u5e95\u90e8 \u5230 \u9876\u90e8 \u51fa\u73b0 \u3002 Height \u2014 \u6c7d\u8f66 \u51fa\u73b0 \u6ce5\u6d46 \u7684 \u90e8\u5206 \u3002 Mud _ Color \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u7684 \u5e95\u8272 \u3002 Mud _ Tiling \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Mud _ Thickness \u2014 \u6ce5\u6d46 \u7684 \u5bc6\u5ea6 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u6ce5\u6d46 \u7279\u6027 \u3002 Global Noise \u2014 \u5e94\u7528 \u4e8e \u6750\u8d28 \u6cd5\u7ebf \u7684 \u566a\u58f0 \u3002 \u6253\u9020 \u6a59\u76ae \u6548\u679c \u3002 Noise On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Noise Scale \u2014 \u901a\u8fc7 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u521b\u5efa \u7684 \u51f9\u51f8 \u5927\u5c0f \u3002 \u6c7d\u8f66 \u6750\u8d28 \u7684 \u566a\u58f0 \u7279\u6027 \u3002 Global Surface \u2014 \u6d82 \u5728 \u8f66\u8f86 \u6cb9\u6f06 \u4e0a \u7684 \u5149\u6cfd \u548c \u900f\u660e \u6d82\u5c42 \u3002 \u8fd9\u662f \u6c7d\u8f66 \u55b7\u6f06 \u7684 \u6700\u540e \u4e00\u6b65 \u3002 Clear Coat \u2014 \u6d82\u5c42 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 Clear Coat Roughness \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff08 \u5149\u6cfd \u5149\u6cfd\u5ea6 \uff09 \u3002 Metallic \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u53cd\u5c04 \u3002 \u5e94\u7528 \u4e8e \u6750\u8d28 \u8868\u9762 \u6d82\u5c42 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5efa\u7b51 \u6750\u8d28 \u5e94\u7528 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6750\u8d28 \u7531 \u56db\u79cd \u57fa\u672c \u7eb9\u7406 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u7eb9\u7406 \u7ec4\u5408 \u5728 \u4e00\u8d77 \u786e\u5b9a \u6750\u8d28 \u7684 \u57fa\u672c \u5c5e\u6027 \uff08 \u4f8b\u5982 \u6253\u5f00 Content / Carla / Static / Building / SM _ Apartment01 _ 1 \uff09 \u3002 Diffuse \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u57fa\u672c \u7ed8\u753b \u3002 RGB \u2014 \u5e26\u6709 \u57fa\u8272 \u7684 \u901a\u9053 \u3002 Alpha \u2014 \u6b64 \u901a\u9053 \u5b9a\u4e49 \u4e00\u4e2a \u63a9\u819c \uff0c \u5141\u8bb8 \u4fee\u6539 \u767d\u8272 \u90e8\u5206 \u7684 \u989c\u8272 \u3002 \u8fd9 \u5bf9\u4e8e \u4ece \u76f8\u540c \u6750\u6599 \u521b\u5efa \u4e00\u4e9b \u53d8\u4f53 \u975e\u5e38 \u6709\u7528 \u3002 ORME \u2014 \u4f7f\u7528 \u7279\u5b9a \u901a\u9053 \u6620\u5c04 \u6750\u8d28 \u7684 \u4e0d\u540c \u5c5e\u6027 \u3002 Ambient occlusion \u2014 \u5305\u542b \u5728 R \u901a\u9053 \u4e2d \u3002 Roughness \u2014 \u5305\u542b \u5728 G \u901a\u9053 \u4e2d \u3002 Metallic map \u2014 \u5305\u542b \u5728 B \u901a\u9053 \u4e2d \u3002 Emissive mask \u2014 \u5305\u542b \u5728 Alpha \u901a\u9053 \u4e2d \u3002 \u8be5 \u63a9\u6a21 \u5141\u8bb8 \u6539\u53d8 \u767d\u8272 \u90e8\u5206 \u7684 \u53d1\u5c04 \u989c\u8272 \u548c \u5f3a\u5ea6 \u3002 Normal \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u6cd5\u7ebf \u8d34\u56fe \u3002 RGB \u2014 \u6cd5\u7ebf \u8d34\u56fe \u4fe1\u606f \u3002 Emissive \u2014 \u5982\u679c \u9002\u7528 \uff0c \u6b64 \u7eb9\u7406 \u7528\u4e8e \u8bbe\u7f6e \u7eb9\u7406 \u7684 \u81ea \u53d1\u5149 \u57fa\u8272 \u3002 RGB \u2014 \u7eb9\u7406 \u4e2d \u53d1\u5c04 \u5143\u7d20 \u7684 \u989c\u8272 \u4fe1\u606f \u3002 \u5b9a\u5236 \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u4e0e \u6c7d\u8f66 \u6750\u6599 \u7c7b\u4f3c \uff0c \u5982\u679c \u9700\u8981 \uff0c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7684 \u6539\u53d8 \uff0c \u4f46 \u4ec5 \u5f53 \u7528\u6237 \u5177\u6709 \u865a\u5e7b \u5f15\u64ce \u65b9\u9762 \u7684 \u4e00\u4e9b \u4e13\u4e1a \u77e5\u8bc6 \u4e13\u4e1a\u77e5\u8bc6 \u65f6\u624d \u5efa\u8bae \u8fd9\u6837 \u505a \u3002 \u4f46\u662f \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u4f7f\u7528 \u7684 \u4e24\u4e2a \u4e3b\u8981 \u7740\u8272 \u7740\u8272\u5668 \u53ef\u4ee5 \u8fdb\u884c \u4e00\u4e9b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff08 \u4f8b\u5982 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 Content / Carla / Static / GenericMaterials / 00 _ MasterOpt / M _ GlassMaster \uff09 \u3002 \u73bb\u7483 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ GlassMaster . Opacity \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 \u5efa\u7b51 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ MaterialMaster Global 2 . Color Variation / Change Color \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 ( Diffuse ) \u7684 Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Global 2 . Color Variation / Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive Texture \u2014 \u542f\u7528 \u81ea \u53d1\u5149 ( Emissive ) \u7eb9\u7406 \u7684 \u4f7f\u7528 \u3002 Global 3 . Emissive / EmissiveColor \u2014 \u57fa\u4e8e ORME Emissive mask \u7684 \u767d\u8272 \u533a\u57df \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive attenuance \u2014 BP _ Lights \u4e2d \u9664\u4ee5 \u5f3a\u5ea6 \u56e0\u5b50 \u4ee5 \u83b7\u5f97 \u9002\u5f53 \u7684 \u53d1\u5c04 \u503c \u3002 Global 4 . Corrections / RoughnessCorrection \u2014 \u66f4\u6539 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 Global 4 . Corrections / MetallicCorrection \u2014 \u66f4\u6539 \u91d1\u5c5e \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 NormalFlatness \u2014 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 \u8fd9\u662f \u7528\u6237 \u5b9a\u5236 \u8f66\u8f86 \u548c \u5efa\u7b51 \u5efa\u7b51\u7269 \u6750\u6599 \u7684 \u6700\u663e \u7740 \u65b9\u5f0f \u7684 \u603b\u7ed3 \u3002 \u4efb\u4f55 \u53ef\u80fd \u51fa\u73b0 \u7684 \u7591\u95ee \u90fd \u975e\u5e38 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u6750\u8d28 \u5b9a\u5236"},{"location":"tuto_A_material_customization/#_1","text":"Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28 \u5916\u89c2 \u7279\u6027 \u5efa\u7b51 \u6750\u8d28 \u5b9a\u5236 \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002","title":"\u6750\u8d28 \u5b9a\u5236"},{"location":"tuto_A_material_customization/#_2","text":"\u5728 Carla \u4e2d \uff0c \u6709 \u4e00\u7ec4 \u4e3b \u6750\u6599 \u7528\u4f5c \u8f66\u8f86 \u4e0d\u540c \u90e8\u4ef6 \u7684 \u6a21\u677f \u3002 \u4e3a \u6bcf\u4e2a \u8f66\u8f86 \u6a21\u578b \u521b\u5efa \u4e00\u4e2a \u5b9e\u4f8b \uff0c \u7136\u540e \u66f4 \u6539\u4e3a \u6240 \u9700 \u7684 \u7ed3\u679c \u3002 \u4e3b\u8981 \u6750\u8d28 \u53ef\u4ee5 \u5728 Content / Carla / Static / GenericMaterials / Vehicles \uff08 \u4f4d\u4e8e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7684 Unreal / CarlaUE4 \u76ee\u5f55 \u4e2d \uff09 \u4e2d \u627e\u5230 \uff0c \u5982\u4e0b \u6240\u793a \u3002 \u9002\u7528 \u4e8e \u6c7d\u8f66 \u7684 \u4e3b \u6750\u6599 \u3002 M _ CarExterior _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u8eab \u7684 \u6750\u8d28 \u3002 M _ CarInterior _ Master \u2014 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u5185\u90e8 \u7684 \u6750\u8d28 \u3002 M _ CarLightsGlass _ Master \u2014 \u5e94\u7528 \u4e8e \u8986\u76d6 \u8f66\u706f \u7684 \u73bb\u7483 \u7684 \u6750\u8d28 \u3002 M _ CarWindows _ Master \u2014 \u5e94\u7528 \u4e8e \u7a97\u6237 \u7684 \u6750\u8d28 \u3002 M _ CarLicensePlate _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u724c \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Master \u2014 \u4f5c\u4e3a \u53d1\u5c04 \u7eb9\u7406 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u8f66\u706f \u6c7d\u8f66\u706f \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Sirens _ Master \u2014 \u5e94\u7528 \u4e8e \u8b66\u62a5 \u8b66\u62a5\u5668 \u7684 \u6750\u8d28 \uff08 \u5982\u679c \u9002\u7528 \uff09 \u3002","title":"\u6c7d\u8f66 \u6750\u8d28"},{"location":"tuto_A_material_customization/#_3","text":"\u521b\u5efa \u4e3b \u6750\u6599 \u7684 \u5b9e\u4f8b \u5e76 \u5c06 \u5b83\u4eec \u5b58\u50a8 \u5728 \u65b0 \u6a21\u578b \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u4ee5\u4e0b \u662f \u84dd \u56fe\u5e93 \u4e2d\u4e3a \u8b66\u8f66 \u521b\u5efa \u7684 \u5b9e\u4f8b \uff0c vehicle . dodge _ charger . police \u3002 \u8b66\u8f66 \u84dd\u56fe \u7684 \u5b9e\u4f8b \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u901a\u7528 \u6587\u6863 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u4e2d \u627e\u5230 \u3002 \u6240\u6709 \u6750\u6599 \u90fd \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7a0b\u5ea6 \u7684 \u4fee\u6539 \uff0c \u4f46 \u53ea\u6709 \u5916\u89c2 \u6750\u6599 \u7684 \u6027\u80fd \u503c\u5f97 \u503c\u5f97\u4e00\u63d0 \u3002 \u5176\u4ed6 \u6750\u6599 \u5177\u6709 \u67d0\u4e9b \u53ef\u4ee5 \u66f4\u6539 \u7684 \u5c5e\u6027 \uff0c \u4f8b\u5982 \u73bb\u7483 \u6750\u6599 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u548c \u989c\u8272 \uff0c \u4f46 \u4e0d \u5efa\u8bae \u8fd9\u6837 \u505a \uff0c \u9664\u975e \u6709 \u7279\u5b9a \u7528\u9014 \u3002","title":"\u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28"},{"location":"tuto_A_material_customization/#_4","text":"\u5916\u89c2 \u6750\u6599 \u5e94\u7528 \u4e8e \u8f66\u8eab \uff0c \u662f \u6700 \u53ef \u5b9a\u5236 \u7684 \u4e00\u79cd \uff08 \u53cc\u51fb M _ CarExterior _ Master \uff0c \u8fdb\u5165 \u53c2\u6570 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u9009\u9879 \u9009\u9879\u5361 \uff09 \u3002 Base color \u2014 \u8f66\u8eab \u7684 \u57fa\u8272 \u3002 Tint shade \u2014 \u8272\u8c03 \u7684 \u53ef\u89c1 \u53ef\u89c1\u5ea6 \u6839\u636e \u53ef\u89c6 \u89d2\u5ea6 \u800c \u53d8\u5316 \u3002 \u5e26\u6709 \u7c89\u7ea2 \u7ea2\u8272 \u7c89\u7ea2\u8272 \u8c03 \u7684 \u7ea2\u8272 \u6c7d\u8f66 \u3002 \u5de6\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u7981\u7528 \uff0c \u53f3\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u542f\u7528 \u3002 Global Dust \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6c61\u57a2 \u7eb9\u7406 \u3002 \u7070\u5c18 \u4f1a \u5806\u79ef \u5728 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 \u9876\u90e8 \uff0c \u800c \u5728 \u5e95\u90e8 \u51e0\u4e4e \u4e0d\u4f1a \u88ab \u6ce8\u610f \u5230 \u3002 \u5982\u679c \u65cb\u8f6c \u51e0\u4f55 \u51e0\u4f55\u4f53 \uff0c \u7070\u5c18 \u5c06 \u51fa\u73b0 \u5728 \u8f66\u8f86 \u9876\u90e8 \u7684 \u90e8\u4ef6 \u4e0a \u3002 Dust _ Amount \u2014 \u7eb9\u7406 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 DustColor \u2014 \u7070\u5c18 \u7eb9\u7406 \u7684 \u57fa\u8272 \u3002 Tiling \u2014 \u7070\u5c18 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Thickness \u2014 \u7070\u5c18 \u7684 \u5bc6\u5ea6 \u3002 Roughness \u2014 \u7531\u4e8e \u7070\u5c18 \u800c \u51cf\u5c11 \u6c7d\u8f66 \u7684 \u91d1\u5c5e \u53cd\u5c04 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u7070\u5c18 \u7279\u6027 \u3002 Global Flakes \u2014 \u6c7d\u8f66 \u91d1\u5c5e \u91d1\u5c5e\u6f06 \u4e0a \u95ea\u95ea \u53d1\u5149 \u95ea\u95ea\u53d1\u5149 \u7684 \u8584\u7247 \u3002 Flakes On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Flake Scale \u2014 \u8584\u7247 \u7684 \u5927\u5c0f \u3002 Flake Brightness \u2014 \u95ea\u5149 \u7684 \u5f3a\u5ea6 \u3002 Flakes Color \u2014 \u7c92\u5b50 \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u8584\u7247 \u7279\u6027 \u3002 Global Gain \u2014 \u6c7d\u8f66 \u5e95\u6f06 \u7684 \u566a\u97f3 \u3002 Gain On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Scale \u2014 \u589e\u76ca \u7684 \u5927\u5c0f \u3002 Color \u2014 \u589e\u76ca \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u589e\u76ca \u5c5e\u6027 \u3002 Global Mud \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6ce5\u6d46 \u7eb9\u7406 \u3002 \u6ce5\u6d46 \u4ece\u8f66 \u7684 \u5e95\u90e8 \u5230 \u9876\u90e8 \u51fa\u73b0 \u3002 Height \u2014 \u6c7d\u8f66 \u51fa\u73b0 \u6ce5\u6d46 \u7684 \u90e8\u5206 \u3002 Mud _ Color \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u7684 \u5e95\u8272 \u3002 Mud _ Tiling \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Mud _ Thickness \u2014 \u6ce5\u6d46 \u7684 \u5bc6\u5ea6 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u6ce5\u6d46 \u7279\u6027 \u3002 Global Noise \u2014 \u5e94\u7528 \u4e8e \u6750\u8d28 \u6cd5\u7ebf \u7684 \u566a\u58f0 \u3002 \u6253\u9020 \u6a59\u76ae \u6548\u679c \u3002 Noise On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Noise Scale \u2014 \u901a\u8fc7 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u521b\u5efa \u7684 \u51f9\u51f8 \u5927\u5c0f \u3002 \u6c7d\u8f66 \u6750\u8d28 \u7684 \u566a\u58f0 \u7279\u6027 \u3002 Global Surface \u2014 \u6d82 \u5728 \u8f66\u8f86 \u6cb9\u6f06 \u4e0a \u7684 \u5149\u6cfd \u548c \u900f\u660e \u6d82\u5c42 \u3002 \u8fd9\u662f \u6c7d\u8f66 \u55b7\u6f06 \u7684 \u6700\u540e \u4e00\u6b65 \u3002 Clear Coat \u2014 \u6d82\u5c42 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 Clear Coat Roughness \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff08 \u5149\u6cfd \u5149\u6cfd\u5ea6 \uff09 \u3002 Metallic \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u53cd\u5c04 \u3002 \u5e94\u7528 \u4e8e \u6750\u8d28 \u8868\u9762 \u6d82\u5c42 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002","title":"\u5916\u89c2 \u7279\u6027"},{"location":"tuto_A_material_customization/#_5","text":"\u5e94\u7528 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6750\u8d28 \u7531 \u56db\u79cd \u57fa\u672c \u7eb9\u7406 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u7eb9\u7406 \u7ec4\u5408 \u5728 \u4e00\u8d77 \u786e\u5b9a \u6750\u8d28 \u7684 \u57fa\u672c \u5c5e\u6027 \uff08 \u4f8b\u5982 \u6253\u5f00 Content / Carla / Static / Building / SM _ Apartment01 _ 1 \uff09 \u3002 Diffuse \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u57fa\u672c \u7ed8\u753b \u3002 RGB \u2014 \u5e26\u6709 \u57fa\u8272 \u7684 \u901a\u9053 \u3002 Alpha \u2014 \u6b64 \u901a\u9053 \u5b9a\u4e49 \u4e00\u4e2a \u63a9\u819c \uff0c \u5141\u8bb8 \u4fee\u6539 \u767d\u8272 \u90e8\u5206 \u7684 \u989c\u8272 \u3002 \u8fd9 \u5bf9\u4e8e \u4ece \u76f8\u540c \u6750\u6599 \u521b\u5efa \u4e00\u4e9b \u53d8\u4f53 \u975e\u5e38 \u6709\u7528 \u3002 ORME \u2014 \u4f7f\u7528 \u7279\u5b9a \u901a\u9053 \u6620\u5c04 \u6750\u8d28 \u7684 \u4e0d\u540c \u5c5e\u6027 \u3002 Ambient occlusion \u2014 \u5305\u542b \u5728 R \u901a\u9053 \u4e2d \u3002 Roughness \u2014 \u5305\u542b \u5728 G \u901a\u9053 \u4e2d \u3002 Metallic map \u2014 \u5305\u542b \u5728 B \u901a\u9053 \u4e2d \u3002 Emissive mask \u2014 \u5305\u542b \u5728 Alpha \u901a\u9053 \u4e2d \u3002 \u8be5 \u63a9\u6a21 \u5141\u8bb8 \u6539\u53d8 \u767d\u8272 \u90e8\u5206 \u7684 \u53d1\u5c04 \u989c\u8272 \u548c \u5f3a\u5ea6 \u3002 Normal \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u6cd5\u7ebf \u8d34\u56fe \u3002 RGB \u2014 \u6cd5\u7ebf \u8d34\u56fe \u4fe1\u606f \u3002 Emissive \u2014 \u5982\u679c \u9002\u7528 \uff0c \u6b64 \u7eb9\u7406 \u7528\u4e8e \u8bbe\u7f6e \u7eb9\u7406 \u7684 \u81ea \u53d1\u5149 \u57fa\u8272 \u3002 RGB \u2014 \u7eb9\u7406 \u4e2d \u53d1\u5c04 \u5143\u7d20 \u7684 \u989c\u8272 \u4fe1\u606f \u3002","title":"\u5efa\u7b51 \u6750\u8d28"},{"location":"tuto_A_material_customization/#_6","text":"\u4e0e \u6c7d\u8f66 \u6750\u6599 \u7c7b\u4f3c \uff0c \u5982\u679c \u9700\u8981 \uff0c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7684 \u6539\u53d8 \uff0c \u4f46 \u4ec5 \u5f53 \u7528\u6237 \u5177\u6709 \u865a\u5e7b \u5f15\u64ce \u65b9\u9762 \u7684 \u4e00\u4e9b \u4e13\u4e1a \u77e5\u8bc6 \u4e13\u4e1a\u77e5\u8bc6 \u65f6\u624d \u5efa\u8bae \u8fd9\u6837 \u505a \u3002 \u4f46\u662f \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u4f7f\u7528 \u7684 \u4e24\u4e2a \u4e3b\u8981 \u7740\u8272 \u7740\u8272\u5668 \u53ef\u4ee5 \u8fdb\u884c \u4e00\u4e9b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff08 \u4f8b\u5982 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 Content / Carla / Static / GenericMaterials / 00 _ MasterOpt / M _ GlassMaster \uff09 \u3002 \u73bb\u7483 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ GlassMaster . Opacity \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 \u5efa\u7b51 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ MaterialMaster Global 2 . Color Variation / Change Color \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 ( Diffuse ) \u7684 Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Global 2 . Color Variation / Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive Texture \u2014 \u542f\u7528 \u81ea \u53d1\u5149 ( Emissive ) \u7eb9\u7406 \u7684 \u4f7f\u7528 \u3002 Global 3 . Emissive / EmissiveColor \u2014 \u57fa\u4e8e ORME Emissive mask \u7684 \u767d\u8272 \u533a\u57df \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive attenuance \u2014 BP _ Lights \u4e2d \u9664\u4ee5 \u5f3a\u5ea6 \u56e0\u5b50 \u4ee5 \u83b7\u5f97 \u9002\u5f53 \u7684 \u53d1\u5c04 \u503c \u3002 Global 4 . Corrections / RoughnessCorrection \u2014 \u66f4\u6539 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 Global 4 . Corrections / MetallicCorrection \u2014 \u66f4\u6539 \u91d1\u5c5e \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 NormalFlatness \u2014 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 \u8fd9\u662f \u7528\u6237 \u5b9a\u5236 \u8f66\u8f86 \u548c \u5efa\u7b51 \u5efa\u7b51\u7269 \u6750\u6599 \u7684 \u6700\u663e \u7740 \u65b9\u5f0f \u7684 \u603b\u7ed3 \u3002 \u4efb\u4f55 \u53ef\u80fd \u51fa\u73b0 \u7684 \u7591\u95ee \u90fd \u975e\u5e38 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u5b9a\u5236 \u5efa\u7b51\u6750\u6599"},{"location":"tuto_D_contribute_assets/","text":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u4ed3\u5e93 \u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u4ed3\u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u672c \u6587\u6863 \u5305\u542b \u5c06 \u6b64 \u94fe\u63a5 \u66f4\u65b0 \u5230 \u6700\u65b0 \u7248\u672c \u6240 \u9700 \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u590d\u5236 \u60a8 \u8981 \u94fe\u63a5 \u7684 \u5185\u5bb9 \u5305 \u7684 \u6807\u7b7e \u3002 T \u53ef\u4ee5 \u901a\u8fc7 \u67e5\u770b \u6700\u65b0 Jenkins \u6784\u5efa \u7684 \u5de5\u4ef6 \u90e8\u5206 \u4e2d \u751f\u6210 \u7684 \u5305 \u540d\u79f0 \u6765 \u627e\u5230 \u6b64 \u6807\u7b7e \uff0c \u4f8b\u5982 20190617 _ 086f97f . tar . gz \u3002 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 ContentVersions . txt \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 \u6587\u4ef6 \u672b\u5c3e \u6765 \u7f16\u8f91 Edit ContentVersions . txt \uff0c \u4f8b\u5982 Latest : 20190617 _ 086f97f ( \u4e0d \u5305\u62ec . tar . gz \u90e8\u5206 \uff09 \u3002 \u6253\u5f00 \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6253\u5f00 \u65b0 \u7684 \u62c9\u53d6 \u8bf7\u6c42 \u3002","title":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9"},{"location":"tuto_D_contribute_assets/#_1","text":"\u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u4ed3\u5e93 \u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u4ed3\u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u672c \u6587\u6863 \u5305\u542b \u5c06 \u6b64 \u94fe\u63a5 \u66f4\u65b0 \u5230 \u6700\u65b0 \u7248\u672c \u6240 \u9700 \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u590d\u5236 \u60a8 \u8981 \u94fe\u63a5 \u7684 \u5185\u5bb9 \u5305 \u7684 \u6807\u7b7e \u3002 T \u53ef\u4ee5 \u901a\u8fc7 \u67e5\u770b \u6700\u65b0 Jenkins \u6784\u5efa \u7684 \u5de5\u4ef6 \u90e8\u5206 \u4e2d \u751f\u6210 \u7684 \u5305 \u540d\u79f0 \u6765 \u627e\u5230 \u6b64 \u6807\u7b7e \uff0c \u4f8b\u5982 20190617 _ 086f97f . tar . gz \u3002 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 ContentVersions . txt \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 \u6587\u4ef6 \u672b\u5c3e \u6765 \u7f16\u8f91 Edit ContentVersions . txt \uff0c \u4f8b\u5982 Latest : 20190617 _ 086f97f ( \u4e0d \u5305\u62ec . tar . gz \u90e8\u5206 \uff09 \u3002 \u6253\u5f00 \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6253\u5f00 \u65b0 \u7684 \u62c9\u53d6 \u8bf7\u6c42 \u3002","title":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9"},{"location":"tuto_D_create_semantic_tags/","text":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u4e86\u89e3 \u5982\u4f55 \u5b9a\u4e49 \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u8fd8 \u53ef\u4ee5 \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u4ee5 \u8fc7\u6ee4 carla . World \u68c0\u7d22 \u7684 \u8fb9\u754c \u6846 \u3002 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e 1 . \u521b\u5efa \u6807\u7b7e ID 2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb 4 . \u5b9a\u4e49 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 5 . \u6dfb\u52a0 \u6807\u8bb0 \u5143\u7d20 \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e 1 . \u521b\u5efa \u6807\u7b7e ID \u6253\u5f00 LibCarla / source / carla / rpc \u4e2d \u7684 ObjectLabel . h \u3002 \u4f7f\u7528 \u4e0e \u5176\u4f59 \u6807\u7b7e \u76f8\u540c \u7684 \u683c\u5f0f \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u7b14\u8bb0 \u6807\u7b7e \u4e0d\u5fc5 \u6309 \u987a\u5e8f \u51fa\u73b0 \u3002 \u4f46\u662f \uff0c \u6309 \u987a\u5e8f \u5217\u51fa \u5b83\u4eec \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002 2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u8f6c\u5230 Carla / Static \u3002 \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a \u60a8 \u7684 \u6807\u7b7e \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u548c \u6807\u7b7e \u4e0d\u5fc5 \u547d\u540d \u76f8\u540c \u3002 \u7136\u800c \uff0c \u8fd9\u6837 \u505a \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002 3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb 3.1 . \u6253\u5f00 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Game \u4e2d \u7684 Tagger . cpp \u3002 \u8f6c \u5230 GetLabelByFolderName \u5217\u8868 \u672b\u5c3e \u6dfb\u52a0 \u60a8 \u7684 \u6807\u7b7e \u3002 \u88ab \u6bd4\u8f83 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u662f 2 . \u4e2d \u4f7f\u7528 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u8fd9\u91cc \u4f7f\u7528 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u540d\u79f0 \u3002 3.2 . \u5728 \u76f8\u540c \u7684 Tagger . cpp \u8f6c \u5230 GetTagAsString \u3002 \u5728 \u5f00\u5173 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 4 . \u5b9a\u4e49 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 \u5728 LibCarla / source / carla / image \u4e2d \u6253\u5f00 CityScapesPalette . h \u3002 \u5728 \u6570\u7ec4 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u7684 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 \u3002 \u7b14\u8bb0 \u6570\u7ec4 \u4e2d \u7684 \u4f4d\u7f6e \u5fc5\u987b \u4e0e \u6807\u7b7e ID \u76f8\u5bf9 \u5e94 \uff0c \u5728 \u672c\u4f8b \u4e2d\u4e3a 23u . 5 . \u6dfb\u52a0 \u6807\u8bb0 \u7f51\u683c \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u5df2 \u53ef\u4f9b \u4f7f\u7528 \u53ef\u4f9b\u4f7f\u7528 \u3002 \u53ea\u6709 \u5b58\u50a8 \u5728 \u6807\u7b7e \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7f51\u683c \u624d \u4f1a \u88ab \u6807\u8bb0 \u4e3a \u6b64\u7c7b \u3002 \u5c06 \u76f8\u5e94 \u7684 \u7f51\u683c \u79fb\u52a8 \u6216 \u5bfc\u5165 \u5bfc\u5165\u5230 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u4ee5\u4fbf \u6b63\u786e \u6807\u8bb0 \u3002 \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u8fd9 \u4e00\u6b65 \u4e0e \u8bed\u4e49 \u5206\u5272 \u6ca1\u6709 \u76f4\u63a5 \u5173\u7cfb \u3002 \u4f46\u662f \uff0c \u8fd9\u4e9b \u6807\u7b7e \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World \u4e2d \u7684 \u8fb9\u754c \u6846 \u67e5\u8be2 \u3002 \u4e3a\u6b64 \uff0c \u5fc5\u987b \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 PythonAPI \u4e2d \u7684 carla . CityObjectLabel \u679a\u4e3e \u4e2d \u3002 \u5728 carla / PythonAPI / carla / source / libcarla \u4e2d \u6253\u5f00 World . cpp \u5e76 \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u6dfb\u52a0 \u65b0 \u9053\u5177","title":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e"},{"location":"tuto_D_create_semantic_tags/#_1","text":"\u4e86\u89e3 \u5982\u4f55 \u5b9a\u4e49 \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u8fd8 \u53ef\u4ee5 \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u4ee5 \u8fc7\u6ee4 carla . World \u68c0\u7d22 \u7684 \u8fb9\u754c \u6846 \u3002 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e 1 . \u521b\u5efa \u6807\u7b7e ID 2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb 4 . \u5b9a\u4e49 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 5 . \u6dfb\u52a0 \u6807\u8bb0 \u5143\u7d20 \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel","title":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e"},{"location":"tuto_D_create_semantic_tags/#_2","text":"","title":"\u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e"},{"location":"tuto_D_create_semantic_tags/#1-id","text":"\u6253\u5f00 LibCarla / source / carla / rpc \u4e2d \u7684 ObjectLabel . h \u3002 \u4f7f\u7528 \u4e0e \u5176\u4f59 \u6807\u7b7e \u76f8\u540c \u7684 \u683c\u5f0f \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u7b14\u8bb0 \u6807\u7b7e \u4e0d\u5fc5 \u6309 \u987a\u5e8f \u51fa\u73b0 \u3002 \u4f46\u662f \uff0c \u6309 \u987a\u5e8f \u5217\u51fa \u5b83\u4eec \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002","title":"1 . \u521b\u5efa \u6807\u7b7e ID"},{"location":"tuto_D_create_semantic_tags/#2","text":"\u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u8f6c\u5230 Carla / Static \u3002 \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a \u60a8 \u7684 \u6807\u7b7e \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u548c \u6807\u7b7e \u4e0d\u5fc5 \u547d\u540d \u76f8\u540c \u3002 \u7136\u800c \uff0c \u8fd9\u6837 \u505a \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002","title":"2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6\u5939"},{"location":"tuto_D_create_semantic_tags/#3","text":"3.1 . \u6253\u5f00 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Game \u4e2d \u7684 Tagger . cpp \u3002 \u8f6c \u5230 GetLabelByFolderName \u5217\u8868 \u672b\u5c3e \u6dfb\u52a0 \u60a8 \u7684 \u6807\u7b7e \u3002 \u88ab \u6bd4\u8f83 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u662f 2 . \u4e2d \u4f7f\u7528 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u8fd9\u91cc \u4f7f\u7528 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u540d\u79f0 \u3002 3.2 . \u5728 \u76f8\u540c \u7684 Tagger . cpp \u8f6c \u5230 GetTagAsString \u3002 \u5728 \u5f00\u5173 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002","title":"3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb"},{"location":"tuto_D_create_semantic_tags/#4","text":"\u5728 LibCarla / source / carla / image \u4e2d \u6253\u5f00 CityScapesPalette . h \u3002 \u5728 \u6570\u7ec4 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u7684 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 \u3002 \u7b14\u8bb0 \u6570\u7ec4 \u4e2d \u7684 \u4f4d\u7f6e \u5fc5\u987b \u4e0e \u6807\u7b7e ID \u76f8\u5bf9 \u5e94 \uff0c \u5728 \u672c\u4f8b \u4e2d\u4e3a 23u .","title":"4 . \u5b9a\u4e49 \u989c\u8272\u4ee3\u7801"},{"location":"tuto_D_create_semantic_tags/#5","text":"\u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u5df2 \u53ef\u4f9b \u4f7f\u7528 \u53ef\u4f9b\u4f7f\u7528 \u3002 \u53ea\u6709 \u5b58\u50a8 \u5728 \u6807\u7b7e \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7f51\u683c \u624d \u4f1a \u88ab \u6807\u8bb0 \u4e3a \u6b64\u7c7b \u3002 \u5c06 \u76f8\u5e94 \u7684 \u7f51\u683c \u79fb\u52a8 \u6216 \u5bfc\u5165 \u5bfc\u5165\u5230 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u4ee5\u4fbf \u6b63\u786e \u6807\u8bb0 \u3002","title":"5 . \u6dfb\u52a0 \u6807\u8bb0 \u7f51\u683c"},{"location":"tuto_D_create_semantic_tags/#carlacityobjectlabel","text":"\u8fd9 \u4e00\u6b65 \u4e0e \u8bed\u4e49 \u5206\u5272 \u6ca1\u6709 \u76f4\u63a5 \u5173\u7cfb \u3002 \u4f46\u662f \uff0c \u8fd9\u4e9b \u6807\u7b7e \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World \u4e2d \u7684 \u8fb9\u754c \u6846 \u67e5\u8be2 \u3002 \u4e3a\u6b64 \uff0c \u5fc5\u987b \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 PythonAPI \u4e2d \u7684 carla . CityObjectLabel \u679a\u4e3e \u4e2d \u3002 \u5728 carla / PythonAPI / carla / source / libcarla \u4e2d \u6253\u5f00 World . cpp \u5e76 \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u6dfb\u52a0 \u65b0 \u9053\u5177","title":"\u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel"},{"location":"tuto_D_create_sensor/","text":"\u5982\u4f55 \u6dfb\u52a0 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u5411 Carla \u6dfb\u52a0 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e2d \u5b9e\u73b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u901a\u8fc7 Carla \u7684 Python API \u516c\u5f00 \u5176 \u6570\u636e \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6211\u4eec \u5c06 \u901a\u8fc7 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f5c\u4e3a \u793a\u4f8b \u6765 \u9075\u5faa \u6240\u6709 \u6b65\u9aa4 \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4ecb\u7ecd \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 1 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 2 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668 3 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 5 - \u4f7f\u7528 \u793a\u4f8b \u9644\u5f55 \u91cd\u7528 \u7f13\u51b2 \u7f13\u51b2\u533a \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4e3a\u4e86 \u5b9e\u73b0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u60a8 \u9700\u8981 \u7f16\u8bd1 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \uff0c \u6709\u5173 \u5982\u4f55 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \u7684 \u8be6\u7ec6 \u8bf4\u660e \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 \u672c \u6559\u7a0b \u8fd8 \u5047\u8bbe \u8bfb\u8005 \u7cbe\u901a C++ \u7f16\u7a0b \u3002 \u4ecb\u7ecd Carla \u4e2d \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u3002 \u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u8fde\u7eed \u4ea7\u751f \u6570\u636e \uff0c \u800c \u53e6 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u67d0\u4e9b \u4e8b\u4ef6 \u53d1\u751f \u540e \u624d \u4ea7\u751f \u6570\u636e \u3002 \u4f8b\u5982 \uff0c \u76f8\u673a \u5728 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u751f\u6210 \u56fe\u50cf \uff0c \u4f46 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u53d1\u751f \u78b0\u649e \u65f6\u624d \u4f1a \u89e6\u53d1 \u3002 \u5c3d\u7ba1 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \uff08 \u865a\u5e7b \u5f15\u64ce 4 \uff09 \u4e2d \u8ba1\u7b97 \u6d4b\u91cf \u7ed3\u679c \uff0c \u4f46 \u503c\u5f97 \u6ce8\u610f \u503c\u5f97\u6ce8\u610f \u7684 \u662f \uff0c \u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e00\u4e2a \u4f8b\u5b50 \u662f LaneInvasion \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u5b83 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u9644\u5f55 \uff1a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u91cd\u70b9 \u5173\u6ce8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u8ba9 \u865a\u5e7b \u5f15\u64ce 4 \u5185 \u8fd0\u884c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u6570\u636e \u4e00\u8def \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6211\u4eec \u9700\u8981 \u8986\u76d6 \u6574\u4e2a \u901a\u4fe1 \u7ba1\u9053 \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u7c7b\u6765 \u6db5\u76d6 \u7ba1\u9053 \u7684 \u4e0d\u540c \u6b65\u9aa4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8d1f\u8d23 \u6d4b\u91cf \u548c / \u6216 \u4eff\u771f \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u6846\u67b6 \u5728 Carla \u63d2\u4ef6 \u4e2d \u8fd0\u884c \u3002 \u7528\u6237 \u53ef\u4ee5 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u3002 \u4e32\u884c \u5668 \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u5e8f\u5217 \u5e8f\u5217\u5316 \u548c \u53cd \u5e8f\u5217 \u5e8f\u5217\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u65b9\u6cd5 \u3002 \u5728 LibCarla \u4e2d \u8fd0\u884c \uff0c \u5305\u62ec \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u8868\u793a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u5bf9\u8c61 \u3002 \u8fd9 \u662f \u5c06 \u5728 C++ \u548c Python API \u4e2d \u4f20\u9012 \u7ed9 \u6700\u7ec8 \u7528\u6237 \u6700\u7ec8\u7528\u6237 \u7684 \u5bf9\u8c61 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u786e\u4fdd \u6700\u4f73 \u6027\u80fd \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u57fa\u4e8e \u6a21\u677f \u5143 \u7f16\u7a0b \u7684 \u201c \u7f16\u8bd1 \u65f6 \u63d2\u4ef6 \u7cfb\u7edf \u201d \u8fdb\u884c \u6ce8\u518c \u548c \u8c03\u5ea6 \u3002 \u6700\u6709 \u53ef\u80fd \u7684 \u662f \uff0c \u5728 \u6240\u6709 \u90e8\u5206 \u90fd \u5b58\u5728 \u4e4b\u524d \uff0c \u4ee3\u7801 \u4e0d\u4f1a \u7f16\u8bd1 \u3002 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b8c\u6574 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5728 \u8fd9\u91cc \u3002 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u6d4b \u8f66\u8f86 \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u5176\u4e2d \u7684 \u7269\u4f53 \uff0c \u5e76\u4e14 \u6bcf\u6b21 \u8f66\u8f86 \u8fdb\u5165 \u89e6\u53d1 \u76d2\u65f6 \u6211\u4eec \u90fd \u4f1a \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u62a5\u544a \u72b6\u6001 \u3002 \u6211\u4eec \u4e4b\u4e3a \u79f0\u4e4b\u4e3a \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u6211\u4eec \u4e0d\u4f1a \u8003\u8651 \u6240\u6709 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \uff0c \u4e5f \u4e0d\u4f1a \u4ee5 \u6700 \u6709\u6548 \u7684 \u65b9\u5f0f \u5b9e\u73b0 \u3002 \u8fd9 \u53ea\u662f \u4e00\u4e2a \u8bf4\u660e \u660e\u6027 \u8bf4\u660e\u6027 \u793a\u4f8b \u3002 1 - \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd9\u662f \u6211\u4eec \u8981 \u521b\u5efa \u7684 \u6700 \u590d\u6742 \u7684 \u7c7b \u3002 \u8fd9\u91cc \u6211\u4eec \u5728 \u865a\u5e7b \u5f15\u64ce \u6846\u67b6 \u5185 \u8fd0\u884c \uff0c \u865a\u5e7b \u5f15\u64ce 4 API \u7684 \u77e5\u8bc6 \u5c06 \u975e\u5e38 \u6709 \u5e2e\u52a9 \uff0c \u4f46 \u4e0d\u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \uff0c \u6211\u4eec \u5047\u8bbe \u8bfb\u8005 \u4ee5\u524d \u4ece\u672a \u4f7f\u7528 \u8fc7 \u865a\u5e7b \u5f15\u64ce 4 \u3002 \u5728 UE4 \u5185\u90e8 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u4e0e \u5ba2\u6237 \u5ba2\u6237\u7aef \u7c7b\u4f3c \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff0c ASensor \u6d3e\u751f \u81ea AActor \uff0c \u800c Actor \u5927\u81f4 \u662f \u53ef\u4ee5 \u653e\u5165 \u4e16\u754c \u4e2d \u7684 \u4efb\u4f55 \u5bf9\u8c61 \u3002 AActor \u6709 \u4e00\u4e2a \u540d\u4e3a \u7684 \u865a\u62df \u51fd\u6570 Tick \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5b83 \u5728 \u6bcf\u6b21 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u66f4\u65b0 \u65f6 \u66f4\u65b0 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u66f4 \u9ad8 \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d UObject \uff0c \u6211\u4eec \u6709 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u7684 \u57fa\u7c7b \u3002 \u91cd\u8981 \u7684 \u662f \u8981 \u77e5\u9053 \u6d3e\u751f \u7684 \u5bf9\u8c61 UObject \u662f \u901a\u8fc7 \u6307\u9488 \u8fdb\u884c \u5904\u7406 \u7684 \uff0c \u5e76\u4e14 \u5f53 \u5b83\u4eec \u4e0d\u518d \u88ab \u5f15\u7528 \u65f6\u4f1a \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u6307\u5411 UObjects \u7684 \u7c7b \u6210\u5458 \u9700\u8981 \u7528\u5b8f UPROPERTY \u8fdb\u884c \u6807\u8bb0 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u5f00\u59cb \u5427 \u3002 \u8be5\u7c7b \u5fc5\u987b \u4f4d\u4e8e Carla \u63d2\u4ef6 \u5185 \uff0c \u6211\u4eec \u5c06 \u4e3a \u65b0 \u7684 C++ \u7c7b \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . h Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . cpp \u8d77\u7801 \u6700\u8d77\u7801 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u7ee7\u627f ASensor \uff0c \u5e76 \u63d0\u4f9b \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 GetSensorDefinition \uff1b \u4f46 \u6211\u4eec \u8fd8 \u5c06 \u91cd\u5199 Set \u3001 SetOwner \u3001 \u548c Tick \u65b9\u6cd5 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd8 \u9700\u8981 \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u6211\u4eec \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6709 \u4e86 \u8fd9\u4e2a \u548c \u4e00\u4e9b \u5fc5\u9700 \u7684 \u865a\u5e7b \u5f15\u64ce 4 \u6837\u677f \u4ee3\u7801 \uff0c \u6587\u4ef6 \u5934\u6587\u4ef6 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf # pragma once # include \" Carla / Sensor / Sensor . h \" # include \" Carla / Actor / ActorDefinition . h \" # include \" Carla / Actor / ActorDescription . h \" # include \" Components / BoxComponent . h \" # include \" SafeDistanceSensor . generated . h \" UCLASS ( ) class CARLA _ API ASafeDistanceSensor : public ASensor { GENERATED _ BODY ( ) public : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) ; static FActorDefinition GetSensorDefinition ( ) ; void Set ( const FActorDescription & ActorDescription ) override ; void SetOwner ( AActor * Owner ) override ; void Tick ( float DeltaSeconds ) override ; private : UPROPERTY ( ) UBoxComponent * Box = nullptr ; } ; \u5728 cpp \u6587\u4ef6 \u4e2d \uff0c \u9996\u5148 \u6211\u4eec \u9700\u8981 \u4e00\u4e9b \u5305\u542b # include \" Carla . h \" # include \" Carla / Sensor / SafeDistanceSensor . h \" # include \" Carla / Actor / ActorBlueprintFunctionLibrary . h \" # include \" Carla / Game / CarlaEpisode . h \" # include \" Carla / Util / BoundingBoxCalculator . h \" # include \" Carla / Vehicle / CarlaWheeledVehicle . h \" \u7136\u540e \u6211\u4eec \u5c31 \u53ef\u4ee5 \u7ee7\u7eed \u5b9e\u73b0 \u8be5 \u529f\u80fd \u4e86 \u3002 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5c06 \u521b\u5efa \u89e6\u53d1 \u6846 \uff0c \u5e76 \u544a\u8bc9 \u865a\u5e7b \u5f15\u64ce 4 \u6211\u4eec \u5e0c\u671b \u8c03\u7528 \u6211\u4eec \u7684 \u52fe\u9009 \u51fd\u6570 \u3002 \u5982\u679c \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4f7f\u7528 \u523b\u5ea6 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7981\u7528 \u5b83 \u4ee5 \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u523b\u5ea6 ASafeDistanceSensor : : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) : Super ( ObjectInitializer ) { Box = CreateDefaultSubobject < UBoxComponent > ( TEXT ( \" BoxOverlap \" ) ) ; Box - > SetupAttachment ( RootComponent ) ; Box - > SetHiddenInGame ( true ) ; / / Disable for debugging . Box - > SetCollisionProfileName ( FName ( \" OverlapAll \" ) ) ; PrimaryActorTick . bCanEverTick = true ; } \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u544a\u8bc9 Carla \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709 \u4ec0\u4e48 \u5c5e\u6027 \uff0c \u8fd9 \u5c06 \u7528\u4e8e \u5728 \u6211\u4eec \u7684 \u84dd \u56fe\u5e93 \u4e2d \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \uff0c \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e2a \u84dd\u56fe \u6765 \u914d\u7f6e \u548c \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5c06 \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u89e6\u53d1 \u6846 \u7684 \u5c5e\u6027 \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u5c06 \u4ec5 \u516c\u5f00 X \u548c Y \u5b89\u5168 \u8ddd\u79bb FActorDefinition ASafeDistanceSensor : : GetSensorDefinition ( ) { auto Definition = UActorBlueprintFunctionLibrary : : MakeGenericSensorDefinition ( TEXT ( \" other \" ) , TEXT ( \" safe _ distance \" ) ) ; FActorVariation Front ; Front . Id = TEXT ( \" safe _ distance _ front \" ) ; Front . Type = EActorAttributeType : : Float ; Front . RecommendedValues = { TEXT ( \" 1.0 \" ) } ; Front . bRestrictToRecommended = false ; FActorVariation Back ; Back . Id = TEXT ( \" safe _ distance _ back \" ) ; Back . Type = EActorAttributeType : : Float ; Back . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Back . bRestrictToRecommended = false ; FActorVariation Lateral ; Lateral . Id = TEXT ( \" safe _ distance _ lateral \" ) ; Lateral . Type = EActorAttributeType : : Float ; Lateral . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Lateral . bRestrictToRecommended = false ; Definition . Variations . Append ( { Front , Back , Lateral } ) ; return Definition ; } \u8fd9\u6837 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5c31 \u80fd\u591f \u6839\u636e \u7528\u6237 \u9700\u6c42 \u521b\u5efa \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u540e \uff0c \u7acb\u5373 \u4f7f\u7528 \u7528\u6237 \u8bf7\u6c42 \u7684 \u53c2\u6570 \u8c03\u7528 \u8be5 Set \u51fd\u6570 void ASafeDistanceSensor : : Set ( const FActorDescription & Description ) { Super : : Set ( Description ) ; float Front = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ front \" , Description . Variations , 1.0 f ) ; float Back = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ back \" , Description . Variations , 0.5 f ) ; float Lateral = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ lateral \" , Description . Variations , 0.5 f ) ; constexpr float M _ TO _ CM = 100.0 f ; / / Unit conversion . float LocationX = M _ TO _ CM * ( Front - Back ) / 2.0 f ; float ExtentX = M _ TO _ CM * ( Front + Back ) / 2.0 f ; float ExtentY = M _ TO _ CM * Lateral ; Box - > SetRelativeLocation ( FVector { LocationX , 0.0 f , 0.0 f } ) ; Box - > SetBoxExtent ( FVector { ExtentX , ExtentY , 0.0 f } ) ; } \u8bf7 \u6ce8\u610f \uff0c set \u51fd\u6570 \u662f \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e4b\u524d \u8c03\u7528 \u7684 BeginPlay \uff0c \u6211\u4eec \u8fd9\u91cc \u4e0d\u4f1a \u4f7f\u7528 \u8fd9\u4e2a \u865a\u62df \u51fd\u6570 \uff0c \u4f46 \u5b83 \u5bf9\u4e8e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f88 \u91cd\u8981 \u3002 \u73b0\u5728 \u6211\u4eec \u5c06 \u6839\u636e \u6211\u4eec \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846\u6765 \u6269\u5c55 \u76d2\u5b50 \u4f53\u79ef \u3002 \u4e3a\u6b64 \uff0c \u6700 \u65b9\u4fbf \u7684 \u65b9\u6cd5 \u662f \u4f7f\u7528 SetOwner \u865a \u51fd\u6570 \u3002 \u5f53 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 void ASafeDistanceSensor : : SetOwner ( AActor * Owner ) { Super : : SetOwner ( Owner ) ; auto BoundingBox = UBoundingBoxCalculator : : GetActorBoundingBox ( Owner ) ; Box - > SetBoxExtent ( BoundingBox . Extent + Box - > GetUnscaledBoxExtent ( ) ) ; } \u552f\u4e00 \u8981 \u505a \u7684 \u5c31\u662f \u5b9e\u9645 \u6d4b\u91cf \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u4f7f\u7528 \u8be5 Tick \u51fd\u6570 \u3002 \u6211\u4eec \u5c06 \u67e5\u627e \u5f53\u524d \u4e0e \u6211\u4eec \u7684 \u76d2\u5b50 \u91cd\u53e0 \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5e76 \u5c06 \u6b64 \u5217\u8868 \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 void ASafeDistanceSensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; TSet < AActor * > DetectedActors ; Box - > GetOverlappingActors ( DetectedActors , ACarlaWheeledVehicle : : StaticClass ( ) ) ; DetectedActors . Remove ( GetOwner ( ) ) ; if ( DetectedActors . Num ( ) > 0 ) { auto Stream = GetDataStream ( * this ) ; Stream . Send ( * this , GetEpisode ( ) , DetectedActors ) ; } } \u7b14\u8bb0 \u5728 \u53ef \u6295\u5165 \u751f\u4ea7 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \uff0c \u8be5 Tick \u51fd\u6570 \u5e94\u8be5 \u975e\u5e38 \u4f18\u5316 \uff0c \u7279\u522b \u662f \u5f53 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u5927\u91cf \u6570\u636e \u65f6 \u3002 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \uff0c \u56e0\u6b64 \u4f1a\u663e \u7740 \u5f71\u54cd \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6027\u80fd \u3002 \u597d \u5427 \uff0c \u8fd9\u91cc \u53d1\u751f \u4e86 \u4e00\u4e9b \u6211\u4eec \u8fd8 \u6ca1\u6709 \u63d0\u5230 \u7684 \u4e8b\u60c5 \uff0c \u8fd9\u4e2a \u6d41\u662f \u4ec0\u4e48 \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6570\u636e \u6570\u636e\u6d41 \u3002 \u8be5\u6d41 \u7528\u4e8e \u5c06 \u6570\u636e \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8fd9 \u662f \u60a8 \u5728 Python API \u4e2d \u4f7f\u7528 sensor . listen ( callback ) \u65b9\u6cd5 \u65f6 \u8ba2\u9605 \u7684 \u6d41 \u3002 \u6bcf\u6b21 \u5411 \u8fd9\u91cc \u53d1\u9001 \u4e00\u4e9b \u6570\u636e \u65f6 \uff0c \u90fd \u4f1a \u89e6\u53d1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u56de\u8c03 \u3002 \u4f46 \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \uff0c \u6570\u636e \u5c06 \u7ecf\u8fc7 \u591a\u4e2a \u5c42 \u3002 \u9996\u5148 \u662f \u6211\u4eec \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8981 \u521b\u5efa \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u4e00\u65e6 \u6211\u4eec \u5b8c\u6210 \u4e86 \u4e0b \u4e00\u8282 \u7684 Serialize \u529f\u80fd \uff0c \u6211\u4eec \u5c31 \u4f1a \u5b8c\u5168 \u7406\u89e3 \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 2 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668 \u8fd9\u4e2a \u7c7b \u5176\u5b9e \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 \uff0c \u53ea \u9700\u8981 \u6709 \u4e24\u4e2a \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 \uff0c Serialize \u548c Deserialize \u3002 \u6211\u4eec \u5c06 \u4e3a \u5b83 \u6dfb\u52a0 \u4e24\u4e2a \u6587\u4ef6 \uff0c \u8fd9\u6b21 \u662f LibCarla LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . h LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . cpp \u8ba9 \u6211\u4eec \u4ece Serialize \u51fd\u6570 \u5f00\u59cb \u3002 \u8be5 \u51fd\u6570 \u5c06 \u63a5\u6536 \u6211\u4eec \u4f20\u9012 \u7ed9 Stream . Send ( ... ) \u51fd\u6570 \u7684 \u4efb\u4f55 \u5185\u5bb9 \u4f5c\u4e3a \u53c2\u6570 \uff0c \u552f\u4e00 \u7684 \u6761\u4ef6 \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u53c2\u6570 \u5fc5\u987b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76\u4e14 \u5b83 \u5fc5\u987b \u8fd4\u56de \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 static Buffer Serialize ( const Sensor & , ... ) ; carla : : Buffer \u53ea\u662f \u4e00\u5757 \u52a8\u6001 \u5206\u914d \u52a8\u6001\u5206\u914d \u7684 \u539f\u59cb \u5185\u5b58 \uff0c \u5177\u6709 \u4e00\u4e9b \u65b9\u4fbf \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u5b83 \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u3002 \u5728 \u6b64 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6709 \u610f\u4e49 \u7684 \u65b9\u5f0f \u5c06 \u68c0\u6d4b \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u5199\u5165 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u8fd9 \u5c31\u662f \u6211\u4eec \u5c06 \u5267\u96c6 \u5bf9\u8c61 \u4f20\u9012 \u7ed9 \u6b64 \u51fd\u6570 \u7684 \u539f\u56e0 \u3002 UCarlaEpisode \u7c7b \u8868\u793a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u8fd0\u884c \u7684 \u5f53\u524d \u60c5\u8282 \uff0c \u5373 \u81ea \u4e0a\u6b21 \u52a0\u8f7d \u5730\u56fe \u4ee5\u6765 \u7684 \u4eff\u771f \u72b6\u6001 \u3002 \u5b83 \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u9664 \u5176\u4ed6 \u5916 \uff0c \u5b83 \u8fd8 \u5141\u8bb8 \u641c\u7d22 \u6f14\u5458 ID \u3002 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b ID \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u80fd\u591f \u5c06 \u8fd9\u4e9b ID \u8bc6\u522b \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 template < typename SensorT , typename EpisodeT , typename ActorListT > static Buffer Serialize ( const SensorT & , const EpisodeT & episode , const ActorListT & detected _ actors ) { const uint32 _ t size _ in _ bytes = sizeof ( ActorId ) * detected _ actors . Num ( ) ; Buffer buffer { size _ in _ bytes } ; unsigned char * it = buffer . data ( ) ; for ( auto * actor : detected _ actors ) { ActorId id = episode . FindActor ( actor ) . GetActorId ( ) ; std : : memcpy ( it , & id , sizeof ( ActorId ) ) ; it + = sizeof ( ActorId ) ; } return buffer ; } \u6ce8\u610f \uff1a \u6211\u4eec \u5bf9 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u8fdb\u884c \u6a21\u677f \u5316\u4ee5 \u907f\u514d \u5728 LibCarla \u4e2d \u5305\u542b \u8fd9\u4e9b \u6587\u4ef6 \u3002 \u6211\u4eec \u8981 \u8fd4\u56de \u7684 \u8fd9\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5c06\u4f1a \u8fd4\u56de \u7ed9 \u6211\u4eec \uff0c \u4e0d\u8fc7 \u53ea\u4e0d\u8fc7 \u8fd9\u6b21 \u662f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5728 \u5c01\u88c5 \u5728 RawData \u5bf9\u8c61 \u4e2d \u7684 Deserialize \u51fd\u6570 \u4e2d static SharedPtr < SensorData > Deserialize ( RawData && data ) ; \u6211\u4eec \u5728 cpp \u6587\u4ef6 \u4e2d \u5b9e\u73b0 \u8fd9\u4e2a \u65b9\u6cd5 \uff0c \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 SharedPtr < SensorData > SafeDistanceSerializer : : Deserialize ( RawData && data ) { return SharedPtr < SensorData > ( new data : : SafeDistanceEvent ( std : : move ( data ) ) ) ; } \u9664\u4e86 \u6211\u4eec \u8fd8 \u6ca1\u6709 \u5b9a\u4e49 \u4ec0\u4e48 \u662f SafeDistanceEvent \u3002 3 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 \u6211\u4eec \u9700\u8981 \u4e3a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7528\u6237 \u521b\u5efa \u4e00\u4e2a \u6570\u636e \u5bf9\u8c61 \uff0c \u8868\u793a \u5b89\u5168 \u8ddd\u79bb \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u6211\u4eec \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 LibCarla / source / carla / sensor / data / SafeDistanceEvent . h \u8be5 \u5bf9\u8c61 \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u5217\u8868 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4ece Array \u6a21\u677f \u6d3e\u751f # pragma once # include \" carla / rpc / ActorId . h \" # include \" carla / sensor / data / Array . h \" namespace carla { namespace sensor { namespace data { class SafeDistanceEvent : public Array < rpc : : ActorId > { public : explicit SafeDistanceEvent ( RawData && data ) : Array < rpc : : ActorId > ( std : : move ( data ) ) { } } ; } / / namespace data } / / namespace sensor } / / namespace carla \u6570\u7ec4 \u6a21\u677f \u5c06 \u628a \u6211\u4eec \u5728 Serialize \u65b9\u6cd5 \u4e2d \u521b\u5efa \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u91cd\u65b0 \u89e3\u91ca \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u6570\u7ec4 \uff0c \u5e76\u4e14 \u5b83 \u80fd\u591f \u76f4\u63a5 \u4ece \u6211\u4eec \u6536\u5230 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u4e2d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u800c \u65e0\u9700 \u5206\u914d \u4efb\u4f55 \u65b0 \u5185\u5b58 \u3002 \u867d\u7136 \u5bf9\u4e8e \u8fd9\u4e2a \u5c0f \u4f8b\u5b50 \u6765\u8bf4 \u53ef\u80fd \u6709\u70b9 \u5927\u6750\u5c0f\u7528 \uff0c \u4f46 \u8fd9\u79cd \u673a\u5236 \u4e5f \u9002\u7528 \u4e8e \u5927 \u6570\u636e \u5757 \uff1b \u60f3\u8c61 \u4e00\u4e0b \u6211\u4eec \u6b63\u5728 \u53d1\u9001 \u9ad8\u6e05 \u56fe\u50cf \uff0c \u6211\u4eec \u901a\u8fc7 \u91cd\u7528 \u539f\u59cb \u5185\u5b58 \u8282\u7701 \u4e86 \u5f88\u591a \u3002 \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u5c06 \u6b64\u7c7b \u516c\u5f00 \u7ed9 Python \u3002 \u5728 \u6211\u4eec \u7684 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u6ca1\u6709 \u6dfb\u52a0 \u4efb\u4f55 \u989d\u5916 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ea \u516c\u5f00 \u4e0e Array \u76f8\u5173 \u7684 \u65b9\u6cd5 \u3002 \u6211\u4eec \u901a\u8fc7 \u4f7f\u7528 Boost . Python \u7ed1\u5b9a \u6765 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \uff0c \u5c06 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u6dfb\u52a0 \u5230 PythonAPI / carla / source / libcarla / SensorData . cpp \u3002 class _ < csd : : SafeDistanceEvent , / / actual type . bases < cs : : SensorData > , / / parent type . boost : : noncopyable , / / disable copy . boost : : shared _ ptr < csd : : SafeDistanceEvent > / / use as shared _ ptr . > ( \" SafeDistanceEvent \" , no _ init ) / / name , and disable construction . . def ( \" __ len __ \" , & csd : : SafeDistanceEvent : : size ) . def ( \" __ iter __ \" , iterator < csd : : SafeDistanceEvent > ( ) ) . def ( \" __ getitem __ \" , + [ ] ( const csd : : SafeDistanceEvent & self , size _ t pos ) - > cr : : ActorId { return self . at ( pos ) ; } ) ; \u6ce8\u610f \uff1a csd \u662f \u540d\u79f0 \u7a7a\u95f4 carla : : sensor : : data \u7684 \u522b\u540d \u3002 \u6211\u4eec \u5728 \u8fd9\u91cc \u6240 \u505a \u7684 \u662f \u5728 Python \u4e2d \u516c\u5f00 \u4e00\u4e9b C++ \u65b9\u6cd5 \u3002 \u8fd9\u6837 \uff0c Python API \u5c06 \u80fd\u591f \u8bc6\u522b \u6211\u4eec \u7684 \u65b0 \u4e8b\u4ef6 \uff0c \u5e76\u4e14 \u5176 \u884c\u4e3a \u7c7b\u4f3c \u4e8e Python \u4e2d \u7684 \u6570\u7ec4 \uff0c \u53ea\u662f \u4e0d\u80fd \u4fee\u6539 \u3002 4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u73b0\u5728 \u7ba1\u9053 \u5df2 \u5b8c\u6210 \uff0c \u6211\u4eec \u5df2 \u51c6\u5907 \u597d \u6ce8\u518c \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5728 LibCarla / source / carla / sensor / SensorRegistry . h \u4e2d \u8fd9\u6837 \u505a \u3002 \u6309\u7167 \u6b64 \u6587\u4ef6 \u5934\u6587\u4ef6 \u4e2d \u7684 \u8bf4\u660e \u6dfb\u52a0 \u4e0d\u540c \u7684 \u5305\u542b \u548c \u524d \u5411 \u58f0\u660e \uff0c \u5e76 \u5c06 \u4ee5\u4e0b \u5bf9 \u6dfb\u52a0 \u5230 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d std : : pair < ASafeDistanceSensor * , s11n : : SafeDistanceSerializer > \u6709 \u4e86 \u8fd9\u4e2a \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ce8\u518c \u6ce8\u518c\u8868 \u73b0\u5728 \u53ef\u4ee5 \u53d1\u6325 \u5176 \u9b54\u529b \uff0c \u5c06 \u6b63\u786e \u7684 \u6570\u636e \u5206\u6d3e \u5230 \u6b63\u786e \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u73b0\u5728 \u91cd\u65b0 \u7f16\u8bd1 Carla \uff0c \u5e0c\u671b \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \u5e76\u4e14 \u6ca1\u6709 \u9519\u8bef \u3002 \u4e0d\u5e78 \u7684 \u662f \uff0c \u8fd9\u91cc \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u9519\u8bef \u90fd \u4e0e \u6a21\u677f \u6709\u5173 \uff0c \u5e76\u4e14 \u9519\u8bef \u6d88\u606f \u53ef\u80fd \u6709\u70b9 \u795e\u79d8 \u3002 make rebuild 5 - \u4f7f\u7528 \u793a\u4f8b \u6700\u540e \uff0c \u6211\u4eec \u5df2\u7ecf \u5305\u542b \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76\u4e14 \u5df2\u7ecf \u5b8c\u6210 \u4e86 \u91cd\u65b0 \u7f16\u8bd1 \uff0c \u73b0\u5728 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u8be5 \u53ef\u4ee5 \u5728 Python \u4e2d \u4f7f\u7528 \u3002 \u8981 \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u6211\u4eec \u53ea \u9700 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \u5b83 \uff0c \u5982\u679c \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5e94\u8be5 \u5df2 \u5c06 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6dfb\u52a0 \u5230\u5e93 \u4e2d blueprint = blueprint _ library . find ( ' sensor . other . safe _ distance ' ) sensor = world . spawn _ actor ( blueprint , carla . Transform ( ) , attach _ to = vehicle ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u6ce8\u518c \u56de\u8c03 \u51fd\u6570 \u6765 \u5f00\u59cb \u76d1\u542c \u4e8b\u4ef6 world _ ref = weakref . ref ( world ) def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor . listen ( callback ) \u6b64 \u56de\u8c03 \u5c06 \u6267\u884c \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5728 \u6211\u4eec \u7684 \u5b89\u5168 \u8ddd\u79bb \u6846\u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \uff0c \u4f8b\u5982 Vehicle too close : vehicle . audi . a2 Vehicle too close : vehicle . mercedes - benz . coupe \u5c31\u662f \u8fd9\u6837 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6b63\u5728 \u5de5\u4f5c \uff01 \u9644\u5f55 \u91cd\u7528 \u7f13\u51b2 \u7f13\u51b2\u533a \u4e3a\u4e86 \u4f18\u5316 \u5185\u5b58 \u4f7f\u7528 \uff0c \u6211\u4eec \u53ef\u4ee5 \u5229\u7528 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u76f8\u4f3c \u5927\u5c0f \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u4e8b\u5b9e \uff1b \u7279\u522b \u662f \uff0c \u5728 \u76f8\u673a \u7684 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u50cf \u7684 \u5927\u5c0f \u5728 \u6267\u884c \u671f\u95f4 \u662f \u6052\u5b9a \u7684 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u91cd\u7528 \u5e27 \u4e4b\u95f4 \u5206\u914d \u7684 \u5185\u5b58 \u6765 \u8282\u7701 \u5927\u91cf \u8d44\u6e90 \u3002 \u6bcf\u4e2a \u6d41\u90fd \u5305\u542b \u4e00\u4e2a \u7f13\u51b2 \u6c60 \uff0c \u53ef \u7528\u4e8e \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u5185\u5b58 \u5206\u914d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6d41 \uff0c \u56e0\u6b64 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u81ea\u5df1 \u7684 \u7f13\u51b2 \u6c60 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a auto Buffer = Stream . PopBufferFromPool ( ) ; \u5982\u679c \u6c60\u4e3a \u7a7a \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u7a7a \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5373 \u6ca1\u6709 \u5206\u914d \u5185\u5b58 \u5206\u914d\u5185\u5b58 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u8c03\u6574 \u7f13\u51b2 \u7f13\u51b2\u533a \u5927 \u5c0f\u65f6 \uff0c \u5c06 \u5206\u914d \u65b0 \u7684 \u5185\u5b58 \u3002 \u5728 \u7b2c\u4e00 \u5e27 \u671f\u95f4 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4f1a \u53d1\u751f \u51e0\u6b21 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5219 \u4e00\u65e6 \u7f13\u51b2 \u7f13\u51b2\u533a \u8d85\u51fa \u8303\u56f4 \u8d85\u51fa\u8303\u56f4 \uff0c \u5176 \u5185\u5b58 \u5c06 \u8fd4\u56de \u5230 \u6c60\u4e2d \u3002 \u4e0b\u6b21 \u4ece\u6c60 \u4e2d \u83b7\u53d6 \u53e6 \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u65f6 \uff0c \u5b83 \u5c06 \u5305\u542b \u4ece\u524d \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5206\u914d \u7684 \u5185\u5b58 \u3002 \u6b63\u5982 \u60a8 \u6240 \u770b\u5230 \u7684 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5bf9\u8c61 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5145\u5f53 \u6307\u5411 \u8fde\u7eed \u539f\u59cb \u5185\u5b58 \u7684 \u667a\u80fd \u6307\u9488 \u3002 \u53ea\u8981 \u60a8 \u8bf7\u6c42 \u7684 \u5185\u5b58 \u4e0d \u8d85\u8fc7 \u5f53\u524d \u5206\u914d \u7684 \u5185\u5b58 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5c31 \u4f1a \u91cd\u7528 \u8be5 \u5185\u5b58 \u3002 \u5982\u679c \u60a8 \u8bf7\u6c42 \u66f4 \u591a \uff0c \u5219 \u5fc5\u987b \u5220\u9664 \u5f53\u524d \u5185\u5b58 \u5e76 \u5206\u914d \u66f4\u5927 \u7684 \u5757 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u8bf4\u660e \u4e86 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u5de5\u4f5c \u539f\u7406 Buffer buffer ; buffer . reset ( 1024u ) ; / / ( size 1024 bytes , capacity 1024 bytes ) - > allocates buffer . reset ( 512u ) ; / / ( size 512 bytes , capacity 1024 bytes ) buffer . reset ( 2048u ) ; / / ( size 2048 bytes , capacity 2048 bytes ) - > allocates \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u9700\u8981 \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \uff0c \u8981\u4e48 \u662f \u4e3a\u4e86 \u6027\u80fd \uff0c \u8981\u4e48 \u56e0\u4e3a \u662f\u56e0\u4e3a \u6570\u636e \u662f \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e2d \u751f\u6210 \u7684 \uff0c \u4f8b\u5982 \uff0c \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ece \u6e32\u67d3 \u7ebf\u7a0b \u53d1\u9001 \u56fe\u50cf \u3002 \u5f02\u6b65 \u4f7f\u7528 \u6570\u636e \u6570\u636e\u6d41 \u662f \u5b8c\u5168 \u53ef\u4ee5 \u7684 \uff0c \u53ea\u8981 \u6570\u636e \u6570\u636e\u6d41 \u672c\u8eab \u662f \u5728 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u521b\u5efa \u7684 \u3002 \u4f8b\u5982 void MySensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; auto Stream = GetDataStream ( * this ) ; std : : async ( std : : launch : : async , [ Stream = std : : move ( Stream ) ] ( ) { auto Data = ComputeData ( ) ; Stream . Send ( * this , Data ) ; } ) ; } \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d \u9700\u8981 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fdb\u884c \u6d4b\u91cf \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd0\u884c \uff0c \u4ece\u800c \u4f7f \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u514d\u4e8e \u989d\u5916 \u7684 \u8ba1\u7b97 \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u662f LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u901a\u5e38 \u7684 \u65b9\u6cd5 \u662f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u521b\u5efa \u4e00\u4e2a \u201c \u865a\u62df \u201d \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4ee5\u4fbf \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u77e5\u9053 \u8fd9\u6837 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b58\u5728 \u3002 \u7136\u800c \uff0c \u8fd9\u4e2a \u865a\u62df \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u4f1a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4e5f \u4e0d\u4f1a \u53d1\u9001 \u4efb\u4f55 \u7c7b\u578b \u7684 \u6570\u636e \u3002 \u7136\u800c \uff0c \u5b83 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u5bf9\u5e94 \u90e8\u5206 \u6ce8\u518c \u4e86 \u4e00\u4e2a \u201c on tick \u201d \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u65b0 \u66f4\u65b0 \u65f6 \u6267\u884c \u4e00\u4e9b \u4ee3\u7801 \u3002 \u4f8b\u5982 \uff0c LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u8003\u8651 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u201c on tick \u201d \u56de\u8c03 \u662f \u5e76\u53d1 \u6267\u884c \u7684 \uff0c \u5373 \u76f8\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u7531 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u540c\u65f6 \u6267\u884c \uff0c \u8fd9 \u4e00\u70b9 \u975e\u5e38 \u91cd\u8981 \u3002 \u8bbf\u95ee \u7684 \u4efb\u4f55 \u6570\u636e \u90fd \u5fc5\u987b \u6b63\u786e \u540c\u6b65 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e92\u65a5 \u4f53 \u3001 \u4f7f\u7528 \u539f\u5b50 \uff0c \u6216\u8005 \u66f4\u597d \u5730 \u786e\u4fdd \u6240\u6709 \u8bbf\u95ee \u7684 \u6210\u5458 \u4fdd\u6301 \u4e0d\u53d8 \u3002","title":"\u521b\u5efa \u4e00\u4e2a \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#_1","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u5411 Carla \u6dfb\u52a0 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e2d \u5b9e\u73b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u901a\u8fc7 Carla \u7684 Python API \u516c\u5f00 \u5176 \u6570\u636e \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6211\u4eec \u5c06 \u901a\u8fc7 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f5c\u4e3a \u793a\u4f8b \u6765 \u9075\u5faa \u6240\u6709 \u6b65\u9aa4 \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4ecb\u7ecd \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 1 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 2 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668 3 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 5 - \u4f7f\u7528 \u793a\u4f8b \u9644\u5f55 \u91cd\u7528 \u7f13\u51b2 \u7f13\u51b2\u533a \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668","title":"\u5982\u4f55 \u6dfb\u52a0 \u65b0 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#_2","text":"\u4e3a\u4e86 \u5b9e\u73b0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u60a8 \u9700\u8981 \u7f16\u8bd1 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \uff0c \u6709\u5173 \u5982\u4f55 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \u7684 \u8be6\u7ec6 \u8bf4\u660e \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 \u672c \u6559\u7a0b \u8fd8 \u5047\u8bbe \u8bfb\u8005 \u7cbe\u901a C++ \u7f16\u7a0b \u3002","title":"\u5148\u51b3\u6761\u4ef6"},{"location":"tuto_D_create_sensor/#_3","text":"Carla \u4e2d \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u3002 \u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u8fde\u7eed \u4ea7\u751f \u6570\u636e \uff0c \u800c \u53e6 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u67d0\u4e9b \u4e8b\u4ef6 \u53d1\u751f \u540e \u624d \u4ea7\u751f \u6570\u636e \u3002 \u4f8b\u5982 \uff0c \u76f8\u673a \u5728 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u751f\u6210 \u56fe\u50cf \uff0c \u4f46 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u53d1\u751f \u78b0\u649e \u65f6\u624d \u4f1a \u89e6\u53d1 \u3002 \u5c3d\u7ba1 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \uff08 \u865a\u5e7b \u5f15\u64ce 4 \uff09 \u4e2d \u8ba1\u7b97 \u6d4b\u91cf \u7ed3\u679c \uff0c \u4f46 \u503c\u5f97 \u6ce8\u610f \u503c\u5f97\u6ce8\u610f \u7684 \u662f \uff0c \u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e00\u4e2a \u4f8b\u5b50 \u662f LaneInvasion \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u5b83 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u9644\u5f55 \uff1a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u91cd\u70b9 \u5173\u6ce8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u8ba9 \u865a\u5e7b \u5f15\u64ce 4 \u5185 \u8fd0\u884c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u6570\u636e \u4e00\u8def \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6211\u4eec \u9700\u8981 \u8986\u76d6 \u6574\u4e2a \u901a\u4fe1 \u7ba1\u9053 \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u7c7b\u6765 \u6db5\u76d6 \u7ba1\u9053 \u7684 \u4e0d\u540c \u6b65\u9aa4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8d1f\u8d23 \u6d4b\u91cf \u548c / \u6216 \u4eff\u771f \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u6846\u67b6 \u5728 Carla \u63d2\u4ef6 \u4e2d \u8fd0\u884c \u3002 \u7528\u6237 \u53ef\u4ee5 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u3002 \u4e32\u884c \u5668 \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u5e8f\u5217 \u5e8f\u5217\u5316 \u548c \u53cd \u5e8f\u5217 \u5e8f\u5217\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u65b9\u6cd5 \u3002 \u5728 LibCarla \u4e2d \u8fd0\u884c \uff0c \u5305\u62ec \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u8868\u793a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u5bf9\u8c61 \u3002 \u8fd9 \u662f \u5c06 \u5728 C++ \u548c Python API \u4e2d \u4f20\u9012 \u7ed9 \u6700\u7ec8 \u7528\u6237 \u6700\u7ec8\u7528\u6237 \u7684 \u5bf9\u8c61 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u786e\u4fdd \u6700\u4f73 \u6027\u80fd \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u57fa\u4e8e \u6a21\u677f \u5143 \u7f16\u7a0b \u7684 \u201c \u7f16\u8bd1 \u65f6 \u63d2\u4ef6 \u7cfb\u7edf \u201d \u8fdb\u884c \u6ce8\u518c \u548c \u8c03\u5ea6 \u3002 \u6700\u6709 \u53ef\u80fd \u7684 \u662f \uff0c \u5728 \u6240\u6709 \u90e8\u5206 \u90fd \u5b58\u5728 \u4e4b\u524d \uff0c \u4ee3\u7801 \u4e0d\u4f1a \u7f16\u8bd1 \u3002","title":"\u4ecb\u7ecd"},{"location":"tuto_D_create_sensor/#_4","text":"\u5b8c\u6574 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5728 \u8fd9\u91cc \u3002 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u6d4b \u8f66\u8f86 \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u5176\u4e2d \u7684 \u7269\u4f53 \uff0c \u5e76\u4e14 \u6bcf\u6b21 \u8f66\u8f86 \u8fdb\u5165 \u89e6\u53d1 \u76d2\u65f6 \u6211\u4eec \u90fd \u4f1a \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u62a5\u544a \u72b6\u6001 \u3002 \u6211\u4eec \u4e4b\u4e3a \u79f0\u4e4b\u4e3a \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u6211\u4eec \u4e0d\u4f1a \u8003\u8651 \u6240\u6709 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \uff0c \u4e5f \u4e0d\u4f1a \u4ee5 \u6700 \u6709\u6548 \u7684 \u65b9\u5f0f \u5b9e\u73b0 \u3002 \u8fd9 \u53ea\u662f \u4e00\u4e2a \u8bf4\u660e \u660e\u6027 \u8bf4\u660e\u6027 \u793a\u4f8b \u3002","title":"\u521b\u5efa \u65b0 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#1-","text":"\u8fd9\u662f \u6211\u4eec \u8981 \u521b\u5efa \u7684 \u6700 \u590d\u6742 \u7684 \u7c7b \u3002 \u8fd9\u91cc \u6211\u4eec \u5728 \u865a\u5e7b \u5f15\u64ce \u6846\u67b6 \u5185 \u8fd0\u884c \uff0c \u865a\u5e7b \u5f15\u64ce 4 API \u7684 \u77e5\u8bc6 \u5c06 \u975e\u5e38 \u6709 \u5e2e\u52a9 \uff0c \u4f46 \u4e0d\u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \uff0c \u6211\u4eec \u5047\u8bbe \u8bfb\u8005 \u4ee5\u524d \u4ece\u672a \u4f7f\u7528 \u8fc7 \u865a\u5e7b \u5f15\u64ce 4 \u3002 \u5728 UE4 \u5185\u90e8 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u4e0e \u5ba2\u6237 \u5ba2\u6237\u7aef \u7c7b\u4f3c \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff0c ASensor \u6d3e\u751f \u81ea AActor \uff0c \u800c Actor \u5927\u81f4 \u662f \u53ef\u4ee5 \u653e\u5165 \u4e16\u754c \u4e2d \u7684 \u4efb\u4f55 \u5bf9\u8c61 \u3002 AActor \u6709 \u4e00\u4e2a \u540d\u4e3a \u7684 \u865a\u62df \u51fd\u6570 Tick \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5b83 \u5728 \u6bcf\u6b21 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u66f4\u65b0 \u65f6 \u66f4\u65b0 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u66f4 \u9ad8 \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d UObject \uff0c \u6211\u4eec \u6709 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u7684 \u57fa\u7c7b \u3002 \u91cd\u8981 \u7684 \u662f \u8981 \u77e5\u9053 \u6d3e\u751f \u7684 \u5bf9\u8c61 UObject \u662f \u901a\u8fc7 \u6307\u9488 \u8fdb\u884c \u5904\u7406 \u7684 \uff0c \u5e76\u4e14 \u5f53 \u5b83\u4eec \u4e0d\u518d \u88ab \u5f15\u7528 \u65f6\u4f1a \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u6307\u5411 UObjects \u7684 \u7c7b \u6210\u5458 \u9700\u8981 \u7528\u5b8f UPROPERTY \u8fdb\u884c \u6807\u8bb0 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u5f00\u59cb \u5427 \u3002 \u8be5\u7c7b \u5fc5\u987b \u4f4d\u4e8e Carla \u63d2\u4ef6 \u5185 \uff0c \u6211\u4eec \u5c06 \u4e3a \u65b0 \u7684 C++ \u7c7b \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . h Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . cpp \u8d77\u7801 \u6700\u8d77\u7801 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u7ee7\u627f ASensor \uff0c \u5e76 \u63d0\u4f9b \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 GetSensorDefinition \uff1b \u4f46 \u6211\u4eec \u8fd8 \u5c06 \u91cd\u5199 Set \u3001 SetOwner \u3001 \u548c Tick \u65b9\u6cd5 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd8 \u9700\u8981 \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u6211\u4eec \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6709 \u4e86 \u8fd9\u4e2a \u548c \u4e00\u4e9b \u5fc5\u9700 \u7684 \u865a\u5e7b \u5f15\u64ce 4 \u6837\u677f \u4ee3\u7801 \uff0c \u6587\u4ef6 \u5934\u6587\u4ef6 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf # pragma once # include \" Carla / Sensor / Sensor . h \" # include \" Carla / Actor / ActorDefinition . h \" # include \" Carla / Actor / ActorDescription . h \" # include \" Components / BoxComponent . h \" # include \" SafeDistanceSensor . generated . h \" UCLASS ( ) class CARLA _ API ASafeDistanceSensor : public ASensor { GENERATED _ BODY ( ) public : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) ; static FActorDefinition GetSensorDefinition ( ) ; void Set ( const FActorDescription & ActorDescription ) override ; void SetOwner ( AActor * Owner ) override ; void Tick ( float DeltaSeconds ) override ; private : UPROPERTY ( ) UBoxComponent * Box = nullptr ; } ; \u5728 cpp \u6587\u4ef6 \u4e2d \uff0c \u9996\u5148 \u6211\u4eec \u9700\u8981 \u4e00\u4e9b \u5305\u542b # include \" Carla . h \" # include \" Carla / Sensor / SafeDistanceSensor . h \" # include \" Carla / Actor / ActorBlueprintFunctionLibrary . h \" # include \" Carla / Game / CarlaEpisode . h \" # include \" Carla / Util / BoundingBoxCalculator . h \" # include \" Carla / Vehicle / CarlaWheeledVehicle . h \" \u7136\u540e \u6211\u4eec \u5c31 \u53ef\u4ee5 \u7ee7\u7eed \u5b9e\u73b0 \u8be5 \u529f\u80fd \u4e86 \u3002 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5c06 \u521b\u5efa \u89e6\u53d1 \u6846 \uff0c \u5e76 \u544a\u8bc9 \u865a\u5e7b \u5f15\u64ce 4 \u6211\u4eec \u5e0c\u671b \u8c03\u7528 \u6211\u4eec \u7684 \u52fe\u9009 \u51fd\u6570 \u3002 \u5982\u679c \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4f7f\u7528 \u523b\u5ea6 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7981\u7528 \u5b83 \u4ee5 \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u523b\u5ea6 ASafeDistanceSensor : : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) : Super ( ObjectInitializer ) { Box = CreateDefaultSubobject < UBoxComponent > ( TEXT ( \" BoxOverlap \" ) ) ; Box - > SetupAttachment ( RootComponent ) ; Box - > SetHiddenInGame ( true ) ; / / Disable for debugging . Box - > SetCollisionProfileName ( FName ( \" OverlapAll \" ) ) ; PrimaryActorTick . bCanEverTick = true ; } \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u544a\u8bc9 Carla \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709 \u4ec0\u4e48 \u5c5e\u6027 \uff0c \u8fd9 \u5c06 \u7528\u4e8e \u5728 \u6211\u4eec \u7684 \u84dd \u56fe\u5e93 \u4e2d \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \uff0c \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e2a \u84dd\u56fe \u6765 \u914d\u7f6e \u548c \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5c06 \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u89e6\u53d1 \u6846 \u7684 \u5c5e\u6027 \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u5c06 \u4ec5 \u516c\u5f00 X \u548c Y \u5b89\u5168 \u8ddd\u79bb FActorDefinition ASafeDistanceSensor : : GetSensorDefinition ( ) { auto Definition = UActorBlueprintFunctionLibrary : : MakeGenericSensorDefinition ( TEXT ( \" other \" ) , TEXT ( \" safe _ distance \" ) ) ; FActorVariation Front ; Front . Id = TEXT ( \" safe _ distance _ front \" ) ; Front . Type = EActorAttributeType : : Float ; Front . RecommendedValues = { TEXT ( \" 1.0 \" ) } ; Front . bRestrictToRecommended = false ; FActorVariation Back ; Back . Id = TEXT ( \" safe _ distance _ back \" ) ; Back . Type = EActorAttributeType : : Float ; Back . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Back . bRestrictToRecommended = false ; FActorVariation Lateral ; Lateral . Id = TEXT ( \" safe _ distance _ lateral \" ) ; Lateral . Type = EActorAttributeType : : Float ; Lateral . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Lateral . bRestrictToRecommended = false ; Definition . Variations . Append ( { Front , Back , Lateral } ) ; return Definition ; } \u8fd9\u6837 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5c31 \u80fd\u591f \u6839\u636e \u7528\u6237 \u9700\u6c42 \u521b\u5efa \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u540e \uff0c \u7acb\u5373 \u4f7f\u7528 \u7528\u6237 \u8bf7\u6c42 \u7684 \u53c2\u6570 \u8c03\u7528 \u8be5 Set \u51fd\u6570 void ASafeDistanceSensor : : Set ( const FActorDescription & Description ) { Super : : Set ( Description ) ; float Front = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ front \" , Description . Variations , 1.0 f ) ; float Back = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ back \" , Description . Variations , 0.5 f ) ; float Lateral = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ lateral \" , Description . Variations , 0.5 f ) ; constexpr float M _ TO _ CM = 100.0 f ; / / Unit conversion . float LocationX = M _ TO _ CM * ( Front - Back ) / 2.0 f ; float ExtentX = M _ TO _ CM * ( Front + Back ) / 2.0 f ; float ExtentY = M _ TO _ CM * Lateral ; Box - > SetRelativeLocation ( FVector { LocationX , 0.0 f , 0.0 f } ) ; Box - > SetBoxExtent ( FVector { ExtentX , ExtentY , 0.0 f } ) ; } \u8bf7 \u6ce8\u610f \uff0c set \u51fd\u6570 \u662f \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e4b\u524d \u8c03\u7528 \u7684 BeginPlay \uff0c \u6211\u4eec \u8fd9\u91cc \u4e0d\u4f1a \u4f7f\u7528 \u8fd9\u4e2a \u865a\u62df \u51fd\u6570 \uff0c \u4f46 \u5b83 \u5bf9\u4e8e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f88 \u91cd\u8981 \u3002 \u73b0\u5728 \u6211\u4eec \u5c06 \u6839\u636e \u6211\u4eec \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846\u6765 \u6269\u5c55 \u76d2\u5b50 \u4f53\u79ef \u3002 \u4e3a\u6b64 \uff0c \u6700 \u65b9\u4fbf \u7684 \u65b9\u6cd5 \u662f \u4f7f\u7528 SetOwner \u865a \u51fd\u6570 \u3002 \u5f53 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 void ASafeDistanceSensor : : SetOwner ( AActor * Owner ) { Super : : SetOwner ( Owner ) ; auto BoundingBox = UBoundingBoxCalculator : : GetActorBoundingBox ( Owner ) ; Box - > SetBoxExtent ( BoundingBox . Extent + Box - > GetUnscaledBoxExtent ( ) ) ; } \u552f\u4e00 \u8981 \u505a \u7684 \u5c31\u662f \u5b9e\u9645 \u6d4b\u91cf \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u4f7f\u7528 \u8be5 Tick \u51fd\u6570 \u3002 \u6211\u4eec \u5c06 \u67e5\u627e \u5f53\u524d \u4e0e \u6211\u4eec \u7684 \u76d2\u5b50 \u91cd\u53e0 \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5e76 \u5c06 \u6b64 \u5217\u8868 \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 void ASafeDistanceSensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; TSet < AActor * > DetectedActors ; Box - > GetOverlappingActors ( DetectedActors , ACarlaWheeledVehicle : : StaticClass ( ) ) ; DetectedActors . Remove ( GetOwner ( ) ) ; if ( DetectedActors . Num ( ) > 0 ) { auto Stream = GetDataStream ( * this ) ; Stream . Send ( * this , GetEpisode ( ) , DetectedActors ) ; } } \u7b14\u8bb0 \u5728 \u53ef \u6295\u5165 \u751f\u4ea7 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \uff0c \u8be5 Tick \u51fd\u6570 \u5e94\u8be5 \u975e\u5e38 \u4f18\u5316 \uff0c \u7279\u522b \u662f \u5f53 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u5927\u91cf \u6570\u636e \u65f6 \u3002 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \uff0c \u56e0\u6b64 \u4f1a\u663e \u7740 \u5f71\u54cd \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6027\u80fd \u3002 \u597d \u5427 \uff0c \u8fd9\u91cc \u53d1\u751f \u4e86 \u4e00\u4e9b \u6211\u4eec \u8fd8 \u6ca1\u6709 \u63d0\u5230 \u7684 \u4e8b\u60c5 \uff0c \u8fd9\u4e2a \u6d41\u662f \u4ec0\u4e48 \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6570\u636e \u6570\u636e\u6d41 \u3002 \u8be5\u6d41 \u7528\u4e8e \u5c06 \u6570\u636e \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8fd9 \u662f \u60a8 \u5728 Python API \u4e2d \u4f7f\u7528 sensor . listen ( callback ) \u65b9\u6cd5 \u65f6 \u8ba2\u9605 \u7684 \u6d41 \u3002 \u6bcf\u6b21 \u5411 \u8fd9\u91cc \u53d1\u9001 \u4e00\u4e9b \u6570\u636e \u65f6 \uff0c \u90fd \u4f1a \u89e6\u53d1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u56de\u8c03 \u3002 \u4f46 \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \uff0c \u6570\u636e \u5c06 \u7ecf\u8fc7 \u591a\u4e2a \u5c42 \u3002 \u9996\u5148 \u662f \u6211\u4eec \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8981 \u521b\u5efa \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u4e00\u65e6 \u6211\u4eec \u5b8c\u6210 \u4e86 \u4e0b \u4e00\u8282 \u7684 Serialize \u529f\u80fd \uff0c \u6211\u4eec \u5c31 \u4f1a \u5b8c\u5168 \u7406\u89e3 \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002","title":"1 - \u521b\u5efa \u65b0 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#2-","text":"\u8fd9\u4e2a \u7c7b \u5176\u5b9e \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 \uff0c \u53ea \u9700\u8981 \u6709 \u4e24\u4e2a \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 \uff0c Serialize \u548c Deserialize \u3002 \u6211\u4eec \u5c06 \u4e3a \u5b83 \u6dfb\u52a0 \u4e24\u4e2a \u6587\u4ef6 \uff0c \u8fd9\u6b21 \u662f LibCarla LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . h LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . cpp \u8ba9 \u6211\u4eec \u4ece Serialize \u51fd\u6570 \u5f00\u59cb \u3002 \u8be5 \u51fd\u6570 \u5c06 \u63a5\u6536 \u6211\u4eec \u4f20\u9012 \u7ed9 Stream . Send ( ... ) \u51fd\u6570 \u7684 \u4efb\u4f55 \u5185\u5bb9 \u4f5c\u4e3a \u53c2\u6570 \uff0c \u552f\u4e00 \u7684 \u6761\u4ef6 \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u53c2\u6570 \u5fc5\u987b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76\u4e14 \u5b83 \u5fc5\u987b \u8fd4\u56de \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 static Buffer Serialize ( const Sensor & , ... ) ; carla : : Buffer \u53ea\u662f \u4e00\u5757 \u52a8\u6001 \u5206\u914d \u52a8\u6001\u5206\u914d \u7684 \u539f\u59cb \u5185\u5b58 \uff0c \u5177\u6709 \u4e00\u4e9b \u65b9\u4fbf \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u5b83 \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u3002 \u5728 \u6b64 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6709 \u610f\u4e49 \u7684 \u65b9\u5f0f \u5c06 \u68c0\u6d4b \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u5199\u5165 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u8fd9 \u5c31\u662f \u6211\u4eec \u5c06 \u5267\u96c6 \u5bf9\u8c61 \u4f20\u9012 \u7ed9 \u6b64 \u51fd\u6570 \u7684 \u539f\u56e0 \u3002 UCarlaEpisode \u7c7b \u8868\u793a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u8fd0\u884c \u7684 \u5f53\u524d \u60c5\u8282 \uff0c \u5373 \u81ea \u4e0a\u6b21 \u52a0\u8f7d \u5730\u56fe \u4ee5\u6765 \u7684 \u4eff\u771f \u72b6\u6001 \u3002 \u5b83 \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u9664 \u5176\u4ed6 \u5916 \uff0c \u5b83 \u8fd8 \u5141\u8bb8 \u641c\u7d22 \u6f14\u5458 ID \u3002 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b ID \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u80fd\u591f \u5c06 \u8fd9\u4e9b ID \u8bc6\u522b \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 template < typename SensorT , typename EpisodeT , typename ActorListT > static Buffer Serialize ( const SensorT & , const EpisodeT & episode , const ActorListT & detected _ actors ) { const uint32 _ t size _ in _ bytes = sizeof ( ActorId ) * detected _ actors . Num ( ) ; Buffer buffer { size _ in _ bytes } ; unsigned char * it = buffer . data ( ) ; for ( auto * actor : detected _ actors ) { ActorId id = episode . FindActor ( actor ) . GetActorId ( ) ; std : : memcpy ( it , & id , sizeof ( ActorId ) ) ; it + = sizeof ( ActorId ) ; } return buffer ; } \u6ce8\u610f \uff1a \u6211\u4eec \u5bf9 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u8fdb\u884c \u6a21\u677f \u5316\u4ee5 \u907f\u514d \u5728 LibCarla \u4e2d \u5305\u542b \u8fd9\u4e9b \u6587\u4ef6 \u3002 \u6211\u4eec \u8981 \u8fd4\u56de \u7684 \u8fd9\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5c06\u4f1a \u8fd4\u56de \u7ed9 \u6211\u4eec \uff0c \u4e0d\u8fc7 \u53ea\u4e0d\u8fc7 \u8fd9\u6b21 \u662f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5728 \u5c01\u88c5 \u5728 RawData \u5bf9\u8c61 \u4e2d \u7684 Deserialize \u51fd\u6570 \u4e2d static SharedPtr < SensorData > Deserialize ( RawData && data ) ; \u6211\u4eec \u5728 cpp \u6587\u4ef6 \u4e2d \u5b9e\u73b0 \u8fd9\u4e2a \u65b9\u6cd5 \uff0c \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 SharedPtr < SensorData > SafeDistanceSerializer : : Deserialize ( RawData && data ) { return SharedPtr < SensorData > ( new data : : SafeDistanceEvent ( std : : move ( data ) ) ) ; } \u9664\u4e86 \u6211\u4eec \u8fd8 \u6ca1\u6709 \u5b9a\u4e49 \u4ec0\u4e48 \u662f SafeDistanceEvent \u3002","title":"2 - \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668"},{"location":"tuto_D_create_sensor/#3-","text":"\u6211\u4eec \u9700\u8981 \u4e3a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7528\u6237 \u521b\u5efa \u4e00\u4e2a \u6570\u636e \u5bf9\u8c61 \uff0c \u8868\u793a \u5b89\u5168 \u8ddd\u79bb \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u6211\u4eec \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 LibCarla / source / carla / sensor / data / SafeDistanceEvent . h \u8be5 \u5bf9\u8c61 \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u5217\u8868 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4ece Array \u6a21\u677f \u6d3e\u751f # pragma once # include \" carla / rpc / ActorId . h \" # include \" carla / sensor / data / Array . h \" namespace carla { namespace sensor { namespace data { class SafeDistanceEvent : public Array < rpc : : ActorId > { public : explicit SafeDistanceEvent ( RawData && data ) : Array < rpc : : ActorId > ( std : : move ( data ) ) { } } ; } / / namespace data } / / namespace sensor } / / namespace carla \u6570\u7ec4 \u6a21\u677f \u5c06 \u628a \u6211\u4eec \u5728 Serialize \u65b9\u6cd5 \u4e2d \u521b\u5efa \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u91cd\u65b0 \u89e3\u91ca \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u6570\u7ec4 \uff0c \u5e76\u4e14 \u5b83 \u80fd\u591f \u76f4\u63a5 \u4ece \u6211\u4eec \u6536\u5230 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u4e2d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u800c \u65e0\u9700 \u5206\u914d \u4efb\u4f55 \u65b0 \u5185\u5b58 \u3002 \u867d\u7136 \u5bf9\u4e8e \u8fd9\u4e2a \u5c0f \u4f8b\u5b50 \u6765\u8bf4 \u53ef\u80fd \u6709\u70b9 \u5927\u6750\u5c0f\u7528 \uff0c \u4f46 \u8fd9\u79cd \u673a\u5236 \u4e5f \u9002\u7528 \u4e8e \u5927 \u6570\u636e \u5757 \uff1b \u60f3\u8c61 \u4e00\u4e0b \u6211\u4eec \u6b63\u5728 \u53d1\u9001 \u9ad8\u6e05 \u56fe\u50cf \uff0c \u6211\u4eec \u901a\u8fc7 \u91cd\u7528 \u539f\u59cb \u5185\u5b58 \u8282\u7701 \u4e86 \u5f88\u591a \u3002 \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u5c06 \u6b64\u7c7b \u516c\u5f00 \u7ed9 Python \u3002 \u5728 \u6211\u4eec \u7684 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u6ca1\u6709 \u6dfb\u52a0 \u4efb\u4f55 \u989d\u5916 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ea \u516c\u5f00 \u4e0e Array \u76f8\u5173 \u7684 \u65b9\u6cd5 \u3002 \u6211\u4eec \u901a\u8fc7 \u4f7f\u7528 Boost . Python \u7ed1\u5b9a \u6765 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \uff0c \u5c06 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u6dfb\u52a0 \u5230 PythonAPI / carla / source / libcarla / SensorData . cpp \u3002 class _ < csd : : SafeDistanceEvent , / / actual type . bases < cs : : SensorData > , / / parent type . boost : : noncopyable , / / disable copy . boost : : shared _ ptr < csd : : SafeDistanceEvent > / / use as shared _ ptr . > ( \" SafeDistanceEvent \" , no _ init ) / / name , and disable construction . . def ( \" __ len __ \" , & csd : : SafeDistanceEvent : : size ) . def ( \" __ iter __ \" , iterator < csd : : SafeDistanceEvent > ( ) ) . def ( \" __ getitem __ \" , + [ ] ( const csd : : SafeDistanceEvent & self , size _ t pos ) - > cr : : ActorId { return self . at ( pos ) ; } ) ; \u6ce8\u610f \uff1a csd \u662f \u540d\u79f0 \u7a7a\u95f4 carla : : sensor : : data \u7684 \u522b\u540d \u3002 \u6211\u4eec \u5728 \u8fd9\u91cc \u6240 \u505a \u7684 \u662f \u5728 Python \u4e2d \u516c\u5f00 \u4e00\u4e9b C++ \u65b9\u6cd5 \u3002 \u8fd9\u6837 \uff0c Python API \u5c06 \u80fd\u591f \u8bc6\u522b \u6211\u4eec \u7684 \u65b0 \u4e8b\u4ef6 \uff0c \u5e76\u4e14 \u5176 \u884c\u4e3a \u7c7b\u4f3c \u4e8e Python \u4e2d \u7684 \u6570\u7ec4 \uff0c \u53ea\u662f \u4e0d\u80fd \u4fee\u6539 \u3002","title":"3 - \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61"},{"location":"tuto_D_create_sensor/#4-","text":"\u73b0\u5728 \u7ba1\u9053 \u5df2 \u5b8c\u6210 \uff0c \u6211\u4eec \u5df2 \u51c6\u5907 \u597d \u6ce8\u518c \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5728 LibCarla / source / carla / sensor / SensorRegistry . h \u4e2d \u8fd9\u6837 \u505a \u3002 \u6309\u7167 \u6b64 \u6587\u4ef6 \u5934\u6587\u4ef6 \u4e2d \u7684 \u8bf4\u660e \u6dfb\u52a0 \u4e0d\u540c \u7684 \u5305\u542b \u548c \u524d \u5411 \u58f0\u660e \uff0c \u5e76 \u5c06 \u4ee5\u4e0b \u5bf9 \u6dfb\u52a0 \u5230 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d std : : pair < ASafeDistanceSensor * , s11n : : SafeDistanceSerializer > \u6709 \u4e86 \u8fd9\u4e2a \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ce8\u518c \u6ce8\u518c\u8868 \u73b0\u5728 \u53ef\u4ee5 \u53d1\u6325 \u5176 \u9b54\u529b \uff0c \u5c06 \u6b63\u786e \u7684 \u6570\u636e \u5206\u6d3e \u5230 \u6b63\u786e \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u73b0\u5728 \u91cd\u65b0 \u7f16\u8bd1 Carla \uff0c \u5e0c\u671b \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \u5e76\u4e14 \u6ca1\u6709 \u9519\u8bef \u3002 \u4e0d\u5e78 \u7684 \u662f \uff0c \u8fd9\u91cc \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u9519\u8bef \u90fd \u4e0e \u6a21\u677f \u6709\u5173 \uff0c \u5e76\u4e14 \u9519\u8bef \u6d88\u606f \u53ef\u80fd \u6709\u70b9 \u795e\u79d8 \u3002 make rebuild","title":"4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#5-","text":"\u6700\u540e \uff0c \u6211\u4eec \u5df2\u7ecf \u5305\u542b \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76\u4e14 \u5df2\u7ecf \u5b8c\u6210 \u4e86 \u91cd\u65b0 \u7f16\u8bd1 \uff0c \u73b0\u5728 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u8be5 \u53ef\u4ee5 \u5728 Python \u4e2d \u4f7f\u7528 \u3002 \u8981 \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u6211\u4eec \u53ea \u9700 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \u5b83 \uff0c \u5982\u679c \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5e94\u8be5 \u5df2 \u5c06 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6dfb\u52a0 \u5230\u5e93 \u4e2d blueprint = blueprint _ library . find ( ' sensor . other . safe _ distance ' ) sensor = world . spawn _ actor ( blueprint , carla . Transform ( ) , attach _ to = vehicle ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u6ce8\u518c \u56de\u8c03 \u51fd\u6570 \u6765 \u5f00\u59cb \u76d1\u542c \u4e8b\u4ef6 world _ ref = weakref . ref ( world ) def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor . listen ( callback ) \u6b64 \u56de\u8c03 \u5c06 \u6267\u884c \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5728 \u6211\u4eec \u7684 \u5b89\u5168 \u8ddd\u79bb \u6846\u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \uff0c \u4f8b\u5982 Vehicle too close : vehicle . audi . a2 Vehicle too close : vehicle . mercedes - benz . coupe \u5c31\u662f \u8fd9\u6837 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6b63\u5728 \u5de5\u4f5c \uff01","title":"5 - \u4f7f\u7528 \u793a\u4f8b"},{"location":"tuto_D_create_sensor/#_5","text":"","title":"\u9644\u5f55"},{"location":"tuto_D_create_sensor/#_6","text":"\u4e3a\u4e86 \u4f18\u5316 \u5185\u5b58 \u4f7f\u7528 \uff0c \u6211\u4eec \u53ef\u4ee5 \u5229\u7528 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u76f8\u4f3c \u5927\u5c0f \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u4e8b\u5b9e \uff1b \u7279\u522b \u662f \uff0c \u5728 \u76f8\u673a \u7684 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u50cf \u7684 \u5927\u5c0f \u5728 \u6267\u884c \u671f\u95f4 \u662f \u6052\u5b9a \u7684 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u91cd\u7528 \u5e27 \u4e4b\u95f4 \u5206\u914d \u7684 \u5185\u5b58 \u6765 \u8282\u7701 \u5927\u91cf \u8d44\u6e90 \u3002 \u6bcf\u4e2a \u6d41\u90fd \u5305\u542b \u4e00\u4e2a \u7f13\u51b2 \u6c60 \uff0c \u53ef \u7528\u4e8e \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u5185\u5b58 \u5206\u914d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6d41 \uff0c \u56e0\u6b64 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u81ea\u5df1 \u7684 \u7f13\u51b2 \u6c60 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a auto Buffer = Stream . PopBufferFromPool ( ) ; \u5982\u679c \u6c60\u4e3a \u7a7a \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u7a7a \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5373 \u6ca1\u6709 \u5206\u914d \u5185\u5b58 \u5206\u914d\u5185\u5b58 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u8c03\u6574 \u7f13\u51b2 \u7f13\u51b2\u533a \u5927 \u5c0f\u65f6 \uff0c \u5c06 \u5206\u914d \u65b0 \u7684 \u5185\u5b58 \u3002 \u5728 \u7b2c\u4e00 \u5e27 \u671f\u95f4 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4f1a \u53d1\u751f \u51e0\u6b21 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5219 \u4e00\u65e6 \u7f13\u51b2 \u7f13\u51b2\u533a \u8d85\u51fa \u8303\u56f4 \u8d85\u51fa\u8303\u56f4 \uff0c \u5176 \u5185\u5b58 \u5c06 \u8fd4\u56de \u5230 \u6c60\u4e2d \u3002 \u4e0b\u6b21 \u4ece\u6c60 \u4e2d \u83b7\u53d6 \u53e6 \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u65f6 \uff0c \u5b83 \u5c06 \u5305\u542b \u4ece\u524d \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5206\u914d \u7684 \u5185\u5b58 \u3002 \u6b63\u5982 \u60a8 \u6240 \u770b\u5230 \u7684 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5bf9\u8c61 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5145\u5f53 \u6307\u5411 \u8fde\u7eed \u539f\u59cb \u5185\u5b58 \u7684 \u667a\u80fd \u6307\u9488 \u3002 \u53ea\u8981 \u60a8 \u8bf7\u6c42 \u7684 \u5185\u5b58 \u4e0d \u8d85\u8fc7 \u5f53\u524d \u5206\u914d \u7684 \u5185\u5b58 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5c31 \u4f1a \u91cd\u7528 \u8be5 \u5185\u5b58 \u3002 \u5982\u679c \u60a8 \u8bf7\u6c42 \u66f4 \u591a \uff0c \u5219 \u5fc5\u987b \u5220\u9664 \u5f53\u524d \u5185\u5b58 \u5e76 \u5206\u914d \u66f4\u5927 \u7684 \u5757 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u8bf4\u660e \u4e86 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u5de5\u4f5c \u539f\u7406 Buffer buffer ; buffer . reset ( 1024u ) ; / / ( size 1024 bytes , capacity 1024 bytes ) - > allocates buffer . reset ( 512u ) ; / / ( size 512 bytes , capacity 1024 bytes ) buffer . reset ( 2048u ) ; / / ( size 2048 bytes , capacity 2048 bytes ) - > allocates","title":"\u91cd\u7528 \u7f13\u51b2\u533a"},{"location":"tuto_D_create_sensor/#_7","text":"\u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u9700\u8981 \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \uff0c \u8981\u4e48 \u662f \u4e3a\u4e86 \u6027\u80fd \uff0c \u8981\u4e48 \u56e0\u4e3a \u662f\u56e0\u4e3a \u6570\u636e \u662f \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e2d \u751f\u6210 \u7684 \uff0c \u4f8b\u5982 \uff0c \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ece \u6e32\u67d3 \u7ebf\u7a0b \u53d1\u9001 \u56fe\u50cf \u3002 \u5f02\u6b65 \u4f7f\u7528 \u6570\u636e \u6570\u636e\u6d41 \u662f \u5b8c\u5168 \u53ef\u4ee5 \u7684 \uff0c \u53ea\u8981 \u6570\u636e \u6570\u636e\u6d41 \u672c\u8eab \u662f \u5728 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u521b\u5efa \u7684 \u3002 \u4f8b\u5982 void MySensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; auto Stream = GetDataStream ( * this ) ; std : : async ( std : : launch : : async , [ Stream = std : : move ( Stream ) ] ( ) { auto Data = ComputeData ( ) ; Stream . Send ( * this , Data ) ; } ) ; }","title":"\u5f02\u6b65 \u53d1\u9001\u6570\u636e"},{"location":"tuto_D_create_sensor/#_8","text":"\u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d \u9700\u8981 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fdb\u884c \u6d4b\u91cf \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd0\u884c \uff0c \u4ece\u800c \u4f7f \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u514d\u4e8e \u989d\u5916 \u7684 \u8ba1\u7b97 \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u662f LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u901a\u5e38 \u7684 \u65b9\u6cd5 \u662f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u521b\u5efa \u4e00\u4e2a \u201c \u865a\u62df \u201d \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4ee5\u4fbf \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u77e5\u9053 \u8fd9\u6837 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b58\u5728 \u3002 \u7136\u800c \uff0c \u8fd9\u4e2a \u865a\u62df \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u4f1a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4e5f \u4e0d\u4f1a \u53d1\u9001 \u4efb\u4f55 \u7c7b\u578b \u7684 \u6570\u636e \u3002 \u7136\u800c \uff0c \u5b83 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u5bf9\u5e94 \u90e8\u5206 \u6ce8\u518c \u4e86 \u4e00\u4e2a \u201c on tick \u201d \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u65b0 \u66f4\u65b0 \u65f6 \u6267\u884c \u4e00\u4e9b \u4ee3\u7801 \u3002 \u4f8b\u5982 \uff0c LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u8003\u8651 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u201c on tick \u201d \u56de\u8c03 \u662f \u5e76\u53d1 \u6267\u884c \u7684 \uff0c \u5373 \u76f8\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u7531 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u540c\u65f6 \u6267\u884c \uff0c \u8fd9 \u4e00\u70b9 \u975e\u5e38 \u91cd\u8981 \u3002 \u8bbf\u95ee \u7684 \u4efb\u4f55 \u6570\u636e \u90fd \u5fc5\u987b \u6b63\u786e \u540c\u6b65 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e92\u65a5 \u4f53 \u3001 \u4f7f\u7528 \u539f\u5b50 \uff0c \u6216\u8005 \u66f4\u597d \u5730 \u786e\u4fdd \u6240\u6709 \u8bbf\u95ee \u7684 \u6210\u5458 \u4fdd\u6301 \u4e0d\u53d8 \u3002","title":"\u5ba2\u6237\u7aef \u4f20\u611f\u5668"},{"location":"tuto_D_customize_vehicle_suspension/","text":"\u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 Carla \u8f66\u8f86 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \uff0c \u4ee5\u53ca \u5982\u4f55 \u9488\u5bf9 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f66\u8f86 \u5b9e\u65bd \u8fd9\u4e9b \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u4f7f\u7528 \u6b64 \u4fe1\u606f \u53ef\u4ee5 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u4e2d \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53c2\u6570 \uff0c \u5e76 \u968f\u610f \u5bf9 \u5176 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u3002 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u60ac\u67b6 \u7ec4 \u8f7f \u8dd1\u8f66 \u8d8a\u91ce \u5361\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u7531 \u6240\u8ff0 \u8f66\u8f86 \u7684 \u8f66\u8f6e \u9650\u5b9a \u3002 \u6bcf\u4e2a \u8f66\u8f6e \u90fd \u6709 \u4e00\u4e2a \u5e26\u6709 \u4e00\u4e9b \u53c2\u6570 \u5316 \u7684 \u72ec\u7acb \u84dd\u56fe \uff0c \u5176\u4e2d \u5305\u62ec \u60ac\u67b6 \u7cfb\u7edf \u3002 \u8fd9\u4e9b \u84dd\u56fe \u53ef\u4ee5 \u5728 Content / Carla / Blueprints / Vehicles / < vehicle _ name > \u4e2d \u627e\u5230 \u3002 \u5b83\u4eec \u7684 \u540d\u79f0 \u5982\u4e0b \uff1a BP _ < vehicle _ name > _ < F / R > < R / L > W \u3002 F \u6216 R \u76f8\u5e94 \u5730 \u7528\u4e8e \u524d\u8f6e \u6216 \u540e\u8f6e \u3002 R \u6216 L \u5e94\u5730 \u7528\u4e8e \u53f3\u8f6e \u6216 \u5de6\u8f6e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5965\u8fea A2 \u5de6 \u524d\u8f6e \u7684 \u84dd\u56fe \u547d\u540d \u4e3a BP _ AudiA2 _ FLW . shape _ radius \u8ba9 \u8f66\u8f6e \u505c \u5728 \u8def\u9762 \u4e0a \uff0c \u65e2 \u4e0d \u60ac\u505c \u4e5f \u4e0d \u5728 \u8def\u9762 \u5185\u90e8 \u3002 \u5728 \u84dd\u56fe \u4e2d \uff0c \u6709 \u4e00\u4e2a \u90e8\u5206 \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u60ac\u67b6 \u7684 \u4e00\u4e9b \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u662f \u865a\u5e7b \u5f15\u64ce \u4e2d \u63cf\u8ff0 \u7684 \u5b83\u4eec \u7684 \u5b9a\u4e49 \u3002 Suspension Force Offset \u2014 \u8ddd \u65bd\u52a0 \u60ac\u6302 \u529b \u7684 \u4f4d\u7f6e \u7684 \u5782\u76f4 \u504f\u79fb \uff08 \u6cbf Z \u8f74 \uff09 \u3002 Suspension Max Raise \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u8d85\u51fa \u9759\u6b62 \u4f4d\u7f6e \u591a\u8fdc \u3002 Suspension Max Drop \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u4e0b\u964d \u5230 \u9759\u6b62 \u4f4d\u7f6e \u4ee5\u4e0b \u591a\u8fdc \u3002 Suspension Natural Frequency \u2014 \u60ac\u67b6 \u7684 \u632f\u8361 \u9891\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 5 \u548c \u4e4b\u95f4 10 \u3002 Suspension Damping Ratio \u2014 \u80fd\u91cf \u4ece \u5f39\u7c27 \u8017\u6563 \u7684 \u901f\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 0.8 \u548c 1.2 \u4e4b\u95f4 \u3002 \u503c < 1 \u66f4\u52a0 \u8fdf\u7f13 \uff0c \u503c > 1 \u66f4\u52a0 \u52a8\u8361 \u3002 Sweep Type \u2014 \u8f66\u8f6e \u60ac\u67b6 \u662f\u5426 \u8003\u8651 \u7b80\u5355 \u3001 \u590d\u6742 \u6216 \u4e24\u8005 \u800c\u6709 \u517c\u800c\u6709\u4e4b \u3002 \u8f66\u8f6e \u84dd\u56fe \u4e2d \u7684 \u60ac\u67b6 \u9762\u677f \u3002 \u7b14\u8bb0 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8f66\u8f86 \u7684 \u6240\u6709 \u8f66\u8f6e \u5728 Carla \u4e2d \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u89e3\u91ca \u5c06 \u6309 \u8f66\u8f86 \u800c \u4e0d\u662f \u6309 \u8f66\u8f6e \u8fdb\u884c \u4ecb\u7ecd \u3002 \u60ac\u67b6 \u7ec4 \u6839\u636e \u5176 \u7cfb\u7edf \u60ac\u67b6 \uff0c Carla \u4e2d \u7684 \u8f66\u8f86 \u53ef \u5206\u4e3a \u4e94\u7ec4 \u3002 \u7ec4\u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \uff0c \u56e0\u4e3a \u5b83\u4eec \u9884\u8ba1 \u5728 \u9053\u8def \u4e0a \u5177\u6709 \u76f8\u4f3c \u7684 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53ef\u4ee5 \u968f\u610f \u4fee\u6539 \uff0c \u4e0d\u53d7 \u8fd9 \u4e94\u7ec4 \u7684 \u9650\u5236 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 \u8fd9\u4e9b \u5e76 \u89c2\u5bdf \u5b83\u4eec \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u5bf9\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60ac\u67b6 \u975e\u5e38 \u6709\u7528 \u3002 \u8fd9 \u4e94\u4e2a \u7ec4\u662f \uff1a \u8f7f \u8dd1\u8f66 \u3001 \u8d8a\u91ce \u8d8a\u91ce\u8f66 \u3001 \u5361\u8f66 \u3001 \u57ce\u5e02 \u8f66 \u548c \u8d27\u8f66 \u3002 \u901a\u8fc7 \u4ed4\u7ec6 \u7ec6\u89c2 \u89c2\u5bdf \u4ed4\u7ec6\u89c2\u5bdf \uff0c \u8fd9\u4e9b \u7ec4 \u7684 \u53c2\u6570 \u5316 \u9075\u5faa \u7279\u5b9a \u7684 \u6a21\u5f0f \u3002 \u521a\u6027 \u60ac\u67b6 \u8f7f \u8dd1\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66 \u8d8a\u91ce \u5361\u8f66 \u8f6f \u60ac\u67b6 \u5f53 \u4ece \u8f6f \u60ac\u67b6 \u8f6c\u5411 \u786c \u60ac\u67b6 \u65f6 \uff0c \u53c2\u6570 \u5316\u6709 \u4e00\u4e9b \u660e\u663e \u7684 \u8d8b\u52bf \u3002 Suspension Max Raise \u548c Suspension Max Drop \u7684 __ \u51cf\u5c11 \u2014 \u521a\u6027 \u8f66\u8f86 \u5e94 \u5728 \u5e73\u5766 \u7684 \u9053\u8def \u4e0a \u884c\u9a76 \u4e14 \u6ca1\u6709 \u98a0\u7c38 \u3002 \u51fa\u4e8e \u7a7a\u6c14 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u8003\u8651 \uff0c \u5e95\u76d8 \u4e0d \u5e94 \u5927\u5e45 \u79fb\u52a8 \uff0c \u800c\u5e94 \u59cb\u7ec8 \u4fdd\u6301 \u59cb\u7ec8\u4fdd\u6301 \u9760\u8fd1 \u5730\u9762 \u3002 Suspension Damping Ratio \u7684 \u589e\u52a0 \u2014 \u5bf9\u4e8e \u521a\u6027 \u8f66\u8f86 \u6765\u8bf4 \uff0c \u51cf\u9707 \u51cf\u9707\u5668 \u5438\u6536 \u7684 \u5f39\u8df3 \u66f4\u5927 \u3002 \u8f7f \u8dd1\u8f66 \u5177\u6709 \u6700 \u786c \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 7.5 Suspension Max Drop \u2014 7.5 Suspension Natural Frequency \u2014 9.5 Suspension Damping Ratio \u2014 1.0 Sweep Type \u2014 SimpleAndComplex vehicle . audi . tt vehicle . lincoln . mkz2017 vehicle . mercedes - benz . coupe vehicle . seat . leon vehicle . tesla . model3 \u8d8a\u91ce \u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 15.0 Suspension Max Drop \u2014 15.0 Suspension Natural Frequency \u2014 7.0 Suspension Damping Ratio \u2014 0.5 Sweep Type \u2014 SimpleAndComplex vehicle . audi . etron vehicle . jeep . wrangler _ rubicon vehicle . nissan . patrol vehicle . tesla . cybertruck \u5361\u8f66 \u5177\u6709 \u6700\u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 17.0 Suspension Max Drop \u2014 17.0 Suspension Natural Frequency \u2014 6.0 Suspension Damping Ratio \u2014 0.4 Sweep Type \u2014 SimpleAndComplex vehicle . carlamotors . carlacola \u57ce\u5e02 \u8f66 \u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 8.0 Suspension Max Drop \u2014 8.0 Suspension Natural Frequency \u2014 9.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . audi . a2 vehicle . bmw . grandtourer vehicle . chevrolet . impala vehicle . citroen . c3 vehicle . dodge _ charger . police vehicle . mini . cooperst vehicle . mustang . mustang vehicle . nissan . micra vehicle . toyota . prius \u8d27\u8f66 \u5177\u6709 \u4e2d \u5730 \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 9.0 Suspension Max Drop \u2014 9.0 Suspension Natural Frequency \u2014 8.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . volkswagen . t2 \u4f7f\u7528 \u8bba\u575b \u53d1\u5e03 \u6709\u5173 \u6b64 \u4e3b\u9898 \u7684 \u4efb\u4f55 \u7591\u95ee \u3001 \u95ee\u9898 \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u4ee5\u4e0b \u662f \u672c\u6587 \u4e4b\u540e \u7684 \u4e00\u4e9b \u5efa\u8bae \u8bfb\u7269 \u3002 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e","title":"\u81ea\u5b9a\u4e49 \u8f66\u8f86 \u60ac\u67b6"},{"location":"tuto_D_customize_vehicle_suspension/#_1","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 Carla \u8f66\u8f86 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \uff0c \u4ee5\u53ca \u5982\u4f55 \u9488\u5bf9 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f66\u8f86 \u5b9e\u65bd \u8fd9\u4e9b \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u4f7f\u7528 \u6b64 \u4fe1\u606f \u53ef\u4ee5 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u4e2d \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53c2\u6570 \uff0c \u5e76 \u968f\u610f \u5bf9 \u5176 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u3002 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u60ac\u67b6 \u7ec4 \u8f7f \u8dd1\u8f66 \u8d8a\u91ce \u5361\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66","title":"\u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6"},{"location":"tuto_D_customize_vehicle_suspension/#_2","text":"\u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u7531 \u6240\u8ff0 \u8f66\u8f86 \u7684 \u8f66\u8f6e \u9650\u5b9a \u3002 \u6bcf\u4e2a \u8f66\u8f6e \u90fd \u6709 \u4e00\u4e2a \u5e26\u6709 \u4e00\u4e9b \u53c2\u6570 \u5316 \u7684 \u72ec\u7acb \u84dd\u56fe \uff0c \u5176\u4e2d \u5305\u62ec \u60ac\u67b6 \u7cfb\u7edf \u3002 \u8fd9\u4e9b \u84dd\u56fe \u53ef\u4ee5 \u5728 Content / Carla / Blueprints / Vehicles / < vehicle _ name > \u4e2d \u627e\u5230 \u3002 \u5b83\u4eec \u7684 \u540d\u79f0 \u5982\u4e0b \uff1a BP _ < vehicle _ name > _ < F / R > < R / L > W \u3002 F \u6216 R \u76f8\u5e94 \u5730 \u7528\u4e8e \u524d\u8f6e \u6216 \u540e\u8f6e \u3002 R \u6216 L \u5e94\u5730 \u7528\u4e8e \u53f3\u8f6e \u6216 \u5de6\u8f6e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5965\u8fea A2 \u5de6 \u524d\u8f6e \u7684 \u84dd\u56fe \u547d\u540d \u4e3a BP _ AudiA2 _ FLW . shape _ radius \u8ba9 \u8f66\u8f6e \u505c \u5728 \u8def\u9762 \u4e0a \uff0c \u65e2 \u4e0d \u60ac\u505c \u4e5f \u4e0d \u5728 \u8def\u9762 \u5185\u90e8 \u3002 \u5728 \u84dd\u56fe \u4e2d \uff0c \u6709 \u4e00\u4e2a \u90e8\u5206 \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u60ac\u67b6 \u7684 \u4e00\u4e9b \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u662f \u865a\u5e7b \u5f15\u64ce \u4e2d \u63cf\u8ff0 \u7684 \u5b83\u4eec \u7684 \u5b9a\u4e49 \u3002 Suspension Force Offset \u2014 \u8ddd \u65bd\u52a0 \u60ac\u6302 \u529b \u7684 \u4f4d\u7f6e \u7684 \u5782\u76f4 \u504f\u79fb \uff08 \u6cbf Z \u8f74 \uff09 \u3002 Suspension Max Raise \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u8d85\u51fa \u9759\u6b62 \u4f4d\u7f6e \u591a\u8fdc \u3002 Suspension Max Drop \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u4e0b\u964d \u5230 \u9759\u6b62 \u4f4d\u7f6e \u4ee5\u4e0b \u591a\u8fdc \u3002 Suspension Natural Frequency \u2014 \u60ac\u67b6 \u7684 \u632f\u8361 \u9891\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 5 \u548c \u4e4b\u95f4 10 \u3002 Suspension Damping Ratio \u2014 \u80fd\u91cf \u4ece \u5f39\u7c27 \u8017\u6563 \u7684 \u901f\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 0.8 \u548c 1.2 \u4e4b\u95f4 \u3002 \u503c < 1 \u66f4\u52a0 \u8fdf\u7f13 \uff0c \u503c > 1 \u66f4\u52a0 \u52a8\u8361 \u3002 Sweep Type \u2014 \u8f66\u8f6e \u60ac\u67b6 \u662f\u5426 \u8003\u8651 \u7b80\u5355 \u3001 \u590d\u6742 \u6216 \u4e24\u8005 \u800c\u6709 \u517c\u800c\u6709\u4e4b \u3002 \u8f66\u8f6e \u84dd\u56fe \u4e2d \u7684 \u60ac\u67b6 \u9762\u677f \u3002 \u7b14\u8bb0 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8f66\u8f86 \u7684 \u6240\u6709 \u8f66\u8f6e \u5728 Carla \u4e2d \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u89e3\u91ca \u5c06 \u6309 \u8f66\u8f86 \u800c \u4e0d\u662f \u6309 \u8f66\u8f6e \u8fdb\u884c \u4ecb\u7ecd \u3002","title":"\u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840\u77e5\u8bc6"},{"location":"tuto_D_customize_vehicle_suspension/#_3","text":"\u6839\u636e \u5176 \u7cfb\u7edf \u60ac\u67b6 \uff0c Carla \u4e2d \u7684 \u8f66\u8f86 \u53ef \u5206\u4e3a \u4e94\u7ec4 \u3002 \u7ec4\u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \uff0c \u56e0\u4e3a \u5b83\u4eec \u9884\u8ba1 \u5728 \u9053\u8def \u4e0a \u5177\u6709 \u76f8\u4f3c \u7684 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53ef\u4ee5 \u968f\u610f \u4fee\u6539 \uff0c \u4e0d\u53d7 \u8fd9 \u4e94\u7ec4 \u7684 \u9650\u5236 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 \u8fd9\u4e9b \u5e76 \u89c2\u5bdf \u5b83\u4eec \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u5bf9\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60ac\u67b6 \u975e\u5e38 \u6709\u7528 \u3002 \u8fd9 \u4e94\u4e2a \u7ec4\u662f \uff1a \u8f7f \u8dd1\u8f66 \u3001 \u8d8a\u91ce \u8d8a\u91ce\u8f66 \u3001 \u5361\u8f66 \u3001 \u57ce\u5e02 \u8f66 \u548c \u8d27\u8f66 \u3002 \u901a\u8fc7 \u4ed4\u7ec6 \u7ec6\u89c2 \u89c2\u5bdf \u4ed4\u7ec6\u89c2\u5bdf \uff0c \u8fd9\u4e9b \u7ec4 \u7684 \u53c2\u6570 \u5316 \u9075\u5faa \u7279\u5b9a \u7684 \u6a21\u5f0f \u3002 \u521a\u6027 \u60ac\u67b6 \u8f7f \u8dd1\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66 \u8d8a\u91ce \u5361\u8f66 \u8f6f \u60ac\u67b6 \u5f53 \u4ece \u8f6f \u60ac\u67b6 \u8f6c\u5411 \u786c \u60ac\u67b6 \u65f6 \uff0c \u53c2\u6570 \u5316\u6709 \u4e00\u4e9b \u660e\u663e \u7684 \u8d8b\u52bf \u3002 Suspension Max Raise \u548c Suspension Max Drop \u7684 __ \u51cf\u5c11 \u2014 \u521a\u6027 \u8f66\u8f86 \u5e94 \u5728 \u5e73\u5766 \u7684 \u9053\u8def \u4e0a \u884c\u9a76 \u4e14 \u6ca1\u6709 \u98a0\u7c38 \u3002 \u51fa\u4e8e \u7a7a\u6c14 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u8003\u8651 \uff0c \u5e95\u76d8 \u4e0d \u5e94 \u5927\u5e45 \u79fb\u52a8 \uff0c \u800c\u5e94 \u59cb\u7ec8 \u4fdd\u6301 \u59cb\u7ec8\u4fdd\u6301 \u9760\u8fd1 \u5730\u9762 \u3002 Suspension Damping Ratio \u7684 \u589e\u52a0 \u2014 \u5bf9\u4e8e \u521a\u6027 \u8f66\u8f86 \u6765\u8bf4 \uff0c \u51cf\u9707 \u51cf\u9707\u5668 \u5438\u6536 \u7684 \u5f39\u8df3 \u66f4\u5927 \u3002","title":"\u60ac\u67b6 \u7ec4"},{"location":"tuto_D_customize_vehicle_suspension/#_4","text":"\u5177\u6709 \u6700 \u786c \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 7.5 Suspension Max Drop \u2014 7.5 Suspension Natural Frequency \u2014 9.5 Suspension Damping Ratio \u2014 1.0 Sweep Type \u2014 SimpleAndComplex vehicle . audi . tt vehicle . lincoln . mkz2017 vehicle . mercedes - benz . coupe vehicle . seat . leon vehicle . tesla . model3","title":"\u8f7f \u8dd1\u8f66"},{"location":"tuto_D_customize_vehicle_suspension/#_5","text":"\u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 15.0 Suspension Max Drop \u2014 15.0 Suspension Natural Frequency \u2014 7.0 Suspension Damping Ratio \u2014 0.5 Sweep Type \u2014 SimpleAndComplex vehicle . audi . etron vehicle . jeep . wrangler _ rubicon vehicle . nissan . patrol vehicle . tesla . cybertruck","title":"\u8d8a\u91ce"},{"location":"tuto_D_customize_vehicle_suspension/#_6","text":"\u5177\u6709 \u6700\u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 17.0 Suspension Max Drop \u2014 17.0 Suspension Natural Frequency \u2014 6.0 Suspension Damping Ratio \u2014 0.4 Sweep Type \u2014 SimpleAndComplex vehicle . carlamotors . carlacola","title":"\u5361\u8f66"},{"location":"tuto_D_customize_vehicle_suspension/#_7","text":"\u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 8.0 Suspension Max Drop \u2014 8.0 Suspension Natural Frequency \u2014 9.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . audi . a2 vehicle . bmw . grandtourer vehicle . chevrolet . impala vehicle . citroen . c3 vehicle . dodge _ charger . police vehicle . mini . cooperst vehicle . mustang . mustang vehicle . nissan . micra vehicle . toyota . prius","title":"\u57ce\u5e02 \u8f66"},{"location":"tuto_D_customize_vehicle_suspension/#_8","text":"\u5177\u6709 \u4e2d \u5730 \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 9.0 Suspension Max Drop \u2014 9.0 Suspension Natural Frequency \u2014 8.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . volkswagen . t2 \u4f7f\u7528 \u8bba\u575b \u53d1\u5e03 \u6709\u5173 \u6b64 \u4e3b\u9898 \u7684 \u4efb\u4f55 \u7591\u95ee \u3001 \u95ee\u9898 \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u4ee5\u4e0b \u662f \u672c\u6587 \u4e4b\u540e \u7684 \u4e00\u4e9b \u5efa\u8bae \u8bfb\u7269 \u3002 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e","title":"\u8d27\u8f66"},{"location":"tuto_D_generate_colliders/","text":"\u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u4f53 \u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4e3a \u8f66\u8f86 \u521b\u5efa \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u76f8\u5bf9 \u4e8e \u5bf9\u8c61 \u7684 \u539f\u59cb \u5f62\u72b6 \uff09 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u7528\u4f5c \u7269\u7406 \u78b0\u649e \u5668 \uff0c \u4e0e \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u517c\u5bb9 \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4f5c \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u7684 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5 \u68c0\u7d22 \u66f4 \u51c6\u786e \u7684 \u6570\u636e \u3002 \u65b0 \u7684 \u78b0\u649e \u673a \u53ef\u4ee5 \u96c6\u6210 \u5230 Carla \u4e2d \uff0c \u4ee5\u4fbf \u6240\u6709 \u793e\u533a \u90fd \u80fd \u4ece\u4e2d \u53d7\u76ca \u3002 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u4e3a \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u505a\u51fa \u8d21\u732e \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u7684 \u78b0\u649e \u5668 \uff0c \u4f46 \u5b83\u4eec \u5e76 \u4e0d \u5b8c\u5168 \u7b49\u6548 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9700\u8981 \u4e00\u4e9b \u57fa\u672c \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u6280\u80fd \u3002 \u8f66\u8f86 \u4e2d \u6dfb\u52a0 \u4e86 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5\u4fbf \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u68c0\u7d22 \u66f4 \u7cbe\u786e \u7684 \u6570\u636e \u3002 \u7269\u7406 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9075\u5faa \u8d21\u732e \u8d21\u732e\u8005 Yan Kaganovsky / yankagan \u521b\u5efa \u7684 \u6559\u7a0b \uff0c \u65e0\u9700 \u624b\u52a8 \u5efa\u6a21 \u5373\u53ef \u521b\u5efa \u7f51\u683c \u3002 \u7136\u540e \uff0c \u8be5 \u7f51\u683c \u7528\u4f5c \u8f66\u8f86 \u7684 \u4e3b \u78b0\u649e \u5668 \uff0c \u7528\u4e8e \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \uff08 \u9664\u975e \u6dfb\u52a0 \u8f85\u52a9 \u78b0\u649e \u5668 \uff09 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 1 - \u5bfc\u51fa \u8f66\u8f86 FBX 2 - \u751f\u6210 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c 3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce 4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53 \u7269\u7406 \u78b0\u649e \u4f53 0 - \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 1 - \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e 2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX 3 \u5230 4 - \u5bfc\u5165 \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fb9\u754c 5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX 6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53 1 - \u5bfc\u51fa \u8f66\u8f86 FBX \u9996\u5148 \u9700\u8981 \u4ee5 \u8f66\u8f86 \u7684 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \u3002 \u51fa\u4e8e \u5b66\u4e60 \u76ee\u7684 \uff0c \u672c \u6559\u7a0b \u5bfc\u51fa Carla \u8f66\u8f86 \u7684 \u7f51\u683c \u3002 1.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 1.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002 2 - \u751f\u6210 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c 2.1 \u6253\u5f00 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \uff0c \u5efa\u6a21 \u4e00\u4e2a \u4e0e \u539f\u59cb \u7f51\u683c \u4fdd\u6301 \u53ef\u9760 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c \u3002 2.2 \u5c06 \u65b0 \u7f51\u683c \u4fdd\u5b58 \u4e3a FBX \u3002 \u5c06 \u7f51\u683c \u547d\u540d \u4e3a sm _ sc _ < model _ of _ vehicle > . fbx \u3002 \u4f8b\u5982 sm _ sc _ audiTT . fbx . \u7b14\u8bb0 \u81f3\u4e8e \u8f66\u8f6e \u548c \u9644\u52a0 \u5143\u4ef6 \uff08 \u4f8b\u5982 \u8f66\u9876 \u3001 \u6321\u6ce5 \u6ce5\u677f \u6321\u6ce5\u677f \u7b49 \uff09 \uff0c \u65b0 \u7f51\u683c \u5e94\u8be5 \u975e\u5e38 \u51c6\u786e \u5730 \u9075\u5faa \u51e0\u4f55 \u5f62\u72b6 \u3002 \u653e\u7f6e \u7b80\u5355 \u7684 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u662f \u4e0d\u884c \u7684 \u3002 3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce 3.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > . 3.2 \u70b9\u51fb right - click \u5bfc\u5165 \u65b0 \u7f51\u683c SM _ sc _ < model _ of _ vehicle > . fbx \u3002 4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53 4.1 \u8fdb\u5165 Content / Carla / Blueprints / Vehicles / < model _ of _ vehicle > \u5e76 \u6253\u5f00 \u540d\u4e3a BP _ < model _ of _ vehicle > \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 4.2 \u9009\u62e9 CustomCollision \u5143\u7d20 \u5e76 \u5728 Static mesh \u5c5e\u6027 \u4e2d \u6dfb\u52a0 SM _ sc _ < model _ of _ vehicle > . fbx \u3002 4.3 \u70b9\u51fb \u4e0a\u65b9 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 Compile \u5e76 \u4fdd\u5b58 \u66f4\u6539 \u3002 \u7b14\u8bb0 \u5bf9\u4e8e \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7b49 \u8f66\u8f86 \uff0c \u4f7f\u7528 \u76f8\u540c \u7684 \u7ec4\u4ef6 CustomCollision \u66f4\u6539 \u8f66\u8f86 \u672c\u8eab \u7684 \u78b0\u649e \u5668 \u7f51\u683c \u3002 \u7269\u7406 \u78b0\u649e \u4f53 \u91cd\u8981 \u672c \u6559\u7a0b \u57fa\u4e8e yankagan \u7684 \u8d21\u732e \uff01 \u8d21\u732e \u8d21\u732e\u8005 \u8fd8 \u5e0c\u671b \u611f\u8c22 Francisco E \u5173\u4e8e \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u7684 \u6559\u7a0b \u3002 \u8be5 \u89c6\u9891 \u5c55\u793a \u4e86 \u9075\u5faa \u672c \u6559\u7a0b \u540e \u6240 \u53d6\u5f97 \u7684 \u7ed3\u679c \u3002 0 - \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5728 Linux \u6216 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u53ef \u4ece \u5b98\u65b9 \u7f51\u7ad9 \u5b98\u65b9\u7f51 \u5b98\u65b9\u7f51\u7ad9 \u514d\u8d39 \u83b7\u53d6 Blender 2.80 \u6216 \u66f4\u65b0 \u7248\u672c \uff08 \u5f00\u6e90 3D \u5efa\u6a21 \u8f6f\u4ef6 \uff09 \u3002 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u4f7f\u7528 Blender \u7684 VHACD \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u4f7f\u7528 \u51f8\u5305 \u96c6\u5408 \u81ea\u52a8 \u521b\u5efa \u9009\u5b9a \u5bf9\u8c61 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 \u9605\u8bfb \u66f4 \u591a \u3002 \u7b14\u8bb0 \u8fd9\u4e2a \u7cfb\u5217 \u548c Udemy \u8bfe\u7a0b \u5bf9\u4e8e \u65b0\u624b \u6765\u8bf4 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 Blender \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u3002 1 - \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u7b2c 1 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u6dfb\u52a0 \u8f66\u8f6e \u7684 \u78b0\u649e \u8fb9\u754c \u3002 \u4ee5\u4e0b \u89c6\u9891 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd9\u4e9b \u6b65\u9aa4 \u3002 2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX \u7b2c 2 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u3002 2.1 \u8f6c \u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 2.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \uff0c \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002 3 \u5230 4 - \u5bfc\u5165 \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fb9\u754c \u7b2c 3 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 FBX \u6587\u4ef6 \u5bfc\u5165 Blender \u3002 \u7b2c 4 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u6dfb\u52a0 \u51f8\u5305 \u7f51\u683c \u4ee5 \u5f62\u6210 \u65b0 \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u865a\u5e7b \u5f15\u64ce \u5bf9 \u8ba1\u7b97 \u6548\u7387 \u7684 \u8981\u6c42 \uff09 \u3002 \u8fd9\u662f \u6700\u96be \u7684 \u4e00\u6b65 \u3002 \u5982\u679c \u9009\u62e9 \u6574\u8f86 \u8f66 \uff0c VHACD \u521b\u5efa \u7684 \u78b0\u649e \u8fb9\u754c \u5c06 \u4e0d \u7cbe\u786e \u4e14 \u6df7\u4e71 \u3002 \u5b83 \u5c06 \u5305\u542b \u950b\u5229 \u7684 \u8fb9\u7f18 \uff0c \u8fd9\u4f1a \u6270\u4e71 \u9053\u8def \u4e0a \u7684 \u884c\u9a76 \u3002 \u8f6e\u5b50 \u5468\u56f4 \u8981 \u6709 \u5149\u6ed1 \u7684 \u8fb9\u754c \uff0c \u8fd9 \u4e00\u70b9 \u5f88 \u91cd\u8981 \u3002 \u5728 \u8f66 \u8eab\u4e0a \u4f7f\u7528 \u51f8 \u5206\u89e3 \uff0c \u540e\u89c6 \u540e\u89c6\u955c \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u4ecd\u7136 \u4e0d \u6b63\u786e \u3002 \u5bf9\u4e8e \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u6765\u8bf4 \uff0c \u8f66\u8f86 \u7684 \u7ec6\u8282 \u975e\u5e38 \u91cd\u8981 \u3002 \u7531\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8fd9\u4e9b \u6b65\u9aa4 \u88ab \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \u3002 4.1 \u4f7f\u7528 VHACD \u5de5\u5177 \u5207 \u51fa \u8f66\u8f6e \u7684 \u5e95\u90e8 \u3001 \u4fa7\u89c6 \u955c \u548c \u8f66\u8eab \u7684 \u9876\u90e8 \uff0c \u4ee5 \u521b\u5efa \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fb9\u754c \u3002 \u4f7f\u7528 VHACD \u5de5\u5177 \u526a\u6389 \u6c7d\u8f66 \u7684 \u4e0b \u534a \u90e8\u5206 \u4ee5 \u521b\u5efa \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u8fb9\u754c \uff08 \u6c7d\u8f66 \u7684 \u9876\u90e8 \uff09 \u3002 4.2 \u4f7f\u7528 VHACD \u5de5\u5177 \u4e3a \u540e\u89c6 \u540e\u89c6\u955c \u521b\u5efa \u5355\u72ec \u7684 \u8fb9\u754c \u3002 \u8b66\u544a \u547d\u540d \u5bf9\u8c61 \u65f6\u8981 \u975e\u5e38 \u5c0f\u5fc3 \u3002 \u6bcf\u4e2a \u8fb9\u754c \u5e94 \u4ee5 UCX _ \u5f00\u5934 \uff0c \u5176\u4f59 \u540d\u79f0 \u5fc5\u987b \u4e0e \u539f\u59cb \u7f51\u683c \u5b8c\u5168 \u76f8\u540c \u3002 5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX \u7b2c 5 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u8fb9\u754c \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u4e2d \u3002 5.1 \u4ec5 \u9009\u62e9 \u539f\u59cb \u8f66\u8f86 \u548c \u6240\u6709 \u65b0 \u6dfb\u52a0 \u7684 \u7269\u4f53 \u8fdb\u884c \u78b0\u649e \u3002 5.2 \u5728 \u5bfc\u51fa \u83dc\u5355 \u4e2d \uff0c \u9009\u4e2d selected objects \u5e76 \u4ec5 \u9009\u62e9 \u201c Mesh \u201d \u3002 6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406 \u7b2c 6 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u65b0 FBX \u4f5c\u4e3a \u865a\u5e7b \u8d44\u6e90 \u6587\u4ef6 \uff08 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \uff09 \u5bfc\u5165 Carla \u3002 \u7b2c 7 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u5668 \u5bfc\u5165 \u5bfc\u5165\u5230 \u7279\u5b9a \u8f66\u8f86 \u7684 \u7269\u7406 \u8d44\u6e90 \u4e2d \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u7528\u4e8e \u8ba1\u7b97 \u3002 \u7b2c 8 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u521b\u5efa \u8fde\u63a5 \u4e0d\u540c \u5173\u8282 \u7684 \u7ea6\u675f \u5e76 \u5b9a\u4e49 \u6240\u6709 \u90e8\u4ef6 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u66f4\u6539 Carla \u4e2d \u8f66\u8f86 \u7684 \u9ed8\u8ba4 \u78b0\u649e \u5668 \u7684 \u603b\u7ed3 \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u8be6\u7ec6 \u78b0\u649e"},{"location":"tuto_D_generate_colliders/#_1","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4e3a \u8f66\u8f86 \u521b\u5efa \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u76f8\u5bf9 \u4e8e \u5bf9\u8c61 \u7684 \u539f\u59cb \u5f62\u72b6 \uff09 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u7528\u4f5c \u7269\u7406 \u78b0\u649e \u5668 \uff0c \u4e0e \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u517c\u5bb9 \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4f5c \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u7684 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5 \u68c0\u7d22 \u66f4 \u51c6\u786e \u7684 \u6570\u636e \u3002 \u65b0 \u7684 \u78b0\u649e \u673a \u53ef\u4ee5 \u96c6\u6210 \u5230 Carla \u4e2d \uff0c \u4ee5\u4fbf \u6240\u6709 \u793e\u533a \u90fd \u80fd \u4ece\u4e2d \u53d7\u76ca \u3002 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u4e3a \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u505a\u51fa \u8d21\u732e \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u7684 \u78b0\u649e \u5668 \uff0c \u4f46 \u5b83\u4eec \u5e76 \u4e0d \u5b8c\u5168 \u7b49\u6548 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9700\u8981 \u4e00\u4e9b \u57fa\u672c \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u6280\u80fd \u3002 \u8f66\u8f86 \u4e2d \u6dfb\u52a0 \u4e86 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5\u4fbf \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u68c0\u7d22 \u66f4 \u7cbe\u786e \u7684 \u6570\u636e \u3002 \u7269\u7406 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9075\u5faa \u8d21\u732e \u8d21\u732e\u8005 Yan Kaganovsky / yankagan \u521b\u5efa \u7684 \u6559\u7a0b \uff0c \u65e0\u9700 \u624b\u52a8 \u5efa\u6a21 \u5373\u53ef \u521b\u5efa \u7f51\u683c \u3002 \u7136\u540e \uff0c \u8be5 \u7f51\u683c \u7528\u4f5c \u8f66\u8f86 \u7684 \u4e3b \u78b0\u649e \u5668 \uff0c \u7528\u4e8e \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \uff08 \u9664\u975e \u6dfb\u52a0 \u8f85\u52a9 \u78b0\u649e \u5668 \uff09 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 1 - \u5bfc\u51fa \u8f66\u8f86 FBX 2 - \u751f\u6210 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c 3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce 4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53 \u7269\u7406 \u78b0\u649e \u4f53 0 - \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 1 - \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e 2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX 3 \u5230 4 - \u5bfc\u5165 \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fb9\u754c 5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX 6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406","title":"\u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#_2","text":"","title":"\u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#1-fbx","text":"\u9996\u5148 \u9700\u8981 \u4ee5 \u8f66\u8f86 \u7684 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \u3002 \u51fa\u4e8e \u5b66\u4e60 \u76ee\u7684 \uff0c \u672c \u6559\u7a0b \u5bfc\u51fa Carla \u8f66\u8f86 \u7684 \u7f51\u683c \u3002 1.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 1.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002","title":"1 - \u5bfc\u51fa \u8f66\u8f86 FBX"},{"location":"tuto_D_generate_colliders/#2-","text":"2.1 \u6253\u5f00 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \uff0c \u5efa\u6a21 \u4e00\u4e2a \u4e0e \u539f\u59cb \u7f51\u683c \u4fdd\u6301 \u53ef\u9760 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c \u3002 2.2 \u5c06 \u65b0 \u7f51\u683c \u4fdd\u5b58 \u4e3a FBX \u3002 \u5c06 \u7f51\u683c \u547d\u540d \u4e3a sm _ sc _ < model _ of _ vehicle > . fbx \u3002 \u4f8b\u5982 sm _ sc _ audiTT . fbx . \u7b14\u8bb0 \u81f3\u4e8e \u8f66\u8f6e \u548c \u9644\u52a0 \u5143\u4ef6 \uff08 \u4f8b\u5982 \u8f66\u9876 \u3001 \u6321\u6ce5 \u6ce5\u677f \u6321\u6ce5\u677f \u7b49 \uff09 \uff0c \u65b0 \u7f51\u683c \u5e94\u8be5 \u975e\u5e38 \u51c6\u786e \u5730 \u9075\u5faa \u51e0\u4f55 \u5f62\u72b6 \u3002 \u653e\u7f6e \u7b80\u5355 \u7684 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u662f \u4e0d\u884c \u7684 \u3002","title":"2 - \u751f\u6210 \u4f4e\u5bc6\u5ea6 \u7f51\u683c"},{"location":"tuto_D_generate_colliders/#3-","text":"3.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > . 3.2 \u70b9\u51fb right - click \u5bfc\u5165 \u65b0 \u7f51\u683c SM _ sc _ < model _ of _ vehicle > . fbx \u3002","title":"3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce"},{"location":"tuto_D_generate_colliders/#4-","text":"4.1 \u8fdb\u5165 Content / Carla / Blueprints / Vehicles / < model _ of _ vehicle > \u5e76 \u6253\u5f00 \u540d\u4e3a BP _ < model _ of _ vehicle > \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 4.2 \u9009\u62e9 CustomCollision \u5143\u7d20 \u5e76 \u5728 Static mesh \u5c5e\u6027 \u4e2d \u6dfb\u52a0 SM _ sc _ < model _ of _ vehicle > . fbx \u3002 4.3 \u70b9\u51fb \u4e0a\u65b9 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 Compile \u5e76 \u4fdd\u5b58 \u66f4\u6539 \u3002 \u7b14\u8bb0 \u5bf9\u4e8e \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7b49 \u8f66\u8f86 \uff0c \u4f7f\u7528 \u76f8\u540c \u7684 \u7ec4\u4ef6 CustomCollision \u66f4\u6539 \u8f66\u8f86 \u672c\u8eab \u7684 \u78b0\u649e \u5668 \u7f51\u683c \u3002","title":"4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#_3","text":"\u91cd\u8981 \u672c \u6559\u7a0b \u57fa\u4e8e yankagan \u7684 \u8d21\u732e \uff01 \u8d21\u732e \u8d21\u732e\u8005 \u8fd8 \u5e0c\u671b \u611f\u8c22 Francisco E \u5173\u4e8e \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u7684 \u6559\u7a0b \u3002 \u8be5 \u89c6\u9891 \u5c55\u793a \u4e86 \u9075\u5faa \u672c \u6559\u7a0b \u540e \u6240 \u53d6\u5f97 \u7684 \u7ed3\u679c \u3002","title":"\u7269\u7406 \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#0-","text":"\u5728 Linux \u6216 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u53ef \u4ece \u5b98\u65b9 \u7f51\u7ad9 \u5b98\u65b9\u7f51 \u5b98\u65b9\u7f51\u7ad9 \u514d\u8d39 \u83b7\u53d6 Blender 2.80 \u6216 \u66f4\u65b0 \u7248\u672c \uff08 \u5f00\u6e90 3D \u5efa\u6a21 \u8f6f\u4ef6 \uff09 \u3002 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u4f7f\u7528 Blender \u7684 VHACD \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u4f7f\u7528 \u51f8\u5305 \u96c6\u5408 \u81ea\u52a8 \u521b\u5efa \u9009\u5b9a \u5bf9\u8c61 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 \u9605\u8bfb \u66f4 \u591a \u3002 \u7b14\u8bb0 \u8fd9\u4e2a \u7cfb\u5217 \u548c Udemy \u8bfe\u7a0b \u5bf9\u4e8e \u65b0\u624b \u6765\u8bf4 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 Blender \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u3002","title":"0 - \u5148\u51b3\u6761\u4ef6"},{"location":"tuto_D_generate_colliders/#1-","text":"\u7b2c 1 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u6dfb\u52a0 \u8f66\u8f6e \u7684 \u78b0\u649e \u8fb9\u754c \u3002 \u4ee5\u4e0b \u89c6\u9891 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd9\u4e9b \u6b65\u9aa4 \u3002","title":"1 - \u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a\u4e49 \u78b0\u649e"},{"location":"tuto_D_generate_colliders/#2-fbx","text":"\u7b2c 2 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u3002 2.1 \u8f6c \u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 2.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \uff0c \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002","title":"2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX"},{"location":"tuto_D_generate_colliders/#3-4-blender","text":"\u7b2c 3 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 FBX \u6587\u4ef6 \u5bfc\u5165 Blender \u3002 \u7b2c 4 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u6dfb\u52a0 \u51f8\u5305 \u7f51\u683c \u4ee5 \u5f62\u6210 \u65b0 \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u865a\u5e7b \u5f15\u64ce \u5bf9 \u8ba1\u7b97 \u6548\u7387 \u7684 \u8981\u6c42 \uff09 \u3002 \u8fd9\u662f \u6700\u96be \u7684 \u4e00\u6b65 \u3002 \u5982\u679c \u9009\u62e9 \u6574\u8f86 \u8f66 \uff0c VHACD \u521b\u5efa \u7684 \u78b0\u649e \u8fb9\u754c \u5c06 \u4e0d \u7cbe\u786e \u4e14 \u6df7\u4e71 \u3002 \u5b83 \u5c06 \u5305\u542b \u950b\u5229 \u7684 \u8fb9\u7f18 \uff0c \u8fd9\u4f1a \u6270\u4e71 \u9053\u8def \u4e0a \u7684 \u884c\u9a76 \u3002 \u8f6e\u5b50 \u5468\u56f4 \u8981 \u6709 \u5149\u6ed1 \u7684 \u8fb9\u754c \uff0c \u8fd9 \u4e00\u70b9 \u5f88 \u91cd\u8981 \u3002 \u5728 \u8f66 \u8eab\u4e0a \u4f7f\u7528 \u51f8 \u5206\u89e3 \uff0c \u540e\u89c6 \u540e\u89c6\u955c \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u4ecd\u7136 \u4e0d \u6b63\u786e \u3002 \u5bf9\u4e8e \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u6765\u8bf4 \uff0c \u8f66\u8f86 \u7684 \u7ec6\u8282 \u975e\u5e38 \u91cd\u8981 \u3002 \u7531\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8fd9\u4e9b \u6b65\u9aa4 \u88ab \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \u3002 4.1 \u4f7f\u7528 VHACD \u5de5\u5177 \u5207 \u51fa \u8f66\u8f6e \u7684 \u5e95\u90e8 \u3001 \u4fa7\u89c6 \u955c \u548c \u8f66\u8eab \u7684 \u9876\u90e8 \uff0c \u4ee5 \u521b\u5efa \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fb9\u754c \u3002 \u4f7f\u7528 VHACD \u5de5\u5177 \u526a\u6389 \u6c7d\u8f66 \u7684 \u4e0b \u534a \u90e8\u5206 \u4ee5 \u521b\u5efa \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u8fb9\u754c \uff08 \u6c7d\u8f66 \u7684 \u9876\u90e8 \uff09 \u3002 4.2 \u4f7f\u7528 VHACD \u5de5\u5177 \u4e3a \u540e\u89c6 \u540e\u89c6\u955c \u521b\u5efa \u5355\u72ec \u7684 \u8fb9\u754c \u3002 \u8b66\u544a \u547d\u540d \u5bf9\u8c61 \u65f6\u8981 \u975e\u5e38 \u5c0f\u5fc3 \u3002 \u6bcf\u4e2a \u8fb9\u754c \u5e94 \u4ee5 UCX _ \u5f00\u5934 \uff0c \u5176\u4f59 \u540d\u79f0 \u5fc5\u987b \u4e0e \u539f\u59cb \u7f51\u683c \u5b8c\u5168 \u76f8\u540c \u3002","title":"3 \u5230 4 - \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a\u4e49 \u8fb9\u754c"},{"location":"tuto_D_generate_colliders/#5-blender-fbx","text":"\u7b2c 5 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u8fb9\u754c \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u4e2d \u3002 5.1 \u4ec5 \u9009\u62e9 \u539f\u59cb \u8f66\u8f86 \u548c \u6240\u6709 \u65b0 \u6dfb\u52a0 \u7684 \u7269\u4f53 \u8fdb\u884c \u78b0\u649e \u3002 5.2 \u5728 \u5bfc\u51fa \u83dc\u5355 \u4e2d \uff0c \u9009\u4e2d selected objects \u5e76 \u4ec5 \u9009\u62e9 \u201c Mesh \u201d \u3002","title":"5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX"},{"location":"tuto_D_generate_colliders/#6-8-","text":"\u7b2c 6 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u65b0 FBX \u4f5c\u4e3a \u865a\u5e7b \u8d44\u6e90 \u6587\u4ef6 \uff08 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \uff09 \u5bfc\u5165 Carla \u3002 \u7b2c 7 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u5668 \u5bfc\u5165 \u5bfc\u5165\u5230 \u7279\u5b9a \u8f66\u8f86 \u7684 \u7269\u7406 \u8d44\u6e90 \u4e2d \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u7528\u4e8e \u8ba1\u7b97 \u3002 \u7b2c 8 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u521b\u5efa \u8fde\u63a5 \u4e0d\u540c \u5173\u8282 \u7684 \u7ea6\u675f \u5e76 \u5b9a\u4e49 \u6240\u6709 \u90e8\u4ef6 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u66f4\u6539 Carla \u4e2d \u8f66\u8f86 \u7684 \u9ed8\u8ba4 \u78b0\u649e \u5668 \u7684 \u603b\u7ed3 \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406"},{"location":"tuto_D_make_release/","text":"\u5982\u4f55 \u53d1\u5e03 \u672c \u6587\u6863 \u9002\u7528 \u4e8e \u60f3\u8981 \u53d1\u5e03 \u65b0 \u7248\u672c \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u3002 \u786e\u4fdd \u5185\u5bb9 \u662f \u6700\u65b0 \u7684 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u5347\u7ea7 \u5185\u5bb9 \u3002 \u5fc5\u8981 \u65f6 \u589e\u52a0 Carla \u7248\u672c \u3002 \u589e\u52a0 \u4ee5\u4e0b \u6587\u4ef6 \u4e2d \u7684 \u7248\u672c \uff1a DefaultGame . ini , Carla . uplugin , setup . py , ContentVersions . txt \u3002 Grep \u67e5\u770b \u5f53\u524d \u7248\u672c \uff0c \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4e0d\u4f1a \u9519\u8fc7 \u4efb\u4f55 \u53c2\u8003 \u3002 \u6e05\u9664 CHANGELOG . md \u3002 \u786e\u4fdd \u53d8\u66f4 \u65e5\u5fd7 \u662f \u6700\u65b0 \u7684 \uff0c \u5fc5\u8981 \u65f6 \u91cd\u5199 \u5e76 \u91cd\u65b0 \u7ec4\u7ec7 \uff1b \u8003\u8651 \u54ea\u4e9b \u9879\u76ee \u54ea\u4e9b\u9879\u76ee \u5bf9 \u7528\u6237 \u6765\u8bf4 \u66f4 \u91cd\u8981 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u63d0\u4ea4 \u6240\u6709 \u66f4\u6539 \u540e \uff0c \u6dfb\u52a0 \u4e00\u4e2a \u65b0 \u6807\u7b7e git tag - a X . X . X \uff08 \u7528 \u6700\u65b0 \u7248\u672c \u66ff\u6362 X . X . X \uff09 \u3002 \u6dfb\u52a0 \u6b64 \u7248\u672c \u7684 \u53d8\u66f4 \u65e5\u5fd7 \u4f5c\u4e3a \u6807\u7b7e \u6d88\u606f \u3002 \u6807\u7b7e \u5185\u5bb9 \u4ed3\u5e93 \u3002 \u5728 \u786e\u5207 \u7684 \u63d0\u4ea4 \u5904 \u5c06 \u7c7b\u4f3c \u7684 \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \uff0c \u5982 ContentVersions . txt \u4e2d \u3002 \u63a8\u9001 \u66f4\u6539 \u3002 \u5c06 \u6240\u6709 \u66f4\u6539 \u63a8\u9001 \u5230 \u4e24\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u4ee5 \u63a8\u9001 \u60a8 \u53ef\u80fd \u9700\u8981 \u4f7f\u7528 git push -- tags \u7684 \u6807\u7b7e \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u7f16\u8f91 GitHub \u7248\u672c \u3002 \u8f6c \u5230 GitHub \u53d1\u5e03 \u5e76 \u5728 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u6807\u7b7e \u4e4b\u4e0a \u521b\u5efa \u4e00\u4e2a \u65b0 \u7248\u672c \u3002 \u7b49\u5230 Jenkins \u5b8c\u6210 \u53d1\u5e03 \u6700\u65b0 \u7248\u672c \u7684 \u6784\u5efa \uff0c \u5e76 \u5c06 \u4e0b\u8f7d \u94fe\u63a5 \u6dfb\u52a0 \u5230 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u7248\u672c \u3002 \u53d1\u5e03 \u53ef \u6267\u884c \u6e38\u620f \u5b89\u88c5 pyinstaller \uff1a pip install pyinstaller \u6216 \u5b89\u88c5 \u56fe\u5f62 \u7a97\u53e3 \u6253\u5305 \u5de5\u5177 \uff1a pip install auto - py - to - exe \u7136\u540e \u8fd0\u884c auto - py - to - exe \u3002 \u8bbe\u8ba1 \u53c2\u8003 BeamNG \u95ee\u9898 \u70b9\u51fb \u6253\u5305 \u540e \u7684 \u6587\u4ef6 \u51fa\u73b0 \u9519\u8bef \uff1a TypeError : expected str , bytes or os . PathLike object , not _ io . BytesIO \u89e3\u51b3 \uff1a pygame . font . Font ( pygame . font . get _ default _ font ( ) , 20 ) \u83b7\u5f97 \u7684 \u5b57\u4f53 \u6587\u4ef6 \u4e3a freesansbold . ttf \uff0c \u6700\u540e \u5c06 \u5b57\u4f53 \u6587\u4ef6 \u62f7\u8d1d \u62f7\u8d1d\u5230 \u548c exe \u6587\u4ef6 \u76f8\u540c \u7684 \u8def\u5f84 \uff0c \u7136\u540e \u6267\u884c \u5373\u53ef \u3002","title":"\u53d1\u5e03 \u7248\u672c"},{"location":"tuto_D_make_release/#_1","text":"\u672c \u6587\u6863 \u9002\u7528 \u4e8e \u60f3\u8981 \u53d1\u5e03 \u65b0 \u7248\u672c \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u3002 \u786e\u4fdd \u5185\u5bb9 \u662f \u6700\u65b0 \u7684 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u5347\u7ea7 \u5185\u5bb9 \u3002 \u5fc5\u8981 \u65f6 \u589e\u52a0 Carla \u7248\u672c \u3002 \u589e\u52a0 \u4ee5\u4e0b \u6587\u4ef6 \u4e2d \u7684 \u7248\u672c \uff1a DefaultGame . ini , Carla . uplugin , setup . py , ContentVersions . txt \u3002 Grep \u67e5\u770b \u5f53\u524d \u7248\u672c \uff0c \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4e0d\u4f1a \u9519\u8fc7 \u4efb\u4f55 \u53c2\u8003 \u3002 \u6e05\u9664 CHANGELOG . md \u3002 \u786e\u4fdd \u53d8\u66f4 \u65e5\u5fd7 \u662f \u6700\u65b0 \u7684 \uff0c \u5fc5\u8981 \u65f6 \u91cd\u5199 \u5e76 \u91cd\u65b0 \u7ec4\u7ec7 \uff1b \u8003\u8651 \u54ea\u4e9b \u9879\u76ee \u54ea\u4e9b\u9879\u76ee \u5bf9 \u7528\u6237 \u6765\u8bf4 \u66f4 \u91cd\u8981 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u63d0\u4ea4 \u6240\u6709 \u66f4\u6539 \u540e \uff0c \u6dfb\u52a0 \u4e00\u4e2a \u65b0 \u6807\u7b7e git tag - a X . X . X \uff08 \u7528 \u6700\u65b0 \u7248\u672c \u66ff\u6362 X . X . X \uff09 \u3002 \u6dfb\u52a0 \u6b64 \u7248\u672c \u7684 \u53d8\u66f4 \u65e5\u5fd7 \u4f5c\u4e3a \u6807\u7b7e \u6d88\u606f \u3002 \u6807\u7b7e \u5185\u5bb9 \u4ed3\u5e93 \u3002 \u5728 \u786e\u5207 \u7684 \u63d0\u4ea4 \u5904 \u5c06 \u7c7b\u4f3c \u7684 \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \uff0c \u5982 ContentVersions . txt \u4e2d \u3002 \u63a8\u9001 \u66f4\u6539 \u3002 \u5c06 \u6240\u6709 \u66f4\u6539 \u63a8\u9001 \u5230 \u4e24\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u4ee5 \u63a8\u9001 \u60a8 \u53ef\u80fd \u9700\u8981 \u4f7f\u7528 git push -- tags \u7684 \u6807\u7b7e \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u7f16\u8f91 GitHub \u7248\u672c \u3002 \u8f6c \u5230 GitHub \u53d1\u5e03 \u5e76 \u5728 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u6807\u7b7e \u4e4b\u4e0a \u521b\u5efa \u4e00\u4e2a \u65b0 \u7248\u672c \u3002 \u7b49\u5230 Jenkins \u5b8c\u6210 \u53d1\u5e03 \u6700\u65b0 \u7248\u672c \u7684 \u6784\u5efa \uff0c \u5e76 \u5c06 \u4e0b\u8f7d \u94fe\u63a5 \u6dfb\u52a0 \u5230 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u7248\u672c \u3002","title":"\u5982\u4f55 \u53d1\u5e03"},{"location":"tuto_D_make_release/#_2","text":"\u5b89\u88c5 pyinstaller \uff1a pip install pyinstaller \u6216 \u5b89\u88c5 \u56fe\u5f62 \u7a97\u53e3 \u6253\u5305 \u5de5\u5177 \uff1a pip install auto - py - to - exe \u7136\u540e \u8fd0\u884c auto - py - to - exe \u3002","title":"\u53d1\u5e03 \u53ef \u6267\u884c \u6e38\u620f"},{"location":"tuto_D_make_release/#_3","text":"\u53c2\u8003 BeamNG","title":"\u8bbe\u8ba1"},{"location":"tuto_D_make_release/#_4","text":"\u70b9\u51fb \u6253\u5305 \u540e \u7684 \u6587\u4ef6 \u51fa\u73b0 \u9519\u8bef \uff1a TypeError : expected str , bytes or os . PathLike object , not _ io . BytesIO \u89e3\u51b3 \uff1a pygame . font . Font ( pygame . font . get _ default _ font ( ) , 20 ) \u83b7\u5f97 \u7684 \u5b57\u4f53 \u6587\u4ef6 \u4e3a freesansbold . ttf \uff0c \u6700\u540e \u5c06 \u5b57\u4f53 \u6587\u4ef6 \u62f7\u8d1d \u62f7\u8d1d\u5230 \u548c exe \u6587\u4ef6 \u76f8\u540c \u7684 \u8def\u5f84 \uff0c \u7136\u540e \u6267\u884c \u5373\u53ef \u3002","title":"\u95ee\u9898"},{"location":"tuto_D_windows_debug/","text":"\u5728 Windows \u4e0a \u8fdb\u884c Carla \u7684 \u8c03\u8bd5 \u865a\u5e7b \u5f15\u64ce Carla \u63d2\u4ef6 \u7684 \u8c03\u8bd5 \u8fdb\u5165 \u76ee\u5f55 carla / Unreal / CarlaUE4 / \uff0c \u53f3\u952e \u6587\u4ef6 CarlaUE4 . uproject \uff0c \u9009\u62e9 \u8fd0\u884c Generate Visual Studio project files \uff0c \u5728 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e2d\u5c06 \u4f1a \u751f\u6210 VS \u7684 \u5de5\u7a0b \u6587\u4ef6 \uff0c \u53cc\u51fb \u6253\u5f00 CarlaUE4 . sln \u3002 \u7b14\u8bb0 \u5982\u679c \u53f3\u952e \u83dc\u5355 \u4e2d\u672a \u51fa\u73b0 Generate Visual Studio project files \u9009\u9879 \uff0c \u5219 \u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u76ee\u5f55 \u4e2d\u8fd0 \u53cc\u51fb \u6267\u884c engine \\ Engine \\ Binaries \\ Win64 \\ UnrealVersionSelector . exe \uff0c \u5c06 \u865a\u5e7b \u5f15\u64ce \u8f6f\u4ef6 \u6ce8\u518c \u5230 \u7cfb\u7edf \u4e2d \u3002 \uff08 \u8c03\u8bd5 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \uff09 \u5728 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u4e2d \u5c55\u5f00 Games - > CarlaUE4 \uff0c \u5728 \u60f3\u8981 \u67e5\u770b \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u884c \u7684 \u6700 \u5de6\u4fa7 \u5355\u51fb \u589e\u52a0 \u65ad\u70b9 \uff08 \u6bd4\u5982 \uff1a CarlaUE4 - > Plugins - > CarlaTools - > Source - > CarlaTools - > Private \u7684 OpenDriveToMap . cpp \u7684 GenerateTileStandalone ( ) \uff09 \uff0c \u5728 \u83dc\u5355 \u8fd0\u884c \u8c03\u8bd5 ( D ) - > \u5f00\u59cb \u8c03\u8bd5 ( S ) \uff0c \u7a0b\u5e8f \u5c06 \u5728 \u65ad\u70b9 \u51fa \u6682\u505c \u3002 \u901a\u8fc7 \u8c03\u5f0f ( D ) - > \u7a97\u53e3 ( W ) - > \u76d1\u89c6 ( W ) - > \u76d1\u89c6 1 \u6253\u5f00 \u53d8\u91cf \u76d1\u89c6 \u7a97\u53e3 \uff0c \u67e5\u770b \u53d8\u91cf \u91cf\u503c \u53d8\u91cf\u503c \u662f\u5426 \u5f02\u5e38 \u3002 \u8c03\u8bd5 Carla \u670d\u52a1 \u670d\u52a1\u7aef \uff1a \u65ad\u70b9 \u6253 \u5728 Carla / Game / CarlaEngine . cpp \u7684 \u7b2c 87 \u884c \uff0c \u7136\u540e \u5f00\u59cb \u8c03\u5f0f \uff0c \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u70b9\u51fb \u8fd0\u884c \u5219 \u4f1a \u5728 \u65ad\u70b9 \u5904 \u505c\u6b62 \u3002 \u914d\u7f6e \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5305\u62ec \uff1a Debug : \u6e38\u620f \u548c \u5f15\u64ce \u5168\u90fd \u53ef\u4ee5 \u8c03\u8bd5 \uff0c \u65e0 \u4f18\u5316 \uff0c \u901f\u5ea6 \u901f\u5ea6\u6162 \uff0c \u6ca1\u6709 Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \uff0c \u8d44\u6e90 \u9700\u8981 Cook \u3002 Debug Editor \uff1a \u6e38\u620f \u548c \u5f15\u64ce \u5168\u90e8 \u53ef\u4ee5 \u8c03\u8bd5 \uff0c \u65e0 \u4f18\u5316 \uff0c \u53ef\u4ee5 \u4f7f\u7528 Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \uff0c \u8d44\u6e90 \u4e0d \u9700\u8981 Cook \uff0c \u53ef \u76f4\u63a5 \u542f\u52a8 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \uff08 \u7528 generate _ traffic . py \u8c03\u8bd5 \u4f1a \u5d29\u6e83 \uff0c manual _ control . py \u53ef\u4ee5 \uff09 DebugGame \uff1a \u6e38\u620f \u4ee3\u7801 \u53ef \u8c03\u8bd5 \u65e0 \u4f18\u5316 \uff0c Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \u4e0d\u53ef \u4f7f\u7528 \uff0c \u5f15\u64ce \u4e0d\u53ef \u8c03\u8bd5 \uff0c \u8d44\u6e90 \u9700\u8981 Cook \u3002 DebugGame Editor \uff1a \u6e38\u620f \u4ee3\u7801 \u53ef \u8c03\u8bd5 \u65e0 \u4f18\u5316 \uff0c \u53ef\u4ee5 \u4f7f\u7528 Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \uff0c \u5f15\u64ce \u4e0d\u53ef \u8c03\u8bd5 \uff0c \u8d44\u6e90 \u4e0d \u9700\u8981 Cook \u3002 Development \uff1a \u6e38\u620f \u3001 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3001 \u5f15\u64ce \u90fd \u4e0d\u53ef \u8c03\u8bd5 \uff0c Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \u4e0d\u53ef \u4f7f\u7528 \uff0c \u8d44\u6e90 \u9700\u8981 Cook \u3002 Development Editor \uff1a \u6e38\u620f \u3001 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3001 \u5f15\u64ce \u90fd \u4e0d\u53ef \u8c03\u8bd5 \uff0c Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \u53ef \u4f7f\u7528 \uff0c \u8d44\u6e90 \u4e0d \u9700\u8981 Cook \u3002 \uff08 \u9ed8\u8ba4 \uff09 Shipping \uff1a \u53d1\u884c \u53d1\u884c\u7248 \uff0c \u6781\u81f4 \u4f18\u5316 \uff0c \u4f30\u8ba1 \u8c03\u8bd5 \u4fe1\u606f \u8c03\u8bd5\u4fe1\u606f \u90fd \u6ca1 \u4e86 \u3002 Test \uff1a \u5305\u542b \u989d\u5916 \u7684 \u6d4b\u8bd5 \u4ee3\u7801 \u6d4b\u8bd5\u4ee3\u7801 \u3002 \u8c03\u8bd5 LibCarla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u670d\u52a1 \u670d\u52a1\u7aef \u8c03\u7528 \u5b9e\u73b0 \u7684 \u529f\u80fd \u3002 * \u811a\u672c BuildLibCarla . bat \u8c03\u7528 cmake \u547d\u4ee4 \u8fdb\u884c \u6784\u5efa \uff1a cmake - G % GENERATOR% % PLATFORM% ^ - DCMAKE _ BUILD _ TYPE = Server ^ - DCMAKE _ CXX _ FLAGS _ RELEASE = \" / MD / MP \" ^ - DCMAKE _ INSTALL _ PREFIX = \" % LIBCARLA _ SERVER _ INSTALL _ PATH : \\ = / % \" ^ \" % ROOT _ PATH% \" \u5176\u4e2d \uff0c - G \u8868\u793a \u6307\u5b9a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \uff08 set GENERATOR = \" Visual Studio 16 2019 \" \u3001 set PLATFORM = - A x64 \uff09 \uff1b - DCMAKE _ BUILD _ TYPE \u7684 \u53ef\u9009 \u9009\u9879 \u53ef\u9009\u9879 \u5305\u62ec \uff1a Client , Server , Pytorch , ros2 \uff1b - D CMAKE _ BUILD _ TYPE = \" Debug \" \u53ef\u9009 \u53ef\u9009\u503c \u5305\u62ec \uff1a Debug , Release , RelWithDebInfo , MinSizeRel \u3002 CMAKE _ CXX _ FLAGS _ RELEASE \u8bbe\u7f6e \u7f16\u8bd1 \u7c7b\u578b Release \u65f6 \u7684 \u7f16\u8bd1 \u9009\u9879 \uff1b \u8c03\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5728 Build \u76ee\u5f55 \u4e0b \u751f\u6210 Makefile \u6587\u4ef6 \uff1a cmake -- build . -- config Release -- target install | findstr / V \" Up - to - date : \" \u4f7f\u7528 VS \u6253\u5f00 Build \\ libcarla - visualstudio \\ CARLA . sln \u3002 \u4f7f\u7528 \u547d\u4ee4 make client \u6253\u5f00 \u7684 \u5c31\u662f LibCarla \\ cmake \\ client \\ CMakeLists . txt \u5bf9\u5e94 \u7684 \u9879\u76ee \u3002 \uff08 \u4f7f\u7528 make server \u6253\u5f00 \u7684 \u5219 \u662f LibCarla \\ cmake \\ server \\ CMakeLists . txt \u5bf9\u5e94 \u7684 \u9879\u76ee \uff09 \uff08 Build \u76ee\u5f55 \u4e0b \u8fd8 \u5305\u62ec osm2odr - visualstudio / SUMO . sln \u7684 VS \u5de5\u7a0b \uff09 \u3002 \u53f3\u952e carla _ client _ debug \u5c06 \u5176 \u8bbe \u4e3a \u542f\u52a8 \u9879\u76ee \u3002 \u9644\u7740 \u5230 Python \u7a0b\u5e8f \u542f\u52a8 \u8c03\u8bd5 \u540e \uff0c \u51fa\u73b0 \u5f53\u524d \u4e0d\u4f1a \u547d \u4e2d\u65ad \u65ad\u70b9 \u4e2d\u65ad\u70b9 \u8fd8 \u6ca1\u6709 \u4e3a \u8be5 \u6587\u6863 \u52a0\u8f7d \u4efb\u4f55 \u7b26\u53f7 \u7684 \u8b66\u544a \u3002 \u89e3\u51b3 \u6ce8\u610f \u5728 vs2019 \u4e2d \u751f\u6210 carla _ client _ debug \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u65f6 \u51fa\u73b0 fatal error C1189 : # error : \" Incompatible build options \" \u9519\u8bef \uff0c \u56e0\u4e3a \u5728 \u4e0d \u6307\u5b9a \u8c03\u8bd5 \u8fd0\u884c \u65f6 \u7684 \u60c5\u51b5 \u4e0b \u4f7f\u7528 / rtc \u9009\u9879 \u5c06 \u5bfc\u81f4 \u94fe\u63a5 \u5668 \u9519\u8bef \uff0c \u5219 \u9700\u8981 \u5c06 \u201c \u9879\u76ee \u5c5e\u6027 -- > C++ -- > \u57fa\u672c \u8fd0\u884c \u65f6 \u68c0\u67e5 \u201d \u6539\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u7136\u540e \u91cd\u65b0 \u751f\u6210 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u3002 \u5176\u4ed6 \u8bf4\u660e boost _ python \u5e93 \u6240\u5728 \u7684 \u76ee\u5f55 \u4e3a \uff1a carla \\ Build \\ boost - 1.80 . 0 - install \\ lib \\ libboost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib \uff0c mt - x64 \u4e4b\u95f4 \u5e26\u6709 gd \u7684 \u662f \u5bf9\u5e94 \u7684 \u8c03\u8bd5 \u7248\u672c \u3002 \u793a\u4f8b \u53c2\u8003 \u94fe\u63a5 \u3002 VS2019 \u6253\u5f00 CarlaUE4 \u7684 Cmake \u5de5\u7a0b windows \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u4e0b \u901a\u8fc7 vs2019 \u6253\u5f00 \u5e76 \u7f16\u8bd1 carla \uff1a \u5f00 Carla \u7684 CMake \u9879\u76ee \uff08 \u53c2\u8003 CMake \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \uff09 \uff1a \u4ece VS \u7684 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 File -- > Open -- > CMake , \u5728 \u5bf9\u8bdd \u5bf9\u8bdd\u6846 \u4e2d \u627e\u5230 Carla \u6240\u5728 \u7684 \u672c\u5730 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff08 \u5305\u542b CMakeLists \uff09 \uff0c \u9009\u62e9 CMakeLists . txt \u6587\u4ef6 \uff0c \u6253\u5f00 \uff0c Visual studio \u4f1a \u81ea\u52a8 \u52a0\u8f7d \u6b64 \u4ed3\u5e93 \uff0c \u89e3\u6790 CMakeLists . txt \u6587\u4ef6 \uff0c \u5e76 \u63d0\u53d6 \u5176 \u914d\u7f6e \u548c \u53d8\u91cf \u4fe1\u606f \u3002 \u89e3\u6790 \u5b8c\u6210 \uff08 \u9700\u8981 \u4f1a\u513f \u7b49\u4f1a\u513f \u6216\u8005 \u91cd\u542f \uff09 \u4f1a \u4ece \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668 \u4e2d \u770b\u5230 . cpp \u6587\u4ef6 \u3002 \u4fee\u6539 \u914d\u7f6e \uff1a \u70b9\u51fb x64 - Debug \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u7684 \u7ba1\u7406 \u914d\u7f6e \uff0c \u5e76 \u5728 \u5f39\u51fa \u7684 \u754c\u9762 \u70b9\u51fb \u7f16\u8f91 JSON \uff08 \u8be5 \u8fc7\u7a0b \u5728 \u5de5\u7a0b \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u751f\u6210 CMakeSettings . json \uff09 \uff0c \u5c06 \u6240 \u9700\u8981 \u6784\u5efa \u7684 \u7c7b\u578b \u6539\u4e3a \u60f3 \u7f16\u8bd1 \u7684 \u7c7b\u578b \uff0c \u6bd4\u5982 Client \u3002 \u751f\u6210 \uff1a \u70b9\u51fb \u83dc\u5355 \u83dc\u5355\u680f \u751f\u6210 - \u5168\u90e8 \u751f\u6210 \u6216 \u90e8\u5206 \u751f\u6210 \u5373\u53ef \u3002 \u5bfc\u5165 \u5d29\u6e83 \u95ee\u9898 \u4f8b\u5982 \uff0c \u5bfc\u5165 \u94fe\u63a5 \uff1a https : / / overpass - api . de / api / map ? bbox = 2.08191 , 41.49611 , 2.08268 , 41.49671 \u5c0f \u5730\u56fe \uff1a https : / / overpass - api . de / api / map ? bbox = 112.9088 , 28.2221 , 112.9172 , 28.2290 \u5927 \u5730\u56fe \uff1a https : / / overpass - api . de / api / map ? bbox = 112.8971 , 28.1976 , 112.9607 , 28.2501 \u91d1 \u91b4 \u9ad8\u901f \uff1a https : / / overpass - api . de / api / map ? bbox = 113.5293 , 27.6893 , 113.5516 , 27.7074 CarlaUE4 - > Plugins - > CarlaTools - > Source - > CarlaTools - > Private \u7684 OpenDriveToMap . cpp 463 \u884c GenerateTileStandalone ( ) \uff0c \u7136\u540e \u8c03\u7528 ExecuteTileCommandlet ( ) : UCommandlet \u662f Unreal Engine \u4e2d \u7528\u4e8e \u5b9e\u73b0 \u547d\u4ee4 \u547d\u4ee4\u884c \u64cd\u4f5c \u7684 \u57fa\u7c7b \u3002 \u5b83 \u5141\u8bb8 \u5f00\u53d1 \u5f00\u53d1\u8005 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u547d\u4ee4 \uff0c \u5e76 \u5728 \u5f15\u64ce \u542f\u52a8 \u65f6 \u6267\u884c \u8fd9\u4e9b \u547d\u4ee4 \u3002 \u8fd9\u4e2a \u7c7b \u4e3b\u8981 \u7528\u4e8e \u6269\u5c55 \u5f15\u64ce \u529f\u80fd \uff0c \u63d0\u4f9b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u5de5\u5177 \u3002 ExecuteTileCommandlet ( ) \u8c03\u7528 \u7684 \u662f carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Intermediate \\ Build \\ Win64 \\ UE4Editor \\ Inc \\ CarlaTools \\ OpenDriveToMap . gen . cpp \uff08 \u53cd\u5c04 \u6587\u4ef6 gen \uff09 194 \u884c \u7684 static FName NAME _ UOpenDriveToMap _ ExecuteTileCommandlet = FName ( TEXT ( \" ExecuteTileCommandlet \" ) ) ; void UOpenDriveToMap : : ExecuteTileCommandlet ( ) { ProcessEvent ( FindFunctionChecked ( NAME _ UOpenDriveToMap _ ExecuteTileCommandlet ) , NULL ) ; } \u627e\u5230 \u540d\u4e3a \u201c ExecuteTileCommandlet \u201d \u7684 UFunction \u5bf9\u8c61 \uff1b \u6267\u884c \u201c ProcessEvent \u201d \u51fd\u6570 \uff0c \u7136\u540e \u4ece \u5168\u5c40 \u51fd\u6570 \u6620\u5c04 \u8868 \u627e\u5230 \u5bf9\u5e94 \u7684 \u51fd\u6570 \u6307\u9488 \u51fd\u6570\u6307\u9488 \u6267\u884c \uff08 \u5229\u7528 \u51fd\u6570 \u540d \u8c03\u7528 UFUNCTION \u51fd\u6570 \uff09 \u3002 \u84dd\u56fe \u7684 \u5b57\u8282 \u7801 \uff1a \u5728 engine \\ Engine \\ Source \\ Runtime \\ CoreUObject \\ Public \\ UObject \\ Script . h \u8fd9\u4e2a \u6587\u4ef6 \u4e2d\u6709 \u4e00\u4e2a enum EExprToken \uff0c \u8fd9\u4e2a \u679a\u4e3e \u5c31\u662f \u84dd\u56fe \u7684 \u5b57\u8282 \u7801 \u5b9a\u4e49 \u3002 \u5f15\u64ce \u4e2d \u4f7f\u7528 \u4e00\u4e2a \u5168\u5c40 \u67e5\u627e \u8868 \uff0c \u628a \u4e0a\u8ff0 \u5b57\u8282 \u7801 \u6620\u5c04 \u5230 \u51fd\u6570 \u6307\u9488 \u51fd\u6570\u6307\u9488 \u3002 \u5728 \u8fd0\u884c \u65f6 \uff0c \u4ece \u4e00\u4e2a \u5b57\u8282 \u7801 \u6570\u7ec4 \u4e2d \u9010\u4e2a \u53d6\u51fa \u5b57\u8282 \u7801 \uff0c \u5e76 \u67e5\u627e \u51fd\u6570 \u6307\u9488 \u51fd\u6570\u6307\u9488 \uff0c \u8fdb\u884c \u8c03\u7528 \uff0c \u4e5f \u5c31 \u5b8c\u6210 \u4e86 \u6240\u8c13 \u7684 \u201c \u5b57\u8282 \u7801 \u89e3\u91ca \u6267\u884c \u201d \u7684 \u8fc7\u7a0b \u3002 \u6539\u4e3a void UOpenDriveToMap : : GenerateTileStandalone ( ) { UE _ LOG ( LogCarlaToolsMapGenerator , Log , TEXT ( \" UOpenDriveToMap : : GenerateTileStandalone Function called \" ) ) ; / / ExecuteTileCommandlet ( ) ; GenerateTile ( ) ; UEditorLoadingAndSavingUtils : : SaveDirtyPackages ( true , true ) ; UEditorLevelLibrary : : SaveCurrentLevel ( ) ; } \u6ce8\u610f \uff1a \u5927 \u5730\u56fe \u4e5f \u53ea\u80fd \u751f\u6210 \u4e00\u5c0f \u5c0f\u7247 \u4e00\u5c0f\u7247 \u5730\u56fe \u3002 \u62a5\u9519 \u4fe1\u606f \uff1a D : \\ work \\ workspace \\ engine / Engine / Binanes \\ Win64 \\ UE4Editor .. / .. / .. / .. / carla / Unreal / CaraUE4 / CaraUE4 . uproject - run = GenerateTileCommandlet \" \" - FilePath = .. / .. / .. / .. / carla / Unreal / CarlaUE4 / Content / Custo [ 2024.04 . 30 - 06.58 . 10 : 090 ] [ 0 ] LogInit : Executing Class / Script / CarlaTools . GenerateTileCommandlet [ 2024.04 . 30 - 06.58 . 10 : 090 ] [ 0 ] LogOutputDevice : Warning : ( 0 frames ) \u5d29\u6e83 \u65e5\u5fd7 \uff1a LoginId : bc22576a452b36c1831fe8942b55e57a EpicAccountId : 77cf3795af004e58a037e9c9d4a5aa0d Assertion failed : Pair ! = nullptr [ File : D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Core \\ Public \\ Containers / Map . h ] [ Line : 621 ] UE4Editor _ Core ! AssertFailedImplV ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Core \\ Private \\ Misc \\ AssertionMacros . cpp : 104 ] UE4Editor _ Core ! FDebug : : CheckVerifyFailedImpl ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Core \\ Private \\ Misc \\ AssertionMacros . cpp : 461 ] UE4Editor _ CarlaTools ! UGenerateTileCommandlet : : Main ( ) [ D : \\ work \\ workspace \\ carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ Commandlet \\ GenerateTileCommandlet . cpp : 75 ] UE4Editor ! FEngineLoop : : PreInitPostStartupScreen ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ LaunchEngineLoop . cpp : 3369 ] UE4Editor ! GuardedMain ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ Launch . cpp : 127 ] UE4Editor ! GuardedMainWrapper ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ Windows \\ LaunchWindows . cpp : 137 ] UE4Editor ! WinMain ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ Windows \\ LaunchWindows . cpp : 268 ] UE4Editor ! __ scrt _ common _ main _ seh ( ) [ d : \\ agent \\ _ work \\ 2 \\ s \\ src \\ vctools \\ crt \\ vcstartup \\ src \\ startup \\ exe _ common . inl : 288 ] kernel32 ntdll \u53ef\u77e5 \uff1a OpenDriveMap - > FilePath = ParamsMap [ \" FilePath \" ] ; \u62a5 \u7684 \u9519 \uff0c \u5e94\u8be5 \u662f \u8def\u5f84 \u4e0b . xodr \u6587\u4ef6 \u4e0d \u5b58\u5728 \u3002 \u5d29\u6e83 \u65e5\u5fd7 \u4f4d\u4e8e \uff1a engine \\ Engine \\ Binaries \\ Win64 \\ CommandletParameters . txt \u627e\u5230 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u53c2\u6570 \u4e3a \uff1a - run = GenerateTileCommandlet \" \" - F i l e P a t h = . . / . . / . . / . . / c a r l a / U n r e a l / C a r l a U E 4 / C o n t e n t / C u s t o m M a p s / t e s t _ 3 7 / O p e n D r i v e / t e s t _ 3 7 . x o d r \" \" - B a s e L e v e l N a m e = / G a m e / C u s t o m M a p s / t e s t _ 3 7 / t e s t _ 3 7 \" \" - G e o C o o r d s X = 2 7 . 6 8 9 3 0 1 \" \" - G e o C o o r d s Y = 1 1 3 . 5 2 9 2 9 7 \" \" - C T i l e X = 4 \" \" - C T i l e Y = 0 \" \" - A l l o w C o m m a n d l e t R e n d e r i n g \u53c2\u6570 \u591a \u4e86 \u5f88\u591a \u7a7a\u683c \u6b63\u786e \u5e94\u8be5 \u4e3a \uff1a D : \\ work \\ workspace \\ engine \\ Engine \\ Binaries \\ Win64 \\ UE4Editor .. / .. / .. / .. / carla / Unreal / CarlaUE4 / CarlaUE4 . uproject - run = GenerateTileCommandlet - FilePath = .. / .. / .. / .. / carla / Unreal / CarlaUE4 / Content / CustomMaps / test _ 37 / OpenDrive / test _ 37 . xodr - BaseLevelName = / Game / CustomMaps / test _ 37 / test _ 37 - GeoCoordsX = 27.689301 - GeoCoordsY = 113.529297 - CTileX = 4 - CTileY = 0 - AllowCommandletRendering D : \\ work \\ workspace \\ engine \\ Engine \\ Binaries \\ Win64 \\ UE4Editor - Cmd D : / work / workspace / carla / Unreal / CarlaUE4 / CarlaUE4 . uproject - run = GenerateTileCommandlet - FilePath = D : / work / workspace / carla / Unreal / CarlaUE4 / Content / CustomMaps / test _ 37 / OpenDrive / test _ 37 . xodr - BaseLevelName = / Game / CustomMaps / test _ 37 / test _ 37 - GeoCoordsX = 27.689301 - GeoCoordsY = 113.529297 - CTileX = 4 - CTileY = 0 - AllowCommandletRendering \u76f4\u63a5 \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u62a5\u9519 \uff08 \u5fc5\u987b \u786e\u4fdd \u4e0d\u662f Commandlet \u542f\u52a8 \uff0c \u800c \u5fc5\u987b \u662f Editor \u542f\u52a8 \uff09 \uff1a LogWindows : Error : Assertion failed : ! IsRunningCommandlet ( ) [ File : D : / work / workspace / engine / Engine / Plugins / Developer / RenderDocPlugin / Source / RenderDocPlugin / Private / SRenderDocPluginEditorExtension . cpp ] [ Line : 107 ] VS \u8c03\u8bd5 UE \u9879\u76ee \u53d8\u91cf \u5df2 \u88ab \u4f18\u5316 \u6389 \uff0c \u56e0\u800c \u4e0d\u53ef \u7528 \u3002 VS \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 DebugGammingEditor \uff0c \u7136\u540e \u5f00\u59cb \u8c03\u8bd5 \uff0c \u5c31 \u53ef\u4ee5 \u6dfb\u52a0 \u8981 \u76d1\u89c6 \u7684 \u9879 \u3002 \u95ee\u9898 \u5d29\u6e83 \u4e8e engine \\ Engine \\ Source \\ Runtime \\ CoreUObject \\ Private \\ UObject \\ ScriptCore . cpp 1990 \u884c Function - > Invoke ( this , NewStack , ReturnValueAddress ) ; \u5f39 \u51fa \u62a5\u9519 \u4fe1\u606f \u6846 \uff1a Failed to open descriptor file . / .. / .. / .. / carla / Unreal / CarlaUE4 / CarlaUE4 . uproject VS \u8df3\u8f6c \u4ee3\u7801 \u592a\u6162 \u4f9d\u8d56 boost - 1.80 . 0 Python \u5c01\u88c5 C++ \u5e93 \u8c03\u8bd5 \u3002 \u53d1\u5e03 \u5305\u542b \u6240\u6709 \u8f6f\u4ef6 \u4f9d\u8d56 \uff0c \u53cc\u51fb launch . bat \u542f\u52a8 \u8f6f\u4ef6 \u3002 VS2019 \u793e\u533a \u7248 \u5b89\u88c5 \u89e3\u538b \u5b89\u88c5 \u5b89\u88c5\u5305 \uff1a 7z x filename . zip - o . \u65b0 \u7535\u8111 \u8fd0\u884c NativeDesktop . exe \u51fa\u73b0 \u6b64 \u7248\u672c \u7684 Windows \u4e0d \u652f\u6301 \u6b64 \u4ea7\u54c1 \uff0c \u8bf7 \u5c1d\u8bd5 \u5347\u7ea7 Windows \u3002 \u6280\u5de7 \u8fdb\u884c \u51fd\u6570 \u8df3\u8f6c \u65f6 \uff0c vs \u4e00\u81f4 \u51fa\u73b0 \u6b63\u5728 \u8fdb\u884c IntelliSense \uff1a \u9009\u62e9 \u201c \u5de5\u5177 \u201d \u83dc\u5355 \u83dc\u5355\u680f \u4e0b \u7684 \u201c \u9009\u9879 \u201d \u6309\u94ae \u6253\u5f00 \u9009\u9879 \u9875\u9762 \uff0c \u627e\u5230 \u6587\u672c \u7f16\u8f91 \u6587\u672c\u7f16\u8f91 \u5668 - > C / C++ - > \u9ad8\u7ea7 , \u5728 \u53f3\u4fa7 \u7684 \u7981\u7528 IntelliSense \u4e2d \u6539\u4e3a True","title":"\u8c03\u8bd5\u7a0b\u5e8f"},{"location":"tuto_D_windows_debug/#windows-carla","text":"","title":"\u5728 Windows \u4e0a \u8fdb\u884c Carla \u7684 \u8c03\u8bd5"},{"location":"tuto_D_windows_debug/#carla","text":"\u8fdb\u5165 \u76ee\u5f55 carla / Unreal / CarlaUE4 / \uff0c \u53f3\u952e \u6587\u4ef6 CarlaUE4 . uproject \uff0c \u9009\u62e9 \u8fd0\u884c Generate Visual Studio project files \uff0c \u5728 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e2d\u5c06 \u4f1a \u751f\u6210 VS \u7684 \u5de5\u7a0b \u6587\u4ef6 \uff0c \u53cc\u51fb \u6253\u5f00 CarlaUE4 . sln \u3002 \u7b14\u8bb0 \u5982\u679c \u53f3\u952e \u83dc\u5355 \u4e2d\u672a \u51fa\u73b0 Generate Visual Studio project files \u9009\u9879 \uff0c \u5219 \u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u76ee\u5f55 \u4e2d\u8fd0 \u53cc\u51fb \u6267\u884c engine \\ Engine \\ Binaries \\ Win64 \\ UnrealVersionSelector . exe \uff0c \u5c06 \u865a\u5e7b \u5f15\u64ce \u8f6f\u4ef6 \u6ce8\u518c \u5230 \u7cfb\u7edf \u4e2d \u3002 \uff08 \u8c03\u8bd5 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \uff09 \u5728 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u4e2d \u5c55\u5f00 Games - > CarlaUE4 \uff0c \u5728 \u60f3\u8981 \u67e5\u770b \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u884c \u7684 \u6700 \u5de6\u4fa7 \u5355\u51fb \u589e\u52a0 \u65ad\u70b9 \uff08 \u6bd4\u5982 \uff1a CarlaUE4 - > Plugins - > CarlaTools - > Source - > CarlaTools - > Private \u7684 OpenDriveToMap . cpp \u7684 GenerateTileStandalone ( ) \uff09 \uff0c \u5728 \u83dc\u5355 \u8fd0\u884c \u8c03\u8bd5 ( D ) - > \u5f00\u59cb \u8c03\u8bd5 ( S ) \uff0c \u7a0b\u5e8f \u5c06 \u5728 \u65ad\u70b9 \u51fa \u6682\u505c \u3002 \u901a\u8fc7 \u8c03\u5f0f ( D ) - > \u7a97\u53e3 ( W ) - > \u76d1\u89c6 ( W ) - > \u76d1\u89c6 1 \u6253\u5f00 \u53d8\u91cf \u76d1\u89c6 \u7a97\u53e3 \uff0c \u67e5\u770b \u53d8\u91cf \u91cf\u503c \u53d8\u91cf\u503c \u662f\u5426 \u5f02\u5e38 \u3002 \u8c03\u8bd5 Carla \u670d\u52a1 \u670d\u52a1\u7aef \uff1a \u65ad\u70b9 \u6253 \u5728 Carla / Game / CarlaEngine . cpp \u7684 \u7b2c 87 \u884c \uff0c \u7136\u540e \u5f00\u59cb \u8c03\u5f0f \uff0c \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u70b9\u51fb \u8fd0\u884c \u5219 \u4f1a \u5728 \u65ad\u70b9 \u5904 \u505c\u6b62 \u3002 \u914d\u7f6e \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5305\u62ec \uff1a Debug : \u6e38\u620f \u548c \u5f15\u64ce \u5168\u90fd \u53ef\u4ee5 \u8c03\u8bd5 \uff0c \u65e0 \u4f18\u5316 \uff0c \u901f\u5ea6 \u901f\u5ea6\u6162 \uff0c \u6ca1\u6709 Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \uff0c \u8d44\u6e90 \u9700\u8981 Cook \u3002 Debug Editor \uff1a \u6e38\u620f \u548c \u5f15\u64ce \u5168\u90e8 \u53ef\u4ee5 \u8c03\u8bd5 \uff0c \u65e0 \u4f18\u5316 \uff0c \u53ef\u4ee5 \u4f7f\u7528 Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \uff0c \u8d44\u6e90 \u4e0d \u9700\u8981 Cook \uff0c \u53ef \u76f4\u63a5 \u542f\u52a8 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \uff08 \u7528 generate _ traffic . py \u8c03\u8bd5 \u4f1a \u5d29\u6e83 \uff0c manual _ control . py \u53ef\u4ee5 \uff09 DebugGame \uff1a \u6e38\u620f \u4ee3\u7801 \u53ef \u8c03\u8bd5 \u65e0 \u4f18\u5316 \uff0c Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \u4e0d\u53ef \u4f7f\u7528 \uff0c \u5f15\u64ce \u4e0d\u53ef \u8c03\u8bd5 \uff0c \u8d44\u6e90 \u9700\u8981 Cook \u3002 DebugGame Editor \uff1a \u6e38\u620f \u4ee3\u7801 \u53ef \u8c03\u8bd5 \u65e0 \u4f18\u5316 \uff0c \u53ef\u4ee5 \u4f7f\u7528 Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \uff0c \u5f15\u64ce \u4e0d\u53ef \u8c03\u8bd5 \uff0c \u8d44\u6e90 \u4e0d \u9700\u8981 Cook \u3002 Development \uff1a \u6e38\u620f \u3001 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3001 \u5f15\u64ce \u90fd \u4e0d\u53ef \u8c03\u8bd5 \uff0c Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \u4e0d\u53ef \u4f7f\u7528 \uff0c \u8d44\u6e90 \u9700\u8981 Cook \u3002 Development Editor \uff1a \u6e38\u620f \u3001 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3001 \u5f15\u64ce \u90fd \u4e0d\u53ef \u8c03\u8bd5 \uff0c Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \u53ef \u4f7f\u7528 \uff0c \u8d44\u6e90 \u4e0d \u9700\u8981 Cook \u3002 \uff08 \u9ed8\u8ba4 \uff09 Shipping \uff1a \u53d1\u884c \u53d1\u884c\u7248 \uff0c \u6781\u81f4 \u4f18\u5316 \uff0c \u4f30\u8ba1 \u8c03\u8bd5 \u4fe1\u606f \u8c03\u8bd5\u4fe1\u606f \u90fd \u6ca1 \u4e86 \u3002 Test \uff1a \u5305\u542b \u989d\u5916 \u7684 \u6d4b\u8bd5 \u4ee3\u7801 \u6d4b\u8bd5\u4ee3\u7801 \u3002","title":"\u865a\u5e7b \u5f15\u64ce Carla \u63d2\u4ef6 \u7684 \u8c03\u8bd5"},{"location":"tuto_D_windows_debug/#libcarla","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u670d\u52a1 \u670d\u52a1\u7aef \u8c03\u7528 \u5b9e\u73b0 \u7684 \u529f\u80fd \u3002 * \u811a\u672c BuildLibCarla . bat \u8c03\u7528 cmake \u547d\u4ee4 \u8fdb\u884c \u6784\u5efa \uff1a cmake - G % GENERATOR% % PLATFORM% ^ - DCMAKE _ BUILD _ TYPE = Server ^ - DCMAKE _ CXX _ FLAGS _ RELEASE = \" / MD / MP \" ^ - DCMAKE _ INSTALL _ PREFIX = \" % LIBCARLA _ SERVER _ INSTALL _ PATH : \\ = / % \" ^ \" % ROOT _ PATH% \" \u5176\u4e2d \uff0c - G \u8868\u793a \u6307\u5b9a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \uff08 set GENERATOR = \" Visual Studio 16 2019 \" \u3001 set PLATFORM = - A x64 \uff09 \uff1b - DCMAKE _ BUILD _ TYPE \u7684 \u53ef\u9009 \u9009\u9879 \u53ef\u9009\u9879 \u5305\u62ec \uff1a Client , Server , Pytorch , ros2 \uff1b - D CMAKE _ BUILD _ TYPE = \" Debug \" \u53ef\u9009 \u53ef\u9009\u503c \u5305\u62ec \uff1a Debug , Release , RelWithDebInfo , MinSizeRel \u3002 CMAKE _ CXX _ FLAGS _ RELEASE \u8bbe\u7f6e \u7f16\u8bd1 \u7c7b\u578b Release \u65f6 \u7684 \u7f16\u8bd1 \u9009\u9879 \uff1b \u8c03\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5728 Build \u76ee\u5f55 \u4e0b \u751f\u6210 Makefile \u6587\u4ef6 \uff1a cmake -- build . -- config Release -- target install | findstr / V \" Up - to - date : \" \u4f7f\u7528 VS \u6253\u5f00 Build \\ libcarla - visualstudio \\ CARLA . sln \u3002 \u4f7f\u7528 \u547d\u4ee4 make client \u6253\u5f00 \u7684 \u5c31\u662f LibCarla \\ cmake \\ client \\ CMakeLists . txt \u5bf9\u5e94 \u7684 \u9879\u76ee \u3002 \uff08 \u4f7f\u7528 make server \u6253\u5f00 \u7684 \u5219 \u662f LibCarla \\ cmake \\ server \\ CMakeLists . txt \u5bf9\u5e94 \u7684 \u9879\u76ee \uff09 \uff08 Build \u76ee\u5f55 \u4e0b \u8fd8 \u5305\u62ec osm2odr - visualstudio / SUMO . sln \u7684 VS \u5de5\u7a0b \uff09 \u3002 \u53f3\u952e carla _ client _ debug \u5c06 \u5176 \u8bbe \u4e3a \u542f\u52a8 \u9879\u76ee \u3002 \u9644\u7740 \u5230 Python \u7a0b\u5e8f \u542f\u52a8 \u8c03\u8bd5 \u540e \uff0c \u51fa\u73b0 \u5f53\u524d \u4e0d\u4f1a \u547d \u4e2d\u65ad \u65ad\u70b9 \u4e2d\u65ad\u70b9 \u8fd8 \u6ca1\u6709 \u4e3a \u8be5 \u6587\u6863 \u52a0\u8f7d \u4efb\u4f55 \u7b26\u53f7 \u7684 \u8b66\u544a \u3002 \u89e3\u51b3 \u6ce8\u610f \u5728 vs2019 \u4e2d \u751f\u6210 carla _ client _ debug \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u65f6 \u51fa\u73b0 fatal error C1189 : # error : \" Incompatible build options \" \u9519\u8bef \uff0c \u56e0\u4e3a \u5728 \u4e0d \u6307\u5b9a \u8c03\u8bd5 \u8fd0\u884c \u65f6 \u7684 \u60c5\u51b5 \u4e0b \u4f7f\u7528 / rtc \u9009\u9879 \u5c06 \u5bfc\u81f4 \u94fe\u63a5 \u5668 \u9519\u8bef \uff0c \u5219 \u9700\u8981 \u5c06 \u201c \u9879\u76ee \u5c5e\u6027 -- > C++ -- > \u57fa\u672c \u8fd0\u884c \u65f6 \u68c0\u67e5 \u201d \u6539\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u7136\u540e \u91cd\u65b0 \u751f\u6210 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u3002","title":"\u8c03\u8bd5 LibCarla"},{"location":"tuto_D_windows_debug/#_1","text":"boost _ python \u5e93 \u6240\u5728 \u7684 \u76ee\u5f55 \u4e3a \uff1a carla \\ Build \\ boost - 1.80 . 0 - install \\ lib \\ libboost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib \uff0c mt - x64 \u4e4b\u95f4 \u5e26\u6709 gd \u7684 \u662f \u5bf9\u5e94 \u7684 \u8c03\u8bd5 \u7248\u672c \u3002 \u793a\u4f8b \u53c2\u8003 \u94fe\u63a5 \u3002","title":"\u5176\u4ed6 \u8bf4\u660e"},{"location":"tuto_D_windows_debug/#vs2019-carlaue4-cmake","text":"windows \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u4e0b \u901a\u8fc7 vs2019 \u6253\u5f00 \u5e76 \u7f16\u8bd1 carla \uff1a \u5f00 Carla \u7684 CMake \u9879\u76ee \uff08 \u53c2\u8003 CMake \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \uff09 \uff1a \u4ece VS \u7684 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 File -- > Open -- > CMake , \u5728 \u5bf9\u8bdd \u5bf9\u8bdd\u6846 \u4e2d \u627e\u5230 Carla \u6240\u5728 \u7684 \u672c\u5730 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff08 \u5305\u542b CMakeLists \uff09 \uff0c \u9009\u62e9 CMakeLists . txt \u6587\u4ef6 \uff0c \u6253\u5f00 \uff0c Visual studio \u4f1a \u81ea\u52a8 \u52a0\u8f7d \u6b64 \u4ed3\u5e93 \uff0c \u89e3\u6790 CMakeLists . txt \u6587\u4ef6 \uff0c \u5e76 \u63d0\u53d6 \u5176 \u914d\u7f6e \u548c \u53d8\u91cf \u4fe1\u606f \u3002 \u89e3\u6790 \u5b8c\u6210 \uff08 \u9700\u8981 \u4f1a\u513f \u7b49\u4f1a\u513f \u6216\u8005 \u91cd\u542f \uff09 \u4f1a \u4ece \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668 \u4e2d \u770b\u5230 . cpp \u6587\u4ef6 \u3002 \u4fee\u6539 \u914d\u7f6e \uff1a \u70b9\u51fb x64 - Debug \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u7684 \u7ba1\u7406 \u914d\u7f6e \uff0c \u5e76 \u5728 \u5f39\u51fa \u7684 \u754c\u9762 \u70b9\u51fb \u7f16\u8f91 JSON \uff08 \u8be5 \u8fc7\u7a0b \u5728 \u5de5\u7a0b \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u751f\u6210 CMakeSettings . json \uff09 \uff0c \u5c06 \u6240 \u9700\u8981 \u6784\u5efa \u7684 \u7c7b\u578b \u6539\u4e3a \u60f3 \u7f16\u8bd1 \u7684 \u7c7b\u578b \uff0c \u6bd4\u5982 Client \u3002 \u751f\u6210 \uff1a \u70b9\u51fb \u83dc\u5355 \u83dc\u5355\u680f \u751f\u6210 - \u5168\u90e8 \u751f\u6210 \u6216 \u90e8\u5206 \u751f\u6210 \u5373\u53ef \u3002","title":"VS2019 \u6253\u5f00 CarlaUE4 \u7684 Cmake \u5de5\u7a0b"},{"location":"tuto_D_windows_debug/#_2","text":"\u4f8b\u5982 \uff0c \u5bfc\u5165 \u94fe\u63a5 \uff1a https : / / overpass - api . de / api / map ? bbox = 2.08191 , 41.49611 , 2.08268 , 41.49671 \u5c0f \u5730\u56fe \uff1a https : / / overpass - api . de / api / map ? bbox = 112.9088 , 28.2221 , 112.9172 , 28.2290 \u5927 \u5730\u56fe \uff1a https : / / overpass - api . de / api / map ? bbox = 112.8971 , 28.1976 , 112.9607 , 28.2501 \u91d1 \u91b4 \u9ad8\u901f \uff1a https : / / overpass - api . de / api / map ? bbox = 113.5293 , 27.6893 , 113.5516 , 27.7074 CarlaUE4 - > Plugins - > CarlaTools - > Source - > CarlaTools - > Private \u7684 OpenDriveToMap . cpp 463 \u884c GenerateTileStandalone ( ) \uff0c \u7136\u540e \u8c03\u7528 ExecuteTileCommandlet ( ) : UCommandlet \u662f Unreal Engine \u4e2d \u7528\u4e8e \u5b9e\u73b0 \u547d\u4ee4 \u547d\u4ee4\u884c \u64cd\u4f5c \u7684 \u57fa\u7c7b \u3002 \u5b83 \u5141\u8bb8 \u5f00\u53d1 \u5f00\u53d1\u8005 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u547d\u4ee4 \uff0c \u5e76 \u5728 \u5f15\u64ce \u542f\u52a8 \u65f6 \u6267\u884c \u8fd9\u4e9b \u547d\u4ee4 \u3002 \u8fd9\u4e2a \u7c7b \u4e3b\u8981 \u7528\u4e8e \u6269\u5c55 \u5f15\u64ce \u529f\u80fd \uff0c \u63d0\u4f9b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u5de5\u5177 \u3002 ExecuteTileCommandlet ( ) \u8c03\u7528 \u7684 \u662f carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Intermediate \\ Build \\ Win64 \\ UE4Editor \\ Inc \\ CarlaTools \\ OpenDriveToMap . gen . cpp \uff08 \u53cd\u5c04 \u6587\u4ef6 gen \uff09 194 \u884c \u7684 static FName NAME _ UOpenDriveToMap _ ExecuteTileCommandlet = FName ( TEXT ( \" ExecuteTileCommandlet \" ) ) ; void UOpenDriveToMap : : ExecuteTileCommandlet ( ) { ProcessEvent ( FindFunctionChecked ( NAME _ UOpenDriveToMap _ ExecuteTileCommandlet ) , NULL ) ; } \u627e\u5230 \u540d\u4e3a \u201c ExecuteTileCommandlet \u201d \u7684 UFunction \u5bf9\u8c61 \uff1b \u6267\u884c \u201c ProcessEvent \u201d \u51fd\u6570 \uff0c \u7136\u540e \u4ece \u5168\u5c40 \u51fd\u6570 \u6620\u5c04 \u8868 \u627e\u5230 \u5bf9\u5e94 \u7684 \u51fd\u6570 \u6307\u9488 \u51fd\u6570\u6307\u9488 \u6267\u884c \uff08 \u5229\u7528 \u51fd\u6570 \u540d \u8c03\u7528 UFUNCTION \u51fd\u6570 \uff09 \u3002 \u84dd\u56fe \u7684 \u5b57\u8282 \u7801 \uff1a \u5728 engine \\ Engine \\ Source \\ Runtime \\ CoreUObject \\ Public \\ UObject \\ Script . h \u8fd9\u4e2a \u6587\u4ef6 \u4e2d\u6709 \u4e00\u4e2a enum EExprToken \uff0c \u8fd9\u4e2a \u679a\u4e3e \u5c31\u662f \u84dd\u56fe \u7684 \u5b57\u8282 \u7801 \u5b9a\u4e49 \u3002 \u5f15\u64ce \u4e2d \u4f7f\u7528 \u4e00\u4e2a \u5168\u5c40 \u67e5\u627e \u8868 \uff0c \u628a \u4e0a\u8ff0 \u5b57\u8282 \u7801 \u6620\u5c04 \u5230 \u51fd\u6570 \u6307\u9488 \u51fd\u6570\u6307\u9488 \u3002 \u5728 \u8fd0\u884c \u65f6 \uff0c \u4ece \u4e00\u4e2a \u5b57\u8282 \u7801 \u6570\u7ec4 \u4e2d \u9010\u4e2a \u53d6\u51fa \u5b57\u8282 \u7801 \uff0c \u5e76 \u67e5\u627e \u51fd\u6570 \u6307\u9488 \u51fd\u6570\u6307\u9488 \uff0c \u8fdb\u884c \u8c03\u7528 \uff0c \u4e5f \u5c31 \u5b8c\u6210 \u4e86 \u6240\u8c13 \u7684 \u201c \u5b57\u8282 \u7801 \u89e3\u91ca \u6267\u884c \u201d \u7684 \u8fc7\u7a0b \u3002 \u6539\u4e3a void UOpenDriveToMap : : GenerateTileStandalone ( ) { UE _ LOG ( LogCarlaToolsMapGenerator , Log , TEXT ( \" UOpenDriveToMap : : GenerateTileStandalone Function called \" ) ) ; / / ExecuteTileCommandlet ( ) ; GenerateTile ( ) ; UEditorLoadingAndSavingUtils : : SaveDirtyPackages ( true , true ) ; UEditorLevelLibrary : : SaveCurrentLevel ( ) ; } \u6ce8\u610f \uff1a \u5927 \u5730\u56fe \u4e5f \u53ea\u80fd \u751f\u6210 \u4e00\u5c0f \u5c0f\u7247 \u4e00\u5c0f\u7247 \u5730\u56fe \u3002 \u62a5\u9519 \u4fe1\u606f \uff1a D : \\ work \\ workspace \\ engine / Engine / Binanes \\ Win64 \\ UE4Editor .. / .. / .. / .. / carla / Unreal / CaraUE4 / CaraUE4 . uproject - run = GenerateTileCommandlet \" \" - FilePath = .. / .. / .. / .. / carla / Unreal / CarlaUE4 / Content / Custo [ 2024.04 . 30 - 06.58 . 10 : 090 ] [ 0 ] LogInit : Executing Class / Script / CarlaTools . GenerateTileCommandlet [ 2024.04 . 30 - 06.58 . 10 : 090 ] [ 0 ] LogOutputDevice : Warning : ( 0 frames ) \u5d29\u6e83 \u65e5\u5fd7 \uff1a LoginId : bc22576a452b36c1831fe8942b55e57a EpicAccountId : 77cf3795af004e58a037e9c9d4a5aa0d Assertion failed : Pair ! = nullptr [ File : D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Core \\ Public \\ Containers / Map . h ] [ Line : 621 ] UE4Editor _ Core ! AssertFailedImplV ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Core \\ Private \\ Misc \\ AssertionMacros . cpp : 104 ] UE4Editor _ Core ! FDebug : : CheckVerifyFailedImpl ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Core \\ Private \\ Misc \\ AssertionMacros . cpp : 461 ] UE4Editor _ CarlaTools ! UGenerateTileCommandlet : : Main ( ) [ D : \\ work \\ workspace \\ carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ Commandlet \\ GenerateTileCommandlet . cpp : 75 ] UE4Editor ! FEngineLoop : : PreInitPostStartupScreen ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ LaunchEngineLoop . cpp : 3369 ] UE4Editor ! GuardedMain ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ Launch . cpp : 127 ] UE4Editor ! GuardedMainWrapper ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ Windows \\ LaunchWindows . cpp : 137 ] UE4Editor ! WinMain ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ Windows \\ LaunchWindows . cpp : 268 ] UE4Editor ! __ scrt _ common _ main _ seh ( ) [ d : \\ agent \\ _ work \\ 2 \\ s \\ src \\ vctools \\ crt \\ vcstartup \\ src \\ startup \\ exe _ common . inl : 288 ] kernel32 ntdll \u53ef\u77e5 \uff1a OpenDriveMap - > FilePath = ParamsMap [ \" FilePath \" ] ; \u62a5 \u7684 \u9519 \uff0c \u5e94\u8be5 \u662f \u8def\u5f84 \u4e0b . xodr \u6587\u4ef6 \u4e0d \u5b58\u5728 \u3002 \u5d29\u6e83 \u65e5\u5fd7 \u4f4d\u4e8e \uff1a engine \\ Engine \\ Binaries \\ Win64 \\ CommandletParameters . txt \u627e\u5230 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u53c2\u6570 \u4e3a \uff1a - run = GenerateTileCommandlet \" \" - F i l e P a t h = . . / . . / . . / . . / c a r l a / U n r e a l / C a r l a U E 4 / C o n t e n t / C u s t o m M a p s / t e s t _ 3 7 / O p e n D r i v e / t e s t _ 3 7 . x o d r \" \" - B a s e L e v e l N a m e = / G a m e / C u s t o m M a p s / t e s t _ 3 7 / t e s t _ 3 7 \" \" - G e o C o o r d s X = 2 7 . 6 8 9 3 0 1 \" \" - G e o C o o r d s Y = 1 1 3 . 5 2 9 2 9 7 \" \" - C T i l e X = 4 \" \" - C T i l e Y = 0 \" \" - A l l o w C o m m a n d l e t R e n d e r i n g \u53c2\u6570 \u591a \u4e86 \u5f88\u591a \u7a7a\u683c \u6b63\u786e \u5e94\u8be5 \u4e3a \uff1a D : \\ work \\ workspace \\ engine \\ Engine \\ Binaries \\ Win64 \\ UE4Editor .. / .. / .. / .. / carla / Unreal / CarlaUE4 / CarlaUE4 . uproject - run = GenerateTileCommandlet - FilePath = .. / .. / .. / .. / carla / Unreal / CarlaUE4 / Content / CustomMaps / test _ 37 / OpenDrive / test _ 37 . xodr - BaseLevelName = / Game / CustomMaps / test _ 37 / test _ 37 - GeoCoordsX = 27.689301 - GeoCoordsY = 113.529297 - CTileX = 4 - CTileY = 0 - AllowCommandletRendering D : \\ work \\ workspace \\ engine \\ Engine \\ Binaries \\ Win64 \\ UE4Editor - Cmd D : / work / workspace / carla / Unreal / CarlaUE4 / CarlaUE4 . uproject - run = GenerateTileCommandlet - FilePath = D : / work / workspace / carla / Unreal / CarlaUE4 / Content / CustomMaps / test _ 37 / OpenDrive / test _ 37 . xodr - BaseLevelName = / Game / CustomMaps / test _ 37 / test _ 37 - GeoCoordsX = 27.689301 - GeoCoordsY = 113.529297 - CTileX = 4 - CTileY = 0 - AllowCommandletRendering \u76f4\u63a5 \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u62a5\u9519 \uff08 \u5fc5\u987b \u786e\u4fdd \u4e0d\u662f Commandlet \u542f\u52a8 \uff0c \u800c \u5fc5\u987b \u662f Editor \u542f\u52a8 \uff09 \uff1a LogWindows : Error : Assertion failed : ! IsRunningCommandlet ( ) [ File : D : / work / workspace / engine / Engine / Plugins / Developer / RenderDocPlugin / Source / RenderDocPlugin / Private / SRenderDocPluginEditorExtension . cpp ] [ Line : 107 ]","title":"\u5bfc\u5165 \u5d29\u6e83 \u95ee\u9898"},{"location":"tuto_D_windows_debug/#vs-ue","text":"\u53d8\u91cf \u5df2 \u88ab \u4f18\u5316 \u6389 \uff0c \u56e0\u800c \u4e0d\u53ef \u7528 \u3002 VS \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 DebugGammingEditor \uff0c \u7136\u540e \u5f00\u59cb \u8c03\u8bd5 \uff0c \u5c31 \u53ef\u4ee5 \u6dfb\u52a0 \u8981 \u76d1\u89c6 \u7684 \u9879 \u3002","title":"VS \u8c03\u8bd5 UE \u9879\u76ee"},{"location":"tuto_D_windows_debug/#_3","text":"\u5d29\u6e83 \u4e8e engine \\ Engine \\ Source \\ Runtime \\ CoreUObject \\ Private \\ UObject \\ ScriptCore . cpp 1990 \u884c Function - > Invoke ( this , NewStack , ReturnValueAddress ) ; \u5f39 \u51fa \u62a5\u9519 \u4fe1\u606f \u6846 \uff1a Failed to open descriptor file . / .. / .. / .. / carla / Unreal / CarlaUE4 / CarlaUE4 . uproject VS \u8df3\u8f6c \u4ee3\u7801 \u592a\u6162","title":"\u95ee\u9898"},{"location":"tuto_D_windows_debug/#_4","text":"","title":"\u4f9d\u8d56"},{"location":"tuto_D_windows_debug/#boost-1800","text":"Python \u5c01\u88c5 C++ \u5e93 \u8c03\u8bd5 \u3002","title":"boost - 1.80 . 0"},{"location":"tuto_D_windows_debug/#_5","text":"\u5305\u542b \u6240\u6709 \u8f6f\u4ef6 \u4f9d\u8d56 \uff0c \u53cc\u51fb launch . bat \u542f\u52a8 \u8f6f\u4ef6 \u3002","title":"\u53d1\u5e03"},{"location":"tuto_D_windows_debug/#vs2019","text":"\u89e3\u538b \u5b89\u88c5 \u5b89\u88c5\u5305 \uff1a 7z x filename . zip - o . \u65b0 \u7535\u8111 \u8fd0\u884c NativeDesktop . exe \u51fa\u73b0 \u6b64 \u7248\u672c \u7684 Windows \u4e0d \u652f\u6301 \u6b64 \u4ea7\u54c1 \uff0c \u8bf7 \u5c1d\u8bd5 \u5347\u7ea7 Windows \u3002","title":"VS2019 \u793e\u533a \u7248 \u5b89\u88c5"},{"location":"tuto_D_windows_debug/#_6","text":"\u8fdb\u884c \u51fd\u6570 \u8df3\u8f6c \u65f6 \uff0c vs \u4e00\u81f4 \u51fa\u73b0 \u6b63\u5728 \u8fdb\u884c IntelliSense \uff1a \u9009\u62e9 \u201c \u5de5\u5177 \u201d \u83dc\u5355 \u83dc\u5355\u680f \u4e0b \u7684 \u201c \u9009\u9879 \u201d \u6309\u94ae \u6253\u5f00 \u9009\u9879 \u9875\u9762 \uff0c \u627e\u5230 \u6587\u672c \u7f16\u8f91 \u6587\u672c\u7f16\u8f91 \u5668 - > C / C++ - > \u9ad8\u7ea7 , \u5728 \u53f3\u4fa7 \u7684 \u7981\u7528 IntelliSense \u4e2d \u6539\u4e3a True","title":"\u6280\u5de7"},{"location":"tuto_E_gallery/","text":"Carla \u6559\u7a0b ( Python API ) \u8bf7 \u4f7f\u7528 0.9 . 14 \u7248\u672c \u6216\u8005 \u5176\u4ed6 \u517c\u5bb9 API \u7684 Carla \u7248\u672c \u3002 # \u5f00\u59cb Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh - quality - level = epic - resx = 800 - resy = 600 # \u5982\u679c \u60a8 \u6ca1\u6709 \u5f3a\u5927 \u7684 GPU . / CarlaUE4 . sh - quality - level = low - resx = 800 - resy = 600 # \u8fd0\u884c \u793a\u4f8b python 01 _ get _ started . py python 02 _ sync _ mode . py python 03 _ RGB _ camera . py python 04 _ more _ cameras . py python 05 _ open3d _ library . py python 06 _ trafic _ manager . py python 07 _ 3d _ bounding _ boxes . py python 08 _ draw _ waypoints . py python 09 _ basic _ navigation . py python 10 _ manual _ control . py Gallery \u793a\u4f8b 01 : \u5f00\u59cb ( \u5f02\u6b65 \uff1a \u8f66\u8f86 \u4f1a \u6709 \u6296\u52a8 \u611f \uff09 \u793a\u4f8b 02 : \u540c\u6b65 \u793a\u4f8b 03 : RGB \u76f8\u673a \u793a\u4f8b 04 : \u66f4 \u591a \u76f8\u673a \u793a\u4f8b 05 : Open3D \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u793a\u4f8b 06 : \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u793a\u4f8b 07 : 3D \u8fb9\u754c \u6846 \u793a\u4f8b 08 : \u7ed8\u5236 \u822a\u70b9 \u793a\u4f8b 09 : \u57fa\u672c \u5bfc\u822a \u793a\u4f8b 10 : \u624b\u52a8 \u63a7\u5236","title":"\u5165\u95e8"},{"location":"tuto_E_gallery/#carla-python-api","text":"\u8bf7 \u4f7f\u7528 0.9 . 14 \u7248\u672c \u6216\u8005 \u5176\u4ed6 \u517c\u5bb9 API \u7684 Carla \u7248\u672c \u3002 # \u5f00\u59cb Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh - quality - level = epic - resx = 800 - resy = 600 # \u5982\u679c \u60a8 \u6ca1\u6709 \u5f3a\u5927 \u7684 GPU . / CarlaUE4 . sh - quality - level = low - resx = 800 - resy = 600 # \u8fd0\u884c \u793a\u4f8b python 01 _ get _ started . py python 02 _ sync _ mode . py python 03 _ RGB _ camera . py python 04 _ more _ cameras . py python 05 _ open3d _ library . py python 06 _ trafic _ manager . py python 07 _ 3d _ bounding _ boxes . py python 08 _ draw _ waypoints . py python 09 _ basic _ navigation . py python 10 _ manual _ control . py","title":"Carla \u6559\u7a0b ( Python API )"},{"location":"tuto_E_gallery/#gallery","text":"\u793a\u4f8b 01 : \u5f00\u59cb ( \u5f02\u6b65 \uff1a \u8f66\u8f86 \u4f1a \u6709 \u6296\u52a8 \u611f \uff09 \u793a\u4f8b 02 : \u540c\u6b65 \u793a\u4f8b 03 : RGB \u76f8\u673a \u793a\u4f8b 04 : \u66f4 \u591a \u76f8\u673a \u793a\u4f8b 05 : Open3D \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u793a\u4f8b 06 : \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u793a\u4f8b 07 : 3D \u8fb9\u754c \u6846 \u793a\u4f8b 08 : \u7ed8\u5236 \u822a\u70b9 \u793a\u4f8b 09 : \u57fa\u672c \u5bfc\u822a \u793a\u4f8b 10 : \u624b\u52a8 \u63a7\u5236","title":"Gallery"},{"location":"tuto_G_G29_windows/","text":"carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u7684 \u53cd\u9988 \u529b\u53cd\u9988 ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \u53c2\u8003 \u94fe\u63a5 \u3002 \u672c \u6559\u7a0b \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \uff0c \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 \u94fe\u63a5 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c G29python \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 \u3001 carla0.9 . 14 \u3001 \u7f57\u6280 G - hub \u9a71\u52a8 \u3001 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u8868\u793a \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u53cd\u9988 \u529b\u53cd\u9988 \u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u6309 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"\u7f57\u6280 G29 \u65b9\u5411\u76d8"},{"location":"tuto_G_G29_windows/#carla-g29","text":"ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \u53c2\u8003 \u94fe\u63a5 \u3002 \u672c \u6559\u7a0b \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \uff0c \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 \u94fe\u63a5 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c G29python \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 \u3001 carla0.9 . 14 \u3001 \u7f57\u6280 G - hub \u9a71\u52a8 \u3001 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u8868\u793a \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002","title":"carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411\u76d8 \u7684 \u529b\u53cd\u9988"},{"location":"tuto_G_G29_windows/#_1","text":"\u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u6309 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"\u81ea\u52a8 \u9a7e\u9a76 \u529b\u53cd\u9988"},{"location":"tuto_G_add_friction_triggers/","text":"\u5982\u4f55 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 ( Friction Triggers ) \u662f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u6dfb\u52a0 \u7684 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u8ba9 \u7528\u6237 \u5728 \u5904\u4e8e \u8fd9\u4e9b \u7c7b\u578b \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u5185\u65f6 \u5b9a\u4e49 \u8f66\u8f86 \u8f66\u8f6e \u7684 \u4e0d\u540c \u6469\u64e6 \u6469\u64e6\u529b \u3002 \u4f8b\u5982 \uff0c \u8fd9 \u5bf9\u4e8e \u52a8\u6001 \u5730 \u5728 \u5730\u56fe \u7684 \u67d0\u4e9b \u533a\u57df \u4e2d \u5236\u4f5c \u5149\u6ed1 \u7684 \u8868\u9762 \u53ef\u80fd \u5f88 \u6709\u7528 \u3002 \u4e3a\u4e86 \u4f7f\u7528 PythonAPI \u751f\u6210 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u7528\u6237 \u5fc5\u987b \u9996\u5148 \u83b7\u53d6 static . trigger . friction \u84dd\u56fe \u5b9a\u4e49 \uff0c \u7136\u540e \u4e3a \u8be5 \u84dd\u56fe \u5b9a\u4e49 \u8bbe\u7f6e \u4ee5\u4e0b \u5fc5\u8981 \u5c5e\u6027 \uff1a friction : \u5f53 \u8f66\u8f86 \u4f4d\u4e8e \u89e6\u53d1 \u76d2\u5185 \u65f6 \uff0c \u89e6\u53d1 \u76d2 \u7684 \u6469\u64e6 \u6469\u64e6\u529b \u3002 extent _ x : X \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ y : Y \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ z : Z \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5b9a\u4e49 \u4e00\u4e2a \u53d8\u6362 \u6765 \u6307\u5b9a \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5e76 \u751f\u6210 \u5b83 \u3002 \u4f8b\u5b50 import carla def main ( ) : # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # Get World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # Find Trigger Friction Blueprint friction _ bp = world . get _ blueprint _ library ( ) . find ( ' static . trigger . friction ' ) extent = carla . Location ( 700.0 , 700.0 , 700.0 ) friction _ bp . set _ attribute ( ' friction ' , str ( 0.0 ) ) friction _ bp . set _ attribute ( ' extent _ x ' , str ( extent . x ) ) friction _ bp . set _ attribute ( ' extent _ y ' , str ( extent . y ) ) friction _ bp . set _ attribute ( ' extent _ z ' , str ( extent . z ) ) # Spawn Trigger Friction transform = carla . Transform ( ) transform . location = carla . Location ( 100.0 , 0.0 , 0.0 ) world . spawn _ actor ( friction _ bp , transform ) # Optional for visualizing trigger world . debug . draw _ box ( box = carla . BoundingBox ( transform . location , extent * 1e - 2 ) , rotation = transform . rotation , life _ time = 100 , thickness = 0.5 , color = carla . Color ( r = 255 , g = 0 , b = 0 ) ) if __ name __ = = ' __ main __ ' : main ( )","title":"\u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1\u5668"},{"location":"tuto_G_add_friction_triggers/#_1","text":"\u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 ( Friction Triggers ) \u662f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u6dfb\u52a0 \u7684 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u8ba9 \u7528\u6237 \u5728 \u5904\u4e8e \u8fd9\u4e9b \u7c7b\u578b \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u5185\u65f6 \u5b9a\u4e49 \u8f66\u8f86 \u8f66\u8f6e \u7684 \u4e0d\u540c \u6469\u64e6 \u6469\u64e6\u529b \u3002 \u4f8b\u5982 \uff0c \u8fd9 \u5bf9\u4e8e \u52a8\u6001 \u5730 \u5728 \u5730\u56fe \u7684 \u67d0\u4e9b \u533a\u57df \u4e2d \u5236\u4f5c \u5149\u6ed1 \u7684 \u8868\u9762 \u53ef\u80fd \u5f88 \u6709\u7528 \u3002 \u4e3a\u4e86 \u4f7f\u7528 PythonAPI \u751f\u6210 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u7528\u6237 \u5fc5\u987b \u9996\u5148 \u83b7\u53d6 static . trigger . friction \u84dd\u56fe \u5b9a\u4e49 \uff0c \u7136\u540e \u4e3a \u8be5 \u84dd\u56fe \u5b9a\u4e49 \u8bbe\u7f6e \u4ee5\u4e0b \u5fc5\u8981 \u5c5e\u6027 \uff1a friction : \u5f53 \u8f66\u8f86 \u4f4d\u4e8e \u89e6\u53d1 \u76d2\u5185 \u65f6 \uff0c \u89e6\u53d1 \u76d2 \u7684 \u6469\u64e6 \u6469\u64e6\u529b \u3002 extent _ x : X \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ y : Y \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ z : Z \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5b9a\u4e49 \u4e00\u4e2a \u53d8\u6362 \u6765 \u6307\u5b9a \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5e76 \u751f\u6210 \u5b83 \u3002","title":"\u5982\u4f55 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1\u5668"},{"location":"tuto_G_add_friction_triggers/#_2","text":"import carla def main ( ) : # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # Get World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # Find Trigger Friction Blueprint friction _ bp = world . get _ blueprint _ library ( ) . find ( ' static . trigger . friction ' ) extent = carla . Location ( 700.0 , 700.0 , 700.0 ) friction _ bp . set _ attribute ( ' friction ' , str ( 0.0 ) ) friction _ bp . set _ attribute ( ' extent _ x ' , str ( extent . x ) ) friction _ bp . set _ attribute ( ' extent _ y ' , str ( extent . y ) ) friction _ bp . set _ attribute ( ' extent _ z ' , str ( extent . z ) ) # Spawn Trigger Friction transform = carla . Transform ( ) transform . location = carla . Location ( 100.0 , 0.0 , 0.0 ) world . spawn _ actor ( friction _ bp , transform ) # Optional for visualizing trigger world . debug . draw _ box ( box = carla . BoundingBox ( transform . location , extent * 1e - 2 ) , rotation = transform . rotation , life _ time = 100 , thickness = 0.5 , color = carla . Color ( r = 255 , g = 0 , b = 0 ) ) if __ name __ = = ' __ main __ ' : main ( )","title":"\u4f8b\u5b50"},{"location":"tuto_G_bounding_boxes/","text":"\u8fb9\u754c \u6846 \u4f7f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e86\u89e3 \u5176 \u73af\u5883 \u7684 \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \u5728\u4e8e \u4f30\u8ba1 \u8f66\u8f86 \u5468\u56f4 \u7269\u4f53 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u4e3a\u6b64 \uff0c \u6709 \u5fc5\u8981 \u63a8\u65ad \u5bf9\u8c61 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u3002 Carla \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u8fb9\u754c \u6846 \uff0c \u5e76\u4e14 Carla Python API \u63d0\u4f9b \u4e86 \u8bbf\u95ee \u6bcf\u4e2a \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u7684 \u51fd\u6570 \u3002 \u672c \u6559\u7a0b \u5c55\u793a \u5982\u4f55 \u8bbf\u95ee \u8fb9\u754c \u6846 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8ba9 \u6211\u4eec \u7f16\u5199 \u6807\u51c6 Carla \u6837\u677f \u4ee3\u7801 \uff0c \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \uff0c \u751f\u6210 \u8f66\u8f86 \u5e76 \u4e3a \u5176 \u9644\u52a0 \u76f8\u673a \uff1a import carla import math import random import time import queue import numpy as np import cv2 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) # spawn vehicle vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) # spawn camera camera _ bp = bp _ lib . find ( ' sensor . camera . rgb ' ) camera _ init _ trans = carla . Transform ( carla . Location ( z = 2 ) ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = vehicle ) vehicle . set _ autopilot ( True ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Get the map spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Create a queue to store and retrieve the sensor data image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) \u51e0\u4f55 \u53d8\u6362 \u51e0\u4f55\u53d8\u6362 \u6211\u4eec \u60f3\u8981 \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u4e09\u7ef4 \u70b9 \u5e76 \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u5e73\u9762 \u4e2d \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u6784\u9020 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \uff1a def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K \u6211\u4eec \u60f3\u8981 \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u70b9 \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u662f \u4f7f\u7528 \u53ef \u901a\u8fc7 camera . get _ transform ( ) . get _ inverse _ matrix ( ) \u68c0\u7d22 \u7684 \u9006 \u76f8\u673a \u53d8\u6362 \uff0c \u5c06 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u5750\u6807 \u53d8\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u76f8\u673a \u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u76f8\u673a \u5e73\u9762 \u4e2d \uff1a def get _ image _ point ( loc , K , w2c ) : # Calculate 2D projection of 3D coordinate # Format the input coordinate ( loc is a carla . Position object ) point = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # transform to camera coordinates point _ camera = np . dot ( w2c , point ) # New we must change from UE4 ' s coordinate system to an \" standard \" # ( x , y , z ) - > ( y , - z , x ) # and we remove the fourth componebonent also point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # now project 3D - > 2D using the camera matrix point _ img = np . dot ( K , point _ camera ) # normalize point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u6295\u5f71 3D - > 2D \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u68c0\u7d22 \u76f8\u673a \u89c4\u683c \uff1a # Get the world to camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # Get the attributes from the camera image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # Calculate the camera projection matrix to project from 3D - > 2D K = build _ projection _ matrix ( image _ w , image _ h , fov ) \u8fb9\u754c \u6846 Carla \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u8fb9\u754c \u6846 \u3002 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6709 \u4e00\u4e2a bounding _ box \u5c5e\u6027 \uff0c \u8be5 \u5c5e\u6027 \u5177\u6709 carla . BoundingBox \u5bf9\u8c61 \u7c7b\u578b \u3002 \u8fb9\u754c \u6846 \u7684 \u9876\u70b9 \u53ef\u4ee5 \u901a\u8fc7 getter \u51fd\u6570 . get _ world _ vertices ( ) \u6216 get _ local _ vertices ( ) \u4e4b\u4e00 \u68c0\u7d22 \u3002 \u9700\u8981 \u6ce8\u610f \u7684 \u662f \uff0c \u8981 \u83b7\u53d6 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u4e09\u7ef4 \u5750\u6807 \uff0c \u60a8 \u9700\u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \u4f5c\u4e3a \u8be5 get _ world _ vertices ( ) \u65b9\u6cd5 \u7684 \u53c2\u6570 \uff0c \u5982\u4e0b \u6240\u793a \uff1a actor . get _ world _ vertices ( actor . get _ transform ( ) ) \u5bf9\u4e8e \u5730\u56fe \u4e2d \u7684 \u7269\u4f53 \uff0c \u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u8def\u6807 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . World \u65b9\u6cd5 get _ level _ bbs ( ) \u68c0\u7d22 \u8fb9\u754c \u6846 get _ level _ bbs ( ) \u3002 carla . CityObjectLabel \u53ef\u4ee5 \u7528\u4f5c \u53c2\u6570 \u6765 \u5c06 \u8fb9\u754c \u6846 \u5217\u8868 \u8fc7\u6ee4 \u5230 \u76f8\u5173 \u5bf9\u8c61 \uff1a # Retrieve all bounding boxes for traffic lights within the level bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) # Filter the list to extract bounding boxes within a 50m radius nearby _ bboxes = [ ] for bbox in bounding _ box _ set : if bbox . location . distance ( actor . get _ transform ( ) . location ) < 50 : nearby _ bboxes \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u6765 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u8fc7\u6ee4 \u8be5 \u5217\u8868 \uff0c \u4ee5 \u8bc6\u522b \u9644\u8fd1 \u7684 \u5bf9\u8c61 \uff0c \u56e0\u6b64 \u53ef\u80fd \u4f4d\u4e8e \u8fde\u63a5 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u76f8\u673a \u7684 \u89c6\u91ce \u5185 \u3002 \u4e3a\u4e86 \u5728 \u76f8\u673a \u56fe\u50cf \u4e0a \u7ed8\u5236 \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u9002\u5f53 \u7684 \u987a\u5e8f \u8fde\u63a5 \u9876\u70b9 \u4ee5 \u521b\u5efa \u8fb9\u7f18 \u3002 \u4e3a\u4e86 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u8fb9 \u5bf9 \u5217\u8868 \uff1a edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ] \u6e32\u67d3 \u8fb9\u754c \u6846 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u8bbe\u7f6e \u4e86 \u51e0\u4f55 \u6295\u5f71 \u548c \u4eff\u771f \uff0c \u6211\u4eec \u53ef\u4ee5 \u7ee7\u7eed \u521b\u5efa \u6e38\u620f \u5faa\u73af \u5e76 \u5c06 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u573a\u666f \u4e2d \u3002 # Set up the set of bounding boxes from the level # We filter for traffic lights and traffic signs bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) bounding _ box _ set . extend ( world . get _ level _ bbs ( carla . CityObjectLabel . TrafficSigns ) ) # Remember the edge pairs edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ] \u4e3a\u4e86 \u67e5\u770b \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 OpenCV \u7a97\u53e3 \u6765 \u663e\u793a \u76f8\u673a \u8f93\u51fa \u3002 # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u5c06 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for bb in bounding _ box _ set : # Filter for distance from ego vehicle if bb . location . distance ( vehicle . get _ transform ( ) . location ) < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the bounding box . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = bb . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : # Cycle through the vertices verts = [ v for v in bb . get _ world _ vertices ( carla . Transform ( ) ) ] for edge in edges : # Join the vertices into edges p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) # Draw the edges into the camera output cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) # Now draw the image into the OpenCV display window cv2 . imshow ( ' ImageWindowName ' , img ) # Break the loop if the user presses the Q key if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break # Close the OpenCV display window when the game loop stops cv2 . destroyAllWindows ( ) \u73b0\u5728 \u6211\u4eec \u5c06 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u56fe\u50cf \u4e2d \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e2d \u89c2\u5bdf \u5b83\u4eec \u3002 \u8f66\u8f86 \u8fb9\u754c \u6846 \u6211\u4eec \u53ef\u80fd \u8fd8 \u60f3 \u6e32\u67d3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846 \uff0c \u7279\u522b \u662f \u8f66\u8f86 \u7684 \u8fb9\u754c \u6846 \u3002 \u9996\u5148 \uff0c \u8ba9 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6dfb\u52a0 \u4e00\u4e9b \u5176\u4ed6 \u8f66\u8f86 \uff1a for i in range ( 50 ) : vehicle _ bp = random . choice ( bp _ lib . filter ( ' vehicle ' ) ) npc = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) if npc : npc . set _ autopilot ( True ) \u68c0\u7d22 \u7b2c\u4e00 \u4e00\u5f20 \u7b2c\u4e00\u5f20 \u56fe\u50cf \u5e76 \u50cf \u4ee5\u524d \u4e00\u6837 \u8bbe\u7f6e OpenCV \u663e\u793a \u7a97\u53e3 \uff1a # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u4f7f\u7528 \u4fee\u6539 \u540e \u7684 \u6e38\u620f \u5faa\u73af \u6765 \u7ed8\u5236 \u8f66\u8f86 \u8fb9\u754c \u6846 \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] for edge in edges : p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 255 , 0 , 0 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( ) \u4e8c\u7ef4 \u8fb9\u754c \u6846 \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u68c0\u6d4b \u4e8c\u7ef4 \u8fb9\u754c \u6846\u800c \u4e0d\u662f \u4e0a\u9762 \u6f14\u793a \u7684 \u4e09\u7ef4 \u8fb9\u754c \u6846\u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u524d\u9762 \u7684 \u811a\u672c \u53ef\u4ee5 \u8f7b\u677e \u6269\u5c55 \u4ee5 \u751f\u6210 \u4e8c\u7ef4 \u8fb9\u754c \u6846 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u4f7f\u7528 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u7684 \u672b\u7aef \u5373\u53ef \u3002 \u5bf9\u4e8e \u6e32\u67d3 \u7684 \u6bcf\u4e2a \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u627e\u5230 \u56fe\u50cf \u5750\u6807 \u4e2d \u6700 \u5de6\u8fb9 \u3001 \u6700 \u53f3\u8fb9 \u3001 \u6700\u9ad8 \u548c \u6700\u4f4e \u7684 \u6295\u5f71 \u9876\u70b9 \u3002 while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) http : / / host . robots . ox . ac . uk / pascal / VOC / verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) # Find the rightmost vertex if p [ 0 ] > x _ max : x _ max = p [ 0 ] # Find the leftmost vertex if p [ 0 ] < x _ min : x _ min = p [ 0 ] # Find the highest vertex if p [ 1 ] > y _ max : y _ max = p [ 1 ] # Find the lowest vertex if p [ 1 ] < y _ min : y _ min = p [ 1 ] cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ min ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ max ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ min ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ max ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( ) \u5bfc\u51fa \u8fb9\u754c \u6846 \u6e32\u67d3 \u8fb9\u754c \u6846 \u5bf9\u4e8e \u6211\u4eec \u786e\u4fdd \u8fb9\u754c \u6846 \u5bf9\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u662f \u6b63\u786e \u7684 \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5982\u679c \u6211\u4eec \u60f3 \u5728 \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u65f6 \u5b9e\u9645 \u4f7f\u7528 \u5b83\u4eec \uff0c \u6211\u4eec \u5c06 \u9700\u8981 \u5bfc\u51fa \u5b83\u4eec \u3002 \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u548c \u7269\u4f53 \u68c0\u6d4b \u7684 \u5e38\u89c1 \u6570\u636e \u5b58\u50a8 \u5e93 \u4f7f\u7528 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u683c\u5f0f \uff0c \u4f8b\u5982 KITTI \u6216 PASCAL VOC \u6216 MicroSoft COCO \u3002 Pascal VOC \u683c\u5f0f \u8fd9\u4e9b \u6570\u636e \u96c6 \u901a\u5e38 \u4f7f\u7528 JSON \u6216 XML \u683c\u5f0f \u6765 \u5b58\u50a8 \u6ce8\u91ca \u3002 PASCAL VOC \u683c\u5f0f \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python \u5e93 \u3002 from pascal _ voc _ writer import Writer ... ... ... while True : # Retrieve the image world . tick ( ) image = image _ queue . get ( ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) frame _ path = ' output / % 06d ' % image . frame # Save the image image . save _ to _ disk ( frame _ path + ' . png ' ) # Initialize the exporter writer = Writer ( frame _ path + ' . png ' , image _ w , image _ h ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) if dist < 50 : forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) if p [ 0 ] > x _ max : x _ max = p [ 0 ] if p [ 0 ] < x _ min : x _ min = p [ 0 ] if p [ 1 ] > y _ max : y _ max = p [ 1 ] if p [ 1 ] < y _ min : y _ min = p [ 1 ] # Add the object to the frame ( ensure it is inside the image ) if x _ min > 0 and x _ max < image _ w and y _ min > 0 and y _ max < image _ h : writer . addObject ( ' vehicle ' , x _ min , y _ min , x _ max , y _ max ) # Save the bounding boxes in the scene writer . save ( frame _ path + ' . xml ' ) \u5bf9\u4e8e \u4eff\u771f \u7684 \u6bcf\u4e2a \u6e32\u67d3 \u5e27 \uff0c \u60a8 \u73b0\u5728 \u5c06 \u5bfc\u51fa \u4e00\u4e2a \u968f\u9644 \u7684 XML \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u5e27 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 PASCAL VOC \u683c\u5f0f \u4e2d \uff0c XML \u6587\u4ef6 \u5305\u542b \u6d89\u53ca \u968f\u9644 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u3001 \u56fe\u50cf \u5c3a\u5bf8 \u7684 \u4fe1\u606f \uff0c \u5982\u679c \u9700\u8981 \uff0c \u8fd8 \u53ef\u4ee5 \u5305\u62ec \u8f66\u8f86 \u7c7b\u578b \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 < ! -- Example PASCAL VOC format file -- > < annotation > < folder > output < / folder > < filename > 023235 . png < / filename > < path > / home / matt / Documents / temp / output / 023235 . png < / path > < source > < database > Unknown < / database > < / source > < size > < width > 800 < / width > < height > 600 < / height > < depth > 3 < / depth > < / size > < segmented > 0 < / segmented > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 503 < / xmin > < ymin > 310 < / ymin > < xmax > 511 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 490 < / xmin > < ymin > 310 < / ymin > < xmax > 498 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < / annotation > \u5fae\u8f6f COCO \u683c\u5f0f \u53e6 \u4e00\u79cd \u6d41\u884c \u7684 \u5bfc\u51fa \u683c\u5f0f \u662f MicroSoft COCO \u3002 COCO \u683c\u5f0f \u4f7f\u7528 JSON \u6587\u4ef6 \u6765 \u4fdd\u5b58 \u5bf9 \u56fe\u50cf \u548c \u6ce8\u91ca \u7684 \u5f15\u7528 \u3002 \u8be5 \u683c\u5f0f \u5305\u62ec \u5355\u4e2a JSON \u6587\u4ef6 \u5b57\u6bb5 \u4e2d \u7684 \u56fe\u50cf \u548c \u6ce8\u91ca \uff0c \u4ee5\u53ca \u6709\u5173 \u6570\u636e \u96c6 \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u7684 \u4fe1\u606f \u3002 \u4e0e \u67d0\u4e9b \u5176\u4ed6 \u683c\u5f0f \u76f8\u6bd4 \uff0c \u5bf9 \u6240\u6709 \u6536\u96c6 \u7684 \u56fe\u50cf \u548c \u6240\u6709 \u76f8\u5173 \u6ce8\u91ca \u7684 \u5f15\u7528 \u90fd \u4f4d\u4e8e \u540c\u4e00 \u6587\u4ef6 \u4e2d \u3002 \u60a8 \u5e94\u8be5 \u521b\u5efa \u4e00\u4e2a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u793a\u4f8b \u7684 JSON \u5b57\u5178 \uff1a simulation _ dataset = { \" info \" : { } , \" licenses \" : [ { \" url \" : \" http : / / creativecommons . org / licenses / by - nc - sa / 2.0 / \" , \" id \" : 1 , \" name \" : \" Attribution - NonCommercial - ShareAlike License \" } ] , \" images \" : [ ... , { \" license \" : 1 , \" file _ name \" : \" 023235 . png \" , \" height \" : 600 , \" width \" : 800 , \" date _ captured \" : \" 2022 - 04 - 14 17 : 02 : 52 \" , \" id \" : 23235 } , ... ] , \" categories \" : [ ... { \" supercategory \" : \" vehicle \" , \" id \" : 10 , \" name \" : \" vehicle \" } , ... ] , \" annotations \" : [ ... , { \" segmentation \" : [ ] , \" area \" : 9262.89 , \" iscrowd \" : 0 , \" image _ id \" : 23235 , \" bbox \" : [ 503.3 , 310.4 , 118.3 , 78.3 ] } , ... ] } \u4fe1\u606f \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u90e8\u5206 \u5e94 \u76f8\u5e94 \u586b\u5199 \u6216 \u7559\u7a7a \u3002 \u4eff\u771f \u4e2d \u7684 \u56fe\u50cf \u5e94 \u5b58\u50a8 \u5728 images \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u7684 \u6570\u7ec4 \u4e2d \u3002 \u8fb9\u754c \u6846\u5e94 \u5b58\u50a8 \u5728 \u5177\u6709 \u5339\u914d image _ id \u7684 annotations \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u3002 \u8fb9\u754c \u6846 \u5b58\u50a8 \u4e3a [ x _ min , y _ min , width , height ] \u3002 \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 Python JSON \u5e93 \u5c06 \u5b57\u5178 \u4fdd\u5b58 \u4e3a JSON \u6587\u4ef6 \uff1a import json with open ( ' simulation _ data . json ' , ' w ' ) as json _ file : json . dump ( simulation _ dataset , json _ file ) \u6709\u5173 COCO \u6570\u636e \u683c\u5f0f \u6570\u636e\u683c\u5f0f \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002 \u5e94\u8be5 \u6ce8\u610f \u7684 \u662f \uff0c \u5728 \u672c \u6559\u7a0b \u4e2d \u6211\u4eec \u6ca1\u6709 \u8003\u8651 \u91cd\u53e0 \u7684 \u8fb9\u754c \u6846 \u3002 \u4e3a\u4e86 \u5728 \u91cd\u53e0 \u7684 \u60c5\u51b5 \u4e0b \u8bc6\u522b \u524d\u666f \u8fb9\u754c \u6846 \uff0c \u9700\u8981 \u8fdb\u884c \u989d\u5916 \u7684 \u5de5\u4f5c \u3002","title":"\u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_1","text":"\u4f7f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e86\u89e3 \u5176 \u73af\u5883 \u7684 \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \u5728\u4e8e \u4f30\u8ba1 \u8f66\u8f86 \u5468\u56f4 \u7269\u4f53 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u4e3a\u6b64 \uff0c \u6709 \u5fc5\u8981 \u63a8\u65ad \u5bf9\u8c61 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u3002 Carla \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u8fb9\u754c \u6846 \uff0c \u5e76\u4e14 Carla Python API \u63d0\u4f9b \u4e86 \u8bbf\u95ee \u6bcf\u4e2a \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u7684 \u51fd\u6570 \u3002 \u672c \u6559\u7a0b \u5c55\u793a \u5982\u4f55 \u8bbf\u95ee \u8fb9\u754c \u6846 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002","title":"\u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_2","text":"\u8ba9 \u6211\u4eec \u7f16\u5199 \u6807\u51c6 Carla \u6837\u677f \u4ee3\u7801 \uff0c \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \uff0c \u751f\u6210 \u8f66\u8f86 \u5e76 \u4e3a \u5176 \u9644\u52a0 \u76f8\u673a \uff1a import carla import math import random import time import queue import numpy as np import cv2 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) # spawn vehicle vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) # spawn camera camera _ bp = bp _ lib . find ( ' sensor . camera . rgb ' ) camera _ init _ trans = carla . Transform ( carla . Location ( z = 2 ) ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = vehicle ) vehicle . set _ autopilot ( True ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Get the map spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Create a queue to store and retrieve the sensor data image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668"},{"location":"tuto_G_bounding_boxes/#_3","text":"\u6211\u4eec \u60f3\u8981 \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u4e09\u7ef4 \u70b9 \u5e76 \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u5e73\u9762 \u4e2d \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u6784\u9020 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \uff1a def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K \u6211\u4eec \u60f3\u8981 \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u70b9 \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u662f \u4f7f\u7528 \u53ef \u901a\u8fc7 camera . get _ transform ( ) . get _ inverse _ matrix ( ) \u68c0\u7d22 \u7684 \u9006 \u76f8\u673a \u53d8\u6362 \uff0c \u5c06 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u5750\u6807 \u53d8\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u76f8\u673a \u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u76f8\u673a \u5e73\u9762 \u4e2d \uff1a def get _ image _ point ( loc , K , w2c ) : # Calculate 2D projection of 3D coordinate # Format the input coordinate ( loc is a carla . Position object ) point = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # transform to camera coordinates point _ camera = np . dot ( w2c , point ) # New we must change from UE4 ' s coordinate system to an \" standard \" # ( x , y , z ) - > ( y , - z , x ) # and we remove the fourth componebonent also point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # now project 3D - > 2D using the camera matrix point _ img = np . dot ( K , point _ camera ) # normalize point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u6295\u5f71 3D - > 2D \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u68c0\u7d22 \u76f8\u673a \u89c4\u683c \uff1a # Get the world to camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # Get the attributes from the camera image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # Calculate the camera projection matrix to project from 3D - > 2D K = build _ projection _ matrix ( image _ w , image _ h , fov )","title":"\u51e0\u4f55\u53d8\u6362"},{"location":"tuto_G_bounding_boxes/#_4","text":"Carla \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u8fb9\u754c \u6846 \u3002 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6709 \u4e00\u4e2a bounding _ box \u5c5e\u6027 \uff0c \u8be5 \u5c5e\u6027 \u5177\u6709 carla . BoundingBox \u5bf9\u8c61 \u7c7b\u578b \u3002 \u8fb9\u754c \u6846 \u7684 \u9876\u70b9 \u53ef\u4ee5 \u901a\u8fc7 getter \u51fd\u6570 . get _ world _ vertices ( ) \u6216 get _ local _ vertices ( ) \u4e4b\u4e00 \u68c0\u7d22 \u3002 \u9700\u8981 \u6ce8\u610f \u7684 \u662f \uff0c \u8981 \u83b7\u53d6 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u4e09\u7ef4 \u5750\u6807 \uff0c \u60a8 \u9700\u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \u4f5c\u4e3a \u8be5 get _ world _ vertices ( ) \u65b9\u6cd5 \u7684 \u53c2\u6570 \uff0c \u5982\u4e0b \u6240\u793a \uff1a actor . get _ world _ vertices ( actor . get _ transform ( ) ) \u5bf9\u4e8e \u5730\u56fe \u4e2d \u7684 \u7269\u4f53 \uff0c \u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u8def\u6807 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . World \u65b9\u6cd5 get _ level _ bbs ( ) \u68c0\u7d22 \u8fb9\u754c \u6846 get _ level _ bbs ( ) \u3002 carla . CityObjectLabel \u53ef\u4ee5 \u7528\u4f5c \u53c2\u6570 \u6765 \u5c06 \u8fb9\u754c \u6846 \u5217\u8868 \u8fc7\u6ee4 \u5230 \u76f8\u5173 \u5bf9\u8c61 \uff1a # Retrieve all bounding boxes for traffic lights within the level bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) # Filter the list to extract bounding boxes within a 50m radius nearby _ bboxes = [ ] for bbox in bounding _ box _ set : if bbox . location . distance ( actor . get _ transform ( ) . location ) < 50 : nearby _ bboxes \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u6765 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u8fc7\u6ee4 \u8be5 \u5217\u8868 \uff0c \u4ee5 \u8bc6\u522b \u9644\u8fd1 \u7684 \u5bf9\u8c61 \uff0c \u56e0\u6b64 \u53ef\u80fd \u4f4d\u4e8e \u8fde\u63a5 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u76f8\u673a \u7684 \u89c6\u91ce \u5185 \u3002 \u4e3a\u4e86 \u5728 \u76f8\u673a \u56fe\u50cf \u4e0a \u7ed8\u5236 \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u9002\u5f53 \u7684 \u987a\u5e8f \u8fde\u63a5 \u9876\u70b9 \u4ee5 \u521b\u5efa \u8fb9\u7f18 \u3002 \u4e3a\u4e86 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u8fb9 \u5bf9 \u5217\u8868 \uff1a edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ]","title":"\u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_5","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u8bbe\u7f6e \u4e86 \u51e0\u4f55 \u6295\u5f71 \u548c \u4eff\u771f \uff0c \u6211\u4eec \u53ef\u4ee5 \u7ee7\u7eed \u521b\u5efa \u6e38\u620f \u5faa\u73af \u5e76 \u5c06 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u573a\u666f \u4e2d \u3002 # Set up the set of bounding boxes from the level # We filter for traffic lights and traffic signs bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) bounding _ box _ set . extend ( world . get _ level _ bbs ( carla . CityObjectLabel . TrafficSigns ) ) # Remember the edge pairs edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ] \u4e3a\u4e86 \u67e5\u770b \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 OpenCV \u7a97\u53e3 \u6765 \u663e\u793a \u76f8\u673a \u8f93\u51fa \u3002 # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u5c06 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for bb in bounding _ box _ set : # Filter for distance from ego vehicle if bb . location . distance ( vehicle . get _ transform ( ) . location ) < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the bounding box . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = bb . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : # Cycle through the vertices verts = [ v for v in bb . get _ world _ vertices ( carla . Transform ( ) ) ] for edge in edges : # Join the vertices into edges p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) # Draw the edges into the camera output cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) # Now draw the image into the OpenCV display window cv2 . imshow ( ' ImageWindowName ' , img ) # Break the loop if the user presses the Q key if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break # Close the OpenCV display window when the game loop stops cv2 . destroyAllWindows ( ) \u73b0\u5728 \u6211\u4eec \u5c06 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u56fe\u50cf \u4e2d \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e2d \u89c2\u5bdf \u5b83\u4eec \u3002","title":"\u6e32\u67d3 \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_6","text":"\u6211\u4eec \u53ef\u80fd \u8fd8 \u60f3 \u6e32\u67d3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846 \uff0c \u7279\u522b \u662f \u8f66\u8f86 \u7684 \u8fb9\u754c \u6846 \u3002 \u9996\u5148 \uff0c \u8ba9 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6dfb\u52a0 \u4e00\u4e9b \u5176\u4ed6 \u8f66\u8f86 \uff1a for i in range ( 50 ) : vehicle _ bp = random . choice ( bp _ lib . filter ( ' vehicle ' ) ) npc = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) if npc : npc . set _ autopilot ( True ) \u68c0\u7d22 \u7b2c\u4e00 \u4e00\u5f20 \u7b2c\u4e00\u5f20 \u56fe\u50cf \u5e76 \u50cf \u4ee5\u524d \u4e00\u6837 \u8bbe\u7f6e OpenCV \u663e\u793a \u7a97\u53e3 \uff1a # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u4f7f\u7528 \u4fee\u6539 \u540e \u7684 \u6e38\u620f \u5faa\u73af \u6765 \u7ed8\u5236 \u8f66\u8f86 \u8fb9\u754c \u6846 \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] for edge in edges : p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 255 , 0 , 0 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( )","title":"\u8f66\u8f86 \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_7","text":"\u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u68c0\u6d4b \u4e8c\u7ef4 \u8fb9\u754c \u6846\u800c \u4e0d\u662f \u4e0a\u9762 \u6f14\u793a \u7684 \u4e09\u7ef4 \u8fb9\u754c \u6846\u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u524d\u9762 \u7684 \u811a\u672c \u53ef\u4ee5 \u8f7b\u677e \u6269\u5c55 \u4ee5 \u751f\u6210 \u4e8c\u7ef4 \u8fb9\u754c \u6846 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u4f7f\u7528 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u7684 \u672b\u7aef \u5373\u53ef \u3002 \u5bf9\u4e8e \u6e32\u67d3 \u7684 \u6bcf\u4e2a \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u627e\u5230 \u56fe\u50cf \u5750\u6807 \u4e2d \u6700 \u5de6\u8fb9 \u3001 \u6700 \u53f3\u8fb9 \u3001 \u6700\u9ad8 \u548c \u6700\u4f4e \u7684 \u6295\u5f71 \u9876\u70b9 \u3002 while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) http : / / host . robots . ox . ac . uk / pascal / VOC / verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) # Find the rightmost vertex if p [ 0 ] > x _ max : x _ max = p [ 0 ] # Find the leftmost vertex if p [ 0 ] < x _ min : x _ min = p [ 0 ] # Find the highest vertex if p [ 1 ] > y _ max : y _ max = p [ 1 ] # Find the lowest vertex if p [ 1 ] < y _ min : y _ min = p [ 1 ] cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ min ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ max ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ min ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ max ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( )","title":"\u4e8c\u7ef4 \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_8","text":"\u6e32\u67d3 \u8fb9\u754c \u6846 \u5bf9\u4e8e \u6211\u4eec \u786e\u4fdd \u8fb9\u754c \u6846 \u5bf9\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u662f \u6b63\u786e \u7684 \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5982\u679c \u6211\u4eec \u60f3 \u5728 \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u65f6 \u5b9e\u9645 \u4f7f\u7528 \u5b83\u4eec \uff0c \u6211\u4eec \u5c06 \u9700\u8981 \u5bfc\u51fa \u5b83\u4eec \u3002 \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u548c \u7269\u4f53 \u68c0\u6d4b \u7684 \u5e38\u89c1 \u6570\u636e \u5b58\u50a8 \u5e93 \u4f7f\u7528 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u683c\u5f0f \uff0c \u4f8b\u5982 KITTI \u6216 PASCAL VOC \u6216 MicroSoft COCO \u3002","title":"\u5bfc\u51fa \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#pascal-voc","text":"\u8fd9\u4e9b \u6570\u636e \u96c6 \u901a\u5e38 \u4f7f\u7528 JSON \u6216 XML \u683c\u5f0f \u6765 \u5b58\u50a8 \u6ce8\u91ca \u3002 PASCAL VOC \u683c\u5f0f \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python \u5e93 \u3002 from pascal _ voc _ writer import Writer ... ... ... while True : # Retrieve the image world . tick ( ) image = image _ queue . get ( ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) frame _ path = ' output / % 06d ' % image . frame # Save the image image . save _ to _ disk ( frame _ path + ' . png ' ) # Initialize the exporter writer = Writer ( frame _ path + ' . png ' , image _ w , image _ h ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) if dist < 50 : forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) if p [ 0 ] > x _ max : x _ max = p [ 0 ] if p [ 0 ] < x _ min : x _ min = p [ 0 ] if p [ 1 ] > y _ max : y _ max = p [ 1 ] if p [ 1 ] < y _ min : y _ min = p [ 1 ] # Add the object to the frame ( ensure it is inside the image ) if x _ min > 0 and x _ max < image _ w and y _ min > 0 and y _ max < image _ h : writer . addObject ( ' vehicle ' , x _ min , y _ min , x _ max , y _ max ) # Save the bounding boxes in the scene writer . save ( frame _ path + ' . xml ' ) \u5bf9\u4e8e \u4eff\u771f \u7684 \u6bcf\u4e2a \u6e32\u67d3 \u5e27 \uff0c \u60a8 \u73b0\u5728 \u5c06 \u5bfc\u51fa \u4e00\u4e2a \u968f\u9644 \u7684 XML \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u5e27 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 PASCAL VOC \u683c\u5f0f \u4e2d \uff0c XML \u6587\u4ef6 \u5305\u542b \u6d89\u53ca \u968f\u9644 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u3001 \u56fe\u50cf \u5c3a\u5bf8 \u7684 \u4fe1\u606f \uff0c \u5982\u679c \u9700\u8981 \uff0c \u8fd8 \u53ef\u4ee5 \u5305\u62ec \u8f66\u8f86 \u7c7b\u578b \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 < ! -- Example PASCAL VOC format file -- > < annotation > < folder > output < / folder > < filename > 023235 . png < / filename > < path > / home / matt / Documents / temp / output / 023235 . png < / path > < source > < database > Unknown < / database > < / source > < size > < width > 800 < / width > < height > 600 < / height > < depth > 3 < / depth > < / size > < segmented > 0 < / segmented > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 503 < / xmin > < ymin > 310 < / ymin > < xmax > 511 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 490 < / xmin > < ymin > 310 < / ymin > < xmax > 498 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < / annotation >","title":"Pascal VOC \u683c\u5f0f"},{"location":"tuto_G_bounding_boxes/#coco","text":"\u53e6 \u4e00\u79cd \u6d41\u884c \u7684 \u5bfc\u51fa \u683c\u5f0f \u662f MicroSoft COCO \u3002 COCO \u683c\u5f0f \u4f7f\u7528 JSON \u6587\u4ef6 \u6765 \u4fdd\u5b58 \u5bf9 \u56fe\u50cf \u548c \u6ce8\u91ca \u7684 \u5f15\u7528 \u3002 \u8be5 \u683c\u5f0f \u5305\u62ec \u5355\u4e2a JSON \u6587\u4ef6 \u5b57\u6bb5 \u4e2d \u7684 \u56fe\u50cf \u548c \u6ce8\u91ca \uff0c \u4ee5\u53ca \u6709\u5173 \u6570\u636e \u96c6 \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u7684 \u4fe1\u606f \u3002 \u4e0e \u67d0\u4e9b \u5176\u4ed6 \u683c\u5f0f \u76f8\u6bd4 \uff0c \u5bf9 \u6240\u6709 \u6536\u96c6 \u7684 \u56fe\u50cf \u548c \u6240\u6709 \u76f8\u5173 \u6ce8\u91ca \u7684 \u5f15\u7528 \u90fd \u4f4d\u4e8e \u540c\u4e00 \u6587\u4ef6 \u4e2d \u3002 \u60a8 \u5e94\u8be5 \u521b\u5efa \u4e00\u4e2a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u793a\u4f8b \u7684 JSON \u5b57\u5178 \uff1a simulation _ dataset = { \" info \" : { } , \" licenses \" : [ { \" url \" : \" http : / / creativecommons . org / licenses / by - nc - sa / 2.0 / \" , \" id \" : 1 , \" name \" : \" Attribution - NonCommercial - ShareAlike License \" } ] , \" images \" : [ ... , { \" license \" : 1 , \" file _ name \" : \" 023235 . png \" , \" height \" : 600 , \" width \" : 800 , \" date _ captured \" : \" 2022 - 04 - 14 17 : 02 : 52 \" , \" id \" : 23235 } , ... ] , \" categories \" : [ ... { \" supercategory \" : \" vehicle \" , \" id \" : 10 , \" name \" : \" vehicle \" } , ... ] , \" annotations \" : [ ... , { \" segmentation \" : [ ] , \" area \" : 9262.89 , \" iscrowd \" : 0 , \" image _ id \" : 23235 , \" bbox \" : [ 503.3 , 310.4 , 118.3 , 78.3 ] } , ... ] } \u4fe1\u606f \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u90e8\u5206 \u5e94 \u76f8\u5e94 \u586b\u5199 \u6216 \u7559\u7a7a \u3002 \u4eff\u771f \u4e2d \u7684 \u56fe\u50cf \u5e94 \u5b58\u50a8 \u5728 images \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u7684 \u6570\u7ec4 \u4e2d \u3002 \u8fb9\u754c \u6846\u5e94 \u5b58\u50a8 \u5728 \u5177\u6709 \u5339\u914d image _ id \u7684 annotations \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u3002 \u8fb9\u754c \u6846 \u5b58\u50a8 \u4e3a [ x _ min , y _ min , width , height ] \u3002 \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 Python JSON \u5e93 \u5c06 \u5b57\u5178 \u4fdd\u5b58 \u4e3a JSON \u6587\u4ef6 \uff1a import json with open ( ' simulation _ data . json ' , ' w ' ) as json _ file : json . dump ( simulation _ dataset , json _ file ) \u6709\u5173 COCO \u6570\u636e \u683c\u5f0f \u6570\u636e\u683c\u5f0f \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002 \u5e94\u8be5 \u6ce8\u610f \u7684 \u662f \uff0c \u5728 \u672c \u6559\u7a0b \u4e2d \u6211\u4eec \u6ca1\u6709 \u8003\u8651 \u91cd\u53e0 \u7684 \u8fb9\u754c \u6846 \u3002 \u4e3a\u4e86 \u5728 \u91cd\u53e0 \u7684 \u60c5\u51b5 \u4e0b \u8bc6\u522b \u524d\u666f \u8fb9\u754c \u6846 \uff0c \u9700\u8981 \u8fdb\u884c \u989d\u5916 \u7684 \u5de5\u4f5c \u3002","title":"\u5fae\u8f6f COCO \u683c\u5f0f"},{"location":"tuto_G_carsim_integration/","text":"CarSim \u96c6\u6210 Carla \u4e0e CarSim \u7684 \u96c6\u6210 \u5141\u8bb8 \u5c06 Carla \u4e2d \u7684 \u8f66\u8f86 \u63a7\u5236 \u8f6c\u53d1 \u5230 CarSim \u3002 CarSim \u5c06 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u6240\u6709 \u5fc5\u9700 \u7684 \u7269\u7406 \u8ba1\u7b97 \uff0c \u5e76 \u5c06 \u65b0 \u72b6\u6001 \u8fd4\u56de \u7ed9 Carla \u3002 \u672c\u9875 \u5411 \u60a8 \u5c55\u793a \u5982\u4f55 \u751f\u6210 . sim \u6587\u4ef6 \uff0c \u89e3\u91ca Carla \u548c CarSim \u4e4b\u95f4 \u7684 \u8f66\u8f86 \u5c3a\u5bf8 \u5982\u4f55 \u5173\u8054 \uff0c \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 CarSim \u96c6\u6210 \u5728 Carla \u4e0a \u8fd0\u884c \u4eff\u771f \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u8bbe\u7f6e CarSim \u751f\u6210 . sim \u6587\u4ef6 \u5728 Windows \u4e0a \u5728 Ubuntu \u4e0a \u8f66\u8f86 \u5c3a\u5bf8 \u8fd0\u884c \u4eff\u771f \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 CarSim \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u624d\u80fd \u542f\u52a8 \u5e76 \u8fd0\u884c \u8f6f\u4ef6 \u8be5\u8f6f\u4ef6 \u3002 \u5982\u679c \u60a8 \u76ee\u524d \u6ca1\u6709 CarSim \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u8054\u7cfb \u56e2\u961f \u4ee5 \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u3002 \u8981 \u5141\u8bb8 \u4e0e \u865a\u5e7b \u5f15\u64ce \u901a\u4fe1 \uff0c \u60a8 \u9700\u8981 \u5b89\u88c5 \u9002\u7528 \u4e8e \u865a\u5e7b \u5f15\u64ce 4.24 \u7684 VehicleSim Dynamics \u63d2\u4ef6 \uff08 \u7248\u672c 2020.0 \uff09 \u3002 \u6709\u5173 \u67e5\u627e \u63d2\u4ef6 \u7279\u5b9a \u7248\u672c \u7684 \u4fe1\u606f \uff0c \u8bf7 \u68c0\u67e5 \u6b64 \u94fe\u63a5 \u3002 \u63d2\u4ef6 \u7684 \u5b89\u88c5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff1a \u5bf9\u4e8e Windows : \u5728 \u8fd9\u91cc \u83b7\u53d6 \u63d2\u4ef6 \u3002 \u5bf9\u4e8e Ubuntu : \u5728 \u8fd9\u91cc \u4e0b\u8f7d \u63d2\u4ef6 \u3002 \u5c06 \u6587\u4ef6 CarSim . Build . cs \u66ff\u6362 \u4e3a \u6b64\u5904 \u627e\u5230 \u7684 \u6587\u4ef6 \uff0c \u4ee5\u4fbf \u4e3a Ubuntu \u4f7f\u7528 \u6b63\u786e \u7684 \u6c42\u89e3 \u5668 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \u7248\u672c \uff0c \u5219 \u53ef\u4ee5 \u8df3\u8fc7 \u6b64 \u6b65\u9aa4 \u3002 \u6253\u5305 \u7248\u672c \u5df2 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \u7f16\u8bd1 \uff0c \u4f46 \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u5219 \u9700\u8981 \u4f7f\u7528 -- carsim \u6807\u5fd7 \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u8bf7 \u5728 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u4f7f\u7528 -- carsim \u6807\u5fd7 \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a make launch ARGS = \" -- carsim \" \u8bbe\u7f6e CarSim \u4ee5\u4e0b \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u751f\u6210 \u8fd0\u884c \u4eff\u771f \u6240 \u9700 \u7684 . sim \u6587\u4ef6 \u3002 \u8fd8\u6709 \u5173\u4e8e Carla \u548c CarSim \u4e4b\u95f4 \u8f66\u8f86 \u5c3a\u5bf8 \u5173\u7cfb \u7684 \u8be6\u7ec6 \u91cd\u8981 \u4fe1\u606f \u3002 \u751f\u6210 . sim \u6587\u4ef6 \u8be5 . sim \u6587\u4ef6 \u63cf\u8ff0 \u4e86 \u8981 \u5728 Carla \u548c CarSim \u4e2d \u8fd0\u884c \u7684 \u4eff\u771f \u3002 \u63d2\u4ef6 \u9700\u8981 \u6b64 \u6587\u4ef6 \u624d\u80fd \u8fd0\u884c \u4eff\u771f \u3002 \u76ee\u524d \u65e0\u6cd5 \u5728 Ubuntu \u4e0a \u751f\u6210 \u6b64 \u6587\u4ef6 \uff0c \u4f46\u662f \u6211\u4eec \u5c06 \u5728 \u4e0b\u9762 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u4e4b\u524d \u751f\u6210 \u7684 \u6587\u4ef6 \u5728 Ubuntu \u4e0a \u8fd0\u884c \u4eff\u771f \u3002 \u5728 Windows \u4e0a \u5728 CarSim \u4e0a \u914d\u7f6e \u5b8c \u6240\u6709 \u53c2\u6570 \u540e \uff0c \u4f7f\u7528 GUI \u751f\u6210 . sim \u6587\u4ef6 \uff0c \u5982\u4e0b \u6240\u793a \uff1a \u751f\u6210 \u7684 . sim \u6587\u4ef6 \u5e94 \u5982\u4e0b \u6240\u793a \uff1a SIMFILE SET _ MACRO $ ( ROOT _ FILE _ NAME ) $ Run _ dd7a828d - 4b14 - 4c77 - 9d09 - 1974401d6b25 SET _ MACRO $ ( OUTPUT _ PATH ) $ D : \\ carsim \\ Data \\ Results SET _ MACRO $ ( WORK _ DIR ) $ D : \\ carsim \\ Data \\ SET _ MACRO $ ( OUTPUT _ FILE _ PREFIX ) $ $ ( WORK _ DIR ) $ Results \\ Run _ dd7a828d - 4b14 - 4c77 - 9d09 - 1974401d6b25 \\ LastRun FILEBASE $ ( OUTPUT _ FILE _ PREFIX ) $ INPUT $ ( WORK _ DIR ) $ Results \\ $ ( ROOT _ FILE _ NAME ) $ \\ Run _ all . par INPUTARCHIVE $ ( OUTPUT _ FILE _ PREFIX ) $ _ all . par ECHO $ ( OUTPUT _ FILE _ PREFIX ) $ _ echo . par FINAL $ ( OUTPUT _ FILE _ PREFIX ) $ _ end . par LOGFILE $ ( OUTPUT _ FILE _ PREFIX ) $ _ log . txt ERDFILE $ ( OUTPUT _ FILE _ PREFIX ) $ . vs PROGDIR D : \\ carsim \\ DATADIR D : \\ carsim \\ Data \\ GUI _ REFRESH _ V CarSim _ RefreshEvent _ 7760 RESOURCEDIR D : \\ carsim \\ \\ Resources \\ PRODUCT _ ID CarSim PRODUCT _ VER 2020.0 ANIFILE D : \\ carsim \\ Data \\ runs \\ animator . par VEHICLE _ CODE i _ i EXT _ MODEL _ STEP 0.00050000 PORTS _ IMP 0 PORTS _ EXP 0 DLLFILE D : \\ carsim \\ Programs \\ solvers \\ carsim _ 64 . dll END \u5728 Ubuntu \u4e0a \u65e0\u6cd5 \u5728 Ubuntu \u4e0a \u901a\u8fc7 GUI \u521b\u5efa . sim \u6587\u4ef6 \u3002 \u4e3a\u4e86 \u7ee7\u7eed \uff0c \u60a8 \u9700\u8981 \u6267\u884c \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u5728 Windows \u4e2d \u751f\u6210 . sim \u6587\u4ef6 \u6216 \u4f7f\u7528 \u4e0b\u9762 \u7684 \u6587\u4ef6 \u6a21\u677f \u3002 \u4fee\u6539 \u8be5 . sim \u6587\u4ef6 \uff0c \u4f7f \u53d8\u91cf INPUT , INPUTARCHIVE , LOGFILE \u7b49 \u6307\u5411 Ubuntu \u7cfb\u7edf \u4e2d \u7684 \u76f8\u5e94 \u6587\u4ef6 \u3002 \u66ff\u6362 DLLFILE \u884c\u4ee5 \u6307\u5411 CarSim \u89e3 \u7b97\u5668 \uff0c \u5728 \u9ed8\u8ba4 \u5b89\u88c5 \u4e2d \uff0c \u8be5\u89e3 \u7b97\u5668 \u5c06 \u4e3a SOFILE / opt / carsim _ 2020.0 / lib64 / libcarsim . so.2020 . 0 . \u751f\u6210 \u7684 \u6587\u4ef6 \u5e94 \u4e0e \u6b64 \u7c7b\u4f3c \uff1a SIMFILE FILEBASE / path / to / LastRun INPUT / path / to / Run _ all . par INPUTARCHIVE / path / to / LastRun _ all . par ECHO / path / to / LastRun _ echo . par FINAL / path / to / LastRun _ end . par LOGFILE / path / to / LastRun _ log . txt ERDFILE / path / to / LastRun . vs PROGDIR / opt / carsim _ 2020.0 / lib64 / DATADIR . PRODUCT _ ID CarSim PRODUCT _ VER 2020.0 VEHICLE _ CODE i _ i SOFILE / opt / carsim _ 2020.0 / lib64 / libcarsim . so.2020 . 0 END \u8f66\u8f86 \u5c3a\u5bf8 \u5c3d\u7ba1 CarSim \u5141\u8bb8 \u60a8 \u6307\u5b9a \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u5c3a\u5bf8 \uff0c \u4f46 \u76ee\u524d CarSim \u8f66\u8f86 \u548c Carla \u8f66\u8f86 \u4e4b\u95f4 \u6ca1\u6709 \u5173\u8054 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u4e24\u4e2a \u9879\u76ee \u4e2d \u7684 \u8f66\u8f86 \u5c06 \u5177\u6709 \u4e0d\u540c \u7684 \u5c3a\u5bf8 \u3002 Carla \u8f66\u8f86 \u7684 \u4f5c\u7528 \u53ea\u662f \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u5145\u5f53 \u5360\u4f4d \u7b26 \u3002 \u7b14\u8bb0 Carla \u548c CarSim \u4e2d \u7684 \u8f66\u8f86 \u5c3a\u5bf8 \u4e4b\u95f4 \u6ca1\u6709 \u76f8\u5173 \u76f8\u5173\u6027 \u3002 Carla \u8f66\u8f86 \u53ea\u662f \u4e00\u4e2a \u4eff\u771f \u5360\u4f4d \u7b26 \u3002 \u8fd0\u884c \u4eff\u771f \u8fd0\u884c \u4eff\u771f \u65f6\u6240 \u9700\u8981 \u505a \u7684 \u5c31\u662f \u5728 \u751f\u6210 \u8f66\u8f86 \u65f6 \u542f\u7528 CarSim \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 . sim \u6587\u4ef6 \u8def\u5f84 \u4f20\u9012 \u7ed9 Python API \u7684 \u65b9\u6cd5 \u6765 \u5b8c\u6210 \uff1a vehicle . enable _ carsim ( < path _ to _ ue4simfile . sim > ) \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u8f66\u8f86 \u7684 \u6240\u6709 \u8f93\u5165 \u63a7\u4ef6 \u90fd \u5c06 \u8f6c\u53d1 \u5230 CarSim \u3002 CarSim \u5c06 \u66f4\u65b0 \u7269\u7406 \u5e76 \u5c06 \u8f66\u8f86 \u72b6\u6001 \uff08 \u53d8\u6362 \uff09 \u53d1\u9001 \u56de Carla \u8f66\u8f86 \u3002 \u4eff\u771f \u5b8c\u6210 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u50cf \u5f80\u5e38 \u4e00\u6837 \u5206\u6790 CarSim \u4e2d \u7684 \u6240\u6709 \u6570\u636e \u3002","title":"CarSim \u96c6\u6210"},{"location":"tuto_G_carsim_integration/#carsim","text":"Carla \u4e0e CarSim \u7684 \u96c6\u6210 \u5141\u8bb8 \u5c06 Carla \u4e2d \u7684 \u8f66\u8f86 \u63a7\u5236 \u8f6c\u53d1 \u5230 CarSim \u3002 CarSim \u5c06 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u6240\u6709 \u5fc5\u9700 \u7684 \u7269\u7406 \u8ba1\u7b97 \uff0c \u5e76 \u5c06 \u65b0 \u72b6\u6001 \u8fd4\u56de \u7ed9 Carla \u3002 \u672c\u9875 \u5411 \u60a8 \u5c55\u793a \u5982\u4f55 \u751f\u6210 . sim \u6587\u4ef6 \uff0c \u89e3\u91ca Carla \u548c CarSim \u4e4b\u95f4 \u7684 \u8f66\u8f86 \u5c3a\u5bf8 \u5982\u4f55 \u5173\u8054 \uff0c \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 CarSim \u96c6\u6210 \u5728 Carla \u4e0a \u8fd0\u884c \u4eff\u771f \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u8bbe\u7f6e CarSim \u751f\u6210 . sim \u6587\u4ef6 \u5728 Windows \u4e0a \u5728 Ubuntu \u4e0a \u8f66\u8f86 \u5c3a\u5bf8 \u8fd0\u884c \u4eff\u771f","title":"CarSim \u96c6\u6210"},{"location":"tuto_G_carsim_integration/#_1","text":"\u60a8 \u9700\u8981 CarSim \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u624d\u80fd \u542f\u52a8 \u5e76 \u8fd0\u884c \u8f6f\u4ef6 \u8be5\u8f6f\u4ef6 \u3002 \u5982\u679c \u60a8 \u76ee\u524d \u6ca1\u6709 CarSim \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u8054\u7cfb \u56e2\u961f \u4ee5 \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u3002 \u8981 \u5141\u8bb8 \u4e0e \u865a\u5e7b \u5f15\u64ce \u901a\u4fe1 \uff0c \u60a8 \u9700\u8981 \u5b89\u88c5 \u9002\u7528 \u4e8e \u865a\u5e7b \u5f15\u64ce 4.24 \u7684 VehicleSim Dynamics \u63d2\u4ef6 \uff08 \u7248\u672c 2020.0 \uff09 \u3002 \u6709\u5173 \u67e5\u627e \u63d2\u4ef6 \u7279\u5b9a \u7248\u672c \u7684 \u4fe1\u606f \uff0c \u8bf7 \u68c0\u67e5 \u6b64 \u94fe\u63a5 \u3002 \u63d2\u4ef6 \u7684 \u5b89\u88c5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff1a \u5bf9\u4e8e Windows : \u5728 \u8fd9\u91cc \u83b7\u53d6 \u63d2\u4ef6 \u3002 \u5bf9\u4e8e Ubuntu : \u5728 \u8fd9\u91cc \u4e0b\u8f7d \u63d2\u4ef6 \u3002 \u5c06 \u6587\u4ef6 CarSim . Build . cs \u66ff\u6362 \u4e3a \u6b64\u5904 \u627e\u5230 \u7684 \u6587\u4ef6 \uff0c \u4ee5\u4fbf \u4e3a Ubuntu \u4f7f\u7528 \u6b63\u786e \u7684 \u6c42\u89e3 \u5668 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \u7248\u672c \uff0c \u5219 \u53ef\u4ee5 \u8df3\u8fc7 \u6b64 \u6b65\u9aa4 \u3002 \u6253\u5305 \u7248\u672c \u5df2 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \u7f16\u8bd1 \uff0c \u4f46 \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u5219 \u9700\u8981 \u4f7f\u7528 -- carsim \u6807\u5fd7 \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u8bf7 \u5728 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u4f7f\u7528 -- carsim \u6807\u5fd7 \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a make launch ARGS = \" -- carsim \"","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_G_carsim_integration/#carsim_1","text":"\u4ee5\u4e0b \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u751f\u6210 \u8fd0\u884c \u4eff\u771f \u6240 \u9700 \u7684 . sim \u6587\u4ef6 \u3002 \u8fd8\u6709 \u5173\u4e8e Carla \u548c CarSim \u4e4b\u95f4 \u8f66\u8f86 \u5c3a\u5bf8 \u5173\u7cfb \u7684 \u8be6\u7ec6 \u91cd\u8981 \u4fe1\u606f \u3002","title":"\u8bbe\u7f6e CarSim"},{"location":"tuto_G_carsim_integration/#sim","text":"\u8be5 . sim \u6587\u4ef6 \u63cf\u8ff0 \u4e86 \u8981 \u5728 Carla \u548c CarSim \u4e2d \u8fd0\u884c \u7684 \u4eff\u771f \u3002 \u63d2\u4ef6 \u9700\u8981 \u6b64 \u6587\u4ef6 \u624d\u80fd \u8fd0\u884c \u4eff\u771f \u3002 \u76ee\u524d \u65e0\u6cd5 \u5728 Ubuntu \u4e0a \u751f\u6210 \u6b64 \u6587\u4ef6 \uff0c \u4f46\u662f \u6211\u4eec \u5c06 \u5728 \u4e0b\u9762 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u4e4b\u524d \u751f\u6210 \u7684 \u6587\u4ef6 \u5728 Ubuntu \u4e0a \u8fd0\u884c \u4eff\u771f \u3002","title":"\u751f\u6210 . sim \u6587\u4ef6"},{"location":"tuto_G_carsim_integration/#windows","text":"\u5728 CarSim \u4e0a \u914d\u7f6e \u5b8c \u6240\u6709 \u53c2\u6570 \u540e \uff0c \u4f7f\u7528 GUI \u751f\u6210 . sim \u6587\u4ef6 \uff0c \u5982\u4e0b \u6240\u793a \uff1a \u751f\u6210 \u7684 . sim \u6587\u4ef6 \u5e94 \u5982\u4e0b \u6240\u793a \uff1a SIMFILE SET _ MACRO $ ( ROOT _ FILE _ NAME ) $ Run _ dd7a828d - 4b14 - 4c77 - 9d09 - 1974401d6b25 SET _ MACRO $ ( OUTPUT _ PATH ) $ D : \\ carsim \\ Data \\ Results SET _ MACRO $ ( WORK _ DIR ) $ D : \\ carsim \\ Data \\ SET _ MACRO $ ( OUTPUT _ FILE _ PREFIX ) $ $ ( WORK _ DIR ) $ Results \\ Run _ dd7a828d - 4b14 - 4c77 - 9d09 - 1974401d6b25 \\ LastRun FILEBASE $ ( OUTPUT _ FILE _ PREFIX ) $ INPUT $ ( WORK _ DIR ) $ Results \\ $ ( ROOT _ FILE _ NAME ) $ \\ Run _ all . par INPUTARCHIVE $ ( OUTPUT _ FILE _ PREFIX ) $ _ all . par ECHO $ ( OUTPUT _ FILE _ PREFIX ) $ _ echo . par FINAL $ ( OUTPUT _ FILE _ PREFIX ) $ _ end . par LOGFILE $ ( OUTPUT _ FILE _ PREFIX ) $ _ log . txt ERDFILE $ ( OUTPUT _ FILE _ PREFIX ) $ . vs PROGDIR D : \\ carsim \\ DATADIR D : \\ carsim \\ Data \\ GUI _ REFRESH _ V CarSim _ RefreshEvent _ 7760 RESOURCEDIR D : \\ carsim \\ \\ Resources \\ PRODUCT _ ID CarSim PRODUCT _ VER 2020.0 ANIFILE D : \\ carsim \\ Data \\ runs \\ animator . par VEHICLE _ CODE i _ i EXT _ MODEL _ STEP 0.00050000 PORTS _ IMP 0 PORTS _ EXP 0 DLLFILE D : \\ carsim \\ Programs \\ solvers \\ carsim _ 64 . dll END","title":"\u5728 Windows \u4e0a"},{"location":"tuto_G_carsim_integration/#ubuntu","text":"\u65e0\u6cd5 \u5728 Ubuntu \u4e0a \u901a\u8fc7 GUI \u521b\u5efa . sim \u6587\u4ef6 \u3002 \u4e3a\u4e86 \u7ee7\u7eed \uff0c \u60a8 \u9700\u8981 \u6267\u884c \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u5728 Windows \u4e2d \u751f\u6210 . sim \u6587\u4ef6 \u6216 \u4f7f\u7528 \u4e0b\u9762 \u7684 \u6587\u4ef6 \u6a21\u677f \u3002 \u4fee\u6539 \u8be5 . sim \u6587\u4ef6 \uff0c \u4f7f \u53d8\u91cf INPUT , INPUTARCHIVE , LOGFILE \u7b49 \u6307\u5411 Ubuntu \u7cfb\u7edf \u4e2d \u7684 \u76f8\u5e94 \u6587\u4ef6 \u3002 \u66ff\u6362 DLLFILE \u884c\u4ee5 \u6307\u5411 CarSim \u89e3 \u7b97\u5668 \uff0c \u5728 \u9ed8\u8ba4 \u5b89\u88c5 \u4e2d \uff0c \u8be5\u89e3 \u7b97\u5668 \u5c06 \u4e3a SOFILE / opt / carsim _ 2020.0 / lib64 / libcarsim . so.2020 . 0 . \u751f\u6210 \u7684 \u6587\u4ef6 \u5e94 \u4e0e \u6b64 \u7c7b\u4f3c \uff1a SIMFILE FILEBASE / path / to / LastRun INPUT / path / to / Run _ all . par INPUTARCHIVE / path / to / LastRun _ all . par ECHO / path / to / LastRun _ echo . par FINAL / path / to / LastRun _ end . par LOGFILE / path / to / LastRun _ log . txt ERDFILE / path / to / LastRun . vs PROGDIR / opt / carsim _ 2020.0 / lib64 / DATADIR . PRODUCT _ ID CarSim PRODUCT _ VER 2020.0 VEHICLE _ CODE i _ i SOFILE / opt / carsim _ 2020.0 / lib64 / libcarsim . so.2020 . 0 END","title":"\u5728 Ubuntu \u4e0a"},{"location":"tuto_G_carsim_integration/#_2","text":"\u5c3d\u7ba1 CarSim \u5141\u8bb8 \u60a8 \u6307\u5b9a \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u5c3a\u5bf8 \uff0c \u4f46 \u76ee\u524d CarSim \u8f66\u8f86 \u548c Carla \u8f66\u8f86 \u4e4b\u95f4 \u6ca1\u6709 \u5173\u8054 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u4e24\u4e2a \u9879\u76ee \u4e2d \u7684 \u8f66\u8f86 \u5c06 \u5177\u6709 \u4e0d\u540c \u7684 \u5c3a\u5bf8 \u3002 Carla \u8f66\u8f86 \u7684 \u4f5c\u7528 \u53ea\u662f \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u5145\u5f53 \u5360\u4f4d \u7b26 \u3002 \u7b14\u8bb0 Carla \u548c CarSim \u4e2d \u7684 \u8f66\u8f86 \u5c3a\u5bf8 \u4e4b\u95f4 \u6ca1\u6709 \u76f8\u5173 \u76f8\u5173\u6027 \u3002 Carla \u8f66\u8f86 \u53ea\u662f \u4e00\u4e2a \u4eff\u771f \u5360\u4f4d \u7b26 \u3002","title":"\u8f66\u8f86 \u5c3a\u5bf8"},{"location":"tuto_G_carsim_integration/#_3","text":"\u8fd0\u884c \u4eff\u771f \u65f6\u6240 \u9700\u8981 \u505a \u7684 \u5c31\u662f \u5728 \u751f\u6210 \u8f66\u8f86 \u65f6 \u542f\u7528 CarSim \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 . sim \u6587\u4ef6 \u8def\u5f84 \u4f20\u9012 \u7ed9 Python API \u7684 \u65b9\u6cd5 \u6765 \u5b8c\u6210 \uff1a vehicle . enable _ carsim ( < path _ to _ ue4simfile . sim > ) \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u8f66\u8f86 \u7684 \u6240\u6709 \u8f93\u5165 \u63a7\u4ef6 \u90fd \u5c06 \u8f6c\u53d1 \u5230 CarSim \u3002 CarSim \u5c06 \u66f4\u65b0 \u7269\u7406 \u5e76 \u5c06 \u8f66\u8f86 \u72b6\u6001 \uff08 \u53d8\u6362 \uff09 \u53d1\u9001 \u56de Carla \u8f66\u8f86 \u3002 \u4eff\u771f \u5b8c\u6210 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u50cf \u5f80\u5e38 \u4e00\u6837 \u5206\u6790 CarSim \u4e2d \u7684 \u6240\u6709 \u6570\u636e \u3002","title":"\u8fd0\u884c \u4eff\u771f"},{"location":"tuto_G_chrono/","text":"Chrono \u96c6\u6210 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 Chrono \u662f \u4ec0\u4e48 \u3001 \u5982\u4f55 \u5728 Carla \u4e2d \u4f7f\u7528 \u5b83 \u4ee5\u53ca \u96c6\u6210 \u4e2d \u6d89\u53ca \u7684 \u9650\u5236 \u3002 Chrono \u9879\u76ee \u5728 Carla \u4e0a \u4f7f\u7528 Chrono \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u542f\u7528 Chrono \u7269\u7406 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 Chrono \u9879\u76ee Project Chrono \u662f \u4e00\u6b3e \u5f00\u6e90 \u591a \u7269\u7406 \u573a \u4eff\u771f \u5f15\u64ce \uff0c \u5b83 \u4f7f\u7528 \u57fa\u4e8e \u6a21\u677f \u7684 \u65b9\u6cd5 \u63d0\u4f9b \u9ad8\u5ea6 \u771f\u5b9e \u7684 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002 Carla \u4e2d \u7684 \u96c6\u6210 \u5141\u8bb8 \u7528\u6237 \u5728 \u5bfc\u822a \u5730\u56fe \u65f6 \u5229\u7528 Chrono \u6a21\u677f \u6765 \u4eff\u771f \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002 \u5728 Carla \u4e0a \u4f7f\u7528 Chrono \u8981 \u4f7f\u7528 Chrono \u96c6\u6210 \uff0c \u60a8 \u5fc5\u987b \u9996\u5148 \u5728 \u542f\u52a8 \u65f6 \u4f7f\u7528 \u6807\u7b7e \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u7136\u540e \u4f7f\u7528 PythonAPI \u5728 \u751f\u6210 \u7684 \u8f66\u8f86 \u4e0a \u542f\u7528 \u5b83 \u3002 \u8bf7 \u9605\u8bfb \u4ee5 \u83b7\u5f97 \u66f4 \u591a \u8be6\u60c5 \u3002 \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ec5\u5f53 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 Chrono \u6807\u7b7e \u7f16\u8bd1 \u65f6 \uff0c Chrono \u624d \u4f1a \u5de5\u4f5c \u3002 \u5728 \u4ece Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7248\u672c \u4e2d \uff0c \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a make launch ARGS = \" -- chrono \" \u6ce8\u610f \u4f7f\u7528 \u4e0a\u8ff0 \u547d\u4ee4 \u7f16\u8bd1 \u540e \uff0c \u518d \u4f7f\u7528 make launch \u547d\u4ee4 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5219 \u7f16\u8bd1 \u62a5\u9519 \uff1a Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ include \\ Eigen \\ src / Core / util / ForwardDeclarations . h ( 58 ) : error C4067 : \u9884 \u5904\u7406 \u7406\u5668 \u5904\u7406\u5668 \u6307\u4ee4 \u540e \u6709 \u610f\u5916 \u6807\u8bb0 - \u5e94 \u8f93\u5165 \u6362\u884c \u6362\u884c\u7b26 \uff0c \u539f\u56e0 \u4e0d\u660e \u3002 \u542f\u7528 Chrono \u7269\u7406 Chrono \u7269\u7406 \u662f \u901a\u8fc7 Actor \u7c7b \u63d0\u4f9b \u7684 enable _ chrono _ physics \u65b9\u6cd5 \u542f\u7528 \u7684 \u3002 \u9664\u4e86 \u5b50 \u6b65\u9aa4 \u548c\u5b50 \u6b65\u9aa4 \u589e\u91cf \u65f6\u95f4 \u7684 \u503c \u4e4b\u5916 \uff0c \u5b83 \u8fd8 \u9700\u8981 \u4e09\u4e2a \u6a21\u677f \u6587\u4ef6 \u548c \u4e00\u4e2a \u57fa\u672c \u8def\u5f84 \u6765 \u5b9a\u4f4d \u8fd9\u4e9b \u6587\u4ef6 \uff1a base _ path : \u5305\u542b \u6a21\u677f \u6587\u4ef6 \u7684 \u76ee\u5f55 \u8def\u5f84 \u3002 \u8fd9 \u5bf9\u4e8e \u786e\u4fdd \u4ece \u6a21\u677f \u6587\u4ef6 \u5f15\u7528 \u7684 \u8f85\u52a9 \u6587\u4ef6 \u5177\u6709 \u7528\u4e8e \u641c\u7d22 \u7684 \u516c\u5171 \u57fa\u672c \u8def\u5f84 \u662f \u5fc5\u8981 \u7684 \u3002 vehicle _ json : \u76f8\u5bf9 \u4e8e base _ path \u7684 \u8f66\u8f86 \u6a21\u677f \u6587\u4ef6 . tire _ json : \u76f8\u5bf9 \u4e8e base _ path \u7684 \u8f6e\u80ce \u6a21\u677f \u6587\u4ef6 \u3002 powertrain _ json : \u76f8\u5bf9 \u4e8e base _ path \u52a8\u529b \u603b\u6210 \u6a21\u677f \u6587\u4ef6 \u3002 \u91cd\u8981 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \u60a8 \u7684 \u8def\u5f84 \u3002 \u4e0d \u6b63\u786e \u6216 \u7f3a\u5931 \u7684 \u8def\u5f84 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u865a\u5e7b \u5f15\u64ce \u5d29\u6e83 \u3002 Build / chrono - install / share / chrono / data / vehicle \u4e2d \u63d0\u4f9b \u4e86 \u9002\u7528 \u4e8e \u4e0d\u540c \u8f66\u8f86 \u7684 \u5404\u79cd \u793a\u4f8b \u6a21\u677f \u6587\u4ef6 \u3002 \u9605\u8bfb Chrono \u5de5\u7a0b \u7684 \u6587\u6863 \uff0c \u4e86\u89e3 \u6709\u5173 \u5176 \u8f66\u8f86 \u793a\u4f8b \u4ee5\u53ca \u5982\u4f55 \u521b\u5efa \u6a21\u677f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff0c \u4e86\u89e3 \u5982\u4f55 \u542f\u7528 Chrono \u7269\u7406 \uff1a # \u751f\u6210 \u8f66\u8f86 vehicle = world . spawn _ actor ( bp , spawn _ point ) # \u8bbe\u7f6e \u57fa\u7840 \u8def\u5f84 base _ path = \" D : / work / workspace / carla / Build / chrono - install / data / vehicle / \" # \u8bbe\u7f6e \u6a21\u677f \u6587\u4ef6 vehicle _ json = \" sedan / vehicle / Sedan _ Vehicle . json \" powertrain _ json = \" sedan / powertrain / Sedan _ SimpleMapPowertrain . json \" tire _ json = \" sedan / tire / Sedan _ TMeasyTire . json \" # \u542f\u7528 Chrono \u7269\u7406 \u7279\u6027 vehicle . enable _ chrono _ physics ( 5000 , 0.002 , vehicle _ json , powertrain _ json , tire _ json , base _ path ) \u60a8 \u53ef\u4ee5 \u4f7f\u7528 PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c manual _ control _ chrono . py \u5c1d\u8bd5 Chrono \u7269\u7406 \u96c6\u6210 \u3002 \u8fd0\u884c \u811a\u672c \u540e \uff0c \u6309 Ctrl + o \u542f\u7528 Chrono \u3002 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u6b64 \u96c6\u6210 \u4e0d \u652f\u6301 \u78b0\u649e \u3002 \u5f53 \u53d1\u751f \u78b0\u649e \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u6062\u590d \u4e3a Carla \u9ed8\u8ba4 \u7269\u7406 \u72b6\u6001 \u3002","title":"Chrono \u96c6\u6210"},{"location":"tuto_G_chrono/#chrono","text":"\u672c \u6307\u5357 \u6982\u8ff0 \u4e86 Chrono \u662f \u4ec0\u4e48 \u3001 \u5982\u4f55 \u5728 Carla \u4e2d \u4f7f\u7528 \u5b83 \u4ee5\u53ca \u96c6\u6210 \u4e2d \u6d89\u53ca \u7684 \u9650\u5236 \u3002 Chrono \u9879\u76ee \u5728 Carla \u4e0a \u4f7f\u7528 Chrono \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u542f\u7528 Chrono \u7269\u7406 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027","title":"Chrono \u96c6\u6210"},{"location":"tuto_G_chrono/#chrono_1","text":"Project Chrono \u662f \u4e00\u6b3e \u5f00\u6e90 \u591a \u7269\u7406 \u573a \u4eff\u771f \u5f15\u64ce \uff0c \u5b83 \u4f7f\u7528 \u57fa\u4e8e \u6a21\u677f \u7684 \u65b9\u6cd5 \u63d0\u4f9b \u9ad8\u5ea6 \u771f\u5b9e \u7684 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002 Carla \u4e2d \u7684 \u96c6\u6210 \u5141\u8bb8 \u7528\u6237 \u5728 \u5bfc\u822a \u5730\u56fe \u65f6 \u5229\u7528 Chrono \u6a21\u677f \u6765 \u4eff\u771f \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002","title":"Chrono \u9879\u76ee"},{"location":"tuto_G_chrono/#carla-chrono","text":"\u8981 \u4f7f\u7528 Chrono \u96c6\u6210 \uff0c \u60a8 \u5fc5\u987b \u9996\u5148 \u5728 \u542f\u52a8 \u65f6 \u4f7f\u7528 \u6807\u7b7e \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u7136\u540e \u4f7f\u7528 PythonAPI \u5728 \u751f\u6210 \u7684 \u8f66\u8f86 \u4e0a \u542f\u7528 \u5b83 \u3002 \u8bf7 \u9605\u8bfb \u4ee5 \u83b7\u5f97 \u66f4 \u591a \u8be6\u60c5 \u3002","title":"\u5728 Carla \u4e0a \u4f7f\u7528 Chrono"},{"location":"tuto_G_chrono/#_1","text":"\u4ec5\u5f53 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 Chrono \u6807\u7b7e \u7f16\u8bd1 \u65f6 \uff0c Chrono \u624d \u4f1a \u5de5\u4f5c \u3002 \u5728 \u4ece Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7248\u672c \u4e2d \uff0c \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a make launch ARGS = \" -- chrono \" \u6ce8\u610f \u4f7f\u7528 \u4e0a\u8ff0 \u547d\u4ee4 \u7f16\u8bd1 \u540e \uff0c \u518d \u4f7f\u7528 make launch \u547d\u4ee4 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5219 \u7f16\u8bd1 \u62a5\u9519 \uff1a Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ include \\ Eigen \\ src / Core / util / ForwardDeclarations . h ( 58 ) : error C4067 : \u9884 \u5904\u7406 \u7406\u5668 \u5904\u7406\u5668 \u6307\u4ee4 \u540e \u6709 \u610f\u5916 \u6807\u8bb0 - \u5e94 \u8f93\u5165 \u6362\u884c \u6362\u884c\u7b26 \uff0c \u539f\u56e0 \u4e0d\u660e \u3002","title":"\u914d\u7f6e \u670d\u52a1\u5668"},{"location":"tuto_G_chrono/#chrono_2","text":"Chrono \u7269\u7406 \u662f \u901a\u8fc7 Actor \u7c7b \u63d0\u4f9b \u7684 enable _ chrono _ physics \u65b9\u6cd5 \u542f\u7528 \u7684 \u3002 \u9664\u4e86 \u5b50 \u6b65\u9aa4 \u548c\u5b50 \u6b65\u9aa4 \u589e\u91cf \u65f6\u95f4 \u7684 \u503c \u4e4b\u5916 \uff0c \u5b83 \u8fd8 \u9700\u8981 \u4e09\u4e2a \u6a21\u677f \u6587\u4ef6 \u548c \u4e00\u4e2a \u57fa\u672c \u8def\u5f84 \u6765 \u5b9a\u4f4d \u8fd9\u4e9b \u6587\u4ef6 \uff1a base _ path : \u5305\u542b \u6a21\u677f \u6587\u4ef6 \u7684 \u76ee\u5f55 \u8def\u5f84 \u3002 \u8fd9 \u5bf9\u4e8e \u786e\u4fdd \u4ece \u6a21\u677f \u6587\u4ef6 \u5f15\u7528 \u7684 \u8f85\u52a9 \u6587\u4ef6 \u5177\u6709 \u7528\u4e8e \u641c\u7d22 \u7684 \u516c\u5171 \u57fa\u672c \u8def\u5f84 \u662f \u5fc5\u8981 \u7684 \u3002 vehicle _ json : \u76f8\u5bf9 \u4e8e base _ path \u7684 \u8f66\u8f86 \u6a21\u677f \u6587\u4ef6 . tire _ json : \u76f8\u5bf9 \u4e8e base _ path \u7684 \u8f6e\u80ce \u6a21\u677f \u6587\u4ef6 \u3002 powertrain _ json : \u76f8\u5bf9 \u4e8e base _ path \u52a8\u529b \u603b\u6210 \u6a21\u677f \u6587\u4ef6 \u3002 \u91cd\u8981 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \u60a8 \u7684 \u8def\u5f84 \u3002 \u4e0d \u6b63\u786e \u6216 \u7f3a\u5931 \u7684 \u8def\u5f84 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u865a\u5e7b \u5f15\u64ce \u5d29\u6e83 \u3002 Build / chrono - install / share / chrono / data / vehicle \u4e2d \u63d0\u4f9b \u4e86 \u9002\u7528 \u4e8e \u4e0d\u540c \u8f66\u8f86 \u7684 \u5404\u79cd \u793a\u4f8b \u6a21\u677f \u6587\u4ef6 \u3002 \u9605\u8bfb Chrono \u5de5\u7a0b \u7684 \u6587\u6863 \uff0c \u4e86\u89e3 \u6709\u5173 \u5176 \u8f66\u8f86 \u793a\u4f8b \u4ee5\u53ca \u5982\u4f55 \u521b\u5efa \u6a21\u677f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff0c \u4e86\u89e3 \u5982\u4f55 \u542f\u7528 Chrono \u7269\u7406 \uff1a # \u751f\u6210 \u8f66\u8f86 vehicle = world . spawn _ actor ( bp , spawn _ point ) # \u8bbe\u7f6e \u57fa\u7840 \u8def\u5f84 base _ path = \" D : / work / workspace / carla / Build / chrono - install / data / vehicle / \" # \u8bbe\u7f6e \u6a21\u677f \u6587\u4ef6 vehicle _ json = \" sedan / vehicle / Sedan _ Vehicle . json \" powertrain _ json = \" sedan / powertrain / Sedan _ SimpleMapPowertrain . json \" tire _ json = \" sedan / tire / Sedan _ TMeasyTire . json \" # \u542f\u7528 Chrono \u7269\u7406 \u7279\u6027 vehicle . enable _ chrono _ physics ( 5000 , 0.002 , vehicle _ json , powertrain _ json , tire _ json , base _ path ) \u60a8 \u53ef\u4ee5 \u4f7f\u7528 PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c manual _ control _ chrono . py \u5c1d\u8bd5 Chrono \u7269\u7406 \u96c6\u6210 \u3002 \u8fd0\u884c \u811a\u672c \u540e \uff0c \u6309 Ctrl + o \u542f\u7528 Chrono \u3002","title":"\u542f\u7528 Chrono \u7269\u7406"},{"location":"tuto_G_chrono/#_2","text":"\u6b64 \u96c6\u6210 \u4e0d \u652f\u6301 \u78b0\u649e \u3002 \u5f53 \u53d1\u751f \u78b0\u649e \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u6062\u590d \u4e3a Carla \u9ed8\u8ba4 \u7269\u7406 \u72b6\u6001 \u3002","title":"\u5c40\u9650\u6027"},{"location":"tuto_G_control_vehicle_physics/","text":"\u63a7\u5236 \u548c \u76d1\u63a7 \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u53ef\u4ee5 \u8c03\u6574 \u8f66\u8f86 \u53ca\u5176 \u8f66\u8f6e \u7684 \u7269\u7406 \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u66f4\u6539 \u4ec5 \u5e94\u7528 \u4e8e \u8fd0\u884c \u65f6 \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u7ed3\u675f \u65f6\u5c06\u503c \u8bbe\u7f6e \u56de \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u901a\u8fc7 carla . VehiclePhysicsControl \u5bf9\u8c61 \u8fdb\u884c \u63a7\u5236 \uff0c \u8be5 \u5bf9\u8c61 \u8fd8 \u901a\u8fc7 carla . WheelPhysicsControl \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f66\u8f6e \u7269\u7406 \u7279\u6027 \u7684 \u63a7\u5236 \u3002 \u8f66\u8f86 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b \u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e \u8f66\u8f86 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b import carla import random def main ( ) : # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # \u83b7\u5f97 World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # \u4ece \u4e16\u754c \u83b7\u5f97 \u4e00\u8f86 \u968f\u673a \u8f66\u8f86 \uff08 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e00\u8f86 \uff09 vehicle = random . choice ( [ actor for actor in actors if ' vehicle ' in actor . type _ id ] ) # \u521b\u5efa \u8f66\u8f6e \u7269\u7406 \u63a7\u5236 front _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) front _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) rear _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) rear _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) wheels = [ front _ left _ wheel , front _ right _ wheel , rear _ left _ wheel , rear _ right _ wheel ] # \u6539\u53d8 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 physics _ control = vehicle . get _ physics _ control ( ) physics _ control . torque _ curve = [ carla . Vector2D ( x = 0 , y = 400 ) , carla . Vector2D ( x = 1300 , y = 600 ) ] physics _ control . max _ rpm = 10000 physics _ control . moi = 1.0 physics _ control . damping _ rate _ full _ throttle = 0.0 physics _ control . use _ gear _ autobox = True physics _ control . gear _ switch _ time = 0.5 physics _ control . clutch _ strength = 10 physics _ control . mass = 10000 physics _ control . drag _ coefficient = 0.25 physics _ control . steering _ curve = [ carla . Vector2D ( x = 0 , y = 1 ) , carla . Vector2D ( x = 100 , y = 1 ) , carla . Vector2D ( x = 300 , y = 1 ) ] physics _ control . use _ sweep _ wheel _ collision = True physics _ control . wheels = wheels # \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 vehicle . apply _ physics _ control ( physics _ control ) print ( physics _ control ) if __ name __ = = ' __ main __ ' : main ( ) \u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e \u901a\u8fc7 \u8c03\u7528 Actor . enable _ debug _ telemetry \u65b9\u6cd5 \u53ef\u4ee5 \u5b9e\u73b0 \u8f66\u8f86 \u9065\u6d4b \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8fd9 \u5c06 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a97\u53e3 \u4e0a \u63d0\u4f9b \u591a\u4e2a \u6307\u6807 \u7684 \u56fe\u5f62 \u89c6\u56fe \u4ee5\u53ca \u4eff\u771f \u7a97\u53e3 \u4e0a \u7684 \u8f66\u8f86 \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4f4d\u4e8e PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c \u4e2d \u7684 \u9065\u6d4b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 manual _ control . py \u3002 \u6309 T \u6fc0\u6d3b \u9065\u6d4b \u89c6\u56fe \u3002","title":"\u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b"},{"location":"tuto_G_control_vehicle_physics/#_1","text":"\u53ef\u4ee5 \u8c03\u6574 \u8f66\u8f86 \u53ca\u5176 \u8f66\u8f6e \u7684 \u7269\u7406 \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u66f4\u6539 \u4ec5 \u5e94\u7528 \u4e8e \u8fd0\u884c \u65f6 \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u7ed3\u675f \u65f6\u5c06\u503c \u8bbe\u7f6e \u56de \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u901a\u8fc7 carla . VehiclePhysicsControl \u5bf9\u8c61 \u8fdb\u884c \u63a7\u5236 \uff0c \u8be5 \u5bf9\u8c61 \u8fd8 \u901a\u8fc7 carla . WheelPhysicsControl \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f66\u8f6e \u7269\u7406 \u7279\u6027 \u7684 \u63a7\u5236 \u3002 \u8f66\u8f86 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b \u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e","title":"\u63a7\u5236 \u548c \u76d1\u63a7 \u8f66\u8f86 \u7269\u7406 \u7279\u6027"},{"location":"tuto_G_control_vehicle_physics/#_2","text":"import carla import random def main ( ) : # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # \u83b7\u5f97 World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # \u4ece \u4e16\u754c \u83b7\u5f97 \u4e00\u8f86 \u968f\u673a \u8f66\u8f86 \uff08 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e00\u8f86 \uff09 vehicle = random . choice ( [ actor for actor in actors if ' vehicle ' in actor . type _ id ] ) # \u521b\u5efa \u8f66\u8f6e \u7269\u7406 \u63a7\u5236 front _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) front _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) rear _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) rear _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) wheels = [ front _ left _ wheel , front _ right _ wheel , rear _ left _ wheel , rear _ right _ wheel ] # \u6539\u53d8 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 physics _ control = vehicle . get _ physics _ control ( ) physics _ control . torque _ curve = [ carla . Vector2D ( x = 0 , y = 400 ) , carla . Vector2D ( x = 1300 , y = 600 ) ] physics _ control . max _ rpm = 10000 physics _ control . moi = 1.0 physics _ control . damping _ rate _ full _ throttle = 0.0 physics _ control . use _ gear _ autobox = True physics _ control . gear _ switch _ time = 0.5 physics _ control . clutch _ strength = 10 physics _ control . mass = 10000 physics _ control . drag _ coefficient = 0.25 physics _ control . steering _ curve = [ carla . Vector2D ( x = 0 , y = 1 ) , carla . Vector2D ( x = 100 , y = 1 ) , carla . Vector2D ( x = 300 , y = 1 ) ] physics _ control . use _ sweep _ wheel _ collision = True physics _ control . wheels = wheels # \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 vehicle . apply _ physics _ control ( physics _ control ) print ( physics _ control ) if __ name __ = = ' __ main __ ' : main ( )","title":"\u8f66\u8f86 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b"},{"location":"tuto_G_control_vehicle_physics/#_3","text":"\u901a\u8fc7 \u8c03\u7528 Actor . enable _ debug _ telemetry \u65b9\u6cd5 \u53ef\u4ee5 \u5b9e\u73b0 \u8f66\u8f86 \u9065\u6d4b \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8fd9 \u5c06 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a97\u53e3 \u4e0a \u63d0\u4f9b \u591a\u4e2a \u6307\u6807 \u7684 \u56fe\u5f62 \u89c6\u56fe \u4ee5\u53ca \u4eff\u771f \u7a97\u53e3 \u4e0a \u7684 \u8f66\u8f86 \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4f4d\u4e8e PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c \u4e2d \u7684 \u9065\u6d4b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 manual _ control . py \u3002 \u6309 T \u6fc0\u6d3b \u9065\u6d4b \u89c6\u56fe \u3002","title":"\u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e"},{"location":"tuto_G_control_walker_skeletons/","text":"\u884c\u4eba \u9aa8\u9abc \u63a7\u5236 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u4ecb\u7ecd \u5982\u4f55 \u901a\u8fc7 Carla Python API \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u7684 \u9aa8\u9abc \u5e76 \u4e3a \u5176 \u8bbe\u7f6e \u52a8\u753b \u3002 \u6240\u6709 \u53ef\u7528 \u7c7b \u548c \u65b9\u6cd5 \u7684 \u53c2\u8003 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u884c\u4eba \u9aa8\u9abc \u7ed3\u6784 \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u884c\u4eba \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc Note \u672c \u6587\u6863 \u5047\u8bbe \u7528\u6237 \u719f\u6089 Python API \u3002 \u3002 \u7528\u6237 \u5728 \u9605\u8bfb \u672c \u6587\u6863 \u4e4b\u524d \u5e94 \u9605\u8bfb \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u6559\u7a0b \u3002 \u6838\u5fc3 \u6982\u5ff5 \u3002 \u884c\u4eba \u9aa8\u9abc \u7ed3\u6784 \u6240\u6709 \u884c\u4eba \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u9aa8\u9abc \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u548c \u9aa8\u9abc \u540d\u79f0 \u3002 \u4e0b\u9762 \u662f \u9aa8\u67b6 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u7684 \u56fe\u50cf \u3002 crl _ root \u2514 \u2500 \u2500 crl _ hips __ C \u251c \u2500 \u2500 crl _ spine __ C \u2502 \u2514 \u2500 \u2500 crl _ spine01 __ C \u2502 \u251c \u2500 \u2500 ctrl _ shoulder __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ arm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ hand __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handThumb __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handIndex __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handRing _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ L \u2502 \u251c \u2500 \u2500 crl _ neck __ C \u2502 \u2502 \u2514 \u2500 \u2500 crl _ Head __ C \u2502 \u2502 \u251c \u2500 \u2500 crl _ eye __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ eye __ R \u2502 \u2514 \u2500 \u2500 crl _ shoulder __ R \u2502 \u2514 \u2500 \u2500 crl _ arm __ R \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ R \u2502 \u2514 \u2500 \u2500 crl _ hand __ R \u2502 \u251c \u2500 \u2500 crl _ handThumb __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handIndex __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handRing _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ R \u251c \u2500 \u2500 crl _ thigh __ L \u2502 \u2514 \u2500 \u2500 crl _ leg __ L \u2502 \u2514 \u2500 \u2500 crl _ foot __ L \u2502 \u2514 \u2500 \u2500 crl _ toe __ L \u2502 \u2514 \u2500 \u2500 crl _ toeEnd __ L \u2514 \u2500 \u2500 crl _ thigh __ R \u2514 \u2500 \u2500 crl _ leg __ R \u2514 \u2500 \u2500 crl _ foot __ R \u2514 \u2500 \u2500 crl _ toe __ R \u2514 \u2500 \u2500 crl _ toeEnd __ R \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 Carla Python API \u66f4\u6539 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u9aa8\u9abc \u53d8\u6362 \u7684 \u8be6\u7ec6 \u5206\u6b65 \u793a\u4f8b \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5bfc\u5165 \u672c\u4f8b \u4e2d \u4f7f\u7528 \u7684 \u5fc5\u8981 \u5e93 import carla import random \u521d\u59cb \u521d\u59cb\u5316 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) \u751f\u6210 \u884c\u4eba \u5728 \u5730\u56fe \u7684 \u4e00\u4e2a \u751f\u6210 \u70b9 \u751f\u6210 \u4e00\u4e2a \u968f\u673a \u884c\u4eba \u3002 world = client . get _ world ( ) blueprint = random . choice ( self . world . get _ blueprint _ library ( ) . filter ( ' walker . * ' ) ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spawn _ point = random . choice ( spawn _ points ) if spawn _ points else carla . Transform ( ) world . try _ spawn _ actor ( blueprint , spawn _ point ) \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u53ef\u4ee5 \u901a\u8fc7 \u5c06 WalkerBoneControl \u7c7b \u7684 \u5b9e\u4f8b \u4f20\u9012 \u7ed9 \u884c\u4eba \u7684 apply _ control \u51fd\u6570 \u6765 \u4fee\u6539 \u884c\u4eba \u7684 \u9aa8\u67b6 \u3002 WalkerBoneControl \u7c7b \u5305\u542b \u8981 \u4fee\u6539 \u7684 \u9aa8\u9abc \u7684 \u53d8\u6362 \u3002 \u5b83 \u7684 bone _ transforms \u6210\u5458 \u662f \u6210 \u5bf9\u503c \u5143\u7ec4 \u7684 \u5217\u8868 \uff0c \u5176\u4e2d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u503c \u662f \u9aa8\u9abc \u540d\u79f0 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u503c \u662f \u9aa8\u9abc \u53d8\u6362 \u3002 \u53ef\u4ee5 \u5728 \u6bcf\u4e2a \u523b\u5ea6 \u4e0a \u8c03\u7528 apply _ control \u51fd\u6570 \u6765 \u4e3a \u884c\u4eba \u7684 \u9aa8\u9abc \u8bbe\u7f6e \u52a8\u753b \u3002 \u6bcf\u4e2a \u53d8\u6362 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u90fd \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u53d8\u6362 \u7684 \u3002 \u56e0\u6b64 \uff0c \u5f53 \u4fee\u6539 \u7236 \u9aa8\u9abc \u7684 \u53d8\u6362 \u65f6 \uff0c \u5b50 \u9aa8\u9abc \u5728 \u6a21\u578b \u7a7a\u95f4 \u4e2d \u7684 \u53d8\u6362 \u4e5f \u4f1a \u76f8\u5bf9 \u6539\u53d8 \u3002 \u5728 \u4e0b\u9762 \u7684 \u793a\u4f8b \u4e2d \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u624b \u8bbe\u7f6e \u4e3a \u56f4\u7ed5 \u524d\u8f74 \u65cb\u8f6c 90 \u5ea6 \uff0c \u5e76\u4e14 \u4f4d\u7f6e \u8bbe\u7f6e \u4e3a \u539f\u70b9 \u3002 control = carla . WalkerBoneControl ( ) first _ tuple = ( ' crl _ hand __ R ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) second _ tuple = ( ' crl _ hand __ L ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) control . bone _ transforms = [ first _ tuple , second _ tuple ] world . player . apply _ control ( control )","title":"\u63a7\u5236 \u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_control_walker_skeletons/#_1","text":"\u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u4ecb\u7ecd \u5982\u4f55 \u901a\u8fc7 Carla Python API \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u7684 \u9aa8\u9abc \u5e76 \u4e3a \u5176 \u8bbe\u7f6e \u52a8\u753b \u3002 \u6240\u6709 \u53ef\u7528 \u7c7b \u548c \u65b9\u6cd5 \u7684 \u53c2\u8003 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u884c\u4eba \u9aa8\u9abc \u7ed3\u6784 \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u884c\u4eba \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc Note \u672c \u6587\u6863 \u5047\u8bbe \u7528\u6237 \u719f\u6089 Python API \u3002 \u3002 \u7528\u6237 \u5728 \u9605\u8bfb \u672c \u6587\u6863 \u4e4b\u524d \u5e94 \u9605\u8bfb \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u6559\u7a0b \u3002 \u6838\u5fc3 \u6982\u5ff5 \u3002","title":"\u884c\u4eba \u9aa8\u9abc \u63a7\u5236"},{"location":"tuto_G_control_walker_skeletons/#_2","text":"\u6240\u6709 \u884c\u4eba \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u9aa8\u9abc \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u548c \u9aa8\u9abc \u540d\u79f0 \u3002 \u4e0b\u9762 \u662f \u9aa8\u67b6 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u7684 \u56fe\u50cf \u3002 crl _ root \u2514 \u2500 \u2500 crl _ hips __ C \u251c \u2500 \u2500 crl _ spine __ C \u2502 \u2514 \u2500 \u2500 crl _ spine01 __ C \u2502 \u251c \u2500 \u2500 ctrl _ shoulder __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ arm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ hand __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handThumb __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handIndex __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handRing _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ L \u2502 \u251c \u2500 \u2500 crl _ neck __ C \u2502 \u2502 \u2514 \u2500 \u2500 crl _ Head __ C \u2502 \u2502 \u251c \u2500 \u2500 crl _ eye __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ eye __ R \u2502 \u2514 \u2500 \u2500 crl _ shoulder __ R \u2502 \u2514 \u2500 \u2500 crl _ arm __ R \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ R \u2502 \u2514 \u2500 \u2500 crl _ hand __ R \u2502 \u251c \u2500 \u2500 crl _ handThumb __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handIndex __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handRing _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ R \u251c \u2500 \u2500 crl _ thigh __ L \u2502 \u2514 \u2500 \u2500 crl _ leg __ L \u2502 \u2514 \u2500 \u2500 crl _ foot __ L \u2502 \u2514 \u2500 \u2500 crl _ toe __ L \u2502 \u2514 \u2500 \u2500 crl _ toeEnd __ L \u2514 \u2500 \u2500 crl _ thigh __ R \u2514 \u2500 \u2500 crl _ leg __ R \u2514 \u2500 \u2500 crl _ foot __ R \u2514 \u2500 \u2500 crl _ toe __ R \u2514 \u2500 \u2500 crl _ toeEnd __ R","title":"\u884c\u4eba \u9aa8\u9abc \u7ed3\u6784"},{"location":"tuto_G_control_walker_skeletons/#_3","text":"\u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 Carla Python API \u66f4\u6539 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u9aa8\u9abc \u53d8\u6362 \u7684 \u8be6\u7ec6 \u5206\u6b65 \u793a\u4f8b","title":"\u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_control_walker_skeletons/#_4","text":"\u5bfc\u5165 \u672c\u4f8b \u4e2d \u4f7f\u7528 \u7684 \u5fc5\u8981 \u5e93 import carla import random \u521d\u59cb \u521d\u59cb\u5316 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 )","title":"\u8fde\u63a5 \u5230 \u4eff\u771f\u5668"},{"location":"tuto_G_control_walker_skeletons/#_5","text":"\u5728 \u5730\u56fe \u7684 \u4e00\u4e2a \u751f\u6210 \u70b9 \u751f\u6210 \u4e00\u4e2a \u968f\u673a \u884c\u4eba \u3002 world = client . get _ world ( ) blueprint = random . choice ( self . world . get _ blueprint _ library ( ) . filter ( ' walker . * ' ) ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spawn _ point = random . choice ( spawn _ points ) if spawn _ points else carla . Transform ( ) world . try _ spawn _ actor ( blueprint , spawn _ point )","title":"\u751f\u6210 \u884c\u4eba"},{"location":"tuto_G_control_walker_skeletons/#_6","text":"\u53ef\u4ee5 \u901a\u8fc7 \u5c06 WalkerBoneControl \u7c7b \u7684 \u5b9e\u4f8b \u4f20\u9012 \u7ed9 \u884c\u4eba \u7684 apply _ control \u51fd\u6570 \u6765 \u4fee\u6539 \u884c\u4eba \u7684 \u9aa8\u67b6 \u3002 WalkerBoneControl \u7c7b \u5305\u542b \u8981 \u4fee\u6539 \u7684 \u9aa8\u9abc \u7684 \u53d8\u6362 \u3002 \u5b83 \u7684 bone _ transforms \u6210\u5458 \u662f \u6210 \u5bf9\u503c \u5143\u7ec4 \u7684 \u5217\u8868 \uff0c \u5176\u4e2d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u503c \u662f \u9aa8\u9abc \u540d\u79f0 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u503c \u662f \u9aa8\u9abc \u53d8\u6362 \u3002 \u53ef\u4ee5 \u5728 \u6bcf\u4e2a \u523b\u5ea6 \u4e0a \u8c03\u7528 apply _ control \u51fd\u6570 \u6765 \u4e3a \u884c\u4eba \u7684 \u9aa8\u9abc \u8bbe\u7f6e \u52a8\u753b \u3002 \u6bcf\u4e2a \u53d8\u6362 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u90fd \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u53d8\u6362 \u7684 \u3002 \u56e0\u6b64 \uff0c \u5f53 \u4fee\u6539 \u7236 \u9aa8\u9abc \u7684 \u53d8\u6362 \u65f6 \uff0c \u5b50 \u9aa8\u9abc \u5728 \u6a21\u578b \u7a7a\u95f4 \u4e2d \u7684 \u53d8\u6362 \u4e5f \u4f1a \u76f8\u5bf9 \u6539\u53d8 \u3002 \u5728 \u4e0b\u9762 \u7684 \u793a\u4f8b \u4e2d \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u624b \u8bbe\u7f6e \u4e3a \u56f4\u7ed5 \u524d\u8f74 \u65cb\u8f6c 90 \u5ea6 \uff0c \u5e76\u4e14 \u4f4d\u7f6e \u8bbe\u7f6e \u4e3a \u539f\u70b9 \u3002 control = carla . WalkerBoneControl ( ) first _ tuple = ( ' crl _ hand __ R ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) second _ tuple = ( ' crl _ hand __ L ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) control . bone _ transforms = [ first _ tuple , second _ tuple ] world . player . apply _ control ( control )","title":"\u63a7\u5236 \u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_esmini/","text":"esmini \u4e0b\u8f7d \u4e0b\u8f7d esmini \u548c esmini - demo _ windows \u3002 \u8fd0\u884c esmini \\ bin > esmini -- window 60 60 800 400 -- osc . / esmini - demo / resources / xosc / cut - in . xosc","title":"tuto G esmini"},{"location":"tuto_G_esmini/#esmini","text":"\u4e0b\u8f7d \u4e0b\u8f7d esmini \u548c esmini - demo _ windows \u3002 \u8fd0\u884c esmini \\ bin > esmini -- window 60 60 800 400 -- osc . / esmini - demo / resources / xosc / cut - in . xosc","title":"esmini"},{"location":"tuto_G_instance_segmentation_sensor/","text":"\u5b9e\u4f8b \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b9e\u4f8b \u5206\u5272 ( Instance segmentation ) \u662f \u4e00\u79cd \u65b0\u578b \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u53ef \u4e3a \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u751f\u6210 \u552f\u4e00 \u7684 \u50cf\u7d20 \u503c \u3002 \u8fd9 \u4e0e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f62\u6210 \u5bf9\u6bd4 \uff0c \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5bf9\u4e8e \u76f8\u540c \u5bf9\u8c61 \u7c7b \u7684 \u5b9e\u4f8b \uff08 \u4f8b\u5982 \u8f66\u8f86 \uff09 \u5177\u6709 \u76f8\u540c \u7684 ID \u3002 \u8981 \u751f\u6210 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 sensor . camera . instance _ segmentation \u84dd\u56fe \uff1a instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' ) \u793a\u4f8b \u6211\u4eec \u5c06 \u9996\u5148 \u8bbe\u7f6e \u4e00\u4e2a \u5e26\u6709 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u7684 \u4e16\u754c \uff0c \u5e76 \u5728 \u573a\u666f \u4e2d \u751f\u6210 \u5927\u91cf \u8f66\u8f86 \u3002 \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 import carla import random import time import queue # Connect to client and set Carla server to synchronous mode client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) \u8bbe\u7f6e \u5b9e\u4f8b \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u5c06 \u5176 \u751f\u6210 \u5728 \u6240 \u9700 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 # Get the map spawn points and the spectator spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spectator = world . get _ spectator ( ) # Set the camera to some location in the map cam _ location = carla . Location ( x = - 46 . , y = 152 , z = 18 ) cam _ rotation = carla . Rotation ( pitch = - 21 , yaw = - 93.4 , roll = 0 ) camera _ transform = carla . Transform ( location = cam _ location , rotation = cam _ rotation ) spectator . set _ transform ( camera _ transform ) # Retrieve the semantic camera blueprint and spawn the camera instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' ) instance _ camera = world . try _ spawn _ actor ( instance _ camera _ bp , camera _ transform ) \u5728 \u6444\u50cf \u6444\u50cf\u673a \u5468\u56f4 \u751f\u6210 \u8f66\u8f86 \uff0c \u7528 \u5927\u91cf \u5bf9\u8c61 \u5b9e\u4f8b \u586b\u5145 \u573a\u666f \u3002 # Spawn vehicles in an 80m vicinity of the camera vehicle _ bp _ library = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) radius = 80 for spawn _ point in spawn _ points : vec = [ spawn _ point . location . x - cam _ location . x , spawn _ point . location . y - cam _ location . y ] if vec [ 0 ] * vec [ 0 ] + vec [ 1 ] * vec [ 1 ] < radius * radius : world . try _ spawn _ actor ( random . choice ( vehicle _ bp _ library ) , spawn _ point ) world . tick ( ) \u73b0\u5728 \u751f\u6210 \u56fe\u50cf \u3002 # Save the image to disk instance _ image _ queue = queue . Queue ( ) instance _ camera . listen ( instance _ image _ queue . put ) world . tick ( ) instance _ image = instance _ image _ queue . get ( ) instance _ image . save _ to _ disk ( ' instance _ segmentation . png ' ) \u56fe\u50cf \u8f93\u51fa \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u5b9e\u4f8b \u5206\u5272 \u56fe\u50cf \u7684 \u5b9e\u4f8b ID \u7f16\u7801 \u5728 RGB \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u7684 G \u548c B \u901a\u9053 \u4e2d \u3002 R \u901a\u9053 \u5305\u542b \u6807\u51c6 \u8bed\u4e49 ID \u3002","title":"\u5b9e\u4f8b \u5206\u5272 \u4f20\u611f\u5668"},{"location":"tuto_G_instance_segmentation_sensor/#_1","text":"\u5b9e\u4f8b \u5206\u5272 ( Instance segmentation ) \u662f \u4e00\u79cd \u65b0\u578b \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u53ef \u4e3a \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u751f\u6210 \u552f\u4e00 \u7684 \u50cf\u7d20 \u503c \u3002 \u8fd9 \u4e0e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f62\u6210 \u5bf9\u6bd4 \uff0c \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5bf9\u4e8e \u76f8\u540c \u5bf9\u8c61 \u7c7b \u7684 \u5b9e\u4f8b \uff08 \u4f8b\u5982 \u8f66\u8f86 \uff09 \u5177\u6709 \u76f8\u540c \u7684 ID \u3002 \u8981 \u751f\u6210 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 sensor . camera . instance _ segmentation \u84dd\u56fe \uff1a instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' )","title":"\u5b9e\u4f8b \u5206\u5272 \u4f20\u611f\u5668"},{"location":"tuto_G_instance_segmentation_sensor/#_2","text":"\u6211\u4eec \u5c06 \u9996\u5148 \u8bbe\u7f6e \u4e00\u4e2a \u5e26\u6709 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u7684 \u4e16\u754c \uff0c \u5e76 \u5728 \u573a\u666f \u4e2d \u751f\u6210 \u5927\u91cf \u8f66\u8f86 \u3002 \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 import carla import random import time import queue # Connect to client and set Carla server to synchronous mode client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) \u8bbe\u7f6e \u5b9e\u4f8b \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u5c06 \u5176 \u751f\u6210 \u5728 \u6240 \u9700 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 # Get the map spawn points and the spectator spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spectator = world . get _ spectator ( ) # Set the camera to some location in the map cam _ location = carla . Location ( x = - 46 . , y = 152 , z = 18 ) cam _ rotation = carla . Rotation ( pitch = - 21 , yaw = - 93.4 , roll = 0 ) camera _ transform = carla . Transform ( location = cam _ location , rotation = cam _ rotation ) spectator . set _ transform ( camera _ transform ) # Retrieve the semantic camera blueprint and spawn the camera instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' ) instance _ camera = world . try _ spawn _ actor ( instance _ camera _ bp , camera _ transform ) \u5728 \u6444\u50cf \u6444\u50cf\u673a \u5468\u56f4 \u751f\u6210 \u8f66\u8f86 \uff0c \u7528 \u5927\u91cf \u5bf9\u8c61 \u5b9e\u4f8b \u586b\u5145 \u573a\u666f \u3002 # Spawn vehicles in an 80m vicinity of the camera vehicle _ bp _ library = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) radius = 80 for spawn _ point in spawn _ points : vec = [ spawn _ point . location . x - cam _ location . x , spawn _ point . location . y - cam _ location . y ] if vec [ 0 ] * vec [ 0 ] + vec [ 1 ] * vec [ 1 ] < radius * radius : world . try _ spawn _ actor ( random . choice ( vehicle _ bp _ library ) , spawn _ point ) world . tick ( ) \u73b0\u5728 \u751f\u6210 \u56fe\u50cf \u3002 # Save the image to disk instance _ image _ queue = queue . Queue ( ) instance _ camera . listen ( instance _ image _ queue . put ) world . tick ( ) instance _ image = instance _ image _ queue . get ( ) instance _ image . save _ to _ disk ( ' instance _ segmentation . png ' )","title":"\u793a\u4f8b"},{"location":"tuto_G_instance_segmentation_sensor/#_3","text":"\u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u5b9e\u4f8b \u5206\u5272 \u56fe\u50cf \u7684 \u5b9e\u4f8b ID \u7f16\u7801 \u5728 RGB \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u7684 G \u548c B \u901a\u9053 \u4e2d \u3002 R \u901a\u9053 \u5305\u542b \u6807\u51c6 \u8bed\u4e49 ID \u3002","title":"\u56fe\u50cf \u8f93\u51fa"},{"location":"tuto_G_openstreetmap/","text":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \uff1a \u5982\u4f55 \u4ece OpenStreetMaps \u5bfc\u51fa \u5730\u56fe \u3002 Carla \u4e2d \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u4e0d\u540c \u683c\u5f0f \u7684 \u5730\u56fe \u4ee5\u53ca \u6bcf\u79cd \u683c\u5f0f \u7684 \u9650\u5236 \u3002 \u5982\u4f55 \u5c06 \u672c\u673a . osm \u683c\u5f0f \u8f6c\u6362 \u4e3a . xodr \u3002 \u5982\u4f55 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5305\u542b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u3002 \u5982\u4f55 \u5728 Carla \u4eff\u771f \u4e2d \u8fd0\u884c \u6700\u7ec8 \u5730\u56fe \u3002 OpenStreetMap \u662f \u7531 \u6570\u5343 \u5343\u540d \u6570\u5343\u540d \u8d21\u732e \u8d21\u732e\u8005 \u5f00\u53d1 \u7684 \u5f00\u653e \u6570\u636e \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \uff0c \u5e76 \u6839\u636e Open Data Commons Open Database License \u83b7\u5f97 \u8bb8\u53ef \u3002 \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u53ef\u4ee5 \u5bfc\u51fa \u4e3a XML \u683c\u5f0f \u7684 . osm \u6587\u4ef6 \u3002 Carla \u53ef\u4ee5 \u5c06 \u6b64 \u6587\u4ef6 \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u5e76 \u4f7f\u7528 OpenDRIVE Standalone Mode \u5bfc\u5165 \u5b83 \u3002 \u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps \u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f Linux Windows \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u5bfc\u5165 Carla \u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4ece Open Street Map \u5bfc\u51fa \u6240 \u9700 \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \uff1a 1 . \u5bfc\u822a \u81f3 Open Street Map \u7f51\u7ad9 \u3002 \u60a8 \u5c06 \u5728 \u7a97\u53e3 \u53f3\u4fa7 \u770b\u5230 \u5730\u56fe \u89c6\u56fe \u548c \u4e00\u4e2a \u9762\u677f \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u5176\u4e2d \u914d\u7f6e \u4e0d\u540c \u7684 \u5730\u56fe \u56fe\u5c42 \u3001 \u67e5\u8be2 \u4e0d\u540c \u7684 \u8981\u7d20 \u3001 \u5207\u6362 \u56fe\u4f8b \u7b49 \u3002 2 . \u641c\u7d22 \u60a8 \u60f3\u8981 \u7684 \u4f4d\u7f6e \u5e76 \u653e\u5927 \u5230 \u7279\u5b9a \u533a\u57df \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5927 \u8303\u56f4 \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u5df4\u9ece \uff0c \u60a8 \u53ef\u4ee5 \u8003\u8651 \u4f7f\u7528 Carla \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 3 . \u5355\u51fb \u7a97\u53e3 \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u5bfc\u51fa ( Export ) \u201d \u4ee5 \u6253\u5f00 \u201c \u5bfc\u51fa ( Export ) \u201d \u9762\u677f \u3002 4 . \u5355\u51fb \u201c \u5bfc\u51fa \u201d \u9762\u677f \u4e2d \u7684 \u201c _ \u624b\u52a8 _ \u9009\u62e9 \u4e0d\u540c \u533a\u57df \u201d \u3002 5 . \u901a\u8fc7 \u62d6\u52a8 \u89c6 \u53e3\u4e2d \u65b9\u5f62 \u533a\u57df \u7684 \u89d2\u6765 \u9009\u62e9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u533a\u57df \u3002 6 . \u5355\u51fb \u5bfc\u51fa \u9762\u677f \u4e2d \u7684 \u5bfc\u51fa \u6309\u94ae \uff0c \u5c06 \u6240\u9009 \u533a\u57df \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u4fdd\u5b58 \u4e3a . osm \u6587\u4ef6 \u3002 \u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps \u5f00\u653e \u8857\u9053 \u5730\u56fe \u6570\u636e \u53ef\u4ee5 \u901a\u8fc7 \u4e09\u79cd \u4e0d\u540c \u7684 \u65b9\u6cd5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6570\u636e \u662f\u5426 \u4e3a \u539f\u59cb \u683c\u5f0f \uff0c \u6216\u8005 \u60a8 \u662f\u5426 \u4f7f\u7528 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8bf4\u660e \u7684 \u8f6c\u6362 \u65b9\u6cd5 \u8f6c\u6362\u65b9\u6cd5 \u6765 \u8f6c\u6362 . osm \u6587\u4ef6 \u3002 . osm \u4fdd\u7559 \u6587\u4ef6 \u662f \u6700 \u53d7\u9650 \u9650\u5236 \u53d7\u9650\u5236 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u4e3a \u5b83 \u4e0d \u5141\u8bb8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 \u53ef\u7528 . xodr \u683c\u5f0f \u9009\u9879 \uff1a \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u751f\u6210 \u5730\u56fe \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u53ef\u7528 . osm \u683c\u5f0f \u9009\u9879 \uff1a \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63d0\u4f9b \u6709\u5173 \u4e0a\u9762 \u5217\u51fa \u7684 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u672c \u8282 \u6f14\u793a \u5982\u4f55 \u4f7f\u7528 Python API \u5c06 \u6211\u4eec \u5728 \u4e0a \u4e00\u8282 \u4e2d \u5bfc\u51fa \u7684 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 carla . Osm2OdrSettings \u7c7b \u7528\u4e8e \u914d\u7f6e \u8f6c\u6362 \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u504f\u79fb \u503c \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u751f\u6210 \u3001 \u539f\u70b9 \u5750\u6807 \u7b49 \u3002 \u53ef \u914d\u7f6e \u53c2\u6570 \u7684 \u5b8c\u6574 \u5217\u8868 \u53ef\u4ee5 \u5728 Python API \u6587\u6863 \u4e2d \u627e\u5230 \u3002 carla . Osm2Odr \u7c7b \u4f7f\u7528 \u8fd9\u4e9b \u8bbe\u7f6e \u6765 \u89e3\u6790 . osm \u6570\u636e \u5e76 \u4ee5 . xodr \u683c\u5f0f \u8f93\u51fa \u3002 \u5728 Windows \u4e2d \uff0c . osm \u6587\u4ef6 \u5fc5\u987b \u7f16\u7801 \u4e3a UTF - 8 . \u8fd9 \u5728 Linux \u4e2d\u662f \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u3002 \u4ee5\u4e0b \u662f \u793a\u4f8b \u4ee3\u7801 \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6267\u884c \u6587\u4ef6 \u8f6c\u6362 \uff1a Linux # \u8bfb\u53d6 . osm \u6570\u636e f = open ( \" path / to / osm / file \" , ' r ' ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 values . settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u5230 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b \u3002 settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u4e3a opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( ) Windows import io # \u8bfb\u53d6 . osm \u6570\u636e f = io . open ( \" test \" , mode = \" r \" , encoding = \" utf - 8 \" ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u6210 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u6210 opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( ) \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f Open Street Map \u6570\u636e \u53ef\u4ee5 \u5b9a\u4e49 \u54ea\u4e9b \u8def\u53e3 \u53d7 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \u3002 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \uff0c \u60a8 \u9700\u8981 \u5728 \u5c06 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \u4e4b\u524d \u901a\u8fc7 Python API \u5728 OSM \u5730\u56fe \u8bbe\u7f6e \u4e2d \u542f\u7528 \u5b83 \uff1a # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u542f\u7528 \u4ece OSM \u6570\u636e \u4e2d \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f settings . generate _ traffic _ lights = True # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u8d28\u91cf \u53ef\u80fd \u56e0 \u63d0\u53d6 \u6570\u636e \u7684 \u533a\u57df \u800c\u5f02 \u3002 \u4e00\u4e9b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u53ef\u80fd \u5b8c\u5168 \u4e22\u5931 \u3002 \u8981 \u514b\u670d \u8fd9\u4e9b \u9650\u5236 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u5c06 \u6240\u6709 \u8def\u53e3 \u914d\u7f6e \u4e3a \u7531 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \uff1a settings . all _ junctions _ with _ traffic _ lights = True \u60a8 \u8fd8 \u53ef\u4ee5 \u6392\u9664 \u67d0\u4e9b \u9053\u8def \uff08 \u4f8b\u5982 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u94fe\u63a5 \uff09 \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff1a settings . set _ traffic _ light _ excluded _ way _ types ( [ \" motorway _ link \" ] ) \u5bfc\u5165 Carla \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u53ef\u7528 \u7684 \u4e0d\u540c \u9009\u9879 \uff0c \u901a\u8fc7 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u5c06 Open Street Map \u4fe1\u606f \u63d0\u53d6 \u4fe1\u606f\u63d0\u53d6 \u5230 Carla \u4e2d \u3002 \u6709 \u4ee5\u4e0b \u4e09\u4e2a \u9009\u9879 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff1a A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 Python \u811a\u672c \u4e2d \u7684 \u8f6c\u6362 . xodr \u6587\u4ef6 \u751f\u6210 \u5730\u56fe \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 B ) \u5c06 \u8f6c\u6362 \u540e \u7684 . xodr \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 C ) \u5c06 \u539f\u59cb . osm \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u751f\u6210 \u65b0 \u5730\u56fe \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u901a\u8fc7 \u8c03\u7528 client . generate _ opendrive _ world ( ) \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u3002 \u4f7f\u7528 carla . OpendriveGenerationParameters \u7c7b \u914d\u7f6e \u7f51\u683c \u751f\u6210 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff1a vertex _ distance = 2.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d max _ road _ length = 500.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d wall _ height = 0.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d extra _ width = 0.6 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d world = client . generate _ opendrive _ world ( xodr _ xml , carla . OpendriveGenerationParameters ( vertex _ distance = vertex _ distance , max _ road _ length = max _ road _ length , wall _ height = wall _ height , additional _ width = extra _ width , smooth _ junctions = True , enable _ mesh _ visibility = True ) ) \u7b14\u8bb0 \u5f3a\u70c8 \u63a8\u8350 \u5f3a\u70c8\u63a8\u8350 wall _ height = 0.0 \u3002 OpenStreetMap \u5c06 \u76f8\u53cd \u65b9\u5411 \u7684 \u8f66\u9053 \u5b9a\u4e49 \u4e3a \u4e0d\u540c \u7684 \u9053\u8def \u3002 \u5982\u679c \u751f\u6210 \u5899\u58c1 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u5899\u58c1 \u91cd\u53e0 \u548c \u610f\u5916 \u7684 \u78b0\u649e \u3002 B ) \u5c06 . xodr \u4f20\u9012 \u7ed9 config . py \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py - x = / path / to / xodr / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002 C ) \u5c06 . osm \u4f20\u9012 \u7ed9 config . py \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py -- osm - path = / path / to / OSM / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u65e0\u8bba \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \uff0c \u5730\u56fe \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \uff0c \u7ed3\u679c \u5e94 \u7c7b\u4f3c \u4e8e \u4e0b\u56fe \uff1a \u4f7f\u7528 OpenStreetMap \u751f\u6210 Carla \u5730\u56fe \u7684 \u7ed3\u679c \u3002 \u8b66\u544a \u751f\u6210 \u7684 \u9053\u8def \u5728 \u5730\u56fe \u7684 \u8fb9\u754c \u5904 \u7a81\u7136 \u7ed3\u675f \u3002 \u5f53 \u8f66\u8f86 \u65e0\u6cd5 \u627e\u5230 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9\u65f6 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5d29\u6e83 \u3002 \u4e3a\u4e86 \u907f\u514d \u8fd9\u79cd \u60c5\u51b5 \uff0c \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4e2d \u7684 OSM \u6a21\u5f0f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a True ( set _ osm _ mode ( ) ) \u3002 \u8fd9 \u5c06 \u5728 \u5fc5\u8981 \u65f6 \u663e\u793a \u8b66\u544a \u5e76 \u6467\u6bc1 \u8f66\u8f86 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u548c \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe"},{"location":"tuto_G_openstreetmap/#openstreetmap","text":"\u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \uff1a \u5982\u4f55 \u4ece OpenStreetMaps \u5bfc\u51fa \u5730\u56fe \u3002 Carla \u4e2d \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u4e0d\u540c \u683c\u5f0f \u7684 \u5730\u56fe \u4ee5\u53ca \u6bcf\u79cd \u683c\u5f0f \u7684 \u9650\u5236 \u3002 \u5982\u4f55 \u5c06 \u672c\u673a . osm \u683c\u5f0f \u8f6c\u6362 \u4e3a . xodr \u3002 \u5982\u4f55 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5305\u542b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u3002 \u5982\u4f55 \u5728 Carla \u4eff\u771f \u4e2d \u8fd0\u884c \u6700\u7ec8 \u5730\u56fe \u3002 OpenStreetMap \u662f \u7531 \u6570\u5343 \u5343\u540d \u6570\u5343\u540d \u8d21\u732e \u8d21\u732e\u8005 \u5f00\u53d1 \u7684 \u5f00\u653e \u6570\u636e \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \uff0c \u5e76 \u6839\u636e Open Data Commons Open Database License \u83b7\u5f97 \u8bb8\u53ef \u3002 \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u53ef\u4ee5 \u5bfc\u51fa \u4e3a XML \u683c\u5f0f \u7684 . osm \u6587\u4ef6 \u3002 Carla \u53ef\u4ee5 \u5c06 \u6b64 \u6587\u4ef6 \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u5e76 \u4f7f\u7528 OpenDRIVE Standalone Mode \u5bfc\u5165 \u5b83 \u3002 \u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps \u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f Linux Windows \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u5bfc\u5165 Carla","title":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe"},{"location":"tuto_G_openstreetmap/#openstreetmap_1","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4ece Open Street Map \u5bfc\u51fa \u6240 \u9700 \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \uff1a 1 . \u5bfc\u822a \u81f3 Open Street Map \u7f51\u7ad9 \u3002 \u60a8 \u5c06 \u5728 \u7a97\u53e3 \u53f3\u4fa7 \u770b\u5230 \u5730\u56fe \u89c6\u56fe \u548c \u4e00\u4e2a \u9762\u677f \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u5176\u4e2d \u914d\u7f6e \u4e0d\u540c \u7684 \u5730\u56fe \u56fe\u5c42 \u3001 \u67e5\u8be2 \u4e0d\u540c \u7684 \u8981\u7d20 \u3001 \u5207\u6362 \u56fe\u4f8b \u7b49 \u3002 2 . \u641c\u7d22 \u60a8 \u60f3\u8981 \u7684 \u4f4d\u7f6e \u5e76 \u653e\u5927 \u5230 \u7279\u5b9a \u533a\u57df \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5927 \u8303\u56f4 \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u5df4\u9ece \uff0c \u60a8 \u53ef\u4ee5 \u8003\u8651 \u4f7f\u7528 Carla \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 3 . \u5355\u51fb \u7a97\u53e3 \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u5bfc\u51fa ( Export ) \u201d \u4ee5 \u6253\u5f00 \u201c \u5bfc\u51fa ( Export ) \u201d \u9762\u677f \u3002 4 . \u5355\u51fb \u201c \u5bfc\u51fa \u201d \u9762\u677f \u4e2d \u7684 \u201c _ \u624b\u52a8 _ \u9009\u62e9 \u4e0d\u540c \u533a\u57df \u201d \u3002 5 . \u901a\u8fc7 \u62d6\u52a8 \u89c6 \u53e3\u4e2d \u65b9\u5f62 \u533a\u57df \u7684 \u89d2\u6765 \u9009\u62e9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u533a\u57df \u3002 6 . \u5355\u51fb \u5bfc\u51fa \u9762\u677f \u4e2d \u7684 \u5bfc\u51fa \u6309\u94ae \uff0c \u5c06 \u6240\u9009 \u533a\u57df \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u4fdd\u5b58 \u4e3a . osm \u6587\u4ef6 \u3002","title":"\u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe"},{"location":"tuto_G_openstreetmap/#carla-openstreetmaps","text":"\u5f00\u653e \u8857\u9053 \u5730\u56fe \u6570\u636e \u53ef\u4ee5 \u901a\u8fc7 \u4e09\u79cd \u4e0d\u540c \u7684 \u65b9\u6cd5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6570\u636e \u662f\u5426 \u4e3a \u539f\u59cb \u683c\u5f0f \uff0c \u6216\u8005 \u60a8 \u662f\u5426 \u4f7f\u7528 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8bf4\u660e \u7684 \u8f6c\u6362 \u65b9\u6cd5 \u8f6c\u6362\u65b9\u6cd5 \u6765 \u8f6c\u6362 . osm \u6587\u4ef6 \u3002 . osm \u4fdd\u7559 \u6587\u4ef6 \u662f \u6700 \u53d7\u9650 \u9650\u5236 \u53d7\u9650\u5236 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u4e3a \u5b83 \u4e0d \u5141\u8bb8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 \u53ef\u7528 . xodr \u683c\u5f0f \u9009\u9879 \uff1a \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u751f\u6210 \u5730\u56fe \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u53ef\u7528 . osm \u683c\u5f0f \u9009\u9879 \uff1a \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63d0\u4f9b \u6709\u5173 \u4e0a\u9762 \u5217\u51fa \u7684 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps"},{"location":"tuto_G_openstreetmap/#openstreetmap-opendrive","text":"\u672c \u8282 \u6f14\u793a \u5982\u4f55 \u4f7f\u7528 Python API \u5c06 \u6211\u4eec \u5728 \u4e0a \u4e00\u8282 \u4e2d \u5bfc\u51fa \u7684 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 carla . Osm2OdrSettings \u7c7b \u7528\u4e8e \u914d\u7f6e \u8f6c\u6362 \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u504f\u79fb \u503c \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u751f\u6210 \u3001 \u539f\u70b9 \u5750\u6807 \u7b49 \u3002 \u53ef \u914d\u7f6e \u53c2\u6570 \u7684 \u5b8c\u6574 \u5217\u8868 \u53ef\u4ee5 \u5728 Python API \u6587\u6863 \u4e2d \u627e\u5230 \u3002 carla . Osm2Odr \u7c7b \u4f7f\u7528 \u8fd9\u4e9b \u8bbe\u7f6e \u6765 \u89e3\u6790 . osm \u6570\u636e \u5e76 \u4ee5 . xodr \u683c\u5f0f \u8f93\u51fa \u3002 \u5728 Windows \u4e2d \uff0c . osm \u6587\u4ef6 \u5fc5\u987b \u7f16\u7801 \u4e3a UTF - 8 . \u8fd9 \u5728 Linux \u4e2d\u662f \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u3002 \u4ee5\u4e0b \u662f \u793a\u4f8b \u4ee3\u7801 \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6267\u884c \u6587\u4ef6 \u8f6c\u6362 \uff1a","title":"\u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f"},{"location":"tuto_G_openstreetmap/#linux","text":"# \u8bfb\u53d6 . osm \u6570\u636e f = open ( \" path / to / osm / file \" , ' r ' ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 values . settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u5230 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b \u3002 settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u4e3a opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( )","title":"Linux"},{"location":"tuto_G_openstreetmap/#windows","text":"import io # \u8bfb\u53d6 . osm \u6570\u636e f = io . open ( \" test \" , mode = \" r \" , encoding = \" utf - 8 \" ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u6210 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u6210 opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( )","title":"Windows"},{"location":"tuto_G_openstreetmap/#_1","text":"Open Street Map \u6570\u636e \u53ef\u4ee5 \u5b9a\u4e49 \u54ea\u4e9b \u8def\u53e3 \u53d7 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \u3002 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \uff0c \u60a8 \u9700\u8981 \u5728 \u5c06 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \u4e4b\u524d \u901a\u8fc7 Python API \u5728 OSM \u5730\u56fe \u8bbe\u7f6e \u4e2d \u542f\u7528 \u5b83 \uff1a # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u542f\u7528 \u4ece OSM \u6570\u636e \u4e2d \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f settings . generate _ traffic _ lights = True # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u8d28\u91cf \u53ef\u80fd \u56e0 \u63d0\u53d6 \u6570\u636e \u7684 \u533a\u57df \u800c\u5f02 \u3002 \u4e00\u4e9b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u53ef\u80fd \u5b8c\u5168 \u4e22\u5931 \u3002 \u8981 \u514b\u670d \u8fd9\u4e9b \u9650\u5236 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u5c06 \u6240\u6709 \u8def\u53e3 \u914d\u7f6e \u4e3a \u7531 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \uff1a settings . all _ junctions _ with _ traffic _ lights = True \u60a8 \u8fd8 \u53ef\u4ee5 \u6392\u9664 \u67d0\u4e9b \u9053\u8def \uff08 \u4f8b\u5982 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u94fe\u63a5 \uff09 \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff1a settings . set _ traffic _ light _ excluded _ way _ types ( [ \" motorway _ link \" ] )","title":"\u751f\u6210 \u4ea4\u901a\u706f"},{"location":"tuto_G_openstreetmap/#carla","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u53ef\u7528 \u7684 \u4e0d\u540c \u9009\u9879 \uff0c \u901a\u8fc7 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u5c06 Open Street Map \u4fe1\u606f \u63d0\u53d6 \u4fe1\u606f\u63d0\u53d6 \u5230 Carla \u4e2d \u3002 \u6709 \u4ee5\u4e0b \u4e09\u4e2a \u9009\u9879 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff1a A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 Python \u811a\u672c \u4e2d \u7684 \u8f6c\u6362 . xodr \u6587\u4ef6 \u751f\u6210 \u5730\u56fe \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 B ) \u5c06 \u8f6c\u6362 \u540e \u7684 . xodr \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 C ) \u5c06 \u539f\u59cb . osm \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002","title":"\u5bfc\u5165 Carla"},{"location":"tuto_G_openstreetmap/#a","text":"\u751f\u6210 \u65b0 \u5730\u56fe \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u901a\u8fc7 \u8c03\u7528 client . generate _ opendrive _ world ( ) \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u3002 \u4f7f\u7528 carla . OpendriveGenerationParameters \u7c7b \u914d\u7f6e \u7f51\u683c \u751f\u6210 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff1a vertex _ distance = 2.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d max _ road _ length = 500.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d wall _ height = 0.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d extra _ width = 0.6 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d world = client . generate _ opendrive _ world ( xodr _ xml , carla . OpendriveGenerationParameters ( vertex _ distance = vertex _ distance , max _ road _ length = max _ road _ length , wall _ height = wall _ height , additional _ width = extra _ width , smooth _ junctions = True , enable _ mesh _ visibility = True ) ) \u7b14\u8bb0 \u5f3a\u70c8 \u63a8\u8350 \u5f3a\u70c8\u63a8\u8350 wall _ height = 0.0 \u3002 OpenStreetMap \u5c06 \u76f8\u53cd \u65b9\u5411 \u7684 \u8f66\u9053 \u5b9a\u4e49 \u4e3a \u4e0d\u540c \u7684 \u9053\u8def \u3002 \u5982\u679c \u751f\u6210 \u5899\u58c1 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u5899\u58c1 \u91cd\u53e0 \u548c \u610f\u5916 \u7684 \u78b0\u649e \u3002","title":"A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c"},{"location":"tuto_G_openstreetmap/#b-xodr-configpy","text":"\u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py - x = / path / to / xodr / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002","title":"B ) \u5c06 . xodr \u4f20\u9012 \u7ed9 config . py"},{"location":"tuto_G_openstreetmap/#c-osm-configpy","text":"\u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py -- osm - path = / path / to / OSM / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u65e0\u8bba \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \uff0c \u5730\u56fe \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \uff0c \u7ed3\u679c \u5e94 \u7c7b\u4f3c \u4e8e \u4e0b\u56fe \uff1a \u4f7f\u7528 OpenStreetMap \u751f\u6210 Carla \u5730\u56fe \u7684 \u7ed3\u679c \u3002 \u8b66\u544a \u751f\u6210 \u7684 \u9053\u8def \u5728 \u5730\u56fe \u7684 \u8fb9\u754c \u5904 \u7a81\u7136 \u7ed3\u675f \u3002 \u5f53 \u8f66\u8f86 \u65e0\u6cd5 \u627e\u5230 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9\u65f6 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5d29\u6e83 \u3002 \u4e3a\u4e86 \u907f\u514d \u8fd9\u79cd \u60c5\u51b5 \uff0c \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4e2d \u7684 OSM \u6a21\u5f0f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a True ( set _ osm _ mode ( ) ) \u3002 \u8fd9 \u5c06 \u5728 \u5fc5\u8981 \u65f6 \u663e\u793a \u8b66\u544a \u5e76 \u6467\u6bc1 \u8f66\u8f86 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u548c \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"C ) \u5c06 . osm \u4f20\u9012 \u7ed9 config . py"},{"location":"tuto_G_pedestrian_bones/","text":"\u901a\u8fc7 API \u83b7\u53d6 \u884c\u4eba \u771f\u5b9e \u9aa8\u9abc \u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u5fc5\u987b \u786e\u4fdd \u5b83\u4eec \u4e0d\u4ec5 \u80fd\u591f \u8bc6\u522b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u9053\u8def \u548c \u6c7d\u8f66 \uff0c \u8fd8 \u80fd\u591f \u8bc6\u522b \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u8fc7 \u9a6c\u8def \u7684 \u884c\u4eba \uff0c \u4ee5 \u786e\u4fdd \u6240\u6709 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u7684 \u5b89\u5168 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u884c\u4eba \uff0c \u4ee5 \u4eba\u4f53 \u5f62\u6001 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u548c \u8bad\u7ec3 \u6570\u636e \u3002 \u5728 \u8bb8\u591a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u5e94\u7528 \u4e2d \uff0c \u4eba\u4f53 \u59ff\u6001 \u4f30\u8ba1 \u662f \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \uff0c \u5305\u62ec \u81ea\u52a8 \u9a7e\u9a76 \u3001 \u5b89\u5168 \u3001 \u4eba\u7fa4 \u63a7\u5236 \u548c \u591a\u4e2a \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u3002 Carla \u7684 API \u63d0\u4f9b \u4e86 \u4ece \u4eff\u771f \u4e2d \u7684 \u884c\u4eba \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u7684 \u529f\u80fd \u3002 \u9aa8\u67b6 \u7531 \u4e00\u7ec4 \u9aa8\u9abc \u7ec4\u6210 \uff0c \u6bcf\u4e2a \u9aa8\u9abc \u90fd \u6709 \u4e00\u4e2a \u6839 \u8282\u70b9 \u6216 \u9876\u70b9 \u4ee5\u53ca \u4e00\u4e2a \u5b9a\u4e49 \u9aa8\u9abc \u59ff\u52bf \uff08 \u6216 \u65b9\u5411 \uff09 \u7684 \u5411\u91cf \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u63a7\u5236 \u4eff\u771f \u884c\u4eba \u7684 \u56db\u80a2 \u548c \u8eab\u4f53 \u7684 \u8fd0\u52a8 \u3002 \u901a\u8fc7 \u5c06 \u5404\u4e2a \u9aa8\u9abc \u7684 \u96c6\u5408 \u6536\u96c6 \u5728 \u4e00\u8d77 \uff0c \u53ef\u4ee5 \u6784\u5efa \u865a\u62df \u62df\u4eba \u865a\u62df\u4eba \u59ff\u52bf \u7684 \u6a21\u578b \uff0c \u8be5 \u6a21\u578b \u53ef \u7528\u4e8e \u4e0e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u4f30\u8ba1 \u7684 \u59ff\u52bf \u6a21\u578b \u8fdb\u884c \u6bd4\u8f83 \uff0c \u751a\u81f3 \u7528\u4e8e \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8fdb\u884c \u59ff\u52bf \u4f30\u8ba1 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b8c\u6210 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u884c\u4eba \u3001 \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u79fb\u52a8 \u884c\u4eba \u3001 \u7136\u540e \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u5e76 \u5c06 \u9aa8\u9abc \u6295\u5f71 \u5230 2D \u76f8\u673a \u6355\u83b7 \u4e0a \u7684 \u6b65\u9aa4 \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u9996\u5148 \uff0c \u6309\u7167 \u60a8 \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \u542f\u52a8 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728 \u72ec\u7acb \u6a21\u5f0f \u4e0b \u8fd8\u662f \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u51e0\u4e2a \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u5e93\u4ee5 \u7528\u4e8e \u6570\u5b66 \u548c \u7ed8\u56fe \u3002 \u4e3a\u4e86 \u8ba9 \u6211\u4eec \u66f4\u597d \u5730 \u63a7\u5236 \u4eff\u771f \uff0c \u6211\u4eec \u5c06 \u5728 \u672c \u6559\u7a0b \u4e2d \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u7684 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u65f6\u95f4 \u8fdb\u7a0b \u3002 import carla import random import numpy as np import math import queue import cv2 # OpenCV to manipulate and save the images # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( ) \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u751f\u6210 \u884c\u4eba \u9996\u5148 \uff0c \u6211\u4eec \u60f3 \u5728 \u4eff\u771f \u4e2d \u751f\u6210 \u4e00\u4e2a \u884c\u4eba \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 world . get _ random _ location _ from _ navigation ( ) \u5728 \u968f\u673a \u4f4d\u7f6e \u5b8c\u6210 \uff0c \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u4ece \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6536\u96c6 \u7684 \u5750\u6807 \u6765 \u9009\u62e9 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u4e00\u4e2a \u7a7a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u8981 \u751f\u6210 \u884c\u4eba \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u4f7f\u7528 \u53f3\u4fa7 \u7684 \u68c0\u67e5 \u5668 \u67e5\u8be2 \u5750\u6807 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u800c Carla \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u56e0\u6b64 \u5fc5\u987b \u8f6c\u6362 \u5355\u4f4d \u3002 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \u5c06 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5750\u6807 \u9664\u4ee5 100 \u3002 \u4e00\u65e6 \u4f60 \u9009\u62e9 \u4e86 \u5750\u6807 \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u3002 \u6211\u4eec \u8fd8 \u5c06 \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u6765 \u6536\u96c6 \u56fe\u50cf \u3002 \u6211\u4eec \u8fd8 \u9700\u8981 \u4e00\u4e2a \u961f\u5217 Queue \u5bf9\u8c61 \u6765 \u5141\u8bb8 \u6211\u4eec \u8f7b\u677e \u8bbf\u95ee \u6765\u81ea \u76f8\u673a \u7684 \u6570\u636e \uff08 \u56e0\u4e3a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5176 \u81ea\u5df1 \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \uff0c \u4e0e \u8fd0\u884c \u811a\u672c \u7684 \u4e3b Python \u7ebf\u7a0b \u5206\u5f00 \uff09 \u3002 \u4e3a\u4e86 \u770b\u5230 \u6211\u4eec \u7684 \u884c\u4eba \uff0c \u6211\u4eec \u9700\u8981 \u53d8\u6362 \u76f8\u673a \uff0c \u4f7f \u5176 \u6307\u5411 \u6211\u4eec \u751f\u6210 \u7684 \u884c\u4eba \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8ba1\u7b97 \u4f7f \u76f8\u673a \u5c45\u4e2d \u6240 \u9700 \u7684 \u5e73\u79fb \u548c \u65cb\u8f6c \uff1a def center _ camera ( ped , rot _ offset = 0 ) : # \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba \u5e76 \u5e94\u7528 \u504f\u79fb trans = ped . get _ transform ( ) offset _ radians = 2 * math . pi * rot _ offset / 360 x = math . cos ( offset _ radians ) * - 2 y = math . sin ( offset _ radians ) * 2 trans . location . x + = x trans . location . y + = y trans . location . z = 2 trans . rotation . pitch = - 16 trans . rotation . roll = 0 trans . rotation . yaw = - rot _ offset spectator . set _ transform ( trans ) return trans \u73b0\u5728 \u6211\u4eec \u5c06 \u751f\u6210 \u884c\u4eba \u3001 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 \u4e8b\u60c5 \uff1a # \u83b7\u53d6 \u884c\u4eba \u84dd\u56fe \u5e76 \u751f\u6210 \u5b83 pedestrian _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' * walker . pedestrian * ' ) ) transform = carla . Transform ( carla . Location ( x = - 134 , y = 78.1 , z = 1.18 ) ) pedestrian = world . try _ spawn _ actor ( pedestrian _ bp , transform ) # \u751f\u6210 \u4e00\u4e2a RGB \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , transform ) # \u521b\u5efa \u4e00\u4e2a \u961f\u5217 \u6765 \u5b58\u50a8 \u5e76 \u83b7\u53d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) world . tick ( ) image _ queue . get ( ) # \u6bcf\u6b21 \u8c03\u7528 world . tick ( ) \u65f6 \uff0c \u6211\u4eec \u5fc5\u987b \u8c03\u7528 image _ queue . get ( ) \u4ee5 \u786e\u4fdd \u65f6\u95f4 \u6b65\u957f \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4fdd\u6301 \u540c\u6b65 # \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba camera . set _ transform ( center _ camera ( pedestrian ) ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5 \u67e5\u770b \u7ed3\u679c spectator . set _ transform ( camera . get _ transform ( ) ) # \u4e3a \u884c\u4eba \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) # \u542f\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u7ed9 \u5b83 \u4e00\u4e2a \u968f\u673a \u4f4d\u7f6e controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) # \u5c06 \u4e16\u754c \u79fb\u52a8 \u51e0\u5e27 \uff0c \u8ba9 \u884c\u4eba \u751f\u6210 for frame in range ( 0 , 5 ) : world . tick ( ) trash = image _ queue . get ( ) AI \u63a7\u5236 \u63a7\u5236\u5668 \u5f15\u5bfc \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u884c\u8d70 \u4e0a \u4e00\u6b65 \u6211\u4eec \u8fd8 \u521d\u59cb \u521d\u59cb\u5316 \u4e86 \u4e00\u4e2a AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u5e2e\u52a9 \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u667a\u80fd \u79fb\u52a8 \uff0c \u4ee3\u7801 \u5982\u4e0b \uff08 \u65e0\u9700 \u91cd\u590d \uff09 \uff1a controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) \u73b0\u5728 \uff0c \u884c\u4eba \u5c06 \u968f\u7740 \u4eff\u771f \u7684 \u6bcf\u6b21 \u63a8\u8fdb ( world . tick ( ) ) \u81ea\u4e3b \u79fb\u52a8 \u3002 \u76f8\u673a \u51e0\u4f55 \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u51e0\u4f55 \u8ba1\u7b97 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u60f3\u8981 \u5c06 \u9aa8\u9abc \u7684 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u53d8\u6362 \u7684 \u9006\u53d8 \u53d8\u6362 \u9006\u53d8\u6362 \u6765 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5750\u6807 \u5c06 \u8f6c\u6362 \u4e3a \u76f8\u5bf9 \u4e8e \u4f4d\u4e8e \u539f\u70b9 \u3001 \u9762\u5411 x \u6b63 \u65b9\u5411 \u7684 \u76f8\u673a \u3002 # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) \u7136\u540e \uff0c \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u76f8\u673a \u77e9\u9635 \u6216 \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u89c6\u573a ( FOV , field of view ) \u4e0a \uff0c \u5c06 \u5b83\u4eec \u53e0\u52a0 \u5728 \u8f93\u51fa \u56fe\u50cf \u4e0a \u3002 \u4ee5\u4e0b \u51fd\u6570 \u751f\u6210 \u6b64 \u4e09\u7ef4 \u5230 \u4e8c\u7ef4 \u8f6c\u6362 \u6240 \u9700 \u7684 \u76f8\u673a \u77e9\u9635 \u3002 def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K \u6784\u5efa \u9aa8\u67b6 \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u6d3b\u52a8 \u90e8\u4ef6 \u7ec4\u88c5 \u5728 \u4e00\u8d77 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 pedestrian . get _ bones ( ) \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u9aa8\u9abc \u5750\u6807 \uff0c \u7136\u540e \u5c06 \u9aa8\u9abc \u7ec4\u5408 \u5728 \u4e00\u8d77 \u5e76 \u5c06 \u5176 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e8c\u7ef4 \u6210\u50cf \u5e73\u9762 \u4e0a \u3002 \u4f7f\u7528 skeletal . txt \u4e2d \u5b9a\u4e49 \u7684 \u5bf9 \u5c06 \u9aa8\u9abc \u8fde\u63a5 \u8fde\u63a5\u6210 \u5b8c\u6574 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u8be5 \u6587\u4ef6 \u3002 \u6211\u4eec \u9700\u8981 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8fed\u4ee3 sculpture . txt \u4e2d \u5b9a\u4e49 \u7684 \u9aa8\u9abc \u5bf9 \uff0c \u5e76 \u5c06 \u9aa8\u9abc \u5750\u6807 \u8fde\u63a5 \u5230 \u53ef\u4ee5 \u8986\u76d6 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56fe\u50cf \u4e0a \u7684 \u7ebf \u4e2d \u3002 def get _ image _ point ( bone _ trans ) : # \u8ba1\u7b97 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 # \u83b7\u53d6 \u9aa8\u6839 \u7684 \u4e16\u754c \u4f4d\u7f6e loc = bone _ trans . world . location bone = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 point _ camera = np . dot ( world _ 2 _ camera , bone ) # \u6211\u4eec \u5fc5\u987b \u4ece UE4 \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u66f4 \u6539\u4e3a \u201c \u6807\u51c6 \u201d \u5750\u6807 \u5750\u6807\u7cfb # ( x , y , z ) - > ( y , - z , x ) # \u6211\u4eec \u8fd8 \u5220\u9664 \u4e86 \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u7ec4\u4ef6 point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # \u73b0\u5728 \u4f7f\u7528 \u6444\u5f71 \u6444\u5f71\u673a \u77e9\u9635 \u6295\u5f71 3D - > 2D point _ img = np . dot ( K , point _ camera ) # \u6b63\u5219 \u5316 point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] def build _ skeleton ( ped , sk _ links , K ) : ######## \u83b7\u53d6 \u884c\u4eba \u9aa8\u67b6 ######### bones = ped . get _ bones ( ) # \u5217\u51fa \u5c06 \u6295\u5f71 \u5230 \u76f8\u673a \u8f93\u51fa \u4e0a\u884c \u7684 \u5b58\u50a8 \u4f4d\u7f6e lines = [ ] # \u5728 skeleton . txt \u4e2d \u904d\u5386 \u9aa8\u9abc \u5bf9 \u5e76 \u83b7\u53d6 \u5173\u8282 \u4f4d\u7f6e for link in sk _ links [ 1 : ] : # \u5c06 \u4e24\u5757 \u9aa8\u5934 \u7684 \u6839\u90e8 \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 bone _ transform _ 1 = next ( filter ( lambda b : b . name = = link [ 0 ] , bones . bone _ transforms ) , None ) bone _ transform _ 2 = next ( filter ( lambda b : b . name = = link [ 1 ] , bones . bone _ transforms ) , None ) # \u67d0\u4e9b \u9aa8\u9abc \u540d\u79f0 \u4e0d \u5339\u914d if bone _ transform _ 1 is not None and bone _ transform _ 2 is not None : # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 1 ) # \u5c06\u884c \u5f00\u59cb \u9644\u52a0 \u5230\u884c \u5217\u8868 lines . append ( [ point _ image [ 0 ] , point _ image [ 1 ] , 0 , 0 ] ) # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 2 ) # \u5c06 \u884c\u5c3e \u9644\u52a0 \u5230\u884c \u5217\u8868 lines [ - 1 ] [ 2 ] = point _ image [ 0 ] lines [ - 1 ] [ 3 ] = point _ image [ 1 ] return lines \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u8ba9 \u6211\u4eec \u4ece sculpture . txt \u4e2d \u8bfb\u53d6 \u9aa8\u9abc \u5bf9 \uff1a skeleton _ links = [ ] with open ( ' skeleton . txt ' ) as f : while True : line = f . readline ( ) if not line : break stripped = list ( map ( str . strip , line . strip ( ) . split ( ' , ' ) ) ) skeleton _ links . append ( stripped ) world . tick ( ) trash = image _ queue . get ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8fed\u4ee3 \u51e0\u5e27 \uff0c \u5728 \u6bcf \u5e27 \u4e2d \u6784\u5efa \u9aa8\u67b6 \uff0c \u5e76 \u5c06 \u9aa8\u67b6 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u6211\u4eec \u4f7f\u7528 OpenCV \u5c06 \u9aa8\u67b6 \u7ed8\u5236 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u5e76 \u4fdd\u5b58 \u56fe\u50cf \uff1a \u7b14\u8bb0 \u786e\u4fdd \u5df2 \u5728 \u5de5\u4f5c \u76ee\u5f55 \u4e2d \u521b\u5efa \u540d\u4e3a out / \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u50a8 \u56fe\u50cf for frame in range ( 0 , 360 ) : # \u5728 \u884c\u4eba \u5468\u56f4 \u79fb\u52a8 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 camera . set _ transform ( center _ camera ( pedestrian , frame + 200 ) ) # \u63a8\u8fdb \u5e27 \u5e76 \u83b7\u53d6 \u56fe\u50cf world . tick ( ) # \u4ece \u961f\u5217 \u4e2d \u83b7\u53d6 \u5e27 image = image _ queue . get ( ) # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # \u4ece \u76f8\u673a \u83b7\u53d6 \u4e00\u4e9b \u5c5e\u6027 image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # \u8ba1\u7b97 \u8981 \u4ece 3D - > 2D \u6295\u5f71 \u7684 \u76f8\u673a \u77e9\u9635 K = build _ projection _ matrix ( image _ w , image _ h , fov ) # \u6784\u5efa \u5c06 \u663e\u793a \u9aa8\u67b6 \u7684 \u7ebf \u5217\u8868 lines = build _ skeleton ( pedestrian , skeleton _ links , K ) # \u5c06 \u6570\u636e \u91cd\u5851 \u4e3a 2D RBGA \u77e9\u9635 img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # \u4f7f\u7528 OpenCV \u5c06 \u7ebf\u6761 \u7ed8\u5236 \u5230 \u56fe\u50cf \u4e2d for line in lines : l = [ int ( x ) for x in line ] cv2 . line ( img , ( l [ 0 ] , l [ 1 ] ) , ( l [ 2 ] , l [ 3 ] ) , ( 255 , 0 , 0 , 255 ) , 2 ) # \u4fdd\u5b58 \u56fe\u50cf cv2 . imwrite ( ' out / skeleton% 04d . png ' % frame , img ) \u5728 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5e27 \uff0c \u5176\u4e2d \u9aa8\u67b6 \u8986\u76d6 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u5e27 \u52a0\u5165 \u89c6\u9891 \u6765 \u91cd\u5efa \u4ee5\u4e0b \u52a8\u753b \uff1a \u603b\u7ed3 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u60a8 \u5b66\u4e60 \u4e86 \u5982\u4f55 \u4f7f\u7528 AI \u63a7\u5236 \u63a7\u5236\u5668 \u751f\u6210 \u884c\u4eba \uff0c \u6062\u590d \u884c\u4eba \u9aa8\u9abc \u7684 \u771f\u5b9e \u4e09\u7ef4 \u5750\u6807 \uff0c \u5e76 \u5c06 \u8fd9\u4e9b \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u4e0a \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u672c \u6559\u7a0b \u4e2d\u5b66 \u5230 \u7684 \u6280\u672f \uff0c \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e3a \u4eba\u4f53 \u59ff\u52bf \u4f30\u8ba1 \u6846\u67b6 \u8bbe\u7f6e \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \uff0c \u5b8c\u6574 \u4ee3\u7801 \u94fe\u63a5 \u3002","title":"\u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_pedestrian_bones/#api","text":"\u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u5fc5\u987b \u786e\u4fdd \u5b83\u4eec \u4e0d\u4ec5 \u80fd\u591f \u8bc6\u522b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u9053\u8def \u548c \u6c7d\u8f66 \uff0c \u8fd8 \u80fd\u591f \u8bc6\u522b \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u8fc7 \u9a6c\u8def \u7684 \u884c\u4eba \uff0c \u4ee5 \u786e\u4fdd \u6240\u6709 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u7684 \u5b89\u5168 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u884c\u4eba \uff0c \u4ee5 \u4eba\u4f53 \u5f62\u6001 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u548c \u8bad\u7ec3 \u6570\u636e \u3002 \u5728 \u8bb8\u591a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u5e94\u7528 \u4e2d \uff0c \u4eba\u4f53 \u59ff\u6001 \u4f30\u8ba1 \u662f \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \uff0c \u5305\u62ec \u81ea\u52a8 \u9a7e\u9a76 \u3001 \u5b89\u5168 \u3001 \u4eba\u7fa4 \u63a7\u5236 \u548c \u591a\u4e2a \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u3002 Carla \u7684 API \u63d0\u4f9b \u4e86 \u4ece \u4eff\u771f \u4e2d \u7684 \u884c\u4eba \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u7684 \u529f\u80fd \u3002 \u9aa8\u67b6 \u7531 \u4e00\u7ec4 \u9aa8\u9abc \u7ec4\u6210 \uff0c \u6bcf\u4e2a \u9aa8\u9abc \u90fd \u6709 \u4e00\u4e2a \u6839 \u8282\u70b9 \u6216 \u9876\u70b9 \u4ee5\u53ca \u4e00\u4e2a \u5b9a\u4e49 \u9aa8\u9abc \u59ff\u52bf \uff08 \u6216 \u65b9\u5411 \uff09 \u7684 \u5411\u91cf \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u63a7\u5236 \u4eff\u771f \u884c\u4eba \u7684 \u56db\u80a2 \u548c \u8eab\u4f53 \u7684 \u8fd0\u52a8 \u3002 \u901a\u8fc7 \u5c06 \u5404\u4e2a \u9aa8\u9abc \u7684 \u96c6\u5408 \u6536\u96c6 \u5728 \u4e00\u8d77 \uff0c \u53ef\u4ee5 \u6784\u5efa \u865a\u62df \u62df\u4eba \u865a\u62df\u4eba \u59ff\u52bf \u7684 \u6a21\u578b \uff0c \u8be5 \u6a21\u578b \u53ef \u7528\u4e8e \u4e0e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u4f30\u8ba1 \u7684 \u59ff\u52bf \u6a21\u578b \u8fdb\u884c \u6bd4\u8f83 \uff0c \u751a\u81f3 \u7528\u4e8e \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8fdb\u884c \u59ff\u52bf \u4f30\u8ba1 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b8c\u6210 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u884c\u4eba \u3001 \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u79fb\u52a8 \u884c\u4eba \u3001 \u7136\u540e \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u5e76 \u5c06 \u9aa8\u9abc \u6295\u5f71 \u5230 2D \u76f8\u673a \u6355\u83b7 \u4e0a \u7684 \u6b65\u9aa4 \u3002","title":"\u901a\u8fc7 API \u83b7\u53d6 \u884c\u4eba \u771f\u5b9e \u9aa8\u9abc"},{"location":"tuto_G_pedestrian_bones/#_1","text":"\u9996\u5148 \uff0c \u6309\u7167 \u60a8 \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \u542f\u52a8 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728 \u72ec\u7acb \u6a21\u5f0f \u4e0b \u8fd8\u662f \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u51e0\u4e2a \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u5e93\u4ee5 \u7528\u4e8e \u6570\u5b66 \u548c \u7ed8\u56fe \u3002 \u4e3a\u4e86 \u8ba9 \u6211\u4eec \u66f4\u597d \u5730 \u63a7\u5236 \u4eff\u771f \uff0c \u6211\u4eec \u5c06 \u5728 \u672c \u6559\u7a0b \u4e2d \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u7684 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u65f6\u95f4 \u8fdb\u7a0b \u3002 import carla import random import numpy as np import math import queue import cv2 # OpenCV to manipulate and save the images # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668"},{"location":"tuto_G_pedestrian_bones/#carla","text":"\u9996\u5148 \uff0c \u6211\u4eec \u60f3 \u5728 \u4eff\u771f \u4e2d \u751f\u6210 \u4e00\u4e2a \u884c\u4eba \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 world . get _ random _ location _ from _ navigation ( ) \u5728 \u968f\u673a \u4f4d\u7f6e \u5b8c\u6210 \uff0c \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u4ece \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6536\u96c6 \u7684 \u5750\u6807 \u6765 \u9009\u62e9 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u4e00\u4e2a \u7a7a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u8981 \u751f\u6210 \u884c\u4eba \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u4f7f\u7528 \u53f3\u4fa7 \u7684 \u68c0\u67e5 \u5668 \u67e5\u8be2 \u5750\u6807 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u800c Carla \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u56e0\u6b64 \u5fc5\u987b \u8f6c\u6362 \u5355\u4f4d \u3002 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \u5c06 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5750\u6807 \u9664\u4ee5 100 \u3002 \u4e00\u65e6 \u4f60 \u9009\u62e9 \u4e86 \u5750\u6807 \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u3002 \u6211\u4eec \u8fd8 \u5c06 \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u6765 \u6536\u96c6 \u56fe\u50cf \u3002 \u6211\u4eec \u8fd8 \u9700\u8981 \u4e00\u4e2a \u961f\u5217 Queue \u5bf9\u8c61 \u6765 \u5141\u8bb8 \u6211\u4eec \u8f7b\u677e \u8bbf\u95ee \u6765\u81ea \u76f8\u673a \u7684 \u6570\u636e \uff08 \u56e0\u4e3a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5176 \u81ea\u5df1 \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \uff0c \u4e0e \u8fd0\u884c \u811a\u672c \u7684 \u4e3b Python \u7ebf\u7a0b \u5206\u5f00 \uff09 \u3002 \u4e3a\u4e86 \u770b\u5230 \u6211\u4eec \u7684 \u884c\u4eba \uff0c \u6211\u4eec \u9700\u8981 \u53d8\u6362 \u76f8\u673a \uff0c \u4f7f \u5176 \u6307\u5411 \u6211\u4eec \u751f\u6210 \u7684 \u884c\u4eba \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8ba1\u7b97 \u4f7f \u76f8\u673a \u5c45\u4e2d \u6240 \u9700 \u7684 \u5e73\u79fb \u548c \u65cb\u8f6c \uff1a def center _ camera ( ped , rot _ offset = 0 ) : # \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba \u5e76 \u5e94\u7528 \u504f\u79fb trans = ped . get _ transform ( ) offset _ radians = 2 * math . pi * rot _ offset / 360 x = math . cos ( offset _ radians ) * - 2 y = math . sin ( offset _ radians ) * 2 trans . location . x + = x trans . location . y + = y trans . location . z = 2 trans . rotation . pitch = - 16 trans . rotation . roll = 0 trans . rotation . yaw = - rot _ offset spectator . set _ transform ( trans ) return trans \u73b0\u5728 \u6211\u4eec \u5c06 \u751f\u6210 \u884c\u4eba \u3001 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 \u4e8b\u60c5 \uff1a # \u83b7\u53d6 \u884c\u4eba \u84dd\u56fe \u5e76 \u751f\u6210 \u5b83 pedestrian _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' * walker . pedestrian * ' ) ) transform = carla . Transform ( carla . Location ( x = - 134 , y = 78.1 , z = 1.18 ) ) pedestrian = world . try _ spawn _ actor ( pedestrian _ bp , transform ) # \u751f\u6210 \u4e00\u4e2a RGB \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , transform ) # \u521b\u5efa \u4e00\u4e2a \u961f\u5217 \u6765 \u5b58\u50a8 \u5e76 \u83b7\u53d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) world . tick ( ) image _ queue . get ( ) # \u6bcf\u6b21 \u8c03\u7528 world . tick ( ) \u65f6 \uff0c \u6211\u4eec \u5fc5\u987b \u8c03\u7528 image _ queue . get ( ) \u4ee5 \u786e\u4fdd \u65f6\u95f4 \u6b65\u957f \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4fdd\u6301 \u540c\u6b65 # \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba camera . set _ transform ( center _ camera ( pedestrian ) ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5 \u67e5\u770b \u7ed3\u679c spectator . set _ transform ( camera . get _ transform ( ) ) # \u4e3a \u884c\u4eba \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) # \u542f\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u7ed9 \u5b83 \u4e00\u4e2a \u968f\u673a \u4f4d\u7f6e controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) # \u5c06 \u4e16\u754c \u79fb\u52a8 \u51e0\u5e27 \uff0c \u8ba9 \u884c\u4eba \u751f\u6210 for frame in range ( 0 , 5 ) : world . tick ( ) trash = image _ queue . get ( )","title":"\u5728 Carla \u4eff\u771f\u5668 \u4e2d \u751f\u6210 \u884c\u4eba"},{"location":"tuto_G_pedestrian_bones/#ai","text":"\u4e0a \u4e00\u6b65 \u6211\u4eec \u8fd8 \u521d\u59cb \u521d\u59cb\u5316 \u4e86 \u4e00\u4e2a AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u5e2e\u52a9 \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u667a\u80fd \u79fb\u52a8 \uff0c \u4ee3\u7801 \u5982\u4e0b \uff08 \u65e0\u9700 \u91cd\u590d \uff09 \uff1a controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) \u73b0\u5728 \uff0c \u884c\u4eba \u5c06 \u968f\u7740 \u4eff\u771f \u7684 \u6bcf\u6b21 \u63a8\u8fdb ( world . tick ( ) ) \u81ea\u4e3b \u79fb\u52a8 \u3002","title":"AI \u63a7\u5236\u5668 \u5f15\u5bfc \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u884c\u8d70"},{"location":"tuto_G_pedestrian_bones/#_2","text":"\u73b0\u5728 \u6211\u4eec \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u51e0\u4f55 \u8ba1\u7b97 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u60f3\u8981 \u5c06 \u9aa8\u9abc \u7684 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u53d8\u6362 \u7684 \u9006\u53d8 \u53d8\u6362 \u9006\u53d8\u6362 \u6765 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5750\u6807 \u5c06 \u8f6c\u6362 \u4e3a \u76f8\u5bf9 \u4e8e \u4f4d\u4e8e \u539f\u70b9 \u3001 \u9762\u5411 x \u6b63 \u65b9\u5411 \u7684 \u76f8\u673a \u3002 # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) \u7136\u540e \uff0c \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u76f8\u673a \u77e9\u9635 \u6216 \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u89c6\u573a ( FOV , field of view ) \u4e0a \uff0c \u5c06 \u5b83\u4eec \u53e0\u52a0 \u5728 \u8f93\u51fa \u56fe\u50cf \u4e0a \u3002 \u4ee5\u4e0b \u51fd\u6570 \u751f\u6210 \u6b64 \u4e09\u7ef4 \u5230 \u4e8c\u7ef4 \u8f6c\u6362 \u6240 \u9700 \u7684 \u76f8\u673a \u77e9\u9635 \u3002 def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K","title":"\u76f8\u673a \u51e0\u4f55"},{"location":"tuto_G_pedestrian_bones/#_3","text":"\u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u6d3b\u52a8 \u90e8\u4ef6 \u7ec4\u88c5 \u5728 \u4e00\u8d77 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 pedestrian . get _ bones ( ) \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u9aa8\u9abc \u5750\u6807 \uff0c \u7136\u540e \u5c06 \u9aa8\u9abc \u7ec4\u5408 \u5728 \u4e00\u8d77 \u5e76 \u5c06 \u5176 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e8c\u7ef4 \u6210\u50cf \u5e73\u9762 \u4e0a \u3002 \u4f7f\u7528 skeletal . txt \u4e2d \u5b9a\u4e49 \u7684 \u5bf9 \u5c06 \u9aa8\u9abc \u8fde\u63a5 \u8fde\u63a5\u6210 \u5b8c\u6574 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u8be5 \u6587\u4ef6 \u3002 \u6211\u4eec \u9700\u8981 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8fed\u4ee3 sculpture . txt \u4e2d \u5b9a\u4e49 \u7684 \u9aa8\u9abc \u5bf9 \uff0c \u5e76 \u5c06 \u9aa8\u9abc \u5750\u6807 \u8fde\u63a5 \u5230 \u53ef\u4ee5 \u8986\u76d6 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56fe\u50cf \u4e0a \u7684 \u7ebf \u4e2d \u3002 def get _ image _ point ( bone _ trans ) : # \u8ba1\u7b97 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 # \u83b7\u53d6 \u9aa8\u6839 \u7684 \u4e16\u754c \u4f4d\u7f6e loc = bone _ trans . world . location bone = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 point _ camera = np . dot ( world _ 2 _ camera , bone ) # \u6211\u4eec \u5fc5\u987b \u4ece UE4 \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u66f4 \u6539\u4e3a \u201c \u6807\u51c6 \u201d \u5750\u6807 \u5750\u6807\u7cfb # ( x , y , z ) - > ( y , - z , x ) # \u6211\u4eec \u8fd8 \u5220\u9664 \u4e86 \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u7ec4\u4ef6 point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # \u73b0\u5728 \u4f7f\u7528 \u6444\u5f71 \u6444\u5f71\u673a \u77e9\u9635 \u6295\u5f71 3D - > 2D point _ img = np . dot ( K , point _ camera ) # \u6b63\u5219 \u5316 point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] def build _ skeleton ( ped , sk _ links , K ) : ######## \u83b7\u53d6 \u884c\u4eba \u9aa8\u67b6 ######### bones = ped . get _ bones ( ) # \u5217\u51fa \u5c06 \u6295\u5f71 \u5230 \u76f8\u673a \u8f93\u51fa \u4e0a\u884c \u7684 \u5b58\u50a8 \u4f4d\u7f6e lines = [ ] # \u5728 skeleton . txt \u4e2d \u904d\u5386 \u9aa8\u9abc \u5bf9 \u5e76 \u83b7\u53d6 \u5173\u8282 \u4f4d\u7f6e for link in sk _ links [ 1 : ] : # \u5c06 \u4e24\u5757 \u9aa8\u5934 \u7684 \u6839\u90e8 \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 bone _ transform _ 1 = next ( filter ( lambda b : b . name = = link [ 0 ] , bones . bone _ transforms ) , None ) bone _ transform _ 2 = next ( filter ( lambda b : b . name = = link [ 1 ] , bones . bone _ transforms ) , None ) # \u67d0\u4e9b \u9aa8\u9abc \u540d\u79f0 \u4e0d \u5339\u914d if bone _ transform _ 1 is not None and bone _ transform _ 2 is not None : # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 1 ) # \u5c06\u884c \u5f00\u59cb \u9644\u52a0 \u5230\u884c \u5217\u8868 lines . append ( [ point _ image [ 0 ] , point _ image [ 1 ] , 0 , 0 ] ) # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 2 ) # \u5c06 \u884c\u5c3e \u9644\u52a0 \u5230\u884c \u5217\u8868 lines [ - 1 ] [ 2 ] = point _ image [ 0 ] lines [ - 1 ] [ 3 ] = point _ image [ 1 ] return lines \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u8ba9 \u6211\u4eec \u4ece sculpture . txt \u4e2d \u8bfb\u53d6 \u9aa8\u9abc \u5bf9 \uff1a skeleton _ links = [ ] with open ( ' skeleton . txt ' ) as f : while True : line = f . readline ( ) if not line : break stripped = list ( map ( str . strip , line . strip ( ) . split ( ' , ' ) ) ) skeleton _ links . append ( stripped ) world . tick ( ) trash = image _ queue . get ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8fed\u4ee3 \u51e0\u5e27 \uff0c \u5728 \u6bcf \u5e27 \u4e2d \u6784\u5efa \u9aa8\u67b6 \uff0c \u5e76 \u5c06 \u9aa8\u67b6 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u6211\u4eec \u4f7f\u7528 OpenCV \u5c06 \u9aa8\u67b6 \u7ed8\u5236 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u5e76 \u4fdd\u5b58 \u56fe\u50cf \uff1a \u7b14\u8bb0 \u786e\u4fdd \u5df2 \u5728 \u5de5\u4f5c \u76ee\u5f55 \u4e2d \u521b\u5efa \u540d\u4e3a out / \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u50a8 \u56fe\u50cf for frame in range ( 0 , 360 ) : # \u5728 \u884c\u4eba \u5468\u56f4 \u79fb\u52a8 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 camera . set _ transform ( center _ camera ( pedestrian , frame + 200 ) ) # \u63a8\u8fdb \u5e27 \u5e76 \u83b7\u53d6 \u56fe\u50cf world . tick ( ) # \u4ece \u961f\u5217 \u4e2d \u83b7\u53d6 \u5e27 image = image _ queue . get ( ) # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # \u4ece \u76f8\u673a \u83b7\u53d6 \u4e00\u4e9b \u5c5e\u6027 image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # \u8ba1\u7b97 \u8981 \u4ece 3D - > 2D \u6295\u5f71 \u7684 \u76f8\u673a \u77e9\u9635 K = build _ projection _ matrix ( image _ w , image _ h , fov ) # \u6784\u5efa \u5c06 \u663e\u793a \u9aa8\u67b6 \u7684 \u7ebf \u5217\u8868 lines = build _ skeleton ( pedestrian , skeleton _ links , K ) # \u5c06 \u6570\u636e \u91cd\u5851 \u4e3a 2D RBGA \u77e9\u9635 img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # \u4f7f\u7528 OpenCV \u5c06 \u7ebf\u6761 \u7ed8\u5236 \u5230 \u56fe\u50cf \u4e2d for line in lines : l = [ int ( x ) for x in line ] cv2 . line ( img , ( l [ 0 ] , l [ 1 ] ) , ( l [ 2 ] , l [ 3 ] ) , ( 255 , 0 , 0 , 255 ) , 2 ) # \u4fdd\u5b58 \u56fe\u50cf cv2 . imwrite ( ' out / skeleton% 04d . png ' % frame , img ) \u5728 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5e27 \uff0c \u5176\u4e2d \u9aa8\u67b6 \u8986\u76d6 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u5e27 \u52a0\u5165 \u89c6\u9891 \u6765 \u91cd\u5efa \u4ee5\u4e0b \u52a8\u753b \uff1a","title":"\u6784\u5efa \u9aa8\u67b6"},{"location":"tuto_G_pedestrian_bones/#_4","text":"\u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u60a8 \u5b66\u4e60 \u4e86 \u5982\u4f55 \u4f7f\u7528 AI \u63a7\u5236 \u63a7\u5236\u5668 \u751f\u6210 \u884c\u4eba \uff0c \u6062\u590d \u884c\u4eba \u9aa8\u9abc \u7684 \u771f\u5b9e \u4e09\u7ef4 \u5750\u6807 \uff0c \u5e76 \u5c06 \u8fd9\u4e9b \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u4e0a \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u672c \u6559\u7a0b \u4e2d\u5b66 \u5230 \u7684 \u6280\u672f \uff0c \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e3a \u4eba\u4f53 \u59ff\u52bf \u4f30\u8ba1 \u6846\u67b6 \u8bbe\u7f6e \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \uff0c \u5b8c\u6574 \u4ee3\u7801 \u94fe\u63a5 \u3002","title":"\u603b\u7ed3"},{"location":"tuto_G_pedestrian_visual/","text":"\u83b7\u53d6 \u884c\u4eba \u89c6\u91ce","title":"\u884c\u4eba \u89c6\u89c9"},{"location":"tuto_G_pedestrian_visual/#_1","text":"","title":"\u83b7\u53d6 \u884c\u4eba \u89c6\u91ce"},{"location":"tuto_G_pygame/","text":"Pygame \u7528\u4e8e \u8f66\u8f86 \u63a7\u5236 PyGame \u662f \u4e00\u7ec4 \u5e73\u53f0 \u8de8\u5e73\u53f0 \u7684 Python \u6a21\u5757 \uff0c \u53ef \u7528\u4e8e \u7f16\u5199 \u89c6\u9891 \u6e38\u620f \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u4e00\u79cd \u6e32\u67d3 Carla \u5b9e\u65f6 \u89c6\u89c9 \u8f93\u51fa \u7684 \u6709\u7528 \u65b9\u6cd5 \uff0c \u4ee5\u4fbf \u76d1\u89c6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \uff0c \u4f8b\u5982 \u6444\u50cf \u6444\u50cf\u673a \u3002 PyGame \u8fd8 \u53ef\u4ee5 \u6355\u83b7 \u952e\u76d8 \u4e8b\u4ef6 \uff0c \u56e0\u6b64 \u5b83 \u662f \u63a7\u5236 \u8f66\u8f86 \u7b49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u597d \u65b9\u6cd5 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u8bbe\u7f6e \u4e00\u4e2a \u7b80\u5355 \u7684 PyGame \u754c\u9762 \uff0c \u8be5 \u754c\u9762 \u4f7f \u6211\u4eec \u80fd\u591f \u76d1\u63a7 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5730\u56fe \u5468\u56f4 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ea4\u901a \uff0c \u7136\u540e \u4f7f\u7528 \u952e\u76d8 \u624b\u52a8 \u63a7\u5236 \u4efb\u4f55 \u8f66\u8f86 \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e76 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random import pygame import numpy as np # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( ) \u751f\u6210 \u8f66\u8f86 \u6211\u4eec \u60f3\u8981 \u521b\u5efa \u4e00\u4e2a \u5728 \u6574\u4e2a \u57ce\u5e02 \u4e2d \u4ea7\u751f \u7684 \u8f66\u8f86 \u96c6\u5408 \uff0c \u5e76 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u5b83\u4eec \u3002 # Retrieve the map ' s spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Select some models from the blueprint library models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # Set a max number of vehicles and prepare a list for those we spawn max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # Take a random sample of the spawn points and spawn some vehicles for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # Parse the list of spawned vehicles and give control to the TM through set _ autopilot ( ) for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) ) \u4f7f\u7528 PyGame \u6e32\u67d3 \u76f8\u673a \u8f93\u51fa \u5e76 \u63a7\u5236 \u8f66\u8f86 \u73b0\u5728 \u6211\u4eec \u6709 \u4e00\u4e2a \u4ea4\u901a \u62e5\u6324 \u7684 \u57ce\u5e02 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bbe\u7f6e \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u8ddf\u8e2a \u5176\u4e2d \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \uff0c \u5e76 \u8bbe\u7f6e \u4e00\u4e2a \u63a7\u5236 \u754c\u9762 \u6765 \u901a\u8fc7 \u952e\u76d8 \u8f93\u5165 \u952e\u76d8\u8f93\u5165 \u63a5\u7ba1 \u5b83 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4e3a camera . listen ( ... ) \u5b9a\u4e49 \u4e00\u4e2a \u56de\u8c03 \u51fd\u6570 \uff0c \u7528\u4e8e \u5c06 \u50cf\u7d20 \u6570\u636e \u6e32\u67d3 \u5230 PyGame \u63a5\u53e3 \u3002 PyGame \u5c06 \u6570\u636e \u6e32\u67d3 \u5230 \u8868\u9762 \uff0c \u7136\u540e \u6e32\u67d3 \u5230 \u5c4f\u5e55 \uff0c \u56e0\u6b64 \u5728 \u56de\u8c03 \u4e2d \uff0c \u6211\u4eec \u586b\u5145 \u5b58\u50a8 \u5728 \u4f20\u9012 \u7ed9 \u56de\u8c03 \u51fd\u6570 \u7684 \u5bf9\u8c61 \u4e2d \u7684 \u8868\u9762 \u3002 # \u6e32\u67d3 \u5bf9\u8c61 \u4ee5 \u4fdd\u6301 \u5e76 \u4f20\u9012 PyGame \u8868\u9762 class RenderObject ( object ) : def __ init __ ( self , width , height ) : init _ image = np . random . randint ( 0 , 255 , ( height , width , 3 ) , dtype = ' uint8 ' ) # \u521b\u5efa \u4e0e \u9635\u5217 \u4e0a \u7684 \u6570\u636e \u548c \u683c\u5f0f \u6700 \u76f8\u4f3c \u7684 \u65b0 \u66f2\u9762 self . surface = pygame . surfarray . make _ surface ( init _ image . swapaxes ( 0 , 1 ) ) # \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56de\u8c03 \uff0c \u5c06 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u91cd\u5851 \u4e3a \u4e8c\u7ef4 RGB \uff0c \u5e76 \u5e94\u7528 \u4e8e PyGame \u66f2\u9762 def pygame _ callback ( data , obj ) : img = np . reshape ( np . copy ( data . raw _ data ) , ( data . height , data . width , 4 ) ) img = img [ : , : , : 3 ] img = img [ : , : , : : - 1 ] obj . surface = pygame . surfarray . make _ surface ( img . swapaxes ( 0 , 1 ) ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u5bf9\u8c61 \u6765 \u5904\u7406 \u63a7\u5236 \u903b\u8f91 \u3002 \u8fd9 \u901a\u5e38 \u9700\u8981 \u8fdb\u884c \u4e00\u4e9b \u8c03\u6574 \u624d\u80fd \u6ee1\u8db3 \u7279\u5b9a \u9700\u6c42 \uff0c \u4f46 \u8fd9 \u6982\u8ff0 \u4e86 \u4e00\u4e2a \u57fa\u672c \u754c\u9762 \u3002 \u5f53 \u63a7\u5236 \u8f66\u8f86 \u65f6 \uff0c \u8be5 \u63a7\u5236 \u754c\u9762 \u5141\u8bb8 \u901a\u8fc7 \u4efb\u4f55 \u6807\u51c6 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u8fdb\u884c \u63a7\u5236 \u3002 \u5411\u524d \u7bad\u5934 \u52a0\u901f \uff0c \u5411 \u540e \u7bad\u5934 \u5236\u52a8 \uff0c \u5de6\u53f3 \u7bad\u5934 \u8f6c\u52a8 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u8f66\u8f86 \u9759\u6b62 \u6216 \u505c\u6b62 \u65f6 \u6309\u4f4f \u5411\u4e0b \u7bad\u5934 \uff0c \u5b83 \u5c06 \u63a5\u5408 \u5012 \u6863 \u5e76 \u5f00\u59cb \u5411 \u540e \u79fb\u52a8 \u3002 # Control object to manage vehicle controls class ControlObject ( object ) : def __ init __ ( self , veh ) : # Conrol parameters to store the control state self ._ vehicle = veh self ._ steer = 0 self ._ throttle = False self ._ brake = False self ._ steer = None self ._ steer _ cache = 0 # A carla . VehicleControl object is needed to alter the # vehicle ' s control state self ._ control = carla . VehicleControl ( ) # Check for key press events in the PyGame window # and define the control state def parse _ control ( self , event ) : if event . type = = pygame . KEYDOWN : if event . key = = pygame . K _ RETURN : self ._ vehicle . set _ autopilot ( False ) if event . key = = pygame . K _ UP : self ._ throttle = True if event . key = = pygame . K _ DOWN : self ._ brake = True if event . key = = pygame . K _ RIGHT : self ._ steer = 1 if event . key = = pygame . K _ LEFT : self ._ steer = - 1 if event . type = = pygame . KEYUP : if event . key = = pygame . K _ UP : self ._ throttle = False if event . key = = pygame . K _ DOWN : self ._ brake = False self ._ control . reverse = False if event . key = = pygame . K _ RIGHT : self ._ steer = None if event . key = = pygame . K _ LEFT : self ._ steer = None # \u5904\u7406 \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \uff0c \u66f4\u6539 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 # if the key remains pressed def process _ control ( self ) : if self ._ throttle : self ._ control . throttle = min ( self ._ control . throttle + 0.01 , 1 ) self ._ control . gear = 1 self ._ control . brake = False elif not self ._ brake : self ._ control . throttle = 0.0 if self ._ brake : # If the down arrow is held down when the car is stationary , switch to reverse if self ._ vehicle . get _ velocity ( ) . length ( ) < 0.01 and not self ._ control . reverse : self ._ control . brake = 0.0 self ._ control . gear = 1 self ._ control . reverse = True self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) elif self ._ control . reverse : self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) else : self ._ control . throttle = 0.0 self ._ control . brake = min ( self ._ control . brake + 0.3 , 1 ) else : self ._ control . brake = 0.0 if self ._ steer is not None : if self ._ steer = = 1 : self ._ steer _ cache + = 0.03 if self ._ steer = = - 1 : self ._ steer _ cache - = 0.03 min ( 0.7 , max ( - 0.7 , self ._ steer _ cache ) ) self ._ control . steer = round ( self ._ steer _ cache , 1 ) else : if self ._ steer _ cache > 0.0 : self ._ steer _ cache * = 0.2 if self ._ steer _ cache < 0.0 : self ._ steer _ cache * = 0.2 if 0.01 > self ._ steer _ cache > - 0.01 : self ._ steer _ cache = 0.0 self ._ control . steer = round ( self ._ steer _ cache , 1 ) # \u00c1 pply the control parameters to the ego vehicle self ._ vehicle . apply _ control ( self ._ control ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u8f66\u8f86 \u548c \u76f8\u673a \u3002 # Randomly select a vehicle to follow with the camera ego _ vehicle = random . choice ( vehicles ) # Initialise the camera floating behind the vehicle camera _ init _ trans = carla . Transform ( carla . Location ( x = - 5 , z = 3 ) , carla . Rotation ( pitch = - 20 ) ) camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) # Start camera with PyGame callback camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Get camera dimensions image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) # Instantiate objects for rendering and vehicle control renderObject = RenderObject ( image _ w , image _ h ) controlObject = ControlObject ( ego _ vehicle ) \u521d\u59cb \u521d\u59cb\u5316 PyGame \u63a5\u53e3 \u3002 \u8fd9 \u5c06 \u8c03\u7528 PyGame \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 # Initialise the display pygame . init ( ) gameDisplay = pygame . display . set _ mode ( ( image _ w , image _ h ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) # Draw black to the display gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \u4e86 \u3002 \u8be5 \u89c6\u56fe \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e2d \u7684 \u4e0d\u540c \u8f66\u8f86 \u4e4b\u95f4 \u968f\u673a \u5faa\u73af \uff0c \u5e76 \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e0b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5b83\u4eec \u5728 \u4ea4\u901a \u4e2d \u7684 \u65c5\u7a0b \u3002 \u6309 TAB \u952e \u5207\u6362 \u5230 \u968f\u673a \u9009\u62e9 \u7684 \u65b0 \u8f66\u8f86 \uff0c \u6309 \u56de\u8f66 \u56de\u8f66\u952e \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u624b\u52a8 \u63a7\u5236 \u8f66\u8f86 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u9700\u8981 \u6311\u6218 \u9a7e\u9a76 \u884c\u4e3a \u4e0d \u7a33\u5b9a \u7684 \u667a\u80fd \u4f53 \uff0c \u8fd9\u79cd \u8bbe\u7f6e \u53ef\u80fd \u4f1a \u5f88 \u6709\u7528 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u9009\u62e9 \u903b\u8f91 \u4ee5 \u9009\u62e9 \u4e0e \u667a\u80fd \u4f53 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u63a5\u8fd1 \u7684 \u8f66\u8f86 \u3002 # Game loop crashed = False while not crashed : # Advance the simulation time world . tick ( ) # Update the display gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Process the current control state controlObject . process _ control ( ) # Collect key press events for event in pygame . event . get ( ) : # If the window is closed , break the while loop if event . type = = pygame . QUIT : crashed = True # Parse effect of key press event on control state controlObject . parse _ control ( event ) if event . type = = pygame . KEYUP : # TAB key switches vehicle if event . key = = pygame . K _ TAB : ego _ vehicle . set _ autopilot ( True ) ego _ vehicle = random . choice ( vehicles ) # Ensure vehicle is still alive ( might have been destroyed ) if ego _ vehicle . is _ alive : # Stop and remove the camera camera . stop ( ) camera . destroy ( ) # Spawn new camera and attach to new vehicle controlObject = ControlObject ( ego _ vehicle ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Update PyGame window gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Stop camera and quit PyGame after exiting game loop camera . stop ( ) pygame . quit ( )","title":"Pygame \u7528\u4e8e \u8f66\u8f86 \u63a7\u5236"},{"location":"tuto_G_pygame/#pygame","text":"PyGame \u662f \u4e00\u7ec4 \u5e73\u53f0 \u8de8\u5e73\u53f0 \u7684 Python \u6a21\u5757 \uff0c \u53ef \u7528\u4e8e \u7f16\u5199 \u89c6\u9891 \u6e38\u620f \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u4e00\u79cd \u6e32\u67d3 Carla \u5b9e\u65f6 \u89c6\u89c9 \u8f93\u51fa \u7684 \u6709\u7528 \u65b9\u6cd5 \uff0c \u4ee5\u4fbf \u76d1\u89c6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \uff0c \u4f8b\u5982 \u6444\u50cf \u6444\u50cf\u673a \u3002 PyGame \u8fd8 \u53ef\u4ee5 \u6355\u83b7 \u952e\u76d8 \u4e8b\u4ef6 \uff0c \u56e0\u6b64 \u5b83 \u662f \u63a7\u5236 \u8f66\u8f86 \u7b49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u597d \u65b9\u6cd5 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u8bbe\u7f6e \u4e00\u4e2a \u7b80\u5355 \u7684 PyGame \u754c\u9762 \uff0c \u8be5 \u754c\u9762 \u4f7f \u6211\u4eec \u80fd\u591f \u76d1\u63a7 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5730\u56fe \u5468\u56f4 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ea4\u901a \uff0c \u7136\u540e \u4f7f\u7528 \u952e\u76d8 \u624b\u52a8 \u63a7\u5236 \u4efb\u4f55 \u8f66\u8f86 \u3002","title":"Pygame \u7528\u4e8e \u8f66\u8f86 \u63a7\u5236"},{"location":"tuto_G_pygame/#_1","text":"\u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random import pygame import numpy as np # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668 \u5e76 \u521d\u59cb\u5316 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_pygame/#_2","text":"\u6211\u4eec \u60f3\u8981 \u521b\u5efa \u4e00\u4e2a \u5728 \u6574\u4e2a \u57ce\u5e02 \u4e2d \u4ea7\u751f \u7684 \u8f66\u8f86 \u96c6\u5408 \uff0c \u5e76 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u5b83\u4eec \u3002 # Retrieve the map ' s spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Select some models from the blueprint library models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # Set a max number of vehicles and prepare a list for those we spawn max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # Take a random sample of the spawn points and spawn some vehicles for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # Parse the list of spawned vehicles and give control to the TM through set _ autopilot ( ) for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) )","title":"\u751f\u6210 \u8f66\u8f86"},{"location":"tuto_G_pygame/#pygame_1","text":"\u73b0\u5728 \u6211\u4eec \u6709 \u4e00\u4e2a \u4ea4\u901a \u62e5\u6324 \u7684 \u57ce\u5e02 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bbe\u7f6e \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u8ddf\u8e2a \u5176\u4e2d \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \uff0c \u5e76 \u8bbe\u7f6e \u4e00\u4e2a \u63a7\u5236 \u754c\u9762 \u6765 \u901a\u8fc7 \u952e\u76d8 \u8f93\u5165 \u952e\u76d8\u8f93\u5165 \u63a5\u7ba1 \u5b83 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4e3a camera . listen ( ... ) \u5b9a\u4e49 \u4e00\u4e2a \u56de\u8c03 \u51fd\u6570 \uff0c \u7528\u4e8e \u5c06 \u50cf\u7d20 \u6570\u636e \u6e32\u67d3 \u5230 PyGame \u63a5\u53e3 \u3002 PyGame \u5c06 \u6570\u636e \u6e32\u67d3 \u5230 \u8868\u9762 \uff0c \u7136\u540e \u6e32\u67d3 \u5230 \u5c4f\u5e55 \uff0c \u56e0\u6b64 \u5728 \u56de\u8c03 \u4e2d \uff0c \u6211\u4eec \u586b\u5145 \u5b58\u50a8 \u5728 \u4f20\u9012 \u7ed9 \u56de\u8c03 \u51fd\u6570 \u7684 \u5bf9\u8c61 \u4e2d \u7684 \u8868\u9762 \u3002 # \u6e32\u67d3 \u5bf9\u8c61 \u4ee5 \u4fdd\u6301 \u5e76 \u4f20\u9012 PyGame \u8868\u9762 class RenderObject ( object ) : def __ init __ ( self , width , height ) : init _ image = np . random . randint ( 0 , 255 , ( height , width , 3 ) , dtype = ' uint8 ' ) # \u521b\u5efa \u4e0e \u9635\u5217 \u4e0a \u7684 \u6570\u636e \u548c \u683c\u5f0f \u6700 \u76f8\u4f3c \u7684 \u65b0 \u66f2\u9762 self . surface = pygame . surfarray . make _ surface ( init _ image . swapaxes ( 0 , 1 ) ) # \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56de\u8c03 \uff0c \u5c06 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u91cd\u5851 \u4e3a \u4e8c\u7ef4 RGB \uff0c \u5e76 \u5e94\u7528 \u4e8e PyGame \u66f2\u9762 def pygame _ callback ( data , obj ) : img = np . reshape ( np . copy ( data . raw _ data ) , ( data . height , data . width , 4 ) ) img = img [ : , : , : 3 ] img = img [ : , : , : : - 1 ] obj . surface = pygame . surfarray . make _ surface ( img . swapaxes ( 0 , 1 ) ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u5bf9\u8c61 \u6765 \u5904\u7406 \u63a7\u5236 \u903b\u8f91 \u3002 \u8fd9 \u901a\u5e38 \u9700\u8981 \u8fdb\u884c \u4e00\u4e9b \u8c03\u6574 \u624d\u80fd \u6ee1\u8db3 \u7279\u5b9a \u9700\u6c42 \uff0c \u4f46 \u8fd9 \u6982\u8ff0 \u4e86 \u4e00\u4e2a \u57fa\u672c \u754c\u9762 \u3002 \u5f53 \u63a7\u5236 \u8f66\u8f86 \u65f6 \uff0c \u8be5 \u63a7\u5236 \u754c\u9762 \u5141\u8bb8 \u901a\u8fc7 \u4efb\u4f55 \u6807\u51c6 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u8fdb\u884c \u63a7\u5236 \u3002 \u5411\u524d \u7bad\u5934 \u52a0\u901f \uff0c \u5411 \u540e \u7bad\u5934 \u5236\u52a8 \uff0c \u5de6\u53f3 \u7bad\u5934 \u8f6c\u52a8 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u8f66\u8f86 \u9759\u6b62 \u6216 \u505c\u6b62 \u65f6 \u6309\u4f4f \u5411\u4e0b \u7bad\u5934 \uff0c \u5b83 \u5c06 \u63a5\u5408 \u5012 \u6863 \u5e76 \u5f00\u59cb \u5411 \u540e \u79fb\u52a8 \u3002 # Control object to manage vehicle controls class ControlObject ( object ) : def __ init __ ( self , veh ) : # Conrol parameters to store the control state self ._ vehicle = veh self ._ steer = 0 self ._ throttle = False self ._ brake = False self ._ steer = None self ._ steer _ cache = 0 # A carla . VehicleControl object is needed to alter the # vehicle ' s control state self ._ control = carla . VehicleControl ( ) # Check for key press events in the PyGame window # and define the control state def parse _ control ( self , event ) : if event . type = = pygame . KEYDOWN : if event . key = = pygame . K _ RETURN : self ._ vehicle . set _ autopilot ( False ) if event . key = = pygame . K _ UP : self ._ throttle = True if event . key = = pygame . K _ DOWN : self ._ brake = True if event . key = = pygame . K _ RIGHT : self ._ steer = 1 if event . key = = pygame . K _ LEFT : self ._ steer = - 1 if event . type = = pygame . KEYUP : if event . key = = pygame . K _ UP : self ._ throttle = False if event . key = = pygame . K _ DOWN : self ._ brake = False self ._ control . reverse = False if event . key = = pygame . K _ RIGHT : self ._ steer = None if event . key = = pygame . K _ LEFT : self ._ steer = None # \u5904\u7406 \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \uff0c \u66f4\u6539 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 # if the key remains pressed def process _ control ( self ) : if self ._ throttle : self ._ control . throttle = min ( self ._ control . throttle + 0.01 , 1 ) self ._ control . gear = 1 self ._ control . brake = False elif not self ._ brake : self ._ control . throttle = 0.0 if self ._ brake : # If the down arrow is held down when the car is stationary , switch to reverse if self ._ vehicle . get _ velocity ( ) . length ( ) < 0.01 and not self ._ control . reverse : self ._ control . brake = 0.0 self ._ control . gear = 1 self ._ control . reverse = True self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) elif self ._ control . reverse : self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) else : self ._ control . throttle = 0.0 self ._ control . brake = min ( self ._ control . brake + 0.3 , 1 ) else : self ._ control . brake = 0.0 if self ._ steer is not None : if self ._ steer = = 1 : self ._ steer _ cache + = 0.03 if self ._ steer = = - 1 : self ._ steer _ cache - = 0.03 min ( 0.7 , max ( - 0.7 , self ._ steer _ cache ) ) self ._ control . steer = round ( self ._ steer _ cache , 1 ) else : if self ._ steer _ cache > 0.0 : self ._ steer _ cache * = 0.2 if self ._ steer _ cache < 0.0 : self ._ steer _ cache * = 0.2 if 0.01 > self ._ steer _ cache > - 0.01 : self ._ steer _ cache = 0.0 self ._ control . steer = round ( self ._ steer _ cache , 1 ) # \u00c1 pply the control parameters to the ego vehicle self ._ vehicle . apply _ control ( self ._ control ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u8f66\u8f86 \u548c \u76f8\u673a \u3002 # Randomly select a vehicle to follow with the camera ego _ vehicle = random . choice ( vehicles ) # Initialise the camera floating behind the vehicle camera _ init _ trans = carla . Transform ( carla . Location ( x = - 5 , z = 3 ) , carla . Rotation ( pitch = - 20 ) ) camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) # Start camera with PyGame callback camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Get camera dimensions image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) # Instantiate objects for rendering and vehicle control renderObject = RenderObject ( image _ w , image _ h ) controlObject = ControlObject ( ego _ vehicle ) \u521d\u59cb \u521d\u59cb\u5316 PyGame \u63a5\u53e3 \u3002 \u8fd9 \u5c06 \u8c03\u7528 PyGame \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 # Initialise the display pygame . init ( ) gameDisplay = pygame . display . set _ mode ( ( image _ w , image _ h ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) # Draw black to the display gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \u4e86 \u3002 \u8be5 \u89c6\u56fe \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e2d \u7684 \u4e0d\u540c \u8f66\u8f86 \u4e4b\u95f4 \u968f\u673a \u5faa\u73af \uff0c \u5e76 \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e0b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5b83\u4eec \u5728 \u4ea4\u901a \u4e2d \u7684 \u65c5\u7a0b \u3002 \u6309 TAB \u952e \u5207\u6362 \u5230 \u968f\u673a \u9009\u62e9 \u7684 \u65b0 \u8f66\u8f86 \uff0c \u6309 \u56de\u8f66 \u56de\u8f66\u952e \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u624b\u52a8 \u63a7\u5236 \u8f66\u8f86 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u9700\u8981 \u6311\u6218 \u9a7e\u9a76 \u884c\u4e3a \u4e0d \u7a33\u5b9a \u7684 \u667a\u80fd \u4f53 \uff0c \u8fd9\u79cd \u8bbe\u7f6e \u53ef\u80fd \u4f1a \u5f88 \u6709\u7528 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u9009\u62e9 \u903b\u8f91 \u4ee5 \u9009\u62e9 \u4e0e \u667a\u80fd \u4f53 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u63a5\u8fd1 \u7684 \u8f66\u8f86 \u3002 # Game loop crashed = False while not crashed : # Advance the simulation time world . tick ( ) # Update the display gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Process the current control state controlObject . process _ control ( ) # Collect key press events for event in pygame . event . get ( ) : # If the window is closed , break the while loop if event . type = = pygame . QUIT : crashed = True # Parse effect of key press event on control state controlObject . parse _ control ( event ) if event . type = = pygame . KEYUP : # TAB key switches vehicle if event . key = = pygame . K _ TAB : ego _ vehicle . set _ autopilot ( True ) ego _ vehicle = random . choice ( vehicles ) # Ensure vehicle is still alive ( might have been destroyed ) if ego _ vehicle . is _ alive : # Stop and remove the camera camera . stop ( ) camera . destroy ( ) # Spawn new camera and attach to new vehicle controlObject = ControlObject ( ego _ vehicle ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Update PyGame window gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Stop camera and quit PyGame after exiting game loop camera . stop ( ) pygame . quit ( )","title":"\u4f7f\u7528 PyGame \u6e32\u67d3 \u76f8\u673a \u8f93\u51fa \u5e76 \u63a7\u5236 \u8f66\u8f86"},{"location":"tuto_G_retrieve_data/","text":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e \u5728 Carla \u4e2d \uff0c \u5b66\u4e60 \u4e00\u79cd \u6709\u6548 \u7684 \u65b9\u6cd5 \u6765 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u8fd9\u4e2a \u6574\u4f53 \u6559\u7a0b \u9002\u5408 \u65b0\u624b \u548c \u7ecf\u9a8c \u4e30\u5bcc \u7ecf\u9a8c\u4e30\u5bcc \u7684 \u7528\u6237 \u3002 \u5b83 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \uff0c \u9010\u6e10 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 Carla \u4e2d \u53ef\u7528 \u7684 \u8bb8\u591a \u9009\u9879 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u548c \u6d41\u91cf \u521d\u59cb \u521d\u59cb\u5316 \u4eff\u771f \u3002 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \u5c06 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \uff0c \u53ef\u9009 \u53ef\u9009\u5730 \u914d\u5907 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bb0\u5f55 \u4eff\u771f \uff0c \u4ee5\u4fbf \u4ee5\u540e \u67e5\u8be2 \u4ee5 \u627e\u5230 \u4eae\u70b9 \u3002 \u4e4b\u540e \uff0c \u539f\u59cb \u4eff\u771f \u88ab \u56de\u653e \uff0c \u5e76 \u88ab \u5229\u7528 \u5230 \u6781\u9650 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u7d22 \u4e00\u81f4 \u7684 \u6570\u636e \u3002 \u5929\u6c14 \u6761\u4ef6 \u662f \u53ef\u4ee5 \u6539\u53d8 \u7684 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u751a\u81f3 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u5177\u6709 \u4e0d\u540c \u8f93\u51fa \u7684 \u7279\u5b9a \u573a\u666f \u3002 \u6982\u8ff0 \u8bbe\u7f6e \u4eff\u771f \u5730\u56fe \u8bbe\u7f6e \u5929\u6c14 \u8bbe\u7f6e \u8bbe\u7f6e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf Carla \u4ea4\u901a \u548c \u884c\u4eba SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a \u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u653e\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6df1\u5ea6 \u76f8\u673a \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e \u6e32\u67d3 \u6a21\u5f0f \u5feb\u901f \u4eff\u771f \u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236 \u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e \u5f00\u59cb \u8bb0\u5f55 \u6355\u83b7 \u5e76 \u8bb0\u5f55 \u505c\u6b62 \u8bb0\u5f55 \u5229\u7528 \u8bb0\u5f55 \u67e5\u8be2 \u4e8b\u4ef6 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u68c0\u7d22 \u66f4 \u591a \u6570\u636e \u6539\u53d8 \u5929\u6c14 \u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c \u6559\u7a0b \u811a\u672c \u6982\u8ff0 \u5728 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u7684 \u8fc7\u7a0b \u4e2d \u5b58\u5728 \u4e00\u4e9b \u5e38\u89c1 \u9519\u8bef \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u5145\u65a5 \u7740 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5b58\u50a8 \u65e0\u7528 \u7684 \u6570\u636e \u6216 \u52aa\u529b \u5bfb\u627e \u7279\u5b9a \u4e8b\u4ef6 \u90fd \u662f \u4e00\u4e9b \u4f8b\u5b50 \u3002 \u7136\u800c \uff0c \u53ef\u4ee5 \u63d0\u4f9b \u8be5 \u8fc7\u7a0b \u7684 \u4e00\u4e9b \u6982\u8981 \u3002 \u76ee\u6807 \u662f \u786e\u4fdd \u6570\u636e \u53ef\u4ee5 \u68c0\u7d22 \u548c \u590d\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u968f\u610f \u68c0\u67e5 \u68c0\u67e5\u548c \u66f4\u6539 \u4eff\u771f \u3002 \u7b14\u8bb0 \u672c \u6559\u7a0b \u4f7f\u7528 Carla 0.9 . 8 deb \u5305 \u3002 \u6839\u636e \u60a8 \u7684 Carla \u7248\u672c \u548c \u5b89\u88c5 \uff0c \u53ef\u80fd \u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 \uff0c \u7279\u522b \u662f \u5728 \u8def\u5f84 \u65b9\u9762 \u3002 \u672c \u6559\u7a0b \u4e3a \u4e0d\u540c \u6b65\u9aa4 \u63d0\u4f9b \u4e86 \u591a\u79cd \u9009\u9879 \u3002 \u4e00\u76f4 \u4ee5\u6765 \uff0c \u90fd \u4f1a \u63d0\u5230 \u4e0d\u540c \u7684 \u811a\u672c \u3002 \u5e76 \u4e0d\u662f \u6240\u6709 \u7684 \u90fd \u4f1a \u88ab \u4f7f\u7528 \uff0c \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5177\u4f53 \u7684 \u7528\u4f8b \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5df2 \u5728 Carla \u4e2d \u63d0\u4f9b \u7528\u4e8e \u901a\u7528 \u76ee\u7684 \u3002 config . py \u66f4\u6539 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5730\u56fe \u3001 \u6e32\u67d3 \u9009\u9879 \u3001 \u8bbe\u7f6e \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f ... carla / PythonAPI / util / config . py dynamic _ weather . py \u521b\u5efa \u6709\u8da3 \u7684 \u5929\u6c14 \u6761\u4ef6 \u3002 carla / PythonAPI / examples / dynamic _ weather . py spawn _ npc . py spawn _ npc . py \u751f\u6210 \u4e00\u4e9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 carla / PythonAPI / examples / spawn _ npc . py manual _ control . py \u751f\u6210 \u4e00\u4e2a \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u63d0\u4f9b \u5bf9 \u5176 \u7684 \u63a7\u5236 \u3002 carla / PythonAPI / examples / manual _ control . py \u4f46\u662f \uff0c \u6559\u7a0b \u4e2d \u63d0\u5230 \u7684 \u4e24\u4e2a \u811a\u672c \u5728 Carla \u4e2d \u627e \u4e0d\u5230 \u3002 \u5b83\u4eec \u5305\u542b \u5f15\u7528 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8fd9\u6709 \u53cc\u91cd \u76ee\u7684 \u3002 \u9996\u5148 \uff0c \u9f13\u52b1 \u7528\u6237 \u6784\u5efa \u81ea\u5df1 \u7684 \u811a\u672c \u3002 \u5145\u5206 \u7406\u89e3 \u4ee3\u7801 \u7684 \u4f5c\u7528 \u975e\u5e38 \u91cd\u8981 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u672c \u6559\u7a0b \u53ea\u662f \u4e00\u4e2a \u5927\u7eb2 \uff0c \u53ef\u80fd \u800c\u4e14 \u5e94\u8be5 \u6839\u636e \u7528\u6237 \u7684 \u559c\u597d \u800c \u6709 \u5f88\u5927 \u7684 \u4e0d\u540c \u3002 \u8fd9 \u4e24\u4e2a \u811a\u672c \u53ea\u662f \u4e00\u4e2a \u793a\u4f8b \u3002 tutorial _ ego . py \u751f\u6210 \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u88ab \u653e\u7f6e \u5728 \u751f\u6210 \u4f4d\u7f6e \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ece \u4e00 \u5f00\u59cb \u5c31 \u542f\u52a8 \uff0c \u5e76 \u5728 \u811a\u672c \u5b8c\u6210 \u65f6 \u505c\u6b62 \u3002 tutorial _ replay . py \u91cd\u65b0 \u6267\u884c tutorial _ ego . py \u8bb0\u5f55 \u7684 \u4eff\u771f \u3002 \u6709 \u4e0d\u540c \u7684 \u4ee3\u7801 \u7247\u6bb5 \u53ef\u4ee5 \u67e5\u8be2 \u8bb0\u5f55 \u3001 \u751f\u6210 \u4e00\u4e9b \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6539\u53d8 \u5929\u6c14 \u6761\u4ef6 \u4ee5\u53ca \u91cd\u65b0 \u6267\u884c \u8bb0\u5f55 \u8bb0\u5f55\u7247 \u6bb5 \u3002 \u5b8c\u6574 \u7684 \u4ee3\u7801 \u53ef\u4ee5 \u5728 \u6559\u7a0b \u7684 \u6700\u540e \u90e8\u5206 \u627e\u5230 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u5e76 \u4e0d \u4e25\u683c \uff0c \u800c\u662f \u53ef\u4ee5 \u5b9a\u5236 \u7684 \u3002 \u5728 Carla \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u529f\u80fd \u6b63\u5982 \u7528\u6237 \u6240 \u5e0c\u671b \u7684 \u90a3\u6837 \u5f3a\u5927 \u3002 \u91cd\u8981 \u672c \u6559\u7a0b \u9700\u8981 \u4e00\u4e9b Python \u77e5\u8bc6 \u3002 \u8bbe\u7f6e \u4eff\u771f \u8981 \u505a \u7684 \u7b2c\u4e00 \u4e00\u4ef6 \u7b2c\u4e00\u4ef6 \u4e8b\u662f \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u6240 \u9700 \u7684 \u73af\u5883 \u3002 \u8fd0\u884c Carla \u3002 cd / opt / carla / bin . / CarlaUE . sh \u5730\u56fe \u8bbe\u7f6e \u9009\u62e9 \u8981 \u8fd0\u884c \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u67e5\u770b \u5730\u56fe \u6587\u6863 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u5176 \u7279\u5b9a \u5c5e\u6027 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u9009\u62e9 Town07 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u3002 \u4f7f\u7528 config . py \u811a\u672c \u66f4\u6539 \u5730\u56fe \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- map Town01 \u8be5 \u811a\u672c \u53ef\u4ee5 \u542f\u7528 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c06 \u5728 \u6559\u7a0b \u4e2d \u63d0\u53ca \uff0c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u4f1a \u3002 \u4e0b\u9762 \u6709 \u4e00\u4e2a \u7b80\u77ed \u7684 \u603b\u7ed3 \u3002 config . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host Carla Simulator ( default : localhost ) - p P , -- port P TCP port of Carla Simulator ( default : 2000 ) - d , -- default set default settings - m MAP , -- map MAP load a new map , use -- list to see available maps - r , -- reload - map reload current map -- delta - seconds S set fixed delta seconds , zero for variable frame rate -- fps N set fixed FPS , zero for variable FPS ( similar to -- delta - seconds ) -- rendering enable rendering -- no - rendering disable rendering -- no - sync disable synchronous mode -- weather WEATHER set weather preset , use -- list to see available presets - i , -- inspect inspect simulation - l , -- list list available options - b FILTER , -- list - blueprints FILTER list available blueprints matching FILTER ( use ' * ' to list them all ) - x XODR _ FILE _ PATH , -- xodr - path XODR _ FILE _ PATH load a new map with a minimum physical road representation of the provided OpenDRIVE Town07 \u7684 \u7a7a\u4e2d \u89c6\u89d2 \u5929\u6c14 \u8bbe\u7f6e \u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u9002\u5408 \u5b83 \u7684 \u7279\u5b9a \u5929\u6c14 \uff0c \u4f46\u662f \u53ef\u4ee5 \u968f\u610f \u8bbe\u7f6e \u3002 \u6709 \u4e24\u4e2a \u811a\u672c \u63d0\u4f9b \u4e86 \u89e3\u51b3 \u6b64 \u95ee\u9898 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e86 \u52a8\u6001 \u5929\u6c14 \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u60c5\u51b5 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u53e6 \u4e00\u4e2a \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u6761\u4ef6 \u3002 \u8fd8 \u53ef\u4ee5 \u5bf9 \u5929\u6c14 \u6761\u4ef6 \u8fdb\u884c \u7f16\u7801 \u3002 \u7a0d\u540e \u5929\u6c14 \u6761\u4ef6 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u65f6 \u5c06 \u5bf9\u6b64 \u8fdb\u884c \u4ecb\u7ecd \u3002 \u8bbe\u7f6e \u52a8\u6001 \u5929\u6c14 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c dynamic _ weather . py \u3002 \u8be5 \u811a\u672c \u5141\u8bb8 \u8bbe\u7f6e \u5929\u6c14 \u53d8\u5316 \u7684 \u6bd4\u7387 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u662f 1.0 \u3002 cd / opt / carla / PythonAPI / examples python3 dynamic _ weather . py -- speed 1.0 \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6761\u4ef6 \u4f7f\u7528 \u811a\u672c environment . py \u3002 \u6709 \u5f88\u591a \u53ef\u80fd \u7684 \u8bbe\u7f6e \u3002 \u67e5\u770b \u53ef \u9009 \u53c2\u6570 \u4ee5\u53ca carla . WeatherParameters \u7684 \u6587\u6863 \u3002 cd / opt / carla / PythonAPI / util python3 environment . py -- clouds 100 -- rain 80 -- wetness 100 -- puddles 60 -- wind 80 -- fog 50 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] \u4f7f\u7528 \u5929\u6c14 \u6539\u53d8 \u8bbe\u7f6e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u4eff\u771f \u4ea4\u901a \u662f \u8ba9 \u5730\u56fe \u6829\u6829 \u6829\u6829\u5982\u751f \u7684 \u6700\u4f73 \u65b9\u6cd5 \u4e4b\u4e00 \u3002 \u8fd8 \u9700\u8981 \u68c0\u7d22 \u57ce\u5e02 \u73af\u5883 \u7684 \u6570\u636e \u3002 \u5728 Carla \u4e2d\u6709 \u4e0d\u540c \u7684 \u9009\u62e9 \u53ef\u4ee5 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002 Carla \u4ea4\u901a \u548c \u884c\u4eba Carla \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6a21\u5757 \u7ba1\u7406 \u3002 \u81f3\u4e8e \u884c\u4eba \uff0c \u4ed6\u4eec \u6bcf\u4e2a \u4eba \u90fd \u6709 \u81ea\u5df1 \u7684 carla . WalkerAIController \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \uff0c \u7136\u540e \u8fd0\u884c spawn _ npc . py \u6765 \u751f\u6210 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u8ba9 \u6211\u4eec \u751f\u6210 50 \u8f86\u8f66 \u548c \u76f8\u540c \u6570\u91cf \u7684 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 cd / opt / carla / PythonAPI / examples python3 spawn _ npc . py - n 50 - w 50 -- safe spawn _ npc . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - n N , -- number - of - vehicles N number of vehicles ( default : 10 ) - w W , -- number - of - walkers W number of walkers ( default : 50 ) -- safe avoid spawning vehicles prone to accidents -- filterv PATTERN vehicles filter ( default : \" vehicle . * \" ) -- filterw PATTERN pedestrians filter ( default : \" walker . pedestrian . * \" ) - tm _ p P , -- tm - port P port to communicate with TM ( default : 8000 ) -- async Asynchronous mode execution \u751f\u6210 \u8f66\u8f86 \u4ee5 \u4eff\u771f \u4ea4\u901a \u3002 SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a Carla \u53ef\u4ee5 \u4e0e SUMO \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u8fd9 \u5141\u8bb8 \u5728 SUMO \u4e2d \u521b\u5efa \u5c06 \u4f20\u64ad \u5230 Carla \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u8fd9\u79cd \u8054\u5408 \u4eff\u771f \u662f \u53cc\u5411 \u7684 \u3002 \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u8f66\u8f86 \u5c06 \u5728 SUMO \u4e2d \u751f\u6210 \u3002 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u5177\u4f53 \u6587\u6863 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u3002 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e Carla 0.9 . 8 \u53ca \u66f4 \u9ad8 \u7248\u672c \u7684 Town01 \u3001 Town04 \u548c Town05 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u6700 \u7a33\u5b9a \u7684 \u3002 \u7b14\u8bb0 \u8054\u5408 \u4eff\u771f \u5c06 \u5728 Carla \u4e2d \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u9996\u5148 \uff0c \u5b89\u88c5 SUMO \u3002 sudo add - apt - repository ppa : sumo / stable sudo apt - get update sudo apt - get install sumo sumo - tools sumo - doc \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SUMO _ HOME \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc \u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6253\u5f00 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8fd0\u884c SUMO - Carla \u540c\u6b65 \u811a\u672c \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town01 . sumocfg -- sumo - gui SUMO \u7a97\u53e3 \u5e94\u8be5 \u5df2 \u6253\u5f00 \u3002 \u6309 \u201c \u8fd0\u884c \u201d \u4ee5 \u5728 \u4e24\u4e2a \u4eff\u771f \u4e2d \u542f\u52a8 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 > \" Play \" on SUMO window . \u8be5 \u811a\u672c \u751f\u6210 \u7684 \u6d41\u91cf \u662f Carla \u56e2\u961f \u521b\u5efa \u7684 \u793a\u4f8b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u6cbf\u7740 \u76f8\u540c \u7684 \u8def\u7ebf \u751f\u6210 \u76f8\u540c \u7684 \u8f66\u8f86 \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 SUMO \u4e2d \u66f4\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u3002 SUMO \u548c Carla \u534f\u540c \u4eff\u771f \u4ea4\u901a \u3002 \u8b66\u544a \u76ee\u524d \uff0c SUMO \u8054\u5408 \u4eff\u771f \u8fd8\u662f \u6d4b\u8bd5 \u6d4b\u8bd5\u7248 \u529f\u80fd \u3002 \u8f66\u8f86 \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \uff0c \u4e5f \u4e0d \u8003\u8651 Carla \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86 \u4ece \u73b0\u5728 \u5230 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \u7684 \u4e00\u523b \u90a3\u4e00\u523b \uff0c \u5c06\u4f1a \u6709 \u4e00\u4e9b \u5c5e\u4e8e tutorial _ ego . py \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8be5 \u811a\u672c \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef \u9009 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76 \u8bb0\u5f55 \u4eff\u771f \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u7528\u6237 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5728 Carla \u4e2d \u901a\u5e38 \u901a\u8fc7 \u5c06 \u5c5e\u6027 role _ name \u8bbe\u7f6e \u4e3a ego \u6765 \u533a\u5206 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5176\u4ed6 \u5c5e\u6027 \uff0c \u5176\u4e2d \u4e00\u4e9b \u5177\u6709 \u63a8\u8350 \u63a8\u8350\u503c \u3002 \u4e0b\u9762 \uff0c \u4ece \u84dd \u56fe\u5e93 \u4e2d \u68c0\u7d22 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u6a21\u578b \uff0c \u5e76 \u4f7f\u7528 \u968f\u673a \u63a8\u8350 \u7684 \u989c\u8272 \u751f\u6210 \u3002 \u9009\u62e9 \u5730\u56fe \u63a8\u8350 \u7684 \u751f\u6210 \u70b9 \u4e4b\u4e00 \u6765 \u653e\u7f6e \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spawn ego vehicle # -------------- ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' ) \u653e\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u4eff\u771f \u89c6\u56fe \u3002 \u901a\u8fc7 \u811a\u672c \u79fb\u52a8 \u5b83 \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5b83 \u53ef\u80fd \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u627e\u5230 \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spectator on ego position # -------------- spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u4efb\u4f55 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fc7\u7a0b \u90fd \u975e\u5e38 \u76f8\u4f3c \u3002 1 . \u4f7f\u7528 \u5e93 \u67e5\u627e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 2 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u4e00\u70b9 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5c5e\u6027 \u5c06 \u5851\u9020 \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u3002 3 . \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u81f3 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8be5 \u53d8\u6362 \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u3002 carla . AttachmentType \u5c06 \u786e\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f4d\u7f6e \u7684 \u66f4\u65b0 \u65b9\u5f0f \u3002 4 . \u6dfb\u52a0 listen ( ) \u65b9\u6cd5 \u3002 \u8fd9\u662f \u5173\u952e \u8981\u7d20 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fa6\u542c \u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u7684 lambda \u65b9\u6cd5 \u3002 \u53c2\u6570 \u662f \u68c0\u7d22 \u5230 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u7262\u8bb0 \u8fd9\u4e00 \u57fa\u672c \u51c6\u5219 \u57fa\u672c\u51c6\u5219 \uff0c \u8ba9 \u6211\u4eec \u4e3a \u81ea\u6211 \u8f66\u8f86 \u8bbe\u7f6e \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 RGB \u76f8\u673a RGB \u76f8\u673a \u751f\u6210 \u903c\u771f \u7684 \u573a\u666f \u56fe\u7247 \u3002 \u5b83 \u662f \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef \u8bbe\u7f6e \u5c5e\u6027 \u8f83 \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f46 \u5b83 \u4e5f \u662f \u4e00\u4e2a \u57fa\u672c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5b83 \u5e94\u8be5 \u88ab \u7406\u89e3 \u4e3a \u4e00\u4e2a \u771f\u6b63 \u7684 \u76f8\u673a \uff0c \u5177\u6709 \u8bf8\u5982 focal _ distance \u3001 shutter _ speed \u6216 gamma \u786e\u5b9a \u5176 \u5185\u90e8 \u5982\u4f55 \u5de5\u4f5c \u7684 \u5c5e\u6027 \u3002 \u8fd8\u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5c5e\u6027 \u6765 \u5b9a\u4e49 \u955c\u5934 \u7578\u53d8 \uff0c \u4ee5\u53ca \u8bb8\u591a \u9ad8\u7ea7 \u5c5e\u6027 \u3002 \u4f8b\u5982 \uff0c lens _ circle _ multiplier \u53ef\u4ee5 \u7528\u6765 \u5b9e\u73b0 \u7c7b\u4f3c \u4e8e \u773c\u775b \u9c7c \u955c\u5934 \u7684 \u6548\u679c \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u811a\u672c \u4ec5 \u8bbe\u7f6e \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u5e38\u7528 \u7684 \u5c5e\u6027 \u3002 image _ size _ x \u548c image _ size _ y \u5c06 \u6539\u53d8 \u8f93\u51fa \u56fe\u50cf \u7684 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u3002 fov \u662f \u76f8\u673a \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u540e \uff0c \u5c31 \u53ef\u4ee5 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e86 \u3002 \u811a\u672c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e2d \uff0c \u5e76 \u6307\u5411 \u524d\u65b9 \u3002 \u5b83 \u5c06 \u6355\u6349 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 \u6bcf \u4e00\u6b65 \u90fd \u4f1a \u4ee5 carla . Image \u7684 \u5f62\u5f0f \u68c0\u7d22 \u6570\u636e \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b83\u4eec \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u8def\u5f84 \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u6bcf\u5f20 \u56fe\u50cf \u7684 \u540d\u79f0 \u5747 \u6839\u636e \u62cd\u6444 \u955c\u5934 \u7684 \u4eff\u771f \u5e27 \u8fdb\u884c \u7f16\u7801 \u3002 # -------------- # Spawn attached RGB camera # -------------- cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / output / %. 6d . jpg ' % image . frame ) ) RGB camera output \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5f53 \u5b83\u4eec \u6240 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u6570\u636e \u3002 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u4e3a \u4e09\u79cd \u7c7b\u578b \uff0c \u6bcf\u79cd \u90fd \u63cf\u8ff0 \u4e00\u79cd \u7c7b\u578b \u7684 \u4e8b\u4ef6 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002 \u4ed6\u4eec \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u51b3\u5b9a \u8981 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u7684 \u54ea \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u663e\u5f0f \u67e5\u8be2 \u51b2\u7a81 \u3002 \u8fd9\u662f \u51c6\u5907 \u6253\u5370 \u7684 \u3002 \u53ea\u6709 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \u6709 \u9700\u8981 \u8bbe\u7f6e \u7684 \u5c5e\u6027 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u91cd\u8981 \u7684 \u5185\u5bb9 \u3002 sensor _ tick \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 x \u79d2\u949f \u540e \u68c0\u7d22 \u6570\u636e \u3002 \u8fd9\u662f \u68c0\u7d22 \u6bcf \u4e00\u6b65 \u6570\u636e \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5e38\u89c1 \u5c5e\u6027 \u3002 distance \u548c hit - radius \u5851\u9020 \u7528\u4e8e \u68c0\u6d4b \u524d\u65b9 \u969c\u788d \u969c\u788d\u7269 \u7684 \u8c03\u8bd5 \u7ebf \u3002 only _ dynamics \u786e\u5b9a \u662f\u5426 \u5e94 \u8003\u8651 \u9759\u6001 \u5bf9\u8c61 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4efb\u4f55 \u5bf9\u8c61 \u90fd \u4f1a \u88ab \u8003\u8651 \u3002 \u8be5 \u811a\u672c \u5c06 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 \u5982\u679c \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u9759\u6001 \u7269\u4f53 \u53d1\u751f \u78b0\u649e \uff0c \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u68c0\u6d4b \u5230 \u3002 # -------------- # Add collision sensor to ego vehicle . # -------------- col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) # -------------- # Add Obstacle sensor to ego vehicle . # -------------- obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) Output for detector sensors \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6682\u65f6 \u53ea \u8003\u8651 \u8be5\u7c7b \u522b\u7684 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u4e00\u822c \u6d4b\u91cf \u503c \uff0c \u8fd9 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u8f66\u8f86 \u5bf9\u8c61 \u4e3a \u4e2d\u5fc3 \u751f\u6210 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u8bbe\u7f6e \u6d4b\u91cf \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u6216 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 \u8fd9 \u5bf9\u4e8e \u83b7\u5f97 \u66f4 \u73b0\u5b9e \u7684 \u63aa\u65bd \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5728 tutorial _ ego . py \u4e2d \u53ea \u8bbe\u7f6e \u4e86 \u4e00\u4e2a \u5c5e\u6027 \u3002 sensor _ tick . \u7531\u4e8e \u6b64 \u6d4b\u91cf \u503c \u5728 \u6b65\u9aa4 \u4e4b\u95f4 \u4e0d \u5e94\u6709 \u663e \u7740 \u53d8\u5316 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u7ecf\u5e38 \u68c0\u7d22 \u6570\u636e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u8bbe\u7f6e \u4e3a \u6bcf \u4e09\u79d2 \u6253\u5370 \u4e00\u6b21 \u3002 # -------------- # Add GNSS sensor to ego vehicle . # -------------- gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) # -------------- # Add IMU sensor to ego vehicle . # -------------- imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) GNSS and IMU sensors output \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u811a\u672c tutorial _ replay . py \u9664 \u5176\u4ed6 \u5916 \u8fd8 \u5305\u542b \u66f4 \u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5b9a\u4e49 \u3002 \u5b83\u4eec \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u57fa\u672c \u7684 \u76f8\u540c \uff0c \u4f46 \u7406\u89e3 \u53ef\u80fd \u6709\u70b9 \u56f0\u96be \u3002 \u6df1\u5ea6 \u76f8\u673a \u6df1\u5ea6 \u76f8\u673a \u751f\u6210 \u573a\u666f \u7684 \u56fe\u7247 \uff0c \u5c06 \u6bcf\u4e2a \u50cf\u7d20 \u6620\u5c04 \u5230 \u7070\u5ea6 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u4e2d \u3002 \u7136\u800c \uff0c \u8f93\u51fa \u5e76 \u4e0d \u7b80\u5355 \u3002 \u76f8\u673a \u7684 \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u8fdb\u884c \u6620\u5c04 \u3002 \u5fc5\u987b \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u624d\u80fd \u7406\u89e3 \u3002 \u4e3a\u6b64 \uff0c \u53ea \u9700 \u5c06 \u56fe\u50cf \u4fdd\u5b58 \u4e3a RGB \u76f8\u673a \u7684 \u56fe\u50cf \uff0c \u4f46 \u5bf9 \u5176 \u5e94\u7528 carla . ColorConverter \u5373\u53ef \u3002 \u6df1\u5ea6 \u76f8\u673a \u6709 \u4e24\u79cd \u53ef\u7528 \u7684 \u8f6c\u6362 \u3002 carla . ColorConverter . Depth \u4ee5 \u6beb\u7c73 \u7ea7 \u7cbe\u5ea6 \u8f6c\u6362 \u539f\u59cb \u6df1\u5ea6 \u3002 carla . ColorConverter . LogarithmicDepth \u4e5f \u5177\u6709 \u6beb\u7c73 \u7ea7 \u7c92\u5ea6 \uff0c \u4f46 \u5728 \u8fd1\u8ddd \u8ddd\u79bb \u8fd1\u8ddd\u79bb \u5185 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \uff0c \u800c \u5bf9\u4e8e \u8f83\u8fdc \u7684 \u5143\u7d20 \u5219 \u7a0d\u5dee \u4e00\u4e9b \u3002 \u6df1\u5ea6 \u76f8\u673a \u7684 \u5c5e\u6027 \u4ec5 \u8bbe\u7f6e \u4e4b\u524d \u5728 RGB \u76f8\u673a \u4e2d \u6240\u8ff0 \u7684 \u5143\u7d20 \uff1a fov \u3001 image _ size _ x \u3001 image _ size _ y \u548c sensor _ tick \u3002 \u8be5 \u811a\u672c \u5c06 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u4e3a \u4e0e \u4e4b\u524d \u4f7f\u7528 \u7684 RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a Depth camera to ego vehicle . # -------------- depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ depth _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) Depth camera output . Simple conversion on the left , logarithmic on the right . \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6839\u636e \u5143\u7d20 \u7684 \u6807\u8bb0 \u65b9\u5f0f \u5c06 \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u6e32\u67d3 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 \u6807\u7b7e \u7531 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6839\u636e \u7528\u4e8e \u751f\u6210 \u7684 \u8d44\u6e90 \u7684 \u8def\u5f84 \u521b\u5efa \u3002 \u4f8b\u5982 \uff0c \u6807\u8bb0 \u4e3a Pedestrians \u7684 \u7f51\u683c \u4f53\u662f \u4f7f\u7528 \u5b58\u50a8 \u5728 Unreal / CarlaUE4 / Content / Static / Pedestrians \u4e2d \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u3002 \u4e0e \u4efb\u4f55 \u76f8\u673a \u4e00\u6837 \uff0c \u8f93\u51fa \u662f \u56fe\u50cf \uff0c \u4f46 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5305\u542b \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \u7f16\u7801 \u7684 \u6807\u7b7e \u3002 \u5fc5\u987b \u4f7f\u7528 ColorConverter . CityScapesPalette \u8f6c\u6362 \u6b64 \u539f\u59cb \u56fe\u50cf \u3002 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u6807\u7b7e \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8be5 \u76f8\u673a \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e0e \u6df1\u5ea6 \u76f8\u673a \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u8be5 \u811a\u672c \u8fd8 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a new semantic segmentation camera to my ego # -------------- sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) Semantic segmentation camera output \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5b83 \u521b\u5efa \u4e86 \u4e00\u4e2a \u4ee5 \u4e09\u7ef4 \u5f62\u5f0f \u6620\u5c04 \u573a\u666f \u7684 \u70b9\u4e91 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5305\u542b \u4e00\u7ec4 \u4ee5 \u7279\u5b9a \u9891\u7387 \u65cb\u8f6c \u7684 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u3002 \u6fc0\u5149 \u6295\u5c04 \u649e\u51fb \u8ddd\u79bb \uff0c \u5e76 \u5c06 \u6bcf\u6b21 \u5c04\u51fb \u5b58\u50a8 \u4e3a \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u9635\u5217 \u7684 \u5e03\u7f6e \u65b9\u5f0f \u3002 upper _ fov \u548c lower _ fov \u5206\u522b \u662f \u6700\u9ad8 \u548c \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \u3002 channels \u8bbe\u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 \u7684 fov \u5206\u5e03 \u3002 \u5176\u4ed6 \u5c5e\u6027 \u8bbe\u7f6e \u8be5\u70b9 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u3002 \u5b83\u4eec \u786e\u5b9a \u6bcf\u4e2a \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf \u4e00\u6b65 \u8ba1\u7b97 \u7684 \u70b9\u6570 \uff1a points _ per _ second / ( FPS * channels ) . range \u662f \u6355\u83b7 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u662f \u6bcf\u79d2 \u83b7\u5f97 \u7684 \u70b9\u6570 \u3002 \u8be5 \u6570\u91cf \u9664\u4ee5 channels \u7684 \u6570\u91cf \u3002 rotation _ frequency \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6bcf\u79d2 \u65cb\u8f6c \u7684 \u6b21\u6570 \u3002 \u70b9\u4e91 \u8f93\u51fa \u88ab \u63cf\u8ff0 \u4e3a [ carla . LidarMeasurement ] \u3002 \u5b83 \u53ef\u4ee5 \u4f5c\u4e3a [ carla . Location ] \u5217\u8868 \u8fdb\u884c \u8fed\u4ee3 \u6216 \u4fdd\u5b58 \u4e3a . ply \u6807\u51c6 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u3002 # -------------- # Add a new LIDAR sensor to my ego # -------------- lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) . ply \u8f93\u51fa \u53ef\u4ee5 \u4f7f\u7528 Meshlab \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 1 . \u5b89\u88c5 Meshlab \u3002 sudo apt - get update - y sudo apt - get install - y meshlab 2 . \u6253\u5f00 Meshlab \u3002 meshlab 3 . \u6253\u5f00 \u5176\u4e2d \u4e00\u4e2a . ply \u6587\u4ef6 \u3002 File > Import mesh ... \u7ecf\u8fc7 Meshlab \u5904\u7406 \u540e \u7684 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8f93\u51fa \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7c7b\u4f3c \u3002 \u5b83 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u5e76 \u5411 \u5185\u90e8 \u53d1\u5c04 \u6fc0\u5149 \u4ee5 \u5c04\u7ebf \u6295\u5c04 \u5176 \u5f71\u54cd \u3002 \u8f93\u51fa \u662f carla . RadarMeasurement \u3002 \u5b83 \u5305\u542b \u7531 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u68c0\u7d22 \u5230 \u7684 carla . RadarDetection \u7684 \u5217\u8868 \u3002 \u8fd9\u4e9b \u4e0d\u662f \u7a7a\u95f4 \u4e2d \u7684 \u70b9 \uff0c \u800c\u662f \u4f7f\u7528 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u8fdb\u884c \u7684 \u68c0\u6d4b \uff1a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u51b3\u5b9a \u4e86 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u7684 \u5b9a\u4f4d \u65b9\u5f0f \u3002 horizontal _ fov \u548c vertical _ fov \u786e\u5b9a \u5706\u9525 \u89c6\u56fe \u7684 \u632f\u5e45 \u3002 channels \u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 fov \u7684 \u5206\u5e03 \u3002 range \u662f \u6fc0\u5149 \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u8bbe\u7f6e \u8981 \u6355\u83b7 \u7684 \u70b9 \u7684 \u6570\u91cf \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u5728 \u6307\u5b9a \u7684 \u901a\u9053 \u4e4b\u95f4 \u5206\u914d \u3002 \u8be5 \u811a\u672c \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e0a \uff0c \u5e76 \u5411\u4e0a \u65cb\u8f6c \u4e00\u70b9 \u3002 \u8fd9\u6837 \uff0c \u8f93\u51fa \u5c06 \u6620\u5c04 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 horizontal _ fov \u662f \u589e\u52a0 \u7684 \uff0c vertical _ fov \u662f \u51cf\u5c11 \u7684 \u3002 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \u7279\u522b \u662f \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u901a\u5e38 \u79fb\u52a8 \u7684 \u9ad8\u5ea6 \u3002 \u8ddd\u79bb range \u4e5f \u4ece 100m \u66f4 \u6539\u4e3a 10m \uff0c \u4ee5\u4fbf \u4ec5 \u68c0\u7d22 \u8f66\u8f86 \u6b63\u524d \u524d\u65b9 \u6b63\u524d\u65b9 \u7684 \u6570\u636e \u3002 \u8fd9\u6b21 \u7684 \u56de\u8c03 \u6709\u70b9 \u590d\u6742 \uff0c \u663e\u793a \u4e86 \u5b83 \u7684 \u66f4 \u529f\u80fd \u591a\u529f\u80fd \u3002 \u5b83 \u5c06 \u5b9e\u65f6 \u7ed8\u5236 \u96f7\u8fbe \u6355\u83b7 \u7684 \u70b9 \u3002 \u8fd9\u4e9b \u70b9\u5c06 \u6839\u636e \u5b83\u4eec \u76f8\u5bf9 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u800c \u7740\u8272 \u3002 Blue \u8868\u793a \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 Red \u8868\u793a \u8fdc\u79bb \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 White \u4ee3\u8868 \u5173\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u9759\u6001 \u70b9 \u3002 # -------------- # Add a new radar sensor to my ego # -------------- rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.0 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \u96f7\u8fbe \u8f93\u51fa \u3002 \u8f66\u8f86 \u505c \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \uff0c \u56e0\u6b64 \u5176 \u524d\u9762 \u7684 \u9759\u6001 \u5143\u7d20 \u663e\u793a \u4e3a \u767d\u8272 \u3002 \u975e \u6e32\u67d3 \u6a21\u5f0f \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u5bf9\u4e8e \u8fd0\u884c \u521d\u59cb \u4eff\u771f \u975e\u5e38 \u6709\u7528 \uff0c \u7a0d\u540e \u5c06 \u518d\u6b21 \u64ad\u653e \u8be5 \u4eff\u771f \u4ee5 \u68c0\u7d22 \u6570\u636e \u3002 \u7279\u522b \u662f \u5982\u679c \u8be5 \u4eff\u771f \u5b58\u5728 \u4e00\u4e9b \u6781\u7aef \u6761\u4ef6 \uff0c \u4f8b\u5982 \u4ea4\u901a \u5bc6\u96c6 \u3002 \u5feb\u901f \u4eff\u771f \u7981\u7528 \u6e32\u67d3 \u5c06 \u4e3a \u4eff\u771f \u8282\u7701 \u5927\u91cf \u5de5\u4f5c \u3002 \u7531\u4e8e \u4e0d \u4f7f\u7528 GPU \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5168\u901f \u5de5\u4f5c \u3002 \u8fd9 \u5bf9\u4e8e \u5feb\u901f \u4eff\u771f \u590d\u6742 \u7684 \u6761\u4ef6 \u5f88 \u6709\u7528 \u3002 \u6700\u597d \u7684 \u65b9\u6cd5 \u662f \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4ee5 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u5f02\u6b65 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76\u4e14 \u4e0d \u8fdb\u884c \u6e32\u67d3 \uff0c \u4eff\u771f \u7684 \u552f\u4e00 \u9650\u5236 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u5185\u90e8 \u903b\u8f91 \u3002 \u76f8\u540c \u7684 config . py \u7528\u4e8e \u8bbe\u7f6e \u5730\u56fe \u53ef\u4ee5 \u7981\u7528 \u6e32\u67d3 \uff0c \u5e76 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- no - rendering -- delta - seconds 0.05 # Never greater than 0.1 s \u8b66\u544a \u5728 \u4f7f\u7528 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65 \u4e4b\u524d \uff0c \u8bf7 \u5148 \u9605\u8bfb \u6587\u6863 \u3002 \u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236 \u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u63d0\u4f9b \u4e86 \u4eff\u771f \u7684 \u6982\u8ff0 \u3002 \u5b83 \u4f7f\u7528 Pygame \u521b\u5efa \u4e86 \u4e00\u4e2a \u7b80\u7ea6 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff0c \u5b83 \u5c06 \u8ddf\u968f \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u4e0e manual _ control . py \u4e00\u8d77 \u4f7f\u7528 \u6765 \u751f\u6210 \u4e00\u6761 \u51e0\u4e4e \u6ca1\u6709 \u6210\u672c \u7684 \u8def\u7ebf \uff0c \u8bb0\u5f55 \u5b83 \uff0c \u7136\u540e \u56de\u653e \u5e76 \u5229\u7528 \u5b83 \u6765 \u6536\u96c6 \u6570\u636e \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py cd / opt / carla / PythonAPI / examples python3 no _ rendering _ mode . py -- no - rendering no _ rendering _ mode . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit - v , -- verbose print debug information -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- res WIDTHxHEIGHT window resolution ( default : 1280x720 ) -- filter PATTERN actor filter ( default : \" vehicle . * \" ) -- map TOWN start a new episode at the given TOWN -- no - rendering switch off server rendering -- show - triggers show trigger boxes of traffic signs -- show - connections show waypoint connections -- show - spawn - points show recommended spawn points no _ rendering _ mode . py working in Town07 \u7b14\u8bb0 \u5728 \u6b64 \u6a21\u5f0f \u4e0b \uff0c \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u68c0\u7d22 \u7a7a \u6570\u636e \u3002 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6ca1\u7528 \uff0c \u4f46 \u63a2\u6d4b \u6d4b\u5668 \u63a2\u6d4b\u5668 \u7b49 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e \u5f00\u59cb \u8bb0\u5f55 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u968f\u65f6 \u542f\u52a8 \u3002 \u811a\u672c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u8fd9\u6837 \u505a \uff0c \u4ee5\u4fbf \u6355\u6349 \u4e00\u5207 \uff0c \u5305\u62ec \u7b2c\u4e00 \u4e00\u6279 \u7b2c\u4e00\u6279 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4ea7\u751f \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u65e5\u5fd7 \u5c06 \u4fdd\u5b58 \u5230 CarlaUE4 / Saved \u3002 # -------------- # \u5f00\u59cb \u8bb0\u5f55 # -------------- client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' ) \u6355\u83b7 \u5e76 \u8bb0\u5f55 \u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u505a\u5230 \u8fd9 \u4e00\u70b9 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u56e0\u4e3a \u8ba9 \u5b83 \u56db\u5904 \u6f2b\u6e38 \u6216 \u624b\u52a8 \u63a7\u5236 \u800c \u51fa\u73b0 \u6545\u969c \u3002 \u4ea7\u751f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u5c06 \u88ab \u5373\u65f6 \u68c0\u7d22 \u3002 \u8bf7 \u52a1\u5fc5 \u5728 \u8bb0\u5f55 \u65f6 \u8fdb\u884c \u68c0\u67e5 \uff0c \u4ee5 \u786e\u4fdd \u4e00\u5207 \u8bbe\u7f6e \u6b63\u786e \u3002 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u3002 \u8fd9\u4f1a \u5c06 \u8f66\u8f86 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5b83 \u5c06 \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \u3002 \u8be5 \u811a\u672c \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u5e76 \u521b\u5efa \u4e00\u4e2a \u5faa\u73af \u4ee5 \u963b\u6b62 \u811a\u672c \u5b8c\u6210 \u3002 \u5f55\u5236 \u5c06 \u7ee7\u7eed \u8fdb\u884c \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u8ba1\u65f6 \u8ba1\u65f6\u5668 \u4ee5 \u5728 \u7279\u5b9a \u65f6\u95f4 \u540e \u5b8c\u6210 \u811a\u672c \u3002 # -------------- # \u6355\u83b7 \u6570\u636e # -------------- ego _ vehicle . set _ autopilot ( True ) print ( ' \\ nEgo autopilot enabled ' ) while True : world _ snapshot = world . wait _ for _ tick ( ) \u624b\u52a8 \u63a7\u5236 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u811a\u672c PythonAPI / examples / manual _ control . py \uff0c \u5728 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u9a7e\u9a76 \u81ea\u6211 \u8f66\u8f86 \u6765 \u521b\u5efa \u6240 \u9700 \u7684 \u8def\u7ebf \uff0c \u5e76 \u5728 \u5b8c\u6210 \u540e \u505c\u6b62 \u8bb0\u5f55 \u8bb0\u5f55\u4eea \u3002 tutorial _ ego . py \u811a\u672c \u53ef \u7528\u4e8e \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \uff0c \u4f46 \u8bf7 \u786e\u4fdd \u6ce8\u91ca \u5176\u4ed6 \u4ee3\u7801 \u7247\u6bb5 \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py \u7b14\u8bb0 \u4e3a\u4e86 \u907f\u514d \u6e32\u67d3 \u5e76 \u8282\u7701 \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \uff0c \u8bf7 \u542f\u7528 [ \u65e0 \u6e32\u67d3 \u6a21\u5f0f ] \u3002 \u8be5 \u811a\u672c / PythonAPI / examples / no _ rendering _ mode . py \u5728 \u521b\u5efa \u7b80\u5355 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \u65f6 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002 \u505c\u6b62 \u8bb0\u5f55 \u505c\u6b62 \u8c03\u7528 \u751a\u81f3 \u6bd4 \u5f00\u59cb \u8c03\u7528 \u66f4 \u7b80\u5355 \u3002 \u5f55\u97f3 \u5b8c\u6210 \u540e \uff0c \u5f55\u97f3 \u5c06 \u4fdd\u5b58 \u5728 \u524d\u9762 \u6307\u5b9a \u7684 \u8def\u5f84 \u4e2d \u3002 # -------------- # \u505c\u6b62 \u8bb0\u5f55 # -------------- client . stop _ recorder ( ) \u5229\u7528 \u8bb0\u5f55 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u4eff\u771f \u5df2\u7ecf \u88ab \u8bb0\u5f55 \u5f55\u4e0b \u4e0b\u6765 \u5f55\u4e0b\u6765 \u8bb0\u5f55\u4e0b\u6765 \u3002 \u73b0\u5728 \uff0c \u662f \u65f6\u5019 \u68c0\u67e5 \u8bb0\u5f55 \uff0c \u627e\u5230 \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u65f6\u523b \uff0c \u5e76 \u5229\u7528 \u5b83\u4eec \u3002 \u8fd9\u4e9b \u6b65\u9aa4 \u96c6\u4e2d \u5728 \u811a\u672c tutorial _ replay . py \u4e2d \u3002 \u8be5 \u5927\u7eb2 \u7531 \u6ce8\u91ca \u7684 \u4e0d\u540c \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u6784\u6210 \u3002 \u73b0\u5728 \u662f \u8fd0\u884c \u65b0 \u4eff\u771f \u7684 \u65f6\u5019 \u4e86 \u3002 . / CarlaUE4 . sh \u8981 \u91cd\u65b0 \u8fdb\u884c \u4eff\u771f \uff0c \u8bf7 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u5e76 \u8fd0\u884c \u5305\u542b \u64ad\u653e \u4ee3\u7801 \u7684 \u811a\u672c \u3002 python3 tuto _ replay . py \u67e5\u8be2 \u4e8b\u4ef6 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u6863 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u4e0d\u540c \u7684 \u67e5\u8be2 \u3002 \u603b\u4e4b \uff0c \u5b83\u4eec \u68c0\u7d22 \u7279\u5b9a \u4e8b\u4ef6 \u6216 \u5e27 \u7684 \u6570\u636e \u3002 \u4f7f\u7528 \u67e5\u8be2 \u6765 \u7814\u7a76 \u8bb0\u5f55 \u3002 \u627e\u5230 \u805a\u5149 \u5149\u706f \u805a\u5149\u706f \u65f6\u523b \uff0c \u8ffd\u8e2a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u5185\u5bb9 \u3002 # -------------- # Query the recording # -------------- # Show only the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording01 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording01 . log \" , 10 , 1 ) ) # Filter collisions between vehicles ' v ' and ' a ' any other type of actor . print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording01 . log \" , ' v ' , ' a ' ) ) \u7b14\u8bb0 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4e0d \u9700\u8981 \u6253\u5f00 \u5373\u53ef \u8fdb\u884c \u67e5\u8be2 \u3002 \u663e\u793a \u91cd\u8981 \u4e8b\u4ef6 \u7684 \u67e5\u8be2 \u3002 \u8fd9\u662f \u81ea\u6211 \u8f66\u8f86 \u4ea7\u751f \u7684 \u6846\u67b6 \u3002 \u67e5\u8be2 \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u963b\u6b62 \u3002 \u5728 \u6b64 \u4eff\u771f \u4e2d \uff0c \u81ea\u6211 \u8f66\u8f86 \u4fdd\u6301 \u963b\u585e \u72b6\u6001 \u963b\u585e\u72b6\u6001 100 \u79d2 \u3002 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u4e0e \u201c \u5176\u4ed6 \u201d \u7c7b\u578b \u7684 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u7684 \u67e5\u8be2 \u3002 \u7b14\u8bb0 \u83b7\u53d6 \u6bcf \u4e00\u5e27 \u7684 \u8be6\u7ec6 \u6587\u4ef6 \u4fe1\u606f \u53ef\u80fd \u4f1a \u8ba9 \u4eba \u4e0d\u77e5 \u4e0d\u77e5\u6240\u63aa \u3002 \u5728 \u5176\u4ed6 \u67e5\u8be2 \u4e4b\u540e \u4f7f\u7528 \u5b83 \u6765 \u4e86\u89e3 \u8981 \u67e5\u770b \u7684 \u4f4d\u7f6e \u3002 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u67e5\u8be2 \u4e4b\u540e \uff0c \u5728 \u4e71\u641e \u4e4b\u524d \u56de\u653e \u4e00\u4e9b \u4eff\u771f \u7247\u6bb5 \u53ef\u80fd \u662f \u4e2a \u597d \u4e3b\u610f \u3002 \u8fd9\u6837 \u505a \u975e\u5e38 \u7b80\u5355 \u975e\u5e38\u7b80\u5355 \uff0c \u800c\u4e14 \u975e\u5e38 \u6709 \u5e2e\u52a9 \u3002 \u4e86\u89e3 \u6709\u5173 \u4eff\u771f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4ee5\u540e \u8282\u7701 \u65f6\u95f4 \u8282\u7701\u65f6\u95f4 \u7684 \u6700\u4f73 \u65b9\u6cd5 \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u9009\u62e9 \u64ad\u653e \u7684 \u5f00\u59cb \u70b9 \u548c \u7ed3\u675f \u70b9 \u4ee5\u53ca \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 # -------------- # Reenact a fragment of the recording # -------------- client . replay _ file ( \" ~ / tutorial / recorder / recording01 . log \" , 45 , 10 , 0 ) \u4ee5\u4e0b \u662f \u73b0\u5728 \u53ef\u4ee5 \u505a \u7684 \u4e8b\u60c5 \u7684 \u5217\u8868 \u3002 \u4f7f\u7528 \u67e5\u8be2 \u4e2d \u7684 \u4fe1\u606f \u3002 \u627e\u51fa \u4e8b\u4ef6 \u4e2d \u6d89\u53ca \u7684 \u65f6\u523b \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u518d\u6b21 \u64ad\u653e \u3002 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u542f\u52a8 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u8ddf\u968f \u4e0d\u540c \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e0d\u540c \u7684 \u89c6\u89d2 \u5c06 \u663e\u793a \u67e5\u8be2 \u4e2d\u672a \u5305\u542b \u7684 \u65b0 \u4e8b\u4ef6 \u3002 \u81ea\u7531 \u5730 \u89c2\u5bdf \u5468\u56f4 \u7684 \u60c5\u51b5 \u3002 \u5c06 actor _ id \u8bbe \u4e3a 0 \uff0c \u5e76 \u83b7\u5f97 \u4eff\u771f \u7684 \u603b\u4f53 \u89c6\u56fe \u3002 \u501f\u52a9 \u8bb0\u5f55 \u5f55\u97f3 \uff0c \u60a8 \u53ef\u4ee5 \u968f\u65f6 \u968f\u5730 \u968f\u65f6\u968f\u5730 \u3002 \u7b14\u8bb0 \u5f53 \u8bb0\u5f55 \u505c\u6b62 \u65f6 \uff0c \u4eff\u771f \u4e0d\u4f1a \u505c\u6b62 \u3002 \u884c\u4eba \u5c06 \u9759\u6b62 \u4e0d\u52a8 \u9759\u6b62\u4e0d\u52a8 \uff0c \u8f66\u8f86 \u5c06 \u7ee7\u7eed \u884c\u9a76 \u3002 \u5982\u679c \u65e5\u5fd7 \u7ed3\u675f \u6216 \u64ad\u653e \u5230\u8fbe \u6307\u5b9a \u7684 \u7ed3\u675f \u70b9 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u68c0\u7d22 \u66f4 \u591a \u6570\u636e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5c06 \u5728 \u6b64 \u4eff\u771f \u4e2d \u91cd\u65b0 \u521b\u5efa \u4e0e \u539f\u59cb \u6761\u4ef6 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u6761\u4ef6 \u3002 \u8fd9 \u786e\u4fdd \u4e86 \u4e0d\u540c \u64ad\u653e \u4e2d \u7684 \u6570\u636e \u4e00\u81f4 \u3002 \u6536\u96c6 \u91cd\u8981 \u65f6\u523b \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4e8b\u4ef6 \u7684 \u5217\u8868 \u3002 \u9700\u8981 \u65f6 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u56de\u653e \u4eff\u771f \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u4e4b\u524d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u811a\u672c tutorial _ replay . py \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u793a\u4f8b \uff0c \u8fd9\u4e9b \u793a\u4f8b \u5df2 \u5728 \u201c \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u201d \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u5f7b\u5e95 \u89e3\u91ca \u3002 \u5176\u4ed6 \u5df2 \u5728 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u89e3\u91ca \u3002 \u6839\u636e \u9700\u8981 \u6dfb\u52a0 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6839\u636e \u9700\u8981 \u591a\u6b21 \u56de\u653e \u4eff\u771f \u5e76 \u68c0\u7d22 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u6570\u636e \u3002 \u6539\u53d8 \u5929\u6c14 \u8bb0\u5f55 \u5c06 \u91cd\u73b0 \u539f\u59cb \u7684 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u5728 \u4fdd\u6301 \u5176\u4f59 \u4e8b\u4ef6 \u76f8\u540c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6bd4\u8f83 \u5b83 \u5982\u4f55 \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u4f1a \u5f88 \u6709\u8da3 \u3002 \u83b7\u53d6 \u5f53\u524d \u5929\u6c14 \u5e76 \u81ea\u7531 \u4fee\u6539 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c carla . WeatherParameters \u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u9884\u8bbe \u3002 \u8be5 \u811a\u672c \u4f1a \u5c06 \u73af\u5883 \u66f4 \u6539\u4e3a \u6709\u96fe \u7684 \u65e5\u843d \u3002 # -------------- # \u4e3a \u56de\u653e \u6539\u53d8 \u5929\u6c14 # -------------- weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather ) \u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c \u65b0 \u7684 \u4eff\u771f \u4e0e \u8bb0\u5f55 \u6ca1\u6709 \u4e25\u683c \u7684 \u8054\u7cfb \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u4fee\u6539 \uff0c \u5373\u4f7f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \uff0c \u4eff\u771f \u4e5f \u4f1a \u7ee7\u7eed \u3002 \u8fd9 \u5bf9\u4e8e \u7528\u6237 \u6765\u8bf4 \u662f \u6709\u5229 \u53ef\u56fe \u5229\u53ef\u56fe \u6709\u5229\u53ef\u56fe \u7684 \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u56de\u653e \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u524d \u7684 \u4eff\u771f \u5e76 \u751f\u6210 \u6216 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6765 \u5f3a\u5236 \u6216 \u907f\u514d \u78b0\u649e \u3002 \u5728 \u7279\u5b9a \u65f6\u523b \u7ed3\u675f \u8bb0\u5f55 \u4e5f \u5f88 \u6709\u7528 \u3002 \u8fd9\u6837 \u505a \uff0c \u8f66\u8f86 \u53ef\u80fd \u4f1a \u91c7\u53d6 \u4e0d\u540c \u7684 \u8def\u5f84 \u3002 \u6539\u53d8 \u6761\u4ef6 \u5e76 \u6270\u4e71 \u4eff\u771f \u3002 \u6ca1\u6709 \u4ec0\u4e48 \u53ef \u5931\u53bb \u7684 \uff0c \u56e0\u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u521d\u59cb \u4eff\u771f \u59cb\u7ec8 \u53ef\u4ee5 \u91cd\u65b0 \u8fdb\u884c \u3002 \u8fd9\u662f \u5145\u5206 \u5206\u53d1 \u53d1\u6325 \u5145\u5206\u53d1\u6325 Carla \u6f5c\u529b \u7684 \u5173\u952e \u3002 \u6559\u7a0b \u811a\u672c \u4e0b\u9762 \u662f \u6536\u96c6 \u672c \u6559\u7a0b \u4ee3\u7801 \u7247\u6bb5 \u7684 \u4e24\u4e2a \u811a\u672c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4ee3\u7801 \u90fd \u5e26\u6709 \u6ce8\u91ca \uff0c \u56e0\u4e3a \u9700\u8981 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 \u4ee5 \u9002\u5e94 \u7279\u5b9a \u76ee\u7684 \u3002 tutorial _ ego . py import glob import os import sys import time try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) args = argparser . parse _ args ( ) logging . basicConfig ( format = ' % ( levelname ) s : % ( message ) s ' , level = logging . INFO ) client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None ego _ col = None ego _ lane = None ego _ obs = None ego _ gnss = None ego _ imu = None # -------------- # Start recording # -------------- \" \" \" client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' ) \" \" \" # -------------- # Spawn ego vehicle # -------------- \" \" \" ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' ) \" \" \" # -------------- # Add a RGB camera sensor to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add collision sensor to ego vehicle . # -------------- \" \" \" col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) \" \" \" # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- \" \" \" lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) \" \" \" # -------------- # Add Obstacle sensor to ego vehicle . # -------------- \" \" \" obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) \" \" \" # -------------- # Add GNSS sensor to ego vehicle . # -------------- \" \" \" gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) \" \" \" # -------------- # Add IMU sensor to ego vehicle . # -------------- \" \" \" imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Enable autopilot for ego vehicle # -------------- \" \" \" ego _ vehicle . set _ autopilot ( True ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Stop recording and destroy actors # -------------- client . stop _ recorder ( ) if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if ego _ col is not None : ego _ col . stop ( ) ego _ col . destroy ( ) if ego _ lane is not None : ego _ lane . stop ( ) ego _ lane . destroy ( ) if ego _ obs is not None : ego _ obs . stop ( ) ego _ obs . destroy ( ) if ego _ gnss is not None : ego _ gnss . stop ( ) ego _ gnss . destroy ( ) if ego _ imu is not None : ego _ imu . stop ( ) ego _ imu . destroy ( ) ego _ vehicle . destroy ( ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ ego . ' ) tutorial _ replay . py import glob import os import sys import time import math import weakref try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None depth _ cam = None depth _ cam02 = None sem _ cam = None rad _ ego = None lidar _ sen = None # -------------- # Query the recording # -------------- \" \" \" # Show the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording05 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . # print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording04 . log \" , 10 , 1 ) ) # Show collisions between any type of actor . # print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording04 . log \" , ' v ' , ' a ' ) ) \" \" \" # -------------- # Reenact a fragment of the recording # -------------- \" \" \" client . replay _ file ( \" ~ / tutorial / recorder / recording03 . log \" , 0 , 30 , 0 ) \" \" \" # -------------- # Set playback simulation conditions # -------------- \" \" \" ego _ vehicle = world . get _ actor ( 322 ) # Store the ID from the simulation or query the recording to find out \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Change weather conditions # -------------- \" \" \" weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather ) \" \" \" # -------------- # Add a RGB camera to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ rgb _ output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add a Logarithmic Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de _ log / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) \" \" \" # -------------- # Add a Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam02 = None depth _ bp02 = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp02 . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp02 . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp02 . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location02 = carla . Location ( 2 , 0 , 1 ) depth _ rotation02 = carla . Rotation ( 0 , 180 , 0 ) depth _ transform02 = carla . Transform ( depth _ location02 , depth _ rotation02 ) depth _ cam02 = world . spawn _ actor ( depth _ bp02 , depth _ transform02 , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam02 . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de / %. 6d . jpg ' % image . frame , carla . ColorConverter . Depth ) ) \" \" \" # -------------- # Add a new semantic segmentation camera to ego vehicle # -------------- \" \" \" sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) \" \" \" # -------------- # Add a new radar sensor to ego vehicle # -------------- \" \" \" rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.8 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \" \" \" # -------------- # Add a new LIDAR sensor to ego vehicle # -------------- \" \" \" lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' / home / adas / Desktop / tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Destroy actors # -------------- if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if depth _ cam is not None : depth _ cam . stop ( ) depth _ cam . destroy ( ) if sem _ cam is not None : sem _ cam . stop ( ) sem _ cam . destroy ( ) if rad _ ego is not None : rad _ ego . stop ( ) rad _ ego . destroy ( ) if lidar _ sen is not None : lidar _ sen . stop ( ) lidar _ sen . destroy ( ) ego _ vehicle . destroy ( ) print ( ' \\ nNothing to be done . ' ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ replay . ' ) \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u4ece \u4eff\u771f \u4e2d \u6b63\u786e \u68c0\u7d22 \u6570\u636e \u7684 \u603b\u7ed3 \u3002 \u786e\u4fdd \u5c1d\u8bd5 \u4e00\u4e0b \uff0c \u6539\u53d8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6761\u4ef6 \uff0c \u5c1d\u8bd5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_1","text":"\u5728 Carla \u4e2d \uff0c \u5b66\u4e60 \u4e00\u79cd \u6709\u6548 \u7684 \u65b9\u6cd5 \u6765 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u8fd9\u4e2a \u6574\u4f53 \u6559\u7a0b \u9002\u5408 \u65b0\u624b \u548c \u7ecf\u9a8c \u4e30\u5bcc \u7ecf\u9a8c\u4e30\u5bcc \u7684 \u7528\u6237 \u3002 \u5b83 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \uff0c \u9010\u6e10 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 Carla \u4e2d \u53ef\u7528 \u7684 \u8bb8\u591a \u9009\u9879 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u548c \u6d41\u91cf \u521d\u59cb \u521d\u59cb\u5316 \u4eff\u771f \u3002 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \u5c06 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \uff0c \u53ef\u9009 \u53ef\u9009\u5730 \u914d\u5907 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bb0\u5f55 \u4eff\u771f \uff0c \u4ee5\u4fbf \u4ee5\u540e \u67e5\u8be2 \u4ee5 \u627e\u5230 \u4eae\u70b9 \u3002 \u4e4b\u540e \uff0c \u539f\u59cb \u4eff\u771f \u88ab \u56de\u653e \uff0c \u5e76 \u88ab \u5229\u7528 \u5230 \u6781\u9650 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u7d22 \u4e00\u81f4 \u7684 \u6570\u636e \u3002 \u5929\u6c14 \u6761\u4ef6 \u662f \u53ef\u4ee5 \u6539\u53d8 \u7684 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u751a\u81f3 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u5177\u6709 \u4e0d\u540c \u8f93\u51fa \u7684 \u7279\u5b9a \u573a\u666f \u3002 \u6982\u8ff0 \u8bbe\u7f6e \u4eff\u771f \u5730\u56fe \u8bbe\u7f6e \u5929\u6c14 \u8bbe\u7f6e \u8bbe\u7f6e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf Carla \u4ea4\u901a \u548c \u884c\u4eba SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a \u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u653e\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6df1\u5ea6 \u76f8\u673a \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e \u6e32\u67d3 \u6a21\u5f0f \u5feb\u901f \u4eff\u771f \u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236 \u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e \u5f00\u59cb \u8bb0\u5f55 \u6355\u83b7 \u5e76 \u8bb0\u5f55 \u505c\u6b62 \u8bb0\u5f55 \u5229\u7528 \u8bb0\u5f55 \u67e5\u8be2 \u4e8b\u4ef6 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u68c0\u7d22 \u66f4 \u591a \u6570\u636e \u6539\u53d8 \u5929\u6c14 \u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c \u6559\u7a0b \u811a\u672c","title":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_2","text":"\u5728 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u7684 \u8fc7\u7a0b \u4e2d \u5b58\u5728 \u4e00\u4e9b \u5e38\u89c1 \u9519\u8bef \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u5145\u65a5 \u7740 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5b58\u50a8 \u65e0\u7528 \u7684 \u6570\u636e \u6216 \u52aa\u529b \u5bfb\u627e \u7279\u5b9a \u4e8b\u4ef6 \u90fd \u662f \u4e00\u4e9b \u4f8b\u5b50 \u3002 \u7136\u800c \uff0c \u53ef\u4ee5 \u63d0\u4f9b \u8be5 \u8fc7\u7a0b \u7684 \u4e00\u4e9b \u6982\u8981 \u3002 \u76ee\u6807 \u662f \u786e\u4fdd \u6570\u636e \u53ef\u4ee5 \u68c0\u7d22 \u548c \u590d\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u968f\u610f \u68c0\u67e5 \u68c0\u67e5\u548c \u66f4\u6539 \u4eff\u771f \u3002 \u7b14\u8bb0 \u672c \u6559\u7a0b \u4f7f\u7528 Carla 0.9 . 8 deb \u5305 \u3002 \u6839\u636e \u60a8 \u7684 Carla \u7248\u672c \u548c \u5b89\u88c5 \uff0c \u53ef\u80fd \u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 \uff0c \u7279\u522b \u662f \u5728 \u8def\u5f84 \u65b9\u9762 \u3002 \u672c \u6559\u7a0b \u4e3a \u4e0d\u540c \u6b65\u9aa4 \u63d0\u4f9b \u4e86 \u591a\u79cd \u9009\u9879 \u3002 \u4e00\u76f4 \u4ee5\u6765 \uff0c \u90fd \u4f1a \u63d0\u5230 \u4e0d\u540c \u7684 \u811a\u672c \u3002 \u5e76 \u4e0d\u662f \u6240\u6709 \u7684 \u90fd \u4f1a \u88ab \u4f7f\u7528 \uff0c \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5177\u4f53 \u7684 \u7528\u4f8b \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5df2 \u5728 Carla \u4e2d \u63d0\u4f9b \u7528\u4e8e \u901a\u7528 \u76ee\u7684 \u3002 config . py \u66f4\u6539 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5730\u56fe \u3001 \u6e32\u67d3 \u9009\u9879 \u3001 \u8bbe\u7f6e \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f ... carla / PythonAPI / util / config . py dynamic _ weather . py \u521b\u5efa \u6709\u8da3 \u7684 \u5929\u6c14 \u6761\u4ef6 \u3002 carla / PythonAPI / examples / dynamic _ weather . py spawn _ npc . py spawn _ npc . py \u751f\u6210 \u4e00\u4e9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 carla / PythonAPI / examples / spawn _ npc . py manual _ control . py \u751f\u6210 \u4e00\u4e2a \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u63d0\u4f9b \u5bf9 \u5176 \u7684 \u63a7\u5236 \u3002 carla / PythonAPI / examples / manual _ control . py \u4f46\u662f \uff0c \u6559\u7a0b \u4e2d \u63d0\u5230 \u7684 \u4e24\u4e2a \u811a\u672c \u5728 Carla \u4e2d \u627e \u4e0d\u5230 \u3002 \u5b83\u4eec \u5305\u542b \u5f15\u7528 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8fd9\u6709 \u53cc\u91cd \u76ee\u7684 \u3002 \u9996\u5148 \uff0c \u9f13\u52b1 \u7528\u6237 \u6784\u5efa \u81ea\u5df1 \u7684 \u811a\u672c \u3002 \u5145\u5206 \u7406\u89e3 \u4ee3\u7801 \u7684 \u4f5c\u7528 \u975e\u5e38 \u91cd\u8981 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u672c \u6559\u7a0b \u53ea\u662f \u4e00\u4e2a \u5927\u7eb2 \uff0c \u53ef\u80fd \u800c\u4e14 \u5e94\u8be5 \u6839\u636e \u7528\u6237 \u7684 \u559c\u597d \u800c \u6709 \u5f88\u5927 \u7684 \u4e0d\u540c \u3002 \u8fd9 \u4e24\u4e2a \u811a\u672c \u53ea\u662f \u4e00\u4e2a \u793a\u4f8b \u3002 tutorial _ ego . py \u751f\u6210 \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u88ab \u653e\u7f6e \u5728 \u751f\u6210 \u4f4d\u7f6e \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ece \u4e00 \u5f00\u59cb \u5c31 \u542f\u52a8 \uff0c \u5e76 \u5728 \u811a\u672c \u5b8c\u6210 \u65f6 \u505c\u6b62 \u3002 tutorial _ replay . py \u91cd\u65b0 \u6267\u884c tutorial _ ego . py \u8bb0\u5f55 \u7684 \u4eff\u771f \u3002 \u6709 \u4e0d\u540c \u7684 \u4ee3\u7801 \u7247\u6bb5 \u53ef\u4ee5 \u67e5\u8be2 \u8bb0\u5f55 \u3001 \u751f\u6210 \u4e00\u4e9b \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6539\u53d8 \u5929\u6c14 \u6761\u4ef6 \u4ee5\u53ca \u91cd\u65b0 \u6267\u884c \u8bb0\u5f55 \u8bb0\u5f55\u7247 \u6bb5 \u3002 \u5b8c\u6574 \u7684 \u4ee3\u7801 \u53ef\u4ee5 \u5728 \u6559\u7a0b \u7684 \u6700\u540e \u90e8\u5206 \u627e\u5230 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u5e76 \u4e0d \u4e25\u683c \uff0c \u800c\u662f \u53ef\u4ee5 \u5b9a\u5236 \u7684 \u3002 \u5728 Carla \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u529f\u80fd \u6b63\u5982 \u7528\u6237 \u6240 \u5e0c\u671b \u7684 \u90a3\u6837 \u5f3a\u5927 \u3002 \u91cd\u8981 \u672c \u6559\u7a0b \u9700\u8981 \u4e00\u4e9b Python \u77e5\u8bc6 \u3002","title":"\u6982\u8ff0"},{"location":"tuto_G_retrieve_data/#_3","text":"\u8981 \u505a \u7684 \u7b2c\u4e00 \u4e00\u4ef6 \u7b2c\u4e00\u4ef6 \u4e8b\u662f \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u6240 \u9700 \u7684 \u73af\u5883 \u3002 \u8fd0\u884c Carla \u3002 cd / opt / carla / bin . / CarlaUE . sh","title":"\u8bbe\u7f6e \u4eff\u771f"},{"location":"tuto_G_retrieve_data/#_4","text":"\u9009\u62e9 \u8981 \u8fd0\u884c \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u67e5\u770b \u5730\u56fe \u6587\u6863 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u5176 \u7279\u5b9a \u5c5e\u6027 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u9009\u62e9 Town07 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u3002 \u4f7f\u7528 config . py \u811a\u672c \u66f4\u6539 \u5730\u56fe \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- map Town01 \u8be5 \u811a\u672c \u53ef\u4ee5 \u542f\u7528 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c06 \u5728 \u6559\u7a0b \u4e2d \u63d0\u53ca \uff0c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u4f1a \u3002 \u4e0b\u9762 \u6709 \u4e00\u4e2a \u7b80\u77ed \u7684 \u603b\u7ed3 \u3002 config . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host Carla Simulator ( default : localhost ) - p P , -- port P TCP port of Carla Simulator ( default : 2000 ) - d , -- default set default settings - m MAP , -- map MAP load a new map , use -- list to see available maps - r , -- reload - map reload current map -- delta - seconds S set fixed delta seconds , zero for variable frame rate -- fps N set fixed FPS , zero for variable FPS ( similar to -- delta - seconds ) -- rendering enable rendering -- no - rendering disable rendering -- no - sync disable synchronous mode -- weather WEATHER set weather preset , use -- list to see available presets - i , -- inspect inspect simulation - l , -- list list available options - b FILTER , -- list - blueprints FILTER list available blueprints matching FILTER ( use ' * ' to list them all ) - x XODR _ FILE _ PATH , -- xodr - path XODR _ FILE _ PATH load a new map with a minimum physical road representation of the provided OpenDRIVE Town07 \u7684 \u7a7a\u4e2d \u89c6\u89d2","title":"\u5730\u56fe \u8bbe\u7f6e"},{"location":"tuto_G_retrieve_data/#_5","text":"\u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u9002\u5408 \u5b83 \u7684 \u7279\u5b9a \u5929\u6c14 \uff0c \u4f46\u662f \u53ef\u4ee5 \u968f\u610f \u8bbe\u7f6e \u3002 \u6709 \u4e24\u4e2a \u811a\u672c \u63d0\u4f9b \u4e86 \u89e3\u51b3 \u6b64 \u95ee\u9898 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e86 \u52a8\u6001 \u5929\u6c14 \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u60c5\u51b5 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u53e6 \u4e00\u4e2a \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u6761\u4ef6 \u3002 \u8fd8 \u53ef\u4ee5 \u5bf9 \u5929\u6c14 \u6761\u4ef6 \u8fdb\u884c \u7f16\u7801 \u3002 \u7a0d\u540e \u5929\u6c14 \u6761\u4ef6 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u65f6 \u5c06 \u5bf9\u6b64 \u8fdb\u884c \u4ecb\u7ecd \u3002 \u8bbe\u7f6e \u52a8\u6001 \u5929\u6c14 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c dynamic _ weather . py \u3002 \u8be5 \u811a\u672c \u5141\u8bb8 \u8bbe\u7f6e \u5929\u6c14 \u53d8\u5316 \u7684 \u6bd4\u7387 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u662f 1.0 \u3002 cd / opt / carla / PythonAPI / examples python3 dynamic _ weather . py -- speed 1.0 \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6761\u4ef6 \u4f7f\u7528 \u811a\u672c environment . py \u3002 \u6709 \u5f88\u591a \u53ef\u80fd \u7684 \u8bbe\u7f6e \u3002 \u67e5\u770b \u53ef \u9009 \u53c2\u6570 \u4ee5\u53ca carla . WeatherParameters \u7684 \u6587\u6863 \u3002 cd / opt / carla / PythonAPI / util python3 environment . py -- clouds 100 -- rain 80 -- wetness 100 -- puddles 60 -- wind 80 -- fog 50 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] \u4f7f\u7528 \u5929\u6c14 \u6539\u53d8","title":"\u5929\u6c14 \u8bbe\u7f6e"},{"location":"tuto_G_retrieve_data/#_6","text":"\u4eff\u771f \u4ea4\u901a \u662f \u8ba9 \u5730\u56fe \u6829\u6829 \u6829\u6829\u5982\u751f \u7684 \u6700\u4f73 \u65b9\u6cd5 \u4e4b\u4e00 \u3002 \u8fd8 \u9700\u8981 \u68c0\u7d22 \u57ce\u5e02 \u73af\u5883 \u7684 \u6570\u636e \u3002 \u5728 Carla \u4e2d\u6709 \u4e0d\u540c \u7684 \u9009\u62e9 \u53ef\u4ee5 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002","title":"\u8bbe\u7f6e \u4ea4\u901a\u6d41\u91cf"},{"location":"tuto_G_retrieve_data/#carla","text":"Carla \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6a21\u5757 \u7ba1\u7406 \u3002 \u81f3\u4e8e \u884c\u4eba \uff0c \u4ed6\u4eec \u6bcf\u4e2a \u4eba \u90fd \u6709 \u81ea\u5df1 \u7684 carla . WalkerAIController \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \uff0c \u7136\u540e \u8fd0\u884c spawn _ npc . py \u6765 \u751f\u6210 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u8ba9 \u6211\u4eec \u751f\u6210 50 \u8f86\u8f66 \u548c \u76f8\u540c \u6570\u91cf \u7684 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 cd / opt / carla / PythonAPI / examples python3 spawn _ npc . py - n 50 - w 50 -- safe spawn _ npc . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - n N , -- number - of - vehicles N number of vehicles ( default : 10 ) - w W , -- number - of - walkers W number of walkers ( default : 50 ) -- safe avoid spawning vehicles prone to accidents -- filterv PATTERN vehicles filter ( default : \" vehicle . * \" ) -- filterw PATTERN pedestrians filter ( default : \" walker . pedestrian . * \" ) - tm _ p P , -- tm - port P port to communicate with TM ( default : 8000 ) -- async Asynchronous mode execution \u751f\u6210 \u8f66\u8f86 \u4ee5 \u4eff\u771f \u4ea4\u901a \u3002","title":"Carla \u4ea4\u901a \u548c \u884c\u4eba"},{"location":"tuto_G_retrieve_data/#sumo","text":"Carla \u53ef\u4ee5 \u4e0e SUMO \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u8fd9 \u5141\u8bb8 \u5728 SUMO \u4e2d \u521b\u5efa \u5c06 \u4f20\u64ad \u5230 Carla \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u8fd9\u79cd \u8054\u5408 \u4eff\u771f \u662f \u53cc\u5411 \u7684 \u3002 \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u8f66\u8f86 \u5c06 \u5728 SUMO \u4e2d \u751f\u6210 \u3002 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u5177\u4f53 \u6587\u6863 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u3002 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e Carla 0.9 . 8 \u53ca \u66f4 \u9ad8 \u7248\u672c \u7684 Town01 \u3001 Town04 \u548c Town05 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u6700 \u7a33\u5b9a \u7684 \u3002 \u7b14\u8bb0 \u8054\u5408 \u4eff\u771f \u5c06 \u5728 Carla \u4e2d \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u9996\u5148 \uff0c \u5b89\u88c5 SUMO \u3002 sudo add - apt - repository ppa : sumo / stable sudo apt - get update sudo apt - get install sumo sumo - tools sumo - doc \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SUMO _ HOME \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc \u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6253\u5f00 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8fd0\u884c SUMO - Carla \u540c\u6b65 \u811a\u672c \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town01 . sumocfg -- sumo - gui SUMO \u7a97\u53e3 \u5e94\u8be5 \u5df2 \u6253\u5f00 \u3002 \u6309 \u201c \u8fd0\u884c \u201d \u4ee5 \u5728 \u4e24\u4e2a \u4eff\u771f \u4e2d \u542f\u52a8 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 > \" Play \" on SUMO window . \u8be5 \u811a\u672c \u751f\u6210 \u7684 \u6d41\u91cf \u662f Carla \u56e2\u961f \u521b\u5efa \u7684 \u793a\u4f8b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u6cbf\u7740 \u76f8\u540c \u7684 \u8def\u7ebf \u751f\u6210 \u76f8\u540c \u7684 \u8f66\u8f86 \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 SUMO \u4e2d \u66f4\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u3002 SUMO \u548c Carla \u534f\u540c \u4eff\u771f \u4ea4\u901a \u3002 \u8b66\u544a \u76ee\u524d \uff0c SUMO \u8054\u5408 \u4eff\u771f \u8fd8\u662f \u6d4b\u8bd5 \u6d4b\u8bd5\u7248 \u529f\u80fd \u3002 \u8f66\u8f86 \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \uff0c \u4e5f \u4e0d \u8003\u8651 Carla \u4ea4\u901a \u4ea4\u901a\u706f \u3002","title":"SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a"},{"location":"tuto_G_retrieve_data/#_7","text":"\u4ece \u73b0\u5728 \u5230 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \u7684 \u4e00\u523b \u90a3\u4e00\u523b \uff0c \u5c06\u4f1a \u6709 \u4e00\u4e9b \u5c5e\u4e8e tutorial _ ego . py \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8be5 \u811a\u672c \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef \u9009 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76 \u8bb0\u5f55 \u4eff\u771f \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002","title":"\u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86"},{"location":"tuto_G_retrieve_data/#_8","text":"\u7528\u6237 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5728 Carla \u4e2d \u901a\u5e38 \u901a\u8fc7 \u5c06 \u5c5e\u6027 role _ name \u8bbe\u7f6e \u4e3a ego \u6765 \u533a\u5206 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5176\u4ed6 \u5c5e\u6027 \uff0c \u5176\u4e2d \u4e00\u4e9b \u5177\u6709 \u63a8\u8350 \u63a8\u8350\u503c \u3002 \u4e0b\u9762 \uff0c \u4ece \u84dd \u56fe\u5e93 \u4e2d \u68c0\u7d22 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u6a21\u578b \uff0c \u5e76 \u4f7f\u7528 \u968f\u673a \u63a8\u8350 \u7684 \u989c\u8272 \u751f\u6210 \u3002 \u9009\u62e9 \u5730\u56fe \u63a8\u8350 \u7684 \u751f\u6210 \u70b9 \u4e4b\u4e00 \u6765 \u653e\u7f6e \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spawn ego vehicle # -------------- ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' )","title":"\u751f\u6210 \u81ea\u6211 \u8f66\u8f86"},{"location":"tuto_G_retrieve_data/#_9","text":"\u89c2\u5bdf \u89c2\u5bdf\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u4eff\u771f \u89c6\u56fe \u3002 \u901a\u8fc7 \u811a\u672c \u79fb\u52a8 \u5b83 \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5b83 \u53ef\u80fd \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u627e\u5230 \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spectator on ego position # -------------- spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) )","title":"\u653e\u7f6e \u89c2\u5bdf\u8005"},{"location":"tuto_G_retrieve_data/#_10","text":"\u751f\u6210 \u4efb\u4f55 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fc7\u7a0b \u90fd \u975e\u5e38 \u76f8\u4f3c \u3002 1 . \u4f7f\u7528 \u5e93 \u67e5\u627e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 2 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u4e00\u70b9 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5c5e\u6027 \u5c06 \u5851\u9020 \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u3002 3 . \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u81f3 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8be5 \u53d8\u6362 \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u3002 carla . AttachmentType \u5c06 \u786e\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f4d\u7f6e \u7684 \u66f4\u65b0 \u65b9\u5f0f \u3002 4 . \u6dfb\u52a0 listen ( ) \u65b9\u6cd5 \u3002 \u8fd9\u662f \u5173\u952e \u8981\u7d20 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fa6\u542c \u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u7684 lambda \u65b9\u6cd5 \u3002 \u53c2\u6570 \u662f \u68c0\u7d22 \u5230 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u7262\u8bb0 \u8fd9\u4e00 \u57fa\u672c \u51c6\u5219 \u57fa\u672c\u51c6\u5219 \uff0c \u8ba9 \u6211\u4eec \u4e3a \u81ea\u6211 \u8f66\u8f86 \u8bbe\u7f6e \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002","title":"\u8bbe\u7f6e \u57fa\u672c \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#rgb","text":"RGB \u76f8\u673a \u751f\u6210 \u903c\u771f \u7684 \u573a\u666f \u56fe\u7247 \u3002 \u5b83 \u662f \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef \u8bbe\u7f6e \u5c5e\u6027 \u8f83 \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f46 \u5b83 \u4e5f \u662f \u4e00\u4e2a \u57fa\u672c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5b83 \u5e94\u8be5 \u88ab \u7406\u89e3 \u4e3a \u4e00\u4e2a \u771f\u6b63 \u7684 \u76f8\u673a \uff0c \u5177\u6709 \u8bf8\u5982 focal _ distance \u3001 shutter _ speed \u6216 gamma \u786e\u5b9a \u5176 \u5185\u90e8 \u5982\u4f55 \u5de5\u4f5c \u7684 \u5c5e\u6027 \u3002 \u8fd8\u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5c5e\u6027 \u6765 \u5b9a\u4e49 \u955c\u5934 \u7578\u53d8 \uff0c \u4ee5\u53ca \u8bb8\u591a \u9ad8\u7ea7 \u5c5e\u6027 \u3002 \u4f8b\u5982 \uff0c lens _ circle _ multiplier \u53ef\u4ee5 \u7528\u6765 \u5b9e\u73b0 \u7c7b\u4f3c \u4e8e \u773c\u775b \u9c7c \u955c\u5934 \u7684 \u6548\u679c \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u811a\u672c \u4ec5 \u8bbe\u7f6e \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u5e38\u7528 \u7684 \u5c5e\u6027 \u3002 image _ size _ x \u548c image _ size _ y \u5c06 \u6539\u53d8 \u8f93\u51fa \u56fe\u50cf \u7684 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u3002 fov \u662f \u76f8\u673a \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u540e \uff0c \u5c31 \u53ef\u4ee5 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e86 \u3002 \u811a\u672c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e2d \uff0c \u5e76 \u6307\u5411 \u524d\u65b9 \u3002 \u5b83 \u5c06 \u6355\u6349 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 \u6bcf \u4e00\u6b65 \u90fd \u4f1a \u4ee5 carla . Image \u7684 \u5f62\u5f0f \u68c0\u7d22 \u6570\u636e \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b83\u4eec \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u8def\u5f84 \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u6bcf\u5f20 \u56fe\u50cf \u7684 \u540d\u79f0 \u5747 \u6839\u636e \u62cd\u6444 \u955c\u5934 \u7684 \u4eff\u771f \u5e27 \u8fdb\u884c \u7f16\u7801 \u3002 # -------------- # Spawn attached RGB camera # -------------- cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / output / %. 6d . jpg ' % image . frame ) ) RGB camera output","title":"RGB \u76f8\u673a"},{"location":"tuto_G_retrieve_data/#_11","text":"\u5f53 \u5b83\u4eec \u6240 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u6570\u636e \u3002 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u4e3a \u4e09\u79cd \u7c7b\u578b \uff0c \u6bcf\u79cd \u90fd \u63cf\u8ff0 \u4e00\u79cd \u7c7b\u578b \u7684 \u4e8b\u4ef6 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002 \u4ed6\u4eec \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u51b3\u5b9a \u8981 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u7684 \u54ea \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u663e\u5f0f \u67e5\u8be2 \u51b2\u7a81 \u3002 \u8fd9\u662f \u51c6\u5907 \u6253\u5370 \u7684 \u3002 \u53ea\u6709 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \u6709 \u9700\u8981 \u8bbe\u7f6e \u7684 \u5c5e\u6027 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u91cd\u8981 \u7684 \u5185\u5bb9 \u3002 sensor _ tick \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 x \u79d2\u949f \u540e \u68c0\u7d22 \u6570\u636e \u3002 \u8fd9\u662f \u68c0\u7d22 \u6bcf \u4e00\u6b65 \u6570\u636e \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5e38\u89c1 \u5c5e\u6027 \u3002 distance \u548c hit - radius \u5851\u9020 \u7528\u4e8e \u68c0\u6d4b \u524d\u65b9 \u969c\u788d \u969c\u788d\u7269 \u7684 \u8c03\u8bd5 \u7ebf \u3002 only _ dynamics \u786e\u5b9a \u662f\u5426 \u5e94 \u8003\u8651 \u9759\u6001 \u5bf9\u8c61 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4efb\u4f55 \u5bf9\u8c61 \u90fd \u4f1a \u88ab \u8003\u8651 \u3002 \u8be5 \u811a\u672c \u5c06 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 \u5982\u679c \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u9759\u6001 \u7269\u4f53 \u53d1\u751f \u78b0\u649e \uff0c \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u68c0\u6d4b \u5230 \u3002 # -------------- # Add collision sensor to ego vehicle . # -------------- col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) # -------------- # Add Obstacle sensor to ego vehicle . # -------------- obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) Output for detector sensors","title":"\u68c0\u6d4b\u5668"},{"location":"tuto_G_retrieve_data/#_12","text":"\u6682\u65f6 \u53ea \u8003\u8651 \u8be5\u7c7b \u522b\u7684 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u4e00\u822c \u6d4b\u91cf \u503c \uff0c \u8fd9 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u8f66\u8f86 \u5bf9\u8c61 \u4e3a \u4e2d\u5fc3 \u751f\u6210 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u8bbe\u7f6e \u6d4b\u91cf \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u6216 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 \u8fd9 \u5bf9\u4e8e \u83b7\u5f97 \u66f4 \u73b0\u5b9e \u7684 \u63aa\u65bd \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5728 tutorial _ ego . py \u4e2d \u53ea \u8bbe\u7f6e \u4e86 \u4e00\u4e2a \u5c5e\u6027 \u3002 sensor _ tick . \u7531\u4e8e \u6b64 \u6d4b\u91cf \u503c \u5728 \u6b65\u9aa4 \u4e4b\u95f4 \u4e0d \u5e94\u6709 \u663e \u7740 \u53d8\u5316 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u7ecf\u5e38 \u68c0\u7d22 \u6570\u636e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u8bbe\u7f6e \u4e3a \u6bcf \u4e09\u79d2 \u6253\u5370 \u4e00\u6b21 \u3002 # -------------- # Add GNSS sensor to ego vehicle . # -------------- gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) # -------------- # Add IMU sensor to ego vehicle . # -------------- imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) GNSS and IMU sensors output","title":"\u5176\u4ed6 \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_13","text":"\u811a\u672c tutorial _ replay . py \u9664 \u5176\u4ed6 \u5916 \u8fd8 \u5305\u542b \u66f4 \u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5b9a\u4e49 \u3002 \u5b83\u4eec \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u57fa\u672c \u7684 \u76f8\u540c \uff0c \u4f46 \u7406\u89e3 \u53ef\u80fd \u6709\u70b9 \u56f0\u96be \u3002","title":"\u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_14","text":"\u6df1\u5ea6 \u76f8\u673a \u751f\u6210 \u573a\u666f \u7684 \u56fe\u7247 \uff0c \u5c06 \u6bcf\u4e2a \u50cf\u7d20 \u6620\u5c04 \u5230 \u7070\u5ea6 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u4e2d \u3002 \u7136\u800c \uff0c \u8f93\u51fa \u5e76 \u4e0d \u7b80\u5355 \u3002 \u76f8\u673a \u7684 \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u8fdb\u884c \u6620\u5c04 \u3002 \u5fc5\u987b \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u624d\u80fd \u7406\u89e3 \u3002 \u4e3a\u6b64 \uff0c \u53ea \u9700 \u5c06 \u56fe\u50cf \u4fdd\u5b58 \u4e3a RGB \u76f8\u673a \u7684 \u56fe\u50cf \uff0c \u4f46 \u5bf9 \u5176 \u5e94\u7528 carla . ColorConverter \u5373\u53ef \u3002 \u6df1\u5ea6 \u76f8\u673a \u6709 \u4e24\u79cd \u53ef\u7528 \u7684 \u8f6c\u6362 \u3002 carla . ColorConverter . Depth \u4ee5 \u6beb\u7c73 \u7ea7 \u7cbe\u5ea6 \u8f6c\u6362 \u539f\u59cb \u6df1\u5ea6 \u3002 carla . ColorConverter . LogarithmicDepth \u4e5f \u5177\u6709 \u6beb\u7c73 \u7ea7 \u7c92\u5ea6 \uff0c \u4f46 \u5728 \u8fd1\u8ddd \u8ddd\u79bb \u8fd1\u8ddd\u79bb \u5185 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \uff0c \u800c \u5bf9\u4e8e \u8f83\u8fdc \u7684 \u5143\u7d20 \u5219 \u7a0d\u5dee \u4e00\u4e9b \u3002 \u6df1\u5ea6 \u76f8\u673a \u7684 \u5c5e\u6027 \u4ec5 \u8bbe\u7f6e \u4e4b\u524d \u5728 RGB \u76f8\u673a \u4e2d \u6240\u8ff0 \u7684 \u5143\u7d20 \uff1a fov \u3001 image _ size _ x \u3001 image _ size _ y \u548c sensor _ tick \u3002 \u8be5 \u811a\u672c \u5c06 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u4e3a \u4e0e \u4e4b\u524d \u4f7f\u7528 \u7684 RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a Depth camera to ego vehicle . # -------------- depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ depth _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) Depth camera output . Simple conversion on the left , logarithmic on the right .","title":"\u6df1\u5ea6 \u76f8\u673a"},{"location":"tuto_G_retrieve_data/#_15","text":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6839\u636e \u5143\u7d20 \u7684 \u6807\u8bb0 \u65b9\u5f0f \u5c06 \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u6e32\u67d3 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 \u6807\u7b7e \u7531 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6839\u636e \u7528\u4e8e \u751f\u6210 \u7684 \u8d44\u6e90 \u7684 \u8def\u5f84 \u521b\u5efa \u3002 \u4f8b\u5982 \uff0c \u6807\u8bb0 \u4e3a Pedestrians \u7684 \u7f51\u683c \u4f53\u662f \u4f7f\u7528 \u5b58\u50a8 \u5728 Unreal / CarlaUE4 / Content / Static / Pedestrians \u4e2d \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u3002 \u4e0e \u4efb\u4f55 \u76f8\u673a \u4e00\u6837 \uff0c \u8f93\u51fa \u662f \u56fe\u50cf \uff0c \u4f46 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5305\u542b \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \u7f16\u7801 \u7684 \u6807\u7b7e \u3002 \u5fc5\u987b \u4f7f\u7528 ColorConverter . CityScapesPalette \u8f6c\u6362 \u6b64 \u539f\u59cb \u56fe\u50cf \u3002 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u6807\u7b7e \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8be5 \u76f8\u673a \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e0e \u6df1\u5ea6 \u76f8\u673a \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u8be5 \u811a\u672c \u8fd8 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a new semantic segmentation camera to my ego # -------------- sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) Semantic segmentation camera output","title":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a"},{"location":"tuto_G_retrieve_data/#_16","text":"\u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5b83 \u521b\u5efa \u4e86 \u4e00\u4e2a \u4ee5 \u4e09\u7ef4 \u5f62\u5f0f \u6620\u5c04 \u573a\u666f \u7684 \u70b9\u4e91 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5305\u542b \u4e00\u7ec4 \u4ee5 \u7279\u5b9a \u9891\u7387 \u65cb\u8f6c \u7684 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u3002 \u6fc0\u5149 \u6295\u5c04 \u649e\u51fb \u8ddd\u79bb \uff0c \u5e76 \u5c06 \u6bcf\u6b21 \u5c04\u51fb \u5b58\u50a8 \u4e3a \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u9635\u5217 \u7684 \u5e03\u7f6e \u65b9\u5f0f \u3002 upper _ fov \u548c lower _ fov \u5206\u522b \u662f \u6700\u9ad8 \u548c \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \u3002 channels \u8bbe\u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 \u7684 fov \u5206\u5e03 \u3002 \u5176\u4ed6 \u5c5e\u6027 \u8bbe\u7f6e \u8be5\u70b9 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u3002 \u5b83\u4eec \u786e\u5b9a \u6bcf\u4e2a \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf \u4e00\u6b65 \u8ba1\u7b97 \u7684 \u70b9\u6570 \uff1a points _ per _ second / ( FPS * channels ) . range \u662f \u6355\u83b7 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u662f \u6bcf\u79d2 \u83b7\u5f97 \u7684 \u70b9\u6570 \u3002 \u8be5 \u6570\u91cf \u9664\u4ee5 channels \u7684 \u6570\u91cf \u3002 rotation _ frequency \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6bcf\u79d2 \u65cb\u8f6c \u7684 \u6b21\u6570 \u3002 \u70b9\u4e91 \u8f93\u51fa \u88ab \u63cf\u8ff0 \u4e3a [ carla . LidarMeasurement ] \u3002 \u5b83 \u53ef\u4ee5 \u4f5c\u4e3a [ carla . Location ] \u5217\u8868 \u8fdb\u884c \u8fed\u4ee3 \u6216 \u4fdd\u5b58 \u4e3a . ply \u6807\u51c6 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u3002 # -------------- # Add a new LIDAR sensor to my ego # -------------- lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) . ply \u8f93\u51fa \u53ef\u4ee5 \u4f7f\u7528 Meshlab \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 1 . \u5b89\u88c5 Meshlab \u3002 sudo apt - get update - y sudo apt - get install - y meshlab 2 . \u6253\u5f00 Meshlab \u3002 meshlab 3 . \u6253\u5f00 \u5176\u4e2d \u4e00\u4e2a . ply \u6587\u4ef6 \u3002 File > Import mesh ... \u7ecf\u8fc7 Meshlab \u5904\u7406 \u540e \u7684 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8f93\u51fa \u3002","title":"\u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_17","text":"\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7c7b\u4f3c \u3002 \u5b83 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u5e76 \u5411 \u5185\u90e8 \u53d1\u5c04 \u6fc0\u5149 \u4ee5 \u5c04\u7ebf \u6295\u5c04 \u5176 \u5f71\u54cd \u3002 \u8f93\u51fa \u662f carla . RadarMeasurement \u3002 \u5b83 \u5305\u542b \u7531 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u68c0\u7d22 \u5230 \u7684 carla . RadarDetection \u7684 \u5217\u8868 \u3002 \u8fd9\u4e9b \u4e0d\u662f \u7a7a\u95f4 \u4e2d \u7684 \u70b9 \uff0c \u800c\u662f \u4f7f\u7528 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u8fdb\u884c \u7684 \u68c0\u6d4b \uff1a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u51b3\u5b9a \u4e86 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u7684 \u5b9a\u4f4d \u65b9\u5f0f \u3002 horizontal _ fov \u548c vertical _ fov \u786e\u5b9a \u5706\u9525 \u89c6\u56fe \u7684 \u632f\u5e45 \u3002 channels \u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 fov \u7684 \u5206\u5e03 \u3002 range \u662f \u6fc0\u5149 \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u8bbe\u7f6e \u8981 \u6355\u83b7 \u7684 \u70b9 \u7684 \u6570\u91cf \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u5728 \u6307\u5b9a \u7684 \u901a\u9053 \u4e4b\u95f4 \u5206\u914d \u3002 \u8be5 \u811a\u672c \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e0a \uff0c \u5e76 \u5411\u4e0a \u65cb\u8f6c \u4e00\u70b9 \u3002 \u8fd9\u6837 \uff0c \u8f93\u51fa \u5c06 \u6620\u5c04 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 horizontal _ fov \u662f \u589e\u52a0 \u7684 \uff0c vertical _ fov \u662f \u51cf\u5c11 \u7684 \u3002 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \u7279\u522b \u662f \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u901a\u5e38 \u79fb\u52a8 \u7684 \u9ad8\u5ea6 \u3002 \u8ddd\u79bb range \u4e5f \u4ece 100m \u66f4 \u6539\u4e3a 10m \uff0c \u4ee5\u4fbf \u4ec5 \u68c0\u7d22 \u8f66\u8f86 \u6b63\u524d \u524d\u65b9 \u6b63\u524d\u65b9 \u7684 \u6570\u636e \u3002 \u8fd9\u6b21 \u7684 \u56de\u8c03 \u6709\u70b9 \u590d\u6742 \uff0c \u663e\u793a \u4e86 \u5b83 \u7684 \u66f4 \u529f\u80fd \u591a\u529f\u80fd \u3002 \u5b83 \u5c06 \u5b9e\u65f6 \u7ed8\u5236 \u96f7\u8fbe \u6355\u83b7 \u7684 \u70b9 \u3002 \u8fd9\u4e9b \u70b9\u5c06 \u6839\u636e \u5b83\u4eec \u76f8\u5bf9 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u800c \u7740\u8272 \u3002 Blue \u8868\u793a \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 Red \u8868\u793a \u8fdc\u79bb \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 White \u4ee3\u8868 \u5173\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u9759\u6001 \u70b9 \u3002 # -------------- # Add a new radar sensor to my ego # -------------- rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.0 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \u96f7\u8fbe \u8f93\u51fa \u3002 \u8f66\u8f86 \u505c \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \uff0c \u56e0\u6b64 \u5176 \u524d\u9762 \u7684 \u9759\u6001 \u5143\u7d20 \u663e\u793a \u4e3a \u767d\u8272 \u3002","title":"\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_18","text":"\u65e0 \u6e32\u67d3 \u6a21\u5f0f \u5bf9\u4e8e \u8fd0\u884c \u521d\u59cb \u4eff\u771f \u975e\u5e38 \u6709\u7528 \uff0c \u7a0d\u540e \u5c06 \u518d\u6b21 \u64ad\u653e \u8be5 \u4eff\u771f \u4ee5 \u68c0\u7d22 \u6570\u636e \u3002 \u7279\u522b \u662f \u5982\u679c \u8be5 \u4eff\u771f \u5b58\u5728 \u4e00\u4e9b \u6781\u7aef \u6761\u4ef6 \uff0c \u4f8b\u5982 \u4ea4\u901a \u5bc6\u96c6 \u3002","title":"\u975e \u6e32\u67d3 \u6a21\u5f0f"},{"location":"tuto_G_retrieve_data/#_19","text":"\u7981\u7528 \u6e32\u67d3 \u5c06 \u4e3a \u4eff\u771f \u8282\u7701 \u5927\u91cf \u5de5\u4f5c \u3002 \u7531\u4e8e \u4e0d \u4f7f\u7528 GPU \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5168\u901f \u5de5\u4f5c \u3002 \u8fd9 \u5bf9\u4e8e \u5feb\u901f \u4eff\u771f \u590d\u6742 \u7684 \u6761\u4ef6 \u5f88 \u6709\u7528 \u3002 \u6700\u597d \u7684 \u65b9\u6cd5 \u662f \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4ee5 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u5f02\u6b65 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76\u4e14 \u4e0d \u8fdb\u884c \u6e32\u67d3 \uff0c \u4eff\u771f \u7684 \u552f\u4e00 \u9650\u5236 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u5185\u90e8 \u903b\u8f91 \u3002 \u76f8\u540c \u7684 config . py \u7528\u4e8e \u8bbe\u7f6e \u5730\u56fe \u53ef\u4ee5 \u7981\u7528 \u6e32\u67d3 \uff0c \u5e76 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- no - rendering -- delta - seconds 0.05 # Never greater than 0.1 s \u8b66\u544a \u5728 \u4f7f\u7528 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65 \u4e4b\u524d \uff0c \u8bf7 \u5148 \u9605\u8bfb \u6587\u6863 \u3002","title":"\u5feb\u901f \u4eff\u771f"},{"location":"tuto_G_retrieve_data/#_20","text":"\u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u63d0\u4f9b \u4e86 \u4eff\u771f \u7684 \u6982\u8ff0 \u3002 \u5b83 \u4f7f\u7528 Pygame \u521b\u5efa \u4e86 \u4e00\u4e2a \u7b80\u7ea6 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff0c \u5b83 \u5c06 \u8ddf\u968f \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u4e0e manual _ control . py \u4e00\u8d77 \u4f7f\u7528 \u6765 \u751f\u6210 \u4e00\u6761 \u51e0\u4e4e \u6ca1\u6709 \u6210\u672c \u7684 \u8def\u7ebf \uff0c \u8bb0\u5f55 \u5b83 \uff0c \u7136\u540e \u56de\u653e \u5e76 \u5229\u7528 \u5b83 \u6765 \u6536\u96c6 \u6570\u636e \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py cd / opt / carla / PythonAPI / examples python3 no _ rendering _ mode . py -- no - rendering no _ rendering _ mode . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit - v , -- verbose print debug information -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- res WIDTHxHEIGHT window resolution ( default : 1280x720 ) -- filter PATTERN actor filter ( default : \" vehicle . * \" ) -- map TOWN start a new episode at the given TOWN -- no - rendering switch off server rendering -- show - triggers show trigger boxes of traffic signs -- show - connections show waypoint connections -- show - spawn - points show recommended spawn points no _ rendering _ mode . py working in Town07 \u7b14\u8bb0 \u5728 \u6b64 \u6a21\u5f0f \u4e0b \uff0c \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u68c0\u7d22 \u7a7a \u6570\u636e \u3002 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6ca1\u7528 \uff0c \u4f46 \u63a2\u6d4b \u6d4b\u5668 \u63a2\u6d4b\u5668 \u7b49 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236"},{"location":"tuto_G_retrieve_data/#_21","text":"","title":"\u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_22","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u968f\u65f6 \u542f\u52a8 \u3002 \u811a\u672c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u8fd9\u6837 \u505a \uff0c \u4ee5\u4fbf \u6355\u6349 \u4e00\u5207 \uff0c \u5305\u62ec \u7b2c\u4e00 \u4e00\u6279 \u7b2c\u4e00\u6279 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4ea7\u751f \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u65e5\u5fd7 \u5c06 \u4fdd\u5b58 \u5230 CarlaUE4 / Saved \u3002 # -------------- # \u5f00\u59cb \u8bb0\u5f55 # -------------- client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' )","title":"\u5f00\u59cb \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_23","text":"\u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u505a\u5230 \u8fd9 \u4e00\u70b9 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u56e0\u4e3a \u8ba9 \u5b83 \u56db\u5904 \u6f2b\u6e38 \u6216 \u624b\u52a8 \u63a7\u5236 \u800c \u51fa\u73b0 \u6545\u969c \u3002 \u4ea7\u751f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u5c06 \u88ab \u5373\u65f6 \u68c0\u7d22 \u3002 \u8bf7 \u52a1\u5fc5 \u5728 \u8bb0\u5f55 \u65f6 \u8fdb\u884c \u68c0\u67e5 \uff0c \u4ee5 \u786e\u4fdd \u4e00\u5207 \u8bbe\u7f6e \u6b63\u786e \u3002 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u3002 \u8fd9\u4f1a \u5c06 \u8f66\u8f86 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5b83 \u5c06 \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \u3002 \u8be5 \u811a\u672c \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u5e76 \u521b\u5efa \u4e00\u4e2a \u5faa\u73af \u4ee5 \u963b\u6b62 \u811a\u672c \u5b8c\u6210 \u3002 \u5f55\u5236 \u5c06 \u7ee7\u7eed \u8fdb\u884c \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u8ba1\u65f6 \u8ba1\u65f6\u5668 \u4ee5 \u5728 \u7279\u5b9a \u65f6\u95f4 \u540e \u5b8c\u6210 \u811a\u672c \u3002 # -------------- # \u6355\u83b7 \u6570\u636e # -------------- ego _ vehicle . set _ autopilot ( True ) print ( ' \\ nEgo autopilot enabled ' ) while True : world _ snapshot = world . wait _ for _ tick ( ) \u624b\u52a8 \u63a7\u5236 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u811a\u672c PythonAPI / examples / manual _ control . py \uff0c \u5728 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u9a7e\u9a76 \u81ea\u6211 \u8f66\u8f86 \u6765 \u521b\u5efa \u6240 \u9700 \u7684 \u8def\u7ebf \uff0c \u5e76 \u5728 \u5b8c\u6210 \u540e \u505c\u6b62 \u8bb0\u5f55 \u8bb0\u5f55\u4eea \u3002 tutorial _ ego . py \u811a\u672c \u53ef \u7528\u4e8e \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \uff0c \u4f46 \u8bf7 \u786e\u4fdd \u6ce8\u91ca \u5176\u4ed6 \u4ee3\u7801 \u7247\u6bb5 \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py \u7b14\u8bb0 \u4e3a\u4e86 \u907f\u514d \u6e32\u67d3 \u5e76 \u8282\u7701 \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \uff0c \u8bf7 \u542f\u7528 [ \u65e0 \u6e32\u67d3 \u6a21\u5f0f ] \u3002 \u8be5 \u811a\u672c / PythonAPI / examples / no _ rendering _ mode . py \u5728 \u521b\u5efa \u7b80\u5355 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \u65f6 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002","title":"\u6355\u83b7 \u5e76 \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_24","text":"\u505c\u6b62 \u8c03\u7528 \u751a\u81f3 \u6bd4 \u5f00\u59cb \u8c03\u7528 \u66f4 \u7b80\u5355 \u3002 \u5f55\u97f3 \u5b8c\u6210 \u540e \uff0c \u5f55\u97f3 \u5c06 \u4fdd\u5b58 \u5728 \u524d\u9762 \u6307\u5b9a \u7684 \u8def\u5f84 \u4e2d \u3002 # -------------- # \u505c\u6b62 \u8bb0\u5f55 # -------------- client . stop _ recorder ( )","title":"\u505c\u6b62 \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_25","text":"\u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u4eff\u771f \u5df2\u7ecf \u88ab \u8bb0\u5f55 \u5f55\u4e0b \u4e0b\u6765 \u5f55\u4e0b\u6765 \u8bb0\u5f55\u4e0b\u6765 \u3002 \u73b0\u5728 \uff0c \u662f \u65f6\u5019 \u68c0\u67e5 \u8bb0\u5f55 \uff0c \u627e\u5230 \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u65f6\u523b \uff0c \u5e76 \u5229\u7528 \u5b83\u4eec \u3002 \u8fd9\u4e9b \u6b65\u9aa4 \u96c6\u4e2d \u5728 \u811a\u672c tutorial _ replay . py \u4e2d \u3002 \u8be5 \u5927\u7eb2 \u7531 \u6ce8\u91ca \u7684 \u4e0d\u540c \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u6784\u6210 \u3002 \u73b0\u5728 \u662f \u8fd0\u884c \u65b0 \u4eff\u771f \u7684 \u65f6\u5019 \u4e86 \u3002 . / CarlaUE4 . sh \u8981 \u91cd\u65b0 \u8fdb\u884c \u4eff\u771f \uff0c \u8bf7 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u5e76 \u8fd0\u884c \u5305\u542b \u64ad\u653e \u4ee3\u7801 \u7684 \u811a\u672c \u3002 python3 tuto _ replay . py","title":"\u5229\u7528 \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_26","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u6863 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u4e0d\u540c \u7684 \u67e5\u8be2 \u3002 \u603b\u4e4b \uff0c \u5b83\u4eec \u68c0\u7d22 \u7279\u5b9a \u4e8b\u4ef6 \u6216 \u5e27 \u7684 \u6570\u636e \u3002 \u4f7f\u7528 \u67e5\u8be2 \u6765 \u7814\u7a76 \u8bb0\u5f55 \u3002 \u627e\u5230 \u805a\u5149 \u5149\u706f \u805a\u5149\u706f \u65f6\u523b \uff0c \u8ffd\u8e2a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u5185\u5bb9 \u3002 # -------------- # Query the recording # -------------- # Show only the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording01 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording01 . log \" , 10 , 1 ) ) # Filter collisions between vehicles ' v ' and ' a ' any other type of actor . print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording01 . log \" , ' v ' , ' a ' ) ) \u7b14\u8bb0 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4e0d \u9700\u8981 \u6253\u5f00 \u5373\u53ef \u8fdb\u884c \u67e5\u8be2 \u3002 \u663e\u793a \u91cd\u8981 \u4e8b\u4ef6 \u7684 \u67e5\u8be2 \u3002 \u8fd9\u662f \u81ea\u6211 \u8f66\u8f86 \u4ea7\u751f \u7684 \u6846\u67b6 \u3002 \u67e5\u8be2 \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u963b\u6b62 \u3002 \u5728 \u6b64 \u4eff\u771f \u4e2d \uff0c \u81ea\u6211 \u8f66\u8f86 \u4fdd\u6301 \u963b\u585e \u72b6\u6001 \u963b\u585e\u72b6\u6001 100 \u79d2 \u3002 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u4e0e \u201c \u5176\u4ed6 \u201d \u7c7b\u578b \u7684 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u7684 \u67e5\u8be2 \u3002 \u7b14\u8bb0 \u83b7\u53d6 \u6bcf \u4e00\u5e27 \u7684 \u8be6\u7ec6 \u6587\u4ef6 \u4fe1\u606f \u53ef\u80fd \u4f1a \u8ba9 \u4eba \u4e0d\u77e5 \u4e0d\u77e5\u6240\u63aa \u3002 \u5728 \u5176\u4ed6 \u67e5\u8be2 \u4e4b\u540e \u4f7f\u7528 \u5b83 \u6765 \u4e86\u89e3 \u8981 \u67e5\u770b \u7684 \u4f4d\u7f6e \u3002","title":"\u67e5\u8be2 \u4e8b\u4ef6"},{"location":"tuto_G_retrieve_data/#_27","text":"\u67e5\u8be2 \u4e4b\u540e \uff0c \u5728 \u4e71\u641e \u4e4b\u524d \u56de\u653e \u4e00\u4e9b \u4eff\u771f \u7247\u6bb5 \u53ef\u80fd \u662f \u4e2a \u597d \u4e3b\u610f \u3002 \u8fd9\u6837 \u505a \u975e\u5e38 \u7b80\u5355 \u975e\u5e38\u7b80\u5355 \uff0c \u800c\u4e14 \u975e\u5e38 \u6709 \u5e2e\u52a9 \u3002 \u4e86\u89e3 \u6709\u5173 \u4eff\u771f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4ee5\u540e \u8282\u7701 \u65f6\u95f4 \u8282\u7701\u65f6\u95f4 \u7684 \u6700\u4f73 \u65b9\u6cd5 \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u9009\u62e9 \u64ad\u653e \u7684 \u5f00\u59cb \u70b9 \u548c \u7ed3\u675f \u70b9 \u4ee5\u53ca \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 # -------------- # Reenact a fragment of the recording # -------------- client . replay _ file ( \" ~ / tutorial / recorder / recording01 . log \" , 45 , 10 , 0 ) \u4ee5\u4e0b \u662f \u73b0\u5728 \u53ef\u4ee5 \u505a \u7684 \u4e8b\u60c5 \u7684 \u5217\u8868 \u3002 \u4f7f\u7528 \u67e5\u8be2 \u4e2d \u7684 \u4fe1\u606f \u3002 \u627e\u51fa \u4e8b\u4ef6 \u4e2d \u6d89\u53ca \u7684 \u65f6\u523b \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u518d\u6b21 \u64ad\u653e \u3002 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u542f\u52a8 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u8ddf\u968f \u4e0d\u540c \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e0d\u540c \u7684 \u89c6\u89d2 \u5c06 \u663e\u793a \u67e5\u8be2 \u4e2d\u672a \u5305\u542b \u7684 \u65b0 \u4e8b\u4ef6 \u3002 \u81ea\u7531 \u5730 \u89c2\u5bdf \u5468\u56f4 \u7684 \u60c5\u51b5 \u3002 \u5c06 actor _ id \u8bbe \u4e3a 0 \uff0c \u5e76 \u83b7\u5f97 \u4eff\u771f \u7684 \u603b\u4f53 \u89c6\u56fe \u3002 \u501f\u52a9 \u8bb0\u5f55 \u5f55\u97f3 \uff0c \u60a8 \u53ef\u4ee5 \u968f\u65f6 \u968f\u5730 \u968f\u65f6\u968f\u5730 \u3002 \u7b14\u8bb0 \u5f53 \u8bb0\u5f55 \u505c\u6b62 \u65f6 \uff0c \u4eff\u771f \u4e0d\u4f1a \u505c\u6b62 \u3002 \u884c\u4eba \u5c06 \u9759\u6b62 \u4e0d\u52a8 \u9759\u6b62\u4e0d\u52a8 \uff0c \u8f66\u8f86 \u5c06 \u7ee7\u7eed \u884c\u9a76 \u3002 \u5982\u679c \u65e5\u5fd7 \u7ed3\u675f \u6216 \u64ad\u653e \u5230\u8fbe \u6307\u5b9a \u7684 \u7ed3\u675f \u70b9 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002","title":"\u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5"},{"location":"tuto_G_retrieve_data/#_28","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5c06 \u5728 \u6b64 \u4eff\u771f \u4e2d \u91cd\u65b0 \u521b\u5efa \u4e0e \u539f\u59cb \u6761\u4ef6 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u6761\u4ef6 \u3002 \u8fd9 \u786e\u4fdd \u4e86 \u4e0d\u540c \u64ad\u653e \u4e2d \u7684 \u6570\u636e \u4e00\u81f4 \u3002 \u6536\u96c6 \u91cd\u8981 \u65f6\u523b \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4e8b\u4ef6 \u7684 \u5217\u8868 \u3002 \u9700\u8981 \u65f6 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u56de\u653e \u4eff\u771f \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u4e4b\u524d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u811a\u672c tutorial _ replay . py \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u793a\u4f8b \uff0c \u8fd9\u4e9b \u793a\u4f8b \u5df2 \u5728 \u201c \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u201d \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u5f7b\u5e95 \u89e3\u91ca \u3002 \u5176\u4ed6 \u5df2 \u5728 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u89e3\u91ca \u3002 \u6839\u636e \u9700\u8981 \u6dfb\u52a0 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6839\u636e \u9700\u8981 \u591a\u6b21 \u56de\u653e \u4eff\u771f \u5e76 \u68c0\u7d22 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u6570\u636e \u3002","title":"\u68c0\u7d22 \u66f4 \u591a \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_29","text":"\u8bb0\u5f55 \u5c06 \u91cd\u73b0 \u539f\u59cb \u7684 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u5728 \u4fdd\u6301 \u5176\u4f59 \u4e8b\u4ef6 \u76f8\u540c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6bd4\u8f83 \u5b83 \u5982\u4f55 \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u4f1a \u5f88 \u6709\u8da3 \u3002 \u83b7\u53d6 \u5f53\u524d \u5929\u6c14 \u5e76 \u81ea\u7531 \u4fee\u6539 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c carla . WeatherParameters \u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u9884\u8bbe \u3002 \u8be5 \u811a\u672c \u4f1a \u5c06 \u73af\u5883 \u66f4 \u6539\u4e3a \u6709\u96fe \u7684 \u65e5\u843d \u3002 # -------------- # \u4e3a \u56de\u653e \u6539\u53d8 \u5929\u6c14 # -------------- weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather )","title":"\u6539\u53d8 \u5929\u6c14"},{"location":"tuto_G_retrieve_data/#_30","text":"\u65b0 \u7684 \u4eff\u771f \u4e0e \u8bb0\u5f55 \u6ca1\u6709 \u4e25\u683c \u7684 \u8054\u7cfb \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u4fee\u6539 \uff0c \u5373\u4f7f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \uff0c \u4eff\u771f \u4e5f \u4f1a \u7ee7\u7eed \u3002 \u8fd9 \u5bf9\u4e8e \u7528\u6237 \u6765\u8bf4 \u662f \u6709\u5229 \u53ef\u56fe \u5229\u53ef\u56fe \u6709\u5229\u53ef\u56fe \u7684 \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u56de\u653e \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u524d \u7684 \u4eff\u771f \u5e76 \u751f\u6210 \u6216 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6765 \u5f3a\u5236 \u6216 \u907f\u514d \u78b0\u649e \u3002 \u5728 \u7279\u5b9a \u65f6\u523b \u7ed3\u675f \u8bb0\u5f55 \u4e5f \u5f88 \u6709\u7528 \u3002 \u8fd9\u6837 \u505a \uff0c \u8f66\u8f86 \u53ef\u80fd \u4f1a \u91c7\u53d6 \u4e0d\u540c \u7684 \u8def\u5f84 \u3002 \u6539\u53d8 \u6761\u4ef6 \u5e76 \u6270\u4e71 \u4eff\u771f \u3002 \u6ca1\u6709 \u4ec0\u4e48 \u53ef \u5931\u53bb \u7684 \uff0c \u56e0\u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u521d\u59cb \u4eff\u771f \u59cb\u7ec8 \u53ef\u4ee5 \u91cd\u65b0 \u8fdb\u884c \u3002 \u8fd9\u662f \u5145\u5206 \u5206\u53d1 \u53d1\u6325 \u5145\u5206\u53d1\u6325 Carla \u6f5c\u529b \u7684 \u5173\u952e \u3002","title":"\u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c"},{"location":"tuto_G_retrieve_data/#_31","text":"\u4e0b\u9762 \u662f \u6536\u96c6 \u672c \u6559\u7a0b \u4ee3\u7801 \u7247\u6bb5 \u7684 \u4e24\u4e2a \u811a\u672c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4ee3\u7801 \u90fd \u5e26\u6709 \u6ce8\u91ca \uff0c \u56e0\u4e3a \u9700\u8981 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 \u4ee5 \u9002\u5e94 \u7279\u5b9a \u76ee\u7684 \u3002 tutorial _ ego . py import glob import os import sys import time try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) args = argparser . parse _ args ( ) logging . basicConfig ( format = ' % ( levelname ) s : % ( message ) s ' , level = logging . INFO ) client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None ego _ col = None ego _ lane = None ego _ obs = None ego _ gnss = None ego _ imu = None # -------------- # Start recording # -------------- \" \" \" client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' ) \" \" \" # -------------- # Spawn ego vehicle # -------------- \" \" \" ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' ) \" \" \" # -------------- # Add a RGB camera sensor to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add collision sensor to ego vehicle . # -------------- \" \" \" col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) \" \" \" # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- \" \" \" lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) \" \" \" # -------------- # Add Obstacle sensor to ego vehicle . # -------------- \" \" \" obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) \" \" \" # -------------- # Add GNSS sensor to ego vehicle . # -------------- \" \" \" gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) \" \" \" # -------------- # Add IMU sensor to ego vehicle . # -------------- \" \" \" imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Enable autopilot for ego vehicle # -------------- \" \" \" ego _ vehicle . set _ autopilot ( True ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Stop recording and destroy actors # -------------- client . stop _ recorder ( ) if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if ego _ col is not None : ego _ col . stop ( ) ego _ col . destroy ( ) if ego _ lane is not None : ego _ lane . stop ( ) ego _ lane . destroy ( ) if ego _ obs is not None : ego _ obs . stop ( ) ego _ obs . destroy ( ) if ego _ gnss is not None : ego _ gnss . stop ( ) ego _ gnss . destroy ( ) if ego _ imu is not None : ego _ imu . stop ( ) ego _ imu . destroy ( ) ego _ vehicle . destroy ( ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ ego . ' ) tutorial _ replay . py import glob import os import sys import time import math import weakref try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None depth _ cam = None depth _ cam02 = None sem _ cam = None rad _ ego = None lidar _ sen = None # -------------- # Query the recording # -------------- \" \" \" # Show the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording05 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . # print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording04 . log \" , 10 , 1 ) ) # Show collisions between any type of actor . # print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording04 . log \" , ' v ' , ' a ' ) ) \" \" \" # -------------- # Reenact a fragment of the recording # -------------- \" \" \" client . replay _ file ( \" ~ / tutorial / recorder / recording03 . log \" , 0 , 30 , 0 ) \" \" \" # -------------- # Set playback simulation conditions # -------------- \" \" \" ego _ vehicle = world . get _ actor ( 322 ) # Store the ID from the simulation or query the recording to find out \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Change weather conditions # -------------- \" \" \" weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather ) \" \" \" # -------------- # Add a RGB camera to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ rgb _ output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add a Logarithmic Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de _ log / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) \" \" \" # -------------- # Add a Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam02 = None depth _ bp02 = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp02 . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp02 . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp02 . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location02 = carla . Location ( 2 , 0 , 1 ) depth _ rotation02 = carla . Rotation ( 0 , 180 , 0 ) depth _ transform02 = carla . Transform ( depth _ location02 , depth _ rotation02 ) depth _ cam02 = world . spawn _ actor ( depth _ bp02 , depth _ transform02 , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam02 . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de / %. 6d . jpg ' % image . frame , carla . ColorConverter . Depth ) ) \" \" \" # -------------- # Add a new semantic segmentation camera to ego vehicle # -------------- \" \" \" sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) \" \" \" # -------------- # Add a new radar sensor to ego vehicle # -------------- \" \" \" rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.8 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \" \" \" # -------------- # Add a new LIDAR sensor to ego vehicle # -------------- \" \" \" lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' / home / adas / Desktop / tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Destroy actors # -------------- if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if depth _ cam is not None : depth _ cam . stop ( ) depth _ cam . destroy ( ) if sem _ cam is not None : sem _ cam . stop ( ) sem _ cam . destroy ( ) if rad _ ego is not None : rad _ ego . stop ( ) rad _ ego . destroy ( ) if lidar _ sen is not None : lidar _ sen . stop ( ) lidar _ sen . destroy ( ) ego _ vehicle . destroy ( ) print ( ' \\ nNothing to be done . ' ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ replay . ' ) \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u4ece \u4eff\u771f \u4e2d \u6b63\u786e \u68c0\u7d22 \u6570\u636e \u7684 \u603b\u7ed3 \u3002 \u786e\u4fdd \u5c1d\u8bd5 \u4e00\u4e0b \uff0c \u6539\u53d8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6761\u4ef6 \uff0c \u5c1d\u8bd5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"\u6559\u7a0b \u811a\u672c"},{"location":"tuto_G_rllib_integration/","text":"RLlib \u96c6\u6210 RLlib \u96c6\u6210 \u5e26\u6765 \u4e86 Ray / RLlib \u5e93 \u548c Carla \u4e4b\u95f4 \u7684 \u652f\u6301 \uff0c \u5141\u8bb8 \u8f7b\u677e \u4f7f\u7528 Carla \u73af\u5883 \u8fdb\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 Ray \u662f \u4e00\u4e2a \u5f00\u6e90 \u6846\u67b6 \uff0c \u4e3a \u6784\u5efa \u5206\u5e03 \u5e03\u5f0f \u5e94\u7528 \u5206\u5e03\u5f0f \u5206\u5e03\u5f0f\u5e94\u7528 \u7a0b\u5e8f \u63d0\u4f9b \u4e86 \u7b80\u5355 \u3001 \u901a\u7528 \u7684 API \u3002 Ray \u4e0e RLlib \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u5f3a\u5316 \u5b66\u4e60 \u5e93 \uff09 \u548c Tune \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u8d85 \u53c2\u6570 \u8c03\u6574 \u5e93 \uff09 \u6253\u5305 \u5728 \u4e00\u8d77 \u3002 RLlib \u96c6\u6210 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u548c \u4f7f\u7528 Carla \u4f5c\u4e3a Ray \u7684 \u73af\u5883 \uff0c \u5e76 \u5c06 \u8be5 \u73af\u5883 \u7528\u4e8e \u8bad\u7ec3 \u548c \u63a8\u7406 \u76ee\u7684 \u3002 \u8be5 \u96c6\u6210 \u53ef\u4ee5 \u5728 \u672c\u5730 \u4f7f\u7528 \uff0c \u4e5f \u53ef\u4ee5 \u901a\u8fc7 AWS \u5728 \u4e91\u4e2d \u4f7f\u7528 \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6982\u8ff0 \u5728 \u672c\u5730 \u548c AWS \u4e0a \u8fd0\u884c RLlib \u96c6\u6210 \u6240 \u9700 \u7684 \u8981\u6c42 \u3001 \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u7ed3\u6784 \u3001 \u5982\u4f55 \u4f7f\u7528 \u8be5\u5e93 \u7684 \u6982\u8ff0 \uff0c \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 Carla \u8bbe\u7f6e Ray \u5b9e\u9a8c \u7684 \u793a\u4f8b \u4e00\u4e2a \u73af\u5883 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42 \u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 RLlib \u4ed3\u5e93 \u7ed3\u6784 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c DQN \u793a\u4f8b \u5728 AWS \u4e0a \u8fd0\u884c \u914d\u7f6e AWS \u521b\u5efa \u8bad\u7ec3 AMI \u914d\u7f6e \u96c6\u7fa4 \u8fd0\u884c \u8bad\u7ec3 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u4ece GitHub \u4e0b\u8f7d RLlib \u96c6\u6210 \u6216 \u76f4\u63a5 \u514b\u9686 \u4ed3\u5e93 \uff1a git clone https : / / github . com / carla - simulator / rllib - integration . git \u8981\u6c42 \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u5728 \u672c\u5730 \u8fd0\u884c \u8fd8\u662f \u5728 AWS \u4e0a \u8fd0\u884c \uff1a \u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42 \u5b89\u88c5 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \u5e76 \u5bfc\u5165 \u9644\u52a0 \u8d44\u6e90 \u3002 \u63a8\u8350 \u7684 \u7248\u672c \u662f Carla 0.9 . 11 \uff0c \u56e0\u4e3a \u96c6\u6210 \u662f \u4f7f\u7528 \u6b64 \u7248\u672c \u8bbe\u8ba1 \u548c \u6d4b\u8bd5 \u7684 \u3002 \u5176\u4ed6 \u7248\u672c \u53ef\u80fd \u517c\u5bb9 \uff0c \u4f46 \u5c1a\u672a \u7ecf\u8fc7 \u5145\u5206 \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u8bf7 \u81ea\u884c \u51b3\u5b9a \u81ea\u884c\u51b3\u5b9a \u4f7f\u7528 \u8fd9\u4e9b \u7248\u672c \u3002 \u5bfc\u822a \u5230 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5b89\u88c5 Python \u8981\u6c42 \uff1a pip3 install - r requirements . txt \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Carla \u5305 \u6216 \u6dfb\u52a0 CARLA _ ROOT = path / to / carla \u5230 \u60a8 \u7684 . bashrc \u6587\u4ef6 \u4e2d \uff1a export CARLA _ ROOT = path / to / carla \u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 \u5728 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \u4e2d \u4f1a \u81ea\u52a8 \u6ee1\u8db3 \u5728 AWS \u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 \u3002 \u5728 \u201c \u5728 AWS \u4e0a \u8fd0\u884c \u201d \u90e8\u5206 \u4e2d \u67e5\u627e \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 RLlib \u5b58\u50a8 \u5e93 \u7ed3\u6784 \u5b58\u50a8 \u5e93 \u5206\u4e3a \u4e09\u4e2a \u76ee\u5f55 \uff1a rllib _ integration \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u4ee5\u53ca \u5982\u4f55 \u8bbe\u7f6e Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u63d0\u4f9b \u4e86 \u6240\u6709 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u5b9e\u9a8c \u5fc5\u987b \u9075\u5faa \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 aws \u5177\u6709 \u5728 AWS \u5b9e\u4f8b \u4e2d \u8fd0\u884c \u6240 \u9700 \u7684 \u6587\u4ef6 \u3002 aws _ helper . py \u63d0\u4f9b \u4e86 \u591a\u79cd \u7b80\u5316 \u53ef\u7b80\u5316 EC2 \u5b9e\u4f8b \u7ba1\u7406 \u7684 \u529f\u80fd \uff0c \u5305\u62ec \u5b9e\u4f8b \u521b\u5efa \u4ee5\u53ca \u53d1\u9001 \u548c \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u7684 dqn _ example \u548c dqn _ * \u6587\u4ef6 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6613\u4e8e \u7406\u89e3 \u7684 \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 Carla \u4f5c\u4e3a \u73af\u5883 \u6765 \u8bbe\u7f6e Ray \u5b9e\u9a8c \u3002 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u672c \u8282 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 \u66f4 \u5177\u4f53 \u7684 \u793a\u4f8b \u8bf7 \u53c2\u89c1 \u4e0b \u4e00\u8282 \u201c DQN \u793a\u4f8b \u201d \u3002 \u60a8 \u5c06 \u9700\u8981 \u521b\u5efa \u81f3\u5c11 \u56db\u4e2a \u6587\u4ef6 \uff1a \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c 1 . \u5b9e\u9a8c \u7c7b \u8981 \u4f7f\u7528 Carla \u73af\u5883 \uff0c \u60a8 \u9700\u8981 \u5b9a\u4e49 \u8bad\u7ec3 \u5b9e\u9a8c \u3002 Ray \u8981\u6c42 \u73af\u5883 \u8fd4\u56de \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7279\u5b9a \u4fe1\u606f \u3002 \u60a8 \u53ef\u4ee5 \u5728 rllib - integration / rllib _ integration / carla _ env . py \u4e2d \u67e5\u770b \u6709\u5173 Carla \u73af\u5883 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Ray \u6240 \u9700 \u7684 \u4fe1\u606f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u5177\u4f53 \u5b9e\u9a8c \uff0c \u56e0\u6b64 \u6240\u6709 \u5b9e\u9a8c \u90fd \u5e94 \u7ee7\u627f \u81ea BaseExperiment \u3002 \u6b64\u7c7b \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u9700\u8981 \u8986\u76d6 \u7684 \u6240\u6709 \u51fd\u6570 \u3002 \u8fd9\u4e9b \u90fd \u662f \u4e0e \u8bad\u7ec3 \u7684 \u884c\u52a8 \u3001 \u89c2\u5bdf \u548c \u5956\u52b1 \u76f8\u5173 \u7684 \u529f\u80fd \u3002 2 . \u73af\u5883 \u914d\u7f6e \u5b9e\u9a8c \u5e94\u8be5 \u901a\u8fc7 . yaml \u6587\u4ef6 \u8fdb\u884c \u914d\u7f6e \u3002 \u901a\u8fc7 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4f20\u9012 \u7684 \u4efb\u4f55 \u8bbe\u7f6e \u90fd \u5c06 \u8986\u76d6 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u4e0b\u9762 \u89e3\u91ca \u4e86 \u4e0d\u540c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4f4d\u7f6e \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u6709 \u4e09\u4e2a \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \uff1a \u8bbe\u7f6e \u5927\u90e8 \u90e8\u5206 \u5927\u90e8\u5206 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u8d85\u65f6 \u6216 \u5730\u56fe \u8d28\u91cf \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8bbe\u7f6e \u7279\u5b9a \u4e8e \u60a8 \u7684 \u5b9e\u9a8c \u7684 \u53d8\u91cf \uff0c \u4ee5\u53ca \u6307\u5b9a \u57ce\u9547 \u6761\u4ef6 \u4ee5\u53ca \u81ea\u6211 \u8f66\u8f86 \u53ca\u5176 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u3002 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \uff0c \u5e76 \u63d0\u4f9b \u5982\u4f55 \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u3002 \u914d\u7f6e \u7279\u5b9a \u4e8e Ray \u7684 \u8bad\u7ec3 \u8bbe\u7f6e \u3002 \u8fd9\u4e9b \u8bbe\u7f6e \u4e0e \u6240 \u4f7f\u7528 \u7684 \u7279\u5b9a \u8bad\u7ec3 \u8bad\u7ec3\u5668 \u76f8\u5173 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u5185\u7f6e \u6a21\u578b \uff0c \u5219 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u5e94\u7528 \u5176 \u8bbe\u7f6e \u3002 3 . \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c \u6700\u540e \u4e00\u6b65 \u662f \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c \u3002 \u8fd9\u90e8 \u90e8\u5206 \u8fd9\u90e8\u5206 \u5b8c\u5168 \u7531 \u60a8 \u51b3\u5b9a \uff0c \u5e76\u4e14 \u4f9d\u8d56 \u8d56\u4e8e \u4f9d\u8d56\u4e8e Ray API \u3002 \u5982\u679c \u60a8 \u60f3 \u521b\u5efa \u81ea\u5df1 \u7684 \u7279\u5b9a \u6a21\u578b \uff0c \u8bf7 \u67e5\u770b Ray \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6a21\u578b \u6587\u6863 \u3002 DQN \u793a\u4f8b \u672c \u8282 \u4ee5\u4e0a \u4e00\u8282 \u4e3a \u57fa\u7840 \uff0c \u5c55\u793a \u5982\u4f55 \u4f7f\u7528 BirdView pseudosensor \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c Ray \u7684 DQNTrainer \u8fdb\u884c RLlib \u96c6\u6210 \u7684 \u5177\u4f53 \u793a\u4f8b \u3002 DQN \u793a\u4f8b \u7684 \u7ed3\u6784 \u5982\u4e0b \uff1a \u5b9e\u9a8c \u7c7b : DQNExperiment \uff0c \u8986\u76d6 BaseExperiment \u7c7b \u7684 \u65b9\u6cd5 \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 : dqn _ example / dqn _ config . yaml \u8bad\u7ec3 \u6587\u4ef6 : dqn _ train . py \u63a8\u7406 \u6587\u4ef6 : \u6709 Ray : dqn _ inference _ ray . py \u6ca1\u6709 Ray : dqn _ inference . py \u8981 \u5728 \u672c\u5730 \u8fd0\u884c \u8be5 \u793a\u4f8b \uff1a \u5b89\u88c5 pytorch : pip3 install - r dqn _ example / dqn _ requirements . txt \u8fd0\u884c \u8bad\u7ec3 \u6587\u4ef6 \uff1a python3 dqn _ train . py dqn _ example / dqn _ config . yaml -- name dqn \u7b14\u8bb0 \u9ed8\u8ba4 \u914d\u7f6e \u4f7f\u7528 1 \u4e2a GPU \u548c 12 \u4e2a CPU \uff0c \u56e0\u6b64 \u5982\u679c \u60a8 \u7684 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6ca1\u6709 \u8be5 \u5bb9\u91cf \uff0c \u8bf7 \u51cf\u5c0f \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u7684 \u6570\u5b57 \u3002 \u5982\u679c \u9047\u5230 \u5185\u5b58 \u4e0d\u8db3 \u5185\u5b58\u4e0d\u8db3 \u95ee\u9898 \uff0c \u8bf7 \u8003\u8651 \u51cf\u5c11 \u8be5 buffer _ size \u53c2\u6570 \u3002 \u5728 AWS \u4e0a \u8fd0\u884c \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 RLlib \u96c6\u6210 \u5728 AWS EC2 \u5b9e\u4f8b \u4e0a \u81ea\u52a8 \u8fd0\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 \u4e3a\u4e86 \u5904\u7406 \u5b9e\u4f8b \u7684 \u7f29\u653e \uff0c \u6211\u4eec \u4f7f\u7528 Ray autoscaler API \u3002 \u914d\u7f6e AWS \u60a8 \u9700\u8981 \u6b63\u786e \u914d\u7f6e boto3 \u73af\u5883 \u3002 \u8bf7 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u521b\u5efa \u8bad\u7ec3 AMI \u4f7f\u7528 \u63d0\u4f9b \u7684 aws _ helper . py \u811a\u672c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u81ea\u52a8 \u521b\u5efa \u8bad\u7ec3 \u6240 \u9700 \u7684 \u6620\u50cf \uff0c \u5e76 \u4f20\u5165 \u57fa\u7840 \u6620\u50cf \u7684 \u540d\u79f0 \u548c install . sh \u5728 \u4ee5\u4e0b \u4f4d\u7f6e rllib - integration / aws / install \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts < installation - scripts > -- instance - type < instance - type > -- volume - size < volume - size > \u914d\u7f6e \u96c6\u7fa4 \u521b\u5efa \u56fe\u50cf \u540e \uff0c \u5c06\u4f1a \u8f93\u51fa \u5e26\u6709 \u56fe\u50cf \u4fe1\u606f \u7684 \u8f93\u51fa \u3002 \u8981 \u4f7f\u7528 Ray \u81ea\u52a8 \u7f29\u653e \u5668 \uff0c \u8bf7 \u4f7f\u7528 \u8f93\u51fa \u4e2d \u7684 \u4fe1\u606f \u66f4\u65b0 autoscaler configuration file \u4e2d \u7684 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002 \u8fd0\u884c \u8bad\u7ec3 \u521b\u5efa \u955c\u50cf \u540e \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Ray \u7684 API \u5728 \u96c6\u7fa4 \u4e0a \u8fd0\u884c \u8bad\u7ec3 \uff1a \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up < autoscaler _ configuration _ file > \uff08 \u53ef \u9009 \uff09 \u5982\u679c \u96c6\u7fa4 \u521d\u59cb \u521d\u59cb\u5316 \u540e \u672c\u5730 \u4ee3\u7801 \u88ab \u4fee\u6539 \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u66f4\u65b0 \uff1a ray rsync - up < autoscaler _ configuration _ file > < path _ to _ local _ folder > < path _ to _ remote _ folder > \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit < autoscaler _ configuration _ file > < training _ file > \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach < autoscaler _ configuration _ file > watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down < autoscaler _ configuration _ file > \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \u8981 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \uff1a \u901a\u8fc7 \u5c06 dqn _ example / dqn _ autoscaler . yaml \u914d\u7f6e \u4f20\u9012 \u7ed9 \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u521b\u5efa \u6620\u50cf \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts install / install . sh -- instance - type < instance - type > -- volume - size < volume - size > \u4f7f\u7528 \u4e0a \u4e00\u4e2a \u547d\u4ee4 dqn _ autoscaler . yaml \u63d0\u4f9b \u7684 \u4fe1\u606f \u66f4\u65b0 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002 \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up dqn _ example / dqn _ autoscaler . yaml \uff08 \u53ef \u9009 \uff09 \u4f7f\u7528 \u672c\u5730 \u66f4\u6539 \u66f4\u65b0 \u8fdc\u7a0b \u6587\u4ef6 \uff1a ray rsync - up dqn _ example / dqn _ autoscaler . yaml dqn _ example . ray rsync - up dqn _ example / dqn _ autoscaler . yaml rllib _ integration . \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit dqn _ example / dqn _ autoscaler . yaml dqn _ train . py -- dqn _ example / dqn _ config . yaml -- auto 6 . \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach dqn _ example / dqn _ autoscaler . yaml watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down dqn _ example / dqn _ autoscaler . yaml \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5728 AWS \u548c \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u673a\u4e0a \u5b89\u88c5 \u8ba1\u7b97\u673a \u8ba1\u7b97\u673a\u4e0a\u5b89\u88c5 \u548c \u8fd0\u884c RLlib \u96c6\u6210 \u3002 \u5982\u679c \u60a8 \u5bf9 \u672c \u6307\u5357 \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u6216 \u5728 GitHub \u4e0a \u63d0\u51fa \u95ee\u9898 \u3002","title":"RLlib \u96c6\u6210"},{"location":"tuto_G_rllib_integration/#rllib","text":"RLlib \u96c6\u6210 \u5e26\u6765 \u4e86 Ray / RLlib \u5e93 \u548c Carla \u4e4b\u95f4 \u7684 \u652f\u6301 \uff0c \u5141\u8bb8 \u8f7b\u677e \u4f7f\u7528 Carla \u73af\u5883 \u8fdb\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 Ray \u662f \u4e00\u4e2a \u5f00\u6e90 \u6846\u67b6 \uff0c \u4e3a \u6784\u5efa \u5206\u5e03 \u5e03\u5f0f \u5e94\u7528 \u5206\u5e03\u5f0f \u5206\u5e03\u5f0f\u5e94\u7528 \u7a0b\u5e8f \u63d0\u4f9b \u4e86 \u7b80\u5355 \u3001 \u901a\u7528 \u7684 API \u3002 Ray \u4e0e RLlib \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u5f3a\u5316 \u5b66\u4e60 \u5e93 \uff09 \u548c Tune \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u8d85 \u53c2\u6570 \u8c03\u6574 \u5e93 \uff09 \u6253\u5305 \u5728 \u4e00\u8d77 \u3002 RLlib \u96c6\u6210 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u548c \u4f7f\u7528 Carla \u4f5c\u4e3a Ray \u7684 \u73af\u5883 \uff0c \u5e76 \u5c06 \u8be5 \u73af\u5883 \u7528\u4e8e \u8bad\u7ec3 \u548c \u63a8\u7406 \u76ee\u7684 \u3002 \u8be5 \u96c6\u6210 \u53ef\u4ee5 \u5728 \u672c\u5730 \u4f7f\u7528 \uff0c \u4e5f \u53ef\u4ee5 \u901a\u8fc7 AWS \u5728 \u4e91\u4e2d \u4f7f\u7528 \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6982\u8ff0 \u5728 \u672c\u5730 \u548c AWS \u4e0a \u8fd0\u884c RLlib \u96c6\u6210 \u6240 \u9700 \u7684 \u8981\u6c42 \u3001 \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u7ed3\u6784 \u3001 \u5982\u4f55 \u4f7f\u7528 \u8be5\u5e93 \u7684 \u6982\u8ff0 \uff0c \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 Carla \u8bbe\u7f6e Ray \u5b9e\u9a8c \u7684 \u793a\u4f8b \u4e00\u4e2a \u73af\u5883 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42 \u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 RLlib \u4ed3\u5e93 \u7ed3\u6784 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c DQN \u793a\u4f8b \u5728 AWS \u4e0a \u8fd0\u884c \u914d\u7f6e AWS \u521b\u5efa \u8bad\u7ec3 AMI \u914d\u7f6e \u96c6\u7fa4 \u8fd0\u884c \u8bad\u7ec3 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b","title":"RLlib \u96c6\u6210"},{"location":"tuto_G_rllib_integration/#_1","text":"\u4ece GitHub \u4e0b\u8f7d RLlib \u96c6\u6210 \u6216 \u76f4\u63a5 \u514b\u9686 \u4ed3\u5e93 \uff1a git clone https : / / github . com / carla - simulator / rllib - integration . git \u8981\u6c42 \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u5728 \u672c\u5730 \u8fd0\u884c \u8fd8\u662f \u5728 AWS \u4e0a \u8fd0\u884c \uff1a","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_G_rllib_integration/#_2","text":"\u5b89\u88c5 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \u5e76 \u5bfc\u5165 \u9644\u52a0 \u8d44\u6e90 \u3002 \u63a8\u8350 \u7684 \u7248\u672c \u662f Carla 0.9 . 11 \uff0c \u56e0\u4e3a \u96c6\u6210 \u662f \u4f7f\u7528 \u6b64 \u7248\u672c \u8bbe\u8ba1 \u548c \u6d4b\u8bd5 \u7684 \u3002 \u5176\u4ed6 \u7248\u672c \u53ef\u80fd \u517c\u5bb9 \uff0c \u4f46 \u5c1a\u672a \u7ecf\u8fc7 \u5145\u5206 \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u8bf7 \u81ea\u884c \u51b3\u5b9a \u81ea\u884c\u51b3\u5b9a \u4f7f\u7528 \u8fd9\u4e9b \u7248\u672c \u3002 \u5bfc\u822a \u5230 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5b89\u88c5 Python \u8981\u6c42 \uff1a pip3 install - r requirements . txt \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Carla \u5305 \u6216 \u6dfb\u52a0 CARLA _ ROOT = path / to / carla \u5230 \u60a8 \u7684 . bashrc \u6587\u4ef6 \u4e2d \uff1a export CARLA _ ROOT = path / to / carla","title":"\u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42"},{"location":"tuto_G_rllib_integration/#aws","text":"\u5728 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \u4e2d \u4f1a \u81ea\u52a8 \u6ee1\u8db3 \u5728 AWS \u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 \u3002 \u5728 \u201c \u5728 AWS \u4e0a \u8fd0\u884c \u201d \u90e8\u5206 \u4e2d \u67e5\u627e \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42"},{"location":"tuto_G_rllib_integration/#rllib_1","text":"\u5b58\u50a8 \u5e93 \u5206\u4e3a \u4e09\u4e2a \u76ee\u5f55 \uff1a rllib _ integration \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u4ee5\u53ca \u5982\u4f55 \u8bbe\u7f6e Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u63d0\u4f9b \u4e86 \u6240\u6709 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u5b9e\u9a8c \u5fc5\u987b \u9075\u5faa \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 aws \u5177\u6709 \u5728 AWS \u5b9e\u4f8b \u4e2d \u8fd0\u884c \u6240 \u9700 \u7684 \u6587\u4ef6 \u3002 aws _ helper . py \u63d0\u4f9b \u4e86 \u591a\u79cd \u7b80\u5316 \u53ef\u7b80\u5316 EC2 \u5b9e\u4f8b \u7ba1\u7406 \u7684 \u529f\u80fd \uff0c \u5305\u62ec \u5b9e\u4f8b \u521b\u5efa \u4ee5\u53ca \u53d1\u9001 \u548c \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u7684 dqn _ example \u548c dqn _ * \u6587\u4ef6 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6613\u4e8e \u7406\u89e3 \u7684 \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 Carla \u4f5c\u4e3a \u73af\u5883 \u6765 \u8bbe\u7f6e Ray \u5b9e\u9a8c \u3002","title":"RLlib \u5b58\u50a8 \u5e93 \u7ed3\u6784"},{"location":"tuto_G_rllib_integration/#_3","text":"\u672c \u8282 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 \u66f4 \u5177\u4f53 \u7684 \u793a\u4f8b \u8bf7 \u53c2\u89c1 \u4e0b \u4e00\u8282 \u201c DQN \u793a\u4f8b \u201d \u3002 \u60a8 \u5c06 \u9700\u8981 \u521b\u5efa \u81f3\u5c11 \u56db\u4e2a \u6587\u4ef6 \uff1a \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c","title":"\u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c"},{"location":"tuto_G_rllib_integration/#1","text":"\u8981 \u4f7f\u7528 Carla \u73af\u5883 \uff0c \u60a8 \u9700\u8981 \u5b9a\u4e49 \u8bad\u7ec3 \u5b9e\u9a8c \u3002 Ray \u8981\u6c42 \u73af\u5883 \u8fd4\u56de \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7279\u5b9a \u4fe1\u606f \u3002 \u60a8 \u53ef\u4ee5 \u5728 rllib - integration / rllib _ integration / carla _ env . py \u4e2d \u67e5\u770b \u6709\u5173 Carla \u73af\u5883 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Ray \u6240 \u9700 \u7684 \u4fe1\u606f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u5177\u4f53 \u5b9e\u9a8c \uff0c \u56e0\u6b64 \u6240\u6709 \u5b9e\u9a8c \u90fd \u5e94 \u7ee7\u627f \u81ea BaseExperiment \u3002 \u6b64\u7c7b \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u9700\u8981 \u8986\u76d6 \u7684 \u6240\u6709 \u51fd\u6570 \u3002 \u8fd9\u4e9b \u90fd \u662f \u4e0e \u8bad\u7ec3 \u7684 \u884c\u52a8 \u3001 \u89c2\u5bdf \u548c \u5956\u52b1 \u76f8\u5173 \u7684 \u529f\u80fd \u3002","title":"1 . \u5b9e\u9a8c \u7c7b"},{"location":"tuto_G_rllib_integration/#2","text":"\u5b9e\u9a8c \u5e94\u8be5 \u901a\u8fc7 . yaml \u6587\u4ef6 \u8fdb\u884c \u914d\u7f6e \u3002 \u901a\u8fc7 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4f20\u9012 \u7684 \u4efb\u4f55 \u8bbe\u7f6e \u90fd \u5c06 \u8986\u76d6 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u4e0b\u9762 \u89e3\u91ca \u4e86 \u4e0d\u540c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4f4d\u7f6e \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u6709 \u4e09\u4e2a \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \uff1a \u8bbe\u7f6e \u5927\u90e8 \u90e8\u5206 \u5927\u90e8\u5206 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u8d85\u65f6 \u6216 \u5730\u56fe \u8d28\u91cf \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8bbe\u7f6e \u7279\u5b9a \u4e8e \u60a8 \u7684 \u5b9e\u9a8c \u7684 \u53d8\u91cf \uff0c \u4ee5\u53ca \u6307\u5b9a \u57ce\u9547 \u6761\u4ef6 \u4ee5\u53ca \u81ea\u6211 \u8f66\u8f86 \u53ca\u5176 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u3002 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \uff0c \u5e76 \u63d0\u4f9b \u5982\u4f55 \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u3002 \u914d\u7f6e \u7279\u5b9a \u4e8e Ray \u7684 \u8bad\u7ec3 \u8bbe\u7f6e \u3002 \u8fd9\u4e9b \u8bbe\u7f6e \u4e0e \u6240 \u4f7f\u7528 \u7684 \u7279\u5b9a \u8bad\u7ec3 \u8bad\u7ec3\u5668 \u76f8\u5173 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u5185\u7f6e \u6a21\u578b \uff0c \u5219 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u5e94\u7528 \u5176 \u8bbe\u7f6e \u3002","title":"2 . \u73af\u5883 \u914d\u7f6e"},{"location":"tuto_G_rllib_integration/#3","text":"\u6700\u540e \u4e00\u6b65 \u662f \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c \u3002 \u8fd9\u90e8 \u90e8\u5206 \u8fd9\u90e8\u5206 \u5b8c\u5168 \u7531 \u60a8 \u51b3\u5b9a \uff0c \u5e76\u4e14 \u4f9d\u8d56 \u8d56\u4e8e \u4f9d\u8d56\u4e8e Ray API \u3002 \u5982\u679c \u60a8 \u60f3 \u521b\u5efa \u81ea\u5df1 \u7684 \u7279\u5b9a \u6a21\u578b \uff0c \u8bf7 \u67e5\u770b Ray \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6a21\u578b \u6587\u6863 \u3002","title":"3 . \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c"},{"location":"tuto_G_rllib_integration/#dqn","text":"\u672c \u8282 \u4ee5\u4e0a \u4e00\u8282 \u4e3a \u57fa\u7840 \uff0c \u5c55\u793a \u5982\u4f55 \u4f7f\u7528 BirdView pseudosensor \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c Ray \u7684 DQNTrainer \u8fdb\u884c RLlib \u96c6\u6210 \u7684 \u5177\u4f53 \u793a\u4f8b \u3002 DQN \u793a\u4f8b \u7684 \u7ed3\u6784 \u5982\u4e0b \uff1a \u5b9e\u9a8c \u7c7b : DQNExperiment \uff0c \u8986\u76d6 BaseExperiment \u7c7b \u7684 \u65b9\u6cd5 \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 : dqn _ example / dqn _ config . yaml \u8bad\u7ec3 \u6587\u4ef6 : dqn _ train . py \u63a8\u7406 \u6587\u4ef6 : \u6709 Ray : dqn _ inference _ ray . py \u6ca1\u6709 Ray : dqn _ inference . py \u8981 \u5728 \u672c\u5730 \u8fd0\u884c \u8be5 \u793a\u4f8b \uff1a \u5b89\u88c5 pytorch : pip3 install - r dqn _ example / dqn _ requirements . txt \u8fd0\u884c \u8bad\u7ec3 \u6587\u4ef6 \uff1a python3 dqn _ train . py dqn _ example / dqn _ config . yaml -- name dqn \u7b14\u8bb0 \u9ed8\u8ba4 \u914d\u7f6e \u4f7f\u7528 1 \u4e2a GPU \u548c 12 \u4e2a CPU \uff0c \u56e0\u6b64 \u5982\u679c \u60a8 \u7684 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6ca1\u6709 \u8be5 \u5bb9\u91cf \uff0c \u8bf7 \u51cf\u5c0f \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u7684 \u6570\u5b57 \u3002 \u5982\u679c \u9047\u5230 \u5185\u5b58 \u4e0d\u8db3 \u5185\u5b58\u4e0d\u8db3 \u95ee\u9898 \uff0c \u8bf7 \u8003\u8651 \u51cf\u5c11 \u8be5 buffer _ size \u53c2\u6570 \u3002","title":"DQN \u793a\u4f8b"},{"location":"tuto_G_rllib_integration/#aws_1","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 RLlib \u96c6\u6210 \u5728 AWS EC2 \u5b9e\u4f8b \u4e0a \u81ea\u52a8 \u8fd0\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 \u4e3a\u4e86 \u5904\u7406 \u5b9e\u4f8b \u7684 \u7f29\u653e \uff0c \u6211\u4eec \u4f7f\u7528 Ray autoscaler API \u3002","title":"\u5728 AWS \u4e0a \u8fd0\u884c"},{"location":"tuto_G_rllib_integration/#aws_2","text":"\u60a8 \u9700\u8981 \u6b63\u786e \u914d\u7f6e boto3 \u73af\u5883 \u3002 \u8bf7 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u914d\u7f6e AWS"},{"location":"tuto_G_rllib_integration/#ami","text":"\u4f7f\u7528 \u63d0\u4f9b \u7684 aws _ helper . py \u811a\u672c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u81ea\u52a8 \u521b\u5efa \u8bad\u7ec3 \u6240 \u9700 \u7684 \u6620\u50cf \uff0c \u5e76 \u4f20\u5165 \u57fa\u7840 \u6620\u50cf \u7684 \u540d\u79f0 \u548c install . sh \u5728 \u4ee5\u4e0b \u4f4d\u7f6e rllib - integration / aws / install \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts < installation - scripts > -- instance - type < instance - type > -- volume - size < volume - size >","title":"\u521b\u5efa \u8bad\u7ec3 AMI"},{"location":"tuto_G_rllib_integration/#_4","text":"\u521b\u5efa \u56fe\u50cf \u540e \uff0c \u5c06\u4f1a \u8f93\u51fa \u5e26\u6709 \u56fe\u50cf \u4fe1\u606f \u7684 \u8f93\u51fa \u3002 \u8981 \u4f7f\u7528 Ray \u81ea\u52a8 \u7f29\u653e \u5668 \uff0c \u8bf7 \u4f7f\u7528 \u8f93\u51fa \u4e2d \u7684 \u4fe1\u606f \u66f4\u65b0 autoscaler configuration file \u4e2d \u7684 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002","title":"\u914d\u7f6e \u96c6\u7fa4"},{"location":"tuto_G_rllib_integration/#_5","text":"\u521b\u5efa \u955c\u50cf \u540e \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Ray \u7684 API \u5728 \u96c6\u7fa4 \u4e0a \u8fd0\u884c \u8bad\u7ec3 \uff1a \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up < autoscaler _ configuration _ file > \uff08 \u53ef \u9009 \uff09 \u5982\u679c \u96c6\u7fa4 \u521d\u59cb \u521d\u59cb\u5316 \u540e \u672c\u5730 \u4ee3\u7801 \u88ab \u4fee\u6539 \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u66f4\u65b0 \uff1a ray rsync - up < autoscaler _ configuration _ file > < path _ to _ local _ folder > < path _ to _ remote _ folder > \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit < autoscaler _ configuration _ file > < training _ file > \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach < autoscaler _ configuration _ file > watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down < autoscaler _ configuration _ file >","title":"\u8fd0\u884c \u8bad\u7ec3"},{"location":"tuto_G_rllib_integration/#aws-dqn","text":"\u8981 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \uff1a \u901a\u8fc7 \u5c06 dqn _ example / dqn _ autoscaler . yaml \u914d\u7f6e \u4f20\u9012 \u7ed9 \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u521b\u5efa \u6620\u50cf \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts install / install . sh -- instance - type < instance - type > -- volume - size < volume - size > \u4f7f\u7528 \u4e0a \u4e00\u4e2a \u547d\u4ee4 dqn _ autoscaler . yaml \u63d0\u4f9b \u7684 \u4fe1\u606f \u66f4\u65b0 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002 \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up dqn _ example / dqn _ autoscaler . yaml \uff08 \u53ef \u9009 \uff09 \u4f7f\u7528 \u672c\u5730 \u66f4\u6539 \u66f4\u65b0 \u8fdc\u7a0b \u6587\u4ef6 \uff1a ray rsync - up dqn _ example / dqn _ autoscaler . yaml dqn _ example . ray rsync - up dqn _ example / dqn _ autoscaler . yaml rllib _ integration . \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit dqn _ example / dqn _ autoscaler . yaml dqn _ train . py -- dqn _ example / dqn _ config . yaml -- auto 6 . \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach dqn _ example / dqn _ autoscaler . yaml watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down dqn _ example / dqn _ autoscaler . yaml \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5728 AWS \u548c \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u673a\u4e0a \u5b89\u88c5 \u8ba1\u7b97\u673a \u8ba1\u7b97\u673a\u4e0a\u5b89\u88c5 \u548c \u8fd0\u884c RLlib \u96c6\u6210 \u3002 \u5982\u679c \u60a8 \u5bf9 \u672c \u6307\u5357 \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u6216 \u5728 GitHub \u4e0a \u63d0\u51fa \u95ee\u9898 \u3002","title":"\u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b"},{"location":"tuto_G_scenic/","text":"Scenic \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \uff0c \u901a\u8fc7 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u5b83 \u5047\u8bbe \u7528\u6237 \u4e8b\u5148 \u4e86\u89e3 \u573a\u666f \u8bed\u6cd5 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4e86\u89e3 \u6709\u5173 Scenic \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u4ed6\u4eec \u7684 \u201c Scenic \u5165\u95e8 \u201d \u6307\u5357 \uff0c \u5e76 \u67e5\u770b \u4ed6\u4eec \u6709\u5173 \u521b\u5efa \u9759\u6001 \u548c \u52a8\u6001 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u5728 \u672c \u6307\u5357 \u7ed3\u675f \u65f6 \uff0c \u60a8 \u5c06 \u4e86\u89e3 \uff1a \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u6240 \u9700 \u7684 \u6700\u4f4e \u8981\u6c42 \u3002 \u5982\u4f55 \u7f16\u5199 \u7b80\u5355 \u7684 \u573a\u666f \u5b9a\u4e49 \u6765 \u751f\u6210 \u5927\u91cf \u573a\u666f \u4eff\u771f \u3002 \u5982\u4f55 \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u3002 \u7528\u4e8e \u5728 Carla \u4e0a \u914d\u7f6e \u573a\u666f \u4eff\u771f \u7684 \u53c2\u6570 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Scenic \u57df \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f \u8fd0\u884c \u573a\u666f \u9644\u52a0 \u53c2\u6570 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u5b89\u88c5 Python 3.8 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u5b89\u88c5 Scenic \u3002 Scenic \u57df Scenic \u6709 \u4e00\u4e2a \u901a\u7528 \u9a7e\u9a76 \u57df \uff0c \u5141\u8bb8 \u7528\u6237 \u5b9a\u4e49 \u53ef\u4ee5 \u5728 \u4efb\u4f55 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u8fd0\u884c \u7684 \u573a\u666f \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8\u6709 \u7279\u5b9a \u4e8e \u6bcf\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5176\u4ed6 \u57df \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6709\u5173 Scenic \u57df \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6bcf\u4e2a \u9886\u57df \u4e2d \u7279\u522b \u91cd\u8981 \u7684 \u662f \u884c\u4e3a \u548c \u52a8\u4f5c \u7684 \u5b9a\u4e49 \u3002 \u68c0\u67e5 \u4ee5\u4e0b \u94fe\u63a5 \uff0c \u83b7\u53d6 \u6709\u5173 Scenic \u9a7e\u9a76 \u57df \u548c Carla \u57df \u7684 \u884c\u4e3a \u548c \u64cd\u4f5c \u7684 \u53c2\u8003 \u6750\u6599 \uff1a the Scenic \u9a7e\u9a76 \u9886\u57df \u7684 \u884c\u4e3a Carla \u57df \u4e2d \u7684 \u884c\u4e3a Scenic \u9a7e\u9a76 \u57df \u7684 \u52a8\u4f5c Carla \u57df \u4e2d \u7684 \u52a8\u4f5c \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f \u672c\u8282 \u5c06 \u4ecb\u7ecd \u5982\u4f55 \u7f16\u5199 \u57fa\u672c \u7684 \u573a\u666f \u811a\u672c \uff0c \u5176\u4e2d \u9886\u5934 \u8f66\u8f86 \u7531\u4e8e \u9053\u8def \u4e0a \u7684 \u969c\u788d \u969c\u788d\u7269 \u800c \u7a81\u7136 \u51cf\u901f \u3002 \u7136\u540e \uff0c \u672c\u8f66 \u9700\u8981 \u7a81\u7136 \u5236\u52a8 \u4ee5 \u907f\u514d \u4e0e \u524d\u8f66 \u53d1\u751f \u78b0\u649e \u3002 \u5b8c\u6574 \u7684 \u811a\u672c \u4ee5\u53ca \u6d89\u53ca \u66f4 \u590d\u6742 \u9053\u8def \u7f51\u7edc \u7684 \u5176\u4ed6 \u793a\u4f8b \u53ef\u4ee5 \u5728 Scenic \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u3002 1 . \u8bbe\u7f6e \u5730\u56fe \u53c2\u6570 \u5e76 \u58f0\u660e \u573a\u666f \u4f7f\u7528 \u7684 \u6a21\u578b \uff1a \u5e94 \u5c06 . xodr \u6587\u4ef6 \u8bbe\u7f6e \u4e3a map \u53c2\u6570 \u6570\u503c \u53c2\u6570\u503c \uff0c \u7a0d\u540e \u5c06 \u4f7f\u7528 \u8be5 \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u7edc \u4fe1\u606f \u3002 \u53c2\u6570 carla _ map \u662f \u6307 \u60a8 \u60f3\u8981 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u5df2 \u5b9a\u4e49 \uff0c \u5219 Scenic \u5c06 \u52a0\u8f7d \u5730\u56fe \u7684 \u6240\u6709 \u8d44\u4ea7 \uff08 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49 \uff09 \uff0c \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \uff0c \u5219 \u5c06 \u4f7f\u7528 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u8be5 \u6a21\u578b \u5305\u62ec \u7279\u5b9a \u4e8e Carla \u4e0a \u8fd0\u884c \u573a\u666f \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9 \u5e94\u8be5 \u5728 \u60a8 \u60f3\u8981 \u5728 Carla \u4e0a \u8fd0\u884c \u7684 \u6240\u6709 \u811a\u672c \u4e2d \u5b9a\u4e49 \u3002 ## SET MAP AND MODEL param map = localPath ( ' .. / .. / .. / tests / formats / opendrive / maps / CARLA / Town01 . xodr ' ) param carla _ map = ' Town01 ' model scenic . simulators . carla . model 2 . \u5b9a\u4e49 \u573a\u666f \u4e2d\u8981 \u4f7f\u7528 \u7684 \u5e38\u91cf \uff1a \u8be5 \u573a\u666f \u6d89\u53ca \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \uff0c \u9886\u5934 \u8f66\u8f86 \u548c \u81ea\u6211 \u8f66\u8f86 \u3002 \u6211\u4eec \u5c06 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \u6a21\u578b \u3001 \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u9608\u503c \u4ee5\u53ca \u5236 \u52a8\u91cf \u3002 ## CONSTANTS EGO _ MODEL = \" vehicle . lincoln . mkz _ 2017 \" EGO _ SPEED = 10 EGO _ BRAKING _ THRESHOLD = 12 LEAD _ CAR _ SPEED = 10 LEADCAR _ BRAKING _ THRESHOLD = 10 BRAKE _ ACTION = 1.0 3 . \u5b9a\u4e49 \u573a\u666f \u884c\u4e3a \uff1a \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Scenic \u884c\u4e3a \u5e93 \u6765 \u6307\u793a \u81ea\u6211 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u4e49 \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u7136\u540e \u5728 \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb \u65f6 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \u3002 \u9886\u5148 \u7684 \u8f66\u8f86 \u4e5f \u4f1a \u4ee5 \u9884\u5b9a \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u5e76 \u5728 \u8ddd\u79bb \u4efb\u4f55 \u7269\u4f53 \u4e00\u5b9a \u8ddd\u79bb \u5185 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \uff1a ## DEFINING BEHAVIORS # EGO BEHAVIOR : Follow lane , and brake after passing a threshold distance to the leading car behavior EgoBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyCars ( self , EGO _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) # LEAD CAR BEHAVIOR : Follow lane , and brake after passing a threshold distance to obstacle behavior LeadingCarBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyObjs ( self , LEADCAR _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) 4 . \u751f\u6210 \u8def\u7f51 \uff1a Scenic \u9053\u8def \u5e93 \u7528\u4e8e \u751f\u6210 \u9053\u8def \u7f51\u7edc \u51e0\u4f55 \u5f62\u72b6 \u548c \u4ea4\u901a \u4fe1\u606f \u3002 \u9053\u8def \u7f51\u7edc \u7531 Network \u7c7b \u7684 \u5b9e\u4f8b \u8868\u793a \uff0c \u5e76 \u7531 \u811a\u672c \u5f00\u5934 \u5b9a\u4e49 \u7684 \u6587\u4ef6 \u751f\u6210 \u3002 ## DEFINING SPATIAL RELATIONS # make sure to put ' * ' to uniformly randomly select from all elements of the list , ' lanes ' lane = Uniform ( * network . lanes ) 5 . \u8bbe\u7f6e \u573a\u666f \uff1a \u6211\u4eec \u73b0\u5728 \u5c06 \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u8d77\u59cb \u4f4d\u7f6e \u548c \u7269\u4f53 \u7684 \u653e\u7f6e \u3002 \u5728 \u8f66\u9053 \u4e2d\u95f4 \u653e\u7f6e \u5783\u573e \u5783\u573e\u6876 \uff1a obstacle = Trash on lane . centerline \u5c06 \u9886\u5148 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u540e\u65b9 50 \u81f3 30 \u7c73 \uff1a leadCar = Car following roadDirection from obstacle for Range ( - 50 , - 30 ) , with behavior LeadingCarBehavior ( LEAD _ CAR _ SPEED ) \u5c06 \u672c\u8f66 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf\u7740 \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u524d \u8f66 15 \u5230 10 \u7c73 \uff1a ego = Car following roadDirection from leadCar for Range ( - 15 , - 10 ) , with blueprint EGO _ MODEL , with behavior EgoBehavior ( EGO _ SPEED ) \u8981\u6c42 \u573a\u666f \u53d1\u751f \u5728 \u8ddd \u8def\u53e3 80 \u7c73 \u4ee5\u4e0a \u7684 \u4f4d\u7f6e \uff1a require ( distance to intersection ) > 80 6 . \u8bbe\u7f6e \u7ed3\u675f \u70b9 \uff0c \u4ee5\u4fbf \u811a\u672c \u77e5\u9053 \u573a\u666f \u4f55\u65f6 \u5b8c\u6210 \uff1a \u5f53 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u4f4e\u4e8e \u6bcf\u79d2 0.1 \u7c73 \u5e76\u4e14 \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u4e0d\u5230 30 \u7c73 \u65f6 \uff0c \u8be5 \u573a\u666f \u5c06 \u7ed3\u675f \u3002 terminate when ego . speed < 0.1 and ( distance to obstacle ) < 30 \u8fd0\u884c \u573a\u666f \u8981 \u8fd0\u884c Scenic \u573a\u666f \uff1a 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a scenic path / to / scenic / script . scenic -- simulate \u5c06 \u51fa\u73b0 \u4e00\u4e2a pygame \u7a97\u53e3 \uff0c \u5e76\u4e14 \u573a\u666f \u5c06 \u91cd\u590d \u64ad\u653e \uff0c \u6bcf\u6b21 \u90fd \u4f1a \u5728 \u811a\u672c \u4e2d \u8bbe\u7f6e \u7684 \u9650\u5236 \u8303\u56f4 \u5185 \u751f\u6210 \u4e00\u4e2a \u72ec\u7279 \u7684 \u573a\u666f \u3002 \u8981 \u505c\u6b62 \u573a\u666f \u751f\u6210 \uff0c \u8bf7 \u5728 \u7ec8\u7aef \u4e2d \u6309 ctrl + C \u3002 \u9644\u52a0 \u53c2\u6570 Carla \u6a21\u578b \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u5168\u5c40 \u53c2\u6570 \uff0c \u53ef\u4ee5 \u5728 \u4f7f\u7528 param \u8bed\u53e5 \u6216 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 -- param option \u9009\u9879 \u7684 \u573a\u666f \u4e2d \u8986\u76d6 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u4e0b\u9762 \u662f Carla \u6a21\u578b \u4e2d \u7684 \u53ef \u914d\u7f6e \u53c2\u6570 \u6570\u8868 \u53c2\u6570\u8868 \uff1a \u540d\u79f0 \u503c \u63cf\u8ff0 carla _ map str \u8981 \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \uff08 \u4f8b\u5982 \u201c Town01 \u201d \uff09 \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a None \uff0c Carla \u5c06 \u5c1d\u8bd5 \u4f7f\u7528 map \u53c2\u6570 \u4e2d \u5b9a\u4e49 \u7684 . xodr \u6587\u4ef6 \u5728 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u4e0b \u521b\u5efa \u4e16\u754c \u3002 timestep float \u7528\u4e8e \u4eff\u771f \u7684 \u65f6\u95f4 \u6b65\u957f \uff08 Scenic \u4e2d\u65ad Carla \u8fd0\u884c \u884c\u4e3a \u3001 \u68c0\u67e5 \u9700\u6c42 \u7b49 \u7684 \u9891\u7387 \uff09 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.1 \u79d2 \u3002 weather str \u6216 dict \u7528\u4e8e \u5929\u6c14 \u7684 \u4eff\u771f \u3002 \u53ef\u4ee5 \u662f \u6807\u8bc6 Carla \u5929\u6c14 \u9884\u8bbe \u4e4b\u4e00 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff08 \u4f8b\u5982 \u201c ClearSunset \u201d \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u6307\u5b9a \u6240\u6709 \u5929\u6c14 \u53c2\u6570 \u7684 \u5b57\u5178 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u662f \u6240\u6709 \u5929\u6c14 \u9884\u8bbe \u7684 \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u3002 address str \u8fde\u63a5 \u5230 Carla \u7684 IP \u5730\u5740 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a \u672c\u5730 \u4e3b\u673a ( 127.0 . 0.1 ) \u3002 port int \u8fde\u63a5 \u81f3 Carla \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 \u3002 timeout float \u5c1d\u8bd5 \u8fde\u63a5 \u5230 Carla \u65f6 \u7b49\u5f85 \u7684 \u6700\u957f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 render int \u662f\u5426 \u8ba9 Carla \u521b\u5efa \u4e00\u4e2a \u7a97\u53e3 \uff0c \u4ece \u81ea\u6211 \u5ba2\u4f53 \u7684 \u89d2\u5ea6 \u663e\u793a \u4eff\u771f \uff1a 1 \u662f \uff0c 0 \u5426 \u3002 \u9ed8\u8ba4 1 \u3002 record str \u5982\u679c \u975e\u7a7a \uff0c \u5219 \u4fdd\u5b58 \u7528\u4e8e \u91cd \u653e \u4eff\u771f \u7684 Carla \u8bb0\u5f55 \u6587\u4ef6 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002","title":"Scenic"},{"location":"tuto_G_scenic/#scenic","text":"\u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \uff0c \u901a\u8fc7 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u5b83 \u5047\u8bbe \u7528\u6237 \u4e8b\u5148 \u4e86\u89e3 \u573a\u666f \u8bed\u6cd5 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4e86\u89e3 \u6709\u5173 Scenic \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u4ed6\u4eec \u7684 \u201c Scenic \u5165\u95e8 \u201d \u6307\u5357 \uff0c \u5e76 \u67e5\u770b \u4ed6\u4eec \u6709\u5173 \u521b\u5efa \u9759\u6001 \u548c \u52a8\u6001 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u5728 \u672c \u6307\u5357 \u7ed3\u675f \u65f6 \uff0c \u60a8 \u5c06 \u4e86\u89e3 \uff1a \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u6240 \u9700 \u7684 \u6700\u4f4e \u8981\u6c42 \u3002 \u5982\u4f55 \u7f16\u5199 \u7b80\u5355 \u7684 \u573a\u666f \u5b9a\u4e49 \u6765 \u751f\u6210 \u5927\u91cf \u573a\u666f \u4eff\u771f \u3002 \u5982\u4f55 \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u3002 \u7528\u4e8e \u5728 Carla \u4e0a \u914d\u7f6e \u573a\u666f \u4eff\u771f \u7684 \u53c2\u6570 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Scenic \u57df \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f \u8fd0\u884c \u573a\u666f \u9644\u52a0 \u53c2\u6570","title":"Scenic"},{"location":"tuto_G_scenic/#_1","text":"\u5728 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u5b89\u88c5 Python 3.8 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u5b89\u88c5 Scenic \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_G_scenic/#scenic_1","text":"Scenic \u6709 \u4e00\u4e2a \u901a\u7528 \u9a7e\u9a76 \u57df \uff0c \u5141\u8bb8 \u7528\u6237 \u5b9a\u4e49 \u53ef\u4ee5 \u5728 \u4efb\u4f55 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u8fd0\u884c \u7684 \u573a\u666f \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8\u6709 \u7279\u5b9a \u4e8e \u6bcf\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5176\u4ed6 \u57df \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6709\u5173 Scenic \u57df \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6bcf\u4e2a \u9886\u57df \u4e2d \u7279\u522b \u91cd\u8981 \u7684 \u662f \u884c\u4e3a \u548c \u52a8\u4f5c \u7684 \u5b9a\u4e49 \u3002 \u68c0\u67e5 \u4ee5\u4e0b \u94fe\u63a5 \uff0c \u83b7\u53d6 \u6709\u5173 Scenic \u9a7e\u9a76 \u57df \u548c Carla \u57df \u7684 \u884c\u4e3a \u548c \u64cd\u4f5c \u7684 \u53c2\u8003 \u6750\u6599 \uff1a the Scenic \u9a7e\u9a76 \u9886\u57df \u7684 \u884c\u4e3a Carla \u57df \u4e2d \u7684 \u884c\u4e3a Scenic \u9a7e\u9a76 \u57df \u7684 \u52a8\u4f5c Carla \u57df \u4e2d \u7684 \u52a8\u4f5c","title":"Scenic \u57df"},{"location":"tuto_G_scenic/#carla-scenic","text":"\u672c\u8282 \u5c06 \u4ecb\u7ecd \u5982\u4f55 \u7f16\u5199 \u57fa\u672c \u7684 \u573a\u666f \u811a\u672c \uff0c \u5176\u4e2d \u9886\u5934 \u8f66\u8f86 \u7531\u4e8e \u9053\u8def \u4e0a \u7684 \u969c\u788d \u969c\u788d\u7269 \u800c \u7a81\u7136 \u51cf\u901f \u3002 \u7136\u540e \uff0c \u672c\u8f66 \u9700\u8981 \u7a81\u7136 \u5236\u52a8 \u4ee5 \u907f\u514d \u4e0e \u524d\u8f66 \u53d1\u751f \u78b0\u649e \u3002 \u5b8c\u6574 \u7684 \u811a\u672c \u4ee5\u53ca \u6d89\u53ca \u66f4 \u590d\u6742 \u9053\u8def \u7f51\u7edc \u7684 \u5176\u4ed6 \u793a\u4f8b \u53ef\u4ee5 \u5728 Scenic \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u3002 1 . \u8bbe\u7f6e \u5730\u56fe \u53c2\u6570 \u5e76 \u58f0\u660e \u573a\u666f \u4f7f\u7528 \u7684 \u6a21\u578b \uff1a \u5e94 \u5c06 . xodr \u6587\u4ef6 \u8bbe\u7f6e \u4e3a map \u53c2\u6570 \u6570\u503c \u53c2\u6570\u503c \uff0c \u7a0d\u540e \u5c06 \u4f7f\u7528 \u8be5 \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u7edc \u4fe1\u606f \u3002 \u53c2\u6570 carla _ map \u662f \u6307 \u60a8 \u60f3\u8981 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u5df2 \u5b9a\u4e49 \uff0c \u5219 Scenic \u5c06 \u52a0\u8f7d \u5730\u56fe \u7684 \u6240\u6709 \u8d44\u4ea7 \uff08 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49 \uff09 \uff0c \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \uff0c \u5219 \u5c06 \u4f7f\u7528 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u8be5 \u6a21\u578b \u5305\u62ec \u7279\u5b9a \u4e8e Carla \u4e0a \u8fd0\u884c \u573a\u666f \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9 \u5e94\u8be5 \u5728 \u60a8 \u60f3\u8981 \u5728 Carla \u4e0a \u8fd0\u884c \u7684 \u6240\u6709 \u811a\u672c \u4e2d \u5b9a\u4e49 \u3002 ## SET MAP AND MODEL param map = localPath ( ' .. / .. / .. / tests / formats / opendrive / maps / CARLA / Town01 . xodr ' ) param carla _ map = ' Town01 ' model scenic . simulators . carla . model 2 . \u5b9a\u4e49 \u573a\u666f \u4e2d\u8981 \u4f7f\u7528 \u7684 \u5e38\u91cf \uff1a \u8be5 \u573a\u666f \u6d89\u53ca \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \uff0c \u9886\u5934 \u8f66\u8f86 \u548c \u81ea\u6211 \u8f66\u8f86 \u3002 \u6211\u4eec \u5c06 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \u6a21\u578b \u3001 \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u9608\u503c \u4ee5\u53ca \u5236 \u52a8\u91cf \u3002 ## CONSTANTS EGO _ MODEL = \" vehicle . lincoln . mkz _ 2017 \" EGO _ SPEED = 10 EGO _ BRAKING _ THRESHOLD = 12 LEAD _ CAR _ SPEED = 10 LEADCAR _ BRAKING _ THRESHOLD = 10 BRAKE _ ACTION = 1.0 3 . \u5b9a\u4e49 \u573a\u666f \u884c\u4e3a \uff1a \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Scenic \u884c\u4e3a \u5e93 \u6765 \u6307\u793a \u81ea\u6211 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u4e49 \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u7136\u540e \u5728 \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb \u65f6 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \u3002 \u9886\u5148 \u7684 \u8f66\u8f86 \u4e5f \u4f1a \u4ee5 \u9884\u5b9a \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u5e76 \u5728 \u8ddd\u79bb \u4efb\u4f55 \u7269\u4f53 \u4e00\u5b9a \u8ddd\u79bb \u5185 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \uff1a ## DEFINING BEHAVIORS # EGO BEHAVIOR : Follow lane , and brake after passing a threshold distance to the leading car behavior EgoBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyCars ( self , EGO _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) # LEAD CAR BEHAVIOR : Follow lane , and brake after passing a threshold distance to obstacle behavior LeadingCarBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyObjs ( self , LEADCAR _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) 4 . \u751f\u6210 \u8def\u7f51 \uff1a Scenic \u9053\u8def \u5e93 \u7528\u4e8e \u751f\u6210 \u9053\u8def \u7f51\u7edc \u51e0\u4f55 \u5f62\u72b6 \u548c \u4ea4\u901a \u4fe1\u606f \u3002 \u9053\u8def \u7f51\u7edc \u7531 Network \u7c7b \u7684 \u5b9e\u4f8b \u8868\u793a \uff0c \u5e76 \u7531 \u811a\u672c \u5f00\u5934 \u5b9a\u4e49 \u7684 \u6587\u4ef6 \u751f\u6210 \u3002 ## DEFINING SPATIAL RELATIONS # make sure to put ' * ' to uniformly randomly select from all elements of the list , ' lanes ' lane = Uniform ( * network . lanes ) 5 . \u8bbe\u7f6e \u573a\u666f \uff1a \u6211\u4eec \u73b0\u5728 \u5c06 \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u8d77\u59cb \u4f4d\u7f6e \u548c \u7269\u4f53 \u7684 \u653e\u7f6e \u3002 \u5728 \u8f66\u9053 \u4e2d\u95f4 \u653e\u7f6e \u5783\u573e \u5783\u573e\u6876 \uff1a obstacle = Trash on lane . centerline \u5c06 \u9886\u5148 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u540e\u65b9 50 \u81f3 30 \u7c73 \uff1a leadCar = Car following roadDirection from obstacle for Range ( - 50 , - 30 ) , with behavior LeadingCarBehavior ( LEAD _ CAR _ SPEED ) \u5c06 \u672c\u8f66 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf\u7740 \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u524d \u8f66 15 \u5230 10 \u7c73 \uff1a ego = Car following roadDirection from leadCar for Range ( - 15 , - 10 ) , with blueprint EGO _ MODEL , with behavior EgoBehavior ( EGO _ SPEED ) \u8981\u6c42 \u573a\u666f \u53d1\u751f \u5728 \u8ddd \u8def\u53e3 80 \u7c73 \u4ee5\u4e0a \u7684 \u4f4d\u7f6e \uff1a require ( distance to intersection ) > 80 6 . \u8bbe\u7f6e \u7ed3\u675f \u70b9 \uff0c \u4ee5\u4fbf \u811a\u672c \u77e5\u9053 \u573a\u666f \u4f55\u65f6 \u5b8c\u6210 \uff1a \u5f53 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u4f4e\u4e8e \u6bcf\u79d2 0.1 \u7c73 \u5e76\u4e14 \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u4e0d\u5230 30 \u7c73 \u65f6 \uff0c \u8be5 \u573a\u666f \u5c06 \u7ed3\u675f \u3002 terminate when ego . speed < 0.1 and ( distance to obstacle ) < 30","title":"\u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f"},{"location":"tuto_G_scenic/#_2","text":"\u8981 \u8fd0\u884c Scenic \u573a\u666f \uff1a 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a scenic path / to / scenic / script . scenic -- simulate \u5c06 \u51fa\u73b0 \u4e00\u4e2a pygame \u7a97\u53e3 \uff0c \u5e76\u4e14 \u573a\u666f \u5c06 \u91cd\u590d \u64ad\u653e \uff0c \u6bcf\u6b21 \u90fd \u4f1a \u5728 \u811a\u672c \u4e2d \u8bbe\u7f6e \u7684 \u9650\u5236 \u8303\u56f4 \u5185 \u751f\u6210 \u4e00\u4e2a \u72ec\u7279 \u7684 \u573a\u666f \u3002 \u8981 \u505c\u6b62 \u573a\u666f \u751f\u6210 \uff0c \u8bf7 \u5728 \u7ec8\u7aef \u4e2d \u6309 ctrl + C \u3002","title":"\u8fd0\u884c \u573a\u666f"},{"location":"tuto_G_scenic/#_3","text":"Carla \u6a21\u578b \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u5168\u5c40 \u53c2\u6570 \uff0c \u53ef\u4ee5 \u5728 \u4f7f\u7528 param \u8bed\u53e5 \u6216 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 -- param option \u9009\u9879 \u7684 \u573a\u666f \u4e2d \u8986\u76d6 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u4e0b\u9762 \u662f Carla \u6a21\u578b \u4e2d \u7684 \u53ef \u914d\u7f6e \u53c2\u6570 \u6570\u8868 \u53c2\u6570\u8868 \uff1a \u540d\u79f0 \u503c \u63cf\u8ff0 carla _ map str \u8981 \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \uff08 \u4f8b\u5982 \u201c Town01 \u201d \uff09 \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a None \uff0c Carla \u5c06 \u5c1d\u8bd5 \u4f7f\u7528 map \u53c2\u6570 \u4e2d \u5b9a\u4e49 \u7684 . xodr \u6587\u4ef6 \u5728 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u4e0b \u521b\u5efa \u4e16\u754c \u3002 timestep float \u7528\u4e8e \u4eff\u771f \u7684 \u65f6\u95f4 \u6b65\u957f \uff08 Scenic \u4e2d\u65ad Carla \u8fd0\u884c \u884c\u4e3a \u3001 \u68c0\u67e5 \u9700\u6c42 \u7b49 \u7684 \u9891\u7387 \uff09 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.1 \u79d2 \u3002 weather str \u6216 dict \u7528\u4e8e \u5929\u6c14 \u7684 \u4eff\u771f \u3002 \u53ef\u4ee5 \u662f \u6807\u8bc6 Carla \u5929\u6c14 \u9884\u8bbe \u4e4b\u4e00 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff08 \u4f8b\u5982 \u201c ClearSunset \u201d \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u6307\u5b9a \u6240\u6709 \u5929\u6c14 \u53c2\u6570 \u7684 \u5b57\u5178 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u662f \u6240\u6709 \u5929\u6c14 \u9884\u8bbe \u7684 \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u3002 address str \u8fde\u63a5 \u5230 Carla \u7684 IP \u5730\u5740 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a \u672c\u5730 \u4e3b\u673a ( 127.0 . 0.1 ) \u3002 port int \u8fde\u63a5 \u81f3 Carla \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 \u3002 timeout float \u5c1d\u8bd5 \u8fde\u63a5 \u5230 Carla \u65f6 \u7b49\u5f85 \u7684 \u6700\u957f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 render int \u662f\u5426 \u8ba9 Carla \u521b\u5efa \u4e00\u4e2a \u7a97\u53e3 \uff0c \u4ece \u81ea\u6211 \u5ba2\u4f53 \u7684 \u89d2\u5ea6 \u663e\u793a \u4eff\u771f \uff1a 1 \u662f \uff0c 0 \u5426 \u3002 \u9ed8\u8ba4 1 \u3002 record str \u5982\u679c \u975e\u7a7a \uff0c \u5219 \u4fdd\u5b58 \u7528\u4e8e \u91cd \u653e \u4eff\u771f \u7684 Carla \u8bb0\u5f55 \u6587\u4ef6 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002","title":"\u9644\u52a0 \u53c2\u6570"},{"location":"tuto_G_texture_streaming/","text":"\u901a\u8fc7 API \u66f4\u6539 \u7eb9\u7406 Carla API \u53ef \u7528\u4e8e \u5728 \u8fd0\u884c \u65f6 \u4fee\u6539 \u8d44\u6e90 \u7eb9\u7406 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u9009\u62e9 \u8d44\u6e90 \uff0c \u7136\u540e \u5728 Carla \u4eff\u771f \u8fd0\u884c \u65f6 \u4fee\u6539 \u5176 \u7eb9\u7406 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8d44\u6e90 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u52a0\u8f7d \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u52a0\u8f7d Carla \u5730\u56fe \uff0c \u6309\u7167 Linux \u6216 Windows \u7684 \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u7136\u540e \u6784\u5efa \u5e76 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8ba9 \u6211\u4eec \u6253\u5f00 \u52a0\u8f7d \u4e86 Town 10 \uff08 \u9ed8\u8ba4 \u57ce\u9547 \uff09 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u7136\u540e \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u6211\u4eec \u9009\u62e9 BP _ Apartment04 _ v05 _ Opt \u8fdb\u884c \u7eb9\u7406 \u64cd\u4f5c \uff0c \u540d\u79f0 \u53ef\u4ee5 \u5728 \u201c \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe ( World Outliner ) \u201d \u9762\u677f \u4e2d \u770b\u5230 \u3002 \u786e\u4fdd \u5c06 \u9f20\u6807 \u60ac\u505c \u9f20\u6807\u60ac\u505c \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \u4e2d \u7684 \u540d\u79f0 \u4e0a \u5e76 \u4f7f\u7528 \u5de5\u5177 \u63d0\u793a \u4e2d \u5b9a\u4e49 \u7684 \u540d\u79f0 \u3002 \u5185\u90e8 \u540d\u79f0 \u53ef\u80fd \u4e0e \u5217\u8868 \u4e2d \u663e\u793a \u7684 \u6807\u9898 \u4e0d\u540c \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5185\u90e8 \u540d\u79f0 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u662f BP _ Apartment04 _ v05 _ Opt _ 2 \u3002 \u5bfc\u51fa \u7eb9\u7406 \u4ee5\u4f9b \u4f7f\u7528 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u7528\u4e8e \u63a7\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u89c2 \u7684 \u7eb9\u7406 \u3002 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u540e \uff0c \u5728 \u201c \u7ec6\u8282 \u201d \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u8d44\u4ea7 \u7684 \u4e00\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u4f4d\u7f6e \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u3002 \u5355\u51fb \u201c StaticMesh \uff08 \u7ee7\u627f \uff09 \u201d \u4ee5 \u6253\u5f00 \u7f51\u683c \u4f53 \u5c5e\u6027 \uff0c \u7136\u540e \u5728 \u9762\u677f \u7684 \u201c \u9759\u6001 \u7f51\u683c \u4f53 \u201d \u90e8\u5206 \u4e2d \u5355\u51fb \u653e\u5927 \u653e\u5927\u955c \u56fe\u6807 \u3002 \u8fd9\u4f1a \u5c06 \u5c5e\u4e8e \u8d44\u6e90 \u7684 \u6750\u8d28 \u548c \u7eb9\u7406 \u7f6e\u4e8e \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u7126\u70b9 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u6211\u4eec \u8981 \u68c0\u67e5 T _ Apartment04 _ D _ Opt \u7eb9\u7406 \u3002 \u5982\u679c \u53cc\u51fb \u7eb9\u7406 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u68c0\u67e5 \u5b83 \uff0c \u4f46\u662f \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u60f3\u8981 \u5bfc\u51fa \u5b83 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u5b83 \u3002 \u5355\u51fb T _ Apartment04 _ D _ Opt \u5e76 \u53f3\u952e \u9009\u62e9 \u8d44\u4ea7 \u64cd\u4f5c > \u5bfc\u51fa \u3002 \u4ee5 \u9002\u5f53 \u7684 \u683c\u5f0f \u4fdd\u5b58 \u6587\u4ef6 \uff08 \u6211\u4eec \u5728 \u8fd9\u91cc \u9009\u62e9 TGA \u683c\u5f0f \uff09 \u3002 \u5728 \u60a8 \u559c\u6b22 \u7684 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u4e2d \u6253\u5f00 \u5bfc\u51fa \u7684 \u7eb9\u7406 \uff0c \u5e76 \u6839\u636e \u9700\u8981 \u7f16\u8f91 \u7eb9\u7406 \u3002 \u5728 \u4e0b\u56fe \u4e2d \uff0c \u4e0a\u534a \u90e8\u5206 \u53ef\u4ee5 \u770b\u5230 \u539f\u59cb \u7eb9\u7406 \uff0c \u4e0b \u534a \u90e8\u5206 \u663e\u793a \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u3002 \u5c06 \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u6253\u5f00 \u4ee3\u7801 \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4e00\u4e9b Python \u6765 \u66f4\u65b0 \u6b63\u5728 \u8fd0\u884c \u7684 Carla \u4eff\u771f \u4e2d \u7684 \u7eb9\u7406 \u3002 \u901a\u8fc7 API \u66f4\u65b0 \u7eb9\u7406 \u5982\u679c \u5c1a\u672a \u542f\u52a8 \uff0c \u8bf7 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u4eff\u771f \uff0c \u6216 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u542f\u52a8 \u4eff\u771f \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 Python \u56fe\u50cf \u5e93 ( PIL ) \u4ece \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u5bfc\u51fa \u7684 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4e2d \u8bfb\u53d6 \u7eb9\u7406 \u3002 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 import carla from PIL import Image # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) \u66f4\u65b0 \u7eb9\u7406 \u52a0\u8f7d \u4fee\u6539 \u540e \u7684 \u56fe\u50cf \u540e \uff0c \u5b9e\u4f8b \u5316 carla . TextureColor \u5bf9\u8c61 \u5e76 \u586b\u5145 \u52a0\u8f7d \u56fe\u50cf \u4e2d \u7684 \u50cf\u7d20 \u6570\u636e \u3002 \u4f7f\u7528 carla . World \u5bf9\u8c61 \u7684 apply _ color _ texture _ to _ object ( ... ) \u65b9\u6cd5 \u6765 \u66f4\u65b0 \u7eb9\u7406 \u3002 \u60a8 \u5e94\u8be5 \u5728 UE4 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u4e2d \u770b\u5230 \u7eb9\u7406 \u66f4\u65b0 \u3002 # Load the modified texture image = Image . open ( ' BP _ Apartment04 _ v05 _ modified . tga ' ) height = image . size [ 1 ] width = image . size [ 0 ] # Instantiate a carla . TextureColor object and populate # the pixels with data from the modified image texture = carla . TextureColor ( width , height ) for x in range ( 0 , width ) : for y in range ( 0 , height ) : color = image . getpixel ( ( x , y ) ) r = int ( color [ 0 ] ) g = int ( color [ 1 ] ) b = int ( color [ 2 ] ) a = 255 texture . set ( x , y , carla . Color ( r , g , b , a ) ) # Now apply the texture to the building asset world . apply _ color _ texture _ to _ object ( ' BP _ Apartment04 _ v05 _ Opt _ 2 ' , carla . MaterialParameter . Diffuse , texture ) \u901a\u8fc7 API \u67e5\u627e \u5bf9\u8c61 \u540d\u79f0 \u8981 \u5728 \u4e0d \u4f9d\u8d56 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u60c5\u51b5 \u4e0b \u67e5\u627e \u5bf9\u8c61 \uff0c \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world . get _ names _ of _ all _ objects ( ) \u67e5\u8be2 \u5bf9\u8c61 \u540d\u79f0 \u3002 \u901a\u8fc7 \u4f7f\u7528 Python \u7684 \u5185\u7f6e filter ( ... ) \u65b9\u6cd5 \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u76ee\u6807 \u5bf9\u8c61 \u5f52\u96f6 \u3002 # Filter world objects for those with ' Apartment ' in the name list ( filter ( lambda k : ' Apartment ' in k , world . get _ names _ of _ all _ objects ( ) ) )","title":"\u901a\u8fc7 API \u66f4\u6539 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#api","text":"Carla API \u53ef \u7528\u4e8e \u5728 \u8fd0\u884c \u65f6 \u4fee\u6539 \u8d44\u6e90 \u7eb9\u7406 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u9009\u62e9 \u8d44\u6e90 \uff0c \u7136\u540e \u5728 Carla \u4eff\u771f \u8fd0\u884c \u65f6 \u4fee\u6539 \u5176 \u7eb9\u7406 \u3002","title":"\u901a\u8fc7 API \u66f4\u6539 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#_1","text":"\u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u52a0\u8f7d \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u52a0\u8f7d Carla \u5730\u56fe \uff0c \u6309\u7167 Linux \u6216 Windows \u7684 \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u7136\u540e \u6784\u5efa \u5e76 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8ba9 \u6211\u4eec \u6253\u5f00 \u52a0\u8f7d \u4e86 Town 10 \uff08 \u9ed8\u8ba4 \u57ce\u9547 \uff09 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u7136\u540e \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u6211\u4eec \u9009\u62e9 BP _ Apartment04 _ v05 _ Opt \u8fdb\u884c \u7eb9\u7406 \u64cd\u4f5c \uff0c \u540d\u79f0 \u53ef\u4ee5 \u5728 \u201c \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe ( World Outliner ) \u201d \u9762\u677f \u4e2d \u770b\u5230 \u3002 \u786e\u4fdd \u5c06 \u9f20\u6807 \u60ac\u505c \u9f20\u6807\u60ac\u505c \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \u4e2d \u7684 \u540d\u79f0 \u4e0a \u5e76 \u4f7f\u7528 \u5de5\u5177 \u63d0\u793a \u4e2d \u5b9a\u4e49 \u7684 \u540d\u79f0 \u3002 \u5185\u90e8 \u540d\u79f0 \u53ef\u80fd \u4e0e \u5217\u8868 \u4e2d \u663e\u793a \u7684 \u6807\u9898 \u4e0d\u540c \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5185\u90e8 \u540d\u79f0 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u662f BP _ Apartment04 _ v05 _ Opt _ 2 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8d44\u6e90"},{"location":"tuto_G_texture_streaming/#_2","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u7528\u4e8e \u63a7\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u89c2 \u7684 \u7eb9\u7406 \u3002 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u540e \uff0c \u5728 \u201c \u7ec6\u8282 \u201d \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u8d44\u4ea7 \u7684 \u4e00\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u4f4d\u7f6e \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u3002 \u5355\u51fb \u201c StaticMesh \uff08 \u7ee7\u627f \uff09 \u201d \u4ee5 \u6253\u5f00 \u7f51\u683c \u4f53 \u5c5e\u6027 \uff0c \u7136\u540e \u5728 \u9762\u677f \u7684 \u201c \u9759\u6001 \u7f51\u683c \u4f53 \u201d \u90e8\u5206 \u4e2d \u5355\u51fb \u653e\u5927 \u653e\u5927\u955c \u56fe\u6807 \u3002 \u8fd9\u4f1a \u5c06 \u5c5e\u4e8e \u8d44\u6e90 \u7684 \u6750\u8d28 \u548c \u7eb9\u7406 \u7f6e\u4e8e \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u7126\u70b9 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u6211\u4eec \u8981 \u68c0\u67e5 T _ Apartment04 _ D _ Opt \u7eb9\u7406 \u3002 \u5982\u679c \u53cc\u51fb \u7eb9\u7406 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u68c0\u67e5 \u5b83 \uff0c \u4f46\u662f \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u60f3\u8981 \u5bfc\u51fa \u5b83 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u5b83 \u3002 \u5355\u51fb T _ Apartment04 _ D _ Opt \u5e76 \u53f3\u952e \u9009\u62e9 \u8d44\u4ea7 \u64cd\u4f5c > \u5bfc\u51fa \u3002 \u4ee5 \u9002\u5f53 \u7684 \u683c\u5f0f \u4fdd\u5b58 \u6587\u4ef6 \uff08 \u6211\u4eec \u5728 \u8fd9\u91cc \u9009\u62e9 TGA \u683c\u5f0f \uff09 \u3002 \u5728 \u60a8 \u559c\u6b22 \u7684 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u4e2d \u6253\u5f00 \u5bfc\u51fa \u7684 \u7eb9\u7406 \uff0c \u5e76 \u6839\u636e \u9700\u8981 \u7f16\u8f91 \u7eb9\u7406 \u3002 \u5728 \u4e0b\u56fe \u4e2d \uff0c \u4e0a\u534a \u90e8\u5206 \u53ef\u4ee5 \u770b\u5230 \u539f\u59cb \u7eb9\u7406 \uff0c \u4e0b \u534a \u90e8\u5206 \u663e\u793a \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u3002 \u5c06 \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u6253\u5f00 \u4ee3\u7801 \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4e00\u4e9b Python \u6765 \u66f4\u65b0 \u6b63\u5728 \u8fd0\u884c \u7684 Carla \u4eff\u771f \u4e2d \u7684 \u7eb9\u7406 \u3002","title":"\u5bfc\u51fa \u7eb9\u7406 \u4ee5\u4f9b \u4f7f\u7528"},{"location":"tuto_G_texture_streaming/#api_1","text":"\u5982\u679c \u5c1a\u672a \u542f\u52a8 \uff0c \u8bf7 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u4eff\u771f \uff0c \u6216 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u542f\u52a8 \u4eff\u771f \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 Python \u56fe\u50cf \u5e93 ( PIL ) \u4ece \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u5bfc\u51fa \u7684 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4e2d \u8bfb\u53d6 \u7eb9\u7406 \u3002","title":"\u901a\u8fc7 API \u66f4\u65b0 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#_3","text":"import carla from PIL import Image # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 )","title":"\u8fde\u63a5 \u5230 \u4eff\u771f\u5668"},{"location":"tuto_G_texture_streaming/#_4","text":"\u52a0\u8f7d \u4fee\u6539 \u540e \u7684 \u56fe\u50cf \u540e \uff0c \u5b9e\u4f8b \u5316 carla . TextureColor \u5bf9\u8c61 \u5e76 \u586b\u5145 \u52a0\u8f7d \u56fe\u50cf \u4e2d \u7684 \u50cf\u7d20 \u6570\u636e \u3002 \u4f7f\u7528 carla . World \u5bf9\u8c61 \u7684 apply _ color _ texture _ to _ object ( ... ) \u65b9\u6cd5 \u6765 \u66f4\u65b0 \u7eb9\u7406 \u3002 \u60a8 \u5e94\u8be5 \u5728 UE4 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u4e2d \u770b\u5230 \u7eb9\u7406 \u66f4\u65b0 \u3002 # Load the modified texture image = Image . open ( ' BP _ Apartment04 _ v05 _ modified . tga ' ) height = image . size [ 1 ] width = image . size [ 0 ] # Instantiate a carla . TextureColor object and populate # the pixels with data from the modified image texture = carla . TextureColor ( width , height ) for x in range ( 0 , width ) : for y in range ( 0 , height ) : color = image . getpixel ( ( x , y ) ) r = int ( color [ 0 ] ) g = int ( color [ 1 ] ) b = int ( color [ 2 ] ) a = 255 texture . set ( x , y , carla . Color ( r , g , b , a ) ) # Now apply the texture to the building asset world . apply _ color _ texture _ to _ object ( ' BP _ Apartment04 _ v05 _ Opt _ 2 ' , carla . MaterialParameter . Diffuse , texture )","title":"\u66f4\u65b0 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#api_2","text":"\u8981 \u5728 \u4e0d \u4f9d\u8d56 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u60c5\u51b5 \u4e0b \u67e5\u627e \u5bf9\u8c61 \uff0c \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world . get _ names _ of _ all _ objects ( ) \u67e5\u8be2 \u5bf9\u8c61 \u540d\u79f0 \u3002 \u901a\u8fc7 \u4f7f\u7528 Python \u7684 \u5185\u7f6e filter ( ... ) \u65b9\u6cd5 \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u76ee\u6807 \u5bf9\u8c61 \u5f52\u96f6 \u3002 # Filter world objects for those with ' Apartment ' in the name list ( filter ( lambda k : ' Apartment ' in k , world . get _ names _ of _ all _ objects ( ) ) )","title":"\u901a\u8fc7 API \u67e5\u627e \u5bf9\u8c61 \u540d\u79f0"},{"location":"tuto_G_traffic_light/","text":"\u4ea4\u901a \u4ea4\u901a\u706f \u914d\u7f6e \u548c \u4f7f\u7528 \uff08 get _ traffic _ light \uff09 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 Carla \u4e2d \u7684 \u7b80\u5355 \u914d\u7f6e \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8fdb\u884c \u4f4d\u7f6e \u8c03\u6574 \u3002 \u4e0e \u4ea4\u901a \u4ea4\u901a\u706f \u76f8\u8fde \u8fde\u63a5 \u76f8\u8fde\u63a5 \u7684 \u6709 \u4e00\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7ec4\u4ef6 \uff0c \u901a\u8fc7 \u62d6 \u5230 \u8fd9\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7684 \u4f4d\u7f6e \u548c \u6539\u53d8 \u957f\u5ea6 \u6765 \u51b3\u5b9a \u5bf9\u5e94 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5206\u914d \u7ed9 \u8def\u53e3 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \uff1a \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u9009\u62e9 BP _ TrafficLightGroup \u62d6\u52a8 \u5230 \u8def\u53e3 \uff0c \u5e76 \u5728 \u8be5 \u5bf9\u8c61 \u7684 \u7ec6\u8282 \u9762\u677f \u4e0b \u627e\u5230 Traffic Light \uff0c \u5c06 \u9700\u8981 \u6dfb\u52a0 \u5230 \u8be5 \u8def\u53e3 \u7ec4 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u3002 \u53c2\u8003 \u94fe\u63a5 \uff1a \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe - \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6587\u6863 ( openhutb . github . io ) \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u90e8\u5206 \u4f7f\u7528 python \u811a\u672c \u7b80\u5355 \u4f7f\u7528 \u4ea4\u901a \u4ea4\u901a\u706f \u521b\u5efa \u4e0e carla \u7684 \u8fde\u63a5 client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) # \u8bbe\u7f6e \u8d85\u65f6 world = client . get _ world ( ) # \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u83b7\u53d6 \u573a\u666f \u4e2d \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5bf9\u8c61 traffic _ lights = world . get _ actors ( ) . filter ( ' traffic . traffic _ light ' ) 1 \u3001 \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f def get _ light _ location ( world , traffic _ lights ) : # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 traffic _ lights _ location = { } for traffic _ light in traffic _ lights : location = traffic _ light . get _ location ( ) # status = traffic _ light . get _ state ( ) position = ( location . x , location . y , location . z ) # status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # traffic _ lights _ data [ traffic _ light . id ] = { ' position ' : position , ' status ' : status _ str } traffic _ lights _ location [ traffic _ light . id ] = { ' position ' : position } # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 carla \u4e2d \u6807\u793a \u51fa\u6765 \uff0c \u4ee5 traffic _ light . id world . debug . draw _ string ( location , str ( traffic _ light . id ) , life _ time = 6000 , color = carla . Color ( 255 , 0 , 0 ) ) return traffic _ lights _ location print ( traffic _ lights _ location ) 2 \u3001 \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u914d\u65f6 \u65b9\u6848 def get _ light _ time ( traffic _ lights ) : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u65f6 \u4fe1\u606f # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 \uff0c \u7528\u4e8e \u5b58\u50a8 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f traffic _ lights _ time = { } # \u904d\u5386 \u6240\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f for traffic _ light in traffic _ lights : # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u72b6\u6001 status = traffic _ light . get _ state ( ) status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f \u6dfb\u52a0 \u5230 \u5b57\u5178 \u4e2d traffic _ lights _ time [ traffic _ light _ id ] = { ' status ' : status _ str , ' red _ time ' : red _ time , ' green _ time ' : green _ time , ' yellow _ time ' : yellow _ time } print ( traffic _ lights _ time ) return traffic _ lights _ time 3 \u3001 \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 def change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world ) : # \u904d\u5386 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u627e\u5230 \u5bf9\u5e94 \u8def\u706f for traffic _ light in traffic _ lights : if traffic _ light . id = = traffic _ light _ id : # \u5c55\u793a \u539f\u59cb \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 redtime = traffic _ light . get _ red _ time ( ) greentime = traffic _ light . get _ green _ time ( ) yellowtime = traffic _ light . get _ yellow _ time ( ) print ( \" \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , redtime , yellowtime , greentime ) ) # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f traffic _ light . set _ red _ time ( float ( red _ time ) ) traffic _ light . set _ yellow _ time ( float ( yellow _ time ) ) traffic _ light . set _ green _ time ( float ( green _ time ) ) print ( \" \u5df2 \u4fee\u6539 \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , red _ time , yellow _ time , green _ time ) ) world . tick ( ) # \u66f4\u65b0 Carla \u4e16\u754c \u7684 \u72b6\u6001 \uff0c \u4f7f\u5f97 \u4fee\u6539 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65b9\u6848 \u7acb\u5373 \u751f\u6548 \u3002 4 \u3001 \u6839\u636e \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8c03\u6574 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 4.1 \u3001 \u83b7\u53d6 \u6307\u5b9a \u8def\u53e3 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf def get _ traffic _ flow ( world ) : # \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 , \u5b58\u50a8 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f # vehicle _ positions = { } # \u521b\u5efa \u4e24\u4e2a \u7a7a \u5217\u8868 \uff0c \u7528\u4e8e \u5b58\u50a8 \u65f6\u523b \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e # timestamps = [ ] traffic _ flow = [ ] # \u5faa\u73af \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 \u5e76 \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf for t in range ( 1000 ) : # \u5047\u8bbe \u4eff\u771f 1000 \u4e2a \u65f6\u95f4 \u6b65 # \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 world . tick ( ) # \u91cd\u7f6e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8ba1\u6570 count = 0 # \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 for vehicle in vehicle _ list : # \u83b7\u53d6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z # \u6682\u65f6 \u91c7\u7528 xmin , xmax , ymin , ymax \u6765 \u6307\u5b9a \u533a\u57df \u8def\u53e3 if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 # vehicle _ positions [ vehicle . id ] = ( x , y , z ) # \u5c06 \u65f6\u95f4 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u6dfb\u52a0 \u5230 \u76f8\u5e94 \u7684 \u5217\u8868 \u4e2d # timestamps . append ( t ) traffic _ flow . append ( count ) # \u91c7\u7528 1000 \u4e2a \u65f6\u95f4 \u6b65 \u7684 \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u7684 \u5747\u503c \u4f5c\u4e3a \u8fd9 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf return int ( np . mean ( traffic _ flow ) ) 4.2 \u3001 \u8c03\u6574 \u914d\u65f6 \u65b9\u6848 def traffic _ signal ( traffic _ lights , traffic _ flow , world ) : # \u6839\u636e \u8def\u53e3 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u53bb \u4f18\u5316 \u8def\u53e3 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 \u7b80\u5355 \u793a\u4f8b # \u8be5 \u793a\u4f8b \u4e2d \u8bbe\u7f6e \u7684 \u8f66\u8f86 \u603b\u6570 \u4e3a 70 \u8f86 \uff0c \u5206\u4e3a \u9ad8 \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf > 7 , \u4e2d \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 \u5728 4 \u2014 7 \uff0c \u4f4e \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 < 4 print ( ' \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u4e3a { } ' . format ( traffic _ flow ) ) # \u904d\u5386 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f for traffic _ light in traffic _ lights : # \u83b7\u5f97 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f location = traffic _ light . get _ location ( ) # \u627e\u5230 \u4f4d\u4e8e \u8be5 \u8def\u53e3 \u8303\u56f4 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f if location . x > = xmin and location . x < = xmax and location . y > = ymin and location . y < = ymax : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u6839\u636e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f if traffic _ flow < = 4 : # \u4f4e \u6d41\u91cf \uff0c \u589e\u52a0 \u7ea2\u706f \u706f \u65f6\u95f4 red _ time = red _ time + 5 elif traffic _ flow > 4 and traffic _ flow < 7 : # \u4e2d\u7b49 \u6d41\u91cf \uff0c \u5e73\u8861 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f red _ time = red _ time + 3 yellow _ time = yellow _ time + 2 green _ time = green _ time + 2 else : # \u9ad8 \u6d41\u91cf \uff0c \u589e\u52a0 \u7eff\u706f \u65f6\u95f4 red _ time = red _ time + 1 yellow _ time = yellow _ time + 1 green _ time = green _ time + 5 # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world )","title":"\u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528"},{"location":"tuto_G_traffic_light/#get_traffic_light","text":"","title":"\u4ea4\u901a\u706f \u914d\u7f6e \u548c \u4f7f\u7528 \uff08 get _ traffic _ light \uff09"},{"location":"tuto_G_traffic_light/#carla","text":"\u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8fdb\u884c \u4f4d\u7f6e \u8c03\u6574 \u3002 \u4e0e \u4ea4\u901a \u4ea4\u901a\u706f \u76f8\u8fde \u8fde\u63a5 \u76f8\u8fde\u63a5 \u7684 \u6709 \u4e00\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7ec4\u4ef6 \uff0c \u901a\u8fc7 \u62d6 \u5230 \u8fd9\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7684 \u4f4d\u7f6e \u548c \u6539\u53d8 \u957f\u5ea6 \u6765 \u51b3\u5b9a \u5bf9\u5e94 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5206\u914d \u7ed9 \u8def\u53e3 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \uff1a \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u9009\u62e9 BP _ TrafficLightGroup \u62d6\u52a8 \u5230 \u8def\u53e3 \uff0c \u5e76 \u5728 \u8be5 \u5bf9\u8c61 \u7684 \u7ec6\u8282 \u9762\u677f \u4e0b \u627e\u5230 Traffic Light \uff0c \u5c06 \u9700\u8981 \u6dfb\u52a0 \u5230 \u8be5 \u8def\u53e3 \u7ec4 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u3002 \u53c2\u8003 \u94fe\u63a5 \uff1a \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe - \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6587\u6863 ( openhutb . github . io ) \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u90e8\u5206","title":"\u4ea4\u901a\u706f \u5728 Carla \u4e2d \u7684 \u7b80\u5355 \u914d\u7f6e"},{"location":"tuto_G_traffic_light/#python","text":"","title":"\u4f7f\u7528 python \u811a\u672c \u7b80\u5355 \u4f7f\u7528 \u4ea4\u901a\u706f"},{"location":"tuto_G_traffic_light/#carla_1","text":"client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) # \u8bbe\u7f6e \u8d85\u65f6 world = client . get _ world ( ) # \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings )","title":"\u521b\u5efa \u4e0e carla \u7684 \u8fde\u63a5"},{"location":"tuto_G_traffic_light/#_1","text":"traffic _ lights = world . get _ actors ( ) . filter ( ' traffic . traffic _ light ' )","title":"\u83b7\u53d6 \u573a\u666f \u4e2d \u7684 \u7ea2\u7eff\u706f \u5bf9\u8c61"},{"location":"tuto_G_traffic_light/#1","text":"def get _ light _ location ( world , traffic _ lights ) : # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 traffic _ lights _ location = { } for traffic _ light in traffic _ lights : location = traffic _ light . get _ location ( ) # status = traffic _ light . get _ state ( ) position = ( location . x , location . y , location . z ) # status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # traffic _ lights _ data [ traffic _ light . id ] = { ' position ' : position , ' status ' : status _ str } traffic _ lights _ location [ traffic _ light . id ] = { ' position ' : position } # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 carla \u4e2d \u6807\u793a \u51fa\u6765 \uff0c \u4ee5 traffic _ light . id world . debug . draw _ string ( location , str ( traffic _ light . id ) , life _ time = 6000 , color = carla . Color ( 255 , 0 , 0 ) ) return traffic _ lights _ location print ( traffic _ lights _ location )","title":"1 \u3001 \u83b7\u53d6 \u7ea2\u7eff\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f"},{"location":"tuto_G_traffic_light/#2","text":"def get _ light _ time ( traffic _ lights ) : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u65f6 \u4fe1\u606f # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 \uff0c \u7528\u4e8e \u5b58\u50a8 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f traffic _ lights _ time = { } # \u904d\u5386 \u6240\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f for traffic _ light in traffic _ lights : # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u72b6\u6001 status = traffic _ light . get _ state ( ) status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f \u6dfb\u52a0 \u5230 \u5b57\u5178 \u4e2d traffic _ lights _ time [ traffic _ light _ id ] = { ' status ' : status _ str , ' red _ time ' : red _ time , ' green _ time ' : green _ time , ' yellow _ time ' : yellow _ time } print ( traffic _ lights _ time ) return traffic _ lights _ time","title":"2 \u3001 \u83b7\u53d6 \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_light/#3","text":"def change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world ) : # \u904d\u5386 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u627e\u5230 \u5bf9\u5e94 \u8def\u706f for traffic _ light in traffic _ lights : if traffic _ light . id = = traffic _ light _ id : # \u5c55\u793a \u539f\u59cb \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 redtime = traffic _ light . get _ red _ time ( ) greentime = traffic _ light . get _ green _ time ( ) yellowtime = traffic _ light . get _ yellow _ time ( ) print ( \" \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , redtime , yellowtime , greentime ) ) # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f traffic _ light . set _ red _ time ( float ( red _ time ) ) traffic _ light . set _ yellow _ time ( float ( yellow _ time ) ) traffic _ light . set _ green _ time ( float ( green _ time ) ) print ( \" \u5df2 \u4fee\u6539 \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , red _ time , yellow _ time , green _ time ) ) world . tick ( ) # \u66f4\u65b0 Carla \u4e16\u754c \u7684 \u72b6\u6001 \uff0c \u4f7f\u5f97 \u4fee\u6539 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65b9\u6848 \u7acb\u5373 \u751f\u6548 \u3002","title":"3 \u3001 \u4fee\u6539 \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_light/#4","text":"","title":"4 \u3001 \u6839\u636e \u8def\u53e3 \u8f66\u6d41\u91cf \u8c03\u6574 \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_light/#41","text":"def get _ traffic _ flow ( world ) : # \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 , \u5b58\u50a8 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f # vehicle _ positions = { } # \u521b\u5efa \u4e24\u4e2a \u7a7a \u5217\u8868 \uff0c \u7528\u4e8e \u5b58\u50a8 \u65f6\u523b \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e # timestamps = [ ] traffic _ flow = [ ] # \u5faa\u73af \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 \u5e76 \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf for t in range ( 1000 ) : # \u5047\u8bbe \u4eff\u771f 1000 \u4e2a \u65f6\u95f4 \u6b65 # \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 world . tick ( ) # \u91cd\u7f6e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8ba1\u6570 count = 0 # \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 for vehicle in vehicle _ list : # \u83b7\u53d6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z # \u6682\u65f6 \u91c7\u7528 xmin , xmax , ymin , ymax \u6765 \u6307\u5b9a \u533a\u57df \u8def\u53e3 if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 # vehicle _ positions [ vehicle . id ] = ( x , y , z ) # \u5c06 \u65f6\u95f4 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u6dfb\u52a0 \u5230 \u76f8\u5e94 \u7684 \u5217\u8868 \u4e2d # timestamps . append ( t ) traffic _ flow . append ( count ) # \u91c7\u7528 1000 \u4e2a \u65f6\u95f4 \u6b65 \u7684 \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u7684 \u5747\u503c \u4f5c\u4e3a \u8fd9 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf return int ( np . mean ( traffic _ flow ) )","title":"4.1 \u3001 \u83b7\u53d6 \u6307\u5b9a \u8def\u53e3 \u7684 \u8f66\u6d41\u91cf"},{"location":"tuto_G_traffic_light/#42","text":"def traffic _ signal ( traffic _ lights , traffic _ flow , world ) : # \u6839\u636e \u8def\u53e3 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u53bb \u4f18\u5316 \u8def\u53e3 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 \u7b80\u5355 \u793a\u4f8b # \u8be5 \u793a\u4f8b \u4e2d \u8bbe\u7f6e \u7684 \u8f66\u8f86 \u603b\u6570 \u4e3a 70 \u8f86 \uff0c \u5206\u4e3a \u9ad8 \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf > 7 , \u4e2d \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 \u5728 4 \u2014 7 \uff0c \u4f4e \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 < 4 print ( ' \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u4e3a { } ' . format ( traffic _ flow ) ) # \u904d\u5386 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f for traffic _ light in traffic _ lights : # \u83b7\u5f97 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f location = traffic _ light . get _ location ( ) # \u627e\u5230 \u4f4d\u4e8e \u8be5 \u8def\u53e3 \u8303\u56f4 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f if location . x > = xmin and location . x < = xmax and location . y > = ymin and location . y < = ymax : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u6839\u636e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f if traffic _ flow < = 4 : # \u4f4e \u6d41\u91cf \uff0c \u589e\u52a0 \u7ea2\u706f \u706f \u65f6\u95f4 red _ time = red _ time + 5 elif traffic _ flow > 4 and traffic _ flow < 7 : # \u4e2d\u7b49 \u6d41\u91cf \uff0c \u5e73\u8861 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f red _ time = red _ time + 3 yellow _ time = yellow _ time + 2 green _ time = green _ time + 2 else : # \u9ad8 \u6d41\u91cf \uff0c \u589e\u52a0 \u7eff\u706f \u65f6\u95f4 red _ time = red _ time + 1 yellow _ time = yellow _ time + 1 green _ time = green _ time + 5 # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world )","title":"4.2 \u3001 \u8c03\u6574 \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_manager/","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5f53 \u6211\u4eec \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u65f6 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5fc5\u987b \u5e94\u5bf9 \u7684 \u5173\u952e \u6311\u6218 \u4e4b\u4e00 \u662f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u9664\u4e86 \u8bc6\u522b \u548c \u5bfc\u822a \u9053\u8def \u7f51\u7edc \u62d3\u6251 \u7f51\u7edc\u62d3\u6251 \u4ee5\u53ca \u7ef4\u62a4 \u8f66\u9053 \u89c4\u5219 \u7684 \u4efb\u52a1 \u4e4b\u5916 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8fd8 \u5fc5\u987b \u8bc6\u522b \u5176\u4ed6 \u8f66\u8f86 \u5e76 \u9884\u6d4b \u5bf9 \u5176 \u8ba1\u5212 \u884c\u52a8 \u65b9\u6848 \u7684 \u5f71\u54cd \u3002 Carla \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u80fd\u591f \u7ba1\u7406 \u901a\u8fc7 \u4eff\u771f \u5bfc\u822a \u7684 \u8f66\u8f86 \u7fa4 \uff0c \u5e76 \u4e3a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u8f66\u8f86 \uff08 \u5373 \u6211\u4eec \u6b63\u5728 \u8bad\u7ec3 \u6216 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff09 \u8bbe\u7f6e \u969c\u788d \u8bbe\u7f6e\u969c\u788d \u548c \u6311\u6218 \u3002 \u5728 Carla \u6587\u732e \u4e2d \uff0c \u6211\u4eec \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u4ee5\u793a \u533a\u522b \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7ba1\u7406 \u5730\u56fe \u5185\u975e \u73a9\u5bb6 \u89d2\u8272 \u8f66\u8f86 \u7684 \u884c\u4e3a \u548c \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \uff0c \u7528 \u8f66\u8f86 \u586b\u5145 \u4eff\u771f \uff0c \u5176 \u884c\u4e3a \u4e0e \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u5728 \u771f\u5b9e \u9053\u8def \u7f51\u7edc \u4e0a \u7684 \u884c\u4e3a \u76f8\u540c \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e00\u4e9b \u529f\u80fd \u4ee5\u53ca \u5982\u4f55 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u5b83 \u6765 \u521b\u5efa \u548c \u63a7\u5236 \u975e \u73a9\u5bb6 \u89d2\u8272 \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e76 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( ) \u751f\u6210 \u8f66\u8f86 \u5f53 \u6211\u4eec \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u65f6 \uff0c \u5b83\u4eec \u9700\u8981 \u4e00\u4e2a \u751f\u6210 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5df1 \u9009\u62e9 \u7684 \u5730\u56fe \u5750\u6807 \u81ea\u884c \u5b9a\u4e49 \u8fd9\u4e9b \u3002 \u7136\u800c \uff0c \u4e3a\u4e86 \u89e3\u51b3 \u8fd9\u4e2a \u95ee\u9898 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u6709 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u9053\u8def \u7f51\u7edc \u4e2d \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u751f\u6210 \u70b9\u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u529f\u80fd \u6765 \u67e5\u770b \u751f\u6210 \u70b9 \u5728 \u54ea\u91cc \u3002 \u8fd0\u884c \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u7136\u540e \u98de\u8fc7 \u5730\u56fe \u5e76 \u68c0\u67e5 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u5f53 \u6211\u4eec \u60f3\u8981 \u9009\u62e9 \u66f4 \u5177\u4f53 \u7684 \u70b9 \u7528\u4e8e \u751f\u6210 \u6216 \u5f15\u5bfc \u8f66\u8f86 \u65f6 \uff0c \u8fd9\u4f1a \u7528\u573a \u6d3e\u4e0a\u7528\u573a \u3002 # \u5728 \u5730\u56fe \u4e0a\u4ee5 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u6765 \u98de\u884c \u89c2\u5bdf \u5219 \u4f1a while True : world . tick ( ) \u73b0\u5728 \u8ba9 \u6211\u4eec \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 # \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u4e00\u4e9b \u6a21\u578b models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u6700\u5927 \u6570\u76ee \u5e76 \u51c6\u5907 \u6211\u4eec \u751f\u6210 \u7684 \u4e00\u4e2a \u5217\u8868 max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # \u5bf9 \u751f\u6210 \u70b9 \u8fdb\u884c \u968f\u673a \u91c7\u6837 \u5e76 \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # \u8fd0\u884c \u4eff\u771f \u4ee5\u4fbf \u6211\u4eec \u80fd \u67e5\u770b \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u7ed3\u679c while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u9759\u6b62 \u7684 \u8f66\u8f86 \u5360\u636e \u5730\u56fe \u4e2d \u7684 \u9053\u8def \u3002 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u8f66\u8f86 \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u6211\u4eec \u7684 \u8f66\u8f86 \u5e76 \u8ba9 \u4eff\u771f \u8fd0\u884c \u3002 \u4e00\u65e6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e86 \u8f66\u8f86 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u5728 \u9053\u8def \u4e0a \u81ea\u4e3b \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u7f51\u7edc \u7684 \u7279\u5f81 \uff0c \u5982 \u8f66\u9053 \u548c \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u5e76 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u8bb8\u591a \u529f\u80fd \uff0c \u5141\u8bb8 \u4fee\u6539 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u7279\u5b9a \u884c\u4e3a \u3002 \u5728 \u4e0b\u9762 \u7684 \u4f8b\u5b50 \u4e2d \uff0c \u6211\u4eec \u4e3a \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8bbe\u7f6e \u4e86 \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u968f\u673a \u6982\u7387 \uff0c \u56e0\u6b64 \u6709\u4e9b \u8f66\u8f86 \u4f1a \u503e\u5411 \u4e8e \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u800c \u53e6 \u4e00\u4e9b \u8f66\u8f86 \u5219 \u4f1a \u9075\u5b88 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u53c2\u8003 \u3002 # \u89e3\u6790 \u6240 \u751f\u6210 \u8f66\u8f86 \u7684 \u5217\u8868 \u5e76 \u901a\u8fc7 set _ autopilot ( ) \u5c06 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) ) while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5c06 \u770b\u5230 \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u81ea\u52a8 \u884c\u9a76 \u3002 \u6307\u5b9a \u8f66\u8f86 \u884c\u9a76 \u8def\u7ebf \u884c\u9a76\u8def\u7ebf \u5728 \u524d\u9762 \u7684 \u6b65\u9aa4 \u4e2d \uff0c \u6211\u4eec \u4e86\u89e3 \u4e86 \u5982\u4f55 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u4e00\u7ec4 \u8f66\u8f86 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u4ee5 \u521b\u5efa \u4e00\u4e2a \u5145\u6ee1 \u79fb\u52a8 \u4ea4\u901a \u7684 \u7e41\u5fd9 \u57ce\u9547 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u66f4 \u6df1\u5165 \u7684 \u529f\u80fd \uff0c \u53ef\u4ee5 \u66f4 \u7d27\u5bc6 \u5730 \u63a7\u5236 \u8f66\u8f86 \u7684 \u884c\u4e3a \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u4f7f\u7528 traffic _ manager . set _ path ( ) \u529f\u80fd \u5f15\u5bfc \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u6cbf\u7740 \u7279\u5b9a \u8def\u5f84 \u884c\u9a76 \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u6c47\u805a \u5e76 \u9020\u6210 \u62e5\u5835 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 \u4e00\u4e9b \u8def\u5f84 \u70b9\u6765 \u6784\u5efa \u6211\u4eec \u7684 \u8def\u5f84 \u3002 \u751f\u6210 \u70b9 \u662f \u65b9\u4fbf \u7684 \u8def\u5f84 \u70b9 \uff0c \u4e0e \u4e4b\u524d \u4e00\u6837 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u5de5\u5177 \u5728 \u5730\u56fe \u4e0a \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u901a\u8fc7 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u6211\u4eec \u53ef\u4ee5 \u9009\u62e9 \u8981 \u7528\u4e8e \u8def\u5f84 \u7684 \u751f\u6210 \u70b9 \u7684 \u7d22\u5f15 \u3002 \u8be5 \u51fd\u6570 \u4f7f\u7528 \u6307\u5b9a \u4e3a carla . Locations \u7684 \u5750\u6807 \u5217\u8868 \u3002 # \u5728 \u5730\u56fe \u4e0a \u4f7f\u7528 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u4f7f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u98de\u8fc7 \u573a\u666f while True : world . tick ( ) \u6211\u4eec \u9009\u62e9 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9\u6765 \u57ce\u9547 \u5728\u57ce\u9547 \u5185 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u4ece\u800c \u9020\u6210 \u62e5\u5835 \uff0c \u8fd9 \u53ef\u80fd \u662f \u5411 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5c55\u793a \u7684 \u4e00\u4e2a \u6709\u8da3 \u7684 \u573a\u666f \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u8def\u7ebf 1 spawn _ point _ 1 = spawn _ points [ 32 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 1 route _ 1 _ indices = [ 129 , 28 , 124 , 33 , 97 , 119 , 58 , 154 , 147 ] route _ 1 = [ ] for ind in route _ 1 _ indices : route _ 1 . append ( spawn _ points [ ind ] . location ) # \u8def\u7ebf 2 spawn _ point _ 2 = spawn _ points [ 149 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 2 route _ 2 _ indices = [ 21 , 76 , 38 , 34 , 90 , 3 ] route _ 2 = [ ] for ind in route _ 2 _ indices : route _ 2 . append ( spawn _ points [ ind ] . location ) # \u73b0\u5728 \u8ba9 \u6211\u4eec \u5728 \u5730\u56fe \u4e0a \u6253\u5370 \u51fa \u5b83\u4eec \uff0c \u4ee5\u4fbf \u6211\u4eec \u80fd \u770b\u5230 \u6211\u4eec \u7684 \u8def\u5f84 world . debug . draw _ string ( spawn _ point _ 1 . location , ' Spawn point 1 ' , life _ time = 30 , color = carla . Color ( 255 , 0 , 0 ) ) world . debug . draw _ string ( spawn _ point _ 2 . location , ' Spawn point 2 ' , life _ time = 30 , color = carla . Color ( 0 , 0 , 255 ) ) for ind in route _ 1 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 255 , 0 , 0 ) ) for ind in route _ 2 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 0 , 0 , 255 ) ) while True : world . tick ( ) \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9 \uff0c \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u751f\u6210 \u4ea4\u901a \u5e76 \u5c06 \u751f\u6210 \u7684 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u9075\u5faa \u6211\u4eec \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 # \u5728 \u751f\u6210 \u65f6\u95f4 \u4e4b\u95f4 \u8bbe\u7f6e \u5ef6\u8fdf \u4ee5 \u521b\u5efa \u7a7a\u9699 spawn _ delay = 20 counter = spawn _ delay # \u8bbe\u7f6e \u6700\u5927 \u8f66\u8f86 \uff08 \u4e3a \u66f4 \u4f4e \u7684 \u786c\u4ef6 \u8bbe\u7f6e \u66f4 \u5c0f \u7684 \u503c \uff09 max _ vehicles = 200 # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 alt = False spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) while True : world . tick ( ) n _ vehicles = len ( world . get _ actors ( ) . filter ( ' * vehicle * ' ) ) vehicle _ bp = random . choice ( blueprints ) # \u4ec5 \u5728 \u5ef6\u8fdf \u4e4b\u540e \u751f\u6210 \u8f66\u8f86 if counter = = spawn _ delay and n _ vehicles < max _ vehicles : # Alternate spawn points if alt : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 1 ) else : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 2 ) if vehicle : # \u5982\u679c \u8f66\u8f86 \u6210\u529f \u751f\u6210 vehicle . set _ autopilot ( True ) # \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u5168 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 # \u8bbe\u7f6e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u63a7\u5236 \u7684 \u53c2\u6570 \uff0c \u6211\u4eec \u4e0d\u60f3 \u53d8\u9053 traffic _ manager . update _ vehicle _ lights ( vehicle , True ) traffic _ manager . random _ left _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . random _ right _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . auto _ lane _ change ( vehicle , False ) # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 if alt : traffic _ manager . set _ path ( vehicle , route _ 1 ) alt = False else : traffic _ manager . set _ path ( vehicle , route _ 2 ) alt = True vehicle = None counter - = 1 elif counter > 0 : counter - = 1 elif counter = = 0 : counter = spawn _ delay \u901a\u8fc7 \u4e0a\u9762 \u7684 \u4ee3\u7801 \uff0c \u6211\u4eec \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 set _ path ( ) \u529f\u80fd \u7684 \u5f15\u5bfc \u4e0b \u521b\u5efa \u4e86 \u6765\u81ea \u5730\u56fe \u4e24\u4fa7 \u7684 \u4e24\u4e2a \u6c47\u805a \u7684 \u6d41\u91cf \u6d41 \u3002 \u8fd9 \u5bfc\u81f4 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9053\u8def \u62e5\u5835 \u3002 \u8fd9\u79cd \u6280\u672f \u53ef\u4ee5 \u66f4 \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u5730 \u7528\u4e8e \u4eff\u771f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u591a\u79cd \u68d8\u624b \u60c5\u51b5 \uff0c \u4f8b\u5982 \u7e41\u5fd9 \u7684 \u73af\u5c9b \u6216 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_traffic_manager/#_1","text":"\u5f53 \u6211\u4eec \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u65f6 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5fc5\u987b \u5e94\u5bf9 \u7684 \u5173\u952e \u6311\u6218 \u4e4b\u4e00 \u662f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u9664\u4e86 \u8bc6\u522b \u548c \u5bfc\u822a \u9053\u8def \u7f51\u7edc \u62d3\u6251 \u7f51\u7edc\u62d3\u6251 \u4ee5\u53ca \u7ef4\u62a4 \u8f66\u9053 \u89c4\u5219 \u7684 \u4efb\u52a1 \u4e4b\u5916 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8fd8 \u5fc5\u987b \u8bc6\u522b \u5176\u4ed6 \u8f66\u8f86 \u5e76 \u9884\u6d4b \u5bf9 \u5176 \u8ba1\u5212 \u884c\u52a8 \u65b9\u6848 \u7684 \u5f71\u54cd \u3002 Carla \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u80fd\u591f \u7ba1\u7406 \u901a\u8fc7 \u4eff\u771f \u5bfc\u822a \u7684 \u8f66\u8f86 \u7fa4 \uff0c \u5e76 \u4e3a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u8f66\u8f86 \uff08 \u5373 \u6211\u4eec \u6b63\u5728 \u8bad\u7ec3 \u6216 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff09 \u8bbe\u7f6e \u969c\u788d \u8bbe\u7f6e\u969c\u788d \u548c \u6311\u6218 \u3002 \u5728 Carla \u6587\u732e \u4e2d \uff0c \u6211\u4eec \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u4ee5\u793a \u533a\u522b \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7ba1\u7406 \u5730\u56fe \u5185\u975e \u73a9\u5bb6 \u89d2\u8272 \u8f66\u8f86 \u7684 \u884c\u4e3a \u548c \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \uff0c \u7528 \u8f66\u8f86 \u586b\u5145 \u4eff\u771f \uff0c \u5176 \u884c\u4e3a \u4e0e \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u5728 \u771f\u5b9e \u9053\u8def \u7f51\u7edc \u4e0a \u7684 \u884c\u4e3a \u76f8\u540c \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e00\u4e9b \u529f\u80fd \u4ee5\u53ca \u5982\u4f55 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u5b83 \u6765 \u521b\u5efa \u548c \u63a7\u5236 \u975e \u73a9\u5bb6 \u89d2\u8272 \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_traffic_manager/#_2","text":"\u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668 \u5e76 \u521d\u59cb\u5316 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_traffic_manager/#_3","text":"\u5f53 \u6211\u4eec \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u65f6 \uff0c \u5b83\u4eec \u9700\u8981 \u4e00\u4e2a \u751f\u6210 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5df1 \u9009\u62e9 \u7684 \u5730\u56fe \u5750\u6807 \u81ea\u884c \u5b9a\u4e49 \u8fd9\u4e9b \u3002 \u7136\u800c \uff0c \u4e3a\u4e86 \u89e3\u51b3 \u8fd9\u4e2a \u95ee\u9898 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u6709 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u9053\u8def \u7f51\u7edc \u4e2d \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u751f\u6210 \u70b9\u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u529f\u80fd \u6765 \u67e5\u770b \u751f\u6210 \u70b9 \u5728 \u54ea\u91cc \u3002 \u8fd0\u884c \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u7136\u540e \u98de\u8fc7 \u5730\u56fe \u5e76 \u68c0\u67e5 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u5f53 \u6211\u4eec \u60f3\u8981 \u9009\u62e9 \u66f4 \u5177\u4f53 \u7684 \u70b9 \u7528\u4e8e \u751f\u6210 \u6216 \u5f15\u5bfc \u8f66\u8f86 \u65f6 \uff0c \u8fd9\u4f1a \u7528\u573a \u6d3e\u4e0a\u7528\u573a \u3002 # \u5728 \u5730\u56fe \u4e0a\u4ee5 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u6765 \u98de\u884c \u89c2\u5bdf \u5219 \u4f1a while True : world . tick ( ) \u73b0\u5728 \u8ba9 \u6211\u4eec \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 # \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u4e00\u4e9b \u6a21\u578b models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u6700\u5927 \u6570\u76ee \u5e76 \u51c6\u5907 \u6211\u4eec \u751f\u6210 \u7684 \u4e00\u4e2a \u5217\u8868 max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # \u5bf9 \u751f\u6210 \u70b9 \u8fdb\u884c \u968f\u673a \u91c7\u6837 \u5e76 \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # \u8fd0\u884c \u4eff\u771f \u4ee5\u4fbf \u6211\u4eec \u80fd \u67e5\u770b \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u7ed3\u679c while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u9759\u6b62 \u7684 \u8f66\u8f86 \u5360\u636e \u5730\u56fe \u4e2d \u7684 \u9053\u8def \u3002","title":"\u751f\u6210 \u8f66\u8f86"},{"location":"tuto_G_traffic_manager/#_4","text":"\u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u6211\u4eec \u7684 \u8f66\u8f86 \u5e76 \u8ba9 \u4eff\u771f \u8fd0\u884c \u3002 \u4e00\u65e6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e86 \u8f66\u8f86 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u5728 \u9053\u8def \u4e0a \u81ea\u4e3b \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u7f51\u7edc \u7684 \u7279\u5f81 \uff0c \u5982 \u8f66\u9053 \u548c \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u5e76 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u8bb8\u591a \u529f\u80fd \uff0c \u5141\u8bb8 \u4fee\u6539 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u7279\u5b9a \u884c\u4e3a \u3002 \u5728 \u4e0b\u9762 \u7684 \u4f8b\u5b50 \u4e2d \uff0c \u6211\u4eec \u4e3a \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8bbe\u7f6e \u4e86 \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u968f\u673a \u6982\u7387 \uff0c \u56e0\u6b64 \u6709\u4e9b \u8f66\u8f86 \u4f1a \u503e\u5411 \u4e8e \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u800c \u53e6 \u4e00\u4e9b \u8f66\u8f86 \u5219 \u4f1a \u9075\u5b88 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u53c2\u8003 \u3002 # \u89e3\u6790 \u6240 \u751f\u6210 \u8f66\u8f86 \u7684 \u5217\u8868 \u5e76 \u901a\u8fc7 set _ autopilot ( ) \u5c06 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) ) while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5c06 \u770b\u5230 \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u81ea\u52a8 \u884c\u9a76 \u3002","title":"\u4f7f\u7528 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u8f66\u8f86"},{"location":"tuto_G_traffic_manager/#_5","text":"\u5728 \u524d\u9762 \u7684 \u6b65\u9aa4 \u4e2d \uff0c \u6211\u4eec \u4e86\u89e3 \u4e86 \u5982\u4f55 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u4e00\u7ec4 \u8f66\u8f86 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u4ee5 \u521b\u5efa \u4e00\u4e2a \u5145\u6ee1 \u79fb\u52a8 \u4ea4\u901a \u7684 \u7e41\u5fd9 \u57ce\u9547 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u66f4 \u6df1\u5165 \u7684 \u529f\u80fd \uff0c \u53ef\u4ee5 \u66f4 \u7d27\u5bc6 \u5730 \u63a7\u5236 \u8f66\u8f86 \u7684 \u884c\u4e3a \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u4f7f\u7528 traffic _ manager . set _ path ( ) \u529f\u80fd \u5f15\u5bfc \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u6cbf\u7740 \u7279\u5b9a \u8def\u5f84 \u884c\u9a76 \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u6c47\u805a \u5e76 \u9020\u6210 \u62e5\u5835 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 \u4e00\u4e9b \u8def\u5f84 \u70b9\u6765 \u6784\u5efa \u6211\u4eec \u7684 \u8def\u5f84 \u3002 \u751f\u6210 \u70b9 \u662f \u65b9\u4fbf \u7684 \u8def\u5f84 \u70b9 \uff0c \u4e0e \u4e4b\u524d \u4e00\u6837 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u5de5\u5177 \u5728 \u5730\u56fe \u4e0a \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u901a\u8fc7 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u6211\u4eec \u53ef\u4ee5 \u9009\u62e9 \u8981 \u7528\u4e8e \u8def\u5f84 \u7684 \u751f\u6210 \u70b9 \u7684 \u7d22\u5f15 \u3002 \u8be5 \u51fd\u6570 \u4f7f\u7528 \u6307\u5b9a \u4e3a carla . Locations \u7684 \u5750\u6807 \u5217\u8868 \u3002 # \u5728 \u5730\u56fe \u4e0a \u4f7f\u7528 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u4f7f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u98de\u8fc7 \u573a\u666f while True : world . tick ( ) \u6211\u4eec \u9009\u62e9 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9\u6765 \u57ce\u9547 \u5728\u57ce\u9547 \u5185 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u4ece\u800c \u9020\u6210 \u62e5\u5835 \uff0c \u8fd9 \u53ef\u80fd \u662f \u5411 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5c55\u793a \u7684 \u4e00\u4e2a \u6709\u8da3 \u7684 \u573a\u666f \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u8def\u7ebf 1 spawn _ point _ 1 = spawn _ points [ 32 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 1 route _ 1 _ indices = [ 129 , 28 , 124 , 33 , 97 , 119 , 58 , 154 , 147 ] route _ 1 = [ ] for ind in route _ 1 _ indices : route _ 1 . append ( spawn _ points [ ind ] . location ) # \u8def\u7ebf 2 spawn _ point _ 2 = spawn _ points [ 149 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 2 route _ 2 _ indices = [ 21 , 76 , 38 , 34 , 90 , 3 ] route _ 2 = [ ] for ind in route _ 2 _ indices : route _ 2 . append ( spawn _ points [ ind ] . location ) # \u73b0\u5728 \u8ba9 \u6211\u4eec \u5728 \u5730\u56fe \u4e0a \u6253\u5370 \u51fa \u5b83\u4eec \uff0c \u4ee5\u4fbf \u6211\u4eec \u80fd \u770b\u5230 \u6211\u4eec \u7684 \u8def\u5f84 world . debug . draw _ string ( spawn _ point _ 1 . location , ' Spawn point 1 ' , life _ time = 30 , color = carla . Color ( 255 , 0 , 0 ) ) world . debug . draw _ string ( spawn _ point _ 2 . location , ' Spawn point 2 ' , life _ time = 30 , color = carla . Color ( 0 , 0 , 255 ) ) for ind in route _ 1 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 255 , 0 , 0 ) ) for ind in route _ 2 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 0 , 0 , 255 ) ) while True : world . tick ( ) \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9 \uff0c \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u751f\u6210 \u4ea4\u901a \u5e76 \u5c06 \u751f\u6210 \u7684 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u9075\u5faa \u6211\u4eec \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 # \u5728 \u751f\u6210 \u65f6\u95f4 \u4e4b\u95f4 \u8bbe\u7f6e \u5ef6\u8fdf \u4ee5 \u521b\u5efa \u7a7a\u9699 spawn _ delay = 20 counter = spawn _ delay # \u8bbe\u7f6e \u6700\u5927 \u8f66\u8f86 \uff08 \u4e3a \u66f4 \u4f4e \u7684 \u786c\u4ef6 \u8bbe\u7f6e \u66f4 \u5c0f \u7684 \u503c \uff09 max _ vehicles = 200 # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 alt = False spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) while True : world . tick ( ) n _ vehicles = len ( world . get _ actors ( ) . filter ( ' * vehicle * ' ) ) vehicle _ bp = random . choice ( blueprints ) # \u4ec5 \u5728 \u5ef6\u8fdf \u4e4b\u540e \u751f\u6210 \u8f66\u8f86 if counter = = spawn _ delay and n _ vehicles < max _ vehicles : # Alternate spawn points if alt : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 1 ) else : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 2 ) if vehicle : # \u5982\u679c \u8f66\u8f86 \u6210\u529f \u751f\u6210 vehicle . set _ autopilot ( True ) # \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u5168 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 # \u8bbe\u7f6e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u63a7\u5236 \u7684 \u53c2\u6570 \uff0c \u6211\u4eec \u4e0d\u60f3 \u53d8\u9053 traffic _ manager . update _ vehicle _ lights ( vehicle , True ) traffic _ manager . random _ left _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . random _ right _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . auto _ lane _ change ( vehicle , False ) # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 if alt : traffic _ manager . set _ path ( vehicle , route _ 1 ) alt = False else : traffic _ manager . set _ path ( vehicle , route _ 2 ) alt = True vehicle = None counter - = 1 elif counter > 0 : counter - = 1 elif counter = = 0 : counter = spawn _ delay \u901a\u8fc7 \u4e0a\u9762 \u7684 \u4ee3\u7801 \uff0c \u6211\u4eec \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 set _ path ( ) \u529f\u80fd \u7684 \u5f15\u5bfc \u4e0b \u521b\u5efa \u4e86 \u6765\u81ea \u5730\u56fe \u4e24\u4fa7 \u7684 \u4e24\u4e2a \u6c47\u805a \u7684 \u6d41\u91cf \u6d41 \u3002 \u8fd9 \u5bfc\u81f4 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9053\u8def \u62e5\u5835 \u3002 \u8fd9\u79cd \u6280\u672f \u53ef\u4ee5 \u66f4 \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u5730 \u7528\u4e8e \u4eff\u771f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u591a\u79cd \u68d8\u624b \u60c5\u51b5 \uff0c \u4f8b\u5982 \u7e41\u5fd9 \u7684 \u73af\u5c9b \u6216 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002","title":"\u6307\u5b9a \u8f66\u8f86 \u884c\u9a76\u8def\u7ebf"},{"location":"tuto_G_traffic_prediction/","text":"\u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u9884\u6d4b \u6ce8\u610f \u8fd0\u884c \u8be5 \u811a\u672c \u4e4b\u524d \uff0c \u5e94\u5148 \u8fd0\u884c generate _ traffic . py \u5e76 \u786e\u4fdd \u5728 town10 \u4e2d \u6210\u529f \u653e\u7f6e \u8f66\u8f86 \u3002 main \u51fd\u6570 \u4e2d \u9996\u5148 \u5b9a\u4e49 \u4e86 argparser \u548c carla \u6a21\u5757 \uff0c \u5176\u4e2d \uff0c argparse \u6a21\u5757 \u7528\u4e8e \u89e3\u6790 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5305\u62ec host \uff08 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \uff09 \u3001 port \uff08 TCP \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \uff09 \u3001 traffic _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f ID \uff09 \u3001 color _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u989c\u8272 ID \uff09 \u548c color _ time \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \uff09 \u3002 args = argparser . parse _ arg ( ) argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) argparser . add _ argument ( ' -- traffic _ id ' , metavar = ' I ' , default = 1 , type = int , help = ' traffic light id ' ) argparser . add _ argument ( ' -- color _ id ' , metavar = ' C ' , default = 1 , type = int , help = ' traffic light color id ' ) argparser . add _ argument ( ' -- color _ time ' , metavar = ' T ' , default = 20 , type = int , help = ' set traffic light time ' ) \u4f7f\u7528 \u6307\u5b9a \u7684 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \u548c \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u8fde\u63a5 \u5230 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u540c\u65f6 \uff0c \u8bbe\u7f6e \u4e0e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u901a\u4fe1 \u7684 \u8d85\u65f6 \u65f6\u95f4 \u3002 \u6700\u540e \uff0c \u4ee3\u7801 \u901a\u8fc7 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4e16\u754c \u5bf9\u8c61 \uff0c \u53ef\u4ee5 \u5728 \u4eff\u771f \u73af\u5883 \u4e2d \u8fdb\u884c \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u64cd\u4f5c \u548c \u63a7\u5236 \u3002 client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) world = client . get _ world ( ) \u4f7f\u7528 world . get _ settings ( ) \u65b9\u6cd5 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5f53\u524d \u8bbe\u7f6e \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bbe\u7f6e \u66f4 \u6539\u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76 \u5c06 \u65f6\u95f4 \u6b65\u957f \u8bbe\u7f6e \u4e3a 0.05 \u79d2 \uff0c \u4ee5\u4fbf \u4ee5 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u95f4\u9694 \u8fdb\u884c \u4eff\u771f \uff0c \u63a7\u5236 \u4eff\u771f \u7684 \u901f\u5ea6 \u548c \u7cbe\u786e \u7cbe\u786e\u5ea6 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 # \u4eff\u771f \u73af\u5883 \u4f1a\u4ee5 0.05 \u79d2 \u7684 \u65f6\u95f4 \u524d\u8fdb \u3002 world . apply _ settings ( settings ) \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) \u5212\u5b9a \u8def\u53e3 \u8303\u56f4 xmax = - 11 xmin = - 77 ymax = 57 ymin = - 13 \u521b\u5efa \u591a\u4e2a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5176\u4e2d vehicle _ positions \u7528\u4e8e \u5b58\u50a8 \u8f66\u8f86 \u5b9e\u65f6 \u4f4d\u7f6e \uff0c traffic _ data \u7528\u4e8e \u5b58\u50a8 \u8def\u53e3 \u5b9e\u65f6 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \uff0c timestamps \u7528\u4e8e \u5b58\u50a8 \u65f6\u95f4 \u6233 \uff0c traffic _ flow \u7528\u4e8e \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u3002 vehicle _ positions = { } traffic _ data = [ ] timestamps = [ ] traffic _ flow = [ ] \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u3002 \u5047\u8bbe \u4eff\u771f \u65f6\u95f4 \u6b65 \u4e00\u5171 \u4e3a 1000 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u5bf9\u4e8e \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8f86 \uff0c \u83b7\u53d6 \u5176 \u4f4d\u7f6e \u4fe1\u606f \uff0c \u5e76 \u5224\u65ad \u5176 \u662f\u5426 \u5728 \u76ee\u6807 \u8def\u53e3 \u7684 \u533a\u57df \u5185 \u3002 \u5982\u679c \u8f66\u8f86 \u5728 \u533a\u57df \u5185 \uff0c \u5c06 \u8ba1\u6570 \u8ba1\u6570\u5668 \u52a0 1 \uff0c \u5e76 \u5c06 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 \u5230 \u5b57\u5178 vehicle _ positions \u4e2d \u3002 for t in range ( 1000 ) : world . tick ( ) count = 0 for vehicle in vehicle _ list \uff1a location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 vehicle _ positions [ vehicle . id ] = ( x , y , z ) \u5bf9\u5e94 \u7684 \u65f6\u95f4 \u6233 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u5206\u522b \u5b58\u5165 timestamps \u3001 traffic _ flow \uff0c \u800c traffic _ data \u5305\u62ec \u8fd9 \u4e24\u79cd \u6570\u636e \u3002 traffic _ data . append ( ( t , count ) ) timestamps . append ( t ) traffic _ flow . append ( count ) traffic _ data \u5199\u5165 csv \u6587\u4ef6 filename = \" traffic _ data . csv \" with open ( filename , \" w \" , newline = ' ' , encoding = ' utf - 8 ' ) as file : writer = csv . writer ( file ) writer . writerow ( [ \" head \" , \" value \" ] ) # \u5199\u5165 \u8868\u5934 for data in traffic _ data : writer . writerow ( [ data [ 0 ] , data [ 1 ] ] ) # \u5199\u5165 \u6570\u636e data = load _ data ( ' traffic _ data . csv ' , 200 ) # \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u4ece \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6587\u4ef6 \u4e2d \u52a0\u8f7d \u6570\u636e \u5e76 \u8fdb\u884c \u5904\u7406 \u9884\u5904\u7406 \u3002 \u9996\u5148 \u5c06 \u6570\u636e \u8bfb\u53d6 \u4e3a DataFrame \u5bf9\u8c61 \uff0c \u5e76 \u7ed8\u5236 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u6298\u7ebf \u7ebf\u56fe \u6298\u7ebf\u56fe \u3002 \u901a\u8fc7 \u6307\u5b9a \u7684 \u65f6\u95f4 \u6b65 \u5927\u5c0f \u5bf9 \u6570\u636e \u8fdb\u884c \u5207\u7247 \uff0c \u5f62\u6210 \u8bad\u7ec3 \u6837\u672c \u8bad\u7ec3\u6837\u672c \u5e76 \u8fd4\u56de \u3002 def load _ data ( filename , time _ step ) : df = pd . read _ csv ( filename ) data = df . value plt . title ( ' original data ' ) plt . plot ( data ) plt . show ( ) result = [ ] for index in range ( len ( data ) - time _ step ) : result . append ( data [ index : index + time _ step + 1 ] ) return np . array ( result ) \u4f7f\u7528 MinMaxScaler \u5bf9 \u6570\u636e \u8fdb\u884c * \u5f52\u4e00\u5316 \u5904\u7406 \uff0c \u7136\u540e \u6309\u7167 7 \uff1a 3 \u7684 \u6bd4\u4f8b \u5c06 \u6570\u636e \u96c6 \u5212\u5206 \u4e3a \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u3002 scaler = MinMaxScaler ( feature _ range = ( 0 , 1 ) ) dataset = scaler . fit _ transform ( data ) train _ count = int ( 0.7 * len ( dataset ) ) x _ train _ set , x _ test _ set = dataset [ : train _ count , : - 1 ] , dataset [ train _ count : , : - 1 ] y _ train _ set , y _ test _ set = dataset [ : train _ count , - 1 ] , dataset [ train _ count : , - 1 ] \u5bf9 \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u7684 \u8f93\u5165 \u548c \u8f93\u51fa \u6570\u636e \u8fdb\u884c \u7ef4\u5ea6 \u8c03\u6574 \uff0c \u5176\u4e2d \u8f93\u5165 \u6570\u636e x _ train _ set \u3001 x _ test _ set \u4e3a \u4e09\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , \u65f6\u95f4 \u6b65\u6570 , \u7279\u5f81 \u6570\u91cf \uff09 \uff0c \u8f93\u51fa \u6570\u636e y _ train _ set \u3001 y _ test _ set \u4e3a \u4e8c\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , 1 ) \u3002 \u4ee5 \u6ee1\u8db3 LSTM \u6a21\u578b \u7684 \u8f93\u5165 \u8981\u6c42 \u3002 x _ train _ set = x _ train _ set . reshape ( x _ train _ set . shape [ 0 ] , 1 , x _ train _ set . shape [ 1 ] ) x _ test _ set = x _ test _ set . reshape ( x _ test _ set . shape [ 0 ] , 1 , x _ test _ set . shape [ 1 ] ) y _ train _ set = y _ train _ set . reshape ( y _ train _ set . shape [ 0 ] , 1 ) y _ test _ set = y _ test _ set . reshape ( y _ test _ set . shape [ 0 ] , 1 ) \u5b9a\u4e49 \u5e76 \u521b\u5efa \u4e86 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e3a [ 200 , 500 , 500 , 1 ] LSTM \u6a21\u578b \uff0c \u5176\u4e2d 200 \uff0c 500 \uff0c 500 \uff0c 1 \u5206\u522b \u8868\u793a \u6a21\u578b \u7684 \u4e09\u4e2a \u9690 \u5c42\u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \uff0c 1 \u4e3a \u8f93\u51fa \u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \u3002 layer = [ 200 , 500 , 500 , 1 ] model = build _ lstm _ model ( layer ) \u6784\u5efa LST \u6a21\u578b \u3002 \u8be5 \u51fd\u6570 \u521b\u5efa Sequential \u6a21\u578b \u5bf9\u8c61 \uff0c \u7528\u4e8e \u6309 \u987a\u5e8f \u5806\u53e0 \u795e\u7ecf \u7f51\u7edc \u7f51\u7edc\u5c42 \u3002 \u6dfb\u52a0 LSTM \u5c42 \u3001 Dropout \u5c42 \u548c Dense \u5168 \u8fde\u63a5 \u5c42 \uff0c \u4ee5\u53ca \u8bbe\u7f6e \u635f\u5931 \u51fd\u6570 \u548c \u4f18\u5316 \u5668 \uff0c \u63d0\u4f9b \u4e00\u4e2a \u7b80\u6d01 \u7684 \u65b9\u5f0f \u6765 \u521b\u5efa \u548c \u7f16\u8bd1 LSTM \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6a21\u578b \uff0c \u4ee5\u4fbf \u8fdb\u884c \u540e\u7eed \u7684 \u8bad\u7ec3 \u548c \u9884\u6d4b \u64cd\u4f5c \u3002 def build _ lstm _ model ( layer ) : model = Sequential ( ) model . add ( LSTM ( input _ shape = ( 1 , layer [ 0 ] ) , units = layer [ 1 ] , return _ sequences = True ) ) model . add ( Dropout ( 0.2 ) ) model . add ( LSTM ( units = layer [ 2 ] , return _ sequences = False ) ) model . add ( Dropout ( 0.2 ) ) model . add ( Dense ( units = layer [ 3 ] , activation = ' linear ' ) ) model . compile ( loss = ' mse ' , optimizer = ' adam ' ) return model \u8bad\u7ec3 \u6a21\u578b \u3002 \u5c06 \u51c6\u5907 \u597d \u7684 \u8bad\u7ec3 \u96c6 \u6570\u636e x _ train _ set \u548c \u5bf9\u5e94 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c y _ train _ set \uff0c \u5bf9 \u6784\u5efa \u597d \u7684 \u6a21\u578b \u8fdb\u884c \u8bad\u7ec3 \u3002 \u5176\u4e2d \uff0c batch _ size \u4e3a \u6bcf\u6b21 \u8fed\u4ee3 \u4f7f\u7528 \u7684 \u6837\u672c \u6570\u91cf \uff0c epochs \u4e3a \u8bad\u7ec3 \u7684 \u8fed\u4ee3 \u6b21\u6570 \uff0c validation _ split : \u9a8c\u8bc1 \u96c6 \u7684 \u6bd4\u4f8b \u3002 model . fit ( x _ train _ set , y _ train _ set , batch _ size = 100 , epochs = 25 , validation _ split = 0.2 ) \u9884\u6d4b \u672a\u6765 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u4f7f\u7528 \u8bad\u7ec3 \u597d \u7684 \u6a21\u578b \u5bf9 \u6d4b\u8bd5 \u96c6 \u6570\u636e x _ test _ set \u8fdb\u884c \u9884\u6d4b \uff0c \u5f97\u5230 \u9884\u6d4b \u7ed3\u679c y _ predicted \u3002 y _ predicted = model . predict ( x _ test _ set ) \u7ed8\u5236 \u66f2\u7ebf \uff0c \u9996\u5148 \u8fdb\u884c \u4e86 \u6570\u636e \u7684 \u586b\u5145 \u548c \u9006 \u6807\u51c6 \u6807\u51c6\u5316 \u5904\u7406 \uff0c \u5c06 \u5176 \u8f6c\u6362 \u56de \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u8303\u56f4 \uff0c \u7136\u540e \u8c03\u7528 plot _ curve \u51fd\u6570 \u8fdb\u884c \u66f2\u7ebf \u7ed8\u5236 \uff0c \u4ee5\u4fbf \u53ef\u89c6 \u53ef\u89c6\u5316 \u5bf9\u6bd4 \u6a21\u578b \u7684 \u9884\u6d4b \u7ed3\u679c \u548c \u771f\u5b9e \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u4ee5\u4fbf \u8fdb\u884c \u7ed3\u679c \u8bc4\u4f30 \u548c \u5206\u6790 \u3002 temp = np . zeros ( ( len ( y _ test _ set ) , 200 ) ) origin _ temp = np . hstack ( ( temp , y _ test _ set ) ) predict _ temp = np . hstack ( ( temp , y _ predicted ) ) origin _ test = scaler . inverse _ transform ( origin _ temp ) predict _ test = scaler . inverse _ transform ( predict _ temp ) predict _ test = np . round ( predict _ test ) . astype ( int ) plot _ curve ( origin _ test [ : , - 1 ] , predict _ test [ : , - 1 ] ) \u5b9a\u4e49 plot _ curve \u51fd\u6570 \u7528\u4e8e \u7ed8\u5236 \u771f\u5b9e \u6570\u636e \u548c \u9884\u6d4b \u6570\u636e \u7684 \u66f2\u7ebf \u7ebf\u56fe \u66f2\u7ebf\u56fe \u3002 \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u4e4b\u524d \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002 def plot _ curve ( true _ data , predicted _ data ) : fig , ax = plt . subplots ( ) ax . plot ( true _ data , label = ' True data ' ) ax . plot ( predicted _ data , label = ' Predicted data ' ) ax . legend ( ) # \u8bbe\u7f6e y \u8f74 \u7684 \u683c\u5f0f \u683c\u5f0f\u5316 \u4e3a \u6574\u6570 ax . yaxis . set _ major _ formatter ( ticker . ScalarFormatter ( useOffset = False , useMathText = True ) ) ax . yaxis . set _ major _ locator ( ticker . MaxNLocator ( integer = True ) ) plt . show ( ) \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002","title":"\u6d41\u91cf \u9884\u6d4b"},{"location":"tuto_G_traffic_prediction/#_1","text":"\u6ce8\u610f \u8fd0\u884c \u8be5 \u811a\u672c \u4e4b\u524d \uff0c \u5e94\u5148 \u8fd0\u884c generate _ traffic . py \u5e76 \u786e\u4fdd \u5728 town10 \u4e2d \u6210\u529f \u653e\u7f6e \u8f66\u8f86 \u3002 main \u51fd\u6570 \u4e2d \u9996\u5148 \u5b9a\u4e49 \u4e86 argparser \u548c carla \u6a21\u5757 \uff0c \u5176\u4e2d \uff0c argparse \u6a21\u5757 \u7528\u4e8e \u89e3\u6790 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5305\u62ec host \uff08 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \uff09 \u3001 port \uff08 TCP \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \uff09 \u3001 traffic _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f ID \uff09 \u3001 color _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u989c\u8272 ID \uff09 \u548c color _ time \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \uff09 \u3002 args = argparser . parse _ arg ( ) argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) argparser . add _ argument ( ' -- traffic _ id ' , metavar = ' I ' , default = 1 , type = int , help = ' traffic light id ' ) argparser . add _ argument ( ' -- color _ id ' , metavar = ' C ' , default = 1 , type = int , help = ' traffic light color id ' ) argparser . add _ argument ( ' -- color _ time ' , metavar = ' T ' , default = 20 , type = int , help = ' set traffic light time ' ) \u4f7f\u7528 \u6307\u5b9a \u7684 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \u548c \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u8fde\u63a5 \u5230 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u540c\u65f6 \uff0c \u8bbe\u7f6e \u4e0e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u901a\u4fe1 \u7684 \u8d85\u65f6 \u65f6\u95f4 \u3002 \u6700\u540e \uff0c \u4ee3\u7801 \u901a\u8fc7 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4e16\u754c \u5bf9\u8c61 \uff0c \u53ef\u4ee5 \u5728 \u4eff\u771f \u73af\u5883 \u4e2d \u8fdb\u884c \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u64cd\u4f5c \u548c \u63a7\u5236 \u3002 client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) world = client . get _ world ( ) \u4f7f\u7528 world . get _ settings ( ) \u65b9\u6cd5 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5f53\u524d \u8bbe\u7f6e \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bbe\u7f6e \u66f4 \u6539\u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76 \u5c06 \u65f6\u95f4 \u6b65\u957f \u8bbe\u7f6e \u4e3a 0.05 \u79d2 \uff0c \u4ee5\u4fbf \u4ee5 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u95f4\u9694 \u8fdb\u884c \u4eff\u771f \uff0c \u63a7\u5236 \u4eff\u771f \u7684 \u901f\u5ea6 \u548c \u7cbe\u786e \u7cbe\u786e\u5ea6 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 # \u4eff\u771f \u73af\u5883 \u4f1a\u4ee5 0.05 \u79d2 \u7684 \u65f6\u95f4 \u524d\u8fdb \u3002 world . apply _ settings ( settings ) \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) \u5212\u5b9a \u8def\u53e3 \u8303\u56f4 xmax = - 11 xmin = - 77 ymax = 57 ymin = - 13 \u521b\u5efa \u591a\u4e2a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5176\u4e2d vehicle _ positions \u7528\u4e8e \u5b58\u50a8 \u8f66\u8f86 \u5b9e\u65f6 \u4f4d\u7f6e \uff0c traffic _ data \u7528\u4e8e \u5b58\u50a8 \u8def\u53e3 \u5b9e\u65f6 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \uff0c timestamps \u7528\u4e8e \u5b58\u50a8 \u65f6\u95f4 \u6233 \uff0c traffic _ flow \u7528\u4e8e \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u3002 vehicle _ positions = { } traffic _ data = [ ] timestamps = [ ] traffic _ flow = [ ] \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u3002 \u5047\u8bbe \u4eff\u771f \u65f6\u95f4 \u6b65 \u4e00\u5171 \u4e3a 1000 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u5bf9\u4e8e \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8f86 \uff0c \u83b7\u53d6 \u5176 \u4f4d\u7f6e \u4fe1\u606f \uff0c \u5e76 \u5224\u65ad \u5176 \u662f\u5426 \u5728 \u76ee\u6807 \u8def\u53e3 \u7684 \u533a\u57df \u5185 \u3002 \u5982\u679c \u8f66\u8f86 \u5728 \u533a\u57df \u5185 \uff0c \u5c06 \u8ba1\u6570 \u8ba1\u6570\u5668 \u52a0 1 \uff0c \u5e76 \u5c06 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 \u5230 \u5b57\u5178 vehicle _ positions \u4e2d \u3002 for t in range ( 1000 ) : world . tick ( ) count = 0 for vehicle in vehicle _ list \uff1a location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 vehicle _ positions [ vehicle . id ] = ( x , y , z ) \u5bf9\u5e94 \u7684 \u65f6\u95f4 \u6233 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u5206\u522b \u5b58\u5165 timestamps \u3001 traffic _ flow \uff0c \u800c traffic _ data \u5305\u62ec \u8fd9 \u4e24\u79cd \u6570\u636e \u3002 traffic _ data . append ( ( t , count ) ) timestamps . append ( t ) traffic _ flow . append ( count ) traffic _ data \u5199\u5165 csv \u6587\u4ef6 filename = \" traffic _ data . csv \" with open ( filename , \" w \" , newline = ' ' , encoding = ' utf - 8 ' ) as file : writer = csv . writer ( file ) writer . writerow ( [ \" head \" , \" value \" ] ) # \u5199\u5165 \u8868\u5934 for data in traffic _ data : writer . writerow ( [ data [ 0 ] , data [ 1 ] ] ) # \u5199\u5165 \u6570\u636e data = load _ data ( ' traffic _ data . csv ' , 200 ) # \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u4ece \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6587\u4ef6 \u4e2d \u52a0\u8f7d \u6570\u636e \u5e76 \u8fdb\u884c \u5904\u7406 \u9884\u5904\u7406 \u3002 \u9996\u5148 \u5c06 \u6570\u636e \u8bfb\u53d6 \u4e3a DataFrame \u5bf9\u8c61 \uff0c \u5e76 \u7ed8\u5236 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u6298\u7ebf \u7ebf\u56fe \u6298\u7ebf\u56fe \u3002 \u901a\u8fc7 \u6307\u5b9a \u7684 \u65f6\u95f4 \u6b65 \u5927\u5c0f \u5bf9 \u6570\u636e \u8fdb\u884c \u5207\u7247 \uff0c \u5f62\u6210 \u8bad\u7ec3 \u6837\u672c \u8bad\u7ec3\u6837\u672c \u5e76 \u8fd4\u56de \u3002 def load _ data ( filename , time _ step ) : df = pd . read _ csv ( filename ) data = df . value plt . title ( ' original data ' ) plt . plot ( data ) plt . show ( ) result = [ ] for index in range ( len ( data ) - time _ step ) : result . append ( data [ index : index + time _ step + 1 ] ) return np . array ( result ) \u4f7f\u7528 MinMaxScaler \u5bf9 \u6570\u636e \u8fdb\u884c * \u5f52\u4e00\u5316 \u5904\u7406 \uff0c \u7136\u540e \u6309\u7167 7 \uff1a 3 \u7684 \u6bd4\u4f8b \u5c06 \u6570\u636e \u96c6 \u5212\u5206 \u4e3a \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u3002 scaler = MinMaxScaler ( feature _ range = ( 0 , 1 ) ) dataset = scaler . fit _ transform ( data ) train _ count = int ( 0.7 * len ( dataset ) ) x _ train _ set , x _ test _ set = dataset [ : train _ count , : - 1 ] , dataset [ train _ count : , : - 1 ] y _ train _ set , y _ test _ set = dataset [ : train _ count , - 1 ] , dataset [ train _ count : , - 1 ] \u5bf9 \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u7684 \u8f93\u5165 \u548c \u8f93\u51fa \u6570\u636e \u8fdb\u884c \u7ef4\u5ea6 \u8c03\u6574 \uff0c \u5176\u4e2d \u8f93\u5165 \u6570\u636e x _ train _ set \u3001 x _ test _ set \u4e3a \u4e09\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , \u65f6\u95f4 \u6b65\u6570 , \u7279\u5f81 \u6570\u91cf \uff09 \uff0c \u8f93\u51fa \u6570\u636e y _ train _ set \u3001 y _ test _ set \u4e3a \u4e8c\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , 1 ) \u3002 \u4ee5 \u6ee1\u8db3 LSTM \u6a21\u578b \u7684 \u8f93\u5165 \u8981\u6c42 \u3002 x _ train _ set = x _ train _ set . reshape ( x _ train _ set . shape [ 0 ] , 1 , x _ train _ set . shape [ 1 ] ) x _ test _ set = x _ test _ set . reshape ( x _ test _ set . shape [ 0 ] , 1 , x _ test _ set . shape [ 1 ] ) y _ train _ set = y _ train _ set . reshape ( y _ train _ set . shape [ 0 ] , 1 ) y _ test _ set = y _ test _ set . reshape ( y _ test _ set . shape [ 0 ] , 1 ) \u5b9a\u4e49 \u5e76 \u521b\u5efa \u4e86 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e3a [ 200 , 500 , 500 , 1 ] LSTM \u6a21\u578b \uff0c \u5176\u4e2d 200 \uff0c 500 \uff0c 500 \uff0c 1 \u5206\u522b \u8868\u793a \u6a21\u578b \u7684 \u4e09\u4e2a \u9690 \u5c42\u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \uff0c 1 \u4e3a \u8f93\u51fa \u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \u3002 layer = [ 200 , 500 , 500 , 1 ] model = build _ lstm _ model ( layer ) \u6784\u5efa LST \u6a21\u578b \u3002 \u8be5 \u51fd\u6570 \u521b\u5efa Sequential \u6a21\u578b \u5bf9\u8c61 \uff0c \u7528\u4e8e \u6309 \u987a\u5e8f \u5806\u53e0 \u795e\u7ecf \u7f51\u7edc \u7f51\u7edc\u5c42 \u3002 \u6dfb\u52a0 LSTM \u5c42 \u3001 Dropout \u5c42 \u548c Dense \u5168 \u8fde\u63a5 \u5c42 \uff0c \u4ee5\u53ca \u8bbe\u7f6e \u635f\u5931 \u51fd\u6570 \u548c \u4f18\u5316 \u5668 \uff0c \u63d0\u4f9b \u4e00\u4e2a \u7b80\u6d01 \u7684 \u65b9\u5f0f \u6765 \u521b\u5efa \u548c \u7f16\u8bd1 LSTM \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6a21\u578b \uff0c \u4ee5\u4fbf \u8fdb\u884c \u540e\u7eed \u7684 \u8bad\u7ec3 \u548c \u9884\u6d4b \u64cd\u4f5c \u3002 def build _ lstm _ model ( layer ) : model = Sequential ( ) model . add ( LSTM ( input _ shape = ( 1 , layer [ 0 ] ) , units = layer [ 1 ] , return _ sequences = True ) ) model . add ( Dropout ( 0.2 ) ) model . add ( LSTM ( units = layer [ 2 ] , return _ sequences = False ) ) model . add ( Dropout ( 0.2 ) ) model . add ( Dense ( units = layer [ 3 ] , activation = ' linear ' ) ) model . compile ( loss = ' mse ' , optimizer = ' adam ' ) return model \u8bad\u7ec3 \u6a21\u578b \u3002 \u5c06 \u51c6\u5907 \u597d \u7684 \u8bad\u7ec3 \u96c6 \u6570\u636e x _ train _ set \u548c \u5bf9\u5e94 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c y _ train _ set \uff0c \u5bf9 \u6784\u5efa \u597d \u7684 \u6a21\u578b \u8fdb\u884c \u8bad\u7ec3 \u3002 \u5176\u4e2d \uff0c batch _ size \u4e3a \u6bcf\u6b21 \u8fed\u4ee3 \u4f7f\u7528 \u7684 \u6837\u672c \u6570\u91cf \uff0c epochs \u4e3a \u8bad\u7ec3 \u7684 \u8fed\u4ee3 \u6b21\u6570 \uff0c validation _ split : \u9a8c\u8bc1 \u96c6 \u7684 \u6bd4\u4f8b \u3002 model . fit ( x _ train _ set , y _ train _ set , batch _ size = 100 , epochs = 25 , validation _ split = 0.2 ) \u9884\u6d4b \u672a\u6765 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u4f7f\u7528 \u8bad\u7ec3 \u597d \u7684 \u6a21\u578b \u5bf9 \u6d4b\u8bd5 \u96c6 \u6570\u636e x _ test _ set \u8fdb\u884c \u9884\u6d4b \uff0c \u5f97\u5230 \u9884\u6d4b \u7ed3\u679c y _ predicted \u3002 y _ predicted = model . predict ( x _ test _ set ) \u7ed8\u5236 \u66f2\u7ebf \uff0c \u9996\u5148 \u8fdb\u884c \u4e86 \u6570\u636e \u7684 \u586b\u5145 \u548c \u9006 \u6807\u51c6 \u6807\u51c6\u5316 \u5904\u7406 \uff0c \u5c06 \u5176 \u8f6c\u6362 \u56de \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u8303\u56f4 \uff0c \u7136\u540e \u8c03\u7528 plot _ curve \u51fd\u6570 \u8fdb\u884c \u66f2\u7ebf \u7ed8\u5236 \uff0c \u4ee5\u4fbf \u53ef\u89c6 \u53ef\u89c6\u5316 \u5bf9\u6bd4 \u6a21\u578b \u7684 \u9884\u6d4b \u7ed3\u679c \u548c \u771f\u5b9e \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u4ee5\u4fbf \u8fdb\u884c \u7ed3\u679c \u8bc4\u4f30 \u548c \u5206\u6790 \u3002 temp = np . zeros ( ( len ( y _ test _ set ) , 200 ) ) origin _ temp = np . hstack ( ( temp , y _ test _ set ) ) predict _ temp = np . hstack ( ( temp , y _ predicted ) ) origin _ test = scaler . inverse _ transform ( origin _ temp ) predict _ test = scaler . inverse _ transform ( predict _ temp ) predict _ test = np . round ( predict _ test ) . astype ( int ) plot _ curve ( origin _ test [ : , - 1 ] , predict _ test [ : , - 1 ] ) \u5b9a\u4e49 plot _ curve \u51fd\u6570 \u7528\u4e8e \u7ed8\u5236 \u771f\u5b9e \u6570\u636e \u548c \u9884\u6d4b \u6570\u636e \u7684 \u66f2\u7ebf \u7ebf\u56fe \u66f2\u7ebf\u56fe \u3002 \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u4e4b\u524d \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002 def plot _ curve ( true _ data , predicted _ data ) : fig , ax = plt . subplots ( ) ax . plot ( true _ data , label = ' True data ' ) ax . plot ( predicted _ data , label = ' Predicted data ' ) ax . legend ( ) # \u8bbe\u7f6e y \u8f74 \u7684 \u683c\u5f0f \u683c\u5f0f\u5316 \u4e3a \u6574\u6570 ax . yaxis . set _ major _ formatter ( ticker . ScalarFormatter ( useOffset = False , useMathText = True ) ) ax . yaxis . set _ major _ locator ( ticker . MaxNLocator ( integer = True ) ) plt . show ( ) \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002","title":"\u4ea4\u901a\u6d41\u91cf \u9884\u6d4b"},{"location":"tuto_M_add_map_alternative/","text":"\u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u8fd9\u4e9b \u65b9\u6cd5 \u6d89\u53ca \u6bd4 \u5305 \u548c \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5bfc\u5165 \u6307\u5357 \u4e2d \u63cf\u8ff0 \u7684 \u8fc7\u7a0b \u66f4 \u591a \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u9996\u5148 \u6211\u4eec \u5c06 \u4ecb\u7ecd RoadRuner \u63d2\u4ef6 \uff0c \u7136\u540e \u4ecb\u7ecd \u624b\u52a8 \u5bfc\u5165 \u65b9\u6cd5 \u3002 RoadRunner \u63d2\u4ef6 \u5bfc\u5165 \u624b\u52a8 \u5bfc\u5165 RoadRunner \u63d2\u4ef6 \u5bfc\u5165 MathWorks \u7684 RoadRunner \u8f6f\u4ef6 \u63d0\u4f9b \u4e86 \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \uff0c \u4ee5 \u5e2e\u52a9 \u7b80\u5316 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u8fc7\u7a0b \u3002 \u63d2\u4ef6 \u5b89\u88c5 1 . \u63d2\u4ef6 \u53ef \u4ece MathWorks \u7f51\u7ad9 \u4e0b\u8f7d \u3002 MathWorks \u8fd8\u6709 \u4e00\u4e2a \u5b8c\u6574 \u7684 \u6559\u7a0b \uff0c \u4e0e \u6b64 \u7c7b\u4f3c \uff0c \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u63d2\u4ef6 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 2 . \u89e3\u538b \u4e0b\u8f7d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u5185\u5bb9 \u5e76 \u5c06 RoadRunnerImporter \u548c RoadRunnerMaterials \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u79fb\u52a8 \u5230 < carla > / Unreal / CarlaUE4 / Plugins / \u3002 3 . \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u91cd\u5efa \u63d2\u4ef6 \uff1a \u5728 Windows \u4e0a \u3002 \u53f3\u952e \u5355\u51fb < carla > / Unreal / CarlaUE4 \u4e2d \u7684 . uproject \u6587\u4ef6 \uff0c \u5e76 \u9009\u62e9 Generate Visual Studio project files \u3002 \u5728 Carla \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u547d\u4ee4 \uff1a make launch \u5728 Linux \u4e0a \u3002 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a UE4 _ ROOT / GenerateProjectFiles . sh - project = \" carla / Unreal / CarlaUE4 / CarlaUE4 . uproject \" - game - engine 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \u9009\u4e2d \u4e24\u4e2a \u63d2\u4ef6 \u7684 \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 Edit > Plugins \u9009\u4e2d \u3002 \u5bfc\u5165 \u5730\u56fe 1 . \u4f7f\u7528 Import \u6309\u94ae \u5c06 < mapName > . fbx \u6587\u4ef6 \u5bfc\u5165 \u5bfc\u5165\u5230 / Content / Carla / Maps \u4e0b\u9762 \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u5c06 Scene > Hierarchy Type \u8bbe\u7f6e \u4e3a Create One Blueprint Asset \uff08 \u9ed8\u8ba4 \u9009\u62e9 \uff09 \u3002 3 . \u5c06 Static Meshes > Normal Import Method \u8bbe\u7f6e \u4e3a Import Normals \u3002 4 . \u70b9\u51fb Import \u3002 5 . \u4fdd\u5b58 \u5f53\u524d \u5173\u5361 File - > Save Current As ... - > < mapname > \u3002 \u65b0 \u5730\u56fe \u73b0\u5728 \u5e94\u8be5 \u51fa\u73b0 \u5728 \u865a\u5e7b \u5f15\u64ce \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u5176\u4ed6 \u5730\u56fe \u7684 \u65c1\u8fb9 \u3002 \u7b14\u8bb0 \u8bed\u4e49 \u5206\u5272 \u7684 \u6807\u7b7e \u5c06 \u6839\u636e \u8d44\u4ea7 \u540d\u79f0 \u5206\u914d \u3002 \u8be5 \u8d44\u6e90 \u5c06 \u88ab \u79fb\u52a8 \u5230 Content / Carla / PackageName / Static \u4e2d \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8981 \u66f4\u6539 \u8fd9\u4e9b \uff0c \u8bf7 \u5728 \u5bfc\u5165 \u540e \u624b\u52a8 \u79fb\u52a8 \u5b83\u4eec \u3002 \u624b\u52a8 \u5bfc\u5165 \u8fd9\u79cd \u5bfc\u5165 \u5730\u56fe \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u4e0e \u901a\u7528 . fbx \u548c . xodr \u6587\u4ef6 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 RoadRunner \uff0c \u5219 \u5e94 \u4f7f\u7528 Firebox ( . fbx ) \u3001 OpenDRIVE ( . xodr ) \u6216 Unreal ( . fbx + . xml ) \u5bfc\u51fa \u65b9\u6cd5 \u3002 \u4e0d\u8981 \u4f7f\u7528 \u8be5 Carla Exporter \u9009\u9879 \uff0c \u56e0\u4e3a \u60a8 \u5c06 \u9047\u5230 . fbx \u6587\u4ef6 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \u3002 \u8981 \u5c06 \u5730\u56fe \u624b\u52a8 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \uff1a 1 . \u5728 \u7cfb\u7edf \u7684 \u6587\u4ef6 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u5c06 . xodr \u6587\u4ef6 \u590d\u5236 \u590d\u5236\u5230 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u3002 2 . \u901a\u8fc7 \u5728 carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u8fd0\u884c make launch \u6765 \u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u5230 Content / Carla / Maps / BaseMap \u5e76 \u590d\u5236 BaseMap \u3002 \u8fd9 \u5c06 \u63d0\u4f9b \u5e26\u6709 \u9ed8\u8ba4 \u5929\u7a7a \u548c \u7167\u660e \u5bf9\u8c61 \u7684 \u7a7a\u767d \u5730\u56fe \u3002 3 . \u5728 \u76ee\u5f55 Content / Carla / Maps \u4e2d \u521b\u5efa \u4e00\u4e2a \u4ee5 \u60a8 \u7684 \u5730\u56fe \u5730\u56fe\u5305 \u540d\u79f0 \u547d\u540d \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u4ee5 \u4e0e \u60a8 \u7684 . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u7684 \u540d\u79f0 \u4fdd\u5b58 \u590d\u5236 \u7684 \u5730\u56fe \u3002 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u56de Content / Carla / Maps \u3002 \u53f3\u952e \u5355\u51fb \u7070\u8272 \u533a\u57df \u5e76 \u5728 \u6807\u9898 Import Asset \u4e0b \u9009\u62e9 Import to / Game / Carla / Maps ... \u3002 5 . \u5728 \u5f39\u51fa \u7684 \u914d\u7f6e \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \uff1a \u8fd9\u4e9b \u9009\u9879 \u672a \u9009\u4e2d \uff1a \u81ea\u52a8 \u751f\u6210 \u78b0\u649e ( Auto Generate Collision ) \u7ec4\u5408 \u7f51\u683c ( Combine Meshes ) Force Front xAxis \u5728 \u4ee5\u4e0b \u4e0b \u62c9 \u5217\u8868 \u4e2d \uff0c \u9009\u62e9 \u76f8\u5e94 \u7684 \u9009\u9879 \uff1a \u6cd5\u7ebf \u5bfc\u5165 \u65b9\u6cd5 - Import Normals \u6750\u8d28 \u5bfc\u5165 \u65b9\u6cd5 - Create New Materials \u68c0\u67e5 \u8fd9\u4e9b \u9009\u9879 \uff1a Convert Scene Unit Import Textures 6 . \u5355\u51fb Import \u3002 7 . \u7f51\u683c \u5c06 \u51fa\u73b0 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u9009\u62e9 \u7f51\u683c \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 8 . \u5c06 \u7f51\u683c \u7f6e\u4e8e 0 , 0 , 0 \u4e2d\u5fc3 \u3002 9 . \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u9009\u62e9 \u6240\u6709 \u9700\u8981 \u6709 \u78b0\u649e \u5668 \u7684 \u7f51\u683c \u4f53 \u3002 \u8fd9 \u662f \u6307 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u4ea4\u4e92 \u7684 \u4efb\u4f55 \u7f51\u683c \u3002 \u78b0\u649e \u5668 \u9632\u6b62 \u4ed6\u4eec \u6389\u5165 \u6df1\u6e0a \u3002 \u53f3\u952e \u5355\u51fb \u9009\u5b9a \u7684 \u7f51\u683c \u5e76 \u9009\u62e9 Asset Actions > Bulk Edit via Property Matrix ... \u3002 10 . \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u78b0\u649e ( collision ) \u3002 11 . \u5c06 Collision Complexity \u4ece Project Default \u6539\u4e3a Use Complex Collision As Simple \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 12 . \u6309 Alt + c \u786e\u8ba4 \u78b0\u649e \u8bbe\u7f6e \u5df2 \u6b63\u786e \u5e94\u7528 \u3002 \u60a8 \u4f1a \u5728 \u7f51\u683c \u4e0a \u770b\u5230 \u9ed1\u8272 \u7684 \u7f51 \u3002 13 . \u8981 \u4e3a \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u771f\u5b9e \u6570\u636e \uff0c \u8bf7 \u5c06 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u79fb\u52a8 \u5230 Carla / Static / < segment > \u9075\u5faa \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Content \u2514 \u2500 \u2500 Carla \u251c \u2500 \u2500 Blueprints \u251c \u2500 \u2500 Config \u251c \u2500 \u2500 Exported Maps \u251c \u2500 \u2500 HDMaps \u251c \u2500 \u2500 Maps \u2514 \u2500 \u2500 Static \u251c \u2500 \u2500 Terrain \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 Road \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 RoadLines | \u2514 \u2500 \u2500 mapname | \u2514 \u2500 \u2500 Static Meshes \u2514 \u2500 \u2500 Sidewalks \u2514 \u2500 \u2500 mapname \u2514 \u2500 \u2500 Static Meshes 14 . \u5728 \u201c \u6a21\u5f0f ( Modes ) \u201d \u9762\u677f \u4e2d \uff0c \u641c\u7d22 Open Drive Actor \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 15 . \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u9009\u4e2d Add Spawners \u5e76 \u5355\u51fb Generate Routes \u65c1\u8fb9 \u7684 \u6846 \u3002 \u8fd9 \u5c06 \u5728 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u76ee\u5f55 \u4e2d \u627e\u5230 \u5177\u6709 \u76f8\u540c \u5730\u56fe \u540d\u79f0 \u7684 . xodr \u6587\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u5b83 \u6765 \u751f\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 RoutePlanner \u548c VehicleSpawnPoint \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e0b \u4e00\u6b65 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5efa\u8bae \u4f7f\u7528 Carla \u5305 \u548c Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u6307\u5357 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u6d41\u7a0b \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u4f46\u662f \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u672c\u8282 \u4e2d \u5217\u51fa \u7684 \u65b9\u6cd5 \u3002 \u5982\u679c \u60a8 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u65b9\u6cd5 \u65f6 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002","title":"\u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5"},{"location":"tuto_M_add_map_alternative/#_1","text":"\u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u8fd9\u4e9b \u65b9\u6cd5 \u6d89\u53ca \u6bd4 \u5305 \u548c \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5bfc\u5165 \u6307\u5357 \u4e2d \u63cf\u8ff0 \u7684 \u8fc7\u7a0b \u66f4 \u591a \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u9996\u5148 \u6211\u4eec \u5c06 \u4ecb\u7ecd RoadRuner \u63d2\u4ef6 \uff0c \u7136\u540e \u4ecb\u7ecd \u624b\u52a8 \u5bfc\u5165 \u65b9\u6cd5 \u3002 RoadRunner \u63d2\u4ef6 \u5bfc\u5165 \u624b\u52a8 \u5bfc\u5165","title":"\u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5"},{"location":"tuto_M_add_map_alternative/#roadrunner","text":"MathWorks \u7684 RoadRunner \u8f6f\u4ef6 \u63d0\u4f9b \u4e86 \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \uff0c \u4ee5 \u5e2e\u52a9 \u7b80\u5316 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u8fc7\u7a0b \u3002","title":"RoadRunner \u63d2\u4ef6 \u5bfc\u5165"},{"location":"tuto_M_add_map_alternative/#_2","text":"1 . \u63d2\u4ef6 \u53ef \u4ece MathWorks \u7f51\u7ad9 \u4e0b\u8f7d \u3002 MathWorks \u8fd8\u6709 \u4e00\u4e2a \u5b8c\u6574 \u7684 \u6559\u7a0b \uff0c \u4e0e \u6b64 \u7c7b\u4f3c \uff0c \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u63d2\u4ef6 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 2 . \u89e3\u538b \u4e0b\u8f7d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u5185\u5bb9 \u5e76 \u5c06 RoadRunnerImporter \u548c RoadRunnerMaterials \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u79fb\u52a8 \u5230 < carla > / Unreal / CarlaUE4 / Plugins / \u3002 3 . \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u91cd\u5efa \u63d2\u4ef6 \uff1a \u5728 Windows \u4e0a \u3002 \u53f3\u952e \u5355\u51fb < carla > / Unreal / CarlaUE4 \u4e2d \u7684 . uproject \u6587\u4ef6 \uff0c \u5e76 \u9009\u62e9 Generate Visual Studio project files \u3002 \u5728 Carla \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u547d\u4ee4 \uff1a make launch \u5728 Linux \u4e0a \u3002 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a UE4 _ ROOT / GenerateProjectFiles . sh - project = \" carla / Unreal / CarlaUE4 / CarlaUE4 . uproject \" - game - engine 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \u9009\u4e2d \u4e24\u4e2a \u63d2\u4ef6 \u7684 \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 Edit > Plugins \u9009\u4e2d \u3002","title":"\u63d2\u4ef6 \u5b89\u88c5"},{"location":"tuto_M_add_map_alternative/#_3","text":"1 . \u4f7f\u7528 Import \u6309\u94ae \u5c06 < mapName > . fbx \u6587\u4ef6 \u5bfc\u5165 \u5bfc\u5165\u5230 / Content / Carla / Maps \u4e0b\u9762 \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u5c06 Scene > Hierarchy Type \u8bbe\u7f6e \u4e3a Create One Blueprint Asset \uff08 \u9ed8\u8ba4 \u9009\u62e9 \uff09 \u3002 3 . \u5c06 Static Meshes > Normal Import Method \u8bbe\u7f6e \u4e3a Import Normals \u3002 4 . \u70b9\u51fb Import \u3002 5 . \u4fdd\u5b58 \u5f53\u524d \u5173\u5361 File - > Save Current As ... - > < mapname > \u3002 \u65b0 \u5730\u56fe \u73b0\u5728 \u5e94\u8be5 \u51fa\u73b0 \u5728 \u865a\u5e7b \u5f15\u64ce \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u5176\u4ed6 \u5730\u56fe \u7684 \u65c1\u8fb9 \u3002 \u7b14\u8bb0 \u8bed\u4e49 \u5206\u5272 \u7684 \u6807\u7b7e \u5c06 \u6839\u636e \u8d44\u4ea7 \u540d\u79f0 \u5206\u914d \u3002 \u8be5 \u8d44\u6e90 \u5c06 \u88ab \u79fb\u52a8 \u5230 Content / Carla / PackageName / Static \u4e2d \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8981 \u66f4\u6539 \u8fd9\u4e9b \uff0c \u8bf7 \u5728 \u5bfc\u5165 \u540e \u624b\u52a8 \u79fb\u52a8 \u5b83\u4eec \u3002","title":"\u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_alternative/#_4","text":"\u8fd9\u79cd \u5bfc\u5165 \u5730\u56fe \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u4e0e \u901a\u7528 . fbx \u548c . xodr \u6587\u4ef6 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 RoadRunner \uff0c \u5219 \u5e94 \u4f7f\u7528 Firebox ( . fbx ) \u3001 OpenDRIVE ( . xodr ) \u6216 Unreal ( . fbx + . xml ) \u5bfc\u51fa \u65b9\u6cd5 \u3002 \u4e0d\u8981 \u4f7f\u7528 \u8be5 Carla Exporter \u9009\u9879 \uff0c \u56e0\u4e3a \u60a8 \u5c06 \u9047\u5230 . fbx \u6587\u4ef6 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \u3002 \u8981 \u5c06 \u5730\u56fe \u624b\u52a8 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \uff1a 1 . \u5728 \u7cfb\u7edf \u7684 \u6587\u4ef6 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u5c06 . xodr \u6587\u4ef6 \u590d\u5236 \u590d\u5236\u5230 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u3002 2 . \u901a\u8fc7 \u5728 carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u8fd0\u884c make launch \u6765 \u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u5230 Content / Carla / Maps / BaseMap \u5e76 \u590d\u5236 BaseMap \u3002 \u8fd9 \u5c06 \u63d0\u4f9b \u5e26\u6709 \u9ed8\u8ba4 \u5929\u7a7a \u548c \u7167\u660e \u5bf9\u8c61 \u7684 \u7a7a\u767d \u5730\u56fe \u3002 3 . \u5728 \u76ee\u5f55 Content / Carla / Maps \u4e2d \u521b\u5efa \u4e00\u4e2a \u4ee5 \u60a8 \u7684 \u5730\u56fe \u5730\u56fe\u5305 \u540d\u79f0 \u547d\u540d \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u4ee5 \u4e0e \u60a8 \u7684 . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u7684 \u540d\u79f0 \u4fdd\u5b58 \u590d\u5236 \u7684 \u5730\u56fe \u3002 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u56de Content / Carla / Maps \u3002 \u53f3\u952e \u5355\u51fb \u7070\u8272 \u533a\u57df \u5e76 \u5728 \u6807\u9898 Import Asset \u4e0b \u9009\u62e9 Import to / Game / Carla / Maps ... \u3002 5 . \u5728 \u5f39\u51fa \u7684 \u914d\u7f6e \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \uff1a \u8fd9\u4e9b \u9009\u9879 \u672a \u9009\u4e2d \uff1a \u81ea\u52a8 \u751f\u6210 \u78b0\u649e ( Auto Generate Collision ) \u7ec4\u5408 \u7f51\u683c ( Combine Meshes ) Force Front xAxis \u5728 \u4ee5\u4e0b \u4e0b \u62c9 \u5217\u8868 \u4e2d \uff0c \u9009\u62e9 \u76f8\u5e94 \u7684 \u9009\u9879 \uff1a \u6cd5\u7ebf \u5bfc\u5165 \u65b9\u6cd5 - Import Normals \u6750\u8d28 \u5bfc\u5165 \u65b9\u6cd5 - Create New Materials \u68c0\u67e5 \u8fd9\u4e9b \u9009\u9879 \uff1a Convert Scene Unit Import Textures 6 . \u5355\u51fb Import \u3002 7 . \u7f51\u683c \u5c06 \u51fa\u73b0 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u9009\u62e9 \u7f51\u683c \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 8 . \u5c06 \u7f51\u683c \u7f6e\u4e8e 0 , 0 , 0 \u4e2d\u5fc3 \u3002 9 . \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u9009\u62e9 \u6240\u6709 \u9700\u8981 \u6709 \u78b0\u649e \u5668 \u7684 \u7f51\u683c \u4f53 \u3002 \u8fd9 \u662f \u6307 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u4ea4\u4e92 \u7684 \u4efb\u4f55 \u7f51\u683c \u3002 \u78b0\u649e \u5668 \u9632\u6b62 \u4ed6\u4eec \u6389\u5165 \u6df1\u6e0a \u3002 \u53f3\u952e \u5355\u51fb \u9009\u5b9a \u7684 \u7f51\u683c \u5e76 \u9009\u62e9 Asset Actions > Bulk Edit via Property Matrix ... \u3002 10 . \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u78b0\u649e ( collision ) \u3002 11 . \u5c06 Collision Complexity \u4ece Project Default \u6539\u4e3a Use Complex Collision As Simple \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 12 . \u6309 Alt + c \u786e\u8ba4 \u78b0\u649e \u8bbe\u7f6e \u5df2 \u6b63\u786e \u5e94\u7528 \u3002 \u60a8 \u4f1a \u5728 \u7f51\u683c \u4e0a \u770b\u5230 \u9ed1\u8272 \u7684 \u7f51 \u3002 13 . \u8981 \u4e3a \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u771f\u5b9e \u6570\u636e \uff0c \u8bf7 \u5c06 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u79fb\u52a8 \u5230 Carla / Static / < segment > \u9075\u5faa \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Content \u2514 \u2500 \u2500 Carla \u251c \u2500 \u2500 Blueprints \u251c \u2500 \u2500 Config \u251c \u2500 \u2500 Exported Maps \u251c \u2500 \u2500 HDMaps \u251c \u2500 \u2500 Maps \u2514 \u2500 \u2500 Static \u251c \u2500 \u2500 Terrain \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 Road \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 RoadLines | \u2514 \u2500 \u2500 mapname | \u2514 \u2500 \u2500 Static Meshes \u2514 \u2500 \u2500 Sidewalks \u2514 \u2500 \u2500 mapname \u2514 \u2500 \u2500 Static Meshes 14 . \u5728 \u201c \u6a21\u5f0f ( Modes ) \u201d \u9762\u677f \u4e2d \uff0c \u641c\u7d22 Open Drive Actor \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 15 . \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u9009\u4e2d Add Spawners \u5e76 \u5355\u51fb Generate Routes \u65c1\u8fb9 \u7684 \u6846 \u3002 \u8fd9 \u5c06 \u5728 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u76ee\u5f55 \u4e2d \u627e\u5230 \u5177\u6709 \u76f8\u540c \u5730\u56fe \u540d\u79f0 \u7684 . xodr \u6587\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u5b83 \u6765 \u751f\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 RoutePlanner \u548c VehicleSpawnPoint \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u624b\u52a8 \u5bfc\u5165"},{"location":"tuto_M_add_map_alternative/#_5","text":"\u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5efa\u8bae \u4f7f\u7528 Carla \u5305 \u548c Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u6307\u5357 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u6d41\u7a0b \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u4f46\u662f \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u672c\u8282 \u4e2d \u5217\u51fa \u7684 \u65b9\u6cd5 \u3002 \u5982\u679c \u60a8 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u65b9\u6cd5 \u65f6 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_add_map_package/","text":"\u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u672c \u8282 \u4ecb\u7ecd \u5c06 \u5730\u56fe \u5f15\u5165 Carla \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u6b64 \u8fc7\u7a0b \u4ec5 \u9002\u7528 \u4e8e Linux \u7cfb\u7edf \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u6765 \u5bfc\u5165 \u76f8\u5173 \u6587\u4ef6 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u5bfc\u51fa \u4e3a \u72ec\u7acb \u5305 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u6784\u5efa Docker \u955c\u50cf \u5927\u7ea6 \u9700\u8981 4 \u5c0f\u65f6 \u548c 600 - 700 GB \u7684 \u65f6\u95f4 \u3002 \u4ec5 \u5728 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa \u6620\u50cf \u65f6\u624d \u9700\u8981 \u8fd9\u6837 \u505a \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a Ubuntu 16.04 + \u4e2d \u7684 64 \u4f4d \u7248\u672c Docker \u81f3\u5c11 8GB RAM \u7528\u4e8e \u6784\u5efa \u5bb9\u5668 \u6620\u50cf \u7684 \u81f3\u5c11 700 GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 Git \u7248\u672c \u63a7\u5236 \u7248\u672c\u63a7\u5236 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u4f7f\u7528 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u5df2 \u751f\u6210 \u7684 \u4e24\u4e2a \u6587\u4ef6 < mapName > . xodr \u548c < mapName > . fbx \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 < mapName > \u503c \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u540c\u4e00 \u5730\u56fe \u3002 Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165 1 . Carla \u63d0\u4f9b \u4e86 \u5728 Docker \u6620\u50cf \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca \u4f7f\u7528 \u8be5 \u6620\u50cf \u7f16\u8bd1 Carla \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9\u4e9b \u5de5\u5177 \u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u627e\u5230 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla 2 . \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 3 . \u521b\u5efa input _ folder \u3002 \u8fd9 \u662f \u60a8 \u653e\u7f6e \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u7684 \u4f4d\u7f6e \u3002 Docker \u4f1a \u81ea\u52a8 \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u6765 \u63cf\u8ff0 \u5305 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u3002 \u66f4\u6539 input _ folder \u7684 \u6743\u9650 \u624d\u80fd \u6210\u529f \u521b\u5efa \uff1a # Go to the parent folder , where the input folder is contained chmod 777 input _ folder \u7b14\u8bb0 \u5982\u679c \u5305\u662f \u624b\u52a8 \u51c6\u5907 \u7684 \uff0c \u5e76\u4e14 \u5df2 \u5305\u542b . json \u6587\u4ef6 \uff0c \u5219 \u65e0\u9700 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002 4 . \u521b\u5efa output _ folder \u3002 \u8fd9\u662f Docker \u955c\u50cf \u5728 \u70d8\u7119 \u5730\u56fe \u540e \u5199\u5165 \u8f93\u51fa \u6587\u4ef6 \u7684 \u5730\u65b9 \u3002 5 . \u5bfc\u822a \u81f3 ~ / carla / Util / Docker \u3002 \u8fd9\u662f \u5bfc\u5165 \u811a\u672c \u6240\u5728 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u811a\u672c \u9700\u8981 input _ folder \u548c output _ folder \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u5305 \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u63d0\u4f9b \u4e86 . json \u6587\u4ef6 \uff0c \u5219 \u8be5 \u6587\u4ef6 \u7684 \u540d\u79f0 \u662f \u5305 \u540d\u79f0 \uff0c \u5982\u679c \u672a \u63d0\u4f9b . json \uff0c \u5219 \u540d\u79f0 \u5fc5\u987b \u4e3a map _ package \uff1a python3 docker _ tools . py -- input ~ / path _ to _ input _ folder -- output ~ / path _ to _ output _ folder -- packages map _ package \u7b14\u8bb0 \u5982\u679c \u672a \u63d0\u4f9b \u53c2\u6570 -- packages map _ package \uff0c Docker \u955c\u50cf \u5c06 \u5236\u4f5c Carla \u5305 \u3002 6 . \u5305\u5c06 \u5728 output _ folder \u4e2d \u751f \u6210\u4e3a < map _ package > . tar . gz . \u3002 \u8fd9\u662f \u72ec\u7acb \u5305 \uff0c \u73b0\u5728 \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u5c06 \u5728 \u5176\u4e2d \u4f7f\u7528 \u5730\u56fe \u7684 \u5305 / \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \uff09 \u4e2d \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u4ece \u76ee\u5f55 \u6839\u76ee\u5f55 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \uff1a . / ImportAssets . sh 7 . \u8981 \u4f7f\u7528 \u65b0 \u5730\u56fe \u8fd0\u884c \u4eff\u771f \uff0c \u8bf7 \u8fd0\u884c Carla \uff0c \u7136\u540e \u4f7f\u7528 config . py \u6587\u4ef6 \u66f4\u6539 \u5730\u56fe \uff1a cd PythonAPI / util python3 config . py -- map < mapName > \u60a8 \u7684 \u5730\u56fe \u73b0\u5728 \u53ef\u4ee5 \u5728 Carla \u8fd0\u884c \u4eff\u771f \u4e86 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \uff0c \u3002 \u4e5f \u53ef\u4ee5 \u5c1d\u8bd5 \u5728 \u4f60 \u7684 \u65b0 \u5730\u56fe \u4e0a \u8fd0\u884c \u6211\u4eec \u7684 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u6d4b\u8bd5 \u5b83 \u3002","title":"\u5728 Carla \u5305 \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_package/#carla","text":"\u672c \u8282 \u4ecb\u7ecd \u5c06 \u5730\u56fe \u5f15\u5165 Carla \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u6b64 \u8fc7\u7a0b \u4ec5 \u9002\u7528 \u4e8e Linux \u7cfb\u7edf \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u6765 \u5bfc\u5165 \u76f8\u5173 \u6587\u4ef6 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u5bfc\u51fa \u4e3a \u72ec\u7acb \u5305 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u6784\u5efa Docker \u955c\u50cf \u5927\u7ea6 \u9700\u8981 4 \u5c0f\u65f6 \u548c 600 - 700 GB \u7684 \u65f6\u95f4 \u3002 \u4ec5 \u5728 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa \u6620\u50cf \u65f6\u624d \u9700\u8981 \u8fd9\u6837 \u505a \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165","title":"\u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_package/#_1","text":"\u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a Ubuntu 16.04 + \u4e2d \u7684 64 \u4f4d \u7248\u672c Docker \u81f3\u5c11 8GB RAM \u7528\u4e8e \u6784\u5efa \u5bb9\u5668 \u6620\u50cf \u7684 \u81f3\u5c11 700 GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 Git \u7248\u672c \u63a7\u5236 \u7248\u672c\u63a7\u5236 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u4f7f\u7528 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u5df2 \u751f\u6210 \u7684 \u4e24\u4e2a \u6587\u4ef6 < mapName > . xodr \u548c < mapName > . fbx \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 < mapName > \u503c \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u540c\u4e00 \u5730\u56fe \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_add_map_package/#carla_1","text":"1 . Carla \u63d0\u4f9b \u4e86 \u5728 Docker \u6620\u50cf \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca \u4f7f\u7528 \u8be5 \u6620\u50cf \u7f16\u8bd1 Carla \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9\u4e9b \u5de5\u5177 \u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u627e\u5230 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla 2 . \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 3 . \u521b\u5efa input _ folder \u3002 \u8fd9 \u662f \u60a8 \u653e\u7f6e \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u7684 \u4f4d\u7f6e \u3002 Docker \u4f1a \u81ea\u52a8 \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u6765 \u63cf\u8ff0 \u5305 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u3002 \u66f4\u6539 input _ folder \u7684 \u6743\u9650 \u624d\u80fd \u6210\u529f \u521b\u5efa \uff1a # Go to the parent folder , where the input folder is contained chmod 777 input _ folder \u7b14\u8bb0 \u5982\u679c \u5305\u662f \u624b\u52a8 \u51c6\u5907 \u7684 \uff0c \u5e76\u4e14 \u5df2 \u5305\u542b . json \u6587\u4ef6 \uff0c \u5219 \u65e0\u9700 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002 4 . \u521b\u5efa output _ folder \u3002 \u8fd9\u662f Docker \u955c\u50cf \u5728 \u70d8\u7119 \u5730\u56fe \u540e \u5199\u5165 \u8f93\u51fa \u6587\u4ef6 \u7684 \u5730\u65b9 \u3002 5 . \u5bfc\u822a \u81f3 ~ / carla / Util / Docker \u3002 \u8fd9\u662f \u5bfc\u5165 \u811a\u672c \u6240\u5728 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u811a\u672c \u9700\u8981 input _ folder \u548c output _ folder \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u5305 \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u63d0\u4f9b \u4e86 . json \u6587\u4ef6 \uff0c \u5219 \u8be5 \u6587\u4ef6 \u7684 \u540d\u79f0 \u662f \u5305 \u540d\u79f0 \uff0c \u5982\u679c \u672a \u63d0\u4f9b . json \uff0c \u5219 \u540d\u79f0 \u5fc5\u987b \u4e3a map _ package \uff1a python3 docker _ tools . py -- input ~ / path _ to _ input _ folder -- output ~ / path _ to _ output _ folder -- packages map _ package \u7b14\u8bb0 \u5982\u679c \u672a \u63d0\u4f9b \u53c2\u6570 -- packages map _ package \uff0c Docker \u955c\u50cf \u5c06 \u5236\u4f5c Carla \u5305 \u3002 6 . \u5305\u5c06 \u5728 output _ folder \u4e2d \u751f \u6210\u4e3a < map _ package > . tar . gz . \u3002 \u8fd9\u662f \u72ec\u7acb \u5305 \uff0c \u73b0\u5728 \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u5c06 \u5728 \u5176\u4e2d \u4f7f\u7528 \u5730\u56fe \u7684 \u5305 / \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \uff09 \u4e2d \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u4ece \u76ee\u5f55 \u6839\u76ee\u5f55 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \uff1a . / ImportAssets . sh 7 . \u8981 \u4f7f\u7528 \u65b0 \u5730\u56fe \u8fd0\u884c \u4eff\u771f \uff0c \u8bf7 \u8fd0\u884c Carla \uff0c \u7136\u540e \u4f7f\u7528 config . py \u6587\u4ef6 \u66f4\u6539 \u5730\u56fe \uff1a cd PythonAPI / util python3 config . py -- map < mapName > \u60a8 \u7684 \u5730\u56fe \u73b0\u5728 \u53ef\u4ee5 \u5728 Carla \u8fd0\u884c \u4eff\u771f \u4e86 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \uff0c \u3002 \u4e5f \u53ef\u4ee5 \u5c1d\u8bd5 \u5728 \u4f60 \u7684 \u65b0 \u5730\u56fe \u4e0a \u8fd0\u884c \u6211\u4eec \u7684 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u6d4b\u8bd5 \u5b83 \u3002","title":"Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165"},{"location":"tuto_M_add_map_source/","text":"\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u672c \u8282 \u63cf\u8ff0 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 Carla \u7684 \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u901a\u8fc7 \u5c06 \u76f8\u5173 \u5730\u56fe \u6587\u4ef6 \u7f16\u8bd1 \u5230 \u5305\u4e2d\u6765 \u5bfc\u5165 \u5b83\u4eec \u3002 \u7136\u540e \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u8be5\u5305 \u5e76 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u7136\u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u5e76 \u6700\u7ec8 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u5305\u4e2d \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5730\u56fe \u5bfc\u5165 \u4e0b \u4e00\u6b65 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e24\u4e2a \u6587\u4ef6 \uff0c < mapName > . xodr \u548c < mapName > . fbx \uff0c \u662f \u7531 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u751f\u6210 \u7684 \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 \u503c < mapName > \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u76f8\u540c \u7684 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u591a\u4e2a \u5730\u56fe \u63d0\u53d6 \u5230 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u5305\u4e2d \u3002 \u6bcf\u5f20 \u5730\u56fe \u90fd \u5e94\u8be5 \u6709 \u4e00\u4e2a \u552f\u4e00 \u7684 \u540d\u79f0 \u3002 \u5730\u56fe \u5bfc\u5165 1 . \u5c06 \u9700\u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u6587\u4ef6 \u653e\u5165 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u63d0\u53d6 \u6587\u4ef6 \uff1a make import \u8bf7 \u6ce8\u610f \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u4e24\u4e2a \u53ef \u9009 \u53c2\u6570 \u6807\u5fd7 : -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u6444\u53d6 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u5c06 \u4f7f\u7528 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u540d\u79f0 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 Unreal / CarlaUE4 / Content \u3002 \u5b83 \u5c06 \u5305\u542b \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u8d85\u901f \u6321 \u3001 \u9759\u6001 \u8d44\u4ea7 \u4fe1\u606f \u548c \u5bfc\u822a \u4fe1\u606f \u3002 \u4e0b \u4e00\u6b65 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u5728 Carla \u6e90 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_source/#carla","text":"\u672c \u8282 \u63cf\u8ff0 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 Carla \u7684 \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u901a\u8fc7 \u5c06 \u76f8\u5173 \u5730\u56fe \u6587\u4ef6 \u7f16\u8bd1 \u5230 \u5305\u4e2d\u6765 \u5bfc\u5165 \u5b83\u4eec \u3002 \u7136\u540e \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u8be5\u5305 \u5e76 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u7136\u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u5e76 \u6700\u7ec8 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u5305\u4e2d \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5730\u56fe \u5bfc\u5165 \u4e0b \u4e00\u6b65","title":"\u4ece \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_source/#_1","text":"\u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e24\u4e2a \u6587\u4ef6 \uff0c < mapName > . xodr \u548c < mapName > . fbx \uff0c \u662f \u7531 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u751f\u6210 \u7684 \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 \u503c < mapName > \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u76f8\u540c \u7684 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u591a\u4e2a \u5730\u56fe \u63d0\u53d6 \u5230 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u5305\u4e2d \u3002 \u6bcf\u5f20 \u5730\u56fe \u90fd \u5e94\u8be5 \u6709 \u4e00\u4e2a \u552f\u4e00 \u7684 \u540d\u79f0 \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_add_map_source/#_2","text":"1 . \u5c06 \u9700\u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u6587\u4ef6 \u653e\u5165 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u63d0\u53d6 \u6587\u4ef6 \uff1a make import \u8bf7 \u6ce8\u610f \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u4e24\u4e2a \u53ef \u9009 \u53c2\u6570 \u6807\u5fd7 : -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u6444\u53d6 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u5c06 \u4f7f\u7528 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u540d\u79f0 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 Unreal / CarlaUE4 / Content \u3002 \u5b83 \u5c06 \u5305\u542b \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u8d85\u901f \u6321 \u3001 \u9759\u6001 \u8d44\u4ea7 \u4fe1\u606f \u548c \u5bfc\u822a \u4fe1\u606f \u3002","title":"\u5730\u56fe \u5bfc\u5165"},{"location":"tuto_M_add_map_source/#_3","text":"\u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_add_tl/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3001 \u914d\u7f6e \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u7684 \u5f71\u54cd \u533a\u57df \uff0c \u4ee5\u53ca \u5982\u4f55 \u5728 \u8def\u53e3 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u914d\u7f6e \u4e3a \u4e00\u7ec4 \u3002 \u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u4e0b \u4e00\u6b65 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficLight / StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 Details \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 4 . \u5bf9\u4e8e \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6807\u5fd7 \u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece Content Browser \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 trigger volume \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7ea2\u7eff\u706f \u548c \u6807\u5fd7"},{"location":"tuto_M_custom_add_tl/#_1","text":"\u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3001 \u914d\u7f6e \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u7684 \u5f71\u54cd \u533a\u57df \uff0c \u4ee5\u53ca \u5982\u4f55 \u5728 \u8def\u53e3 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u914d\u7f6e \u4e3a \u4e00\u7ec4 \u3002 \u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a\u706f \u548c \u6807\u5fd7"},{"location":"tuto_M_custom_add_tl/#_2","text":"\u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficLight / StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 Details \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 4 . \u5bf9\u4e8e \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002","title":"\u7ea2\u7eff\u706f"},{"location":"tuto_M_custom_add_tl/#_3","text":"\u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece Content Browser \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 trigger volume \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002","title":"\u7ea2\u7eff\u706f \u6807\u5fd7"},{"location":"tuto_M_custom_add_tl/#_4","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_buildings/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51 \u7ed3\u6784 \u7ed3\u6784 \u4fee\u6539 \u4e0b \u4e00\u6b65 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u5141\u8bb8 \u60a8 \u521b\u5efa \u7531 \u4e0d\u540c \u697c\u5c42 \u7ec4\u6210 \u7684 \u77e9\u5f62 \u5efa\u7b51 \u3002 \u6bcf\u4e2a \u7ea7\u522b \u90fd \u662f \u4f7f\u7528 \u53ef \u914d\u7f6e \u7684 \u7f51\u683c \u9635\u5217 \u6216 \u5355\u4e2a \u84dd\u56fe \u6784\u5efa \u7684 \u3002 \u5982\u679c \u4f7f\u7528 \u7f51\u683c \u9635\u5217 \uff0c \u5219 \u6bcf\u4e2a \u7f51\u683c \u5c06 \u6cbf \u5173\u5361 \u968f\u673a \u91cd\u590d \u4ee5 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \u3002 \u7f51\u683c \u4f53 \u521b\u5efa \u4e00\u6b21 \uff0c \u6bcf\u4e2a \u91cd\u590d \u90fd \u5c06 \u662f \u8be5 \u7f51\u683c \u4f53 \u7684 \u4e00\u4e2a \u5b9e\u4f8b \u3002 \u8fd9 \u53ef\u4ee5 \u63d0\u9ad8 \u5730\u56fe \u7684 \u6027\u80fd \u3002 \u5efa\u7b51 \u7ed3\u6784 \u8981 \u5f00\u59cb \u5efa\u9020 \u60a8 \u7684 \u5efa\u7b51 \uff1a \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 BP _ Procedural _ Building \u62d6\u5165 BP _ Procedural _ Building \u573a\u666f \u4e2d \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6240\u6709 \u9009\u9879 \u3002 \u6bcf\u6b21 \u5728 \u6b64\u5904 \u8fdb\u884c \u66f4\u6539 \u65f6 \uff0c \u968f\u7740 \u5173\u952e \u7f51\u683c \u4f53 \u7684 \u66f4\u65b0 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u4ece \u573a\u666f \u89c6\u56fe \u4e2d \u6d88\u5931 \u3002 \u5355\u51fb Create Building \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \uff0c \u6216 \u542f\u7528 \u81ea\u52a8 \u521b\u5efa \u4ee5 \u907f\u514d \u91cd\u590d \u6b64 \u6b65\u9aa4 \u3002 \u5173\u952e \u7f51\u683c \u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ed3\u6784 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b83\u4eec \u5206\u4e3a \u56db\u7c7b \uff1a Base : \u5e95\u5c42 \u3002 Body : \u4e2d\u5c42 \u3002 Top : \u6700\u9ad8 \u9ad8\u5c42 \u6700\u9ad8\u5c42 \u3002 Roof : \u8986\u76d6 \u9876\u5c42 \u7684 \u5c4b\u9876 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u6a21\u578b \uff0c \u9664\u4e86 \u5c4b\u9876 Roof \u4e4b\u5916 \uff0c \u90fd \u6709 \u4e00\u4e2a \u7f51\u683c \u4f53 \u586b\u5145 \u5730\u677f \u7684 \u4e2d\u5fc3 \uff0c \u8fd8\u6709 \u4e00\u4e2a Corner \u7f51\u683c \u4f53\u5c06 \u653e\u7f6e \u5728 \u5730\u677f \u7684 \u4e24\u4fa7 \u3002 \u4e0b\u56fe \u4ee3\u8868 \u4e86 \u5168\u5c40 \u7ed3\u6784 \u3002 \u5efa\u7b51 \u7ed3\u6784 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 Base parameters \u8bbe\u7f6e \u5c3a\u5bf8 \u3002 \u697c\u5c42 \u6570 \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u697c\u5c42 \u6570 \u3002 \u8eab\u4f53 \u7f51\u683c Body \u7684 \u91cd\u590d \u3002 \u957f\u5ea6 X \u548c \u957f\u5ea6 Y \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u957f\u5ea6 \u548c \u5bbd\u5ea6 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6bcf \u4e00\u4fa7 \u7684 \u4e2d\u592e \u7f51\u683c \u91cd\u590d \u3002 BP _ Procedural _ Building \u793a\u4f8b \u3002 \u7ed3\u6784 \u4fee\u6539 \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u9009\u9879 \u53ef\u4ee5 \u4fee\u6539 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u603b\u4f53 \u7ed3\u6784 \u3002 Disable corners : \u5982\u679c \u9009\u62e9 \uff0c \u5c06 \u4e0d \u4f7f\u7528 \u89d2 \u7f51\u683c \u3002 Use full blocks : \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7ed3\u6784 \u6bcf\u5c42 \u5c06 \u4ec5 \u4f7f\u7528 \u4e00\u4e2a \u7f51\u683c \u3002 \u6bcf \u5c42\u697c \u4e0d\u4f1a \u51fa\u73b0 \u4efb\u4f55 \u89d2\u843d \u6216 \u91cd\u590d \u3002 Doors : \u51fa\u73b0 \u5728 \u5e95\u5c42 \u3001 \u4f4d\u4e8e \u4e2d\u592e \u7f51\u683c \u7269\u4f53 \u6b63\u524d \u524d\u65b9 \u6b63\u524d\u65b9 \u7684 \u7f51\u683c \u7269\u4f53 \u3002 \u95e8 \u7684 \u6570\u91cf \u53ca\u5176 \u4f4d\u7f6e \u53ef\u4ee5 \u8bbe\u7f6e \u3002 0 \u662f \u521d\u59cb \u4f4d\u7f6e \u3001 1 \u662f \u4e0b \u4e00\u4e2a \u5e95\u5c42 \u91cd\u590d \u7b49 \u3002 Walls : \u66ff\u4ee3 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e00\u4fa7 \u6216\u591a\u4fa7 \u7684 \u7f51\u683c \u3002 \u4f8b\u5982 \uff0c \u5e73\u9762 \u7f51\u683c \u53ef \u7528\u4e8e \u7ed8\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u4fa7 \u3002 \u5de6\u8fb9 \u662f \u4e00\u5ea7 \u6ca1\u6709 \u89d2 \u3001 \u53ea\u6709 \u4e00\u6247 \u6247\u95e8 \u4e00\u6247\u95e8 \u7684 \u5efa\u7b51 \u3002 \u53f3\u4fa7 \u662f \u4e00\u5ea7 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u5176 \u4e00\u4fa7 \u5e94\u7528 \u4e86 \u5899\u58c1 \u3002 \u5899\u58c1 \u662f \u6ca1\u6709 \u9632\u706b \u901a\u9053 \u7684 \u7eb9\u7406 \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u84dd\u56fe \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u5efa\u7b51"},{"location":"tuto_M_custom_buildings/#_1","text":"\u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51 \u7ed3\u6784 \u7ed3\u6784 \u4fee\u6539 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f\u5316 \u5efa\u7b51"},{"location":"tuto_M_custom_buildings/#_2","text":"\u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u5141\u8bb8 \u60a8 \u521b\u5efa \u7531 \u4e0d\u540c \u697c\u5c42 \u7ec4\u6210 \u7684 \u77e9\u5f62 \u5efa\u7b51 \u3002 \u6bcf\u4e2a \u7ea7\u522b \u90fd \u662f \u4f7f\u7528 \u53ef \u914d\u7f6e \u7684 \u7f51\u683c \u9635\u5217 \u6216 \u5355\u4e2a \u84dd\u56fe \u6784\u5efa \u7684 \u3002 \u5982\u679c \u4f7f\u7528 \u7f51\u683c \u9635\u5217 \uff0c \u5219 \u6bcf\u4e2a \u7f51\u683c \u5c06 \u6cbf \u5173\u5361 \u968f\u673a \u91cd\u590d \u4ee5 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \u3002 \u7f51\u683c \u4f53 \u521b\u5efa \u4e00\u6b21 \uff0c \u6bcf\u4e2a \u91cd\u590d \u90fd \u5c06 \u662f \u8be5 \u7f51\u683c \u4f53 \u7684 \u4e00\u4e2a \u5b9e\u4f8b \u3002 \u8fd9 \u53ef\u4ee5 \u63d0\u9ad8 \u5730\u56fe \u7684 \u6027\u80fd \u3002","title":"\u7a0b\u5e8f\u5316 \u5efa\u7b51"},{"location":"tuto_M_custom_buildings/#_3","text":"\u8981 \u5f00\u59cb \u5efa\u9020 \u60a8 \u7684 \u5efa\u7b51 \uff1a \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 BP _ Procedural _ Building \u62d6\u5165 BP _ Procedural _ Building \u573a\u666f \u4e2d \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6240\u6709 \u9009\u9879 \u3002 \u6bcf\u6b21 \u5728 \u6b64\u5904 \u8fdb\u884c \u66f4\u6539 \u65f6 \uff0c \u968f\u7740 \u5173\u952e \u7f51\u683c \u4f53 \u7684 \u66f4\u65b0 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u4ece \u573a\u666f \u89c6\u56fe \u4e2d \u6d88\u5931 \u3002 \u5355\u51fb Create Building \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \uff0c \u6216 \u542f\u7528 \u81ea\u52a8 \u521b\u5efa \u4ee5 \u907f\u514d \u91cd\u590d \u6b64 \u6b65\u9aa4 \u3002 \u5173\u952e \u7f51\u683c \u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ed3\u6784 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b83\u4eec \u5206\u4e3a \u56db\u7c7b \uff1a Base : \u5e95\u5c42 \u3002 Body : \u4e2d\u5c42 \u3002 Top : \u6700\u9ad8 \u9ad8\u5c42 \u6700\u9ad8\u5c42 \u3002 Roof : \u8986\u76d6 \u9876\u5c42 \u7684 \u5c4b\u9876 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u6a21\u578b \uff0c \u9664\u4e86 \u5c4b\u9876 Roof \u4e4b\u5916 \uff0c \u90fd \u6709 \u4e00\u4e2a \u7f51\u683c \u4f53 \u586b\u5145 \u5730\u677f \u7684 \u4e2d\u5fc3 \uff0c \u8fd8\u6709 \u4e00\u4e2a Corner \u7f51\u683c \u4f53\u5c06 \u653e\u7f6e \u5728 \u5730\u677f \u7684 \u4e24\u4fa7 \u3002 \u4e0b\u56fe \u4ee3\u8868 \u4e86 \u5168\u5c40 \u7ed3\u6784 \u3002 \u5efa\u7b51 \u7ed3\u6784 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 Base parameters \u8bbe\u7f6e \u5c3a\u5bf8 \u3002 \u697c\u5c42 \u6570 \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u697c\u5c42 \u6570 \u3002 \u8eab\u4f53 \u7f51\u683c Body \u7684 \u91cd\u590d \u3002 \u957f\u5ea6 X \u548c \u957f\u5ea6 Y \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u957f\u5ea6 \u548c \u5bbd\u5ea6 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6bcf \u4e00\u4fa7 \u7684 \u4e2d\u592e \u7f51\u683c \u91cd\u590d \u3002 BP _ Procedural _ Building \u793a\u4f8b \u3002","title":"\u5efa\u7b51 \u7ed3\u6784"},{"location":"tuto_M_custom_buildings/#_4","text":"\u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u9009\u9879 \u53ef\u4ee5 \u4fee\u6539 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u603b\u4f53 \u7ed3\u6784 \u3002 Disable corners : \u5982\u679c \u9009\u62e9 \uff0c \u5c06 \u4e0d \u4f7f\u7528 \u89d2 \u7f51\u683c \u3002 Use full blocks : \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7ed3\u6784 \u6bcf\u5c42 \u5c06 \u4ec5 \u4f7f\u7528 \u4e00\u4e2a \u7f51\u683c \u3002 \u6bcf \u5c42\u697c \u4e0d\u4f1a \u51fa\u73b0 \u4efb\u4f55 \u89d2\u843d \u6216 \u91cd\u590d \u3002 Doors : \u51fa\u73b0 \u5728 \u5e95\u5c42 \u3001 \u4f4d\u4e8e \u4e2d\u592e \u7f51\u683c \u7269\u4f53 \u6b63\u524d \u524d\u65b9 \u6b63\u524d\u65b9 \u7684 \u7f51\u683c \u7269\u4f53 \u3002 \u95e8 \u7684 \u6570\u91cf \u53ca\u5176 \u4f4d\u7f6e \u53ef\u4ee5 \u8bbe\u7f6e \u3002 0 \u662f \u521d\u59cb \u4f4d\u7f6e \u3001 1 \u662f \u4e0b \u4e00\u4e2a \u5e95\u5c42 \u91cd\u590d \u7b49 \u3002 Walls : \u66ff\u4ee3 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e00\u4fa7 \u6216\u591a\u4fa7 \u7684 \u7f51\u683c \u3002 \u4f8b\u5982 \uff0c \u5e73\u9762 \u7f51\u683c \u53ef \u7528\u4e8e \u7ed8\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u4fa7 \u3002 \u5de6\u8fb9 \u662f \u4e00\u5ea7 \u6ca1\u6709 \u89d2 \u3001 \u53ea\u6709 \u4e00\u6247 \u6247\u95e8 \u4e00\u6247\u95e8 \u7684 \u5efa\u7b51 \u3002 \u53f3\u4fa7 \u662f \u4e00\u5ea7 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u5176 \u4e00\u4fa7 \u5e94\u7528 \u4e86 \u5899\u58c1 \u3002 \u5899\u58c1 \u662f \u6ca1\u6709 \u9632\u706b \u901a\u9053 \u7684 \u7eb9\u7406 \u3002","title":"\u7ed3\u6784 \u4fee\u6539"},{"location":"tuto_M_custom_buildings/#_5","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u84dd\u56fe \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_layers/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u5229\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u7684 \u7ea7\u522b \u53ef\u4ee5 \u8ba9 \u591a \u4eba \u540c\u65f6 \u5728 \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u60a8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u4f7f\u7528 Python API \u5728 \u5730\u56fe \u4e0a \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff0c \u5c31 \u50cf \u5206\u5c42 \u7684 Carla \u5730\u56fe \u4e00\u6837 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u3001 \u5982\u4f55 \u5411 \u5173\u5361 \u6dfb\u52a0 \u8d44\u6e90 \u4ee5\u53ca \u5982\u4f55 \u5c06 \u5173\u5361 \u914d\u7f6e \u4e3a \u59cb\u7ec8 \u52a0\u8f7d \u6216 \u4e0d \u52a0\u8f7d \u3002 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361 \u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879 \u4e0b \u4e00\u6b65 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u65b0 \u5173\u5361 \u90fd \u5c06 \u5d4c\u5957 \u5728 \u7236 \u5173\u5361 \u4e2d \uff0c \u79f0\u4e3a \u201c \u6301\u4e45 \u5173\u5361 \u201d \u3002 \u8981 \u521b\u5efa \u65b0 \u5173\u5361 \uff1a 1 . \u6253\u5f00 \u5173\u5361 \u9762\u677f \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u4ece \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u6253\u5f00 \u201c \u7a97\u53e3 \u201d \u3002 \u5355\u51fb \u201c \u5173\u5361 \u201d \u3002 2 . \u521b\u5efa \u65b0 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u5355\u51fb \u201c \u5173\u5361 \u201d \u5e76 \u9009\u62e9 \u201c \u65b0\u5efa ...... \u201d \u3002 \u9009\u62e9 \u201c \u7a7a \u5173\u5361 \u201d \u3002 \u5c06 \u5173\u5361 \u4fdd\u5b58 \u5728 Content / Carla / Maps / Sublevels / < map _ name > / \u3002 \u8981 \u5c06 \u5173\u5361 \u4e0e Carla Python API \u96c6\u6210 \uff0c \u8bf7 \u4f7f\u7528 \u547d\u540d \u7ea6\u5b9a < map _ name > _ < layer _ name > \uff0c \u6bd4\u5982 , TutorialMap _ Buildings \u3002 \u6709\u5173 \u53ef\u7528 \u5173\u5361 \u7684 \u5217\u8868 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361 1 . \u9009\u62e9 \u60a8 \u8981 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u7684 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u53cc\u51fb \u8981 \u6dfb\u52a0 \u8d44\u6e90 \u7684 \u201c \u5173\u5361 \u201d \u3002 \u901a\u8fc7 \u5207\u6362 \u9501 \u56fe\u6807 \u786e\u4fdd \u5173\u5361 \u5df2 \u89e3\u9501 \u3002 2 . \u9009\u62e9 \u8981 \u6dfb\u52a0 \u7684 \u8d44\u4ea7 \u3002 \u9009\u62e9 \u60a8 \u60f3\u8981 \u6dfb\u52a0 \u5230 \u5173\u5361 \u7684 \u6240\u6709 \u8d44\u4ea7 \u3002 \u53f3\u952e \u5355\u51fb \u5e76 \u8f6c\u5230 \u201c \u5173\u5361 \u201d \u3002 \u5355\u51fb \u5c06 \u9009\u62e9 \u79fb\u52a8 \u5230 \u5f53\u524d \u5173\u5361 \u3002 3 . \u4fdd\u5b58 \u5173\u5361 \u3002 \u5982\u679c \u67d0\u4e2a \u5173\u5361 \u6709\u5f85 \u4fdd\u5b58 \u7684 \u66f4\u6539 \uff0c \u60a8 \u5c06 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u770b\u5230 \u8be5 \u5173\u5361 \u65c1\u8fb9 \u6709 \u4e00\u4e2a \u94c5\u7b14 \u56fe\u6807 \u3002 \u5355\u51fb \u6b64 \u6309\u94ae \u4fdd\u5b58 \u66f4\u6539 \u3002 \u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879 \u5173\u5361 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u80fd\u591f \u5207\u6362 \u6216 \u59cb\u7ec8 \u52a0\u8f7d \u3002 \u8981 \u914d\u7f6e \u4efb\u4e00 \u9009\u9879 \u7684 \u7ea7\u522b \uff1a \u53f3\u952e \u5355\u51fb \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u7684 \u5173\u5361 \uff0c \u7136\u540e \u8f6c \u5230 \u201c \u4fee\u6539 \u6d41\u9001 \u65b9\u6cd5 \u201d \u3002 \u9009\u62e9 \u6240 \u9700 \u7684 \u8bbe\u7f6e \uff1a \u56fa\u5b9a \u52a0\u8f7d \uff1a \u65e0\u6cd5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u84dd\u56fe : \u53ef\u4ee5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u5173\u5361 \u540d\u79f0 \u65c1\u8fb9 \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u84dd\u70b9 \u3002 \u65e0\u8bba \u8bbe\u7f6e \u5982\u4f55 \uff0c \u60a8 \u4ecd\u7136 \u53ef\u4ee5 \u901a\u8fc7 \u6309 \u773c\u775b \u56fe\u6807 \u6765 \u5207\u6362 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u84dd\u56fe \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 A \u4f7f\u7528 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u8fde\u7eed \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe"},{"location":"tuto_M_custom_layers/#_1","text":"\u5229\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u7684 \u7ea7\u522b \u53ef\u4ee5 \u8ba9 \u591a \u4eba \u540c\u65f6 \u5728 \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u60a8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u4f7f\u7528 Python API \u5728 \u5730\u56fe \u4e0a \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff0c \u5c31 \u50cf \u5206\u5c42 \u7684 Carla \u5730\u56fe \u4e00\u6837 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u3001 \u5982\u4f55 \u5411 \u5173\u5361 \u6dfb\u52a0 \u8d44\u6e90 \u4ee5\u53ca \u5982\u4f55 \u5c06 \u5173\u5361 \u914d\u7f6e \u4e3a \u59cb\u7ec8 \u52a0\u8f7d \u6216 \u4e0d \u52a0\u8f7d \u3002 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361 \u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe"},{"location":"tuto_M_custom_layers/#_2","text":"\u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u65b0 \u5173\u5361 \u90fd \u5c06 \u5d4c\u5957 \u5728 \u7236 \u5173\u5361 \u4e2d \uff0c \u79f0\u4e3a \u201c \u6301\u4e45 \u5173\u5361 \u201d \u3002 \u8981 \u521b\u5efa \u65b0 \u5173\u5361 \uff1a 1 . \u6253\u5f00 \u5173\u5361 \u9762\u677f \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u4ece \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u6253\u5f00 \u201c \u7a97\u53e3 \u201d \u3002 \u5355\u51fb \u201c \u5173\u5361 \u201d \u3002 2 . \u521b\u5efa \u65b0 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u5355\u51fb \u201c \u5173\u5361 \u201d \u5e76 \u9009\u62e9 \u201c \u65b0\u5efa ...... \u201d \u3002 \u9009\u62e9 \u201c \u7a7a \u5173\u5361 \u201d \u3002 \u5c06 \u5173\u5361 \u4fdd\u5b58 \u5728 Content / Carla / Maps / Sublevels / < map _ name > / \u3002 \u8981 \u5c06 \u5173\u5361 \u4e0e Carla Python API \u96c6\u6210 \uff0c \u8bf7 \u4f7f\u7528 \u547d\u540d \u7ea6\u5b9a < map _ name > _ < layer _ name > \uff0c \u6bd4\u5982 , TutorialMap _ Buildings \u3002 \u6709\u5173 \u53ef\u7528 \u5173\u5361 \u7684 \u5217\u8868 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002","title":"\u6dfb\u52a0 \u65b0 \u5173\u5361"},{"location":"tuto_M_custom_layers/#_3","text":"1 . \u9009\u62e9 \u60a8 \u8981 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u7684 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u53cc\u51fb \u8981 \u6dfb\u52a0 \u8d44\u6e90 \u7684 \u201c \u5173\u5361 \u201d \u3002 \u901a\u8fc7 \u5207\u6362 \u9501 \u56fe\u6807 \u786e\u4fdd \u5173\u5361 \u5df2 \u89e3\u9501 \u3002 2 . \u9009\u62e9 \u8981 \u6dfb\u52a0 \u7684 \u8d44\u4ea7 \u3002 \u9009\u62e9 \u60a8 \u60f3\u8981 \u6dfb\u52a0 \u5230 \u5173\u5361 \u7684 \u6240\u6709 \u8d44\u4ea7 \u3002 \u53f3\u952e \u5355\u51fb \u5e76 \u8f6c\u5230 \u201c \u5173\u5361 \u201d \u3002 \u5355\u51fb \u5c06 \u9009\u62e9 \u79fb\u52a8 \u5230 \u5f53\u524d \u5173\u5361 \u3002 3 . \u4fdd\u5b58 \u5173\u5361 \u3002 \u5982\u679c \u67d0\u4e2a \u5173\u5361 \u6709\u5f85 \u4fdd\u5b58 \u7684 \u66f4\u6539 \uff0c \u60a8 \u5c06 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u770b\u5230 \u8be5 \u5173\u5361 \u65c1\u8fb9 \u6709 \u4e00\u4e2a \u94c5\u7b14 \u56fe\u6807 \u3002 \u5355\u51fb \u6b64 \u6309\u94ae \u4fdd\u5b58 \u66f4\u6539 \u3002","title":"\u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361"},{"location":"tuto_M_custom_layers/#_4","text":"\u5173\u5361 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u80fd\u591f \u5207\u6362 \u6216 \u59cb\u7ec8 \u52a0\u8f7d \u3002 \u8981 \u914d\u7f6e \u4efb\u4e00 \u9009\u9879 \u7684 \u7ea7\u522b \uff1a \u53f3\u952e \u5355\u51fb \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u7684 \u5173\u5361 \uff0c \u7136\u540e \u8f6c \u5230 \u201c \u4fee\u6539 \u6d41\u9001 \u65b9\u6cd5 \u201d \u3002 \u9009\u62e9 \u6240 \u9700 \u7684 \u8bbe\u7f6e \uff1a \u56fa\u5b9a \u52a0\u8f7d \uff1a \u65e0\u6cd5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u84dd\u56fe : \u53ef\u4ee5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u5173\u5361 \u540d\u79f0 \u65c1\u8fb9 \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u84dd\u70b9 \u3002 \u65e0\u8bba \u8bbe\u7f6e \u5982\u4f55 \uff0c \u60a8 \u4ecd\u7136 \u53ef\u4ee5 \u901a\u8fc7 \u6309 \u773c\u775b \u56fe\u6807 \u6765 \u5207\u6362 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u84dd\u56fe \u3002","title":"\u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879"},{"location":"tuto_M_custom_layers/#_5","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 A \u4f7f\u7528 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u8fde\u7eed \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_map_overview/","text":"\u6dfb\u52a0 \u65b0 \u5730\u56fe Carla \u7684 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u4f7f\u7528 \u5b83\u4eec \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u5728 Carla \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u65b9\u6cd5 \u6709 \u591a\u79cd \u3002 \u8981 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \u7248\u672c \u8fd8\u662f \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u542f\u52a8 \u8be5 \u6d41\u7a0b \u6240 \u9700 \u7684 \u5185\u5bb9 \u3001 \u53ef \u7528\u4e8e \u5bfc\u5165 \u7684 \u4e0d\u540c \u9009\u9879 \u4ee5\u53ca \u53ef\u7528 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u884c\u4eba \u5bfc\u822a \u5de5\u5177 \u3002 \u6982\u8ff0 \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6982\u8ff0 \u5728 Carla \u4e2d \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6d89\u53ca \u56db\u4e2a \u4e3b\u8981 \u8fc7\u7a0b \uff1a \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u884c\u4eba \u5bfc\u822a \u8bf7 \u7ee7\u7eed \u9605\u8bfb \uff0c \u4e86\u89e3 \u6709\u5173 \u6bcf\u4e2a \u6d41\u7a0b \u7684 \u5176\u4ed6 \u4e00\u822c \u4fe1\u606f \u3002 \u751f\u6210 Carla \u9700\u8981 . fbx \u683c\u5f0f \u7684 \u5730\u56fe \u51e0\u4f55 \u4fe1\u606f \u548c . xodr \u683c\u5f0f \u7684 OpenDRIVE \u4fe1\u606f \u3002 \u76ee\u524d \u63a8\u8350 \u7684 \u751f\u6210 \u8fd9\u4e9b \u6587\u4ef6 \u7684 \u8f6f\u4ef6 \u662f RoadRunner \u3002 \u672c \u6307\u5357 \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 RoadRunner \u751f\u6210 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u3002 \u5bfc\u5165 \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \uff0c \u60a8 \u5c06 \u4f7f\u7528 Docker \u5bfc\u5165 \u5730\u56fe \u3002 \u6b64 \u9009\u9879 \u4ec5 \u5728 Linux \u4e2d \u53ef\u7528 \uff0c \u5e76\u4e14 \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7248\u672c \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u79cd \u65b9\u6cd5 \u5bfc\u5165 \u5730\u56fe \uff1a \u4f7f\u7528 \u81ea\u52a8 make import \u6d41\u7a0b \uff08 \u63a8\u8350 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4f7f\u7528 RoadRunner \u63d2\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u624b\u52a8 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4ee5\u4e0b \u89c6\u9891 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u4e00\u4e9b \u53ef\u7528 \u65b9\u6cd5 \uff1a \u5b9a\u5236 \u9664\u4e86 \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u51c6\u5907 \u6dfb\u52a0 \u5230 \u666f\u89c2 \u4e2d \u7684 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u60a8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u6dfb\u52a0 \u5b50 \u5173\u5361 \uff1a \u5b50 \u5173\u5361 \u5c06 \u5141\u8bb8 \u591a\u4eba \u540c\u65f6 \u5728 \u540c \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83\u4eec \u8fd8 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Python API \u5207\u6362 \u5730\u56fe \u7684 \u56fe\u5c42 \uff0c \u5c31 \u50cf Carla \u5206\u5c42 \u5730\u56fe \u4e00\u6837 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \uff1a \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u9884\u8bbe \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u7ec4\u5408 \u540e \uff0c \u4e3a \u60a8 \u7684 \u5730\u56fe \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u586b\u5145 \u666f\u89c2 \uff1a \u4f7f\u7528 \u84dd\u56fe \u901a\u8fc7 \u91cd\u590d \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u548c \u5899\u58c1 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u7ed8\u5236 \u9053\u8def \uff1a \u4f7f\u7528 \u6df7\u5408 \u4e0d\u540c \u7eb9\u7406 \u7684 \u4e3b \u6750\u8d28 \u7ed8\u5236 \u9053\u8def \u3002 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \uff0c \u4f8b\u5982 \u843d\u53f6 \u3001 \u88c2\u7f1d \u6216 \u6c99\u4e95 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u84dd\u56fe \u6dfb\u52a0 \u5177\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5c3a\u5bf8 \u3001 \u697c\u5c42 \u6570\u91cf \u548c \u53ef\u53d8 \u7f51\u683c \u7ec4\u5408 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff1a \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u5e76 \u914d\u7f6e \u5176 \u5f71\u54cd \u533a\u57df \u3002 \u8def\u53e3 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7ec4 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e3a\u4e86 \u751f\u6210 \u884c\u4eba \u5e76 \u5728 \u5730\u56fe \u4e0a \u5bfc\u822a \uff0c \u60a8 \u9700\u8981 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u5de5\u5177 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u884c\u4eba \u5bfc\u822a \u5e94 \u5728 \u5b8c\u6210 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u540e \u751f\u6210 \uff0c \u4ee5\u4fbf \u4e0d\u4f1a \u5728 \u5bfc\u822a \u8def\u5f84 \u4e0a\u65b9 \u521b\u5efa \u969c\u788d \u969c\u788d\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u5bf9 \u4e0a\u8ff0 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"Carla \u4e2d \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6982\u8ff0"},{"location":"tuto_M_custom_map_overview/#_1","text":"Carla \u7684 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u4f7f\u7528 \u5b83\u4eec \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u5728 Carla \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u65b9\u6cd5 \u6709 \u591a\u79cd \u3002 \u8981 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \u7248\u672c \u8fd8\u662f \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u542f\u52a8 \u8be5 \u6d41\u7a0b \u6240 \u9700 \u7684 \u5185\u5bb9 \u3001 \u53ef \u7528\u4e8e \u5bfc\u5165 \u7684 \u4e0d\u540c \u9009\u9879 \u4ee5\u53ca \u53ef\u7528 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u884c\u4eba \u5bfc\u822a \u5de5\u5177 \u3002 \u6982\u8ff0 \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u751f\u6210 \u884c\u4eba \u5bfc\u822a","title":"\u6dfb\u52a0 \u65b0 \u5730\u56fe"},{"location":"tuto_M_custom_map_overview/#_2","text":"\u5728 Carla \u4e2d \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6d89\u53ca \u56db\u4e2a \u4e3b\u8981 \u8fc7\u7a0b \uff1a \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u884c\u4eba \u5bfc\u822a \u8bf7 \u7ee7\u7eed \u9605\u8bfb \uff0c \u4e86\u89e3 \u6709\u5173 \u6bcf\u4e2a \u6d41\u7a0b \u7684 \u5176\u4ed6 \u4e00\u822c \u4fe1\u606f \u3002","title":"\u6982\u8ff0"},{"location":"tuto_M_custom_map_overview/#_3","text":"Carla \u9700\u8981 . fbx \u683c\u5f0f \u7684 \u5730\u56fe \u51e0\u4f55 \u4fe1\u606f \u548c . xodr \u683c\u5f0f \u7684 OpenDRIVE \u4fe1\u606f \u3002 \u76ee\u524d \u63a8\u8350 \u7684 \u751f\u6210 \u8fd9\u4e9b \u6587\u4ef6 \u7684 \u8f6f\u4ef6 \u662f RoadRunner \u3002 \u672c \u6307\u5357 \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 RoadRunner \u751f\u6210 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u3002","title":"\u751f\u6210"},{"location":"tuto_M_custom_map_overview/#_4","text":"\u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \uff0c \u60a8 \u5c06 \u4f7f\u7528 Docker \u5bfc\u5165 \u5730\u56fe \u3002 \u6b64 \u9009\u9879 \u4ec5 \u5728 Linux \u4e2d \u53ef\u7528 \uff0c \u5e76\u4e14 \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7248\u672c \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u79cd \u65b9\u6cd5 \u5bfc\u5165 \u5730\u56fe \uff1a \u4f7f\u7528 \u81ea\u52a8 make import \u6d41\u7a0b \uff08 \u63a8\u8350 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4f7f\u7528 RoadRunner \u63d2\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u624b\u52a8 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4ee5\u4e0b \u89c6\u9891 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u4e00\u4e9b \u53ef\u7528 \u65b9\u6cd5 \uff1a","title":"\u5bfc\u5165"},{"location":"tuto_M_custom_map_overview/#_5","text":"\u9664\u4e86 \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u51c6\u5907 \u6dfb\u52a0 \u5230 \u666f\u89c2 \u4e2d \u7684 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u60a8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u6dfb\u52a0 \u5b50 \u5173\u5361 \uff1a \u5b50 \u5173\u5361 \u5c06 \u5141\u8bb8 \u591a\u4eba \u540c\u65f6 \u5728 \u540c \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83\u4eec \u8fd8 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Python API \u5207\u6362 \u5730\u56fe \u7684 \u56fe\u5c42 \uff0c \u5c31 \u50cf Carla \u5206\u5c42 \u5730\u56fe \u4e00\u6837 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \uff1a \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u9884\u8bbe \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u7ec4\u5408 \u540e \uff0c \u4e3a \u60a8 \u7684 \u5730\u56fe \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u586b\u5145 \u666f\u89c2 \uff1a \u4f7f\u7528 \u84dd\u56fe \u901a\u8fc7 \u91cd\u590d \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u548c \u5899\u58c1 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u7ed8\u5236 \u9053\u8def \uff1a \u4f7f\u7528 \u6df7\u5408 \u4e0d\u540c \u7eb9\u7406 \u7684 \u4e3b \u6750\u8d28 \u7ed8\u5236 \u9053\u8def \u3002 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \uff0c \u4f8b\u5982 \u843d\u53f6 \u3001 \u88c2\u7f1d \u6216 \u6c99\u4e95 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u84dd\u56fe \u6dfb\u52a0 \u5177\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5c3a\u5bf8 \u3001 \u697c\u5c42 \u6570\u91cf \u548c \u53ef\u53d8 \u7f51\u683c \u7ec4\u5408 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff1a \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u5e76 \u914d\u7f6e \u5176 \u5f71\u54cd \u533a\u57df \u3002 \u8def\u53e3 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7ec4 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002","title":"\u5b9a\u5236"},{"location":"tuto_M_custom_map_overview/#_6","text":"\u4e3a\u4e86 \u751f\u6210 \u884c\u4eba \u5e76 \u5728 \u5730\u56fe \u4e0a \u5bfc\u822a \uff0c \u60a8 \u9700\u8981 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u5de5\u5177 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u884c\u4eba \u5bfc\u822a \u5e94 \u5728 \u5b8c\u6210 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u540e \u751f\u6210 \uff0c \u4ee5\u4fbf \u4e0d\u4f1a \u5728 \u5bfc\u822a \u8def\u5f84 \u4e0a\u65b9 \u521b\u5efa \u969c\u788d \u969c\u788d\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u5bf9 \u4e0a\u8ff0 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_custom_road_painter/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u4ec0\u4e48 \u662f \u9053\u8def \u7ed8\u5236 \u5de5\u5177 \uff0c \u5982\u4f55 \u4f7f\u7528 \u5b83 \u901a\u8fc7 \u7ec4\u5408 \u4e0d\u540c \u7684 \u7eb9\u7406 \u6765\u81ea \u5b9a\u4e49 \u9053\u8def \u7684 \u5916\u89c2 \uff0c \u5982\u4f55 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u6839\u636e \u9053\u8def \u7eb9\u7406 \u66f4\u65b0 \u8f66\u9053 \u6807\u8bb0 \u7684 \u5916\u89c2 \u3002 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807 \u51c6\u5907 \u4e3b \u6750\u8d28 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \u4e0b \u4e00\u6b65 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u9053\u8def \u6cb9\u6f06 \u6f06\u5de5 \u6cb9\u6f06\u5de5 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807 1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign / RoadPainterAssets \u3002 \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 Map Size ( Cm ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 Details \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 Map Size ( Cm ) \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 Details \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u5230 Paint - > Render Target \u3002 \u51c6\u5907 \u4e3b \u6750\u8d28 \u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \uff0c \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u6599 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u6599 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO Intensity \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game / Carla / Static / GenericMaterials / Asphalt / Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002 \u63cf\u7ed8 \u9053\u8def 1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u5e94\u7528 Tutorial _ RoadMaster \u5230 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 Tutorial _ RoadMaster \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u6cb9\u753b \u753b\u5bb6 \u6cb9\u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 \u5728 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 Brush panel . Different types of brushes . 4 . \u5c06 \u6bcf\u79cd \u6750\u6599 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 Details \u9762\u677f \u7684 Default \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u6599 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content / Carla / Static / Decals \u548c Content / Carla / Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c \u751f\u6210 \u5b83\u4eec Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u9053\u8def \u6807\u8bb0 \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u90e8\u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6"},{"location":"tuto_M_custom_road_painter/#_1","text":"\u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u4ec0\u4e48 \u662f \u9053\u8def \u7ed8\u5236 \u5de5\u5177 \uff0c \u5982\u4f55 \u4f7f\u7528 \u5b83 \u901a\u8fc7 \u7ec4\u5408 \u4e0d\u540c \u7684 \u7eb9\u7406 \u6765\u81ea \u5b9a\u4e49 \u9053\u8def \u7684 \u5916\u89c2 \uff0c \u5982\u4f55 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u6839\u636e \u9053\u8def \u7eb9\u7406 \u66f4\u65b0 \u8f66\u9053 \u6807\u8bb0 \u7684 \u5916\u89c2 \u3002 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807 \u51c6\u5907 \u4e3b \u6750\u8d28 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6"},{"location":"tuto_M_custom_road_painter/#_2","text":"\u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002","title":"\u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f"},{"location":"tuto_M_custom_road_painter/#_3","text":"\u9053\u8def \u6cb9\u6f06 \u6f06\u5de5 \u6cb9\u6f06\u5de5 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_custom_road_painter/#_4","text":"1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign / RoadPainterAssets \u3002 \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 Map Size ( Cm ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 Details \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 Map Size ( Cm ) \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 Details \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u5230 Paint - > Render Target \u3002","title":"\u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807"},{"location":"tuto_M_custom_road_painter/#_5","text":"\u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \uff0c \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u6599 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u6599 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO Intensity \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game / Carla / Static / GenericMaterials / Asphalt / Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002","title":"\u51c6\u5907 \u4e3b \u6750\u8d28"},{"location":"tuto_M_custom_road_painter/#_6","text":"1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u5e94\u7528 Tutorial _ RoadMaster \u5230 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 Tutorial _ RoadMaster \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u6cb9\u753b \u753b\u5bb6 \u6cb9\u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 \u5728 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 Brush panel . Different types of brushes . 4 . \u5c06 \u6bcf\u79cd \u6750\u6599 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 Details \u9762\u677f \u7684 Default \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u6599 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content / Carla / Static / Decals \u548c Content / Carla / Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c \u751f\u6210 \u5b83\u4eec Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002","title":"\u63cf\u7ed8 \u9053\u8def"},{"location":"tuto_M_custom_road_painter/#_7","text":"\u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u9053\u8def \u6807\u8bb0 \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u90e8\u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002","title":"\u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2"},{"location":"tuto_M_custom_road_painter/#_8","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_weather_landscape/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 Carla \u63d0\u4f9b \u4e86 \u591a\u4e2a \u84dd\u56fe \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u8f7b\u677e \u521b\u5efa \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u8bbe\u7f6e \uff0c \u5e76 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u7b49 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u6bcf\u4e2a \u84dd\u56fe \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u548c \u914d\u7f6e \u5b83\u4eec \u3002 \u5929\u6c14 \u5b9a\u5236 BP _ Sky BP _ Weather \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c BP _ RepSpline BP _ Spline BP _ Wall BP _ SplinePoweLine \u4e0b \u4e00\u6b65 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u5929\u6c14 \u5b9a\u5236 \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u4e4b\u524d \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u4ee5\u53ca \u5728 \u5bf9 \u8bbe\u7f6e \u611f\u5230 \u6ee1\u610f \u540e \u5982\u4f55 \u4e3a \u5730\u56fe \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002 BP _ Sky \u84dd\u56fe BP _ Sky \u5bf9\u4e8e \u4e3a \u5730\u56fe \u5e26\u6765 \u5149\u7ebf \u548c \u5929\u6c14 \u662f \u5fc5\u8981 \u7684 \u3002 \u5728 \u51b3\u5b9a \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u4e4b\u524d \uff0c \u5b83 \u8fd8 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u914d\u7f6e \u3002 BP _ Sky \u84dd\u56fe \u53ef\u80fd \u5df2\u7ecf \u52a0\u8f7d \u5230 \u60a8 \u7684 \u5730\u56fe \u4e2d \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 Content / Carla / Blueprints / Weather \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d\u6765 \u6dfb\u52a0 \u5b83 \u3002 \u8981 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u8bf7 \u8f6c\u5230 BP _ Sky \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 Details \u9762\u677f \uff0c \u7136\u540e \u4f7f\u7528 Parameters \u90e8\u5206 \u4e2d \u7684 \u503c \u3002 \u91cd\u8981 \u5982\u679c \u573a\u666f \u4e2d \u52a0\u8f7d \u4e86 \u591a\u4e2a BP _ Sky \u84dd\u56fe \uff0c \u5929\u6c14 \u5c06\u4f1a \u91cd\u590d \uff0c \u4ece\u800c \u4ea7\u751f \u4e0d\u826f \u7ed3\u679c \uff0c \u4f8b\u5982 \uff0c \u6709 \u4e24\u4e2a \u592a\u9633 \u3002 BP _ Weather \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u5728 BP _ Weather \u84dd\u56fe \u4e2d \u5b9a\u4e49 \u3002 \u6b64 \u84dd\u56fe \u5141\u8bb8 \u60a8 \u8bbe\u7f6e \u4e0e \u901a\u8fc7 Python API \u63d0\u4f9b \u7684 \u53c2\u6570 \u76f8\u540c \u7684 \u53c2\u6570 \u3002 \u6b64\u5904 \u63cf\u8ff0 \u4e86 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u8981 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \uff1a 1 . \u6253\u5f00 BP _ Weather \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / Weather \u5e76 \u53cc\u51fb BP _ Weather \u3002 2 . \u6dfb\u52a0 \u60a8 \u7684 \u57ce\u9547 \u3002 \u5728 BP _ Weather \u7a97\u53e3 \u7684 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Weather \u90e8\u5206 \u5e76 \u5c06 \u60a8 \u7684 \u57ce\u9547 \u6dfb\u52a0 \u5230 Default Weathers \u6570\u7ec4 \u4e2d \u3002 3 . \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u5929\u6c14 \u53c2\u6570 \uff0c \u8bbe\u7f6e \u60a8 \u60f3\u8981 \u7684 \u503c \u3002 \u5b8c\u6210 \u540e \uff0c \u6309 Compile \uff0c \u7136\u540e \u6309 Save \u5e76 \u5173\u95ed \u3002 \u5305\u542b \u6bcf\u4e2a Carla \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u7684 \u6570\u7ec4 \u3002 Town01 \u6253\u5f00 \u3002 \u6dfb\u52a0 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u6709 \u56db\u79cd \u84dd\u56fe \u53ef \u7528\u4e8e \u6dfb\u52a0 \u6cbf \u4e00\u4e2a \u65b9\u5411 \u5bf9\u9f50 \u7684 \u9053\u5177 \uff0c \u4f8b\u5982 \u5899\u58c1 \u3001 \u7535\u7ebf \u3001 \u8def\u706f \u3002 \u8fd9\u4e9b \u84dd\u56fe \u4f7f\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6cbf \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5206\u5e03 \u7684 \u7f51\u683c \u3002 \u6bcf \u4e00\u4e2a \u90fd \u4ee5 \u76f8\u540c \u7684 \u65b9\u5f0f \u521d\u59cb \u521d\u59cb\u5316 \uff1a 1 . \u521d\u59cb \u521d\u59cb\u5316 \u5e8f\u5217 \u3002 \u5c06 \u84dd\u56fe \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 \u60a8 \u5c06 \u770b\u5230 \u4e00\u4e2a \u5143\u7d20 \u4f4d\u4e8e \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u7684 \u8d77\u70b9 \uff0c \u5e76 \u6709 \u4e24\u4e2a \u8282\u70b9 \u6807\u8bb0 \u5f00\u59cb \u548c \u7ed3\u675f \u3002 2 . \u5b9a\u4e49 \u8def\u5f84 \u3002 \u9009\u62e9 \u5143\u7d20 \u7684 \u65b9\u5411 \u7bad\u5934 \u65b9\u5411\u7bad\u5934 \uff0c \u7136\u540e \u6309 Alt \u952e \uff0c \u540c\u65f6 \u5c06 \u5143\u7d20 \u5411 \u60a8 \u60f3\u8981 \u79fb\u52a8 \u7684 \u65b9\u5411 \u62d6\u52a8 \u3002 \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u53ef \u7528\u4e8e \u5b9a\u4e49 \u66f2\u7ebf \u7684 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 \u62d6\u52a8 \u65f6 \uff0c \u66f2\u7ebf \u7684 \u6bcf\u4e2a \u8282\u70b9 \u4e0a \u6216 \u6bcf\u6b21 Alt \u62d6\u52a8 \u65f6 \u6309 \u4e0b \u65f6 \u90fd \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u65b0 \u7f51\u683c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u84dd\u56fe \u3002 3 . \u5b9a\u5236 \u56fe\u6848 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63cf\u8ff0 \u6bcf\u4e2a \u84dd\u56fe \u53ef\u7528 \u7684 \u4e0d\u540c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u53c2\u6570 \u3002 BP _ RepSpline \u84dd\u56fe BP _ RepSpline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u7528\u4e8e \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u5355\u4e2a \u5143\u7d20 \u3002 \u5e8f\u5217 \u5e8f\u5217\u5316 \u662f \u901a\u8fc7 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \uff1a Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Offset rotation \u2014 \u4e3a \u4e0d\u540c \u8f74 \u8bbe\u7f6e \u56fa\u5b9a \u65cb\u8f6c \u3002 Random rotation \u2014 \u8bbe\u7f6e \u4e0d\u540c \u8f74 \u7684 \u968f\u673a \u65cb\u8f6c \u8303\u56f4 \u3002 Offset translation \u2014 \u8bbe\u7f6e \u6cbf \u4e0d\u540c \u8f74 \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u968f\u673a \u4f4d\u7f6e \u3002 Max Number of Meshes \u2014 \u8bbe\u7f6e \u5c06 \u653e\u7f6e \u5728 \u66f2\u7ebf \u8282\u70b9 \u4e4b\u95f4 \u7684 \u5143\u7d20 \u7684 \u6700\u5927 \u6570\u91cf \u3002 World aligned ZY \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 EndPoint \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5c06 \u5728 \u66f2\u7ebf \u7684 \u7ec8\u70b9 \u8282\u70b9 \u6dfb\u52a0 \u4e00\u4e2a \u5143\u7d20 \u3002 Collision enabled \u2014 \u8bbe\u7f6e \u4e3a \u7f51\u683c \u542f\u7528 \u7684 \u78b0\u649e \u7c7b\u578b \u3002 BP _ RepSpline \u793a\u4f8b \u3002 BP _ Spline \u84dd\u56fe BP _ Spline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6dfb\u52a0 \u4e25\u683c \u9075\u5faa \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u7684 \u8fde\u63a5 \u5143\u7d20 \u3002 \u7f51\u683c \u5c06 \u626d\u66f2 \u4ee5 \u9002\u5e94 \u521b\u5efa \u7684 \u8def\u5f84 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u84dd\u56fe \uff1a Gap distance \u2014 \u5728 \u5143\u7d20 \u4e4b\u95f4 \u6dfb\u52a0 \u95f4\u9694 \u3002 BP _ Spline example . BP _ Wall \u84dd\u56fe BP _ Wall \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u8fde\u63a5 \u7684 \u5143\u7d20 \u3002 \u7f51\u683c \u4e0d\u4f1a \u626d\u66f2 \u4ee5 \u9002\u5e94 \u66f2\u7ebf \uff0c \u4f46\u4f1a \u8003\u8651 \u8282\u70b9 \u3002 Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Vertically aligned \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 Scale offset \u2014 \u7f29\u653e \u7f51\u683c \u7684 \u957f\u5ea6 \u4ee5 \u5b8c\u5584 \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8fde\u63a5 \u3002 BP _ Wall \u5b9e\u4f8b \u3002 BP _ SplinePoweLine BP _ SplinePoweLine \u84dd\u56fe \u53ef \u5728 Carla / Static / Pole / PoweLine \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u7535\u7ebf \u7535\u7ebf\u6746 ( electricity poles ) \uff0c \u5e76 \u5c06 \u5b83\u4eec \u4e0e \u7535\u7ebf \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 \u3002 \u4e3a\u4e86 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \uff0c \u60a8 \u53ef\u4ee5 \u4e3a \u84dd\u56fe \u63d0\u4f9b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7535\u529b \u7535\u529b\u7ebf \u7f51\u683c \u6765 \u586b\u5145 \u8def\u5f84 \u3002 \u53bb \u505a \u8fd9\u4e2a \uff1a \u5728 Content Browser \u4e2d \u53cc\u51fb BP _ SplinePoweLine \u84dd\u56fe \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u5c55\u5f00 Array Meshes \u5e76 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u6dfb\u52a0 \u6216 \u66f4\u6539 \u5b83 \u3002 \u70b9\u51fb Compile \uff0c \u7136\u540e \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 BP _ SplinePowerLine example . \u8981 \u6539\u53d8 \u7535\u6e90 \u7535\u6e90\u7ebf \u7684 \u7ebf \u5f20\u529b \uff1a \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u573a\u666f \u4e2d \u9009\u62e9 \u84dd\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u8f6c \u5230 Details \u9762\u677f \u3002 \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u8c03\u6574 \u5f20\u529b Tension \u4e2d \u7684 \u503c \u3002 0 \u8868\u793a \u7ebf\u6761 \u5c06 \u662f \u76f4 \u7684 \u3002 \u589e\u52a0 \u7535\u7ebf \u6570\u91cf \uff1a \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb \u5176\u4e2d \u4e00\u4e2a \u6746 \u7f51\u683c \u3002 \u8f6c \u5230 Socket Manager \u9762\u677f \u3002 \u914d\u7f6e \u73b0\u6709 \u5957 \u63a5\u5b57 \u6216 \u901a\u8fc7 \u5355\u51fb Create Socket \u6dfb\u52a0 \u65b0\u5957 \u63a5\u5b57 \u3002 \u63d2\u5ea7 \u662f \u4ee3\u8868 \u7535\u6e90 \u7535\u6e90\u7ebf \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u7684 \u7a7a \u7f51\u683c \u3002 \u5728 \u4e24\u6781 \u4e4b\u95f4 \u4ece \u63d2\u5ea7 \u5230 \u63d2\u5ea7 \u521b\u5efa \u7535\u7ebf \u3002 BP _ SplinePowerLine \u5957 \u63a5\u5b57 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u91cd\u8981 \u5404\u6781 \u4e4b\u95f4 \u7684 \u63d2\u5ea7 \u6570\u91cf \u53ca \u540d\u79f0 \u5e94 \u4e00\u81f4 \u3002 \u5426\u5219 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u53ef\u89c6 \u53ef\u89c6\u5316 \u95ee\u9898 \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2"},{"location":"tuto_M_custom_weather_landscape/#_1","text":"Carla \u63d0\u4f9b \u4e86 \u591a\u4e2a \u84dd\u56fe \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u8f7b\u677e \u521b\u5efa \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u8bbe\u7f6e \uff0c \u5e76 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u7b49 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u6bcf\u4e2a \u84dd\u56fe \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u548c \u914d\u7f6e \u5b83\u4eec \u3002 \u5929\u6c14 \u5b9a\u5236 BP _ Sky BP _ Weather \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c BP _ RepSpline BP _ Spline BP _ Wall BP _ SplinePoweLine \u4e0b \u4e00\u6b65 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2"},{"location":"tuto_M_custom_weather_landscape/#_2","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u4e4b\u524d \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u4ee5\u53ca \u5728 \u5bf9 \u8bbe\u7f6e \u611f\u5230 \u6ee1\u610f \u540e \u5982\u4f55 \u4e3a \u5730\u56fe \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002","title":"\u5929\u6c14 \u5b9a\u5236"},{"location":"tuto_M_custom_weather_landscape/#bp_sky","text":"\u84dd\u56fe BP _ Sky \u5bf9\u4e8e \u4e3a \u5730\u56fe \u5e26\u6765 \u5149\u7ebf \u548c \u5929\u6c14 \u662f \u5fc5\u8981 \u7684 \u3002 \u5728 \u51b3\u5b9a \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u4e4b\u524d \uff0c \u5b83 \u8fd8 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u914d\u7f6e \u3002 BP _ Sky \u84dd\u56fe \u53ef\u80fd \u5df2\u7ecf \u52a0\u8f7d \u5230 \u60a8 \u7684 \u5730\u56fe \u4e2d \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 Content / Carla / Blueprints / Weather \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d\u6765 \u6dfb\u52a0 \u5b83 \u3002 \u8981 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u8bf7 \u8f6c\u5230 BP _ Sky \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 Details \u9762\u677f \uff0c \u7136\u540e \u4f7f\u7528 Parameters \u90e8\u5206 \u4e2d \u7684 \u503c \u3002 \u91cd\u8981 \u5982\u679c \u573a\u666f \u4e2d \u52a0\u8f7d \u4e86 \u591a\u4e2a BP _ Sky \u84dd\u56fe \uff0c \u5929\u6c14 \u5c06\u4f1a \u91cd\u590d \uff0c \u4ece\u800c \u4ea7\u751f \u4e0d\u826f \u7ed3\u679c \uff0c \u4f8b\u5982 \uff0c \u6709 \u4e24\u4e2a \u592a\u9633 \u3002","title":"BP _ Sky"},{"location":"tuto_M_custom_weather_landscape/#bp_weather","text":"\u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u5728 BP _ Weather \u84dd\u56fe \u4e2d \u5b9a\u4e49 \u3002 \u6b64 \u84dd\u56fe \u5141\u8bb8 \u60a8 \u8bbe\u7f6e \u4e0e \u901a\u8fc7 Python API \u63d0\u4f9b \u7684 \u53c2\u6570 \u76f8\u540c \u7684 \u53c2\u6570 \u3002 \u6b64\u5904 \u63cf\u8ff0 \u4e86 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u8981 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \uff1a 1 . \u6253\u5f00 BP _ Weather \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / Weather \u5e76 \u53cc\u51fb BP _ Weather \u3002 2 . \u6dfb\u52a0 \u60a8 \u7684 \u57ce\u9547 \u3002 \u5728 BP _ Weather \u7a97\u53e3 \u7684 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Weather \u90e8\u5206 \u5e76 \u5c06 \u60a8 \u7684 \u57ce\u9547 \u6dfb\u52a0 \u5230 Default Weathers \u6570\u7ec4 \u4e2d \u3002 3 . \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u5929\u6c14 \u53c2\u6570 \uff0c \u8bbe\u7f6e \u60a8 \u60f3\u8981 \u7684 \u503c \u3002 \u5b8c\u6210 \u540e \uff0c \u6309 Compile \uff0c \u7136\u540e \u6309 Save \u5e76 \u5173\u95ed \u3002 \u5305\u542b \u6bcf\u4e2a Carla \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u7684 \u6570\u7ec4 \u3002 Town01 \u6253\u5f00 \u3002","title":"BP _ Weather"},{"location":"tuto_M_custom_weather_landscape/#_3","text":"\u6709 \u56db\u79cd \u84dd\u56fe \u53ef \u7528\u4e8e \u6dfb\u52a0 \u6cbf \u4e00\u4e2a \u65b9\u5411 \u5bf9\u9f50 \u7684 \u9053\u5177 \uff0c \u4f8b\u5982 \u5899\u58c1 \u3001 \u7535\u7ebf \u3001 \u8def\u706f \u3002 \u8fd9\u4e9b \u84dd\u56fe \u4f7f\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6cbf \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5206\u5e03 \u7684 \u7f51\u683c \u3002 \u6bcf \u4e00\u4e2a \u90fd \u4ee5 \u76f8\u540c \u7684 \u65b9\u5f0f \u521d\u59cb \u521d\u59cb\u5316 \uff1a 1 . \u521d\u59cb \u521d\u59cb\u5316 \u5e8f\u5217 \u3002 \u5c06 \u84dd\u56fe \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 \u60a8 \u5c06 \u770b\u5230 \u4e00\u4e2a \u5143\u7d20 \u4f4d\u4e8e \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u7684 \u8d77\u70b9 \uff0c \u5e76 \u6709 \u4e24\u4e2a \u8282\u70b9 \u6807\u8bb0 \u5f00\u59cb \u548c \u7ed3\u675f \u3002 2 . \u5b9a\u4e49 \u8def\u5f84 \u3002 \u9009\u62e9 \u5143\u7d20 \u7684 \u65b9\u5411 \u7bad\u5934 \u65b9\u5411\u7bad\u5934 \uff0c \u7136\u540e \u6309 Alt \u952e \uff0c \u540c\u65f6 \u5c06 \u5143\u7d20 \u5411 \u60a8 \u60f3\u8981 \u79fb\u52a8 \u7684 \u65b9\u5411 \u62d6\u52a8 \u3002 \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u53ef \u7528\u4e8e \u5b9a\u4e49 \u66f2\u7ebf \u7684 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 \u62d6\u52a8 \u65f6 \uff0c \u66f2\u7ebf \u7684 \u6bcf\u4e2a \u8282\u70b9 \u4e0a \u6216 \u6bcf\u6b21 Alt \u62d6\u52a8 \u65f6 \u6309 \u4e0b \u65f6 \u90fd \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u65b0 \u7f51\u683c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u84dd\u56fe \u3002 3 . \u5b9a\u5236 \u56fe\u6848 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63cf\u8ff0 \u6bcf\u4e2a \u84dd\u56fe \u53ef\u7528 \u7684 \u4e0d\u540c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u53c2\u6570 \u3002","title":"\u6dfb\u52a0 \u5e8f\u5217\u5316 \u7f51\u683c"},{"location":"tuto_M_custom_weather_landscape/#bp_repspline","text":"\u84dd\u56fe BP _ RepSpline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u7528\u4e8e \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u5355\u4e2a \u5143\u7d20 \u3002 \u5e8f\u5217 \u5e8f\u5217\u5316 \u662f \u901a\u8fc7 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \uff1a Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Offset rotation \u2014 \u4e3a \u4e0d\u540c \u8f74 \u8bbe\u7f6e \u56fa\u5b9a \u65cb\u8f6c \u3002 Random rotation \u2014 \u8bbe\u7f6e \u4e0d\u540c \u8f74 \u7684 \u968f\u673a \u65cb\u8f6c \u8303\u56f4 \u3002 Offset translation \u2014 \u8bbe\u7f6e \u6cbf \u4e0d\u540c \u8f74 \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u968f\u673a \u4f4d\u7f6e \u3002 Max Number of Meshes \u2014 \u8bbe\u7f6e \u5c06 \u653e\u7f6e \u5728 \u66f2\u7ebf \u8282\u70b9 \u4e4b\u95f4 \u7684 \u5143\u7d20 \u7684 \u6700\u5927 \u6570\u91cf \u3002 World aligned ZY \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 EndPoint \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5c06 \u5728 \u66f2\u7ebf \u7684 \u7ec8\u70b9 \u8282\u70b9 \u6dfb\u52a0 \u4e00\u4e2a \u5143\u7d20 \u3002 Collision enabled \u2014 \u8bbe\u7f6e \u4e3a \u7f51\u683c \u542f\u7528 \u7684 \u78b0\u649e \u7c7b\u578b \u3002 BP _ RepSpline \u793a\u4f8b \u3002","title":"BP _ RepSpline"},{"location":"tuto_M_custom_weather_landscape/#bp_spline","text":"\u84dd\u56fe BP _ Spline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6dfb\u52a0 \u4e25\u683c \u9075\u5faa \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u7684 \u8fde\u63a5 \u5143\u7d20 \u3002 \u7f51\u683c \u5c06 \u626d\u66f2 \u4ee5 \u9002\u5e94 \u521b\u5efa \u7684 \u8def\u5f84 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u84dd\u56fe \uff1a Gap distance \u2014 \u5728 \u5143\u7d20 \u4e4b\u95f4 \u6dfb\u52a0 \u95f4\u9694 \u3002 BP _ Spline example .","title":"BP _ Spline"},{"location":"tuto_M_custom_weather_landscape/#bp_wall","text":"\u84dd\u56fe BP _ Wall \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u8fde\u63a5 \u7684 \u5143\u7d20 \u3002 \u7f51\u683c \u4e0d\u4f1a \u626d\u66f2 \u4ee5 \u9002\u5e94 \u66f2\u7ebf \uff0c \u4f46\u4f1a \u8003\u8651 \u8282\u70b9 \u3002 Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Vertically aligned \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 Scale offset \u2014 \u7f29\u653e \u7f51\u683c \u7684 \u957f\u5ea6 \u4ee5 \u5b8c\u5584 \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8fde\u63a5 \u3002 BP _ Wall \u5b9e\u4f8b \u3002","title":"BP _ Wall"},{"location":"tuto_M_custom_weather_landscape/#bp_splinepoweline","text":"BP _ SplinePoweLine \u84dd\u56fe \u53ef \u5728 Carla / Static / Pole / PoweLine \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u7535\u7ebf \u7535\u7ebf\u6746 ( electricity poles ) \uff0c \u5e76 \u5c06 \u5b83\u4eec \u4e0e \u7535\u7ebf \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 \u3002 \u4e3a\u4e86 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \uff0c \u60a8 \u53ef\u4ee5 \u4e3a \u84dd\u56fe \u63d0\u4f9b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7535\u529b \u7535\u529b\u7ebf \u7f51\u683c \u6765 \u586b\u5145 \u8def\u5f84 \u3002 \u53bb \u505a \u8fd9\u4e2a \uff1a \u5728 Content Browser \u4e2d \u53cc\u51fb BP _ SplinePoweLine \u84dd\u56fe \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u5c55\u5f00 Array Meshes \u5e76 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u6dfb\u52a0 \u6216 \u66f4\u6539 \u5b83 \u3002 \u70b9\u51fb Compile \uff0c \u7136\u540e \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 BP _ SplinePowerLine example . \u8981 \u6539\u53d8 \u7535\u6e90 \u7535\u6e90\u7ebf \u7684 \u7ebf \u5f20\u529b \uff1a \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u573a\u666f \u4e2d \u9009\u62e9 \u84dd\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u8f6c \u5230 Details \u9762\u677f \u3002 \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u8c03\u6574 \u5f20\u529b Tension \u4e2d \u7684 \u503c \u3002 0 \u8868\u793a \u7ebf\u6761 \u5c06 \u662f \u76f4 \u7684 \u3002 \u589e\u52a0 \u7535\u7ebf \u6570\u91cf \uff1a \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb \u5176\u4e2d \u4e00\u4e2a \u6746 \u7f51\u683c \u3002 \u8f6c \u5230 Socket Manager \u9762\u677f \u3002 \u914d\u7f6e \u73b0\u6709 \u5957 \u63a5\u5b57 \u6216 \u901a\u8fc7 \u5355\u51fb Create Socket \u6dfb\u52a0 \u65b0\u5957 \u63a5\u5b57 \u3002 \u63d2\u5ea7 \u662f \u4ee3\u8868 \u7535\u6e90 \u7535\u6e90\u7ebf \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u7684 \u7a7a \u7f51\u683c \u3002 \u5728 \u4e24\u6781 \u4e4b\u95f4 \u4ece \u63d2\u5ea7 \u5230 \u63d2\u5ea7 \u521b\u5efa \u7535\u7ebf \u3002 BP _ SplinePowerLine \u5957 \u63a5\u5b57 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u91cd\u8981 \u5404\u6781 \u4e4b\u95f4 \u7684 \u63d2\u5ea7 \u6570\u91cf \u53ca \u540d\u79f0 \u5e94 \u4e00\u81f4 \u3002 \u5426\u5219 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u53ef\u89c6 \u53ef\u89c6\u5316 \u95ee\u9898 \u3002","title":"BP _ SplinePoweLine"},{"location":"tuto_M_custom_weather_landscape/#_4","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_generate_map/","text":"\u5728 RoadRunner \u4e2d \u751f\u6210 \u5730\u56fe RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \u3001 \u6784\u5efa \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u9879 \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4ee5 \u51c6\u5907 \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe \u4e0b \u4e00\u6b65 RoadRunner \u7b80\u4ecb RoadRunner \u662f \u4e00\u6b3e \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef \u8ba9 \u60a8 \u8bbe\u8ba1 \u7528\u4e8e \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 3D \u573a\u666f \u3002 \u5b83 \u53ef \u7528\u4e8e \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u4ee5\u53ca \u968f\u9644 \u7684 OpenDRIVE \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u6b64\u5904 \u80fd \u4e86\u89e3 \u5230 \u66f4 \u591a RoadRunner \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB Campus - Wide License \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u90fd \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u60a8 \u7684 \u5927\u5b66 \u662f\u5426 \u6709\u6743 \u8bbf\u95ee \u3002 \u5982\u679c \u60a8 \u5bf9 \u8f85\u52a9 \u529f\u80fd \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u56f0\u96be \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u8bd5\u7528 \u8bd5\u7528\u7248 \u53ef\u7528 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u5173\u4e8e \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRuner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u5305\u542b \u5927\u91cf \u9053\u5177 \u7684 \u5730\u56fe \u4f1a\u663e \u7740 \u51cf\u6162 \u5bfc\u5165 \u8fc7\u7a0b \u3002 \u8fd9 \u56e0\u4e3a \u662f\u56e0\u4e3a \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u5c06 \u6bcf\u4e2a \u7f51\u683c \u7269\u4f53 \u8f6c\u6362 \u4e3a \u865a\u5e7b \u8d44\u6e90 \u3002 \u5982\u679c \u60a8 \u8ba1\u5212 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u6e90 \u6784\u5efa \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u60a8 \u4ec5 \u5728 RoadRunner \u4e2d \u521b\u5efa \u9053\u8def \u5e03\u5c40 \uff0c \u5e76 \u5728 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e4b\u524d \u4fdd\u7559 \u4efb\u4f55 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u8fd9\u4e9b \u5de5\u5177 \u6765 \u7b80\u5316 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fc7\u7a0b \u3002 \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe \u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u60a8 \u53ef\u4ee5 \u5728 MathWorks ' \u6587\u6863 \u4e2d \u627e\u5230 \u6709\u5173 \u5982\u4f55 \u5bfc\u51fa \u5230 Carla \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u4f7f\u7528 Carla \u9009\u9879 \u5bfc\u51fa \u573a\u666f \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > CARLA ( . fbx , . xodr , . rrdata . xml ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a C \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u6216\u4ec5 \u4fdd\u7559 \u4e00\u5757 \u4e0d \u9009\u4e2d \u3002 Leave unchecked : \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 : \u751f\u6210 \u4e00\u4e2a \u5305\u542b \u6240\u6709 \u5730 \u56fe\u7247 \u6bb5 \u7684 . fbx \u6587\u4ef6 \u3002 3 . \u9009\u62e9 \u8981 \u5c06 \u6587\u4ef6 \u5bfc\u51fa \u5230 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u5355\u51fb Export \u3002 \u8fd9 \u5c06 \u751f\u6210 < mapName > . fbx \u548c < mapName > . xodr \u6587\u4ef6 \u7b49 \u3002 \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002 \u4e0b \u4e00\u6b65 \u60a8 \u73b0\u5728 \u5df2 \u51c6\u5907 \u597d \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 Carla \u5b89\u88c5 \u7c7b\u578b \uff1a \u5bf9\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bf9\u4e8e Carla \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5982\u679c \u60a8 \u5bf9\u6b64 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe"},{"location":"tuto_M_generate_map/#roadrunner","text":"RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \u3001 \u6784\u5efa \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u9879 \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4ee5 \u51c6\u5907 \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe \u4e0b \u4e00\u6b65","title":"\u5728 RoadRunner \u4e2d \u751f\u6210 \u5730\u56fe"},{"location":"tuto_M_generate_map/#roadrunner_1","text":"RoadRunner \u662f \u4e00\u6b3e \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef \u8ba9 \u60a8 \u8bbe\u8ba1 \u7528\u4e8e \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 3D \u573a\u666f \u3002 \u5b83 \u53ef \u7528\u4e8e \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u4ee5\u53ca \u968f\u9644 \u7684 OpenDRIVE \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u6b64\u5904 \u80fd \u4e86\u89e3 \u5230 \u66f4 \u591a RoadRunner \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB Campus - Wide License \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u90fd \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u60a8 \u7684 \u5927\u5b66 \u662f\u5426 \u6709\u6743 \u8bbf\u95ee \u3002 \u5982\u679c \u60a8 \u5bf9 \u8f85\u52a9 \u529f\u80fd \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u56f0\u96be \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u8bd5\u7528 \u8bd5\u7528\u7248 \u53ef\u7528 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"RoadRunner \u7b80\u4ecb"},{"location":"tuto_M_generate_map/#_1","text":"\u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_generate_map/#roadrunner_2","text":"\u5173\u4e8e \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRuner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u5305\u542b \u5927\u91cf \u9053\u5177 \u7684 \u5730\u56fe \u4f1a\u663e \u7740 \u51cf\u6162 \u5bfc\u5165 \u8fc7\u7a0b \u3002 \u8fd9 \u56e0\u4e3a \u662f\u56e0\u4e3a \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u5c06 \u6bcf\u4e2a \u7f51\u683c \u7269\u4f53 \u8f6c\u6362 \u4e3a \u865a\u5e7b \u8d44\u6e90 \u3002 \u5982\u679c \u60a8 \u8ba1\u5212 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u6e90 \u6784\u5efa \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u60a8 \u4ec5 \u5728 RoadRunner \u4e2d \u521b\u5efa \u9053\u8def \u5e03\u5c40 \uff0c \u5e76 \u5728 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e4b\u524d \u4fdd\u7559 \u4efb\u4f55 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u8fd9\u4e9b \u5de5\u5177 \u6765 \u7b80\u5316 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fc7\u7a0b \u3002","title":"\u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe"},{"location":"tuto_M_generate_map/#roadrunner_3","text":"\u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u60a8 \u53ef\u4ee5 \u5728 MathWorks ' \u6587\u6863 \u4e2d \u627e\u5230 \u6709\u5173 \u5982\u4f55 \u5bfc\u51fa \u5230 Carla \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u4f7f\u7528 Carla \u9009\u9879 \u5bfc\u51fa \u573a\u666f \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > CARLA ( . fbx , . xodr , . rrdata . xml ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a C \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u6216\u4ec5 \u4fdd\u7559 \u4e00\u5757 \u4e0d \u9009\u4e2d \u3002 Leave unchecked : \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 : \u751f\u6210 \u4e00\u4e2a \u5305\u542b \u6240\u6709 \u5730 \u56fe\u7247 \u6bb5 \u7684 . fbx \u6587\u4ef6 \u3002 3 . \u9009\u62e9 \u8981 \u5c06 \u6587\u4ef6 \u5bfc\u51fa \u5230 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u5355\u51fb Export \u3002 \u8fd9 \u5c06 \u751f\u6210 < mapName > . fbx \u548c < mapName > . xodr \u6587\u4ef6 \u7b49 \u3002 \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002","title":"\u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe"},{"location":"tuto_M_generate_map/#_2","text":"\u60a8 \u73b0\u5728 \u5df2 \u51c6\u5907 \u597d \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 Carla \u5b89\u88c5 \u7c7b\u578b \uff1a \u5bf9\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bf9\u4e8e Carla \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5982\u679c \u60a8 \u5bf9\u6b64 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_generate_pedestrian_navigation/","text":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e3a\u4e86 \u5141\u8bb8 \u884c\u4eba \u5bfc\u822a \u5730\u56fe \uff0c \u60a8 \u9700\u8981 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u3002 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8981 \u4f7f\u7528 \u7684 \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u751f\u6210 \u6587\u4ef6 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u884c\u4eba \u5bfc\u822a \u7f51\u683c \u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5730\u56fe \u5b9a\u5236 \uff08 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u7ed8\u5236 \u9053\u8def \u3001 \u6dfb\u52a0 \u666f\u89c2 \u7279\u5f81 \u7b49 \uff09 \u5e94 \u5728 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e4b\u524d \u5b8c\u6210 \uff0c \u4ee5 \u907f\u514d \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u53d1\u751f \u5e72\u6270 \u6216 \u78b0\u649e \uff0c \u5bfc\u81f4 \u9700\u8981 \u518d\u6b21 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u3002 \u884c\u4eba \u5bfc\u822a \u7f51\u683c \u884c\u4eba \u53ea\u80fd \u5bfc\u822a \u7279\u5b9a \u7684 \u7f51\u683c \u3002 \u60a8 \u9700\u8981 \u6839\u636e \u4e0b\u8868\u4e2d \u7684 \u672f\u8bed \u547d\u540d \u8981 \u5305\u542b \u5728 \u884c\u4eba \u5bfc\u822a \u4e2d \u7684 \u7f51\u683c \uff1a \u7c7b\u578b \u5305\u542b \u7684 \u540d\u79f0 \u63cf\u8ff0 \u5730\u9762 Road _ Sidewalk \u6216 Roads _ Sidewalk \u884c\u4eba \u53ef\u4ee5 \u81ea\u7531 \u5730 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u3002 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 Road _ Crosswalk \u6216 Roads _ Crosswalk \u5982\u679c \u627e \u4e0d\u5230 \u5730\u9762 \uff0c \u884c\u4eba \u5c06 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u4f5c\u4e3a \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u9009\u62e9 \u3002 \u8349\u5730 Road _ Grass \u6216 Roads _ Grass \u884c\u4eba \u4e0d\u4f1a \u5728 \u6b64 \u7f51\u683c \u4e0a \u884c\u8d70 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a \u4e00\u5b9a \u6bd4\u4f8b \u7684 \u884c\u4eba \u8fd9\u6837 \u505a \u3002 \u9a6c\u8def Road _ Road \u6216 Roads _ Road Road _ Curb \u6216 Roads _ Curb Road _ Gutter \u6216 Roads _ Gutter Road _ Marking \u6216 Roads _ Marking \u884c\u4eba \u53ea\u80fd \u901a\u8fc7 \u8fd9\u4e9b \u7f51\u683c \u8fc7 \u9a6c\u8def \u3002 \u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879 \u4ee5\u4e0b \u6b65\u9aa4 \u5bf9\u4e8e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e0d\u662f \u5fc5\u9700 \u7684 \uff0c \u4f46 \u5141\u8bb8 \u60a8 \u5728 \u4e00\u5b9a \u7a0b\u5ea6 \u4e0a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u884c\u4eba \u6d3b\u52a8 \u3002 \u751f\u6210 \u65b0 \u7684 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u3002 \u5982\u679c \u5df2 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \uff0c \u8bf7 \u907f\u514d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u56e0\u4e3a \u8fd9\u4f1a \u5bfc\u81f4 \u91cd\u590d \uff1a \u521b\u5efa \u4e00\u4e2a \u5e73\u9762 \u7f51\u683c \uff08 plane mesh \uff0c \u5982\u679c \u4e0d\u5230 \u770b\u4e0d\u5230 \uff0c \u9700\u8981 \u5728 \u201c \u89c6\u56fe \u9009\u9879 \u201d \u4e2d \u9009\u4e2d \u201c \u663e\u793a \u5f15\u64ce \u5185\u5bb9 \u201d \uff09 \uff0c \u7a0d\u5fae \u5ef6\u4f38 \u5230 \u8981 \u8fde\u63a5 \u7684 \u4e24\u6761 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u3002 \u5c06 \u7f51\u683c \u653e\u7f6e \u5728 \u5730\u9762 \u4e0a \u5e76 \u7981\u7528 \u5176 \u7269\u7406 \u548c \u6e32\u67d3 \u3002 \u5c06 \u7f51\u683c \u540d\u79f0 \u66f4 \u6539\u4e3a Road _ Crosswalk \u6216 Roads _ Crosswalk \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a 1 . \u8981 \u9632\u6b62 \u5730\u56fe \u592a\u5927 \u592a\u5927\u800c \u65e0\u6cd5 \u5bfc\u51fa \uff0c \u8bf7 \u9009\u62e9 BP _ Sky \u5bf9\u8c61 \u5e76 \u6dfb\u52a0 \u4e00\u4e2a NoExport \u6807\u7b7e \u3002 \u5982\u679c \u60a8 \u6709 \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u53c2\u4e0e \u884c\u4eba \u5bfc\u822a \u7684 \u7279\u522b \u5927 \u7684 \u7f51\u683c \uff0c \u4e5f \u8bf7 \u5411 \u5b83\u4eec \u6dfb\u52a0 NoExport \u6807\u8bb0 \u3002 2 . \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \u60a8 \u7684 \u7f51\u683c \u540d\u79f0 \u3002 \u7f51\u683c \u540d\u79f0 \u5e94 \u4ee5 \u4e0b\u9762 \u5217\u51fa \u7684 \u4efb\u4f55 \u9002\u5f53 \u683c\u5f0f \u5f00\u5934 \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u884c\u4eba \u53ef\u4ee5 \u884c\u8d70 \u7684 \u533a\u57df \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u884c\u4eba \u5c06 \u80fd\u591f \u5728 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u548c \u8349\u5730 \u4e0a \u884c\u8d70 \uff08 \u5bf9 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5f71\u54cd \u8f83 \u5c0f \uff09 \uff1a \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 = Road _ Sidewalk \u6216 Roads _ Sidewalk \u4eba\u884c \u4eba\u884c\u6a2a\u9053 = Road _ Crosswalk \u6216 Roads _ Crosswalk \u8349\u5730 = Road _ Grass \u6216 Roads _ Grass 3 . \u6309 ctrl + A \u9009\u62e9 \u6240\u6709 \u5185\u5bb9 \uff08 \u62a5\u9519 \u5219 \u53ea \u9009\u62e9 \u548c \u884c\u4eba \u76f8\u5173 \u7684 \u7f51\u683c \uff09 \u5e76 \u901a\u8fc7 \u9009\u62e9 File - > Carla Exporter \u5bfc\u51fa \u5730\u56fe \u3002 \u5c06 \u5728 Unreal / CarlaUE4 / Saved \u4e2d \u521b\u5efa < mapName > . obj \u6587\u4ef6 \u3002 4 . \u5c06 < mapName > . obj \u548c < mapName > . xodr \u79fb\u52a8 \u5230 Util / DockerUtils / dist \u3002 5 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u751f\u6210 \u5bfc\u822a \u6587\u4ef6 \uff1a Windows build . bat < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d Linux . / build . sh < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d 6 . \u5c06 \u521b\u5efa \u4e00\u4e2a < mapName > . bin \u6587\u4ef6 \u3002 \u6b64 \u6587\u4ef6 \u5305\u542b \u5730\u56fe \u4e0a \u7684 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5c06 \u6b64 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u5305\u542b \u5730\u56fe \u7684 \u5305 \u7684 Nav \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 7 . \u901a\u8fc7 \u542f\u52a8 \u4eff\u771f \u5e76 \u8fd0\u884c PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u6765 \u6d4b\u8bd5 \u884c\u4eba \u5bfc\u822a \u3002 \u7b14\u8bb0 \u5982\u679c \u66f4\u65b0 \u5730\u56fe \u540e \u9700\u8981 \u91cd\u5efa \u884c\u4eba \u5bfc\u822a \uff0c \u8bf7 \u786e\u4fdd \u5220\u9664 CARLA \u7f13\u5b58 \u3002 \u8fd9 \u901a\u5e38 \u53ef\u4ee5 \u5728 Ubuntu \u7684 \u76ee\u5f55 \u4e3b\u76ee\u5f55 \uff08 \u5373 cd ~ \uff09 \u4e2d \u627e\u5230 \uff0c \u6216\u8005 \u5728 Windows \u7684 \u7528\u6237 \u76ee\u5f55 \uff08 \u5206\u914d \u7ed9 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf USERPROFILE \u7684 \u76ee\u5f55 \uff09 \u4e2d \uff0c \u5220\u9664 \u540d\u4e3a carlaCache \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u53ca\u5176 \u6240\u6709 \u5185\u5bb9 \uff0c \u5b83 \u53ef\u80fd \u5f88\u5927 \u3002 \u5982\u679c \u5173\u4e8e \u6d41\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_generate_pedestrian_navigation/#_1","text":"\u4e3a\u4e86 \u5141\u8bb8 \u884c\u4eba \u5bfc\u822a \u5730\u56fe \uff0c \u60a8 \u9700\u8981 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u3002 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8981 \u4f7f\u7528 \u7684 \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u751f\u6210 \u6587\u4ef6 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u884c\u4eba \u5bfc\u822a \u7f51\u683c \u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879 \u751f\u6210 \u884c\u4eba \u5bfc\u822a","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_generate_pedestrian_navigation/#_2","text":"\u5730\u56fe \u5b9a\u5236 \uff08 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u7ed8\u5236 \u9053\u8def \u3001 \u6dfb\u52a0 \u666f\u89c2 \u7279\u5f81 \u7b49 \uff09 \u5e94 \u5728 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e4b\u524d \u5b8c\u6210 \uff0c \u4ee5 \u907f\u514d \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u53d1\u751f \u5e72\u6270 \u6216 \u78b0\u649e \uff0c \u5bfc\u81f4 \u9700\u8981 \u518d\u6b21 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_generate_pedestrian_navigation/#_3","text":"\u884c\u4eba \u53ea\u80fd \u5bfc\u822a \u7279\u5b9a \u7684 \u7f51\u683c \u3002 \u60a8 \u9700\u8981 \u6839\u636e \u4e0b\u8868\u4e2d \u7684 \u672f\u8bed \u547d\u540d \u8981 \u5305\u542b \u5728 \u884c\u4eba \u5bfc\u822a \u4e2d \u7684 \u7f51\u683c \uff1a \u7c7b\u578b \u5305\u542b \u7684 \u540d\u79f0 \u63cf\u8ff0 \u5730\u9762 Road _ Sidewalk \u6216 Roads _ Sidewalk \u884c\u4eba \u53ef\u4ee5 \u81ea\u7531 \u5730 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u3002 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 Road _ Crosswalk \u6216 Roads _ Crosswalk \u5982\u679c \u627e \u4e0d\u5230 \u5730\u9762 \uff0c \u884c\u4eba \u5c06 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u4f5c\u4e3a \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u9009\u62e9 \u3002 \u8349\u5730 Road _ Grass \u6216 Roads _ Grass \u884c\u4eba \u4e0d\u4f1a \u5728 \u6b64 \u7f51\u683c \u4e0a \u884c\u8d70 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a \u4e00\u5b9a \u6bd4\u4f8b \u7684 \u884c\u4eba \u8fd9\u6837 \u505a \u3002 \u9a6c\u8def Road _ Road \u6216 Roads _ Road Road _ Curb \u6216 Roads _ Curb Road _ Gutter \u6216 Roads _ Gutter Road _ Marking \u6216 Roads _ Marking \u884c\u4eba \u53ea\u80fd \u901a\u8fc7 \u8fd9\u4e9b \u7f51\u683c \u8fc7 \u9a6c\u8def \u3002","title":"\u884c\u4eba \u5bfc\u822a \u7f51\u683c"},{"location":"tuto_M_generate_pedestrian_navigation/#_4","text":"\u4ee5\u4e0b \u6b65\u9aa4 \u5bf9\u4e8e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e0d\u662f \u5fc5\u9700 \u7684 \uff0c \u4f46 \u5141\u8bb8 \u60a8 \u5728 \u4e00\u5b9a \u7a0b\u5ea6 \u4e0a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u884c\u4eba \u6d3b\u52a8 \u3002 \u751f\u6210 \u65b0 \u7684 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u3002 \u5982\u679c \u5df2 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \uff0c \u8bf7 \u907f\u514d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u56e0\u4e3a \u8fd9\u4f1a \u5bfc\u81f4 \u91cd\u590d \uff1a \u521b\u5efa \u4e00\u4e2a \u5e73\u9762 \u7f51\u683c \uff08 plane mesh \uff0c \u5982\u679c \u4e0d\u5230 \u770b\u4e0d\u5230 \uff0c \u9700\u8981 \u5728 \u201c \u89c6\u56fe \u9009\u9879 \u201d \u4e2d \u9009\u4e2d \u201c \u663e\u793a \u5f15\u64ce \u5185\u5bb9 \u201d \uff09 \uff0c \u7a0d\u5fae \u5ef6\u4f38 \u5230 \u8981 \u8fde\u63a5 \u7684 \u4e24\u6761 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u3002 \u5c06 \u7f51\u683c \u653e\u7f6e \u5728 \u5730\u9762 \u4e0a \u5e76 \u7981\u7528 \u5176 \u7269\u7406 \u548c \u6e32\u67d3 \u3002 \u5c06 \u7f51\u683c \u540d\u79f0 \u66f4 \u6539\u4e3a Road _ Crosswalk \u6216 Roads _ Crosswalk \u3002","title":"\u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879"},{"location":"tuto_M_generate_pedestrian_navigation/#_5","text":"1 . \u8981 \u9632\u6b62 \u5730\u56fe \u592a\u5927 \u592a\u5927\u800c \u65e0\u6cd5 \u5bfc\u51fa \uff0c \u8bf7 \u9009\u62e9 BP _ Sky \u5bf9\u8c61 \u5e76 \u6dfb\u52a0 \u4e00\u4e2a NoExport \u6807\u7b7e \u3002 \u5982\u679c \u60a8 \u6709 \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u53c2\u4e0e \u884c\u4eba \u5bfc\u822a \u7684 \u7279\u522b \u5927 \u7684 \u7f51\u683c \uff0c \u4e5f \u8bf7 \u5411 \u5b83\u4eec \u6dfb\u52a0 NoExport \u6807\u8bb0 \u3002 2 . \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \u60a8 \u7684 \u7f51\u683c \u540d\u79f0 \u3002 \u7f51\u683c \u540d\u79f0 \u5e94 \u4ee5 \u4e0b\u9762 \u5217\u51fa \u7684 \u4efb\u4f55 \u9002\u5f53 \u683c\u5f0f \u5f00\u5934 \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u884c\u4eba \u53ef\u4ee5 \u884c\u8d70 \u7684 \u533a\u57df \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u884c\u4eba \u5c06 \u80fd\u591f \u5728 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u548c \u8349\u5730 \u4e0a \u884c\u8d70 \uff08 \u5bf9 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5f71\u54cd \u8f83 \u5c0f \uff09 \uff1a \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 = Road _ Sidewalk \u6216 Roads _ Sidewalk \u4eba\u884c \u4eba\u884c\u6a2a\u9053 = Road _ Crosswalk \u6216 Roads _ Crosswalk \u8349\u5730 = Road _ Grass \u6216 Roads _ Grass 3 . \u6309 ctrl + A \u9009\u62e9 \u6240\u6709 \u5185\u5bb9 \uff08 \u62a5\u9519 \u5219 \u53ea \u9009\u62e9 \u548c \u884c\u4eba \u76f8\u5173 \u7684 \u7f51\u683c \uff09 \u5e76 \u901a\u8fc7 \u9009\u62e9 File - > Carla Exporter \u5bfc\u51fa \u5730\u56fe \u3002 \u5c06 \u5728 Unreal / CarlaUE4 / Saved \u4e2d \u521b\u5efa < mapName > . obj \u6587\u4ef6 \u3002 4 . \u5c06 < mapName > . obj \u548c < mapName > . xodr \u79fb\u52a8 \u5230 Util / DockerUtils / dist \u3002 5 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u751f\u6210 \u5bfc\u822a \u6587\u4ef6 \uff1a Windows build . bat < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d Linux . / build . sh < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d 6 . \u5c06 \u521b\u5efa \u4e00\u4e2a < mapName > . bin \u6587\u4ef6 \u3002 \u6b64 \u6587\u4ef6 \u5305\u542b \u5730\u56fe \u4e0a \u7684 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5c06 \u6b64 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u5305\u542b \u5730\u56fe \u7684 \u5305 \u7684 Nav \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 7 . \u901a\u8fc7 \u542f\u52a8 \u4eff\u771f \u5e76 \u8fd0\u884c PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u6765 \u6d4b\u8bd5 \u884c\u4eba \u5bfc\u822a \u3002 \u7b14\u8bb0 \u5982\u679c \u66f4\u65b0 \u5730\u56fe \u540e \u9700\u8981 \u91cd\u5efa \u884c\u4eba \u5bfc\u822a \uff0c \u8bf7 \u786e\u4fdd \u5220\u9664 CARLA \u7f13\u5b58 \u3002 \u8fd9 \u901a\u5e38 \u53ef\u4ee5 \u5728 Ubuntu \u7684 \u76ee\u5f55 \u4e3b\u76ee\u5f55 \uff08 \u5373 cd ~ \uff09 \u4e2d \u627e\u5230 \uff0c \u6216\u8005 \u5728 Windows \u7684 \u7528\u6237 \u76ee\u5f55 \uff08 \u5206\u914d \u7ed9 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf USERPROFILE \u7684 \u76ee\u5f55 \uff09 \u4e2d \uff0c \u5220\u9664 \u540d\u4e3a carlaCache \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u53ca\u5176 \u6240\u6709 \u5185\u5bb9 \uff0c \u5b83 \u53ef\u80fd \u5f88\u5927 \u3002 \u5982\u679c \u5173\u4e8e \u6d41\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_manual_map_package/","text":"\u624b\u52a8 \u5305 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u9075\u5faa \u7279\u5b9a \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \uff0c \u5e76\u4e14 \u5fc5\u987b \u5305\u542b \u63cf\u8ff0 \u8be5 \u7ed3\u6784 \u7684 . json \u6587\u4ef6 \u3002 \u6211\u4eec \u7684 \u81ea\u52a8 \u5730\u56fe \u5bfc\u5165 \u6d41\u7a0b \u4f1a \u81ea\u52a8 \u521b\u5efa \u6b64 . json \u6587\u4ef6 \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u81ea\u884c \u51c6\u5907 \u3002 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u5c06 \u8986\u76d6 \u4f20\u9012 \u7ed9 make import \u547d\u4ee4 \u7684 \u4efb\u4f55 \u53c2\u6570 \u3002 \u6807\u51c6 \u5730\u56fe \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u5927 \u5730\u56fe \u4e3a \u5927 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u5927 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u6807\u51c6 \u5730\u56fe \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u5e76 \u4e0d \u91cd\u8981 \u3002 \u4e3a \u6bcf\u4e2a \u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u521b\u5efa \u4e0d\u540c \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5c06 \u6bcf\u4e2a \u5730\u56fe \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5143\u7d20 \uff1a . fbx \u6587\u4ef6 \u4e2d \u5730\u56fe \u7684 \u7f51\u683c \u3002 . xodr \u6587\u4ef6 \u4e2d \u7684 OpenDRIVE \u5b9a\u4e49 \u3002 \uff08 \u53ef \u9009 \uff09 \u8d44\u4ea7 \u6240 \u9700 \u7684 \u7eb9\u7406 \u3002 \u4f8b\u5982 \uff0c \u4e00\u4e2a \u5305\u542b \u4e24\u4e2a \u5730\u56fe \u7684 \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 \u2502 \u251c \u2500 \u2500 Asphalt1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Map01 . fbx \u2502 \u2514 \u2500 \u2500 Map01 . xodr \u2514 \u2500 \u2500 Map02 \u2514 \u2500 \u2500 Map02 . fbx \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 \u5730\u56fe \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a \u5730\u56fe \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 . fbx \u6587\u4ef6 \u7684 source \u8def\u5f84 \u3002 use _ carla _ materials . \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 xodr . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u6750 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u8be5\u5b57 \u6bb5 \u5c06 \u7559\u7a7a \u3002 \u8fd8\u6709 \u53e6 \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u7684 \u6559\u7a0b \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" source \" : \" . / Map01 / Map01 . fbx \" , \" use _ carla _ materials \" : true , \" xodr \" : \" . / Map01 / Map01 . xodr \" } , { \" name \" : \" Map02 \" , \" source \" : \" . / Map02 / Map02 . fbx \" , \" use _ carla _ materials \" : false , \" xodr \" : \" . / Map02 / Map02 . xodr \" } ] , \" props \" : [ ] } \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u624b\u52a8 \u51c6\u5907 \u5730\u56fe\u5305"},{"location":"tuto_M_manual_map_package/#_1","text":"\u5730\u56fe \u5730\u56fe\u5305 \u9075\u5faa \u7279\u5b9a \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \uff0c \u5e76\u4e14 \u5fc5\u987b \u5305\u542b \u63cf\u8ff0 \u8be5 \u7ed3\u6784 \u7684 . json \u6587\u4ef6 \u3002 \u6211\u4eec \u7684 \u81ea\u52a8 \u5730\u56fe \u5bfc\u5165 \u6d41\u7a0b \u4f1a \u81ea\u52a8 \u521b\u5efa \u6b64 . json \u6587\u4ef6 \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u81ea\u884c \u51c6\u5907 \u3002 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u5c06 \u8986\u76d6 \u4f20\u9012 \u7ed9 make import \u547d\u4ee4 \u7684 \u4efb\u4f55 \u53c2\u6570 \u3002 \u6807\u51c6 \u5730\u56fe \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u5927 \u5730\u56fe \u4e3a \u5927 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u5927 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0","title":"\u624b\u52a8 \u5305 \u51c6\u5907"},{"location":"tuto_M_manual_map_package/#_2","text":"","title":"\u6807\u51c6 \u5730\u56fe"},{"location":"tuto_M_manual_map_package/#_3","text":"\u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u5e76 \u4e0d \u91cd\u8981 \u3002 \u4e3a \u6bcf\u4e2a \u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u521b\u5efa \u4e0d\u540c \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5c06 \u6bcf\u4e2a \u5730\u56fe \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5143\u7d20 \uff1a . fbx \u6587\u4ef6 \u4e2d \u5730\u56fe \u7684 \u7f51\u683c \u3002 . xodr \u6587\u4ef6 \u4e2d \u7684 OpenDRIVE \u5b9a\u4e49 \u3002 \uff08 \u53ef \u9009 \uff09 \u8d44\u4ea7 \u6240 \u9700 \u7684 \u7eb9\u7406 \u3002 \u4f8b\u5982 \uff0c \u4e00\u4e2a \u5305\u542b \u4e24\u4e2a \u5730\u56fe \u7684 \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 \u2502 \u251c \u2500 \u2500 Asphalt1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Map01 . fbx \u2502 \u2514 \u2500 \u2500 Map01 . xodr \u2514 \u2500 \u2500 Map02 \u2514 \u2500 \u2500 Map02 . fbx","title":"\u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6\u5939 \u7ed3\u6784"},{"location":"tuto_M_manual_map_package/#json","text":"\u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 \u5730\u56fe \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a \u5730\u56fe \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 . fbx \u6587\u4ef6 \u7684 source \u8def\u5f84 \u3002 use _ carla _ materials . \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 xodr . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u6750 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u8be5\u5b57 \u6bb5 \u5c06 \u7559\u7a7a \u3002 \u8fd8\u6709 \u53e6 \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u7684 \u6559\u7a0b \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" source \" : \" . / Map01 / Map01 . fbx \" , \" use _ carla _ materials \" : true , \" xodr \" : \" . / Map01 / Map01 . xodr \" } , { \" name \" : \" Map02 \" , \" source \" : \" . / Map02 / Map02 . fbx \" , \" use _ carla _ materials \" : false , \" xodr \" : \" . / Map02 / Map02 . xodr \" } ] , \" props \" : [ ] } \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0"},{"location":"tuto_content_authoring_maps/","text":"\u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe Carla \u63d0\u4f9b \u4e86 \u5927\u91cf \u7684 \u8d44\u6e90 \uff0c \u53ef \u7528\u4e8e \u521b\u5efa \u5f00\u7bb1 \u5373\u7528 \u7684 \u9a7e\u9a76 \u4eff\u771f \u3002 \u7136\u800c \uff0c Carla \u7684 \u771f\u6b63 \u529b\u91cf \u5728\u4e8e \u5176 \u5168\u9762 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \uff0c \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u5b8c\u5168 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u73af\u5883 \uff0c \u5176\u4e2d \u5305\u542b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u957f\u51f3 \u3001 \u5783\u573e \u5783\u573e\u6876 \u3001 \u96d5\u50cf \u3001 \u8def\u706f \u548c \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u5b9a\u5236 \u8d44\u4ea7 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 \u7b80\u5355 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e24\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u6765 \u521b\u5efa \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 RoadRunner \u521b\u5efa \u9053\u8def \u7f51\u7edc \uff0c \u7136\u540e \u901a\u8fc7 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5c06 \u8d44\u6e90 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5927 \u5730\u56fe \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 RoadRunner \u5bfc\u5165 Carla \u5bfc\u5165 \u8d44\u4ea7 \u4ea4\u901a \u4ea4\u901a\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 Materials \u9053\u8def \u753b\u5bb6 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4e3b \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61 \u51c6\u5907 \u4e3b \u6750\u6599 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2 \u4e0b \u4e00\u6b65 \u6811\u6728 \u548c \u690d\u88ab \u6811\u53f6 \u5de5\u5177 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u8981 \u9075\u5faa \u672c \u6307\u5357 \uff0c \u60a8 \u9700\u8981 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8bf7 \u9075\u5faa \u76f8\u5173 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7684 \u6784\u5efa \u8bf4\u660e \u3002 \u60a8 \u8fd8 \u9700\u8981 RoadRunner \u7684 \u8bb8\u53ef \u526f\u672c \u3002 \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 Maya \u3001 3DS Max \u6216 Blender \u7b49 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6765 \u4e3a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \u3002 \u60a8 \u5e94\u8be5 \u786e\u4fdd \u5df2 \u5b8c\u6210 \u6784\u5efa Carla \u7684 \u6240\u6709 \u6b65\u9aa4 \u5e76 \u786e\u4fdd \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6b63\u5728 \u8fd0\u884c \uff0c \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u6784\u5efa \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \uff0c \u5219 \u5e94 \u4f7f\u7528 \u9002\u5f53 \u7684 \u4e09\u7ef4 \u8bbe\u8ba1 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u4f8b\u5982 Blender \u3001 Maya \u3001 3DsMax \u6216 Modo \u3002 \u5927 \u5730\u56fe \u4ee5\u4e0b \u6587\u672c \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u548c \u88c5\u9970 \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5177\u6709 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 \u5927 \u5730\u56fe \u7684 \u6bd4\u4f8b \u6bd4 \u6807\u51c6 \u5730\u56fe \u66f4\u5927 \uff0c \u6700\u5927 \u53ef \u8fbe 100 km 2 \u3002 \u7531\u4e8e \u786c\u4ef6 \u9650\u5236 \uff0c \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \uff0c \u5373\u4f7f \u5728 \u9ad8\u7aef \u663e\u5361 \u4e2d \u4e5f \u662f \u5982\u6b64 \u3002 \u5927 \u5730\u56fe \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u5e76\u4e14 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d\u4ec5 \u52a0\u8f7d \u7acb\u5373 \u9700\u8981 \u7684 \u56fe\u5757 \uff08 \u5373 \u6700 \u63a5\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \uff09 \u3002 \u5176\u4ed6 \u56fe\u5757 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u76f4\u5230 \u9700\u8981 \u6570\u636e \u4e3a\u6b62 \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5b9e\u73b0 Carla \u4eff\u771f \u7684 \u6700\u9ad8 \u6027\u80fd \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7ec6\u8282 \u4e0e \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u7c7b\u4f3c \uff0c \u4f46 \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u3002 \u8bf7 \u6309\u7167 \u672c \u6307\u5357 \u4e3a Carla \u6784\u5efa \u5927 \u5730\u56fe \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730\u56fe \u751f\u6210 \u5de5\u5177 \uff0c \u5b83 \u4ece OpenStreetMap \u83b7\u53d6 \u9053\u8def \u7f51\u7edc \u6570\u636e \uff0c \u5e76\u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u88c5\u9970 \u5730\u56fe \u3002 \u8bf7 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u8be5 \u5de5\u5177 \u7684 \u4fe1\u606f \u3002 \u4f7f\u7528 RoadRunner \u521b\u5efa \u8def\u7f51 \u6253\u5f00 RoadRunner \u5e76 \u521b\u5efa \u4e00\u4e2a \u65b0 \u573a\u666f \u3002 \u9009\u62e9 \u9053\u8def \u89c4\u5212 \u5de5\u5177 ( Road Plan Tool ) \u5e76 \u5728 \u5de5\u4f5c \u533a\u4e2d \u53f3\u952e \u5355\u51fb \u4ee5 \u653e\u7f6e \u9053\u8def \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u548c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u3002 \u5355\u51fb \u5e76 \u62d6\u52a8 \u9053\u8def \u5c3d\u5934 \u7684 \u7ea2\u70b9 \u4ee5 \u79fb\u52a8 \u548c \u5ef6\u957f \u9053\u8def \u3002 \u51fa\u4e8e \u672c \u6559\u7a0b \u7684 \u76ee\u7684 \uff0c \u6211\u4eec \u4f7f\u7528 \u4e2d\u95f4 \u6709 \u4e00\u4e2a \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u7b80\u5355 \u692d\u5706 \u5706\u5f62 \u692d\u5706\u5f62 \u9053\u8def \u3002 \u8981 \u6784\u5efa \u66f4 \u9ad8\u7ea7 \u7684 \u7f51\u7edc \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Roadrunner \u6587\u6863 \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u521b\u5efa \u6240 \u9700 \u7684 \u9053\u8def \u7f51\u7edc \u540e \uff0c \u5728 RoadRunner \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u9009\u62e9 File > Export > Carla Filmbox ( . fbx , . xodr , . rrdata . xml ) \u5e76 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 RoadRunner \u662f \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6700\u4f73 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8fd8\u6709 \u4e00\u4e9b \u66ff\u4ee3 \u65b9\u6848 \uff0c \u4f8b\u5982 OpenStreetMap \uff0c \u4e13\u6ce8 \u4e8e \u4ece \u771f\u5b9e \u7684 \u9053\u8def \u5730\u56fe \u751f\u6210 \u5730\u56fe \u3002 TrueVision \u8bbe\u8ba1 \u5668 RoadRunner \u662f \u4e00\u6b3e \u9700\u8981 MATLAB \u7684 \u4e13\u6709 \u8f6f\u4ef6 \u3002 \u5927\u5b66 \u7b49 \u4e00\u4e9b \u673a\u6784 \u53ef\u80fd \u4e0e MathWorks \u8fbe\u6210 \u4e86 \u534f\u8bae \uff0c \u4ee5\u4fbf \u67d0\u4e9b \u7528\u6237 \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u9884\u7b97 \uff0c RoadRunner \u7684 \u4e00\u4e2a \u65b9\u4fbf \u7684 \u5f00\u6e90 \u66ff\u4ee3 \u65b9\u6848 \u662f TrueVision Designer \u3002 \u6b64 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u5177\u6709 \u8bb8\u591a \u4e0e RoadRunner \u76f8\u540c \u7684 \u529f\u80fd \uff0c \u5982\u679c \u60a8 \u65e0\u6cd5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8be5 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4f1a \u975e\u5e38 \u6709\u7528 \u3002 \u5c06 \u60a8 \u7684 \u8def\u7f51 \u5bfc\u5165 Carla Carla \u9700\u8981 \u7684 \u91cd\u8981 \u5bfc\u51fa \u6587\u4ef6 \u662f . xodr \u6587\u4ef6 \u548c . fbx \u6587\u4ef6 \u3002 \u5c06 \u8fd9\u4e9b \u6587\u4ef6 \u590d\u5236 \u6216 \u79fb\u52a8 \u5230 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u5b58\u50a8 \u5e93 \u76ee\u5f55 \u6839\u76ee\u5f55 \u5185 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u73b0\u5728 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c make import . \u8fd9\u4f1a \u5c06 \u9053\u8def \u7f51\u7edc \u5bfc\u5165 Carla \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u770b\u5230 \u65b0 \u5730\u56fe \u3002 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u8fd0\u884c make launch \u4ee5 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u60a8 \u73b0\u5728 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u4e00\u4e2a \u540d\u4e3a map _ package \u7684 \u65b0 \u76ee\u5f55 \u3002 \u5728 \u6b64 \u76ee\u5f55 Content > map _ package > Maps > tutorial \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u627e\u5230 \u60a8 \u7684 \u65b0 \u5730\u56fe \u3002 \u7b14\u8bb0 \u53ef\u4ee5 \u53c2\u8003 \u94fe\u63a5 \u901a\u8fc7 \u9f20\u6807 \u53f3\u952e \u7684 \u65b9\u5f0f \u76f4\u63a5 \u5bfc\u5165 \u3002 \u60a8 \u73b0\u5728 \u5df2\u7ecf \u521b\u5efa \u4e86 \u9053\u8def \u7f51\u7edc \uff0c \u8fd9\u662f \u5730\u56fe \u7684 \u57fa\u7840 \u3002 \u5bfc\u5165 \u8d44\u4ea7 \u5e76 \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u5730\u56fe \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u6709 \u4e86 \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u5730\u56fe \u7684 \u57fa\u7840 \uff0c \u6211\u4eec \u73b0\u5728 \u60f3\u8981 \u4e3a \u5730\u56fe \u521b\u5efa \u4e00\u4e9b \u5185\u5bb9 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff08 \u4f8b\u5982 Autodesk Maya \u3001 3DS Max \u3001 Blender \u6216 \u5177\u6709 \u9002\u5f53 \u5bfc\u51fa \u9009\u9879 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u521b\u5efa \u3002 \u91cd\u8981 \u7684 \u662f \uff0c \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u81f3\u5c11 \u80fd\u591f \u5bfc\u51fa . fbx \u3002 \u5728 Carla \u4e2d \u521b\u5efa \u8d44\u4ea7 \u9700\u8981 \u51e0\u4e2a \u5143\u7d20 \uff1a \u7f51\u683c - \u4e00\u7ec4 3D \u5750\u6807 \u9876\u70b9 \u548c \u5173\u8054 \u7684 \u8fde\u63a5 \u8fb9 \u3002 UV \u8d34\u56fe - \u5c06 \u4e09\u7ef4 \u9876\u70b9 \u548c \u8fb9 \u6620\u5c04 \u5230 \u4e8c\u7ef4 \u7eb9\u7406 \u7a7a\u95f4 \uff0c \u4ee5 \u5c06 \u7eb9\u7406 \u4e0e \u4e09\u7ef4 \u4f4d\u7f6e \u8fdb\u884c \u5339\u914d \u3002 \u7eb9\u7406 - \u5b9a\u4e49 \u4e09\u7ef4 \u5bf9\u8c61 \u8868\u9762 \u4e0a \u663e\u793a \u7684 \u989c\u8272 \u548c \u56fe\u6848 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u3002 \u6cd5\u7ebf \u8d34\u56fe - \u5b9a\u4e49 \u76ee\u6807 \u8868\u9762 \u6cd5\u7ebf \u65b9\u5411 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \uff0c \u4ee5\u5411 \u76ee\u6807 \u8868\u9762 \u6dfb\u52a0 \u4e09\u7ef4 \u53d8\u5316 \u3002 ORM \u8d34\u56fe - \u5b9a\u4e49 \u91d1\u5c5e \u5ea6 ( Metallicity ) \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 ( Roughness ) \u548c \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 ( Occlusion ) \u533a\u57df \u7684 \u8d34\u56fe ORM \u8d34\u56fe \u5229\u7528 \u6807\u51c6 RGBA \u7f16\u7801 \u56fe\u50cf \u7684 \u901a\u9053 \u5bf9 \u91d1\u5c5e \u533a\u57df \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u548c \u73af\u5883 \u906e\u6321 \u7684 \u8d34\u56fe \u8fdb\u884c \u7f16\u7801 \u3002 \u5f53 \u6211\u4eec \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u8d34\u56fe \u65f6 \uff0c \u7ea2\u8272 \u901a\u9053 \u5b9a\u4e49 \u91d1\u5c5e \u8d34\u56fe \uff0c \u7eff\u8272 \u901a\u9053 \u7eff\u8272\u901a\u9053 \u5b9a\u4e49 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff0c \u84dd\u8272 \u901a\u9053 \u5b9a\u4e49 \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u3002 \u8fd9\u4e9b \u8d34\u56fe \uff08 \u4ee5\u53ca \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u8d34\u56fe \u548c \u6cd5\u7ebf \u8d34\u56fe \uff09 \u53ef\u4ee5 \u4f7f\u7528 Adobe Substance 3D painter \u7b49 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u521b\u5efa \u3002 \u4f7f\u7528 \u865a\u5e7b \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5728 \u67d0\u4e2a \u9002\u5f53 \u7684 \u4f4d\u7f6e \u521b\u5efa \u4e00\u4e2a \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u53f3\u952e \u5355\u51fb \u5e76 Import to PATH / TO / FOLDER \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u9876\u90e8 \u9644\u8fd1 \u8fdb\u884c \u9009\u62e9 \uff0c \u4e5f \u53ef\u4ee5 \u5c06 \u6587\u4ef6 \u76f4\u63a5 \u62d6 \u653e\u5230 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u4e00\u4e2a \u5305\u542b \u4ece Blender \u5bfc\u51fa \u7684 \u57fa\u7840 \u7f51\u683c \u548c UV \u8d34\u56fe \u7684 FBX \u6587\u4ef6 \u3002 \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d \uff0c \u5bf9\u4e8e Normal Import Method \u786e\u4fdd \u201c \u7f51\u683c \u201d \u90e8\u5206 \u9009\u62e9 \u4e86 \u201c \u5bfc\u5165 \u6cd5\u7ebf ( Import Normals ) \uff0c \u5e76\u4e14 \u5728 \u201c \u6750\u8d28 ( Material ) \u201d \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 Do Not Create Material \u3002 \u5728 \u201c \u6750\u8d28 \u201d \u90e8\u5206 \u4e2d \u53d6\u6d88 \u9009\u62e9 \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u624b\u52a8 \u5bfc\u5165 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 FBX \u6587\u4ef6 \u4e2d \u5df2 \u5d4c\u5165 \u7684 \u67d0\u4e9b \u7eb9\u7406 \uff0c \u8fd9\u4e9b \u9009\u62e9 \u5c06\u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u9009\u62e9 Import All \u3002 \u5bfc\u5165 \u5b8c\u6210 \u540e \uff0c \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u7684 \u5bfc\u5165 \u8d44\u6e90 \u8fdb\u884c \u7f16\u8f91 \u3002 \u6211\u4eec \u73b0\u5728 \u5e94\u8be5 \u5bfc\u5165 \u7eb9\u7406 \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u989c\u8272 \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7eb9\u7406 \u3001 \u6cd5\u7ebf \u8d34\u56fe \u548c ORM \u8d34\u56fe \u3002 \u901a\u8fc7 \u53cc\u51fb \u6253\u5f00 ORM \u8d34\u56fe \u5e76 \u53d6\u6d88 \u9009\u62e9 sRGB \u9009\u9879 \uff0c \u4ee5 \u786e\u4fdd \u6b63\u786e \u5e94\u7528 \u7eb9\u7406 \u3002 \u53f3\u952e \u5355\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u4ece \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Material \u3002 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u521b\u5efa \u65b0 \u6750\u6599 \u3002 \u53cc\u51fb \u8fdb\u884c \u7f16\u8f91 \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 \u5bfc\u5165 \u7684 \u7eb9\u7406 \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u6750\u8d28 \u7f16\u8f91 \u7a97\u53e3 \u4e2d \uff0c \u73b0\u5728 \u60a8 \u5c06 \u5728 \u6750\u8d28 \u8282\u70b9 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u83b7\u5f97 3 \u4e2a \u65b0 \u8282\u70b9 \u3002 \u73b0\u5728 \u6839\u636e \u4ee5\u4e0b \u89c4\u5219 \u8fde\u63a5 \u8282\u70b9 \uff1a Diffuse RGB -- > Base Color Normal RGB -- > Normal ORM R -- > Ambient occlusion ORM G -- > Roughness ORM B -- > Metallic \u60a8 \u7684 \u6750\u8d28 \u8282\u70b9 \u56fe \u73b0\u5728 \u5e94\u8be5 \u4e0e \u6b64 \u7c7b\u4f3c \uff1a \u4fdd\u5b58 \u6750\u8d28 \uff0c \u7136\u540e \u518d\u6b21 \u6253\u5f00 \u8d44\u6e90 \u5e76 \u5c06 \u6750\u8d28 \u62d6\u5165 \u6750\u8d28 \u69fd \u4e2d \u3002 \u60a8 \u7684 \u8d44\u6e90 \u73b0\u5728 \u5e94\u8be5 \u5df2 \u5b8c\u5168 \u7eb9\u7406 \u5316 \u3002 \u73b0\u5728 \u4fdd\u5b58 \u8d44\u4ea7 \uff0c \u5373\u53ef \u5728 \u5730\u56fe \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u62d6\u52a8 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u653e\u5165 \u5730\u56fe \u4e2d \uff1a \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u5de5\u4f5c \u533a \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u4fdd\u5b58 \u5f53\u524d \u201d \u9009\u9879 \u4fdd\u5b58 \u5730\u56fe \uff0c \u5373\u53ef \u4f7f\u7528 \u3002 \u5f00\u59cb \u4eff\u771f \u3002 \u5730\u56fe \u4f5c\u8005 \u6307\u5357 \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u73b0\u5728 \u60a8 \u77e5\u9053 \u5982\u4f55 \u521b\u5efa \u9053\u8def \u7f51\u7edc \u5e76 \u5bfc\u5165 \u4e09\u7ef4 \u8d44\u4ea7 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u9605\u8bfb \u5982\u4f55 \u6253\u5305 \u5730\u56fe \u4ee5 \u5728 Carla \u72ec\u7acb \u7248\u672c \u4e2d \u4f7f\u7528 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 , \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficLight > StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u9009\u62e9 \u201c \u8be6\u7ec6 ( Details ) \u201d \u9762\u677f \u4e2d \u7684 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u7684 \u503c \uff0c \u4e3a \u6bcf\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8c03\u6574 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 4 . \u5bf9\u4e8e \u8def\u53e3 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u8def\u53e3 \u8def\u53e3\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f ( Traffic Lights ) \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u8981 \u5c06 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 \u201c \u53d8\u6362 ( Transform ) \u201d \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002 \u6750\u8d28 Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u5927\u91cf \u6709\u7528 \u7684 \u6750\u6599 \uff0c \u53ef \u968f\u65f6 \u7528\u4e8e \u66f4\u6539 \u5730\u56fe \u7684 \u5916\u89c2 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Carla > Static > GenericMaterials \u3002 \u5728 \u8fd9\u91cc \u60a8 \u4f1a \u53d1\u73b0 \u8bb8\u591a \u53ef \u7528\u4e8e \u6539\u53d8 \u5730\u56fe \u5916\u89c2 \u7684 \u6750\u6599 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u62d6 \u653e\u5230 \u5730\u56fe \u5143\u7d20 \u4e0a\u6765 \u5feb\u901f \u6d4b\u8bd5 \u6750\u8d28 \uff1a \u9053\u8def \u753b\u5bb6 \u9053\u8def \u753b\u5bb6 \u662f \u4e00\u79cd \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u5916\u89c2 \u7684 \u5de5\u5177 \uff0c \u901a\u8fc7 \u9644\u52a0 \u7eb9\u7406 \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u6dfb\u52a0 \u989d\u5916 \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002 \u9053\u8def \u753b\u5bb6 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61 1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign > RoadPainterAssets . \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials . \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 \u201c \u5730\u56fe \u5c3a\u5bf8 \u201d ( Map Size ( Cm ) ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 \u201d \u5730\u56fe \u5c3a\u5bf8 ( Cm ) ( Map Size ( Cm ) ) \u201c \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 _ \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 _ \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 _ Paint - > Render Target _ \u3002 \u51c6\u5907 \u4e3b \u6750\u8d28 \u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u8d28 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u8d28 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb \u8be5 Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO \u5f3a\u5ea6 ( Intensity ) \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game > Carla > Static > GenericMaterials > Asphalt > Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002 \u63cf\u7ed8 \u9053\u8def 1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u7684 \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u7ed9 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u5e94\u7528 Tutorial _ RoadMaster \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 \u6bcf\u79cd \u6750\u8d28 Tutorial _ RoadMaster \u90fd \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 \u5237\u5b50 \u9762\u677f \u3002 \u4e0d\u540c \u7c7b\u578b \u7684 \u5237\u5b50 \u3002 4 . \u5c06 \u6bcf\u79cd \u6750\u8d28 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u7684 \u201c \u9ed8\u8ba4 ( Default ) \u201d \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u8d28 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content > Carla Static > Decals \u548c Content > Carla > Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c\u751f Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2 \u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 Save \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002 \u6811\u6728 \u548c \u690d\u88ab Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u4e00\u5957 \u5168\u9762 \u7684 \u690d\u88ab \u84dd\u56fe \uff0c \u4f9b \u60a8 \u4e3a \u5730\u56fe \u7684 \u8d8a\u91ce \u533a\u57df \uff08 \u5982 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u516c\u56ed \u3001 \u5c71\u5761 \u3001 \u7530\u91ce \u548c \u68ee\u6797 \uff09 \u589e\u6dfb \u66f4 \u591a \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002 \u5bfc\u822a \u5230 Carla \u5185\u5bb9 \u5e93\u4e2d \u7684 \u690d\u88ab \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Carla > Static > Visitation \u3002 \u60a8 \u4f1a \u627e\u5230 \u591a\u79cd \u6811\u6728 \u3001 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7684 \u84dd\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b \u5143\u7d20 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u5730\u56fe \u4e2d \u3002 \u6811\u53f6 \u5de5\u5177 \u5bf9\u4e8e \u6811\u6728 \u548c \u690d\u88ab \u6765\u8bf4 \uff0c \u4e00\u4e2a \u6709\u7528 \u7684 \u5de5\u5177 \u662f \u865a\u5e7b \u5f15\u64ce \u6811\u53f6 \u5de5\u5177 \u3002 \u901a\u8fc7 \u4ece \u5de5\u5177 \u5de5\u5177\u680f \u7684 mode \u4e0b \u62c9 \u5217\u8868 \u4e2d \u9009\u62e9 \u6765 \u6fc0\u6d3b \u8be5 \u5de5\u5177 \u3002 \u5c06 \u6240 \u9700 \u7684 \u6811\u53f6 \u9879\u76ee \u62d6 \u5230 \u6807\u6709 + Drop Foliage Here \u7684 \u6846\u4e2d \u3002 \u5728 \u5bc6\u5ea6 \u5b57\u6bb5 \u4e2d \u8bbe\u7f6e \u9002\u5f53 \u7684 \u5bc6\u5ea6 \uff0c \u7136\u540e \u4f7f\u7528 \u6811\u53f6 \u9879\u76ee \u7ed8\u5236 \u5230 \u5730\u56fe \u4e0a \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u65bd \u5b50 \u5173\u5361 \u3002 . \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#-","text":"Carla \u63d0\u4f9b \u4e86 \u5927\u91cf \u7684 \u8d44\u6e90 \uff0c \u53ef \u7528\u4e8e \u521b\u5efa \u5f00\u7bb1 \u5373\u7528 \u7684 \u9a7e\u9a76 \u4eff\u771f \u3002 \u7136\u800c \uff0c Carla \u7684 \u771f\u6b63 \u529b\u91cf \u5728\u4e8e \u5176 \u5168\u9762 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \uff0c \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u5b8c\u5168 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u73af\u5883 \uff0c \u5176\u4e2d \u5305\u542b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u957f\u51f3 \u3001 \u5783\u573e \u5783\u573e\u6876 \u3001 \u96d5\u50cf \u3001 \u8def\u706f \u548c \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u5b9a\u5236 \u8d44\u4ea7 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 \u7b80\u5355 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e24\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u6765 \u521b\u5efa \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 RoadRunner \u521b\u5efa \u9053\u8def \u7f51\u7edc \uff0c \u7136\u540e \u901a\u8fc7 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5c06 \u8d44\u6e90 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5927 \u5730\u56fe \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 RoadRunner \u5bfc\u5165 Carla \u5bfc\u5165 \u8d44\u4ea7 \u4ea4\u901a \u4ea4\u901a\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 Materials \u9053\u8def \u753b\u5bb6 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4e3b \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61 \u51c6\u5907 \u4e3b \u6750\u6599 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2 \u4e0b \u4e00\u6b65 \u6811\u6728 \u548c \u690d\u88ab \u6811\u53f6 \u5de5\u5177","title":"\u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#_1","text":"\u8981 \u9075\u5faa \u672c \u6307\u5357 \uff0c \u60a8 \u9700\u8981 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8bf7 \u9075\u5faa \u76f8\u5173 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7684 \u6784\u5efa \u8bf4\u660e \u3002 \u60a8 \u8fd8 \u9700\u8981 RoadRunner \u7684 \u8bb8\u53ef \u526f\u672c \u3002 \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 Maya \u3001 3DS Max \u6216 Blender \u7b49 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6765 \u4e3a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \u3002 \u60a8 \u5e94\u8be5 \u786e\u4fdd \u5df2 \u5b8c\u6210 \u6784\u5efa Carla \u7684 \u6240\u6709 \u6b65\u9aa4 \u5e76 \u786e\u4fdd \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6b63\u5728 \u8fd0\u884c \uff0c \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u6784\u5efa \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \uff0c \u5219 \u5e94 \u4f7f\u7528 \u9002\u5f53 \u7684 \u4e09\u7ef4 \u8bbe\u8ba1 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u4f8b\u5982 Blender \u3001 Maya \u3001 3DsMax \u6216 Modo \u3002","title":"\u5148\u51b3\u6761\u4ef6"},{"location":"tuto_content_authoring_maps/#_2","text":"\u4ee5\u4e0b \u6587\u672c \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u548c \u88c5\u9970 \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5177\u6709 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 \u5927 \u5730\u56fe \u7684 \u6bd4\u4f8b \u6bd4 \u6807\u51c6 \u5730\u56fe \u66f4\u5927 \uff0c \u6700\u5927 \u53ef \u8fbe 100 km 2 \u3002 \u7531\u4e8e \u786c\u4ef6 \u9650\u5236 \uff0c \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \uff0c \u5373\u4f7f \u5728 \u9ad8\u7aef \u663e\u5361 \u4e2d \u4e5f \u662f \u5982\u6b64 \u3002 \u5927 \u5730\u56fe \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u5e76\u4e14 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d\u4ec5 \u52a0\u8f7d \u7acb\u5373 \u9700\u8981 \u7684 \u56fe\u5757 \uff08 \u5373 \u6700 \u63a5\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \uff09 \u3002 \u5176\u4ed6 \u56fe\u5757 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u76f4\u5230 \u9700\u8981 \u6570\u636e \u4e3a\u6b62 \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5b9e\u73b0 Carla \u4eff\u771f \u7684 \u6700\u9ad8 \u6027\u80fd \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7ec6\u8282 \u4e0e \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u7c7b\u4f3c \uff0c \u4f46 \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u3002 \u8bf7 \u6309\u7167 \u672c \u6307\u5357 \u4e3a Carla \u6784\u5efa \u5927 \u5730\u56fe \u3002","title":"\u5927 \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#_3","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730\u56fe \u751f\u6210 \u5de5\u5177 \uff0c \u5b83 \u4ece OpenStreetMap \u83b7\u53d6 \u9053\u8def \u7f51\u7edc \u6570\u636e \uff0c \u5e76\u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u88c5\u9970 \u5730\u56fe \u3002 \u8bf7 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u8be5 \u5de5\u5177 \u7684 \u4fe1\u606f \u3002","title":"\u6570\u5b57 \u5b6a\u751f \u5de5\u5177"},{"location":"tuto_content_authoring_maps/#roadrunner","text":"\u6253\u5f00 RoadRunner \u5e76 \u521b\u5efa \u4e00\u4e2a \u65b0 \u573a\u666f \u3002 \u9009\u62e9 \u9053\u8def \u89c4\u5212 \u5de5\u5177 ( Road Plan Tool ) \u5e76 \u5728 \u5de5\u4f5c \u533a\u4e2d \u53f3\u952e \u5355\u51fb \u4ee5 \u653e\u7f6e \u9053\u8def \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u548c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u3002 \u5355\u51fb \u5e76 \u62d6\u52a8 \u9053\u8def \u5c3d\u5934 \u7684 \u7ea2\u70b9 \u4ee5 \u79fb\u52a8 \u548c \u5ef6\u957f \u9053\u8def \u3002 \u51fa\u4e8e \u672c \u6559\u7a0b \u7684 \u76ee\u7684 \uff0c \u6211\u4eec \u4f7f\u7528 \u4e2d\u95f4 \u6709 \u4e00\u4e2a \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u7b80\u5355 \u692d\u5706 \u5706\u5f62 \u692d\u5706\u5f62 \u9053\u8def \u3002 \u8981 \u6784\u5efa \u66f4 \u9ad8\u7ea7 \u7684 \u7f51\u7edc \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Roadrunner \u6587\u6863 \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u521b\u5efa \u6240 \u9700 \u7684 \u9053\u8def \u7f51\u7edc \u540e \uff0c \u5728 RoadRunner \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u9009\u62e9 File > Export > Carla Filmbox ( . fbx , . xodr , . rrdata . xml ) \u5e76 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 RoadRunner \u662f \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6700\u4f73 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8fd8\u6709 \u4e00\u4e9b \u66ff\u4ee3 \u65b9\u6848 \uff0c \u4f8b\u5982 OpenStreetMap \uff0c \u4e13\u6ce8 \u4e8e \u4ece \u771f\u5b9e \u7684 \u9053\u8def \u5730\u56fe \u751f\u6210 \u5730\u56fe \u3002","title":"\u4f7f\u7528 RoadRunner \u521b\u5efa \u8def\u7f51"},{"location":"tuto_content_authoring_maps/#truevision","text":"RoadRunner \u662f \u4e00\u6b3e \u9700\u8981 MATLAB \u7684 \u4e13\u6709 \u8f6f\u4ef6 \u3002 \u5927\u5b66 \u7b49 \u4e00\u4e9b \u673a\u6784 \u53ef\u80fd \u4e0e MathWorks \u8fbe\u6210 \u4e86 \u534f\u8bae \uff0c \u4ee5\u4fbf \u67d0\u4e9b \u7528\u6237 \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u9884\u7b97 \uff0c RoadRunner \u7684 \u4e00\u4e2a \u65b9\u4fbf \u7684 \u5f00\u6e90 \u66ff\u4ee3 \u65b9\u6848 \u662f TrueVision Designer \u3002 \u6b64 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u5177\u6709 \u8bb8\u591a \u4e0e RoadRunner \u76f8\u540c \u7684 \u529f\u80fd \uff0c \u5982\u679c \u60a8 \u65e0\u6cd5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8be5 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4f1a \u975e\u5e38 \u6709\u7528 \u3002","title":"TrueVision \u8bbe\u8ba1 \u5668"},{"location":"tuto_content_authoring_maps/#carla","text":"Carla \u9700\u8981 \u7684 \u91cd\u8981 \u5bfc\u51fa \u6587\u4ef6 \u662f . xodr \u6587\u4ef6 \u548c . fbx \u6587\u4ef6 \u3002 \u5c06 \u8fd9\u4e9b \u6587\u4ef6 \u590d\u5236 \u6216 \u79fb\u52a8 \u5230 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u5b58\u50a8 \u5e93 \u76ee\u5f55 \u6839\u76ee\u5f55 \u5185 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u73b0\u5728 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c make import . \u8fd9\u4f1a \u5c06 \u9053\u8def \u7f51\u7edc \u5bfc\u5165 Carla \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u770b\u5230 \u65b0 \u5730\u56fe \u3002 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u8fd0\u884c make launch \u4ee5 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u60a8 \u73b0\u5728 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u4e00\u4e2a \u540d\u4e3a map _ package \u7684 \u65b0 \u76ee\u5f55 \u3002 \u5728 \u6b64 \u76ee\u5f55 Content > map _ package > Maps > tutorial \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u627e\u5230 \u60a8 \u7684 \u65b0 \u5730\u56fe \u3002 \u7b14\u8bb0 \u53ef\u4ee5 \u53c2\u8003 \u94fe\u63a5 \u901a\u8fc7 \u9f20\u6807 \u53f3\u952e \u7684 \u65b9\u5f0f \u76f4\u63a5 \u5bfc\u5165 \u3002 \u60a8 \u73b0\u5728 \u5df2\u7ecf \u521b\u5efa \u4e86 \u9053\u8def \u7f51\u7edc \uff0c \u8fd9\u662f \u5730\u56fe \u7684 \u57fa\u7840 \u3002","title":"\u5c06 \u60a8 \u7684 \u8def\u7f51 \u5bfc\u5165 Carla"},{"location":"tuto_content_authoring_maps/#_4","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u6709 \u4e86 \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u5730\u56fe \u7684 \u57fa\u7840 \uff0c \u6211\u4eec \u73b0\u5728 \u60f3\u8981 \u4e3a \u5730\u56fe \u521b\u5efa \u4e00\u4e9b \u5185\u5bb9 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff08 \u4f8b\u5982 Autodesk Maya \u3001 3DS Max \u3001 Blender \u6216 \u5177\u6709 \u9002\u5f53 \u5bfc\u51fa \u9009\u9879 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u521b\u5efa \u3002 \u91cd\u8981 \u7684 \u662f \uff0c \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u81f3\u5c11 \u80fd\u591f \u5bfc\u51fa . fbx \u3002 \u5728 Carla \u4e2d \u521b\u5efa \u8d44\u4ea7 \u9700\u8981 \u51e0\u4e2a \u5143\u7d20 \uff1a \u7f51\u683c - \u4e00\u7ec4 3D \u5750\u6807 \u9876\u70b9 \u548c \u5173\u8054 \u7684 \u8fde\u63a5 \u8fb9 \u3002 UV \u8d34\u56fe - \u5c06 \u4e09\u7ef4 \u9876\u70b9 \u548c \u8fb9 \u6620\u5c04 \u5230 \u4e8c\u7ef4 \u7eb9\u7406 \u7a7a\u95f4 \uff0c \u4ee5 \u5c06 \u7eb9\u7406 \u4e0e \u4e09\u7ef4 \u4f4d\u7f6e \u8fdb\u884c \u5339\u914d \u3002 \u7eb9\u7406 - \u5b9a\u4e49 \u4e09\u7ef4 \u5bf9\u8c61 \u8868\u9762 \u4e0a \u663e\u793a \u7684 \u989c\u8272 \u548c \u56fe\u6848 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u3002 \u6cd5\u7ebf \u8d34\u56fe - \u5b9a\u4e49 \u76ee\u6807 \u8868\u9762 \u6cd5\u7ebf \u65b9\u5411 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \uff0c \u4ee5\u5411 \u76ee\u6807 \u8868\u9762 \u6dfb\u52a0 \u4e09\u7ef4 \u53d8\u5316 \u3002 ORM \u8d34\u56fe - \u5b9a\u4e49 \u91d1\u5c5e \u5ea6 ( Metallicity ) \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 ( Roughness ) \u548c \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 ( Occlusion ) \u533a\u57df \u7684 \u8d34\u56fe ORM \u8d34\u56fe \u5229\u7528 \u6807\u51c6 RGBA \u7f16\u7801 \u56fe\u50cf \u7684 \u901a\u9053 \u5bf9 \u91d1\u5c5e \u533a\u57df \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u548c \u73af\u5883 \u906e\u6321 \u7684 \u8d34\u56fe \u8fdb\u884c \u7f16\u7801 \u3002 \u5f53 \u6211\u4eec \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u8d34\u56fe \u65f6 \uff0c \u7ea2\u8272 \u901a\u9053 \u5b9a\u4e49 \u91d1\u5c5e \u8d34\u56fe \uff0c \u7eff\u8272 \u901a\u9053 \u7eff\u8272\u901a\u9053 \u5b9a\u4e49 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff0c \u84dd\u8272 \u901a\u9053 \u5b9a\u4e49 \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u3002 \u8fd9\u4e9b \u8d34\u56fe \uff08 \u4ee5\u53ca \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u8d34\u56fe \u548c \u6cd5\u7ebf \u8d34\u56fe \uff09 \u53ef\u4ee5 \u4f7f\u7528 Adobe Substance 3D painter \u7b49 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u521b\u5efa \u3002 \u4f7f\u7528 \u865a\u5e7b \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5728 \u67d0\u4e2a \u9002\u5f53 \u7684 \u4f4d\u7f6e \u521b\u5efa \u4e00\u4e2a \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u53f3\u952e \u5355\u51fb \u5e76 Import to PATH / TO / FOLDER \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u9876\u90e8 \u9644\u8fd1 \u8fdb\u884c \u9009\u62e9 \uff0c \u4e5f \u53ef\u4ee5 \u5c06 \u6587\u4ef6 \u76f4\u63a5 \u62d6 \u653e\u5230 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u4e00\u4e2a \u5305\u542b \u4ece Blender \u5bfc\u51fa \u7684 \u57fa\u7840 \u7f51\u683c \u548c UV \u8d34\u56fe \u7684 FBX \u6587\u4ef6 \u3002 \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d \uff0c \u5bf9\u4e8e Normal Import Method \u786e\u4fdd \u201c \u7f51\u683c \u201d \u90e8\u5206 \u9009\u62e9 \u4e86 \u201c \u5bfc\u5165 \u6cd5\u7ebf ( Import Normals ) \uff0c \u5e76\u4e14 \u5728 \u201c \u6750\u8d28 ( Material ) \u201d \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 Do Not Create Material \u3002 \u5728 \u201c \u6750\u8d28 \u201d \u90e8\u5206 \u4e2d \u53d6\u6d88 \u9009\u62e9 \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u624b\u52a8 \u5bfc\u5165 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 FBX \u6587\u4ef6 \u4e2d \u5df2 \u5d4c\u5165 \u7684 \u67d0\u4e9b \u7eb9\u7406 \uff0c \u8fd9\u4e9b \u9009\u62e9 \u5c06\u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u9009\u62e9 Import All \u3002 \u5bfc\u5165 \u5b8c\u6210 \u540e \uff0c \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u7684 \u5bfc\u5165 \u8d44\u6e90 \u8fdb\u884c \u7f16\u8f91 \u3002 \u6211\u4eec \u73b0\u5728 \u5e94\u8be5 \u5bfc\u5165 \u7eb9\u7406 \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u989c\u8272 \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7eb9\u7406 \u3001 \u6cd5\u7ebf \u8d34\u56fe \u548c ORM \u8d34\u56fe \u3002 \u901a\u8fc7 \u53cc\u51fb \u6253\u5f00 ORM \u8d34\u56fe \u5e76 \u53d6\u6d88 \u9009\u62e9 sRGB \u9009\u9879 \uff0c \u4ee5 \u786e\u4fdd \u6b63\u786e \u5e94\u7528 \u7eb9\u7406 \u3002 \u53f3\u952e \u5355\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u4ece \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Material \u3002 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u521b\u5efa \u65b0 \u6750\u6599 \u3002 \u53cc\u51fb \u8fdb\u884c \u7f16\u8f91 \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 \u5bfc\u5165 \u7684 \u7eb9\u7406 \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u6750\u8d28 \u7f16\u8f91 \u7a97\u53e3 \u4e2d \uff0c \u73b0\u5728 \u60a8 \u5c06 \u5728 \u6750\u8d28 \u8282\u70b9 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u83b7\u5f97 3 \u4e2a \u65b0 \u8282\u70b9 \u3002 \u73b0\u5728 \u6839\u636e \u4ee5\u4e0b \u89c4\u5219 \u8fde\u63a5 \u8282\u70b9 \uff1a Diffuse RGB -- > Base Color Normal RGB -- > Normal ORM R -- > Ambient occlusion ORM G -- > Roughness ORM B -- > Metallic \u60a8 \u7684 \u6750\u8d28 \u8282\u70b9 \u56fe \u73b0\u5728 \u5e94\u8be5 \u4e0e \u6b64 \u7c7b\u4f3c \uff1a \u4fdd\u5b58 \u6750\u8d28 \uff0c \u7136\u540e \u518d\u6b21 \u6253\u5f00 \u8d44\u6e90 \u5e76 \u5c06 \u6750\u8d28 \u62d6\u5165 \u6750\u8d28 \u69fd \u4e2d \u3002 \u60a8 \u7684 \u8d44\u6e90 \u73b0\u5728 \u5e94\u8be5 \u5df2 \u5b8c\u5168 \u7eb9\u7406 \u5316 \u3002 \u73b0\u5728 \u4fdd\u5b58 \u8d44\u4ea7 \uff0c \u5373\u53ef \u5728 \u5730\u56fe \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u62d6\u52a8 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u653e\u5165 \u5730\u56fe \u4e2d \uff1a \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u5de5\u4f5c \u533a \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u4fdd\u5b58 \u5f53\u524d \u201d \u9009\u9879 \u4fdd\u5b58 \u5730\u56fe \uff0c \u5373\u53ef \u4f7f\u7528 \u3002 \u5f00\u59cb \u4eff\u771f \u3002 \u5730\u56fe \u4f5c\u8005 \u6307\u5357 \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u73b0\u5728 \u60a8 \u77e5\u9053 \u5982\u4f55 \u521b\u5efa \u9053\u8def \u7f51\u7edc \u5e76 \u5bfc\u5165 \u4e09\u7ef4 \u8d44\u4ea7 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u9605\u8bfb \u5982\u4f55 \u6253\u5305 \u5730\u56fe \u4ee5 \u5728 Carla \u72ec\u7acb \u7248\u672c \u4e2d \u4f7f\u7528 \u3002","title":"\u5bfc\u5165 \u8d44\u4ea7 \u5e76 \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#_5","text":"\u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 , \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficLight > StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u9009\u62e9 \u201c \u8be6\u7ec6 ( Details ) \u201d \u9762\u677f \u4e2d \u7684 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u7684 \u503c \uff0c \u4e3a \u6bcf\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8c03\u6574 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 4 . \u5bf9\u4e8e \u8def\u53e3 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u8def\u53e3 \u8def\u53e3\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f ( Traffic Lights ) \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002","title":"\u4ea4\u901a\u706f"},{"location":"tuto_content_authoring_maps/#_6","text":"\u8981 \u5c06 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 \u201c \u53d8\u6362 ( Transform ) \u201d \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002","title":"\u4ea4\u901a\u6807\u5fd7"},{"location":"tuto_content_authoring_maps/#_7","text":"Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u5927\u91cf \u6709\u7528 \u7684 \u6750\u6599 \uff0c \u53ef \u968f\u65f6 \u7528\u4e8e \u66f4\u6539 \u5730\u56fe \u7684 \u5916\u89c2 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Carla > Static > GenericMaterials \u3002 \u5728 \u8fd9\u91cc \u60a8 \u4f1a \u53d1\u73b0 \u8bb8\u591a \u53ef \u7528\u4e8e \u6539\u53d8 \u5730\u56fe \u5916\u89c2 \u7684 \u6750\u6599 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u62d6 \u653e\u5230 \u5730\u56fe \u5143\u7d20 \u4e0a\u6765 \u5feb\u901f \u6d4b\u8bd5 \u6750\u8d28 \uff1a","title":"\u6750\u8d28"},{"location":"tuto_content_authoring_maps/#_8","text":"\u9053\u8def \u753b\u5bb6 \u662f \u4e00\u79cd \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u5916\u89c2 \u7684 \u5de5\u5177 \uff0c \u901a\u8fc7 \u9644\u52a0 \u7eb9\u7406 \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u6dfb\u52a0 \u989d\u5916 \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002","title":"\u9053\u8def \u753b\u5bb6"},{"location":"tuto_content_authoring_maps/#_9","text":"\u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002 \u9053\u8def \u753b\u5bb6 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f"},{"location":"tuto_content_authoring_maps/#_10","text":"1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign > RoadPainterAssets . \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials . \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 \u201c \u5730\u56fe \u5c3a\u5bf8 \u201d ( Map Size ( Cm ) ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 \u201d \u5730\u56fe \u5c3a\u5bf8 ( Cm ) ( Map Size ( Cm ) ) \u201c \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 _ \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 _ \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 _ Paint - > Render Target _ \u3002","title":"\u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61"},{"location":"tuto_content_authoring_maps/#_11","text":"\u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u8d28 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u8d28 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb \u8be5 Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO \u5f3a\u5ea6 ( Intensity ) \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game > Carla > Static > GenericMaterials > Asphalt > Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002","title":"\u51c6\u5907 \u4e3b \u6750\u8d28"},{"location":"tuto_content_authoring_maps/#_12","text":"1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u7684 \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u7ed9 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u5e94\u7528 Tutorial _ RoadMaster \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 \u6bcf\u79cd \u6750\u8d28 Tutorial _ RoadMaster \u90fd \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 \u5237\u5b50 \u9762\u677f \u3002 \u4e0d\u540c \u7c7b\u578b \u7684 \u5237\u5b50 \u3002 4 . \u5c06 \u6bcf\u79cd \u6750\u8d28 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u7684 \u201c \u9ed8\u8ba4 ( Default ) \u201d \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u8d28 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content > Carla Static > Decals \u548c Content > Carla > Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c\u751f Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002","title":"\u63cf\u7ed8 \u9053\u8def"},{"location":"tuto_content_authoring_maps/#_13","text":"\u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 Save \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002","title":"\u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2"},{"location":"tuto_content_authoring_maps/#_14","text":"Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u4e00\u5957 \u5168\u9762 \u7684 \u690d\u88ab \u84dd\u56fe \uff0c \u4f9b \u60a8 \u4e3a \u5730\u56fe \u7684 \u8d8a\u91ce \u533a\u57df \uff08 \u5982 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u516c\u56ed \u3001 \u5c71\u5761 \u3001 \u7530\u91ce \u548c \u68ee\u6797 \uff09 \u589e\u6dfb \u66f4 \u591a \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002 \u5bfc\u822a \u5230 Carla \u5185\u5bb9 \u5e93\u4e2d \u7684 \u690d\u88ab \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Carla > Static > Visitation \u3002 \u60a8 \u4f1a \u627e\u5230 \u591a\u79cd \u6811\u6728 \u3001 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7684 \u84dd\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b \u5143\u7d20 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u5730\u56fe \u4e2d \u3002","title":"\u6811\u6728 \u548c \u690d\u88ab"},{"location":"tuto_content_authoring_maps/#_15","text":"\u5bf9\u4e8e \u6811\u6728 \u548c \u690d\u88ab \u6765\u8bf4 \uff0c \u4e00\u4e2a \u6709\u7528 \u7684 \u5de5\u5177 \u662f \u865a\u5e7b \u5f15\u64ce \u6811\u53f6 \u5de5\u5177 \u3002 \u901a\u8fc7 \u4ece \u5de5\u5177 \u5de5\u5177\u680f \u7684 mode \u4e0b \u62c9 \u5217\u8868 \u4e2d \u9009\u62e9 \u6765 \u6fc0\u6d3b \u8be5 \u5de5\u5177 \u3002 \u5c06 \u6240 \u9700 \u7684 \u6811\u53f6 \u9879\u76ee \u62d6 \u5230 \u6807\u6709 + Drop Foliage Here \u7684 \u6846\u4e2d \u3002 \u5728 \u5bc6\u5ea6 \u5b57\u6bb5 \u4e2d \u8bbe\u7f6e \u9002\u5f53 \u7684 \u5bc6\u5ea6 \uff0c \u7136\u540e \u4f7f\u7528 \u6811\u53f6 \u9879\u76ee \u7ed8\u5236 \u5230 \u5730\u56fe \u4e0a \u3002","title":"\u6811\u53f6 \u5de5\u5177"},{"location":"tuto_content_authoring_maps/#_16","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u65bd \u5b50 \u5173\u5361 \u3002 . \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_content_authoring_vehicles/","text":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 Carla \u5728 \u84dd \u56fe\u5e93 \u4e2d \u63d0\u4f9b \u4e86 \u4e00\u5957 \u5f00\u7bb1 \u5373\u7528 \u7684 \u5168\u9762 \u8f66\u8f86 \u3002 Carla \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 \u5b9a\u5236 \u8f66\u8f86 \u5bf9\u6b64 \u8fdb\u884c \u6269\u5c55 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8be6\u7ec6 \u8f66\u8f86 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u975e\u5e38 \u590d\u6742 \u975e\u5e38\u590d\u6742 \uff0c \u9700\u8981 \u5f88 \u9ad8 \u7684 \u6280\u80fd \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u5efa\u8bae \u8bfb\u8005 \u53c2\u8003 \u6709\u5173 \u4e09\u7ef4 \u5efa\u6a21 \u7684 \u5176\u4ed6 \u6587\u6863 \u6765\u6e90 \uff0c \u56e0\u4e3a \u8fd9 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \u3002 \u7136\u800c \uff0c \u514d\u8d39 \u548c \u4e13\u6709 \u7684 \u5728\u7ebf \u5b58\u50a8 \u5e93\u4e2d \u6709 \u5927\u91cf \u7684 \u8f66\u8f86 \u6a21\u578b \u6765\u6e90 \u3002 \u56e0\u6b64 \uff0c \u7528\u6237 \u6709 \u591a\u79cd \u9009\u62e9 \u6765 \u521b\u5efa \u7528\u4e8e Carla \u7684 \u5b9a\u5236 \u8f66\u8f86 \u3002 \u4e3a Carla \u51c6\u5907 \u5b9a\u5236 \u8f66\u8f86 \u7684 \u5173\u952e \u56e0\u7d20 \u5173\u952e\u56e0\u7d20 \u5728\u4e8e \u88c5\u914d \u8f66\u8f86 \u9aa8\u67b6 \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u88c5\u914d \u548c \u5bfc\u5165 \u540e \uff0c \u9700\u8981 \u4e3a \u6c7d\u8f66 \u548c \u8f66\u8f6e \u8bbe\u7f6e \u84dd\u56fe \u3002 \u7136\u540e \u5e94\u7528 \u6750\u6599 \u5e76 \u6dfb\u52a0 \u8f66\u8f86 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u6211\u4eec \u5c06 \u5728 \u4ee5\u4e0b \u6307\u5357 \u4e2d \u4ecb\u7ecd \u8fd9\u4e9b \u6b65\u9aa4 \u3002 \u5efa\u6a21 \u547d\u540d \u7ea6\u5b9a \u88c5\u914d \u5bfc\u5165 \u7535\u67a2 \u8bbe\u7f6e \u7236\u7ea7 \u5206\u914d Blender \u63d2\u4ef6 \u5bfc\u51fa \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u7269\u7406 \u8d44\u4ea7 \u52a8\u753b \u84dd\u56fe \u6750\u8d28 \u4f7f\u7528 \u6750\u8d28 \u989c\u8272 \u900f\u660e \u6d82\u5c42 \u7c92\u72b6 \u8868\u9762 \u8584\u7247 \u7070\u5c18 \u73bb\u7483 \u73bb\u7483 \u7f51\u683c \u73bb\u7483 \u6750\u8d28 \u5355\u5c42 \u73bb\u7483 \u8f66\u8f6e \u8f66\u8f6e \u84dd\u56fe \u78b0\u649e \u7f51\u683c \u8f6e\u80ce \u914d\u7f6e \u8f66\u8f6e \u5c3a\u5bf8 \u706f UV \u8d34\u56fe \u5bfc\u5165 \u5efa\u6a21 \u8f66\u8f86 \u5e94\u6709 5 \u4e07\u5230 10 \u4e07\u4e2a \u9762\u7247 \u3002 \u4f5c\u4e3a \u6700\u4f73 \u5b9e\u8df5 \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u5bfc\u51fa \u4e4b\u524d \u6a21\u578b \u5bf9\u6a21\u578b \u8fdb\u884c \u4e09\u89d2 \u6d4b\u91cf \u4e09\u89d2\u6d4b\u91cf \u3002 Carla \u8f66\u8f86 \u662f \u53c2\u8003 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u8fdb\u884c \u5efa\u6a21 \u7684 \u3002 \u8bf7 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7279\u522b \u6ce8\u610f \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u5355\u4f4d \u3002 \u6709\u4e9b \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u6709\u4e9b \u5219 \u4ee5 \u7c73 \u4e3a \u5355\u4f4d \u3002 \u547d\u540d \u7ea6\u5b9a \u4e3a\u4e86 \u65b9\u4fbf \u548c \u4e00\u81f4 \uff0c \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u90e8\u5206 \u5e76 \u76f8\u5e94 \u547d\u540d \u3002 \u73bb\u7483 \u548c \u706f \u7684 \u5177\u4f53 \u7ec6\u8282 \u5c06 \u5728 \u540e\u9762 \u7684 \u90e8\u5206 \u4e2d \u4ecb\u7ecd \uff1a \u8f66\u8eab ( Bodywork ) : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 Carla \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d . fbx \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 \u5185\u9970 ( Interior ) : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 \u3002 \u6750\u8d28 ( Material ) \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 , M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002 \u4f7f\u7528 \u7535\u67a2 \u88c5\u914d \u8f66\u8f86 \u4e3a\u4e86 \u5728 \u4eff\u771f \u4e2d \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \uff0c \u6c7d\u8f66 \u9700\u8981 \u6709 \u65cb\u8f6c \u8f6e\u5b50 \uff0c \u524d \u4e00\u5bf9 \u8f6e\u5b50 \u53ef\u4ee5 \u968f\u7740 \u8f6c\u5411 \u8f93\u5165 \u800c \u8f6c\u52a8 \u3002 \u56e0\u6b64 \uff0c \u8981 \u4e3a Carla \u51c6\u5907 \u8f66\u8f86 \uff0c \u9700\u8981 \u5728 \u6c7d\u8f66 \u4e0a \u5b89\u88c5 \u7535\u67a2 \u4ee5 \u8bc6\u522b \u8f66\u8f6e \u5e76 \u5141\u8bb8 \u5176 \u79fb\u52a8 \u3002 \u5bfc\u5165 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u5bfc\u5165 \u6216 \u5efa\u6a21 \u8f66\u8f86 \u6a21\u578b \u7f51\u683c \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Blender 3D \u3002 \u786e\u4fdd \u8f6e\u5b50 \u4e0e \u4e3b\u4f53 \u5206\u79bb \u3002 \u6bcf\u4e2a \u8f6e\u5b50 \u5fc5\u987b \u53ef\u4ee5 \u4f5c\u4e3a \u4e00\u4e2a \u4e0d\u540c \u7684 \u5bf9\u8c61 \u8fdb\u884c \u8bbf\u95ee \u3002 \u786e\u4fdd \u8f66\u8f86 \u9762\u5411 \u6b63 X \u65b9\u5411 \u975e\u5e38 \u91cd\u8981 \uff0c \u56e0\u6b64 \u5f15\u64ce \u5f15\u64ce\u76d6 \u548c \u6321\u98ce \u73bb\u7483 \u6321\u98ce\u73bb\u7483 \u5e94 \u9762\u5411 \u6b63 X \u65b9\u5411 \u3002 \u6c7d\u8f66 \u7684 \u65b9\u5411 \u8fd8 \u5e94 \u4f7f \u5730\u677f \u5230 \u8f66\u9876 \u65b9\u5411 \u5904\u4e8e \u6b63 Z \u65b9\u5411 \u3002 \u8f66\u8f6e \u5e94\u8be5 \u6b63\u597d \u64e6 \u8fc7 XY \u5e73\u9762 \uff0c \u5e76\u4e14 \u539f\u70b9 \u5e94\u8be5 \u4f4d\u4e8e \u60a8 \u671f\u671b \u8f66\u8f86 \u8d28\u5fc3 \u4f4d\u4e8e XY \u5e73\u9762 \uff08 \u4f46 \u4e0d\u662f Z \u5e73\u9762 \uff09 \u7684 \u4f4d\u7f6e \u3002 \u6dfb\u52a0 \u7535\u67a2 \u73b0\u5728 \u5728 \u8f66\u8f86 \u7684 \u4e2d\u5fc3 \u6dfb\u52a0 \u4e00\u4e2a \u9aa8\u67b6 \uff0c \u786e\u4fdd \u7269\u4f53 \u6b63\u786e \u5c45\u4e2d \uff0c \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u6839\u90e8 \u5e94 \u8bbe\u7f6e \u5728 \u539f\u70b9 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \u5e76 \u5c06 \u9aa8\u67b6 \u7ed5 x \u8f74 \u65cb\u8f6c 90 \u5ea6 \u3002 \u73b0\u5728 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u6dfb\u52a0 4 \u4e2a \u9aa8\u9abc \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u9700\u8981 \u5b9a\u4f4d \uff0c \u4f7f\u5f97 \u9aa8\u9abc \u7684 \u6839\u90e8 \u4e0e \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u4e2d\u5fc3 \u91cd\u5408 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u7f16\u8f91 \u6a21\u5f0f \u4e0b \u5c06 \u4e09\u7ef4 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6bcf\u4e2a \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u6765 \u5b9e\u73b0 \u3002 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u9009\u62e9 \u5176\u4e2d \u4e00\u4e2a \u8f6e\u5b50 \uff0c \u9009\u62e9 \u4e00\u4e2a \u9876\u70b9 \uff0c \u6309 A \u9009\u62e9 \u6240\u6709 \u9876\u70b9 \uff0c \u7136\u540e Shift + S \u9009\u62e9 Cursor to selected \u3002 \u8fd9\u4f1a \u5c06 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u3002 \u7136\u540e \uff0c \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \uff0c \u9009\u62e9 \u9aa8\u67b6 \uff0c \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u9009\u62e9 \u9aa8\u9abc \u5e76 \u9009\u62e9 Selection to cursor \u3002 \u60a8 \u7684 \u9aa8\u9abc \u73b0\u5728 \u5c06 \u4e0e \u8f6e\u5b50 \u91cd\u5408 \u3002 \u65cb\u8f6c \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u4f7f \u5176 \u4e0e \u9aa8\u67b6 \u5e95\u90e8 \u5bf9\u9f50 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u8f6e\u5b50 \uff0c \u5efa\u8bae \u6839\u636e \u9700\u8981 \u8026\u5408 \u7684 \u8f6e\u5b50 \u6765 \u547d\u540d \u9aa8\u9abc \uff0c \u8fd9 \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u5728 \u9700\u8981 \u4e3a \u6bcf\u4e2a \u9aa8\u9abc \u5206\u914d \u9876\u70b9 \u7ec4\u65f6 \u8fdb\u884c \u8bc6\u522b \u3002 \u8bbe\u7f6e \u7236\u7ea7 \u73b0\u5728 \u5728 \u9879\u76ee \u5927\u7eb2 \u4e2d \u4f7f\u7528 shift \u6216 control \u9009\u62e9 \u8eab\u4f53 \u7684 \u6240\u6709 \u90e8\u5206 \u548c \u6240\u6709 4 \u4e2a \u8f6e\u5b50 \uff0c \u7136\u540e \u63a7\u5236 \u9009\u62e9 \u60a8 \u521b\u5efa \u7684 \u9aa8\u67b6 \uff08 \u8fd9\u4e2a \u987a\u5e8f \u5f88 \u91cd\u8981 \uff0c \u5982\u679c \u60a8 \u4ee5 \u76f8\u53cd \u7684 \u987a\u5e8f \u9009\u62e9 \u5b83\u4eec \u5c06 \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \uff09 \u3002 \u6309 Ctrl + p \u5e76 \u9009\u62e9 With empty groups \u5c06 \u7f51\u683c \u7ed1\u5b9a \u5230 \u9aa8\u67b6 \u3002 \u73b0\u5728 \u60a8 \u5df2 \u5c06 \u7f51\u683c \u4f53 \u8bbe\u7f6e \u4e3a \u9aa8\u67b6 \u7684 \u7236\u7ea7 \uff0c \u73b0\u5728 \u9700\u8981 \u5c06 \u6bcf\u4e2a \u8f6e\u5b50 \u5206\u914d \u7ed9 \u5176 \u5404\u81ea \u7684 \u9aa8\u9abc \u3002 \u5728 \u5927\u7eb2 \u89c6\u56fe \u6216 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8f6e\u5b50 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u7684 \u6240\u6709 \u9876\u70b9 \uff08 \u5feb\u6377 \u5feb\u6377\u952e - a \uff09 \u3002 \u5c06 \u6c7d\u8f66 \u96f6\u4ef6 \u6c7d\u8f66\u96f6\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u9abc \u9009\u62e9 \u5c5e\u6027 \u7684 \u7f51\u683c \u9009\u9879 \u9009\u9879\u5361 \uff08 \u7eff\u8272 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \uff09 \u3002 \u5728 \u7f51\u683c \u5c5e\u6027 \u9762\u677f \u7684 \u9876\u70b9 \u7ec4 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u9aa8\u67b6 \u7684 \u9aa8\u9abc \u3002 \u9009\u62e9 \u4e0e \u60a8 \u6b63\u5728 \u7f16\u8f91 \u7684 \u8f6e\u5b50 \u5bf9\u5e94 \u7684 \u9aa8\u9abc \uff0c \u7136\u540e \u9009\u62e9 Assign \u3002 \u5b89\u88c5 \u597d \u8f66\u8f6e \u540e \uff0c \u5c06 \u8f66\u8f86 \u7684 \u6240\u6709 \u5176\u4ed6 \u90e8\u4ef6 \u5b89\u88c5 \u5230 \u57fa\u9aa8 \u4e0a \u3002 \u5c06 \u6240\u6709 \u7f51\u683c \u90e8\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u67b6 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u79fb\u52a8 \u5230 \u59ff\u52bf \u6a21\u5f0f \u5e76 \u79fb\u52a8 \u76f8\u5173 \u9aa8\u9abc \u6765 \u6d4b\u8bd5 \u5b83 \u662f\u5426 \u6709\u6548 \u3002 \u8f66\u8f86 \u57fa\u9aa8\u5e94 \u79fb\u52a8 \u6574\u4e2a \u8f66\u8f86 \uff0c \u800c\u8f6e \u9aa8\u5e94 \u5206\u522b \u79fb\u52a8 \u5e76 \u65cb\u8f6c \u5404\u81ea \u7684 \u8f66\u8f6e \u3002 Ctrl + Z \u786e\u4fdd \u64a4\u6d88 \u60a8 \u53ef\u80fd \u505a\u51fa \u7684 \u4efb\u4f55 \u59ff\u52bf \u3002 Blender \u865a\u5e7b \u5f15\u64ce 4 \u8f66\u8f86 \u88c5\u914d \u63d2\u4ef6 Blender \u6709 \u4e00\u4e2a \u975e\u5e38 \u6709\u7528 \u7684 \u63d2\u4ef6 \uff0c \u7528\u4e8e \u88c5\u914d \u8f66\u8f86 \u4ee5 \u5bfc\u5165 Carla \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u4e0a\u8ff0 \u6b65\u9aa4 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u4ef6 \u7f51\u9875 \u4ee5 \u83b7\u53d6 \u8bf4\u660e \u3002 \u5bfc\u51fa \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u88c5\u914d \u6a21\u578b \u5bfc\u51fa \u4e3a FBX \u683c\u5f0f \uff0c \u4ee5\u4fbf \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u4ece \u201c \u6587\u4ef6 \u201d \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Export > FBX ( . fbx ) \u3002 \u5728 Include \u9762\u677f \u7684 Object Types \u90e8\u5206 \u4e2d \uff0c \u6309\u4f4f Shift \u952e \u9009\u62e9 Armature \u548c Mesh \u9009\u9879 \u3002 \u5728 Transform \u9762\u677f \u4e2d \u3002 \u66f4\u6539 Forward \u4e3a X Forward \uff0c \u5e76 \u66f4\u6539 Up \u4e3a Z Up . \u8fd9 \u5bf9\u4e8e \u786e\u4fdd \u8f66\u8f86 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5b9a\u5411 \u975e\u5e38 \u91cd\u8981 \u3002 \u5728 Armature \u90e8\u5206 \u4e2d \u53d6\u6d88 Add Leaf Bones \u9009\u4e2d \u5e76 \u53d6\u6d88 Bake Animation \u9009\u4e2d \u3002 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u76ee\u5f55 \uff09 \u4e2d \u4f7f\u7528 make launch \u547d\u4ee4 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6253\u5f00 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u8bbe\u7f6e \u9002\u5f53 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Import to .... \u3002 \u9009\u62e9 \u60a8 \u4e4b\u524d \u4ece Blender \uff08 \u6216 \u5176\u4ed6 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u5bfc\u51fa \u7684 FBX \u6587\u4ef6 \u3002 \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u5bfc\u5165 \u3002 \u8bbe\u7f6e \u7269\u7406 \u8d44\u4ea7 \u73b0\u5728 \uff0c \u60a8 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d\u5c06 \u5305\u542b 3 \u4e2a \u5185\u5bb9 \uff1a \u7f51\u683c \u3001 \u9aa8\u67b6 \u548c \u7269\u7406 \u8d44\u6e90 \u3002 \u53cc\u51fb \u7269\u7406 \u8d44\u6e90 \u8fdb\u884c \u8c03\u6574 \u3002 \u9996\u5148 \uff0c \u9009\u62e9 \u8f66\u4f53 \uff0c \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \uff0c \u5c06 Physics \u90e8\u5206 \u4e2d \u7684 Linear Damping \u66f4 \u6539\u4e3a 0.0 \uff0c \u68c0\u67e5 Collision \u90e8\u5206 \u7684 Simulation Generates Hit Events \uff0c \u5728 Body Creation \u90e8\u5206 \u5c06 Primitive Type \u4ece Capsule \u6539\u4e3a Box \u3002 \u7136\u540e \u6309 Regenerate bodies \u3002 \u80f6\u56ca \u73b0\u5728 \u5c06 \u53d8\u6210 \u4e00\u4e2a \u77e9\u5f62 \u76d2\u5b50 \u3002 \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u3002 \u73b0\u5728 \u9009\u62e9 \u6240\u6709 \u8f6e\u5b50 \uff08 \u5728 Skeleton Tree \u5de6\u4fa7 \u90e8\u5206 \uff09 \u3002 \u5c06 Linear Damping \u6539\u4e3a 0.0 \uff0c \u5c06 Physics Type \u8bbe\u7f6e \u4e3a Kinematic \uff0c \u5c06 Collision Response \u8bbe\u7f6e \u4e3a Disabled \uff0c \u5e76 \u9009\u62e9 Primitive Type \u4f5c\u4e3a Sphere \u3002 \u518d \u6309 Re - generate Bodies \u4e00\u6b21 \u3002 \u521b\u5efa \u52a8\u753b \u5728 \u60a8 \u62e5\u6709 \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Animation > Animation Blueprint \u3002 \u5728 \u6253\u5f00 \u7684 \u5f39\u51fa \u7a97\u53e3 \u4e2d \uff0c \u5728 Parent Class \u90e8\u5206 \u4e2d \u641c\u7d22 VehicleAnimInstance \uff0c \u7136\u540e \u641c\u7d22 Target Skeleton \u4e0e \u60a8 \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u5e94\u8be5 \u80fd\u591f \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u8be5 \u540d\u79f0 \u3002 \u9009\u62e9 \u4e24\u9879 \u8fd9\u4e24\u9879 \u540e \u6309 \u786e\u5b9a \u3002 \u8fd9 \u5c06 \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u3002 \u4e3a\u4e86 \u7b80\u5316 \u4e8b\u60c5 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ece \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u590d\u5236 \u52a8\u753b \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Content > Carla > Static > Vehicles > 4Wheeled \u5e76 \u9009\u62e9 \u4efb\u610f \u8f66\u8f86 \u3002 \u6253\u5f00 \u6240 \u9009 \u8f66\u8f86 \u7684 \u52a8\u753b \u84dd\u56fe \uff0c \u7136\u540e \u5c06 \u9664 \u6b64 \u8282\u70b9 \u4e4b\u5916 \u7684 \u6240\u6709 \u8282\u70b9 \u590d\u5236 Output pose \u5230 \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u4e2d \u3002 \u901a\u8fc7 \u62d6\u52a8 \u6700\u7ec8 \u8282\u70b9 \u4e0e \u8f93\u51fa \u8282\u70b9 \u4e4b\u95f4 \u7684 \u65b0 \u8fde\u63a5 \u6765 \u8fde\u63a5 \u8282\u70b9 \u3002 \u6309 \u7f16\u8bd1 \uff0c \u52a8\u753b \u84dd\u56fe \u73b0\u5df2 \u8bbe\u7f6e \u3002 \u521b\u5efa \u84dd\u56fe \u4f7f\u7528 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > LincolnMKZ2017 \u6216 \u7c7b\u4f3c \u7684 \u8f66\u8f86 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u4e00\u7ec4 \u4e3a 4 \u4e2a \u8f6e\u5b50 \u8bbe\u7f6e \u7684 \u84dd\u56fe \u3002 \u5c06 \u5b83\u4eec \u590d\u5236 \u590d\u5236\u5230 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u7684 \u76ee\u5f55 \u4e2d \u5e76\u91cd \u547d\u540d \u5b83\u4eec \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4ee5\u540e \u53ef\u4ee5 \u533a\u5206 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u613f\u610f \uff0c \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f6e\u5b50 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540e\u9762 \u7684 \u8f6e\u5b50 \u90e8\u5206 \u3002 \u53f3\u952e \u5355\u51fb \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u6240\u5728 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u5e76 \u9009\u62e9 Blueprint Class \u3002 \u5728 All Classes \u83dc\u5355 \u4e2d \u641c\u7d22 BaseVehiclePawn \u5e76 \u9009\u62e9 \u6b64\u7c7b \u3002 \u4e3a \u84dd\u56fe \u547d\u540d \u5e76 \u6253\u5f00 \u5b83 \u3002 \u5728 \u5de6\u4fa7 Components \u9009\u9879 \u9009\u9879\u5361 \u4e2d \u8fdb\u884c Mesh \u9009\u62e9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7f51\u683c \u62d6\u52a8 \u5230 \u53f3\u4fa7 \u7684 \u201c \u7f51\u683c \u201d \u90e8\u5206 \u4e2d \u3002 \u5728 Anim Class \u641c\u7d22 \u4e0e \u60a8 \u5728 \u4e0a \u4e00\u6b65 \u4e2d \u8bbe\u7f6e \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u52a8\u753b \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u84dd\u56fe \u7c7b \u7684 Components \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Vehicle Movement \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \u5bfc\u822a \u5230 \u8be5 Vehicle Setup \u90e8\u5206 \u3002 \u73b0\u5728 \uff0c \u5bf9\u4e8e \u6bcf\u4e2a \u8f66\u8f6e \uff0c \u627e\u5230 \u60a8 \u4e4b\u524d \u4e3a Wheel Class \u5c5e\u6027 \u590d\u5236 \u5e76\u91cd \u547d\u540d \u7684 \u76f8\u5173 \u8f66\u8f6e \u84dd\u56fe \u3002 \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u73b0\u5728 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > VehicleFactory \u5e76 \u53cc\u51fb \u5b83 \u4ee5 \u6253\u5f00 \u8f66\u8f86 \u5de5\u5382 \u3002 \u9009\u62e9 Vehicles \u8282\u70b9 \u5e76 \u5c55\u5f00 \u53f3\u4fa7 Default value \u90e8\u5206 \u4e2d \u7684 Vehicles \u9879 \u3002 \u6309 \u52a0\u53f7 \u56fe\u6807 \u6dfb\u52a0 \u60a8 \u7684 \u65b0\u8f66 \u3002 \u5411\u4e0b \u6eda\u52a8 \u5230 \u6700\u540e \u4e00\u4e2a \u6761\u76ee \u5e76 \u5c06 \u5176 \u5c55\u5f00 \uff0c \u5b83 \u5e94\u8be5 \u662f \u7a7a \u7684 \u3002 \u547d\u540d \u60a8 \u7684 \u8f66\u8f86 \u7684 \u54c1\u724c \u548c \u578b\u53f7 \uff0c \u7136\u540e \u5728 \u7c7b \u90e8\u5206 \u4e0b \u627e\u5230 \u60a8 \u5728 \u4e0a \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e2d \u521b\u5efa \u7684 \u84dd\u56fe \u7c7b \u3002 \u5c06 \u8f6e\u5b50 \u6570\u91cf \u4fdd\u7559 \u4e3a 4 \uff0c \u5e76 \u5c06 \u4e16\u4ee3 \u8bbe\u7f6e \u4e3a 2 \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u4e3a\u4e86 \u5b89\u5168 \u8d77 \u89c1 \uff0c \u8fdb\u884c \u5168\u5c40 \u4fdd\u5b58 \uff0c \u60a8 \u73b0\u5728 ...... \u51c6\u5907 \u5728 \u4eff\u771f \u4e2d \u8fd0\u884c \u60a8 \u7684 \u8f66\u8f86 \u3002 \u6309 \u865a\u5e7b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u201c \u8fd0\u884c \u201d \u6765 \u8fdb\u884c \u4eff\u771f \u3002 \u8fd0\u884c \u540e \uff0c \u6253\u5f00 \u7ec8\u7aef \u5e76 \u4f7f\u7528 \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 \u9009\u9879 \u8fd0\u884c \u811a\u672c manual _ control . py \u6765 \u6307\u5b9a \u60a8 \u7684 \u65b0 \u8f66\u8f86 \u578b\u53f7 \uff1a python manual _ control . py -- filter my _ vehicle _ make \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u8f66\u8f86 \u76ee\u524d \u6ca1\u6709 \u5e94\u7528 \u7eb9\u7406 \u6216 \u989c\u8272 \u3002 \u4e0b \u4e00\u6b65 \u662f \u5e94\u7528 \u6750\u6599 \uff0c \u4f7f \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u50cf \u771f\u6b63 \u7684 \u516c\u8def \u8f66\u8f86 \u4e00\u6837 \u7684 \u5916\u89c2 \u3002 \u6750\u8d28 \u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002 \u7ed9 \u60a8 \u7684 \u8f66\u8f86 \u5e94\u7528 \u4f7f\u7528 \u6750\u8d28 Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u4eff\u771f \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u6599 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u6599 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \uff1a \u989c\u8272 ( Color ) \u989c\u8272 \u8bbe\u7f6e \u51b3\u5b9a \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a \u900f\u660e \u6d82\u5c42 ( Clear coat ) \u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u51b3\u5b9a \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f Clear Coat Intensity \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002 \u7c92\u72b6 \u8868\u9762 ( Orange peel ) \u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e0a \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u7c92\u72b6 \u8868\u9762 \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002 \u8584\u7247 ( Flakes ) \u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u8d4b\u4e88 \u6c7d\u8f66 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u5149\u7ebf \u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f \u7070\u5c18 ( Dust ) \u6c7d\u8f66 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u8fd9\u4f1a \u589e\u52a0 \u8f66\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002 \u73bb\u7483 \u5728 Carla \u4e2d \u521b\u5efa \u903c\u771f \u7684 \u73bb\u7483 \u9700\u8981 \u4e00\u4e9b \u6280\u5de7 \u6765 \u6355\u6349 \u673a\u52a8 \u52a8\u8f66 \u8f66\u8f86 \u673a\u52a8\u8f66 \u673a\u52a8\u8f66\u8f86 \u4e2d \u4f7f\u7528 \u7684 \u73bb\u7483 \u7684 \u771f\u5b9e \u6298\u5c04 \u548c \u53cd\u5c04 \u884c\u4e3a \u3002 Carla \u8f66\u5e93 \u8f66\u8f86 \u6709 4 \u5c42 \u73bb\u7483 \u7f51\u683c \uff0c \u91c7\u7528 2 \u79cd \u4e0d\u540c \u7684 \u6750\u6599 \u3002 \u5404\u5c42 \u4e4b\u95f4 \u95f4\u9694 \u6beb\u7c73 \u51e0\u6beb\u7c73 \uff0c \u5185\u90e8 \u548c \u5916\u90e8 \u73bb\u7483 \u5c42 \u91c7\u7528 \u4e0d\u540c \u7684 \u6750\u6599 \uff0c \u4ee5 \u786e\u4fdd \u73bb\u7483 \u4ece \u8f66\u8f86 \u5185\u90e8 \u548c \u5916\u90e8 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u90fd \u5f88 \u903c\u771f \u3002 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \uff0c \u4ece \u8f66\u8f86 \u5185\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \u3002 \u73bb\u7483 \u6240\u4ee5 \u4e4b\u6240\u4ee5 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u73bb\u7483 \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a \u6765\u81ea \u73bb\u7483 \u4e24\u4e2a \u8868\u9762 \u7684 \u53cd\u5c04 \u4f7f\u5f97 \u53cd\u5c04 \u975e\u5e38 \u5fae\u5999 \u5730 \u52a0\u500d \u3002 \u73bb\u7483 \u7f51\u683c \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u770b\u5230 \u8fde\u63a5 \u5230 \u6797\u80af \u4e3b\u4f53 \u8f66\u8eab \uff08 \u4e0d\u662f \u8f66\u95e8 \u6216 \u5176\u4ed6 \u6d3b\u52a8 \u90e8\u4ef6 \uff09 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u5982\u679c \u6211\u4eec \u5c06 \u7ec4\u6210 \u7684 \u7f51\u683c \u90e8\u5206 \u5206\u5f00 \uff0c \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u73bb\u7483 \u8f6e\u5ed3 \u88ab \u5206\u4e3a 4 \u4e2a \u4e0d\u540c \u7684 \u5c42 \u3002 \u8fd9 4 \u4e2a\u5c42 \u5206\u4e3a 2 \u7ec4 \uff1a \u5916\u90e8 \u5c42 \uff08 \u6cd5\u7ebf \u9762\u5411 \u8f66\u8f86 \u5916\u90e8 \uff09 \u548c \u5185\u90e8 \u5c42 \uff08 \u7f51\u683c \u683c\u6cd5 \u7f51\u683c\u6cd5 \u7ebf \u9762\u5411 \u8f66\u8f86 \u5185\u90e8 \uff09 \u3002 \u4e0b\u56fe \u6f14\u793a \u4e86 \u521b\u5efa \u7f51\u683c \u56fe\u5c42 \u540e \uff0c \u5c06 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u5b83\u4eec \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b58\u50a8 \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 4 \u4e2a \u73bb\u7483 \u5c42 \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u5730\u56fe \u4e2d \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u5b83\u4eec \u3002 \u73bb\u7483 \u6750\u8d28 \u53cc\u51fb \u73bb\u7483 \u7684 \u5916\u5c42 \uff0c \u7136\u540e \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a97\u53e3 \u4e2d \u5bfc\u822a \u5230 Content > Carla > Static > Vehicles > GeneralMaterials \u5e76 \u627e\u5230 \u8be5 Glass \u6750\u8d28 \u3002 \u5c06 \u73bb\u7483 \u6750\u8d28 \u62d6\u81f3 \u7f51\u683c \u7269\u4f53 \u7684 \u6750\u8d28 \u69fd \u4e2d \u3002 \u5bf9 \u73bb\u7483 \u7684 \u6bcf \u4e00\u5c42 \u91cd\u590d \u6b64 \u8fc7\u7a0b \u3002 \u73bb\u7483 \u73b0\u5728 \u5c06 \u662f \u900f\u660e \u7684 \uff0c \u4f46 \u5177\u6709 \u53cd\u5c04 \u9644\u8fd1 \u7269\u4f53 \u548c \u5149\u6e90 \u7684 \u53cd\u5c04 \u53cd\u5c04\u7387 \u3002 \u60a8 \u8fd8 \u5e94\u8be5 \u68c0\u67e5 \u5185\u90e8 \u73bb\u7483 \uff0c \u786e\u4fdd \u90a3\u91cc \u6709 \u9002\u5f53 \u7684 \u73bb\u7483 \u6548\u679c \u3002 \u5355\u5c42 \u73bb\u7483 \u4e3a\u4e86 \u66f4\u5feb \u5730 \u751f\u4ea7 \u8f66\u8f86 \u73bb\u7483 \u90e8\u4ef6 \uff0c \u552f\u4e00 \u7684 \u5173\u952e \u90e8\u4ef6 \u5173\u952e\u90e8\u4ef6 \u662f \u6700 \u5916\u5c42 \u7684 \u73bb\u7483 \u5c42 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u73bb\u7483 \u6750\u8d28 \u5e94\u7528 \u4e8e \u6b64 \uff0c \u5e76 \u83b7\u5f97 \u53ef\u80fd \u9002\u5408 \u60a8 \u9700\u6c42 \u7684 \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u4ece\u8f66 \u5185 \u67e5\u770b \u7684 \u89c6\u56fe \uff08 \u5373 \uff0c \u5982\u679c \u60a8 \u5728 \u4eea\u8868 \u4eea\u8868\u677f \u4e0a \u6216 \u65b9\u5411 \u65b9\u5411\u76d8 \u540e\u9762 \u5b9e\u4f8b \u5316 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u4f3c\u4e4e \u5177\u6709 \u65e0 \u73bb\u7483 \uff08 \u65e0 \u6298\u5c04 \u6216 \u53cd\u5c04 \uff09 \u3002 \u6211\u4eec \u5efa\u8bae \u91c7\u7528 \u4e0a\u8ff0 \u5de5\u827a \u6765 \u751f\u4ea7 \u6700 \u771f\u5b9e \u7684 \u73bb\u7483 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u521b\u5efa \u4e86 \u84dd\u56fe \uff0c \u6dfb\u52a0 \u4e86 \u7f51\u683c \uff0c \u5b8c\u6210 \u4e86 \u88c5\u914d \uff0c \u521b\u5efa \u4e86 \u6cb9\u6f06 \u9970\u9762 \u548c \u73bb\u7483 \u7684 \u6750\u6599 \uff0c \u60a8 \u5e94\u8be5 \u62e5\u6709 \u4e00\u8f86 \u5916\u89c2 \u975e\u5e38 \u903c\u771f \u7684 \u8f66\u8f86 \u3002 \u8f66\u8f6e \u5982\u679c \u60a8 \u5728 \u521b\u5efa \u84dd\u56fe \u65f6 \u590d\u5236 \u4e86 \u8f66\u8f6e \uff0c \u5e76\u4e14 \u60a8 \u7684 \u8f66\u8f86 \u4e0e Carla \u5e93\u4e2d \u5df2\u6709 \u7684 \u8f66\u8f86 \u975e\u5e38 \u76f8\u4f3c \uff0c \u90a3\u4e48 \u8fd9 \u53ef\u80fd \u9002\u5408 \u60a8 \u7684 \u76ee\u7684 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u975e\u6807 \u6807\u51c6 \u975e\u6807\u51c6 \u8f66\u8f6e \u5c3a\u5bf8 \u6216 \u6293 \u5730\u529b \u7279\u6027 \uff0c \u5219 \u5e94 \u6309\u7167 \u672c \u8282 \u8bbe\u7f6e \u8f66\u8f6e \u84dd\u56fe \uff0c \u4ee5 \u6700\u597d \u5730 \u5339\u914d \u8f66\u8f86 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5bf9\u4e8e Carla \u8f66\u8f86 \u7684 \u8f66\u8f6e \uff0c \u6211\u4eec \u9700\u8981 \u4e3a \u6bcf\u4e2a \u8f66\u8f6e \u5efa\u7acb \u4e00\u4e2a \u84dd\u56fe \u7c7b\u6765 \u5904\u7406 \u529b\u5b66 \u548c \u78b0\u649e \u5c5e\u6027 \u3002 \u60a8 \u5c06 \u8bbe\u7f6e 4 \u4e2a \u84dd\u56fe \u7c7b \uff0c \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u4ee5\u4e0b \u524d\u7f00 \u6216 \u540e\u7f00 \u6765 \u8bc6\u522b \u8f6e\u5b50 \uff1a RRW - R ear R ight W heel RLW - R ear L eft W heel FRW - F ront R ight W heel FLW - F ront L eft W heel \u8f66\u8f6e \u84dd\u56fe \u5728 \u60a8 \u62e5\u6709 \u65b0\u8f66 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \u7c7b \u3002 \u641c\u7d22 \u53cc\u51fb \u84dd\u56fe \u8fdb\u884c \u8c03\u6574 \uff1a \u78b0\u649e \u7f51\u683c \u9996\u5148 \uff0c \u7528\u4e8e \u78b0\u649e \u7f51\u683c \u7684 \u9ed8\u8ba4 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u5177\u6709 \u9ad8 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u56e0\u6b64 \u6211\u4eec \u5e94\u8be5 \u5c06 \u5176 \u66ff\u6362 \u4e3a \u4f4e \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7248\u672c \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u627e\u5230 Content > Carla > Blueprints > Vehicles \u5185 \u7684 CollisionWheel \u7f51\u683c \u3002 \u84dd\u56fe \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u7684 \u63d2\u69fd \u4e0a \u3002 \u8fd9 \u5c06 \u63d0\u9ad8 \u6027\u80fd \uff0c \u800c \u4e0d\u4f1a \u5bfc\u81f4 \u7269\u7406 \u4eff\u771f \u51fa\u73b0 \u4efb\u4f55 \u660e\u663e \u7684 \u7f3a\u9677 \u3002 \u8f6e\u80ce \u914d\u7f6e \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u8bbe\u7f6e \u8f6e\u80ce \u914d\u7f6e \u3002 \u5728 Content > Carla > Blueprints > Vehicles \u5185 \u627e\u5230 CommonTireConfig \u914d\u7f6e \u5e76 \u5c06 \u5176 \u62d6 \u5230 Tire Config \u84dd\u56fe \u7684 \u90e8\u5206 \u4e0a \u3002 \u5982\u679c \u53cc\u51fb \u84dd\u56fe \u4e2d \u7684 \u8f6e\u80ce \u914d\u7f6e \uff0c \u53ef\u4ee5 \u8c03\u6574 \u6469\u64e6 \u6bd4\u4f8b \uff0c \u53ef\u4ee5 \u4fee\u6539 \u8f66\u8f86 \u7684 \u9053\u8def \u64cd\u63a7 \u884c\u4e3a \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u8bbe\u7f6e \u4e3a 3.5 \uff0c \u8be5\u503c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u8f86 \u4f7f\u7528 \u60c5\u51b5 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u5e0c\u671b \u5bf9 \u5e26\u6709 \u5149\u5934 \u8f6e\u80ce \u7684 \u8d5b\u8f66 \u8fdb\u884c \u5efa\u6a21 \uff0c \u5219 \u8fd9 \u5c06 \u662f \u9700\u8981 \u8c03\u6574 \u7684 \u9002\u5f53 \u53c2\u6570 \u3002 \u8f66\u8f6e \u5c3a\u5bf8 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u6d4b\u91cf \u8f66\u8f6e \u7684 \u76f4\u5f84 \u3002 \u5728 Blender \u4e2d \uff0c \u53ef\u4ee5 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u6309 n \u6253\u5f00 \u7684 \u5c5e\u6027 \u9762\u677f \u4e2d \u67e5\u770b \u5c3a\u5bf8 \u3002 \u73b0\u5728 \u5c06 \u8fd9\u4e9b \u6570\u5b57 \u63d2\u5165 \u5230 Wheel \u84dd\u56fe \u7684 \u90e8\u5206 \u4e2d \u3002 \u8bf7 \u6ce8\u610f \u534a\u5f84 \u4e3a \u76f4\u5f84 \u7684 \u4e00\u534a \uff0c \u5e76\u4e14 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 \u5bf9\u4e8e \u8f66\u8f6e \u8d28\u91cf \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u4e0a \u67e5\u627e \u89c4\u683c \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u8f6e\u80ce \u578b\u53f7 \u6216 \u7c7b\u4f3c \u7684 \u8f6e\u80ce \u578b\u53f7 \u6765 \u4f30\u8ba1 \u6b63\u786e \u7684 \u8d28\u91cf \uff08 \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \uff09 \u3002 Affected by handbrake \u5e94 \u68c0\u67e5 \u4e24\u4e2a \u540e\u8f6e \u3002 Steer angle \u5bf9\u4e8e \u4e24\u4e2a \u524d\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u6700\u5927 \u9884\u671f \u8f6c\u5411 \u89d2 \uff0c \u5bf9\u4e8e \u4e24\u4e2a \u540e\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u96f6 \u3002 \u60ac\u67b6 \u7279\u6027 \u8fd9\u91cc \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5408\u7406 \u7684 \u8d77\u70b9 \u3002 \u67e5\u770b \u672c \u6307\u5357 \u4ee5 \u8bbe\u7f6e \u9002\u5408 \u60a8 \u8f66\u8f86 \u7c7b\u578b \u7684 \u60ac\u67b6 \u7279\u6027 \u3002 \u706f \u5b8c\u6210 Carla \u771f\u5b9e \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u5143\u7d20 \u662f \u706f \u3001 \u524d\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u7b49 \u3002 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \uff0c \u60a8 \u5e94\u8be5 \u5bf9 \u4e00\u4e9b \u7c7b\u4f3c \u4e8e \u60a8 \u8981 \u590d\u5236 \u7684 \u8f66\u8f86 \u706f \u7684 \u5f62\u72b6 \u8fdb\u884c \u5efa\u6a21 \u3002 \u5bf9\u4e8e \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u5934 \u5934\u706f \u8f66\u5934\u706f \u6765\u8bf4 \uff0c \u8fd9 \u5c06 \u662f \u6241\u5e73 \u5706\u76d8 \u6216 \u6241\u5e73 \u957f\u65b9 \u957f\u65b9\u4f53 \u7ed3\u6784 \u3002 \u6709\u4e9b \u8f66\u8f86 \u53ef\u80fd \u8fd8 \u914d\u6709 LED \u706f\u6761 \u3002 UV \u8d34\u56fe \u4e0d\u540c \u7c7b\u578b \u7684 \u706f \uff08 \u524d\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u7b49 \uff09 \u4f7f\u7528 \u7eb9\u7406 \u6765 \u533a\u5206 \u3002 \u60a8 \u9700\u8981 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u521b\u5efa UV \u8d34\u56fe \uff0c \u5e76 \u5b9a\u4f4d \u706f\u5149 \u4ee5 \u4e0e \u7eb9\u7406 \u7684 \u76f8\u5173 \u533a\u57df \u5339\u914d \u76f8\u5339\u914d \u3002 \u5bfc\u5165 \u5c06 \u706f\u5149 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 - \u5bfc\u5165 \u706f\u5149 \u7f51\u683c \u540e \uff1a \u5c06 \u7f51\u683c \u7269\u4f53 \u62d6\u52a8 \u5230 Components \u9762\u677f \u4e2d \u7684 Mesh ( VehicleMesh ) ( Inherited ) \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u989d\u5916 \u7f51\u683c \u5e76 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Collision \u3002 \u5c06 \u78b0\u649e \u9884\u8bbe ( Collision Presets ) \u8bbe\u7f6e \u4e3a NoCollision \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u4efb\u4f55 \u706f\u5149 \u7f51\u683c \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Tag \u5e76 \u6dfb\u52a0 emissive \u6807\u7b7e \u3002","title":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86"},{"location":"tuto_content_authoring_vehicles/#-","text":"Carla \u5728 \u84dd \u56fe\u5e93 \u4e2d \u63d0\u4f9b \u4e86 \u4e00\u5957 \u5f00\u7bb1 \u5373\u7528 \u7684 \u5168\u9762 \u8f66\u8f86 \u3002 Carla \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 \u5b9a\u5236 \u8f66\u8f86 \u5bf9\u6b64 \u8fdb\u884c \u6269\u5c55 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8be6\u7ec6 \u8f66\u8f86 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u975e\u5e38 \u590d\u6742 \u975e\u5e38\u590d\u6742 \uff0c \u9700\u8981 \u5f88 \u9ad8 \u7684 \u6280\u80fd \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u5efa\u8bae \u8bfb\u8005 \u53c2\u8003 \u6709\u5173 \u4e09\u7ef4 \u5efa\u6a21 \u7684 \u5176\u4ed6 \u6587\u6863 \u6765\u6e90 \uff0c \u56e0\u4e3a \u8fd9 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \u3002 \u7136\u800c \uff0c \u514d\u8d39 \u548c \u4e13\u6709 \u7684 \u5728\u7ebf \u5b58\u50a8 \u5e93\u4e2d \u6709 \u5927\u91cf \u7684 \u8f66\u8f86 \u6a21\u578b \u6765\u6e90 \u3002 \u56e0\u6b64 \uff0c \u7528\u6237 \u6709 \u591a\u79cd \u9009\u62e9 \u6765 \u521b\u5efa \u7528\u4e8e Carla \u7684 \u5b9a\u5236 \u8f66\u8f86 \u3002 \u4e3a Carla \u51c6\u5907 \u5b9a\u5236 \u8f66\u8f86 \u7684 \u5173\u952e \u56e0\u7d20 \u5173\u952e\u56e0\u7d20 \u5728\u4e8e \u88c5\u914d \u8f66\u8f86 \u9aa8\u67b6 \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u88c5\u914d \u548c \u5bfc\u5165 \u540e \uff0c \u9700\u8981 \u4e3a \u6c7d\u8f66 \u548c \u8f66\u8f6e \u8bbe\u7f6e \u84dd\u56fe \u3002 \u7136\u540e \u5e94\u7528 \u6750\u6599 \u5e76 \u6dfb\u52a0 \u8f66\u8f86 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u6211\u4eec \u5c06 \u5728 \u4ee5\u4e0b \u6307\u5357 \u4e2d \u4ecb\u7ecd \u8fd9\u4e9b \u6b65\u9aa4 \u3002 \u5efa\u6a21 \u547d\u540d \u7ea6\u5b9a \u88c5\u914d \u5bfc\u5165 \u7535\u67a2 \u8bbe\u7f6e \u7236\u7ea7 \u5206\u914d Blender \u63d2\u4ef6 \u5bfc\u51fa \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u7269\u7406 \u8d44\u4ea7 \u52a8\u753b \u84dd\u56fe \u6750\u8d28 \u4f7f\u7528 \u6750\u8d28 \u989c\u8272 \u900f\u660e \u6d82\u5c42 \u7c92\u72b6 \u8868\u9762 \u8584\u7247 \u7070\u5c18 \u73bb\u7483 \u73bb\u7483 \u7f51\u683c \u73bb\u7483 \u6750\u8d28 \u5355\u5c42 \u73bb\u7483 \u8f66\u8f6e \u8f66\u8f6e \u84dd\u56fe \u78b0\u649e \u7f51\u683c \u8f6e\u80ce \u914d\u7f6e \u8f66\u8f6e \u5c3a\u5bf8 \u706f UV \u8d34\u56fe \u5bfc\u5165","title":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86"},{"location":"tuto_content_authoring_vehicles/#_1","text":"\u8f66\u8f86 \u5e94\u6709 5 \u4e07\u5230 10 \u4e07\u4e2a \u9762\u7247 \u3002 \u4f5c\u4e3a \u6700\u4f73 \u5b9e\u8df5 \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u5bfc\u51fa \u4e4b\u524d \u6a21\u578b \u5bf9\u6a21\u578b \u8fdb\u884c \u4e09\u89d2 \u6d4b\u91cf \u4e09\u89d2\u6d4b\u91cf \u3002 Carla \u8f66\u8f86 \u662f \u53c2\u8003 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u8fdb\u884c \u5efa\u6a21 \u7684 \u3002 \u8bf7 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7279\u522b \u6ce8\u610f \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u5355\u4f4d \u3002 \u6709\u4e9b \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u6709\u4e9b \u5219 \u4ee5 \u7c73 \u4e3a \u5355\u4f4d \u3002","title":"\u5efa\u6a21"},{"location":"tuto_content_authoring_vehicles/#_2","text":"\u4e3a\u4e86 \u65b9\u4fbf \u548c \u4e00\u81f4 \uff0c \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u90e8\u5206 \u5e76 \u76f8\u5e94 \u547d\u540d \u3002 \u73bb\u7483 \u548c \u706f \u7684 \u5177\u4f53 \u7ec6\u8282 \u5c06 \u5728 \u540e\u9762 \u7684 \u90e8\u5206 \u4e2d \u4ecb\u7ecd \uff1a \u8f66\u8eab ( Bodywork ) : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 Carla \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d . fbx \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 \u5185\u9970 ( Interior ) : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 \u3002 \u6750\u8d28 ( Material ) \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 , M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002","title":"\u547d\u540d \u7ea6\u5b9a"},{"location":"tuto_content_authoring_vehicles/#_3","text":"\u4e3a\u4e86 \u5728 \u4eff\u771f \u4e2d \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \uff0c \u6c7d\u8f66 \u9700\u8981 \u6709 \u65cb\u8f6c \u8f6e\u5b50 \uff0c \u524d \u4e00\u5bf9 \u8f6e\u5b50 \u53ef\u4ee5 \u968f\u7740 \u8f6c\u5411 \u8f93\u5165 \u800c \u8f6c\u52a8 \u3002 \u56e0\u6b64 \uff0c \u8981 \u4e3a Carla \u51c6\u5907 \u8f66\u8f86 \uff0c \u9700\u8981 \u5728 \u6c7d\u8f66 \u4e0a \u5b89\u88c5 \u7535\u67a2 \u4ee5 \u8bc6\u522b \u8f66\u8f6e \u5e76 \u5141\u8bb8 \u5176 \u79fb\u52a8 \u3002","title":"\u4f7f\u7528 \u7535\u67a2 \u88c5\u914d \u8f66\u8f86"},{"location":"tuto_content_authoring_vehicles/#_4","text":"\u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u5bfc\u5165 \u6216 \u5efa\u6a21 \u8f66\u8f86 \u6a21\u578b \u7f51\u683c \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Blender 3D \u3002 \u786e\u4fdd \u8f6e\u5b50 \u4e0e \u4e3b\u4f53 \u5206\u79bb \u3002 \u6bcf\u4e2a \u8f6e\u5b50 \u5fc5\u987b \u53ef\u4ee5 \u4f5c\u4e3a \u4e00\u4e2a \u4e0d\u540c \u7684 \u5bf9\u8c61 \u8fdb\u884c \u8bbf\u95ee \u3002 \u786e\u4fdd \u8f66\u8f86 \u9762\u5411 \u6b63 X \u65b9\u5411 \u975e\u5e38 \u91cd\u8981 \uff0c \u56e0\u6b64 \u5f15\u64ce \u5f15\u64ce\u76d6 \u548c \u6321\u98ce \u73bb\u7483 \u6321\u98ce\u73bb\u7483 \u5e94 \u9762\u5411 \u6b63 X \u65b9\u5411 \u3002 \u6c7d\u8f66 \u7684 \u65b9\u5411 \u8fd8 \u5e94 \u4f7f \u5730\u677f \u5230 \u8f66\u9876 \u65b9\u5411 \u5904\u4e8e \u6b63 Z \u65b9\u5411 \u3002 \u8f66\u8f6e \u5e94\u8be5 \u6b63\u597d \u64e6 \u8fc7 XY \u5e73\u9762 \uff0c \u5e76\u4e14 \u539f\u70b9 \u5e94\u8be5 \u4f4d\u4e8e \u60a8 \u671f\u671b \u8f66\u8f86 \u8d28\u5fc3 \u4f4d\u4e8e XY \u5e73\u9762 \uff08 \u4f46 \u4e0d\u662f Z \u5e73\u9762 \uff09 \u7684 \u4f4d\u7f6e \u3002","title":"\u5bfc\u5165"},{"location":"tuto_content_authoring_vehicles/#_5","text":"\u73b0\u5728 \u5728 \u8f66\u8f86 \u7684 \u4e2d\u5fc3 \u6dfb\u52a0 \u4e00\u4e2a \u9aa8\u67b6 \uff0c \u786e\u4fdd \u7269\u4f53 \u6b63\u786e \u5c45\u4e2d \uff0c \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u6839\u90e8 \u5e94 \u8bbe\u7f6e \u5728 \u539f\u70b9 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \u5e76 \u5c06 \u9aa8\u67b6 \u7ed5 x \u8f74 \u65cb\u8f6c 90 \u5ea6 \u3002 \u73b0\u5728 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u6dfb\u52a0 4 \u4e2a \u9aa8\u9abc \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u9700\u8981 \u5b9a\u4f4d \uff0c \u4f7f\u5f97 \u9aa8\u9abc \u7684 \u6839\u90e8 \u4e0e \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u4e2d\u5fc3 \u91cd\u5408 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u7f16\u8f91 \u6a21\u5f0f \u4e0b \u5c06 \u4e09\u7ef4 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6bcf\u4e2a \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u6765 \u5b9e\u73b0 \u3002 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u9009\u62e9 \u5176\u4e2d \u4e00\u4e2a \u8f6e\u5b50 \uff0c \u9009\u62e9 \u4e00\u4e2a \u9876\u70b9 \uff0c \u6309 A \u9009\u62e9 \u6240\u6709 \u9876\u70b9 \uff0c \u7136\u540e Shift + S \u9009\u62e9 Cursor to selected \u3002 \u8fd9\u4f1a \u5c06 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u3002 \u7136\u540e \uff0c \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \uff0c \u9009\u62e9 \u9aa8\u67b6 \uff0c \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u9009\u62e9 \u9aa8\u9abc \u5e76 \u9009\u62e9 Selection to cursor \u3002 \u60a8 \u7684 \u9aa8\u9abc \u73b0\u5728 \u5c06 \u4e0e \u8f6e\u5b50 \u91cd\u5408 \u3002 \u65cb\u8f6c \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u4f7f \u5176 \u4e0e \u9aa8\u67b6 \u5e95\u90e8 \u5bf9\u9f50 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u8f6e\u5b50 \uff0c \u5efa\u8bae \u6839\u636e \u9700\u8981 \u8026\u5408 \u7684 \u8f6e\u5b50 \u6765 \u547d\u540d \u9aa8\u9abc \uff0c \u8fd9 \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u5728 \u9700\u8981 \u4e3a \u6bcf\u4e2a \u9aa8\u9abc \u5206\u914d \u9876\u70b9 \u7ec4\u65f6 \u8fdb\u884c \u8bc6\u522b \u3002","title":"\u6dfb\u52a0 \u7535\u67a2"},{"location":"tuto_content_authoring_vehicles/#_6","text":"\u73b0\u5728 \u5728 \u9879\u76ee \u5927\u7eb2 \u4e2d \u4f7f\u7528 shift \u6216 control \u9009\u62e9 \u8eab\u4f53 \u7684 \u6240\u6709 \u90e8\u5206 \u548c \u6240\u6709 4 \u4e2a \u8f6e\u5b50 \uff0c \u7136\u540e \u63a7\u5236 \u9009\u62e9 \u60a8 \u521b\u5efa \u7684 \u9aa8\u67b6 \uff08 \u8fd9\u4e2a \u987a\u5e8f \u5f88 \u91cd\u8981 \uff0c \u5982\u679c \u60a8 \u4ee5 \u76f8\u53cd \u7684 \u987a\u5e8f \u9009\u62e9 \u5b83\u4eec \u5c06 \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \uff09 \u3002 \u6309 Ctrl + p \u5e76 \u9009\u62e9 With empty groups \u5c06 \u7f51\u683c \u7ed1\u5b9a \u5230 \u9aa8\u67b6 \u3002 \u73b0\u5728 \u60a8 \u5df2 \u5c06 \u7f51\u683c \u4f53 \u8bbe\u7f6e \u4e3a \u9aa8\u67b6 \u7684 \u7236\u7ea7 \uff0c \u73b0\u5728 \u9700\u8981 \u5c06 \u6bcf\u4e2a \u8f6e\u5b50 \u5206\u914d \u7ed9 \u5176 \u5404\u81ea \u7684 \u9aa8\u9abc \u3002 \u5728 \u5927\u7eb2 \u89c6\u56fe \u6216 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8f6e\u5b50 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u7684 \u6240\u6709 \u9876\u70b9 \uff08 \u5feb\u6377 \u5feb\u6377\u952e - a \uff09 \u3002","title":"\u8bbe\u7f6e \u7236\u7ea7"},{"location":"tuto_content_authoring_vehicles/#_7","text":"\u9009\u62e9 \u5c5e\u6027 \u7684 \u7f51\u683c \u9009\u9879 \u9009\u9879\u5361 \uff08 \u7eff\u8272 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \uff09 \u3002 \u5728 \u7f51\u683c \u5c5e\u6027 \u9762\u677f \u7684 \u9876\u70b9 \u7ec4 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u9aa8\u67b6 \u7684 \u9aa8\u9abc \u3002 \u9009\u62e9 \u4e0e \u60a8 \u6b63\u5728 \u7f16\u8f91 \u7684 \u8f6e\u5b50 \u5bf9\u5e94 \u7684 \u9aa8\u9abc \uff0c \u7136\u540e \u9009\u62e9 Assign \u3002 \u5b89\u88c5 \u597d \u8f66\u8f6e \u540e \uff0c \u5c06 \u8f66\u8f86 \u7684 \u6240\u6709 \u5176\u4ed6 \u90e8\u4ef6 \u5b89\u88c5 \u5230 \u57fa\u9aa8 \u4e0a \u3002 \u5c06 \u6240\u6709 \u7f51\u683c \u90e8\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u67b6 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u79fb\u52a8 \u5230 \u59ff\u52bf \u6a21\u5f0f \u5e76 \u79fb\u52a8 \u76f8\u5173 \u9aa8\u9abc \u6765 \u6d4b\u8bd5 \u5b83 \u662f\u5426 \u6709\u6548 \u3002 \u8f66\u8f86 \u57fa\u9aa8\u5e94 \u79fb\u52a8 \u6574\u4e2a \u8f66\u8f86 \uff0c \u800c\u8f6e \u9aa8\u5e94 \u5206\u522b \u79fb\u52a8 \u5e76 \u65cb\u8f6c \u5404\u81ea \u7684 \u8f66\u8f6e \u3002 Ctrl + Z \u786e\u4fdd \u64a4\u6d88 \u60a8 \u53ef\u80fd \u505a\u51fa \u7684 \u4efb\u4f55 \u59ff\u52bf \u3002","title":"\u5c06 \u6c7d\u8f66\u96f6\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u9abc"},{"location":"tuto_content_authoring_vehicles/#blender-4","text":"Blender \u6709 \u4e00\u4e2a \u975e\u5e38 \u6709\u7528 \u7684 \u63d2\u4ef6 \uff0c \u7528\u4e8e \u88c5\u914d \u8f66\u8f86 \u4ee5 \u5bfc\u5165 Carla \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u4e0a\u8ff0 \u6b65\u9aa4 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u4ef6 \u7f51\u9875 \u4ee5 \u83b7\u53d6 \u8bf4\u660e \u3002","title":"Blender \u865a\u5e7b \u5f15\u64ce 4 \u8f66\u8f86 \u88c5\u914d \u63d2\u4ef6"},{"location":"tuto_content_authoring_vehicles/#_8","text":"\u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u88c5\u914d \u6a21\u578b \u5bfc\u51fa \u4e3a FBX \u683c\u5f0f \uff0c \u4ee5\u4fbf \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u4ece \u201c \u6587\u4ef6 \u201d \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Export > FBX ( . fbx ) \u3002 \u5728 Include \u9762\u677f \u7684 Object Types \u90e8\u5206 \u4e2d \uff0c \u6309\u4f4f Shift \u952e \u9009\u62e9 Armature \u548c Mesh \u9009\u9879 \u3002 \u5728 Transform \u9762\u677f \u4e2d \u3002 \u66f4\u6539 Forward \u4e3a X Forward \uff0c \u5e76 \u66f4\u6539 Up \u4e3a Z Up . \u8fd9 \u5bf9\u4e8e \u786e\u4fdd \u8f66\u8f86 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5b9a\u5411 \u975e\u5e38 \u91cd\u8981 \u3002 \u5728 Armature \u90e8\u5206 \u4e2d \u53d6\u6d88 Add Leaf Bones \u9009\u4e2d \u5e76 \u53d6\u6d88 Bake Animation \u9009\u4e2d \u3002","title":"\u5bfc\u51fa"},{"location":"tuto_content_authoring_vehicles/#_9","text":"\u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u76ee\u5f55 \uff09 \u4e2d \u4f7f\u7528 make launch \u547d\u4ee4 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6253\u5f00 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u8bbe\u7f6e \u9002\u5f53 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Import to .... \u3002 \u9009\u62e9 \u60a8 \u4e4b\u524d \u4ece Blender \uff08 \u6216 \u5176\u4ed6 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u5bfc\u51fa \u7684 FBX \u6587\u4ef6 \u3002 \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u5bfc\u5165 \u3002","title":"\u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce"},{"location":"tuto_content_authoring_vehicles/#_10","text":"\u73b0\u5728 \uff0c \u60a8 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d\u5c06 \u5305\u542b 3 \u4e2a \u5185\u5bb9 \uff1a \u7f51\u683c \u3001 \u9aa8\u67b6 \u548c \u7269\u7406 \u8d44\u6e90 \u3002 \u53cc\u51fb \u7269\u7406 \u8d44\u6e90 \u8fdb\u884c \u8c03\u6574 \u3002 \u9996\u5148 \uff0c \u9009\u62e9 \u8f66\u4f53 \uff0c \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \uff0c \u5c06 Physics \u90e8\u5206 \u4e2d \u7684 Linear Damping \u66f4 \u6539\u4e3a 0.0 \uff0c \u68c0\u67e5 Collision \u90e8\u5206 \u7684 Simulation Generates Hit Events \uff0c \u5728 Body Creation \u90e8\u5206 \u5c06 Primitive Type \u4ece Capsule \u6539\u4e3a Box \u3002 \u7136\u540e \u6309 Regenerate bodies \u3002 \u80f6\u56ca \u73b0\u5728 \u5c06 \u53d8\u6210 \u4e00\u4e2a \u77e9\u5f62 \u76d2\u5b50 \u3002 \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u3002 \u73b0\u5728 \u9009\u62e9 \u6240\u6709 \u8f6e\u5b50 \uff08 \u5728 Skeleton Tree \u5de6\u4fa7 \u90e8\u5206 \uff09 \u3002 \u5c06 Linear Damping \u6539\u4e3a 0.0 \uff0c \u5c06 Physics Type \u8bbe\u7f6e \u4e3a Kinematic \uff0c \u5c06 Collision Response \u8bbe\u7f6e \u4e3a Disabled \uff0c \u5e76 \u9009\u62e9 Primitive Type \u4f5c\u4e3a Sphere \u3002 \u518d \u6309 Re - generate Bodies \u4e00\u6b21 \u3002","title":"\u8bbe\u7f6e \u7269\u7406 \u8d44\u4ea7"},{"location":"tuto_content_authoring_vehicles/#_11","text":"\u5728 \u60a8 \u62e5\u6709 \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Animation > Animation Blueprint \u3002 \u5728 \u6253\u5f00 \u7684 \u5f39\u51fa \u7a97\u53e3 \u4e2d \uff0c \u5728 Parent Class \u90e8\u5206 \u4e2d \u641c\u7d22 VehicleAnimInstance \uff0c \u7136\u540e \u641c\u7d22 Target Skeleton \u4e0e \u60a8 \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u5e94\u8be5 \u80fd\u591f \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u8be5 \u540d\u79f0 \u3002 \u9009\u62e9 \u4e24\u9879 \u8fd9\u4e24\u9879 \u540e \u6309 \u786e\u5b9a \u3002 \u8fd9 \u5c06 \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u3002 \u4e3a\u4e86 \u7b80\u5316 \u4e8b\u60c5 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ece \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u590d\u5236 \u52a8\u753b \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Content > Carla > Static > Vehicles > 4Wheeled \u5e76 \u9009\u62e9 \u4efb\u610f \u8f66\u8f86 \u3002 \u6253\u5f00 \u6240 \u9009 \u8f66\u8f86 \u7684 \u52a8\u753b \u84dd\u56fe \uff0c \u7136\u540e \u5c06 \u9664 \u6b64 \u8282\u70b9 \u4e4b\u5916 \u7684 \u6240\u6709 \u8282\u70b9 \u590d\u5236 Output pose \u5230 \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u4e2d \u3002 \u901a\u8fc7 \u62d6\u52a8 \u6700\u7ec8 \u8282\u70b9 \u4e0e \u8f93\u51fa \u8282\u70b9 \u4e4b\u95f4 \u7684 \u65b0 \u8fde\u63a5 \u6765 \u8fde\u63a5 \u8282\u70b9 \u3002 \u6309 \u7f16\u8bd1 \uff0c \u52a8\u753b \u84dd\u56fe \u73b0\u5df2 \u8bbe\u7f6e \u3002","title":"\u521b\u5efa \u52a8\u753b"},{"location":"tuto_content_authoring_vehicles/#_12","text":"\u4f7f\u7528 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > LincolnMKZ2017 \u6216 \u7c7b\u4f3c \u7684 \u8f66\u8f86 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u4e00\u7ec4 \u4e3a 4 \u4e2a \u8f6e\u5b50 \u8bbe\u7f6e \u7684 \u84dd\u56fe \u3002 \u5c06 \u5b83\u4eec \u590d\u5236 \u590d\u5236\u5230 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u7684 \u76ee\u5f55 \u4e2d \u5e76\u91cd \u547d\u540d \u5b83\u4eec \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4ee5\u540e \u53ef\u4ee5 \u533a\u5206 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u613f\u610f \uff0c \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f6e\u5b50 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540e\u9762 \u7684 \u8f6e\u5b50 \u90e8\u5206 \u3002 \u53f3\u952e \u5355\u51fb \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u6240\u5728 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u5e76 \u9009\u62e9 Blueprint Class \u3002 \u5728 All Classes \u83dc\u5355 \u4e2d \u641c\u7d22 BaseVehiclePawn \u5e76 \u9009\u62e9 \u6b64\u7c7b \u3002 \u4e3a \u84dd\u56fe \u547d\u540d \u5e76 \u6253\u5f00 \u5b83 \u3002 \u5728 \u5de6\u4fa7 Components \u9009\u9879 \u9009\u9879\u5361 \u4e2d \u8fdb\u884c Mesh \u9009\u62e9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7f51\u683c \u62d6\u52a8 \u5230 \u53f3\u4fa7 \u7684 \u201c \u7f51\u683c \u201d \u90e8\u5206 \u4e2d \u3002 \u5728 Anim Class \u641c\u7d22 \u4e0e \u60a8 \u5728 \u4e0a \u4e00\u6b65 \u4e2d \u8bbe\u7f6e \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u52a8\u753b \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u84dd\u56fe \u7c7b \u7684 Components \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Vehicle Movement \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \u5bfc\u822a \u5230 \u8be5 Vehicle Setup \u90e8\u5206 \u3002 \u73b0\u5728 \uff0c \u5bf9\u4e8e \u6bcf\u4e2a \u8f66\u8f6e \uff0c \u627e\u5230 \u60a8 \u4e4b\u524d \u4e3a Wheel Class \u5c5e\u6027 \u590d\u5236 \u5e76\u91cd \u547d\u540d \u7684 \u76f8\u5173 \u8f66\u8f6e \u84dd\u56fe \u3002 \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u73b0\u5728 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > VehicleFactory \u5e76 \u53cc\u51fb \u5b83 \u4ee5 \u6253\u5f00 \u8f66\u8f86 \u5de5\u5382 \u3002 \u9009\u62e9 Vehicles \u8282\u70b9 \u5e76 \u5c55\u5f00 \u53f3\u4fa7 Default value \u90e8\u5206 \u4e2d \u7684 Vehicles \u9879 \u3002 \u6309 \u52a0\u53f7 \u56fe\u6807 \u6dfb\u52a0 \u60a8 \u7684 \u65b0\u8f66 \u3002 \u5411\u4e0b \u6eda\u52a8 \u5230 \u6700\u540e \u4e00\u4e2a \u6761\u76ee \u5e76 \u5c06 \u5176 \u5c55\u5f00 \uff0c \u5b83 \u5e94\u8be5 \u662f \u7a7a \u7684 \u3002 \u547d\u540d \u60a8 \u7684 \u8f66\u8f86 \u7684 \u54c1\u724c \u548c \u578b\u53f7 \uff0c \u7136\u540e \u5728 \u7c7b \u90e8\u5206 \u4e0b \u627e\u5230 \u60a8 \u5728 \u4e0a \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e2d \u521b\u5efa \u7684 \u84dd\u56fe \u7c7b \u3002 \u5c06 \u8f6e\u5b50 \u6570\u91cf \u4fdd\u7559 \u4e3a 4 \uff0c \u5e76 \u5c06 \u4e16\u4ee3 \u8bbe\u7f6e \u4e3a 2 \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u4e3a\u4e86 \u5b89\u5168 \u8d77 \u89c1 \uff0c \u8fdb\u884c \u5168\u5c40 \u4fdd\u5b58 \uff0c \u60a8 \u73b0\u5728 ...... \u51c6\u5907 \u5728 \u4eff\u771f \u4e2d \u8fd0\u884c \u60a8 \u7684 \u8f66\u8f86 \u3002 \u6309 \u865a\u5e7b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u201c \u8fd0\u884c \u201d \u6765 \u8fdb\u884c \u4eff\u771f \u3002 \u8fd0\u884c \u540e \uff0c \u6253\u5f00 \u7ec8\u7aef \u5e76 \u4f7f\u7528 \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 \u9009\u9879 \u8fd0\u884c \u811a\u672c manual _ control . py \u6765 \u6307\u5b9a \u60a8 \u7684 \u65b0 \u8f66\u8f86 \u578b\u53f7 \uff1a python manual _ control . py -- filter my _ vehicle _ make \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u8f66\u8f86 \u76ee\u524d \u6ca1\u6709 \u5e94\u7528 \u7eb9\u7406 \u6216 \u989c\u8272 \u3002 \u4e0b \u4e00\u6b65 \u662f \u5e94\u7528 \u6750\u6599 \uff0c \u4f7f \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u50cf \u771f\u6b63 \u7684 \u516c\u8def \u8f66\u8f86 \u4e00\u6837 \u7684 \u5916\u89c2 \u3002","title":"\u521b\u5efa \u84dd\u56fe"},{"location":"tuto_content_authoring_vehicles/#_13","text":"\u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002","title":"\u6750\u8d28"},{"location":"tuto_content_authoring_vehicles/#_14","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u4eff\u771f \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u6599 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u6599 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \uff1a","title":"\u7ed9 \u60a8 \u7684 \u8f66\u8f86 \u5e94\u7528 \u4f7f\u7528 \u6750\u8d28"},{"location":"tuto_content_authoring_vehicles/#color","text":"\u989c\u8272 \u8bbe\u7f6e \u51b3\u5b9a \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a","title":"\u989c\u8272 ( Color )"},{"location":"tuto_content_authoring_vehicles/#clear-coat","text":"\u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u51b3\u5b9a \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f Clear Coat Intensity \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002","title":"\u900f\u660e \u6d82\u5c42 ( Clear coat )"},{"location":"tuto_content_authoring_vehicles/#orange-peel","text":"\u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e0a \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u7c92\u72b6 \u8868\u9762 \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002","title":"\u7c92\u72b6 \u8868\u9762 ( Orange peel )"},{"location":"tuto_content_authoring_vehicles/#flakes","text":"\u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u8d4b\u4e88 \u6c7d\u8f66 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u5149\u7ebf \u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f","title":"\u8584\u7247 ( Flakes )"},{"location":"tuto_content_authoring_vehicles/#dust","text":"\u6c7d\u8f66 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u8fd9\u4f1a \u589e\u52a0 \u8f66\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002","title":"\u7070\u5c18 ( Dust )"},{"location":"tuto_content_authoring_vehicles/#_15","text":"\u5728 Carla \u4e2d \u521b\u5efa \u903c\u771f \u7684 \u73bb\u7483 \u9700\u8981 \u4e00\u4e9b \u6280\u5de7 \u6765 \u6355\u6349 \u673a\u52a8 \u52a8\u8f66 \u8f66\u8f86 \u673a\u52a8\u8f66 \u673a\u52a8\u8f66\u8f86 \u4e2d \u4f7f\u7528 \u7684 \u73bb\u7483 \u7684 \u771f\u5b9e \u6298\u5c04 \u548c \u53cd\u5c04 \u884c\u4e3a \u3002 Carla \u8f66\u5e93 \u8f66\u8f86 \u6709 4 \u5c42 \u73bb\u7483 \u7f51\u683c \uff0c \u91c7\u7528 2 \u79cd \u4e0d\u540c \u7684 \u6750\u6599 \u3002 \u5404\u5c42 \u4e4b\u95f4 \u95f4\u9694 \u6beb\u7c73 \u51e0\u6beb\u7c73 \uff0c \u5185\u90e8 \u548c \u5916\u90e8 \u73bb\u7483 \u5c42 \u91c7\u7528 \u4e0d\u540c \u7684 \u6750\u6599 \uff0c \u4ee5 \u786e\u4fdd \u73bb\u7483 \u4ece \u8f66\u8f86 \u5185\u90e8 \u548c \u5916\u90e8 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u90fd \u5f88 \u903c\u771f \u3002 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \uff0c \u4ece \u8f66\u8f86 \u5185\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \u3002 \u73bb\u7483 \u6240\u4ee5 \u4e4b\u6240\u4ee5 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u73bb\u7483 \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a \u6765\u81ea \u73bb\u7483 \u4e24\u4e2a \u8868\u9762 \u7684 \u53cd\u5c04 \u4f7f\u5f97 \u53cd\u5c04 \u975e\u5e38 \u5fae\u5999 \u5730 \u52a0\u500d \u3002","title":"\u73bb\u7483"},{"location":"tuto_content_authoring_vehicles/#_16","text":"\u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u770b\u5230 \u8fde\u63a5 \u5230 \u6797\u80af \u4e3b\u4f53 \u8f66\u8eab \uff08 \u4e0d\u662f \u8f66\u95e8 \u6216 \u5176\u4ed6 \u6d3b\u52a8 \u90e8\u4ef6 \uff09 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u5982\u679c \u6211\u4eec \u5c06 \u7ec4\u6210 \u7684 \u7f51\u683c \u90e8\u5206 \u5206\u5f00 \uff0c \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u73bb\u7483 \u8f6e\u5ed3 \u88ab \u5206\u4e3a 4 \u4e2a \u4e0d\u540c \u7684 \u5c42 \u3002 \u8fd9 4 \u4e2a\u5c42 \u5206\u4e3a 2 \u7ec4 \uff1a \u5916\u90e8 \u5c42 \uff08 \u6cd5\u7ebf \u9762\u5411 \u8f66\u8f86 \u5916\u90e8 \uff09 \u548c \u5185\u90e8 \u5c42 \uff08 \u7f51\u683c \u683c\u6cd5 \u7f51\u683c\u6cd5 \u7ebf \u9762\u5411 \u8f66\u8f86 \u5185\u90e8 \uff09 \u3002 \u4e0b\u56fe \u6f14\u793a \u4e86 \u521b\u5efa \u7f51\u683c \u56fe\u5c42 \u540e \uff0c \u5c06 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u5b83\u4eec \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b58\u50a8 \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 4 \u4e2a \u73bb\u7483 \u5c42 \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u5730\u56fe \u4e2d \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u5b83\u4eec \u3002","title":"\u73bb\u7483 \u7f51\u683c"},{"location":"tuto_content_authoring_vehicles/#_17","text":"\u53cc\u51fb \u73bb\u7483 \u7684 \u5916\u5c42 \uff0c \u7136\u540e \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a97\u53e3 \u4e2d \u5bfc\u822a \u5230 Content > Carla > Static > Vehicles > GeneralMaterials \u5e76 \u627e\u5230 \u8be5 Glass \u6750\u8d28 \u3002 \u5c06 \u73bb\u7483 \u6750\u8d28 \u62d6\u81f3 \u7f51\u683c \u7269\u4f53 \u7684 \u6750\u8d28 \u69fd \u4e2d \u3002 \u5bf9 \u73bb\u7483 \u7684 \u6bcf \u4e00\u5c42 \u91cd\u590d \u6b64 \u8fc7\u7a0b \u3002 \u73bb\u7483 \u73b0\u5728 \u5c06 \u662f \u900f\u660e \u7684 \uff0c \u4f46 \u5177\u6709 \u53cd\u5c04 \u9644\u8fd1 \u7269\u4f53 \u548c \u5149\u6e90 \u7684 \u53cd\u5c04 \u53cd\u5c04\u7387 \u3002 \u60a8 \u8fd8 \u5e94\u8be5 \u68c0\u67e5 \u5185\u90e8 \u73bb\u7483 \uff0c \u786e\u4fdd \u90a3\u91cc \u6709 \u9002\u5f53 \u7684 \u73bb\u7483 \u6548\u679c \u3002","title":"\u73bb\u7483 \u6750\u8d28"},{"location":"tuto_content_authoring_vehicles/#_18","text":"\u4e3a\u4e86 \u66f4\u5feb \u5730 \u751f\u4ea7 \u8f66\u8f86 \u73bb\u7483 \u90e8\u4ef6 \uff0c \u552f\u4e00 \u7684 \u5173\u952e \u90e8\u4ef6 \u5173\u952e\u90e8\u4ef6 \u662f \u6700 \u5916\u5c42 \u7684 \u73bb\u7483 \u5c42 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u73bb\u7483 \u6750\u8d28 \u5e94\u7528 \u4e8e \u6b64 \uff0c \u5e76 \u83b7\u5f97 \u53ef\u80fd \u9002\u5408 \u60a8 \u9700\u6c42 \u7684 \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u4ece\u8f66 \u5185 \u67e5\u770b \u7684 \u89c6\u56fe \uff08 \u5373 \uff0c \u5982\u679c \u60a8 \u5728 \u4eea\u8868 \u4eea\u8868\u677f \u4e0a \u6216 \u65b9\u5411 \u65b9\u5411\u76d8 \u540e\u9762 \u5b9e\u4f8b \u5316 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u4f3c\u4e4e \u5177\u6709 \u65e0 \u73bb\u7483 \uff08 \u65e0 \u6298\u5c04 \u6216 \u53cd\u5c04 \uff09 \u3002 \u6211\u4eec \u5efa\u8bae \u91c7\u7528 \u4e0a\u8ff0 \u5de5\u827a \u6765 \u751f\u4ea7 \u6700 \u771f\u5b9e \u7684 \u73bb\u7483 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u521b\u5efa \u4e86 \u84dd\u56fe \uff0c \u6dfb\u52a0 \u4e86 \u7f51\u683c \uff0c \u5b8c\u6210 \u4e86 \u88c5\u914d \uff0c \u521b\u5efa \u4e86 \u6cb9\u6f06 \u9970\u9762 \u548c \u73bb\u7483 \u7684 \u6750\u6599 \uff0c \u60a8 \u5e94\u8be5 \u62e5\u6709 \u4e00\u8f86 \u5916\u89c2 \u975e\u5e38 \u903c\u771f \u7684 \u8f66\u8f86 \u3002","title":"\u5355\u5c42 \u73bb\u7483"},{"location":"tuto_content_authoring_vehicles/#_19","text":"\u5982\u679c \u60a8 \u5728 \u521b\u5efa \u84dd\u56fe \u65f6 \u590d\u5236 \u4e86 \u8f66\u8f6e \uff0c \u5e76\u4e14 \u60a8 \u7684 \u8f66\u8f86 \u4e0e Carla \u5e93\u4e2d \u5df2\u6709 \u7684 \u8f66\u8f86 \u975e\u5e38 \u76f8\u4f3c \uff0c \u90a3\u4e48 \u8fd9 \u53ef\u80fd \u9002\u5408 \u60a8 \u7684 \u76ee\u7684 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u975e\u6807 \u6807\u51c6 \u975e\u6807\u51c6 \u8f66\u8f6e \u5c3a\u5bf8 \u6216 \u6293 \u5730\u529b \u7279\u6027 \uff0c \u5219 \u5e94 \u6309\u7167 \u672c \u8282 \u8bbe\u7f6e \u8f66\u8f6e \u84dd\u56fe \uff0c \u4ee5 \u6700\u597d \u5730 \u5339\u914d \u8f66\u8f86 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5bf9\u4e8e Carla \u8f66\u8f86 \u7684 \u8f66\u8f6e \uff0c \u6211\u4eec \u9700\u8981 \u4e3a \u6bcf\u4e2a \u8f66\u8f6e \u5efa\u7acb \u4e00\u4e2a \u84dd\u56fe \u7c7b\u6765 \u5904\u7406 \u529b\u5b66 \u548c \u78b0\u649e \u5c5e\u6027 \u3002 \u60a8 \u5c06 \u8bbe\u7f6e 4 \u4e2a \u84dd\u56fe \u7c7b \uff0c \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u4ee5\u4e0b \u524d\u7f00 \u6216 \u540e\u7f00 \u6765 \u8bc6\u522b \u8f6e\u5b50 \uff1a RRW - R ear R ight W heel RLW - R ear L eft W heel FRW - F ront R ight W heel FLW - F ront L eft W heel","title":"\u8f66\u8f6e"},{"location":"tuto_content_authoring_vehicles/#_20","text":"\u5728 \u60a8 \u62e5\u6709 \u65b0\u8f66 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \u7c7b \u3002 \u641c\u7d22 \u53cc\u51fb \u84dd\u56fe \u8fdb\u884c \u8c03\u6574 \uff1a","title":"\u8f66\u8f6e \u84dd\u56fe"},{"location":"tuto_content_authoring_vehicles/#_21","text":"\u9996\u5148 \uff0c \u7528\u4e8e \u78b0\u649e \u7f51\u683c \u7684 \u9ed8\u8ba4 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u5177\u6709 \u9ad8 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u56e0\u6b64 \u6211\u4eec \u5e94\u8be5 \u5c06 \u5176 \u66ff\u6362 \u4e3a \u4f4e \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7248\u672c \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u627e\u5230 Content > Carla > Blueprints > Vehicles \u5185 \u7684 CollisionWheel \u7f51\u683c \u3002 \u84dd\u56fe \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u7684 \u63d2\u69fd \u4e0a \u3002 \u8fd9 \u5c06 \u63d0\u9ad8 \u6027\u80fd \uff0c \u800c \u4e0d\u4f1a \u5bfc\u81f4 \u7269\u7406 \u4eff\u771f \u51fa\u73b0 \u4efb\u4f55 \u660e\u663e \u7684 \u7f3a\u9677 \u3002","title":"\u78b0\u649e \u7f51\u683c"},{"location":"tuto_content_authoring_vehicles/#_22","text":"\u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u8bbe\u7f6e \u8f6e\u80ce \u914d\u7f6e \u3002 \u5728 Content > Carla > Blueprints > Vehicles \u5185 \u627e\u5230 CommonTireConfig \u914d\u7f6e \u5e76 \u5c06 \u5176 \u62d6 \u5230 Tire Config \u84dd\u56fe \u7684 \u90e8\u5206 \u4e0a \u3002 \u5982\u679c \u53cc\u51fb \u84dd\u56fe \u4e2d \u7684 \u8f6e\u80ce \u914d\u7f6e \uff0c \u53ef\u4ee5 \u8c03\u6574 \u6469\u64e6 \u6bd4\u4f8b \uff0c \u53ef\u4ee5 \u4fee\u6539 \u8f66\u8f86 \u7684 \u9053\u8def \u64cd\u63a7 \u884c\u4e3a \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u8bbe\u7f6e \u4e3a 3.5 \uff0c \u8be5\u503c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u8f86 \u4f7f\u7528 \u60c5\u51b5 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u5e0c\u671b \u5bf9 \u5e26\u6709 \u5149\u5934 \u8f6e\u80ce \u7684 \u8d5b\u8f66 \u8fdb\u884c \u5efa\u6a21 \uff0c \u5219 \u8fd9 \u5c06 \u662f \u9700\u8981 \u8c03\u6574 \u7684 \u9002\u5f53 \u53c2\u6570 \u3002","title":"\u8f6e\u80ce \u914d\u7f6e"},{"location":"tuto_content_authoring_vehicles/#_23","text":"\u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u6d4b\u91cf \u8f66\u8f6e \u7684 \u76f4\u5f84 \u3002 \u5728 Blender \u4e2d \uff0c \u53ef\u4ee5 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u6309 n \u6253\u5f00 \u7684 \u5c5e\u6027 \u9762\u677f \u4e2d \u67e5\u770b \u5c3a\u5bf8 \u3002 \u73b0\u5728 \u5c06 \u8fd9\u4e9b \u6570\u5b57 \u63d2\u5165 \u5230 Wheel \u84dd\u56fe \u7684 \u90e8\u5206 \u4e2d \u3002 \u8bf7 \u6ce8\u610f \u534a\u5f84 \u4e3a \u76f4\u5f84 \u7684 \u4e00\u534a \uff0c \u5e76\u4e14 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 \u5bf9\u4e8e \u8f66\u8f6e \u8d28\u91cf \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u4e0a \u67e5\u627e \u89c4\u683c \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u8f6e\u80ce \u578b\u53f7 \u6216 \u7c7b\u4f3c \u7684 \u8f6e\u80ce \u578b\u53f7 \u6765 \u4f30\u8ba1 \u6b63\u786e \u7684 \u8d28\u91cf \uff08 \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \uff09 \u3002 Affected by handbrake \u5e94 \u68c0\u67e5 \u4e24\u4e2a \u540e\u8f6e \u3002 Steer angle \u5bf9\u4e8e \u4e24\u4e2a \u524d\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u6700\u5927 \u9884\u671f \u8f6c\u5411 \u89d2 \uff0c \u5bf9\u4e8e \u4e24\u4e2a \u540e\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u96f6 \u3002","title":"\u8f66\u8f6e \u5c3a\u5bf8"},{"location":"tuto_content_authoring_vehicles/#_24","text":"\u8fd9\u91cc \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5408\u7406 \u7684 \u8d77\u70b9 \u3002 \u67e5\u770b \u672c \u6307\u5357 \u4ee5 \u8bbe\u7f6e \u9002\u5408 \u60a8 \u8f66\u8f86 \u7c7b\u578b \u7684 \u60ac\u67b6 \u7279\u6027 \u3002","title":"\u60ac\u67b6 \u7279\u6027"},{"location":"tuto_content_authoring_vehicles/#_25","text":"\u5b8c\u6210 Carla \u771f\u5b9e \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u5143\u7d20 \u662f \u706f \u3001 \u524d\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u7b49 \u3002 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \uff0c \u60a8 \u5e94\u8be5 \u5bf9 \u4e00\u4e9b \u7c7b\u4f3c \u4e8e \u60a8 \u8981 \u590d\u5236 \u7684 \u8f66\u8f86 \u706f \u7684 \u5f62\u72b6 \u8fdb\u884c \u5efa\u6a21 \u3002 \u5bf9\u4e8e \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u5934 \u5934\u706f \u8f66\u5934\u706f \u6765\u8bf4 \uff0c \u8fd9 \u5c06 \u662f \u6241\u5e73 \u5706\u76d8 \u6216 \u6241\u5e73 \u957f\u65b9 \u957f\u65b9\u4f53 \u7ed3\u6784 \u3002 \u6709\u4e9b \u8f66\u8f86 \u53ef\u80fd \u8fd8 \u914d\u6709 LED \u706f\u6761 \u3002","title":"\u706f"},{"location":"tuto_content_authoring_vehicles/#uv","text":"\u4e0d\u540c \u7c7b\u578b \u7684 \u706f \uff08 \u524d\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u7b49 \uff09 \u4f7f\u7528 \u7eb9\u7406 \u6765 \u533a\u5206 \u3002 \u60a8 \u9700\u8981 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u521b\u5efa UV \u8d34\u56fe \uff0c \u5e76 \u5b9a\u4f4d \u706f\u5149 \u4ee5 \u4e0e \u7eb9\u7406 \u7684 \u76f8\u5173 \u533a\u57df \u5339\u914d \u76f8\u5339\u914d \u3002","title":"UV \u8d34\u56fe"},{"location":"tuto_content_authoring_vehicles/#_26","text":"\u5c06 \u706f\u5149 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 - \u5bfc\u5165 \u706f\u5149 \u7f51\u683c \u540e \uff1a \u5c06 \u7f51\u683c \u7269\u4f53 \u62d6\u52a8 \u5230 Components \u9762\u677f \u4e2d \u7684 Mesh ( VehicleMesh ) ( Inherited ) \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u989d\u5916 \u7f51\u683c \u5e76 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Collision \u3002 \u5c06 \u78b0\u649e \u9884\u8bbe ( Collision Presets ) \u8bbe\u7f6e \u4e3a NoCollision \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u4efb\u4f55 \u706f\u5149 \u7f51\u683c \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Tag \u5e76 \u6dfb\u52a0 emissive \u6807\u7b7e \u3002","title":"\u5bfc\u5165"},{"location":"tuto_content_authoring_vehicles_materials/","text":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u6750\u6599 \u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002 \u5c06 \u6750\u6599 \u5e94\u7528 \u5230 \u60a8 \u7684 \u8f66\u8f86 \u4e0a Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u6a21\u4eff \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u8d28 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u8d28 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \u3002 \u989c\u8272 ( Color ) - \u989c\u8272 \u8bbe\u7f6e \u63a7\u5236 \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a \u900f\u660e \u6d82\u5c42 ( Clear coat ) - \u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u63a7\u5236 \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u201d \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f \u900f\u660e \u6d82\u5c42 \u5f3a\u5ea6 ( Clear Coat Intensity ) \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002 \u7c92\u72b6 \u8868\u9762 ( Orange peel ) - \u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e2d \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u6a59\u76ae \u6548\u679c \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002 \u8584\u7247 ( Flakes ) - \u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u4f7f \u6c7d\u8f66 \u5177\u6709 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u53cd\u5e94 \u5149\u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f \u7070\u5c18 ( Dust ) - \u6c7d\u8f66 \u7684 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u4ece\u800c \u589e\u52a0 \u6cb9\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002","title":"Tuto content authoring vehicles materials"},{"location":"tuto_content_authoring_vehicles_materials/#-","text":"\u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002","title":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u6750\u6599"},{"location":"tuto_content_authoring_vehicles_materials/#_1","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u6a21\u4eff \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u8d28 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u8d28 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \u3002 \u989c\u8272 ( Color ) - \u989c\u8272 \u8bbe\u7f6e \u63a7\u5236 \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a \u900f\u660e \u6d82\u5c42 ( Clear coat ) - \u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u63a7\u5236 \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u201d \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f \u900f\u660e \u6d82\u5c42 \u5f3a\u5ea6 ( Clear Coat Intensity ) \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002 \u7c92\u72b6 \u8868\u9762 ( Orange peel ) - \u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e2d \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u6a59\u76ae \u6548\u679c \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002 \u8584\u7247 ( Flakes ) - \u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u4f7f \u6c7d\u8f66 \u5177\u6709 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u53cd\u5e94 \u5149\u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f \u7070\u5c18 ( Dust ) - \u6c7d\u8f66 \u7684 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u4ece\u800c \u589e\u52a0 \u6cb9\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002","title":"\u5c06 \u6750\u6599 \u5e94\u7528 \u5230 \u60a8 \u7684 \u8f66\u8f86 \u4e0a"},{"location":"tuto_first_steps/","text":"\u5b66\u4e60 Carla \u7684 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u662f \u4e00\u4e2a \u7efc\u5408 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7528\u4e8e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 ( Autonomous Driving , AD ) \u548c \u5176\u4ed6 \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u751f\u6210 \u5408\u6210 \u8bad\u7ec3 \u6570\u636e \u3002 Carla \u4eff\u771f \u9ad8\u5ea6 \u771f\u5b9e \u7684 \u73af\u5883 \uff0c \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u4e2d \u7684 \u57ce\u9547 \u3001 \u57ce\u5e02 \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ee5\u53ca \u5360\u636e \u8fd9\u4e9b \u9a7e\u9a76 \u7a7a\u95f4 \u7684 \u8f66\u8f86 \u548c \u5176\u4ed6 \u7269\u4f53 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd8 \u53ef \u7528\u4f5c \u8bc4\u4f30 \u548c \u6d4b\u8bd5 \u73af\u5883 \u6d4b\u8bd5\u73af\u5883 \u3002 \u60a8 \u53ef\u4ee5 \u90e8\u7f72 \u5728 \u4eff\u771f \u4e2d \u8bad\u7ec3 \u8fc7 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u6765 \u6d4b\u8bd5 \u548c \u8bc4\u4f30 \u5176 \u6027\u80fd \u548c \u5b89\u5168 \u5b89\u5168\u6027 \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u5728 \u4eff\u771f \u73af\u5883 \u7684 \u5b89\u5168 \u8303\u56f4 \u5185 \uff0c \u4e0d\u4f1a \u5bf9 \u786c\u4ef6 \u6216 \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u9020\u6210 \u98ce\u9669 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd Carla \u4e2d \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u4ece \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5230 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u751f\u6210 \u7528\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u672c \u6559\u7a0b \u65e8\u5728 \u91cd\u70b9 \u4ecb\u7ecd \u7ec6\u8282 \uff0c \u5e76 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9ad8\u6548 \u5730 \u4ecb\u7ecd \u4f7f\u7528 Carla \u751f\u6210 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u5173\u952e \u6b65\u9aa4 \u5173\u952e\u6b65\u9aa4 \u3002 \u6709\u5173 \u5de5\u4f5c \u6d41\u7a0b \u6bcf\u4e2a \u90e8\u5206 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u84dd \u56fe\u5e93 \u4e2d \u53ef\u7528 \u7684 \u591a\u79cd \u8f66\u8f86 \u6216 \u53ef\u7528 \u7684 \u66ff\u4ee3 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u8bf7 \u67e5\u9605 \u6587\u672c \u4e2d \u7684 \u94fe\u63a5 \u6216 \u6d4f\u89c8 \u5de6\u4fa7 \u83dc\u5355 \u3002 \u542f\u52a8 Carla \u52a0\u8f7d \u5730\u56fe \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bfc\u822a \u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86 \u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86 \u9009\u62e9 \u4f60 \u7684 \u5730\u56fe \u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86 \u542f\u52a8 Carla \u5e76 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u4f7f\u7528 Windows \u4e2d \u7684 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u6216 Linux \u4e2d \u7684 shell \u811a\u672c \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u3002 \u6309\u7167 Linux \u548c Windows \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \uff1a cd / carla / root . / CarlaUE4 . sh \u8981 \u901a\u8fc7 Python API \u64cd\u4f5c Carla \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 \u5f00\u653e \u7aef\u53e3 \u5c06 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6253\u5f00 \u4e00\u4e2a Python \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 \u521b\u5efa \u4e00\u4e2a \u65b0 \u811a\u672c \uff0c \u7136\u540e \u5c06 \u4ee5\u4e0b \u4ee3\u7801 \u6dfb\u52a0 \u5230 \u811a\u672c \u7684 \u5f00\u5934 \u6216 main \u51fd\u6570 \u4e2d \uff1a import carla import random # \u94fe\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7528\u4e8e \u7ef4\u62a4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u8fde\u63a5 \uff0c \u5e76 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u5e94\u7528 \u547d\u4ee4 \u4ee5\u53ca \u52a0\u8f7d \u6216 \u5bfc\u51fa \u6570\u636e \u7684 \u529f\u80fd \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u52a0\u8f7d \u66ff\u4ee3 \u5730\u56fe \u6216 \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u5730\u56fe \uff08 \u91cd\u7f6e \u4e3a \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \uff09 \u3002 \u7aef\u53e3 \u53ef\u4ee5 \u9009\u62e9 \u4efb\u4f55 \u53ef\u7528 \u7684 \u7aef\u53e3 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 2000 \uff0c \u60a8 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u9009\u62e9 \u4e0e localhost \u4e0d\u540c \u7684 \u4e3b\u673a \u3002 \u8fd9\u6837 \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5728 \u8054\u7f51 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \uff0c \u800c python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u4ece \u4e2a\u4eba \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u533a\u5206 \u7528\u4e8e \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 GPU \u548c \u7528\u4e8e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8bad\u7ec3 \u7684 GPU \u7279\u522b \u6709\u7528 \uff0c \u8fd9 \u4e24\u8005 \u5bf9 \u56fe\u5f62 \u786c\u4ef6 \u7684 \u8981\u6c42 \u90fd \u5f88 \u9ad8 \u3002 \u7b14\u8bb0 \u4ee5\u4e0b \u5047\u8bbe Carla \u5728 \u9ed8\u8ba4 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u7684 \u67d0\u4e9b \u4ee3\u7801 \u53ef\u80fd \u65e0\u6cd5 \u6309 \u9884\u671f \u5de5\u4f5c \u3002 \u52a0\u8f7d \u5730\u56fe \u5728 Carla API \u4e2d \uff0c \u4e16\u754c \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u4eff\u771f \u7684 \u6240\u6709 \u5143\u7d20 \u7684 \u8bbf\u95ee \uff0c \u5305\u62ec \u5730\u56fe \u3001 \u5730\u56fe \u5185 \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u5e38 \u52a0\u8f7d \u9ed8\u8ba4 \u5730\u56fe \uff08 \u901a\u5e38 \u4e3a Town10 \uff09 \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5907\u7528 \u5730\u56fe \u542f\u52a8 Carla \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b config . py \u811a\u672c \uff1a . / config . py -- map Town05 \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world \u5bf9\u8c61 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u52a0\u8f7d \u5730\u56fe \uff1a client . load _ world ( ' Town05 ' ) \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 Carla \u5730\u56fe \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bfc\u822a \u89c2\u5bdf \u89c2\u5bdf\u8005 \u662f \u4eff\u771f \u7684 \u89c6\u56fe \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u5728 \u8fde\u63a5 \u5c4f\u5e55 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 \uff0c \u89c2\u4f17 \u4f1a \u5728 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u4e2d \u6253\u5f00 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a - RenderOffScreen \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u60a8 \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u719f\u6089 \u5df2 \u52a0\u8f7d \u7684 \u5730\u56fe \uff0c \u5e76 \u67e5\u770b \u6240 \u505a \u7684 \u4efb\u4f55 \u66f4\u6539 \u7684 \u7ed3\u679c \uff0c \u4f8b\u5982 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u66f4\u6539 \u5929\u6c14 \u3001 \u6253\u5f00 / \u5173\u95ed \u5730\u56fe \u7684 \u5404\u4e2a \u56fe\u5c42 \u4ee5\u53ca \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u63a7\u5236 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u7684 \u4fef\u4ef0 \u548c \u504f\u822a \uff0c \u5e76 \u4f7f\u7528 QWE - ASD \u952e \u79fb\u52a8 \u89c2\u4f17 \uff0c \u8ba9 \u89c2\u4f17 \u98de \u5230 \u4e16\u754c \u5404\u5730 \u4e16\u754c\u5404\u5730 \uff1a Q - \u5411\u4e0a \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u9876\u90e8 \u8fb9\u7f18 \uff09 E - \u5411\u4e0b \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u4e0b \u8fb9\u7f18 \uff09 W - \u5411\u524d \u79fb\u52a8 S - \u5411 \u540e \u79fb\u52a8 A - \u5411 \u5de6 \u79fb\u52a8 D - \u5411 \u53f3 \u79fb\u52a8 \u5de6\u952e \u5355\u51fb \u5e76 \u5728 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7a97\u53e3 \u4e2d \u4e0a\u4e0b \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u4fef\u4ef0 \uff0c \u5de6\u53f3 \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u504f\u822a \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53ca\u5176 \u5c5e\u6027 \u53ef\u4ee5 \u901a\u8fc7 Python API \u8bbf\u95ee \u548c \u64cd\u4f5c \uff1a # \u83b7\u53d6 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bf9\u8c61 spectator = world . get _ spectator ( ) # \u901a\u8fc7 \u53d8\u6362 \u83b7\u5f97 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c transform = spectator . get _ transform ( ) location = transform . location rotation = transform . rotation # \u7528\u7a7a \u53d8\u6362 \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( carla . Transform ( ) ) # \u8fd9 \u5c06 \u8bbe\u7f6e \u89c2\u4f17 \u5728 \u5730\u56fe \u7684 \u539f\u70b9 \uff0c 0 \u5ea6 \u4fef\u4ef0 \uff0c \u504f\u822a \u548c \u6eda\u52a8 - \u4e00\u4e2a \u5f88 \u597d \u7684 \u65b9\u5f0f \u6765 \u5b9a\u4f4d \u81ea\u5df1 \u5728 \u5730\u56fe \u4e0a \u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u5730\u56fe \u5e76\u4e14 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5df2 \u542f\u52a8 \u5e76 \u8fd0\u884c \uff0c \u6211\u4eec \u73b0\u5728 \u9700\u8981 \u7528 \u4e00\u4e9b \u8f66\u8f86 \u586b\u5145 \u6211\u4eec \u7684 \u4eff\u771f \uff0c \u4ee5 \u4eff\u771f \u5177\u6709 \u4ea4\u901a \u548c \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u6216\u975e \u73a9\u5bb6 \u89d2\u8272 \u7684 \u771f\u5b9e \u73af\u5883 \u3002 \u8981 \u751f\u6210 \u8f66\u8f86 \uff0c \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u6211\u4eec \u60f3\u8981 \u7684 \u8f66\u8f86 \u3002 # \u83b7\u53d6 \u84dd \u56fe\u5e93 \u548c \u8f66\u8f86 \u84dd\u56fe \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 vehicle _ blueprints = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u84dd\u56fe \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u5730\u56fe \u4e0a \u627e\u5230 \u4e00\u4e9b \u5408\u9002 \u7684 \u5730\u70b9 \u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 \u4e3a\u6b64 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u63d0\u4f9b \u4e86 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u5730\u56fe \u7684 \u9053\u8def \u4e0a \u3002 # \u83b7\u5f97 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u5728 \u6bcf\u4e2a \u751f\u6210 \u70b9 \u968f\u673a \u751f\u6210 50 \u8f86\u8f66 \uff0c \u6211\u4eec \u4ece \u84dd \u56fe\u5e93 \u4e2d \u968f\u673a \u9009\u62e9 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 for i in range ( 0 , 50 ) : world . try _ spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u73b0\u5728 \u6211\u4eec \u8fd8 \u5e94\u8be5 \u6dfb\u52a0 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4f5c\u4e3a \u4eff\u771f \u7684 \u4e2d\u5fc3 \u4e2d\u5fc3\u70b9 \u3002 \u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u6211\u4eec \u9700\u8981 \u4eff\u771f \u81ea\u4e3b \u4ee3\u7406 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u7528 Carla \u7684 \u8bf4\u6cd5 \uff0c \u6211\u4eec \u7ecf\u5e38 \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u3002 ego _ vehicle = world . spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u9664\u4e86 \u8f66\u8f86 \u4e4b\u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u884c\u4eba \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \uff0c \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u9a7e\u9a76 \u573a\u666f \u3002 \u5728 Carla \u672f\u8bed \u4e2d \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u88ab \u79f0\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u73b0\u4ee3 \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u901a\u8fc7 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u7406\u89e3 \u548c \u89e3\u91ca \u5176 \u73af\u5883 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5305\u62ec \u5149\u5b66 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u5149\u6d41 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u7b49 \u3002 Carla \u5185\u7f6e \u4e86 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6a21\u578b \uff0c \u7528\u4e8e \u521b\u5efa \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u4e5f \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u56fa\u5b9a \u5b9a\u70b9 \u56fa\u5b9a\u70b9 \u6765 \u5efa\u6a21 \uff0c \u4f8b\u5982 \u95ed\u8def \u7535\u89c6 \u95ed\u8def\u7535\u89c6 \u6444\u50cf \u6444\u50cf\u673a \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u5c06 \u5728 \u81ea\u6211 \u8f66\u8f86 \u4e0a \u5b89\u88c5 \u4e00\u4e2a \u6807\u51c6 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u8bb0\u5f55 \u4e00\u4e9b \u89c6\u9891 \u6570\u636e \uff1a # \u521b\u5efa \u4e00\u4e2a \u53d8\u6362 \uff0c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u8f66\u8f86 \u7684 \u9876\u90e8 camera _ init _ trans = carla . Transform ( carla . Location ( z = 1.5 ) ) # \u901a\u8fc7 \u5b9a\u4e49 \u5176 \u5c5e\u6027 \u7684 \u84dd\u56fe \u6765 \u521b\u5efa \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u751f\u6210 \u76f8\u673a \u5e76 \u5c06 \u5176 \u8fde\u63a5 \u5230 \u6211\u4eec \u7684 \u81ea\u6211 \u8f66\u8f86 \u4e0a camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) \u4e00\u65e6 \u6211\u4eec \u751f\u6210 \u4e86 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 listen ( ) \u65b9\u6cd5 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u5f55\u5236 \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b9a\u4e49 \u5982\u4f55 \u5904\u7406 \u6570\u636e \u7684 \u56de\u8c03 \u4f5c\u4e3a \u53c2\u6570 \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u6d41\u5f0f \u4f20\u8f93 \u5230 \u53e6 \u4e00\u4e2a \u7a0b\u5e8f \u6216 \u5c06 \u5176 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 lambda \u51fd\u6570 \u4f5c\u4e3a \u56de\u8c03 \u5c06 \u6570\u636e \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a # \u7528 PyGame \u56de\u8c03 \u542f\u52a8 \u76f8\u673a camera . listen ( lambda image : image . save _ to _ disk ( ' out / % 06d . png ' % image . frame ) ) \u8fd9\u4f1a \u5c06 \u6570\u636e \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6839\u636e \u4eff\u771f \u5e27 \u7f16\u53f7 \u547d\u540d \u7684 PNG \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4fdd\u5b58 \u5230 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6709 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u7814\u7a76 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9635\u5217 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u3002 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u5c06 \u4ea4\u901a \u548c \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \u5e76 \u5f00\u59cb \u8bb0\u5f55 \u6444\u50cf \u6444\u50cf\u673a \u6570\u636e \uff0c \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u662f Carla \u7684 \u4e00\u4e2a \u7ec4\u4ef6 \uff0c \u5b83 \u63a7\u5236 \u8f66\u8f86 \u5728 \u4eff\u771f \u5185 \u7684 \u5730\u56fe \u9053\u8def \u4e0a \u81ea\u52a8 \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u60ef\u4f8b \u5e76 \u8868\u73b0 \u5f97 \u50cf \u771f\u6b63 \u7684 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 world . get _ actors ( ) \u65b9\u6cd5 \u627e\u5230 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5bf9 \u6240\u6709 \u8f66\u8f86 \u8fdb\u884c \u8fc7\u6ee4 \u3002 \u7136\u540e \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8be5 set _ autopilot ( ) \u65b9\u6cd5 \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u79fb\u4ea4 \u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 for vehicle in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : vehicle . set _ autopilot ( True ) \u73b0\u5728 \u60a8 \u7684 \u4eff\u771f \u6b63\u5728 \u8fd0\u884c \uff0c \u6709 \u8bb8\u591a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u5e76\u4e14 \u6444\u50cf \u6444\u50cf\u673a \u8bb0\u5f55 \u5176\u4e2d \u4e00\u8f86 \u8f66\u8f86 \u7684 \u6570\u636e \u3002 \u7136\u540e \uff0c \u8be5 \u6570\u636e \u53ef \u7528\u4e8e \u63d0\u4f9b \u673a\u5668 \u5b66\u4e60 \u7b97\u6cd5 \u6765 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u3002 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d41\u91cf \u884c\u4e3a \u7684 \u529f\u80fd \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4eff\u771f \u7684 \u6700 \u57fa\u672c \u53ef\u80fd \u8bbe\u7f6e \uff0c \u73b0\u5728 \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u4e86\u89e3 \u6709\u5173 \u53ef \u7528\u4e8e \u751f\u6210 \u6570\u636e \u7684 \u8bb8\u591a \u989d\u5916 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6587\u6863 \uff0c \u4ee5\u53ca Carla \u7684 \u8bb8\u591a \u5176\u4ed6 \u529f\u80fd \uff0c \u8fd9\u4e9b \u529f\u80fd \u53ef\u4ee5 \u4f7f \u60a8 \u7684 \u4eff\u771f \u66f4\u52a0 \u8be6\u7ec6 \u548c \u66f4 \u591a \u5b9e\u9645 \u7684 \u3002 \u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86 \u81ea\u6211 \u8f66\u8f86 \u662f \u4f7f\u7528 Carla \u65f6 \u9700\u8981 \u7262\u8bb0 \u7684 \u4e00\u4e2a \u91cd\u8981 \u6982\u5ff5 \u3002 \u81ea\u6211 \u8f66\u8f86 \u662f \u6307 \u5c06 \u6210\u4e3a \u4eff\u771f \u7126\u70b9 \u7684 \u8f66\u8f86 \u3002 \u5728 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 CARLA \u7528\u4f8b \u4e2d \uff0c \u5b83 \u53ef\u80fd \u662f \u60a8 \u5c06 \u8fde\u63a5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f66\u8f86 \u548c / \u6216 \u60a8 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u673a\u5668 \u5b66\u4e60 \u5806\u6808 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5f88 \u91cd\u8981 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e00\u4e9b \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u9ad8 \u4eff\u771f \u6548\u7387 \u7684 \u4eff\u771f \u64cd\u4f5c \u7684 \u57fa\u7840 \uff0c \u4f8b\u5982 \uff1a \u52a0\u8f7d \u5927\u578b \u5730\u56fe \u7684 \u5730\u56fe \u56fe\u5757 : \u5927\u578b \u5730\u56fe \uff08 \u5982 Town 12 \uff09 \u7531 \u56fe\u5757 \u7ec4\u6210 \uff0c \u4ec5 \u5728 \u9700\u8981 \u63d0\u9ad8 Carla \u6027\u80fd \u65f6\u624d \u52a0\u8f7d \u3002 \u81ea\u6211 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u51b3\u5b9a \u4e86 \u4f7f\u7528 \u54ea\u4e9b \u56fe\u5757 \u3002 \u53ea\u6709 \u9760\u8fd1 \u6700\u9760\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \u624d \u4f1a \u88ab \u52a0\u8f7d \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : \u5982\u679c \u60a8 \u7684 \u4eff\u771f \u5305\u542b \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5927\u91cf \u8f66\u8f86 \uff0c \u5219 \u8ba1\u7b97 \u6240\u6709 \u8fd9\u4e9b \u8f66\u8f86 \u7684 \u7269\u7406 \u7269\u7406\u91cf \u5728 \u8ba1\u7b97 \u4e0a \u975e\u5e38 \u6602\u8d35 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u4f7f \u7269\u7406 \u8ba1\u7b97 \u4ec5\u9650 \u9650\u4e8e \u4ec5\u9650\u4e8e \u81ea\u6211 \u8f66\u8f86 \u9644\u8fd1 \u7684 \u8f66\u8f86 \uff0c \u4ece\u800c \u8282\u7701 \u8ba1\u7b97 \u8d44\u6e90 \u8ba1\u7b97\u8d44\u6e90 \u3002 \u8981 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u65f6 \u8bbe\u7f6e role _ name \u8f66\u8f86 carla . Actor \u5bf9\u8c61 \u84dd\u56fe \u7684 \u5c5e\u6027 \uff1a ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . lincoln . mkz _ 2020 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' hero ' ) ego _ vehicle = world . spawn _ actor ( ego _ bp , random . choice ( spawn _ points ) ) \u9009\u62e9 \u4f60 \u7684 \u5730\u56fe Carla \u9644\u5e26 \u4e86 \u51e0\u5f20 \u9884\u5236 \u5730\u56fe \uff0c \u4e13\u6ce8 \u4e8e \u63d0\u4f9b \u591a\u79cd \u529f\u80fd \u3002 \u8fd9\u4e9b \u5730\u56fe \u5448\u73b0 \u4e86 \u57ce\u5e02 \u3001 \u4e61\u6751 \u548c \u4f4f\u5b85 \u7b49 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u73af\u5883 \u3002 \u8fd8\u6709 \u4e0d\u540c \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u548c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u9053\u8def \u5e03\u5c40 \uff0c \u4ece \u65e0 \u6807\u8bb0 \u7684 \u4e61\u6751 \u9053\u8def \u5230 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u6d4f\u89c8 \u76ee\u5f55 \u6216 \u4e0b\u8868\u4e2d \u7684 \u5730\u56fe \u6307\u5357 \u3002 \u57ce\u9547 \u6982\u62ec \u57ce\u9547 01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 \u57ce\u9547 02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 \u57ce\u9547 03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 \u57ce\u9547 04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 \u57ce\u9547 05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 \u57ce\u9547 06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u57ce\u9547 08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 \u57ce\u9547 11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u57ce\u9547 12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 \u57ce\u9547 13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 \u57ce\u9547 15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 Carla \u5b89\u88c5 \u4e2d \u7684 \u53ef\u7528 \u5730\u56fe \uff1a client . get _ available _ maps ( ) \u8fd9 \u5c06 \u5305\u62ec \u60a8 \u81ea\u5df1 \u6784\u5efa \u6216 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u5f53 \u60a8 \u9009\u62e9 \u5730\u56fe \u65f6 \uff0c \u8bf7 \u50cf \u8fd9\u6837 \u52a0\u8f7d \u5b83 \uff1a client . load _ world ( ' Town03 _ Opt ' ) \u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u8f66\u8f86 \u5e93 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u7684 \u4eff\u771f \u5145\u6ee1 \u4ea4\u901a \u3002 \u6d4f\u89c8 Carla \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \u578b\u53f7 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fc7\u6ee4 \u84dd \u56fe\u5e93 \u6765 \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u7684 \u8f66\u8f86 \u84dd\u56fe \u3002 for bp in world . get _ blueprint _ library ( ) . filter ( ' vehicle ' ) : print ( bp . id )","title":"\u7b2c\u4e00\u6b65"},{"location":"tuto_first_steps/#carla","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u662f \u4e00\u4e2a \u7efc\u5408 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7528\u4e8e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 ( Autonomous Driving , AD ) \u548c \u5176\u4ed6 \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u751f\u6210 \u5408\u6210 \u8bad\u7ec3 \u6570\u636e \u3002 Carla \u4eff\u771f \u9ad8\u5ea6 \u771f\u5b9e \u7684 \u73af\u5883 \uff0c \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u4e2d \u7684 \u57ce\u9547 \u3001 \u57ce\u5e02 \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ee5\u53ca \u5360\u636e \u8fd9\u4e9b \u9a7e\u9a76 \u7a7a\u95f4 \u7684 \u8f66\u8f86 \u548c \u5176\u4ed6 \u7269\u4f53 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd8 \u53ef \u7528\u4f5c \u8bc4\u4f30 \u548c \u6d4b\u8bd5 \u73af\u5883 \u6d4b\u8bd5\u73af\u5883 \u3002 \u60a8 \u53ef\u4ee5 \u90e8\u7f72 \u5728 \u4eff\u771f \u4e2d \u8bad\u7ec3 \u8fc7 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u6765 \u6d4b\u8bd5 \u548c \u8bc4\u4f30 \u5176 \u6027\u80fd \u548c \u5b89\u5168 \u5b89\u5168\u6027 \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u5728 \u4eff\u771f \u73af\u5883 \u7684 \u5b89\u5168 \u8303\u56f4 \u5185 \uff0c \u4e0d\u4f1a \u5bf9 \u786c\u4ef6 \u6216 \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u9020\u6210 \u98ce\u9669 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd Carla \u4e2d \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u4ece \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5230 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u751f\u6210 \u7528\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u672c \u6559\u7a0b \u65e8\u5728 \u91cd\u70b9 \u4ecb\u7ecd \u7ec6\u8282 \uff0c \u5e76 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9ad8\u6548 \u5730 \u4ecb\u7ecd \u4f7f\u7528 Carla \u751f\u6210 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u5173\u952e \u6b65\u9aa4 \u5173\u952e\u6b65\u9aa4 \u3002 \u6709\u5173 \u5de5\u4f5c \u6d41\u7a0b \u6bcf\u4e2a \u90e8\u5206 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u84dd \u56fe\u5e93 \u4e2d \u53ef\u7528 \u7684 \u591a\u79cd \u8f66\u8f86 \u6216 \u53ef\u7528 \u7684 \u66ff\u4ee3 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u8bf7 \u67e5\u9605 \u6587\u672c \u4e2d \u7684 \u94fe\u63a5 \u6216 \u6d4f\u89c8 \u5de6\u4fa7 \u83dc\u5355 \u3002 \u542f\u52a8 Carla \u52a0\u8f7d \u5730\u56fe \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bfc\u822a \u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86 \u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86 \u9009\u62e9 \u4f60 \u7684 \u5730\u56fe \u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86","title":"\u5b66\u4e60 Carla \u7684 \u7b2c\u4e00\u6b65"},{"location":"tuto_first_steps/#carla_1","text":"\u53ef\u4ee5 \u4f7f\u7528 Windows \u4e2d \u7684 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u6216 Linux \u4e2d \u7684 shell \u811a\u672c \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u3002 \u6309\u7167 Linux \u548c Windows \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \uff1a cd / carla / root . / CarlaUE4 . sh \u8981 \u901a\u8fc7 Python API \u64cd\u4f5c Carla \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 \u5f00\u653e \u7aef\u53e3 \u5c06 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6253\u5f00 \u4e00\u4e2a Python \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 \u521b\u5efa \u4e00\u4e2a \u65b0 \u811a\u672c \uff0c \u7136\u540e \u5c06 \u4ee5\u4e0b \u4ee3\u7801 \u6dfb\u52a0 \u5230 \u811a\u672c \u7684 \u5f00\u5934 \u6216 main \u51fd\u6570 \u4e2d \uff1a import carla import random # \u94fe\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7528\u4e8e \u7ef4\u62a4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u8fde\u63a5 \uff0c \u5e76 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u5e94\u7528 \u547d\u4ee4 \u4ee5\u53ca \u52a0\u8f7d \u6216 \u5bfc\u51fa \u6570\u636e \u7684 \u529f\u80fd \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u52a0\u8f7d \u66ff\u4ee3 \u5730\u56fe \u6216 \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u5730\u56fe \uff08 \u91cd\u7f6e \u4e3a \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \uff09 \u3002 \u7aef\u53e3 \u53ef\u4ee5 \u9009\u62e9 \u4efb\u4f55 \u53ef\u7528 \u7684 \u7aef\u53e3 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 2000 \uff0c \u60a8 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u9009\u62e9 \u4e0e localhost \u4e0d\u540c \u7684 \u4e3b\u673a \u3002 \u8fd9\u6837 \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5728 \u8054\u7f51 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \uff0c \u800c python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u4ece \u4e2a\u4eba \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u533a\u5206 \u7528\u4e8e \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 GPU \u548c \u7528\u4e8e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8bad\u7ec3 \u7684 GPU \u7279\u522b \u6709\u7528 \uff0c \u8fd9 \u4e24\u8005 \u5bf9 \u56fe\u5f62 \u786c\u4ef6 \u7684 \u8981\u6c42 \u90fd \u5f88 \u9ad8 \u3002 \u7b14\u8bb0 \u4ee5\u4e0b \u5047\u8bbe Carla \u5728 \u9ed8\u8ba4 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u7684 \u67d0\u4e9b \u4ee3\u7801 \u53ef\u80fd \u65e0\u6cd5 \u6309 \u9884\u671f \u5de5\u4f5c \u3002","title":"\u542f\u52a8 Carla \u5e76 \u8fde\u63a5 \u5ba2\u6237\u7aef"},{"location":"tuto_first_steps/#_1","text":"\u5728 Carla API \u4e2d \uff0c \u4e16\u754c \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u4eff\u771f \u7684 \u6240\u6709 \u5143\u7d20 \u7684 \u8bbf\u95ee \uff0c \u5305\u62ec \u5730\u56fe \u3001 \u5730\u56fe \u5185 \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u5e38 \u52a0\u8f7d \u9ed8\u8ba4 \u5730\u56fe \uff08 \u901a\u5e38 \u4e3a Town10 \uff09 \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5907\u7528 \u5730\u56fe \u542f\u52a8 Carla \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b config . py \u811a\u672c \uff1a . / config . py -- map Town05 \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world \u5bf9\u8c61 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u52a0\u8f7d \u5730\u56fe \uff1a client . load _ world ( ' Town05 ' ) \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 Carla \u5730\u56fe \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u52a0\u8f7d \u5730\u56fe"},{"location":"tuto_first_steps/#_2","text":"\u89c2\u5bdf \u89c2\u5bdf\u8005 \u662f \u4eff\u771f \u7684 \u89c6\u56fe \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u5728 \u8fde\u63a5 \u5c4f\u5e55 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 \uff0c \u89c2\u4f17 \u4f1a \u5728 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u4e2d \u6253\u5f00 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a - RenderOffScreen \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u60a8 \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u719f\u6089 \u5df2 \u52a0\u8f7d \u7684 \u5730\u56fe \uff0c \u5e76 \u67e5\u770b \u6240 \u505a \u7684 \u4efb\u4f55 \u66f4\u6539 \u7684 \u7ed3\u679c \uff0c \u4f8b\u5982 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u66f4\u6539 \u5929\u6c14 \u3001 \u6253\u5f00 / \u5173\u95ed \u5730\u56fe \u7684 \u5404\u4e2a \u56fe\u5c42 \u4ee5\u53ca \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u63a7\u5236 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u7684 \u4fef\u4ef0 \u548c \u504f\u822a \uff0c \u5e76 \u4f7f\u7528 QWE - ASD \u952e \u79fb\u52a8 \u89c2\u4f17 \uff0c \u8ba9 \u89c2\u4f17 \u98de \u5230 \u4e16\u754c \u5404\u5730 \u4e16\u754c\u5404\u5730 \uff1a Q - \u5411\u4e0a \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u9876\u90e8 \u8fb9\u7f18 \uff09 E - \u5411\u4e0b \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u4e0b \u8fb9\u7f18 \uff09 W - \u5411\u524d \u79fb\u52a8 S - \u5411 \u540e \u79fb\u52a8 A - \u5411 \u5de6 \u79fb\u52a8 D - \u5411 \u53f3 \u79fb\u52a8 \u5de6\u952e \u5355\u51fb \u5e76 \u5728 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7a97\u53e3 \u4e2d \u4e0a\u4e0b \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u4fef\u4ef0 \uff0c \u5de6\u53f3 \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u504f\u822a \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53ca\u5176 \u5c5e\u6027 \u53ef\u4ee5 \u901a\u8fc7 Python API \u8bbf\u95ee \u548c \u64cd\u4f5c \uff1a # \u83b7\u53d6 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bf9\u8c61 spectator = world . get _ spectator ( ) # \u901a\u8fc7 \u53d8\u6362 \u83b7\u5f97 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c transform = spectator . get _ transform ( ) location = transform . location rotation = transform . rotation # \u7528\u7a7a \u53d8\u6362 \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( carla . Transform ( ) ) # \u8fd9 \u5c06 \u8bbe\u7f6e \u89c2\u4f17 \u5728 \u5730\u56fe \u7684 \u539f\u70b9 \uff0c 0 \u5ea6 \u4fef\u4ef0 \uff0c \u504f\u822a \u548c \u6eda\u52a8 - \u4e00\u4e2a \u5f88 \u597d \u7684 \u65b9\u5f0f \u6765 \u5b9a\u4f4d \u81ea\u5df1 \u5728 \u5730\u56fe \u4e0a","title":"\u89c2\u5bdf\u8005 \u5bfc\u822a"},{"location":"tuto_first_steps/#_3","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u5730\u56fe \u5e76\u4e14 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5df2 \u542f\u52a8 \u5e76 \u8fd0\u884c \uff0c \u6211\u4eec \u73b0\u5728 \u9700\u8981 \u7528 \u4e00\u4e9b \u8f66\u8f86 \u586b\u5145 \u6211\u4eec \u7684 \u4eff\u771f \uff0c \u4ee5 \u4eff\u771f \u5177\u6709 \u4ea4\u901a \u548c \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u6216\u975e \u73a9\u5bb6 \u89d2\u8272 \u7684 \u771f\u5b9e \u73af\u5883 \u3002 \u8981 \u751f\u6210 \u8f66\u8f86 \uff0c \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u6211\u4eec \u60f3\u8981 \u7684 \u8f66\u8f86 \u3002 # \u83b7\u53d6 \u84dd \u56fe\u5e93 \u548c \u8f66\u8f86 \u84dd\u56fe \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 vehicle _ blueprints = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u84dd\u56fe \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u5730\u56fe \u4e0a \u627e\u5230 \u4e00\u4e9b \u5408\u9002 \u7684 \u5730\u70b9 \u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 \u4e3a\u6b64 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u63d0\u4f9b \u4e86 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u5730\u56fe \u7684 \u9053\u8def \u4e0a \u3002 # \u83b7\u5f97 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u5728 \u6bcf\u4e2a \u751f\u6210 \u70b9 \u968f\u673a \u751f\u6210 50 \u8f86\u8f66 \uff0c \u6211\u4eec \u4ece \u84dd \u56fe\u5e93 \u4e2d \u968f\u673a \u9009\u62e9 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 for i in range ( 0 , 50 ) : world . try _ spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u73b0\u5728 \u6211\u4eec \u8fd8 \u5e94\u8be5 \u6dfb\u52a0 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4f5c\u4e3a \u4eff\u771f \u7684 \u4e2d\u5fc3 \u4e2d\u5fc3\u70b9 \u3002 \u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u6211\u4eec \u9700\u8981 \u4eff\u771f \u81ea\u4e3b \u4ee3\u7406 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u7528 Carla \u7684 \u8bf4\u6cd5 \uff0c \u6211\u4eec \u7ecf\u5e38 \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u3002 ego _ vehicle = world . spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u9664\u4e86 \u8f66\u8f86 \u4e4b\u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u884c\u4eba \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \uff0c \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u9a7e\u9a76 \u573a\u666f \u3002 \u5728 Carla \u672f\u8bed \u4e2d \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u88ab \u79f0\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272"},{"location":"tuto_first_steps/#_4","text":"\u73b0\u4ee3 \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u901a\u8fc7 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u7406\u89e3 \u548c \u89e3\u91ca \u5176 \u73af\u5883 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5305\u62ec \u5149\u5b66 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u5149\u6d41 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u7b49 \u3002 Carla \u5185\u7f6e \u4e86 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6a21\u578b \uff0c \u7528\u4e8e \u521b\u5efa \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u4e5f \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u56fa\u5b9a \u5b9a\u70b9 \u56fa\u5b9a\u70b9 \u6765 \u5efa\u6a21 \uff0c \u4f8b\u5982 \u95ed\u8def \u7535\u89c6 \u95ed\u8def\u7535\u89c6 \u6444\u50cf \u6444\u50cf\u673a \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u5c06 \u5728 \u81ea\u6211 \u8f66\u8f86 \u4e0a \u5b89\u88c5 \u4e00\u4e2a \u6807\u51c6 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u8bb0\u5f55 \u4e00\u4e9b \u89c6\u9891 \u6570\u636e \uff1a # \u521b\u5efa \u4e00\u4e2a \u53d8\u6362 \uff0c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u8f66\u8f86 \u7684 \u9876\u90e8 camera _ init _ trans = carla . Transform ( carla . Location ( z = 1.5 ) ) # \u901a\u8fc7 \u5b9a\u4e49 \u5176 \u5c5e\u6027 \u7684 \u84dd\u56fe \u6765 \u521b\u5efa \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u751f\u6210 \u76f8\u673a \u5e76 \u5c06 \u5176 \u8fde\u63a5 \u5230 \u6211\u4eec \u7684 \u81ea\u6211 \u8f66\u8f86 \u4e0a camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) \u4e00\u65e6 \u6211\u4eec \u751f\u6210 \u4e86 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 listen ( ) \u65b9\u6cd5 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u5f55\u5236 \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b9a\u4e49 \u5982\u4f55 \u5904\u7406 \u6570\u636e \u7684 \u56de\u8c03 \u4f5c\u4e3a \u53c2\u6570 \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u6d41\u5f0f \u4f20\u8f93 \u5230 \u53e6 \u4e00\u4e2a \u7a0b\u5e8f \u6216 \u5c06 \u5176 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 lambda \u51fd\u6570 \u4f5c\u4e3a \u56de\u8c03 \u5c06 \u6570\u636e \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a # \u7528 PyGame \u56de\u8c03 \u542f\u52a8 \u76f8\u673a camera . listen ( lambda image : image . save _ to _ disk ( ' out / % 06d . png ' % image . frame ) ) \u8fd9\u4f1a \u5c06 \u6570\u636e \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6839\u636e \u4eff\u771f \u5e27 \u7f16\u53f7 \u547d\u540d \u7684 PNG \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4fdd\u5b58 \u5230 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6709 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u7814\u7a76 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9635\u5217 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u3002","title":"\u6dfb\u52a0 \u4f20\u611f\u5668"},{"location":"tuto_first_steps/#_5","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u5c06 \u4ea4\u901a \u548c \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \u5e76 \u5f00\u59cb \u8bb0\u5f55 \u6444\u50cf \u6444\u50cf\u673a \u6570\u636e \uff0c \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u662f Carla \u7684 \u4e00\u4e2a \u7ec4\u4ef6 \uff0c \u5b83 \u63a7\u5236 \u8f66\u8f86 \u5728 \u4eff\u771f \u5185 \u7684 \u5730\u56fe \u9053\u8def \u4e0a \u81ea\u52a8 \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u60ef\u4f8b \u5e76 \u8868\u73b0 \u5f97 \u50cf \u771f\u6b63 \u7684 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 world . get _ actors ( ) \u65b9\u6cd5 \u627e\u5230 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5bf9 \u6240\u6709 \u8f66\u8f86 \u8fdb\u884c \u8fc7\u6ee4 \u3002 \u7136\u540e \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8be5 set _ autopilot ( ) \u65b9\u6cd5 \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u79fb\u4ea4 \u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 for vehicle in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : vehicle . set _ autopilot ( True ) \u73b0\u5728 \u60a8 \u7684 \u4eff\u771f \u6b63\u5728 \u8fd0\u884c \uff0c \u6709 \u8bb8\u591a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u5e76\u4e14 \u6444\u50cf \u6444\u50cf\u673a \u8bb0\u5f55 \u5176\u4e2d \u4e00\u8f86 \u8f66\u8f86 \u7684 \u6570\u636e \u3002 \u7136\u540e \uff0c \u8be5 \u6570\u636e \u53ef \u7528\u4e8e \u63d0\u4f9b \u673a\u5668 \u5b66\u4e60 \u7b97\u6cd5 \u6765 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u3002 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d41\u91cf \u884c\u4e3a \u7684 \u529f\u80fd \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4eff\u771f \u7684 \u6700 \u57fa\u672c \u53ef\u80fd \u8bbe\u7f6e \uff0c \u73b0\u5728 \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u4e86\u89e3 \u6709\u5173 \u53ef \u7528\u4e8e \u751f\u6210 \u6570\u636e \u7684 \u8bb8\u591a \u989d\u5916 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6587\u6863 \uff0c \u4ee5\u53ca Carla \u7684 \u8bb8\u591a \u5176\u4ed6 \u529f\u80fd \uff0c \u8fd9\u4e9b \u529f\u80fd \u53ef\u4ee5 \u4f7f \u60a8 \u7684 \u4eff\u771f \u66f4\u52a0 \u8be6\u7ec6 \u548c \u66f4 \u591a \u5b9e\u9645 \u7684 \u3002","title":"\u4f7f\u7528 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86"},{"location":"tuto_first_steps/#_6","text":"\u81ea\u6211 \u8f66\u8f86 \u662f \u4f7f\u7528 Carla \u65f6 \u9700\u8981 \u7262\u8bb0 \u7684 \u4e00\u4e2a \u91cd\u8981 \u6982\u5ff5 \u3002 \u81ea\u6211 \u8f66\u8f86 \u662f \u6307 \u5c06 \u6210\u4e3a \u4eff\u771f \u7126\u70b9 \u7684 \u8f66\u8f86 \u3002 \u5728 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 CARLA \u7528\u4f8b \u4e2d \uff0c \u5b83 \u53ef\u80fd \u662f \u60a8 \u5c06 \u8fde\u63a5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f66\u8f86 \u548c / \u6216 \u60a8 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u673a\u5668 \u5b66\u4e60 \u5806\u6808 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5f88 \u91cd\u8981 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e00\u4e9b \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u9ad8 \u4eff\u771f \u6548\u7387 \u7684 \u4eff\u771f \u64cd\u4f5c \u7684 \u57fa\u7840 \uff0c \u4f8b\u5982 \uff1a \u52a0\u8f7d \u5927\u578b \u5730\u56fe \u7684 \u5730\u56fe \u56fe\u5757 : \u5927\u578b \u5730\u56fe \uff08 \u5982 Town 12 \uff09 \u7531 \u56fe\u5757 \u7ec4\u6210 \uff0c \u4ec5 \u5728 \u9700\u8981 \u63d0\u9ad8 Carla \u6027\u80fd \u65f6\u624d \u52a0\u8f7d \u3002 \u81ea\u6211 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u51b3\u5b9a \u4e86 \u4f7f\u7528 \u54ea\u4e9b \u56fe\u5757 \u3002 \u53ea\u6709 \u9760\u8fd1 \u6700\u9760\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \u624d \u4f1a \u88ab \u52a0\u8f7d \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : \u5982\u679c \u60a8 \u7684 \u4eff\u771f \u5305\u542b \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5927\u91cf \u8f66\u8f86 \uff0c \u5219 \u8ba1\u7b97 \u6240\u6709 \u8fd9\u4e9b \u8f66\u8f86 \u7684 \u7269\u7406 \u7269\u7406\u91cf \u5728 \u8ba1\u7b97 \u4e0a \u975e\u5e38 \u6602\u8d35 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u4f7f \u7269\u7406 \u8ba1\u7b97 \u4ec5\u9650 \u9650\u4e8e \u4ec5\u9650\u4e8e \u81ea\u6211 \u8f66\u8f86 \u9644\u8fd1 \u7684 \u8f66\u8f86 \uff0c \u4ece\u800c \u8282\u7701 \u8ba1\u7b97 \u8d44\u6e90 \u8ba1\u7b97\u8d44\u6e90 \u3002 \u8981 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u65f6 \u8bbe\u7f6e role _ name \u8f66\u8f86 carla . Actor \u5bf9\u8c61 \u84dd\u56fe \u7684 \u5c5e\u6027 \uff1a ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . lincoln . mkz _ 2020 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' hero ' ) ego _ vehicle = world . spawn _ actor ( ego _ bp , random . choice ( spawn _ points ) )","title":"\u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86"},{"location":"tuto_first_steps/#_7","text":"Carla \u9644\u5e26 \u4e86 \u51e0\u5f20 \u9884\u5236 \u5730\u56fe \uff0c \u4e13\u6ce8 \u4e8e \u63d0\u4f9b \u591a\u79cd \u529f\u80fd \u3002 \u8fd9\u4e9b \u5730\u56fe \u5448\u73b0 \u4e86 \u57ce\u5e02 \u3001 \u4e61\u6751 \u548c \u4f4f\u5b85 \u7b49 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u73af\u5883 \u3002 \u8fd8\u6709 \u4e0d\u540c \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u548c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u9053\u8def \u5e03\u5c40 \uff0c \u4ece \u65e0 \u6807\u8bb0 \u7684 \u4e61\u6751 \u9053\u8def \u5230 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u6d4f\u89c8 \u76ee\u5f55 \u6216 \u4e0b\u8868\u4e2d \u7684 \u5730\u56fe \u6307\u5357 \u3002 \u57ce\u9547 \u6982\u62ec \u57ce\u9547 01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 \u57ce\u9547 02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 \u57ce\u9547 03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 \u57ce\u9547 04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 \u57ce\u9547 05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 \u57ce\u9547 06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u57ce\u9547 08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 \u57ce\u9547 11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u57ce\u9547 12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 \u57ce\u9547 13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 \u57ce\u9547 15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 Carla \u5b89\u88c5 \u4e2d \u7684 \u53ef\u7528 \u5730\u56fe \uff1a client . get _ available _ maps ( ) \u8fd9 \u5c06 \u5305\u62ec \u60a8 \u81ea\u5df1 \u6784\u5efa \u6216 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u5f53 \u60a8 \u9009\u62e9 \u5730\u56fe \u65f6 \uff0c \u8bf7 \u50cf \u8fd9\u6837 \u52a0\u8f7d \u5b83 \uff1a client . load _ world ( ' Town03 _ Opt ' )","title":"\u9009\u62e9 \u4f60 \u7684 \u5730\u56fe"},{"location":"tuto_first_steps/#_8","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u8f66\u8f86 \u5e93 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u7684 \u4eff\u771f \u5145\u6ee1 \u4ea4\u901a \u3002 \u6d4f\u89c8 Carla \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \u578b\u53f7 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fc7\u6ee4 \u84dd \u56fe\u5e93 \u6765 \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u7684 \u8f66\u8f86 \u84dd\u56fe \u3002 for bp in world . get _ blueprint _ library ( ) . filter ( ' vehicle ' ) : print ( bp . id )","title":"\u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86"},{"location":"tutorials/","text":"\u6559\u7a0b \u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u5927\u91cf \u6559\u7a0b \uff0c \u5e2e\u52a9 \u60a8 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 Carla \u7684 \u4f17\u591a \u529f\u80fd \u3002 \u4e00\u822c Carla \u7279\u70b9 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u5982\u4f55 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6765 \u5f15\u5bfc \u57ce\u9547 \u5468\u56f4 \u7684 \u4ea4\u901a \u3002 \u7eb9\u7406 \u6d41 \u2014 \u5b9e\u65f6 \u4fee\u6539 \u5730\u56fe \u5bf9\u8c61 \u7684 \u7eb9\u7406 \u4ee5 \u6dfb\u52a0 \u53d8\u5316 \u3002 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u2014 \u4f7f\u7528 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u6765 \u533a\u5206 \u540c \u4e00\u7c7b \u7684 \u5bf9\u8c61 \u3002 \u8fb9\u754c \u6846 \u2014 \u5c06 Carla \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u6295\u5f71 \u5230 \u76f8\u673a \u4e2d \u3002 \u884c\u4eba \u9aa8\u9abc \u2014 \u5c06 \u884c\u4eba \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u5236\u4f5c \u52a8\u753b \u3002 \u6784\u5efa \u4e0e \u96c6\u6210 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 CarSim \u96c6\u6210 \u2014 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b \u3002 RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u96c6\u6210 \u6765 \u4eff\u771f \u7269\u7406 \u3002 PyGame \u63a7\u5236 \u2014 \u4f7f\u7528 PyGame \u663e\u793a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f93\u51fa \u3002 \u8d44\u4ea7 \u548c \u5730\u56fe \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u3002 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u3002 \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u751f\u6210 \u5e76 \u5904\u7406 \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 \u6750\u6599 \u5b9a\u5236 \u2014 \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u3002 \u5f00\u53d1 \u5f00\u53d1\u8005 \u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u79cd \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u5b9a\u4e49 \u7528\u4e8e \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u3002 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u3002 \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u3002 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u2014 \u4e86\u89e3 Carla \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u5e76 \u5f00\u59cb \u60a8 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u811a\u672c \u3002 \u4ee3\u7801 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u4f7f\u7528 \u65b9\u6cd5 \u3002 \u4ee3\u7801","title":"\u6559\u7a0b"},{"location":"tutorials/#_1","text":"\u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u5927\u91cf \u6559\u7a0b \uff0c \u5e2e\u52a9 \u60a8 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 Carla \u7684 \u4f17\u591a \u529f\u80fd \u3002","title":"\u6559\u7a0b"},{"location":"tutorials/#_2","text":"","title":"\u4e00\u822c"},{"location":"tutorials/#carla","text":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u5982\u4f55 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6765 \u5f15\u5bfc \u57ce\u9547 \u5468\u56f4 \u7684 \u4ea4\u901a \u3002 \u7eb9\u7406 \u6d41 \u2014 \u5b9e\u65f6 \u4fee\u6539 \u5730\u56fe \u5bf9\u8c61 \u7684 \u7eb9\u7406 \u4ee5 \u6dfb\u52a0 \u53d8\u5316 \u3002 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u2014 \u4f7f\u7528 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u6765 \u533a\u5206 \u540c \u4e00\u7c7b \u7684 \u5bf9\u8c61 \u3002 \u8fb9\u754c \u6846 \u2014 \u5c06 Carla \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u6295\u5f71 \u5230 \u76f8\u673a \u4e2d \u3002 \u884c\u4eba \u9aa8\u9abc \u2014 \u5c06 \u884c\u4eba \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u5236\u4f5c \u52a8\u753b \u3002","title":"Carla \u7279\u70b9"},{"location":"tutorials/#_3","text":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 CarSim \u96c6\u6210 \u2014 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b \u3002 RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u96c6\u6210 \u6765 \u4eff\u771f \u7269\u7406 \u3002 PyGame \u63a7\u5236 \u2014 \u4f7f\u7528 PyGame \u663e\u793a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f93\u51fa \u3002","title":"\u6784\u5efa \u4e0e \u96c6\u6210"},{"location":"tutorials/#_4","text":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u3002 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u3002 \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u751f\u6210 \u5e76 \u5904\u7406 \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 \u6750\u6599 \u5b9a\u5236 \u2014 \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u3002","title":"\u8d44\u4ea7 \u548c \u5730\u56fe"},{"location":"tutorials/#_5","text":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u79cd \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u5b9a\u4e49 \u7528\u4e8e \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u3002 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u3002 \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u3002","title":"\u5f00\u53d1\u8005"},{"location":"tutorials/#_6","text":"\u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u2014 \u4e86\u89e3 Carla \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u5e76 \u5f00\u59cb \u60a8 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u811a\u672c \u3002 \u4ee3\u7801 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u4f7f\u7528 \u65b9\u6cd5 \u3002 \u4ee3\u7801","title":"\u89c6\u9891\u6559\u7a0b"},{"location":"ue_commandlet/","text":"Commandlet \u4ec0\u4e48 \u662f Commandlet UE \u7684 Commandlet \u662f \u4e00\u79cd \u53ef\u4ee5 \u7528 \u547d\u4ee4 \u547d\u4ee4\u884c \u7684 \u65b9\u5f0f \u53bb \u9a71\u52a8 \u5f15\u64ce \u7684 \u673a\u5236 \uff0c \u5982 \u4f20\u7edf \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u7a0b\u5e8f \uff1a int main ( int argc , char * agrv [ ] ) { for ( int i = 0 ; i < argc ; i ++ ) { cout < < argv [ i ] < < endl ; } } \u5219 \u53ef\u4ee5 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u7684 \u5f62\u5f0f \u8c03\u7528 \uff0c \u5e76 \u4f20\u9012 \u53c2\u6570 \uff1a . / arg _ printer - test1 - test2 Commandlet \u4e5f \u662f \u63d0\u4f9b \u7684 \u8fd9\u6837 \u7684 \u8c03\u7528 \u5f62\u5f0f \u3002 \u4e0d\u8fc7 \uff0c \u9700\u8981 \u8c03\u7528 \u7684 \u7a0b\u5e8f \u662f \u5f15\u64ce \uff0c \u5e76\u4e14 \u8981 \u4f20\u9012 uproject \u6587\u4ef6 \u8def\u5f84 \u3001 \u5176\u4ed6 \u7684 \u53c2\u6570 \u7b49 \u3002 \u4ee5 Cook \u7684 Commandlet \u4e3a\u4f8b \uff1a UE4Editor - cmd . exe D : \\ Client \\ FGame . uproject - run = cook \u901a\u8fc7 \u8fd9\u6837 \u7684 \u5f62\u5f0f \u542f\u52a8 \u547d\u4ee4 \u547d\u4ee4\u884c \u5f15\u64ce \uff0c \u4e0d\u4f1a \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u800c\u662f \u6267\u884c \u6240 \u5b9a\u4e49 \u7684 \u884c\u4e3a \u3002 \u521b\u5efa Commandlet \u4e3a \u9879\u76ee \u6216 \u63d2\u4ef6 \u521b\u5efa Commandlet \uff0c \u901a\u5e38 \u4f1a \u5728 \u6a21\u5757 \u7c7b\u578b \u4e3a Editor \u7684 Module \u4e2d \u6dfb\u52a0 \uff0c \u56e0\u4e3a \u6267\u884c Commandlet \u7684 \u903b\u8f91 \uff0c \u5f88\u5c11 \u4f1a \u6d89\u53ca \u5230 \u8fd0\u884c \u65f6 \uff0c \u90fd \u662f \u5728 \u5f15\u64ce \u73af\u5883 \u4e0b \u6267\u884c \u7684 \u3002 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 Commandlet \uff0c \u9700\u8981 \u521b\u5efa \u4e00\u4e2a \u7ee7\u627f \u81ea UCommandlet \u7684 UObject \u7c7b \uff1a UGenerateTileCommandlet : : UGenerateTileCommandlet ( ) int32 UGenerateTileCommandlet : : Main ( const FString & Params ) \u5176\u4e2d \u7684 Main \u51fd\u6570 \uff0c \u5c31\u662f \u5f53 \u901a\u8fc7 - run = \u547d\u4ee4 \u542f\u52a8 \u8be5 Commandlet \u65f6 \uff0c \u4f1a \u6267\u884c \u5230 \u7684 \u903b\u8f91 \uff0c \u5c31 \u50cf \u524d\u9762 \u7eaf C++ \u7684 main \u51fd\u6570 \u4e00\u6837 \u3002 \u4e0d\u8fc7 \uff0c \u9700\u8981 \u6ce8\u610f \u7684 \u662f \uff0c \u56e0\u4e3a Commandlet \u5176\u5b9e \u662f \u5b8c\u6574 \u7684 \u5f15\u64ce \u73af\u5883 \uff0c \u6240\u4ee5 \u6267\u884c \u65f6\u4f1a \u62c9\u8d77 \u5df2 \u6ce8\u518c \u6a21\u5757 \u7684 \u542f\u52a8 \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u6709 \u5f88\u591a \u7684 \u524d\u7f6e \u903b\u8f91 \u9700\u8981 \u6267\u884c \uff0c \u7b49 \u6267\u884c \u5230 Main \u51fd\u6570 \u65f6 \uff0c \u5c31\u662f \u5b8c\u6574 \u7684 \u5f15\u64ce \u72b6\u6001 \u4e86 \u3002 \u53ef\u4ee5 \u5728 \u8fd9\u4e2a \u51fd\u6570 \u4e4b\u5185 \u505a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u64cd\u4f5c \uff0c \u6b64\u65f6 \u5b83 \u5177\u6709 \u5b8c\u6574 \u7684 \u5f15\u64ce \u73af\u5883 \uff0c \u53ef\u4ee5 \u6839\u636e \u81ea\u5df1 \u7684 \u9700\u8981 \u8fdb\u884c \u6570\u636e \u5bfc\u51fa \u6216 \u8d44\u6e90 \u5904\u7406 \u3002 \u8fd0\u884c Commandlet \u524d\u9762 \u5df2\u7ecf \u63d0\u5230 \u4e86 \uff0c \u8fd0\u884c \u4e00\u4e2a Commandlet \u9700\u8981 \u7528 \u4ee5\u4e0b \u7684 \u547d\u4ee4 \u5f62\u5f0f \uff1a UE4Editor - cmd . exe PROJECT _ NAME . uproject - run = CMDLET _ NAME \u542f\u52a8 \u9879\u76ee \u4e2d \u7684 Commandlet \u65f6 \uff0c \u5fc5\u987b \u8981 \u6307\u5b9a \u9879\u76ee \u8def\u5f84 \uff0c \u56e0\u4e3a \u8981 \u53bb \u52a0\u8f7d \u5de5\u7a0b \u53ca \u63d2\u4ef6 \u4e2d \u7684 \u6a21\u5757 \u3002 \u53c2\u6570 - run = \uff0c \u6307\u5b9a \u7684 \u662f \u8981 \u6267\u884c \u7684 Commandlet \u7684 \u540d\u5b57 \uff0c \u8fd9\u4e2a \u540d\u5b57 \u548c \u524d\u9762 \u521b\u5efa \u7684 \u7ee7\u627f \u81ea UCommandlet \u7c7b \u540d\u5b57 \u76f4\u63a5 \u76f8\u5173 \uff1a \u5982 UResScannerCommandlet \u5b83 \u7684 Commandlet \u7684 \u540d\u5b57 \u5c31 \u4e3a ResScanner \uff0c \u89c4\u5219 \u5c31\u662f \u53bb\u6389 \u5934\u90e8 \u7684 U \u4ee5\u53ca \u5c3e\u90e8 \u7684 Commandlet \u3002 \u5f15\u64ce \u5185 \u63a5\u6536 \u5230 - run = \u7684 \u53c2\u6570 \uff0c \u4f1a \u53bb \u67e5\u627e UClass \uff0c \u5e76\u4f1a \u81ea\u52a8 \u62fc\u63a5 Commandlet \u540e\u7f00 \uff1a / / Token -- XXXXCommandlet CommandletClass = FindObject < UClass > ( ANY _ PACKAGE , * Token , false ) ; \u62ff\u5230 UClass \u4e4b\u540e \uff0c \u521b\u5efa \u4e00\u4e2a \u5b9e\u4f8b \uff0c \u7136\u540e \u8c03\u7528 \u5b83 \u7684 Main \u51fd\u6570 \uff1a Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ Commandlet \\ GenerateTileCommandlet . cpp OpenDriveMap = NewObject < UOpenDriveToMap > ( this , OpenDriveClass ) ; OpenDriveMap - > FilePath = ParamsMap [ \" FilePath \" ] ; OpenDriveMap - > BaseLevelName = ParamsMap [ \" BaseLevelName \" ] ; OpenDriveMap - > OriginGeoCoordinates = FVector2D ( FCString : : Atof ( * ParamsMap [ \" GeoCoordsX \" ] ) , FCString : : Atof ( * ParamsMap [ \" GeoCoordsY \" ] ) ) ; OpenDriveMap - > CurrentTilesInXY = FIntVector ( FCString : : Atof ( * ParamsMap [ \" CTileX \" ] ) , FCString : : Atof ( * ParamsMap [ \" CTileY \" ] ) , 0 ) ; / / Parse Params OpenDriveMap - > GenerateTile ( ) ; \u6ce8\u610f \u662f \u542f\u52a8 \u4e86 \u6240\u6709 \u6a21\u5757 \u4e4b\u540e \u624d \u4f1a \u8fdb\u5165 \u5230 Commandlet \u7684 Main \u4e2d \uff0c \u610f\u5473 \u610f\u5473\u7740 \u6a21\u5757 \u7684 StartupModule \u5728 Main \u4e4b\u524d \u3002 \u5f15\u64ce \u6267\u884c Commandlet Main \u51fd\u6570 \u7684 \u8c03\u7528 \u6808 \uff1a \u68c0\u6d4b Commandlet \u6839\u636e \u4e0a\u9762 \u7684 \u5185\u5bb9 \uff0c \u9700\u8981 \u8bb0\u4f4f \u4ee5\u4e0b \u4e24\u4e2a \u5173\u952e \u5173\u952e\u70b9 \uff1a Commandlet \u4f4d\u4e8e Editor \u6a21\u5757 \u5185 Commandlet \u8fdb\u5165 \u5230 Main \u4e4b\u540e \u5c31\u662f \u5b8c\u6574 \u7684 \u5f15\u64ce \u73af\u5883 \u56e0\u4e3a Commandlet \u662f \u4f4d\u4e8e Editor \u6a21\u5757 \u5185 \u7684 \uff0c \u6709 \u53ef\u80fd \u4f1a \u8c03\u7528 \u5230 \u6a21\u5757 \u5185 \u7684 \u5176\u4ed6 \u51fd\u6570 \uff0c \u4e3a\u4e86 \u533a\u5206 Editor \u542f\u52a8 \u8fd8\u662f Commandlet \u542f\u52a8 \uff0c \u53ef\u4ee5 \u7528 \u4ee5\u4e0b \u51fd\u6570 \u8fdb\u884c \u68c0\u6d4b \uff1a if ( : : IsRunningCommandlet ( ) ) { / / do something } \u4f20\u9012 \u8fdb\u6765 \u7684 \u662f \u4e0d \u5305\u542b \u5f15\u64ce \u8def\u5f84 \u548c \u9879\u76ee \u8def\u5f84 \u7684 \u53c2\u6570 \u3002 \u5982 \uff0c \u8fd0\u884c \u547d\u4ee4 \uff1a UE4Editor - cmd . exe G : \\ Client \\ FGame . uproject - skipcompile - run = HotChunker - TargetPlatform = IOS \u5219 \u63a5\u6536 \u5230 \u7684 \u53c2\u6570 \u4e3a \uff1a - skipcompile - run = HotChunker - TargetPlatform = IOS \u53ef\u4ee5 \u901a\u8fc7 \u89e3\u6790 \u8be5 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5728 Commandlet \u6267\u884c \u7279\u6b8a \u884c\u4e3a \u3002 \u4ee5 HotPatcher \u4e3a\u4f8b \uff0c \u53ef\u4ee5 \u901a\u8fc7 - config = \u6307\u5b9a \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \uff0c \u5728 Commandlet \u4e2d \u5c31 \u4f1a \u8bfb\u53d6 \u5e76 \u6839\u636e \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u6267\u884c \u3002 \u9a71\u52a8 Tick Commandlet \u9ed8\u8ba4 \u662f \u4e00\u4e2a \u72ec\u7acb \u8fc7\u7a0b \u884c\u4e3a \uff0c \u4e0d\u4f1a \u9a71\u52a8 \u5f15\u64ce Tick \uff0c \u5c31 \u50cf \u4e00\u4e2a \u666e\u901a \u7684 \u51fd\u6570 \uff0c \u6240\u6709 \u4ee3\u7801 \u6267\u884c \u4ee3\u7801\u6267\u884c \u5b8c\u6bd5 \u4e4b\u540e \uff0c \u79bb\u5f00 \u5f53\u524d \u7684 \u4f5c\u7528 \u4f5c\u7528\u57df \uff0c \u5c31 \u8bf7\u6c42 \u9000\u51fa \u5f15\u64ce \u4e86 \u3002 \u4ecb\u5165 \u5230 \u67d0\u4e2a Cmdlet \u6d41\u7a0b \u4ee5 Cook \u4e3a\u4f8b \uff0c \u5b83 \u662f \u62c9 \u8d77\u6765 \u4e86 \u4e00\u4e2a CookCommandlet \u53bb \u6267\u884c \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f15\u64ce \u5e76 \u6ca1\u6709 \u7ed9 \u6211\u4eec \u7559 \u53e3\u5b50 \uff0c \u53bb \u4ecb\u5165 \u5230 Cook \u7684 \u5404\u4e2a \u9636\u6bb5 \uff0c \u5982\u679c \u60f3\u8981 \u5728 \u6253\u5305 \u7684 \u8fc7\u7a0b \u4e2d\u53bb \u505a \u4e00\u4e9b \u64cd\u4f5c \uff0c \u5c31 \u9700\u8981 \u81ea\u5df1 \u64cd\u7eb5 UAT \u628a \u6784\u5efa \u8fc7\u7a0b \u62c6\u5f00 \uff0c \u81ea\u5df1 \u7ef4\u62a4 \u5404\u4e2a \u6d41\u7a0b \u3002 \u4f46 \u8fd9\u4e48 \u505a \u7684 \u4ee3\u4ef7 \u6bd4\u8f83 \u9ad8 \uff0c \u8003\u8651 \u4ee5\u4e0b \u8fd9\u4e9b \u9700\u6c42 \uff1a \u5728 Cook \u5b8c\u6bd5 \u4e4b\u540e \u53bb \u8bad\u7ec3 Shader \u7684 \u5b57\u5178 \uff0c \u5e76 \u628a \u7528 \u5b57\u5178 \u538b\u7f29 \u7684 ShaderLibrary \u66ff\u6362 \u539f\u59cb \u7684 \u3002 \u5728 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8981 \u5b9e\u73b0 \u5b83 \uff0c \u5c31 \u9700\u8981 \u628a \u6253\u5305 \u8fc7\u7a0b \u5728 Cook \u4e4b\u540e \u505c\u6389 \uff0c \u5904\u7406 \u5b8c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d41\u7a0b \u4e4b\u540e \uff0c \u518d \u8fdb\u5165 \u7684 UnrealPak \u9636\u6bb5 \uff0c \u63a5\u7740 \u6267\u884c \u3002 \u6574\u4e2a \u8fc7\u7a0b \u90fd \u6bd4\u8f83 \u7684 \u7e41\u7410 \uff0c \u5982\u679c \u6211\u4eec \u60f3\u8981 \u5728 Cook \u4e4b\u540e \u81ea\u52a8 \u6267\u884c \uff0c \u8fd8 \u53ef\u4ee5 \u7528 \u53e6 \u4e00\u79cd \u65b9\u5f0f \uff0c \u4ecb\u5165 \u5230 Commandlet \u7684 \u6267\u884c \u8fdb\u7a0b \u4e2d \u3002 \u6839\u636e \u524d\u6587 \u7684 \u4ecb\u7ecd \u6211\u4eec \u77e5\u9053 \uff0c Commandlet \u5728 \u6267\u884c \u4e2d \uff0c \u4e5f \u662f \u4f1a \u6267\u884c \u6a21\u5757 \u7684 StartupModule \u53ca ShutdownModule \u7684 \uff0c \u800c \u6211\u4eec \u60f3\u8981 \u4ecb\u5165 \u5230 Cmdlet \u4e2d \u6267\u884c \uff0c \u5c31\u662f \u8981 \u5229\u7528 \u8fd9\u4e2a \u7279\u6027 \u3002 \u540c\u6837 \u4ee5 Cook \u4e4b\u540e \uff0c \u8ba9 \u5f15\u64ce \u62c9 \u8d77 \u6211\u4eec \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5904\u7406 \u6d41\u7a0b \u4e3a\u4f8b \uff0c \u53ef\u4ee5 \u62c6\u89e3 \u8fd9\u4e2a \u9700\u6c42 \uff1a \u786e\u5b9a \u662f\u5426 \u8fd0\u884c \u5728 CookCommandlet \u4e2d \u5728 Cook \u6267\u884c \u5b8c\u6bd5 \u540e \uff0c \u5f15\u64ce \u9000\u51fa \u4e4b\u524d \u7684 \u65f6\u673a \u6267\u884c \u5173\u4e8e \u7b2c\u4e00 \u4e00\u70b9 \u7b2c\u4e00\u70b9 \uff0c \u6211\u4eec \u53ef\u4ee5 \u89e3\u6790 \u542f\u52a8 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5e76 \u68c0\u67e5 - run = \u7684 Token \u4e0d\u662f \u662f\u4e0d\u662f Cook \uff0c \u5c31 \u80fd \u786e\u5b9a \u662f\u5426 \u662f\u5426\u662f \u5728 CookCommandlet \u4e2d \uff1a","title":"Ue commandlet"},{"location":"ue_commandlet/#commandlet","text":"","title":"Commandlet"},{"location":"ue_commandlet/#commandlet_1","text":"UE \u7684 Commandlet \u662f \u4e00\u79cd \u53ef\u4ee5 \u7528 \u547d\u4ee4 \u547d\u4ee4\u884c \u7684 \u65b9\u5f0f \u53bb \u9a71\u52a8 \u5f15\u64ce \u7684 \u673a\u5236 \uff0c \u5982 \u4f20\u7edf \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u7a0b\u5e8f \uff1a int main ( int argc , char * agrv [ ] ) { for ( int i = 0 ; i < argc ; i ++ ) { cout < < argv [ i ] < < endl ; } } \u5219 \u53ef\u4ee5 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u7684 \u5f62\u5f0f \u8c03\u7528 \uff0c \u5e76 \u4f20\u9012 \u53c2\u6570 \uff1a . / arg _ printer - test1 - test2 Commandlet \u4e5f \u662f \u63d0\u4f9b \u7684 \u8fd9\u6837 \u7684 \u8c03\u7528 \u5f62\u5f0f \u3002 \u4e0d\u8fc7 \uff0c \u9700\u8981 \u8c03\u7528 \u7684 \u7a0b\u5e8f \u662f \u5f15\u64ce \uff0c \u5e76\u4e14 \u8981 \u4f20\u9012 uproject \u6587\u4ef6 \u8def\u5f84 \u3001 \u5176\u4ed6 \u7684 \u53c2\u6570 \u7b49 \u3002 \u4ee5 Cook \u7684 Commandlet \u4e3a\u4f8b \uff1a UE4Editor - cmd . exe D : \\ Client \\ FGame . uproject - run = cook \u901a\u8fc7 \u8fd9\u6837 \u7684 \u5f62\u5f0f \u542f\u52a8 \u547d\u4ee4 \u547d\u4ee4\u884c \u5f15\u64ce \uff0c \u4e0d\u4f1a \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u800c\u662f \u6267\u884c \u6240 \u5b9a\u4e49 \u7684 \u884c\u4e3a \u3002","title":"\u4ec0\u4e48 \u662f Commandlet"},{"location":"ue_commandlet/#commandlet_2","text":"\u4e3a \u9879\u76ee \u6216 \u63d2\u4ef6 \u521b\u5efa Commandlet \uff0c \u901a\u5e38 \u4f1a \u5728 \u6a21\u5757 \u7c7b\u578b \u4e3a Editor \u7684 Module \u4e2d \u6dfb\u52a0 \uff0c \u56e0\u4e3a \u6267\u884c Commandlet \u7684 \u903b\u8f91 \uff0c \u5f88\u5c11 \u4f1a \u6d89\u53ca \u5230 \u8fd0\u884c \u65f6 \uff0c \u90fd \u662f \u5728 \u5f15\u64ce \u73af\u5883 \u4e0b \u6267\u884c \u7684 \u3002 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 Commandlet \uff0c \u9700\u8981 \u521b\u5efa \u4e00\u4e2a \u7ee7\u627f \u81ea UCommandlet \u7684 UObject \u7c7b \uff1a UGenerateTileCommandlet : : UGenerateTileCommandlet ( ) int32 UGenerateTileCommandlet : : Main ( const FString & Params ) \u5176\u4e2d \u7684 Main \u51fd\u6570 \uff0c \u5c31\u662f \u5f53 \u901a\u8fc7 - run = \u547d\u4ee4 \u542f\u52a8 \u8be5 Commandlet \u65f6 \uff0c \u4f1a \u6267\u884c \u5230 \u7684 \u903b\u8f91 \uff0c \u5c31 \u50cf \u524d\u9762 \u7eaf C++ \u7684 main \u51fd\u6570 \u4e00\u6837 \u3002 \u4e0d\u8fc7 \uff0c \u9700\u8981 \u6ce8\u610f \u7684 \u662f \uff0c \u56e0\u4e3a Commandlet \u5176\u5b9e \u662f \u5b8c\u6574 \u7684 \u5f15\u64ce \u73af\u5883 \uff0c \u6240\u4ee5 \u6267\u884c \u65f6\u4f1a \u62c9\u8d77 \u5df2 \u6ce8\u518c \u6a21\u5757 \u7684 \u542f\u52a8 \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u6709 \u5f88\u591a \u7684 \u524d\u7f6e \u903b\u8f91 \u9700\u8981 \u6267\u884c \uff0c \u7b49 \u6267\u884c \u5230 Main \u51fd\u6570 \u65f6 \uff0c \u5c31\u662f \u5b8c\u6574 \u7684 \u5f15\u64ce \u72b6\u6001 \u4e86 \u3002 \u53ef\u4ee5 \u5728 \u8fd9\u4e2a \u51fd\u6570 \u4e4b\u5185 \u505a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u64cd\u4f5c \uff0c \u6b64\u65f6 \u5b83 \u5177\u6709 \u5b8c\u6574 \u7684 \u5f15\u64ce \u73af\u5883 \uff0c \u53ef\u4ee5 \u6839\u636e \u81ea\u5df1 \u7684 \u9700\u8981 \u8fdb\u884c \u6570\u636e \u5bfc\u51fa \u6216 \u8d44\u6e90 \u5904\u7406 \u3002","title":"\u521b\u5efa Commandlet"},{"location":"ue_commandlet/#commandlet_3","text":"\u524d\u9762 \u5df2\u7ecf \u63d0\u5230 \u4e86 \uff0c \u8fd0\u884c \u4e00\u4e2a Commandlet \u9700\u8981 \u7528 \u4ee5\u4e0b \u7684 \u547d\u4ee4 \u5f62\u5f0f \uff1a UE4Editor - cmd . exe PROJECT _ NAME . uproject - run = CMDLET _ NAME \u542f\u52a8 \u9879\u76ee \u4e2d \u7684 Commandlet \u65f6 \uff0c \u5fc5\u987b \u8981 \u6307\u5b9a \u9879\u76ee \u8def\u5f84 \uff0c \u56e0\u4e3a \u8981 \u53bb \u52a0\u8f7d \u5de5\u7a0b \u53ca \u63d2\u4ef6 \u4e2d \u7684 \u6a21\u5757 \u3002 \u53c2\u6570 - run = \uff0c \u6307\u5b9a \u7684 \u662f \u8981 \u6267\u884c \u7684 Commandlet \u7684 \u540d\u5b57 \uff0c \u8fd9\u4e2a \u540d\u5b57 \u548c \u524d\u9762 \u521b\u5efa \u7684 \u7ee7\u627f \u81ea UCommandlet \u7c7b \u540d\u5b57 \u76f4\u63a5 \u76f8\u5173 \uff1a \u5982 UResScannerCommandlet \u5b83 \u7684 Commandlet \u7684 \u540d\u5b57 \u5c31 \u4e3a ResScanner \uff0c \u89c4\u5219 \u5c31\u662f \u53bb\u6389 \u5934\u90e8 \u7684 U \u4ee5\u53ca \u5c3e\u90e8 \u7684 Commandlet \u3002 \u5f15\u64ce \u5185 \u63a5\u6536 \u5230 - run = \u7684 \u53c2\u6570 \uff0c \u4f1a \u53bb \u67e5\u627e UClass \uff0c \u5e76\u4f1a \u81ea\u52a8 \u62fc\u63a5 Commandlet \u540e\u7f00 \uff1a / / Token -- XXXXCommandlet CommandletClass = FindObject < UClass > ( ANY _ PACKAGE , * Token , false ) ; \u62ff\u5230 UClass \u4e4b\u540e \uff0c \u521b\u5efa \u4e00\u4e2a \u5b9e\u4f8b \uff0c \u7136\u540e \u8c03\u7528 \u5b83 \u7684 Main \u51fd\u6570 \uff1a Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ Commandlet \\ GenerateTileCommandlet . cpp OpenDriveMap = NewObject < UOpenDriveToMap > ( this , OpenDriveClass ) ; OpenDriveMap - > FilePath = ParamsMap [ \" FilePath \" ] ; OpenDriveMap - > BaseLevelName = ParamsMap [ \" BaseLevelName \" ] ; OpenDriveMap - > OriginGeoCoordinates = FVector2D ( FCString : : Atof ( * ParamsMap [ \" GeoCoordsX \" ] ) , FCString : : Atof ( * ParamsMap [ \" GeoCoordsY \" ] ) ) ; OpenDriveMap - > CurrentTilesInXY = FIntVector ( FCString : : Atof ( * ParamsMap [ \" CTileX \" ] ) , FCString : : Atof ( * ParamsMap [ \" CTileY \" ] ) , 0 ) ; / / Parse Params OpenDriveMap - > GenerateTile ( ) ; \u6ce8\u610f \u662f \u542f\u52a8 \u4e86 \u6240\u6709 \u6a21\u5757 \u4e4b\u540e \u624d \u4f1a \u8fdb\u5165 \u5230 Commandlet \u7684 Main \u4e2d \uff0c \u610f\u5473 \u610f\u5473\u7740 \u6a21\u5757 \u7684 StartupModule \u5728 Main \u4e4b\u524d \u3002 \u5f15\u64ce \u6267\u884c Commandlet Main \u51fd\u6570 \u7684 \u8c03\u7528 \u6808 \uff1a","title":"\u8fd0\u884c Commandlet"},{"location":"ue_commandlet/#commandlet_4","text":"\u6839\u636e \u4e0a\u9762 \u7684 \u5185\u5bb9 \uff0c \u9700\u8981 \u8bb0\u4f4f \u4ee5\u4e0b \u4e24\u4e2a \u5173\u952e \u5173\u952e\u70b9 \uff1a Commandlet \u4f4d\u4e8e Editor \u6a21\u5757 \u5185 Commandlet \u8fdb\u5165 \u5230 Main \u4e4b\u540e \u5c31\u662f \u5b8c\u6574 \u7684 \u5f15\u64ce \u73af\u5883 \u56e0\u4e3a Commandlet \u662f \u4f4d\u4e8e Editor \u6a21\u5757 \u5185 \u7684 \uff0c \u6709 \u53ef\u80fd \u4f1a \u8c03\u7528 \u5230 \u6a21\u5757 \u5185 \u7684 \u5176\u4ed6 \u51fd\u6570 \uff0c \u4e3a\u4e86 \u533a\u5206 Editor \u542f\u52a8 \u8fd8\u662f Commandlet \u542f\u52a8 \uff0c \u53ef\u4ee5 \u7528 \u4ee5\u4e0b \u51fd\u6570 \u8fdb\u884c \u68c0\u6d4b \uff1a if ( : : IsRunningCommandlet ( ) ) { / / do something } \u4f20\u9012 \u8fdb\u6765 \u7684 \u662f \u4e0d \u5305\u542b \u5f15\u64ce \u8def\u5f84 \u548c \u9879\u76ee \u8def\u5f84 \u7684 \u53c2\u6570 \u3002 \u5982 \uff0c \u8fd0\u884c \u547d\u4ee4 \uff1a UE4Editor - cmd . exe G : \\ Client \\ FGame . uproject - skipcompile - run = HotChunker - TargetPlatform = IOS \u5219 \u63a5\u6536 \u5230 \u7684 \u53c2\u6570 \u4e3a \uff1a - skipcompile - run = HotChunker - TargetPlatform = IOS \u53ef\u4ee5 \u901a\u8fc7 \u89e3\u6790 \u8be5 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5728 Commandlet \u6267\u884c \u7279\u6b8a \u884c\u4e3a \u3002 \u4ee5 HotPatcher \u4e3a\u4f8b \uff0c \u53ef\u4ee5 \u901a\u8fc7 - config = \u6307\u5b9a \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \uff0c \u5728 Commandlet \u4e2d \u5c31 \u4f1a \u8bfb\u53d6 \u5e76 \u6839\u636e \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u6267\u884c \u3002","title":"\u68c0\u6d4b Commandlet"},{"location":"ue_commandlet/#tick","text":"Commandlet \u9ed8\u8ba4 \u662f \u4e00\u4e2a \u72ec\u7acb \u8fc7\u7a0b \u884c\u4e3a \uff0c \u4e0d\u4f1a \u9a71\u52a8 \u5f15\u64ce Tick \uff0c \u5c31 \u50cf \u4e00\u4e2a \u666e\u901a \u7684 \u51fd\u6570 \uff0c \u6240\u6709 \u4ee3\u7801 \u6267\u884c \u4ee3\u7801\u6267\u884c \u5b8c\u6bd5 \u4e4b\u540e \uff0c \u79bb\u5f00 \u5f53\u524d \u7684 \u4f5c\u7528 \u4f5c\u7528\u57df \uff0c \u5c31 \u8bf7\u6c42 \u9000\u51fa \u5f15\u64ce \u4e86 \u3002","title":"\u9a71\u52a8 Tick"},{"location":"ue_commandlet/#cmdlet","text":"\u4ee5 Cook \u4e3a\u4f8b \uff0c \u5b83 \u662f \u62c9 \u8d77\u6765 \u4e86 \u4e00\u4e2a CookCommandlet \u53bb \u6267\u884c \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f15\u64ce \u5e76 \u6ca1\u6709 \u7ed9 \u6211\u4eec \u7559 \u53e3\u5b50 \uff0c \u53bb \u4ecb\u5165 \u5230 Cook \u7684 \u5404\u4e2a \u9636\u6bb5 \uff0c \u5982\u679c \u60f3\u8981 \u5728 \u6253\u5305 \u7684 \u8fc7\u7a0b \u4e2d\u53bb \u505a \u4e00\u4e9b \u64cd\u4f5c \uff0c \u5c31 \u9700\u8981 \u81ea\u5df1 \u64cd\u7eb5 UAT \u628a \u6784\u5efa \u8fc7\u7a0b \u62c6\u5f00 \uff0c \u81ea\u5df1 \u7ef4\u62a4 \u5404\u4e2a \u6d41\u7a0b \u3002 \u4f46 \u8fd9\u4e48 \u505a \u7684 \u4ee3\u4ef7 \u6bd4\u8f83 \u9ad8 \uff0c \u8003\u8651 \u4ee5\u4e0b \u8fd9\u4e9b \u9700\u6c42 \uff1a \u5728 Cook \u5b8c\u6bd5 \u4e4b\u540e \u53bb \u8bad\u7ec3 Shader \u7684 \u5b57\u5178 \uff0c \u5e76 \u628a \u7528 \u5b57\u5178 \u538b\u7f29 \u7684 ShaderLibrary \u66ff\u6362 \u539f\u59cb \u7684 \u3002 \u5728 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8981 \u5b9e\u73b0 \u5b83 \uff0c \u5c31 \u9700\u8981 \u628a \u6253\u5305 \u8fc7\u7a0b \u5728 Cook \u4e4b\u540e \u505c\u6389 \uff0c \u5904\u7406 \u5b8c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d41\u7a0b \u4e4b\u540e \uff0c \u518d \u8fdb\u5165 \u7684 UnrealPak \u9636\u6bb5 \uff0c \u63a5\u7740 \u6267\u884c \u3002 \u6574\u4e2a \u8fc7\u7a0b \u90fd \u6bd4\u8f83 \u7684 \u7e41\u7410 \uff0c \u5982\u679c \u6211\u4eec \u60f3\u8981 \u5728 Cook \u4e4b\u540e \u81ea\u52a8 \u6267\u884c \uff0c \u8fd8 \u53ef\u4ee5 \u7528 \u53e6 \u4e00\u79cd \u65b9\u5f0f \uff0c \u4ecb\u5165 \u5230 Commandlet \u7684 \u6267\u884c \u8fdb\u7a0b \u4e2d \u3002 \u6839\u636e \u524d\u6587 \u7684 \u4ecb\u7ecd \u6211\u4eec \u77e5\u9053 \uff0c Commandlet \u5728 \u6267\u884c \u4e2d \uff0c \u4e5f \u662f \u4f1a \u6267\u884c \u6a21\u5757 \u7684 StartupModule \u53ca ShutdownModule \u7684 \uff0c \u800c \u6211\u4eec \u60f3\u8981 \u4ecb\u5165 \u5230 Cmdlet \u4e2d \u6267\u884c \uff0c \u5c31\u662f \u8981 \u5229\u7528 \u8fd9\u4e2a \u7279\u6027 \u3002 \u540c\u6837 \u4ee5 Cook \u4e4b\u540e \uff0c \u8ba9 \u5f15\u64ce \u62c9 \u8d77 \u6211\u4eec \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5904\u7406 \u6d41\u7a0b \u4e3a\u4f8b \uff0c \u53ef\u4ee5 \u62c6\u89e3 \u8fd9\u4e2a \u9700\u6c42 \uff1a \u786e\u5b9a \u662f\u5426 \u8fd0\u884c \u5728 CookCommandlet \u4e2d \u5728 Cook \u6267\u884c \u5b8c\u6bd5 \u540e \uff0c \u5f15\u64ce \u9000\u51fa \u4e4b\u524d \u7684 \u65f6\u673a \u6267\u884c \u5173\u4e8e \u7b2c\u4e00 \u4e00\u70b9 \u7b2c\u4e00\u70b9 \uff0c \u6211\u4eec \u53ef\u4ee5 \u89e3\u6790 \u542f\u52a8 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5e76 \u68c0\u67e5 - run = \u7684 Token \u4e0d\u662f \u662f\u4e0d\u662f Cook \uff0c \u5c31 \u80fd \u786e\u5b9a \u662f\u5426 \u662f\u5426\u662f \u5728 CookCommandlet \u4e2d \uff1a","title":"\u4ecb\u5165 \u5230 \u67d0\u4e2a Cmdlet \u6d41\u7a0b"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/","text":"FEniCS \u5b89\u88c5 \u4e0e \u4f7f\u7528 \u5b89\u88c5 \u8fdb\u5236 \u4e8c\u8fdb\u5236 add - apt - repository ppa : fenics - packages / fenics apt update apt install fenicsx \u5b89\u88c5 \u53ef\u89c6 \u53ef\u89c6\u5316 apt install libgl1 - mesa - glx xvfb \u5b89\u88c5 conda \u4e0b\u8f7d Anaconda wget https : / / mirrors . bfsu . edu . cn / anaconda / archive / Anaconda3 - 2022.10 - Linux - x86 _ 64 . sh -- no - check - certificate \u5b89\u88c5 bash Anaconda3xxxxxxx . sh \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf source ~ / . bashrc \u5347\u7ea7 \uff08 \u53ef \u9009 \uff09 conda update - n base - c defaults conda \u521b\u5efa \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 conda creat - n fenicsx - env conda activate fenicsx - env conda install - c conda - forge fenics - dolfinx mpich pyvista \u4f7f\u7528 \u8be5 \u73af\u5883 \u8fd0\u884c \u4ee3\u7801 \uff0c \u6bd4\u5982 \u5b98\u7f51 \u4f8b\u5b50 \u6216 test . ipynb","title":"FEniCS \u5b89\u88c5 \u4e0e \u4f7f\u7528"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#fenics","text":"","title":"FEniCS \u5b89\u88c5 \u4e0e \u4f7f\u7528"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#_1","text":"add - apt - repository ppa : fenics - packages / fenics apt update apt install fenicsx","title":"\u5b89\u88c5 \u4e8c\u8fdb\u5236"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#_2","text":"apt install libgl1 - mesa - glx xvfb","title":"\u5b89\u88c5 \u53ef\u89c6\u5316"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#conda","text":"\u4e0b\u8f7d Anaconda wget https : / / mirrors . bfsu . edu . cn / anaconda / archive / Anaconda3 - 2022.10 - Linux - x86 _ 64 . sh -- no - check - certificate \u5b89\u88c5 bash Anaconda3xxxxxxx . sh \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf source ~ / . bashrc \u5347\u7ea7 \uff08 \u53ef \u9009 \uff09 conda update - n base - c defaults conda \u521b\u5efa \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 conda creat - n fenicsx - env conda activate fenicsx - env conda install - c conda - forge fenics - dolfinx mpich pyvista \u4f7f\u7528 \u8be5 \u73af\u5883 \u8fd0\u884c \u4ee3\u7801 \uff0c \u6bd4\u5982 \u5b98\u7f51 \u4f8b\u5b50 \u6216 test . ipynb","title":"\u5b89\u88c5 conda"},{"location":"OpenRadioss/FEniCSBuildFromSource/","text":"\u73af\u5883 C++ compiler ( supporting the C++ 20 standard ) apt install build - essential Boost , with the following compiled Boost components apt install libboost - all - dev CMake [ build dependency ] / / \u5b89\u88c5 \u7279\u5b9a \u7248\u672c sudo wget https : / / cmake . org / files / v3.27 / cmake - 3.27 . 0 . tar . gz sudo tar - zxvf cmake - 3.27 . 0 . tar . gz cd cmake - 3.27 . 0 sudo . / configure sudo make sudo make install / / \u67e5\u770b \u7248\u672c cmake -- version pkg - config apt install pkgconf Basix / / \u5efa\u8bae \u4f7f\u7528 conda \u521b\u5efa \u65b0 \u73af\u5883 \u4e4b\u540e \u5b89\u88c5 / / \u4e0d \u4f7f\u7528 pip install fenics - basix \u56e0\u4e3a \u662f\u56e0\u4e3a \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 \u4f7f\u7528 0.7 \u7248\u672c \uff0c \u800c \u4e0a\u8ff0 \u547d\u4ee4 \u662f 0.6 \u7248\u672c pip install git + https : / / github . com / FEniCS / basix . git pugixml apt install pugixml - doc UFCx [ ufcx . h , provided by FFCx ] pip \u5b89\u88c5 pip install fenics - ffcx \u6b64\u65f6 \u5b89\u88c5 \u7684 \u662f 0.6 \u7248\u672c \u3002 \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 0.7 \u7248\u672c \u4ece \u6e90\u7801 \u5b89\u88c5 git clone https : / / github . com / FEniCS / ffcx . git pip install . \u6b64\u65f6 \u7f16\u8bd1 \u5931\u8d25 = \u2026 = MPI sudo apt - get install openmpi - bin openmpi - doc libopenmpi - dev HDF5 ( with MPI support enabled ) apt install libhdf5 - mpi - dev PETSc git clone - b release https : / / gitlab . com / petsc / petsc . git petsc . / configure / / . / configure \u540e \u4f1a \u63d0\u793a \u5982\u4f55 make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all / / \u4e4b\u540e \u6309 \u63d0\u793a check make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug check / / \u5b89\u88c5 \u5916\u90e8 \u5305 mumps \u3001 apt install bison . / configure -- download - mumps -- download - scalapack -- download - parmetis -- download - metis -- download - ptscotch / / . / configure \u5b8c \u63d0\u793a make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all At least one of ParMETIS , KaHIP or PT - SCOTCH apt install libparmetis - dev","title":"FEniCSBuildFromSource"},{"location":"OpenRadioss/FEniCSBuildFromSource/#_1","text":"C++ compiler ( supporting the C++ 20 standard ) apt install build - essential Boost , with the following compiled Boost components apt install libboost - all - dev CMake [ build dependency ] / / \u5b89\u88c5 \u7279\u5b9a \u7248\u672c sudo wget https : / / cmake . org / files / v3.27 / cmake - 3.27 . 0 . tar . gz sudo tar - zxvf cmake - 3.27 . 0 . tar . gz cd cmake - 3.27 . 0 sudo . / configure sudo make sudo make install / / \u67e5\u770b \u7248\u672c cmake -- version pkg - config apt install pkgconf Basix / / \u5efa\u8bae \u4f7f\u7528 conda \u521b\u5efa \u65b0 \u73af\u5883 \u4e4b\u540e \u5b89\u88c5 / / \u4e0d \u4f7f\u7528 pip install fenics - basix \u56e0\u4e3a \u662f\u56e0\u4e3a \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 \u4f7f\u7528 0.7 \u7248\u672c \uff0c \u800c \u4e0a\u8ff0 \u547d\u4ee4 \u662f 0.6 \u7248\u672c pip install git + https : / / github . com / FEniCS / basix . git pugixml apt install pugixml - doc UFCx [ ufcx . h , provided by FFCx ] pip \u5b89\u88c5 pip install fenics - ffcx \u6b64\u65f6 \u5b89\u88c5 \u7684 \u662f 0.6 \u7248\u672c \u3002 \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 0.7 \u7248\u672c \u4ece \u6e90\u7801 \u5b89\u88c5 git clone https : / / github . com / FEniCS / ffcx . git pip install . \u6b64\u65f6 \u7f16\u8bd1 \u5931\u8d25 = \u2026 = MPI sudo apt - get install openmpi - bin openmpi - doc libopenmpi - dev HDF5 ( with MPI support enabled ) apt install libhdf5 - mpi - dev PETSc git clone - b release https : / / gitlab . com / petsc / petsc . git petsc . / configure / / . / configure \u540e \u4f1a \u63d0\u793a \u5982\u4f55 make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all / / \u4e4b\u540e \u6309 \u63d0\u793a check make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug check / / \u5b89\u88c5 \u5916\u90e8 \u5305 mumps \u3001 apt install bison . / configure -- download - mumps -- download - scalapack -- download - parmetis -- download - metis -- download - ptscotch / / . / configure \u5b8c \u63d0\u793a make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all At least one of ParMETIS , KaHIP or PT - SCOTCH apt install libparmetis - dev","title":"\u73af\u5883"},{"location":"OpenRadioss/examples/","text":"\u793a\u4f8b \u6a21\u578b Yaris \u4ee5 40 \u516c\u91cc / \u5c0f\u65f6 \u7684 \u901f\u5ea6 \u649e\u51fb \u6746\u5b50 \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \uff0c \u5305\u62ec \u798f\u7279 \u91d1\u725b \u91d1\u725b\u5ea7 1000 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3001 \u514b\u83b1 \u83b1\u65af \u514b\u83b1\u65af \u514b\u83b1\u65af\u52d2 Neon 100 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u4fdd\u9669 \u4fdd\u9669\u6760 \u6a2a\u6881 LS - DYNA \u00ae \u683c\u5f0f \u7684 \u51ef\u7f8e\u745e \u51b2\u51fb \u6a21\u578b LS - DYNA \u00ae \u683c\u5f0f \u7684 Yaris \u51b2\u51fb \u6a21\u578b","title":"Examples"},{"location":"OpenRadioss/examples/#_1","text":"Yaris \u4ee5 40 \u516c\u91cc / \u5c0f\u65f6 \u7684 \u901f\u5ea6 \u649e\u51fb \u6746\u5b50 \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \uff0c \u5305\u62ec \u798f\u7279 \u91d1\u725b \u91d1\u725b\u5ea7 1000 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3001 \u514b\u83b1 \u83b1\u65af \u514b\u83b1\u65af \u514b\u83b1\u65af\u52d2 Neon 100 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u4fdd\u9669 \u4fdd\u9669\u6760 \u6a2a\u6881 LS - DYNA \u00ae \u683c\u5f0f \u7684 \u51ef\u7f8e\u745e \u51b2\u51fb \u6a21\u578b LS - DYNA \u00ae \u683c\u5f0f \u7684 Yaris \u51b2\u51fb \u6a21\u578b","title":"\u793a\u4f8b \u6a21\u578b"},{"location":"OpenRadioss/use_OpenRadioss_linux/","text":"Linux \u4e0b OpenRadioss \u7684 \u7f16\u8bd1 \u73af\u5883 Ubuntu 20.0 . 4 or higher apt - get update apt - get upgrade apt - get install build - essential apt - get install gfortran apt - get install cmake apt - get install perl apt - get install python3 apt - get install python - is - python3 apt - get install git - lfs apt - get install openmpi - bin openmpi - doc libopenmpi - dev apt - get install paraview \u63a8\u8350 \u7248\u672c \u4e3a gcc - 11 , g ++- 11 , gfortran - 11 \u3002 paraview \u7528\u4e8e \u540e\u671f \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u7f16\u8bd1 \u6307\u4ee4 \u83b7\u53d6 \u6e90\u7801 LFS : git lfs install \u8fd0\u884c ( \u8fd9\u91cc \u9700\u8981 \u5148 \u7ed1\u5b9a SSH key ) git clone git @ github . com : OpenRadioss / OpenRadioss . git . OpenRadioss Starter \u8fdb\u5165 OpenRadioss / starter \u76ee\u5f55 cd OpenRadioss / starter \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Execution control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory OpenRadioss Engine \u8fdb\u5165 OpenRadioss / engine \u76ee\u5f55 \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf - mpi = ompi . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - arch = linux64 _ gf - mpi = ompi ( OpenMPI executable / Gfortran compiler ) MPI libraries - mpi = [ mpi ] not set : SMP ( default ) - mpi = ompi : OpenMPI Controling MPI Libraries - if need choose one of the 3 Option Set If no options set , recommended OpenMPI directories are uses ( default ) 1 . - mpi - os : link with default MPI version installed on system libraries are in default installation 2 . - mpi - root = [ directory ] : set rootname to link with specific MPI installation 3 . - mpi - include = [ directory ] : set include directory where to find mpif . h and mpi . h - mpi - libdir = [ directory ] : set library directory where to find mpi libraries Other control - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Build control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory MUMPS linear solver : available only for dp , with mpi \" - mumps _ root = [ path _ to _ mumps ] : path _ to _ mumps / lib / libdmumps . a must exist - scalapack _ root = [ path to scalapack ] : path _ to _ scalapack / libscalapack . a must exist - lapack _ root = [ path to lapack ] : path _ to _ lapack / liblapack . a must exist \u81ea\u52a8 \u81ea\u52a8\u5316 \u811a\u672c \uff08 \u5f85\u5b9a \uff09 cd starter . / build _ script . sh - arch = linux64 _ gf cd .. / engine . / build _ script . sh - arch = linux64 _ gf - mpi = ompi OpenRadioss \u7684 \u4f7f\u7528 \u524d \u5904\u7406 gmsh \u4f7f\u7528 Gmsh \u7684 \u7ba1\u5b50 \u63a5\u89e6 \u6559\u7a0b \u4f7f\u7528 Gmsh \u7684 \u62c9\u4f38 \u6d4b\u8bd5 \u793a\u4f8b \u6559\u7a0b Hypermesh lsprepost ( * ) \u8ba1\u7b97 \u5904\u7406 \u540e\u5904\u7406 ParaView vtk \u8f6c fbx \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002 \u4f7f\u7528 LSDYNA \u683c\u5f0f \u8f93\u5165 \u6d4b\u8bd5 \u5b9e\u4f8b \u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u62c9\u4f38 \u6a21\u62df \u3002 bash \u811a\u672c myjobname = $ ( echo \" $ 1 \" ) echo $ myjobname \" running in OpenRadioss \" export OMP _ STACKSIZE = 400m export OMP _ NUM _ THREADS = 8 . / starter _ linux64 _ gf - i \" .. / source / \" $ myjobname \" . k \" - np $ 2 - outfile = \" .. / output \" #. / starter _ linux64 _ gf - i $ myjobname \" . k \" - np $ 2 - nt 4 # \u8fd9\u91cc \u662f \u627e\u5230 source \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \uff0c LS - DYNA \u683c\u5f0f \u6587\u4ef6 \u683c\u5f0f\u6587\u4ef6 \uff08 . k \uff09 \u5e76 \u5c06 \u5176 \u4f20\u9012 \u7ed9 starter \u8fdb\u884c \u8ba1\u7b97 \u3002 mpiexec - n $ 2 -- map - by socket : PE = $ OMP _ NUM _ THREADS -- bind - to core . / engine _ linux64 _ gf _ ompi - i \" .. / bin / \" $ myjobname \" _ 0001 . rad \" - outfile = \" .. / output \" # mpiexec - n $ 2 . engine _ linux64 _ gf _ ompi - i $ myjobname \" _ 0001 . rad \" - nt 1 # \u5728 \u5904\u7406 . k \u6587\u4ef6 \u65f6 \uff0c starter \u4f1a \u5728 \u5176 \u76ee\u5f55 \u4e0b \u751f\u6210 \" _ 0001 . rad \" \u6587\u4ef6 \uff0c \u9700\u8981 \u5c06 \u5176 \u4f20\u9012 \u7ed9 engine BASEDIR = $ ( dirname \" $ 0 \" ) for file in .. / output / * ; do if [ - n \" $ { file : - 3 } \" ] && [ \" $ { file : - 3 } \" - eq \" $ { file : - 3 } \" ] 2 > / dev / null && [ [ \" $ { file : - 4 : 1 } \" = = \" A \" ] ] ; then . / anim _ to _ vtk _ linux64 _ gf $ file > \" $ file . vtk \" echo \" $ file is converted \" # anim \u6587\u4ef6 \u8f6c\u5316 \u4e3a vtk \u6587\u4ef6 elif [ [ \" $ { file : - 3 } \" = = \" T01 \" ] ] ; then . / th _ to _ csv _ linux64 _ gf $ file CSV = \" $ file . csv \" # T01 \u6587\u4ef6 \u8f6c\u5316 \u4e3a csv \u6587\u4ef6 fi done cd .. / output / # paraview $ myjobname \" A .. vtk \" $ CSV paraview $ myjobname \" A .. vtk \" $ CSV exit \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u8f93\u5165 bash process _ k . sh zug _ test3 _ RS 1 \u5373\u53ef \u3002 \u5176\u4e2d process _ k . sh \u662f \u811a\u672c \u540d\u5b57 \uff0c zug _ test3 _ RS \u662f \u6a21\u578b \u540d\u5b57 \uff0c 1 \u662f \u5e76\u884c \u8fdb\u7a0b \u6570 \u3002 \u8fd0\u884c \u7ed3\u679c \u603b\u7ed3 \u5728 \u4f7f\u7528 Openadioss \u5904\u7406 LS - DYNA \u683c\u5f0f \u7684 \u6587\u4ef6 \u65f6 \uff0c \u9700\u8981 . k \u6587\u4ef6 \u3002 \u8fd9\u4e2a \u6587\u4ef6 \u5176\u5b9e \u662f \u53ef\u4ee5 \u76f4\u63a5 \u653e\u5728 LS - DYNA \u4e0a \u8fdb\u884c \u8ba1\u7b97 \u7684 \u3002 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5176\u4ed6 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u2014 \u2014 \u4f7f\u7528 OpenRadioss \u3002 To Do \u9700\u8981 \u9a8c\u8bc1 \u8ba1\u7b97 \u7684 \u6b63\u786e \u6b63\u786e\u6027 \uff1a \u4e5f \u5c31\u662f \u4f7f\u7528 LS - DYNA \u8ba1\u7b97 \u540c\u6837 \u7684 \u4f8b\u5b50 \uff0c \u89c2\u5bdf \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u662f\u5426 \u6709 \u51fa\u5165 \u3002 LS - DYNA \u662f \u5546\u4e1a \u8f6f\u4ef6 \u5546\u4e1a\u8f6f\u4ef6 \uff0c \u80fd \u627e\u5230 \u7684 \u8f6f\u4ef6 \u4e0d \u652f\u6301 Ubuntu \u7cfb\u7edf \u3002 \u53ef\u4ee5 \u5728 windows \u4e0b \u4eff\u771f \uff0c \u5c06 \u7ed3\u679c \u548c \u8fdb\u884c \u5bf9\u6bd4 \u3002 \u5982\u4f55 \u8861\u91cf \u8bef\u5dee \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u6709 \u5f88\u591a \u9700\u8981 \u8003\u8651 \u7684 \uff0c \u6bd4\u5982 \u6bc1\u4f24 \u9762\u79ef \u3001 \u6bc1\u4f24 \u6df1\u5ea6 \u3002 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u8fd0\u884c OpenRadioss \u6ca1\u6709 \u6743\u9650 \u3002 \u3002 \u3002 = = OpenRadioss \u4e8c\u6b21 \u5f00\u53d1 \u4e8c\u6b21\u5f00\u53d1 READ _ MATERIAL _ MODELS . F \u8fd9 \u6bb5 \u4ee3\u7801 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a Fortran \u7684 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f READ _ MATERIAL _ MODELS \uff0c \u5176 \u4e3b\u8981 \u529f\u80fd \u662f \u7ba1\u7406 \u4e0e \u6750\u6599 \u6a21\u578b \u76f8\u5173 \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5305\u62ec \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \uff08 Constitutive Laws \uff09 \uff1a / MAT \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \uff08 Equations of State \uff09 \uff1a / EOS \u5931\u6548 \u6a21\u578b \uff08 Failure models \uff09 \uff1a / FAIL \u7c98\u6027 \u6a21\u578b \uff08 Viscosity \uff09 \uff1a / VISC \u70ed \u53c2\u6570 \uff08 Thermal parameters \uff09 \uff1a / HEAT \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u5165 \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e BUFMAT \uff1a \u6750\u6599 \u6570\u636e \u7684 \u7f13\u5b58 \u533a BUFLEN \uff1a \u7f13\u5b58 \u533a \u7684 \u957f\u5ea6 IPM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u6574\u578b \u6570\u7ec4 PM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u5b9e\u578b \u6570\u7ec4 UNITAB \uff1a \u5355\u4f4d \u5236\u8868 MULTI _ FVM \uff1a \u591a\u91cd \u6709\u9650 \u4f53\u79ef \u6cd5 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 MAXEOS \uff1a \u6700\u5927 \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u6570 FAILWAVE \uff1a \u5931\u6548 \u6ce2 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NLOC _ DMG \uff1a \u975e \u5c40\u90e8 \u635f\u4f24 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 LSUBMODEL \uff1a \u5b50 \u6a21\u578b \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 TABLE \uff1a \u8868 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NPC \uff1a \u6570\u7ec4 NPC \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u51fa \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u8fd8 \u8c03\u7528 \u4e86 \u5176\u4ed6 \u4e00\u4e9b \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \uff0c \u4f8b\u5982 HM _ READ _ MAT \u3001 HM _ READ _ EOS \u3001 HM _ READ _ FAIL \u3001 HM _ READ _ VISC \u3001 HM _ READ _ LEAK \u3001 READ _ ALE _ MAT \u3001 READ _ EULER _ MAT \u3001 FILL _ BUFFER _ 51 _ 0 \u3001 HM _ READ _ THERM \u3001 HM _ READ _ THERM _ STRESS \u548c HM _ READ _ NONLOCAL \u7b49 \uff0c \u7528\u4e8e \u8bfb\u53d6 \u4e0d\u540c \u7c7b\u578b \u7684 \u6750\u6599 \u6a21\u578b \u6570\u636e \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8003\u8651 \u5206\u6790 HM _ READ _ MAT \u7a0b\u5e8f \uff0c \u5206\u6790 \u8f6f\u4ef6 \u662f \u5982\u4f55 \u4f5c \u7684 \u3002 HM _ READ _ MAT . F \u8fd9\u662f \u7528\u4e8e \u8bfb\u53d6 \u6709\u9650 \u6709\u9650\u5143 \u5206\u6790 \u8f6f\u4ef6 \u4e2d \u7684 \u6750\u6599 \u6a21\u578b \u5b9a\u4e49 \u7684 \u4ee3\u7801 \u3002 \u5b83 \u5b9a\u4e49 \u4e86 \u9605\u8bfb \u6750\u6599 \u6a21\u578b \u6240 \u9700 \u7684 \u5404\u79cd \u6a21\u5757 \u3001 \u53c2\u6570 \u548c \u516c\u5171 \u5757 \u3002 \u5176\u4e2d \u5305\u62ec \u6750\u6599 \u5b9a\u5f8b \u6807\u7b7e \u3001 \u6750\u6599 \u53c2\u6570 \u3001 \u5355\u4f4d \u7b49 \u3002 \u4e3b \u4f8b\u7a0b \u662f HM _ READ _ MAT \u3002 \u5b83 \u5faa\u73af \u904d\u5386 \u6a21\u578b \u4e2d \u5b9a\u4e49 \u7684 \u6bcf\u79cd \u6750\u6599 ( HM _ NUMMAT ) \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u6750\u6599 \uff0c \u5b83 \u6839\u636e \u6750\u6599 \u5b9a\u5f8b \u5173\u952e \u5173\u952e\u5b57 \uff08 MAT00 \u3001 MAT01 \u7b49 \uff09 \u8c03\u7528 \u7279\u5b9a \u7684 \u8bfb\u53d6 \u4f8b\u7a0b \u3002 \u8fd9\u4e9b \u8bfb\u53d6 \u4f8b\u7a0b \u4f4d\u4e8e mat \u5b50\u76ee \u76ee\u5f55 \u5b50\u76ee\u5f55 \u4e2d \u7684 \u5355\u72ec \u6587\u4ef6 \u4e2d \u3002 \u8bfb\u53d6 \u4f8b\u7a0b \u89e3\u6790 \u8f93\u5165 \u3001 \u586b\u5145 \u6750\u6599 \u53c2\u6570 \u6570\u7ec4 \u3001 \u8bbe\u7f6e \u6750\u6599 \u6240 \u9700 \u6570\u636e \u7684 \u6807\u5fd7 \uff0c \u5e76 \u5b58\u50a8 \u6750\u6599 ID \u3001 \u5b9a\u5f8b \u7c7b\u578b \u3001 \u5e94\u53d8 \u7387 \u8bbe\u7f6e \u7b49 \u5185\u5bb9 \u3002 \u8bfb\u53d6 \u6750\u6599 \u540e \uff0c \u5b83\u4f1a \u8fdb\u884c \u4e00\u4e9b \u5904\u7406 \u540e\u5904\u7406 \uff0c \u4f8b\u5982 \u8ba1\u7b97 \u6d3e\u751f \u503c \uff08 \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf \uff09 \u3001 \u68c0\u67e5 \u91cd\u590d ID \u4ee5\u53ca \u8ba1\u7b97 \u8f93\u51fa \u6240 \u9700 \u6570\u91cf \u7684 \u5e73\u65b9 \u65b9\u6839 \u5e73\u65b9\u6839 \u3002 \u6bcf\u79cd \u6750\u6599 \u7684 \u5c5e\u6027 \u5b58\u50a8 \u5728 MAT _ PARAM \u6570\u7ec4 \u548c \u5404\u79cd \u5176\u4ed6 \u516c\u5171 \u5757 \u4e2d \u3002 \u603b\u4e4b \uff0c \u5b83 \u5faa\u73af \u904d\u5386 \u6750\u6599 \uff0c \u8c03\u7528 \u7279\u5b9a \u4e8e \u5b9a\u5f8b \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5e76 \u5c06 \u6240\u6709 \u6750\u6599 \u6570\u636e \u6536\u96c6 \u5230 \u53c2\u6570 \u6570\u7ec4 \u548c \u901a\u7528 \u5757 \u4e2d \uff0c \u4ee5\u4fbf \u7a0d\u540e \u5728 FEA \u5206\u6790 \u4e2d \u4f7f\u7528 \u3002 \u5173\u952e \u90e8\u5206 \u662f \u6a21\u5757 \u6a21\u5757\u5316 \u6cd5\u5219 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \u548c \u7528\u4e8e \u4fdd\u5b58 \u6750\u6599 \u9053\u5177 \u7684 \u4e2d\u592e MAT _ PARAM \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u56e0\u6b64 \uff0c \u60f3\u8981 \u5b9a\u4e49 \u5168\u65b0 \u7684 \u6750\u6599 \uff0c \u6240\u8981 \u505a \u7684 \u4e8b\u60c5 \u662f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 MATxxx \u6587\u4ef6 \u3002 Radioss \u4e2d \u6750\u6599 \u672c\u6784 \u540c\u6027 \u5404\u5411\u540c\u6027 \u5f39\u6027 Description Model Name Keyword / MAT Law # \u7a7a \u6750\u6599 Void / VOID 0 \u7ebf \u5f39\u6027 Elastic ( Hooke ) / ELAST 1 \u8d85 \u5f39\u6027 Tabulated Hyperelastic n / a 69 \u8d85 \u5f39\u6027 Ogden Formulation n / a 82 #### \u5404\u9879 \u540c\u6027 \u5851\u6027 \u5f39\u5851\u6027 LAW 2 / 36 #### \u5176\u4ed6 #### \u7206\u70b8 Description Model Name Keyword / MAT Law # ----------- ----------- --- --- Detonation driven Jones Wilkins Lee / JEL 5 Hydrodynamics Lee - Tarver / LEE - TARVER 41 Multi - materials Soild , liquid , gas and explosives / MULTIMAT 51 #### \u5931\u6548 \u6a21\u578b \u2014 \u2014 / FAIL / Tuler - Butcher \u9ad8\u901f \u78b0\u649e \u5931\u6548 ### \u4f8b\u5b50 \u2014 \u2014 / MAT / LAW1 \u6216 / MAT / ELAST : \u5f39\u6027 \u6750\u6599 * LAW1 \u4f7f\u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5bf9 \u540c\u6027 \u5404\u5411\u540c\u6027 \uff0c \u7ebf \u5f39\u6027 \u6750\u6599 \u8fdb\u884c \u5efa\u6a21 * \u53ef \u7528\u4e8e \u6746 \uff0c \u6881 \uff0c \u58f3 \u4ee5\u53ca \u5b9e\u4f53 solids * \u9002\u7528 \u4e8e \u8fde\u63a5 \u521a\u4f53 * \u4e0d \u9002\u7528 \u5f62\u53d8 \u5927 \u7684 \u6784\u4ef6 \u5851\u6027 \u5f39\u5851\u6027 \u5e94\u529b \u2014 \u2014 \u5e94\u53d8 \u66f2\u7ebf \u771f\u5b9e \u5e94\u529b \u5f62\u53d8 * \u771f\u5b9e \u5e94\u529b \uff1a \u8003\u8651 \u5f53\u524d \u6216 \u771f\u5b9e \u622a\u9762 \u6a2a\u622a\u9762 \u79ef $ A _ { true } $ \u7684 \u5e94\u529b $ $ \\ sigma _ { true } = \\ frac { P _ x } { A _ { true } } $ $ * \u5728 \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u8303\u56f4 \u5185 \uff0c \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u622a\u9762 \u6a2a\u622a\u9762 \u79ef \u6c38\u4e45 \u51cf\u5c0f * \u7ee7\u7eed \u4f7f\u7528 \u5de5\u7a0b \u5e94\u529b \u4e0d\u518d \u51c6\u786e #### MAT1 \u5b9a\u4e49 \u65b9\u5f0f \u8fd9\u4e2a \u5173\u952e \u5173\u952e\u8bcd \u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u540c\u6027 \u5404\u5411\u540c\u6027 \u7684 \u7ebf \u5f39\u6027 \u6750\u6599 \u3002 \u8fd9\u4e2a \u5b9a\u5f8b \u8868\u793a \u5e94\u529b \u548c \u5e94\u53d8 \u4e4b\u95f4 \u7684 \u7ebf\u6027 \u5173\u7cfb \u6027\u5173\u7cfb \u7ebf\u6027\u5173\u7cfb \u3002 \u5b83 \u53ef \u7528\u4e8e \u6841\u67b6 \uff0c \u6881 ( \u4ec5 3 \u578b ) \uff0c \u58f3 \u548c \u5b9e\u4f53 \u5143\u4ef6 \u3002 \u683c\u5f0f \u5b9a\u4e49 \u4f8b\u5b50 \u539f\u7406 \uff1a \u8be5 \u6750\u6599 \u9002\u7528 \u4e8e \u7eaf\u7cb9 \u7684 \u5f39\u6027 \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u6027\u80fd \u53ea \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4e24\u4e2a \u56e0\u7d20 \uff1a \u6a21\u91cf \u6768\u6c0f\u6a21 \u6768\u6c0f\u6a21\u91cf : $ E $ \u6cca\u677e\u6bd4 : $ \\ nu $ \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf : ( \u53ef \u8ba1\u7b97 ) $ $ G = \\ frac { E } { 2 ( 1 + \\ nu ) } $ $ \u5e94\u529b \u5e94\u53d8 \u5173\u7cfb $ $ \\ begin { bmatrix } \\ epsilon _ { 11 } \\ \\ epsilon _ { 22 } \\ \\ epsilon _ { 33 } \\ \\ gamma _ { 23 } \\ \\ gamma _ { 31 } \\ \\ gamma _ { 12 } \\ end { bmatrix } = \\ frac { 1 } { E } \\ begin { bmatrix } 1 &- \\ nu &- \\ nu & 0 & 0 & 0 \\ - \\ nu & 1 &- \\ nu & 0 & 0 & 0 \\ - \\ nu &- \\ nu & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 & 0 \\ 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 \\ 0 & 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) \\ end { bmatrix } \\ begin { bmatrix } \\ sigma _ { 11 } \\ \\ sigma _ { 22 } \\ \\ sigma _ { 33 } \\ \\ sigma _ { 23 } \\ \\ sigma _ { 31 } \\ \\ sigma _ { 12 } \\ end { bmatrix } $ $ \u5bc6\u5ea6 \u503c \u901a\u5e38 \u7528\u4e8e \u663e\u5f0f \u6a21\u62df \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4e8e \u9759\u6001 \u9690\u5f0f \u6a21\u62df \uff0c \u4ee5\u4fbf \u5728 \u62df \u9759\u6001 \u5206\u6790 \u4e2d \u8fbe\u5230 \u66f4\u597d \u7684 \u6536\u655b \u6536\u655b\u6027 \u3002 \u5f53 \u901a\u8fc7 \u58f3\u4f53 \u539a\u5ea6 \u7684 \u79ef\u5206 \u70b9 \u4e2a\u6570 \u4e0d\u540c \u540c\u4e8e \u4e0d\u540c\u4e8e NP = 1 ( \u819c ) \u65f6 \uff0c \u5bf9 LAW1 \u548c \u58f3 \u5355\u5143 ( / PROP / TYPE1 ( shell ) ) \u91c7\u7528 \u5168\u5c40 \u79ef\u5206 \u5206\u6cd5 \u79ef\u5206\u6cd5 \u3002 \u5931\u6548 \u6a21\u578b \u5728 \u5168\u5c40 \u96c6\u6210 \u7684 \u60c5\u51b5 \u4e0b \u4e0d\u53ef \u7528 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u5177\u6709 \u5f88 \u9ad8 \u5c48\u670d \u5e94\u529b \u5c48\u670d\u5e94\u529b \u7684 LAW2 \u548c LAW27 \u53ef\u4ee5 \u4f5c\u4e3a LAW1 \u7684 \u66ff\u4ee3 \u66ff\u4ee3\u54c1 \u3002 #### MAT1 \u4ee3\u7801 \u89e3\u8bfb \u603b\u4f53 \u6846\u67b6 \u662f \u83b7\u53d6 \u8f93\u5165 CALL HM _ OPTION _ IS _ ENCRYPTED ( IS _ ENCRYPTED ) CALL HM _ GET _ FLOATV ( ' MAT _ RHO ' , RHO0 , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' Refer _ Rho ' , RHOR , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ E ' , YOUNG , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ NU ' , ANU , IS _ AVAILABLE , LSUBMODEL , UNITAB ) \u8ba1\u7b97 \u53c2\u6570 IF ( RHOR = = ZERO ) RHOR = RHO0 C IF ( YOUNG < = ZERO ) THEN CALL ANCMSG ( MSGID = 683 , . MSGTYPE = MSGERROR , . ANMODE = ANINFO , . I1 = ID , . C1 = TITR , . C2 = ' YOUNG ' ' S MODULUS ' ) ENDIF IF ( ANU = = HALF ) ANU = ZEP499 C G = YOUNG / ( TWO ( ONE + ANU ) ) C0 = ZERO C1 = YOUNG / ( THREE ( ONE - TWO ANU ) ) E0 = ZERO E1MN2 = YOUNG / ( ONE - ANU 2 ) EN1N2 = ANU E1MN2 SDSP = SQRT ( YOUNG / MAX ( RHOR , EM20 ) ) ISRATE = 0 * \u4fdd\u5b58 \u53c2\u6570 PM ( 1 ) = RHOR PM ( 20 ) = YOUNG PM ( 21 ) = ANU PM ( 22 ) = G PM ( 23 ) = E0 PM ( 24 ) = E1MN2 PM ( 25 ) = EN1N2 PM ( 26 ) = FIVE _ OVER _ 6 PM ( 27 ) = SDSP PM ( 31 ) = C0 PM ( 32 ) = C1 PM ( 89 ) = RHO0 \u5f02\u5e38 \u5904\u7406 c ----------------- CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" TOTAL \" ) IF ( ANU > 0.49 ) THEN CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" INCOMPRESSIBLE \" ) ELSE CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" COMPRESSIBLE \" ) END IF CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" HOOK \" ) c ----------------- WRITE ( IOUT , 1001 ) TRIM ( TITR ) , ID , 01 WRITE ( IOUT , 1000 ) IF ( IS _ ENCRYPTED ) THEN WRITE ( IOUT , ' ( 5X , A , / / ) ' ) ' CONFIDENTIAL DATA ' ELSE WRITE ( IOUT , 1100 ) RHO0 WRITE ( IOUT , 1300 ) YOUNG , ANU , G ENDIF C IPM ( 252 ) = 2 PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) C ----------- \u63a7\u5236 \u8f93\u51fa C ----------- RETURN 1000 FORMAT ( & 5X , ' ELASTIC MATERIAL ( / MAT / LAW01 ) ' , / , & 5X , ' ----------------------------- ' ) 1001 FORMAT ( & 5X , A , / , & 5X , ' MATERIAL NUMBER . . . . . . . . . . . . = ' , I10 / , & 5X , ' MATERIAL LAW . . . . . . . . . . . . . . = ' , I10 / ) 1100 FORMAT ( & 5X , ' INITIAL DENSITY . . . . . . . . . . . . = ' , 1PG20.13 / ) 1300 FORMAT ( & 5X , ' YOUNG ' ' S MODULUS . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' POISSON ' ' S RATIO . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' SHEAR MODULUS . . . . . . . . . . . . . = ' , E12.4 / / ) \u5728 \u6570\u636e \u91cc \u6700 \u91cd\u8981 \u7684 \u662f PM \u4ee5\u53ca IPM \uff0c \u5206\u522b \u5b58\u50a8 \u4e86 \u6750\u6599 \u53c2\u6570 \u548c \u6750\u6599 ID \u3002 \u4f46\u662f \u6682\u65f6 \u6ca1\u6709 \u76f8\u5173 \u6587\u6863 \u8bf4\u660e \u5176 \u5177\u4f53 \u4f53\u5185 \u5185\u5bb9 \u5177\u4f53\u5185\u5bb9 \u3002 \u63d0\u53d6 mat \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u6240\u6709 PM \u53d8\u91cf \u7684 \u4fe1\u606f \u6c47\u603b \u5982\u4e0b : PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHO0 PM ( 01 ) = RHOR PM ( 1 ) = RHO0 ! RHOR PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 1 ) = RHO0 PM ( 2 ) = GS PM ( 8 ) = ISRATE PM ( 9 ) = TWO * PI * FCUT PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = ASRATE PM ( 12 ) = SQRT ( MAX ( ZERO , G0 ) ) ! done by default in lecmuser . F for law34 PM ( 17 ) = MU PM ( 17 ) = AMU PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = MW PM ( 20 ) = STIFF ! Stiffness contact PM ( 20 ) = CMAX / TWO PM ( 20 ) = YMC PM ( 20 ) = NMAT + EM01 PM ( 20 ) = YOUNG PM ( 20 ) = NBMAT + EM01 PM ( 20 ) = MAX ( E11 , E22 , E33 ) PM ( 20 ) = YOUNG PM ( 20 ) = E PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = YOUNG PM ( 21 ) = ANUC PM ( 21 ) = ZERO ! NU PM ( 21 ) = NU PM ( 21 ) = ANU PM ( 21 ) = ANU PM ( 21 ) = NU PM ( 21 ) = SQRT ( N12 * N21 ) PM ( 21 ) = NUG PM ( 21 ) = NU PM ( 21 ) = CPA PM ( 21 ) = THIRD * ( N12 + N31 + N23 ) PM ( 22 ) = G0 PM ( 22 ) = YMC / ( TWO * ( ONE + ANUC ) ) PM ( 22 ) = GS ! ! TWO * G PM ( 22 ) = G PM ( 22 ) = G PM ( 22 ) = STIFF * HALF ! GMAX PM ( 22 ) = CPB PM ( 22 ) = G PM ( 22 ) = THIRD * ( G12 + G23 + G31 ) PM ( 22 ) = GS PM ( 22 ) = MAX ( G12 , G23 , G31 ) PM ( 23 ) = YOUNG PM ( 23 ) = E0 PM ( 23 ) = CPC PM ( 23 ) = EM01 * STIFFAVG ! Hourglass stiffness for QEPH PM ( 23 ) = E0 PM ( 23 ) = ZERO ! E0 PM ( 23 ) = E0 PM ( 23 ) = E0 PM ( 24 ) = PM ( 20 ) PM ( 24 ) = NU * YOUNG / ( ONE - NU * NU ) PM ( 24 ) = YOUNG / ( ONE - NU * * 2 ) PM ( 24 ) = CMAX / ( ONE - NU * * 2 ) / TWO PM ( 24 ) = PM ( 25 ) + TWO * PM ( 22 ) PM ( 24 ) = E1MN2 PM ( 24 ) = STIFF ! Stiffness for time step computation PM ( 24 ) = D2 PM ( 24 ) = YOUNG / ( ONE - NUG * * 2 ) PM ( 24 ) = E1MN2 PM ( 24 ) = VIS PM ( 24 ) = PM ( 20 ) PM ( 24 ) = CPD PM ( 25 ) = GAM PM ( 25 ) = D3 PM ( 25 ) = NR PM ( 25 ) = EN1N2 PM ( 25 ) = CPE PM ( 25 ) = YMC * ANUC / ( ONE + ANUC ) / ( ONE - TWO * ANUC ) PM ( 25 ) = 1 . PM ( 25 ) = EN1N2 PM ( 25 ) = PM ( 21 ) * PM ( 24 ) PM ( 26 ) = FIVE PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CPF PM ( 26 ) = PM ( 26 ) * ONE _ OVER _ 6 PM ( 26 ) = NT PM ( 26 ) = THET PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CB PM ( 26 ) = MAX ( ZERO , DSUP1 ) PM ( 27 ) = SQRT ( A11 / RHO0 ) ! sound speed estimation PM ( 27 ) = SQRT ( YOUNG / RHO0 ) ! Sound speed PM ( 27 ) = D PM ( 27 ) = SSP PM ( 27 ) = SDSP PM ( 27 ) = SDSP PM ( 27 ) = CN PM ( 27 ) = SQRT ( A1 / RHO0 ) ! sound speed estimation PM ( 27 ) = SSP PM ( 27 ) = VCRT2 PM ( 27 ) = SQRT ( E / MAX ( RHOR , EM20 ) ) PM ( 27 ) = APY PM ( 27 ) = SQRT ( ( BULK + FOUR _ OVER _ 3 * G ) / RHO0 ) ! sound speed estimation PM ( 27 ) = MAXVAL ( SSP ( 1 : 4 ) ) PM ( 27 ) = IDF PM ( 27 ) = R _ IGC1 PM ( 27 ) = SQRT ( E / RHO0 ) ! Sound speed for beam elements PM ( 27 ) = VMAX PM ( 27 ) = D PM ( 28 ) = MAX ( ONEP0001 , FMAX ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = GAMRP PM ( 28 ) = ONE - HT / YMC PM ( 28 ) = VB PM ( 28 ) = MAX ( ONEP0001 , ( SIGMX / CA ) * * 2 ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = NR PM ( 29 ) = - ANU * PM ( 28 ) PM ( 29 ) = - NU * PM ( 28 ) PM ( 29 ) = GAM1 PM ( 29 ) = ROK PM ( 29 ) = NT PM ( 29 ) = TM0 PM ( 30 ) = ONE / G PM ( 30 ) = IDF PM ( 30 ) = ONE / G PM ( 30 ) = E00 PM ( 30 ) = RO0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = ZERO ! C0 PM ( 31 ) = C0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C2 * MU * * 2 + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = C0 PM ( 31 ) = P0 + PSHIFT PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = RHOR * C * * 2 PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = BULK PM ( 32 ) = BULK PM ( 32 ) = C1 PM ( 32 ) = GS PM ( 32 ) = C1 PM ( 33 ) = ZERO PM ( 33 ) = C2 PM ( 33 ) = E11 PM ( 33 ) = SIGT1 PM ( 33 ) = E11 PM ( 33 ) = C PM ( 33 ) = C2 PM ( 33 ) = A PM ( 33 ) = FC PM ( 33 ) = RE0 / RHO0 PM ( 34 ) = E22 PM ( 34 ) = E22 PM ( 34 ) = SIGT2 PM ( 34 ) = ZERO PM ( 34 ) = B PM ( 34 ) = - HALF * SSP2 / CARL * * 2 PM ( 34 ) = C3 PM ( 34 ) = S PM ( 34 ) = C3 PM ( 34 ) = RT PM ( 35 ) = PCC PM ( 35 ) = RC PM ( 35 ) = N12 PM ( 35 ) = N12 PM ( 35 ) = C4 PM ( 35 ) = BUNL PM ( 35 ) = C4 PM ( 35 ) = XKL PM ( 35 ) = R1 PM ( 35 ) = SIGT3 PM ( 35 ) = ZERO PM ( 36 ) = XMUMX PM ( 36 ) = ZERO PM ( 36 ) = N21 PM ( 36 ) = C5 PM ( 36 ) = N21 PM ( 36 ) = GAM0 PM ( 36 ) = C5 PM ( 36 ) = RT * ( TWO * RC - RT ) PM ( 36 ) = R2 PM ( 36 ) = XLAMB PM ( 36 ) = EFIB PM ( 37 ) = - INFINITY PM ( 37 ) = G12 PM ( 37 ) = EPSFT PM ( 37 ) = - PSH PM ( 37 ) = PMIN PM ( 37 ) = PMIN PM ( 37 ) = ( RC - RT ) * * 2 PM ( 37 ) = EF PM ( 37 ) = G12 PM ( 37 ) = PMIN PM ( 37 ) = ATOM PM ( 38 ) = UPARAM ( 42 ) ! VDET PM ( 38 ) = G23 PM ( 38 ) = AA PM ( 38 ) = CA PM ( 38 ) = EPSFC PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = A0 PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = G23 PM ( 38 ) = EFIB PM ( 38 ) = VDET PM ( 38 ) = SIG0 PM ( 39 ) = CB PM ( 39 ) = ALPHA PM ( 39 ) = CB PM ( 39 ) = G31 PM ( 39 ) = A1 PM ( 39 ) = CB PM ( 39 ) = BC PM ( 39 ) = G31 PM ( 39 ) = CE PM ( 39 ) = PCJ PM ( 40 ) = A2 PM ( 40 ) = BT PM ( 40 ) = ONE / TSCAL PM ( 40 ) = CN PM ( 40 ) = PM ( 1 ) * D * * 2 / PCJ PM ( 40 ) = IFLAG PM ( 40 ) = CN PM ( 40 ) = CN PM ( 40 ) = D11 PM ( 41 ) = EPSM PM ( 41 ) = D12 PM ( 41 ) = IBFRAC PM ( 41 ) = TIMESCAL PM ( 41 ) = EPSM PM ( 41 ) = AMX PM ( 41 ) = AC PM ( 41 ) = EP20 ! EPSM PM ( 41 ) = WPLAMX PM ( 41 ) = EPSM PM ( 41 ) = WPLAMX PM ( 42 ) = QOPT PM ( 42 ) = IOFF PM ( 42 ) = SIGM PM ( 42 ) = D13 PM ( 42 ) = IOFF PM ( 42 ) = TSCAL PM ( 42 ) = FAC _ Y PM ( 42 ) = SIGM PM ( 42 ) = FT * FC / YMC PM ( 42 ) = SIGM PM ( 43 ) = CC PM ( 43 ) = CM PM ( 43 ) = HBP PM ( 43 ) = C0 PM ( 43 ) = CC PM ( 43 ) = D22 PM ( 43 ) = CB1 PM ( 43 ) = CC PM ( 43 ) = PEXT PM ( 43 ) = ESCAL PM ( 44 ) = EPS0 PM ( 44 ) = DE PM ( 44 ) = PSTAR PM ( 44 ) = EPS0 PM ( 44 ) = D23 PM ( 44 ) = CB2 PM ( 44 ) = DE PM ( 44 ) = KSCAL PM ( 44 ) = BULK PM ( 44 ) = RCOMP PM ( 44 ) = ALI PM ( 44 ) = EPS0 PM ( 45 ) = W PM ( 45 ) = ALF PM ( 45 ) = CH PM ( 45 ) = BUNL PM ( 45 ) = CM PM ( 45 ) = D33 PM ( 45 ) = EPSL PM ( 45 ) = CM PM ( 45 ) = A11 PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = SSL PM ( 46 ) = XMUMX PM ( 46 ) = G12 PM ( 46 ) = A22 PM ( 46 ) = TMELT PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = VKY PM ( 46 ) = HL PM ( 47 ) = TMAX PM ( 47 ) = A * AK PM ( 47 ) = CN PM ( 47 ) = ZERO ! MUMIN PM ( 47 ) = CN PM ( 47 ) = EPSMAX PM ( 47 ) = TMAX PM ( 47 ) = YLDL PM ( 47 ) = A1122 PM ( 47 ) = G23 PM ( 48 ) = E PM ( 48 ) = A PM ( 48 ) = G31 PM ( 48 ) = A12 PM ( 48 ) = IFORM PM ( 48 ) = NR PM ( 48 ) = CS PM ( 48 ) = EL PM ( 48 ) = HV0 PM ( 49 ) = A PM ( 49 ) = EXPO PM ( 49 ) = FMAX PM ( 49 ) = GAM0M PM ( 49 ) = ICC PM ( 49 ) = ICC PM ( 49 ) = SSP PM ( 49 ) = FMAX PM ( 49 ) = C0 PM ( 49 ) = NT PM ( 50 ) = AM PM ( 50 ) = B PM ( 50 ) = ZERO PM ( 50 ) = YMS PM ( 50 ) = IDF PM ( 50 ) = CC PM ( 50 ) = ITYP PM ( 50 ) = ONE PM ( 51 ) = SIG PM ( 51 ) = MT PM ( 51 ) = EPS0 PM ( 51 ) = Y0S PM ( 51 ) = INOD ! USR2SYS APRES FSDCOD , IF ( IFORM8 = = 2 ) INOD = USR2SYS ( INOD , ITABM1 , MESS ) PM ( 51 ) = GAME PM ( 51 ) = C3 PM ( 51 ) = YP1 PM ( 52 ) = GP PM ( 52 ) = ONEP414 * PM ( 17 ) * PM ( 1 ) * SSP PM ( 52 ) = ICC PM ( 52 ) = C4 PM ( 52 ) = TM PM ( 52 ) = XKMAX PM ( 52 ) = ONEP414 * MU * PM ( 1 ) * SDSP PM ( 52 ) = ONEP414 * AMU * PM ( 1 ) * SDSP PM ( 52 ) = ETS PM ( 53 ) = ICC PM ( 53 ) = F1 PM ( 53 ) = ONE / CP PM ( 53 ) = DSP PM ( 53 ) = ARM1 PM ( 53 ) = AREAMIN1 PM ( 53 ) = ZERO PM ( 54 ) = E0H PM ( 54 ) = F2 PM ( 54 ) = ARM2 PM ( 54 ) = ZERO PM ( 54 ) = F1 PM ( 54 ) = ONE / ( AREAMIN2 - AREAMIN1 ) PM ( 54 ) = TI PM ( 55 ) = FISOKIN PM ( 55 ) = RP3 PM ( 55 ) = F3 PM ( 55 ) = F2 PM ( 55 ) = ARM3 PM ( 56 ) = F4 PM ( 56 ) = ONE ! PM ( 56 ) = POROSITY PM ( 56 ) = VJ PM ( 56 ) = F11 PM ( 57 ) = F5 PM ( 57 ) = C1 PM ( 57 ) = ICAP + EM01 PM ( 57 ) = F22 PM ( 58 ) = C2 PM ( 58 ) = F33 PM ( 58 ) = F6 PM ( 58 ) = ONE - HVFAC PM ( 59 ) = F11 PM ( 59 ) = ZERO ! PM ( 59 ) = F12 PM ( 59 ) = F1 PM ( 59 ) = C3 PM ( 59 ) = ALPHA PM ( 60 ) = F22 PM ( 60 ) = BETA PM ( 60 ) = EPST1 PM ( 60 ) = D1 PM ( 60 ) = EPST1 PM ( 60 ) = F2 PM ( 61 ) = TMAX PM ( 61 ) = ALPHAP PM ( 61 ) = EPST2 PM ( 61 ) = EPST2 PM ( 61 ) = F33 PM ( 61 ) = F4 PM ( 62 ) = F5 PM ( 62 ) = F44 PM ( 62 ) = EPSM1 PM ( 62 ) = EPSM1 PM ( 63 ) = F11 PM ( 63 ) = EPSM2 PM ( 63 ) = F55 PM ( 63 ) = EPSM2 PM ( 64 ) = DMAX1 PM ( 64 ) = F22 PM ( 64 ) = DMAX PM ( 64 ) = F66 PM ( 65 ) = SHRDAM PM ( 65 ) = DMAX2 PM ( 65 ) = F12 PM ( 65 ) = F44 PM ( 66 ) = EPSF1 PM ( 66 ) = F23 PM ( 66 ) = SHRMAX PM ( 66 ) = F55 PM ( 67 ) = F13 PM ( 67 ) = SHRDMAX PM ( 67 ) = F12 PM ( 67 ) = EPSF2 PM ( 68 ) = WPLAREF PM ( 68 ) = F23 PM ( 69 ) = SPH PM ( 69 ) = SPH PM ( 69 ) = RCP PM ( 69 ) = C11 PM ( 70 ) = ZERO PM ( 71 ) = JTHE + EM01 PM ( 72 ) = ZERO PM ( 72 ) = ZERO PM ( 73 ) = C22 PM ( 73 ) = C11 PM ( 74 ) = C33 PM ( 74 ) = C22 PM ( 75 ) = AS PM ( 75 ) = C12 PM ( 75 ) = C33 PM ( 76 ) = C23 PM ( 76 ) = BS PM ( 76 ) = C12 PM ( 77 ) = C13 PM ( 77 ) = C23 PM ( 77 ) = CF PM ( 78 ) = T0 PM ( 78 ) = C13 PM ( 78 ) = DELTA PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = DELTA PM ( 79 ) = THREE100 PM ( 80 ) = TMELT PM ( 80 ) = INFINITY PM ( 80 ) = INFINITY PM ( 80 ) = TMELT PM ( 80 ) = TMELT PM ( 80 ) = EP30 PM ( 81 ) = CTM PM ( 81 ) = CTM PM ( 81 ) = SIGT1 PM ( 82 ) = SIGT2 PM ( 82 ) = CT1 PM ( 83 ) = CT2 PM ( 83 ) = SIGT3 PM ( 84 ) = CT3 PM ( 84 ) = EPSFT PM ( 85 ) = SK PM ( 85 ) = EPSFC PM ( 85 ) = SK PM ( 86 ) = SE PM ( 86 ) = SE PM ( 87 ) = RK0 / RHO0 PM ( 87 ) = RK0 / RHO0 PM ( 88 ) = ZERO PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 91 ) = RHO10 PM ( 91 ) = MAXVAL ( RHO0 _ ( 1 : 4 ) ) PM ( 95 ) = RPR PM ( 95 ) = RPR PM ( 97 ) = RHOC PM ( 98 ) = ALP0 PM ( 98 ) = EPSF1 PM ( 98 ) = WPLAREF PM ( 99 ) = DC + ONE PM ( 99 ) = EPSF2 PM ( 100 ) = BULK PM ( 100 ) = RBULK PM ( 100 ) = RBULK ! PARMAT ( 1 ) PM ( 100 ) = E PM ( 100 ) = C1 PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = BULK PM ( 104 ) = P0 + PSHIFT PM ( 104 ) = C0 - PSH PM ( 104 ) = C0 PM ( 104 ) = P0 PM ( 104 ) = C0 - PSH PM ( 105 ) = GS / ( BULK + TWO _ THIRD * GS ) PM ( 105 ) = GS / ( RBULK + TWO _ THIRD * G ) PM ( 105 ) = DMIN / DMAX / DMAX PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = DMIN / C1 * * 2 PM ( 105 ) = TWO * PM ( 22 ) / ( BULK + FOUR _ OVER _ 3 * PM ( 22 ) ) ! = ( 1 - 2 * Nuc ) / ( 1 - Nuc ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = TWO * G0 / ( BULK + FOUR _ OVER _ 3 * G0 ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) ! TWO * G / ( BULK + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * GS / ( RBULK + FOUR _ OVER _ 3 * GS ) PM ( 105 ) = MIN ( D11 * D22 - D12 * * 2 , D22 * D33 - D23 * * 2 , D11 * D33 - D13 * * 2 ) / C1 * * 2 PM ( 141 ) = SIGYT1 PM ( 141 ) = SIGYT1 PM ( 142 ) = CBT1 PM ( 142 ) = SIGYT2 PM ( 143 ) = SIGYC1 PM ( 143 ) = CNT1 PM ( 144 ) = SIGYC2 PM ( 144 ) = SIGMXT1 PM ( 145 ) = SIGYT12 PM ( 145 ) = CCT1 PM ( 146 ) = SIGYC12 PM ( 146 ) = SIGYT2 PM ( 147 ) = IFLAG PM ( 147 ) = CBT2 PM ( 148 ) = S1 PM ( 148 ) = CNT2 PM ( 149 ) = SIGMXT2 PM ( 149 ) = S2 PM ( 150 ) = C11 PM ( 150 ) = CCT2 PM ( 151 ) = SIGYC1 PM ( 151 ) = C22 PM ( 152 ) = CBC1 PM ( 152 ) = S12 PM ( 153 ) = CNC1 PM ( 154 ) = SIGMXC1 PM ( 155 ) = CCC1 PM ( 156 ) = SIGYC2 PM ( 157 ) = CBC2 PM ( 158 ) = CNC2 PM ( 159 ) = SIGMXC2 PM ( 160 ) = CCC2 PM ( 160 ) = EADD PM ( 161 ) = SIGYT12 PM ( 161 ) = TBEGIN PM ( 162 ) = CBT12 PM ( 162 ) = TEND PM ( 163 ) = REACTION _ RATE PM ( 163 ) = CNT12 PM ( 164 ) = SIGMXT12 PM ( 164 ) = A _ MIL PM ( 165 ) = CCT12 PM ( 165 ) = M _ MIL PM ( 166 ) = EPS1T1 PM ( 166 ) = N _ MIL PM ( 167 ) = EPS2T1 PM ( 167 ) = REACTION _ RATE2 PM ( 168 ) = SIGRST1 PM ( 168 ) = ALPHA _ UNIT PM ( 169 ) = WPLAMXT1 PM ( 170 ) = EPS1T2 PM ( 171 ) = EPS2T2 PM ( 172 ) = SIGRST2 PM ( 173 ) = WPLAMXT2 PM ( 174 ) = EPS1C1 PM ( 175 ) = EPS2C1 PM ( 176 ) = SIGRSC1 PM ( 177 ) = WPLAMXC1 PM ( 178 ) = EPS1C2 PM ( 179 ) = EPS2C2 PM ( 180 ) = SIGRSC2 PM ( 181 ) = WPLAMXC2 PM ( 182 ) = EPS1T12 PM ( 183 ) = EPS2T12 PM ( 184 ) = SIGRST12 PM ( 185 ) = WPLAMXT12 PM ( 186 ) = E33 PM ( 187 ) = IYEILD PM ( 188 ) = RATIO PM ( 189 ) = IMODWP PM ( 191 ) = XK PM ( 192 ) = XK PM ( 192 ) = RHOA PM ( 193 ) = FRAC PM ( 193 ) = XK PM ( 194 ) = AA PM ( 195 ) = BB PM ( 196 ) = TAUX PM ( 197 ) = KK PM ( 198 ) = ICLOS PM ( 199 ) = RHOEXT PM ( 200 ) = EINT _ EXT PM ( 201 ) = INCGAS","title":"use OpenRadioss linux"},{"location":"OpenRadioss/use_OpenRadioss_linux/#linux-openradioss","text":"","title":"Linux \u4e0b OpenRadioss \u7684 \u7f16\u8bd1"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_1","text":"Ubuntu 20.0 . 4 or higher apt - get update apt - get upgrade apt - get install build - essential apt - get install gfortran apt - get install cmake apt - get install perl apt - get install python3 apt - get install python - is - python3 apt - get install git - lfs apt - get install openmpi - bin openmpi - doc libopenmpi - dev apt - get install paraview \u63a8\u8350 \u7248\u672c \u4e3a gcc - 11 , g ++- 11 , gfortran - 11 \u3002 paraview \u7528\u4e8e \u540e\u671f \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002","title":"\u73af\u5883"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_2","text":"","title":"\u7f16\u8bd1 \u6307\u4ee4"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_3","text":"LFS : git lfs install \u8fd0\u884c ( \u8fd9\u91cc \u9700\u8981 \u5148 \u7ed1\u5b9a SSH key ) git clone git @ github . com : OpenRadioss / OpenRadioss . git .","title":"\u83b7\u53d6 \u6e90\u7801"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss-starter","text":"\u8fdb\u5165 OpenRadioss / starter \u76ee\u5f55 cd OpenRadioss / starter \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Execution control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory","title":"OpenRadioss Starter"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss-engine","text":"\u8fdb\u5165 OpenRadioss / engine \u76ee\u5f55 \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf - mpi = ompi . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - arch = linux64 _ gf - mpi = ompi ( OpenMPI executable / Gfortran compiler ) MPI libraries - mpi = [ mpi ] not set : SMP ( default ) - mpi = ompi : OpenMPI Controling MPI Libraries - if need choose one of the 3 Option Set If no options set , recommended OpenMPI directories are uses ( default ) 1 . - mpi - os : link with default MPI version installed on system libraries are in default installation 2 . - mpi - root = [ directory ] : set rootname to link with specific MPI installation 3 . - mpi - include = [ directory ] : set include directory where to find mpif . h and mpi . h - mpi - libdir = [ directory ] : set library directory where to find mpi libraries Other control - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Build control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory MUMPS linear solver : available only for dp , with mpi \" - mumps _ root = [ path _ to _ mumps ] : path _ to _ mumps / lib / libdmumps . a must exist - scalapack _ root = [ path to scalapack ] : path _ to _ scalapack / libscalapack . a must exist - lapack _ root = [ path to lapack ] : path _ to _ lapack / liblapack . a must exist","title":"OpenRadioss Engine"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_4","text":"cd starter . / build _ script . sh - arch = linux64 _ gf cd .. / engine . / build _ script . sh - arch = linux64 _ gf - mpi = ompi","title":"\u81ea\u52a8\u5316 \u811a\u672c \uff08 \u5f85\u5b9a \uff09"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss","text":"","title":"OpenRadioss \u7684 \u4f7f\u7528"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_5","text":"gmsh \u4f7f\u7528 Gmsh \u7684 \u7ba1\u5b50 \u63a5\u89e6 \u6559\u7a0b \u4f7f\u7528 Gmsh \u7684 \u62c9\u4f38 \u6d4b\u8bd5 \u793a\u4f8b \u6559\u7a0b Hypermesh lsprepost ( * )","title":"\u524d \u5904\u7406"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_6","text":"","title":"\u8ba1\u7b97"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_7","text":"ParaView vtk \u8f6c fbx \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002","title":"\u540e\u5904\u7406"},{"location":"OpenRadioss/use_OpenRadioss_linux/#lsdyna","text":"","title":"\u4f7f\u7528 LSDYNA \u683c\u5f0f \u8f93\u5165"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_8","text":"\u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u62c9\u4f38 \u6a21\u62df \u3002","title":"\u6d4b\u8bd5 \u5b9e\u4f8b"},{"location":"OpenRadioss/use_OpenRadioss_linux/#bash","text":"myjobname = $ ( echo \" $ 1 \" ) echo $ myjobname \" running in OpenRadioss \" export OMP _ STACKSIZE = 400m export OMP _ NUM _ THREADS = 8 . / starter _ linux64 _ gf - i \" .. / source / \" $ myjobname \" . k \" - np $ 2 - outfile = \" .. / output \" #. / starter _ linux64 _ gf - i $ myjobname \" . k \" - np $ 2 - nt 4 # \u8fd9\u91cc \u662f \u627e\u5230 source \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \uff0c LS - DYNA \u683c\u5f0f \u6587\u4ef6 \u683c\u5f0f\u6587\u4ef6 \uff08 . k \uff09 \u5e76 \u5c06 \u5176 \u4f20\u9012 \u7ed9 starter \u8fdb\u884c \u8ba1\u7b97 \u3002 mpiexec - n $ 2 -- map - by socket : PE = $ OMP _ NUM _ THREADS -- bind - to core . / engine _ linux64 _ gf _ ompi - i \" .. / bin / \" $ myjobname \" _ 0001 . rad \" - outfile = \" .. / output \" # mpiexec - n $ 2 . engine _ linux64 _ gf _ ompi - i $ myjobname \" _ 0001 . rad \" - nt 1 # \u5728 \u5904\u7406 . k \u6587\u4ef6 \u65f6 \uff0c starter \u4f1a \u5728 \u5176 \u76ee\u5f55 \u4e0b \u751f\u6210 \" _ 0001 . rad \" \u6587\u4ef6 \uff0c \u9700\u8981 \u5c06 \u5176 \u4f20\u9012 \u7ed9 engine BASEDIR = $ ( dirname \" $ 0 \" ) for file in .. / output / * ; do if [ - n \" $ { file : - 3 } \" ] && [ \" $ { file : - 3 } \" - eq \" $ { file : - 3 } \" ] 2 > / dev / null && [ [ \" $ { file : - 4 : 1 } \" = = \" A \" ] ] ; then . / anim _ to _ vtk _ linux64 _ gf $ file > \" $ file . vtk \" echo \" $ file is converted \" # anim \u6587\u4ef6 \u8f6c\u5316 \u4e3a vtk \u6587\u4ef6 elif [ [ \" $ { file : - 3 } \" = = \" T01 \" ] ] ; then . / th _ to _ csv _ linux64 _ gf $ file CSV = \" $ file . csv \" # T01 \u6587\u4ef6 \u8f6c\u5316 \u4e3a csv \u6587\u4ef6 fi done cd .. / output / # paraview $ myjobname \" A .. vtk \" $ CSV paraview $ myjobname \" A .. vtk \" $ CSV exit \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u8f93\u5165 bash process _ k . sh zug _ test3 _ RS 1 \u5373\u53ef \u3002 \u5176\u4e2d process _ k . sh \u662f \u811a\u672c \u540d\u5b57 \uff0c zug _ test3 _ RS \u662f \u6a21\u578b \u540d\u5b57 \uff0c 1 \u662f \u5e76\u884c \u8fdb\u7a0b \u6570 \u3002","title":"bash \u811a\u672c"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_9","text":"","title":"\u8fd0\u884c \u7ed3\u679c"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_10","text":"\u5728 \u4f7f\u7528 Openadioss \u5904\u7406 LS - DYNA \u683c\u5f0f \u7684 \u6587\u4ef6 \u65f6 \uff0c \u9700\u8981 . k \u6587\u4ef6 \u3002 \u8fd9\u4e2a \u6587\u4ef6 \u5176\u5b9e \u662f \u53ef\u4ee5 \u76f4\u63a5 \u653e\u5728 LS - DYNA \u4e0a \u8fdb\u884c \u8ba1\u7b97 \u7684 \u3002 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5176\u4ed6 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u2014 \u2014 \u4f7f\u7528 OpenRadioss \u3002","title":"\u603b\u7ed3"},{"location":"OpenRadioss/use_OpenRadioss_linux/#to-do","text":"\u9700\u8981 \u9a8c\u8bc1 \u8ba1\u7b97 \u7684 \u6b63\u786e \u6b63\u786e\u6027 \uff1a \u4e5f \u5c31\u662f \u4f7f\u7528 LS - DYNA \u8ba1\u7b97 \u540c\u6837 \u7684 \u4f8b\u5b50 \uff0c \u89c2\u5bdf \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u662f\u5426 \u6709 \u51fa\u5165 \u3002 LS - DYNA \u662f \u5546\u4e1a \u8f6f\u4ef6 \u5546\u4e1a\u8f6f\u4ef6 \uff0c \u80fd \u627e\u5230 \u7684 \u8f6f\u4ef6 \u4e0d \u652f\u6301 Ubuntu \u7cfb\u7edf \u3002 \u53ef\u4ee5 \u5728 windows \u4e0b \u4eff\u771f \uff0c \u5c06 \u7ed3\u679c \u548c \u8fdb\u884c \u5bf9\u6bd4 \u3002 \u5982\u4f55 \u8861\u91cf \u8bef\u5dee \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u6709 \u5f88\u591a \u9700\u8981 \u8003\u8651 \u7684 \uff0c \u6bd4\u5982 \u6bc1\u4f24 \u9762\u79ef \u3001 \u6bc1\u4f24 \u6df1\u5ea6 \u3002","title":"To Do"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss_1","text":"\u6ca1\u6709 \u6743\u9650 \u3002 \u3002 \u3002 = =","title":"\u5728 \u670d\u52a1\u5668 \u4e0a \u8fd0\u884c OpenRadioss"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss_2","text":"","title":"OpenRadioss \u4e8c\u6b21\u5f00\u53d1"},{"location":"OpenRadioss/use_OpenRadioss_linux/#read_material_modelsf","text":"\u8fd9 \u6bb5 \u4ee3\u7801 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a Fortran \u7684 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f READ _ MATERIAL _ MODELS \uff0c \u5176 \u4e3b\u8981 \u529f\u80fd \u662f \u7ba1\u7406 \u4e0e \u6750\u6599 \u6a21\u578b \u76f8\u5173 \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5305\u62ec \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \uff08 Constitutive Laws \uff09 \uff1a / MAT \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \uff08 Equations of State \uff09 \uff1a / EOS \u5931\u6548 \u6a21\u578b \uff08 Failure models \uff09 \uff1a / FAIL \u7c98\u6027 \u6a21\u578b \uff08 Viscosity \uff09 \uff1a / VISC \u70ed \u53c2\u6570 \uff08 Thermal parameters \uff09 \uff1a / HEAT \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u5165 \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e BUFMAT \uff1a \u6750\u6599 \u6570\u636e \u7684 \u7f13\u5b58 \u533a BUFLEN \uff1a \u7f13\u5b58 \u533a \u7684 \u957f\u5ea6 IPM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u6574\u578b \u6570\u7ec4 PM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u5b9e\u578b \u6570\u7ec4 UNITAB \uff1a \u5355\u4f4d \u5236\u8868 MULTI _ FVM \uff1a \u591a\u91cd \u6709\u9650 \u4f53\u79ef \u6cd5 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 MAXEOS \uff1a \u6700\u5927 \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u6570 FAILWAVE \uff1a \u5931\u6548 \u6ce2 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NLOC _ DMG \uff1a \u975e \u5c40\u90e8 \u635f\u4f24 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 LSUBMODEL \uff1a \u5b50 \u6a21\u578b \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 TABLE \uff1a \u8868 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NPC \uff1a \u6570\u7ec4 NPC \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u51fa \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u8fd8 \u8c03\u7528 \u4e86 \u5176\u4ed6 \u4e00\u4e9b \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \uff0c \u4f8b\u5982 HM _ READ _ MAT \u3001 HM _ READ _ EOS \u3001 HM _ READ _ FAIL \u3001 HM _ READ _ VISC \u3001 HM _ READ _ LEAK \u3001 READ _ ALE _ MAT \u3001 READ _ EULER _ MAT \u3001 FILL _ BUFFER _ 51 _ 0 \u3001 HM _ READ _ THERM \u3001 HM _ READ _ THERM _ STRESS \u548c HM _ READ _ NONLOCAL \u7b49 \uff0c \u7528\u4e8e \u8bfb\u53d6 \u4e0d\u540c \u7c7b\u578b \u7684 \u6750\u6599 \u6a21\u578b \u6570\u636e \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8003\u8651 \u5206\u6790 HM _ READ _ MAT \u7a0b\u5e8f \uff0c \u5206\u6790 \u8f6f\u4ef6 \u662f \u5982\u4f55 \u4f5c \u7684 \u3002","title":"READ _ MATERIAL _ MODELS . F"},{"location":"OpenRadioss/use_OpenRadioss_linux/#hm_read_matf","text":"\u8fd9\u662f \u7528\u4e8e \u8bfb\u53d6 \u6709\u9650 \u6709\u9650\u5143 \u5206\u6790 \u8f6f\u4ef6 \u4e2d \u7684 \u6750\u6599 \u6a21\u578b \u5b9a\u4e49 \u7684 \u4ee3\u7801 \u3002 \u5b83 \u5b9a\u4e49 \u4e86 \u9605\u8bfb \u6750\u6599 \u6a21\u578b \u6240 \u9700 \u7684 \u5404\u79cd \u6a21\u5757 \u3001 \u53c2\u6570 \u548c \u516c\u5171 \u5757 \u3002 \u5176\u4e2d \u5305\u62ec \u6750\u6599 \u5b9a\u5f8b \u6807\u7b7e \u3001 \u6750\u6599 \u53c2\u6570 \u3001 \u5355\u4f4d \u7b49 \u3002 \u4e3b \u4f8b\u7a0b \u662f HM _ READ _ MAT \u3002 \u5b83 \u5faa\u73af \u904d\u5386 \u6a21\u578b \u4e2d \u5b9a\u4e49 \u7684 \u6bcf\u79cd \u6750\u6599 ( HM _ NUMMAT ) \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u6750\u6599 \uff0c \u5b83 \u6839\u636e \u6750\u6599 \u5b9a\u5f8b \u5173\u952e \u5173\u952e\u5b57 \uff08 MAT00 \u3001 MAT01 \u7b49 \uff09 \u8c03\u7528 \u7279\u5b9a \u7684 \u8bfb\u53d6 \u4f8b\u7a0b \u3002 \u8fd9\u4e9b \u8bfb\u53d6 \u4f8b\u7a0b \u4f4d\u4e8e mat \u5b50\u76ee \u76ee\u5f55 \u5b50\u76ee\u5f55 \u4e2d \u7684 \u5355\u72ec \u6587\u4ef6 \u4e2d \u3002 \u8bfb\u53d6 \u4f8b\u7a0b \u89e3\u6790 \u8f93\u5165 \u3001 \u586b\u5145 \u6750\u6599 \u53c2\u6570 \u6570\u7ec4 \u3001 \u8bbe\u7f6e \u6750\u6599 \u6240 \u9700 \u6570\u636e \u7684 \u6807\u5fd7 \uff0c \u5e76 \u5b58\u50a8 \u6750\u6599 ID \u3001 \u5b9a\u5f8b \u7c7b\u578b \u3001 \u5e94\u53d8 \u7387 \u8bbe\u7f6e \u7b49 \u5185\u5bb9 \u3002 \u8bfb\u53d6 \u6750\u6599 \u540e \uff0c \u5b83\u4f1a \u8fdb\u884c \u4e00\u4e9b \u5904\u7406 \u540e\u5904\u7406 \uff0c \u4f8b\u5982 \u8ba1\u7b97 \u6d3e\u751f \u503c \uff08 \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf \uff09 \u3001 \u68c0\u67e5 \u91cd\u590d ID \u4ee5\u53ca \u8ba1\u7b97 \u8f93\u51fa \u6240 \u9700 \u6570\u91cf \u7684 \u5e73\u65b9 \u65b9\u6839 \u5e73\u65b9\u6839 \u3002 \u6bcf\u79cd \u6750\u6599 \u7684 \u5c5e\u6027 \u5b58\u50a8 \u5728 MAT _ PARAM \u6570\u7ec4 \u548c \u5404\u79cd \u5176\u4ed6 \u516c\u5171 \u5757 \u4e2d \u3002 \u603b\u4e4b \uff0c \u5b83 \u5faa\u73af \u904d\u5386 \u6750\u6599 \uff0c \u8c03\u7528 \u7279\u5b9a \u4e8e \u5b9a\u5f8b \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5e76 \u5c06 \u6240\u6709 \u6750\u6599 \u6570\u636e \u6536\u96c6 \u5230 \u53c2\u6570 \u6570\u7ec4 \u548c \u901a\u7528 \u5757 \u4e2d \uff0c \u4ee5\u4fbf \u7a0d\u540e \u5728 FEA \u5206\u6790 \u4e2d \u4f7f\u7528 \u3002 \u5173\u952e \u90e8\u5206 \u662f \u6a21\u5757 \u6a21\u5757\u5316 \u6cd5\u5219 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \u548c \u7528\u4e8e \u4fdd\u5b58 \u6750\u6599 \u9053\u5177 \u7684 \u4e2d\u592e MAT _ PARAM \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u56e0\u6b64 \uff0c \u60f3\u8981 \u5b9a\u4e49 \u5168\u65b0 \u7684 \u6750\u6599 \uff0c \u6240\u8981 \u505a \u7684 \u4e8b\u60c5 \u662f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 MATxxx \u6587\u4ef6 \u3002","title":"HM _ READ _ MAT . F"},{"location":"OpenRadioss/use_OpenRadioss_linux/#radioss","text":"","title":"Radioss \u4e2d \u6750\u6599 \u672c\u6784"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_11","text":"Description Model Name Keyword / MAT Law # \u7a7a \u6750\u6599 Void / VOID 0 \u7ebf \u5f39\u6027 Elastic ( Hooke ) / ELAST 1 \u8d85 \u5f39\u6027 Tabulated Hyperelastic n / a 69 \u8d85 \u5f39\u6027 Ogden Formulation n / a 82 #### \u5404\u9879 \u540c\u6027 \u5851\u6027 \u5f39\u5851\u6027 LAW 2 / 36 #### \u5176\u4ed6 #### \u7206\u70b8 Description Model Name Keyword / MAT Law # ----------- ----------- --- --- Detonation driven Jones Wilkins Lee / JEL 5 Hydrodynamics Lee - Tarver / LEE - TARVER 41 Multi - materials Soild , liquid , gas and explosives / MULTIMAT 51 #### \u5931\u6548 \u6a21\u578b \u2014 \u2014 / FAIL / Tuler - Butcher \u9ad8\u901f \u78b0\u649e \u5931\u6548 ### \u4f8b\u5b50 \u2014 \u2014 / MAT / LAW1 \u6216 / MAT / ELAST : \u5f39\u6027 \u6750\u6599 * LAW1 \u4f7f\u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5bf9 \u540c\u6027 \u5404\u5411\u540c\u6027 \uff0c \u7ebf \u5f39\u6027 \u6750\u6599 \u8fdb\u884c \u5efa\u6a21 * \u53ef \u7528\u4e8e \u6746 \uff0c \u6881 \uff0c \u58f3 \u4ee5\u53ca \u5b9e\u4f53 solids * \u9002\u7528 \u4e8e \u8fde\u63a5 \u521a\u4f53 * \u4e0d \u9002\u7528 \u5f62\u53d8 \u5927 \u7684 \u6784\u4ef6 \u5851\u6027 \u5f39\u5851\u6027 \u5e94\u529b \u2014 \u2014 \u5e94\u53d8 \u66f2\u7ebf \u771f\u5b9e \u5e94\u529b \u5f62\u53d8 * \u771f\u5b9e \u5e94\u529b \uff1a \u8003\u8651 \u5f53\u524d \u6216 \u771f\u5b9e \u622a\u9762 \u6a2a\u622a\u9762 \u79ef $ A _ { true } $ \u7684 \u5e94\u529b $ $ \\ sigma _ { true } = \\ frac { P _ x } { A _ { true } } $ $ * \u5728 \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u8303\u56f4 \u5185 \uff0c \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u622a\u9762 \u6a2a\u622a\u9762 \u79ef \u6c38\u4e45 \u51cf\u5c0f * \u7ee7\u7eed \u4f7f\u7528 \u5de5\u7a0b \u5e94\u529b \u4e0d\u518d \u51c6\u786e #### MAT1 \u5b9a\u4e49 \u65b9\u5f0f \u8fd9\u4e2a \u5173\u952e \u5173\u952e\u8bcd \u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u540c\u6027 \u5404\u5411\u540c\u6027 \u7684 \u7ebf \u5f39\u6027 \u6750\u6599 \u3002 \u8fd9\u4e2a \u5b9a\u5f8b \u8868\u793a \u5e94\u529b \u548c \u5e94\u53d8 \u4e4b\u95f4 \u7684 \u7ebf\u6027 \u5173\u7cfb \u6027\u5173\u7cfb \u7ebf\u6027\u5173\u7cfb \u3002 \u5b83 \u53ef \u7528\u4e8e \u6841\u67b6 \uff0c \u6881 ( \u4ec5 3 \u578b ) \uff0c \u58f3 \u548c \u5b9e\u4f53 \u5143\u4ef6 \u3002 \u683c\u5f0f \u5b9a\u4e49 \u4f8b\u5b50 \u539f\u7406 \uff1a \u8be5 \u6750\u6599 \u9002\u7528 \u4e8e \u7eaf\u7cb9 \u7684 \u5f39\u6027 \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u6027\u80fd \u53ea \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4e24\u4e2a \u56e0\u7d20 \uff1a \u6a21\u91cf \u6768\u6c0f\u6a21 \u6768\u6c0f\u6a21\u91cf : $ E $ \u6cca\u677e\u6bd4 : $ \\ nu $ \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf : ( \u53ef \u8ba1\u7b97 ) $ $ G = \\ frac { E } { 2 ( 1 + \\ nu ) } $ $ \u5e94\u529b \u5e94\u53d8 \u5173\u7cfb $ $ \\ begin { bmatrix } \\ epsilon _ { 11 } \\ \\ epsilon _ { 22 } \\ \\ epsilon _ { 33 } \\ \\ gamma _ { 23 } \\ \\ gamma _ { 31 } \\ \\ gamma _ { 12 } \\ end { bmatrix } = \\ frac { 1 } { E } \\ begin { bmatrix } 1 &- \\ nu &- \\ nu & 0 & 0 & 0 \\ - \\ nu & 1 &- \\ nu & 0 & 0 & 0 \\ - \\ nu &- \\ nu & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 & 0 \\ 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 \\ 0 & 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) \\ end { bmatrix } \\ begin { bmatrix } \\ sigma _ { 11 } \\ \\ sigma _ { 22 } \\ \\ sigma _ { 33 } \\ \\ sigma _ { 23 } \\ \\ sigma _ { 31 } \\ \\ sigma _ { 12 } \\ end { bmatrix } $ $ \u5bc6\u5ea6 \u503c \u901a\u5e38 \u7528\u4e8e \u663e\u5f0f \u6a21\u62df \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4e8e \u9759\u6001 \u9690\u5f0f \u6a21\u62df \uff0c \u4ee5\u4fbf \u5728 \u62df \u9759\u6001 \u5206\u6790 \u4e2d \u8fbe\u5230 \u66f4\u597d \u7684 \u6536\u655b \u6536\u655b\u6027 \u3002 \u5f53 \u901a\u8fc7 \u58f3\u4f53 \u539a\u5ea6 \u7684 \u79ef\u5206 \u70b9 \u4e2a\u6570 \u4e0d\u540c \u540c\u4e8e \u4e0d\u540c\u4e8e NP = 1 ( \u819c ) \u65f6 \uff0c \u5bf9 LAW1 \u548c \u58f3 \u5355\u5143 ( / PROP / TYPE1 ( shell ) ) \u91c7\u7528 \u5168\u5c40 \u79ef\u5206 \u5206\u6cd5 \u79ef\u5206\u6cd5 \u3002 \u5931\u6548 \u6a21\u578b \u5728 \u5168\u5c40 \u96c6\u6210 \u7684 \u60c5\u51b5 \u4e0b \u4e0d\u53ef \u7528 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u5177\u6709 \u5f88 \u9ad8 \u5c48\u670d \u5e94\u529b \u5c48\u670d\u5e94\u529b \u7684 LAW2 \u548c LAW27 \u53ef\u4ee5 \u4f5c\u4e3a LAW1 \u7684 \u66ff\u4ee3 \u66ff\u4ee3\u54c1 \u3002 #### MAT1 \u4ee3\u7801 \u89e3\u8bfb \u603b\u4f53 \u6846\u67b6 \u662f \u83b7\u53d6 \u8f93\u5165 CALL HM _ OPTION _ IS _ ENCRYPTED ( IS _ ENCRYPTED ) CALL HM _ GET _ FLOATV ( ' MAT _ RHO ' , RHO0 , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' Refer _ Rho ' , RHOR , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ E ' , YOUNG , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ NU ' , ANU , IS _ AVAILABLE , LSUBMODEL , UNITAB ) \u8ba1\u7b97 \u53c2\u6570 IF ( RHOR = = ZERO ) RHOR = RHO0 C IF ( YOUNG < = ZERO ) THEN CALL ANCMSG ( MSGID = 683 , . MSGTYPE = MSGERROR , . ANMODE = ANINFO , . I1 = ID , . C1 = TITR , . C2 = ' YOUNG ' ' S MODULUS ' ) ENDIF IF ( ANU = = HALF ) ANU = ZEP499 C G = YOUNG / ( TWO ( ONE + ANU ) ) C0 = ZERO C1 = YOUNG / ( THREE ( ONE - TWO ANU ) ) E0 = ZERO E1MN2 = YOUNG / ( ONE - ANU 2 ) EN1N2 = ANU E1MN2 SDSP = SQRT ( YOUNG / MAX ( RHOR , EM20 ) ) ISRATE = 0 * \u4fdd\u5b58 \u53c2\u6570 PM ( 1 ) = RHOR PM ( 20 ) = YOUNG PM ( 21 ) = ANU PM ( 22 ) = G PM ( 23 ) = E0 PM ( 24 ) = E1MN2 PM ( 25 ) = EN1N2 PM ( 26 ) = FIVE _ OVER _ 6 PM ( 27 ) = SDSP PM ( 31 ) = C0 PM ( 32 ) = C1 PM ( 89 ) = RHO0 \u5f02\u5e38 \u5904\u7406 c ----------------- CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" TOTAL \" ) IF ( ANU > 0.49 ) THEN CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" INCOMPRESSIBLE \" ) ELSE CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" COMPRESSIBLE \" ) END IF CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" HOOK \" ) c ----------------- WRITE ( IOUT , 1001 ) TRIM ( TITR ) , ID , 01 WRITE ( IOUT , 1000 ) IF ( IS _ ENCRYPTED ) THEN WRITE ( IOUT , ' ( 5X , A , / / ) ' ) ' CONFIDENTIAL DATA ' ELSE WRITE ( IOUT , 1100 ) RHO0 WRITE ( IOUT , 1300 ) YOUNG , ANU , G ENDIF C IPM ( 252 ) = 2 PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) C ----------- \u63a7\u5236 \u8f93\u51fa C ----------- RETURN 1000 FORMAT ( & 5X , ' ELASTIC MATERIAL ( / MAT / LAW01 ) ' , / , & 5X , ' ----------------------------- ' ) 1001 FORMAT ( & 5X , A , / , & 5X , ' MATERIAL NUMBER . . . . . . . . . . . . = ' , I10 / , & 5X , ' MATERIAL LAW . . . . . . . . . . . . . . = ' , I10 / ) 1100 FORMAT ( & 5X , ' INITIAL DENSITY . . . . . . . . . . . . = ' , 1PG20.13 / ) 1300 FORMAT ( & 5X , ' YOUNG ' ' S MODULUS . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' POISSON ' ' S RATIO . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' SHEAR MODULUS . . . . . . . . . . . . . = ' , E12.4 / / ) \u5728 \u6570\u636e \u91cc \u6700 \u91cd\u8981 \u7684 \u662f PM \u4ee5\u53ca IPM \uff0c \u5206\u522b \u5b58\u50a8 \u4e86 \u6750\u6599 \u53c2\u6570 \u548c \u6750\u6599 ID \u3002 \u4f46\u662f \u6682\u65f6 \u6ca1\u6709 \u76f8\u5173 \u6587\u6863 \u8bf4\u660e \u5176 \u5177\u4f53 \u4f53\u5185 \u5185\u5bb9 \u5177\u4f53\u5185\u5bb9 \u3002 \u63d0\u53d6 mat \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u6240\u6709 PM \u53d8\u91cf \u7684 \u4fe1\u606f \u6c47\u603b \u5982\u4e0b : PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHO0 PM ( 01 ) = RHOR PM ( 1 ) = RHO0 ! RHOR PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 1 ) = RHO0 PM ( 2 ) = GS PM ( 8 ) = ISRATE PM ( 9 ) = TWO * PI * FCUT PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = ASRATE PM ( 12 ) = SQRT ( MAX ( ZERO , G0 ) ) ! done by default in lecmuser . F for law34 PM ( 17 ) = MU PM ( 17 ) = AMU PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = MW PM ( 20 ) = STIFF ! Stiffness contact PM ( 20 ) = CMAX / TWO PM ( 20 ) = YMC PM ( 20 ) = NMAT + EM01 PM ( 20 ) = YOUNG PM ( 20 ) = NBMAT + EM01 PM ( 20 ) = MAX ( E11 , E22 , E33 ) PM ( 20 ) = YOUNG PM ( 20 ) = E PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = YOUNG PM ( 21 ) = ANUC PM ( 21 ) = ZERO ! NU PM ( 21 ) = NU PM ( 21 ) = ANU PM ( 21 ) = ANU PM ( 21 ) = NU PM ( 21 ) = SQRT ( N12 * N21 ) PM ( 21 ) = NUG PM ( 21 ) = NU PM ( 21 ) = CPA PM ( 21 ) = THIRD * ( N12 + N31 + N23 ) PM ( 22 ) = G0 PM ( 22 ) = YMC / ( TWO * ( ONE + ANUC ) ) PM ( 22 ) = GS ! ! TWO * G PM ( 22 ) = G PM ( 22 ) = G PM ( 22 ) = STIFF * HALF ! GMAX PM ( 22 ) = CPB PM ( 22 ) = G PM ( 22 ) = THIRD * ( G12 + G23 + G31 ) PM ( 22 ) = GS PM ( 22 ) = MAX ( G12 , G23 , G31 ) PM ( 23 ) = YOUNG PM ( 23 ) = E0 PM ( 23 ) = CPC PM ( 23 ) = EM01 * STIFFAVG ! Hourglass stiffness for QEPH PM ( 23 ) = E0 PM ( 23 ) = ZERO ! E0 PM ( 23 ) = E0 PM ( 23 ) = E0 PM ( 24 ) = PM ( 20 ) PM ( 24 ) = NU * YOUNG / ( ONE - NU * NU ) PM ( 24 ) = YOUNG / ( ONE - NU * * 2 ) PM ( 24 ) = CMAX / ( ONE - NU * * 2 ) / TWO PM ( 24 ) = PM ( 25 ) + TWO * PM ( 22 ) PM ( 24 ) = E1MN2 PM ( 24 ) = STIFF ! Stiffness for time step computation PM ( 24 ) = D2 PM ( 24 ) = YOUNG / ( ONE - NUG * * 2 ) PM ( 24 ) = E1MN2 PM ( 24 ) = VIS PM ( 24 ) = PM ( 20 ) PM ( 24 ) = CPD PM ( 25 ) = GAM PM ( 25 ) = D3 PM ( 25 ) = NR PM ( 25 ) = EN1N2 PM ( 25 ) = CPE PM ( 25 ) = YMC * ANUC / ( ONE + ANUC ) / ( ONE - TWO * ANUC ) PM ( 25 ) = 1 . PM ( 25 ) = EN1N2 PM ( 25 ) = PM ( 21 ) * PM ( 24 ) PM ( 26 ) = FIVE PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CPF PM ( 26 ) = PM ( 26 ) * ONE _ OVER _ 6 PM ( 26 ) = NT PM ( 26 ) = THET PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CB PM ( 26 ) = MAX ( ZERO , DSUP1 ) PM ( 27 ) = SQRT ( A11 / RHO0 ) ! sound speed estimation PM ( 27 ) = SQRT ( YOUNG / RHO0 ) ! Sound speed PM ( 27 ) = D PM ( 27 ) = SSP PM ( 27 ) = SDSP PM ( 27 ) = SDSP PM ( 27 ) = CN PM ( 27 ) = SQRT ( A1 / RHO0 ) ! sound speed estimation PM ( 27 ) = SSP PM ( 27 ) = VCRT2 PM ( 27 ) = SQRT ( E / MAX ( RHOR , EM20 ) ) PM ( 27 ) = APY PM ( 27 ) = SQRT ( ( BULK + FOUR _ OVER _ 3 * G ) / RHO0 ) ! sound speed estimation PM ( 27 ) = MAXVAL ( SSP ( 1 : 4 ) ) PM ( 27 ) = IDF PM ( 27 ) = R _ IGC1 PM ( 27 ) = SQRT ( E / RHO0 ) ! Sound speed for beam elements PM ( 27 ) = VMAX PM ( 27 ) = D PM ( 28 ) = MAX ( ONEP0001 , FMAX ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = GAMRP PM ( 28 ) = ONE - HT / YMC PM ( 28 ) = VB PM ( 28 ) = MAX ( ONEP0001 , ( SIGMX / CA ) * * 2 ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = NR PM ( 29 ) = - ANU * PM ( 28 ) PM ( 29 ) = - NU * PM ( 28 ) PM ( 29 ) = GAM1 PM ( 29 ) = ROK PM ( 29 ) = NT PM ( 29 ) = TM0 PM ( 30 ) = ONE / G PM ( 30 ) = IDF PM ( 30 ) = ONE / G PM ( 30 ) = E00 PM ( 30 ) = RO0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = ZERO ! C0 PM ( 31 ) = C0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C2 * MU * * 2 + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = C0 PM ( 31 ) = P0 + PSHIFT PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = RHOR * C * * 2 PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = BULK PM ( 32 ) = BULK PM ( 32 ) = C1 PM ( 32 ) = GS PM ( 32 ) = C1 PM ( 33 ) = ZERO PM ( 33 ) = C2 PM ( 33 ) = E11 PM ( 33 ) = SIGT1 PM ( 33 ) = E11 PM ( 33 ) = C PM ( 33 ) = C2 PM ( 33 ) = A PM ( 33 ) = FC PM ( 33 ) = RE0 / RHO0 PM ( 34 ) = E22 PM ( 34 ) = E22 PM ( 34 ) = SIGT2 PM ( 34 ) = ZERO PM ( 34 ) = B PM ( 34 ) = - HALF * SSP2 / CARL * * 2 PM ( 34 ) = C3 PM ( 34 ) = S PM ( 34 ) = C3 PM ( 34 ) = RT PM ( 35 ) = PCC PM ( 35 ) = RC PM ( 35 ) = N12 PM ( 35 ) = N12 PM ( 35 ) = C4 PM ( 35 ) = BUNL PM ( 35 ) = C4 PM ( 35 ) = XKL PM ( 35 ) = R1 PM ( 35 ) = SIGT3 PM ( 35 ) = ZERO PM ( 36 ) = XMUMX PM ( 36 ) = ZERO PM ( 36 ) = N21 PM ( 36 ) = C5 PM ( 36 ) = N21 PM ( 36 ) = GAM0 PM ( 36 ) = C5 PM ( 36 ) = RT * ( TWO * RC - RT ) PM ( 36 ) = R2 PM ( 36 ) = XLAMB PM ( 36 ) = EFIB PM ( 37 ) = - INFINITY PM ( 37 ) = G12 PM ( 37 ) = EPSFT PM ( 37 ) = - PSH PM ( 37 ) = PMIN PM ( 37 ) = PMIN PM ( 37 ) = ( RC - RT ) * * 2 PM ( 37 ) = EF PM ( 37 ) = G12 PM ( 37 ) = PMIN PM ( 37 ) = ATOM PM ( 38 ) = UPARAM ( 42 ) ! VDET PM ( 38 ) = G23 PM ( 38 ) = AA PM ( 38 ) = CA PM ( 38 ) = EPSFC PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = A0 PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = G23 PM ( 38 ) = EFIB PM ( 38 ) = VDET PM ( 38 ) = SIG0 PM ( 39 ) = CB PM ( 39 ) = ALPHA PM ( 39 ) = CB PM ( 39 ) = G31 PM ( 39 ) = A1 PM ( 39 ) = CB PM ( 39 ) = BC PM ( 39 ) = G31 PM ( 39 ) = CE PM ( 39 ) = PCJ PM ( 40 ) = A2 PM ( 40 ) = BT PM ( 40 ) = ONE / TSCAL PM ( 40 ) = CN PM ( 40 ) = PM ( 1 ) * D * * 2 / PCJ PM ( 40 ) = IFLAG PM ( 40 ) = CN PM ( 40 ) = CN PM ( 40 ) = D11 PM ( 41 ) = EPSM PM ( 41 ) = D12 PM ( 41 ) = IBFRAC PM ( 41 ) = TIMESCAL PM ( 41 ) = EPSM PM ( 41 ) = AMX PM ( 41 ) = AC PM ( 41 ) = EP20 ! EPSM PM ( 41 ) = WPLAMX PM ( 41 ) = EPSM PM ( 41 ) = WPLAMX PM ( 42 ) = QOPT PM ( 42 ) = IOFF PM ( 42 ) = SIGM PM ( 42 ) = D13 PM ( 42 ) = IOFF PM ( 42 ) = TSCAL PM ( 42 ) = FAC _ Y PM ( 42 ) = SIGM PM ( 42 ) = FT * FC / YMC PM ( 42 ) = SIGM PM ( 43 ) = CC PM ( 43 ) = CM PM ( 43 ) = HBP PM ( 43 ) = C0 PM ( 43 ) = CC PM ( 43 ) = D22 PM ( 43 ) = CB1 PM ( 43 ) = CC PM ( 43 ) = PEXT PM ( 43 ) = ESCAL PM ( 44 ) = EPS0 PM ( 44 ) = DE PM ( 44 ) = PSTAR PM ( 44 ) = EPS0 PM ( 44 ) = D23 PM ( 44 ) = CB2 PM ( 44 ) = DE PM ( 44 ) = KSCAL PM ( 44 ) = BULK PM ( 44 ) = RCOMP PM ( 44 ) = ALI PM ( 44 ) = EPS0 PM ( 45 ) = W PM ( 45 ) = ALF PM ( 45 ) = CH PM ( 45 ) = BUNL PM ( 45 ) = CM PM ( 45 ) = D33 PM ( 45 ) = EPSL PM ( 45 ) = CM PM ( 45 ) = A11 PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = SSL PM ( 46 ) = XMUMX PM ( 46 ) = G12 PM ( 46 ) = A22 PM ( 46 ) = TMELT PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = VKY PM ( 46 ) = HL PM ( 47 ) = TMAX PM ( 47 ) = A * AK PM ( 47 ) = CN PM ( 47 ) = ZERO ! MUMIN PM ( 47 ) = CN PM ( 47 ) = EPSMAX PM ( 47 ) = TMAX PM ( 47 ) = YLDL PM ( 47 ) = A1122 PM ( 47 ) = G23 PM ( 48 ) = E PM ( 48 ) = A PM ( 48 ) = G31 PM ( 48 ) = A12 PM ( 48 ) = IFORM PM ( 48 ) = NR PM ( 48 ) = CS PM ( 48 ) = EL PM ( 48 ) = HV0 PM ( 49 ) = A PM ( 49 ) = EXPO PM ( 49 ) = FMAX PM ( 49 ) = GAM0M PM ( 49 ) = ICC PM ( 49 ) = ICC PM ( 49 ) = SSP PM ( 49 ) = FMAX PM ( 49 ) = C0 PM ( 49 ) = NT PM ( 50 ) = AM PM ( 50 ) = B PM ( 50 ) = ZERO PM ( 50 ) = YMS PM ( 50 ) = IDF PM ( 50 ) = CC PM ( 50 ) = ITYP PM ( 50 ) = ONE PM ( 51 ) = SIG PM ( 51 ) = MT PM ( 51 ) = EPS0 PM ( 51 ) = Y0S PM ( 51 ) = INOD ! USR2SYS APRES FSDCOD , IF ( IFORM8 = = 2 ) INOD = USR2SYS ( INOD , ITABM1 , MESS ) PM ( 51 ) = GAME PM ( 51 ) = C3 PM ( 51 ) = YP1 PM ( 52 ) = GP PM ( 52 ) = ONEP414 * PM ( 17 ) * PM ( 1 ) * SSP PM ( 52 ) = ICC PM ( 52 ) = C4 PM ( 52 ) = TM PM ( 52 ) = XKMAX PM ( 52 ) = ONEP414 * MU * PM ( 1 ) * SDSP PM ( 52 ) = ONEP414 * AMU * PM ( 1 ) * SDSP PM ( 52 ) = ETS PM ( 53 ) = ICC PM ( 53 ) = F1 PM ( 53 ) = ONE / CP PM ( 53 ) = DSP PM ( 53 ) = ARM1 PM ( 53 ) = AREAMIN1 PM ( 53 ) = ZERO PM ( 54 ) = E0H PM ( 54 ) = F2 PM ( 54 ) = ARM2 PM ( 54 ) = ZERO PM ( 54 ) = F1 PM ( 54 ) = ONE / ( AREAMIN2 - AREAMIN1 ) PM ( 54 ) = TI PM ( 55 ) = FISOKIN PM ( 55 ) = RP3 PM ( 55 ) = F3 PM ( 55 ) = F2 PM ( 55 ) = ARM3 PM ( 56 ) = F4 PM ( 56 ) = ONE ! PM ( 56 ) = POROSITY PM ( 56 ) = VJ PM ( 56 ) = F11 PM ( 57 ) = F5 PM ( 57 ) = C1 PM ( 57 ) = ICAP + EM01 PM ( 57 ) = F22 PM ( 58 ) = C2 PM ( 58 ) = F33 PM ( 58 ) = F6 PM ( 58 ) = ONE - HVFAC PM ( 59 ) = F11 PM ( 59 ) = ZERO ! PM ( 59 ) = F12 PM ( 59 ) = F1 PM ( 59 ) = C3 PM ( 59 ) = ALPHA PM ( 60 ) = F22 PM ( 60 ) = BETA PM ( 60 ) = EPST1 PM ( 60 ) = D1 PM ( 60 ) = EPST1 PM ( 60 ) = F2 PM ( 61 ) = TMAX PM ( 61 ) = ALPHAP PM ( 61 ) = EPST2 PM ( 61 ) = EPST2 PM ( 61 ) = F33 PM ( 61 ) = F4 PM ( 62 ) = F5 PM ( 62 ) = F44 PM ( 62 ) = EPSM1 PM ( 62 ) = EPSM1 PM ( 63 ) = F11 PM ( 63 ) = EPSM2 PM ( 63 ) = F55 PM ( 63 ) = EPSM2 PM ( 64 ) = DMAX1 PM ( 64 ) = F22 PM ( 64 ) = DMAX PM ( 64 ) = F66 PM ( 65 ) = SHRDAM PM ( 65 ) = DMAX2 PM ( 65 ) = F12 PM ( 65 ) = F44 PM ( 66 ) = EPSF1 PM ( 66 ) = F23 PM ( 66 ) = SHRMAX PM ( 66 ) = F55 PM ( 67 ) = F13 PM ( 67 ) = SHRDMAX PM ( 67 ) = F12 PM ( 67 ) = EPSF2 PM ( 68 ) = WPLAREF PM ( 68 ) = F23 PM ( 69 ) = SPH PM ( 69 ) = SPH PM ( 69 ) = RCP PM ( 69 ) = C11 PM ( 70 ) = ZERO PM ( 71 ) = JTHE + EM01 PM ( 72 ) = ZERO PM ( 72 ) = ZERO PM ( 73 ) = C22 PM ( 73 ) = C11 PM ( 74 ) = C33 PM ( 74 ) = C22 PM ( 75 ) = AS PM ( 75 ) = C12 PM ( 75 ) = C33 PM ( 76 ) = C23 PM ( 76 ) = BS PM ( 76 ) = C12 PM ( 77 ) = C13 PM ( 77 ) = C23 PM ( 77 ) = CF PM ( 78 ) = T0 PM ( 78 ) = C13 PM ( 78 ) = DELTA PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = DELTA PM ( 79 ) = THREE100 PM ( 80 ) = TMELT PM ( 80 ) = INFINITY PM ( 80 ) = INFINITY PM ( 80 ) = TMELT PM ( 80 ) = TMELT PM ( 80 ) = EP30 PM ( 81 ) = CTM PM ( 81 ) = CTM PM ( 81 ) = SIGT1 PM ( 82 ) = SIGT2 PM ( 82 ) = CT1 PM ( 83 ) = CT2 PM ( 83 ) = SIGT3 PM ( 84 ) = CT3 PM ( 84 ) = EPSFT PM ( 85 ) = SK PM ( 85 ) = EPSFC PM ( 85 ) = SK PM ( 86 ) = SE PM ( 86 ) = SE PM ( 87 ) = RK0 / RHO0 PM ( 87 ) = RK0 / RHO0 PM ( 88 ) = ZERO PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 91 ) = RHO10 PM ( 91 ) = MAXVAL ( RHO0 _ ( 1 : 4 ) ) PM ( 95 ) = RPR PM ( 95 ) = RPR PM ( 97 ) = RHOC PM ( 98 ) = ALP0 PM ( 98 ) = EPSF1 PM ( 98 ) = WPLAREF PM ( 99 ) = DC + ONE PM ( 99 ) = EPSF2 PM ( 100 ) = BULK PM ( 100 ) = RBULK PM ( 100 ) = RBULK ! PARMAT ( 1 ) PM ( 100 ) = E PM ( 100 ) = C1 PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = BULK PM ( 104 ) = P0 + PSHIFT PM ( 104 ) = C0 - PSH PM ( 104 ) = C0 PM ( 104 ) = P0 PM ( 104 ) = C0 - PSH PM ( 105 ) = GS / ( BULK + TWO _ THIRD * GS ) PM ( 105 ) = GS / ( RBULK + TWO _ THIRD * G ) PM ( 105 ) = DMIN / DMAX / DMAX PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = DMIN / C1 * * 2 PM ( 105 ) = TWO * PM ( 22 ) / ( BULK + FOUR _ OVER _ 3 * PM ( 22 ) ) ! = ( 1 - 2 * Nuc ) / ( 1 - Nuc ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = TWO * G0 / ( BULK + FOUR _ OVER _ 3 * G0 ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) ! TWO * G / ( BULK + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * GS / ( RBULK + FOUR _ OVER _ 3 * GS ) PM ( 105 ) = MIN ( D11 * D22 - D12 * * 2 , D22 * D33 - D23 * * 2 , D11 * D33 - D13 * * 2 ) / C1 * * 2 PM ( 141 ) = SIGYT1 PM ( 141 ) = SIGYT1 PM ( 142 ) = CBT1 PM ( 142 ) = SIGYT2 PM ( 143 ) = SIGYC1 PM ( 143 ) = CNT1 PM ( 144 ) = SIGYC2 PM ( 144 ) = SIGMXT1 PM ( 145 ) = SIGYT12 PM ( 145 ) = CCT1 PM ( 146 ) = SIGYC12 PM ( 146 ) = SIGYT2 PM ( 147 ) = IFLAG PM ( 147 ) = CBT2 PM ( 148 ) = S1 PM ( 148 ) = CNT2 PM ( 149 ) = SIGMXT2 PM ( 149 ) = S2 PM ( 150 ) = C11 PM ( 150 ) = CCT2 PM ( 151 ) = SIGYC1 PM ( 151 ) = C22 PM ( 152 ) = CBC1 PM ( 152 ) = S12 PM ( 153 ) = CNC1 PM ( 154 ) = SIGMXC1 PM ( 155 ) = CCC1 PM ( 156 ) = SIGYC2 PM ( 157 ) = CBC2 PM ( 158 ) = CNC2 PM ( 159 ) = SIGMXC2 PM ( 160 ) = CCC2 PM ( 160 ) = EADD PM ( 161 ) = SIGYT12 PM ( 161 ) = TBEGIN PM ( 162 ) = CBT12 PM ( 162 ) = TEND PM ( 163 ) = REACTION _ RATE PM ( 163 ) = CNT12 PM ( 164 ) = SIGMXT12 PM ( 164 ) = A _ MIL PM ( 165 ) = CCT12 PM ( 165 ) = M _ MIL PM ( 166 ) = EPS1T1 PM ( 166 ) = N _ MIL PM ( 167 ) = EPS2T1 PM ( 167 ) = REACTION _ RATE2 PM ( 168 ) = SIGRST1 PM ( 168 ) = ALPHA _ UNIT PM ( 169 ) = WPLAMXT1 PM ( 170 ) = EPS1T2 PM ( 171 ) = EPS2T2 PM ( 172 ) = SIGRST2 PM ( 173 ) = WPLAMXT2 PM ( 174 ) = EPS1C1 PM ( 175 ) = EPS2C1 PM ( 176 ) = SIGRSC1 PM ( 177 ) = WPLAMXC1 PM ( 178 ) = EPS1C2 PM ( 179 ) = EPS2C2 PM ( 180 ) = SIGRSC2 PM ( 181 ) = WPLAMXC2 PM ( 182 ) = EPS1T12 PM ( 183 ) = EPS2T12 PM ( 184 ) = SIGRST12 PM ( 185 ) = WPLAMXT12 PM ( 186 ) = E33 PM ( 187 ) = IYEILD PM ( 188 ) = RATIO PM ( 189 ) = IMODWP PM ( 191 ) = XK PM ( 192 ) = XK PM ( 192 ) = RHOA PM ( 193 ) = FRAC PM ( 193 ) = XK PM ( 194 ) = AA PM ( 195 ) = BB PM ( 196 ) = TAUX PM ( 197 ) = KK PM ( 198 ) = ICLOS PM ( 199 ) = RHOEXT PM ( 200 ) = EINT _ EXT PM ( 201 ) = INCGAS","title":"\u5404\u5411\u540c\u6027 \u5f39\u6027"},{"location":"OpenRadioss/use_OpenRadioss_windows/","text":"Windows \u4e0b OpenRadioss \u7684 \u4f7f\u7528 \u6d4b\u8bd5 \u5b9e\u4f8b \u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \u7684 \u6a21\u578b \u6587\u4ef6 \u3002 \u5904\u7406 \u6b65\u9aa4 \u6a21\u578b \u521d\u59cb \u521d\u59cb\u5316 starter _ win64 _ sp . exe - i NEON1M11 _ 0000 . rad - nt 8 \u5f15\u64ce \u6c42\u89e3 engine _ win64 _ sp . exe - i NEON1M11 _ 0001 . rad - nt 8 \u8f93\u51fa \u6587\u4ef6 \uff1a NEON1M11A00 { 1 - 17 } \u3002 \u5c06 \u8f93\u51fa \u8f6c\u5316 \u4e3a \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 anim _ to _ vtk _ win64 . exe NEON1M11A017 > view . vtk \u4f7f\u7528 paraview \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 paraview view . vtk \u5e76 \u70b9\u51fb \u5de6\u4e0b \u4e0b\u89d2 \u5de6\u4e0b\u89d2 Properties \u4e2d \u7684 Apply \u3002 \u8fd0\u884c \u7ed3\u679c","title":"OpenRadios \u6709\u9650\u5143 \u4eff\u771f"},{"location":"OpenRadioss/use_OpenRadioss_windows/#windows-openradioss","text":"","title":"Windows \u4e0b OpenRadioss \u7684 \u4f7f\u7528"},{"location":"OpenRadioss/use_OpenRadioss_windows/#_1","text":"\u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \u7684 \u6a21\u578b \u6587\u4ef6 \u3002","title":"\u6d4b\u8bd5 \u5b9e\u4f8b"},{"location":"OpenRadioss/use_OpenRadioss_windows/#_2","text":"\u6a21\u578b \u521d\u59cb \u521d\u59cb\u5316 starter _ win64 _ sp . exe - i NEON1M11 _ 0000 . rad - nt 8 \u5f15\u64ce \u6c42\u89e3 engine _ win64 _ sp . exe - i NEON1M11 _ 0001 . rad - nt 8 \u8f93\u51fa \u6587\u4ef6 \uff1a NEON1M11A00 { 1 - 17 } \u3002 \u5c06 \u8f93\u51fa \u8f6c\u5316 \u4e3a \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 anim _ to _ vtk _ win64 . exe NEON1M11A017 > view . vtk \u4f7f\u7528 paraview \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 paraview view . vtk \u5e76 \u70b9\u51fb \u5de6\u4e0b \u4e0b\u89d2 \u5de6\u4e0b\u89d2 Properties \u4e2d \u7684 Apply \u3002","title":"\u5904\u7406 \u6b65\u9aa4"},{"location":"OpenRadioss/use_OpenRadioss_windows/#_3","text":"","title":"\u8fd0\u884c \u7ed3\u679c"},{"location":"algorithms/control/","text":"\u63a7\u5236 \u63a7\u5236 \u6a21\u5757 \u7b80\u4ecb \u63a7\u5236 \u6a21\u5757 \u8d1f\u8d23 \u751f\u6210 \u63a7\u5236 \u547d\u4ee4 \u6765 \u9a7e\u9a76 \u8f66\u8f86 \u5e76 \u4fdd\u6301 \u5176\u6240 \u9700 \u7684 \u8f68\u8ff9 [ 1 ] \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( Model Predictive Control , MPC ) \u3002 \u7528\u4e8e \u822a\u70b9 \u8ddf\u8e2a \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \u6982\u8ff0 \uff1a PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u6211\u4eec \u81ea\u52a8 \u9a7e\u9a76 \u6d41\u7a0b \u4e2d \u7684 \u57fa\u672c \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u4e4b\u4e00 \u3002 \u5b83 \u8fde\u7eed \u8ba1\u7b97 \u201c \u8bef\u5dee \u201d \u503c \u4f5c\u4e3a \u6240 \u9700 \u8bbe\u5b9a \u70b9 \uff08 \u5728 \u672c\u4f8b \u4e2d\u4e3a \u822a\u8def \u70b9 \uff09 \u4e0e \u5f53\u524d \u8f66\u8f86 \u4f4d\u7f6e \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u3002 \u7ec4\u4ef6 \uff1a \u987e\u540d \u987e\u540d\u601d\u4e49 \uff0c PID \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u4e09\u4e2a \u7ec4\u4ef6 \uff1a \u6bd4\u4f8b \uff08 Proportional , P \uff09 \uff1a \u63d0\u4f9b \u63a7\u5236 \u8f93\u51fa \u4ee5 \u6821\u6b63 \u5f53\u524d \u4f4d\u7f6e \u8bef\u5dee \u3002 \u79ef\u5206 ( Integral , I ) \uff1a \u7ea0\u6b63 \u8fc7\u53bb \u7d2f\u79ef \u7684 \u9519\u8bef \u3002 \u5fae\u5206 \uff08 Derivative , D ) \uff1a \u6839\u636e \u5f53\u524d \u7684 \u53d8\u5316 \u53d8\u5316\u7387 \u6765 \u9884\u6d4b \u548c \u5bf9\u6297 \u672a\u6765 \u7684 \u8bef\u5dee \u8d8b\u52bf \u3002 \u5e94\u7528 \uff1a \u6211\u4eec \u4f7f\u7528 PID \u63a7\u5236 \u63a7\u5236\u5668 \u4e3b\u8981 \u7528\u4e8e \u8def\u70b9 \u8ddf\u8e2a \u3001 \u4fdd\u6301 \u8f66\u9053 \u4f4d\u7f6e \u5e76 \u786e\u4fdd \u8f66\u8f86 \u9075\u5faa \u9884\u5b9a \u8def\u5f84 \u4e14 \u504f\u5dee \u6700\u5c0f \u3002 \u7528\u4e8e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236 \u6982\u8ff0 \uff1a \u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( MPC ) [ 2 ] \u662f \u4e00\u79cd \u5148\u8fdb \u7684 \u63a7\u5236 \u6280\u672f \u63a7\u5236\u6280\u672f \uff0c \u5b83 \u4f7f\u7528 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \u6765 \u9884\u6d4b \u5176 \u5728 \u5b9a\u4e49 \u8303\u56f4 \u5185 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65 \uff0c MPC \u7b97\u6cd5 \u90fd \u4f1a \u8003\u8651 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3001 \u7ea6\u675f \u548c \u6240 \u9700 \u8f68\u8ff9 \uff0c \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \u4ee5 \u627e\u5230 \u6700\u4f73 \u63a7\u5236 \u8f93\u5165 \u3002 \u4e3b\u8981 \u7279\u5f81 \uff1a MPC \u63a7\u5236 \u63a7\u5236\u5668 \u6d89\u53ca \u4e09\u4e2a \u5173\u952e \u529f\u80fd \u6765 \u51b3\u5b9a \u6267\u884c \u54ea\u4e9b \u64cd\u4f5c \u6765 \u63a7\u5236 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \uff1a \u9884\u6d4b \u6a21\u578b \uff1a \u6839\u636e \u8f66\u8f86 \u7684 \u5f53\u524d \u72b6\u6001 \u548c \u6f5c\u5728 \u7684 \u63a7\u5236 \u8f93\u5165 \u6765 \u9884\u6d4b \u8f66\u8f86 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u4f18\u5316 \uff1a \u4e0d\u65ad \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \uff0c \u4ee5 \u786e\u5b9a \u9884\u6d4b \u8303\u56f4 \u5185 \u7684 \u6700\u4f73 \u63a7\u5236 \u64cd\u4f5c \u3002 \u6eda\u52a8 \u4f18\u5316 \u673a\u5236 \uff1a \u4ec5 \u5b9e\u65bd \u4f18\u5316 \u5e8f\u5217 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u52a8\u4f5c \uff0c \u5e76 \u5728 \u4e0b \u4e00\u4e2a \u65f6\u95f4 \u6b65 \u91cd\u65b0 \u8bc4\u4f30 \uff0c \u4ee5 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u6761\u4ef6 \u3002 \u5e94\u7528 \uff1a MPC \u63a7\u5236 \u63a7\u5236\u5668 \u5728 \u9700\u8981 \u7cbe\u786e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u573a\u666f \u4e2d\u5c06 \u53d1\u6325 \u91cd\u8981 \u4f5c\u7528 \uff0c \u7279\u522b \u662f \u5728 \u5177\u6709 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u3001 \u6025\u8f6c \u8f6c\u5f2f \u6025\u8f6c\u5f2f \u548c \u53d8\u5316 \u7684 \u8def\u51b5 \u7684 \u590d\u6742 \u9a7e\u9a76 \u73af\u5883 \u4e2d \u3002 \u901a\u8fc7 \u9884\u6d4b \u672a\u6765 \u72b6\u6001 \u548c \u7ea6\u675f \uff0c \u4e0e \u4f20\u7edf \u63a7\u5236 \u63a7\u5236\u5668 \u76f8\u6bd4 \uff0c MPC \u63d0\u4f9b \u4e86 \u589e\u5f3a \u7684 \u8def\u5f84 \u8ddf\u8e2a \u7cbe\u5ea6 \u548c \u9c81\u68d2\u6027 \u3002 \u5b9e\u65bd \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \uff1a \u7ef4\u62a4 \u548c \u5fae\u8c03 \u73b0\u6709 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u786e\u4fdd \u57fa\u672c \u7684 \u822a\u8def \u70b9 \u8ddf\u8e2a \u529f\u80fd \u3002 \u5f00\u53d1 \u4ee3\u8868 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u96c6\u6210 \u4e0e \u6211\u4eec \u7684 MPC \u7cfb\u7edf \u67b6\u6784 \u517c\u5bb9 \u7684 \u4f18\u5316 \u6c42\u89e3 \u5668 \u3002 \u8bbe\u8ba1 \u548c \u5b9e\u73b0 MPC \u6846\u67b6 \uff0c \u786e\u4fdd \u5176 \u8003\u8651 \u8f66\u8f86 \u7ea6\u675f \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5b9e\u9645 \u6d4b\u8bd5 \u4e2d \u9010\u6b65 \u90e8\u7f72 \u548c \u8bc4\u4f30 MPC \uff0c \u4ece \u4f4e \u590d\u6742 \u590d\u6742\u6027 \u73af\u5883 \u5f00\u59cb \uff0c \u9010\u6b65 \u5347\u7ea7 \u5230 \u66f4\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u573a\u666f \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"\u63a7\u5236"},{"location":"algorithms/control/#_1","text":"","title":"\u63a7\u5236"},{"location":"algorithms/control/#_2","text":"\u63a7\u5236 \u6a21\u5757 \u8d1f\u8d23 \u751f\u6210 \u63a7\u5236 \u547d\u4ee4 \u6765 \u9a7e\u9a76 \u8f66\u8f86 \u5e76 \u4fdd\u6301 \u5176\u6240 \u9700 \u7684 \u8f68\u8ff9 [ 1 ] \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( Model Predictive Control , MPC ) \u3002","title":"\u63a7\u5236 \u6a21\u5757 \u7b80\u4ecb"},{"location":"algorithms/control/#pid","text":"","title":"\u7528\u4e8e \u822a\u70b9 \u8ddf\u8e2a \u7684 PID \u63a7\u5236\u5668"},{"location":"algorithms/control/#_3","text":"PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u6211\u4eec \u81ea\u52a8 \u9a7e\u9a76 \u6d41\u7a0b \u4e2d \u7684 \u57fa\u672c \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u4e4b\u4e00 \u3002 \u5b83 \u8fde\u7eed \u8ba1\u7b97 \u201c \u8bef\u5dee \u201d \u503c \u4f5c\u4e3a \u6240 \u9700 \u8bbe\u5b9a \u70b9 \uff08 \u5728 \u672c\u4f8b \u4e2d\u4e3a \u822a\u8def \u70b9 \uff09 \u4e0e \u5f53\u524d \u8f66\u8f86 \u4f4d\u7f6e \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u3002","title":"\u6982\u8ff0 \uff1a"},{"location":"algorithms/control/#_4","text":"\u987e\u540d \u987e\u540d\u601d\u4e49 \uff0c PID \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u4e09\u4e2a \u7ec4\u4ef6 \uff1a \u6bd4\u4f8b \uff08 Proportional , P \uff09 \uff1a \u63d0\u4f9b \u63a7\u5236 \u8f93\u51fa \u4ee5 \u6821\u6b63 \u5f53\u524d \u4f4d\u7f6e \u8bef\u5dee \u3002 \u79ef\u5206 ( Integral , I ) \uff1a \u7ea0\u6b63 \u8fc7\u53bb \u7d2f\u79ef \u7684 \u9519\u8bef \u3002 \u5fae\u5206 \uff08 Derivative , D ) \uff1a \u6839\u636e \u5f53\u524d \u7684 \u53d8\u5316 \u53d8\u5316\u7387 \u6765 \u9884\u6d4b \u548c \u5bf9\u6297 \u672a\u6765 \u7684 \u8bef\u5dee \u8d8b\u52bf \u3002","title":"\u7ec4\u4ef6 \uff1a"},{"location":"algorithms/control/#_5","text":"\u6211\u4eec \u4f7f\u7528 PID \u63a7\u5236 \u63a7\u5236\u5668 \u4e3b\u8981 \u7528\u4e8e \u8def\u70b9 \u8ddf\u8e2a \u3001 \u4fdd\u6301 \u8f66\u9053 \u4f4d\u7f6e \u5e76 \u786e\u4fdd \u8f66\u8f86 \u9075\u5faa \u9884\u5b9a \u8def\u5f84 \u4e14 \u504f\u5dee \u6700\u5c0f \u3002","title":"\u5e94\u7528 \uff1a"},{"location":"algorithms/control/#_6","text":"","title":"\u7528\u4e8e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236"},{"location":"algorithms/control/#_7","text":"\u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( MPC ) [ 2 ] \u662f \u4e00\u79cd \u5148\u8fdb \u7684 \u63a7\u5236 \u6280\u672f \u63a7\u5236\u6280\u672f \uff0c \u5b83 \u4f7f\u7528 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \u6765 \u9884\u6d4b \u5176 \u5728 \u5b9a\u4e49 \u8303\u56f4 \u5185 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65 \uff0c MPC \u7b97\u6cd5 \u90fd \u4f1a \u8003\u8651 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3001 \u7ea6\u675f \u548c \u6240 \u9700 \u8f68\u8ff9 \uff0c \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \u4ee5 \u627e\u5230 \u6700\u4f73 \u63a7\u5236 \u8f93\u5165 \u3002","title":"\u6982\u8ff0 \uff1a"},{"location":"algorithms/control/#_8","text":"MPC \u63a7\u5236 \u63a7\u5236\u5668 \u6d89\u53ca \u4e09\u4e2a \u5173\u952e \u529f\u80fd \u6765 \u51b3\u5b9a \u6267\u884c \u54ea\u4e9b \u64cd\u4f5c \u6765 \u63a7\u5236 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \uff1a \u9884\u6d4b \u6a21\u578b \uff1a \u6839\u636e \u8f66\u8f86 \u7684 \u5f53\u524d \u72b6\u6001 \u548c \u6f5c\u5728 \u7684 \u63a7\u5236 \u8f93\u5165 \u6765 \u9884\u6d4b \u8f66\u8f86 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u4f18\u5316 \uff1a \u4e0d\u65ad \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \uff0c \u4ee5 \u786e\u5b9a \u9884\u6d4b \u8303\u56f4 \u5185 \u7684 \u6700\u4f73 \u63a7\u5236 \u64cd\u4f5c \u3002 \u6eda\u52a8 \u4f18\u5316 \u673a\u5236 \uff1a \u4ec5 \u5b9e\u65bd \u4f18\u5316 \u5e8f\u5217 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u52a8\u4f5c \uff0c \u5e76 \u5728 \u4e0b \u4e00\u4e2a \u65f6\u95f4 \u6b65 \u91cd\u65b0 \u8bc4\u4f30 \uff0c \u4ee5 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u6761\u4ef6 \u3002","title":"\u4e3b\u8981 \u7279\u5f81 \uff1a"},{"location":"algorithms/control/#_9","text":"MPC \u63a7\u5236 \u63a7\u5236\u5668 \u5728 \u9700\u8981 \u7cbe\u786e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u573a\u666f \u4e2d\u5c06 \u53d1\u6325 \u91cd\u8981 \u4f5c\u7528 \uff0c \u7279\u522b \u662f \u5728 \u5177\u6709 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u3001 \u6025\u8f6c \u8f6c\u5f2f \u6025\u8f6c\u5f2f \u548c \u53d8\u5316 \u7684 \u8def\u51b5 \u7684 \u590d\u6742 \u9a7e\u9a76 \u73af\u5883 \u4e2d \u3002 \u901a\u8fc7 \u9884\u6d4b \u672a\u6765 \u72b6\u6001 \u548c \u7ea6\u675f \uff0c \u4e0e \u4f20\u7edf \u63a7\u5236 \u63a7\u5236\u5668 \u76f8\u6bd4 \uff0c MPC \u63d0\u4f9b \u4e86 \u589e\u5f3a \u7684 \u8def\u5f84 \u8ddf\u8e2a \u7cbe\u5ea6 \u548c \u9c81\u68d2\u6027 \u3002","title":"\u5e94\u7528 \uff1a"},{"location":"algorithms/control/#_10","text":"\u7ef4\u62a4 \u548c \u5fae\u8c03 \u73b0\u6709 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u786e\u4fdd \u57fa\u672c \u7684 \u822a\u8def \u70b9 \u8ddf\u8e2a \u529f\u80fd \u3002 \u5f00\u53d1 \u4ee3\u8868 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u96c6\u6210 \u4e0e \u6211\u4eec \u7684 MPC \u7cfb\u7edf \u67b6\u6784 \u517c\u5bb9 \u7684 \u4f18\u5316 \u6c42\u89e3 \u5668 \u3002 \u8bbe\u8ba1 \u548c \u5b9e\u73b0 MPC \u6846\u67b6 \uff0c \u786e\u4fdd \u5176 \u8003\u8651 \u8f66\u8f86 \u7ea6\u675f \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5b9e\u9645 \u6d4b\u8bd5 \u4e2d \u9010\u6b65 \u90e8\u7f72 \u548c \u8bc4\u4f30 MPC \uff0c \u4ece \u4f4e \u590d\u6742 \u590d\u6742\u6027 \u73af\u5883 \u5f00\u59cb \uff0c \u9010\u6b65 \u5347\u7ea7 \u5230 \u66f4\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u573a\u666f \u3002","title":"\u5b9e\u65bd \u8def\u7ebf\u56fe \uff1a"},{"location":"algorithms/control/#_11","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/localization/","text":"\u5b9a\u4f4d \u5b9a\u4f4d \u6a21\u5757 \u4ecb\u7ecd ISS \u5b9a\u4f4d \u6a21\u5757 \u786e\u4fdd \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e0d\u4ec5 \u4e86\u89e3 \u5176 \u5728 \u5e7f\u9614 \u7684 \u9053\u8def \u548c \u73af\u5883 \u4e2d \u7684 \u4f4d\u7f6e \uff0c \u800c\u4e14 \u5177\u6709 \u4f26\u6bd4 \u65e0\u4e0e\u4f26\u6bd4 \u7684 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u6d41\u7a0b \uff0c \u4ece \u5355\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u878d\u5408 \u7b97\u6cd5 \u3002 \u5355\u72ec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3a\u4e86 \u5b9e\u73b0 \u7cbe\u786e \u786e\u5b9a \u5b9a\u4f4d \u7cbe\u786e\u5b9a\u4f4d \uff0c \u91c7\u7528 \u4e86 \u4f7f\u7528 \u5404\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u7b97\u6cd5 \u7684 \u591a\u65b9 \u65b9\u9762 \u591a\u65b9\u9762 \u65b9\u6cd5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a \u8fed\u4ee3 \u6700\u8fd1 \u70b9 ( Iterative Closest Point , ICP ) [ 1 ] \uff1a \u8be5 \u7b97\u6cd5 \u5bf9\u9f50 \u4e24\u4e2a \u70b9\u4e91\u4ee5 \u786e\u5b9a \u5bf9\u9f50 \u5b83\u4eec \u7684 \u6700\u4f73 \u62df\u5408 \u53d8\u6362 \u3002 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u53d8\u6362 ( Normal Distributions Transform , NDT ) [ 2 ] : \u8fd9\u79cd \u5148\u8fdb \u7684 \u65b9\u6cd5 \u4f7f\u7528 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u8868\u793a \u70b9\u4e91 \u6570\u636e \uff0c \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5f3a\u5927 \u800c \u6709\u6548 \u7684 \u914d\u51c6 \u65b9\u6cd5 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( Inertial Measurement Unit , IMU ) : \u822a\u4f4d \u63a8\u7b97 \uff1a \u901a\u8fc7 \u5229\u7528 \u8fd0\u52a8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u822a\u4f4d \u63a8\u7b97 \u53ef\u4ee5 \u8fde\u7eed \u4f30\u8ba1 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u3002 \u7136\u800c \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u5176 \u51c6\u786e \u51c6\u786e\u6027 \u4f1a \u964d\u4f4e \uff0c \u9700\u8981 \u8865\u5145 \u6570\u636e \u8fdb\u884c \u6821\u6b63 \u3002 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf ( Global Positioning System , GPS ) : \u867d\u7136 GPS \u4e3a \u5b9a\u4f4d \u63d0\u4f9b \u4e86 \u5168\u7403 \u53c2\u8003 \uff0c \u4f46 \u5176 \u7cbe\u5ea6 \u53ef\u80fd \u4e0d\u8db3 \u8db3\u4ee5 \u4e0d\u8db3\u4ee5 \u6ee1\u8db3 \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u4e25\u683c \u516c\u5dee \u8981\u6c42 \u3002 \u56e0\u6b64 \uff0c GPS \u6570\u636e \u901a\u5e38 \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u878d\u5408 \u4ee5 \u63d0\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u878d\u5408 \u5b8c\u7f8e \u5b9a\u4f4d \u7684 \u5173\u952e \u4e0d\u4ec5 \u5728\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e2a\u4f53 \u80fd\u529b \uff0c \u8fd8 \u5728\u4e8e \u5b83\u4eec \u7684 \u534f\u4f5c \u80fd\u529b \uff1a \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u65b9\u6cd5 : \u9012\u5f52 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u5361\u5c14 \u6ee4\u6ce2 \u5361\u5c14\u66fc \u5361\u5c14\u66fc\u6ee4\u6ce2 \u5668 \u548c \u7c92\u5b50 \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 [ 3 ] \uff0c \u5bf9\u4e8e \u5b9e\u65f6 \u72b6\u6001 \u4f30\u8ba1 \u548c \u9884\u6d4b \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u57fa\u4e8e \u4f18\u5316 \u7684 \u65b9\u6cd5 : GraphSLAM [ 4 ] \u7b49 \u6574\u4f53 \u65b9\u6cd5 \u53ef\u4ee5 \u8c03\u6574 \u548c \u7ec6\u5316 \u6574\u4e2a \u8f68\u8ff9 \u6216 \u5730\u56fe \uff0c \u786e\u4fdd \u5904\u7406 \u540e\u5904\u7406 \u573a\u666f \u4e2d \u7684 \u6700\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u5b9e\u65bd \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u7ef4\u62a4 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff08 \u8fed\u4ee3 \u6700\u8fd1 \u70b9 \u3001 \u6b63\u592a \u5206\u5e03 \u53d8\u6362 \uff09 \u3001 \u60ef\u6027 \u6d4b\u91cf \u5355\u4f4d \uff08 \u822a\u4f4d \u63a8\u6d4b \uff09 \u3001 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf \u548c \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u878d\u5408 \u3002 \u7814\u7a76 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \uff1a GraphSLAM \u3001 \u7ed1\u5b9a \u8c03\u6574 \u3001 \u4f4d\u59ff\u56fe \u4f18\u5316 \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u4f18\u5316 \u65b9\u6cd5 \u7684 \u6570\u636e \u96c6 \u3002 \u5c06 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Besl P J , McKay N D . Method for registration of 3 - D shapes . In Sensor fusion IV : control paradigms and data structures . Spie , 1992 , 1611 : 586 - 606 . Biber P , Stra \u00df er W . The normal distributions transform : A new approach to laser scan matching . In Proceedings 2003 IEEE / RSJ International Conference on Intelligent Robots and Systems ( IROS 2003 ) . IEEE , 2003 , 3 : 2743 - 2748 . Thrun S . Probabilistic robotics . In Communications of the ACM , 2002 , 45 ( 3 ) : 52 - 57 . Shan T , Englot B , Meyers D , et al . Lio - sam : Tightly - coupled LiDAR inertial odometry via smoothing and mapping . In 2020 IEEE / RSJ international conference on intelligent robots and systems ( IROS ) . IEEE , 2020 : 5135 - 5142 .","title":"\u5b9a\u4f4d"},{"location":"algorithms/localization/#_1","text":"","title":"\u5b9a\u4f4d"},{"location":"algorithms/localization/#_2","text":"ISS \u5b9a\u4f4d \u6a21\u5757 \u786e\u4fdd \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e0d\u4ec5 \u4e86\u89e3 \u5176 \u5728 \u5e7f\u9614 \u7684 \u9053\u8def \u548c \u73af\u5883 \u4e2d \u7684 \u4f4d\u7f6e \uff0c \u800c\u4e14 \u5177\u6709 \u4f26\u6bd4 \u65e0\u4e0e\u4f26\u6bd4 \u7684 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u6d41\u7a0b \uff0c \u4ece \u5355\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u878d\u5408 \u7b97\u6cd5 \u3002","title":"\u5b9a\u4f4d \u6a21\u5757 \u4ecb\u7ecd"},{"location":"algorithms/localization/#_3","text":"\u4e3a\u4e86 \u5b9e\u73b0 \u7cbe\u786e \u786e\u5b9a \u5b9a\u4f4d \u7cbe\u786e\u5b9a\u4f4d \uff0c \u91c7\u7528 \u4e86 \u4f7f\u7528 \u5404\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u7b97\u6cd5 \u7684 \u591a\u65b9 \u65b9\u9762 \u591a\u65b9\u9762 \u65b9\u6cd5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a \u8fed\u4ee3 \u6700\u8fd1 \u70b9 ( Iterative Closest Point , ICP ) [ 1 ] \uff1a \u8be5 \u7b97\u6cd5 \u5bf9\u9f50 \u4e24\u4e2a \u70b9\u4e91\u4ee5 \u786e\u5b9a \u5bf9\u9f50 \u5b83\u4eec \u7684 \u6700\u4f73 \u62df\u5408 \u53d8\u6362 \u3002 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u53d8\u6362 ( Normal Distributions Transform , NDT ) [ 2 ] : \u8fd9\u79cd \u5148\u8fdb \u7684 \u65b9\u6cd5 \u4f7f\u7528 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u8868\u793a \u70b9\u4e91 \u6570\u636e \uff0c \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5f3a\u5927 \u800c \u6709\u6548 \u7684 \u914d\u51c6 \u65b9\u6cd5 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( Inertial Measurement Unit , IMU ) : \u822a\u4f4d \u63a8\u7b97 \uff1a \u901a\u8fc7 \u5229\u7528 \u8fd0\u52a8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u822a\u4f4d \u63a8\u7b97 \u53ef\u4ee5 \u8fde\u7eed \u4f30\u8ba1 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u3002 \u7136\u800c \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u5176 \u51c6\u786e \u51c6\u786e\u6027 \u4f1a \u964d\u4f4e \uff0c \u9700\u8981 \u8865\u5145 \u6570\u636e \u8fdb\u884c \u6821\u6b63 \u3002 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf ( Global Positioning System , GPS ) : \u867d\u7136 GPS \u4e3a \u5b9a\u4f4d \u63d0\u4f9b \u4e86 \u5168\u7403 \u53c2\u8003 \uff0c \u4f46 \u5176 \u7cbe\u5ea6 \u53ef\u80fd \u4e0d\u8db3 \u8db3\u4ee5 \u4e0d\u8db3\u4ee5 \u6ee1\u8db3 \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u4e25\u683c \u516c\u5dee \u8981\u6c42 \u3002 \u56e0\u6b64 \uff0c GPS \u6570\u636e \u901a\u5e38 \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u878d\u5408 \u4ee5 \u63d0\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002","title":"\u5355\u72ec \u7684 \u4f20\u611f\u5668"},{"location":"algorithms/localization/#_4","text":"\u5b8c\u7f8e \u5b9a\u4f4d \u7684 \u5173\u952e \u4e0d\u4ec5 \u5728\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e2a\u4f53 \u80fd\u529b \uff0c \u8fd8 \u5728\u4e8e \u5b83\u4eec \u7684 \u534f\u4f5c \u80fd\u529b \uff1a \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u65b9\u6cd5 : \u9012\u5f52 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u5361\u5c14 \u6ee4\u6ce2 \u5361\u5c14\u66fc \u5361\u5c14\u66fc\u6ee4\u6ce2 \u5668 \u548c \u7c92\u5b50 \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 [ 3 ] \uff0c \u5bf9\u4e8e \u5b9e\u65f6 \u72b6\u6001 \u4f30\u8ba1 \u548c \u9884\u6d4b \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u57fa\u4e8e \u4f18\u5316 \u7684 \u65b9\u6cd5 : GraphSLAM [ 4 ] \u7b49 \u6574\u4f53 \u65b9\u6cd5 \u53ef\u4ee5 \u8c03\u6574 \u548c \u7ec6\u5316 \u6574\u4e2a \u8f68\u8ff9 \u6216 \u5730\u56fe \uff0c \u786e\u4fdd \u5904\u7406 \u540e\u5904\u7406 \u573a\u666f \u4e2d \u7684 \u6700\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002","title":"\u4f20\u611f\u5668 \u878d\u5408"},{"location":"algorithms/localization/#_5","text":"\u7ef4\u62a4 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff08 \u8fed\u4ee3 \u6700\u8fd1 \u70b9 \u3001 \u6b63\u592a \u5206\u5e03 \u53d8\u6362 \uff09 \u3001 \u60ef\u6027 \u6d4b\u91cf \u5355\u4f4d \uff08 \u822a\u4f4d \u63a8\u6d4b \uff09 \u3001 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf \u548c \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u878d\u5408 \u3002 \u7814\u7a76 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \uff1a GraphSLAM \u3001 \u7ed1\u5b9a \u8c03\u6574 \u3001 \u4f4d\u59ff\u56fe \u4f18\u5316 \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u4f18\u5316 \u65b9\u6cd5 \u7684 \u6570\u636e \u96c6 \u3002 \u5c06 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u3002","title":"\u5b9e\u65bd \u8def\u7ebf\u56fe"},{"location":"algorithms/localization/#_6","text":"Besl P J , McKay N D . Method for registration of 3 - D shapes . In Sensor fusion IV : control paradigms and data structures . Spie , 1992 , 1611 : 586 - 606 . Biber P , Stra \u00df er W . The normal distributions transform : A new approach to laser scan matching . In Proceedings 2003 IEEE / RSJ International Conference on Intelligent Robots and Systems ( IROS 2003 ) . IEEE , 2003 , 3 : 2743 - 2748 . Thrun S . Probabilistic robotics . In Communications of the ACM , 2002 , 45 ( 3 ) : 52 - 57 . Shan T , Englot B , Meyers D , et al . Lio - sam : Tightly - coupled LiDAR inertial odometry via smoothing and mapping . In 2020 IEEE / RSJ international conference on intelligent robots and systems ( IROS ) . IEEE , 2020 : 5135 - 5142 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/perception/","text":"\u611f\u77e5 \u611f\u77e5 \u6a21\u5757 \u7b80\u4ecb ISS \u611f\u77e5 \u6a21\u5757 \u4e3a \u591a\u79cd \u611f\u77e5 \u4efb\u52a1 \u63d0\u4f9b \u652f\u6301 \uff0c \u4f8b\u5982 3D \u969c\u788d \u969c\u788d\u7269 \u611f\u77e5 \u3001 2D \u7269\u4f53 \u8bc6\u522b \u3001 2D \u8bed\u4e49 \u5206\u5272 \u548c \u57fa\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff08 Bird ' s Eye View , BEV \uff09 \u5730\u56fe \u751f\u6210 \u3002 \u6211\u4eec \u7684 \u56e2\u961f \u4e13\u6ce8 \u4e8e \u5f00\u53d1 \u548c \u5b8c\u5584 \u8fd9\u4e9b \u5173\u952e \u7684 \u611f\u77e5 \u4efb\u52a1 \u3002 \u8fd9\u4e9b \u4efb\u52a1 \u662f \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u5b89\u5168 \u3001 \u7cbe\u786e \u5730 \u5728 \u590d\u6742 \u73af\u5883 \u4e2d \u884c\u9a76 \u7684 \u57fa\u7840 \u3002 \u4efb\u52a1 ISS \u611f\u77e5 \u6a21\u5757 \u652f\u6301 \u7684 \u4e0d\u540c \u4efb\u52a1 \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u4e86\u89e3 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u53ca\u5176 \u5143\u7d20 \u7684 \u7279\u5b9a \u5c5e\u6027 \u3002 3D \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \uff1a \u6211\u4eec \u7684 \u7cfb\u7edf \u91c7\u7528 \u5148\u8fdb \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6280\u672f \u6765 \u5b9e\u65f6 \u68c0\u6d4b \u548c \u5206\u6790 \u4e09\u7ef4 \u969c\u788d \u969c\u788d\u7269 \u3002 \u5373\u4f7f \u5728 \u52a8\u6001 \u548c \u5177\u6709 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u573a\u666f \u4e2d \uff0c \u8fd9\u79cd \u529f\u80fd \u4e5f \u4f7f \u6211\u4eec \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u80fd\u591f \u505a\u51fa \u660e\u667a \u7684 \u51b3\u7b56 \u5e76 \u786e\u4fdd \u4fdd\u5b89 \u5b89\u5168 \u786e\u4fdd\u5b89\u5168 \u5bfc\u822a \u3002 2D \u7269\u4f53 \u68c0\u6d4b \uff1a \u8bc6\u522b \u548c \u8bc6\u522b \u8f66\u8f86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u4e2d \u7684 \u7269\u4f53 \u5bf9\u4e8e \u5b89\u5168 \u5bfc\u822a \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u6211\u4eec \u7684 \u6846\u67b6 \u5229\u7528 \u5c16\u7aef \u7b97\u6cd5 \u6765 \u8bc6\u522b \u548c \u5206\u7c7b \u5404\u79cd \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u884c\u4eba \u3001 \u8f66\u8f86 \u548c \u6807\u724c \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u589e\u5f3a \u6001\u52bf \u611f\u77e5 \u3002 3D \u969c\u788d \u969c\u788d\u7269 \u611f\u77e5 \u548c 2D \u7269\u4f53 \u68c0\u6d4b 2D \u8bed\u4e49 \u5206\u5272 \uff1a \u8bed\u4e49 \u5206\u5272 \u662f \u8be6\u7ec6 \u4e86\u89e3 \u73af\u5883 \u7684 \u4e00\u9879 \u91cd\u8981 \u4efb\u52a1 \u3002 \u6211\u4eec \u5229\u7528 \u6700 \u5148\u8fdb \u7684 \u6280\u672f \u5c06 \u573a\u666f \u5212\u5206 \u4e3a \u6709 \u610f\u4e49 \u7684 \u90e8\u5206 \uff0c \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u7406\u89e3 \u9053\u8def \u5e03\u5c40 \u5e76 \u66f4\u597d \u5730 \u54cd\u5e94 \u590d\u6742 \u7684 \u57ce\u5e02 \u666f\u89c2 \u3002 \u57fa\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 BEV \u5730\u56fe \u751f\u6210 \uff1a \u6211\u4eec \u7684 \u7cfb\u7edf \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u751f\u6210 \u9e1f\u77b0 \u9e1f\u77b0\u56fe ( BEV ) \u5730\u56fe \uff0c \u63d0\u4f9b \u8f66\u8f86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u6574\u4f53 \u89c6\u56fe \u3002 \u8be5 \u5730\u56fe \u662f \u8def\u5f84 \u89c4\u5212 \u548c \u51b3\u7b56 \u7684 \u5b9d\u8d35 \u5de5\u5177 \uff0c \u53ef \u589e\u5f3a \u8f66\u8f86 \u9ad8\u6548 \u3001 \u5b89\u5168 \u5bfc\u822a \u7684 \u80fd\u529b \u3002 \u76ee\u524d \uff0c \u6211\u4eec \u6b63\u5728 \u52aa\u529b \u5f00\u53d1 \u8fd9\u4e9b \u6a21\u5757 \uff0c \u6211\u4eec \u5f88 \u9ad8\u5174 \u5730 \u544a\u8bc9 \u5927\u5bb6 \uff0c \u6211\u4eec \u5df2\u7ecf \u4e3a \u524d \u4e09\u4e2a \u4efb\u52a1 \u5f00\u53d1 \u4e86 \u521d\u59cb \u6a21\u578b \u521d\u59cb\u6a21\u578b \u3002 \u7136\u800c \uff0c \u503c\u5f97 \u6ce8\u610f \u503c\u5f97\u6ce8\u610f \u7684 \u662f \uff0c \u8fd9\u4e9b \u6a21\u578b \u4ecd \u5728 \u4e0d\u65ad \u5b8c\u5584 \u4e0d\u65ad\u5b8c\u5584 \uff0c \u4ee5 \u63d0\u9ad8 \u5176 \u6027\u80fd \u548c \u53ef\u9760 \u53ef\u9760\u6027 \u3002 \u6211\u4eec \u8fd8 \u63d0\u4f9b \u4e86 \u6709\u5173 ISS \u751f\u6210 \u7684 \u7269\u4f53 \u68c0\u6d4b \u7684 \u6570\u636e \u96c6 \u3002 \u4ecd \u5728 \u66f4\u65b0 \u3002 git \u4ed3\u5e93 \u76ee\u6807 \u68c0\u6d4b \u5728 Carla \u4e2d \u4f7f\u7528 YOLOv3 \u68c0\u6d4b \u76ee\u6807 \u3002 \u5b89\u88c5 pip install - r requirements . txt \u5982\u679c \u9700\u8981 GPU \u8ba1\u7b97 , \u5b89\u88c5 nvidia - cuda - toolkit \u3002 \u521b\u5efa conda \u73af\u5883 \uff1a conda create - n yolo python = 3.7 conda activate yolo \u6ce8\u610f \uff1a \u8fd0\u884c \u811a\u672c \u7684 \u65f6\u5019 \u4f1a \u63d0\u793a \u5b89\u88c5 \u5b89\u88c5\u5305 \uff01 \u9664 Carla Client API \u4e3a 0.9 . 12 \u4e0e Carla \u5bf9\u5e94 \uff0c \u5176\u4ed6 \u5b89\u88c5 \u6700\u65b0 \u7684 \u3002 weights \u6587\u4ef6 \u94fe\u63a5 \uff1a https : / / pan . baidu . com / s / 184hR _ PQZttYeAz9QE4XOQg \u63d0\u53d6 \u7801 \uff1a hyus \u5c06 weight \u6587\u4ef6 \u653e\u5728 weights \u76ee\u5f55 \u4e0b \u3002 \u8fd0\u884c 1 . \u8fde\u63a5 Carla \u670d\u52a1 \u670d\u52a1\u7aef . / CarlaUE4 . sh 2 . \u8fd0\u884c \u811a\u672c \u751f\u6210 \u8f66\u8f86 \u548c \u884c\u4eba python3 spawn _ npc . py - n 80 \u6ce8\u610f : spawn _ npc . py \u5728 PythonAPI / examples \uff0c \u8be5 \u6d4b\u8bd5 \u662f \u5728 Carla - 0.9 . 12 \uff0c \u6700\u65b0 \u65b0\u7248 \u6700\u65b0\u7248 Carla \u6ca1\u6709 spawn _ npc . py , \u4f46\u662f \u4f1a \u51fa\u73b0 \u884c\u4eba \u5012 \u7740 \u8d70 \u7684 \u95ee\u9898 \uff0c \u4e0d\u59a8 \u4f7f\u7528 generate _ trrafic . py \u3002 3 . \u884c python3 object _ detection . py \u7528 gpu \u6267\u884c pip install yolo34py - gpu python3 object _ detection _ gpu . py","title":"\u611f\u77e5"},{"location":"algorithms/perception/#_1","text":"","title":"\u611f\u77e5"},{"location":"algorithms/perception/#_2","text":"ISS \u611f\u77e5 \u6a21\u5757 \u4e3a \u591a\u79cd \u611f\u77e5 \u4efb\u52a1 \u63d0\u4f9b \u652f\u6301 \uff0c \u4f8b\u5982 3D \u969c\u788d \u969c\u788d\u7269 \u611f\u77e5 \u3001 2D \u7269\u4f53 \u8bc6\u522b \u3001 2D \u8bed\u4e49 \u5206\u5272 \u548c \u57fa\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff08 Bird ' s Eye View , BEV \uff09 \u5730\u56fe \u751f\u6210 \u3002 \u6211\u4eec \u7684 \u56e2\u961f \u4e13\u6ce8 \u4e8e \u5f00\u53d1 \u548c \u5b8c\u5584 \u8fd9\u4e9b \u5173\u952e \u7684 \u611f\u77e5 \u4efb\u52a1 \u3002 \u8fd9\u4e9b \u4efb\u52a1 \u662f \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u5b89\u5168 \u3001 \u7cbe\u786e \u5730 \u5728 \u590d\u6742 \u73af\u5883 \u4e2d \u884c\u9a76 \u7684 \u57fa\u7840 \u3002","title":"\u611f\u77e5 \u6a21\u5757 \u7b80\u4ecb"},{"location":"algorithms/perception/#_3","text":"ISS \u611f\u77e5 \u6a21\u5757 \u652f\u6301 \u7684 \u4e0d\u540c \u4efb\u52a1 \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u4e86\u89e3 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u53ca\u5176 \u5143\u7d20 \u7684 \u7279\u5b9a \u5c5e\u6027 \u3002 3D \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \uff1a \u6211\u4eec \u7684 \u7cfb\u7edf \u91c7\u7528 \u5148\u8fdb \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6280\u672f \u6765 \u5b9e\u65f6 \u68c0\u6d4b \u548c \u5206\u6790 \u4e09\u7ef4 \u969c\u788d \u969c\u788d\u7269 \u3002 \u5373\u4f7f \u5728 \u52a8\u6001 \u548c \u5177\u6709 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u573a\u666f \u4e2d \uff0c \u8fd9\u79cd \u529f\u80fd \u4e5f \u4f7f \u6211\u4eec \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u80fd\u591f \u505a\u51fa \u660e\u667a \u7684 \u51b3\u7b56 \u5e76 \u786e\u4fdd \u4fdd\u5b89 \u5b89\u5168 \u786e\u4fdd\u5b89\u5168 \u5bfc\u822a \u3002 2D \u7269\u4f53 \u68c0\u6d4b \uff1a \u8bc6\u522b \u548c \u8bc6\u522b \u8f66\u8f86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u4e2d \u7684 \u7269\u4f53 \u5bf9\u4e8e \u5b89\u5168 \u5bfc\u822a \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u6211\u4eec \u7684 \u6846\u67b6 \u5229\u7528 \u5c16\u7aef \u7b97\u6cd5 \u6765 \u8bc6\u522b \u548c \u5206\u7c7b \u5404\u79cd \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u884c\u4eba \u3001 \u8f66\u8f86 \u548c \u6807\u724c \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u589e\u5f3a \u6001\u52bf \u611f\u77e5 \u3002 3D \u969c\u788d \u969c\u788d\u7269 \u611f\u77e5 \u548c 2D \u7269\u4f53 \u68c0\u6d4b 2D \u8bed\u4e49 \u5206\u5272 \uff1a \u8bed\u4e49 \u5206\u5272 \u662f \u8be6\u7ec6 \u4e86\u89e3 \u73af\u5883 \u7684 \u4e00\u9879 \u91cd\u8981 \u4efb\u52a1 \u3002 \u6211\u4eec \u5229\u7528 \u6700 \u5148\u8fdb \u7684 \u6280\u672f \u5c06 \u573a\u666f \u5212\u5206 \u4e3a \u6709 \u610f\u4e49 \u7684 \u90e8\u5206 \uff0c \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u7406\u89e3 \u9053\u8def \u5e03\u5c40 \u5e76 \u66f4\u597d \u5730 \u54cd\u5e94 \u590d\u6742 \u7684 \u57ce\u5e02 \u666f\u89c2 \u3002 \u57fa\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 BEV \u5730\u56fe \u751f\u6210 \uff1a \u6211\u4eec \u7684 \u7cfb\u7edf \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u751f\u6210 \u9e1f\u77b0 \u9e1f\u77b0\u56fe ( BEV ) \u5730\u56fe \uff0c \u63d0\u4f9b \u8f66\u8f86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u6574\u4f53 \u89c6\u56fe \u3002 \u8be5 \u5730\u56fe \u662f \u8def\u5f84 \u89c4\u5212 \u548c \u51b3\u7b56 \u7684 \u5b9d\u8d35 \u5de5\u5177 \uff0c \u53ef \u589e\u5f3a \u8f66\u8f86 \u9ad8\u6548 \u3001 \u5b89\u5168 \u5bfc\u822a \u7684 \u80fd\u529b \u3002 \u76ee\u524d \uff0c \u6211\u4eec \u6b63\u5728 \u52aa\u529b \u5f00\u53d1 \u8fd9\u4e9b \u6a21\u5757 \uff0c \u6211\u4eec \u5f88 \u9ad8\u5174 \u5730 \u544a\u8bc9 \u5927\u5bb6 \uff0c \u6211\u4eec \u5df2\u7ecf \u4e3a \u524d \u4e09\u4e2a \u4efb\u52a1 \u5f00\u53d1 \u4e86 \u521d\u59cb \u6a21\u578b \u521d\u59cb\u6a21\u578b \u3002 \u7136\u800c \uff0c \u503c\u5f97 \u6ce8\u610f \u503c\u5f97\u6ce8\u610f \u7684 \u662f \uff0c \u8fd9\u4e9b \u6a21\u578b \u4ecd \u5728 \u4e0d\u65ad \u5b8c\u5584 \u4e0d\u65ad\u5b8c\u5584 \uff0c \u4ee5 \u63d0\u9ad8 \u5176 \u6027\u80fd \u548c \u53ef\u9760 \u53ef\u9760\u6027 \u3002 \u6211\u4eec \u8fd8 \u63d0\u4f9b \u4e86 \u6709\u5173 ISS \u751f\u6210 \u7684 \u7269\u4f53 \u68c0\u6d4b \u7684 \u6570\u636e \u96c6 \u3002 \u4ecd \u5728 \u66f4\u65b0 \u3002 git \u4ed3\u5e93","title":"\u4efb\u52a1"},{"location":"algorithms/perception/#_4","text":"\u5728 Carla \u4e2d \u4f7f\u7528 YOLOv3 \u68c0\u6d4b \u76ee\u6807 \u3002","title":"\u76ee\u6807 \u68c0\u6d4b"},{"location":"algorithms/perception/#_5","text":"pip install - r requirements . txt \u5982\u679c \u9700\u8981 GPU \u8ba1\u7b97 , \u5b89\u88c5 nvidia - cuda - toolkit \u3002 \u521b\u5efa conda \u73af\u5883 \uff1a conda create - n yolo python = 3.7 conda activate yolo \u6ce8\u610f \uff1a \u8fd0\u884c \u811a\u672c \u7684 \u65f6\u5019 \u4f1a \u63d0\u793a \u5b89\u88c5 \u5b89\u88c5\u5305 \uff01 \u9664 Carla Client API \u4e3a 0.9 . 12 \u4e0e Carla \u5bf9\u5e94 \uff0c \u5176\u4ed6 \u5b89\u88c5 \u6700\u65b0 \u7684 \u3002 weights \u6587\u4ef6 \u94fe\u63a5 \uff1a https : / / pan . baidu . com / s / 184hR _ PQZttYeAz9QE4XOQg \u63d0\u53d6 \u7801 \uff1a hyus \u5c06 weight \u6587\u4ef6 \u653e\u5728 weights \u76ee\u5f55 \u4e0b \u3002","title":"\u5b89\u88c5"},{"location":"algorithms/perception/#_6","text":"1 . \u8fde\u63a5 Carla \u670d\u52a1 \u670d\u52a1\u7aef . / CarlaUE4 . sh 2 . \u8fd0\u884c \u811a\u672c \u751f\u6210 \u8f66\u8f86 \u548c \u884c\u4eba python3 spawn _ npc . py - n 80 \u6ce8\u610f : spawn _ npc . py \u5728 PythonAPI / examples \uff0c \u8be5 \u6d4b\u8bd5 \u662f \u5728 Carla - 0.9 . 12 \uff0c \u6700\u65b0 \u65b0\u7248 \u6700\u65b0\u7248 Carla \u6ca1\u6709 spawn _ npc . py , \u4f46\u662f \u4f1a \u51fa\u73b0 \u884c\u4eba \u5012 \u7740 \u8d70 \u7684 \u95ee\u9898 \uff0c \u4e0d\u59a8 \u4f7f\u7528 generate _ trrafic . py \u3002 3 . \u884c python3 object _ detection . py \u7528 gpu \u6267\u884c pip install yolo34py - gpu python3 object _ detection _ gpu . py","title":"\u8fd0\u884c"},{"location":"algorithms/planning/","text":"\u89c4\u5212 \u89c4\u5212 \u6a21\u5757 \u7b80\u4ecb \u81ea\u52a8 \u9a7e\u9a76 \u7ba1\u9053 \u5305\u542b \u4ece \u611f\u77e5 \u5230 \u63a7\u5236 \u7684 \u591a\u4e2a \u7ec4\u4ef6 \u3002 \u8be5 \u7ba1\u9053 \u7684 \u6838\u5fc3 \u662f \u201c \u89c4\u5212 \u6a21\u5757 \u201d \uff0c \u8d1f\u8d23 \u5236\u5b9a \u6709\u5173 \u8f66\u8f86 \u8fd0\u52a8 \u7684 \u6218\u7565 \u548c \u6218\u672f \u51b3\u7b56 \u3002 \u8be5 \u6a21\u5757 \u5206\u4e3a \u4e09\u4e2a \u5173\u952e \u9636\u6bb5 \uff1a \u8def\u7ebf \u89c4\u5212 \u3001 \u884c\u4e3a \u89c4\u5212 \u548c \u8fd0\u52a8 \u89c4\u5212 \uff0c \u4ee5 \u4e0d\u540c \u7684 \u7c92\u5ea6 \u548c \u7cbe\u5ea6 \u6c34\u5e73 \u89c4\u5212 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u5728 \u8fd9 \u6587\u7ae0 \u7bc7\u6587\u7ae0 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 \u6bcf\u4e2a \u9636\u6bb5 \u3002 \u89c4\u5212 \u548c \u63a7\u5236 \u6d41\u7a0b \u8def\u7ebf \u89c4\u5212 \u76ee\u6807 \u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u7684 \u4efb\u52a1 \u662f \u627e\u5230 \u4ece \u5f53\u524d \u4f4d\u7f6e \u5230 \u6240 \u9700 \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u6700 \u6709\u6548 \u8def\u7ebf \uff0c \u5c31 \u50cf \u4f20\u7edf GPS \u5bfc\u822a \u7cfb\u7edf \u5bfc\u822a\u7cfb\u7edf \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e00\u6837 \u3002 \u73b0\u4ee3 \u8def\u7ebf \u89c4\u5212 \u7b97\u6cd5 \u80fd\u591f \u5728 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u9884\u5904\u7406 \u6b65\u9aa4 \u540e \u5b9e\u65f6 \u8fd4\u56de \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u7684 \u6700\u4f73 \u8def\u7ebf [ 1 ] \u3002 \u5982\u9700 \u66f4 \u5168\u9762 \u7684 \u8c03\u67e5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Bast \u7b49 \u4eba \u7684 \u8bba\u6587 [ 2 ] \u3002 \u8f93\u5165 \u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u5c06 \u6709\u5173 \u4e16\u754c \u7684 \u9ad8\u7ea7 \u4fe1\u606f \u4f5c\u4e3a \u8f93\u5165 \uff0c \u4f8b\u5982 \uff1a \u8d77\u70b9 \u548c \u7ec8\u70b9 \u7684 \u5750\u6807 \uff1b \u9053\u8def \u7f51\u7edc \u7684 \u62d3\u6251 \u7ed3\u6784 \uff1b \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \uff1b \u53ef\u80fd \u7684 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002 \u8f93\u51fa \u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u751f\u6210 \u4e00\u6761 \u8def\u5f84 \u6216 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8fde\u63a5 \u8d77\u70b9 \u548c \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u8def\u5f84 \u70b9 \u4f5c\u4e3a \u8f93\u51fa \uff0c \u540c\u65f6 \u907f\u5f00 \u4efb\u4f55 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002 \u6311\u6218 \u9053\u8def \u89c4\u5212 \u6a21\u5757 \u5728 \u8ba1\u7b97 \u6700 \u6709\u6548 \u7684 \u8def\u7ebf \u65f6 \u5fc5\u987b \u8003\u8651 \u8bb8\u591a \u6311\u6218 \uff0c \u4f8b\u5982 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u9053\u8def \u72b6\u51b5 \uff1b \u7eb3\u5165 \u5b9e\u65f6 \u4ea4\u901a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u786e\u4fdd \u6240 \u9009 \u8def\u7ebf \u65e2 \u5b89\u5168 \u53c8 \u9ad8\u6548 \u3002 \u884c\u4e3a \u89c4\u5212 \u76ee\u6807 \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u7684 \u4e3b\u8981 \u4efb\u52a1 \u662f \u89c4\u5b9a \u8f66\u8f86 \u7684 \u603b\u4f53 \u884c\u4e3a \uff0c \u4ece \u8f66\u9053 \u53d8\u6362 \u3001 \u8d85\u8f66 \u3001 \u8ba9\u8def \u5230 \u8f6c\u5f2f \u7684 \u51b3\u7b56 \u3002 \u5982\u4eca \uff0c \u884c\u4e3a \u89c4\u5212 \u6a21\u5757 \u901a\u5e38 \u5305\u542b \u81ea\u6211 \u8f66\u8f86 \u4e0e \u9053\u8def \u4e0a \u5176\u4ed6 \u667a\u80fd \u4f53 \uff08 \u4f8b\u5982 \u5176\u4ed6 \u8f66\u8f86 \uff09 \u4e4b\u95f4 \u7684 \u4ea4\u4e92 [ 3 ] \u3002 \u8f93\u5165 \u4e3a\u4e86 \u5b9e\u73b0 \u5176 \u76ee\u6807 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u4f7f\u7528 \u6765\u81ea \u591a\u4e2a \u6765\u6e90 \u7684 \u4fe1\u606f \uff0c \u4f8b\u5982 \u6839\u636e \u8def\u7ebf \u89c4\u5212 \u5f97\u5230 \u7684 \u6307\u5b9a \u8def\u7ebf \uff1b \u6709\u5173 \u90bb\u8fd1 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u6570\u636e \uff08 \u6765\u81ea \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u3001 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7b49 \uff09 \uff1b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \uff1b \u5176\u4ed6 \u76f8\u5173 \u73af\u5883 \u6570\u636e \u3002 \u8f93\u51fa \u884c\u4e3a \u89c4\u5212 \u7684 \u8f93\u51fa \u5305\u62ec \u5b8f\u89c2 \u6307\u4ee4 \uff0c \u4f8b\u5982 \u201c \u79fb\u81f3 \u5de6 \u8f66\u9053 \u201d \u3001 \u201c \u8ddf\u8e2a \u524d\u65b9 \u8f66\u8f86 \u201d \u6216 \u201c \u51c6\u5907 \u53f3\u8f6c \u201d \u4ee5\u53ca \u53cd\u6620 \u8fd9\u4e9b \u6307\u4ee4 \u7684 \u7c97\u7565 \u8f68\u8ff9 \u3002 \u6311\u6218 \u5728 \u505a\u51fa \u51b3\u7b56 \u65f6 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u9700\u8981 \u89e3\u51b3 \u591a\u4e2a \u95ee\u9898 \uff0c \u4f8b\u5982 \u9884\u6d4b \u5468\u56f4 \u53f8\u673a \u548c \u884c\u4eba \u7684 \u610f\u56fe \u548c \u5373\u5c06 \u91c7\u53d6 \u7684 \u884c\u52a8 \uff1b \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u91c7\u7528 \u5b89\u5168 \u7684 \u51b3\u7b56 \u5236\u5b9a \u51b3\u7b56\u5236\u5b9a \uff1b \u5904\u7406 \u4e0d \u5e38\u89c1 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \u3002 \u8fd0\u52a8 \u89c4\u5212 \u76ee\u6807 \u89c4\u5212 \u6a21\u5757 \u5de5\u4f5c \u6d41\u7a0b \u7684 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 \u662f \u8fd0\u52a8 \u89c4\u5212 \uff0c \u5176 \u76ee\u7684 \u662f \u7ed8\u5236 \u4e00\u6761 \u5bf9 \u8f66\u8f86 \u6765\u8bf4 \u65e2 \u5b89\u5168 \u53c8 \u4e00\u81f4 \u7684 \u8f68\u8ff9 \uff0c \u53cd\u6620 \u884c\u4e3a \u76ee\u6807 \u5e76 \u4fdd\u6301 \u5728 \u8f66\u8f86 \u7684 \u52a8\u6001 \u548c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u7ea6\u675f \u8303\u56f4 \u5185 [ 1 ] \u3002 \u8f93\u5165 \u4e3a\u4e86 \u4f7f \u8f66\u8f86 \u4ea7\u751f \u5e73\u6ed1 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9700\u8981 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u6570\u636e \uff0c \u4f8b\u5982 \u884c\u4e3a \u89c4\u5212 \u6240 \u786e\u7acb \u7684 \u9884\u671f \u884c\u4e3a \uff1b \u5f53\u524d \u8f66\u8f86 \u72b6\u6001 \uff08 \u5982 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff09 \uff1b \u9053\u8def \u5730\u56fe \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u6709\u5173 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6570\u636e \u3002 \u8f93\u51fa \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u7684 \u7ed3\u679c \u662f \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u8f66\u8f86 \u5728 \u6307\u5b9a \u65f6\u95f4 \u8303\u56f4 \u5185 \u7684 \u72b6\u6001 \u3002 \u6311\u6218 \u4e3a\u4e86 \u4ea7\u751f \u8fd9\u6837 \u4e00\u4e2a \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9762\u4e34 \u7740 \u591a\u91cd \u6311\u6218 \uff0c \u4f8b\u5982 \u5236\u5b9a \u907f\u514d \u78b0\u649e \u4e14 \u7cbe\u7b80 \u7684 \u8f68\u8ff9 \uff1b \u7ba1\u7406 \u6765\u81ea \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u566a\u58f0 \u548c \u4e0d \u786e\u5b9a \u6570\u636e \uff1b \u5b9e\u65f6 \u8f68\u8ff9 \u6620\u5c04 \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"Planning"},{"location":"algorithms/planning/#_1","text":"","title":"\u89c4\u5212"},{"location":"algorithms/planning/#_2","text":"\u81ea\u52a8 \u9a7e\u9a76 \u7ba1\u9053 \u5305\u542b \u4ece \u611f\u77e5 \u5230 \u63a7\u5236 \u7684 \u591a\u4e2a \u7ec4\u4ef6 \u3002 \u8be5 \u7ba1\u9053 \u7684 \u6838\u5fc3 \u662f \u201c \u89c4\u5212 \u6a21\u5757 \u201d \uff0c \u8d1f\u8d23 \u5236\u5b9a \u6709\u5173 \u8f66\u8f86 \u8fd0\u52a8 \u7684 \u6218\u7565 \u548c \u6218\u672f \u51b3\u7b56 \u3002 \u8be5 \u6a21\u5757 \u5206\u4e3a \u4e09\u4e2a \u5173\u952e \u9636\u6bb5 \uff1a \u8def\u7ebf \u89c4\u5212 \u3001 \u884c\u4e3a \u89c4\u5212 \u548c \u8fd0\u52a8 \u89c4\u5212 \uff0c \u4ee5 \u4e0d\u540c \u7684 \u7c92\u5ea6 \u548c \u7cbe\u5ea6 \u6c34\u5e73 \u89c4\u5212 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u5728 \u8fd9 \u6587\u7ae0 \u7bc7\u6587\u7ae0 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 \u6bcf\u4e2a \u9636\u6bb5 \u3002 \u89c4\u5212 \u548c \u63a7\u5236 \u6d41\u7a0b","title":"\u89c4\u5212 \u6a21\u5757 \u7b80\u4ecb"},{"location":"algorithms/planning/#_3","text":"","title":"\u8def\u7ebf \u89c4\u5212 "},{"location":"algorithms/planning/#_4","text":"\u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u7684 \u4efb\u52a1 \u662f \u627e\u5230 \u4ece \u5f53\u524d \u4f4d\u7f6e \u5230 \u6240 \u9700 \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u6700 \u6709\u6548 \u8def\u7ebf \uff0c \u5c31 \u50cf \u4f20\u7edf GPS \u5bfc\u822a \u7cfb\u7edf \u5bfc\u822a\u7cfb\u7edf \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e00\u6837 \u3002 \u73b0\u4ee3 \u8def\u7ebf \u89c4\u5212 \u7b97\u6cd5 \u80fd\u591f \u5728 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u9884\u5904\u7406 \u6b65\u9aa4 \u540e \u5b9e\u65f6 \u8fd4\u56de \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u7684 \u6700\u4f73 \u8def\u7ebf [ 1 ] \u3002 \u5982\u9700 \u66f4 \u5168\u9762 \u7684 \u8c03\u67e5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Bast \u7b49 \u4eba \u7684 \u8bba\u6587 [ 2 ] \u3002","title":"\u76ee\u6807"},{"location":"algorithms/planning/#_5","text":"\u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u5c06 \u6709\u5173 \u4e16\u754c \u7684 \u9ad8\u7ea7 \u4fe1\u606f \u4f5c\u4e3a \u8f93\u5165 \uff0c \u4f8b\u5982 \uff1a \u8d77\u70b9 \u548c \u7ec8\u70b9 \u7684 \u5750\u6807 \uff1b \u9053\u8def \u7f51\u7edc \u7684 \u62d3\u6251 \u7ed3\u6784 \uff1b \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \uff1b \u53ef\u80fd \u7684 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002","title":"\u8f93\u5165"},{"location":"algorithms/planning/#_6","text":"\u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u751f\u6210 \u4e00\u6761 \u8def\u5f84 \u6216 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8fde\u63a5 \u8d77\u70b9 \u548c \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u8def\u5f84 \u70b9 \u4f5c\u4e3a \u8f93\u51fa \uff0c \u540c\u65f6 \u907f\u5f00 \u4efb\u4f55 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002","title":"\u8f93\u51fa"},{"location":"algorithms/planning/#_7","text":"\u9053\u8def \u89c4\u5212 \u6a21\u5757 \u5728 \u8ba1\u7b97 \u6700 \u6709\u6548 \u7684 \u8def\u7ebf \u65f6 \u5fc5\u987b \u8003\u8651 \u8bb8\u591a \u6311\u6218 \uff0c \u4f8b\u5982 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u9053\u8def \u72b6\u51b5 \uff1b \u7eb3\u5165 \u5b9e\u65f6 \u4ea4\u901a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u786e\u4fdd \u6240 \u9009 \u8def\u7ebf \u65e2 \u5b89\u5168 \u53c8 \u9ad8\u6548 \u3002","title":"\u6311\u6218"},{"location":"algorithms/planning/#_8","text":"","title":"\u884c\u4e3a \u89c4\u5212"},{"location":"algorithms/planning/#_9","text":"\u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u7684 \u4e3b\u8981 \u4efb\u52a1 \u662f \u89c4\u5b9a \u8f66\u8f86 \u7684 \u603b\u4f53 \u884c\u4e3a \uff0c \u4ece \u8f66\u9053 \u53d8\u6362 \u3001 \u8d85\u8f66 \u3001 \u8ba9\u8def \u5230 \u8f6c\u5f2f \u7684 \u51b3\u7b56 \u3002 \u5982\u4eca \uff0c \u884c\u4e3a \u89c4\u5212 \u6a21\u5757 \u901a\u5e38 \u5305\u542b \u81ea\u6211 \u8f66\u8f86 \u4e0e \u9053\u8def \u4e0a \u5176\u4ed6 \u667a\u80fd \u4f53 \uff08 \u4f8b\u5982 \u5176\u4ed6 \u8f66\u8f86 \uff09 \u4e4b\u95f4 \u7684 \u4ea4\u4e92 [ 3 ] \u3002","title":"\u76ee\u6807"},{"location":"algorithms/planning/#_10","text":"\u4e3a\u4e86 \u5b9e\u73b0 \u5176 \u76ee\u6807 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u4f7f\u7528 \u6765\u81ea \u591a\u4e2a \u6765\u6e90 \u7684 \u4fe1\u606f \uff0c \u4f8b\u5982 \u6839\u636e \u8def\u7ebf \u89c4\u5212 \u5f97\u5230 \u7684 \u6307\u5b9a \u8def\u7ebf \uff1b \u6709\u5173 \u90bb\u8fd1 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u6570\u636e \uff08 \u6765\u81ea \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u3001 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7b49 \uff09 \uff1b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \uff1b \u5176\u4ed6 \u76f8\u5173 \u73af\u5883 \u6570\u636e \u3002","title":"\u8f93\u5165"},{"location":"algorithms/planning/#_11","text":"\u884c\u4e3a \u89c4\u5212 \u7684 \u8f93\u51fa \u5305\u62ec \u5b8f\u89c2 \u6307\u4ee4 \uff0c \u4f8b\u5982 \u201c \u79fb\u81f3 \u5de6 \u8f66\u9053 \u201d \u3001 \u201c \u8ddf\u8e2a \u524d\u65b9 \u8f66\u8f86 \u201d \u6216 \u201c \u51c6\u5907 \u53f3\u8f6c \u201d \u4ee5\u53ca \u53cd\u6620 \u8fd9\u4e9b \u6307\u4ee4 \u7684 \u7c97\u7565 \u8f68\u8ff9 \u3002","title":"\u8f93\u51fa"},{"location":"algorithms/planning/#_12","text":"\u5728 \u505a\u51fa \u51b3\u7b56 \u65f6 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u9700\u8981 \u89e3\u51b3 \u591a\u4e2a \u95ee\u9898 \uff0c \u4f8b\u5982 \u9884\u6d4b \u5468\u56f4 \u53f8\u673a \u548c \u884c\u4eba \u7684 \u610f\u56fe \u548c \u5373\u5c06 \u91c7\u53d6 \u7684 \u884c\u52a8 \uff1b \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u91c7\u7528 \u5b89\u5168 \u7684 \u51b3\u7b56 \u5236\u5b9a \u51b3\u7b56\u5236\u5b9a \uff1b \u5904\u7406 \u4e0d \u5e38\u89c1 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \u3002","title":"\u6311\u6218"},{"location":"algorithms/planning/#_13","text":"","title":"\u8fd0\u52a8 \u89c4\u5212"},{"location":"algorithms/planning/#_14","text":"\u89c4\u5212 \u6a21\u5757 \u5de5\u4f5c \u6d41\u7a0b \u7684 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 \u662f \u8fd0\u52a8 \u89c4\u5212 \uff0c \u5176 \u76ee\u7684 \u662f \u7ed8\u5236 \u4e00\u6761 \u5bf9 \u8f66\u8f86 \u6765\u8bf4 \u65e2 \u5b89\u5168 \u53c8 \u4e00\u81f4 \u7684 \u8f68\u8ff9 \uff0c \u53cd\u6620 \u884c\u4e3a \u76ee\u6807 \u5e76 \u4fdd\u6301 \u5728 \u8f66\u8f86 \u7684 \u52a8\u6001 \u548c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u7ea6\u675f \u8303\u56f4 \u5185 [ 1 ] \u3002","title":"\u76ee\u6807"},{"location":"algorithms/planning/#_15","text":"\u4e3a\u4e86 \u4f7f \u8f66\u8f86 \u4ea7\u751f \u5e73\u6ed1 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9700\u8981 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u6570\u636e \uff0c \u4f8b\u5982 \u884c\u4e3a \u89c4\u5212 \u6240 \u786e\u7acb \u7684 \u9884\u671f \u884c\u4e3a \uff1b \u5f53\u524d \u8f66\u8f86 \u72b6\u6001 \uff08 \u5982 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff09 \uff1b \u9053\u8def \u5730\u56fe \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u6709\u5173 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6570\u636e \u3002","title":"\u8f93\u5165"},{"location":"algorithms/planning/#_16","text":"\u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u7684 \u7ed3\u679c \u662f \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u8f66\u8f86 \u5728 \u6307\u5b9a \u65f6\u95f4 \u8303\u56f4 \u5185 \u7684 \u72b6\u6001 \u3002","title":"\u8f93\u51fa"},{"location":"algorithms/planning/#_17","text":"\u4e3a\u4e86 \u4ea7\u751f \u8fd9\u6837 \u4e00\u4e2a \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9762\u4e34 \u7740 \u591a\u91cd \u6311\u6218 \uff0c \u4f8b\u5982 \u5236\u5b9a \u907f\u514d \u78b0\u649e \u4e14 \u7cbe\u7b80 \u7684 \u8f68\u8ff9 \uff1b \u7ba1\u7406 \u6765\u81ea \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u566a\u58f0 \u548c \u4e0d \u786e\u5b9a \u6570\u636e \uff1b \u5b9e\u65f6 \u8f68\u8ff9 \u6620\u5c04 \u3002","title":"\u6311\u6218"},{"location":"algorithms/planning/#_18","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/prediction/","text":"\u9884\u6d4b \u9884\u6d4b \u6a21\u5757 \u4ecb\u7ecd \u9884\u6d4b \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u4e2d \u53d1\u6325 \u7740 \u5173\u952e \u4f5c\u7528 \u5173\u952e\u4f5c\u7528 \uff0c \u53ef\u4ee5 \u786e\u5b9a \u9053\u8def \u4ee3\u7406 \u53ef\u80fd \u91c7\u53d6 \u7684 \u884c\u52a8 \u4ee5 \u786e\u4fdd \u4fdd\u5b89 \u5b89\u5168 \u786e\u4fdd\u5b89\u5168 \u5bfc\u822a \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 \u6052\u901f \u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 Motion Transformer \u3002 \u6052\u901f \u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u6982\u8ff0 \u7b49\u901f \u6a21\u578b \u662f \u6700 \u57fa\u672c \u4f46 \u6709\u6548 \u7684 \u9884\u6d4b \u65b9\u6cd5 [ 1 ] \uff0c \u5047\u8bbe \u5b9e\u4f53 \u4ee5 \u6052\u5b9a \u901f\u5ea6 \u7ee7\u7eed \u5176 \u5f53\u524d \u8f68\u8ff9 \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u901a\u8fc7 Runge - Kutta 4 ( RK4 ) \u79ef\u5206 \u5bf9 \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6a21\u578b \u8fdb\u884c \u6b63\u5411 \u4eff\u771f \uff0c \u5047\u8bbe \u6ca1\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u8f6c\u5411 \u89d2 \u3002 \u9002\u7528 \u9002\u7528\u6027 \u548c \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u9002\u7528 \u9002\u7528\u6027 \uff1a \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u8fd0\u52a8 \u76f8\u5bf9 \u7ebf\u6027 \u7684 \u9ad8\u901f \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 : \uff1a \u5728 \u57ce\u5e02 \u6216 \u62e5\u6324 \u7684 \u5730\u533a \uff0c \u8be5 \u6a21\u578b \u53ef\u80fd \u65e0\u6cd5 \u6355\u83b7 \u4ee3\u7406 \u7684 \u4e0d \u7a33\u5b9a \u8fd0\u52a8 \u3002 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u63a7\u5236 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u7684 \u4e3b\u8981 \u65b9\u7a0b \u662f \uff1a \u4f4d\u7f6e \u66f4\u65b0 : \u8f66\u8f86 \u540e\u8f6e \u7684 \u7a7a\u95f4 \u5750\u6807 \u968f \u65f6\u95f4 \u66f4\u65b0 ( t ) \u5230 \u65f6\u95f4 ( t + 1 ) \u4f5c\u4e3a $ $ x ( t + 1 ) = x ( t ) + v ( t ) \\ cos ( \\ theta ( t ) ) \\ Delta t $ $ $ $ y ( t + 1 ) = y ( t ) + v ( t ) \\ sin ( \\ theta ( t ) ) \\ Delta t $ $ \u822a\u5411 \u66f4\u65b0 \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u822a\u5411 \u66f4 \u6539\u4e3a \u8fd9\u91cc ( ( x , y ) ) \u4ee3\u8868 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \uff1b ( \\ theta ) \u662f \u8f66\u8f86 \u7684 \u822a\u5411 \uff1b ( v ) \u8868\u793a \u8f66\u8f86 \u7684 \u901f\u5ea6 \uff1b ( \\ delta ) \u662f \u524d\u8f6e \u7684 \u8f6c\u5411 \u89d2 \uff1b ( l _ { wb } ) \u4e3a \u8f74\u8ddd \uff0c \u5373 \u524d\u540e \u8f74 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \uff1b ( \\ Delta t ) \u662f \u65f6\u95f4 \u6b65\u957f \u3002 \u7136\u540e \u5e94\u7528 RK4 \u65b9\u6cd5 \u8fdb\u884c \u524d\u5411 \u4eff\u771f \uff0c \u4ee5 \u63d0\u9ad8 \u77ed\u671f \u671f\u5185 \u77ed\u671f\u5185 \u7684 \u9884\u6d4b \u7cbe\u5ea6 \u3002 \u793a\u4f8b \u7528\u4f8b \u516c\u8def \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u969c\u788d \u969c\u788d\u7269 \u6700\u5c11 \u7684 \u5f00\u653e \u533a\u57df \u3002 \u5728 ISS \u4e2d \uff0c \u91c7\u7528 \u7b49\u901f \u6a21\u578b \u6765 \u9884\u6d4b \u7ed3\u6784 \u7ed3\u6784\u5316 \u9053\u8def \u73af\u5883 \u4e2d \u7684 \u8fd0\u52a8 \u3002 Motion Transformer \u6982\u8ff0 Motion Transformer [ 2 ] \u662f \u4e00\u79cd \u6700 \u5148\u8fdb \u7684 \u6a21\u578b \uff0c \u5b83 \u8003\u8651 \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u6765 \u9884\u6d4b \u672a\u6765 \u7684 \u8f68\u8ff9 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u8fd0\u52a8 \u9884\u6d4b \u5efa\u6a21 \u4e3a \u5168\u5c40 \u610f\u56fe \u5b9a\u4f4d \u548c \u5c40\u90e8 \u8fd0\u52a8 \u7ec6\u5316 \u7684 \u8054\u5408 \u4f18\u5316 \u3002 \u9664\u4e86 \u8003\u8651 \u9053\u8def \u7ed3\u6784 \u7684 \u5168\u5c40 \u4fe1\u606f \u4e4b\u5916 \uff0c \u8be5 \u65b9\u6cd5 \u8fd8 \u901a\u8fc7 \u9002\u5e94 \u53ef \u5b66\u4e60 \u7684 \u8fd0\u52a8 \u67e5\u8be2 \u6765 \u5408\u5e76 \u4e0d\u540c \u7684 \u8fd0\u52a8 \u6a21\u5f0f \u3002 Motion Transformer \u7684 \u6574\u4f53 \u7ed3\u6784 \u5982\u4e0b \u56fe \u6240\u793a \u3002 motion transformer \u7684 \u7ed3\u6784 [ 2 ] \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 \u9009\u62e9 Motion Transformer ? \u8f83 \u7b80\u5355 \u7684 \u6a21\u578b \u7f3a\u4e4f \u590d\u6742 \u73af\u5883 \u6240 \u9700 \u7684 \u7ec6\u5fae \u5fae\u5dee \u5dee\u522b \u7ec6\u5fae\u5dee\u522b \u3002 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 \u8003\u8651 \u4e86 \u5386\u53f2 \u8f68\u8ff9 \uff0c \u4f7f \u5176 \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u5177\u6709 \u4f18\u52bf \u3002 \u67b6\u6784 \u548c \u7ec4\u4ef6 \u6ce8\u610f \u6ce8\u610f\u529b \u673a\u5236 \uff1a \u6743\u8861 \u4e0d\u540c \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u70b9 \u7684 \u91cd\u8981 \u91cd\u8981\u6027 \u3002 \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 - \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u7ed3\u6784 \uff1a \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 \u5904\u7406 \u8f93\u5165 \u5e8f\u5217 \uff0c \u800c \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u4ea7\u751f \u9884\u6d4b \u8f68\u8ff9 \u3002 \u8f93\u5165 / \u8f93\u51fa \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u8f93\u5165 \uff1a \u5386\u53f2 \u8f68\u8ff9 \u6570\u636e \u3002 \u8f93\u51fa \uff1a \u7528 \u7f6e\u4fe1 \u4fe1\u533a \u533a\u95f4 \u7f6e\u4fe1\u533a\u95f4 \u9884\u6d4b \u672a\u6765 \u8f68\u8ff9 \u3002 \u5b9e\u65bd \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u7ef4\u62a4 \u73b0\u6709 \u7684 \u7b49\u901f \u8fd0\u52a8 \u7b49\u901f\u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u4ee5 \u786e\u4fdd \u57fa\u672c \u529f\u80fd \u57fa\u672c\u529f \u57fa\u672c\u529f\u80fd \u3002 \u4e86\u89e3 \u5e76 \u8bbe\u7f6e Motion Transformer \u7684 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u6570\u636e \u96c6 \u5e76 \u8fdb\u884c \u8bad\u7ec3 \u548c \u4eff\u771f \u6d4b\u8bd5 \u3002 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u5e76 \u786e\u4fdd \u6301\u7eed \u7684 \u6a21\u578b \u4f18\u5316 \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Sch \u00f6 ller C , Aravantinos V , Lay F , et al . \" What the constant velocity model can teach us about pedestrian motion prediction . \" In IEEE Robotics and Automation Letters , 2020 , 5 ( 2 ) : 1696 - 1703 . Shi S , Jiang L , Dai D , et al . \" Motion transformer with global intention localization and local movement refinement . \" In Advances in Neural Information Processing Systems , 2022 , 35 : 6531 - 6543 .","title":"Prediction"},{"location":"algorithms/prediction/#_1","text":"","title":"\u9884\u6d4b"},{"location":"algorithms/prediction/#_2","text":"\u9884\u6d4b \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u4e2d \u53d1\u6325 \u7740 \u5173\u952e \u4f5c\u7528 \u5173\u952e\u4f5c\u7528 \uff0c \u53ef\u4ee5 \u786e\u5b9a \u9053\u8def \u4ee3\u7406 \u53ef\u80fd \u91c7\u53d6 \u7684 \u884c\u52a8 \u4ee5 \u786e\u4fdd \u4fdd\u5b89 \u5b89\u5168 \u786e\u4fdd\u5b89\u5168 \u5bfc\u822a \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 \u6052\u901f \u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 Motion Transformer \u3002","title":"\u9884\u6d4b \u6a21\u5757 \u4ecb\u7ecd"},{"location":"algorithms/prediction/#_3","text":"","title":"\u6052\u901f \u8fd0\u52a8 \u9884\u6d4b\u5668"},{"location":"algorithms/prediction/#_4","text":"\u7b49\u901f \u6a21\u578b \u662f \u6700 \u57fa\u672c \u4f46 \u6709\u6548 \u7684 \u9884\u6d4b \u65b9\u6cd5 [ 1 ] \uff0c \u5047\u8bbe \u5b9e\u4f53 \u4ee5 \u6052\u5b9a \u901f\u5ea6 \u7ee7\u7eed \u5176 \u5f53\u524d \u8f68\u8ff9 \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u901a\u8fc7 Runge - Kutta 4 ( RK4 ) \u79ef\u5206 \u5bf9 \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6a21\u578b \u8fdb\u884c \u6b63\u5411 \u4eff\u771f \uff0c \u5047\u8bbe \u6ca1\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u8f6c\u5411 \u89d2 \u3002","title":"\u6982\u8ff0"},{"location":"algorithms/prediction/#_5","text":"\u9002\u7528 \u9002\u7528\u6027 \uff1a \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u8fd0\u52a8 \u76f8\u5bf9 \u7ebf\u6027 \u7684 \u9ad8\u901f \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 : \uff1a \u5728 \u57ce\u5e02 \u6216 \u62e5\u6324 \u7684 \u5730\u533a \uff0c \u8be5 \u6a21\u578b \u53ef\u80fd \u65e0\u6cd5 \u6355\u83b7 \u4ee3\u7406 \u7684 \u4e0d \u7a33\u5b9a \u8fd0\u52a8 \u3002","title":"\u9002\u7528\u6027 \u548c \u5c40\u9650\u6027"},{"location":"algorithms/prediction/#_6","text":"\u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u63a7\u5236 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u7684 \u4e3b\u8981 \u65b9\u7a0b \u662f \uff1a \u4f4d\u7f6e \u66f4\u65b0 : \u8f66\u8f86 \u540e\u8f6e \u7684 \u7a7a\u95f4 \u5750\u6807 \u968f \u65f6\u95f4 \u66f4\u65b0 ( t ) \u5230 \u65f6\u95f4 ( t + 1 ) \u4f5c\u4e3a $ $ x ( t + 1 ) = x ( t ) + v ( t ) \\ cos ( \\ theta ( t ) ) \\ Delta t $ $ $ $ y ( t + 1 ) = y ( t ) + v ( t ) \\ sin ( \\ theta ( t ) ) \\ Delta t $ $ \u822a\u5411 \u66f4\u65b0 \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u822a\u5411 \u66f4 \u6539\u4e3a \u8fd9\u91cc ( ( x , y ) ) \u4ee3\u8868 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \uff1b ( \\ theta ) \u662f \u8f66\u8f86 \u7684 \u822a\u5411 \uff1b ( v ) \u8868\u793a \u8f66\u8f86 \u7684 \u901f\u5ea6 \uff1b ( \\ delta ) \u662f \u524d\u8f6e \u7684 \u8f6c\u5411 \u89d2 \uff1b ( l _ { wb } ) \u4e3a \u8f74\u8ddd \uff0c \u5373 \u524d\u540e \u8f74 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \uff1b ( \\ Delta t ) \u662f \u65f6\u95f4 \u6b65\u957f \u3002 \u7136\u540e \u5e94\u7528 RK4 \u65b9\u6cd5 \u8fdb\u884c \u524d\u5411 \u4eff\u771f \uff0c \u4ee5 \u63d0\u9ad8 \u77ed\u671f \u671f\u5185 \u77ed\u671f\u5185 \u7684 \u9884\u6d4b \u7cbe\u5ea6 \u3002","title":"\u6570\u5b66\u6a21\u578b"},{"location":"algorithms/prediction/#_7","text":"\u516c\u8def \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u969c\u788d \u969c\u788d\u7269 \u6700\u5c11 \u7684 \u5f00\u653e \u533a\u57df \u3002 \u5728 ISS \u4e2d \uff0c \u91c7\u7528 \u7b49\u901f \u6a21\u578b \u6765 \u9884\u6d4b \u7ed3\u6784 \u7ed3\u6784\u5316 \u9053\u8def \u73af\u5883 \u4e2d \u7684 \u8fd0\u52a8 \u3002","title":"\u793a\u4f8b \u7528\u4f8b"},{"location":"algorithms/prediction/#motion-transformer","text":"","title":"Motion Transformer"},{"location":"algorithms/prediction/#_8","text":"Motion Transformer [ 2 ] \u662f \u4e00\u79cd \u6700 \u5148\u8fdb \u7684 \u6a21\u578b \uff0c \u5b83 \u8003\u8651 \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u6765 \u9884\u6d4b \u672a\u6765 \u7684 \u8f68\u8ff9 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u8fd0\u52a8 \u9884\u6d4b \u5efa\u6a21 \u4e3a \u5168\u5c40 \u610f\u56fe \u5b9a\u4f4d \u548c \u5c40\u90e8 \u8fd0\u52a8 \u7ec6\u5316 \u7684 \u8054\u5408 \u4f18\u5316 \u3002 \u9664\u4e86 \u8003\u8651 \u9053\u8def \u7ed3\u6784 \u7684 \u5168\u5c40 \u4fe1\u606f \u4e4b\u5916 \uff0c \u8be5 \u65b9\u6cd5 \u8fd8 \u901a\u8fc7 \u9002\u5e94 \u53ef \u5b66\u4e60 \u7684 \u8fd0\u52a8 \u67e5\u8be2 \u6765 \u5408\u5e76 \u4e0d\u540c \u7684 \u8fd0\u52a8 \u6a21\u5f0f \u3002 Motion Transformer \u7684 \u6574\u4f53 \u7ed3\u6784 \u5982\u4e0b \u56fe \u6240\u793a \u3002 motion transformer \u7684 \u7ed3\u6784 [ 2 ]","title":"\u6982\u8ff0"},{"location":"algorithms/prediction/#motion-transformer_1","text":"\u8f83 \u7b80\u5355 \u7684 \u6a21\u578b \u7f3a\u4e4f \u590d\u6742 \u73af\u5883 \u6240 \u9700 \u7684 \u7ec6\u5fae \u5fae\u5dee \u5dee\u522b \u7ec6\u5fae\u5dee\u522b \u3002 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 \u8003\u8651 \u4e86 \u5386\u53f2 \u8f68\u8ff9 \uff0c \u4f7f \u5176 \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u5177\u6709 \u4f18\u52bf \u3002","title":"\u4e3a\u4ec0\u4e48 \u9009\u62e9 Motion Transformer ?"},{"location":"algorithms/prediction/#_9","text":"\u6ce8\u610f \u6ce8\u610f\u529b \u673a\u5236 \uff1a \u6743\u8861 \u4e0d\u540c \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u70b9 \u7684 \u91cd\u8981 \u91cd\u8981\u6027 \u3002 \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 - \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u7ed3\u6784 \uff1a \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 \u5904\u7406 \u8f93\u5165 \u5e8f\u5217 \uff0c \u800c \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u4ea7\u751f \u9884\u6d4b \u8f68\u8ff9 \u3002","title":"\u67b6\u6784 \u548c \u7ec4\u4ef6"},{"location":"algorithms/prediction/#_10","text":"\u8f93\u5165 \uff1a \u5386\u53f2 \u8f68\u8ff9 \u6570\u636e \u3002 \u8f93\u51fa \uff1a \u7528 \u7f6e\u4fe1 \u4fe1\u533a \u533a\u95f4 \u7f6e\u4fe1\u533a\u95f4 \u9884\u6d4b \u672a\u6765 \u8f68\u8ff9 \u3002","title":"\u8f93\u5165 / \u8f93\u51fa \u8be6\u7ec6\u4fe1\u606f"},{"location":"algorithms/prediction/#_11","text":"\u7ef4\u62a4 \u73b0\u6709 \u7684 \u7b49\u901f \u8fd0\u52a8 \u7b49\u901f\u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u4ee5 \u786e\u4fdd \u57fa\u672c \u529f\u80fd \u57fa\u672c\u529f \u57fa\u672c\u529f\u80fd \u3002 \u4e86\u89e3 \u5e76 \u8bbe\u7f6e Motion Transformer \u7684 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u6570\u636e \u96c6 \u5e76 \u8fdb\u884c \u8bad\u7ec3 \u548c \u4eff\u771f \u6d4b\u8bd5 \u3002 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u5e76 \u786e\u4fdd \u6301\u7eed \u7684 \u6a21\u578b \u4f18\u5316 \u3002","title":"\u5b9e\u65bd \u8def\u7ebf\u56fe"},{"location":"algorithms/prediction/#_12","text":"Sch \u00f6 ller C , Aravantinos V , Lay F , et al . \" What the constant velocity model can teach us about pedestrian motion prediction . \" In IEEE Robotics and Automation Letters , 2020 , 5 ( 2 ) : 1696 - 1703 . Shi S , Jiang L , Dai D , et al . \" Motion transformer with global intention localization and local movement refinement . \" In Advances in Neural Information Processing Systems , 2022 , 35 : 6531 - 6543 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/Control_/","text":"Control Introduction to the Control Module The Control module is responsible for generating control commands to steer the vehicle and maintain its desired trajectory . [ 1 ] In this documentation , we outline our current methodologies , from the simple PID controller to the more advanced Model Predictive Control ( MPC ) . PID Controller for Waypoint Tracking Overview : The PID controller is one of the fundamental control algorithms in our autonomous driving pipeline . It continuously calculates an \" error \" value as the difference between a desired setpoint ( in this case , waypoints ) and the current vehicle position . Components : The PID controller include three components , as its name suggests : - Proportional ( P ) : provides a control output to correct the current position error . - Integral ( I ) : Corrects the accumulation of past errors . - Derivative ( D ) : predicts and counters the future error trend based on its current rate of change . Application : We use the PID controller primarily for waypoint tracking , maintaining lane position , and ensuring the vehicle follows a predefined path with minimal deviation . Model Predictive Control ( MPC ) for Trajectory Tracking Overview : Model Predictive Control ( MPC ) [ 2 ] is an advanced control technique that uses a model of the vehicle ' s dynamics to predict its future states over a defined horizon . At each time step , the MPC algorithm solves an optimization problem to find the optimal control inputs , considering vehicle dynamics , constraints , and the desired trajectory . Key Features : The MPC controller involves three key features to decide what actions to perform to control the vehicle ' s movement : - Prediction Model : predicts future states of the vehicle based on its current state and potential control inputs . - Optimization : continuously solves an optimization problem to determine the best control actions over the prediction horizon . - Receding Horizon Strategy : implements only the first control action of the optimized sequence and re - evaluates at the next time step , adapting to changing conditions . Application : The MPC controller will be instrumental in scenarios where precise trajectory tracking is essential , especially in complex driving environments with dynamic obstacles , tight curves , and varying road conditions . By anticipating future states and constraints , MPC offers enhanced path following accuracy and robustness compared to traditional controllers . Implementation Roadmap : Maintain and fine - tune the existing PID controller to ensure basic waypoint tracking functionality . Develop a mathematical model representing the vehicle ' s dynamics . Integrate optimization solvers compatible with our system architecture for MPC . Design and implement the MPC framework , ensuring it considers vehicle constraints . Test the MPC in simulation for various scenarios and refine the model and controller parameters . Gradually deploy and evaluate the MPC in real - world tests , starting with low - complexity environments and escalating to more challenging scenarios . References Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"Control"},{"location":"algorithms/Control_/#control","text":"","title":"Control"},{"location":"algorithms/Control_/#introduction-to-the-control-module","text":"The Control module is responsible for generating control commands to steer the vehicle and maintain its desired trajectory . [ 1 ] In this documentation , we outline our current methodologies , from the simple PID controller to the more advanced Model Predictive Control ( MPC ) .","title":"Introduction to the Control Module"},{"location":"algorithms/Control_/#pid-controller-for-waypoint-tracking","text":"","title":"PID Controller for Waypoint Tracking"},{"location":"algorithms/Control_/#overview","text":"The PID controller is one of the fundamental control algorithms in our autonomous driving pipeline . It continuously calculates an \" error \" value as the difference between a desired setpoint ( in this case , waypoints ) and the current vehicle position .","title":"Overview :"},{"location":"algorithms/Control_/#components","text":"The PID controller include three components , as its name suggests : - Proportional ( P ) : provides a control output to correct the current position error . - Integral ( I ) : Corrects the accumulation of past errors . - Derivative ( D ) : predicts and counters the future error trend based on its current rate of change .","title":"Components :"},{"location":"algorithms/Control_/#application","text":"We use the PID controller primarily for waypoint tracking , maintaining lane position , and ensuring the vehicle follows a predefined path with minimal deviation .","title":"Application :"},{"location":"algorithms/Control_/#model-predictive-control-mpc-for-trajectory-tracking","text":"","title":"Model Predictive Control ( MPC ) for Trajectory Tracking"},{"location":"algorithms/Control_/#overview_1","text":"Model Predictive Control ( MPC ) [ 2 ] is an advanced control technique that uses a model of the vehicle ' s dynamics to predict its future states over a defined horizon . At each time step , the MPC algorithm solves an optimization problem to find the optimal control inputs , considering vehicle dynamics , constraints , and the desired trajectory .","title":"Overview :"},{"location":"algorithms/Control_/#key-features","text":"The MPC controller involves three key features to decide what actions to perform to control the vehicle ' s movement : - Prediction Model : predicts future states of the vehicle based on its current state and potential control inputs . - Optimization : continuously solves an optimization problem to determine the best control actions over the prediction horizon . - Receding Horizon Strategy : implements only the first control action of the optimized sequence and re - evaluates at the next time step , adapting to changing conditions .","title":"Key Features :"},{"location":"algorithms/Control_/#application_1","text":"The MPC controller will be instrumental in scenarios where precise trajectory tracking is essential , especially in complex driving environments with dynamic obstacles , tight curves , and varying road conditions . By anticipating future states and constraints , MPC offers enhanced path following accuracy and robustness compared to traditional controllers .","title":"Application :"},{"location":"algorithms/Control_/#implementation-roadmap","text":"Maintain and fine - tune the existing PID controller to ensure basic waypoint tracking functionality . Develop a mathematical model representing the vehicle ' s dynamics . Integrate optimization solvers compatible with our system architecture for MPC . Design and implement the MPC framework , ensuring it considers vehicle constraints . Test the MPC in simulation for various scenarios and refine the model and controller parameters . Gradually deploy and evaluate the MPC in real - world tests , starting with low - complexity environments and escalating to more challenging scenarios .","title":"Implementation Roadmap :"},{"location":"algorithms/Control_/#references","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"References"},{"location":"algorithms/Control_/pid/","text":"To - DO !","title":"PID Controller"},{"location":"algorithms/DRL/_index/","text":"Deep Reinforcement Learning Deep Reinforcement Learning ( DRL ) is an area of machine learning that focuses on training agents to make sequences of decisions by interacting with an environment . The agent seeks to learn the best strategy , or policy , to achieve the maximum cumulative reward over time . DRL has shown impressive results in various domains , from game playing to robotic control . { : . center - image width = \" 70% \" } Reinforcement Learning Pipeline { : . text - center } Our Plan 1 . Problem Formulation Define the specific navigation tasks we want the robot to accomplish such as waypoint following , obstacle avoidance , etc . We will then set up the reward structure to encourage these desired behaviors . 2 . Simulator Setup We will be using an appropriate simulator for Ackermann robots , possibly Gazebo , Webots , or even a custom simulator . The goal is to model the robot ' s dynamics and sensory inputs as accurately as possible . 3 . Baseline DRL Algorithm Selection Our starting point will be popular reinforcement learning algorithms like Proximal Policy Optimization ( PPO ) , Deep Q - Network ( DQN ) , or Twin Delayed Deep Deterministic Policy Gradient ( TD3 ) . We are going to use Stable Baselines3 for our DRL algorithms . Stable Baselines3 is a set of improved implementations of reinforcement learning algorithms in PyTorch . 4 . Training in Simulation Starting with a basic environment ( few obstacles , clear paths ) , we will progress to more intricate scenarios . We will monitor the agent ' s training progress and tune hyperparameters for optimal performance . A few simulators we are considering are listed below : Simulator Strengths Weaknesses Gazebo ( ROS ) - Easy sim - to - real experiments . - Integrates well with the ROS ecosystem . - Slow simulation speeds . - Requires proficiency in ROS . Isaac Sim ( NVIDIA ) - GPU acceleration for fast training . - High - quality graphics . - Steeper learning curve . - May require advanced hardware . Carla - Complex sensor data . - Real vehicle physics . - Slow simulations . - High computational resource needs . SMARTS ( Huawei ) - Great visualization . - Broad action space for RL in driving . - Might be challenging for newcomers . - Specific environment understanding required . 5 . Transfer Learning and Domain Adaptation Given the known challenges of the sim - to - real gap , we will implement techniques like domain randomization in the simulator and consider fine - tuning on the real robot . 6 . Safety Precautions Safety is paramount . When transitioning to a real robot , we ' ll ensure protocols are in place to protect both the robot and its surroundings . 7 . Evaluation We will set up evaluation metrics to gauge the performance of our agent in real - world settings , comparing different algorithms to identify the most suitable one . 8 . Iterate and Improve Using feedback from real - world testing , we ' ll refine our simulation , reward designs , and DRL algorithms to continually enhance performance .","title":"Reinforcement Learning"},{"location":"algorithms/DRL/_index/#deep-reinforcement-learning","text":"Deep Reinforcement Learning ( DRL ) is an area of machine learning that focuses on training agents to make sequences of decisions by interacting with an environment . The agent seeks to learn the best strategy , or policy , to achieve the maximum cumulative reward over time . DRL has shown impressive results in various domains , from game playing to robotic control . { : . center - image width = \" 70% \" } Reinforcement Learning Pipeline { : . text - center }","title":"Deep Reinforcement Learning"},{"location":"algorithms/DRL/_index/#our-plan","text":"","title":"Our Plan"},{"location":"algorithms/DRL/_index/#1-problem-formulation","text":"Define the specific navigation tasks we want the robot to accomplish such as waypoint following , obstacle avoidance , etc . We will then set up the reward structure to encourage these desired behaviors .","title":"1 . Problem Formulation"},{"location":"algorithms/DRL/_index/#2-simulator-setup","text":"We will be using an appropriate simulator for Ackermann robots , possibly Gazebo , Webots , or even a custom simulator . The goal is to model the robot ' s dynamics and sensory inputs as accurately as possible .","title":"2 . Simulator Setup"},{"location":"algorithms/DRL/_index/#3-baseline-drl-algorithm-selection","text":"Our starting point will be popular reinforcement learning algorithms like Proximal Policy Optimization ( PPO ) , Deep Q - Network ( DQN ) , or Twin Delayed Deep Deterministic Policy Gradient ( TD3 ) . We are going to use Stable Baselines3 for our DRL algorithms . Stable Baselines3 is a set of improved implementations of reinforcement learning algorithms in PyTorch .","title":"3 . Baseline DRL Algorithm Selection"},{"location":"algorithms/DRL/_index/#4-training-in-simulation","text":"Starting with a basic environment ( few obstacles , clear paths ) , we will progress to more intricate scenarios . We will monitor the agent ' s training progress and tune hyperparameters for optimal performance . A few simulators we are considering are listed below : Simulator Strengths Weaknesses Gazebo ( ROS ) - Easy sim - to - real experiments . - Integrates well with the ROS ecosystem . - Slow simulation speeds . - Requires proficiency in ROS . Isaac Sim ( NVIDIA ) - GPU acceleration for fast training . - High - quality graphics . - Steeper learning curve . - May require advanced hardware . Carla - Complex sensor data . - Real vehicle physics . - Slow simulations . - High computational resource needs . SMARTS ( Huawei ) - Great visualization . - Broad action space for RL in driving . - Might be challenging for newcomers . - Specific environment understanding required .","title":"4 . Training in Simulation"},{"location":"algorithms/DRL/_index/#5-transfer-learning-and-domain-adaptation","text":"Given the known challenges of the sim - to - real gap , we will implement techniques like domain randomization in the simulator and consider fine - tuning on the real robot .","title":"5 . Transfer Learning and Domain Adaptation"},{"location":"algorithms/DRL/_index/#6-safety-precautions","text":"Safety is paramount . When transitioning to a real robot , we ' ll ensure protocols are in place to protect both the robot and its surroundings .","title":"6 . Safety Precautions"},{"location":"algorithms/DRL/_index/#7-evaluation","text":"We will set up evaluation metrics to gauge the performance of our agent in real - world settings , comparing different algorithms to identify the most suitable one .","title":"7 . Evaluation"},{"location":"algorithms/DRL/_index/#8-iterate-and-improve","text":"Using feedback from real - world testing , we ' ll refine our simulation , reward designs , and DRL algorithms to continually enhance performance .","title":"8 . Iterate and Improve"},{"location":"algorithms/Mapping/","text":"To - DO ! !","title":"Mapping"},{"location":"algorithms/Planning_/","text":"Planning Introduction to the Planning Module The autonomous driving pipeline encompasses a multitude of components , from perception to control . Central to this pipeline is the \" Planning module \" , responsible for making strategic and tactical decisions about the vehicle ' s movement . This module breaks down into three key stages : Route Planning , Behavior Planning , and Motion Planning , planning the movement of the vehicle at different levels of granularity and accuracy . In this post , we will explore each stage in - depth . { : . center - image width = \" 100% \" } Pipeline of planning and control { : . text - center } Route Planning Objective The task of route planning stage is to find the most effective course from the current location to the desired destination , much like how conventional GPS navigation systems operate . Modern route planning algorithms are able to return an optimal route on large scale in real time , after a one - time pre - processing step [ 1 ] . For a more comprehensive survey , refer to the paper by Bast et al [ 2 ] . Inputs The route planning stage takes as input high - level information about the world , such as : - the coordinates of the start point and of the end point ; - the topology of the road network ; - the traffic conditions ; and - possible permanent obstacles . Outputs The route planning stage generates as output a path or a series of waypoints bridging the start and destination , while sidestepping any permanent obstacles . Challenges There are many challenges the road planning module has to take into consideration when computing the most effective course , such as - adapting to changing road situations ; - incorporating real - time traffic details ; and - ensuring the chosen route is both safe and efficient . Behavior Planning Objective The main task of the behavior planning stage is to dictate the vehicle ' s overarching behavior , from decisions about lane switches , overtaking , yielding , to making turns . Nowadays , the behavior planning modules often incorporate the interaction between the ego vehicle and other agents on the road , such as other vehicles [ 3 ] . Inputs To achieve its goal , the behavior planning stage uses information from multiple sources , such as - the designated route obtained from the route planning ; - data about neighboring vehicles and pedestrians ( sourced from LiDAR , radar , cameras , etc . ) ; - traffic light information ; and - other pertinent environmental data . Outputs The output of the behavior planning consists of macro - level directives like \" shift to the left lane \" , \" trail the vehicle in front \" , or \" get ready to turn right \" as well as coarse trajectories that reflect these directives . Challenges In making its decisions , the behavior planning stage needs to address multiple issues , such as - anticipating the intentions and forthcoming actions of surrounding drivers and pedestrians ; - adopting a safe decision formulation in intricate scenarios ; and - navigating uncommon edge cases . Motion Planning Objective The last stage of the planning module workflow is motion planning , whose aim is to chart a trajectory that is both safe and consistent for the vehicle , reflecting the behavior objectives and staying within the vehicle ' s dynamic and kinematic constraints [ 1 ] . Inputs To produce a smooth trajectory for the vehicle , the motion planning needs multiple types of data , like - the intended behavior established by the behavior planning ; - the present vehicle state ( such as position , speed , and acceleration ) ; - the road map details ; and - data about dynamic obstructions . Outputs The outcome of the motion planning stage is an optimized trajectory , detailing the vehicle ' s state over a specified time frame . Challenges To produce such an optimized trajectory , the motion planning faces multiple challenges , such as - crafting trajectories that avoid collisions and are streamlined ; - managing noisy and uncertain data from sensors ; and - real - time trajectory mapping . References Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"Planning"},{"location":"algorithms/Planning_/#planning","text":"","title":"Planning"},{"location":"algorithms/Planning_/#introduction-to-the-planning-module","text":"The autonomous driving pipeline encompasses a multitude of components , from perception to control . Central to this pipeline is the \" Planning module \" , responsible for making strategic and tactical decisions about the vehicle ' s movement . This module breaks down into three key stages : Route Planning , Behavior Planning , and Motion Planning , planning the movement of the vehicle at different levels of granularity and accuracy . In this post , we will explore each stage in - depth . { : . center - image width = \" 100% \" } Pipeline of planning and control { : . text - center }","title":"Introduction to the Planning Module"},{"location":"algorithms/Planning_/#route-planning","text":"","title":"Route Planning"},{"location":"algorithms/Planning_/#objective","text":"The task of route planning stage is to find the most effective course from the current location to the desired destination , much like how conventional GPS navigation systems operate . Modern route planning algorithms are able to return an optimal route on large scale in real time , after a one - time pre - processing step [ 1 ] . For a more comprehensive survey , refer to the paper by Bast et al [ 2 ] .","title":"Objective"},{"location":"algorithms/Planning_/#inputs","text":"The route planning stage takes as input high - level information about the world , such as : - the coordinates of the start point and of the end point ; - the topology of the road network ; - the traffic conditions ; and - possible permanent obstacles .","title":"Inputs"},{"location":"algorithms/Planning_/#outputs","text":"The route planning stage generates as output a path or a series of waypoints bridging the start and destination , while sidestepping any permanent obstacles .","title":"Outputs"},{"location":"algorithms/Planning_/#challenges","text":"There are many challenges the road planning module has to take into consideration when computing the most effective course , such as - adapting to changing road situations ; - incorporating real - time traffic details ; and - ensuring the chosen route is both safe and efficient .","title":"Challenges"},{"location":"algorithms/Planning_/#behavior-planning","text":"","title":"Behavior Planning"},{"location":"algorithms/Planning_/#objective_1","text":"The main task of the behavior planning stage is to dictate the vehicle ' s overarching behavior , from decisions about lane switches , overtaking , yielding , to making turns . Nowadays , the behavior planning modules often incorporate the interaction between the ego vehicle and other agents on the road , such as other vehicles [ 3 ] .","title":"Objective"},{"location":"algorithms/Planning_/#inputs_1","text":"To achieve its goal , the behavior planning stage uses information from multiple sources , such as - the designated route obtained from the route planning ; - data about neighboring vehicles and pedestrians ( sourced from LiDAR , radar , cameras , etc . ) ; - traffic light information ; and - other pertinent environmental data .","title":"Inputs"},{"location":"algorithms/Planning_/#outputs_1","text":"The output of the behavior planning consists of macro - level directives like \" shift to the left lane \" , \" trail the vehicle in front \" , or \" get ready to turn right \" as well as coarse trajectories that reflect these directives .","title":"Outputs"},{"location":"algorithms/Planning_/#challenges_1","text":"In making its decisions , the behavior planning stage needs to address multiple issues , such as - anticipating the intentions and forthcoming actions of surrounding drivers and pedestrians ; - adopting a safe decision formulation in intricate scenarios ; and - navigating uncommon edge cases .","title":"Challenges"},{"location":"algorithms/Planning_/#motion-planning","text":"","title":"Motion Planning"},{"location":"algorithms/Planning_/#objective_2","text":"The last stage of the planning module workflow is motion planning , whose aim is to chart a trajectory that is both safe and consistent for the vehicle , reflecting the behavior objectives and staying within the vehicle ' s dynamic and kinematic constraints [ 1 ] .","title":"Objective"},{"location":"algorithms/Planning_/#inputs_2","text":"To produce a smooth trajectory for the vehicle , the motion planning needs multiple types of data , like - the intended behavior established by the behavior planning ; - the present vehicle state ( such as position , speed , and acceleration ) ; - the road map details ; and - data about dynamic obstructions .","title":"Inputs"},{"location":"algorithms/Planning_/#outputs_2","text":"The outcome of the motion planning stage is an optimized trajectory , detailing the vehicle ' s state over a specified time frame .","title":"Outputs"},{"location":"algorithms/Planning_/#challenges_2","text":"To produce such an optimized trajectory , the motion planning faces multiple challenges , such as - crafting trajectories that avoid collisions and are streamlined ; - managing noisy and uncertain data from sensors ; and - real - time trajectory mapping .","title":"Challenges"},{"location":"algorithms/Planning_/#references","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"References"},{"location":"algorithms/Planning_/frenet_lattice/","text":"frenet _ lattice The frenet _ lattice planner is a lattice local planner that implements the trajectory generation algorithm proposed in the paper Optimal Trajectory Generation for Dynamic Street Scenarios in a Fren \u00e9 t Frame . In the frenet _ lattice planner , you can just use LatticePlanner . run _ step to get trajectory with inputs , such as current Cartesian state , etc . Inputs The inputs of frenet _ lattice planner can come from the Carla simulator or from physical environments ; they include several types of data , such as a map providing the road network related information to the frenet _ lattice planner such as the lane width of the different roads , traffic light positions , standard speed limits , etc . The most common types of maps are : lanelet , OpenDRIVE , etc . ; the path generated by the global route planner , providing a reference course leading to the desired destination ; some obstacle information about obstacles on the current road , such as their position , yaw , bounding box , etc . ; the decision generated by behavior planner on how to control the vehicle , such as the velocity to keep , Following , Merging , Stopping , etc . Outputs The output of frenet _ lattice is a trajectory which contains position and speed of the vehicle . Such a trajectory must be dynamically feasible for the vehicle , comfortable for the passenger , and avoid collisions with obstacles detected by the on - board sensors . In practice , the output consists of the trajectory to follow , including information about speed , position , and its cost . FrenetPath ( class ) Store the trajectories ( paths ) which are generated by frenet _ lattice planner . This class not only contain Frenet coordinate [ s , s _ d , s _ dd , s _ ddd , d , d _ dd , d _ ddd ] and Cartesian coordinate [ x , y , yaw , ds , c ] , but also cost of trajectory . Instance Variables t ( list ( float - seconds ) ) Time of each Frenet point in Frenet path . s ( list ( float - meters ) ) Frenet longitudinal movement . Also represents the arc length , indicates the distance a vehicle has traveled along the road centerline . The value of s can be used to denote the vehicle ' s position . d ( list ( float - meters ) ) Frenet lateral offset . Indicates the lateral distance of the vehicle relative to the road centerline . The value of d can be used to represent the vehicle ' s lateral position . A positive value indicates the vehicle is on the right side of the road , while a negative value indicates the left side . s _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Indicates the speed of the vehicle in the direction along the road centerline . d _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Represents the derivative of lateral offset d with respect to time . It denotes the rate of change of lateral offset , indicating how rapidly the vehicle is changing its lateral position . s _ dd ( list ( float - m / s 2 ) ) Frenet longitudinal acceleration . Represents the rate of change of longitudinal velocity . It quantifies how quickly the vehicle is speeding up or slowing down along the road . d _ dd ( list ( float - m / s 2 ) ) Frenet lateral acceleration . Represents the rate of change of lateral velocity . It quantifies how quickly the lateral speed of the vehicle changes over time . s _ ddd ( list ( float - m / s 3 ) ) Frenet longitudinal jerk . Represents the rate of change of longitudinal acceleration . It is related to driving comfort . d _ ddd ( list ( float - m / s 3 ) ) Frenet lateral jerk . Represents the rate of change of lateral acceleration . It is related to driving comfort . x ( list ( float - seconds ) ) Cartesian horizontal coordinate x - axis . It measures the horizontal distance of an object relative to a coordinate origin point . y ( list ( float - meters ) ) Cartesian vertical coordinate y - axis . It measures the vertical distance of an object relative to a coordinate origin point . yaw ( list ( float - radians ) ) Cartesian yaw angle . It is the orientation angle of the object . ds ( list ( float - meters ) ) Cartesian arc length . It is the distance between two trajectories ' points . c ( list ( float - 1 / radian ) ) Cartesian curvature . It describes the degree of curvature of trajectories . cv ( float ) Frenet longitudinal s ( velocity ) Cost of this trajectory . Initial with zero . cd ( float ) Frenet lateral d Cost of this trajectory . Initial with zero . cf ( float ) Final Cost of this trajectory . It is the sum of longitudinal and lateral Cost . Initial with zero . LatticePlanner ( class ) LatticePlanner is a local planner which generate the best trajectory , so called FrenetPath with inputs , including map , global waypoints , etc . Instance Variables route _ graph ( DataType = Unkown ) A graph that represents the road network based on a lanelet map and traffic rules . In FrenetPlanner , it ' s used to get left / right lane for lateral planning . waypoints _ xy ( list ( list ( float , float ) ) ) The list of xy coordinate which is the outputs of global planner which is so called global waypoints . For instance , [ [ x 0 , y 0 ] , [ x 1 , y 1 ] , ... ] . state _ cartesian ( list ) Current cartesian state , defined as [ x , y , yaw , v , a ] , where x y is xy coordinates , yaw refers to rotation around the vertical axis , v is velocity , a is acceleration . state _ cartesian is measured in [ meters , meters , radians , m / s , m / s 2 ] . state _ frenet ( list ) Current frenet state , defined as [ s , s _ d , s _ dd , d , d _ d , d _ dd ] . Where , s s _ d and s _ dd represents Frenet longitudinal coordinate velocity and acceleration , d , d _ d and d _ dd represents lateral coordinate velocity and acceleration . state _ frenet is measured in [ meters , m / s , m / s 2 , meters , m / s , m / s 2 ] . best _ path ( FrenetPath ) The best trajectory ( path ) of FrenetPlanner based on current state _ frenet . road _ detector ( Sensor ) Detect road . Return road line position . obstacle _ detector ( Sensor ) Detect obstacle . Return True when obstacle is nearby the trajectory . Methods _ generate _ target _ course ( self ) Generates smooth reference line based on global waypoints by using cubic spline . Return : rx , ry , ryaw , rk , csp _ calc _ frenet _ paths ( self ) Generates all frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate by sampling time Ti , lateral d lat _ qp and longitudinal s lon _ qp . Return : frenet _ paths ( list ( FrenetPath ) ) _ calc _ frenet _ paths ( self , fplist ) Gets Cartesian coordinate of frenet _ paths . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate . Return : filtered _ fplist ( list ( FrenetPath ) ) - which contain Cartesian coordinate , Frenet coordinate and cost . _ check _ paths ( self , fplist ) Gets comfortable , kinematically feasible trajectories . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which contain Cartesian coordinate , Frenet coordinate and cost . Return : fplist ( list ( FrenetPath ) ) - which is comfortable and kinematically feasible . frenet _ optimal _ planning ( self ) Gets best trajectory . First generates all trajectories which is not containing Cartesian coordinate by using methods LatticePlanner ._ generate _ target _ course . Then gets Cartesian coordinate trajectories by using method LatticePlanner ._ calc _ frenet _ paths and filters not kinematically feasible trajectories by using LatticePlanner ._ check _ paths . Finally , gets best trajectory by minimizing the cost . Return : best _ path ( FrenetPath ) - Trajectory with minimum cost . run _ step ( self , state _ cartesian ) Main method of LatticePlanner which calls method frenet _ optimal _ planning to get a best trajectory . Parameters : state _ cartesian ( [ x , y , yaw , ds , c ] ) - Currenet Cartesian coordinate of ego vehicle . Return : Trajectory ( waypoints , speeds ) ( _ Trajectory ) - which is the list of waypoint [ x , y ] _ and speed .","title":"Frenet Optimal Trajectory"},{"location":"algorithms/Planning_/frenet_lattice/#frenet_lattice","text":"The frenet _ lattice planner is a lattice local planner that implements the trajectory generation algorithm proposed in the paper Optimal Trajectory Generation for Dynamic Street Scenarios in a Fren \u00e9 t Frame . In the frenet _ lattice planner , you can just use LatticePlanner . run _ step to get trajectory with inputs , such as current Cartesian state , etc .","title":"frenet _ lattice"},{"location":"algorithms/Planning_/frenet_lattice/#inputs","text":"The inputs of frenet _ lattice planner can come from the Carla simulator or from physical environments ; they include several types of data , such as a map providing the road network related information to the frenet _ lattice planner such as the lane width of the different roads , traffic light positions , standard speed limits , etc . The most common types of maps are : lanelet , OpenDRIVE , etc . ; the path generated by the global route planner , providing a reference course leading to the desired destination ; some obstacle information about obstacles on the current road , such as their position , yaw , bounding box , etc . ; the decision generated by behavior planner on how to control the vehicle , such as the velocity to keep , Following , Merging , Stopping , etc .","title":"Inputs"},{"location":"algorithms/Planning_/frenet_lattice/#outputs","text":"The output of frenet _ lattice is a trajectory which contains position and speed of the vehicle . Such a trajectory must be dynamically feasible for the vehicle , comfortable for the passenger , and avoid collisions with obstacles detected by the on - board sensors . In practice , the output consists of the trajectory to follow , including information about speed , position , and its cost .","title":"Outputs"},{"location":"algorithms/Planning_/frenet_lattice/#frenetpath-class","text":"Store the trajectories ( paths ) which are generated by frenet _ lattice planner . This class not only contain Frenet coordinate [ s , s _ d , s _ dd , s _ ddd , d , d _ dd , d _ ddd ] and Cartesian coordinate [ x , y , yaw , ds , c ] , but also cost of trajectory .","title":"FrenetPath ( class )"},{"location":"algorithms/Planning_/frenet_lattice/#instance-variables","text":"t ( list ( float - seconds ) ) Time of each Frenet point in Frenet path . s ( list ( float - meters ) ) Frenet longitudinal movement . Also represents the arc length , indicates the distance a vehicle has traveled along the road centerline . The value of s can be used to denote the vehicle ' s position . d ( list ( float - meters ) ) Frenet lateral offset . Indicates the lateral distance of the vehicle relative to the road centerline . The value of d can be used to represent the vehicle ' s lateral position . A positive value indicates the vehicle is on the right side of the road , while a negative value indicates the left side . s _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Indicates the speed of the vehicle in the direction along the road centerline . d _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Represents the derivative of lateral offset d with respect to time . It denotes the rate of change of lateral offset , indicating how rapidly the vehicle is changing its lateral position . s _ dd ( list ( float - m / s 2 ) ) Frenet longitudinal acceleration . Represents the rate of change of longitudinal velocity . It quantifies how quickly the vehicle is speeding up or slowing down along the road . d _ dd ( list ( float - m / s 2 ) ) Frenet lateral acceleration . Represents the rate of change of lateral velocity . It quantifies how quickly the lateral speed of the vehicle changes over time . s _ ddd ( list ( float - m / s 3 ) ) Frenet longitudinal jerk . Represents the rate of change of longitudinal acceleration . It is related to driving comfort . d _ ddd ( list ( float - m / s 3 ) ) Frenet lateral jerk . Represents the rate of change of lateral acceleration . It is related to driving comfort . x ( list ( float - seconds ) ) Cartesian horizontal coordinate x - axis . It measures the horizontal distance of an object relative to a coordinate origin point . y ( list ( float - meters ) ) Cartesian vertical coordinate y - axis . It measures the vertical distance of an object relative to a coordinate origin point . yaw ( list ( float - radians ) ) Cartesian yaw angle . It is the orientation angle of the object . ds ( list ( float - meters ) ) Cartesian arc length . It is the distance between two trajectories ' points . c ( list ( float - 1 / radian ) ) Cartesian curvature . It describes the degree of curvature of trajectories . cv ( float ) Frenet longitudinal s ( velocity ) Cost of this trajectory . Initial with zero . cd ( float ) Frenet lateral d Cost of this trajectory . Initial with zero . cf ( float ) Final Cost of this trajectory . It is the sum of longitudinal and lateral Cost . Initial with zero .","title":"Instance Variables"},{"location":"algorithms/Planning_/frenet_lattice/#latticeplanner-class","text":"LatticePlanner is a local planner which generate the best trajectory , so called FrenetPath with inputs , including map , global waypoints , etc .","title":"LatticePlanner ( class )"},{"location":"algorithms/Planning_/frenet_lattice/#instance-variables_1","text":"route _ graph ( DataType = Unkown ) A graph that represents the road network based on a lanelet map and traffic rules . In FrenetPlanner , it ' s used to get left / right lane for lateral planning . waypoints _ xy ( list ( list ( float , float ) ) ) The list of xy coordinate which is the outputs of global planner which is so called global waypoints . For instance , [ [ x 0 , y 0 ] , [ x 1 , y 1 ] , ... ] . state _ cartesian ( list ) Current cartesian state , defined as [ x , y , yaw , v , a ] , where x y is xy coordinates , yaw refers to rotation around the vertical axis , v is velocity , a is acceleration . state _ cartesian is measured in [ meters , meters , radians , m / s , m / s 2 ] . state _ frenet ( list ) Current frenet state , defined as [ s , s _ d , s _ dd , d , d _ d , d _ dd ] . Where , s s _ d and s _ dd represents Frenet longitudinal coordinate velocity and acceleration , d , d _ d and d _ dd represents lateral coordinate velocity and acceleration . state _ frenet is measured in [ meters , m / s , m / s 2 , meters , m / s , m / s 2 ] . best _ path ( FrenetPath ) The best trajectory ( path ) of FrenetPlanner based on current state _ frenet . road _ detector ( Sensor ) Detect road . Return road line position . obstacle _ detector ( Sensor ) Detect obstacle . Return True when obstacle is nearby the trajectory .","title":"Instance Variables"},{"location":"algorithms/Planning_/frenet_lattice/#methods","text":"_ generate _ target _ course ( self ) Generates smooth reference line based on global waypoints by using cubic spline . Return : rx , ry , ryaw , rk , csp _ calc _ frenet _ paths ( self ) Generates all frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate by sampling time Ti , lateral d lat _ qp and longitudinal s lon _ qp . Return : frenet _ paths ( list ( FrenetPath ) ) _ calc _ frenet _ paths ( self , fplist ) Gets Cartesian coordinate of frenet _ paths . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate . Return : filtered _ fplist ( list ( FrenetPath ) ) - which contain Cartesian coordinate , Frenet coordinate and cost . _ check _ paths ( self , fplist ) Gets comfortable , kinematically feasible trajectories . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which contain Cartesian coordinate , Frenet coordinate and cost . Return : fplist ( list ( FrenetPath ) ) - which is comfortable and kinematically feasible . frenet _ optimal _ planning ( self ) Gets best trajectory . First generates all trajectories which is not containing Cartesian coordinate by using methods LatticePlanner ._ generate _ target _ course . Then gets Cartesian coordinate trajectories by using method LatticePlanner ._ calc _ frenet _ paths and filters not kinematically feasible trajectories by using LatticePlanner ._ check _ paths . Finally , gets best trajectory by minimizing the cost . Return : best _ path ( FrenetPath ) - Trajectory with minimum cost . run _ step ( self , state _ cartesian ) Main method of LatticePlanner which calls method frenet _ optimal _ planning to get a best trajectory . Parameters : state _ cartesian ( [ x , y , yaw , ds , c ] ) - Currenet Cartesian coordinate of ego vehicle . Return : Trajectory ( waypoints , speeds ) ( _ Trajectory ) - which is the list of waypoint [ x , y ] _ and speed .","title":"Methods"},{"location":"algorithms/Planning_/lanelet_planner/","text":"Lanelet2Planner A global trajectory planner based on Lanelet2 HD - Map . The implementation relies on the Lanelet2 Python API . Currently , the global planner will find the closest lanelets for both the start point and the end point . Then , it will use the Lanelet2 routing module to generate a submap containing all possible lanelets from the start lanelet to the end lanelet . A trajectory will then be generated using the modified flood - fill algorithm so that it will connect the start point to the end point : Start point - > Start lanelet - > End lanelet - > End point . { : . note } The ISS global planner module currently uses the Lanelet2 HDMap format . Since the Lanelet2 Python API only supports Linux systems , this module may not work properly in other platforms . We will separate the mapping and the planning module apart in a future release and support more HDMap formats ( e . g . OpenDrive ) . Instance Variables lanelet _ map ( lanelet2 . core . LaneletMap ) The lanelet2 HDMap for current location . traffic _ rules ( lanelet2 . traffic _ rule ) The lanelet2 definition of traffic rules of current map . collision _ detector ( utils . vehicleutils . CollisionChecker ) The collision checker of solid road line . reverse _ y ( boolean ) When True the y - coordinate will be reversed . ( Left - hand to Right - hand coordinates , vice versa )","title":"Lanelet2 Global Planner"},{"location":"algorithms/Planning_/lanelet_planner/#lanelet2planner","text":"A global trajectory planner based on Lanelet2 HD - Map . The implementation relies on the Lanelet2 Python API . Currently , the global planner will find the closest lanelets for both the start point and the end point . Then , it will use the Lanelet2 routing module to generate a submap containing all possible lanelets from the start lanelet to the end lanelet . A trajectory will then be generated using the modified flood - fill algorithm so that it will connect the start point to the end point : Start point - > Start lanelet - > End lanelet - > End point . { : . note } The ISS global planner module currently uses the Lanelet2 HDMap format . Since the Lanelet2 Python API only supports Linux systems , this module may not work properly in other platforms . We will separate the mapping and the planning module apart in a future release and support more HDMap formats ( e . g . OpenDrive ) .","title":"Lanelet2Planner"},{"location":"algorithms/Planning_/lanelet_planner/#instance-variables","text":"lanelet _ map ( lanelet2 . core . LaneletMap ) The lanelet2 HDMap for current location . traffic _ rules ( lanelet2 . traffic _ rule ) The lanelet2 definition of traffic rules of current map . collision _ detector ( utils . vehicleutils . CollisionChecker ) The collision checker of solid road line . reverse _ y ( boolean ) When True the y - coordinate will be reversed . ( Left - hand to Right - hand coordinates , vice versa )","title":"Instance Variables"},{"location":"algorithms/Sensors/_BeamNG/","text":"Sensors for interaction between ISS and BeamNG . BeamNG Sensors { : . d - inline - block } ( WIP ) { : . label . label - blue } BeamNG sensor is currently WIP .","title":"BeamNG Sensors"},{"location":"algorithms/Sensors/_BeamNG/#beamng-sensors","text":"{ : . d - inline - block } ( WIP ) { : . label . label - blue } BeamNG sensor is currently WIP .","title":"BeamNG Sensors"},{"location":"algorithms/Sensors/_CARLA/","text":"Sensors in CARLA Sensors in CARLA compound a specific family of actors that are quite diverse and unique from the other CARLA actors ; they model different sensing capabilities that can be used in self - driving systems . Sensors are represented by CARLA actors that are normally spawned as attachment / sons of a vehicle . Sensors are thoroughly designed to retrieve different types of data that they are listening to . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some other specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary . Instance Variables is _ listening ( boolean ) When True the sensor will be waiting for data . Methods listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . stop ( self ) Commands the sensor to stop listening for data . CarlaCamera The \" RGB \" camera acts as a regular camera capturing images from the scene . A CARLA camera can be tuned with respect to multiple parameters , such as sensor _ tick and enable _ postprocess _ effects . The numeric sensor _ tick parameter controls how fast we want the sensor to capture the scene : for example , a value of 1.5 means that we want the sensor to capture an image each second and a half . The value 0.0 is used as default and it instructs the camera to capture images as fast as possible . The enable _ postprocess _ effects parameters allows the user to increase the realism of the captured images , by applying the corresponding set of post - process effects : Vignette : darkens the border of the screen . Grain jitter : adds some noise to the render . Bloom : intense lights burn the area around them . Auto exposure : modifies the image gamma to simulate the eye adaptation to darker or brighter areas . Lens flares : simulates the reflection of bright objects on the lens . Depth of field : blurs objects near or very far away from the camera . CarlaLiDAR This sensor simulates a rotating LiDAR implemented using ray - casting . The points are computed by adding a laser beam for each channel distributed in the vertical FOV . The rotation is simulated by computing the horizontal angle corresponding to how much the LiDAR rotated between two consecutive frames taken with frequency FPS , that is , the LiDAR rotation angle in 1 / FPS seconds . The point cloud is calculated by doing a ray - cast for each laser beam in every step . points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) A LIDAR measurement contains a package with all the points generated during an interval of length 1 / FPS . During this interval the physics of the world are not updated so all points in the measurement reflect the same \" static picture \" of the scene . This output contains a cloud of simulation points and thus , it can be iterated to retrieve a list of their carla . Location : for location in lidar _ measurement : print ( location ) The information of the LiDAR measurement is encoded by means of 4D points . The first three dimensions represent the space points in the usual XYZ spatial coordinates ; the last one stands for the intensity loss during the travel . This intensity is computed by the following formula . a \u2014 Attenuation coefficient . This may depend on the sensor ' s wavelength , and the conditions of the atmosphere . It can be modified with the LiDAR attribute atmosphere _ attenuation _ rate . d \u2014 Distance from the hit point to the sensor . For a better realism , points in the cloud can be dropped off . This is an easy way to simulate loss due to external perturbations . This can done combining two different parameters . General drop - off \u2014 Proportion of points that are dropped off randomly . This is done before the tracing , meaning the points being dropped are not calculated , thus improving the performance . If dropoff _ general _ rate = 0.5 , half of the points will be dropped . Intensity - based drop - off \u2014 For each point detected , and extra drop - off is performed with a probability based in the computed intensity . This probability is determined by two parameters : dropoff _ zero _ intensity and dropoff _ intensity _ limit , where is the probability of points with zero intensity to be dropped while dropoff _ intensity _ limit is a threshold intensity above which no points will be dropped . The probability of a point within the range to be dropped is a linear proportion based on these two parameters . Additionally , the noise _ stddev attribute makes for a noise model to simulate unexpected deviations that appear in real - life sensors . For positive values , each point is randomly perturbed along the vector of the laser beam . The result is a LiDAR sensor with perfect angular positioning , but noisy distance measurement . The rotation of the LiDAR can be tuned to cover a specific angle on every simulation step ( using a fixed time - step ) . For example , to rotate once per step ( full circle output , as in the picture below ) , the rotation frequency and the simulated FPS should be the same ; this can be obtained by 1 . Setting the sensor ' s rotation _ frequency attribute sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . Running the simulation using the option -- fps = N , e . g . , python3 config . py -- fps = 10 . CarlaGNSS Blueprint : sensor . other . gnss Output : carla . GNSSMeasurement per step ( unless sensor _ tick says otherwise ) . This sensors models a GPS receiver and it provides the current GNSS position of the vehicle the sensor is attached to . The current coordinates are calculated by adding the metric position to an initial geo reference location defined within the OpenDRIVE map definition . GNSS attributes Blueprint attribute Type Default Description noise _ alt _ bias float 0.0 Mean parameter in the noise model for altitude . noise _ alt _ stddev float 0.0 Standard deviation parameter in the noise model for altitude . noise _ lat _ bias float 0.0 Mean parameter in the noise model for latitude . noise _ lat _ stddev float 0.0 Standard deviation parameter in the noise model for latitude . noise _ lon _ bias float 0.0 Mean parameter in the noise model for longitude . noise _ lon _ stddev float 0.0 Standard deviation parameter in the noise model for longitude . noise _ seed int 0 Initializer for a pseudorandom number generator . sensor _ tick float 0.0 Simulation seconds between sensor captures ( ticks ) . Output attributes Sensor data attribute Type Description frame int Frame number when the measurement took place . timestamp double Simulation time of the measurement in seconds since the beginning of the episode . transform carla . Transform Location and rotation in world coordinates of the sensor at the time of the measurement . latitude double Latitude of the actor . longitude double Longitude of the actor . altitude double Altitude of the actor .","title":"CARLA Sensors"},{"location":"algorithms/Sensors/_CARLA/#sensors-in-carla","text":"Sensors in CARLA compound a specific family of actors that are quite diverse and unique from the other CARLA actors ; they model different sensing capabilities that can be used in self - driving systems . Sensors are represented by CARLA actors that are normally spawned as attachment / sons of a vehicle . Sensors are thoroughly designed to retrieve different types of data that they are listening to . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some other specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary .","title":"Sensors in CARLA"},{"location":"algorithms/Sensors/_CARLA/#instance-variables","text":"is _ listening ( boolean ) When True the sensor will be waiting for data .","title":"Instance Variables"},{"location":"algorithms/Sensors/_CARLA/#methods","text":"listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . stop ( self ) Commands the sensor to stop listening for data .","title":"Methods"},{"location":"algorithms/Sensors/_CARLA/#carlacamera","text":"The \" RGB \" camera acts as a regular camera capturing images from the scene . A CARLA camera can be tuned with respect to multiple parameters , such as sensor _ tick and enable _ postprocess _ effects . The numeric sensor _ tick parameter controls how fast we want the sensor to capture the scene : for example , a value of 1.5 means that we want the sensor to capture an image each second and a half . The value 0.0 is used as default and it instructs the camera to capture images as fast as possible . The enable _ postprocess _ effects parameters allows the user to increase the realism of the captured images , by applying the corresponding set of post - process effects : Vignette : darkens the border of the screen . Grain jitter : adds some noise to the render . Bloom : intense lights burn the area around them . Auto exposure : modifies the image gamma to simulate the eye adaptation to darker or brighter areas . Lens flares : simulates the reflection of bright objects on the lens . Depth of field : blurs objects near or very far away from the camera .","title":"CarlaCamera"},{"location":"algorithms/Sensors/_CARLA/#carlalidar","text":"This sensor simulates a rotating LiDAR implemented using ray - casting . The points are computed by adding a laser beam for each channel distributed in the vertical FOV . The rotation is simulated by computing the horizontal angle corresponding to how much the LiDAR rotated between two consecutive frames taken with frequency FPS , that is , the LiDAR rotation angle in 1 / FPS seconds . The point cloud is calculated by doing a ray - cast for each laser beam in every step . points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) A LIDAR measurement contains a package with all the points generated during an interval of length 1 / FPS . During this interval the physics of the world are not updated so all points in the measurement reflect the same \" static picture \" of the scene . This output contains a cloud of simulation points and thus , it can be iterated to retrieve a list of their carla . Location : for location in lidar _ measurement : print ( location ) The information of the LiDAR measurement is encoded by means of 4D points . The first three dimensions represent the space points in the usual XYZ spatial coordinates ; the last one stands for the intensity loss during the travel . This intensity is computed by the following formula . a \u2014 Attenuation coefficient . This may depend on the sensor ' s wavelength , and the conditions of the atmosphere . It can be modified with the LiDAR attribute atmosphere _ attenuation _ rate . d \u2014 Distance from the hit point to the sensor . For a better realism , points in the cloud can be dropped off . This is an easy way to simulate loss due to external perturbations . This can done combining two different parameters . General drop - off \u2014 Proportion of points that are dropped off randomly . This is done before the tracing , meaning the points being dropped are not calculated , thus improving the performance . If dropoff _ general _ rate = 0.5 , half of the points will be dropped . Intensity - based drop - off \u2014 For each point detected , and extra drop - off is performed with a probability based in the computed intensity . This probability is determined by two parameters : dropoff _ zero _ intensity and dropoff _ intensity _ limit , where is the probability of points with zero intensity to be dropped while dropoff _ intensity _ limit is a threshold intensity above which no points will be dropped . The probability of a point within the range to be dropped is a linear proportion based on these two parameters . Additionally , the noise _ stddev attribute makes for a noise model to simulate unexpected deviations that appear in real - life sensors . For positive values , each point is randomly perturbed along the vector of the laser beam . The result is a LiDAR sensor with perfect angular positioning , but noisy distance measurement . The rotation of the LiDAR can be tuned to cover a specific angle on every simulation step ( using a fixed time - step ) . For example , to rotate once per step ( full circle output , as in the picture below ) , the rotation frequency and the simulated FPS should be the same ; this can be obtained by 1 . Setting the sensor ' s rotation _ frequency attribute sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . Running the simulation using the option -- fps = N , e . g . , python3 config . py -- fps = 10 .","title":"CarlaLiDAR"},{"location":"algorithms/Sensors/_CARLA/#carlagnss","text":"Blueprint : sensor . other . gnss Output : carla . GNSSMeasurement per step ( unless sensor _ tick says otherwise ) . This sensors models a GPS receiver and it provides the current GNSS position of the vehicle the sensor is attached to . The current coordinates are calculated by adding the metric position to an initial geo reference location defined within the OpenDRIVE map definition .","title":"CarlaGNSS"},{"location":"algorithms/Sensors/_CARLA/#gnss-attributes","text":"Blueprint attribute Type Default Description noise _ alt _ bias float 0.0 Mean parameter in the noise model for altitude . noise _ alt _ stddev float 0.0 Standard deviation parameter in the noise model for altitude . noise _ lat _ bias float 0.0 Mean parameter in the noise model for latitude . noise _ lat _ stddev float 0.0 Standard deviation parameter in the noise model for latitude . noise _ lon _ bias float 0.0 Mean parameter in the noise model for longitude . noise _ lon _ stddev float 0.0 Standard deviation parameter in the noise model for longitude . noise _ seed int 0 Initializer for a pseudorandom number generator . sensor _ tick float 0.0 Simulation seconds between sensor captures ( ticks ) .","title":"GNSS attributes"},{"location":"algorithms/Sensors/_CARLA/#output-attributes","text":"Sensor data attribute Type Description frame int Frame number when the measurement took place . timestamp double Simulation time of the measurement in seconds since the beginning of the episode . transform carla . Transform Location and rotation in world coordinates of the sensor at the time of the measurement . latitude double Latitude of the actor . longitude double Longitude of the actor . altitude double Altitude of the actor .","title":"Output attributes"},{"location":"algorithms/Sensors/_index/","text":"Sensors in Self - driving Systems Sensor classes based on the data source , such as simulators like CARLA and BeamNG and real vehicles , play a pivotal role in the development and testing of autonomous driving systems . These sensors serve as the eyes and ears of self - driving vehicles , providing crucial data for navigation , perception , and decision - making algorithms . In this context , sensor simulation becomes a critical component of the development process , allowing engineers to assess the system ' s performance in a controlled environment before deploying it in the real world . Simulators like CARLA and BeamNG are powerful tools for sensor simulation , offering a range of sensor classes that mimic the behavior of real - world sensors . These simulators generate synthetic data , replicating the sensory input that an autonomous vehicle would receive while driving . The sensors commonly simulated in these environments include : LiDAR ( Light Detection and Ranging ) : Simulated LiDAR sensors emit laser beams and measure their reflection from surrounding objects , providing detailed 3D point clouds . These simulators replicate the physics of LiDAR , including beam divergence and range accuracy , allowing developers to evaluate their algorithms ' performance in various scenarios . { : . center - image width = \" 480 \" } Radar : Radar sensors use radio waves to detect objects and their relative speed . Simulated radar sensors emulate the radar signal ' s propagation and reflection , including effects like interference and attenuation , to generate realistic sensor data . { : . center - image width = \" 480 \" } Camera : Simulated cameras replicate the behavior of vision sensors , including factors such as lens distortion , exposure , and image noise . These simulations enable the testing of computer vision algorithms for tasks like object detection , lane tracking , and traffic sign recognition . { : . center - image width = \" 480 \" } GPS and IMU ( Inertial Measurement Unit ) : Simulated GPS and IMU sensors provide vehicle localization and orientation data . These sensors simulate satellite signals and vehicle movements , allowing developers to assess GPS - based localization and sensor fusion algorithms . Ultrasonic Sensors : Simulated ultrasonic sensors model the way ultrasonic waves bounce off objects to measure distances . They are crucial for detecting nearby obstacles during parking and low - speed maneuvers . Wheel Odometry : Simulated wheel odometry sensors estimate the vehicle ' s motion based on wheel rotations . These sensors aid in dead reckoning and can be used for localization when GPS signals are weak or unavailable . Data generated by these simulated sensors is typically provided in formats that mimic real - world sensor outputs , such as point clouds for LiDAR , radar sweeps for radar , and image frames for cameras . Developers can configure the sensor properties and environmental conditions within the simulators to create diverse testing scenarios , including different weather conditions , traffic patterns , and road types . In summary , sensor simulation in autonomous driving development , whether its data is produced by simulators like CARLA and BeamNG or collected by using real vehicles , is indispensable for verifying and fine - tuning perception and control algorithms . It allows developers to evaluate the robustness and reliability of these systems under various conditions , ultimately contributing to the safe deployment of autonomous vehicles on our roads .","title":"Sensors"},{"location":"algorithms/Sensors/_index/#sensors-in-self-driving-systems","text":"Sensor classes based on the data source , such as simulators like CARLA and BeamNG and real vehicles , play a pivotal role in the development and testing of autonomous driving systems . These sensors serve as the eyes and ears of self - driving vehicles , providing crucial data for navigation , perception , and decision - making algorithms . In this context , sensor simulation becomes a critical component of the development process , allowing engineers to assess the system ' s performance in a controlled environment before deploying it in the real world . Simulators like CARLA and BeamNG are powerful tools for sensor simulation , offering a range of sensor classes that mimic the behavior of real - world sensors . These simulators generate synthetic data , replicating the sensory input that an autonomous vehicle would receive while driving . The sensors commonly simulated in these environments include : LiDAR ( Light Detection and Ranging ) : Simulated LiDAR sensors emit laser beams and measure their reflection from surrounding objects , providing detailed 3D point clouds . These simulators replicate the physics of LiDAR , including beam divergence and range accuracy , allowing developers to evaluate their algorithms ' performance in various scenarios . { : . center - image width = \" 480 \" } Radar : Radar sensors use radio waves to detect objects and their relative speed . Simulated radar sensors emulate the radar signal ' s propagation and reflection , including effects like interference and attenuation , to generate realistic sensor data . { : . center - image width = \" 480 \" } Camera : Simulated cameras replicate the behavior of vision sensors , including factors such as lens distortion , exposure , and image noise . These simulations enable the testing of computer vision algorithms for tasks like object detection , lane tracking , and traffic sign recognition . { : . center - image width = \" 480 \" } GPS and IMU ( Inertial Measurement Unit ) : Simulated GPS and IMU sensors provide vehicle localization and orientation data . These sensors simulate satellite signals and vehicle movements , allowing developers to assess GPS - based localization and sensor fusion algorithms . Ultrasonic Sensors : Simulated ultrasonic sensors model the way ultrasonic waves bounce off objects to measure distances . They are crucial for detecting nearby obstacles during parking and low - speed maneuvers . Wheel Odometry : Simulated wheel odometry sensors estimate the vehicle ' s motion based on wheel rotations . These sensors aid in dead reckoning and can be used for localization when GPS signals are weak or unavailable . Data generated by these simulated sensors is typically provided in formats that mimic real - world sensor outputs , such as point clouds for LiDAR , radar sweeps for radar , and image frames for cameras . Developers can configure the sensor properties and environmental conditions within the simulators to create diverse testing scenarios , including different weather conditions , traffic patterns , and road types . In summary , sensor simulation in autonomous driving development , whether its data is produced by simulators like CARLA and BeamNG or collected by using real vehicles , is indispensable for verifying and fine - tuning perception and control algorithms . It allows developers to evaluate the robustness and reliability of these systems under various conditions , ultimately contributing to the safe deployment of autonomous vehicles on our roads .","title":"Sensors in Self - driving Systems"},{"location":"algorithms/perception_/","text":"Perception { : . d - inline - block } Introduction to the Perception Module The ISS perception module provides support to multiple perception tasks , such as 3D obstacle perception , 2D object recognition , 2D semantic segmentation , and sensor - based Bird ' s Eye View ( BEV ) map generation . Our team is focused on developing and refining these critical perception tasks . These tasks serve as the foundation for enabling our vehicles to navigate complex environments with safety and precision . Tasks The different tasks supported by the ISS perception module allow our vehicles to learn specific properties of the surrounding environment and its elements . 3D Obstacle Detection : Our system employs advanced sensor technologies to detect and analyze three - dimensional obstacles in real - time . This capability allows our autonomous vehicles to make informed decisions and ensure safe navigation , even in dynamic and challenging scenarios . 2D Object Detection : Recognizing and identifying objects in the vehicle ' s surroundings is crucial for safe navigation . Our framework utilizes cutting - edge algorithms to identify and classify various objects , such as pedestrians , vehicles , and signage , contributing to enhanced situational awareness . { : . center - image } 3D Obstacle Perception and 2D Object Detection { : . text - center } 2D Semantic Segmentation : Semantic segmentation is an essential task for understanding the environment in detail . We leverage state - of - the - art techniques to partition the scene into meaningful segments , enabling our vehicles to comprehend the road layout and better respond to complex urban landscapes . { : . center - image } Sensor - Based BEV Map Generation : Our system generates a Bird ' s Eye View ( BEV ) map using sensor data , providing a holistic view of the vehicle ' s surroundings . This map serves as a valuable tool for path planning and decision - making , enhancing the vehicle ' s ability to navigate efficiently and safely . At present , we are diligently working on these modules , and we are pleased to share that we have developed initial models for the first three tasks . However , it ' s important to note that these models are still undergoing refinement to enhance their performance and reliability . We also provide a dataset about the object detection generated by ISS . Still updating .","title":"Perception"},{"location":"algorithms/perception_/#perception","text":"{ : . d - inline - block }","title":"Perception"},{"location":"algorithms/perception_/#introduction-to-the-perception-module","text":"The ISS perception module provides support to multiple perception tasks , such as 3D obstacle perception , 2D object recognition , 2D semantic segmentation , and sensor - based Bird ' s Eye View ( BEV ) map generation . Our team is focused on developing and refining these critical perception tasks . These tasks serve as the foundation for enabling our vehicles to navigate complex environments with safety and precision .","title":"Introduction to the Perception Module"},{"location":"algorithms/perception_/#tasks","text":"The different tasks supported by the ISS perception module allow our vehicles to learn specific properties of the surrounding environment and its elements . 3D Obstacle Detection : Our system employs advanced sensor technologies to detect and analyze three - dimensional obstacles in real - time . This capability allows our autonomous vehicles to make informed decisions and ensure safe navigation , even in dynamic and challenging scenarios . 2D Object Detection : Recognizing and identifying objects in the vehicle ' s surroundings is crucial for safe navigation . Our framework utilizes cutting - edge algorithms to identify and classify various objects , such as pedestrians , vehicles , and signage , contributing to enhanced situational awareness . { : . center - image } 3D Obstacle Perception and 2D Object Detection { : . text - center } 2D Semantic Segmentation : Semantic segmentation is an essential task for understanding the environment in detail . We leverage state - of - the - art techniques to partition the scene into meaningful segments , enabling our vehicles to comprehend the road layout and better respond to complex urban landscapes . { : . center - image } Sensor - Based BEV Map Generation : Our system generates a Bird ' s Eye View ( BEV ) map using sensor data , providing a holistic view of the vehicle ' s surroundings . This map serves as a valuable tool for path planning and decision - making , enhancing the vehicle ' s ability to navigate efficiently and safely . At present , we are diligently working on these modules , and we are pleased to share that we have developed initial models for the first three tasks . However , it ' s important to note that these models are still undergoing refinement to enhance their performance and reliability . We also provide a dataset about the object detection generated by ISS . Still updating .","title":"Tasks"},{"location":"demo/boost_python/","text":"VS2019 \u8c03\u7528 boost . Python \u751f\u6210 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u65b0\u5efa Cmake \u5de5\u7a0b \uff1b \u8f93\u5165 \u4ee5\u4e0b \u4ee3\u7801 \uff1a # include < boost / python . hpp > # include < boost / python / module . hpp > # include < boost / python / def . hpp > # include < boost / python / to _ python _ converter . hpp > # include < iostream > using namespace std ; void dummyFunc ( ) { cout < < \" call OK ! \" < < endl ; } int main ( ) { dummyFunc ( ) ; return 0 ; } \u5728 CMakeLists . txt \u4e2d \u6dfb\u52a0 \u5934 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 \u548c \u5e93 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 # \u6dfb\u52a0 \u5934 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 include _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / include \" ) include _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / include \" ) # \u6dfb\u52a0 \u5e93 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 link _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / libs \" ) # \u8fd8\u662f \u7f3a\u5c11 libboost _ python37 - vc142 - mt - gd - x64 - 1 _ 80 . lib link _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / lib _ no _ prefix \" ) \u5230 boost \u5b89\u88c5 \u76ee\u5f55 \u4e0b \uff0c \u8fdb\u5165 lib \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \uff0c \u627e\u5230 \u524d\u7f00 \u662f libboost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib \u6587\u4ef6 \uff08 \u524d\u7f00 \u6709 lib \uff09 \uff0c \u5c06 \u5176 \u524d\u7f00 \u7684 lib \u5220\u9664 \u5373\u53ef \uff08 \u5373 \u547d\u540d \u91cd\u547d\u540d \u4e3a boost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib \uff09 \u3002 \u751f\u6210 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u4f1a \u751f\u6210 exe \u6587\u4ef6 \uff0c \u5982\u679c \u4e0d \u53ef\u4ee5 \u5728 vs \u4e2d \u76f4\u63a5 \u6267\u884c \uff0c \u5c06 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u5f53\u524d \u6587\u6863 \u6539\u4e3a * . exe \u3002 \u751f\u6210 Python \u8c03\u7528 \u7684 \u5e93 \u65b0\u5efa hello _ exe . cpp \uff0c \u6ce8\u610f \u6587\u4ef6 \u6587\u4ef6\u540d \u5fc5\u987b \u4e3a \u6a21\u5757 \u540d \uff1a / / \u53c2\u8003 \uff1a https : / / developer . aliyun . com / article / 1260043 / / \u5f53 \u5f15\u5165 # include < boost / python / xxx > \u65f6 \uff0c Boost \u4f1a \u9ed8\u8ba4 \u94fe\u63a5 boost _ python \u52a8\u6001 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u52a8\u6001\u94fe\u63a5\u5e93 \uff0c / / \u5982\u679c \u6211\u4eec \u60f3\u8981 \u94fe\u63a5 \u9759\u6001 \u94fe\u63a5 \u94fe\u63a5\u5e93 \uff0c \u5c31 \u9700\u8981 \u5728 include \u4e4b\u524d \u52a0\u4e0a # define BOOST _ PYTHON _ STATIC _ LIB / / \u6307\u5b9a \u94fe\u63a5 boost _ python \u7684 \u9759\u6001 \u5e93 \uff0c \u800c \u4e0d\u662f \u9ed8\u8ba4 \u7684 \u52a8\u6001 \u5e93 \u3002 # define BOOST _ PYTHON _ STATIC _ LIB # include < boost / python . hpp > # include < boost / python / module . hpp > # include < boost / python / def . hpp > # include < boost / python / to _ python _ converter . hpp > # include < iostream > using namespace std ; char const * greet ( ) { return \" hello , world \" ; } BOOST _ PYTHON _ MODULE ( hello _ ext ) { using namespace boost : : python ; def ( \" greet \" , greet ) ; } \u65b0\u5efa CMakeLists . txt \uff1a cmake _ minimum _ required ( VERSION 3.8 ) # \u6dfb\u52a0 \u5934 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 include _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / include \" ) include _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / include \" ) # \u6dfb\u52a0 \u5e93 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 link _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / libs \" ) # \u8fd8\u662f \u7f3a\u5c11 libboost _ python37 - vc142 - mt - gd - x64 - 1 _ 80 . lib link _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / lib _ no _ prefix \" ) # \u5c06 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6dfb\u52a0 \u5230 \u6b64 \u9879\u76ee \u7684 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 # add _ executable ( boost _ demo \" boost _ demo . cpp \" \" boost _ demo . h \" ) # # \u751f\u6210 \u52a8\u6001 \u5e93 ( \u5171\u4eab \u5e93 ) \u5171\u4eab \u5e93\u5219 \u53ea\u6709 \u4e00\u4e2a \u526f\u672c add _ library ( hello _ ext SHARED hello _ ext . cpp ) # ( boost _ demo \u662f \u5e93 \u7684 \u540d\u5b57 ) \uff0c \u8fd9 \u6761 \u547d\u4ee4 \u544a\u8bc9 cmake \uff0c \u6211\u4eec \u60f3 \u628a boost _ demo . cpp \u7f16\u8bd1 \u8bd1\u6210 \u7f16\u8bd1\u6210 \u4e00\u4e2a \u53eb\u4f5c \u201c boost _ demo \u201d \u7684 \u5e93 \u3002 set _ target _ properties ( hello _ ext PROPERTIES SUFFIX \" . pyd \" ) \u6784\u5efa \u540e \u4f1a \u751f\u6210 hello _ ext . pyd \u3002 \u5728 \u751f\u6210 \u7684 . pyd \u76ee\u5f55 \u4e0b \u65b0\u5efa hello . py import hello _ ext print ( hello _ ext . greet ( ) )","title":"Boost python"},{"location":"demo/boost_python/#vs2019boostpython","text":"","title":"VS2019 \u8c03\u7528 boost . Python"},{"location":"demo/boost_python/#_1","text":"\u65b0\u5efa Cmake \u5de5\u7a0b \uff1b \u8f93\u5165 \u4ee5\u4e0b \u4ee3\u7801 \uff1a # include < boost / python . hpp > # include < boost / python / module . hpp > # include < boost / python / def . hpp > # include < boost / python / to _ python _ converter . hpp > # include < iostream > using namespace std ; void dummyFunc ( ) { cout < < \" call OK ! \" < < endl ; } int main ( ) { dummyFunc ( ) ; return 0 ; } \u5728 CMakeLists . txt \u4e2d \u6dfb\u52a0 \u5934 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 \u548c \u5e93 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 # \u6dfb\u52a0 \u5934 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 include _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / include \" ) include _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / include \" ) # \u6dfb\u52a0 \u5e93 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 link _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / libs \" ) # \u8fd8\u662f \u7f3a\u5c11 libboost _ python37 - vc142 - mt - gd - x64 - 1 _ 80 . lib link _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / lib _ no _ prefix \" ) \u5230 boost \u5b89\u88c5 \u76ee\u5f55 \u4e0b \uff0c \u8fdb\u5165 lib \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \uff0c \u627e\u5230 \u524d\u7f00 \u662f libboost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib \u6587\u4ef6 \uff08 \u524d\u7f00 \u6709 lib \uff09 \uff0c \u5c06 \u5176 \u524d\u7f00 \u7684 lib \u5220\u9664 \u5373\u53ef \uff08 \u5373 \u547d\u540d \u91cd\u547d\u540d \u4e3a boost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib \uff09 \u3002 \u751f\u6210 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u4f1a \u751f\u6210 exe \u6587\u4ef6 \uff0c \u5982\u679c \u4e0d \u53ef\u4ee5 \u5728 vs \u4e2d \u76f4\u63a5 \u6267\u884c \uff0c \u5c06 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u5f53\u524d \u6587\u6863 \u6539\u4e3a * . exe \u3002","title":"\u751f\u6210 \u53ef\u6267\u884c\u6587\u4ef6"},{"location":"demo/boost_python/#python","text":"\u65b0\u5efa hello _ exe . cpp \uff0c \u6ce8\u610f \u6587\u4ef6 \u6587\u4ef6\u540d \u5fc5\u987b \u4e3a \u6a21\u5757 \u540d \uff1a / / \u53c2\u8003 \uff1a https : / / developer . aliyun . com / article / 1260043 / / \u5f53 \u5f15\u5165 # include < boost / python / xxx > \u65f6 \uff0c Boost \u4f1a \u9ed8\u8ba4 \u94fe\u63a5 boost _ python \u52a8\u6001 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u52a8\u6001\u94fe\u63a5\u5e93 \uff0c / / \u5982\u679c \u6211\u4eec \u60f3\u8981 \u94fe\u63a5 \u9759\u6001 \u94fe\u63a5 \u94fe\u63a5\u5e93 \uff0c \u5c31 \u9700\u8981 \u5728 include \u4e4b\u524d \u52a0\u4e0a # define BOOST _ PYTHON _ STATIC _ LIB / / \u6307\u5b9a \u94fe\u63a5 boost _ python \u7684 \u9759\u6001 \u5e93 \uff0c \u800c \u4e0d\u662f \u9ed8\u8ba4 \u7684 \u52a8\u6001 \u5e93 \u3002 # define BOOST _ PYTHON _ STATIC _ LIB # include < boost / python . hpp > # include < boost / python / module . hpp > # include < boost / python / def . hpp > # include < boost / python / to _ python _ converter . hpp > # include < iostream > using namespace std ; char const * greet ( ) { return \" hello , world \" ; } BOOST _ PYTHON _ MODULE ( hello _ ext ) { using namespace boost : : python ; def ( \" greet \" , greet ) ; } \u65b0\u5efa CMakeLists . txt \uff1a cmake _ minimum _ required ( VERSION 3.8 ) # \u6dfb\u52a0 \u5934 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 include _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / include \" ) include _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / include \" ) # \u6dfb\u52a0 \u5e93 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 link _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / libs \" ) # \u8fd8\u662f \u7f3a\u5c11 libboost _ python37 - vc142 - mt - gd - x64 - 1 _ 80 . lib link _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / lib _ no _ prefix \" ) # \u5c06 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6dfb\u52a0 \u5230 \u6b64 \u9879\u76ee \u7684 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 # add _ executable ( boost _ demo \" boost _ demo . cpp \" \" boost _ demo . h \" ) # # \u751f\u6210 \u52a8\u6001 \u5e93 ( \u5171\u4eab \u5e93 ) \u5171\u4eab \u5e93\u5219 \u53ea\u6709 \u4e00\u4e2a \u526f\u672c add _ library ( hello _ ext SHARED hello _ ext . cpp ) # ( boost _ demo \u662f \u5e93 \u7684 \u540d\u5b57 ) \uff0c \u8fd9 \u6761 \u547d\u4ee4 \u544a\u8bc9 cmake \uff0c \u6211\u4eec \u60f3 \u628a boost _ demo . cpp \u7f16\u8bd1 \u8bd1\u6210 \u7f16\u8bd1\u6210 \u4e00\u4e2a \u53eb\u4f5c \u201c boost _ demo \u201d \u7684 \u5e93 \u3002 set _ target _ properties ( hello _ ext PROPERTIES SUFFIX \" . pyd \" ) \u6784\u5efa \u540e \u4f1a \u751f\u6210 hello _ ext . pyd \u3002 \u5728 \u751f\u6210 \u7684 . pyd \u76ee\u5f55 \u4e0b \u65b0\u5efa hello . py import hello _ ext print ( hello _ ext . greet ( ) )","title":"\u751f\u6210 Python \u8c03\u7528 \u7684 \u5e93"},{"location":"scenario_runner/FAQ/","text":"\u7ecf\u5e38 \u95ee \u7684 \u95ee\u9898 \u5728 \u4ee3\u7406 \u5bfc\u822a \u4e2d \u6536\u5230 \u9519\u8bef \" TypeError : ' instancemethod ' object has no attribute ' getitem ' \" \u6b64 \u95ee\u9898 \u5f88 \u53ef\u80fd \u662f \u7531 Python Networkx \u5305 \u7684 \u8fc7\u65f6 \u7248\u672c \u5f15\u8d77 \u7684 \u3002 \u8bf7 \u5220\u9664 \u5f53\u524d \u5b89\u88c5 \uff08 \u4f8b\u5982 sudo apt - get remove python - networkx \uff09 \u5e76 \u4f7f\u7528 \u201c pip install -- user networkx = = 2.2 \u201d \u8fdb\u884c \u5b89\u88c5 \u3002 \u6ca1\u6709 \u53ef\u89c1 \u7684 \u573a\u666f \uff0c \u6211 \u6536\u5230 \u6d88\u606f \" No more scenarios .... Exiting \" \u5982\u679c \u60a8 \u6536\u5230 \u4ee5\u4e0b \u8f93\u51fa Preparing scenario : FollowLeadingVehicle _ 1 ScenarioManager : Running scenario FollowVehicle Resetting ego - vehicle ! Failure ! Resetting ego - vehicle ! ERROR : failed to destroy actor 527 : unable to destroy actor : not found No more scenarios .... Exiting \u5982\u679c \u60a8 \u6ca1\u6709 \u770b\u5230 \u4efb\u4f55 \u4e8b\u60c5 \u53d1\u751f \uff0c \u5f88 \u53ef\u80fd \u56e0\u4e3a \u662f\u56e0\u4e3a \u60a8 \u6ca1\u6709 \u542f\u52a8 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u7684 \u7a0b\u5e8f \u3002 \u8fd0\u884c \u4f8b\u5982 manual _ control . py \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u53d1\u751f \u4e86 \u4e00\u4e9b \u4e8b\u60c5 \u3002 \u4f7f\u7528 -- debug \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u65f6 \uff0c Scenario Runner \u9000\u51fa \u5e76 \u51fa\u73b0 \u9519\u8bef \u5982\u679c \u60a8 \u6536\u5230 \u4ee5\u4e0b \u8f93\u51fa UnicodeEncodeError : ' ascii ' codec can ' t encode character ' \\ u2713 ' in position 58 : ordinal not in range ( 128 ) \u8bf7 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf PYTHONIOENCODING = utf - 8","title":"\u7ecf\u5e38 \u95ee \u7684 \u95ee\u9898"},{"location":"scenario_runner/FAQ/#_1","text":"","title":"\u7ecf\u5e38 \u95ee \u7684 \u95ee\u9898"},{"location":"scenario_runner/FAQ/#typeerror-instancemethod-object-has-no-attribute-getitem","text":"\u6b64 \u95ee\u9898 \u5f88 \u53ef\u80fd \u662f \u7531 Python Networkx \u5305 \u7684 \u8fc7\u65f6 \u7248\u672c \u5f15\u8d77 \u7684 \u3002 \u8bf7 \u5220\u9664 \u5f53\u524d \u5b89\u88c5 \uff08 \u4f8b\u5982 sudo apt - get remove python - networkx \uff09 \u5e76 \u4f7f\u7528 \u201c pip install -- user networkx = = 2.2 \u201d \u8fdb\u884c \u5b89\u88c5 \u3002","title":"\u5728 \u4ee3\u7406 \u5bfc\u822a \u4e2d \u6536\u5230 \u9519\u8bef \" TypeError : ' instancemethod ' object has no attribute ' getitem ' \""},{"location":"scenario_runner/FAQ/#no-more-scenarios-exiting","text":"\u5982\u679c \u60a8 \u6536\u5230 \u4ee5\u4e0b \u8f93\u51fa Preparing scenario : FollowLeadingVehicle _ 1 ScenarioManager : Running scenario FollowVehicle Resetting ego - vehicle ! Failure ! Resetting ego - vehicle ! ERROR : failed to destroy actor 527 : unable to destroy actor : not found No more scenarios .... Exiting \u5982\u679c \u60a8 \u6ca1\u6709 \u770b\u5230 \u4efb\u4f55 \u4e8b\u60c5 \u53d1\u751f \uff0c \u5f88 \u53ef\u80fd \u56e0\u4e3a \u662f\u56e0\u4e3a \u60a8 \u6ca1\u6709 \u542f\u52a8 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u7684 \u7a0b\u5e8f \u3002 \u8fd0\u884c \u4f8b\u5982 manual _ control . py \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u53d1\u751f \u4e86 \u4e00\u4e9b \u4e8b\u60c5 \u3002","title":"\u6ca1\u6709 \u53ef\u89c1 \u7684 \u573a\u666f \uff0c \u6211 \u6536\u5230 \u6d88\u606f \" No more scenarios .... Exiting \""},{"location":"scenario_runner/FAQ/#-debug-scenario-runner","text":"\u5982\u679c \u60a8 \u6536\u5230 \u4ee5\u4e0b \u8f93\u51fa UnicodeEncodeError : ' ascii ' codec can ' t encode character ' \\ u2713 ' in position 58 : ordinal not in range ( 128 ) \u8bf7 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf PYTHONIOENCODING = utf - 8","title":"\u4f7f\u7528 -- debug \u547d\u4ee4\u884c \u53c2\u6570 \u65f6 \uff0c Scenario Runner \u9000\u51fa \u5e76 \u51fa\u73b0 \u9519\u8bef"},{"location":"scenario_runner/README_OpenSCENARIO_2.0/","text":"osc2 - runner \u6211\u4eec \u4f7f\u7528 OpenScenario 2.0 \u4f5c\u4e3a \u573a\u666f \u63cf\u8ff0 \u8ff0\u8bed \u8bed\u8a00 \u63cf\u8ff0\u8bed\u8a00 \u89c4\u8303 \uff0c \u8bbe\u8ba1 \u5e76 \u5b9e\u73b0 \u4e86 \u76f8\u5e94 \u7684 \u7f16\u8bd1 \u7cfb\u7edf \u7f16\u8bd1\u7cfb\u7edf \uff0c \u53ef\u4ee5 \u81ea\u52a8 \u5c06 \u7528 OpenScenario 2.0 \u63cf\u8ff0 \u7684 \u6d4b\u8bd5 \u573a\u666f \u8f6c\u6362 \u4e3a \u57fa\u4e8e scenario runner \u7684 \u6d4b\u8bd5 \u573a\u666f \uff0c \u4ece\u800c \u4f7f\u7528 carla \u8fdb\u884c \u81ea\u52a8 \u9a7e\u9a76 \u6d4b\u8bd5 \u3002 Installation 1 . \u5b89\u88c5 JDK sudo apt install openjdk - 17 - jdk \u786e\u8ba4 \u5b89\u88c5 \uff1a $ java - version \u8f93\u51fa \uff1a openjdk version \" 17.0 . 5 \" 2022 - 10 - 18 OpenJDK Runtime Environment ( build 17.0 . 5 + 8 - Ubuntu - 2ubuntu120.04 ) OpenJDK 64 - Bit Server VM ( build 17.0 . 5 + 8 - Ubuntu - 2ubuntu120.04 , mixed mode , sharing ) 3 \u3001 \u5b89\u88c5 Antlr 4.10 . 1 sudo apt install curl curl - O https : / / www . antlr . org / download / antlr - 4.10 . 1 - complete . jar \u5c06 . jar \u6587\u4ef6 \u653e\u5165 local / lib \u4e2d $ sudo cp antlr - 4.10 . 1 - complete . jar / usr / local / lib / \u4ee5\u4e0b \u4e09\u4e2a \u6b65\u9aa4 \u7528\u4e8e \u914d\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u5e76 \u521b\u5efa \u522b\u540d \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u8f7b\u677e \u5730 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 antlr4 \u3002 $ sudo gedit ~ / . bashrc \u5728 \u672b\u5c3e \u6dfb\u52a0 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a export CLASSPATH = \" . : / usr / local / lib / antlr - 4.10 . 1 - complete . jar : $ CLASSPATH \" alias antlr4 = ' java - jar / usr / local / lib / antlr - 4.10 . 1 - complete . jar ' alias grun = ' java org . antlr . v4 . gui . TestRig ' \u8fdb\u800c \uff1a source ~ / . bashrc \u5728 \u7ec8\u7aef \u8f93\u5165 antlr4 \u8fdb\u884c \u9a8c\u8bc1 \uff1a $ antlr4 ANTLR Parser Generator Version 4.10 . 1 - o ___ specify output directory where all output is generated - lib ___ specify location of grammars , tokens files - atn generate rule augmented transition network diagrams - encoding ___ specify grammar file encoding ; e . g . , euc - jp - message - format ___ specify output style for messages in antlr , gnu , vs2005 - long - messages show exception details when available for errors and warnings - listener generate parse tree listener ( default ) - no - listener don ' t generate parse tree listener - visitor generate parse tree visitor - no - visitor don ' t generate parse tree visitor ( default ) - package ___ specify a package / namespace for the generated code - depend generate file dependencies - D < option > = value set / override a grammar - level option - Werror treat warnings as errors - XdbgST launch StringTemplate visualizer on generated code - XdbgSTWait wait for STViz to close before continuing - Xforce - atn use the ATN simulator for all predictions - Xlog dump lots of logging info to antlr - timestamp . log - Xexact - output - dir all output goes into - o dir regardless of paths / package 4 \u3001 \u5b89\u88c5 antlr4 \u8fd0\u884c \u65f6 pip install antlr4 - python3 - runtime = = 4.10 5 \u3001 \u5b89\u88c5 python \u4f9d\u8d56 pip install - r requirements . txt 6 \u3001 \u5b89\u88c5 graphviz sudo apt - get install graphviz 7 \u3001 \u914d\u7f6e carla ( 1 ) \u4e0b\u8f7d carla \u7248\u672c ( 2 ) \u5c06 carla \u5b89\u88c5 \u5b89\u88c5\u5305 \u89e3\u538b \u5230 \u67d0\u4e2a \u76ee\u5f55 \u3002 \u5728 Ubuntu \u7cfb\u7edf \u4e0a \uff0c Carla \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u914d\u7f6e \u5982\u4e0b \uff1a export CARLA _ ROOT = / home / dut - aiid / CARLA _ 0.9 . 13 export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - 0.9 . 13 - py3.7 - linux - x86 _ 64 . egg : $ { CARLA _ ROOT } / PythonAPI / carla / agents : $ { CARLA _ ROOT } / PythonAPI / carla / agents / navigation : $ { CARLA _ ROOT } / PythonAPI / carla : $ { CARLA _ ROOT } / PythonAPI / examples : $ { CARLA _ ROOT } / PythonAPI \u5feb\u901f \u5f00\u59cb 1 \u3001 \u8fd0\u884c carla cd / home / xxx / CARLA _ 0.9 . 13 . / CarlaUE4 . sh 2 \u3001 \u542f\u52a8 manual _ control python manual _ control . py - a -- rolename = ego _ vehicle 3 \u3001 \u8fd0\u884c OpenSCENARIO 2.0 \u573a\u666f python scenario _ runner . py -- sync -- openscenario2 srunner / examples / cut _ in _ and _ slow _ right . osc -- reloadWorld","title":"osc2 - runner"},{"location":"scenario_runner/README_OpenSCENARIO_2.0/#osc2-runner","text":"\u6211\u4eec \u4f7f\u7528 OpenScenario 2.0 \u4f5c\u4e3a \u573a\u666f \u63cf\u8ff0 \u8ff0\u8bed \u8bed\u8a00 \u63cf\u8ff0\u8bed\u8a00 \u89c4\u8303 \uff0c \u8bbe\u8ba1 \u5e76 \u5b9e\u73b0 \u4e86 \u76f8\u5e94 \u7684 \u7f16\u8bd1 \u7cfb\u7edf \u7f16\u8bd1\u7cfb\u7edf \uff0c \u53ef\u4ee5 \u81ea\u52a8 \u5c06 \u7528 OpenScenario 2.0 \u63cf\u8ff0 \u7684 \u6d4b\u8bd5 \u573a\u666f \u8f6c\u6362 \u4e3a \u57fa\u4e8e scenario runner \u7684 \u6d4b\u8bd5 \u573a\u666f \uff0c \u4ece\u800c \u4f7f\u7528 carla \u8fdb\u884c \u81ea\u52a8 \u9a7e\u9a76 \u6d4b\u8bd5 \u3002","title":"osc2 - runner"},{"location":"scenario_runner/README_OpenSCENARIO_2.0/#installation","text":"1 . \u5b89\u88c5 JDK sudo apt install openjdk - 17 - jdk \u786e\u8ba4 \u5b89\u88c5 \uff1a $ java - version \u8f93\u51fa \uff1a openjdk version \" 17.0 . 5 \" 2022 - 10 - 18 OpenJDK Runtime Environment ( build 17.0 . 5 + 8 - Ubuntu - 2ubuntu120.04 ) OpenJDK 64 - Bit Server VM ( build 17.0 . 5 + 8 - Ubuntu - 2ubuntu120.04 , mixed mode , sharing ) 3 \u3001 \u5b89\u88c5 Antlr 4.10 . 1 sudo apt install curl curl - O https : / / www . antlr . org / download / antlr - 4.10 . 1 - complete . jar \u5c06 . jar \u6587\u4ef6 \u653e\u5165 local / lib \u4e2d $ sudo cp antlr - 4.10 . 1 - complete . jar / usr / local / lib / \u4ee5\u4e0b \u4e09\u4e2a \u6b65\u9aa4 \u7528\u4e8e \u914d\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u5e76 \u521b\u5efa \u522b\u540d \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u8f7b\u677e \u5730 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 antlr4 \u3002 $ sudo gedit ~ / . bashrc \u5728 \u672b\u5c3e \u6dfb\u52a0 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a export CLASSPATH = \" . : / usr / local / lib / antlr - 4.10 . 1 - complete . jar : $ CLASSPATH \" alias antlr4 = ' java - jar / usr / local / lib / antlr - 4.10 . 1 - complete . jar ' alias grun = ' java org . antlr . v4 . gui . TestRig ' \u8fdb\u800c \uff1a source ~ / . bashrc \u5728 \u7ec8\u7aef \u8f93\u5165 antlr4 \u8fdb\u884c \u9a8c\u8bc1 \uff1a $ antlr4 ANTLR Parser Generator Version 4.10 . 1 - o ___ specify output directory where all output is generated - lib ___ specify location of grammars , tokens files - atn generate rule augmented transition network diagrams - encoding ___ specify grammar file encoding ; e . g . , euc - jp - message - format ___ specify output style for messages in antlr , gnu , vs2005 - long - messages show exception details when available for errors and warnings - listener generate parse tree listener ( default ) - no - listener don ' t generate parse tree listener - visitor generate parse tree visitor - no - visitor don ' t generate parse tree visitor ( default ) - package ___ specify a package / namespace for the generated code - depend generate file dependencies - D < option > = value set / override a grammar - level option - Werror treat warnings as errors - XdbgST launch StringTemplate visualizer on generated code - XdbgSTWait wait for STViz to close before continuing - Xforce - atn use the ATN simulator for all predictions - Xlog dump lots of logging info to antlr - timestamp . log - Xexact - output - dir all output goes into - o dir regardless of paths / package 4 \u3001 \u5b89\u88c5 antlr4 \u8fd0\u884c \u65f6 pip install antlr4 - python3 - runtime = = 4.10 5 \u3001 \u5b89\u88c5 python \u4f9d\u8d56 pip install - r requirements . txt 6 \u3001 \u5b89\u88c5 graphviz sudo apt - get install graphviz 7 \u3001 \u914d\u7f6e carla ( 1 ) \u4e0b\u8f7d carla \u7248\u672c ( 2 ) \u5c06 carla \u5b89\u88c5 \u5b89\u88c5\u5305 \u89e3\u538b \u5230 \u67d0\u4e2a \u76ee\u5f55 \u3002 \u5728 Ubuntu \u7cfb\u7edf \u4e0a \uff0c Carla \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u914d\u7f6e \u5982\u4e0b \uff1a export CARLA _ ROOT = / home / dut - aiid / CARLA _ 0.9 . 13 export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - 0.9 . 13 - py3.7 - linux - x86 _ 64 . egg : $ { CARLA _ ROOT } / PythonAPI / carla / agents : $ { CARLA _ ROOT } / PythonAPI / carla / agents / navigation : $ { CARLA _ ROOT } / PythonAPI / carla : $ { CARLA _ ROOT } / PythonAPI / examples : $ { CARLA _ ROOT } / PythonAPI","title":"Installation"},{"location":"scenario_runner/README_OpenSCENARIO_2.0/#_1","text":"1 \u3001 \u8fd0\u884c carla cd / home / xxx / CARLA _ 0.9 . 13 . / CarlaUE4 . sh 2 \u3001 \u542f\u52a8 manual _ control python manual _ control . py - a -- rolename = ego _ vehicle 3 \u3001 \u8fd0\u884c OpenSCENARIO 2.0 \u573a\u666f python scenario _ runner . py -- sync -- openscenario2 srunner / examples / cut _ in _ and _ slow _ right . osc -- reloadWorld","title":"\u5feb\u901f \u5f00\u59cb"},{"location":"scenario_runner/agent_evaluation/","text":"\u8bbe\u7f6e \u60a8 \u7684 \u667a\u80fd \u4f53\u4ee5 \u8fdb\u884c \u8bc4\u4f30 \u91cd\u8981 \u63d0\u793a \uff1a \u6b64 \u4fe1\u606f \u5df2 \u8fc7\u65f6 \uff0c \u6311\u6218 \u6587\u4ef6 \u5df2 \u88ab \u5220\u9664 \u3002 \u8be5 \u529f\u80fd \u73b0\u5df2 \u79fb\u81f3 \u6392\u884c \u6392\u884c\u699c \u3002 \u4f46\u662f \uff0c \u5b83 \u4ecd\u7136 \u53ef\u4ee5 \u4e0e scene _ runner . py \u7684 \u8def\u7531 \u53c2\u6570 \u4e00\u8d77 \u4f7f\u7528 \uff0c \u800c \u4e0d\u662f \u4e0e challenge _ evaluator . py \u4e00\u8d77 \u4f7f\u7528 \u8981 \u8ba9 \u6311\u6218 \u8bc4\u4f30 \u7cfb\u7edf \u8bc4\u4f30 \u60a8 \u7684 \u4ee3\u7406 \uff0c \u60a8 \u5fc5\u987b \u5b9a\u4e49 \u7ee7\u627f AutonomousAgent \u57fa\u7c7b \u7684 Agent \u7c7b \u3002 \u6b64\u5916 \uff0c \u60a8 \u9700\u8981 \u6309\u7167 \u6311\u6218 \u8bc4\u4f30 \u8bc4\u4f30\u5668 \u6559\u7a0b \u4e2d \u7684 \u8bf4\u660e \u8bbe\u7f6e \u73af\u5883 \u3002 \u5728 \u60a8 \u7684 \u4ee3\u7406 \u7c7b\u4e0a \uff0c \u9700\u8981 \u5b9a\u4e49 \u4e09\u4e2a \u4e3b\u8981 \u51fd\u6570 \u6765 \u8986\u76d6 \u5b83\u4eec \uff0c \u4ee5\u4fbf \u8bbe\u7f6e \u4ee3\u7406 \u8fd0\u884c \u3002 \u6b64\u5916 \uff0c \u60a8 \u8fd8 \u5e94\u8be5 \u8003\u8651 \u6700\u521d \u8bbe\u7f6e \u4e3a \u53d8\u91cf \u7684 \u76ee\u6807 \u8def\u5f84 \u3002 \" setup \" \u51fd\u6570 : \u60a8 \u5e94\u8be5 \u5728 \u8be5 \u529f\u80fd \u4e2d\u4e3a \u4ee3\u7406 \u8fdb\u884c \u6240\u6709 \u5fc5\u8981 \u7684 \u8bbe\u7f6e \u3002 \u8be5 \u51fd\u6570 \u63a5\u6536 \u8981 \u7531 \u7528\u6237 \u89e3\u6790 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u8def\u5f84 \u4f5c\u4e3a \u53c2\u6570 \u3002 \u6267\u884c \u201c challenge _ evaluator . py \u201d \u65f6 \uff0c \u60a8 \u5e94\u8be5 \u5c06 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u8def\u5f84 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u3002 \u4f8b\u5982 \uff1a python srunner / challenge / challenge _ evaluator _ routes . py -- agent = < path _ to _ my _ agent > -- config = myconfigfilename . format \" sensors \" \u51fd\u6570 : \u60a8 \u53ef\u4ee5 \u5728 \u6b64 \u529f\u80fd \u4e2d \u8bbe\u7f6e \u4ee3\u7406 \u6240 \u9700 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4f8b\u5982 \uff0c \u5728 \u865a\u62df \u4ee3\u7406 \u793a\u4f8b \u7c7b\u4e0a \u5b9a\u4e49 \u4e86 \u4ee5\u4e0b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a def sensors ( self ) : sensors = [ { ' type ' : ' sensor . camera . rgb ' , ' x ' : 0.7 , ' y ' : 0.0 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : 0.0 , ' width ' : 800 , ' height ' : 600 , ' fov ' : 100 , ' id ' : ' Center ' } , { ' type ' : ' sensor . camera . rgb ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 , ' width ' : 800 , ' height ' : 600 , ' fov ' : 100 , ' id ' : ' Left ' } , { ' type ' : ' sensor . camera . rgb ' , ' x ' : 0.7 , ' y ' : 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : 45.0 , ' width ' : 800 , ' height ' : 600 , ' fov ' : 100 , ' id ' : ' Right ' } , { ' type ' : ' sensor . lidar . ray _ cast ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 , ' id ' : ' LIDAR ' } , { ' type ' : ' sensor . other . gnss ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' id ' : ' GPS ' } , { ' type ' : ' sensor . speedometer ' , ' reading _ frequency ' : 25 , ' id ' : ' speed ' } ] return sensors \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u662f \u4e00\u672c \u5b57\u5178 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u5176\u4e2d \u6307\u5b9a \uff1a type : \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u8981 \u6dfb\u52a0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f8b\u5982 \uff1a \u201c sensor . camera . rgb \u201d \u8868\u793a RGB \u76f8\u673a \uff0c \u201c sensor . lidar . ray _ cast \u201d \u8868\u793a \u5149\u7ebf \u6295\u5c04 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 id : \u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u7684 \u6807\u7b7e \uff0c \u4ee5\u4fbf \u7a0d\u540e \u8bbf\u95ee \u3002 \u5176\u4ed6 \u53c2\u6570 \uff1a \u8fd9\u4e9b \u53c2\u6570 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f8b\u5982 \u4f4d\u7f6e \u201c x \u201d \u548c \u201c y \u201d \uff0c \u6216 \u76f8\u673a \u7684 \u89c6\u91ce \u201c fov \u201d \" run _ step \" \u51fd\u6570 : \u4ece \u6311\u6218 \u8bc4\u4f30 \u5f00\u59cb \uff0c \u4eff\u771f \u7684 \u6bcf\u4e2a \u6b65\u9aa4 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \uff0c \u5e76 \u63a5\u6536 \u4e00\u4e9b \u8f93\u5165 \u6570\u636e \u4f5c\u4e3a \u53c2\u6570 \u3002 \u8be5 \u8f93\u5165 \u6570\u636e \u662f \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u5305\u542b \u201c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u201d \u51fd\u6570 \u4e2d \u6307\u5b9a \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6b64 \u51fd\u6570 \u5e94 \u8fd4\u56de \u8981 \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u63a7\u5236 \u3002 \u521d\u59cb \u8def\u7ebf : \u5728 \u6267\u884c \u5f00\u59cb \u65f6 \uff0c \u82f1\u96c4 \u4ee3\u7406 \u5e94\u8be5 \u884c\u9a76 \u7684 \u6574\u4e2a \u8def\u7ebf \u662f \u5728 \u201c self . global _ plan \u201d \u53d8\u91cf \u4e0a \u8bbe\u7f6e \u7684 \uff1a [ ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002271601998707 } , < RoadOption . LANEFOLLOW : 4 > ) , ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002709765148996 } , < RoadOption . LANEFOLLOW : 4 > ) , ... ( { ' z ' : 0.0 , ' lat ' : 48.99822679980298 , ' lon ' : 8.002735250105061 } , < RoadOption . LANEFOLLOW : 4 > ) ] ` \u5b83 \u8868\u793a \u4e3a \u5143\u7ec4 \u5217\u8868 \uff0c \u5305\u542b \u4ee5 \u7eac\u5ea6 \u548c \u7ecf\u5ea6 \u8868\u793a \u7684 \u8def\u7ebf \u822a\u70b9 \u4ee5\u53ca \u5efa\u8bae \u7684 \u5f53\u524d \u9053\u8def \u9009\u9879 \u3002 \u5bf9\u4e8e \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \uff0c \u9009\u9879 \u53ef\u4ee5 \u662f \u76f4\u884c \u3001 \u5de6\u8f6c \u6216 \u53f3\u8f6c \u3002 \u5bf9\u4e8e \u8def\u7ebf \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \uff0c \u5efa\u8bae \u9009\u62e9 \u8f66\u9053 \u8ddf\u968f \u3002","title":"Agent evaluation"},{"location":"scenario_runner/agent_evaluation/#_1","text":"","title":"\u8bbe\u7f6e \u60a8 \u7684 \u667a\u80fd \u4f53\u4ee5 \u8fdb\u884c \u8bc4\u4f30"},{"location":"scenario_runner/agent_evaluation/#scene_runnerpy-challenge_evaluatorpy","text":"\u8981 \u8ba9 \u6311\u6218 \u8bc4\u4f30 \u7cfb\u7edf \u8bc4\u4f30 \u60a8 \u7684 \u4ee3\u7406 \uff0c \u60a8 \u5fc5\u987b \u5b9a\u4e49 \u7ee7\u627f AutonomousAgent \u57fa\u7c7b \u7684 Agent \u7c7b \u3002 \u6b64\u5916 \uff0c \u60a8 \u9700\u8981 \u6309\u7167 \u6311\u6218 \u8bc4\u4f30 \u8bc4\u4f30\u5668 \u6559\u7a0b \u4e2d \u7684 \u8bf4\u660e \u8bbe\u7f6e \u73af\u5883 \u3002 \u5728 \u60a8 \u7684 \u4ee3\u7406 \u7c7b\u4e0a \uff0c \u9700\u8981 \u5b9a\u4e49 \u4e09\u4e2a \u4e3b\u8981 \u51fd\u6570 \u6765 \u8986\u76d6 \u5b83\u4eec \uff0c \u4ee5\u4fbf \u8bbe\u7f6e \u4ee3\u7406 \u8fd0\u884c \u3002 \u6b64\u5916 \uff0c \u60a8 \u8fd8 \u5e94\u8be5 \u8003\u8651 \u6700\u521d \u8bbe\u7f6e \u4e3a \u53d8\u91cf \u7684 \u76ee\u6807 \u8def\u5f84 \u3002","title":"\u91cd\u8981 \u63d0\u793a \uff1a \u6b64 \u4fe1\u606f \u5df2 \u8fc7\u65f6 \uff0c \u6311\u6218 \u6587\u4ef6 \u5df2 \u88ab \u5220\u9664 \u3002 \u8be5 \u529f\u80fd \u73b0\u5df2 \u79fb\u81f3 \u6392\u884c\u699c \u3002 \u4f46\u662f \uff0c \u5b83 \u4ecd\u7136 \u53ef\u4ee5 \u4e0e scene _ runner . py \u7684 \u8def\u7531 \u53c2\u6570 \u4e00\u8d77 \u4f7f\u7528 \uff0c \u800c \u4e0d\u662f \u4e0e challenge _ evaluator . py \u4e00\u8d77 \u4f7f\u7528"},{"location":"scenario_runner/agent_evaluation/#setup","text":"\u60a8 \u5e94\u8be5 \u5728 \u8be5 \u529f\u80fd \u4e2d\u4e3a \u4ee3\u7406 \u8fdb\u884c \u6240\u6709 \u5fc5\u8981 \u7684 \u8bbe\u7f6e \u3002 \u8be5 \u51fd\u6570 \u63a5\u6536 \u8981 \u7531 \u7528\u6237 \u89e3\u6790 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u8def\u5f84 \u4f5c\u4e3a \u53c2\u6570 \u3002 \u6267\u884c \u201c challenge _ evaluator . py \u201d \u65f6 \uff0c \u60a8 \u5e94\u8be5 \u5c06 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u8def\u5f84 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u3002 \u4f8b\u5982 \uff1a python srunner / challenge / challenge _ evaluator _ routes . py -- agent = < path _ to _ my _ agent > -- config = myconfigfilename . format","title":"\" setup \" \u51fd\u6570 :"},{"location":"scenario_runner/agent_evaluation/#sensors","text":"\u60a8 \u53ef\u4ee5 \u5728 \u6b64 \u529f\u80fd \u4e2d \u8bbe\u7f6e \u4ee3\u7406 \u6240 \u9700 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4f8b\u5982 \uff0c \u5728 \u865a\u62df \u4ee3\u7406 \u793a\u4f8b \u7c7b\u4e0a \u5b9a\u4e49 \u4e86 \u4ee5\u4e0b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a def sensors ( self ) : sensors = [ { ' type ' : ' sensor . camera . rgb ' , ' x ' : 0.7 , ' y ' : 0.0 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : 0.0 , ' width ' : 800 , ' height ' : 600 , ' fov ' : 100 , ' id ' : ' Center ' } , { ' type ' : ' sensor . camera . rgb ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 , ' width ' : 800 , ' height ' : 600 , ' fov ' : 100 , ' id ' : ' Left ' } , { ' type ' : ' sensor . camera . rgb ' , ' x ' : 0.7 , ' y ' : 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : 45.0 , ' width ' : 800 , ' height ' : 600 , ' fov ' : 100 , ' id ' : ' Right ' } , { ' type ' : ' sensor . lidar . ray _ cast ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 , ' id ' : ' LIDAR ' } , { ' type ' : ' sensor . other . gnss ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' id ' : ' GPS ' } , { ' type ' : ' sensor . speedometer ' , ' reading _ frequency ' : 25 , ' id ' : ' speed ' } ] return sensors \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u662f \u4e00\u672c \u5b57\u5178 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u5176\u4e2d \u6307\u5b9a \uff1a type : \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u8981 \u6dfb\u52a0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f8b\u5982 \uff1a \u201c sensor . camera . rgb \u201d \u8868\u793a RGB \u76f8\u673a \uff0c \u201c sensor . lidar . ray _ cast \u201d \u8868\u793a \u5149\u7ebf \u6295\u5c04 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 id : \u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u7684 \u6807\u7b7e \uff0c \u4ee5\u4fbf \u7a0d\u540e \u8bbf\u95ee \u3002 \u5176\u4ed6 \u53c2\u6570 \uff1a \u8fd9\u4e9b \u53c2\u6570 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f8b\u5982 \u4f4d\u7f6e \u201c x \u201d \u548c \u201c y \u201d \uff0c \u6216 \u76f8\u673a \u7684 \u89c6\u91ce \u201c fov \u201d","title":"\" sensors \" \u51fd\u6570 :"},{"location":"scenario_runner/agent_evaluation/#run_step","text":"\u4ece \u6311\u6218 \u8bc4\u4f30 \u5f00\u59cb \uff0c \u4eff\u771f \u7684 \u6bcf\u4e2a \u6b65\u9aa4 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \uff0c \u5e76 \u63a5\u6536 \u4e00\u4e9b \u8f93\u5165 \u6570\u636e \u4f5c\u4e3a \u53c2\u6570 \u3002 \u8be5 \u8f93\u5165 \u6570\u636e \u662f \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u5305\u542b \u201c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u201d \u51fd\u6570 \u4e2d \u6307\u5b9a \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6b64 \u51fd\u6570 \u5e94 \u8fd4\u56de \u8981 \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u63a7\u5236 \u3002","title":"\" run _ step \" \u51fd\u6570 :"},{"location":"scenario_runner/agent_evaluation/#_2","text":"\u5728 \u6267\u884c \u5f00\u59cb \u65f6 \uff0c \u82f1\u96c4 \u4ee3\u7406 \u5e94\u8be5 \u884c\u9a76 \u7684 \u6574\u4e2a \u8def\u7ebf \u662f \u5728 \u201c self . global _ plan \u201d \u53d8\u91cf \u4e0a \u8bbe\u7f6e \u7684 \uff1a [ ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002271601998707 } , < RoadOption . LANEFOLLOW : 4 > ) , ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002709765148996 } , < RoadOption . LANEFOLLOW : 4 > ) , ... ( { ' z ' : 0.0 , ' lat ' : 48.99822679980298 , ' lon ' : 8.002735250105061 } , < RoadOption . LANEFOLLOW : 4 > ) ] ` \u5b83 \u8868\u793a \u4e3a \u5143\u7ec4 \u5217\u8868 \uff0c \u5305\u542b \u4ee5 \u7eac\u5ea6 \u548c \u7ecf\u5ea6 \u8868\u793a \u7684 \u8def\u7ebf \u822a\u70b9 \u4ee5\u53ca \u5efa\u8bae \u7684 \u5f53\u524d \u9053\u8def \u9009\u9879 \u3002 \u5bf9\u4e8e \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \uff0c \u9009\u9879 \u53ef\u4ee5 \u662f \u76f4\u884c \u3001 \u5de6\u8f6c \u6216 \u53f3\u8f6c \u3002 \u5bf9\u4e8e \u8def\u7ebf \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \uff0c \u5efa\u8bae \u9009\u62e9 \u8f66\u9053 \u8ddf\u968f \u3002","title":"\u521d\u59cb \u8def\u7ebf :"},{"location":"scenario_runner/creating_new_scenario/","text":"\u521b\u5efa \u65b0 \u573a\u666f \u6559\u7a0b \u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 ScenarioRunner \u548c ScenarioManager \u5957\u4ef6 \u521b\u5efa \u548c \u8fd0\u884c \u65b0 \u573a\u666f \u3002 \u6211\u4eec \u5c06 \u65b0 \u573a\u666f \u79f0\u4e3a NewScenario \u3002 \u8981 \u521b\u5efa \u5b83 \uff0c \u53ea \u9700\u8981 \u51e0\u4e2a \u6b65\u9aa4 \u3002 \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 Python \u7c7b \u8f6c \u5230 Scenarios \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u4f7f\u7528 \u65b0 Python \u6587\u4ef6 \u4e2d \u7684 NewScenario \u540d\u79f0 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 Python \u7c7b new _ scenario . py \u3002 \u7c7b \u5e94\u8be5 \u4ece BasicScenario \u7c7b \u6d3e\u751f \u3002 \u7ed3\u679c \uff0c \u8be5\u7c7b \u5e94 \u5982\u4e0b \u6240\u793a \uff1a class NewScenario ( BasicScenario ) : \" \" \" Some documentation on NewScenario : param world is the CARLA world : param ego _ vehicles is a list of ego vehicles for this scenario : param config is the scenario configuration ( ScenarioConfiguration ) : param randomize can be used to select parameters randomly ( optional , default = False ) : param debug _ mode can be used to provide more comprehensive console output ( optional , default = False ) : param criteria _ enable can be used to disable / enable scenario evaluation based on test criteria ( optional , default = True ) : param timeout is the overall scenario timeout ( optional , default = 60 seconds ) \" \" \" # some ego vehicle parameters # some parameters for the other vehicles def __ init __ ( self , world , ego _ vehicles , config , randomize = False , debug _ mode = False , criteria _ enable = True , timeout = 60 ) : \" \" \" Initialize all parameters required for NewScenario \" \" \" # Call constructor of BasicScenario super ( NewScenario , self ) .__ init __ ( \" NewScenario \" , ego _ vehicles , config , world , debug _ mode , criteria _ enable = criteria _ enable ) def _ create _ behavior ( self ) : \" \" \" Setup the behavior for NewScenario \" \" \" def _ create _ test _ criteria ( self ) : \" \" \" Setup the evaluation criteria for NewScenario \" \" \" \u586b\u5145 Python \u7c7b \u5728 NewScenario \u7c7b\u4e2d \uff0c \u60a8 \u5fc5\u987b \u5b9a\u4e49 \u4ee3\u7801 \u793a\u4f8b \u4e2d \u63d0\u5230 \u7684 \u4ee5\u4e0b \u65b9\u6cd5 \u3002 \u521d\u59cb \u521d\u59cb\u5316 \u65b9\u6cd5 \u521d\u59cb \u521d\u59cb\u5316 \u65b9\u6cd5 \u65e8\u5728 \u8bbe\u7f6e \u573a\u666f \u548c \u6240\u6709 \u8f66\u8f86 \u6240 \u9700 \u7684 \u6240\u6709 \u53c2\u6570 \u3002 \u8fd9 \u5305\u62ec \u9009\u62e9 \u6b63\u786e \u7684 \u8f66\u8f86 \u3001 \u5728 \u6b63\u786e \u7684 \u4f4d\u7f6e \u751f\u6210 \u5b83\u4eec \u7b49 \u3002 \u4e3a\u4e86 \u7b80\u5316 \u8fd9 \u4e00\u70b9 \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u4f7f\u7528 basic _ scenario . py \u4e2d \u5b9a\u4e49 \u7684 setup _ vehicle ( ) \u65b9\u6cd5 \u3002 CreateBehavior \u65b9\u6cd5 \u6b64 \u65b9\u6cd5 \u5e94 \u8bbe\u7f6e \u5305\u542b \u573a\u666f \u671f\u95f4 \u6240\u6709 \u975e \u81ea\u6211 \u8f66\u8f86 \u884c\u4e3a \u7684 \u884c\u4e3a \u6811 \u3002 \u884c\u4e3a \u6811 \u5e94\u8be5 \u4f7f\u7528 atomic _ scenario _ behavior . py \u548c atomic _ scenario _ behavior . py \u4e2d \u5b9a\u4e49 \u7684 \u539f\u5b50 \u884c\u4e3a \u3002 CreateTestCriteria \u65b9\u6cd5 \u6b64 \u65b9\u6cd5 \u5e94 \u8bbe\u7f6e \u4e00\u4e2a \u5305\u542b \u573a\u666f \u7684 \u6240\u6709 \u8bc4\u4f30 \u6807\u51c6 \u7684 \u5217\u8868 \u3002 \u8be5 \u6807\u51c6 \u5e94 \u57fa\u4e8e atomic _ scenario _ criteria . py \u4e2d \u5b9a\u4e49 \u7684 \u539f\u5b50 \u6807\u51c6 \u3002 \u6ce8\u610f : \u4ece\u6b64 \u5217\u8868 py _ tree \u4e2d\u5c06 \u81ea\u52a8 \u521b\u5efa \u5e76\u884c \uff01 \u6dfb\u52a0 \u573a\u666f \u914d\u7f6e \u6700\u540e \uff0c \u573a\u666f \u914d\u7f6e \u5e94 \u6dfb\u52a0 \u5230 \u8be5 examples / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5982\u679c \u6269\u5c55 \u5df2\u7ecf \u5b58\u5728 \u7684 \u573a\u666f \u6a21\u5757 \uff0c \u5219 \u53ea \u9700 \u6269\u5c55 \u76f8\u5e94 \u7684 XML \uff0c \u5426\u5219 \u6dfb\u52a0 \u65b0 \u7684 XML \u6587\u4ef6 \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u4efb\u4f55 \u73b0\u6709 \u7684 XML \u6587\u4ef6 \u4f5c\u4e3a \u84dd\u56fe \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u4e00\u4e2a \u573a\u666f \u6dfb\u52a0 \u591a\u4e2a \u81ea\u6211 \u8f66\u8f86 \uff0c \u8bf7 \u786e\u4fdd \u5b83\u4eec \u4f7f\u7528 \u4e0d\u540c \u7684 \u89d2\u8272 \u540d\u79f0 \uff0c \u4f8b\u5982 < scenario name = \" MultiEgoTown03 \" type = \" FreeRide \" town = \" Town03 \" > < ego _ vehicle x = \" 207 \" y = \" 59 \" z = \" 0 \" yaw = \" 180 \" model = \" vehicle . lincoln . mkz _ 2017 \" rolename = \" hero \" / > < ego _ vehicle x = \" 237 \" y = \" - 95.0754252474 \" z = \" 0 \" yaw = \" 90 \" model = \" vehicle . tesla . model3 \" rolename = \" hero2 \" / > < / scenario >","title":"\u521b\u5efa \u65b0 \u573a\u666f \u6559\u7a0b"},{"location":"scenario_runner/creating_new_scenario/#_1","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 ScenarioRunner \u548c ScenarioManager \u5957\u4ef6 \u521b\u5efa \u548c \u8fd0\u884c \u65b0 \u573a\u666f \u3002 \u6211\u4eec \u5c06 \u65b0 \u573a\u666f \u79f0\u4e3a NewScenario \u3002 \u8981 \u521b\u5efa \u5b83 \uff0c \u53ea \u9700\u8981 \u51e0\u4e2a \u6b65\u9aa4 \u3002","title":"\u521b\u5efa \u65b0 \u573a\u666f \u6559\u7a0b"},{"location":"scenario_runner/creating_new_scenario/#python","text":"\u8f6c \u5230 Scenarios \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u4f7f\u7528 \u65b0 Python \u6587\u4ef6 \u4e2d \u7684 NewScenario \u540d\u79f0 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 Python \u7c7b new _ scenario . py \u3002 \u7c7b \u5e94\u8be5 \u4ece BasicScenario \u7c7b \u6d3e\u751f \u3002 \u7ed3\u679c \uff0c \u8be5\u7c7b \u5e94 \u5982\u4e0b \u6240\u793a \uff1a class NewScenario ( BasicScenario ) : \" \" \" Some documentation on NewScenario : param world is the CARLA world : param ego _ vehicles is a list of ego vehicles for this scenario : param config is the scenario configuration ( ScenarioConfiguration ) : param randomize can be used to select parameters randomly ( optional , default = False ) : param debug _ mode can be used to provide more comprehensive console output ( optional , default = False ) : param criteria _ enable can be used to disable / enable scenario evaluation based on test criteria ( optional , default = True ) : param timeout is the overall scenario timeout ( optional , default = 60 seconds ) \" \" \" # some ego vehicle parameters # some parameters for the other vehicles def __ init __ ( self , world , ego _ vehicles , config , randomize = False , debug _ mode = False , criteria _ enable = True , timeout = 60 ) : \" \" \" Initialize all parameters required for NewScenario \" \" \" # Call constructor of BasicScenario super ( NewScenario , self ) .__ init __ ( \" NewScenario \" , ego _ vehicles , config , world , debug _ mode , criteria _ enable = criteria _ enable ) def _ create _ behavior ( self ) : \" \" \" Setup the behavior for NewScenario \" \" \" def _ create _ test _ criteria ( self ) : \" \" \" Setup the evaluation criteria for NewScenario \" \" \"","title":"\u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 Python \u7c7b"},{"location":"scenario_runner/creating_new_scenario/#python_1","text":"\u5728 NewScenario \u7c7b\u4e2d \uff0c \u60a8 \u5fc5\u987b \u5b9a\u4e49 \u4ee3\u7801 \u793a\u4f8b \u4e2d \u63d0\u5230 \u7684 \u4ee5\u4e0b \u65b9\u6cd5 \u3002","title":"\u586b\u5145 Python \u7c7b"},{"location":"scenario_runner/creating_new_scenario/#_2","text":"\u521d\u59cb \u521d\u59cb\u5316 \u65b9\u6cd5 \u65e8\u5728 \u8bbe\u7f6e \u573a\u666f \u548c \u6240\u6709 \u8f66\u8f86 \u6240 \u9700 \u7684 \u6240\u6709 \u53c2\u6570 \u3002 \u8fd9 \u5305\u62ec \u9009\u62e9 \u6b63\u786e \u7684 \u8f66\u8f86 \u3001 \u5728 \u6b63\u786e \u7684 \u4f4d\u7f6e \u751f\u6210 \u5b83\u4eec \u7b49 \u3002 \u4e3a\u4e86 \u7b80\u5316 \u8fd9 \u4e00\u70b9 \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u4f7f\u7528 basic _ scenario . py \u4e2d \u5b9a\u4e49 \u7684 setup _ vehicle ( ) \u65b9\u6cd5 \u3002","title":"\u521d\u59cb\u5316 \u65b9\u6cd5"},{"location":"scenario_runner/creating_new_scenario/#createbehavior","text":"\u6b64 \u65b9\u6cd5 \u5e94 \u8bbe\u7f6e \u5305\u542b \u573a\u666f \u671f\u95f4 \u6240\u6709 \u975e \u81ea\u6211 \u8f66\u8f86 \u884c\u4e3a \u7684 \u884c\u4e3a \u6811 \u3002 \u884c\u4e3a \u6811 \u5e94\u8be5 \u4f7f\u7528 atomic _ scenario _ behavior . py \u548c atomic _ scenario _ behavior . py \u4e2d \u5b9a\u4e49 \u7684 \u539f\u5b50 \u884c\u4e3a \u3002","title":"CreateBehavior \u65b9\u6cd5"},{"location":"scenario_runner/creating_new_scenario/#createtestcriteria","text":"\u6b64 \u65b9\u6cd5 \u5e94 \u8bbe\u7f6e \u4e00\u4e2a \u5305\u542b \u573a\u666f \u7684 \u6240\u6709 \u8bc4\u4f30 \u6807\u51c6 \u7684 \u5217\u8868 \u3002 \u8be5 \u6807\u51c6 \u5e94 \u57fa\u4e8e atomic _ scenario _ criteria . py \u4e2d \u5b9a\u4e49 \u7684 \u539f\u5b50 \u6807\u51c6 \u3002 \u6ce8\u610f : \u4ece\u6b64 \u5217\u8868 py _ tree \u4e2d\u5c06 \u81ea\u52a8 \u521b\u5efa \u5e76\u884c \uff01","title":"CreateTestCriteria \u65b9\u6cd5"},{"location":"scenario_runner/creating_new_scenario/#_3","text":"\u6700\u540e \uff0c \u573a\u666f \u914d\u7f6e \u5e94 \u6dfb\u52a0 \u5230 \u8be5 examples / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5982\u679c \u6269\u5c55 \u5df2\u7ecf \u5b58\u5728 \u7684 \u573a\u666f \u6a21\u5757 \uff0c \u5219 \u53ea \u9700 \u6269\u5c55 \u76f8\u5e94 \u7684 XML \uff0c \u5426\u5219 \u6dfb\u52a0 \u65b0 \u7684 XML \u6587\u4ef6 \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u4efb\u4f55 \u73b0\u6709 \u7684 XML \u6587\u4ef6 \u4f5c\u4e3a \u84dd\u56fe \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u4e00\u4e2a \u573a\u666f \u6dfb\u52a0 \u591a\u4e2a \u81ea\u6211 \u8f66\u8f86 \uff0c \u8bf7 \u786e\u4fdd \u5b83\u4eec \u4f7f\u7528 \u4e0d\u540c \u7684 \u89d2\u8272 \u540d\u79f0 \uff0c \u4f8b\u5982 < scenario name = \" MultiEgoTown03 \" type = \" FreeRide \" town = \" Town03 \" > < ego _ vehicle x = \" 207 \" y = \" 59 \" z = \" 0 \" yaw = \" 180 \" model = \" vehicle . lincoln . mkz _ 2017 \" rolename = \" hero \" / > < ego _ vehicle x = \" 237 \" y = \" - 95.0754252474 \" z = \" 0 \" yaw = \" 90 \" model = \" vehicle . tesla . model3 \" rolename = \" hero2 \" / > < / scenario >","title":"\u6dfb\u52a0 \u573a\u666f \u914d\u7f6e"},{"location":"scenario_runner/getting_scenariorunner/","text":"\u83b7\u53d6 ScenarioRunner \u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4e0b\u8f7d ScenarioRunner \u5e76 \u8fd0\u884c \u4e00\u4e2a \u7b80\u5355 \u7684 \u793a\u4f8b \u6765 \u6d4b\u8bd5 \u5b83 \u3002 ScenarioRunner \u9700\u8981 Carla \u624d\u80fd \u8fd0\u884c \uff0c \u5e76\u4e14 \u5fc5\u987b \u4e0e \u6b63\u5728 \u4f7f\u7528 \u7684 Carla \u7248\u672c \u5339\u914d \u3002 \u5982\u679c \u4f7f\u7528 \u7684 Carla \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \uff0c \u8bf7 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e0b\u8f7d ScenarioRunner \u3002 \u5982\u679c \u4f7f\u7528 \u7684 Carla \u662f \u5305 \uff0c \u8bf7 \u4e0b\u8f7d \u5bf9\u5e94 \u7248\u672c \u7684 ScenarioRunner \u3002 \u5b89\u88c5 \u603b\u7ed3 A . \u4e0b\u8f7d ScenarioRunner \u53d1\u5e03 \u7248 \u66f4\u65b0 \u53d1\u5e03 \u7248 B . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e0b\u8f7d ScenarioRunner \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u66f4\u65b0 \u6784\u5efa \u8fd0\u884c \u6d4b\u8bd5 \u5b89\u88c5 \u603b\u7ed3 \u663e\u793a \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u6458\u8981 # Decide whether to use a package or make the build from source # Option A ) Use a ScenarioRunner package # 1 . Install a CARLA package : https : / / carla . readthedocs . io / en / latest / start _ quickstart / # 2 . Download the matching ScenarioRunner package : https : / / github . com / carla - simulator / scenario _ runner / releases # 3 . Extract the content wherever needed . # Update the release : # 1 . Delete previous CARLA and ScenarioRunner versions . # 2 . Download the latest CARLA release . # 3 . Download the matching ScenarioRunner release . # Option B ) Download ScenarioRunner from source # 1 . Build CARLA from source : https : / / carla . readthedocs . io / en / latest / build _ linux / # 2 . Clone the ScenarioRunner repository : git clone https : / / github . com / carla - simulator / scenario _ runner . git # 3 . Install requirements according to the Python version to be used : # For Python 2 . x : sudo apt remove python - networkx # if installed , remove old version of networkx pip2 install -- user - r requirements . txt # For Python 3 . x : sudo apt remove python3 - networkx # if installed , remove old version of networkx pip3 install -- user - r requirements . txt # To update ScenarioRunner from source : # 1 . Update CARLA : https : / / carla . readthedocs . io / en / latest / build _ update / # 2 . Go to the ScenarioRunner repository , master branch cd ~ / scenario _ runner git branch master # 3 . Pull the latest changes from the repository git pull A . \u4e0b\u8f7d ScenarioRunner \u53d1\u5e03 \u7248 ScenarioRunner \u7684 \u7248\u672c \u662f \u5305\u542b \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff1a * \u4e0e \u7279\u5b9a CARLA \u7248\u672c \u76f8\u5173 \u7684 ScenarioRunner \u7248\u672c \u3002 * \u7528 Python \u7f16\u5199 \u7684 \u4e00\u4e9b \u793a\u4f8b \u573a\u666f \u3002 \u8fd0\u884c ScenarioRunner \u7248\u672c \u7684 \u8fc7\u7a0b \u975e\u5e38 \u7b80\u5355 \u975e\u5e38\u7b80\u5355 \u3002 1 . \u4e0b\u8f7d CARLA \u53d1\u5e03 \u7248 \u3002 \u8bf7 \u6309\u7167 CARLA \u5feb\u901f \u5165\u95e8 \u4e2d \u7684 \u6d41\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 2 . \u4e0b\u8f7d \u5339\u914d \u7684 ScenarioRunner \u7248\u672c \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u6240\u6709 \u7248\u672c \u3002 \u91cd\u8981 \u4e24\u4e2a \u7248\u672c \u5fc5\u987b \u5339\u914d \u3002 \u5982\u679c CARLA \u7248\u672c \u662f 0.9 . 9 \uff0c \u5219 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 ScenarioRunner 0.9 . 9 \u3002 \u4ee5\u4e0b \u662f CARLA \u548c ScenarioRunner \u4e4b\u95f4 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u7684 \u7b80\u8981 \u5217\u8868 \u3002 3 . \u63d0\u53d6 \u5185\u5bb9 \u3002 \u76ee\u5f55 \u5e76 \u4e0d \u91cd\u8981 \u3002 \u66f4\u65b0 \u53d1\u5e03 \u7248 \u6253\u5305 \u7248\u672c \u4e0d \u9700\u8981 \u66f4\u65b0 \u3002 \u5185\u5bb9 \u662f \u6346\u7ed1 \u7684 \uff0c \u56e0\u6b64 \u4e0e CARLA \u7684 \u7279\u5b9a \u7248\u672c \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u6bcf\u6b21 \u6709 \u65b0 \u7684 CARLA \u7248\u672c \u65f6 \uff0c ScenarioRunner \u90fd \u4f1a \u6709 \u4e00\u4e2a \u5339\u914d \u7684 \u7248\u672c \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u6240\u6709 \u7248\u672c \uff1a CARLA \u53d1\u5e03 \u7248 Scenario Runner \u53d1\u5e03 \u7248 \u8981 \u8fd0\u884c \u6700\u65b0 \u7248\u672c \u6216 \u4efb\u4f55 \u5176\u4ed6 \u7248\u672c \uff0c \u8bf7 \u5220\u9664 \u4ee5\u524d \u7684 \u7248\u672c \u5e76 \u5b89\u88c5 \u6240 \u9700 \u7684 \u7248\u672c \u3002 B . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e0b\u8f7d ScenarioRunner ScenarioRunner \u6e90 \u5b58\u50a8 \u5e93 \u5305\u542b \u4e0e \u6700\u65b0 \u5f00\u53d1 \u7248\u672c CARLA \u4e00\u8d77 \u8fd0\u884c \u7684 \u6700\u5177 \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 \u529f\u80fd \u3002 \u5b83 \u4e0d \u9700\u8981 \u6784\u5efa \uff0c \u56e0\u4e3a \u5b83 \u53ea \u5305\u542b ScenarioRunner \u6a21\u5757 \u7684 Python \u4ee3\u7801 \u3002 1 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa CARLA \u3002 \u6309\u7167 \u6587\u6863 \u5728 Linux \u6216 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 \u91cd\u8981 ScenarioRunner \u9700\u8981 CARLA \u624d\u80fd \u8fd0\u884c \uff0c \u56e0\u6b64 \u6587\u6863 \u4e2d \u89c4\u5b9a \u7684 CARLA \u6700\u4f4e \u8981\u6c42 \u4e5f \u662f \u8fd0\u884c ScenarioRunner \u6240 \u5fc5\u9700 \u7684 \u3002 2 . \u514b\u9686 ScenarioRunner \u5b58\u50a8 \u5e93 \u3002 git clone https : / / github . com / carla - simulator / scenario _ runner . git 3 . \u6839\u636e \u8981 \u4f7f\u7528 \u7684 Python \u7248\u672c \u5b89\u88c5 \u9700\u6c42 \u3002 \u9996\u5148 \u8fdb\u5165 ScenarioRunner \u76ee\u5f55 \u4e3b\u76ee\u5f55 cd ~ / scenario _ runner / \u5bf9\u4e8e Python 2 . x . sudo apt remove python - networkx # if installed , remove old version of networkx pip2 install -- user - r requirements . txt \u5bf9\u4e8e Python 3 . x sudo apt remove python3 - networkx # if installed , remove old version of networkx pip3 install -- user - r requirements . txt \u8b66\u544a \u4e0d \u652f\u6301 \u9ad8\u4e8e v0.8 \u7684 py - tree \u3002 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u66f4\u65b0 \u6784\u5efa 1 . \u66f4\u65b0 CARLA \u6784\u5efa \u6309\u7167 \u6587\u6863 \u66f4\u65b0 CARLA \u3002 2 . \u8f6c\u5230 ScenarioRunner \u76ee\u5f55 \u4e3b\u76ee\u5f55 \u3002 \u786e\u4fdd \u4f4d\u4e8e \u672c \u5730\u4e3b \u5206\u652f \u4e2d \u3002 cd ~ / scenario _ runner git branch master 3 . \u4ece \u5b58\u50a8 \u5e93\u4e2d \u63d0\u53d6 \u6700\u65b0 \u66f4\u6539 \u3002 git pull 4 . \u6dfb\u52a0 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u548c Python \u8def\u5f84 \u8fd9\u4e9b \u662f \u7cfb\u7edf \u627e\u5230 CARLA \u6240 \u5fc5\u9700 \u7684 \uff0c \u5e76 \u5c06 PythonAPI \u6dfb\u52a0 \u5230 Python \u8def\u5f84 \u4e2d \u3002 \u5bf9\u4e8e Linux # $ { CARLA _ ROOT } is the CARLA installation directory # $ { SCENARIO _ RUNNER } is the ScenarioRunner installation directory # < VERSION > is the correct string for the Python version being used # In a build from source , the . egg files may be in : $ { CARLA _ ROOT } / PythonAPI / dist / instead of $ { CARLA _ ROOT } / PythonAPI export CARLA _ ROOT = / path / to / your / carla / installation export SCENARIO _ RUNNER _ ROOT = / path / to / your / scenario / runner / installation export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - < VERSION > . egg export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6ce8\u610f \u6839\u636e \u6ce8\u91ca \uff0c \u4f7f\u7528 \u6b63\u786e \u7684 \u8def\u5f84 \u66f4\u6539 \u547d\u4ee4 \u547d\u4ee4\u884c \u3002 \u5bf9\u4e8e Windows # % CARLA _ ROOT% is the CARLA installation directory # % SCENARIO _ RUNNER% is the ScenarioRunner installation directory # < VERSION > is the correct string for the Python version being used # In a build from source , the . egg files may be in : $ { CARLA _ ROOT } / PythonAPI / dist / instead of $ { CARLA _ ROOT } / PythonAPI set CARLA _ ROOT = \\ path \\ to \\ your \\ carla \\ installation set SCENARIO _ RUNNER _ ROOT = \\ path \\ to \\ your \\ scenario \\ runner \\ installation set PYTHONPATH = % PYTHONPATH% ; % CARLA _ ROOT% \\ PythonAPI \\ carla \\ dist \\ carla - < VERSION > . egg set PYTHONPATH = % PYTHONPATH% ; % CARLA _ ROOT% \\ PythonAPI \\ carla \u6ce8\u610f \u6839\u636e \u6ce8\u91ca \uff0c \u4f7f\u7528 \u6b63\u786e \u7684 \u8def\u5f84 \u66f4\u6539 \u547d\u4ee4 \u547d\u4ee4\u884c \u3002 \u5982\u9700 \u6c38\u4e45 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u8bf7 \u524d\u5f80 \u7f16\u8f91 \u8be5 \u8d26\u6237 \u7684 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u901a\u8fc7 \u5728 Windows \u7684 \u641c\u7d22 \u9762\u677f \u4e0a \u8f93\u5165 env \u53ef\u4ee5 \u5feb\u901f \u8bbf\u95ee \u5feb\u901f\u8bbf\u95ee \u5b83 \u3002 \u5982\u679c \u9700\u8981 \u8fd0\u884c \u57fa\u4e8e OpenSCENARIO 2.0 \u683c\u5f0f \u7684 \u573a\u666f \uff0c \u8bf7 \u5148 \u5b89\u88c5 graphviz \u548c antlr \uff1a sudo apt - get install - y openjdk - 17 - jdk graphviz curl - O https : / / www . antlr . org / download / antlr - 4.10 . 1 - complete . jar sudo cp antlr - 4.10 . 1 - complete . jar / usr / local / lib / sudo gedit ~ / . bashrc \u5c06 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6dfb\u52a0 \u5230 ~ / . bashrc \u4e2d \uff1a export CLASSPATH = \" . : / usr / local / lib / antlr - 4.10 . 1 - complete . jar : $ CLASSPATH \" alias antlr4 = ' java - jar / usr / local / lib / antlr - 4.10 . 1 - complete . jar ' alias grun = ' java org . antlr . v4 . gui . TestRig ' \u5e76 \u4f7f \u66f4\u6539 \u751f\u6548 \uff1a source ~ / . bashrc \u8fd0\u884c \u6d4b\u8bd5 \u8fd0\u884c \u4ee5\u4e0b \u8f66\u8f86 \u793a\u4f8b \u3002 \u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u4ece CARLA \u83b7\u53d6 \u6700\u65b0 \u7684 \u4e3b \u5206\u652f \u3002 \u7136\u540e \u60a8 \u5fc5\u987b \u5c06 CARLA Python API \u5305\u542b \u5230 Python \u8def\u5f84 \u4e2d \uff1a \u91cd\u8981 \u5982\u679c \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \uff0c \u8bf7 \u786e\u4fdd \u4e0a\u4f20 \u5b83\u4eec \u3002 \u4e0b\u8f7d master \u5206\u652f \u4e2d \u7684 \u6700\u65b0 \u5185\u5bb9 \u3002 1 . \u8fd0\u884c CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 A ) \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \uff0c \u8f6c \u5230 CARLA \u76ee\u5f55 \u5e76 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 cd ~ / carla # Change the path accordingly make launch # Press Play in the UE Editor B ) \u5728 CARLA \u5305\u4e2d \u76f4\u63a5 \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 . / CarlaUE4 . sh 2 . \u542f\u52a8 \u793a\u4f8b \u573a\u666f \u3002 \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \uff0c \u8fdb\u5165 ScenarioRunner \u4e0b\u8f7d \u7684 \u76ee\u5f55 \u3002 \u4e3a\u4e86 \u8fdb\u884c \u672c\u6b21 \u6d4b\u8bd5 \uff0c \u5c06 \u4f7f\u7528 \u4ee5\u4e0b \u5f15\u5bfc \u8f66\u8f86 \u573a\u666f \uff08 scenario _ runner . py \u548c manual _ control . py \u8981 \u4f7f\u7528 \u5bf9\u5e94 \u7684 \u53d1\u5e03 \u7248\u672c \uff0c \u5f00\u53d1 \u7248 \u4e0d \u4e00\u5b9a \u6210\u679c \uff09 \u3002 # Inside the ScenarioRunner root directory python scenario _ runner . py -- scenario FollowLeadingVehicle _ 1 -- reloadWorld \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u67e5\u770b \u5f53\u524d \u573a\u666f \u6709 \u54ea\u4e9b \uff1a python scenario _ runner . py -- list \u6ce8\u610f \u5982\u679c \u4f7f\u7528 Python 3 . x \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u5e26\u6709 python3 . 3 . \u901a\u8fc7 \u624b\u52a8 \u63a7\u5236 \u6d4b\u8bd5 \u573a\u666f \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c manual _ control . py \u3002 \u5e94\u8be5 \u4f1a\u5f39 \u51fa \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u8857\u9053 \u4e2d\u592e \u6709 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \u3002 \u5411\u524d \u79fb\u52a8 \uff0c \u9886\u5934 \u8f66\u8f86 \u5c31 \u4f1a \u51fa\u73b0 \u3002 # Inside the ScenarioRunner root directory python manual _ control . py \u8fd9\u4e9b \u573a\u666f \u6709 \u5927\u7ea6 \u4e00\u5206 \u5206\u949f \u4e00\u5206\u949f \u7684 \u8d85\u65f6 \u65f6\u95f4 \uff0c \u4ee5\u4fbf \u542f\u52a8 \u4ee3\u7406 \u3002 \u5982\u679c \u51fa\u73b0 \u8d85\u65f6 \uff0c \u5219 \u5e94 \u518d\u6b21 \u542f\u52a8 \u8ddf\u968f \u9886\u5148 \u8f66\u8f86 \u793a\u4f8b \u3002 \u8b66\u544a \u8fd0\u884c manual _ control . py ScenarioRunner \u5305 / \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u7684 \u5185\u5bb9 \uff0c \u800c \u4e0d\u662f CARLA \u3002 4 . \u63a2\u7d22 \u5176\u4ed6 \u9009\u62e9 \u3002 \u4f7f\u7528 \u6807\u5fd7 \u8fd0\u884c \u573a\u666f \u8fd0\u884c \u5668 -- help \u6765 \u63a2\u7d22 \u5176\u4ed6 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u548c \u4e00\u4e9b \u57fa\u672c \u63cf\u8ff0 \u3002 \u4f8b\u5982 \uff0c \u4e3a\u4e86 \u907f\u514d \u81ea\u52a8 \uff08 \u91cd\u65b0 \uff09 \u52a0\u8f7d CARLA \u4e16\u754c \uff0c \u8bf7 \u8df3 \u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 -- reloadWorld \u3002 python scenario _ runner . py -- help ScenarioRunner \u7684 \u5b89\u88c5 \u8fc7\u7a0b \u81f3\u6b64 \u7ed3\u675f \u3002 \u5982\u679c \u53d1\u751f \u4efb\u4f55 \u610f\u5916 \u9519\u8bef \u6216 \u95ee\u9898 \uff0c CARLA \u8bba\u575b \u5411 \u6240\u6709 \u6709\u4eba \u6240\u6709\u4eba \u5f00\u653e \u3002 \u6709 \u4e00\u4e2a ScenarioRunner \u7c7b\u522b \u7528\u4e8e \u53d1\u5e03 \u6709\u5173 \u6b64 \u6a21\u5757 \u7684 \u95ee\u9898 \u548c \u7591\u95ee \u3002","title":"Getting scenariorunner"},{"location":"scenario_runner/getting_scenariorunner/#scenariorunner","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4e0b\u8f7d ScenarioRunner \u5e76 \u8fd0\u884c \u4e00\u4e2a \u7b80\u5355 \u7684 \u793a\u4f8b \u6765 \u6d4b\u8bd5 \u5b83 \u3002 ScenarioRunner \u9700\u8981 Carla \u624d\u80fd \u8fd0\u884c \uff0c \u5e76\u4e14 \u5fc5\u987b \u4e0e \u6b63\u5728 \u4f7f\u7528 \u7684 Carla \u7248\u672c \u5339\u914d \u3002 \u5982\u679c \u4f7f\u7528 \u7684 Carla \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \uff0c \u8bf7 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e0b\u8f7d ScenarioRunner \u3002 \u5982\u679c \u4f7f\u7528 \u7684 Carla \u662f \u5305 \uff0c \u8bf7 \u4e0b\u8f7d \u5bf9\u5e94 \u7248\u672c \u7684 ScenarioRunner \u3002 \u5b89\u88c5 \u603b\u7ed3 A . \u4e0b\u8f7d ScenarioRunner \u53d1\u5e03 \u7248 \u66f4\u65b0 \u53d1\u5e03 \u7248 B . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e0b\u8f7d ScenarioRunner \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u66f4\u65b0 \u6784\u5efa \u8fd0\u884c \u6d4b\u8bd5","title":"\u83b7\u53d6 ScenarioRunner"},{"location":"scenario_runner/getting_scenariorunner/#_1","text":"\u663e\u793a \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u6458\u8981 # Decide whether to use a package or make the build from source # Option A ) Use a ScenarioRunner package # 1 . Install a CARLA package : https : / / carla . readthedocs . io / en / latest / start _ quickstart / # 2 . Download the matching ScenarioRunner package : https : / / github . com / carla - simulator / scenario _ runner / releases # 3 . Extract the content wherever needed . # Update the release : # 1 . Delete previous CARLA and ScenarioRunner versions . # 2 . Download the latest CARLA release . # 3 . Download the matching ScenarioRunner release . # Option B ) Download ScenarioRunner from source # 1 . Build CARLA from source : https : / / carla . readthedocs . io / en / latest / build _ linux / # 2 . Clone the ScenarioRunner repository : git clone https : / / github . com / carla - simulator / scenario _ runner . git # 3 . Install requirements according to the Python version to be used : # For Python 2 . x : sudo apt remove python - networkx # if installed , remove old version of networkx pip2 install -- user - r requirements . txt # For Python 3 . x : sudo apt remove python3 - networkx # if installed , remove old version of networkx pip3 install -- user - r requirements . txt # To update ScenarioRunner from source : # 1 . Update CARLA : https : / / carla . readthedocs . io / en / latest / build _ update / # 2 . Go to the ScenarioRunner repository , master branch cd ~ / scenario _ runner git branch master # 3 . Pull the latest changes from the repository git pull","title":"\u5b89\u88c5 \u603b\u7ed3"},{"location":"scenario_runner/getting_scenariorunner/#a-scenariorunner","text":"ScenarioRunner \u7684 \u7248\u672c \u662f \u5305\u542b \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff1a * \u4e0e \u7279\u5b9a CARLA \u7248\u672c \u76f8\u5173 \u7684 ScenarioRunner \u7248\u672c \u3002 * \u7528 Python \u7f16\u5199 \u7684 \u4e00\u4e9b \u793a\u4f8b \u573a\u666f \u3002 \u8fd0\u884c ScenarioRunner \u7248\u672c \u7684 \u8fc7\u7a0b \u975e\u5e38 \u7b80\u5355 \u975e\u5e38\u7b80\u5355 \u3002 1 . \u4e0b\u8f7d CARLA \u53d1\u5e03 \u7248 \u3002 \u8bf7 \u6309\u7167 CARLA \u5feb\u901f \u5165\u95e8 \u4e2d \u7684 \u6d41\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 2 . \u4e0b\u8f7d \u5339\u914d \u7684 ScenarioRunner \u7248\u672c \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u6240\u6709 \u7248\u672c \u3002 \u91cd\u8981 \u4e24\u4e2a \u7248\u672c \u5fc5\u987b \u5339\u914d \u3002 \u5982\u679c CARLA \u7248\u672c \u662f 0.9 . 9 \uff0c \u5219 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 ScenarioRunner 0.9 . 9 \u3002 \u4ee5\u4e0b \u662f CARLA \u548c ScenarioRunner \u4e4b\u95f4 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u7684 \u7b80\u8981 \u5217\u8868 \u3002 3 . \u63d0\u53d6 \u5185\u5bb9 \u3002 \u76ee\u5f55 \u5e76 \u4e0d \u91cd\u8981 \u3002","title":"A . \u4e0b\u8f7d ScenarioRunner \u53d1\u5e03 \u7248"},{"location":"scenario_runner/getting_scenariorunner/#_2","text":"\u6253\u5305 \u7248\u672c \u4e0d \u9700\u8981 \u66f4\u65b0 \u3002 \u5185\u5bb9 \u662f \u6346\u7ed1 \u7684 \uff0c \u56e0\u6b64 \u4e0e CARLA \u7684 \u7279\u5b9a \u7248\u672c \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u6bcf\u6b21 \u6709 \u65b0 \u7684 CARLA \u7248\u672c \u65f6 \uff0c ScenarioRunner \u90fd \u4f1a \u6709 \u4e00\u4e2a \u5339\u914d \u7684 \u7248\u672c \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u6240\u6709 \u7248\u672c \uff1a CARLA \u53d1\u5e03 \u7248 Scenario Runner \u53d1\u5e03 \u7248 \u8981 \u8fd0\u884c \u6700\u65b0 \u7248\u672c \u6216 \u4efb\u4f55 \u5176\u4ed6 \u7248\u672c \uff0c \u8bf7 \u5220\u9664 \u4ee5\u524d \u7684 \u7248\u672c \u5e76 \u5b89\u88c5 \u6240 \u9700 \u7684 \u7248\u672c \u3002","title":"\u66f4\u65b0 \u53d1\u5e03 \u7248"},{"location":"scenario_runner/getting_scenariorunner/#b-scenariorunner","text":"ScenarioRunner \u6e90 \u5b58\u50a8 \u5e93 \u5305\u542b \u4e0e \u6700\u65b0 \u5f00\u53d1 \u7248\u672c CARLA \u4e00\u8d77 \u8fd0\u884c \u7684 \u6700\u5177 \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 \u529f\u80fd \u3002 \u5b83 \u4e0d \u9700\u8981 \u6784\u5efa \uff0c \u56e0\u4e3a \u5b83 \u53ea \u5305\u542b ScenarioRunner \u6a21\u5757 \u7684 Python \u4ee3\u7801 \u3002 1 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa CARLA \u3002 \u6309\u7167 \u6587\u6863 \u5728 Linux \u6216 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 \u91cd\u8981 ScenarioRunner \u9700\u8981 CARLA \u624d\u80fd \u8fd0\u884c \uff0c \u56e0\u6b64 \u6587\u6863 \u4e2d \u89c4\u5b9a \u7684 CARLA \u6700\u4f4e \u8981\u6c42 \u4e5f \u662f \u8fd0\u884c ScenarioRunner \u6240 \u5fc5\u9700 \u7684 \u3002 2 . \u514b\u9686 ScenarioRunner \u5b58\u50a8 \u5e93 \u3002 git clone https : / / github . com / carla - simulator / scenario _ runner . git 3 . \u6839\u636e \u8981 \u4f7f\u7528 \u7684 Python \u7248\u672c \u5b89\u88c5 \u9700\u6c42 \u3002 \u9996\u5148 \u8fdb\u5165 ScenarioRunner \u76ee\u5f55 \u4e3b\u76ee\u5f55 cd ~ / scenario _ runner / \u5bf9\u4e8e Python 2 . x . sudo apt remove python - networkx # if installed , remove old version of networkx pip2 install -- user - r requirements . txt \u5bf9\u4e8e Python 3 . x sudo apt remove python3 - networkx # if installed , remove old version of networkx pip3 install -- user - r requirements . txt \u8b66\u544a \u4e0d \u652f\u6301 \u9ad8\u4e8e v0.8 \u7684 py - tree \u3002","title":"B . \u4ece \u6e90\u4ee3\u7801 \u4e0b\u8f7d ScenarioRunner"},{"location":"scenario_runner/getting_scenariorunner/#_3","text":"1 . \u66f4\u65b0 CARLA \u6784\u5efa \u6309\u7167 \u6587\u6863 \u66f4\u65b0 CARLA \u3002 2 . \u8f6c\u5230 ScenarioRunner \u76ee\u5f55 \u4e3b\u76ee\u5f55 \u3002 \u786e\u4fdd \u4f4d\u4e8e \u672c \u5730\u4e3b \u5206\u652f \u4e2d \u3002 cd ~ / scenario _ runner git branch master 3 . \u4ece \u5b58\u50a8 \u5e93\u4e2d \u63d0\u53d6 \u6700\u65b0 \u66f4\u6539 \u3002 git pull 4 . \u6dfb\u52a0 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u548c Python \u8def\u5f84 \u8fd9\u4e9b \u662f \u7cfb\u7edf \u627e\u5230 CARLA \u6240 \u5fc5\u9700 \u7684 \uff0c \u5e76 \u5c06 PythonAPI \u6dfb\u52a0 \u5230 Python \u8def\u5f84 \u4e2d \u3002 \u5bf9\u4e8e Linux # $ { CARLA _ ROOT } is the CARLA installation directory # $ { SCENARIO _ RUNNER } is the ScenarioRunner installation directory # < VERSION > is the correct string for the Python version being used # In a build from source , the . egg files may be in : $ { CARLA _ ROOT } / PythonAPI / dist / instead of $ { CARLA _ ROOT } / PythonAPI export CARLA _ ROOT = / path / to / your / carla / installation export SCENARIO _ RUNNER _ ROOT = / path / to / your / scenario / runner / installation export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - < VERSION > . egg export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6ce8\u610f \u6839\u636e \u6ce8\u91ca \uff0c \u4f7f\u7528 \u6b63\u786e \u7684 \u8def\u5f84 \u66f4\u6539 \u547d\u4ee4 \u547d\u4ee4\u884c \u3002 \u5bf9\u4e8e Windows # % CARLA _ ROOT% is the CARLA installation directory # % SCENARIO _ RUNNER% is the ScenarioRunner installation directory # < VERSION > is the correct string for the Python version being used # In a build from source , the . egg files may be in : $ { CARLA _ ROOT } / PythonAPI / dist / instead of $ { CARLA _ ROOT } / PythonAPI set CARLA _ ROOT = \\ path \\ to \\ your \\ carla \\ installation set SCENARIO _ RUNNER _ ROOT = \\ path \\ to \\ your \\ scenario \\ runner \\ installation set PYTHONPATH = % PYTHONPATH% ; % CARLA _ ROOT% \\ PythonAPI \\ carla \\ dist \\ carla - < VERSION > . egg set PYTHONPATH = % PYTHONPATH% ; % CARLA _ ROOT% \\ PythonAPI \\ carla \u6ce8\u610f \u6839\u636e \u6ce8\u91ca \uff0c \u4f7f\u7528 \u6b63\u786e \u7684 \u8def\u5f84 \u66f4\u6539 \u547d\u4ee4 \u547d\u4ee4\u884c \u3002 \u5982\u9700 \u6c38\u4e45 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u8bf7 \u524d\u5f80 \u7f16\u8f91 \u8be5 \u8d26\u6237 \u7684 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u901a\u8fc7 \u5728 Windows \u7684 \u641c\u7d22 \u9762\u677f \u4e0a \u8f93\u5165 env \u53ef\u4ee5 \u5feb\u901f \u8bbf\u95ee \u5feb\u901f\u8bbf\u95ee \u5b83 \u3002 \u5982\u679c \u9700\u8981 \u8fd0\u884c \u57fa\u4e8e OpenSCENARIO 2.0 \u683c\u5f0f \u7684 \u573a\u666f \uff0c \u8bf7 \u5148 \u5b89\u88c5 graphviz \u548c antlr \uff1a sudo apt - get install - y openjdk - 17 - jdk graphviz curl - O https : / / www . antlr . org / download / antlr - 4.10 . 1 - complete . jar sudo cp antlr - 4.10 . 1 - complete . jar / usr / local / lib / sudo gedit ~ / . bashrc \u5c06 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6dfb\u52a0 \u5230 ~ / . bashrc \u4e2d \uff1a export CLASSPATH = \" . : / usr / local / lib / antlr - 4.10 . 1 - complete . jar : $ CLASSPATH \" alias antlr4 = ' java - jar / usr / local / lib / antlr - 4.10 . 1 - complete . jar ' alias grun = ' java org . antlr . v4 . gui . TestRig ' \u5e76 \u4f7f \u66f4\u6539 \u751f\u6548 \uff1a source ~ / . bashrc","title":"\u4ece \u6e90\u4ee3\u7801 \u66f4\u65b0 \u6784\u5efa"},{"location":"scenario_runner/getting_scenariorunner/#_4","text":"\u8fd0\u884c \u4ee5\u4e0b \u8f66\u8f86 \u793a\u4f8b \u3002 \u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u4ece CARLA \u83b7\u53d6 \u6700\u65b0 \u7684 \u4e3b \u5206\u652f \u3002 \u7136\u540e \u60a8 \u5fc5\u987b \u5c06 CARLA Python API \u5305\u542b \u5230 Python \u8def\u5f84 \u4e2d \uff1a \u91cd\u8981 \u5982\u679c \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \uff0c \u8bf7 \u786e\u4fdd \u4e0a\u4f20 \u5b83\u4eec \u3002 \u4e0b\u8f7d master \u5206\u652f \u4e2d \u7684 \u6700\u65b0 \u5185\u5bb9 \u3002 1 . \u8fd0\u884c CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 A ) \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \uff0c \u8f6c \u5230 CARLA \u76ee\u5f55 \u5e76 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 cd ~ / carla # Change the path accordingly make launch # Press Play in the UE Editor B ) \u5728 CARLA \u5305\u4e2d \u76f4\u63a5 \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 . / CarlaUE4 . sh 2 . \u542f\u52a8 \u793a\u4f8b \u573a\u666f \u3002 \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \uff0c \u8fdb\u5165 ScenarioRunner \u4e0b\u8f7d \u7684 \u76ee\u5f55 \u3002 \u4e3a\u4e86 \u8fdb\u884c \u672c\u6b21 \u6d4b\u8bd5 \uff0c \u5c06 \u4f7f\u7528 \u4ee5\u4e0b \u5f15\u5bfc \u8f66\u8f86 \u573a\u666f \uff08 scenario _ runner . py \u548c manual _ control . py \u8981 \u4f7f\u7528 \u5bf9\u5e94 \u7684 \u53d1\u5e03 \u7248\u672c \uff0c \u5f00\u53d1 \u7248 \u4e0d \u4e00\u5b9a \u6210\u679c \uff09 \u3002 # Inside the ScenarioRunner root directory python scenario _ runner . py -- scenario FollowLeadingVehicle _ 1 -- reloadWorld \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u67e5\u770b \u5f53\u524d \u573a\u666f \u6709 \u54ea\u4e9b \uff1a python scenario _ runner . py -- list \u6ce8\u610f \u5982\u679c \u4f7f\u7528 Python 3 . x \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u5e26\u6709 python3 . 3 . \u901a\u8fc7 \u624b\u52a8 \u63a7\u5236 \u6d4b\u8bd5 \u573a\u666f \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c manual _ control . py \u3002 \u5e94\u8be5 \u4f1a\u5f39 \u51fa \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u8857\u9053 \u4e2d\u592e \u6709 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \u3002 \u5411\u524d \u79fb\u52a8 \uff0c \u9886\u5934 \u8f66\u8f86 \u5c31 \u4f1a \u51fa\u73b0 \u3002 # Inside the ScenarioRunner root directory python manual _ control . py \u8fd9\u4e9b \u573a\u666f \u6709 \u5927\u7ea6 \u4e00\u5206 \u5206\u949f \u4e00\u5206\u949f \u7684 \u8d85\u65f6 \u65f6\u95f4 \uff0c \u4ee5\u4fbf \u542f\u52a8 \u4ee3\u7406 \u3002 \u5982\u679c \u51fa\u73b0 \u8d85\u65f6 \uff0c \u5219 \u5e94 \u518d\u6b21 \u542f\u52a8 \u8ddf\u968f \u9886\u5148 \u8f66\u8f86 \u793a\u4f8b \u3002 \u8b66\u544a \u8fd0\u884c manual _ control . py ScenarioRunner \u5305 / \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u7684 \u5185\u5bb9 \uff0c \u800c \u4e0d\u662f CARLA \u3002 4 . \u63a2\u7d22 \u5176\u4ed6 \u9009\u62e9 \u3002 \u4f7f\u7528 \u6807\u5fd7 \u8fd0\u884c \u573a\u666f \u8fd0\u884c \u5668 -- help \u6765 \u63a2\u7d22 \u5176\u4ed6 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u548c \u4e00\u4e9b \u57fa\u672c \u63cf\u8ff0 \u3002 \u4f8b\u5982 \uff0c \u4e3a\u4e86 \u907f\u514d \u81ea\u52a8 \uff08 \u91cd\u65b0 \uff09 \u52a0\u8f7d CARLA \u4e16\u754c \uff0c \u8bf7 \u8df3 \u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 -- reloadWorld \u3002 python scenario _ runner . py -- help ScenarioRunner \u7684 \u5b89\u88c5 \u8fc7\u7a0b \u81f3\u6b64 \u7ed3\u675f \u3002 \u5982\u679c \u53d1\u751f \u4efb\u4f55 \u610f\u5916 \u9519\u8bef \u6216 \u95ee\u9898 \uff0c CARLA \u8bba\u575b \u5411 \u6240\u6709 \u6709\u4eba \u6240\u6709\u4eba \u5f00\u653e \u3002 \u6709 \u4e00\u4e2a ScenarioRunner \u7c7b\u522b \u7528\u4e8e \u53d1\u5e03 \u6709\u5173 \u6b64 \u6a21\u5757 \u7684 \u95ee\u9898 \u548c \u7591\u95ee \u3002","title":"\u8fd0\u884c \u6d4b\u8bd5"},{"location":"scenario_runner/getting_started/","text":"\u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u91cd\u8981 \u672c \u6559\u7a0b \u53c2\u8003 \u4e86 Carla \u7684 \u6700\u65b0 \u7248\u672c \uff08 \u81f3\u5c11 0.9 . 5 \uff09 \u6b22\u8fce \u6765\u5230 Carla \u7684 ScenarioRunner \uff01 \u672c \u6559\u7a0b \u63d0\u4f9b \u4e86 \u5f00\u59cb \u4f7f\u7528 Carla \u7684 ScenarioRunner \u57fa\u672c \u6b65\u9aa4 \u3002 \u4ece \u6211\u4eec \u7684 GitHub \u9875\u9762 \u4e0b\u8f7d \u6700\u65b0 \u7248\u672c \uff0c \u5e76 \u5c06 \u5305 \u7684 \u6240\u6709 \u5185\u5bb9 \u63d0\u53d6 \u5230 \u60a8 \u9009\u62e9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u53d1\u5e03 \u5305 \u5305\u542b \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 Carla \u7684 ScenarioRunner \u7528 Python \u7f16\u5199 \u7684 \u4e00\u4e9b \u793a\u4f8b \u573a\u666f \u3002 \u5b89\u88c5 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5f53\u524d \u7248\u672c \u8bbe\u8ba1 \u7528\u4e8e Ubuntu 18.04 \u3001 Python 3.6 \u3002 \u6839\u636e \u60a8 \u7684 Python \u7248\u672c \uff0c \u6267\u884c \uff1a # Python 2 . x sudo apt remove python - networkx # if installed , remove old version of networkx pip2 install -- user - r requirements . txt # Python 3 . x sudo apt remove python3 - networkx # if installed , remove old version of networkx pip3 install -- user - r requirements . txt \u6ce8\u610f : \u4e0d \u652f\u6301 \u9ad8\u4e8e v0.8 \u7684 py - tree \u3002 \u8fd0\u884c \u4ee5\u4e0b \u8f66\u8f86 \u793a\u4f8b \u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u4ece Carla \u83b7\u53d6 \u6700\u65b0 \u7684 \u4e3b \u5206\u652f \u3002 \u7136\u540e \u60a8 \u5fc5\u987b \u5c06 Carla Python API \u5305\u542b \u5230 Python \u8def\u5f84 \u4e2d \uff1a export CARLA _ ROOT = / path / to / your / carla / installation export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - < VERSION > . egg : $ { CARLA _ ROOT } / PythonAPI / carla / agents : $ { CARLA _ ROOT } / PythonAPI / carla \u7b14\u8bb0 : $ { CARLA _ ROOT } \u9700\u8981 \u4f7f\u7528 \u60a8 \u7684 Carla \u5b89\u88c5 \u8def\u5f84 \u66ff\u6362 \uff0c \u865a\u5e7b \u4f7f\u7528 \u6b63\u786e \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u66ff\u6362 \u3002 \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 Carla \uff0c egg \u6587\u4ef6 \u53ef\u80fd \u4f4d\u4e8e \uff1a $ { CARLA _ ROOT } / PythonAPI / dist / \u800c \u4e0d\u662f $ { CARLA _ ROOT } / PythonAPI \u3002 \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u4ece $ { CARLA _ ROOT } \u542f\u52a8 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 . / CarlaUE4 . sh \u5728 \u989d\u5916 \u7684 \u7ec8\u7aef \u4e2d \u542f\u52a8 \u793a\u4f8b \u573a\u666f \uff08 \u8ddf\u968f \u9886\u5148 \u7684 \u8f66\u8f86 \uff09 \uff1a python scenario _ runner . py -- scenario FollowLeadingVehicle _ 1 -- reloadWorld \u5982\u679c \u60a8 \u9700\u8981 \u5e2e\u52a9 \u6216 \u60f3\u8981 \u63a2\u7d22 \u5176\u4ed6 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u8bf7 \u6309 \u5982\u4e0b \u65b9\u5f0f \u542f\u52a8 \u573a\u666f \u8fd0\u884c \u7a0b\u5e8f \uff1a python scenario _ runner . py -- help \u8981 \u63a7\u5236 \u573a\u666f \u4e2d \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u8bf7 \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c \uff1a python manual _ control . py \u6ce8\u610f : \u5982\u679c \u60a8 \u4e0d \u5e0c\u671b \u81ea\u52a8 \uff08 \u91cd\u65b0 \uff09 \u52a0\u8f7d CARLA \u4e16\u754c \uff0c \u60a8 \u53ef\u4ee5 \u8df3\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 -- reloadWorld \u8fd0\u884c \u4e00\u4e2a \u573a\u666f \u7c7b \u7684 \u6240\u6709 \u573a\u666f \u4e0e \u524d\u9762 \u7684 \u793a\u4f8b \u7c7b\u4f3c \uff0c \u8fd8 \u53ef\u4ee5 \u6267\u884c \u5c5e\u4e8e \u540c \u4e00\u7c7b \uff08 \u4f8b\u5982 \u201c FollowLeadingVehicle \u201d \u7c7b \uff09 \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u573a\u666f \u3002 \u552f\u4e00 \u7684 \u533a\u522b \u662f \uff0c \u60a8 \u6309 \u5982\u4e0b \u65b9\u5f0f \u542f\u52a8 scene _ runner \uff1a python scenario _ runner . py -- scenario group : FollowLeadingVehicle \u8fd0\u884c \u5176\u4ed6 \u573a\u666f \u652f\u6301 \u7684 \u573a\u666f \u5217\u8868 \u4e2d \u63d0\u4f9b \u4e86 \u652f\u6301 \u7684 \u573a\u666f \u5217\u8868 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u4e0d\u540c \u7684 Carla \u57ce\u9547 \u53ef\u80fd \u4f1a \u53d1\u751f \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 \u5fc5\u987b \u9075\u5b88 \u8fd9 \u4e00\u70b9 \u3002 \u4f7f\u7528 OpenSCENARIO \u683c\u5f0f \u8fd0\u884c \u573a\u666f \u8981 \u8fd0\u884c \u57fa\u4e8e OpenSCENARIO \u683c\u5f0f \u7684 \u573a\u666f \uff0c \u8bf7 \u8fd0\u884c ScenarioRunner \uff0c \u5982\u4e0b \u6240\u793a \uff1a python scenario _ runner . py -- openscenario < path / to / xosc - file > \u8bf7 \u6ce8\u610f \uff0c OpenSCENARIO \u652f\u6301 \u548c OpenSCENARIO \u683c\u5f0f \u672c\u8eab \u4ecd \u5728 \u8fdb\u884c \u4e2d \u3002 \u60a8 \u53ef\u4ee5 \u5728 OpenSCENARIO \u652f\u6301 \u4e2d \u627e\u5230 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f7f\u7528 OpenSCENARIO 2.0 \u683c\u5f0f \u8fd0\u884c \u573a\u666f \u8981 \u8fd0\u884c \u57fa\u4e8e OpenSCENARIO 2.0 \u683c\u5f0f \u7684 \u573a\u666f \uff0c \u8bf7 \u8fd0\u884c ScenarioRunner \uff0c \u5982\u4e0b \u6240\u793a \uff1a python scenario _ runner . py -- openscenario2 < path / to / osc - file > \u8981 \u63a7\u5236 \u573a\u666f \u4e2d \u7684 \u81ea\u6211 \u8f66\u8f86 \u6216 \u89c2\u5bdf \u5b83 \uff0c \u8bf7 \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c \uff1a python manual _ control . py - a -- rolename = ego _ vehicle \u6709\u5173 \u5982\u4f55 \u8fd0\u884c OpenSCENARIO 2.0 \u573a\u666f \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 README _ OpenSCENARIO _ 2.0 \u3002 \u4f7f\u7528 \u5177\u6709 Global ParameterDeclaration \u8986\u76d6 \u7684 OpenSCENARIO \u683c\u5f0f \u8fd0\u884c \u573a\u666f python scenario _ runner . py -- openscenario < path / to / xosc - file > -- openscenarioparams ' param1 : value1 , param2 : value2 ' \u8fd0\u884c \u57fa\u4e8e \u8def\u7ebf \u7684 \u573a\u666f \uff08 \u7c7b\u4f3c \u4e8e Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b \uff09 \u8981 \u8fd0\u884c \u57fa\u4e8e \u8def\u7ebf \u7684 \u573a\u666f \uff0c \u8bf7 \u6309 \u5982\u4e0b \u65b9\u5f0f \u8fd0\u884c ScenarioRunner \uff1a python scenario _ runner . py -- route < path / to / route - file > < path / to / scenario _ sample _ file > [ route id ] -- agent < path / to / agent _ file > \u5b9e\u4f8b : python scenario _ runner . py -- route D : / work / workspace / carla _ doc / src / scenario _ runner / srunner / data / routes _ town10 . xml -- agent srunner / autoagents / npc _ agent . py \u5982\u679c \u672a \u63d0\u4f9b \u8def\u7531 ID \uff0c \u5219 \u5c06 \u6267\u884c \u7ed9\u5b9a \u6587\u4ef6 \u4e2d \u7684 \u6240\u6709 \u8def\u7ebf \u3002 \u901a\u8fc7 \u8fd9\u6837 \u505a \uff0c ScenarioRunner \u4f1a \u5c06 \u573a\u666f \u4e0e \u8def\u7ebf \u5339\u914d \u76f8\u5339\u914d \uff0c \u5e76\u4e14 \u5f53 \u81ea\u6211 \u8f66\u8f86 \u5728 \u9644\u8fd1 \u65f6 \u5b83\u4eec \u4f1a \u6fc0\u6d3b \u3002 \u7136\u800c \uff0c \u8def\u7ebf \u9700\u8981 \u4e00\u4e2a \u81ea\u4e3b \u4ee3\u7406 \u6765 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u3002 srunner / autoagents / \u4e2d \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u793a\u4f8b \u3002 \u6709\u5173 \u4ee3\u7406 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u67e5\u770b \u667a\u80fd \u4f53 \u6587\u6863 \u3002","title":"\u7b2c\u4e00\u6b65"},{"location":"scenario_runner/getting_started/#_1","text":"\u91cd\u8981 \u672c \u6559\u7a0b \u53c2\u8003 \u4e86 Carla \u7684 \u6700\u65b0 \u7248\u672c \uff08 \u81f3\u5c11 0.9 . 5 \uff09 \u6b22\u8fce \u6765\u5230 Carla \u7684 ScenarioRunner \uff01 \u672c \u6559\u7a0b \u63d0\u4f9b \u4e86 \u5f00\u59cb \u4f7f\u7528 Carla \u7684 ScenarioRunner \u57fa\u672c \u6b65\u9aa4 \u3002 \u4ece \u6211\u4eec \u7684 GitHub \u9875\u9762 \u4e0b\u8f7d \u6700\u65b0 \u7248\u672c \uff0c \u5e76 \u5c06 \u5305 \u7684 \u6240\u6709 \u5185\u5bb9 \u63d0\u53d6 \u5230 \u60a8 \u9009\u62e9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u53d1\u5e03 \u5305 \u5305\u542b \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 Carla \u7684 ScenarioRunner \u7528 Python \u7f16\u5199 \u7684 \u4e00\u4e9b \u793a\u4f8b \u573a\u666f \u3002","title":"\u7b2c\u4e00\u6b65"},{"location":"scenario_runner/getting_started/#_2","text":"\u5f53\u524d \u7248\u672c \u8bbe\u8ba1 \u7528\u4e8e Ubuntu 18.04 \u3001 Python 3.6 \u3002 \u6839\u636e \u60a8 \u7684 Python \u7248\u672c \uff0c \u6267\u884c \uff1a # Python 2 . x sudo apt remove python - networkx # if installed , remove old version of networkx pip2 install -- user - r requirements . txt # Python 3 . x sudo apt remove python3 - networkx # if installed , remove old version of networkx pip3 install -- user - r requirements . txt \u6ce8\u610f : \u4e0d \u652f\u6301 \u9ad8\u4e8e v0.8 \u7684 py - tree \u3002","title":"\u5b89\u88c5 \u5148\u51b3\u6761\u4ef6"},{"location":"scenario_runner/getting_started/#_3","text":"\u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u4ece Carla \u83b7\u53d6 \u6700\u65b0 \u7684 \u4e3b \u5206\u652f \u3002 \u7136\u540e \u60a8 \u5fc5\u987b \u5c06 Carla Python API \u5305\u542b \u5230 Python \u8def\u5f84 \u4e2d \uff1a export CARLA _ ROOT = / path / to / your / carla / installation export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - < VERSION > . egg : $ { CARLA _ ROOT } / PythonAPI / carla / agents : $ { CARLA _ ROOT } / PythonAPI / carla \u7b14\u8bb0 : $ { CARLA _ ROOT } \u9700\u8981 \u4f7f\u7528 \u60a8 \u7684 Carla \u5b89\u88c5 \u8def\u5f84 \u66ff\u6362 \uff0c \u865a\u5e7b \u4f7f\u7528 \u6b63\u786e \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u66ff\u6362 \u3002 \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 Carla \uff0c egg \u6587\u4ef6 \u53ef\u80fd \u4f4d\u4e8e \uff1a $ { CARLA _ ROOT } / PythonAPI / dist / \u800c \u4e0d\u662f $ { CARLA _ ROOT } / PythonAPI \u3002 \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u4ece $ { CARLA _ ROOT } \u542f\u52a8 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 . / CarlaUE4 . sh \u5728 \u989d\u5916 \u7684 \u7ec8\u7aef \u4e2d \u542f\u52a8 \u793a\u4f8b \u573a\u666f \uff08 \u8ddf\u968f \u9886\u5148 \u7684 \u8f66\u8f86 \uff09 \uff1a python scenario _ runner . py -- scenario FollowLeadingVehicle _ 1 -- reloadWorld \u5982\u679c \u60a8 \u9700\u8981 \u5e2e\u52a9 \u6216 \u60f3\u8981 \u63a2\u7d22 \u5176\u4ed6 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u8bf7 \u6309 \u5982\u4e0b \u65b9\u5f0f \u542f\u52a8 \u573a\u666f \u8fd0\u884c \u7a0b\u5e8f \uff1a python scenario _ runner . py -- help \u8981 \u63a7\u5236 \u573a\u666f \u4e2d \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u8bf7 \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c \uff1a python manual _ control . py \u6ce8\u610f : \u5982\u679c \u60a8 \u4e0d \u5e0c\u671b \u81ea\u52a8 \uff08 \u91cd\u65b0 \uff09 \u52a0\u8f7d CARLA \u4e16\u754c \uff0c \u60a8 \u53ef\u4ee5 \u8df3\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 -- reloadWorld","title":"\u8fd0\u884c \u4ee5\u4e0b \u8f66\u8f86 \u793a\u4f8b"},{"location":"scenario_runner/getting_started/#_4","text":"\u4e0e \u524d\u9762 \u7684 \u793a\u4f8b \u7c7b\u4f3c \uff0c \u8fd8 \u53ef\u4ee5 \u6267\u884c \u5c5e\u4e8e \u540c \u4e00\u7c7b \uff08 \u4f8b\u5982 \u201c FollowLeadingVehicle \u201d \u7c7b \uff09 \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u573a\u666f \u3002 \u552f\u4e00 \u7684 \u533a\u522b \u662f \uff0c \u60a8 \u6309 \u5982\u4e0b \u65b9\u5f0f \u542f\u52a8 scene _ runner \uff1a python scenario _ runner . py -- scenario group : FollowLeadingVehicle","title":"\u8fd0\u884c \u4e00\u4e2a \u573a\u666f \u7c7b \u7684 \u6240\u6709 \u573a\u666f"},{"location":"scenario_runner/getting_started/#_5","text":"\u652f\u6301 \u7684 \u573a\u666f \u5217\u8868 \u4e2d \u63d0\u4f9b \u4e86 \u652f\u6301 \u7684 \u573a\u666f \u5217\u8868 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u4e0d\u540c \u7684 Carla \u57ce\u9547 \u53ef\u80fd \u4f1a \u53d1\u751f \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 \u5fc5\u987b \u9075\u5b88 \u8fd9 \u4e00\u70b9 \u3002","title":"\u8fd0\u884c \u5176\u4ed6 \u573a\u666f"},{"location":"scenario_runner/getting_started/#openscenario","text":"\u8981 \u8fd0\u884c \u57fa\u4e8e OpenSCENARIO \u683c\u5f0f \u7684 \u573a\u666f \uff0c \u8bf7 \u8fd0\u884c ScenarioRunner \uff0c \u5982\u4e0b \u6240\u793a \uff1a python scenario _ runner . py -- openscenario < path / to / xosc - file > \u8bf7 \u6ce8\u610f \uff0c OpenSCENARIO \u652f\u6301 \u548c OpenSCENARIO \u683c\u5f0f \u672c\u8eab \u4ecd \u5728 \u8fdb\u884c \u4e2d \u3002 \u60a8 \u53ef\u4ee5 \u5728 OpenSCENARIO \u652f\u6301 \u4e2d \u627e\u5230 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u4f7f\u7528 OpenSCENARIO \u683c\u5f0f \u8fd0\u884c \u573a\u666f"},{"location":"scenario_runner/getting_started/#openscenario-20","text":"\u8981 \u8fd0\u884c \u57fa\u4e8e OpenSCENARIO 2.0 \u683c\u5f0f \u7684 \u573a\u666f \uff0c \u8bf7 \u8fd0\u884c ScenarioRunner \uff0c \u5982\u4e0b \u6240\u793a \uff1a python scenario _ runner . py -- openscenario2 < path / to / osc - file > \u8981 \u63a7\u5236 \u573a\u666f \u4e2d \u7684 \u81ea\u6211 \u8f66\u8f86 \u6216 \u89c2\u5bdf \u5b83 \uff0c \u8bf7 \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c \uff1a python manual _ control . py - a -- rolename = ego _ vehicle \u6709\u5173 \u5982\u4f55 \u8fd0\u884c OpenSCENARIO 2.0 \u573a\u666f \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 README _ OpenSCENARIO _ 2.0 \u3002 \u4f7f\u7528 \u5177\u6709 Global ParameterDeclaration \u8986\u76d6 \u7684 OpenSCENARIO \u683c\u5f0f \u8fd0\u884c \u573a\u666f python scenario _ runner . py -- openscenario < path / to / xosc - file > -- openscenarioparams ' param1 : value1 , param2 : value2 '","title":"\u4f7f\u7528 OpenSCENARIO 2.0 \u683c\u5f0f \u8fd0\u884c \u573a\u666f"},{"location":"scenario_runner/getting_started/#carla","text":"\u8981 \u8fd0\u884c \u57fa\u4e8e \u8def\u7ebf \u7684 \u573a\u666f \uff0c \u8bf7 \u6309 \u5982\u4e0b \u65b9\u5f0f \u8fd0\u884c ScenarioRunner \uff1a python scenario _ runner . py -- route < path / to / route - file > < path / to / scenario _ sample _ file > [ route id ] -- agent < path / to / agent _ file > \u5b9e\u4f8b : python scenario _ runner . py -- route D : / work / workspace / carla _ doc / src / scenario _ runner / srunner / data / routes _ town10 . xml -- agent srunner / autoagents / npc _ agent . py \u5982\u679c \u672a \u63d0\u4f9b \u8def\u7531 ID \uff0c \u5219 \u5c06 \u6267\u884c \u7ed9\u5b9a \u6587\u4ef6 \u4e2d \u7684 \u6240\u6709 \u8def\u7ebf \u3002 \u901a\u8fc7 \u8fd9\u6837 \u505a \uff0c ScenarioRunner \u4f1a \u5c06 \u573a\u666f \u4e0e \u8def\u7ebf \u5339\u914d \u76f8\u5339\u914d \uff0c \u5e76\u4e14 \u5f53 \u81ea\u6211 \u8f66\u8f86 \u5728 \u9644\u8fd1 \u65f6 \u5b83\u4eec \u4f1a \u6fc0\u6d3b \u3002 \u7136\u800c \uff0c \u8def\u7ebf \u9700\u8981 \u4e00\u4e2a \u81ea\u4e3b \u4ee3\u7406 \u6765 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u3002 srunner / autoagents / \u4e2d \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u793a\u4f8b \u3002 \u6709\u5173 \u4ee3\u7406 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u67e5\u770b \u667a\u80fd \u4f53 \u6587\u6863 \u3002","title":"\u8fd0\u884c \u57fa\u4e8e \u8def\u7ebf \u7684 \u573a\u666f \uff08 \u7c7b\u4f3c \u4e8e Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218\u8d5b \uff09"},{"location":"scenario_runner/list_of_scenarios/","text":"\u652f\u6301 \u573a\u666f \u5217\u8868 \u6b22\u8fce \u6765\u5230 CARLA \u7684 ScenarioRunner \uff01 \u672c \u6587\u6863 \u63d0\u4f9b \u4e86 \u5f53\u524d \u652f\u6301 \u7684 \u6240\u6709 \u573a\u666f \u7684 \u5217\u8868 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u573a\u666f \u7684 \u7b80\u77ed \u63cf\u8ff0 \u3002 FollowLeadingVehicle \u8be5 \u573a\u666f \u5b9e\u73b0 \u4e86 \u4e00\u79cd \u5e38\u89c1 \u7684 \u9a7e\u9a76 \u884c\u4e3a \uff0c \u5176\u4e2d \u7528\u6237 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u8ddf\u968f \u5728 Town01 \u7684 \u7ed9\u5b9a \u9053\u8def \u4e0a \u884c\u9a76 \u7684 \u9886\u5148 \u8f66\u8f86 \u3002 \u5728 \u67d0\u4e2a \u65f6\u523b \uff0c \u9886\u5148 \u7684 \u6c7d\u8f66 \u51cf\u901f \u5e76 \u6700\u7ec8 \u505c \u4e86 \u4e0b\u6765 \u3002 \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u505a\u51fa \u76f8\u5e94 \u53cd\u5e94 \u4ee5 \u907f\u514d \u78b0\u649e \u3002 \u8be5 \u573a\u666f \u4f1a\u56e0 \u8d85\u65f6 \u800c \u7ed3\u675f \uff0c \u6216\u8005 \u5982\u679c \u81ea\u6211 \u8f66\u8f86 \u505c \u5728 \u8ddd\u79bb \u9886\u5148 \u8f66\u8f86 \u8db3\u591f \u8fd1 \u7684 \u4f4d\u7f6e \u3002 FollowLeadingVehicleWithObstacle \u6b64 \u573a\u666f \u4e0e \u201c FollowLeadingVehicle \u201d \u975e\u5e38 \u76f8\u4f3c \u3002 \u552f\u4e00 \u7684 \u533a\u522b \u662f \uff0c \u9886\u5148 \u8f66\u8f86 \u524d\u9762 \u6709 \u4e00\u4e2a \uff08 \u9690\u85cf \u7684 \uff09 \u969c\u788d \u969c\u788d\u7269 \u6321\u4f4f \u4e86 \u9053\u8def \u3002 VehicleTurningRight \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u81ea\u6211 \u8f66\u8f86 \u4ece \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u53f3\u8f6c \uff0c \u5176\u4e2d \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u7a81\u7136 \u9a76\u5165 \u81ea\u6211 \u8f66\u8f86 \u7684 \u9053\u8def \uff0c \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u76f8\u5e94 \u5730 \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u540e \uff0c \u9a91\u8f66 \u9a91\u8f66\u4eba \u6e05\u7406 \u9053\u8def \uff0c \u4ee5\u4fbf \u672c\u8f66 \u53ef\u4ee5 \u7ee7\u7eed \u884c\u9a76 \u3002 VehicleTurningLeft \u6b64 \u573a\u666f \u7c7b\u4f3c \u4e8e \u201c VehicleTurningRight \u201d \u3002 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u5728\u4e8e \uff0c \u81ea\u6211 \u8f66\u8f86 \u4ece \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u5de6\u8f6c \u3002 OppositeVehicleRunningRedLight \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6d4b\u8bd5 \u4e86 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u7684 \u975e\u6cd5 \u884c\u4e3a \u975e\u6cd5\u884c\u4e3a \u3002 \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5728 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u7b49\u5f85 \uff0c \u4f46 \u8fdd\u89c4 \u7ea2\u706f \u95ef\u7ea2\u706f \u3002 \u63a5\u8fd1 \u7684 \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u6b63\u786e \u5904\u7406 \u6b63\u786e\u5904\u7406 \u8fd9\u79cd \u60c5\u51b5 \uff0c \u5373 \u5c3d\u7ba1 \u6709 \u7eff\u8272 \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u4f46 \u5b83 \u5fc5\u987b \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u7b49\u5f85 \uff0c \u76f4\u5230 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u518d\u6b21 \u7545\u901a \u65e0\u963b \u7545\u901a\u65e0\u963b \u3002 \u4e4b\u540e \uff0c \u5b83 \u5e94\u8be5 \u7ee7\u7eed \u884c\u9a76 \u3002 StationaryObjectCrossing \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u9759\u6b62 \u5728 \u8def \u4e2d\u95f4 \u7b49\u5f85 \uff0c \u6321\u4f4f \u4e86 \u672c\u8f66 \u7684 \u9053\u8def \u3002 \u56e0\u6b64 \uff0c \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u505c \u5728 \u9a91\u8f66 \u9a91\u8f66\u4eba \u7684 \u524d\u9762 \u3002 DynamicObjectCrossing \u8fd9 \u4e0e \u201c StationaryObjectCrossing \u201d \u7c7b\u4f3c \uff0c \u4f46 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u5728\u4e8e \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u662f \u52a8\u6001 \u7684 \u3002 \u5b83 \u7a81\u7136 \u649e \u5230 \u4e86 \u81ea\u6211 \u8f66\u8f86 \u7684 \u8def\u7ebf \uff0c \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u76f8\u5e94 \u5730 \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u540e \uff0c \u9a91\u8f66 \u9a91\u8f66\u4eba \u5c06 \u6e05\u7406 \u9053\u8def \uff0c \u4ee5\u4fbf \u81ea\u6211 \u8f66\u8f86 \u53ef\u4ee5 \u7ee7\u7eed \u884c\u9a76 \u3002 NoSignalJunctionCrossing \u6b64 \u573a\u666f \u6d4b\u8bd5 \u4e24\u8f86 \u8f66\u8f86 \u5728 \u6ca1\u6709 \u4fe1\u53f7 \u7684 \u8def\u53e3 \u4ea4\u53c9 \u7684 \u60c5\u51b5 \u4e0b \u8fdb\u884c \u534f\u5546 \u3002 \u81ea\u6211 \u8f66\u8f86 \u6b63\u5728 \u7a7f\u8fc7 \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u8def\u53e3 \u5e76 \u9047\u5230 \u53e6 \u4e00\u8f86 \u7a7f\u8fc7 \u8def\u53e3 \u7684 \u8f66\u8f86 \u3002 \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u907f\u514d \u78b0\u649e \u5e76 \u7a7f\u8fc7 \u8def\u53e3 \u624d\u80fd \u6210\u529f \u3002 ControlLoss \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6d4b\u8bd5 \u7531\u4e8e \u8def\u51b5 \u6076\u52a3 \u7b49 \u539f\u56e0 \u5bfc\u81f4 \u8f66\u8f86 \u5931\u63a7 \uff0c \u5e76 \u68c0\u67e5 \u8f66\u8f86 \u662f\u5426 \u91cd\u65b0 \u83b7\u5f97 \u63a7\u5236 \u5e76 \u7ea0\u6b63 \u5176 \u8def\u7ebf \u3002 ManeuverOppositeDirection \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u8f66\u8f86 \u5728 \u767d\u5929 \u3001 \u5929\u6c14 \u6674\u6717 \u5929\u6c14\u6674\u6717 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u5728 \u519c\u6751 \u5730\u533a \u7684 \u975e \u8def\u53e3 \u8d85\u8d8a \u53e6 \u4e00\u8f86 \u8f66\u8f86 \uff0c \u5e76 \u4fb5\u5165 \u53e6 \u4e00\u8f86 \u5411 \u76f8\u53cd \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 OtherLeadingVehicle \u8be5 \u573a\u666f \u5b9e\u73b0 \u4e86 \u4e00\u79cd \u5e38\u89c1 \u7684 \u9a7e\u9a76 \u884c\u4e3a \uff0c \u5176\u4e2d \u7528\u6237 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u8ddf\u968f \u5728 \u7ed9\u5b9a \u9053\u8def \u4e0a \u884c\u9a76 \u7684 \u9886\u5148 \u8f66\u8f86 \u3002 \u5728 \u67d0\u4e2a \u65f6\u523b \uff0c \u9886\u5148 \u7684 \u6c7d\u8f66 \u5fc5\u987b \u51cf\u901f \u3002 \u672c\u8f66 \u5fc5\u987b \u505a\u51fa \u76f8\u5e94 \u53cd\u5e94 \uff0c \u6539\u53d8 \u8f66\u9053 \u4ee5 \u907f\u514d \u78b0\u649e \uff0c \u5e76 \u8ddf\u968f \u53e6 \u4e00 \u8f66\u9053 \u7684 \u9886\u5148 \u8f66\u8f86 \u3002 \u8be5 \u573a\u666f \u4f1a\u56e0 \u8d85\u65f6 \u6216 \u81ea\u6211 \u8f66\u8f86 \u884c\u9a76 \u4e00\u5b9a \u8ddd\u79bb \u800c \u7ed3\u675f \u3002 SignalizedJunctionRightTurn \u5728 \u8fd9\u4e2a \u573a\u666f \u4e2d \uff0c \u6d4b\u8bd5 \u4e86 \u82f1\u96c4 \u6f14\u5458 \u5728 \u4fe1\u53f7 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u6ca1\u6709 \u78b0\u649e \u7684 \u60c5\u51b5 \u4e0b \u7684 \u53f3\u8f6c \u3002 \u82f1\u96c4 \u8f66\u8f86 \u5728 \u5e02\u533a \u7684 \u4fe1\u53f7 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u53f3\u8f6c \uff0c \u5e76 \u4e0e \u53e6 \u4e00\u8f86 \u6700\u521d \u4ece \u6a2a\u5411 \u76f4\u884c \u7684 \u8f66\u8f86 \u540c \u5411 \u8f6c\u5f2f \u3002 SignalizedJunctionLeftTurn \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u82f1\u96c4 \u8f66\u8f86 \u5728 \u5e02\u533a \u7684 \u4fe1\u53f7 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5de6\u8f6c \uff0c \u5e76 \u6a2a\u7a7f \u4e86 \u53e6 \u4e00\u8f86 \u4ece \u76f8\u53cd \u65b9\u5411 \u76f4\u9a76 \u800c \u6765 \u7684 \u8f66\u8f86 \u7684 \u8def\u5f84 \u3002","title":"\u652f\u6301 \u573a\u666f \u5217\u8868"},{"location":"scenario_runner/list_of_scenarios/#_1","text":"\u6b22\u8fce \u6765\u5230 CARLA \u7684 ScenarioRunner \uff01 \u672c \u6587\u6863 \u63d0\u4f9b \u4e86 \u5f53\u524d \u652f\u6301 \u7684 \u6240\u6709 \u573a\u666f \u7684 \u5217\u8868 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u573a\u666f \u7684 \u7b80\u77ed \u63cf\u8ff0 \u3002","title":"\u652f\u6301 \u573a\u666f \u5217\u8868"},{"location":"scenario_runner/list_of_scenarios/#followleadingvehicle","text":"\u8be5 \u573a\u666f \u5b9e\u73b0 \u4e86 \u4e00\u79cd \u5e38\u89c1 \u7684 \u9a7e\u9a76 \u884c\u4e3a \uff0c \u5176\u4e2d \u7528\u6237 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u8ddf\u968f \u5728 Town01 \u7684 \u7ed9\u5b9a \u9053\u8def \u4e0a \u884c\u9a76 \u7684 \u9886\u5148 \u8f66\u8f86 \u3002 \u5728 \u67d0\u4e2a \u65f6\u523b \uff0c \u9886\u5148 \u7684 \u6c7d\u8f66 \u51cf\u901f \u5e76 \u6700\u7ec8 \u505c \u4e86 \u4e0b\u6765 \u3002 \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u505a\u51fa \u76f8\u5e94 \u53cd\u5e94 \u4ee5 \u907f\u514d \u78b0\u649e \u3002 \u8be5 \u573a\u666f \u4f1a\u56e0 \u8d85\u65f6 \u800c \u7ed3\u675f \uff0c \u6216\u8005 \u5982\u679c \u81ea\u6211 \u8f66\u8f86 \u505c \u5728 \u8ddd\u79bb \u9886\u5148 \u8f66\u8f86 \u8db3\u591f \u8fd1 \u7684 \u4f4d\u7f6e \u3002","title":"FollowLeadingVehicle"},{"location":"scenario_runner/list_of_scenarios/#followleadingvehiclewithobstacle","text":"\u6b64 \u573a\u666f \u4e0e \u201c FollowLeadingVehicle \u201d \u975e\u5e38 \u76f8\u4f3c \u3002 \u552f\u4e00 \u7684 \u533a\u522b \u662f \uff0c \u9886\u5148 \u8f66\u8f86 \u524d\u9762 \u6709 \u4e00\u4e2a \uff08 \u9690\u85cf \u7684 \uff09 \u969c\u788d \u969c\u788d\u7269 \u6321\u4f4f \u4e86 \u9053\u8def \u3002","title":"FollowLeadingVehicleWithObstacle"},{"location":"scenario_runner/list_of_scenarios/#vehicleturningright","text":"\u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u81ea\u6211 \u8f66\u8f86 \u4ece \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u53f3\u8f6c \uff0c \u5176\u4e2d \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u7a81\u7136 \u9a76\u5165 \u81ea\u6211 \u8f66\u8f86 \u7684 \u9053\u8def \uff0c \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u76f8\u5e94 \u5730 \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u540e \uff0c \u9a91\u8f66 \u9a91\u8f66\u4eba \u6e05\u7406 \u9053\u8def \uff0c \u4ee5\u4fbf \u672c\u8f66 \u53ef\u4ee5 \u7ee7\u7eed \u884c\u9a76 \u3002","title":"VehicleTurningRight"},{"location":"scenario_runner/list_of_scenarios/#vehicleturningleft","text":"\u6b64 \u573a\u666f \u7c7b\u4f3c \u4e8e \u201c VehicleTurningRight \u201d \u3002 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u5728\u4e8e \uff0c \u81ea\u6211 \u8f66\u8f86 \u4ece \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u5de6\u8f6c \u3002","title":"VehicleTurningLeft"},{"location":"scenario_runner/list_of_scenarios/#oppositevehiclerunningredlight","text":"\u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6d4b\u8bd5 \u4e86 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u7684 \u975e\u6cd5 \u884c\u4e3a \u975e\u6cd5\u884c\u4e3a \u3002 \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5728 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u7b49\u5f85 \uff0c \u4f46 \u8fdd\u89c4 \u7ea2\u706f \u95ef\u7ea2\u706f \u3002 \u63a5\u8fd1 \u7684 \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u6b63\u786e \u5904\u7406 \u6b63\u786e\u5904\u7406 \u8fd9\u79cd \u60c5\u51b5 \uff0c \u5373 \u5c3d\u7ba1 \u6709 \u7eff\u8272 \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u4f46 \u5b83 \u5fc5\u987b \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u7b49\u5f85 \uff0c \u76f4\u5230 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u518d\u6b21 \u7545\u901a \u65e0\u963b \u7545\u901a\u65e0\u963b \u3002 \u4e4b\u540e \uff0c \u5b83 \u5e94\u8be5 \u7ee7\u7eed \u884c\u9a76 \u3002","title":"OppositeVehicleRunningRedLight"},{"location":"scenario_runner/list_of_scenarios/#stationaryobjectcrossing","text":"\u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u9759\u6b62 \u5728 \u8def \u4e2d\u95f4 \u7b49\u5f85 \uff0c \u6321\u4f4f \u4e86 \u672c\u8f66 \u7684 \u9053\u8def \u3002 \u56e0\u6b64 \uff0c \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u505c \u5728 \u9a91\u8f66 \u9a91\u8f66\u4eba \u7684 \u524d\u9762 \u3002","title":"StationaryObjectCrossing"},{"location":"scenario_runner/list_of_scenarios/#dynamicobjectcrossing","text":"\u8fd9 \u4e0e \u201c StationaryObjectCrossing \u201d \u7c7b\u4f3c \uff0c \u4f46 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u5728\u4e8e \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u662f \u52a8\u6001 \u7684 \u3002 \u5b83 \u7a81\u7136 \u649e \u5230 \u4e86 \u81ea\u6211 \u8f66\u8f86 \u7684 \u8def\u7ebf \uff0c \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u76f8\u5e94 \u5730 \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u540e \uff0c \u9a91\u8f66 \u9a91\u8f66\u4eba \u5c06 \u6e05\u7406 \u9053\u8def \uff0c \u4ee5\u4fbf \u81ea\u6211 \u8f66\u8f86 \u53ef\u4ee5 \u7ee7\u7eed \u884c\u9a76 \u3002","title":"DynamicObjectCrossing"},{"location":"scenario_runner/list_of_scenarios/#nosignaljunctioncrossing","text":"\u6b64 \u573a\u666f \u6d4b\u8bd5 \u4e24\u8f86 \u8f66\u8f86 \u5728 \u6ca1\u6709 \u4fe1\u53f7 \u7684 \u8def\u53e3 \u4ea4\u53c9 \u7684 \u60c5\u51b5 \u4e0b \u8fdb\u884c \u534f\u5546 \u3002 \u81ea\u6211 \u8f66\u8f86 \u6b63\u5728 \u7a7f\u8fc7 \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u8def\u53e3 \u5e76 \u9047\u5230 \u53e6 \u4e00\u8f86 \u7a7f\u8fc7 \u8def\u53e3 \u7684 \u8f66\u8f86 \u3002 \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u907f\u514d \u78b0\u649e \u5e76 \u7a7f\u8fc7 \u8def\u53e3 \u624d\u80fd \u6210\u529f \u3002","title":"NoSignalJunctionCrossing"},{"location":"scenario_runner/list_of_scenarios/#controlloss","text":"\u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6d4b\u8bd5 \u7531\u4e8e \u8def\u51b5 \u6076\u52a3 \u7b49 \u539f\u56e0 \u5bfc\u81f4 \u8f66\u8f86 \u5931\u63a7 \uff0c \u5e76 \u68c0\u67e5 \u8f66\u8f86 \u662f\u5426 \u91cd\u65b0 \u83b7\u5f97 \u63a7\u5236 \u5e76 \u7ea0\u6b63 \u5176 \u8def\u7ebf \u3002","title":"ControlLoss"},{"location":"scenario_runner/list_of_scenarios/#maneuveroppositedirection","text":"\u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u8f66\u8f86 \u5728 \u767d\u5929 \u3001 \u5929\u6c14 \u6674\u6717 \u5929\u6c14\u6674\u6717 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u5728 \u519c\u6751 \u5730\u533a \u7684 \u975e \u8def\u53e3 \u8d85\u8d8a \u53e6 \u4e00\u8f86 \u8f66\u8f86 \uff0c \u5e76 \u4fb5\u5165 \u53e6 \u4e00\u8f86 \u5411 \u76f8\u53cd \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002","title":"ManeuverOppositeDirection"},{"location":"scenario_runner/list_of_scenarios/#otherleadingvehicle","text":"\u8be5 \u573a\u666f \u5b9e\u73b0 \u4e86 \u4e00\u79cd \u5e38\u89c1 \u7684 \u9a7e\u9a76 \u884c\u4e3a \uff0c \u5176\u4e2d \u7528\u6237 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u8ddf\u968f \u5728 \u7ed9\u5b9a \u9053\u8def \u4e0a \u884c\u9a76 \u7684 \u9886\u5148 \u8f66\u8f86 \u3002 \u5728 \u67d0\u4e2a \u65f6\u523b \uff0c \u9886\u5148 \u7684 \u6c7d\u8f66 \u5fc5\u987b \u51cf\u901f \u3002 \u672c\u8f66 \u5fc5\u987b \u505a\u51fa \u76f8\u5e94 \u53cd\u5e94 \uff0c \u6539\u53d8 \u8f66\u9053 \u4ee5 \u907f\u514d \u78b0\u649e \uff0c \u5e76 \u8ddf\u968f \u53e6 \u4e00 \u8f66\u9053 \u7684 \u9886\u5148 \u8f66\u8f86 \u3002 \u8be5 \u573a\u666f \u4f1a\u56e0 \u8d85\u65f6 \u6216 \u81ea\u6211 \u8f66\u8f86 \u884c\u9a76 \u4e00\u5b9a \u8ddd\u79bb \u800c \u7ed3\u675f \u3002","title":"OtherLeadingVehicle"},{"location":"scenario_runner/list_of_scenarios/#signalizedjunctionrightturn","text":"\u5728 \u8fd9\u4e2a \u573a\u666f \u4e2d \uff0c \u6d4b\u8bd5 \u4e86 \u82f1\u96c4 \u6f14\u5458 \u5728 \u4fe1\u53f7 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u6ca1\u6709 \u78b0\u649e \u7684 \u60c5\u51b5 \u4e0b \u7684 \u53f3\u8f6c \u3002 \u82f1\u96c4 \u8f66\u8f86 \u5728 \u5e02\u533a \u7684 \u4fe1\u53f7 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u53f3\u8f6c \uff0c \u5e76 \u4e0e \u53e6 \u4e00\u8f86 \u6700\u521d \u4ece \u6a2a\u5411 \u76f4\u884c \u7684 \u8f66\u8f86 \u540c \u5411 \u8f6c\u5f2f \u3002","title":"SignalizedJunctionRightTurn"},{"location":"scenario_runner/list_of_scenarios/#signalizedjunctionleftturn","text":"\u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u82f1\u96c4 \u8f66\u8f86 \u5728 \u5e02\u533a \u7684 \u4fe1\u53f7 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5de6\u8f6c \uff0c \u5e76 \u6a2a\u7a7f \u4e86 \u53e6 \u4e00\u8f86 \u4ece \u76f8\u53cd \u65b9\u5411 \u76f4\u9a76 \u800c \u6765 \u7684 \u8f66\u8f86 \u7684 \u8def\u5f84 \u3002","title":"SignalizedJunctionLeftTurn"},{"location":"scenario_runner/metrics_module/","text":"\u6307\u6807 \u6a21\u5757 \u6307\u6807 \u6a21\u5757 \u4f9d\u9760 CARLA \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6765 \u65b9\u4fbf \u8ba1\u7b97 \u548c \u76d1\u63a7 \u4efb\u4f55 \u7c7b\u578b \u7684 \u53c2\u6570 \u3002 \u573a\u666f \u5b8c\u6210 \u540e \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5b58\u50a8 \u6a21\u62df \u4fe1\u606f \u3002 \u7136\u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u6307\u6807 \uff0c \u5e76 \u68c0\u67e5 \u76f8\u5e94 \u7684 \u7ed3\u679c \uff0c \u800c \u65e0\u9700 \u4e00\u6b21 \u53c8 \u4e00\u6b21 \u5730 \u8fdb\u884c \u4eff\u771f \u3002 \u672c \u8282 \u4ecb\u7ecd \u4e86 \u6784\u6210 \u8be5 \u6a21\u5757 \u7684 \u4e0d\u540c \u5143\u7d20 \u7684 \u8bf4\u660e \u3001 \u5982\u4f55 \u521b\u5efa \u65b0 \u6307\u6807 \u7684 \u5206\u6b65 \u6559\u7a0b \u4ee5\u53ca \u67e5\u8be2 \u8bb0\u5f55 \u548c \u5b9a\u4e49 \u6307\u6807 \u7684 \u51fd\u6570 \u7684 \u53c2\u8003 \u3002 \u6a21\u5757 \u7ed3\u6784 \u5982\u4f55 \u4f7f\u7528 \u6307\u6807 \u6a21\u5757 1 . \u8bb0\u5f55 \u4e00\u4e2a \u573a\u666f 2 . \u5b9a\u4e49 \u6307\u6807 3 . \u8fd0\u884c \u6307\u6807 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8bb0\u5f55 \u67e5\u8be2 \u53c2\u8003 \u901a\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6570\u636e \u901a\u7528 \u4eff\u771f \u6570\u636e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d8\u6362 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u901f\u5ea6 \u573a\u666f \u706f \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8f66\u706f \u6a21\u5757 \u7ed3\u6784 \u4e0e \u4e3b ScenarioRunner \u6a21\u5757 \u7c7b\u4f3c \uff0c Metrics \u6a21\u5757 \u4f7f\u7528 \u4e3b \u811a\u672c \u8fd0\u884c \uff0c metrics _ manager . py \u5176\u4f59 \u4fe1\u606f \u5305\u542b \u5728 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u5185 \u3002 \u8fd9\u91cc \u7b80\u5355 \u4ecb\u7ecd \u4e00\u4e0b \u4e3b\u8981 \u811a\u672c \u3002 metrics _ manager . py \u2014 \u6a21\u5757 \u7684 \u4e3b \u811a\u672c \u3002 \u8fd0\u884c \u6b64 \u547d\u4ee4 \u4ee5 \u663e\u793a \u4e00\u7ec4 \u6307\u6807 \u7684 \u7ed3\u679c \u3002 \u8be5 \u811a\u672c \u5177\u6709 \u5e38\u7528 \u7684 host \u548c port \u53c2\u6570 \uff0c \u4ee5\u53ca \u66f4 \u591a \u7528\u4e8e \u8bbe\u7f6e \u8981 \u4f7f\u7528 \u7684 \u6307\u6807 \u548c \u8bb0\u5f55 \u7684 \u5185\u5bb9 \u3002 host ( string ) \u2013 CARLA \u4eff\u771f \u8fd0\u884c \u65f6 \u7684 IP \u5730\u5740 \u3002 \u9ed8\u8ba4 \u4e3a ( 127.0 . 0.1 ) \u3002 port ( int ) \u2013 CARLA \u4eff\u771f \u8fd0\u884c \u7684 TCP \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u548c 2001 \u3002 metrics \u2014 \u8981 \u4f7f\u7528 \u7684 \u6307\u6807 \u7684 \u8def\u5f84 \u3002 log \u2014 \u5305\u542b \u8bb0\u5f55 \u7684 . log \u6587\u4ef6 \u7684 \u8def\u5f84 \uff08 \u76f8\u5bf9 \u4e8e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SCENARIO _ RUNNER _ ROOT \uff09 \u3002 criteria ( \u53ef \u9009 ) \u2014 \u5177\u6709 \u573a\u666f \u6761\u4ef6 \u7684 JSON \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u5851\u9020 \u6a21\u5757 \u7684 \u5176\u4f59 \u5143\u7d20 \u53ef\u4ee5 \u5728 \u8be5 srunner / metrics \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u627e\u5230 \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5df2 \u5206\u4e3a \u4e09\u4e2a \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 srunner / metrics / data \u2014 \u5b58\u50a8 \u6709\u5173 \u573a\u666f \u7684 \u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u6709 \u516d\u4e2a \u6587\u4ef6 \uff0c \u5b83\u4eec \u662f \u793a\u4f8b \u6307\u6807 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 srunner / metrics / examples \u2014 \u5305\u542b \u4e00\u4e9b \u793a\u4f8b \u6307\u6807 \uff0c \u4ee5\u53ca \u5305\u542b \u7528\u4e8e \u521b\u5efa \u65b0 \u6307\u6807 \u7684 \u57fa\u7c7b BaseMetric \u7684 \u6307\u6807 \u3002 basic _ metric . py \u2013 \u5305\u542b \u57fa\u7c7b BaseMetric \u3002 \u6240\u6709 \u7684 \u6307\u6807 \u90fd \u662f\u4ece \u5b83 \u7ee7\u627f \u7684 \u3002 criteria _ filter . py \u2013 \u8fd4\u56de \u5305\u542b \u6807\u51c6 \u6700 \u91cd\u8981 \u5c5e\u6027 \u7684 JSON \u3002 distance _ between _ vehicles . py \u2013 \u8fd4\u56de \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5c55\u793a \u5982\u4f55 \u67e5\u8be2 \u8bb0\u5f55 \u3002 distance _ to _ lane _ center . py \u2013 \u8ba1\u7b97 \u8f66\u8f86 \u4f4d\u7f6e \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5c55\u793a \u5982\u4f55 \u8bbf\u95ee \u5730\u56fe API \u4fe1\u606f \u3002 srunner / metrics / tools \u2014 \u5305\u542b \u4e24\u4e2a \u5141\u8bb8 \u67e5\u8be2 \u8bb0\u5f55 \u7684 \u5173\u952e \u811a\u672c \u3002 metrics _ parser . py \u2013 \u5c06 \u8bb0\u5f55 \u63d0\u4f9b \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u8f6c\u6362 \u4e3a \u5b57\u5178 \u3002 metrics _ log . py \u2013 \u63d0\u4f9b \u591a\u79cd \u529f\u80fd \u6765 \u67e5\u8be2 \u4f7f\u7528 metrics _ parser . py \u521b\u5efa \u7684 \u5b57\u5178 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u662f \u8bbf\u95ee \u573a\u666f \u4fe1\u606f \u7684 \u6700 \u7b80\u5355 \u65b9\u6cd5 \u3002 \u5b83\u4eec \u5217\u5728 \u672c\u9875 \u6700\u540e \u4e00\u6bb5 \u7684 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e \u4e2d \u3002 \u5982\u4f55 \u4f7f\u7528 \u6307\u6807 \u6a21\u5757 1 . \u8bb0\u5f55 \u4e00\u4e2a \u573a\u666f \u6307\u6807 \u6a21\u5757 \u9700\u8981 \u8bb0\u5f55 \u4eff\u771f \u624d\u80fd \u5de5\u4f5c \u3002 \u5426\u5219 \uff0c \u5b83 \u6ca1\u6709 \u6570\u636e \u6765 \u8fdb\u884c \u6307\u6807 \u8ba1\u7b97 \u3002 \u4f7f\u7528 record \u53c2\u6570 \u3002 \u6dfb\u52a0 \u5e94\u8be5 \u4fdd\u5b58 \u4fe1\u606f \u4fdd\u5b58\u4fe1\u606f \u7684 \u8def\u5f84 \u3002 \u8be5 \u8def\u5f84 \u5fc5\u987b \u76f8\u5bf9 \u4e8e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SCENARIO _ RUNNER _ ROOT \u3002 python scenario _ runner . py -- scenario < scenario _ name > -- record < path / to / save / the / recorder / file > \u901a\u8fc7 \u8bb0\u5f55 \u573a\u666f \uff0c \u5c06 \u5728 \u6240 \u9700 \u8def\u5f84 \u4e2d \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 \u3002 \u8fd9\u4e9b log \u6587\u4ef6 criteria \u7a0d\u540e \u5c06 \u7528\u4f5c metrics _ manager . py \u7684 \u53c2\u6570 \u3002 1 . CARLA \u8bb0\u5f55 ( . log ) \u2014 \u5305\u542b \u6bcf\u5e27 \u7684 \u4eff\u771f \u6570\u636e \u3002 \u8981 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u6863 \u3002 2 . \u6307\u6807 \u6587\u4ef6 ( . json ) \u2014 \u573a\u666f \u6807\u51c6 \u89e3\u6790 \u4e3a \u5b57\u5178 \uff0c \u5e76 \u5b58\u50a8 \u5728 JSON \u6587\u4ef6 \u4e2d \u3002 \u5b57\u5178 \u7684 \u952e \u662f \u6761\u4ef6 \u7684 \u540d\u79f0 \u3002 \u8fd9\u4e9b \u503c \u662f \u6bcf\u4e2a \u6761\u4ef6 \u7684 \u5c5e\u6027 \u3002 \u6ce8\u610f \u4ec5 \u89e3\u6790 JSON \u53ef \u5e8f\u5217 \u5e8f\u5217\u5316 \u5c5e\u6027 \uff0c \u5176\u4f59 \u5c5e\u6027 \u5c06 \u88ab \u5ffd\u7565 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8fd9 \u4e24\u4e2a \u6587\u4ef6 \u5747 \u4ee5 \u8fd0\u884c \u7684 \u573a\u666f \u547d\u540d \u3002 \u5982\u679c \u573a\u666f \u88ab \u547d\u540d \u4e3a example . py \uff0c \u6587\u4ef6 \u5c06 \u4e3a example . log \u548c example . json \u3002 2 . \u5b9a\u4e49 \u6307\u6807 \u73b0\u5728 \u662f \u521b\u5efa \u5c06 \u7528\u4e8e \u573a\u666f \u7684 \u6240 \u9700 \u6307\u6807 \u7684 \u65f6\u5019 \u4e86 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u65e0\u9650 \u7684 \uff0c \u4f46 \u4e3a\u4e86 \u672c \u6559\u7a0b \u7684 \u76ee\u7684 \uff0c \u5c06 \u4f7f\u7528 srunner / metrics / examples / distance _ between _ vehicles . py \u4e2d \u63cf\u8ff0 \u7684 \u6307\u6807 \u4f5c\u4e3a \u793a\u4f8b \u3002 \u8ba9 \u6211\u4eec \u6df1\u5165 \u7814\u7a76 \u6df1\u5165\u7814\u7a76 \u4e00\u4e0b \u4ee3\u7801 \u672c\u8eab \u3002 class DistanceBetweenVehicles ( BasicMetric ) : \" \" \" \u6307\u6807 \u7c7b DistanceBetweenVehicles \" \" \" def _ create _ metric ( self , town _ map , log , criteria ) : \" \" \" \u5ea6\u91cf \u7684 \u5b9e\u73b0 \u3002 \u8fd9\u662f \u4e00\u4e2a \u793a\u4f8b \uff0c \u5c55\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u901a\u8fc7 \u65e5\u5fd7 \u8bbf\u95ee \u7684 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \" \" \" # \u83b7\u53d6 \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 ID ego _ id = log . get _ ego _ vehicle _ id ( ) adv _ id = log . get _ actor _ ids _ with _ role _ name ( \" scenario \" ) [ 0 ] # Could have also used its type _ id dist _ list = [ ] frames _ list = [ ] # \u83b7\u5f97 \u5e27 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u6d3b\u7740 start _ ego , end _ ego = log . get _ actor _ alive _ frames ( ego _ id ) start _ adv , end _ adv = log . get _ actor _ alive _ frames ( adv _ id ) start = max ( start _ ego , start _ adv ) end = min ( end _ ego , end _ adv ) # \u83b7\u5f97 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u7684 \u8ddd\u79bb for i in range ( start , end ) : # \u83b7\u5f97 \u53d8\u6362 ego _ location = log . get _ actor _ transform ( ego _ id , i ) . location adv _ location = log . get _ actor _ transform ( adv _ id , i ) . location # \u8fc7\u6ee4 \u4e00\u4e9b \u70b9\u4ee5 \u83b7\u5f97 \u66f4\u597d \u7684 \u56fe\u5f62 if adv _ location . z < - 10 : continue dist _ v = ego _ location - adv _ location dist = math . sqrt ( dist _ v . x * dist _ v . x + dist _ v . y * dist _ v . y + dist _ v . z * dist _ v . z ) dist _ list . append ( dist ) frames _ list . append ( i ) # \u4f7f\u7528 matplotlib \u5c55\u793a \u7ed3\u679c plt . plot ( frames _ list , dist _ list ) plt . ylabel ( ' Distance [ m ] ' ) plt . xlabel ( ' Frame number ' ) plt . title ( ' Distance between the ego vehicle and the adversary over time ' ) plt . show ( ) 2.1 . \u5ea6\u91cf \u7684 \u540d\u79f0 . \u9996\u5148 \uff0c \u6b63\u5982 \u524d\u9762 \u63d0\u5230 \u7684 \uff0c \u6240\u6709 \u6307\u6807 \u90fd \u662f \u8be5 BasicMetric \u7c7b \u7684 \u5b50\u7ea7 \u3002 class DistanceBetweenVehicles ( BasicMetric ) : 2.2 . \u4e3b \u65b9\u6cd5 \u7684 \u540d\u79f0 . \u6307\u6807 \u53ea \u9700\u8981 \u4e00\u79cd \u65b9\u6cd5 \u5373\u53ef \u8fd0\u884c \uff0c _ create _ metric ( ) \u65b9\u6cd5 \u5177\u6709 \u4e09\u4e2a \u53c2\u6570 \u3002 town _ map \u2014 \u573a\u666f \u53d1\u751f \u7684 carla . Map ( ) \u5b9e\u4f8b \u3002 log \u2014 MetricsLog \u7c7b \u7684 \u5b9e\u4f8b \uff0c \u5177\u6709 \u8bbf\u95ee \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5b57\u5178 \u6240 \u9700 \u7684 \u6240\u6709 \u51fd\u6570 \u3002 criteria \u2014 \u5e26\u6709 \u6807\u51c6 \u5b57\u5178 \u7684 JSOn \u3002 \u8bb0\u5f55 \u573a\u666f \u65f6 \u63d0\u4f9b \u7684 \u6587\u4ef6 \uff0c \u7a0d\u540e \u63d0\u4f9b \u7ed9 metrics _ manager . py \u3002 def _ create _ metric ( self , town _ map , log , criteria ) : 2.3 . \u5b9e\u73b0 \u6307\u6807 \u3002 \u4ee3\u7801 \u5c06 \u6839\u636e \u6307\u6807 \u672c\u8eab \u800c \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u793a\u4f8b \u6307\u6807 DistanceBetweenVehicles \u8ba1\u7b97 \u672c\u8f66 \u4e0e\u5176 \u8ddf\u968f \u7684 \u6c7d\u8f66 \uff08 \u5bf9\u624b \uff09 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u4e3a\u6b64 \uff0c \u9700\u8981 id \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 \u914d\u5408 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u4f7f\u7528 get _ ego _ vehicle _ id ( ) \u548c get _ actor _ ids _ with _ role _ name ( \" scenario \" ) [ 0 ] \u51fd\u6570 \u4ece \u65e5\u5fd7 \u4e2d \u68c0\u7d22 \u3002 # \u83b7\u53d6 \u4e24\u4e2a \u8f66\u8f86 \u7684 ID ego _ id = log . get _ ego _ vehicle _ id ( ) adv _ id = log . get _ actor _ ids _ with _ role _ name ( \" scenario \" ) [ 0 ] # Could have also used its type _ id \u5b83\u4eec id \u7528 get _ actor _ alive _ frames ( actor _ id ) \u68c0\u7d22 \u8f66\u8f86 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u5e27 \u3002 # \u83b7\u53d6 \u6d3b\u8dc3 \u7684 \u4e24\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5e27 start _ ego , end _ ego = log . get _ actor _ alive _ frames ( ego _ id ) start _ adv , end _ adv = log . get _ actor _ alive _ frames ( adv _ id ) start = max ( start _ ego , start _ adv ) end = min ( end _ ego , end _ adv ) \u73b0\u5728 \u4e00\u5207 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \uff0c \u53ef\u4ee5 \u5faa\u73af \u8fd9\u4e9b \u5e27 \uff0c \u83b7\u53d6 \u5b83\u4eec \u7684 \u53d8\u6362 \u5e76 \u8ba1\u7b97 \u8ddd\u79bb \u3002 \u4f7f\u7528 get _ actor _ transform ( actor _ id , frame ) \u83b7\u5f97 \u53d8\u6362 \uff0c dist _ list = [ ] frames _ list = [ ] ... # \u83b7\u5f97 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u7684 \u8ddd\u79bb for i in range ( start , end ) : # \u83b7\u53d6 \u53d8\u6362 ego _ location = log . get _ actor _ transform ( ego _ id , i ) . location adv _ location = log . get _ actor _ transform ( adv _ id , i ) . location # \u4e3a\u4e86 \u83b7\u5f97 \u66f4\u597d \u7684 \u56fe\u7247 \u8fc7\u6ee4 \u4e00\u4e9b \u70b9 if adv _ location . z < - 10 : continue dist _ v = ego _ location - adv _ location dist = math . sqrt ( dist _ v . x * dist _ v . x + dist _ v . y * dist _ v . y + dist _ v . z * dist _ v . z ) dist _ list . append ( dist ) \u6ce8\u610f \u5bf9\u624b \u7684 \u5782\u76f4 \u60c5\u51b5 \u4ec5 \u8003\u8651 \u5bf9\u624b \u6b63\u5e38 \u884c\u9a76 \u65f6 \u7684 \u60c5\u51b5 \u3002 \u6700\u540e \uff0c \u4f7f\u7528 matplotlib \u5b9a\u4e49 \u8fd0\u884c metrics _ manager . py \u65f6 \u6307\u6807 \u7684 \u8f93\u51fa \u3002 # \u4f7f\u7528 matplotlib \u5c55\u793a \u7ed3\u679c plt . plot ( frames _ list , dist _ list ) plt . ylabel ( ' Distance [ m ] ' ) plt . xlabel ( ' Frame number ' ) plt . title ( ' Distance between the ego vehicle and the adversary over time ' ) plt . show ( ) 3 . \u8fd0\u884c \u6307\u6807 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u6700\u540e \uff0c \u662f \u65f6\u5019 \u4f7f\u7528 \u4ece \u573a\u666f \u4e2d \u68c0\u7d22 \u7684 \u4fe1\u606f \u4ee5\u53ca \u5df2 \u5b9a\u4e49 \u7684 \u6307\u6807 \u6765 \u8fd4\u56de \u4e00\u4e9b \u6307\u6807 \u4fe1\u606f \u3002 \u8ba9 \u6211\u4eec \u4f7f\u7528 \u8fc4\u4eca \u4e3a\u6b62 \u8fc4\u4eca\u4e3a\u6b62 \u4f7f\u7528 \u7684 \u793a\u4f8b \u6307\u6807 \u4ee5\u53ca \u4ee5 \u5176 \u547d\u540d \u7684 \u793a\u4f8b \u65e5\u5fd7 \u6765 \u8fd0\u884c \u8be5 \u6a21\u5757 \u3002 python metrics _ manager . py -- metric srunner / metrics / examples / distance _ between _ vehicles . py -- log srunner / metrics / data / DistanceBetweenVehicles . log \u8b66\u544a \u4eff\u771f \u5fc5\u987b \u6b63\u5728 \u8fd0\u884c \u3002 \u5426\u5219 \uff0c \u6a21\u5757 \u5c06 \u65e0\u6cd5 \u8bbf\u95ee \u65e0\u6cd5\u8bbf\u95ee \u5730\u56fe API \u3002 \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u5176\u4e2d \u7ed8\u5236 \u4e86 \u7ed3\u679c \u3002 \u5728 \u8f93\u51fa \u7a97\u53e3 \u5173\u95ed \u4e4b\u524d \uff0c \u811a\u672c \u4e0d\u4f1a \u5b8c\u6210 \u3002 \u8bb0\u5f55 \u67e5\u8be2 \u53c2\u8003 \u5b9a\u4e49 \u6307\u6807 \u65f6 \uff0c \u6709\u5173 \u573a\u666f \u7684 \u6240\u6709 \u4fe1\u606f \u90fd \u901a\u8fc7 \u7c7b MetricsLog \uff08 _ create _ metric ( ) \u51fd\u6570 \u4e2d \u7684 log \u53c2\u6570 \uff09 \u8bbf\u95ee \u3002 \u8be5\u7c7b \u4f4d\u4e8e srunner / metrics / tools / metrics _ log . py \uff0c \u8be5 \u5f15\u7528 \u662f \u5176\u4e2d \u5305\u542b \u7684 \u51fd\u6570 \u7684 \u540e\u7eed \u90e8\u5206 \u3002 \u901a\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6570\u636e get _ ego _ vehicle _ id ( self ) \u8fd4\u56de \u81ea\u6211 \u8f66\u8f86 \u7684 id \u3002 Return \u2014 int get _ actor _ ids _ with _ role _ name ( self , role _ name ) \u8fd4\u56de \u4e0e \u7ed9\u5b9a role _ name \u5339\u914d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002 Return \u2014 list Parameters role _ name ( str ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 role _ name \u3002 get _ actor _ ids _ with _ type _ id ( self , type _ id ) \u6839\u636e fnmatch \u6807\u51c6 \uff0c \u8fd4\u56de \u4e0e \u7ed9\u5b9a \u5339\u914d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002 Return \u2014 list Parameters type _ id ( str ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 type _ id \u3002 get _ actor _ attributes ( self , actor _ id ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240\u6709 \u5c5e\u6027 \u7684 \u5b57\u5178 \u3002 Return \u2014 dict Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 get _ actor _ bounding _ box ( self , actor _ id ) \u8fd4\u56de \u6307\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846 \u3002 Return \u2014 carla . BoundingBox Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 get _ traffic _ light _ trigger _ volume ( self , traffic _ light _ id ) \u8fd4\u56de \u6307\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 trigger volume \u3002 Return \u2014 carla . BoundingBox Parameters traffic _ light _ id ( int ) \u2014 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 id \u3002 get _ actor _ alive _ frames ( self , actor _ id ) \u8fd4\u56de \u4e00\u4e2a \u5143\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u8dc3 \u7684 \u7b2c\u4e00 \u5e27 \u548c \u6700\u540e \u4e00\u5e27 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5e27 \u4ece 1 \u5f00\u59cb \uff0c \u800c \u4e0d\u662f \u4ece 0 \u5f00\u59cb \u3002 Return \u2014 tuple Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 \u901a\u7528 \u4eff\u771f \u6570\u636e get _ collisions ( self , actor _ id ) \u8fd4\u56de \u5177\u6709 \u4e24\u4e2a \u952e \u7684 \u5b57\u5178 \u5217\u8868 \u3002 frame \u662f \u78b0\u649e \u7684 \u5e27 \u7f16\u53f7 \uff0c \u662f other _ id \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u53d1\u751f \u78b0\u649e \u7684 id \u5217\u8868 \u3002 Return \u2014 list Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 get _ total _ frame _ count ( self ) \u8fd4\u56de \u4e00\u4e2a int \u503c \uff0c \u5176\u4e2d \u5305\u542b \u4eff\u771f \u6301\u7eed \u7684 \u5e27 \u603b\u6570 \u3002 Return \u2014 int get _ elapsed _ time ( self , frame ) \u8fd4\u56de \u4e00\u4e2a \u5305\u542b \u7279\u5b9a \u5e27 \u7684 \u5df2\u7528 \u65f6\u95f4 \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 Return \u2014 float Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ delta _ time ( self , frame ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a \u5e27 \u7684 \u589e\u91cf \u65f6\u95f4 \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 R Return \u2014 float Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ platform _ time ( self , frame ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a \u5e27 \u7684 \u5e73\u53f0 \u65f6\u95f4 \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 Return \u2014 float Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 get _ actor _ acceleration ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Vector3D Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ all _ actor _ accelerations ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ accelerations _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Vector3D \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c \u4f20\u9012 \u4e86 actor _ list \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u7684 \u5217\u8868 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u901f\u5ea6 \u89d2\u901f\u5ea6 get _ actor _ angular _ velocity ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Vector3D Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u7684 \u6570\u76ee \u3002 get _ all _ actor _ angular _ velocities ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ angular _ velocities _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Vector3D \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c \u4f20\u9012 actor _ list \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ids \u5217\u8868 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 get _ vehicle _ control ( self , vehicle _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u8f66\u8f86 \u7684 \u63a7\u5236 \u3002 \u8be5 manual _ gear _ shift \u5c5e\u6027 \u5c06 \u59cb\u7ec8 \u4e3a False \u3002 Return \u2014 carla . VehicleControl Parameters vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ vehicle _ physics _ control ( self , vehicle _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 Return \u2014 carla . VehiclePhysicsControl Parameters vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ walker _ speed ( self , walker _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u884c\u4eba \u7684 \u901f\u5ea6 \u3002 Return \u2014 carla . Vector3D Parameters walker _ id ( int ) \u2014 \u884c\u4eba \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d8\u6362 get _ actor _ transform ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u53d8\u6362 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Transform Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ all _ actor _ transforms ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u53d8\u6362 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Transform ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ transforms _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Transform \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c actor _ list \u901a\u8fc7 \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Transform ) Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u901f\u5ea6 get _ actor _ velocity ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u901f\u5ea6 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Vector3D Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ all _ actor _ velocities ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u901f\u5ea6 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ velocities _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Vector3D \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c \u4f20\u9012 \u4e86 actor _ list \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Vector3D Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002 \u573a\u666f \u706f get _ scene _ light _ state ( self , light , vehicle _ id , frame ) Returns the state of a scene light for a given frame . The light state group will always be carla . LightGroup . None . Return \u2014 carla . LightState Parameters light _ id ( int ) \u2014 \u573a\u666f \u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f get _ traffic _ light _ state ( self , traffic _ light _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3002 Return \u2014 carla . TrafficLightState . Parameters traffic _ light _ id ( int ) \u2014 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 is _ traffic _ light _ frozen ( self , traffic _ light _ id , frame ) \u8fd4\u56de \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u662f\u5426 \u51bb\u7ed3 \u5728 \u7ed9\u5b9a \u5e27 \u3002 Return \u2014 bool Parameters traffic _ light _ id ( int ) \u2014 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ traffic _ light _ elapsed _ time ( self , traffic _ light _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ecf\u8fc7 \u65f6\u95f4 \u3002 Return \u2014 float Parameters traffic _ light _ id ( int ) \u2014 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ traffic _ light _ state _ time ( self , traffic _ light _ id , state , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u4ea4\u901a \u4ea4\u901a\u706f \u7279\u5b9a \u72b6\u6001 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 Return \u2014 float Parameters traffic _ light _ id ( int ) \u2014 id of the traffic light . state ( carla . TrafficLightState ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 \u8f66\u706f get _ vehicle _ lights ( self , vehicle _ id , frame ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u7ed9\u5b9a \u5e27 \u5904 \u7279\u5b9a \u8f66\u8f86 \u7684 \u6d3b\u52a8 \u706f \u3002 Return \u2014 list ( carla . VehicleLightState ) Parameters vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 is _ vehicle _ light _ active ( self , light , vehicle _ id , frame ) \u68c0\u67e5 \u7ed9\u5b9a \u8f66\u8f86 \u706f \u5728 \u7279\u5b9a \u5e27 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u3002 Return \u2014 bool Parameters light ( carla . VehicleLightState ) \u2014 \u4e0e \u8f66\u8f86 \u8fdb\u884c \u6bd4\u8f83 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002","title":"\u6307\u6807 \u6a21\u5757"},{"location":"scenario_runner/metrics_module/#_1","text":"\u6307\u6807 \u6a21\u5757 \u4f9d\u9760 CARLA \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6765 \u65b9\u4fbf \u8ba1\u7b97 \u548c \u76d1\u63a7 \u4efb\u4f55 \u7c7b\u578b \u7684 \u53c2\u6570 \u3002 \u573a\u666f \u5b8c\u6210 \u540e \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5b58\u50a8 \u6a21\u62df \u4fe1\u606f \u3002 \u7136\u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u6307\u6807 \uff0c \u5e76 \u68c0\u67e5 \u76f8\u5e94 \u7684 \u7ed3\u679c \uff0c \u800c \u65e0\u9700 \u4e00\u6b21 \u53c8 \u4e00\u6b21 \u5730 \u8fdb\u884c \u4eff\u771f \u3002 \u672c \u8282 \u4ecb\u7ecd \u4e86 \u6784\u6210 \u8be5 \u6a21\u5757 \u7684 \u4e0d\u540c \u5143\u7d20 \u7684 \u8bf4\u660e \u3001 \u5982\u4f55 \u521b\u5efa \u65b0 \u6307\u6807 \u7684 \u5206\u6b65 \u6559\u7a0b \u4ee5\u53ca \u67e5\u8be2 \u8bb0\u5f55 \u548c \u5b9a\u4e49 \u6307\u6807 \u7684 \u51fd\u6570 \u7684 \u53c2\u8003 \u3002 \u6a21\u5757 \u7ed3\u6784 \u5982\u4f55 \u4f7f\u7528 \u6307\u6807 \u6a21\u5757 1 . \u8bb0\u5f55 \u4e00\u4e2a \u573a\u666f 2 . \u5b9a\u4e49 \u6307\u6807 3 . \u8fd0\u884c \u6307\u6807 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8bb0\u5f55 \u67e5\u8be2 \u53c2\u8003 \u901a\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6570\u636e \u901a\u7528 \u4eff\u771f \u6570\u636e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d8\u6362 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u901f\u5ea6 \u573a\u666f \u706f \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8f66\u706f","title":"\u6307\u6807 \u6a21\u5757"},{"location":"scenario_runner/metrics_module/#_2","text":"\u4e0e \u4e3b ScenarioRunner \u6a21\u5757 \u7c7b\u4f3c \uff0c Metrics \u6a21\u5757 \u4f7f\u7528 \u4e3b \u811a\u672c \u8fd0\u884c \uff0c metrics _ manager . py \u5176\u4f59 \u4fe1\u606f \u5305\u542b \u5728 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u5185 \u3002 \u8fd9\u91cc \u7b80\u5355 \u4ecb\u7ecd \u4e00\u4e0b \u4e3b\u8981 \u811a\u672c \u3002 metrics _ manager . py \u2014 \u6a21\u5757 \u7684 \u4e3b \u811a\u672c \u3002 \u8fd0\u884c \u6b64 \u547d\u4ee4 \u4ee5 \u663e\u793a \u4e00\u7ec4 \u6307\u6807 \u7684 \u7ed3\u679c \u3002 \u8be5 \u811a\u672c \u5177\u6709 \u5e38\u7528 \u7684 host \u548c port \u53c2\u6570 \uff0c \u4ee5\u53ca \u66f4 \u591a \u7528\u4e8e \u8bbe\u7f6e \u8981 \u4f7f\u7528 \u7684 \u6307\u6807 \u548c \u8bb0\u5f55 \u7684 \u5185\u5bb9 \u3002 host ( string ) \u2013 CARLA \u4eff\u771f \u8fd0\u884c \u65f6 \u7684 IP \u5730\u5740 \u3002 \u9ed8\u8ba4 \u4e3a ( 127.0 . 0.1 ) \u3002 port ( int ) \u2013 CARLA \u4eff\u771f \u8fd0\u884c \u7684 TCP \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u548c 2001 \u3002 metrics \u2014 \u8981 \u4f7f\u7528 \u7684 \u6307\u6807 \u7684 \u8def\u5f84 \u3002 log \u2014 \u5305\u542b \u8bb0\u5f55 \u7684 . log \u6587\u4ef6 \u7684 \u8def\u5f84 \uff08 \u76f8\u5bf9 \u4e8e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SCENARIO _ RUNNER _ ROOT \uff09 \u3002 criteria ( \u53ef \u9009 ) \u2014 \u5177\u6709 \u573a\u666f \u6761\u4ef6 \u7684 JSON \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u5851\u9020 \u6a21\u5757 \u7684 \u5176\u4f59 \u5143\u7d20 \u53ef\u4ee5 \u5728 \u8be5 srunner / metrics \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u627e\u5230 \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5df2 \u5206\u4e3a \u4e09\u4e2a \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 srunner / metrics / data \u2014 \u5b58\u50a8 \u6709\u5173 \u573a\u666f \u7684 \u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u6709 \u516d\u4e2a \u6587\u4ef6 \uff0c \u5b83\u4eec \u662f \u793a\u4f8b \u6307\u6807 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 srunner / metrics / examples \u2014 \u5305\u542b \u4e00\u4e9b \u793a\u4f8b \u6307\u6807 \uff0c \u4ee5\u53ca \u5305\u542b \u7528\u4e8e \u521b\u5efa \u65b0 \u6307\u6807 \u7684 \u57fa\u7c7b BaseMetric \u7684 \u6307\u6807 \u3002 basic _ metric . py \u2013 \u5305\u542b \u57fa\u7c7b BaseMetric \u3002 \u6240\u6709 \u7684 \u6307\u6807 \u90fd \u662f\u4ece \u5b83 \u7ee7\u627f \u7684 \u3002 criteria _ filter . py \u2013 \u8fd4\u56de \u5305\u542b \u6807\u51c6 \u6700 \u91cd\u8981 \u5c5e\u6027 \u7684 JSON \u3002 distance _ between _ vehicles . py \u2013 \u8fd4\u56de \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5c55\u793a \u5982\u4f55 \u67e5\u8be2 \u8bb0\u5f55 \u3002 distance _ to _ lane _ center . py \u2013 \u8ba1\u7b97 \u8f66\u8f86 \u4f4d\u7f6e \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5c55\u793a \u5982\u4f55 \u8bbf\u95ee \u5730\u56fe API \u4fe1\u606f \u3002 srunner / metrics / tools \u2014 \u5305\u542b \u4e24\u4e2a \u5141\u8bb8 \u67e5\u8be2 \u8bb0\u5f55 \u7684 \u5173\u952e \u811a\u672c \u3002 metrics _ parser . py \u2013 \u5c06 \u8bb0\u5f55 \u63d0\u4f9b \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u8f6c\u6362 \u4e3a \u5b57\u5178 \u3002 metrics _ log . py \u2013 \u63d0\u4f9b \u591a\u79cd \u529f\u80fd \u6765 \u67e5\u8be2 \u4f7f\u7528 metrics _ parser . py \u521b\u5efa \u7684 \u5b57\u5178 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u662f \u8bbf\u95ee \u573a\u666f \u4fe1\u606f \u7684 \u6700 \u7b80\u5355 \u65b9\u6cd5 \u3002 \u5b83\u4eec \u5217\u5728 \u672c\u9875 \u6700\u540e \u4e00\u6bb5 \u7684 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e \u4e2d \u3002","title":"\u6a21\u5757 \u7ed3\u6784"},{"location":"scenario_runner/metrics_module/#_3","text":"","title":"\u5982\u4f55 \u4f7f\u7528 \u6307\u6807 \u6a21\u5757"},{"location":"scenario_runner/metrics_module/#1","text":"\u6307\u6807 \u6a21\u5757 \u9700\u8981 \u8bb0\u5f55 \u4eff\u771f \u624d\u80fd \u5de5\u4f5c \u3002 \u5426\u5219 \uff0c \u5b83 \u6ca1\u6709 \u6570\u636e \u6765 \u8fdb\u884c \u6307\u6807 \u8ba1\u7b97 \u3002 \u4f7f\u7528 record \u53c2\u6570 \u3002 \u6dfb\u52a0 \u5e94\u8be5 \u4fdd\u5b58 \u4fe1\u606f \u4fdd\u5b58\u4fe1\u606f \u7684 \u8def\u5f84 \u3002 \u8be5 \u8def\u5f84 \u5fc5\u987b \u76f8\u5bf9 \u4e8e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SCENARIO _ RUNNER _ ROOT \u3002 python scenario _ runner . py -- scenario < scenario _ name > -- record < path / to / save / the / recorder / file > \u901a\u8fc7 \u8bb0\u5f55 \u573a\u666f \uff0c \u5c06 \u5728 \u6240 \u9700 \u8def\u5f84 \u4e2d \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 \u3002 \u8fd9\u4e9b log \u6587\u4ef6 criteria \u7a0d\u540e \u5c06 \u7528\u4f5c metrics _ manager . py \u7684 \u53c2\u6570 \u3002 1 . CARLA \u8bb0\u5f55 ( . log ) \u2014 \u5305\u542b \u6bcf\u5e27 \u7684 \u4eff\u771f \u6570\u636e \u3002 \u8981 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u6863 \u3002 2 . \u6307\u6807 \u6587\u4ef6 ( . json ) \u2014 \u573a\u666f \u6807\u51c6 \u89e3\u6790 \u4e3a \u5b57\u5178 \uff0c \u5e76 \u5b58\u50a8 \u5728 JSON \u6587\u4ef6 \u4e2d \u3002 \u5b57\u5178 \u7684 \u952e \u662f \u6761\u4ef6 \u7684 \u540d\u79f0 \u3002 \u8fd9\u4e9b \u503c \u662f \u6bcf\u4e2a \u6761\u4ef6 \u7684 \u5c5e\u6027 \u3002 \u6ce8\u610f \u4ec5 \u89e3\u6790 JSON \u53ef \u5e8f\u5217 \u5e8f\u5217\u5316 \u5c5e\u6027 \uff0c \u5176\u4f59 \u5c5e\u6027 \u5c06 \u88ab \u5ffd\u7565 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8fd9 \u4e24\u4e2a \u6587\u4ef6 \u5747 \u4ee5 \u8fd0\u884c \u7684 \u573a\u666f \u547d\u540d \u3002 \u5982\u679c \u573a\u666f \u88ab \u547d\u540d \u4e3a example . py \uff0c \u6587\u4ef6 \u5c06 \u4e3a example . log \u548c example . json \u3002","title":"1 . \u8bb0\u5f55 \u4e00\u4e2a \u573a\u666f"},{"location":"scenario_runner/metrics_module/#2","text":"\u73b0\u5728 \u662f \u521b\u5efa \u5c06 \u7528\u4e8e \u573a\u666f \u7684 \u6240 \u9700 \u6307\u6807 \u7684 \u65f6\u5019 \u4e86 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u65e0\u9650 \u7684 \uff0c \u4f46 \u4e3a\u4e86 \u672c \u6559\u7a0b \u7684 \u76ee\u7684 \uff0c \u5c06 \u4f7f\u7528 srunner / metrics / examples / distance _ between _ vehicles . py \u4e2d \u63cf\u8ff0 \u7684 \u6307\u6807 \u4f5c\u4e3a \u793a\u4f8b \u3002 \u8ba9 \u6211\u4eec \u6df1\u5165 \u7814\u7a76 \u6df1\u5165\u7814\u7a76 \u4e00\u4e0b \u4ee3\u7801 \u672c\u8eab \u3002 class DistanceBetweenVehicles ( BasicMetric ) : \" \" \" \u6307\u6807 \u7c7b DistanceBetweenVehicles \" \" \" def _ create _ metric ( self , town _ map , log , criteria ) : \" \" \" \u5ea6\u91cf \u7684 \u5b9e\u73b0 \u3002 \u8fd9\u662f \u4e00\u4e2a \u793a\u4f8b \uff0c \u5c55\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u901a\u8fc7 \u65e5\u5fd7 \u8bbf\u95ee \u7684 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \" \" \" # \u83b7\u53d6 \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 ID ego _ id = log . get _ ego _ vehicle _ id ( ) adv _ id = log . get _ actor _ ids _ with _ role _ name ( \" scenario \" ) [ 0 ] # Could have also used its type _ id dist _ list = [ ] frames _ list = [ ] # \u83b7\u5f97 \u5e27 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u6d3b\u7740 start _ ego , end _ ego = log . get _ actor _ alive _ frames ( ego _ id ) start _ adv , end _ adv = log . get _ actor _ alive _ frames ( adv _ id ) start = max ( start _ ego , start _ adv ) end = min ( end _ ego , end _ adv ) # \u83b7\u5f97 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u7684 \u8ddd\u79bb for i in range ( start , end ) : # \u83b7\u5f97 \u53d8\u6362 ego _ location = log . get _ actor _ transform ( ego _ id , i ) . location adv _ location = log . get _ actor _ transform ( adv _ id , i ) . location # \u8fc7\u6ee4 \u4e00\u4e9b \u70b9\u4ee5 \u83b7\u5f97 \u66f4\u597d \u7684 \u56fe\u5f62 if adv _ location . z < - 10 : continue dist _ v = ego _ location - adv _ location dist = math . sqrt ( dist _ v . x * dist _ v . x + dist _ v . y * dist _ v . y + dist _ v . z * dist _ v . z ) dist _ list . append ( dist ) frames _ list . append ( i ) # \u4f7f\u7528 matplotlib \u5c55\u793a \u7ed3\u679c plt . plot ( frames _ list , dist _ list ) plt . ylabel ( ' Distance [ m ] ' ) plt . xlabel ( ' Frame number ' ) plt . title ( ' Distance between the ego vehicle and the adversary over time ' ) plt . show ( ) 2.1 . \u5ea6\u91cf \u7684 \u540d\u79f0 . \u9996\u5148 \uff0c \u6b63\u5982 \u524d\u9762 \u63d0\u5230 \u7684 \uff0c \u6240\u6709 \u6307\u6807 \u90fd \u662f \u8be5 BasicMetric \u7c7b \u7684 \u5b50\u7ea7 \u3002 class DistanceBetweenVehicles ( BasicMetric ) : 2.2 . \u4e3b \u65b9\u6cd5 \u7684 \u540d\u79f0 . \u6307\u6807 \u53ea \u9700\u8981 \u4e00\u79cd \u65b9\u6cd5 \u5373\u53ef \u8fd0\u884c \uff0c _ create _ metric ( ) \u65b9\u6cd5 \u5177\u6709 \u4e09\u4e2a \u53c2\u6570 \u3002 town _ map \u2014 \u573a\u666f \u53d1\u751f \u7684 carla . Map ( ) \u5b9e\u4f8b \u3002 log \u2014 MetricsLog \u7c7b \u7684 \u5b9e\u4f8b \uff0c \u5177\u6709 \u8bbf\u95ee \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5b57\u5178 \u6240 \u9700 \u7684 \u6240\u6709 \u51fd\u6570 \u3002 criteria \u2014 \u5e26\u6709 \u6807\u51c6 \u5b57\u5178 \u7684 JSOn \u3002 \u8bb0\u5f55 \u573a\u666f \u65f6 \u63d0\u4f9b \u7684 \u6587\u4ef6 \uff0c \u7a0d\u540e \u63d0\u4f9b \u7ed9 metrics _ manager . py \u3002 def _ create _ metric ( self , town _ map , log , criteria ) : 2.3 . \u5b9e\u73b0 \u6307\u6807 \u3002 \u4ee3\u7801 \u5c06 \u6839\u636e \u6307\u6807 \u672c\u8eab \u800c \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u793a\u4f8b \u6307\u6807 DistanceBetweenVehicles \u8ba1\u7b97 \u672c\u8f66 \u4e0e\u5176 \u8ddf\u968f \u7684 \u6c7d\u8f66 \uff08 \u5bf9\u624b \uff09 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u4e3a\u6b64 \uff0c \u9700\u8981 id \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 \u914d\u5408 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u4f7f\u7528 get _ ego _ vehicle _ id ( ) \u548c get _ actor _ ids _ with _ role _ name ( \" scenario \" ) [ 0 ] \u51fd\u6570 \u4ece \u65e5\u5fd7 \u4e2d \u68c0\u7d22 \u3002 # \u83b7\u53d6 \u4e24\u4e2a \u8f66\u8f86 \u7684 ID ego _ id = log . get _ ego _ vehicle _ id ( ) adv _ id = log . get _ actor _ ids _ with _ role _ name ( \" scenario \" ) [ 0 ] # Could have also used its type _ id \u5b83\u4eec id \u7528 get _ actor _ alive _ frames ( actor _ id ) \u68c0\u7d22 \u8f66\u8f86 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u5e27 \u3002 # \u83b7\u53d6 \u6d3b\u8dc3 \u7684 \u4e24\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5e27 start _ ego , end _ ego = log . get _ actor _ alive _ frames ( ego _ id ) start _ adv , end _ adv = log . get _ actor _ alive _ frames ( adv _ id ) start = max ( start _ ego , start _ adv ) end = min ( end _ ego , end _ adv ) \u73b0\u5728 \u4e00\u5207 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \uff0c \u53ef\u4ee5 \u5faa\u73af \u8fd9\u4e9b \u5e27 \uff0c \u83b7\u53d6 \u5b83\u4eec \u7684 \u53d8\u6362 \u5e76 \u8ba1\u7b97 \u8ddd\u79bb \u3002 \u4f7f\u7528 get _ actor _ transform ( actor _ id , frame ) \u83b7\u5f97 \u53d8\u6362 \uff0c dist _ list = [ ] frames _ list = [ ] ... # \u83b7\u5f97 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u7684 \u8ddd\u79bb for i in range ( start , end ) : # \u83b7\u53d6 \u53d8\u6362 ego _ location = log . get _ actor _ transform ( ego _ id , i ) . location adv _ location = log . get _ actor _ transform ( adv _ id , i ) . location # \u4e3a\u4e86 \u83b7\u5f97 \u66f4\u597d \u7684 \u56fe\u7247 \u8fc7\u6ee4 \u4e00\u4e9b \u70b9 if adv _ location . z < - 10 : continue dist _ v = ego _ location - adv _ location dist = math . sqrt ( dist _ v . x * dist _ v . x + dist _ v . y * dist _ v . y + dist _ v . z * dist _ v . z ) dist _ list . append ( dist ) \u6ce8\u610f \u5bf9\u624b \u7684 \u5782\u76f4 \u60c5\u51b5 \u4ec5 \u8003\u8651 \u5bf9\u624b \u6b63\u5e38 \u884c\u9a76 \u65f6 \u7684 \u60c5\u51b5 \u3002 \u6700\u540e \uff0c \u4f7f\u7528 matplotlib \u5b9a\u4e49 \u8fd0\u884c metrics _ manager . py \u65f6 \u6307\u6807 \u7684 \u8f93\u51fa \u3002 # \u4f7f\u7528 matplotlib \u5c55\u793a \u7ed3\u679c plt . plot ( frames _ list , dist _ list ) plt . ylabel ( ' Distance [ m ] ' ) plt . xlabel ( ' Frame number ' ) plt . title ( ' Distance between the ego vehicle and the adversary over time ' ) plt . show ( )","title":"2 . \u5b9a\u4e49 \u6307\u6807"},{"location":"scenario_runner/metrics_module/#3","text":"\u6700\u540e \uff0c \u662f \u65f6\u5019 \u4f7f\u7528 \u4ece \u573a\u666f \u4e2d \u68c0\u7d22 \u7684 \u4fe1\u606f \u4ee5\u53ca \u5df2 \u5b9a\u4e49 \u7684 \u6307\u6807 \u6765 \u8fd4\u56de \u4e00\u4e9b \u6307\u6807 \u4fe1\u606f \u3002 \u8ba9 \u6211\u4eec \u4f7f\u7528 \u8fc4\u4eca \u4e3a\u6b62 \u8fc4\u4eca\u4e3a\u6b62 \u4f7f\u7528 \u7684 \u793a\u4f8b \u6307\u6807 \u4ee5\u53ca \u4ee5 \u5176 \u547d\u540d \u7684 \u793a\u4f8b \u65e5\u5fd7 \u6765 \u8fd0\u884c \u8be5 \u6a21\u5757 \u3002 python metrics _ manager . py -- metric srunner / metrics / examples / distance _ between _ vehicles . py -- log srunner / metrics / data / DistanceBetweenVehicles . log \u8b66\u544a \u4eff\u771f \u5fc5\u987b \u6b63\u5728 \u8fd0\u884c \u3002 \u5426\u5219 \uff0c \u6a21\u5757 \u5c06 \u65e0\u6cd5 \u8bbf\u95ee \u65e0\u6cd5\u8bbf\u95ee \u5730\u56fe API \u3002 \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u5176\u4e2d \u7ed8\u5236 \u4e86 \u7ed3\u679c \u3002 \u5728 \u8f93\u51fa \u7a97\u53e3 \u5173\u95ed \u4e4b\u524d \uff0c \u811a\u672c \u4e0d\u4f1a \u5b8c\u6210 \u3002","title":"3 . \u8fd0\u884c \u6307\u6807 \u7ba1\u7406\u5668"},{"location":"scenario_runner/metrics_module/#_4","text":"\u5b9a\u4e49 \u6307\u6807 \u65f6 \uff0c \u6709\u5173 \u573a\u666f \u7684 \u6240\u6709 \u4fe1\u606f \u90fd \u901a\u8fc7 \u7c7b MetricsLog \uff08 _ create _ metric ( ) \u51fd\u6570 \u4e2d \u7684 log \u53c2\u6570 \uff09 \u8bbf\u95ee \u3002 \u8be5\u7c7b \u4f4d\u4e8e srunner / metrics / tools / metrics _ log . py \uff0c \u8be5 \u5f15\u7528 \u662f \u5176\u4e2d \u5305\u542b \u7684 \u51fd\u6570 \u7684 \u540e\u7eed \u90e8\u5206 \u3002","title":"\u8bb0\u5f55 \u67e5\u8be2 \u53c2\u8003"},{"location":"scenario_runner/metrics_module/#_5","text":"get _ ego _ vehicle _ id ( self ) \u8fd4\u56de \u81ea\u6211 \u8f66\u8f86 \u7684 id \u3002 Return \u2014 int get _ actor _ ids _ with _ role _ name ( self , role _ name ) \u8fd4\u56de \u4e0e \u7ed9\u5b9a role _ name \u5339\u914d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002 Return \u2014 list Parameters role _ name ( str ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 role _ name \u3002 get _ actor _ ids _ with _ type _ id ( self , type _ id ) \u6839\u636e fnmatch \u6807\u51c6 \uff0c \u8fd4\u56de \u4e0e \u7ed9\u5b9a \u5339\u914d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002 Return \u2014 list Parameters type _ id ( str ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 type _ id \u3002 get _ actor _ attributes ( self , actor _ id ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240\u6709 \u5c5e\u6027 \u7684 \u5b57\u5178 \u3002 Return \u2014 dict Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 get _ actor _ bounding _ box ( self , actor _ id ) \u8fd4\u56de \u6307\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846 \u3002 Return \u2014 carla . BoundingBox Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 get _ traffic _ light _ trigger _ volume ( self , traffic _ light _ id ) \u8fd4\u56de \u6307\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 trigger volume \u3002 Return \u2014 carla . BoundingBox Parameters traffic _ light _ id ( int ) \u2014 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 id \u3002 get _ actor _ alive _ frames ( self , actor _ id ) \u8fd4\u56de \u4e00\u4e2a \u5143\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u8dc3 \u7684 \u7b2c\u4e00 \u5e27 \u548c \u6700\u540e \u4e00\u5e27 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5e27 \u4ece 1 \u5f00\u59cb \uff0c \u800c \u4e0d\u662f \u4ece 0 \u5f00\u59cb \u3002 Return \u2014 tuple Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002","title":"\u901a\u7528 \u53c2\u4e0e\u8005 \u6570\u636e"},{"location":"scenario_runner/metrics_module/#_6","text":"get _ collisions ( self , actor _ id ) \u8fd4\u56de \u5177\u6709 \u4e24\u4e2a \u952e \u7684 \u5b57\u5178 \u5217\u8868 \u3002 frame \u662f \u78b0\u649e \u7684 \u5e27 \u7f16\u53f7 \uff0c \u662f other _ id \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u53d1\u751f \u78b0\u649e \u7684 id \u5217\u8868 \u3002 Return \u2014 list Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 get _ total _ frame _ count ( self ) \u8fd4\u56de \u4e00\u4e2a int \u503c \uff0c \u5176\u4e2d \u5305\u542b \u4eff\u771f \u6301\u7eed \u7684 \u5e27 \u603b\u6570 \u3002 Return \u2014 int get _ elapsed _ time ( self , frame ) \u8fd4\u56de \u4e00\u4e2a \u5305\u542b \u7279\u5b9a \u5e27 \u7684 \u5df2\u7528 \u65f6\u95f4 \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 Return \u2014 float Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ delta _ time ( self , frame ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a \u5e27 \u7684 \u589e\u91cf \u65f6\u95f4 \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 R Return \u2014 float Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ platform _ time ( self , frame ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a \u5e27 \u7684 \u5e73\u53f0 \u65f6\u95f4 \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 Return \u2014 float Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002","title":"\u901a\u7528 \u4eff\u771f \u6570\u636e"},{"location":"scenario_runner/metrics_module/#_7","text":"get _ actor _ acceleration ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Vector3D Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ all _ actor _ accelerations ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ accelerations _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Vector3D \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c \u4f20\u9012 \u4e86 actor _ list \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u7684 \u5217\u8868 \u3002","title":"\u53c2\u4e0e\u8005 \u52a0\u901f\u5ea6"},{"location":"scenario_runner/metrics_module/#_8","text":"get _ actor _ angular _ velocity ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Vector3D Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u7684 \u6570\u76ee \u3002 get _ all _ actor _ angular _ velocities ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ angular _ velocities _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Vector3D \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c \u4f20\u9012 actor _ list \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ids \u5217\u8868 \u3002","title":"\u53c2\u4e0e\u8005 \u89d2\u901f\u5ea6"},{"location":"scenario_runner/metrics_module/#_9","text":"get _ vehicle _ control ( self , vehicle _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u8f66\u8f86 \u7684 \u63a7\u5236 \u3002 \u8be5 manual _ gear _ shift \u5c5e\u6027 \u5c06 \u59cb\u7ec8 \u4e3a False \u3002 Return \u2014 carla . VehicleControl Parameters vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ vehicle _ physics _ control ( self , vehicle _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 Return \u2014 carla . VehiclePhysicsControl Parameters vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ walker _ speed ( self , walker _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u884c\u4eba \u7684 \u901f\u5ea6 \u3002 Return \u2014 carla . Vector3D Parameters walker _ id ( int ) \u2014 \u884c\u4eba \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002","title":"\u53c2\u4e0e\u8005 \u63a7\u5236"},{"location":"scenario_runner/metrics_module/#_10","text":"get _ actor _ transform ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u53d8\u6362 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Transform Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ all _ actor _ transforms ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u53d8\u6362 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Transform ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ transforms _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Transform \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c actor _ list \u901a\u8fc7 \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Transform ) Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002","title":"\u53c2\u4e0e\u8005 \u53d8\u6362"},{"location":"scenario_runner/metrics_module/#_11","text":"get _ actor _ velocity ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u901f\u5ea6 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Vector3D Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ all _ actor _ velocities ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u901f\u5ea6 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ velocities _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Vector3D \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c \u4f20\u9012 \u4e86 actor _ list \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Vector3D Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002","title":"\u53c2\u4e0e\u8005 \u901f\u5ea6"},{"location":"scenario_runner/metrics_module/#_12","text":"get _ scene _ light _ state ( self , light , vehicle _ id , frame ) Returns the state of a scene light for a given frame . The light state group will always be carla . LightGroup . None . Return \u2014 carla . LightState Parameters light _ id ( int ) \u2014 \u573a\u666f \u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002","title":"\u573a\u666f \u706f"},{"location":"scenario_runner/metrics_module/#_13","text":"get _ traffic _ light _ state ( self , traffic _ light _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3002 Return \u2014 carla . TrafficLightState . Parameters traffic _ light _ id ( int ) \u2014 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 is _ traffic _ light _ frozen ( self , traffic _ light _ id , frame ) \u8fd4\u56de \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u662f\u5426 \u51bb\u7ed3 \u5728 \u7ed9\u5b9a \u5e27 \u3002 Return \u2014 bool Parameters traffic _ light _ id ( int ) \u2014 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ traffic _ light _ elapsed _ time ( self , traffic _ light _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ecf\u8fc7 \u65f6\u95f4 \u3002 Return \u2014 float Parameters traffic _ light _ id ( int ) \u2014 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ traffic _ light _ state _ time ( self , traffic _ light _ id , state , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u4ea4\u901a \u4ea4\u901a\u706f \u7279\u5b9a \u72b6\u6001 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 Return \u2014 float Parameters traffic _ light _ id ( int ) \u2014 id of the traffic light . state ( carla . TrafficLightState ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002","title":"\u7ea2\u7eff\u706f"},{"location":"scenario_runner/metrics_module/#_14","text":"get _ vehicle _ lights ( self , vehicle _ id , frame ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u7ed9\u5b9a \u5e27 \u5904 \u7279\u5b9a \u8f66\u8f86 \u7684 \u6d3b\u52a8 \u706f \u3002 Return \u2014 list ( carla . VehicleLightState ) Parameters vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 is _ vehicle _ light _ active ( self , light , vehicle _ id , frame ) \u68c0\u67e5 \u7ed9\u5b9a \u8f66\u8f86 \u706f \u5728 \u7279\u5b9a \u5e27 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u3002 Return \u2014 bool Parameters light ( carla . VehicleLightState ) \u2014 \u4e0e \u8f66\u8f86 \u8fdb\u884c \u6bd4\u8f83 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002","title":"\u8f66\u706f"},{"location":"scenario_runner/openscenario_support/","text":"OpenSCENARIO \u652f\u6301 scenario _ runner \u63d0\u4f9b \u5bf9 OpenSCENARIO \u6807\u51c6 \u7684 \u652f\u6301 \u3002 \u5f53\u524d \u7684 \u5b9e\u73b0 \u6db5\u76d6 \u4e86 \u5bf9 \u673a\u52a8 \u52a8\u4f5c \u3001 \u6761\u4ef6 \u3001 \u6545\u4e8b \u548c \u6545\u4e8b \u677f \u7684 \u521d\u6b65 \u652f\u6301 \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u573a\u666f \u7684 \u8bc4\u4f30 \u6807\u51c6 \u6765 \u8bc4\u4f30 \u901a\u8fc7 / \u5931\u8d25 \u7ed3\u679c \uff0c \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b \u6807\u51c6 \u5b9e\u73b0 \u4e3a StopTriggers \uff08 \u4e0b\u6587 \u89c1\u4e0b\u6587 \uff09 \u3002 \u7136\u800c \uff0c \u5e76\u975e \u8fd9\u4e9b \u5143\u7d20 \u7684 \u6240\u6709 \u529f\u80fd \u5747 \u53ef\u7528 \u3002 \u5982\u679c \u6709 \u7591\u95ee \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 srunner / tools / openscenario _ parser . py \u4e2d \u7684 \u6a21\u5757 \u6587\u6863 \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u57fa\u4e8e OpenSCENARIO \u7684 \u53d7 \u652f\u6301 \u573a\u666f \u7684 \u793a\u4f8b \u3002 \u6b64\u5916 \uff0c \u5efa\u8bae \u67e5\u770b \u6b64\u5904 \u548c \u6b64\u5904 and here \u63d0\u4f9b \u7684 \u5b98\u65b9 \u6587\u6863 \u3002 \u5c06 OpenSCENARIO 0.9 . x \u8fc1\u79fb \u5230 1.0 \u5c06 \u65e7 \u7684 OpenSCENARIO \u793a\u4f8b \u8f6c\u6362 \u4e3a \u5b98\u65b9 \u6807\u51c6 1.0 \u7684 \u6700 \u7b80\u5355 \u65b9\u6cd5 \u662f \u4f7f\u7528 xsltproc \u548c \u4f4d\u4e8e openscenario \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u7684 \u8fc1\u79fb \u65b9\u6848 \u3002 \u4f8b\u5b50 \uff1a xsltproc - o newScenario . xosc migration0 _ 9 _ 1to1 _ 0 . xslt oldScenario . xosc \u652f\u6301 \u7a0b\u5ea6 \u4e0b\u9762 \u5217\u51fa \u4e86 OpenSCENARIO \u5c5e\u6027 \u53ca\u5176 \u5f53\u524d \u652f\u6301 \u72b6\u6001 \u3002 \u5e38\u89c4 \u7684 OpenSCENARIO \u8bbe\u7f6e \u8fd9 \u6db5\u76d6 \u4e86 OpenSCENARIO Storyboard \u5916\u90e8 \u5b9a\u4e49 \u7684 \u6240\u6709 \u90e8\u5206 \u5c5e\u6027 \u652f\u6301 \u7b14\u8bb0 FileHeader \u2705 \u5728 \u63cf\u8ff0 \u7684 \u5f00\u5934 \u4f7f\u7528 \u201c CARLA : \u201d \u5373\u53ef \u4f7f\u7528 CARLA \u5750\u6807 \u5750\u6807\u7cfb \u3002 CatalogLocations ControllerCatalog \u2705 \u867d\u7136 \u652f\u6301 \u76ee\u5f55 \uff0c \u4f46 \u53c2\u8003 / \u4f7f\u7528 \u53ef\u80fd \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 CatalogLocations EnvironmentCatalog \u2705 CatalogLocations ManeuverCatalog \u2705 CatalogLocations MiscObjectCatalog \u2705 CatalogLocations PedestrianCatalog \u2705 CatalogLocations RouteCatalog \u2705 \u867d\u7136 \u652f\u6301 \u76ee\u5f55 \uff0c \u4f46 \u53c2\u8003 / \u4f7f\u7528 \u53ef\u80fd \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 CatalogLocations TrajectoryCatalog \u2705 \u867d\u7136 \u652f\u6301 \u76ee\u5f55 \uff0c \u4f46 \u53c2\u8003 / \u4f7f\u7528 \u53ef\u80fd \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 CatalogLocations VehicleCatalog \u2705 ParameterDeclarations \u2705 RoadNetwork LogicFile \u2705 \u53ef\u4ee5 \u76f4\u63a5 \u4f7f\u7528 CARLA \u7ea7\u522b \uff08 \u4f8b\u5982 LogicFile = Town01 \uff09 \u3002 \u8fd8 \u53ef\u4ee5 \u63d0\u4f9b \u4efb\u4f55 OpenDRIVE \u8def\u5f84 \u3002 RoadNetwork SceneGraphFile \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 RoadNetwork TafficSignals \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities EntitySelection \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities ScenarioObject CatalogReference \u2705 \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities ScenarioObject MiscObject \u2705 \u8be5 \u540d\u79f0 \u5e94 \u4e0e CARLA \u8f66\u8f86 \u578b\u53f7 \u5339\u914d \uff0c \u5426\u5219 \u5c06 \u4f7f\u7528 \u57fa\u4e8e vehicleCategory \u7684 \u9ed8\u8ba4 \u8f66\u8f86 \u3002 BoundingBox \u6761\u76ee \u5c06 \u88ab \u5ffd\u7565 \u3002 Entities ScenarioObject ObjectController \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities ScenarioObject Pedestrian \u2705 \u8be5 \u540d\u79f0 \u5e94 \u4e0e CARLA \u8f66\u8f86 \u578b\u53f7 \u5339\u914d \uff0c \u5426\u5219 \u5c06 \u4f7f\u7528 \u57fa\u4e8e vehicleCategory \u7684 \u9ed8\u8ba4 \u8f66\u8f86 \u3002 BoundingBox \u6761\u76ee \u5c06 \u88ab \u5ffd\u7565 \u3002 Entities ScenarioObject Vehicle \u2705 \u8be5 \u540d\u79f0 \u5e94 \u4e0e CARLA \u8f66\u8f86 \u578b\u53f7 \u5339\u914d \uff0c \u5426\u5219 \u5c06 \u4f7f\u7528 \u57fa\u4e8e vehicleCategory \u7684 \u9ed8\u8ba4 \u8f66\u8f86 \u3002 \u989c\u8272 \u53ef\u4ee5 \u901a\u8fc7 \u5c5e\u6027 \u8bbe\u7f6e \uff08 ' \u5c5e\u6027 \u540d\u79f0 = \u201c \u989c\u8272 \u201d \u503c = \u201c 0 , 0 , 255 \u201d ' \uff09 \u3002 Axles \u3001 Performance \u3001 BoundingBox \u6761\u76ee \u5c06 \u88ab \u5ffd\u7565 \u3002 OpenSCENARIO \u6545\u4e8b \u677f OpenSCENARIO \u64cd\u4f5c OpenSCENARIO \u64cd\u4f5c \u53ef \u7528\u4e8e \u4e24\u4e2a \u4e0d\u540c \u7684 \u76ee\u7684 \u3002 \u9996\u5148 \uff0c \u52a8\u4f5c \u53ef \u7528\u4e8e \u5b9a\u4e49 \u67d0\u4e9b \u4e8b\u7269 \uff08 \u4f8b\u5982 \u4ea4\u901a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u7684 \u521d\u59cb \u884c\u4e3a \u3002 \u56e0\u6b64 \uff0c Actions \u53ef\u4ee5 \u5728 OpenSCENARIO Init \u4e2d \u4f7f\u7528 \u3002 \u6b64\u5916 \uff0c OpenSCENARIO \u6545\u4e8b \u4e2d \u4e5f \u4f7f\u7528 \u4e86 \u52a8\u4f5c \u3002 \u4e0b\u9762 \u5217\u51fa \u4e86 \u8fd9 \u4e24\u4e2a \u5e94\u7528 \u9886\u57df \u5e94\u7528\u9886\u57df \u7684 \u652f\u6301 \u72b6\u6001 \u3002 \u5982\u679c \u64cd\u4f5c \u5305\u542b \u672a \u5217\u51fa \u7684 \u5b50 \u6a21\u5757 \uff0c \u5219 \u652f\u6301 \u72b6\u6001 \u9002\u7528 \u4e8e \u6240\u6709 \u5b50 \u6a21\u5757 \u3002 GlobalAction GlobalAction \u521d\u59cb \u521d\u59cb\u5316 \u652f\u6301 Story support \u7b14\u8bb0 EntityAction \u2705 \u2705 EnvironmentAction \u2705 \u274c ParameterAction \u2705 \u2705 InfrastructureAction TrafficSignalAction TrafficAction \u274c \u274c InfrastructureAction TrafficSignalAction TrafficSignalControllerAction \u274c \u2705 InfrastructureAction TrafficSignalAction TrafficSignalStateAction \u274c \u2705 \u7531\u4e8e CARLA \u57ce\u9547 \u4e2d \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6ca1\u6709 \u552f\u4e00 ID \uff0c \u56e0\u6b64 \u5fc5\u987b \u901a\u8fc7 \u63d0\u4f9b \u5176 \u4f4d\u7f6e \u6765 \u8bbe\u7f6e \u5b83\u4eec \uff08 \u793a\u4f8b \uff1a TrafficSignalStateAction name = \" pos = x , y \" state = \" green \" \uff09 \u3002 \u8be5 ID \u4e5f \u53ef \u7528\u4e8e \u975e CARLA \u57ce\u9547 \uff08 \u793a\u4f8b \uff1a TrafficSignalStateAction name = \" id = n \" state = \" green \" \uff09 \u7528\u6237 \u5b9a\u4e49 \u7684 \u52a8\u4f5c \u7528\u6237 \u5b9a\u4e49 \u7684 \u52a8\u4f5c \u521d\u59cb \u521d\u59cb\u5316 \u652f\u6301 Story support \u7b14\u8bb0 CustomCommandAction \u274c \u2705 \u6b64 \u64cd\u4f5c \u5f53\u524d \u7528\u4e8e \u89e6\u53d1 \u9644\u52a0 \u811a\u672c \u7684 \u6267\u884c \u3002 \u793a\u4f8b \uff1a type = \" python / path / to / script args \" \u3002 PrivateAction PrivateAction \u521d\u59cb \u521d\u59cb\u5316 \u652f\u6301 Story support \u7b14\u8bb0 ActivateControllerAction \u274c \u2705 \u53ef \u7528\u4e8e \u6fc0\u6d3b / \u505c\u7528 CARLA \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u3002 ControllerAction \u2705 \u2705 \u652f\u6301 AssignControllerAction \uff0c \u4f46 \u5fc5\u987b \u4e3a \u63a7\u5236 \u63a7\u5236\u5668 \u5b9e\u73b0 \u63d0\u4f9b Python \u6a21\u5757 \uff0c \u5e76\u4e14 \u5728 OverrideControllerValueAction \u4e2d \u6240\u6709 \u503c \u90fd \u9700\u8981 \u4e3a False \u3002 LateralAction LaneChangeAction \u274c \u2705 \u76ee\u524d \u6240\u6709 \u8f66\u9053 \u53d8\u5316 \u90fd \u6709 \u4e00\u4e2a \u7ebf\u6027 \u7684 dynamicShape \uff0c dynamicDimension \u88ab \u5b9a\u4e49 \u4e3a \u8ddd\u79bb \u5e76\u4e14 \u76f8\u5bf9 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u672c\u8eab \uff08 RelativeTargetLane \uff09 \u3002 LateralAction LaneOffsetAction \u274c \u2705 \u76ee\u524d \uff0c \u6240\u6709 \u7c7b\u578b \u7684 \u52a8\u6001 \u5f62\u72b6 \u90fd \u88ab \u5ffd\u7565 \u5e76 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u5982\u679c \u504f\u79fb \u504f\u79fb\u91cf \u8db3\u591f \u9ad8\u4ee5 \u4f7f \u8f66\u8f86 \u9000\u51fa \u8f66\u9053 \uff0c \u5219 \u6b64 \u64cd\u4f5c \u53ef\u80fd \u65e0\u6cd5 \u6309 \u9884\u671f \u5de5\u4f5c \u3002 LateralAction LateralDistanceAction \u2705 \u2705 LongitudinalAction LongitudinalDistanceAction \u274c \u2705 \u4e0d \u652f\u6301 timeGap \u5c5e\u6027 LongitudinalAction SpeedAction \u2705 \u2705 SynchronizeAction \u274c \u274c TeleportAction \u2705 \u2705 VisibilityAction \u274c \u274c RoutingAction AcquirePositionAction \u274c \u2705 RoutingAction AssignRouteAction \u274c \u2705 \u652f\u6301 \u8def\u7ebf \u9009\u9879 \uff08 \u6700\u77ed / \u6700\u5feb / \u7b49 \uff09 \u3002 \u6700\u77ed \u8def\u5f84 \u8868\u793a A \u548c B \u4e4b\u95f4 \u7684 \u76f4\u63a5 \u8def\u5f84 \uff0c \u5176\u4ed6 \u6240\u6709 \u8def\u5f84 \u5c06 \u4f7f\u7528 A \u548c B \u4e4b\u95f4 \u7684 \u8def\u7f51 \u4e2d \u7684 \u6700 \u77ed \u8def\u5f84 \u3002 RoutingAction FollowTrajectoryAction \u274c \u2705 \u76ee\u524d \u4ec5 \u652f\u6301 \u6ca1\u6709 \u65f6\u95f4 \u7ea6\u675f \u7684 \u6298\u7ebf \uff0c \u8f68\u8ff9 \u8ddf\u968f \u6a21\u5f0f \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u51b3\u5b9a \u3002 OpenSCENARIO \u6761\u4ef6 OpenSCENARIO \u4e2d \u7684 \u6761\u4ef6 \u53ef\u4ee5 \u5b9a\u4e49 \u4e3a ByEntityCondition \u6216 ByValueCondition \u3002 \u4e24\u8005 \u5747 \u53ef \u7528\u4e8e StartTrigger \u548c StopTrigger \u6761\u4ef6 \u3002 \u4ee5\u4e0b \u4e24\u4e2a \u8868\u5217 \u5217\u51fa \u8868\u5217\u51fa \u4e86 \u6bcf\u4e2a \u8868 \u7684 \u652f\u6301 \u72b6\u6001 \u3002 ByEntityCondition EntityCondition \u652f\u6301 \u7b14\u8bb0 AccelerationCondition \u2705 CollisionCondition \u2705 DistanceCondition \u2705 * freespace * \u5c5e\u6027 \u4ecd\u7136 \u4e0d \u53d7 \u652f\u6301 EndOfRoadCondition \u2705 OffroadCondition \u2705 ReachPositionCondition \u2705 RelativeDistanceCondition \u2705 RelativeSpeedCondition \u2705 SpeedCondition \u2705 StandStillCondition \u2705 TimeHeadwayCondition \u2705 TimeToCollisionCondition \u2705 TraveledDistanceCondition \u2705 ByValueCondition ValueCondition \u652f\u6301 \u7b14\u8bb0 ParameterCondition \u2705 \u652f\u6301 \u7ea7\u522b \u53d6\u51b3 \u53d6\u51b3\u4e8e \u53c2\u6570 \u3002 \u5982\u679c \u53ef\u80fd \u7684\u8bdd \uff0c \u5efa\u8bae \u4f7f\u7528 \u5176\u4ed6 \u6761\u4ef6 \u3002 \u53e6 \u8bf7 \u8003\u8651 \u4e0b\u9762 \u7684 \u6ce8\u91ca \u3002 SimulationTimeCondition \u2705 StoryboardElementStateCondition \u2705 \u76ee\u524d \u652f\u6301 startTransition \u3001 stopTransition \u3001 endTransition \u548c completeState \u3002 TimeOfDayCondition \u2705 TrafficSignalCondition \u2705 \u7531\u4e8e CARLA \u57ce\u9547 \u4e2d \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6ca1\u6709 \u552f\u4e00 ID \uff0c \u56e0\u6b64 \u5fc5\u987b \u901a\u8fc7 \u63d0\u4f9b \u5176 \u4f4d\u7f6e \u6765 \u8bbe\u7f6e \u5b83\u4eec \uff08 \u793a\u4f8b \uff1a TrafficSignalCondition name = \" pos = x , y \" state = \" green \" \uff09 \u3002 \u8be5 ID \u4e5f \u53ef \u7528\u4e8e \u975e CARLA \u57ce\u9547 \uff08 \u793a\u4f8b \uff1a TrafficSignalCondition name = \" id = n \" state = \" green \" \uff09 TrafficSignalControllerCondition \u2705 UserDefinedValueCondition \u274c \u6ce8\u610f \u5728 OpenSCENARIO 1.0 \u6807\u51c6 \u4e2d \uff0c \u6ca1\u6709 \u5b9a\u4e49 \u6d4b\u8bd5 / \u8bc4\u4f30 \u6807\u51c6 \u7684 \u5b9a\u4e49 \u3002 \u4e3a\u6b64 \uff0c \u60a8 \u53ef\u4ee5 \u5c06 StopTrigger \u6761\u4ef6 \u4e0e CARLA \u91cd\u590d \u4f7f\u7528 \u91cd\u590d\u4f7f\u7528 \u3002 \u901a\u8fc7 \u63d0\u4f9b \u6761\u4ef6 \u7684 \u6761\u4ef6 \u540d\u79f0 \uff0c \u901a\u8fc7 ParameterConditions \u652f\u6301 \u8bc4\u4f30 \u6761\u4ef6 \u7684 \u4ee5\u4e0b StopTrigger \u6761\u4ef6 \uff1a criteria _ RunningStopTest criteria _ RunningRedLightTest criteria _ WrongLaneTest criteria _ OnSideWalkTest criteria _ KeepLaneTest criteria _ CollisionTest criteria _ DrivenDistanceTest OpenSCENARIO Positions \u5728 OpenSCENARIO \u4e2d \u5b9a\u4e49 \u4f4d\u7f6e \u7684 \u65b9\u6cd5 \u6709 \u591a\u79cd \u3002 \u4e0b\u9762 \u6211\u4eec \u5217\u51fa \u4e86 \u6bcf\u79cd \u5b9a\u4e49 \u683c\u5f0f \u7684 \u5f53\u524d \u652f\u6301 \u72b6\u6001 \u3002 \u4f4d\u7f6e \u652f\u6301 \u7b14\u8bb0 LanePosition \u2705 RelativeLanePosition \u2705 RelativeObjectPosition \u2705 RelativeRoadPosition \u2705 RelativeWorldPosition \u2705 RoadPosition \u2705 RoutePosition \u274c WorldPosition \u2705","title":"Openscenario support"},{"location":"scenario_runner/openscenario_support/#openscenario","text":"scenario _ runner \u63d0\u4f9b \u5bf9 OpenSCENARIO \u6807\u51c6 \u7684 \u652f\u6301 \u3002 \u5f53\u524d \u7684 \u5b9e\u73b0 \u6db5\u76d6 \u4e86 \u5bf9 \u673a\u52a8 \u52a8\u4f5c \u3001 \u6761\u4ef6 \u3001 \u6545\u4e8b \u548c \u6545\u4e8b \u677f \u7684 \u521d\u6b65 \u652f\u6301 \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u573a\u666f \u7684 \u8bc4\u4f30 \u6807\u51c6 \u6765 \u8bc4\u4f30 \u901a\u8fc7 / \u5931\u8d25 \u7ed3\u679c \uff0c \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b \u6807\u51c6 \u5b9e\u73b0 \u4e3a StopTriggers \uff08 \u4e0b\u6587 \u89c1\u4e0b\u6587 \uff09 \u3002 \u7136\u800c \uff0c \u5e76\u975e \u8fd9\u4e9b \u5143\u7d20 \u7684 \u6240\u6709 \u529f\u80fd \u5747 \u53ef\u7528 \u3002 \u5982\u679c \u6709 \u7591\u95ee \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 srunner / tools / openscenario _ parser . py \u4e2d \u7684 \u6a21\u5757 \u6587\u6863 \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u57fa\u4e8e OpenSCENARIO \u7684 \u53d7 \u652f\u6301 \u573a\u666f \u7684 \u793a\u4f8b \u3002 \u6b64\u5916 \uff0c \u5efa\u8bae \u67e5\u770b \u6b64\u5904 \u548c \u6b64\u5904 and here \u63d0\u4f9b \u7684 \u5b98\u65b9 \u6587\u6863 \u3002","title":"OpenSCENARIO \u652f\u6301"},{"location":"scenario_runner/openscenario_support/#openscenario-09x-10","text":"\u5c06 \u65e7 \u7684 OpenSCENARIO \u793a\u4f8b \u8f6c\u6362 \u4e3a \u5b98\u65b9 \u6807\u51c6 1.0 \u7684 \u6700 \u7b80\u5355 \u65b9\u6cd5 \u662f \u4f7f\u7528 xsltproc \u548c \u4f4d\u4e8e openscenario \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u7684 \u8fc1\u79fb \u65b9\u6848 \u3002 \u4f8b\u5b50 \uff1a xsltproc - o newScenario . xosc migration0 _ 9 _ 1to1 _ 0 . xslt oldScenario . xosc","title":"\u5c06 OpenSCENARIO 0.9 . x \u8fc1\u79fb \u5230 1.0"},{"location":"scenario_runner/openscenario_support/#_1","text":"\u4e0b\u9762 \u5217\u51fa \u4e86 OpenSCENARIO \u5c5e\u6027 \u53ca\u5176 \u5f53\u524d \u652f\u6301 \u72b6\u6001 \u3002","title":"\u652f\u6301 \u7a0b\u5ea6"},{"location":"scenario_runner/openscenario_support/#openscenario_1","text":"\u8fd9 \u6db5\u76d6 \u4e86 OpenSCENARIO Storyboard \u5916\u90e8 \u5b9a\u4e49 \u7684 \u6240\u6709 \u90e8\u5206 \u5c5e\u6027 \u652f\u6301 \u7b14\u8bb0 FileHeader \u2705 \u5728 \u63cf\u8ff0 \u7684 \u5f00\u5934 \u4f7f\u7528 \u201c CARLA : \u201d \u5373\u53ef \u4f7f\u7528 CARLA \u5750\u6807 \u5750\u6807\u7cfb \u3002 CatalogLocations ControllerCatalog \u2705 \u867d\u7136 \u652f\u6301 \u76ee\u5f55 \uff0c \u4f46 \u53c2\u8003 / \u4f7f\u7528 \u53ef\u80fd \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 CatalogLocations EnvironmentCatalog \u2705 CatalogLocations ManeuverCatalog \u2705 CatalogLocations MiscObjectCatalog \u2705 CatalogLocations PedestrianCatalog \u2705 CatalogLocations RouteCatalog \u2705 \u867d\u7136 \u652f\u6301 \u76ee\u5f55 \uff0c \u4f46 \u53c2\u8003 / \u4f7f\u7528 \u53ef\u80fd \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 CatalogLocations TrajectoryCatalog \u2705 \u867d\u7136 \u652f\u6301 \u76ee\u5f55 \uff0c \u4f46 \u53c2\u8003 / \u4f7f\u7528 \u53ef\u80fd \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 CatalogLocations VehicleCatalog \u2705 ParameterDeclarations \u2705 RoadNetwork LogicFile \u2705 \u53ef\u4ee5 \u76f4\u63a5 \u4f7f\u7528 CARLA \u7ea7\u522b \uff08 \u4f8b\u5982 LogicFile = Town01 \uff09 \u3002 \u8fd8 \u53ef\u4ee5 \u63d0\u4f9b \u4efb\u4f55 OpenDRIVE \u8def\u5f84 \u3002 RoadNetwork SceneGraphFile \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 RoadNetwork TafficSignals \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities EntitySelection \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities ScenarioObject CatalogReference \u2705 \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities ScenarioObject MiscObject \u2705 \u8be5 \u540d\u79f0 \u5e94 \u4e0e CARLA \u8f66\u8f86 \u578b\u53f7 \u5339\u914d \uff0c \u5426\u5219 \u5c06 \u4f7f\u7528 \u57fa\u4e8e vehicleCategory \u7684 \u9ed8\u8ba4 \u8f66\u8f86 \u3002 BoundingBox \u6761\u76ee \u5c06 \u88ab \u5ffd\u7565 \u3002 Entities ScenarioObject ObjectController \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities ScenarioObject Pedestrian \u2705 \u8be5 \u540d\u79f0 \u5e94 \u4e0e CARLA \u8f66\u8f86 \u578b\u53f7 \u5339\u914d \uff0c \u5426\u5219 \u5c06 \u4f7f\u7528 \u57fa\u4e8e vehicleCategory \u7684 \u9ed8\u8ba4 \u8f66\u8f86 \u3002 BoundingBox \u6761\u76ee \u5c06 \u88ab \u5ffd\u7565 \u3002 Entities ScenarioObject Vehicle \u2705 \u8be5 \u540d\u79f0 \u5e94 \u4e0e CARLA \u8f66\u8f86 \u578b\u53f7 \u5339\u914d \uff0c \u5426\u5219 \u5c06 \u4f7f\u7528 \u57fa\u4e8e vehicleCategory \u7684 \u9ed8\u8ba4 \u8f66\u8f86 \u3002 \u989c\u8272 \u53ef\u4ee5 \u901a\u8fc7 \u5c5e\u6027 \u8bbe\u7f6e \uff08 ' \u5c5e\u6027 \u540d\u79f0 = \u201c \u989c\u8272 \u201d \u503c = \u201c 0 , 0 , 255 \u201d ' \uff09 \u3002 Axles \u3001 Performance \u3001 BoundingBox \u6761\u76ee \u5c06 \u88ab \u5ffd\u7565 \u3002","title":"\u5e38\u89c4 \u7684 OpenSCENARIO \u8bbe\u7f6e"},{"location":"scenario_runner/openscenario_support/#openscenario_2","text":"","title":"OpenSCENARIO \u6545\u4e8b \u677f"},{"location":"scenario_runner/openscenario_support/#openscenario_3","text":"OpenSCENARIO \u64cd\u4f5c \u53ef \u7528\u4e8e \u4e24\u4e2a \u4e0d\u540c \u7684 \u76ee\u7684 \u3002 \u9996\u5148 \uff0c \u52a8\u4f5c \u53ef \u7528\u4e8e \u5b9a\u4e49 \u67d0\u4e9b \u4e8b\u7269 \uff08 \u4f8b\u5982 \u4ea4\u901a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u7684 \u521d\u59cb \u884c\u4e3a \u3002 \u56e0\u6b64 \uff0c Actions \u53ef\u4ee5 \u5728 OpenSCENARIO Init \u4e2d \u4f7f\u7528 \u3002 \u6b64\u5916 \uff0c OpenSCENARIO \u6545\u4e8b \u4e2d \u4e5f \u4f7f\u7528 \u4e86 \u52a8\u4f5c \u3002 \u4e0b\u9762 \u5217\u51fa \u4e86 \u8fd9 \u4e24\u4e2a \u5e94\u7528 \u9886\u57df \u5e94\u7528\u9886\u57df \u7684 \u652f\u6301 \u72b6\u6001 \u3002 \u5982\u679c \u64cd\u4f5c \u5305\u542b \u672a \u5217\u51fa \u7684 \u5b50 \u6a21\u5757 \uff0c \u5219 \u652f\u6301 \u72b6\u6001 \u9002\u7528 \u4e8e \u6240\u6709 \u5b50 \u6a21\u5757 \u3002","title":"OpenSCENARIO \u64cd\u4f5c"},{"location":"scenario_runner/openscenario_support/#globalaction","text":"GlobalAction \u521d\u59cb \u521d\u59cb\u5316 \u652f\u6301 Story support \u7b14\u8bb0 EntityAction \u2705 \u2705 EnvironmentAction \u2705 \u274c ParameterAction \u2705 \u2705 InfrastructureAction TrafficSignalAction TrafficAction \u274c \u274c InfrastructureAction TrafficSignalAction TrafficSignalControllerAction \u274c \u2705 InfrastructureAction TrafficSignalAction TrafficSignalStateAction \u274c \u2705 \u7531\u4e8e CARLA \u57ce\u9547 \u4e2d \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6ca1\u6709 \u552f\u4e00 ID \uff0c \u56e0\u6b64 \u5fc5\u987b \u901a\u8fc7 \u63d0\u4f9b \u5176 \u4f4d\u7f6e \u6765 \u8bbe\u7f6e \u5b83\u4eec \uff08 \u793a\u4f8b \uff1a TrafficSignalStateAction name = \" pos = x , y \" state = \" green \" \uff09 \u3002 \u8be5 ID \u4e5f \u53ef \u7528\u4e8e \u975e CARLA \u57ce\u9547 \uff08 \u793a\u4f8b \uff1a TrafficSignalStateAction name = \" id = n \" state = \" green \" \uff09","title":"GlobalAction"},{"location":"scenario_runner/openscenario_support/#_2","text":"\u7528\u6237 \u5b9a\u4e49 \u7684 \u52a8\u4f5c \u521d\u59cb \u521d\u59cb\u5316 \u652f\u6301 Story support \u7b14\u8bb0 CustomCommandAction \u274c \u2705 \u6b64 \u64cd\u4f5c \u5f53\u524d \u7528\u4e8e \u89e6\u53d1 \u9644\u52a0 \u811a\u672c \u7684 \u6267\u884c \u3002 \u793a\u4f8b \uff1a type = \" python / path / to / script args \" \u3002","title":"\u7528\u6237 \u5b9a\u4e49 \u7684 \u52a8\u4f5c"},{"location":"scenario_runner/openscenario_support/#privateaction","text":"PrivateAction \u521d\u59cb \u521d\u59cb\u5316 \u652f\u6301 Story support \u7b14\u8bb0 ActivateControllerAction \u274c \u2705 \u53ef \u7528\u4e8e \u6fc0\u6d3b / \u505c\u7528 CARLA \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u3002 ControllerAction \u2705 \u2705 \u652f\u6301 AssignControllerAction \uff0c \u4f46 \u5fc5\u987b \u4e3a \u63a7\u5236 \u63a7\u5236\u5668 \u5b9e\u73b0 \u63d0\u4f9b Python \u6a21\u5757 \uff0c \u5e76\u4e14 \u5728 OverrideControllerValueAction \u4e2d \u6240\u6709 \u503c \u90fd \u9700\u8981 \u4e3a False \u3002 LateralAction LaneChangeAction \u274c \u2705 \u76ee\u524d \u6240\u6709 \u8f66\u9053 \u53d8\u5316 \u90fd \u6709 \u4e00\u4e2a \u7ebf\u6027 \u7684 dynamicShape \uff0c dynamicDimension \u88ab \u5b9a\u4e49 \u4e3a \u8ddd\u79bb \u5e76\u4e14 \u76f8\u5bf9 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u672c\u8eab \uff08 RelativeTargetLane \uff09 \u3002 LateralAction LaneOffsetAction \u274c \u2705 \u76ee\u524d \uff0c \u6240\u6709 \u7c7b\u578b \u7684 \u52a8\u6001 \u5f62\u72b6 \u90fd \u88ab \u5ffd\u7565 \u5e76 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u5982\u679c \u504f\u79fb \u504f\u79fb\u91cf \u8db3\u591f \u9ad8\u4ee5 \u4f7f \u8f66\u8f86 \u9000\u51fa \u8f66\u9053 \uff0c \u5219 \u6b64 \u64cd\u4f5c \u53ef\u80fd \u65e0\u6cd5 \u6309 \u9884\u671f \u5de5\u4f5c \u3002 LateralAction LateralDistanceAction \u2705 \u2705 LongitudinalAction LongitudinalDistanceAction \u274c \u2705 \u4e0d \u652f\u6301 timeGap \u5c5e\u6027 LongitudinalAction SpeedAction \u2705 \u2705 SynchronizeAction \u274c \u274c TeleportAction \u2705 \u2705 VisibilityAction \u274c \u274c RoutingAction AcquirePositionAction \u274c \u2705 RoutingAction AssignRouteAction \u274c \u2705 \u652f\u6301 \u8def\u7ebf \u9009\u9879 \uff08 \u6700\u77ed / \u6700\u5feb / \u7b49 \uff09 \u3002 \u6700\u77ed \u8def\u5f84 \u8868\u793a A \u548c B \u4e4b\u95f4 \u7684 \u76f4\u63a5 \u8def\u5f84 \uff0c \u5176\u4ed6 \u6240\u6709 \u8def\u5f84 \u5c06 \u4f7f\u7528 A \u548c B \u4e4b\u95f4 \u7684 \u8def\u7f51 \u4e2d \u7684 \u6700 \u77ed \u8def\u5f84 \u3002 RoutingAction FollowTrajectoryAction \u274c \u2705 \u76ee\u524d \u4ec5 \u652f\u6301 \u6ca1\u6709 \u65f6\u95f4 \u7ea6\u675f \u7684 \u6298\u7ebf \uff0c \u8f68\u8ff9 \u8ddf\u968f \u6a21\u5f0f \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u51b3\u5b9a \u3002","title":"PrivateAction"},{"location":"scenario_runner/openscenario_support/#openscenario_4","text":"OpenSCENARIO \u4e2d \u7684 \u6761\u4ef6 \u53ef\u4ee5 \u5b9a\u4e49 \u4e3a ByEntityCondition \u6216 ByValueCondition \u3002 \u4e24\u8005 \u5747 \u53ef \u7528\u4e8e StartTrigger \u548c StopTrigger \u6761\u4ef6 \u3002 \u4ee5\u4e0b \u4e24\u4e2a \u8868\u5217 \u5217\u51fa \u8868\u5217\u51fa \u4e86 \u6bcf\u4e2a \u8868 \u7684 \u652f\u6301 \u72b6\u6001 \u3002","title":"OpenSCENARIO \u6761\u4ef6"},{"location":"scenario_runner/openscenario_support/#byentitycondition","text":"EntityCondition \u652f\u6301 \u7b14\u8bb0 AccelerationCondition \u2705 CollisionCondition \u2705 DistanceCondition \u2705 * freespace * \u5c5e\u6027 \u4ecd\u7136 \u4e0d \u53d7 \u652f\u6301 EndOfRoadCondition \u2705 OffroadCondition \u2705 ReachPositionCondition \u2705 RelativeDistanceCondition \u2705 RelativeSpeedCondition \u2705 SpeedCondition \u2705 StandStillCondition \u2705 TimeHeadwayCondition \u2705 TimeToCollisionCondition \u2705 TraveledDistanceCondition \u2705","title":"ByEntityCondition"},{"location":"scenario_runner/openscenario_support/#byvaluecondition","text":"ValueCondition \u652f\u6301 \u7b14\u8bb0 ParameterCondition \u2705 \u652f\u6301 \u7ea7\u522b \u53d6\u51b3 \u53d6\u51b3\u4e8e \u53c2\u6570 \u3002 \u5982\u679c \u53ef\u80fd \u7684\u8bdd \uff0c \u5efa\u8bae \u4f7f\u7528 \u5176\u4ed6 \u6761\u4ef6 \u3002 \u53e6 \u8bf7 \u8003\u8651 \u4e0b\u9762 \u7684 \u6ce8\u91ca \u3002 SimulationTimeCondition \u2705 StoryboardElementStateCondition \u2705 \u76ee\u524d \u652f\u6301 startTransition \u3001 stopTransition \u3001 endTransition \u548c completeState \u3002 TimeOfDayCondition \u2705 TrafficSignalCondition \u2705 \u7531\u4e8e CARLA \u57ce\u9547 \u4e2d \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6ca1\u6709 \u552f\u4e00 ID \uff0c \u56e0\u6b64 \u5fc5\u987b \u901a\u8fc7 \u63d0\u4f9b \u5176 \u4f4d\u7f6e \u6765 \u8bbe\u7f6e \u5b83\u4eec \uff08 \u793a\u4f8b \uff1a TrafficSignalCondition name = \" pos = x , y \" state = \" green \" \uff09 \u3002 \u8be5 ID \u4e5f \u53ef \u7528\u4e8e \u975e CARLA \u57ce\u9547 \uff08 \u793a\u4f8b \uff1a TrafficSignalCondition name = \" id = n \" state = \" green \" \uff09 TrafficSignalControllerCondition \u2705 UserDefinedValueCondition \u274c \u6ce8\u610f \u5728 OpenSCENARIO 1.0 \u6807\u51c6 \u4e2d \uff0c \u6ca1\u6709 \u5b9a\u4e49 \u6d4b\u8bd5 / \u8bc4\u4f30 \u6807\u51c6 \u7684 \u5b9a\u4e49 \u3002 \u4e3a\u6b64 \uff0c \u60a8 \u53ef\u4ee5 \u5c06 StopTrigger \u6761\u4ef6 \u4e0e CARLA \u91cd\u590d \u4f7f\u7528 \u91cd\u590d\u4f7f\u7528 \u3002 \u901a\u8fc7 \u63d0\u4f9b \u6761\u4ef6 \u7684 \u6761\u4ef6 \u540d\u79f0 \uff0c \u901a\u8fc7 ParameterConditions \u652f\u6301 \u8bc4\u4f30 \u6761\u4ef6 \u7684 \u4ee5\u4e0b StopTrigger \u6761\u4ef6 \uff1a criteria _ RunningStopTest criteria _ RunningRedLightTest criteria _ WrongLaneTest criteria _ OnSideWalkTest criteria _ KeepLaneTest criteria _ CollisionTest criteria _ DrivenDistanceTest","title":"ByValueCondition"},{"location":"scenario_runner/openscenario_support/#openscenario-positions","text":"\u5728 OpenSCENARIO \u4e2d \u5b9a\u4e49 \u4f4d\u7f6e \u7684 \u65b9\u6cd5 \u6709 \u591a\u79cd \u3002 \u4e0b\u9762 \u6211\u4eec \u5217\u51fa \u4e86 \u6bcf\u79cd \u5b9a\u4e49 \u683c\u5f0f \u7684 \u5f53\u524d \u652f\u6301 \u72b6\u6001 \u3002 \u4f4d\u7f6e \u652f\u6301 \u7b14\u8bb0 LanePosition \u2705 RelativeLanePosition \u2705 RelativeObjectPosition \u2705 RelativeRoadPosition \u2705 RelativeWorldPosition \u2705 RoadPosition \u2705 RoutePosition \u274c WorldPosition \u2705","title":"OpenSCENARIO Positions"},{"location":"scenario_runner/ros_agent/","text":"\u57fa\u4e8e ROS \u7684 \u6311\u6218 \u4ee3\u7406 \u4e0e ROS \u7684 CARLA \u63a5\u53e3 \u901a\u5e38 \u901a\u8fc7 CARLA ROS Bridge \u5b8c\u6210 \u3002 \u5728 \u6311\u6218 \u6a21\u5f0f \u4e0b \uff0c \u6b64 \u6865\u63a5 \u529f\u80fd \u7531 RosAgent \u63d0\u4f9b \u3002 \u5b83 \u5bf9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u76f8\u540c \u7684 \u4e3b\u9898 \u548c \u6d88\u606f \u7c7b\u578b \uff0c \u4f46 \u4e0d \u53d1\u5e03 tf \u8f6c\u6362 \u3002 \u8981\u6c42 roscore \u9884\u8ba1 \u5c06 \u5728 docker \u5bb9\u5668 \u4e2d \u8fd0\u884c \u3002 \u8bf7 \u8c03\u6574 \u60a8 \u7684 \u5165\u53e3 \u70b9 \u3002 \u8bbe\u7f6e \u8981 \u5728 \u6311\u6218 \u6a21\u5f0f \u4e0b \u542f\u7528 \u5806\u6808 \uff0c \u9700\u8981 \u6267\u884c \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u5b9a\u4e49 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u5b9a\u4e49 \u542f\u52a8 \u5b9a\u4e49 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u6d3e\u751f \u81ea RosAgent \u5e76 \u5b9e\u73b0 sensors ( ) \u65b9\u6cd5 \u3002 from srunner . autoagents . ros _ agent import RosAgent class MyRosAgent ( RosAgent ) : def sensors ( self ) : return [ < sensor - definition > ] \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b9a\u4e49 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 HumanAgent . py \u3002 \u5b9a\u4e49 \u542f\u52a8 \u5806\u6808 \u7684 \u542f\u52a8 \u662f \u5728 shell \u811a\u672c $ TEAM _ CODE _ ROOT / start . sh \u5185 \u5b8c\u6210 \u7684 \u3002 \u56e0\u6b64 TEAM _ CODE _ ROOT \u5fc5\u987b \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 RosAgent \u8d1f\u8d23 \u6267\u884c \u548c \u76d1\u63a7 \u3002 \u53ea\u8981 \u5806\u6808 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \uff0c \u811a\u672c \u5c31 \u5e94 \u4fdd\u6301 \u8fd0\u884c \u3002 start . sh \u7684 \u793a\u4f8b # ! / bin / bash - e roslaunch $ TEAM _ CODE _ ROOT / challenge . launch \u6d4b\u8bd5 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6311\u6218 \u6267\u884c \u662f \u65e0\u5934 \u7684 \u3002 \u4e3a\u4e86 \u8fdb\u884c \u8bca\u65ad \uff0c \u60a8 \u4ecd\u7136 \u53ef\u4ee5 \u4f7f\u7528 rviz \u6216 rqt \u7b49 ros \u5de5\u5177 \u3002 \u6b64\u5916 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 carla _ ros _ bridge \u4e2d \u7684 carla _ manual _ control \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \uff08 \u5e76 \u63a7\u5236 \u8f66\u8f86 \uff09 \u3002","title":"\u57fa\u4e8e ROS \u7684 \u6311\u6218 \u4ee3\u7406"},{"location":"scenario_runner/ros_agent/#ros","text":"\u4e0e ROS \u7684 CARLA \u63a5\u53e3 \u901a\u5e38 \u901a\u8fc7 CARLA ROS Bridge \u5b8c\u6210 \u3002 \u5728 \u6311\u6218 \u6a21\u5f0f \u4e0b \uff0c \u6b64 \u6865\u63a5 \u529f\u80fd \u7531 RosAgent \u63d0\u4f9b \u3002 \u5b83 \u5bf9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u76f8\u540c \u7684 \u4e3b\u9898 \u548c \u6d88\u606f \u7c7b\u578b \uff0c \u4f46 \u4e0d \u53d1\u5e03 tf \u8f6c\u6362 \u3002","title":"\u57fa\u4e8e ROS \u7684 \u6311\u6218 \u4ee3\u7406"},{"location":"scenario_runner/ros_agent/#_1","text":"roscore \u9884\u8ba1 \u5c06 \u5728 docker \u5bb9\u5668 \u4e2d \u8fd0\u884c \u3002 \u8bf7 \u8c03\u6574 \u60a8 \u7684 \u5165\u53e3 \u70b9 \u3002","title":"\u8981\u6c42"},{"location":"scenario_runner/ros_agent/#_2","text":"\u8981 \u5728 \u6311\u6218 \u6a21\u5f0f \u4e0b \u542f\u7528 \u5806\u6808 \uff0c \u9700\u8981 \u6267\u884c \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u5b9a\u4e49 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u5b9a\u4e49 \u542f\u52a8","title":"\u8bbe\u7f6e"},{"location":"scenario_runner/ros_agent/#_3","text":"\u6d3e\u751f \u81ea RosAgent \u5e76 \u5b9e\u73b0 sensors ( ) \u65b9\u6cd5 \u3002 from srunner . autoagents . ros _ agent import RosAgent class MyRosAgent ( RosAgent ) : def sensors ( self ) : return [ < sensor - definition > ] \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b9a\u4e49 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 HumanAgent . py \u3002","title":"\u5b9a\u4e49 \u4f20\u611f\u5668 \u8bbe\u7f6e"},{"location":"scenario_runner/ros_agent/#_4","text":"\u5806\u6808 \u7684 \u542f\u52a8 \u662f \u5728 shell \u811a\u672c $ TEAM _ CODE _ ROOT / start . sh \u5185 \u5b8c\u6210 \u7684 \u3002 \u56e0\u6b64 TEAM _ CODE _ ROOT \u5fc5\u987b \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 RosAgent \u8d1f\u8d23 \u6267\u884c \u548c \u76d1\u63a7 \u3002 \u53ea\u8981 \u5806\u6808 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \uff0c \u811a\u672c \u5c31 \u5e94 \u4fdd\u6301 \u8fd0\u884c \u3002 start . sh \u7684 \u793a\u4f8b # ! / bin / bash - e roslaunch $ TEAM _ CODE _ ROOT / challenge . launch","title":"\u5b9a\u4e49 \u542f\u52a8"},{"location":"scenario_runner/ros_agent/#_5","text":"\u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6311\u6218 \u6267\u884c \u662f \u65e0\u5934 \u7684 \u3002 \u4e3a\u4e86 \u8fdb\u884c \u8bca\u65ad \uff0c \u60a8 \u4ecd\u7136 \u53ef\u4ee5 \u4f7f\u7528 rviz \u6216 rqt \u7b49 ros \u5de5\u5177 \u3002 \u6b64\u5916 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 carla _ ros _ bridge \u4e2d \u7684 carla _ manual _ control \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \uff08 \u5e76 \u63a7\u5236 \u8f66\u8f86 \uff09 \u3002","title":"\u6d4b\u8bd5"},{"location":"tmp/%E5%9C%A8windows%E7%8E%AF%E5%A2%83%E4%B8%8Bcarla%E4%B8%8E%E7%BD%97%E6%8A%80G29%E6%96%B9%E5%90%91%E7%9B%98%E8%81%94%E8%B0%83%E6%96%B9%E6%B3%95/","text":"\u5728 windows \u73af\u5883 \u4e0b carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u53cd\u9988 \u529b\u53cd\u9988 \u8054\u8c03 \u65b9\u6cd5 \u76ee\u524d \u7f51\u4e0a carla \u548c G29 \u7684 \u8054\u8c03 \u90fd \u662f \u5728 ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \uff0c \u8be6\u60c5 \u53ef\u4ee5 \u53c2\u8003 \u535a\u6587 https : / / blog . csdn . net / qq _ 44237695 / article / details / 129103700 \u4f46 \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \u65b9\u6cd5 \u6ca1\u6709 \u641c\u7d22 \u5230 \uff0c \u81ea\u5df1 \u8d70 \u4e86 \u4e0d\u5c11 \u5f2f\u8def \uff0c \u5206\u4eab \u4e00\u4e0b \u3002 \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u81ea\u5df1 \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 https : / / blog . csdn . net / qq _ 41250354 / article / details / 104652071 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c \u6240\u4ee5 \u8fd9\u4e2a \u65b9\u6848 \u5835\u6b7b \u4e86 \u5f88 \u4e45 \u3002 \u65e0\u7edd \u7edd\u4eba \u4e4b\u8def \u5929\u65e0\u7edd\u4eba\u4e4b\u8def \uff0c \u5728 github \u4e0a \u627e\u5230 \u4e00\u4e2a \u5927\u795e \u5199 \u7684 G29python \u4ee3\u7801 \uff0c \u8fd9\u4e2a \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 github \u9875\u9762 \uff1a https : / / github . com / cengizozel / LogiDrivePy \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 carla0.9 . 14 \u7f57\u6280 G - hub \u9a71\u52a8 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002 carla - g29 \u81ea\u52a8 \u9a7e\u9a76 \u53cd\u9988 \u529b\u53cd\u9988 \u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"\u5728 windows \u73af\u5883 \u4e0b carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411\u76d8 \u529b\u53cd\u9988 \u8054\u8c03 \u65b9\u6cd5"},{"location":"tmp/%E5%9C%A8windows%E7%8E%AF%E5%A2%83%E4%B8%8Bcarla%E4%B8%8E%E7%BD%97%E6%8A%80G29%E6%96%B9%E5%90%91%E7%9B%98%E8%81%94%E8%B0%83%E6%96%B9%E6%B3%95/#windowscarlag29","text":"\u76ee\u524d \u7f51\u4e0a carla \u548c G29 \u7684 \u8054\u8c03 \u90fd \u662f \u5728 ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \uff0c \u8be6\u60c5 \u53ef\u4ee5 \u53c2\u8003 \u535a\u6587 https : / / blog . csdn . net / qq _ 44237695 / article / details / 129103700 \u4f46 \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \u65b9\u6cd5 \u6ca1\u6709 \u641c\u7d22 \u5230 \uff0c \u81ea\u5df1 \u8d70 \u4e86 \u4e0d\u5c11 \u5f2f\u8def \uff0c \u5206\u4eab \u4e00\u4e0b \u3002 \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u81ea\u5df1 \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 https : / / blog . csdn . net / qq _ 41250354 / article / details / 104652071 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c \u6240\u4ee5 \u8fd9\u4e2a \u65b9\u6848 \u5835\u6b7b \u4e86 \u5f88 \u4e45 \u3002 \u65e0\u7edd \u7edd\u4eba \u4e4b\u8def \u5929\u65e0\u7edd\u4eba\u4e4b\u8def \uff0c \u5728 github \u4e0a \u627e\u5230 \u4e00\u4e2a \u5927\u795e \u5199 \u7684 G29python \u4ee3\u7801 \uff0c \u8fd9\u4e2a \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 github \u9875\u9762 \uff1a https : / / github . com / cengizozel / LogiDrivePy \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 carla0.9 . 14 \u7f57\u6280 G - hub \u9a71\u52a8 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002","title":"\u5728 windows \u73af\u5883 \u4e0b carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411\u76d8 \u529b\u53cd\u9988 \u8054\u8c03 \u65b9\u6cd5"},{"location":"tmp/%E5%9C%A8windows%E7%8E%AF%E5%A2%83%E4%B8%8Bcarla%E4%B8%8E%E7%BD%97%E6%8A%80G29%E6%96%B9%E5%90%91%E7%9B%98%E8%81%94%E8%B0%83%E6%96%B9%E6%B3%95/#carla-g29","text":"\u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"carla - g29 \u81ea\u52a8 \u9a7e\u9a76 \u529b\u53cd\u9988"}]}
\ No newline at end of file
+{"config":{"indexing":"full","lang":["ja"],"min_search_length":2,"prebuild_index":false,"separator":"[\\s\\-\\.]+"},"docs":[{"location":"","text":"Carla \u6587\u6863 \u6b22\u8fce \u4f7f\u7528 Carla \u6587\u6863 \u3002 \u6b64 \u4e3b\u9875 \u5305\u542b \u4e00\u4e2a \u7d22\u5f15 \uff0c \u5176\u4e2d \u7b80\u8981 \u8bf4\u660e \u4e86 \u6587\u6863 \u4e2d \u7684 \u4e0d\u540c \u90e8\u5206 \u3002 \u968f\u610f \u6309 \u559c\u6b22 \u7684 \u987a\u5e8f \u9605\u8bfb \u3002 \u65e0\u8bba \u5982\u4f55 \u65e0\u8bba\u5982\u4f55 \uff0c \u8fd9\u91cc \u6709 \u4e00\u4e9b \u7ed9 \u65b0\u624b \u7684 \u5efa\u8bae \u3002 \u5b89\u88c5 Carla . \u8981\u4e48 \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u83b7\u5f97 Carla \u7248\u672c \uff0c \u8981\u4e48 \u6309\u7167 \u6240 \u9700 \u5e73\u53f0 \u8fdb\u884c \u6784\u5efa \u3002 \u5f00\u59cb \u4f7f\u7528 Carla . \u6807\u9898 \u4e3a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u7684 \u90e8\u5206 \u4ecb\u7ecd \u4e86 \u6700 \u91cd\u8981 \u7684 \u6982\u5ff5 \u3002 \u68c0\u67e5 API . \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python API \u53c2\u8003 \u6765 \u67e5\u627e \u53ef\u7528 \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 Carla \u8bba\u575b \u53ef\u4ee5 \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u51fa\u73b0 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b14\u8bb0 \u66f4\u6539 \u6587\u6863 \u7248\u672c \u4ee5 \u9002\u5408 \u60a8 \u4f7f\u7528 \u7684 Carla \u7248\u672c \u3002 \u4f7f\u7528 \u6b64 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u4ee5\u524d \u7684 \u7248\u672c \u3002 \u6700\u65b0 \u7248\u672c \u6307\u5411 dev \u5206\u652f \u4e2d \u7684 \u6587\u6863 \uff0c \u8fd9 \u53ef\u80fd \u662f \u6307 \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u529f\u80fd \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u6253\u5305 \u7248\u672c \u7684 Carla \u4e2d \u4e0d\u53ef \u7528 \uff0c \u4ee5\u53ca \u4e00\u822c \u6587\u6863 \u6539\u8fdb \u3002 \u5165\u95e8 \u4ecb\u7ecd \u2014 \u5bf9 Carla \u7684 \u671f\u671b \u3002 \u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u2014 \u83b7\u53d6 Carla \u7248\u672c \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u5f00\u59cb \u8fdb\u884c Carla \u64cd\u4f5c \u3002 \u6559\u7a0b \u2014 Carla \u8be6\u7ec6 \u6559\u7a0b \u3002 \u6784\u5efa Carla \u6784\u5efa Carla \u2014 \u8fdb\u884c Carla \u7f16\u8bd1 \u3002 Linux \u4e0a \u7f16\u8bd1 \u2014 \u5728 Linux \u4e0a \u8fdb\u884c \u7f16\u8bd1 \u3002 Windows \u4e0a \u7f16\u8bd1 \u2014 \u5728 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 Carla \u66f4\u65b0 \u2014 \u4e86\u89e3 \u6700\u65b0 \u5185\u5bb9 \u3002 \u6784\u5efa \u7cfb\u7edf \u2014 \u4e86\u89e3 \u6784\u5efa \u53ca\u5176 \u5236\u4f5c \u65b9\u5f0f \u3002 Docker \u4e2d \u7684 Carla \u2014 \u4f7f\u7528 \u5bb9\u5668 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8fd0\u884c Carla \u3002 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898 \u3002 Carla \u4e3b\u9898 \u57fa\u7840 \u2014 Carla \u57fa\u7840 \u3002 \u6838\u5fc3 \u6982\u5ff5 \u2014 Carla \u4e2d \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u7684 \u6982\u8ff0 \u3002 \u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u2014 \u7ba1\u7406 \u548c \u8bbf\u95ee \u4eff\u771f \u3002 \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u2014 \u4e86\u89e3 \u89d2\u8272 \u4ee5\u53ca \u5982\u4f55 \u5904\u7406 \u5b83\u4eec \u3002 \u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u2014 \u53d1\u73b0 \u4e0d\u540c \u7684 \u5730\u56fe \u4ee5\u53ca \u8f66\u8f86 \u5982\u4f55 \u79fb\u52a8 \u3002 \u7b2c\u56db \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u2014 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 \u5f00\u53d1 \u2014 \u57fa\u4e8e Carla \u7684 \u5f00\u53d1 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u2014 Carla \u4e2d \u8d44\u4ea7 \u7684 \u7684 \u5f00\u53d1 \u3002 \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u521b\u4f5c \u3002 \u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u521b\u4f5c \u3002 \u4ea4\u901a \u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u4f7f\u7528 \u4ea4\u901a \u586b\u5145 \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u548c SUMO \u8054\u5408 \u4eff\u771f \u2014 \u5728 Carla \u548c SUMO \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Scenic \u2014 \u9075\u5faa \u4f7f\u7528 Scenic \u5e93 \u5b9a\u4e49 \u4e0d\u540c \u573a\u666f \u7684 \u793a\u4f8b \u3002 \u884c\u4eba \u884c\u4eba \u9aa8\u9abc - \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u67b6 \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u884c\u4eba \u89c6\u89c9 - \u4f7f\u7528 \u76f8\u673a \u8fdb\u884c \u4eba\u773c \u7684 \u6a21\u62df \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u9ad8\u7ea7 \u6982\u5ff5 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u2014 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u5f55\u5236 \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u4e0d \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u2014 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b9e\u73b0 \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u597d \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u5f00\u8f66 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u53c2\u8003 Python API \u53c2\u8003 \u2014 Python API \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 C++ \u53c2\u8003 \u2014 Carla C++ \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 \u84dd \u56fe\u5e93 \u2014 \u63d0\u4f9b \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd\u56fe \u3002 Carla \u76ee\u5f55 \u2014 Carla \u4e2d \u8d44\u6e90 \u7684 \u76ee\u5f55 \u5217\u8868 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u5173\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u4e00\u5207 \u3002 \u6269\u5c55 \u6587\u6863 \u2014 \u5176\u4ed6 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe Carla \u4e2d \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u6d77\u5173 \u3001 \u6807\u51c6 \u5c3a\u5bf8 \u7684 \u5730\u56fe \u5728 Carla \u5305 \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5728 Carla \u6e90 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 Carla \u4e2d \u5bfc\u5165 \u4ece\u6e90 \u6784\u5efa \u7684 \u5730\u56fe \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u5730\u56fe \u4ee5\u4f9b \u624b\u52a8 \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u6539\u53d8 \u9053\u8def \u7684 \u5916\u89c2 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u5e76 \u586b\u5145 \u666f\u89c2 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u5efa\u7b51 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u901a\u8fc7 OpenStreetMap \u81ea\u52a8 \u751f\u6210 Carla \u4e2d \u7684 \u9053\u8def \u548c \u5efa\u7b51 \u3002 \u5927 \u5730\u56fe \u5927 \u5730\u56fe \u6982\u8ff0 \u2014 Carla \u4e2d \u5927 \u5730\u56fe \u5de5\u4f5c \u539f\u7406 \u7684 \u8bf4\u660e \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe \u6559\u7a0b \uff08 \u901a\u7528 \uff09 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 - \u5b9a\u4e49 \u8f66\u8f6e \u7684 \u52a8\u6001 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b - \u8bbe\u7f6e \u8f66\u8f86 \u7269\u7406 \u7684 \u8fd0\u884c \u65f6 \u7684 \u53d8\u5316 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09 \u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u4e3a \u8d44\u4ea7 \u751f\u6210 \u548c \u5904\u7406 \u72ec\u7acb \u5305 \u6750\u6599 \u5b9a\u5236 - \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u6559\u7a0b \uff08 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \uff09 \u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u4e2a \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u4e3a \u8bed\u4e49 \u5206\u5272 \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u751f\u6210 \u8be6\u7ec6 \u78b0\u649e \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u5bf9\u649e \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u8c03\u8bd5 \u7a0b\u5e8f \u8c03\u8bd5\u7a0b\u5e8f - \u8fdb\u884c \u7a0b\u5e8f \u7684 \u8c03\u8bd5 \u793a\u4f8b \u5165\u95e8 - \u57fa\u672c \u793a\u4f8b \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 - \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 \u6d41\u91cf \u9884\u6d4b - \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u9884\u6d4b Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf ISS \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u2014 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \u3002 \u4ea4\u901a \u573a\u666f \u2014 \u57fa\u4e8e Carla \u4ea4\u901a \u573a\u666f \u5b9a\u4e49 \u548c \u6267\u884c \u5f15\u64ce \u3002 Web \u53ef\u89c6 \u53ef\u89c6\u5316 \u5668 \u2014 \u4fa6\u542c \u4eff\u771f \u5e76 \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u573a\u666f \u548c \u4e00\u4e9b \u4eff\u771f \u6570\u636e \u7684 \u63d2\u4ef6 \u3002 ROS \u2014 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7684 \u7b80\u8981 \u6982\u8ff0 \u548c \u5b8c\u6574 \u6587\u6863 \u7684 \u94fe\u63a5 \u3002 \u6709\u9650 \u6709\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6 \u2014 \u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 CarSim \u96c6\u6210 - \u5173\u4e8e \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u79ef\u5206 \u6765 \u4eff\u771f \u7269\u7406 OpenRadios \u6709\u9650 \u6709\u9650\u5143 \u4eff\u771f \u2014 \u9488\u5bf9 \u52a8\u6001 \u8d1f\u8f7d \u4e0b \u7684 \u9ad8\u5ea6 \u7ebf\u6027 \u975e\u7ebf\u6027 \u95ee\u9898 \u8bc4\u4f30 \u548c \u4f18\u5316 \u4ea7\u54c1 \u6027\u80fd \u3002 PTV - Vissim \u8054\u5408 \u4eff\u771f - \u5728 Carla \u548c PTV - Vissim \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \u2014 \u6709\u5173 Ansys RTR \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Matlab \u63a5\u53e3 \u4f7f\u7528 Python \u548c ROS \u5728 Matlab \u4e2d \u8c03\u7528 Python \u3002 \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u2014 \u4f7f\u7528 \u7f57\u6280 \u65b9\u5411 \u65b9\u5411\u76d8 \u8fdb\u884c \u8f66\u8f86 \u63a7\u5236 \u548c \u4eff\u771f \u5bf9 \u65b9\u5411 \u65b9\u5411\u76d8 \u7684 \u53cd\u5411 \u63a7\u5236 \u3002 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u2014 \u57fa\u672c \u7684 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u3002 \u8d21\u732e \u8d21\u732e \u6307\u5357 \u2014 \u4e3a Carla \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u3002 \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u3002 \u6587\u6863 \u6807\u51c6 \u2014 \u7f16\u5199 \u9002\u5f53 \u6587\u6863 \u7684 \u6307\u5357 \u3002 \u5176\u4ed6 RoadRunner - \u7528\u4e8e \u6784\u5efa \u9759\u6001 \u573a\u666f RoadRunner Scenario - \u7528\u4e8e \u6784\u5efa \u52a8\u6001 \u4ea4\u901a \u573a\u666f \u3002 Carla \u4e2d\u6587 \u7ad9 \u2014 \u4e2d\u6587 \u4ea4\u6d41 \u793e\u533a \u3002 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u2014 \u548c \u865a\u5e7b \u5f15\u64ce \u76f8\u5173 \u7684 \u64cd\u4f5c \u6559\u7a0b \u3002 Blender \u624b\u518c - \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u3002 \u6587\u4ef6 \u8bf4\u660e - \u8bf4\u660e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u5404\u4e2a \u6587\u4ef6 \u7684 \u4f5c\u7528 \u3002 \u5f85 \u505a \u5217\u8868 - \u5f85 \u5b8c\u6210 \u7684 \u529f\u80fd \u3002","title":"\u4e3b\u9875"},{"location":"#carla","text":"\u6b22\u8fce \u4f7f\u7528 Carla \u6587\u6863 \u3002 \u6b64 \u4e3b\u9875 \u5305\u542b \u4e00\u4e2a \u7d22\u5f15 \uff0c \u5176\u4e2d \u7b80\u8981 \u8bf4\u660e \u4e86 \u6587\u6863 \u4e2d \u7684 \u4e0d\u540c \u90e8\u5206 \u3002 \u968f\u610f \u6309 \u559c\u6b22 \u7684 \u987a\u5e8f \u9605\u8bfb \u3002 \u65e0\u8bba \u5982\u4f55 \u65e0\u8bba\u5982\u4f55 \uff0c \u8fd9\u91cc \u6709 \u4e00\u4e9b \u7ed9 \u65b0\u624b \u7684 \u5efa\u8bae \u3002 \u5b89\u88c5 Carla . \u8981\u4e48 \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u83b7\u5f97 Carla \u7248\u672c \uff0c \u8981\u4e48 \u6309\u7167 \u6240 \u9700 \u5e73\u53f0 \u8fdb\u884c \u6784\u5efa \u3002 \u5f00\u59cb \u4f7f\u7528 Carla . \u6807\u9898 \u4e3a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u7684 \u90e8\u5206 \u4ecb\u7ecd \u4e86 \u6700 \u91cd\u8981 \u7684 \u6982\u5ff5 \u3002 \u68c0\u67e5 API . \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python API \u53c2\u8003 \u6765 \u67e5\u627e \u53ef\u7528 \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 Carla \u8bba\u575b \u53ef\u4ee5 \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u51fa\u73b0 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b14\u8bb0 \u66f4\u6539 \u6587\u6863 \u7248\u672c \u4ee5 \u9002\u5408 \u60a8 \u4f7f\u7528 \u7684 Carla \u7248\u672c \u3002 \u4f7f\u7528 \u6b64 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u4ee5\u524d \u7684 \u7248\u672c \u3002 \u6700\u65b0 \u7248\u672c \u6307\u5411 dev \u5206\u652f \u4e2d \u7684 \u6587\u6863 \uff0c \u8fd9 \u53ef\u80fd \u662f \u6307 \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u529f\u80fd \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u6253\u5305 \u7248\u672c \u7684 Carla \u4e2d \u4e0d\u53ef \u7528 \uff0c \u4ee5\u53ca \u4e00\u822c \u6587\u6863 \u6539\u8fdb \u3002","title":"Carla \u6587\u6863"},{"location":"#_1","text":"\u4ecb\u7ecd \u2014 \u5bf9 Carla \u7684 \u671f\u671b \u3002 \u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u2014 \u83b7\u53d6 Carla \u7248\u672c \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u5f00\u59cb \u8fdb\u884c Carla \u64cd\u4f5c \u3002 \u6559\u7a0b \u2014 Carla \u8be6\u7ec6 \u6559\u7a0b \u3002","title":"\u5165\u95e8"},{"location":"#carla_1","text":"\u6784\u5efa Carla \u2014 \u8fdb\u884c Carla \u7f16\u8bd1 \u3002 Linux \u4e0a \u7f16\u8bd1 \u2014 \u5728 Linux \u4e0a \u8fdb\u884c \u7f16\u8bd1 \u3002 Windows \u4e0a \u7f16\u8bd1 \u2014 \u5728 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 Carla \u66f4\u65b0 \u2014 \u4e86\u89e3 \u6700\u65b0 \u5185\u5bb9 \u3002 \u6784\u5efa \u7cfb\u7edf \u2014 \u4e86\u89e3 \u6784\u5efa \u53ca\u5176 \u5236\u4f5c \u65b9\u5f0f \u3002 Docker \u4e2d \u7684 Carla \u2014 \u4f7f\u7528 \u5bb9\u5668 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8fd0\u884c Carla \u3002 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898 \u3002","title":"\u6784\u5efa Carla"},{"location":"#carla_2","text":"\u57fa\u7840 \u2014 Carla \u57fa\u7840 \u3002 \u6838\u5fc3 \u6982\u5ff5 \u2014 Carla \u4e2d \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u7684 \u6982\u8ff0 \u3002 \u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u2014 \u7ba1\u7406 \u548c \u8bbf\u95ee \u4eff\u771f \u3002 \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u2014 \u4e86\u89e3 \u89d2\u8272 \u4ee5\u53ca \u5982\u4f55 \u5904\u7406 \u5b83\u4eec \u3002 \u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u2014 \u53d1\u73b0 \u4e0d\u540c \u7684 \u5730\u56fe \u4ee5\u53ca \u8f66\u8f86 \u5982\u4f55 \u79fb\u52a8 \u3002 \u7b2c\u56db \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u2014 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 \u5f00\u53d1 \u2014 \u57fa\u4e8e Carla \u7684 \u5f00\u53d1 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 \u2014 Carla \u4e2d \u8d44\u4ea7 \u7684 \u7684 \u5f00\u53d1 \u3002 \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u521b\u4f5c \u3002 \u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u2014 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u521b\u4f5c \u3002","title":"Carla \u4e3b\u9898"},{"location":"#_2","text":"\u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u4f7f\u7528 \u4ea4\u901a \u586b\u5145 \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u548c SUMO \u8054\u5408 \u4eff\u771f \u2014 \u5728 Carla \u548c SUMO \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Scenic \u2014 \u9075\u5faa \u4f7f\u7528 Scenic \u5e93 \u5b9a\u4e49 \u4e0d\u540c \u573a\u666f \u7684 \u793a\u4f8b \u3002","title":"\u4ea4\u901a"},{"location":"#_3","text":"\u884c\u4eba \u9aa8\u9abc - \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u67b6 \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8bbe\u7f6e \u52a8\u753b \u3002 \u884c\u4eba \u89c6\u89c9 - \u4f7f\u7528 \u76f8\u673a \u8fdb\u884c \u4eba\u773c \u7684 \u6a21\u62df \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002","title":"\u884c\u4eba"},{"location":"#_4","text":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u2014 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u5f55\u5236 \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u4e0d \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u2014 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b9e\u73b0 \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u597d \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u5f00\u8f66 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002","title":"\u9ad8\u7ea7 \u6982\u5ff5"},{"location":"#_5","text":"Python API \u53c2\u8003 \u2014 Python API \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 C++ \u53c2\u8003 \u2014 Carla C++ \u4e2d \u7684 \u7c7b \u548c \u65b9\u6cd5 \u3002 \u84dd \u56fe\u5e93 \u2014 \u63d0\u4f9b \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd\u56fe \u3002 Carla \u76ee\u5f55 \u2014 Carla \u4e2d \u8d44\u6e90 \u7684 \u76ee\u5f55 \u5217\u8868 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u5173\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u4e00\u5207 \u3002 \u6269\u5c55 \u6587\u6863 \u2014 \u5176\u4ed6 \u3002","title":"\u53c2\u8003"},{"location":"#_6","text":"Carla \u4e2d \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u6d77\u5173 \u3001 \u6807\u51c6 \u5c3a\u5bf8 \u7684 \u5730\u56fe \u5728 Carla \u5305 \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5728 Carla \u6e90 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 Carla \u4e2d \u5bfc\u5165 \u4ece\u6e90 \u6784\u5efa \u7684 \u5730\u56fe \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u5730\u56fe \u4ee5\u4f9b \u624b\u52a8 \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u6539\u53d8 \u9053\u8def \u7684 \u5916\u89c2 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u5e76 \u586b\u5145 \u666f\u89c2 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u5efa\u7b51 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u901a\u8fc7 OpenStreetMap \u81ea\u52a8 \u751f\u6210 Carla \u4e2d \u7684 \u9053\u8def \u548c \u5efa\u7b51 \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"#_7","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u2014 Carla \u4e2d \u5927 \u5730\u56fe \u5de5\u4f5c \u539f\u7406 \u7684 \u8bf4\u660e \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe","title":"\u5927 \u5730\u56fe"},{"location":"#_8","text":"\u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 - \u5b9a\u4e49 \u8f66\u8f6e \u7684 \u52a8\u6001 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b - \u8bbe\u7f6e \u8f66\u8f86 \u7269\u7406 \u7684 \u8fd0\u884c \u65f6 \u7684 \u53d8\u5316 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla","title":"\u6559\u7a0b \uff08 \u901a\u7528 \uff09"},{"location":"#_9","text":"\u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u4e3a \u8d44\u4ea7 \u751f\u6210 \u548c \u5904\u7406 \u72ec\u7acb \u5305 \u6750\u6599 \u5b9a\u5236 - \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599","title":"\u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09"},{"location":"#_10","text":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u4e2a \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u4e3a \u8bed\u4e49 \u5206\u5272 \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u751f\u6210 \u8be6\u7ec6 \u78b0\u649e \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u5bf9\u649e \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u8c03\u8bd5 \u7a0b\u5e8f \u8c03\u8bd5\u7a0b\u5e8f - \u8fdb\u884c \u7a0b\u5e8f \u7684 \u8c03\u8bd5","title":"\u6559\u7a0b \uff08 \u5f00\u53d1\u4eba\u5458 \uff09"},{"location":"#_11","text":"\u5165\u95e8 - \u57fa\u672c \u793a\u4f8b \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 - \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528 \u6d41\u91cf \u9884\u6d4b - \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u9884\u6d4b","title":"\u793a\u4f8b"},{"location":"#carla_3","text":"ISS \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u2014 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \u3002 \u4ea4\u901a \u573a\u666f \u2014 \u57fa\u4e8e Carla \u4ea4\u901a \u573a\u666f \u5b9a\u4e49 \u548c \u6267\u884c \u5f15\u64ce \u3002 Web \u53ef\u89c6 \u53ef\u89c6\u5316 \u5668 \u2014 \u4fa6\u542c \u4eff\u771f \u5e76 \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u573a\u666f \u548c \u4e00\u4e9b \u4eff\u771f \u6570\u636e \u7684 \u63d2\u4ef6 \u3002 ROS \u2014 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7684 \u7b80\u8981 \u6982\u8ff0 \u548c \u5b8c\u6574 \u6587\u6863 \u7684 \u94fe\u63a5 \u3002 \u6709\u9650 \u6709\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6 \u2014 \u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 CarSim \u96c6\u6210 - \u5173\u4e8e \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u79ef\u5206 \u6765 \u4eff\u771f \u7269\u7406 OpenRadios \u6709\u9650 \u6709\u9650\u5143 \u4eff\u771f \u2014 \u9488\u5bf9 \u52a8\u6001 \u8d1f\u8f7d \u4e0b \u7684 \u9ad8\u5ea6 \u7ebf\u6027 \u975e\u7ebf\u6027 \u95ee\u9898 \u8bc4\u4f30 \u548c \u4f18\u5316 \u4ea7\u54c1 \u6027\u80fd \u3002 PTV - Vissim \u8054\u5408 \u4eff\u771f - \u5728 Carla \u548c PTV - Vissim \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \u2014 \u6709\u5173 Ansys RTR \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Matlab \u63a5\u53e3 \u4f7f\u7528 Python \u548c ROS \u5728 Matlab \u4e2d \u8c03\u7528 Python \u3002 \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u2014 \u4f7f\u7528 \u7f57\u6280 \u65b9\u5411 \u65b9\u5411\u76d8 \u8fdb\u884c \u8f66\u8f86 \u63a7\u5236 \u548c \u4eff\u771f \u5bf9 \u65b9\u5411 \u65b9\u5411\u76d8 \u7684 \u53cd\u5411 \u63a7\u5236 \u3002 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u2014 \u57fa\u672c \u7684 OpenSCENARIO \u64ad\u653e \u64ad\u653e\u5668 \u3002","title":"Carla \u751f\u6001\u7cfb\u7edf"},{"location":"#_12","text":"\u8d21\u732e \u6307\u5357 \u2014 \u4e3a Carla \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u3002 \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u3002 \u6587\u6863 \u6807\u51c6 \u2014 \u7f16\u5199 \u9002\u5f53 \u6587\u6863 \u7684 \u6307\u5357 \u3002","title":"\u8d21\u732e"},{"location":"#_13","text":"RoadRunner - \u7528\u4e8e \u6784\u5efa \u9759\u6001 \u573a\u666f RoadRunner Scenario - \u7528\u4e8e \u6784\u5efa \u52a8\u6001 \u4ea4\u901a \u573a\u666f \u3002 Carla \u4e2d\u6587 \u7ad9 \u2014 \u4e2d\u6587 \u4ea4\u6d41 \u793e\u533a \u3002 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u2014 \u548c \u865a\u5e7b \u5f15\u64ce \u76f8\u5173 \u7684 \u64cd\u4f5c \u6559\u7a0b \u3002 Blender \u624b\u518c - \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u3002 \u6587\u4ef6 \u8bf4\u660e - \u8bf4\u660e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u5404\u4e2a \u6587\u4ef6 \u7684 \u4f5c\u7528 \u3002 \u5f85 \u505a \u5217\u8868 - \u5f85 \u5b8c\u6210 \u7684 \u529f\u80fd \u3002","title":"\u5176\u4ed6"},{"location":"3rd_party_integrations/","text":"3rd Party Integrations Carla has been developed to integrate with several 3rd party applications in order to maximise its utility and extensability . The following ROS bridge SUMO Scenic CarSIM Chrono OpenDRIVE PTV Vissim RSS AWS and RLlib ROS bridge Full documentation of the ROS bridge is found here . The ROS bridge enables two - way communication between ROS and Carla . The information from the Carla server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in Carla . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the Carla simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters . SUMO Carla has developed a co - simulation feature with SUMO . This allows to distribute the tasks at will , and exploit the capabilities of each simulation in favour of the user . Please refer to the full documentation here . PTV Vissim PTV Vissim is a proprietary software package providing a comprehensive traffic simulation solution with a powerful GUI . To use PTV - Vissim with Carla refer to this guide Scenic Scenic is a set of libraries and a language for scenario specification and scene generation . Carla and scenic can work seemlessly together , read this guid to understand how to use scenic with Carla . If you need to learn more about Scenic , then read their \" Getting Started with Scenic \" guide and have a look at their tutorials for creating static and dynamic scenarios . CarSIM Carla ' s integration with CarSim allows vehicle controls in Carla to be forwarded to CarSim . CarSim will do all required physics calculations of the vehicle and return the new state to Carla . Learn how to use Carla alongside CarSIM here . OpenDRIVE OpenDRIVE is an open format specification used to describe the logic of a road network intended to standardise the discription of road networks in digital format and allow different applications to exchange data on road networks . Please refer to the full documentation here RSS - Responsibility Sensitive Safety Carla integrates the C++ Library for Responsibility Sensitive Safety in the client library . This feature allows users to investigate behaviours of RSS without having to implement anything . Carla will take care of providing the input , and applying the output to the AD systems on the fly . Refer to the full documentation here AWS and RLlib integration The RLlib integration brings support between the Ray / RLlib library and Carla , allowing the easy use of the Carla environment for training and inference purposes . Ray is an open source framework that provides a simple , universal API for building distributed applications . Ray is packaged with RLlib , a scalable reinforcement learning library , and Tune , a scalable hyperparameter tuning library . Read more about operating Carla on AWS and RLlib here . Chrono physics Chrono is a multi - physics simulation engine providing high realism vehicle dynamics using templates . Carla ' s Chrono integraion allows Carla users to add Chrono templates to simulate vehicle dynamics . Please refer to the full documentation here .","title":"3rd Party Integrations"},{"location":"3rd_party_integrations/#3rd-party-integrations","text":"Carla has been developed to integrate with several 3rd party applications in order to maximise its utility and extensability . The following ROS bridge SUMO Scenic CarSIM Chrono OpenDRIVE PTV Vissim RSS AWS and RLlib","title":"3rd Party Integrations"},{"location":"3rd_party_integrations/#ros-bridge","text":"Full documentation of the ROS bridge is found here . The ROS bridge enables two - way communication between ROS and Carla . The information from the Carla server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in Carla . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the Carla simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters .","title":"ROS bridge"},{"location":"3rd_party_integrations/#sumo","text":"Carla has developed a co - simulation feature with SUMO . This allows to distribute the tasks at will , and exploit the capabilities of each simulation in favour of the user . Please refer to the full documentation here .","title":"SUMO"},{"location":"3rd_party_integrations/#ptv-vissim","text":"PTV Vissim is a proprietary software package providing a comprehensive traffic simulation solution with a powerful GUI . To use PTV - Vissim with Carla refer to this guide","title":"PTV Vissim"},{"location":"3rd_party_integrations/#scenic","text":"Scenic is a set of libraries and a language for scenario specification and scene generation . Carla and scenic can work seemlessly together , read this guid to understand how to use scenic with Carla . If you need to learn more about Scenic , then read their \" Getting Started with Scenic \" guide and have a look at their tutorials for creating static and dynamic scenarios .","title":"Scenic"},{"location":"3rd_party_integrations/#carsim","text":"Carla ' s integration with CarSim allows vehicle controls in Carla to be forwarded to CarSim . CarSim will do all required physics calculations of the vehicle and return the new state to Carla . Learn how to use Carla alongside CarSIM here .","title":"CarSIM"},{"location":"3rd_party_integrations/#opendrive","text":"OpenDRIVE is an open format specification used to describe the logic of a road network intended to standardise the discription of road networks in digital format and allow different applications to exchange data on road networks . Please refer to the full documentation here","title":"OpenDRIVE"},{"location":"3rd_party_integrations/#rss-responsibility-sensitive-safety","text":"Carla integrates the C++ Library for Responsibility Sensitive Safety in the client library . This feature allows users to investigate behaviours of RSS without having to implement anything . Carla will take care of providing the input , and applying the output to the AD systems on the fly . Refer to the full documentation here","title":"RSS - Responsibility Sensitive Safety"},{"location":"3rd_party_integrations/#aws-and-rllib-integration","text":"The RLlib integration brings support between the Ray / RLlib library and Carla , allowing the easy use of the Carla environment for training and inference purposes . Ray is an open source framework that provides a simple , universal API for building distributed applications . Ray is packaged with RLlib , a scalable reinforcement learning library , and Tune , a scalable hyperparameter tuning library . Read more about operating Carla on AWS and RLlib here .","title":"AWS and RLlib integration"},{"location":"3rd_party_integrations/#chrono-physics","text":"Chrono is a multi - physics simulation engine providing high realism vehicle dynamics using templates . Carla ' s Chrono integraion allows Carla users to add Chrono templates to simulate vehicle dynamics . Please refer to the full documentation here .","title":"Chrono physics"},{"location":"adv_agents/","text":"Carla \u667a\u80fd \u4f53 Carla \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u8f66\u8f86 \u6cbf\u7740 \u968f\u673a \u7684 \u3001 \u65e0\u9650 \u7684 \u8def\u7ebf \u884c\u9a76 \uff0c \u6216\u8005 \u91c7\u7528 \u6700\u77ed \u7684 \u8def\u7ebf \u5230\u8fbe \u7ed9\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u667a\u80fd \u4f53 \u9075\u5b88 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5e76 \u5bf9 \u9053\u8def \u4e0a \u7684 \u5176\u4ed6 \u969c\u788d \u969c\u788d\u7269 \u505a\u51fa \u53cd\u5e94 \u3002 \u63d0\u4f9b \u4e09\u79cd \u667a\u80fd \u4f53 \u7c7b\u578b \u3002 \u53ef\u4ee5 \u4fee\u6539 \u76ee\u6807 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u3001 \u5c3e\u968f \u884c\u4e3a \u7b49 \u53c2\u6570 \u3002 \u53ef\u4ee5 \u6839\u636e \u7528\u6237 \u7684 \u9700\u8981 \u4fee\u6539 Actor \u7c7b \u6216 \u5c06 \u5176 \u7528\u4f5c \u57fa\u7c7b \u6765 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u3002 \u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0 \u8ba1\u5212 \u4e0e \u63a7\u5236 \u667a\u80fd \u4f53 \u884c\u4e3a \u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u667a\u80fd \u4f53 \u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0 Carla \u667a\u80fd \u4f53\u4e2d \u6d89\u53ca \u7684 \u4e3b\u8981 \u811a\u672c \u4f4d\u4e8e PythonAPI / carla / agents / navigation \u4e2d \u3002 \u5b83\u4eec \u5206\u4e3a \u4e24\u7c7b \uff1b \u8ba1\u5212 \u548c \u63a7\u5236 \u548c \u667a\u80fd \u4f53 \u884c\u4e3a \u3002 \u8ba1\u5212 \u4e0e \u63a7\u5236 controller . py : \u5c06 \u7eb5\u5411 \u548c \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u7c7b \uff0c VehiclePIDController \uff0c \u7528\u4e8e \u4ece CARLA \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u4f4e\u7ea7 \u63a7\u5236 \u3002 global _ route _ planner . py : \u4ece Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u8be6\u7ec6 \u7684 \u62d3\u6251 \u7ed3\u6784 \u4ee5 \u6784\u5efa \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \u7684 \u56fe\u5f62 \u8868\u793a \uff0c \u4e3a Local Planner \u63d0\u4f9b \u822a\u70b9 \u548c \u9053\u8def \u9009\u9879 \u4fe1\u606f \u3002 local _ planner . py : \u6839\u636e \u6765\u81ea VehiclePIDController \u7684 \u63a7\u5236 \u8f93\u5165 \u8ddf\u8e2a \u822a\u8def \u70b9 \u3002 \u822a\u70b9 \u53ef\u4ee5 \u7531 Global Route Planner \u63d0\u4f9b \uff0c \u4e5f \u53ef\u4ee5 \u52a8\u6001 \u8ba1\u7b97 \uff0c \u5728 \u8def\u53e3 \u9009\u62e9 \u968f\u673a \u8def\u5f84 \uff0c \u7c7b\u4f3c \u4e8e Traffic Manager \u3002 \u667a\u80fd \u4f53 \u884c\u4e3a basic _ agent . py : \u5305\u542b \u4e00\u4e2a \u667a\u80fd \u4f53 \u57fa\u7c7b \uff0c \u5b83 \u5b9e\u73b0 \u4e86 \u4e00\u4e2a Basic Agent \uff0c \u5b83 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u4ee5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u907f\u5f00 \u5176\u4ed6 \u8f66\u8f86 \uff0c \u54cd\u5e94 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4f46 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u3002 behavior _ agent . py : \u5305\u542b \u4e00\u4e2a \u5b9e\u73b0 \u66f4 \u590d\u6742 \u7684 Behavior Agent \u7684 \u7c7b \uff0c \u5b83 \u53ef\u4ee5 \u5728 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5185 \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8ddf\u968f \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u6807\u5fd7 \u548c \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \uff0c \u540c\u65f6 \u5c3e\u968f \u5176\u4ed6 \u8f66\u8f86 \u3002 \u6709 \u4e09\u79cd \u9884\u5b9a \u4e49 \u7684 \u7c7b\u578b \u51b3\u5b9a \u4e86 \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002 behavior _ types . py : \u5305\u542b \u5f71\u54cd Behavior Agent \u7684 \u884c\u4e3a \u7c7b\u578b \u7684 \u53c2\u6570 \uff1b \u8c28\u614e \u3001 \u6b63\u5e38 \u548c \u8fdb\u53d6 \u3002 \u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53 \u672c\u8282 \u5c06 \u89e3\u91ca \u5982\u4f55 \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u4f7f\u7528 \u793a\u4f8b Carla \u667a\u80fd \u4f53\u7c7b \u3002 \u5728 \u672c\u8282 \u7684 \u6700\u540e \uff0c \u60a8 \u5c06 \u4e86\u89e3 \u5982\u4f55 \u8fd0\u884c \u4e00\u4e2a \u793a\u4f8b \u811a\u672c \u6765 \u663e\u793a \u4e0d\u540c \u667a\u80fd \u4f53 \u7684 \u8fd0\u884c \u60c5\u51b5 \u3002 1 . \u5bfc\u5165 \u8981 \u4f7f\u7528 \u7684 \u667a\u80fd \u4f53\u7c7b \uff1a # \u5bfc\u5165 \u57fa\u672c \u667a\u80fd \u4f53 from agent . navigation . basic _ agent import BasicAgent # \u5bfc\u5165 \u884c\u4e3a \u667a\u80fd \u4f53 from agent . navigation . behavior _ agent import BehaviorAgent 2 . \u4efb\u4f55 \u8f66\u8f86 \u90fd \u53ef\u4ee5 \u53d8\u6210 \u667a\u80fd \u4f53 \u3002 \u751f\u6210 \u8f66\u8f86 \u5e76 \u5c06 \u5176 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 \u667a\u80fd \u4f53\u7c7b \u4ee5 \u5b9e\u4f8b \u5316\u5b83 \uff1a # \u542f\u52a8 \u4e00\u4e2a \u57fa\u672c \u667a\u80fd \u4f53 agent = BasicAgent ( vehicle ) # \u542f\u52a8 \u5177\u6709 \u653b\u51fb \u653b\u51fb\u6027 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u884c\u4e3a \u667a\u80fd \u4f53 agent = BehaviorAgent ( vehicle , behavior = ' aggressive ' ) \u5728 behavior types \u90e8\u5206 \u4e2d \u9605\u8bfb \u6709\u5173 \u884c\u4e3a \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u914d\u7f6e \u60a8 \u81ea\u5df1 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 3 . \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u667a\u80fd \u4f53 \u524d\u5f80 \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u5982\u679c \u60a8 \u4e0d \u4e3a \u667a\u80fd \u4f53 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u5b83 \u5c06 \u5728 \u5730\u56fe \u4e0a \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u6f2b\u6e38 \u3002 \u8981 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8bf7 \u4e3a \u667a\u80fd \u4f53 \u63d0\u4f9b \u4f4d\u7f6e \uff1a destination = random . choice ( spawn _ points ) . location agent . set _ destination ( destination ) 5 . \u5728 \u5bfc\u822a \u6b65\u9aa4 \u671f\u95f4 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u548c \u884c\u4e3a \u3002 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \uff0c Basic Agent \u5c06 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u5e76 \u901a\u8fc7 \u6267\u884c \u7d27\u6025 \u505c\u6b62 \u6765 \u5bf9 \u4efb\u4f55 \u8f66\u8f86 \u6216 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u505a\u51fa \u53cd\u5e94 \u3002 Behavior Agent \u5c06 \u6839\u636e \u60a8 \u5e94\u7528 \u7684 \u884c\u4e3a \u7c7b\u578b \u5bf9 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u505a\u51fa \u53cd\u5e94 \u3001 \u907f\u5f00 \u884c\u4eba \u3001 \u8ddf\u968f \u6c7d\u8f66 \u5e76 \u5728 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u5bfc\u822a \uff1a while True \uff1a vehicle . apply _ control ( agent . run _ step ( ) ) 6 . \u60a8 \u53ef\u4ee5 \u68c0\u67e5 \u667a\u80fd \u4f53 \u662f\u5426 \u5df2 \u5b8c\u6210 \u5176 \u8f68\u8ff9 \u5e76 \u5728 \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u65f6 \u6267\u884c \u64cd\u4f5c \u3002 \u4e00\u65e6 \u60a8 \u7684 \u8f66\u8f86 \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u4ee5\u4e0b \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u5c06 \u7ed3\u675f \u4eff\u771f \uff1a while True \uff1a if agent . done \uff08 \uff09 \uff1a print ( \" The taerget has been reached , stopping the simulation \" ) break vehicle . apply _ control ( agent . run _ step ( ) ) 7 . \u4e0d\u662f \u5728 \u667a\u80fd \u4f53 \u5230\u8fbe \u5176 \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \u65f6 \u5b8c\u6210 \u4eff\u771f \uff0c \u800c\u662f \u53ef\u4ee5 \u751f\u6210 \u4e00\u6761 \u65b0 \u7684 \u968f\u673a \u8def\u7ebf \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \uff1a while True \uff1a if agent . done ( ) : agent . set _ destination ( random . choice ( spawn _ points ) . location ) print ( \" The target has been reached , searching for another target \" ) vehicle . apply _ control ( agent . run _ step ( ) ) Basic Agent \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u65b9\u6cd5 \u6765 \u64cd\u7eb5 \u667a\u80fd \u4f53 \u884c\u4e3a \u6216 \u9075\u5faa \u7684 \u7a0b\u5e8f \u8def\u7ebf \uff1a set _ target _ speed ( speed ) : \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \u8bbe\u7f6e \u76ee\u6807 \u901f\u5ea6 follow _ speed _ limits ( value = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u9075\u5faa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 set _ destination ( end _ location , start _ location = None ) : \u667a\u80fd \u4f53\u5c06 \u901a\u8fc7 \u53ef\u80fd \u7684 \u6700 \u77ed\u8def \u8def\u7ebf \u77ed\u8def\u7ebf \u4ece \u7279\u5b9a \u7684 \u8d77\u59cb \u4f4d\u7f6e \u5230 \u7ed3\u675f \u4f4d\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \u8d77\u59cb \u4f4d\u7f6e \uff0c \u5b83 \u5c06 \u4f7f\u7528 \u5f53\u524d \u667a\u80fd \u4f53 \u4f4d\u7f6e \u3002 set _ global _ plan ( plan , stop _ waypoint _ creation = True , clean _ queue = True ) : \u4e3a \u667a\u80fd \u4f53 \u6dfb\u52a0 \u4e00\u4e2a \u5177\u4f53 \u7684 \u8ba1\u5212 \u3002 \u8ba1\u5212 \u53c2\u6570 \u5e94 \u5305\u542b \u4e00\u4e2a [ carla . Waypoint , RoadOption ] \u5217\u8868 \uff0c \u8fd9 \u5c06 \u662f \u667a\u80fd \u4f53 \u9700\u8981 \u91c7\u53d6 \u7684 \u8def\u5f84 \u3002 stop _ waypoint _ creation \u5c06 \u9632\u6b62 \u5728 \u8def\u5f84 \u8fd0\u884c \u540e \u81ea\u52a8 \u521b\u5efa \u822a\u70b9 \u3002 clean _ queue \u5c06 \u91cd\u7f6e \u667a\u80fd \u4f53 \u7684 \u5f53\u524d \u8ba1\u5212 \u3002 trace _ route ( start _ waypoint , end _ waypoint ) : \u4ece Global Route Planner \u83b7\u53d6 \u4e24\u4e2a \u822a\u70b9 \u4e4b\u95f4 \u7684 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \uff0c \u5e76 \u5c06 \u8def\u5f84 \u4f5c\u4e3a [ carla . Waypoint , RoadOption ] \u5217\u8868 \u8fd4\u56de \uff0c \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \u3002 ignore _ traffic _ lights ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 ignore _ stop _ signs ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u505c\u8f66 \u6807\u5fd7 \u3002 ignore _ vehicles ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u5bf9 \u5176\u4ed6 \u8f66\u8f86 \u4f5c\u51fa \u53cd\u5e94 \u4f5c\u51fa\u53cd\u5e94 \u3002 \u5728 PythonAPI / examples \u4e2d \u627e\u5230 \u7684 automatic _ control . py \u811a\u672c \u662f \u57fa\u672c \u548c \u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u4e00\u4e2a \u793a\u4f8b \u3002 \u8981 \u5c1d\u8bd5 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5bfc\u822a \u5230 \u793a\u4f8b \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u4f7f\u7528 \u57fa\u672c \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Basic # \u4f7f\u7528 \u884c\u4e3a \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Behavior -- behavior = aggressive \u884c\u4e3a \u7c7b\u578b \u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u7c7b\u578b \u5728 behavior _ types . py \u4e2d \u5b9a\u4e49 \u3002 \u4e09\u4e2a \u9884 \u914d\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u662f ' cautious ' \u3001 ' normal ' \u548c ' aggressive ' \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8bbe\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u4fee\u6539 \u5b83\u4eec \u6216 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u4ee5\u4e0b \u53d8\u91cf \uff1a max _ speed \uff1a \u60a8 \u7684 \u8f66\u8f86 \u80fd\u591f \u8fbe\u5230 \u7684 \u6700\u9ad8 \u901f\u5ea6 \uff08 \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \uff09 \u3002 speed _ lim _ dist \uff1a \u4ee5 km / h \u4e3a \u5355\u4f4d \u7684 \u503c \uff0c \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u4e0e \u5f53\u524d \u9650\u901f \u7684 \u8ddd\u79bb \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u9650\u901f \u4e3a 30km / h \u4e14 speed _ lim _ dist \u4e3a 10km / h \uff0c \u5219 \u76ee\u6807 \u901f\u5ea6 \u5c06 \u662f 20 \u516c\u91cc / \u5c0f\u65f6 \uff09 speed _ decrease \uff1a \u5f53 \u63a5\u8fd1 \u524d\u65b9 \u8f83\u6162 \u7684 \u8f66\u8f86 \u65f6 \uff0c \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u4ee5 \u591a \u5feb \u7684 \u516c\u91cc / \u5c0f\u65f6 \u51cf\u901f \u3002 safety _ time \uff1a \u78b0\u649e \u65f6\u95f4 \uff1b \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u7a81\u7136 \u5239\u8f66 \uff0c \u5b83 \u4e0e \u524d\u9762 \u7684 \u8f66\u8f86 \u76f8\u649e \u6240 \u9700 \u7684 \u65f6\u95f4 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 min _ proximity _ threshold \uff1a \u5728 \u60a8 \u7684 \u8f66\u8f86 \u6267\u884c \u907f\u8ba9 \u6216 \u5c3e\u968f \u7b49 \u64cd\u4f5c \u4e4b\u524d \uff0c \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u6216 \u884c\u4eba \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 braking _ distance \uff1a \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u6267\u884c \u7d27\u6025 \u505c\u8f66 \u7d27\u6025\u505c\u8f66 \u65f6 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u3002 tailgate _ counter \uff1a \u7528\u4e8e \u907f\u514d \u5728 \u6700\u540e \u4e00\u4e2a \u540e \u6321\u677f \u540e\u8fc7 \u5feb \u5c3e\u968f \u7684 \u8ba1\u6570 \u8ba1\u6570\u5668 \u3002 \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u8981 \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a 1 . \u5728 behavior _ types . py \u4e2d\u4e3a \u60a8 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u7c7b \uff1a class ProfileName ( object ) \uff1a # \u5b8c\u6574 \u7684 \u503c \u5b9a\u4e49 2 . \u5728 behavior _ agent . py \u811a\u672c \u4e2d \u5b9a\u4e49 \u548c \u5b9e\u4f8b \u5316 \u4f60 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a # \u667a\u80fd \u4f53 \u884c\u4e3a \u53c2\u6570 if behavior = = ' cautious ' : self ._ behavior = Cautious ( ) elif behavior = = ' normal ' : self ._ behavior = Normal ( ) elif behavior = = ' aggressive ' : self ._ behavior = Aggressive ( ) elif behavior = = ' < type _ name > ' : self ._ behavior = < TypeName > ( ) \u521b\u5efa \u667a\u80fd \u4f53 Carla \u667a\u80fd \u4f53 \u53ea\u662f \u7528\u6237 \u53ef\u4ee5 \u8fd0\u884c \u7684 \u667a\u80fd \u4f53 \u7c7b\u578b \u7684 \u793a\u4f8b \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 Basic Agent \u7684 \u57fa\u7840 \u4e0a \u521b\u5efa \u81ea\u5df1 \u7684 \u667a\u80fd \u4f53 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u6bcf\u4e2a \u667a\u80fd \u4f53\u53ea \u9700\u8981 \u4e24\u4e2a \u5143\u7d20 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u548c \u8fd0\u884c \u6b65 \u3002 \u5728 \u4e0b\u9762 \u67e5\u627e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u7684 \u6700\u5c0f \u5e03\u5c40 \u793a\u4f8b \uff1a import carla from agents . navigation . basic _ agent import BasicAgent class CustomAgent ( BasicAgent ) : def __ init __ ( self , vehicle , target _ speed = 20 , debug = False ) : \" \" \" : param vehicle : \u5e94\u7528 \u5230 \u672c\u5730 \u89c4\u5212 \u5668 \u903b\u8f91 \u7684 actor : param target _ speed : \u8f66\u8f86 \u79fb\u52a8 \u7684 \u901f\u5ea6 \uff08 Km / h \uff09 \" \" \" super ( ) .__ init __ ( target _ speed , \u8c03\u8bd5 ) def run _ step ( self , debug = False ) : \" \" \" \u6267\u884c \u4e00\u6b65 \u5bfc\u822a : return : carla . VehicleControl \" \" \" # \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u91c7\u53d6 \u7684 \u884c\u52a8 control = carla . VehicleControl ( ) return control \u67e5\u770b basic _ agent . py \u548c behavior _ agent . py \u811a\u672c \u4ee5 \u63a2\u7d22 \u5b83\u4eec \u7684 \u7ed3\u6784 \u548c \u529f\u80fd \uff0c \u4ee5 \u83b7\u53d6 \u6709\u5173 \u5982\u4f55 \u521b\u5efa \u81ea\u5df1 \u7684 \u66f4 \u591a \u60f3\u6cd5 \u3002 \u60a8 \u53ef\u4ee5 \u63a2\u7d22 \u63d0\u4f9b \u7684 \u667a\u80fd \u4f53 \u811a\u672c \u3001 \u6269\u5c55 \u5b83\u4eec \u6216 \u5c06 \u5b83\u4eec \u7528\u4f5c \u521b\u5efa \u81ea\u5df1 \u7684 \u57fa\u51c6 \u3002 \u5982\u679c \u60a8 \u5bf9 \u667a\u80fd \u4f53\u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u53d1\u5e16 \u3002","title":"Carla \u667a\u80fd \u4f53"},{"location":"adv_agents/#carla","text":"Carla \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u8f66\u8f86 \u6cbf\u7740 \u968f\u673a \u7684 \u3001 \u65e0\u9650 \u7684 \u8def\u7ebf \u884c\u9a76 \uff0c \u6216\u8005 \u91c7\u7528 \u6700\u77ed \u7684 \u8def\u7ebf \u5230\u8fbe \u7ed9\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u667a\u80fd \u4f53 \u9075\u5b88 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5e76 \u5bf9 \u9053\u8def \u4e0a \u7684 \u5176\u4ed6 \u969c\u788d \u969c\u788d\u7269 \u505a\u51fa \u53cd\u5e94 \u3002 \u63d0\u4f9b \u4e09\u79cd \u667a\u80fd \u4f53 \u7c7b\u578b \u3002 \u53ef\u4ee5 \u4fee\u6539 \u76ee\u6807 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u3001 \u5c3e\u968f \u884c\u4e3a \u7b49 \u53c2\u6570 \u3002 \u53ef\u4ee5 \u6839\u636e \u7528\u6237 \u7684 \u9700\u8981 \u4fee\u6539 Actor \u7c7b \u6216 \u5c06 \u5176 \u7528\u4f5c \u57fa\u7c7b \u6765 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u3002 \u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0 \u8ba1\u5212 \u4e0e \u63a7\u5236 \u667a\u80fd \u4f53 \u884c\u4e3a \u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u667a\u80fd \u4f53","title":"Carla \u667a\u80fd \u4f53"},{"location":"adv_agents/#_1","text":"Carla \u667a\u80fd \u4f53\u4e2d \u6d89\u53ca \u7684 \u4e3b\u8981 \u811a\u672c \u4f4d\u4e8e PythonAPI / carla / agents / navigation \u4e2d \u3002 \u5b83\u4eec \u5206\u4e3a \u4e24\u7c7b \uff1b \u8ba1\u5212 \u548c \u63a7\u5236 \u548c \u667a\u80fd \u4f53 \u884c\u4e3a \u3002","title":"\u667a\u80fd \u4f53 \u811a\u672c \u6982\u8ff0"},{"location":"adv_agents/#_2","text":"controller . py : \u5c06 \u7eb5\u5411 \u548c \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u7c7b \uff0c VehiclePIDController \uff0c \u7528\u4e8e \u4ece CARLA \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u4f4e\u7ea7 \u63a7\u5236 \u3002 global _ route _ planner . py : \u4ece Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u8be6\u7ec6 \u7684 \u62d3\u6251 \u7ed3\u6784 \u4ee5 \u6784\u5efa \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \u7684 \u56fe\u5f62 \u8868\u793a \uff0c \u4e3a Local Planner \u63d0\u4f9b \u822a\u70b9 \u548c \u9053\u8def \u9009\u9879 \u4fe1\u606f \u3002 local _ planner . py : \u6839\u636e \u6765\u81ea VehiclePIDController \u7684 \u63a7\u5236 \u8f93\u5165 \u8ddf\u8e2a \u822a\u8def \u70b9 \u3002 \u822a\u70b9 \u53ef\u4ee5 \u7531 Global Route Planner \u63d0\u4f9b \uff0c \u4e5f \u53ef\u4ee5 \u52a8\u6001 \u8ba1\u7b97 \uff0c \u5728 \u8def\u53e3 \u9009\u62e9 \u968f\u673a \u8def\u5f84 \uff0c \u7c7b\u4f3c \u4e8e Traffic Manager \u3002","title":"\u8ba1\u5212 \u4e0e \u63a7\u5236"},{"location":"adv_agents/#_3","text":"basic _ agent . py : \u5305\u542b \u4e00\u4e2a \u667a\u80fd \u4f53 \u57fa\u7c7b \uff0c \u5b83 \u5b9e\u73b0 \u4e86 \u4e00\u4e2a Basic Agent \uff0c \u5b83 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u4ee5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u907f\u5f00 \u5176\u4ed6 \u8f66\u8f86 \uff0c \u54cd\u5e94 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4f46 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u3002 behavior _ agent . py : \u5305\u542b \u4e00\u4e2a \u5b9e\u73b0 \u66f4 \u590d\u6742 \u7684 Behavior Agent \u7684 \u7c7b \uff0c \u5b83 \u53ef\u4ee5 \u5728 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u77ed \u7684 \u8ddd\u79bb \u5185 \u5230\u8fbe \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8ddf\u968f \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u6807\u5fd7 \u548c \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \uff0c \u540c\u65f6 \u5c3e\u968f \u5176\u4ed6 \u8f66\u8f86 \u3002 \u6709 \u4e09\u79cd \u9884\u5b9a \u4e49 \u7684 \u7c7b\u578b \u51b3\u5b9a \u4e86 \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002 behavior _ types . py : \u5305\u542b \u5f71\u54cd Behavior Agent \u7684 \u884c\u4e3a \u7c7b\u578b \u7684 \u53c2\u6570 \uff1b \u8c28\u614e \u3001 \u6b63\u5e38 \u548c \u8fdb\u53d6 \u3002","title":"\u667a\u80fd \u4f53 \u884c\u4e3a"},{"location":"adv_agents/#_4","text":"\u672c\u8282 \u5c06 \u89e3\u91ca \u5982\u4f55 \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u4f7f\u7528 \u793a\u4f8b Carla \u667a\u80fd \u4f53\u7c7b \u3002 \u5728 \u672c\u8282 \u7684 \u6700\u540e \uff0c \u60a8 \u5c06 \u4e86\u89e3 \u5982\u4f55 \u8fd0\u884c \u4e00\u4e2a \u793a\u4f8b \u811a\u672c \u6765 \u663e\u793a \u4e0d\u540c \u667a\u80fd \u4f53 \u7684 \u8fd0\u884c \u60c5\u51b5 \u3002 1 . \u5bfc\u5165 \u8981 \u4f7f\u7528 \u7684 \u667a\u80fd \u4f53\u7c7b \uff1a # \u5bfc\u5165 \u57fa\u672c \u667a\u80fd \u4f53 from agent . navigation . basic _ agent import BasicAgent # \u5bfc\u5165 \u884c\u4e3a \u667a\u80fd \u4f53 from agent . navigation . behavior _ agent import BehaviorAgent 2 . \u4efb\u4f55 \u8f66\u8f86 \u90fd \u53ef\u4ee5 \u53d8\u6210 \u667a\u80fd \u4f53 \u3002 \u751f\u6210 \u8f66\u8f86 \u5e76 \u5c06 \u5176 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 \u667a\u80fd \u4f53\u7c7b \u4ee5 \u5b9e\u4f8b \u5316\u5b83 \uff1a # \u542f\u52a8 \u4e00\u4e2a \u57fa\u672c \u667a\u80fd \u4f53 agent = BasicAgent ( vehicle ) # \u542f\u52a8 \u5177\u6709 \u653b\u51fb \u653b\u51fb\u6027 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u884c\u4e3a \u667a\u80fd \u4f53 agent = BehaviorAgent ( vehicle , behavior = ' aggressive ' ) \u5728 behavior types \u90e8\u5206 \u4e2d \u9605\u8bfb \u6709\u5173 \u884c\u4e3a \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u914d\u7f6e \u60a8 \u81ea\u5df1 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 3 . \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u667a\u80fd \u4f53 \u524d\u5f80 \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u5982\u679c \u60a8 \u4e0d \u4e3a \u667a\u80fd \u4f53 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u5b83 \u5c06 \u5728 \u5730\u56fe \u4e0a \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u6f2b\u6e38 \u3002 \u8981 \u8bbe\u7f6e \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u8bf7 \u4e3a \u667a\u80fd \u4f53 \u63d0\u4f9b \u4f4d\u7f6e \uff1a destination = random . choice ( spawn _ points ) . location agent . set _ destination ( destination ) 5 . \u5728 \u5bfc\u822a \u6b65\u9aa4 \u671f\u95f4 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u548c \u884c\u4e3a \u3002 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \uff0c Basic Agent \u5c06 \u5e94\u7528 \u8f66\u8f86 \u63a7\u5236 \u5e76 \u901a\u8fc7 \u6267\u884c \u7d27\u6025 \u505c\u6b62 \u6765 \u5bf9 \u4efb\u4f55 \u8f66\u8f86 \u6216 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u505a\u51fa \u53cd\u5e94 \u3002 Behavior Agent \u5c06 \u6839\u636e \u60a8 \u5e94\u7528 \u7684 \u884c\u4e3a \u7c7b\u578b \u5bf9 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u505a\u51fa \u53cd\u5e94 \u3001 \u907f\u5f00 \u884c\u4eba \u3001 \u8ddf\u968f \u6c7d\u8f66 \u5e76 \u5728 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u5bfc\u822a \uff1a while True \uff1a vehicle . apply _ control ( agent . run _ step ( ) ) 6 . \u60a8 \u53ef\u4ee5 \u68c0\u67e5 \u667a\u80fd \u4f53 \u662f\u5426 \u5df2 \u5b8c\u6210 \u5176 \u8f68\u8ff9 \u5e76 \u5728 \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u65f6 \u6267\u884c \u64cd\u4f5c \u3002 \u4e00\u65e6 \u60a8 \u7684 \u8f66\u8f86 \u5230\u8fbe \u76ee\u7684 \u76ee\u7684\u5730 \uff0c \u4ee5\u4e0b \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u5c06 \u7ed3\u675f \u4eff\u771f \uff1a while True \uff1a if agent . done \uff08 \uff09 \uff1a print ( \" The taerget has been reached , stopping the simulation \" ) break vehicle . apply _ control ( agent . run _ step ( ) ) 7 . \u4e0d\u662f \u5728 \u667a\u80fd \u4f53 \u5230\u8fbe \u5176 \u76ee\u6807 \u76ee\u7684 \u76ee\u7684\u5730 \u65f6 \u5b8c\u6210 \u4eff\u771f \uff0c \u800c\u662f \u53ef\u4ee5 \u751f\u6210 \u4e00\u6761 \u65b0 \u7684 \u968f\u673a \u8def\u7ebf \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \uff1a while True \uff1a if agent . done ( ) : agent . set _ destination ( random . choice ( spawn _ points ) . location ) print ( \" The target has been reached , searching for another target \" ) vehicle . apply _ control ( agent . run _ step ( ) ) Basic Agent \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u65b9\u6cd5 \u6765 \u64cd\u7eb5 \u667a\u80fd \u4f53 \u884c\u4e3a \u6216 \u9075\u5faa \u7684 \u7a0b\u5e8f \u8def\u7ebf \uff1a set _ target _ speed ( speed ) : \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \u8bbe\u7f6e \u76ee\u6807 \u901f\u5ea6 follow _ speed _ limits ( value = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u9075\u5faa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 set _ destination ( end _ location , start _ location = None ) : \u667a\u80fd \u4f53\u5c06 \u901a\u8fc7 \u53ef\u80fd \u7684 \u6700 \u77ed\u8def \u8def\u7ebf \u77ed\u8def\u7ebf \u4ece \u7279\u5b9a \u7684 \u8d77\u59cb \u4f4d\u7f6e \u5230 \u7ed3\u675f \u4f4d\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \u8d77\u59cb \u4f4d\u7f6e \uff0c \u5b83 \u5c06 \u4f7f\u7528 \u5f53\u524d \u667a\u80fd \u4f53 \u4f4d\u7f6e \u3002 set _ global _ plan ( plan , stop _ waypoint _ creation = True , clean _ queue = True ) : \u4e3a \u667a\u80fd \u4f53 \u6dfb\u52a0 \u4e00\u4e2a \u5177\u4f53 \u7684 \u8ba1\u5212 \u3002 \u8ba1\u5212 \u53c2\u6570 \u5e94 \u5305\u542b \u4e00\u4e2a [ carla . Waypoint , RoadOption ] \u5217\u8868 \uff0c \u8fd9 \u5c06 \u662f \u667a\u80fd \u4f53 \u9700\u8981 \u91c7\u53d6 \u7684 \u8def\u5f84 \u3002 stop _ waypoint _ creation \u5c06 \u9632\u6b62 \u5728 \u8def\u5f84 \u8fd0\u884c \u540e \u81ea\u52a8 \u521b\u5efa \u822a\u70b9 \u3002 clean _ queue \u5c06 \u91cd\u7f6e \u667a\u80fd \u4f53 \u7684 \u5f53\u524d \u8ba1\u5212 \u3002 trace _ route ( start _ waypoint , end _ waypoint ) : \u4ece Global Route Planner \u83b7\u53d6 \u4e24\u4e2a \u822a\u70b9 \u4e4b\u95f4 \u7684 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \uff0c \u5e76 \u5c06 \u8def\u5f84 \u4f5c\u4e3a [ carla . Waypoint , RoadOption ] \u5217\u8868 \u8fd4\u56de \uff0c \u4f9b \u667a\u80fd \u4f53 \u9075\u5faa \u3002 ignore _ traffic _ lights ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 ignore _ stop _ signs ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u670d\u4ece \u505c\u8f66 \u6807\u5fd7 \u3002 ignore _ vehicles ( active = True ) : \u8bbe\u7f6e \u667a\u80fd \u4f53 \u5ffd\u7565 \u6216 \u5bf9 \u5176\u4ed6 \u8f66\u8f86 \u4f5c\u51fa \u53cd\u5e94 \u4f5c\u51fa\u53cd\u5e94 \u3002 \u5728 PythonAPI / examples \u4e2d \u627e\u5230 \u7684 automatic _ control . py \u811a\u672c \u662f \u57fa\u672c \u548c \u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u4e00\u4e2a \u793a\u4f8b \u3002 \u8981 \u5c1d\u8bd5 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5bfc\u822a \u5230 \u793a\u4f8b \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u4f7f\u7528 \u57fa\u672c \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Basic # \u4f7f\u7528 \u884c\u4e3a \u667a\u80fd \u4f53 \u8fd0\u884c python3 automatic _ control . py -- agent = Behavior -- behavior = aggressive","title":"\u5b9e\u73b0 \u4e00\u4e2a \u667a\u80fd \u4f53"},{"location":"adv_agents/#_5","text":"\u884c\u4e3a \u667a\u80fd \u4f53 \u7684 \u884c\u4e3a \u7c7b\u578b \u5728 behavior _ types . py \u4e2d \u5b9a\u4e49 \u3002 \u4e09\u4e2a \u9884 \u914d\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u662f ' cautious ' \u3001 ' normal ' \u548c ' aggressive ' \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8bbe\u7f6e \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u4fee\u6539 \u5b83\u4eec \u6216 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u4ee5\u4e0b \u53d8\u91cf \uff1a max _ speed \uff1a \u60a8 \u7684 \u8f66\u8f86 \u80fd\u591f \u8fbe\u5230 \u7684 \u6700\u9ad8 \u901f\u5ea6 \uff08 \u4ee5 \u516c\u91cc / \u5c0f\u65f6 \u4e3a \u5355\u4f4d \uff09 \u3002 speed _ lim _ dist \uff1a \u4ee5 km / h \u4e3a \u5355\u4f4d \u7684 \u503c \uff0c \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u4e0e \u5f53\u524d \u9650\u901f \u7684 \u8ddd\u79bb \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u9650\u901f \u4e3a 30km / h \u4e14 speed _ lim _ dist \u4e3a 10km / h \uff0c \u5219 \u76ee\u6807 \u901f\u5ea6 \u5c06 \u662f 20 \u516c\u91cc / \u5c0f\u65f6 \uff09 speed _ decrease \uff1a \u5f53 \u63a5\u8fd1 \u524d\u65b9 \u8f83\u6162 \u7684 \u8f66\u8f86 \u65f6 \uff0c \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u4ee5 \u591a \u5feb \u7684 \u516c\u91cc / \u5c0f\u65f6 \u51cf\u901f \u3002 safety _ time \uff1a \u78b0\u649e \u65f6\u95f4 \uff1b \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u7a81\u7136 \u5239\u8f66 \uff0c \u5b83 \u4e0e \u524d\u9762 \u7684 \u8f66\u8f86 \u76f8\u649e \u6240 \u9700 \u7684 \u65f6\u95f4 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 min _ proximity _ threshold \uff1a \u5728 \u60a8 \u7684 \u8f66\u8f86 \u6267\u884c \u907f\u8ba9 \u6216 \u5c3e\u968f \u7b49 \u64cd\u4f5c \u4e4b\u524d \uff0c \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u6216 \u884c\u4eba \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 braking _ distance \uff1a \u60a8 \u7684 \u8f66\u8f86 \u5c06 \u6267\u884c \u7d27\u6025 \u505c\u8f66 \u7d27\u6025\u505c\u8f66 \u65f6 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u3002 tailgate _ counter \uff1a \u7528\u4e8e \u907f\u514d \u5728 \u6700\u540e \u4e00\u4e2a \u540e \u6321\u677f \u540e\u8fc7 \u5feb \u5c3e\u968f \u7684 \u8ba1\u6570 \u8ba1\u6570\u5668 \u3002","title":"\u884c\u4e3a \u7c7b\u578b"},{"location":"adv_agents/#_6","text":"\u8981 \u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a 1 . \u5728 behavior _ types . py \u4e2d\u4e3a \u60a8 \u7684 \u884c\u4e3a \u7c7b\u578b \u521b\u5efa \u7c7b \uff1a class ProfileName ( object ) \uff1a # \u5b8c\u6574 \u7684 \u503c \u5b9a\u4e49 2 . \u5728 behavior _ agent . py \u811a\u672c \u4e2d \u5b9a\u4e49 \u548c \u5b9e\u4f8b \u5316 \u4f60 \u7684 \u884c\u4e3a \u7c7b\u578b \uff1a # \u667a\u80fd \u4f53 \u884c\u4e3a \u53c2\u6570 if behavior = = ' cautious ' : self ._ behavior = Cautious ( ) elif behavior = = ' normal ' : self ._ behavior = Normal ( ) elif behavior = = ' aggressive ' : self ._ behavior = Aggressive ( ) elif behavior = = ' < type _ name > ' : self ._ behavior = < TypeName > ( )","title":"\u521b\u5efa \u81ea\u5df1 \u7684 \u884c\u4e3a \u7c7b\u578b"},{"location":"adv_agents/#_7","text":"Carla \u667a\u80fd \u4f53 \u53ea\u662f \u7528\u6237 \u53ef\u4ee5 \u8fd0\u884c \u7684 \u667a\u80fd \u4f53 \u7c7b\u578b \u7684 \u793a\u4f8b \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 Basic Agent \u7684 \u57fa\u7840 \u4e0a \u521b\u5efa \u81ea\u5df1 \u7684 \u667a\u80fd \u4f53 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u6bcf\u4e2a \u667a\u80fd \u4f53\u53ea \u9700\u8981 \u4e24\u4e2a \u5143\u7d20 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u548c \u8fd0\u884c \u6b65 \u3002 \u5728 \u4e0b\u9762 \u67e5\u627e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u667a\u80fd \u4f53 \u7684 \u6700\u5c0f \u5e03\u5c40 \u793a\u4f8b \uff1a import carla from agents . navigation . basic _ agent import BasicAgent class CustomAgent ( BasicAgent ) : def __ init __ ( self , vehicle , target _ speed = 20 , debug = False ) : \" \" \" : param vehicle : \u5e94\u7528 \u5230 \u672c\u5730 \u89c4\u5212 \u5668 \u903b\u8f91 \u7684 actor : param target _ speed : \u8f66\u8f86 \u79fb\u52a8 \u7684 \u901f\u5ea6 \uff08 Km / h \uff09 \" \" \" super ( ) .__ init __ ( target _ speed , \u8c03\u8bd5 ) def run _ step ( self , debug = False ) : \" \" \" \u6267\u884c \u4e00\u6b65 \u5bfc\u822a : return : carla . VehicleControl \" \" \" # \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u91c7\u53d6 \u7684 \u884c\u52a8 control = carla . VehicleControl ( ) return control \u67e5\u770b basic _ agent . py \u548c behavior _ agent . py \u811a\u672c \u4ee5 \u63a2\u7d22 \u5b83\u4eec \u7684 \u7ed3\u6784 \u548c \u529f\u80fd \uff0c \u4ee5 \u83b7\u53d6 \u6709\u5173 \u5982\u4f55 \u521b\u5efa \u81ea\u5df1 \u7684 \u66f4 \u591a \u60f3\u6cd5 \u3002 \u60a8 \u53ef\u4ee5 \u63a2\u7d22 \u63d0\u4f9b \u7684 \u667a\u80fd \u4f53 \u811a\u672c \u3001 \u6269\u5c55 \u5b83\u4eec \u6216 \u5c06 \u5b83\u4eec \u7528\u4f5c \u521b\u5efa \u81ea\u5df1 \u7684 \u57fa\u51c6 \u3002 \u5982\u679c \u60a8 \u5bf9 \u667a\u80fd \u4f53\u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u53d1\u5e16 \u3002","title":"\u521b\u5efa \u667a\u80fd \u4f53"},{"location":"adv_benchmarking/","text":"\u57fa\u51c6 \u6027\u80fd \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u4f7f \u7528\u6237 \u80fd\u591f \u8f7b\u677e \u5730 \u5206\u6790 Carla \u5728 \u81ea\u5df1 \u7684 \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u8be5 \u811a\u672c \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u8fd0\u884c \u591a\u79cd \u7ed3\u5408 \u4e0d\u540c \u5730\u56fe \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5929\u6c14 \u6761\u4ef6 \u7684 \u573a\u666f \u3002 \u5b83 \u62a5\u544a \u8bf7\u6c42 \u573a\u666f \u4e0b FPS \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u548c \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u6211\u4eec \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u8981\u6c42 \u3001 \u5728 \u54ea\u91cc \u53ef\u4ee5 \u627e\u5230 \u811a\u672c \u3001 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fd0\u884c \u573a\u666f \u7684 \u6807\u5fd7 \u4ee5\u53ca \u6709\u5173 \u5982\u4f55 \u8fd0\u884c \u547d\u4ee4 \u7684 \u793a\u4f8b \u3002 \u6211\u4eec \u8fd8 \u5305\u542b \u4e86 \u5355\u72ec \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u7ed3\u679c \uff0c \u8be5 \u57fa\u51c6 \u6d4b\u8bd5 \u5728 \u4f7f\u7528 \u4e0d\u540c \u8f66\u8f86 \u6570\u91cf \u7ec4\u5408 \u3001 \u542f\u7528 \u7269\u7406 \u548c / \u6216 \u542f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u65f6 \u6d4b\u91cf Carla \u5728 \u7279\u5b9a \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u7ed3\u679c \u4e0e \u4f7f\u7528 \u7684 Carla \u7248\u672c \u548c \u6267\u884c \u6d4b\u8bd5 \u7684 \u73af\u5883 \u4e00\u8d77 \u663e\u793a \u3002 \u57fa\u51c6 \u811a\u672c \u5f00\u59cb \u4e4b\u524d \u6982\u8981 \u6807\u5fd7 Carla \u6027\u80fd \u62a5\u544a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \u57fa\u51c6 \u811a\u672c \u53ef\u4ee5 \u5728 PythonAPI / util \u4e2d \u627e\u5230 \u3002 \u5b83 \u6709 \u51e0\u4e2a \u6807\u5fd7 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8981 \u6d4b\u8bd5 \u7684 \u573a\u666f \uff0c \u4e0b\u9762 \u7684 \u6982\u8981 \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u5f00\u59cb \u4e4b\u524d \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \u9700\u8981 \u5b89\u88c5 \u4e00\u4e9b \u4f9d\u8d56 \u9879 \u624d\u80fd \u8fd0\u884c \u5b83 \uff1a python - m pip install - U py - cpuinfo = = 5.0 . 0 python - m pip install psutil python - m pip install python - tr python - m pip install gpuinfo python - m pip install GPUtil \u6982\u8981 python3 performance _ benchmark . py [ -- host HOST ] [ -- port PORT ] [ -- file FILE ] [ -- tm ] [ -- fixed _ dt FIXED _ DT ] [ -- render _ mode ] [ -- no _ render _ mode ] [ -- show _ scenarios ] ) [ -- sensors SENSORS [ SENSORS ... ] ] [ -- maps MAPS [ MAPS ... ] ] [ -- weather WEATHER [ WEATHER ... ] ] \u6807\u5fd7 -- host : IP _ ADDRESS \u9ed8\u8ba4 \uff1a \u672c\u5730 \u4e3b\u673a \u3002 \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4e3b\u673a \u3002 -- port : \u7aef\u53e3 \u9ed8\u8ba4 \uff1a 2000 \u914d\u7f6e \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- file : \u6587\u4ef6 \u6587\u4ef6\u540d . md \u9ed8\u8ba4 : benchmark . md \u4ee5 \u964d\u4ef7 \u8868 \u683c\u5f0f \u5c06 \u7ed3\u679c \u5199\u5165 \u6587\u4ef6 \u3002 -- tm \u5207\u6362 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u57fa\u51c6 -- ticks \u9ed8\u8ba4 \uff1a 100 \u8bbe\u7f6e \u7528\u4e8e \u6bcf\u4e2a \u573a\u666f \u7684 \u523b\u5ea6 \u6570 \u3002 -- \u540c\u6b65 \u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- async \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- fixed _ dt \u9ed8\u8ba4 \uff1a 0.05 \u5982\u679c \u60a8 \u60f3 \u8bbe\u7f6e \u589e\u91cf \u65f6\u95f4 \u6b65\u957f \uff0c \u8bf7 \u4e0e \u540c\u6b65 \u6a21\u5f0f \u4e00\u8d77 \u4f7f\u7528 \u3002 -- render _ mode \u5728 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- no _ render _ mode \u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u975e \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 -- show _ scenarios \u4ec5 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \u8fd0\u884c \u811a\u672c \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u6240\u6709 \u53ef\u7528 \u573a\u666f \u53c2\u6570 \u7684 \u5217\u8868 \u3002 \u5f53 \u4e0e \u5176\u4ed6 \u6807\u5fd7 \u7ed3\u5408 \u4f7f\u7528 \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u5c06 \u5728 \u672a \u5b9e\u9645 \u6267\u884c \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c \u7684 \u573a\u666f \u7684 \u9884\u89c8 \u3002 -- sensors \uff1a \u6574\u6570 \u9ed8\u8ba4 \uff1a \u5168\u90e8 \u57fa\u51c6 \u6d4b\u8bd5 \u4e2d \u4f7f\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 LIDAR \u548c RGB \u76f8\u673a \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \uff1a 0 : cam - 300x200 1 : cam - 800x600 2 : cam - 1900x1080 3 : cam - 300x200 cam - 300x200 \uff08 \u4e24\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 4 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 100k 5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 500k 6 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 1M -- maps \uff1a \u57ce\u5e02 \u540d\u79f0 \u9ed8\u8ba4 \uff1a \u6240\u6709 \u5730\u56fe \u6240\u6709 [ Carla \u5730\u56fe ] [ carla _ maps ] \uff0c \u5305\u62ec \u5206\u5c42 \u548c\u5b50 \u5206\u5c42 \uff0c \u90fd \u53ef\u7528 \u3002 [ carla _ maps ] \uff1a https : / / carla . readthedocs . io / en / latest / core _ map / # carla - maps -- \u5929\u6c14 \uff1a \u6574\u6570 Default \uff1a \u6240\u6709 \u5929\u6c14 \u6761\u4ef6 \u6539\u53d8 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \uff1a 0 : ClearNoon 1 : CloudyNoon 2 : SoftRainSunset \u5982\u4f55 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 1 . \u542f\u52a8 Carla \uff1a # Linux \uff1a . / CarlaUE4 . sh # Windows \uff1a CarlaUE4 . exe \uff03 Source \uff1a make launch \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u5bfc\u822a \u5230 PythonAPI / util \u4ee5 \u627e\u5230 performance _ benchmark . py \u811a\u672c \uff1a \u663e\u793a \u6240\u6709 \u53ef\u80fd \u7684 \u573a\u666f \u800c \u4e0d \u8fd0\u884c \u5b83\u4eec \uff1a python3 performance _ benchmark . py -- show _ scenarios \u663e\u793a \u5728 \u5e94\u7528 \u914d\u7f6e \u800c \u4e0d \u5b9e\u9645 \u6267\u884c \u914d\u7f6e \u65f6 \u5c06 \u8fd0\u884c \u54ea\u4e9b \u573a\u666f \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 -- show _ scenarios ` \u6267\u884c \u8fd9\u4e9b \u573a\u666f \u7684 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 \u6267\u884c \u5f02\u6b65 \u6a21\u5f0f \u548c \u6e32\u67d3 \u6a21\u5f0f \u7684 \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- async -- render _ mode Carla \u6027\u80fd \u62a5\u544a \u4e0b\u8868 \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u5728 \u968f\u7740 \u8f66\u8f86 \u6570\u91cf \u589e\u52a0 \u4ee5\u53ca \u542f\u7528 \u548c / \u6216 \u7981\u7528 \u7269\u7406 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e0d\u540c \u7ec4\u5408 \u8fd0\u884c Carla \u65f6 \u5bf9 \u5e73\u5747 FPS \u7684 \u6027\u80fd \u5f71\u54cd \u3002 Carla \u7248\u672c \uff1a 29 / 01 / 21 \u5f00\u53d1 \u5206\u652f \uff08 \u63d0\u4ea4 198fa38c9b1317c114ac15dff130766253c02832 \uff09 \u73af\u5883 \u89c4\u683c \uff1a Intel ( R ) Xeon ( R ) CPU E5 - 1620 v3 @ 3.50 GHz / 32 GB / NVIDIA GeForce GTX 1080 Ti \u8f66\u8f86 \u6570\u91cf Phy : Off TM : Off Phy : On TM : Off Phy : Off TM : On Phy : On TM : On 0 1220 1102 702 729 1 805 579 564 422 10 473 223 119 98 50 179 64 37 26 100 92 34 22 15 150 62 21 17 10 200 47 15 14 7 250 37 11 12 6 \u5982\u679c \u60a8 \u5bf9 \u6027\u80fd \u57fa\u51c6 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u4e0d\u8981 \u72b9\u8c6b \uff0c \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u57fa\u51c6 \u6027\u80fd"},{"location":"adv_benchmarking/#_1","text":"\u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u4f7f \u7528\u6237 \u80fd\u591f \u8f7b\u677e \u5730 \u5206\u6790 Carla \u5728 \u81ea\u5df1 \u7684 \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u8be5 \u811a\u672c \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u8fd0\u884c \u591a\u79cd \u7ed3\u5408 \u4e0d\u540c \u5730\u56fe \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5929\u6c14 \u6761\u4ef6 \u7684 \u573a\u666f \u3002 \u5b83 \u62a5\u544a \u8bf7\u6c42 \u573a\u666f \u4e0b FPS \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u548c \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u6211\u4eec \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u8981\u6c42 \u3001 \u5728 \u54ea\u91cc \u53ef\u4ee5 \u627e\u5230 \u811a\u672c \u3001 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fd0\u884c \u573a\u666f \u7684 \u6807\u5fd7 \u4ee5\u53ca \u6709\u5173 \u5982\u4f55 \u8fd0\u884c \u547d\u4ee4 \u7684 \u793a\u4f8b \u3002 \u6211\u4eec \u8fd8 \u5305\u542b \u4e86 \u5355\u72ec \u57fa\u51c6 \u6d4b\u8bd5 \u7684 \u7ed3\u679c \uff0c \u8be5 \u57fa\u51c6 \u6d4b\u8bd5 \u5728 \u4f7f\u7528 \u4e0d\u540c \u8f66\u8f86 \u6570\u91cf \u7ec4\u5408 \u3001 \u542f\u7528 \u7269\u7406 \u548c / \u6216 \u542f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u65f6 \u6d4b\u91cf Carla \u5728 \u7279\u5b9a \u73af\u5883 \u4e2d \u7684 \u6027\u80fd \u3002 \u7ed3\u679c \u4e0e \u4f7f\u7528 \u7684 Carla \u7248\u672c \u548c \u6267\u884c \u6d4b\u8bd5 \u7684 \u73af\u5883 \u4e00\u8d77 \u663e\u793a \u3002 \u57fa\u51c6 \u811a\u672c \u5f00\u59cb \u4e4b\u524d \u6982\u8981 \u6807\u5fd7 Carla \u6027\u80fd \u62a5\u544a","title":"\u57fa\u51c6 \u6027\u80fd"},{"location":"adv_benchmarking/#_2","text":"\u57fa\u51c6 \u811a\u672c \u53ef\u4ee5 \u5728 PythonAPI / util \u4e2d \u627e\u5230 \u3002 \u5b83 \u6709 \u51e0\u4e2a \u6807\u5fd7 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8981 \u6d4b\u8bd5 \u7684 \u573a\u666f \uff0c \u4e0b\u9762 \u7684 \u6982\u8981 \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002","title":"\u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c"},{"location":"adv_benchmarking/#_3","text":"\u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \u9700\u8981 \u5b89\u88c5 \u4e00\u4e9b \u4f9d\u8d56 \u9879 \u624d\u80fd \u8fd0\u884c \u5b83 \uff1a python - m pip install - U py - cpuinfo = = 5.0 . 0 python - m pip install psutil python - m pip install python - tr python - m pip install gpuinfo python - m pip install GPUtil","title":"\u5f00\u59cb \u4e4b\u524d"},{"location":"adv_benchmarking/#_4","text":"python3 performance _ benchmark . py [ -- host HOST ] [ -- port PORT ] [ -- file FILE ] [ -- tm ] [ -- fixed _ dt FIXED _ DT ] [ -- render _ mode ] [ -- no _ render _ mode ] [ -- show _ scenarios ] ) [ -- sensors SENSORS [ SENSORS ... ] ] [ -- maps MAPS [ MAPS ... ] ] [ -- weather WEATHER [ WEATHER ... ] ]","title":"\u6982\u8981"},{"location":"adv_benchmarking/#_5","text":"","title":"\u6807\u5fd7"},{"location":"adv_benchmarking/#-host-ip_address","text":"\u9ed8\u8ba4 \uff1a \u672c\u5730 \u4e3b\u673a \u3002 \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4e3b\u673a \u3002","title":"-- host : IP _ ADDRESS"},{"location":"adv_benchmarking/#-port","text":"\u9ed8\u8ba4 \uff1a 2000 \u914d\u7f6e \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002","title":"-- port : \u7aef\u53e3"},{"location":"adv_benchmarking/#-file-md","text":"\u9ed8\u8ba4 : benchmark . md \u4ee5 \u964d\u4ef7 \u8868 \u683c\u5f0f \u5c06 \u7ed3\u679c \u5199\u5165 \u6587\u4ef6 \u3002","title":"-- file : \u6587\u4ef6\u540d . md"},{"location":"adv_benchmarking/#-tm","text":"\u5207\u6362 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u57fa\u51c6","title":"-- tm"},{"location":"adv_benchmarking/#-ticks","text":"\u9ed8\u8ba4 \uff1a 100 \u8bbe\u7f6e \u7528\u4e8e \u6bcf\u4e2a \u573a\u666f \u7684 \u523b\u5ea6 \u6570 \u3002","title":"-- ticks"},{"location":"adv_benchmarking/#-","text":"\u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- \u540c\u6b65"},{"location":"adv_benchmarking/#-async","text":"\u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- async"},{"location":"adv_benchmarking/#-fixed_dt","text":"\u9ed8\u8ba4 \uff1a 0.05 \u5982\u679c \u60a8 \u60f3 \u8bbe\u7f6e \u589e\u91cf \u65f6\u95f4 \u6b65\u957f \uff0c \u8bf7 \u4e0e \u540c\u6b65 \u6a21\u5f0f \u4e00\u8d77 \u4f7f\u7528 \u3002","title":"-- fixed _ dt"},{"location":"adv_benchmarking/#-render_mode","text":"\u5728 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- render _ mode"},{"location":"adv_benchmarking/#-no_render_mode","text":"\u9ed8\u8ba4 \u6a21\u5f0f . \u5728 \u975e \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002","title":"-- no _ render _ mode"},{"location":"adv_benchmarking/#-show_scenarios","text":"\u4ec5 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \u8fd0\u884c \u811a\u672c \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u6240\u6709 \u53ef\u7528 \u573a\u666f \u53c2\u6570 \u7684 \u5217\u8868 \u3002 \u5f53 \u4e0e \u5176\u4ed6 \u6807\u5fd7 \u7ed3\u5408 \u4f7f\u7528 \u65f6 \uff0c \u60a8 \u5c06 \u770b\u5230 \u5c06 \u5728 \u672a \u5b9e\u9645 \u6267\u884c \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c \u7684 \u573a\u666f \u7684 \u9884\u89c8 \u3002","title":"-- show _ scenarios"},{"location":"adv_benchmarking/#-sensors","text":"\u9ed8\u8ba4 \uff1a \u5168\u90e8 \u57fa\u51c6 \u6d4b\u8bd5 \u4e2d \u4f7f\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 LIDAR \u548c RGB \u76f8\u673a \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \uff1a 0 : cam - 300x200 1 : cam - 800x600 2 : cam - 1900x1080 3 : cam - 300x200 cam - 300x200 \uff08 \u4e24\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 4 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 100k 5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 500k 6 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a 1M","title":"-- sensors \uff1a \u6574\u6570"},{"location":"adv_benchmarking/#-maps","text":"\u9ed8\u8ba4 \uff1a \u6240\u6709 \u5730\u56fe \u6240\u6709 [ Carla \u5730\u56fe ] [ carla _ maps ] \uff0c \u5305\u62ec \u5206\u5c42 \u548c\u5b50 \u5206\u5c42 \uff0c \u90fd \u53ef\u7528 \u3002 [ carla _ maps ] \uff1a https : / / carla . readthedocs . io / en / latest / core _ map / # carla - maps","title":"-- maps \uff1a \u57ce\u5e02 \u540d\u79f0"},{"location":"adv_benchmarking/#-_1","text":"Default \uff1a \u6240\u6709 \u5929\u6c14 \u6761\u4ef6 \u6539\u53d8 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \uff1a 0 : ClearNoon 1 : CloudyNoon 2 : SoftRainSunset","title":"-- \u5929\u6c14 \uff1a \u6574\u6570"},{"location":"adv_benchmarking/#_6","text":"1 . \u542f\u52a8 Carla \uff1a # Linux \uff1a . / CarlaUE4 . sh # Windows \uff1a CarlaUE4 . exe \uff03 Source \uff1a make launch \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u5bfc\u822a \u5230 PythonAPI / util \u4ee5 \u627e\u5230 performance _ benchmark . py \u811a\u672c \uff1a \u663e\u793a \u6240\u6709 \u53ef\u80fd \u7684 \u573a\u666f \u800c \u4e0d \u8fd0\u884c \u5b83\u4eec \uff1a python3 performance _ benchmark . py -- show _ scenarios \u663e\u793a \u5728 \u5e94\u7528 \u914d\u7f6e \u800c \u4e0d \u5b9e\u9645 \u6267\u884c \u914d\u7f6e \u65f6 \u5c06 \u8fd0\u884c \u54ea\u4e9b \u573a\u666f \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 -- show _ scenarios ` \u6267\u884c \u8fd9\u4e9b \u573a\u666f \u7684 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- sensors 2 5 -- maps Town03 Town05 -- weather 0 1 \u6267\u884c \u5f02\u6b65 \u6a21\u5f0f \u548c \u6e32\u67d3 \u6a21\u5f0f \u7684 \u57fa\u51c6 \u6d4b\u8bd5 \uff1a python3 performance _ benchmark . py -- async -- render _ mode","title":"\u5982\u4f55 \u8fd0\u884c \u57fa\u51c6 \u6d4b\u8bd5"},{"location":"adv_benchmarking/#carla","text":"\u4e0b\u8868 \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u5728 \u968f\u7740 \u8f66\u8f86 \u6570\u91cf \u589e\u52a0 \u4ee5\u53ca \u542f\u7528 \u548c / \u6216 \u7981\u7528 \u7269\u7406 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e0d\u540c \u7ec4\u5408 \u8fd0\u884c Carla \u65f6 \u5bf9 \u5e73\u5747 FPS \u7684 \u6027\u80fd \u5f71\u54cd \u3002 Carla \u7248\u672c \uff1a 29 / 01 / 21 \u5f00\u53d1 \u5206\u652f \uff08 \u63d0\u4ea4 198fa38c9b1317c114ac15dff130766253c02832 \uff09 \u73af\u5883 \u89c4\u683c \uff1a Intel ( R ) Xeon ( R ) CPU E5 - 1620 v3 @ 3.50 GHz / 32 GB / NVIDIA GeForce GTX 1080 Ti \u8f66\u8f86 \u6570\u91cf Phy : Off TM : Off Phy : On TM : Off Phy : Off TM : On Phy : On TM : On 0 1220 1102 702 729 1 805 579 564 422 10 473 223 119 98 50 179 64 37 26 100 92 34 22 15 150 62 21 17 10 200 47 15 14 7 250 37 11 12 6 \u5982\u679c \u60a8 \u5bf9 \u6027\u80fd \u57fa\u51c6 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u4e0d\u8981 \u72b9\u8c6b \uff0c \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"Carla \u6027\u80fd \u62a5\u544a"},{"location":"adv_digital_twin/","text":"\u7b14\u8bb0 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u76ee\u524d \u662f \u4e00\u9879 \u5b9e\u9a8c \u529f\u80fd \u6027\u529f\u80fd \uff0c \u9636\u6bb5 \u73b0\u9636\u6bb5 \u5c1a\u672a \u8003\u8651 \u6295\u5165 \u751f\u4ea7 \u3002 \u5730\u56fe \u7684 \u67d0\u4e9b \u90e8\u5206 \u53ef\u80fd \u672a \u88c5\u9970 \u6216 \u65e0 \u7eb9\u7406 \u3002 \u56e0\u6b64 \u5b83 \u53ea\u80fd \u7528\u4e8e \u5b9e\u9a8c \u7814\u7a76 \u9879\u76ee \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e OpenStreetMap \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u73af\u5883 \u751f\u6210 \u9053\u8def \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u751f\u6210 \u5730\u56fe \u4fdd\u5b58 \u5730\u56fe \u672c\u5730 \u672c\u5730\u5316 UE \u7f16\u8f91 \u7f16\u8f91\u5668 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u80fd\u591f \u57fa\u4e8e \u6e90\u81ea OpenStreetMap ( OSM ) \u670d\u52a1 \u7684 \u9053\u8def \u7f51\u7edc \uff0c \u4ee5 \u7a0b\u5e8f \u65b9\u5f0f \u751f\u6210 \u72ec\u7279 \u7684 \u4e09\u7ef4 \u73af\u5883 \u3002 \u901a\u8fc7 Carla \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u754c\u9762 \uff0c \u7528\u6237 \u53ef\u4ee5 \u4ece OSM \u9009\u62e9 \u5730\u56fe \u533a\u57df \u5e76 \u4e0b\u8f7d \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u65b0 Carla \u5730\u56fe \u7684 \u57fa\u7840 \u3002 \u7136\u540e \uff0c \u8be5 \u5de5\u5177 \u7528 \u7a0b\u5e8f \u751f\u6210 \u7684 \u4e09\u7ef4 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u9053\u8def \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \uff0c \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u4f1a \u6839\u636e \u9053\u8def \u5e03\u5c40 \u8fdb\u884c \u8c03\u6574 \uff0c \u4ece\u800c \u521b\u5efa \u5177\u6709 \u9ad8 \u53ef\u53d8 \u53d8\u6027 \u53ef\u53d8\u6027 \u7684 \u771f\u5b9e \u4e09\u7ef4 \u9053\u8def \u73af\u5883 \u3002 \u6784\u5efa OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Linux \uff0c \u5219 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 Carla \u754c\u9762 \u4e2d \u7684 OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \u6765 \u5bfc\u822a \u5df2 \u4e0b\u8f7d \u7684 \u5927\u578b OSM \u5730\u56fe \u533a\u57df \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u6784\u5efa OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \u3002 \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u8fd0\u884c make osmrenderer \u3002 \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 CMake \u7248\u672c \u5347\u7ea7 \u7248\u672c\u5347\u7ea7 \u5230 v3.2 \u6216 \u66f4 \u9ad8 \u7248\u672c \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8fd9 \u5c06 \u5728 \u60a8 \u7684 \u6784\u5efa \u76ee\u5f55 \u4e2d \u521b\u5efa \u4e24\u4e2a \u540d\u4e3a libosmcout - source \u548c libosmcout - build \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u7ee7\u7eed \u6784\u5efa CARLA \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u50cf \u8fd9\u6837 \u5728 \u76ee\u5f55 \u4e2d $ CARLA _ ROOT / Build / libosmcout - source / maps \u7f16\u8f91 \u6587\u4ef6 Build . sh \uff0c \u4ee5 \u786e\u4fdd \u627e\u5230 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \uff1a if [ [ - x .. / Import / src / Import ] ] ; then importExe = .. / Import / src / Import elif [ [ - x .. / debug / Import / Import ] ] ; then importExe = .. / debug / Import / Import elif [ [ - x .. / build / Import / Import ] ] ; then importExe = .. / build / Import / Import ################### Add this line #################### elif [ - x .. / .. / libosmscout - build / Import / Import ] ; then importExe = .. / .. / libosmscout - build / Import / Import ####################################################### else echo \" Cannot find Import executable ! \" exit 1 fi \u7136\u540e \u7ee7\u7eed \u6309 \u6b63\u5e38 \u65b9\u5f0f \u6784\u5efa CARLA \u3002 Windows \u7528\u6237 \u65e0\u6cd5 \u9009\u62e9 \u4f7f\u7528 OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \uff0c \u5fc5\u987b \u76f4\u63a5 \u4f7f\u7528 URL \u3002 \u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u8f6c \u5230 OpenStreetMap \u7f51\u7ad9 \u5e76 \u9009\u62e9 \u60a8 \u8981 \u4f7f\u7528 \u7684 \u5730\u56fe \u533a\u57df \u3002 \u5b9a\u4e49 \u60a8 \u7684 \u533a\u57df \uff0c \u7136\u540e \u5c06 \u6570\u636e \u5bfc\u51fa \u4e3a . osm \u6587\u4ef6 \uff0c \u6216\u8005 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 URL \uff0c \u5982\u4e0b \u6240\u8ff0 \u3002 \u6216\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u57fa\u4e8e OpenStreetMap \u670d\u52a1 \u7684 \u5176\u4ed6 \u5de5\u5177 \uff08 \u4f8b\u5982 GeoFabrik \uff0c \u5b83 \u5141\u8bb8 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u7279\u5b9a \u7684 \u5730\u56fe \u533a\u57df \uff08 \u4f8b\u5982 \u5dde \u6216 \u9886\u5730 \uff09 \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 OSM \u6570\u636e \u3002 \u4f7f\u7528 URL \u6216 \u4e0b\u8f7d OSM \u6587\u4ef6 \uff1a Using a URL \u5728 OpenStreetMap \u7f51\u7ad9 \u4e2d \uff0c \u5bfc\u822a \u5230 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \uff0c \u7136\u540e \u6309 Export \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u60f3 \u4f7f\u7528 Manually select a different area \u9009\u9879 \u3002 \u7136\u540e \uff0c \u53f3\u952e \u5355\u51fb Overpass API \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Copy link \u3002 \u60a8 \u5fc5\u987b \u786e\u4fdd \u6587\u4ef6 \u4e0d \u5927\u4e8e 1 GB \u3002 \u83b7\u53d6 \u6b64 \u94fe\u63a5 \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u754c\u9762 \u7684 URL \u5b57\u6bb5 \u4e2d \u3002 \u4e0b\u8f7d OSM \u6587\u4ef6 \u5e76 \u5728 \u754c\u9762 \u4e2d \u5bfc\u822a \u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e Linux \u7528\u6237 \u3002 \u60a8 \u53ef\u4ee5 \u4e0b\u8f7d \u66f4\u5927 \u533a\u57df \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u6574\u4e2a \u5dde \u6216 \u9886\u5730 \uff0c \u7136\u540e \u4f7f\u7528 Carla \u4e2d \u7684 OSM \u754c\u9762 \uff0c \u4f7f\u7528 \u7bad\u5934 \u548c \u7f29\u653e \u6309\u94ae \u5bfc\u822a \u5730\u56fe \u3002 \u5c06 \u6240 \u9700 \u7684 OSM \u6570\u636e \u533a\u57df \u4e0b\u8f7d \u4e3a . osm \u6587\u4ef6 \u3002 \u7136\u540e \u5c06 \u6b64 \u6587\u4ef6 \u653e\u5165 { CARLA _ ROOT } / Build / libosmcout - source / maps / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6253\u5f00 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd { CARLA _ ROOT } / Build / libosmcout - source / maps / . / build . sh < path _ to _ osm _ file > \u7b14\u8bb0 \u5982\u679c OpenStreetMap \u4e2d \u7684 \u5730\u56fe \u6709 \u9519\u8bef \u6216 \u4e0d \u7cbe\u786e \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u8f91 \u5730\u56fe \u8fdb\u884c \u6539\u8fdb \u3002 OpenStreetMap \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5982\u679c \u5de6\u4e0b \u4e0b\u89d2 \u5de6\u4e0b\u89d2 \u7684 \u201c \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u201d \u672a \u770b\u5230 \u201c Carla \u5185\u5bb9 \u201d \uff0c \u5230 \u4e2d\u95f4 \u4e0b\u9762 \u7684 \u201c \u89c6\u56fe \u9009\u9879 \u201d \u4e2d \u9009\u4e2d \u201c \u663e\u793a \u63d2\u4ef6 \u5185\u5bb9 \u201d \u8981 \u6253\u5f00 OSM \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u8bf7 \u6253\u5f00 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u5bfc\u822a \u81f3 CarlaToolsContent / OnroadMapGenerator \u3002 \u53f3\u952e \u5355\u51fb UW _ OnRoadMainWidget \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 \u8fd0\u884c \u7f16\u8f91 \u5de5\u5177 \u7a7a\u95f4 \uff08 Launch Editor Utility Widget \uff09 \u3002 \u8fd9 \u5c06 \u6253\u5f00 \u8be5 \u5de5\u5177 \u7684 \u754c\u9762 \u3002 \u8be5 \u754c\u9762 \u5141\u8bb8 \u6d4f\u89c8 \u5df2 \u4ece OSM \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \u4e0b\u8f7d \u5e76 \u70d8\u7119 \u7684 OSM \u5730\u56fe \u533a\u57df \u3002 \u9996\u5148 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u754c\u9762 \u7684 Select OSM Database \u5b57\u6bb5 \u4e2d \u8f93\u5165 \u4e0a \u4e00\u6b65 \u4e2d \u5b58\u50a8 \u5904\u7406 \u540e \u7684 OSM \u6570\u636e \u7684 \u76ee\u5f55 \u4f4d\u7f6e \u3002 \u5982\u679c \u60a8 \u76f4\u63a5 \u4f7f\u7528 URL \uff0c \u8bf7 \u5c06 \u5176 \u7c98\u8d34 \u5230 OSM URL \u5b57\u6bb5 \u4e2d \uff0c \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 \u5bfc\u822a \u5668 \u3002 \u4f7f\u7528 \u65b9\u5411 \u7bad\u5934 \u65b9\u5411\u7bad\u5934 \u548c \u7f29\u653e \u56fe\u6807 \u5bfc\u822a \u5730\u56fe \u5e76 \u627e\u5230 \u8981 \u8f6c\u6362 \u4e3a Carla \u5730\u56fe \u7684 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u60a8 \u5728 \u9884\u89c8 \u4e2d \u770b\u5230 \u7684 \u65b9\u5f62 \u533a\u57df \u5c06 \u662f \u5730\u56fe \u7684 \u8303\u56f4 \u3002 \u5728 \u5b57 \u6bb5 \u4e2d \u8f93\u5165 \u9002\u5f53 \u7684 \u540d\u79f0 File Name \u7136\u540e \u6309 Generate \u5f00\u59cb \u7a0b\u5e8f \u751f\u6210 \u8fc7\u7a0b \u3002 \u5730\u56fe \u751f\u6210 \u8fc7\u7a0b \u53ef\u80fd \u9700\u8981 \u51e0\u5206 \u5206\u949f \u51e0\u5206\u949f \uff0c \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u5927 \u533a\u57df \uff0c \u5219 \u53ef\u80fd \u9700\u8981 \u66f4\u957f \u7684 \u65f6\u95f4 \u3002 \u5148 \u542f\u52a8 Carla \u670d\u52a1 \uff0c \u7136\u540e \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u4ece . osm \u6587\u4ef6 \u4e2d \u52a0\u8f7d \u573a\u666f \uff1a python src / util / config . py - x * . xodr \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u573a\u666f \u751f\u6210 \u9053\u8def \u88c5\u9970 \u8be5 \u5de5\u5177 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u5730\u56fe \u7684 \u57fa\u7840 \u3002 \u8def\u9762 \u88c5\u9970 \u6709 \u903c\u771f \u7684 \u8868\u9762 \u89c4\u5219 \u4e0d\u89c4\u5219 \u6027 \u3001 \u9053\u8def \u7eb9\u7406 \u548c \u8f66\u9053 \u7ebf \u3001 \u88c2\u75d5 \u548c \u8f6e\u80ce \u5370\u8ff9 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u9053\u8def \u4e4b\u95f4 \u7684 \u7a7a\u767d \u533a\u57df \u586b\u5145 \u6709 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u5f00\u653e \u533a\u57df \uff0c \u5b83\u4eec \u4f1a \u8c03\u6574 \u5176 \u5f62\u72b6 \u548c \u5c3a\u5bf8 \u4ee5 \u586b\u5145 \u9053\u8def \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \u3002 \u7a0b\u5e8f \u751f\u6210 \u5de5\u5177 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u548c \u9ad8\u5ea6 \u4fe1\u606f \uff0c \u4ee5 \u751f\u6210 \u5177\u6709 \u76f8\u4f3c \u5c3a\u5bf8 \u7684 \u865a\u62df \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u8be6\u7ec6 \u7684 \u8986\u5c42 \u7528\u4e8e \u4eff\u771f \u7a97\u6237 \u3001 \u95e8 \u548c \u9633\u53f0 \u3002 \u6839\u636e \u5efa\u7b51 \u9762\u79ef \u5efa\u7b51\u9762\u79ef \u7684 \u4e0d\u540c \uff0c \u91c7\u7528 \u4e0d\u540c \u7684 \u88c5\u4fee \u98ce\u683c \uff0c \u6700\u9ad8 \u7684 \u5efa\u7b51 \u4e3a \u529e\u516c \u98ce\u683c \uff0c \u8f83 \u5c0f \u7684 \u5efa\u7b51 \u6839\u636e \u5efa\u7b51 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u91c7\u7528 \u5546\u4e1a \u6216 \u4f4f\u5b85 \u98ce\u683c \u3002 \u5728 \u4e0b \u4e00\u6b65 \u4e2d \u8fd8 \u5c06 \u690d\u88ab \u6dfb\u52a0 \u5230 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e2d\u4ee5 \u83b7\u53d6 \u66f4 \u591a \u7ec6\u8282 \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u6784\u5efa \u98ce\u683c \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u98ce\u683c \u591a\u79cd \u591a\u6837 \u591a\u79cd\u591a\u6837 \uff0c \u968f\u673a \u5206\u5e03 \u5728 \u6574\u4e2a \u57ce\u5e02 \uff0c \u4e00\u4e2a \u533a\u57df \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u662f \u6839\u636e \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7279\u5f81 \u5c3a\u5bf8 \u6765 \u9009\u62e9 \u7684 \u3002 \u751f\u6210 \u5730\u56fe \u5bf9\u4e8e 2x2 km 2 \u533a\u57df \uff0c \u751f\u6210 \u6b65\u9aa4 \u5927\u7ea6 \u9700\u8981 10 \u5206\u949f \uff0c \u8f83\u5927 \u7684 \u533a\u57df \u5c06 \u9700\u8981 \u66f4\u957f \u7684 \u65f6\u95f4 \u3002 \u751f\u6210 \u8fc7\u7a0b \u5b8c\u6210 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u68c0\u67e5 \u4e09\u7ef4 \u5730\u56fe \u3002 \u4fdd\u5b58 \u5730\u56fe \u5982\u679c \u60a8 \u5bf9 \u751f\u6210 \u7684 \u5730\u56fe \u611f\u5230 \u6ee1\u610f \uff0c \u5219 \u53ef\u4ee5 \u6309 Save Map \u6309\u94ae \u4fdd\u5b58 \u5730\u56fe \u3002 \u6b64 \u6b65\u9aa4 \u5c06 \u82b1\u8d39 \u5927\u91cf \u65f6\u95f4 \uff0c \u53ef\u80fd \u9700\u8981 \u4e00\u4e2a \u4e00\u4e2a\u591a \u5c0f\u65f6 \uff0c \u4e5f \u53ef\u80fd \u9700\u8981 \u51e0\u4e2a \u5c0f\u65f6 \u3002 \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \u540e \uff0c \u60a8 \u5e94\u8be5 \u51c6\u5907 \u8ba9 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u8fd0\u884c \u51e0\u4e2a \u5c0f\u65f6 \u3002 \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \u540e \uff0c \u5c06 \u53ef\u4ee5 \u901a\u8fc7 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u6216 \u901a\u8fc7 Carla API \u4f7f\u7528 \u8be5 \u5730\u56fe \uff0c \u5c31 \u50cf \u4efb\u4f55 \u5176\u4ed6 \u5730\u56fe \u4e00\u6837 \u3002 \u540e\u7eed \u6b65\u9aa4 \u6dfb\u52a0 \u5149\u6e90 \uff08 \u5929\u5149 \uff09 \u3001 \u8def\u7ebf \u89c4\u5212 \u5668 \u3001 \u6784\u5efa \u573a\u666f \u3002 \u95ee\u9898 carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ OpenDriveToMap . cpp \u6539\u4e3a \u751f\u6210 \u4e00\u4e2a \u74e6\u7247 \u5730\u56fe \u7684 \u51fd\u6570 \uff0c \u751f\u6210 \u540e \u7684 \u540d\u5b57 \u4e3a { NAME } _ Tile _ 0 _ 0 \u3002 / / ExecuteTileCommandlet ( ) ; GenerateTile ( ) ; \u539f\u56e0 \uff1a \u751f\u6210 \u74e6\u7247 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u7a0b\u5e8f \u4f4d\u4e8e Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ Commandlet \\ GenerateTileCommandlet . cpp \u3002 \u53c2\u8003 \uff1a UE \u4e2d \u7684 Commandlet \u89e3\u8bfb \u3002","title":"\u6570\u5b57 \u5b6a\u751f \u5de5\u5177"},{"location":"adv_digital_twin/#_1","text":"\u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e OpenStreetMap \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u73af\u5883 \u751f\u6210 \u9053\u8def \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u751f\u6210 \u5730\u56fe \u4fdd\u5b58 \u5730\u56fe \u672c\u5730 \u672c\u5730\u5316 UE \u7f16\u8f91 \u7f16\u8f91\u5668 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u80fd\u591f \u57fa\u4e8e \u6e90\u81ea OpenStreetMap ( OSM ) \u670d\u52a1 \u7684 \u9053\u8def \u7f51\u7edc \uff0c \u4ee5 \u7a0b\u5e8f \u65b9\u5f0f \u751f\u6210 \u72ec\u7279 \u7684 \u4e09\u7ef4 \u73af\u5883 \u3002 \u901a\u8fc7 Carla \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u754c\u9762 \uff0c \u7528\u6237 \u53ef\u4ee5 \u4ece OSM \u9009\u62e9 \u5730\u56fe \u533a\u57df \u5e76 \u4e0b\u8f7d \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u65b0 Carla \u5730\u56fe \u7684 \u57fa\u7840 \u3002 \u7136\u540e \uff0c \u8be5 \u5de5\u5177 \u7528 \u7a0b\u5e8f \u751f\u6210 \u7684 \u4e09\u7ef4 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u9053\u8def \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \uff0c \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u4f1a \u6839\u636e \u9053\u8def \u5e03\u5c40 \u8fdb\u884c \u8c03\u6574 \uff0c \u4ece\u800c \u521b\u5efa \u5177\u6709 \u9ad8 \u53ef\u53d8 \u53d8\u6027 \u53ef\u53d8\u6027 \u7684 \u771f\u5b9e \u4e09\u7ef4 \u9053\u8def \u73af\u5883 \u3002","title":"\u6570\u5b57 \u5b6a\u751f \u5de5\u5177"},{"location":"adv_digital_twin/#osm","text":"\u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Linux \uff0c \u5219 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 Carla \u754c\u9762 \u4e2d \u7684 OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \u6765 \u5bfc\u822a \u5df2 \u4e0b\u8f7d \u7684 \u5927\u578b OSM \u5730\u56fe \u533a\u57df \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u6784\u5efa OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \u3002 \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u8fd0\u884c make osmrenderer \u3002 \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 CMake \u7248\u672c \u5347\u7ea7 \u7248\u672c\u5347\u7ea7 \u5230 v3.2 \u6216 \u66f4 \u9ad8 \u7248\u672c \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8fd9 \u5c06 \u5728 \u60a8 \u7684 \u6784\u5efa \u76ee\u5f55 \u4e2d \u521b\u5efa \u4e24\u4e2a \u540d\u4e3a libosmcout - source \u548c libosmcout - build \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u7ee7\u7eed \u6784\u5efa CARLA \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u50cf \u8fd9\u6837 \u5728 \u76ee\u5f55 \u4e2d $ CARLA _ ROOT / Build / libosmcout - source / maps \u7f16\u8f91 \u6587\u4ef6 Build . sh \uff0c \u4ee5 \u786e\u4fdd \u627e\u5230 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \uff1a if [ [ - x .. / Import / src / Import ] ] ; then importExe = .. / Import / src / Import elif [ [ - x .. / debug / Import / Import ] ] ; then importExe = .. / debug / Import / Import elif [ [ - x .. / build / Import / Import ] ] ; then importExe = .. / build / Import / Import ################### Add this line #################### elif [ - x .. / .. / libosmscout - build / Import / Import ] ; then importExe = .. / .. / libosmscout - build / Import / Import ####################################################### else echo \" Cannot find Import executable ! \" exit 1 fi \u7136\u540e \u7ee7\u7eed \u6309 \u6b63\u5e38 \u65b9\u5f0f \u6784\u5efa CARLA \u3002 Windows \u7528\u6237 \u65e0\u6cd5 \u9009\u62e9 \u4f7f\u7528 OSM \u6e32\u67d3 \u6e32\u67d3\u5668 \uff0c \u5fc5\u987b \u76f4\u63a5 \u4f7f\u7528 URL \u3002","title":"\u6784\u5efa OSM \u6e32\u67d3\u5668"},{"location":"adv_digital_twin/#osm_1","text":"\u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u8f6c \u5230 OpenStreetMap \u7f51\u7ad9 \u5e76 \u9009\u62e9 \u60a8 \u8981 \u4f7f\u7528 \u7684 \u5730\u56fe \u533a\u57df \u3002 \u5b9a\u4e49 \u60a8 \u7684 \u533a\u57df \uff0c \u7136\u540e \u5c06 \u6570\u636e \u5bfc\u51fa \u4e3a . osm \u6587\u4ef6 \uff0c \u6216\u8005 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 URL \uff0c \u5982\u4e0b \u6240\u8ff0 \u3002 \u6216\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u57fa\u4e8e OpenStreetMap \u670d\u52a1 \u7684 \u5176\u4ed6 \u5de5\u5177 \uff08 \u4f8b\u5982 GeoFabrik \uff0c \u5b83 \u5141\u8bb8 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u7279\u5b9a \u7684 \u5730\u56fe \u533a\u57df \uff08 \u4f8b\u5982 \u5dde \u6216 \u9886\u5730 \uff09 \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 OSM \u6570\u636e \u3002 \u4f7f\u7528 URL \u6216 \u4e0b\u8f7d OSM \u6587\u4ef6 \uff1a","title":"\u4e0b\u8f7d \u5e76 \u51c6\u5907 OSM \u5730\u56fe \u6570\u636e"},{"location":"adv_digital_twin/#using-a-url","text":"\u5728 OpenStreetMap \u7f51\u7ad9 \u4e2d \uff0c \u5bfc\u822a \u5230 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \uff0c \u7136\u540e \u6309 Export \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u60f3 \u4f7f\u7528 Manually select a different area \u9009\u9879 \u3002 \u7136\u540e \uff0c \u53f3\u952e \u5355\u51fb Overpass API \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Copy link \u3002 \u60a8 \u5fc5\u987b \u786e\u4fdd \u6587\u4ef6 \u4e0d \u5927\u4e8e 1 GB \u3002 \u83b7\u53d6 \u6b64 \u94fe\u63a5 \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u754c\u9762 \u7684 URL \u5b57\u6bb5 \u4e2d \u3002","title":"Using a URL"},{"location":"adv_digital_twin/#osm_2","text":"\u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e Linux \u7528\u6237 \u3002 \u60a8 \u53ef\u4ee5 \u4e0b\u8f7d \u66f4\u5927 \u533a\u57df \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u6574\u4e2a \u5dde \u6216 \u9886\u5730 \uff0c \u7136\u540e \u4f7f\u7528 Carla \u4e2d \u7684 OSM \u754c\u9762 \uff0c \u4f7f\u7528 \u7bad\u5934 \u548c \u7f29\u653e \u6309\u94ae \u5bfc\u822a \u5730\u56fe \u3002 \u5c06 \u6240 \u9700 \u7684 OSM \u6570\u636e \u533a\u57df \u4e0b\u8f7d \u4e3a . osm \u6587\u4ef6 \u3002 \u7136\u540e \u5c06 \u6b64 \u6587\u4ef6 \u653e\u5165 { CARLA _ ROOT } / Build / libosmcout - source / maps / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6253\u5f00 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd { CARLA _ ROOT } / Build / libosmcout - source / maps / . / build . sh < path _ to _ osm _ file > \u7b14\u8bb0 \u5982\u679c OpenStreetMap \u4e2d \u7684 \u5730\u56fe \u6709 \u9519\u8bef \u6216 \u4e0d \u7cbe\u786e \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u8f91 \u5730\u56fe \u8fdb\u884c \u6539\u8fdb \u3002","title":"\u4e0b\u8f7d OSM \u6587\u4ef6 \u5e76 \u5728 \u754c\u9762 \u4e2d \u5bfc\u822a"},{"location":"adv_digital_twin/#openstreetmap","text":"\u5982\u679c \u5de6\u4e0b \u4e0b\u89d2 \u5de6\u4e0b\u89d2 \u7684 \u201c \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u201d \u672a \u770b\u5230 \u201c Carla \u5185\u5bb9 \u201d \uff0c \u5230 \u4e2d\u95f4 \u4e0b\u9762 \u7684 \u201c \u89c6\u56fe \u9009\u9879 \u201d \u4e2d \u9009\u4e2d \u201c \u663e\u793a \u63d2\u4ef6 \u5185\u5bb9 \u201d \u8981 \u6253\u5f00 OSM \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u8bf7 \u6253\u5f00 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u5bfc\u822a \u81f3 CarlaToolsContent / OnroadMapGenerator \u3002 \u53f3\u952e \u5355\u51fb UW _ OnRoadMainWidget \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 \u8fd0\u884c \u7f16\u8f91 \u5de5\u5177 \u7a7a\u95f4 \uff08 Launch Editor Utility Widget \uff09 \u3002 \u8fd9 \u5c06 \u6253\u5f00 \u8be5 \u5de5\u5177 \u7684 \u754c\u9762 \u3002 \u8be5 \u754c\u9762 \u5141\u8bb8 \u6d4f\u89c8 \u5df2 \u4ece OSM \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \u4e0b\u8f7d \u5e76 \u70d8\u7119 \u7684 OSM \u5730\u56fe \u533a\u57df \u3002 \u9996\u5148 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u754c\u9762 \u7684 Select OSM Database \u5b57\u6bb5 \u4e2d \u8f93\u5165 \u4e0a \u4e00\u6b65 \u4e2d \u5b58\u50a8 \u5904\u7406 \u540e \u7684 OSM \u6570\u636e \u7684 \u76ee\u5f55 \u4f4d\u7f6e \u3002 \u5982\u679c \u60a8 \u76f4\u63a5 \u4f7f\u7528 URL \uff0c \u8bf7 \u5c06 \u5176 \u7c98\u8d34 \u5230 OSM URL \u5b57\u6bb5 \u4e2d \uff0c \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 \u5bfc\u822a \u5668 \u3002 \u4f7f\u7528 \u65b9\u5411 \u7bad\u5934 \u65b9\u5411\u7bad\u5934 \u548c \u7f29\u653e \u56fe\u6807 \u5bfc\u822a \u5730\u56fe \u5e76 \u627e\u5230 \u8981 \u8f6c\u6362 \u4e3a Carla \u5730\u56fe \u7684 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u60a8 \u5728 \u9884\u89c8 \u4e2d \u770b\u5230 \u7684 \u65b9\u5f62 \u533a\u57df \u5c06 \u662f \u5730\u56fe \u7684 \u8303\u56f4 \u3002 \u5728 \u5b57 \u6bb5 \u4e2d \u8f93\u5165 \u9002\u5f53 \u7684 \u540d\u79f0 File Name \u7136\u540e \u6309 Generate \u5f00\u59cb \u7a0b\u5e8f \u751f\u6210 \u8fc7\u7a0b \u3002 \u5730\u56fe \u751f\u6210 \u8fc7\u7a0b \u53ef\u80fd \u9700\u8981 \u51e0\u5206 \u5206\u949f \u51e0\u5206\u949f \uff0c \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u5927 \u533a\u57df \uff0c \u5219 \u53ef\u80fd \u9700\u8981 \u66f4\u957f \u7684 \u65f6\u95f4 \u3002 \u5148 \u542f\u52a8 Carla \u670d\u52a1 \uff0c \u7136\u540e \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u4ece . osm \u6587\u4ef6 \u4e2d \u52a0\u8f7d \u573a\u666f \uff1a python src / util / config . py - x * . xodr","title":"OpenStreetMap \u6d4f\u89c8\u5668"},{"location":"adv_digital_twin/#_2","text":"","title":"\u7a0b\u5e8f\u5316 \u573a\u666f \u751f\u6210"},{"location":"adv_digital_twin/#_3","text":"\u8be5 \u5de5\u5177 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u5730\u56fe \u7684 \u57fa\u7840 \u3002 \u8def\u9762 \u88c5\u9970 \u6709 \u903c\u771f \u7684 \u8868\u9762 \u89c4\u5219 \u4e0d\u89c4\u5219 \u6027 \u3001 \u9053\u8def \u7eb9\u7406 \u548c \u8f66\u9053 \u7ebf \u3001 \u88c2\u75d5 \u548c \u8f6e\u80ce \u5370\u8ff9 \u3002","title":"\u9053\u8def \u88c5\u9970"},{"location":"adv_digital_twin/#_4","text":"\u9053\u8def \u4e4b\u95f4 \u7684 \u7a7a\u767d \u533a\u57df \u586b\u5145 \u6709 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u5f00\u653e \u533a\u57df \uff0c \u5b83\u4eec \u4f1a \u8c03\u6574 \u5176 \u5f62\u72b6 \u548c \u5c3a\u5bf8 \u4ee5 \u586b\u5145 \u9053\u8def \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \u3002 \u7a0b\u5e8f \u751f\u6210 \u5de5\u5177 \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u548c \u9ad8\u5ea6 \u4fe1\u606f \uff0c \u4ee5 \u751f\u6210 \u5177\u6709 \u76f8\u4f3c \u5c3a\u5bf8 \u7684 \u865a\u62df \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u8be6\u7ec6 \u7684 \u8986\u5c42 \u7528\u4e8e \u4eff\u771f \u7a97\u6237 \u3001 \u95e8 \u548c \u9633\u53f0 \u3002 \u6839\u636e \u5efa\u7b51 \u9762\u79ef \u5efa\u7b51\u9762\u79ef \u7684 \u4e0d\u540c \uff0c \u91c7\u7528 \u4e0d\u540c \u7684 \u88c5\u4fee \u98ce\u683c \uff0c \u6700\u9ad8 \u7684 \u5efa\u7b51 \u4e3a \u529e\u516c \u98ce\u683c \uff0c \u8f83 \u5c0f \u7684 \u5efa\u7b51 \u6839\u636e \u5efa\u7b51 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u91c7\u7528 \u5546\u4e1a \u6216 \u4f4f\u5b85 \u98ce\u683c \u3002 \u5728 \u4e0b \u4e00\u6b65 \u4e2d \u8fd8 \u5c06 \u690d\u88ab \u6dfb\u52a0 \u5230 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e2d\u4ee5 \u83b7\u53d6 \u66f4 \u591a \u7ec6\u8282 \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u6784\u5efa \u98ce\u683c \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u98ce\u683c \u591a\u79cd \u591a\u6837 \u591a\u79cd\u591a\u6837 \uff0c \u968f\u673a \u5206\u5e03 \u5728 \u6574\u4e2a \u57ce\u5e02 \uff0c \u4e00\u4e2a \u533a\u57df \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u662f \u6839\u636e \u4ece OSM \u6570\u636e \u4e2d \u63d0\u53d6 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7279\u5f81 \u5c3a\u5bf8 \u6765 \u9009\u62e9 \u7684 \u3002","title":"\u5efa\u7b51\u7269"},{"location":"adv_digital_twin/#_5","text":"\u5bf9\u4e8e 2x2 km 2 \u533a\u57df \uff0c \u751f\u6210 \u6b65\u9aa4 \u5927\u7ea6 \u9700\u8981 10 \u5206\u949f \uff0c \u8f83\u5927 \u7684 \u533a\u57df \u5c06 \u9700\u8981 \u66f4\u957f \u7684 \u65f6\u95f4 \u3002 \u751f\u6210 \u8fc7\u7a0b \u5b8c\u6210 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u68c0\u67e5 \u4e09\u7ef4 \u5730\u56fe \u3002","title":"\u751f\u6210 \u5730\u56fe"},{"location":"adv_digital_twin/#_6","text":"\u5982\u679c \u60a8 \u5bf9 \u751f\u6210 \u7684 \u5730\u56fe \u611f\u5230 \u6ee1\u610f \uff0c \u5219 \u53ef\u4ee5 \u6309 Save Map \u6309\u94ae \u4fdd\u5b58 \u5730\u56fe \u3002 \u6b64 \u6b65\u9aa4 \u5c06 \u82b1\u8d39 \u5927\u91cf \u65f6\u95f4 \uff0c \u53ef\u80fd \u9700\u8981 \u4e00\u4e2a \u4e00\u4e2a\u591a \u5c0f\u65f6 \uff0c \u4e5f \u53ef\u80fd \u9700\u8981 \u51e0\u4e2a \u5c0f\u65f6 \u3002 \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \u540e \uff0c \u60a8 \u5e94\u8be5 \u51c6\u5907 \u8ba9 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u8fd0\u884c \u51e0\u4e2a \u5c0f\u65f6 \u3002 \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \u540e \uff0c \u5c06 \u53ef\u4ee5 \u901a\u8fc7 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u6216 \u901a\u8fc7 Carla API \u4f7f\u7528 \u8be5 \u5730\u56fe \uff0c \u5c31 \u50cf \u4efb\u4f55 \u5176\u4ed6 \u5730\u56fe \u4e00\u6837 \u3002","title":"\u4fdd\u5b58 \u5730\u56fe"},{"location":"adv_digital_twin/#_7","text":"\u6dfb\u52a0 \u5149\u6e90 \uff08 \u5929\u5149 \uff09 \u3001 \u8def\u7ebf \u89c4\u5212 \u5668 \u3001 \u6784\u5efa \u573a\u666f \u3002","title":"\u540e\u7eed \u6b65\u9aa4"},{"location":"adv_digital_twin/#_8","text":"carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ OpenDriveToMap . cpp \u6539\u4e3a \u751f\u6210 \u4e00\u4e2a \u74e6\u7247 \u5730\u56fe \u7684 \u51fd\u6570 \uff0c \u751f\u6210 \u540e \u7684 \u540d\u5b57 \u4e3a { NAME } _ Tile _ 0 _ 0 \u3002 / / ExecuteTileCommandlet ( ) ; GenerateTile ( ) ; \u539f\u56e0 \uff1a \u751f\u6210 \u74e6\u7247 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u7a0b\u5e8f \u4f4d\u4e8e Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ Commandlet \\ GenerateTileCommandlet . cpp \u3002 \u53c2\u8003 \uff1a UE \u4e2d \u7684 Commandlet \u89e3\u8bfb \u3002","title":"\u95ee\u9898"},{"location":"adv_edit_openstreetmap/","text":"OpenStreetMap \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \u8fdb\u5165 \u7f16\u8f91 \u9875\u9762 \u8fdb\u5165 OpenStreetMap \u9996\u9875 \uff08 \u9700\u8981 \u79d1\u5b66 \u4e0a\u7f51 \uff09 \uff0c \u70b9\u51fb \u7f16\u8f91 \u6309\u94ae \uff0c \u4ee5 \u8fdb\u5165 \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \u9875\u9762 \uff08 \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \uff0c \u8bf7 \u6ce8\u518c \u8d26\u53f7 \u518d \u64cd\u4f5c \uff09 \u3002 \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \u9009\u4e2d \u5bf9 \u9700\u8981 \u4fee\u6539 \u7684 \u5730\u56fe \u5143\u7d20 \u8fdb\u884c \u7f16\u8f91 \u3002 \u63d0\u4ea4 \u4fee\u6539 \u70b9\u51fb \u9875\u9762 \u4fdd\u5b58 \u6309\u94ae \u6216\u8005 \u6309 Ctrl + S \u8fdb\u884c \u4fee\u6539 \u7684 \u4fdd\u5b58 \u548c \u63d0\u4ea4 \u3002","title":"OpenStreetMap \u5730\u56fe\u7f16\u8f91"},{"location":"adv_edit_openstreetmap/#openstreetmap","text":"","title":"OpenStreetMap \u5730\u56fe\u7f16\u8f91"},{"location":"adv_edit_openstreetmap/#_1","text":"\u8fdb\u5165 OpenStreetMap \u9996\u9875 \uff08 \u9700\u8981 \u79d1\u5b66 \u4e0a\u7f51 \uff09 \uff0c \u70b9\u51fb \u7f16\u8f91 \u6309\u94ae \uff0c \u4ee5 \u8fdb\u5165 \u5730\u56fe \u7f16\u8f91 \u5730\u56fe\u7f16\u8f91 \u9875\u9762 \uff08 \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \uff0c \u8bf7 \u6ce8\u518c \u8d26\u53f7 \u518d \u64cd\u4f5c \uff09 \u3002","title":"\u8fdb\u5165 \u7f16\u8f91 \u9875\u9762"},{"location":"adv_edit_openstreetmap/#_2","text":"\u9009\u4e2d \u5bf9 \u9700\u8981 \u4fee\u6539 \u7684 \u5730\u56fe \u5143\u7d20 \u8fdb\u884c \u7f16\u8f91 \u3002","title":"\u5730\u56fe\u7f16\u8f91"},{"location":"adv_edit_openstreetmap/#_3","text":"\u70b9\u51fb \u9875\u9762 \u4fdd\u5b58 \u6309\u94ae \u6216\u8005 \u6309 Ctrl + S \u8fdb\u884c \u4fee\u6539 \u7684 \u4fdd\u5b58 \u548c \u63d0\u4ea4 \u3002","title":"\u63d0\u4ea4 \u4fee\u6539"},{"location":"adv_localization/","text":"UE \u7f16\u8f91 \u7f16\u8f91\u5668 \u672c\u5730 \u672c\u5730\u5316 \u524d\u8a00 \u5728 \u672c\u6587 \u4e2d \uff0c \u6211\u4eec \u5c06 \u63a2\u8ba8 \u5982\u4f55 \u4f7f\u7528 UE4 \u7684 \u672c\u5730 \u672c\u5730\u5316 \u5de5\u5177 \u6765 \u4f18\u5316 \u4f60 \u7684 \u6e38\u620f \u9879\u76ee \uff0c \u6db5\u76d6 \u4ece \u57fa\u672c \u8bbe\u7f6e \u5230 \u9ad8\u7ea7 \u529f\u80fd \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \u3002 \u65e0\u8bba \u65e0\u8bba\u662f \u521d\u6b21 \u5c1d\u8bd5 \u6e38\u620f \u5f00\u53d1 \u8fd8\u662f \u5bfb\u6c42 \u63d0\u9ad8 \u73b0\u6709 \u9879\u76ee \u7684 \u5168\u7403 \u53ef\u53ca \u6027 \uff0c \u672c \u6307\u5357 \u90fd \u5c06 \u63d0\u4f9b \u5fc5\u8981 \u7684 \u4fe1\u606f \u548c \u6b65\u9aa4 \uff0c \u5e2e\u52a9 \u4f60 \u987a\u5229 \u5b9e\u73b0 \u987a\u5229\u5b9e\u73b0 \u6e38\u620f \u672c\u5730 \u672c\u5730\u5316 \u3002 1 . \u5de5\u5177 \u8bf4\u660e \u5bfc\u822a \u81f3 \u7a97\u53e3 / \u672c\u5730 \u672c\u5730\u5316 \u63a7\u5236 \u5236\u9762 \u9762\u677f \u63a7\u5236\u9762\u677f \u4e3b \u754c\u9762 \u90e8\u5206 \u8be6\u89e3 \u672c\u5730 \u672c\u5730\u5316 \u6e38\u620f \u76ee\u6807 \uff0c \u9ed8\u8ba4 \u4f1a \u521b\u5efa \u4e00\u4e2a \uff0c \u5982\u679c \u8981 \u521b\u5efa \u65b0 \u7684 \u672c\u5730 \u672c\u5730\u5316 \u76ee\u6807 \uff0c \u8bf7 \u786e\u4fdd \u4e3a \u5176 \u6307\u5b9a \u9002\u5f53 \u7684 \u6781 \u7231 \u5728 \u7b56\u7565 \uff0c \u901a\u5e38 \u4e3a \u6e38\u620f \u6216\u8005 \u56fa\u5b9a \u3002 \u9ed8\u8ba4 \u662f \u6c38\u4e0d \uff0c \u662f \u6c38\u4e0d \u52a0\u8f7d \u7684 \u3002 \u76ee\u6807 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6240\u793a \u5982\u56fe\u6240\u793a \uff1a \u9009\u62e9 \u6536\u96c6 \u65b9\u5f0f \uff1a \u4ece \u6587\u672c \u6536\u96c6 \uff1a \u6587\u672c \u672c\u6587 \u6587\u4ef6 \u6587\u672c\u6587\u4ef6 \uff0c \u6bd4\u5982 \u6211\u4eec \u7684 \u4ee3\u7801 \uff1b \u4ece\u5305 \u6536\u96c6 \uff1a \u5bf9 \u84dd\u56fe \u7b49 uassest \u8d44\u6e90 \u7684 \u672c\u5730 \u672c\u5730\u5316 \uff1b \u4ece\u5143 \u6570\u636e \u6536\u96c6 \uff1a \u5bf9\u5143 \u6570\u636e Metadata \u7684 \u672c\u5730 \u672c\u5730\u5316 \uff0c \u5305\u62ec \u7ffb\u8bd1 \u53d8\u91cf \u53d8\u91cf\u540d \uff0c \u5206\u7c7b \uff0c \u5de5\u5177 \u63d0\u793a \u3002 \u5176\u4e2d \uff0c \u5bf9\u4e8e \u5143 \u6570\u636e \u7684 \u6536\u96c6 \uff0c \u5fc5\u987b \u5305\u542b \u81f3\u5c11 \u4e00\u4e2a \u8def\u5f84 \u901a\u914d\u7b26 \u548c \u4e00\u4e2a \u952e \u89c4\u683c \u3002 \u8def\u5f84 \u548c \u4e0a\u9762 \u4e00\u6837 \u6dfb\u52a0 Source \u6587\u4ef6 \u5c31 \u597d \uff0c \u952e \u89c4\u683c \u53ef\u4ee5 \u7167\u6284 \u5f15\u64ce \u76ee\u6807 \u4e2d \u7684 \u793a\u4f8b \uff0c \u4ee5 Property Name \u4e3a\u4f8b \uff1a \u5143 \u6570\u636e \u952e \u586b DisplayName \u6587\u672c \u547d\u540d \u7a7a\u95f4 \u586b UObjectDisplayNames \u6587\u672c \u952e \u56fe\u6848 \u586b { FieldPath } 2 . \u7ffb\u8bd1 \u6587\u672c \u6d41\u7a0b \u4e0a\u8ff0 \u914d\u7f6e \u5b8c \u4ee5\u540e \uff0c \u4e3b\u8981 \u64cd\u4f5c \u90fd \u5728 \u8bed\u7cfb \u4e2d \u3002 \u5982\u4e0a \u4e0a\u56fe \u5982\u4e0a\u56fe \u6240\u793a \uff0c \u5148 \u6dfb\u52a0 \u4f60 \u9700\u8981 \u7ffb\u8bd1 \u7684 \u8bed\u8a00 \u5730\u533a \u548c \u4f60 \u672c\u5730 \u6587\u672c \u9ed8\u8ba4 \u7684 \u8bed\u8a00 \u5730\u533a \u3002 \u7136\u540e \u70b9\u51fb \u6536\u96c6 \u6587\u672c \uff0c \u6536\u96c6 \u672c\u5730 \u9700\u8981 \u7ffb\u8bd1 \u7684 \u6587\u672c \uff0c \u6210\u529f \u540e \u5f00\u59cb \u7ffb\u8bd1 \u6587\u672c \u8fd9\u91cc \u6709 \u4e24\u79cd \u65b9\u5f0f \uff0c \u4e00\u79cd \u662f \u76f4\u63a5 \u5728 UE \u5de5\u5177 \u4e2d \u7ffb\u8bd1 \uff0c \u4e00\u79cd \u662f \u5bfc\u51fa \u4f7f\u7528 \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 \u5de5\u5177 \u7ffb\u8bd1 \u3002 UE \u5de5\u5177 \u7ffb\u8bd1 \uff1a \u70b9\u51fb \u6bcf\u4e2a \u6587\u5316 \u8bed\u8a00 \u540e\u9762 \u5728 \u7ffb\u8bd1 \u4e2d \u5199\u5165 \u7ffb\u8bd1 \u540e \u7684 \u6587\u672c \u5373\u53ef \uff0c \u7136\u540e \u70b9\u51fb \u4fdd\u5b58 \u3002 \u81ea\u884c \u5bfc\u51fa \u7ffb\u8bd1 \u5982\u4e0b \u56fe \u6240\u793a \uff1a \u4e0a\u8ff0 \u7b2c\u4e00 \u4e00\u79cd \u7b2c\u4e00\u79cd \u5bfc\u51fa \u65b9\u5f0f \u662f \u5bfc\u51fa \u5168\u90e8 \u8bed\u7cfb \uff0c \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u662f \u5bfc\u51fa \u6307\u5b9a \u8bed\u7cfb \u7684 \u6587\u672c \uff0c \u9009\u62e9 \u8def\u5f84 \u5bfc\u51fa \u540e \u4f1a \u751f\u6210 . po \u683c\u5f0f \u6587\u4ef6 \u683c\u5f0f\u6587\u4ef6 \uff0c \u662f \u5305\u542b \u8981 \u7ffb\u8bd1 \u7684 \u6bcf\u79cd \u6587\u5316 \u6587\u672c \u4ee5\u53ca \u5f53\u524d \u7ffb\u8bd1 \u7684 \u6587\u4ef6 \uff0c \u662f \u4e00\u79cd \u901a\u7528 \u683c\u5f0f \uff0c \u53ef \u76f4\u63a5 \u624b\u52a8 \u7f16\u8f91 \u3002 \u4f46\u662f \u4e0d \u5efa\u8bae \u8fd9\u4e48 \u505a \uff0c \u8fd9\u91cc \u6211\u4eec \u4f7f\u7528 Poedit \u7ffb\u8bd1 \u5de5\u5177 \u53bb \u8fdb\u884c \u7f16\u8f91 \uff0c \u91cc\u9762 \u529f\u80fd \u9f50\u5168 \u529f\u80fd\u9f50\u5168 \uff0c \u5305\u62ec \u81ea\u52a8 \u7ffb\u8bd1 \uff0c \u7ffb\u8bd1 \u63d0\u793a \uff0c \u591a\u4eba \u534f\u540c \u7b49 \u3002 \u7f16\u8f91 \u5b8c \u4fdd\u5b58 \u540e \uff0c \u76f4\u63a5 \u5bfc\u5165 \u5373\u53ef \uff0c \u6309\u7167 \u5bfc\u51fa \u7684 \u65b9\u5f0f \uff0c \u518d \u5bfc\u5165 \u3002 \u7edf\u8ba1 \u7ffb\u8bd1 \u6587\u672c \uff0c \u7f16\u8bd1 \u7ffb\u8bd1 \u6587\u672c \u3002 \u6700\u540e \uff0c \u9700\u8981 \u91cd\u65b0 \u6253\u5f00 Carla \u3002","title":"UE \u7f16\u8f91\u5668 \u672c\u5730\u5316"},{"location":"adv_localization/#ue","text":"","title":"UE \u7f16\u8f91\u5668 \u672c\u5730\u5316"},{"location":"adv_localization/#_1","text":"\u5728 \u672c\u6587 \u4e2d \uff0c \u6211\u4eec \u5c06 \u63a2\u8ba8 \u5982\u4f55 \u4f7f\u7528 UE4 \u7684 \u672c\u5730 \u672c\u5730\u5316 \u5de5\u5177 \u6765 \u4f18\u5316 \u4f60 \u7684 \u6e38\u620f \u9879\u76ee \uff0c \u6db5\u76d6 \u4ece \u57fa\u672c \u8bbe\u7f6e \u5230 \u9ad8\u7ea7 \u529f\u80fd \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \u3002 \u65e0\u8bba \u65e0\u8bba\u662f \u521d\u6b21 \u5c1d\u8bd5 \u6e38\u620f \u5f00\u53d1 \u8fd8\u662f \u5bfb\u6c42 \u63d0\u9ad8 \u73b0\u6709 \u9879\u76ee \u7684 \u5168\u7403 \u53ef\u53ca \u6027 \uff0c \u672c \u6307\u5357 \u90fd \u5c06 \u63d0\u4f9b \u5fc5\u8981 \u7684 \u4fe1\u606f \u548c \u6b65\u9aa4 \uff0c \u5e2e\u52a9 \u4f60 \u987a\u5229 \u5b9e\u73b0 \u987a\u5229\u5b9e\u73b0 \u6e38\u620f \u672c\u5730 \u672c\u5730\u5316 \u3002","title":"\u524d\u8a00"},{"location":"adv_localization/#1","text":"\u5bfc\u822a \u81f3 \u7a97\u53e3 / \u672c\u5730 \u672c\u5730\u5316 \u63a7\u5236 \u5236\u9762 \u9762\u677f \u63a7\u5236\u9762\u677f \u4e3b \u754c\u9762 \u90e8\u5206 \u8be6\u89e3 \u672c\u5730 \u672c\u5730\u5316 \u6e38\u620f \u76ee\u6807 \uff0c \u9ed8\u8ba4 \u4f1a \u521b\u5efa \u4e00\u4e2a \uff0c \u5982\u679c \u8981 \u521b\u5efa \u65b0 \u7684 \u672c\u5730 \u672c\u5730\u5316 \u76ee\u6807 \uff0c \u8bf7 \u786e\u4fdd \u4e3a \u5176 \u6307\u5b9a \u9002\u5f53 \u7684 \u6781 \u7231 \u5728 \u7b56\u7565 \uff0c \u901a\u5e38 \u4e3a \u6e38\u620f \u6216\u8005 \u56fa\u5b9a \u3002 \u9ed8\u8ba4 \u662f \u6c38\u4e0d \uff0c \u662f \u6c38\u4e0d \u52a0\u8f7d \u7684 \u3002 \u76ee\u6807 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6240\u793a \u5982\u56fe\u6240\u793a \uff1a \u9009\u62e9 \u6536\u96c6 \u65b9\u5f0f \uff1a \u4ece \u6587\u672c \u6536\u96c6 \uff1a \u6587\u672c \u672c\u6587 \u6587\u4ef6 \u6587\u672c\u6587\u4ef6 \uff0c \u6bd4\u5982 \u6211\u4eec \u7684 \u4ee3\u7801 \uff1b \u4ece\u5305 \u6536\u96c6 \uff1a \u5bf9 \u84dd\u56fe \u7b49 uassest \u8d44\u6e90 \u7684 \u672c\u5730 \u672c\u5730\u5316 \uff1b \u4ece\u5143 \u6570\u636e \u6536\u96c6 \uff1a \u5bf9\u5143 \u6570\u636e Metadata \u7684 \u672c\u5730 \u672c\u5730\u5316 \uff0c \u5305\u62ec \u7ffb\u8bd1 \u53d8\u91cf \u53d8\u91cf\u540d \uff0c \u5206\u7c7b \uff0c \u5de5\u5177 \u63d0\u793a \u3002 \u5176\u4e2d \uff0c \u5bf9\u4e8e \u5143 \u6570\u636e \u7684 \u6536\u96c6 \uff0c \u5fc5\u987b \u5305\u542b \u81f3\u5c11 \u4e00\u4e2a \u8def\u5f84 \u901a\u914d\u7b26 \u548c \u4e00\u4e2a \u952e \u89c4\u683c \u3002 \u8def\u5f84 \u548c \u4e0a\u9762 \u4e00\u6837 \u6dfb\u52a0 Source \u6587\u4ef6 \u5c31 \u597d \uff0c \u952e \u89c4\u683c \u53ef\u4ee5 \u7167\u6284 \u5f15\u64ce \u76ee\u6807 \u4e2d \u7684 \u793a\u4f8b \uff0c \u4ee5 Property Name \u4e3a\u4f8b \uff1a \u5143 \u6570\u636e \u952e \u586b DisplayName \u6587\u672c \u547d\u540d \u7a7a\u95f4 \u586b UObjectDisplayNames \u6587\u672c \u952e \u56fe\u6848 \u586b { FieldPath }","title":"1 . \u5de5\u5177 \u8bf4\u660e"},{"location":"adv_localization/#2","text":"\u4e0a\u8ff0 \u914d\u7f6e \u5b8c \u4ee5\u540e \uff0c \u4e3b\u8981 \u64cd\u4f5c \u90fd \u5728 \u8bed\u7cfb \u4e2d \u3002 \u5982\u4e0a \u4e0a\u56fe \u5982\u4e0a\u56fe \u6240\u793a \uff0c \u5148 \u6dfb\u52a0 \u4f60 \u9700\u8981 \u7ffb\u8bd1 \u7684 \u8bed\u8a00 \u5730\u533a \u548c \u4f60 \u672c\u5730 \u6587\u672c \u9ed8\u8ba4 \u7684 \u8bed\u8a00 \u5730\u533a \u3002 \u7136\u540e \u70b9\u51fb \u6536\u96c6 \u6587\u672c \uff0c \u6536\u96c6 \u672c\u5730 \u9700\u8981 \u7ffb\u8bd1 \u7684 \u6587\u672c \uff0c \u6210\u529f \u540e","title":"2 . \u7ffb\u8bd1 \u6587\u672c \u6d41\u7a0b"},{"location":"adv_localization/#_2","text":"\u8fd9\u91cc \u6709 \u4e24\u79cd \u65b9\u5f0f \uff0c \u4e00\u79cd \u662f \u76f4\u63a5 \u5728 UE \u5de5\u5177 \u4e2d \u7ffb\u8bd1 \uff0c \u4e00\u79cd \u662f \u5bfc\u51fa \u4f7f\u7528 \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 \u5de5\u5177 \u7ffb\u8bd1 \u3002 UE \u5de5\u5177 \u7ffb\u8bd1 \uff1a \u70b9\u51fb \u6bcf\u4e2a \u6587\u5316 \u8bed\u8a00 \u540e\u9762 \u5728 \u7ffb\u8bd1 \u4e2d \u5199\u5165 \u7ffb\u8bd1 \u540e \u7684 \u6587\u672c \u5373\u53ef \uff0c \u7136\u540e \u70b9\u51fb \u4fdd\u5b58 \u3002 \u81ea\u884c \u5bfc\u51fa \u7ffb\u8bd1 \u5982\u4e0b \u56fe \u6240\u793a \uff1a \u4e0a\u8ff0 \u7b2c\u4e00 \u4e00\u79cd \u7b2c\u4e00\u79cd \u5bfc\u51fa \u65b9\u5f0f \u662f \u5bfc\u51fa \u5168\u90e8 \u8bed\u7cfb \uff0c \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u662f \u5bfc\u51fa \u6307\u5b9a \u8bed\u7cfb \u7684 \u6587\u672c \uff0c \u9009\u62e9 \u8def\u5f84 \u5bfc\u51fa \u540e \u4f1a \u751f\u6210 . po \u683c\u5f0f \u6587\u4ef6 \u683c\u5f0f\u6587\u4ef6 \uff0c \u662f \u5305\u542b \u8981 \u7ffb\u8bd1 \u7684 \u6bcf\u79cd \u6587\u5316 \u6587\u672c \u4ee5\u53ca \u5f53\u524d \u7ffb\u8bd1 \u7684 \u6587\u4ef6 \uff0c \u662f \u4e00\u79cd \u901a\u7528 \u683c\u5f0f \uff0c \u53ef \u76f4\u63a5 \u624b\u52a8 \u7f16\u8f91 \u3002 \u4f46\u662f \u4e0d \u5efa\u8bae \u8fd9\u4e48 \u505a \uff0c \u8fd9\u91cc \u6211\u4eec \u4f7f\u7528 Poedit \u7ffb\u8bd1 \u5de5\u5177 \u53bb \u8fdb\u884c \u7f16\u8f91 \uff0c \u91cc\u9762 \u529f\u80fd \u9f50\u5168 \u529f\u80fd\u9f50\u5168 \uff0c \u5305\u62ec \u81ea\u52a8 \u7ffb\u8bd1 \uff0c \u7ffb\u8bd1 \u63d0\u793a \uff0c \u591a\u4eba \u534f\u540c \u7b49 \u3002 \u7f16\u8f91 \u5b8c \u4fdd\u5b58 \u540e \uff0c \u76f4\u63a5 \u5bfc\u5165 \u5373\u53ef \uff0c \u6309\u7167 \u5bfc\u51fa \u7684 \u65b9\u5f0f \uff0c \u518d \u5bfc\u5165 \u3002 \u7edf\u8ba1 \u7ffb\u8bd1 \u6587\u672c \uff0c \u7f16\u8bd1 \u7ffb\u8bd1 \u6587\u672c \u3002 \u6700\u540e \uff0c \u9700\u8981 \u91cd\u65b0 \u6253\u5f00 Carla \u3002","title":"\u5f00\u59cb \u7ffb\u8bd1 \u6587\u672c"},{"location":"adv_multigpu/","text":"Carla \u591a GPU \u529f\u80fd Carla \u4e2d \u7684 \u591a GPU \u610f\u5473 \u610f\u5473\u7740 \u7528\u6237 \u53ef\u4ee5 \u542f\u52a8 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0\u4e3a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u8fd9\u4e9b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7cfb\u7edf \u4e2d \u7684 \u4e13\u7528 GPU \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0 \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u6267\u884c \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u7528\u6237 \u521b\u5efa \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u53d1 \u5230 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u5e26\u6709 \u4e00\u4e2a \u6807\u5fd7 \u4ee5 \u907f\u514d \u4f7f\u7528 \u4efb\u4f55 GPU \uff09 \u3002 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5904\u7406 \u6240\u6709 \u7269\u7406 \u5e76 \u5c06 \u573a\u666f \u6570\u636e \u540c\u6b65 \u5230 \u5176\u4ed6 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u7136\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u542f\u52a8 \u4efb\u4f55 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u662f \u7cfb\u7edf \u4e2d \u7684 \u6bcf\u4e2a \u4e13\u7528 GPU \uff09 \uff0c \u4f7f\u7528 \u6211\u4eec \u5c06 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u63cf\u8ff0 \u7684 \u53c2\u6570 \u3002 \u6b64\u540e \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u8fde\u63a5 \uff08 \u59cb\u7ec8 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u5e76 \u7167\u5e38 \u8fdb\u884c \u7167\u5e38\u8fdb\u884c \u3002 \u6574\u4e2a \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u7528\u6237 \u6765\u8bf4 \u662f \u900f\u660e \u7684 \uff0c \u7528\u6237 \u4e0d \u9700\u8981 \u77e5\u9053 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765\u81ea \u54ea\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ed6 \u53ea \u9700 \u76f4\u63a5 \u4ece \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b65\u9aa4 \u662f : \u9996\u5148 \uff0c \u542f\u52a8 \u6ca1\u6709 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u53c2\u6570 \u6709 \uff1a - nullrhi : \u7981\u7528 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \uff08 \u65e0\u9700 GPU \uff09 - carla - primary - port : \u7528\u4e8e \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 \uff08 \u9ed8\u8ba4 2002 \uff09 \u4f8b\u5982 . / CarlaUE4 . sh - nullrhi \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 2002 \u6765 \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4fa6\u542c \u53e6 \u4e00\u4e2a \u7aef\u53e3 \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u6807\u5fd7 \u66f4\u6539 \u5b83 . / CarlaUE4 . sh - nullrhi - carla - primary - port = 3002 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7136\u540e \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4f46 \u7406\u60f3 \u7684 \u60c5\u51b5 \u662f \u62e5\u6709 \u4e0e GPU \u4e00\u6837 \u591a \u7684 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u901a\u8fc7 \u53c2\u6570 \uff0c \u6211\u4eec \u9700\u8981 \u6307\u5b9a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u7684 GPU \u4ee5\u53ca \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u5728 \u4fa6\u542c \u7684 \u4e3b\u673a / \u7aef\u53e3 \uff0c \u5e76 \u5e26\u6709 \u4ee5\u4e0b \u6807\u5fd7 \uff1a - carla - rpc - port \uff1a \u63a5\u53d7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u7684 TCP \u7aef\u53e3 \uff08 \u5bf9\u4e8e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6765\u8bf4 \u4e0d \u9700\u8981 \uff0c \u4f46 \u7aef\u53e3 \u9700\u8981 \u7a7a\u95f2 \uff09 - carla - primary - host : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP - carla - primary - port : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter : \u544a\u8bc9 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u54ea\u4e2a GPU \u8bbe\u5907 \u4f8b\u5982 \uff0c \u5982\u679c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u540c\u4e00 \u53f0 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6267\u884c \u5e76 \u4f7f\u7528 \u9ed8\u8ba4 \u7aef\u53e3 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - primary - host = 127.0 . 0.1 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 0 \u8fd9\u91cc \uff0c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 3000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff08 \u4f46 \u6c38\u8fdc \u4e0d\u4f1a \u4f7f\u7528 \u5b83 \uff09 \uff0c \u5e76 \u5c06 \u4ee5 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 2002 \uff09 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \uff08 localhost \uff09 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 0 \u3002 \u5982\u679c \u6211\u4eec \u60f3 \u4f7f\u7528 \u53e6 \u4e00\u4e2a GPU \u5728 \u540c\u4e00 \u53f0 \u673a\u5668 \u4e0a \u542f\u52a8 \u53e6 \u4e00\u4e2a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 4000 - carla - primary - host = 127.0 . 0.1 - carla - primary - port = 2002 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 1 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 4000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff0c \u5e76 \u5c06 \u901a\u8fc7 \u7aef\u53e3 2002 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 1 \u3002 \u540c\u6b65 \u6a21\u5f0f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u7cfb\u7edf \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 1 / 20 \u589e\u91cf \u79d2 \u3002","title":"Carla \u591a GPU \u529f\u80fd"},{"location":"adv_multigpu/#carla-gpu","text":"Carla \u4e2d \u7684 \u591a GPU \u610f\u5473 \u610f\u5473\u7740 \u7528\u6237 \u53ef\u4ee5 \u542f\u52a8 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0\u4e3a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u8fd9\u4e9b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7cfb\u7edf \u4e2d \u7684 \u4e13\u7528 GPU \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u79f0 \u4e3a\u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u6267\u884c \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u7528\u6237 \u521b\u5efa \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u53d1 \u5230 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u5e26\u6709 \u4e00\u4e2a \u6807\u5fd7 \u4ee5 \u907f\u514d \u4f7f\u7528 \u4efb\u4f55 GPU \uff09 \u3002 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5904\u7406 \u6240\u6709 \u7269\u7406 \u5e76 \u5c06 \u573a\u666f \u6570\u636e \u540c\u6b65 \u5230 \u5176\u4ed6 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u7136\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u542f\u52a8 \u4efb\u4f55 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff08 \u901a\u5e38 \u662f \u7cfb\u7edf \u4e2d \u7684 \u6bcf\u4e2a \u4e13\u7528 GPU \uff09 \uff0c \u4f7f\u7528 \u6211\u4eec \u5c06 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u63cf\u8ff0 \u7684 \u53c2\u6570 \u3002 \u6b64\u540e \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u8fde\u63a5 \uff08 \u59cb\u7ec8 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \u5e76 \u7167\u5e38 \u8fdb\u884c \u7167\u5e38\u8fdb\u884c \u3002 \u6574\u4e2a \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u7528\u6237 \u6765\u8bf4 \u662f \u900f\u660e \u7684 \uff0c \u7528\u6237 \u4e0d \u9700\u8981 \u77e5\u9053 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765\u81ea \u54ea\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ed6 \u53ea \u9700 \u76f4\u63a5 \u4ece \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002","title":"Carla \u591a GPU \u529f\u80fd"},{"location":"adv_multigpu/#_1","text":"\u6b65\u9aa4 \u662f : \u9996\u5148 \uff0c \u542f\u52a8 \u6ca1\u6709 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u53c2\u6570 \u6709 \uff1a - nullrhi : \u7981\u7528 \u4efb\u4f55 \u6e32\u67d3 \u529f\u80fd \uff08 \u65e0\u9700 GPU \uff09 - carla - primary - port : \u7528\u4e8e \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 \uff08 \u9ed8\u8ba4 2002 \uff09 \u4f8b\u5982 . / CarlaUE4 . sh - nullrhi \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 2002 \u6765 \u4fa6\u542c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4fa6\u542c \u53e6 \u4e00\u4e2a \u7aef\u53e3 \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u6807\u5fd7 \u66f4\u6539 \u5b83 . / CarlaUE4 . sh - nullrhi - carla - primary - port = 3002","title":"\u4e3b \u670d\u52a1\u5668"},{"location":"adv_multigpu/#_2","text":"\u7136\u540e \u6211\u4eec \u9700\u8981 \u542f\u52a8 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4f46 \u7406\u60f3 \u7684 \u60c5\u51b5 \u662f \u62e5\u6709 \u4e0e GPU \u4e00\u6837 \u591a \u7684 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u901a\u8fc7 \u53c2\u6570 \uff0c \u6211\u4eec \u9700\u8981 \u6307\u5b9a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u7684 GPU \u4ee5\u53ca \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u5728 \u4fa6\u542c \u7684 \u4e3b\u673a / \u7aef\u53e3 \uff0c \u5e76 \u5e26\u6709 \u4ee5\u4e0b \u6807\u5fd7 \uff1a - carla - rpc - port \uff1a \u63a5\u53d7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u7684 TCP \u7aef\u53e3 \uff08 \u5bf9\u4e8e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6765\u8bf4 \u4e0d \u9700\u8981 \uff0c \u4f46 \u7aef\u53e3 \u9700\u8981 \u7a7a\u95f2 \uff09 - carla - primary - host : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP - carla - primary - port : \u8981 \u8fde\u63a5 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 TCP \u7aef\u53e3 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter : \u544a\u8bc9 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u54ea\u4e2a GPU \u8bbe\u5907 \u4f8b\u5982 \uff0c \u5982\u679c \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0e \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u540c\u4e00 \u53f0 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6267\u884c \u5e76 \u4f7f\u7528 \u9ed8\u8ba4 \u7aef\u53e3 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - primary - host = 127.0 . 0.1 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 0 \u8fd9\u91cc \uff0c \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 3000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff08 \u4f46 \u6c38\u8fdc \u4e0d\u4f1a \u4f7f\u7528 \u5b83 \uff09 \uff0c \u5e76 \u5c06 \u4ee5 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 2002 \uff09 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \uff08 localhost \uff09 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff09 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 0 \u3002 \u5982\u679c \u6211\u4eec \u60f3 \u4f7f\u7528 \u53e6 \u4e00\u4e2a GPU \u5728 \u540c\u4e00 \u53f0 \u673a\u5668 \u4e0a \u542f\u52a8 \u53e6 \u4e00\u4e2a \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - carla - rpc - port = 4000 - carla - primary - host = 127.0 . 0.1 - carla - primary - port = 2002 - ini : [ / Script / Engine . RendererSettings ] : r . GraphicsAdapter = 1 \u8be5 \u8f85\u52a9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 \u7aef\u53e3 4000 \u4f5c\u4e3a RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u4ee5 \u907f\u514d \u4e0e \u5176\u4ed6 \u7aef\u53e3 \u51b2\u7a81 \uff0c \u5e76 \u5c06 \u901a\u8fc7 \u7aef\u53e3 2002 \u8fde\u63a5 \u5230 \u4f4d\u4e8e IP 127.0 . 0.1 \u7684 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5e76\u4e14 \u8be5 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u4f7f\u7528 GPU \u8bbe\u5907 1 \u3002","title":"\u8f85\u52a9 \u670d\u52a1\u5668"},{"location":"adv_multigpu/#_3","text":"\u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fde\u63a5 \u5230 \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u7cfb\u7edf \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 1 / 20 \u589e\u91cf \u79d2 \u3002","title":"\u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_opendrive/","text":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u5c06 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u5f00\u7bb1 \u5373\u7528 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u81ea\u52a8 \u751f\u6210 \u9053\u8def \u7f51\u683c \u4f9b \u89d2\u8272 \u5bfc\u822a \u3002 \u6982\u8ff0 \u8fd0\u884c \u72ec\u7acb \u5730\u56fe \u7f51\u683c \u751f\u6210 \u6982\u8ff0 \u6b64 \u6a21\u5f0f \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u8fd0\u884c \u5b8c\u6574 \u4eff\u771f \uff0c \u65e0\u9700 \u4efb\u4f55 \u989d\u5916 \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u6216 \u8d44\u4ea7 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u91c7\u7528 OpenDRIVE \u6587\u4ef6 \u5e76 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u521b\u5efa \u65f6\u95f4 3D \u7f51\u683c \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u751f\u6210 \u7684 \u7f51\u683c \u4ee5 \u7b80\u7ea6 \u7684 \u65b9\u5f0f \u63cf\u8ff0 \u4e86 \u9053\u8def \u5b9a\u4e49 \u3002 \u6240\u6709 \u5143\u7d20 \u90fd \u5c06 \u4e0e OpenDRIVE \u6587\u4ef6 \u5bf9\u5e94 \uff0c \u4f46 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53ea\u6709 void \u3002 \u4e3a \u9632\u6b62 \u8f66\u8f86 \u6389 \u51fa \u8def\u9762 \uff0c \u91c7\u53d6 \u4e86 \u4e24\u9879 \u63aa\u65bd \u3002 \u5728 \u8f66\u8f86 \u6d41\u52a8 \u6700 \u590d\u6742 \u7684 \u8def\u53e3 \uff0c \u8f66\u9053 \u7a0d\u5bbd \u4e00\u4e9b \u3002 \u5728 \u9053\u8def \u7684 \u8fb9\u754c \u5904 \u521b\u5efa \u4e86 \u53ef\u89c1 \u7684 \u5899\u58c1 \uff0c \u4f5c\u4e3a \u6700\u540e \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8ba9 \u884c \u6807\u5fd7 \u5c06 \u5373\u65f6 \u751f\u6210 \u3002 \u884c\u4eba \u5c06 \u5728 \u5730\u56fe \u4e0a \u663e\u793a \u7684 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u4e0a \u5bfc\u822a \u3002 \u6240\u6709 \u8fd9\u4e9b \u5143\u7d20 \uff0c \u4ee5\u53ca \u9053\u8def \u4e0a \u7684 \u6bcf \u4e00\u4e2a \u7ec6\u8282 \uff0c \u90fd \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \u3002 \u7531\u4e8e \u72ec\u7acb \u6a21\u5f0f \u76f4\u63a5 \u4f7f\u7528 . xodr \uff0c \u56e0\u6b64 \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u5f71\u54cd \u5230 \u4eff\u771f \u3002 \u8fd9 \u53ef\u80fd \u662f \u4e00\u4e2a \u95ee\u9898 \uff0c \u5c24\u5176 \u662f \u5728 \u8bb8\u591a \u8f66\u9053 \u6df7\u5408 \u7684 \u8def\u53e3 \u3002 \u91cd\u8981 \u7684 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 OpenDRIVE \u6587\u4ef6 \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u8fd0\u884c \u4eff\u771f \u65f6 \uff0c \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u4f20\u64ad \u3002 \u8fd0\u884c \u72ec\u7acb \u5730\u56fe \u6253\u5f00 OpenDRIVE \u6587\u4ef6 \u53ea \u9700 \u901a\u8fc7 API \u8c03\u7528 client . generate _ opendrive _ world ( ) \u3002 \u8fd9 \u5c06 \u751f\u6210 \u65b0 \u5730\u56fe \uff0c \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u5b83 \u51c6\u5907 \u597d \u3002 \u8be5 \u65b9\u6cd5 \u9700\u8981 \u4e24\u4e2a \u53c2\u6570 \u3002 opendrive \u662f \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u3002 parameters \u662f \u4e00\u4e2a carla . OpendriveGenerationParameters \u5305\u542b \u7f51\u683c \u751f\u6210 \u7684 \u8bbe\u7f6e \u3002 \u8fd9\u4e2a \u53c2\u6570 \u662f \u53ef\u9009 \u7684 \u3002 vertex _ distance \uff08 \u9ed8\u8ba4 2.0 \u7c73 \uff09 - \u7f51\u683c \u9876\u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u8ddd\u79bb \u8d8a\u5927 \uff0c \u7f51\u683c \u8d8a \u4e0d \u51c6\u786e \u3002 \u4f46\u662f \uff0c \u5982\u679c \u8ddd\u79bb \u592a\u5c0f \uff0c \u751f\u6210 \u7684 \u7f51\u683c \u5c06 \u592a\u91cd \u800c \u65e0\u6cd5 \u4f7f\u7528 \u3002 max _ road _ length \uff08 \u9ed8\u8ba4 50.0 \u7c73 \uff09 - \u7f51\u683c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u5927 \u957f\u5ea6 \u3002 \u7f51\u683c \u88ab \u5206\u6210 \u51e0 \u90e8\u5206 \u4ee5 \u51cf\u5c11 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5982\u679c \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e0d \u53ef\u89c1 \uff0c UE \u5c06 \u4e0d\u4f1a \u6e32\u67d3 \u5b83 \u3002 \u90e8\u5206 \u8d8a\u5c0f \uff0c \u5b83\u4eec \u88ab \u4e22\u5f03 \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u5c31 \u8d8a \u5927 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u90e8\u5206 \u592a\u5c0f \uff0c UE \u9700\u8981 \u7ba1\u7406 \u7684 \u5bf9\u8c61 \u592a \u591a \uff0c \u6027\u80fd \u4e5f \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 wall _ height \uff08 \u9ed8\u8ba4 \u4e3a 1.0 \u7c73 \uff09 - \u5728 \u9053\u8def \u8fb9\u754c \u4e0a \u521b\u5efa \u7684 \u9644\u52a0 \u5899 \u7684 \u9ad8\u5ea6 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u5760\u5165 \u865a\u7a7a \u3002 additional _ width \uff08 \u9ed8\u8ba4 \u4e3a 0.6 \u7c73 \uff0c \u6bcf \u8fb9 0.3 \uff09 \u2014 \u5e94\u7528 \u4e8e \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u5c0f \u5bbd\u5ea6 \u589e\u91cf \u3002 \u8fd9\u662f \u9632\u6b62 \u8f66\u8f86 \u5760\u843d \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 smooth _ junctions ( default True ) \u2014 \u5982\u679c True \uff0c OpenDRIVE \u7684 \u4e00\u4e9b \u4fe1\u606f \u5c06 \u88ab \u91cd\u65b0 \u89e3\u91ca \u4ee5 \u5e73\u6ed1 \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u6700\u7ec8 \u7f51\u683c \u3002 \u8fd9\u6837 \u505a \u662f \u4e3a\u4e86 \u9632\u6b62 \u5728 \u4e0d\u540c \u8f66\u9053 \u76f8\u9047 \u65f6 \u53ef\u80fd \u53d1\u751f \u7684 \u4e00\u4e9b \u4e0d \u51c6\u786e \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a False \uff0c \u7f51\u683c \u5c06 \u5b8c\u5168 \u6309\u7167 OpenDRIVE \u4e2d \u7684 \u63cf\u8ff0 \u751f\u6210 \u3002 enable _ mesh _ visibility ( default True ) \u2014 \u5982\u679c False \uff0c \u7f51\u683c \u5c06 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \uff0c \u8fd9 \u53ef\u4ee5 \u4e3a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8282\u7701 \u5927\u91cf \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3a\u4e86 \u8f7b\u677e \u6d4b\u8bd5 \u6b64 \u529f\u80fd \uff0c PythonAPI / util / \u4e2d \u7684 config . py \u811a\u672c \u6709 \u4e00\u4e2a \u65b0 \u53c2\u6570 \uff0c - x \u6216 -- xodr - path \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u9700\u8981 \u4e00\u4e2a \u5e26\u6709 . xodr \u6587\u4ef6 \u8def\u5f84 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 path / example . xodr \u3002 \u5982\u679c \u4f7f\u7528 \u6b64 \u811a\u672c \u751f\u6210 \u7f51\u683c \uff0c \u5219 \u4f7f\u7528 \u7684 \u53c2\u6570 \u5c06 \u59cb\u7ec8 \u4e3a \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u6b64 \u529f\u80fd \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u65b0 TownBig \u8fdb\u884c \u6d4b\u8bd5 \u3002 python3 config . py - x opendrive / TownBig . xodr \u91cd\u8981 \u7684 client . generate _ opendrive _ world ( ) \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u76f8\u53cd \uff0c config . py \u811a\u672c \u9700\u8981 . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u7b14\u8bb0 \u5982\u679c \u9047\u5230 opendrive \u65e0\u6cd5 \u6b63\u786e \u89e3\u6790 \u9519\u8bef \uff0c \u8bf7 \u786e\u4fdd \u5bf9 CarlaUE4 / Content / Carla / Maps / OpenDrive / \u76ee\u5f55 \u6709 \u5199 \u6743\u9650 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u786e \u89e3\u6790 xodr \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \u3002 \u7f51\u683c \u751f\u6210 \u7f51\u683c \u7684 \u751f\u6210 \u662f \u8be5 \u6a21\u5f0f \u7684 \u5173\u952e \u8981\u7d20 \u3002 \u53ea\u6709 \u5f53 \u751f\u6210 \u7684 \u7f51\u683c \u662f \u5e73\u6ed1 \u7684 \u5e76\u4e14 \u5b8c\u5168 \u7b26\u5408 \u5b8c\u5168\u7b26\u5408 \u5176 \u5b9a\u4e49 \u65f6 \uff0c \u8be5 \u529f\u80fd \u624d\u80fd \u6210\u529f \u3002 \u51fa\u4e8e \u8fd9\u4e2a \u539f\u56e0 \uff0c \u8fd9 \u4e00\u6b65 \u6b63\u5728 \u4e0d\u65ad \u6539\u8fdb \u4e0d\u65ad\u6539\u8fdb \u3002 \u5728 \u6700\u540e \u7684 \u8fed\u4ee3 \u4e2d \uff0c \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u5df2\u7ecf \u8fc7 \u629b\u5149 \u4ee5 \u907f\u514d \u4e0d \u51c6\u786e \u53d1\u751f \uff0c \u5c24\u5176 \u662f \u5728 \u4e0d \u5e73\u5766 \u7684 \u8f66\u9053 \u8fde\u63a5 \u8fde\u63a5\u5904 \u3002 \u5728 \u751f\u6210 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u7f51\u683c \u65f6 \uff0c \u8f83 \u9ad8 \u7684 \u8f66\u9053 \u5f80\u5f80 \u4f1a \u963b\u6321 \u4e0b\u65b9 \u7684 \u8f66\u9053 \u3002 smooth _ junctions \u53c2\u6570 \u53ef \u9632\u6b62 \u6b64\u7c7b \u95ee\u9898 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u4e0d\u662f \u5c06 \u6574\u4e2a \u5730\u56fe \u521b\u5efa \u4e3a \u4e00\u4e2a \u72ec\u7279 \u7684 \u7f51\u683c \uff0c \u800c\u662f \u521b\u5efa \u4e0d\u540c \u7684 \u90e8\u5206 \u3002 \u901a\u8fc7 \u5212\u5206 \u7f51\u683c \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u907f\u514d \u6e32\u67d3 \u4e0d \u53ef\u89c1 \u7684 \u90e8\u5206 \uff0c \u5e76 \u8282\u7701 \u6210\u672c \u8282\u7701\u6210\u672c \u3002 \u5de5\u4f5c \u66f4 \u5c0f \u8fd8 \u5141\u8bb8 \u751f\u6210 \u5de8\u5927 \u7684 \u5730\u56fe \u5e76 \u5305\u542b \u53ef\u80fd \u51fa\u73b0 \u5728 \u7f51\u683c \u7684 \u4e00\u5c0f \u5c0f\u90e8 \u90e8\u5206 \u4e00\u5c0f\u90e8\u5206 \u4e0a \u7684 \u95ee\u9898 \u3002 \u5173\u4e8e \u7f51\u683c \u751f\u6210 \u7684 \u5f53\u524d \u72b6\u6001 \uff0c \u5e94 \u8003\u8651 \u4e00\u4e9b \u56e0\u7d20 \u3002 \u7ed3 \u5e73\u6ed1 \u3002 \u9ed8\u8ba4 \u5e73\u6ed1 \u53ef \u9632\u6b62 \u4e0a\u8ff0 \u503e\u659c \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u95ee\u9898 \u3002 \u4f46\u662f \uff0c \u5b83\u4f1a \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u4fee\u6539 \u539f\u59cb \u7f51\u683c \u3002 \u5982\u679c \u613f\u610f \uff0c \u5c06 smooth _ junctions \u8bbe\u7f6e \u4e3a False \u4ee5 \u7981\u7528 \u5e73\u6ed1 \u3002 \u6a2a\u5411 \u5761\u5ea6 \u3002 \u6b64 \u529f\u80fd \u5f53\u524d \u672a \u96c6\u6210 \u5728 Carla \u4e2d \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u9ad8\u5ea6 \u3002 \u76ee\u524d \uff0c \u6240\u6709 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u7684 \u786c \u7f16\u7801 \u90fd \u662f \u76f8\u540c \u7684 \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u5fc5\u987b \u9ad8\u4e8e \u9053\u8def \u6807\u9ad8 \u624d\u80fd \u68c0\u6d4b \u5230 \u78b0\u649e \uff0c \u4f46 RoadRunner \u4e0d\u4f1a \u5c06 \u6b64\u503c \u5bfc\u51fa \u5230 OpenDRIVE \u6587\u4ef6 \u3002 \u9ad8\u5ea6 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4ee5 \u4fdd\u8bc1 \u78b0\u649e \u3002 \u8fd9 \u6db5\u76d6 \u4e86 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5173\u4e8e OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u6293\u4f4f \u673a\u4f1a \u6293\u4f4f\u673a\u4f1a \u5e76 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u5730\u56fe \u5728 Carla \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u8bba\u575b \u4e2d \u7684 \u7591\u95ee \u548c \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f"},{"location":"adv_opendrive/#opendrive","text":"\u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u5c06 \u4efb\u4f55 OpenDRIVE \u6587\u4ef6 \u4f5c\u4e3a Carla \u5730\u56fe \u5f00\u7bb1 \u5373\u7528 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u81ea\u52a8 \u751f\u6210 \u9053\u8def \u7f51\u683c \u4f9b \u89d2\u8272 \u5bfc\u822a \u3002 \u6982\u8ff0 \u8fd0\u884c \u72ec\u7acb \u5730\u56fe \u7f51\u683c \u751f\u6210","title":"OpenDRIVE \u72ec\u7acb \u6a21\u5f0f"},{"location":"adv_opendrive/#_1","text":"\u6b64 \u6a21\u5f0f \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u8fd0\u884c \u5b8c\u6574 \u4eff\u771f \uff0c \u65e0\u9700 \u4efb\u4f55 \u989d\u5916 \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u6216 \u8d44\u4ea7 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u91c7\u7528 OpenDRIVE \u6587\u4ef6 \u5e76 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u521b\u5efa \u65f6\u95f4 3D \u7f51\u683c \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u751f\u6210 \u7684 \u7f51\u683c \u4ee5 \u7b80\u7ea6 \u7684 \u65b9\u5f0f \u63cf\u8ff0 \u4e86 \u9053\u8def \u5b9a\u4e49 \u3002 \u6240\u6709 \u5143\u7d20 \u90fd \u5c06 \u4e0e OpenDRIVE \u6587\u4ef6 \u5bf9\u5e94 \uff0c \u4f46 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53ea\u6709 void \u3002 \u4e3a \u9632\u6b62 \u8f66\u8f86 \u6389 \u51fa \u8def\u9762 \uff0c \u91c7\u53d6 \u4e86 \u4e24\u9879 \u63aa\u65bd \u3002 \u5728 \u8f66\u8f86 \u6d41\u52a8 \u6700 \u590d\u6742 \u7684 \u8def\u53e3 \uff0c \u8f66\u9053 \u7a0d\u5bbd \u4e00\u4e9b \u3002 \u5728 \u9053\u8def \u7684 \u8fb9\u754c \u5904 \u521b\u5efa \u4e86 \u53ef\u89c1 \u7684 \u5899\u58c1 \uff0c \u4f5c\u4e3a \u6700\u540e \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8ba9 \u884c \u6807\u5fd7 \u5c06 \u5373\u65f6 \u751f\u6210 \u3002 \u884c\u4eba \u5c06 \u5728 \u5730\u56fe \u4e0a \u663e\u793a \u7684 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u4e0a \u5bfc\u822a \u3002 \u6240\u6709 \u8fd9\u4e9b \u5143\u7d20 \uff0c \u4ee5\u53ca \u9053\u8def \u4e0a \u7684 \u6bcf \u4e00\u4e2a \u7ec6\u8282 \uff0c \u90fd \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \u3002 \u7531\u4e8e \u72ec\u7acb \u6a21\u5f0f \u76f4\u63a5 \u4f7f\u7528 . xodr \uff0c \u56e0\u6b64 \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u5f71\u54cd \u5230 \u4eff\u771f \u3002 \u8fd9 \u53ef\u80fd \u662f \u4e00\u4e2a \u95ee\u9898 \uff0c \u5c24\u5176 \u662f \u5728 \u8bb8\u591a \u8f66\u9053 \u6df7\u5408 \u7684 \u8def\u53e3 \u3002 \u91cd\u8981 \u7684 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 OpenDRIVE \u6587\u4ef6 \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u8fd0\u884c \u4eff\u771f \u65f6 \uff0c \u5176\u4e2d \u7684 \u4efb\u4f55 \u95ee\u9898 \u90fd \u4f1a \u4f20\u64ad \u3002","title":"\u6982\u8ff0"},{"location":"adv_opendrive/#_2","text":"\u6253\u5f00 OpenDRIVE \u6587\u4ef6 \u53ea \u9700 \u901a\u8fc7 API \u8c03\u7528 client . generate _ opendrive _ world ( ) \u3002 \u8fd9 \u5c06 \u751f\u6210 \u65b0 \u5730\u56fe \uff0c \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u5b83 \u51c6\u5907 \u597d \u3002 \u8be5 \u65b9\u6cd5 \u9700\u8981 \u4e24\u4e2a \u53c2\u6570 \u3002 opendrive \u662f \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u3002 parameters \u662f \u4e00\u4e2a carla . OpendriveGenerationParameters \u5305\u542b \u7f51\u683c \u751f\u6210 \u7684 \u8bbe\u7f6e \u3002 \u8fd9\u4e2a \u53c2\u6570 \u662f \u53ef\u9009 \u7684 \u3002 vertex _ distance \uff08 \u9ed8\u8ba4 2.0 \u7c73 \uff09 - \u7f51\u683c \u9876\u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u8ddd\u79bb \u8d8a\u5927 \uff0c \u7f51\u683c \u8d8a \u4e0d \u51c6\u786e \u3002 \u4f46\u662f \uff0c \u5982\u679c \u8ddd\u79bb \u592a\u5c0f \uff0c \u751f\u6210 \u7684 \u7f51\u683c \u5c06 \u592a\u91cd \u800c \u65e0\u6cd5 \u4f7f\u7528 \u3002 max _ road _ length \uff08 \u9ed8\u8ba4 50.0 \u7c73 \uff09 - \u7f51\u683c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u5927 \u957f\u5ea6 \u3002 \u7f51\u683c \u88ab \u5206\u6210 \u51e0 \u90e8\u5206 \u4ee5 \u51cf\u5c11 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5982\u679c \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e0d \u53ef\u89c1 \uff0c UE \u5c06 \u4e0d\u4f1a \u6e32\u67d3 \u5b83 \u3002 \u90e8\u5206 \u8d8a\u5c0f \uff0c \u5b83\u4eec \u88ab \u4e22\u5f03 \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u5c31 \u8d8a \u5927 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u90e8\u5206 \u592a\u5c0f \uff0c UE \u9700\u8981 \u7ba1\u7406 \u7684 \u5bf9\u8c61 \u592a \u591a \uff0c \u6027\u80fd \u4e5f \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 wall _ height \uff08 \u9ed8\u8ba4 \u4e3a 1.0 \u7c73 \uff09 - \u5728 \u9053\u8def \u8fb9\u754c \u4e0a \u521b\u5efa \u7684 \u9644\u52a0 \u5899 \u7684 \u9ad8\u5ea6 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u5760\u5165 \u865a\u7a7a \u3002 additional _ width \uff08 \u9ed8\u8ba4 \u4e3a 0.6 \u7c73 \uff0c \u6bcf \u8fb9 0.3 \uff09 \u2014 \u5e94\u7528 \u4e8e \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u5c0f \u5bbd\u5ea6 \u589e\u91cf \u3002 \u8fd9\u662f \u9632\u6b62 \u8f66\u8f86 \u5760\u843d \u7684 \u5b89\u5168 \u63aa\u65bd \u5b89\u5168\u63aa\u65bd \u3002 smooth _ junctions ( default True ) \u2014 \u5982\u679c True \uff0c OpenDRIVE \u7684 \u4e00\u4e9b \u4fe1\u606f \u5c06 \u88ab \u91cd\u65b0 \u89e3\u91ca \u4ee5 \u5e73\u6ed1 \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u6700\u7ec8 \u7f51\u683c \u3002 \u8fd9\u6837 \u505a \u662f \u4e3a\u4e86 \u9632\u6b62 \u5728 \u4e0d\u540c \u8f66\u9053 \u76f8\u9047 \u65f6 \u53ef\u80fd \u53d1\u751f \u7684 \u4e00\u4e9b \u4e0d \u51c6\u786e \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a False \uff0c \u7f51\u683c \u5c06 \u5b8c\u5168 \u6309\u7167 OpenDRIVE \u4e2d \u7684 \u63cf\u8ff0 \u751f\u6210 \u3002 enable _ mesh _ visibility ( default True ) \u2014 \u5982\u679c False \uff0c \u7f51\u683c \u5c06 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \uff0c \u8fd9 \u53ef\u4ee5 \u4e3a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8282\u7701 \u5927\u91cf \u6e32\u67d3 \u5de5\u4f5c \u3002 \u4e3a\u4e86 \u8f7b\u677e \u6d4b\u8bd5 \u6b64 \u529f\u80fd \uff0c PythonAPI / util / \u4e2d \u7684 config . py \u811a\u672c \u6709 \u4e00\u4e2a \u65b0 \u53c2\u6570 \uff0c - x \u6216 -- xodr - path \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u9700\u8981 \u4e00\u4e2a \u5e26\u6709 . xodr \u6587\u4ef6 \u8def\u5f84 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 path / example . xodr \u3002 \u5982\u679c \u4f7f\u7528 \u6b64 \u811a\u672c \u751f\u6210 \u7f51\u683c \uff0c \u5219 \u4f7f\u7528 \u7684 \u53c2\u6570 \u5c06 \u59cb\u7ec8 \u4e3a \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u6b64 \u529f\u80fd \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u65b0 TownBig \u8fdb\u884c \u6d4b\u8bd5 \u3002 python3 config . py - x opendrive / TownBig . xodr \u91cd\u8981 \u7684 client . generate _ opendrive _ world ( ) \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u76f8\u53cd \uff0c config . py \u811a\u672c \u9700\u8981 . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u7b14\u8bb0 \u5982\u679c \u9047\u5230 opendrive \u65e0\u6cd5 \u6b63\u786e \u89e3\u6790 \u9519\u8bef \uff0c \u8bf7 \u786e\u4fdd \u5bf9 CarlaUE4 / Content / Carla / Maps / OpenDrive / \u76ee\u5f55 \u6709 \u5199 \u6743\u9650 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6b63\u786e \u89e3\u6790 xodr \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \u3002","title":"\u8fd0\u884c \u72ec\u7acb \u5730\u56fe"},{"location":"adv_opendrive/#_3","text":"\u7f51\u683c \u7684 \u751f\u6210 \u662f \u8be5 \u6a21\u5f0f \u7684 \u5173\u952e \u8981\u7d20 \u3002 \u53ea\u6709 \u5f53 \u751f\u6210 \u7684 \u7f51\u683c \u662f \u5e73\u6ed1 \u7684 \u5e76\u4e14 \u5b8c\u5168 \u7b26\u5408 \u5b8c\u5168\u7b26\u5408 \u5176 \u5b9a\u4e49 \u65f6 \uff0c \u8be5 \u529f\u80fd \u624d\u80fd \u6210\u529f \u3002 \u51fa\u4e8e \u8fd9\u4e2a \u539f\u56e0 \uff0c \u8fd9 \u4e00\u6b65 \u6b63\u5728 \u4e0d\u65ad \u6539\u8fdb \u4e0d\u65ad\u6539\u8fdb \u3002 \u5728 \u6700\u540e \u7684 \u8fed\u4ee3 \u4e2d \uff0c \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u5df2\u7ecf \u8fc7 \u629b\u5149 \u4ee5 \u907f\u514d \u4e0d \u51c6\u786e \u53d1\u751f \uff0c \u5c24\u5176 \u662f \u5728 \u4e0d \u5e73\u5766 \u7684 \u8f66\u9053 \u8fde\u63a5 \u8fde\u63a5\u5904 \u3002 \u5728 \u751f\u6210 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u7f51\u683c \u65f6 \uff0c \u8f83 \u9ad8 \u7684 \u8f66\u9053 \u5f80\u5f80 \u4f1a \u963b\u6321 \u4e0b\u65b9 \u7684 \u8f66\u9053 \u3002 smooth _ junctions \u53c2\u6570 \u53ef \u9632\u6b62 \u6b64\u7c7b \u95ee\u9898 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u4e0d\u662f \u5c06 \u6574\u4e2a \u5730\u56fe \u521b\u5efa \u4e3a \u4e00\u4e2a \u72ec\u7279 \u7684 \u7f51\u683c \uff0c \u800c\u662f \u521b\u5efa \u4e0d\u540c \u7684 \u90e8\u5206 \u3002 \u901a\u8fc7 \u5212\u5206 \u7f51\u683c \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u907f\u514d \u6e32\u67d3 \u4e0d \u53ef\u89c1 \u7684 \u90e8\u5206 \uff0c \u5e76 \u8282\u7701 \u6210\u672c \u8282\u7701\u6210\u672c \u3002 \u5de5\u4f5c \u66f4 \u5c0f \u8fd8 \u5141\u8bb8 \u751f\u6210 \u5de8\u5927 \u7684 \u5730\u56fe \u5e76 \u5305\u542b \u53ef\u80fd \u51fa\u73b0 \u5728 \u7f51\u683c \u7684 \u4e00\u5c0f \u5c0f\u90e8 \u90e8\u5206 \u4e00\u5c0f\u90e8\u5206 \u4e0a \u7684 \u95ee\u9898 \u3002 \u5173\u4e8e \u7f51\u683c \u751f\u6210 \u7684 \u5f53\u524d \u72b6\u6001 \uff0c \u5e94 \u8003\u8651 \u4e00\u4e9b \u56e0\u7d20 \u3002 \u7ed3 \u5e73\u6ed1 \u3002 \u9ed8\u8ba4 \u5e73\u6ed1 \u53ef \u9632\u6b62 \u4e0a\u8ff0 \u503e\u659c \u8fde\u63a5 \u8fde\u63a5\u5904 \u7684 \u95ee\u9898 \u3002 \u4f46\u662f \uff0c \u5b83\u4f1a \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u4fee\u6539 \u539f\u59cb \u7f51\u683c \u3002 \u5982\u679c \u613f\u610f \uff0c \u5c06 smooth _ junctions \u8bbe\u7f6e \u4e3a False \u4ee5 \u7981\u7528 \u5e73\u6ed1 \u3002 \u6a2a\u5411 \u5761\u5ea6 \u3002 \u6b64 \u529f\u80fd \u5f53\u524d \u672a \u96c6\u6210 \u5728 Carla \u4e2d \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u9ad8\u5ea6 \u3002 \u76ee\u524d \uff0c \u6240\u6709 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u7684 \u786c \u7f16\u7801 \u90fd \u662f \u76f8\u540c \u7684 \u3002 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u5fc5\u987b \u9ad8\u4e8e \u9053\u8def \u6807\u9ad8 \u624d\u80fd \u68c0\u6d4b \u5230 \u78b0\u649e \uff0c \u4f46 RoadRunner \u4e0d\u4f1a \u5c06 \u6b64\u503c \u5bfc\u51fa \u5230 OpenDRIVE \u6587\u4ef6 \u3002 \u9ad8\u5ea6 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4ee5 \u4fdd\u8bc1 \u78b0\u649e \u3002 \u8fd9 \u6db5\u76d6 \u4e86 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5173\u4e8e OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u6293\u4f4f \u673a\u4f1a \u6293\u4f4f\u673a\u4f1a \u5e76 \u4f7f\u7528 \u4efb\u4f55 OpenDRIVE \u5730\u56fe \u5728 Carla \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u8bba\u575b \u4e2d \u7684 \u7591\u95ee \u548c \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"\u7f51\u683c \u751f\u6210"},{"location":"adv_procedural_building_tool/","text":"\u7b14\u8bb0 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u76ee\u524d \u662f \u4e00\u4e2a \u5b9e\u9a8c \u529f\u80fd \u6027\u529f\u80fd \uff0c \u9636\u6bb5 \u73b0\u9636\u6bb5 \u5c1a\u672a \u8003\u8651 \u6295\u5165 \u751f\u4ea7 \u3002 \u56e0\u6b64 \u5b83 \u53ea\u80fd \u7528\u4e8e \u5b9e\u9a8c \u7814\u7a76 \u9879\u76ee \u3002 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u751f\u6210 \u865a\u62df \u4e09\u7ef4 \u5efa\u7b51 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 \u754c\u9762 \u5bf9 \u5176 \u5c3a\u5bf8 \u548c \u88c5\u9970 \u98ce\u683c \u8fdb\u884c \u8c03\u5236 \uff0c \u4ee5 \u521b\u5efa \u8fd1\u4e4e \u65e0\u9650 \u7684 \u53d8\u5316 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u754c\u9762 \u9009\u62e9 \u697c\u5c42 \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5c3a\u5bf8 \u548c \u9ad8\u5ea6 \u3002 \u7136\u540e \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5efa\u7b51 \u5927\u5802 \u3001 \u4e3b\u4f53 \u4ee5\u53ca \u9876\u5c42 \u6216 \u9601\u697c \u9009\u62e9 \u591a\u79cd \u98ce\u683c \u3002 \u53ef\u4ee5 \u4ece Carla \u8d44\u6e90 \u8d44\u6e90\u5e93 \u4e2d\u4e3a \u89d2\u7a97 \u548c \u9633\u53f0 \u7b49 \u529f\u80fd \u9009\u62e9 \u5404\u79cd \u9762\u677f \u5143\u7d20 \u6837\u5f0f \u3002 \u6253\u5f00 \u5de5\u5177 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u7f51\u683c \u53c2\u6570 \u7f51\u683c \u5143\u7d20 \u63d2\u69fd \u5916\u5899 \u6750\u6599 \u70d8\u7119 \u6253\u5f00 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u5411 \u573a\u666f \u6dfb\u52a0 \u7a0b\u5e8f \u6dfb\u52a0\u7a0b\u5e8f \u5efa\u7b51 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5bfc\u822a \u5230 Content > Carla > Blueprints > LevelDesign \u5e76 \u62d6\u52a8 \u84dd\u56fe BP _ ProceduralBuilding \u5230 \u5730\u56fe \u4e2d \u3002 \u5c06 \u8d44\u4ea7 \u79fb\u52a8 \u5230 \u60a8 \u5e0c\u671b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4f4d\u7f6e \u3002 \u9009\u62e9 \u4e00\u4e2a \u6709 \u7a7a\u95f4 \u7684 \u5730\u65b9 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u6e05\u695a \u5730 \u770b\u5230 \u7ed3\u679c \u3002 \u7136\u540e \uff0c \u8981 \u6253\u5f00 \u8be5 \u5de5\u5177 \uff0c \u8bf7 \u53f3\u952e \u5355\u51fb WD _ ProceduralBuilding \u5c0f \u90e8\u4ef6 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Run editor utility widget \u6765 \u542f\u52a8 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u3002 \u8fd9 \u5c06 \u6253\u5f00 \u8be5 \u5de5\u5177 \u7684 \u754c\u9762 \u3002 \u7b14\u8bb0 \u60a8 \u5fc5\u987b \u5728 \u6253\u5f00 \u5de5\u5177 \u4e4b\u524d \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \uff0c \u5730\u56fe \u4e2d \u5fc5\u987b \u5b58\u5728 BP _ ProceduralBuilding \u84dd\u56fe \u7684 \u5b9e\u4f8b \uff0c \u5de5\u5177 \u624d\u80fd \u8fd0\u884c \u3002 \u60a8 \u8fd8 \u5fc5\u987b \u786e\u4fdd \u5728 \u7ee7\u7eed \u4e4b\u524d \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \uff08 World outliner \uff09 \u4e2d \u9009\u62e9 BP _ ProceduralBuilding \u5b9e\u4f53 \u3002 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u57fa\u672c \u5c5e\u6027 \uff0c \u4f8b\u5982 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u548c \u697c\u5c42 \u9ad8\u5ea6 \u3002 \u7b14\u8bb0 \u5728 \u7f51\u683c \u53c2\u6570 \u90e8\u5206 \uff08 mesh parameters \uff09 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u4e4b\u524d \uff0c \u8c03\u6574 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u65f6 \uff0c \u60a8 \u4e0d\u4f1a \u5728 \u865a\u5e7b \u5f15\u64ce \u89c6 \u53e3\u4e2d \u770b\u5230 \u4efb\u4f55 \u53d8\u5316 \u3002 \u53ef\u7528 \u53c2\u6570 \u5982\u4e0b \uff1a Seed : \u8bbe\u7f6e \u7a0b\u5e8f \u751f\u6210 \u7684 \u968f\u673a \u79cd\u5b50 \uff0c \u8fd9 \u53ef\u4ee5 \u4f7f \u5efa\u7b51 \u5efa\u7b51\u7269 \u5177\u6709 \u76f8\u540c \u8bbe\u7f6e \u7684 \u53d8\u5316 \u3002 Num floors : \u8bbe\u7f6e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5c42\u6570 \u6216 \u697c\u5c42 \u6570 \uff0c \u5e76 \u4ece\u6b64 \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9ad8\u5ea6 \u3002 Length X / Y : \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5728 X \u548c Y \u7ef4\u5ea6 \u4e0a \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5927\u5c0f \u3002 \u8fd9\u4e9b \u662f \u65e0 \u5355\u4f4d \u7684 \uff0c \u6570\u5b57 \u8868\u793a \u91cd\u590d \u590d\u90e8 \u90e8\u5206 \u91cd\u590d\u90e8\u5206 \u7684 \u6570\u91cf \uff0c \u6bcf\u4e2a \u90e8\u5206 \u662f \u4e00\u5217 \u7a97\u53e3 \u3002 Create automatically : \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u5728 \u89c6 \u53e3\u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u8c03\u6574 \u7684 \u6548\u679c \u3002 Corners : \u5141\u8bb8 \u5c06 \u89d2\u4ef6 \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5728 Mesh parameters \u90e8\u5206 \u4e2d \u9009\u62e9 \u8fd9\u4e9b \u4ef6 \u3002 Walls : \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5de6 / \u53f3 / \u524d / \u540e \u7684 \u4e2d\u95f4 \u90e8\u5206 \u66ff\u6362 \u4e3a \u53ef \u4f7f\u7528 \u7f51\u683c \u53c2\u6570 \uff08 Mesh parameters \uff09 \u83dc\u5355 \u9009\u62e9 \u7684 \u66ff\u4ee3 \u90e8\u5206 \u3002 Doors : \u5141\u8bb8 \u5728 \u5927\u5385 \u66fe \u653e\u7f6e \u95e8 \u7684 \u9635\u5217 \u3002 \u95e8 \u653e\u7f6e \u5728 \u9009\u5b9a \u7684 \u7d22\u5f15 \u4f4d\u7f6e \u3002 \u7f51\u683c \u53c2\u6570 \u5728 \u754c\u9762 \u7684 \u201c \u7f51\u683c \u53c2\u6570 ( Mesh Parameters ) \u201d \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u6211\u4eec \u9009\u62e9 \u5c06 \u7528\u4e8e \u8986\u76d6 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u90e8 \u7684 \u7f51\u683c \u4ef6 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0d\u540c \u90e8\u5206 \u7684 \u7f51\u7247 \u5206\u4e3a 5 \u7c7b \uff1a Lobby : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5927\u5802 \u7684 \u7f51\u7247 \u3002 Midsection : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d\u6bb5 \u3001 \u5927\u5802 \u548c \u9876\u5c42 \u4e4b\u95f4 \u7684 \u6bcf \u4e00\u5c42 \u7684 \u7f51\u72b6 \u90e8\u4ef6 \u3002 Penthouse : \u7528\u4e8e \u88c5\u9970 \u9876\u5c42 \u516c\u5bd3 \u5c42 \u7684 \u7f51\u683c \u4ef6 \u3002 Doors : \u4e3a \u5927\u5385 \u6dfb\u52a0 \u95e8 \u7684 \u7f51\u72b6 \u90e8\u4ef6 Walls : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u7f51\u7247 \u5728 \u6bcf\u4e2a \u7c7b\u522b \u4e2d \uff0c \u60a8 \u90fd \u4f1a \u53d1\u73b0 \u8bb8\u591a \u7f51\u7247 \u9009\u9879 \u3002 \u5355\u51fb \u4e00\u4e2a \u6216 \u591a\u4e2a \u4f7f \u5176 \u53d8\u4e3a \u7ea2\u8272 \uff0c \u8fd9\u4e9b \u5c06 \u88ab \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u8be5 \u5de5\u5177 \u5c06 \u5728 \u9009\u9879 \u4e4b\u95f4 \u968f\u673a \u4ea4\u66ff \u3002 \u5f53 \u60a8 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u65f6 \uff0c \u5982\u679c \u60a8 \u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 \u81ea\u52a8 \u521b\u5efa \uff08 Create automatically \uff09 \uff0c \u60a8 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u89c6 \u53e3\u4e2d \u770b\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u5728 \u6210\u5f62 \u3002 \u7f51\u683c \u5143\u7d20 \u5728 \u6b64 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u66f4 \u8be6\u7ec6 \u5143\u7d20 \uff0c \u4f8b\u5982 \u7a97\u6237 \u3001 \u67f1\u5b50 \u3001 \u82b1\u76c6 \u3001 \u7a7a\u8c03 \u88c5\u7f6e \u548c \u5929\u7ebf \u3002 \u6bcf\u79cd \u7c7b\u578b \u7684 \u88c5\u9970 \u90fd \u6709 \u7565\u5fae \u4e0d\u540c \u7684 \u5c5e\u6027 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ec6\u8282 \u7684 \u88c5\u9970 \u6709 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \uff1a \u5782\u76f4 / \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c : \u8fd9\u4e9b \u7f51\u683c \u7247 \u5b9a\u4e49 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \u7a97\u6846 \u7684 \u6837\u5f0f \u3002 \u5782\u76f4 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u5bbd\u5ea6 \u9ad8 \u7684 \u7a97\u6237 \u7a7a\u95f4 \uff0c \u800c \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u9ad8\u5ea6 \u66f4 \u5bbd \u7684 \u7a97\u6237 \u7a7a\u95f4 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u5b83\u4eec \u5c06 \u4ea4\u66ff \u51fa\u73b0 \u3002 \u67f1 \u7f51\u683c : \u8fd9\u4e9b \u4eff\u771f \u8de8\u8d8a \u5efa\u7b51 \u5efa\u7b51\u7269 \u9ad8\u5ea6 \u7684 \u7816 \u780c \u67f1 \u7ec6\u8282 \u9876\u90e8 / \u5e95\u90e8 \u7a97\u6237 \u7ec6\u8282 : \u8fd9\u4e9b \u7f51\u683c \u7528 \u95e8\u6963 \u548c \u906e\u9633 \u906e\u9633\u677f \u88c5\u9970 \u7a97\u6237 \u7684 \u9876\u90e8 \uff0c \u7528 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u88c5\u9970 \u7a97\u6237 \u7684 \u5e95\u90e8 \u3002 Window columns : \u5206\u9694 \u7a97\u6237 \u7684 \u7816 \u780c \u67f1 Curtain meshes : \u5b89\u88c5 \u5728 \u7a97\u6237 \u5185 \u7684 \u7a97\u5e18 \u548c \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 Pot meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9 \u6dfb\u52a0 \u5230 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u7684 \u82b1\u76c6 Air conditioner meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9\u5904 \u6dfb\u52a0 \u5230 \u7a97\u6237 \u7684 \u7a7a\u8c03 \u88c5\u7f6e Pipe meshes : \u5782\u76f4 \u5411\u4e0b \u5ef6\u4f38 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7ba1\u9053 \uff0c \u6a21\u4eff \u5c4b\u9876 \u7684 \u6392\u6c34 \u6c34\u7ba1 \u6392\u6c34\u7ba1 Wire meshes : \u6cbf\u7740 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5782\u76f4 \u5ef6\u4f38 \u7684 \u7535\u7ebf \uff0c \u6a21\u4eff \u7535\u89c6 \u5929\u7ebf \u5ef6\u4f38 \u548c \u95ea\u7535 \u63a5\u5730 \u5730\u7ebf \u63a5\u5730\u7ebf Antenna meshes : \u4ece \u7a97\u6237 \u4f38\u51fa \u7684 \u7535\u89c6 \u5929\u7ebf \u53c2\u6570 \u7684 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \uff1a \u5e38\u7528 \u53c2\u6570 : Percentage : \u63a7\u5236 \u5c06 \u653e\u7f6e \u5728 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0a \u7684 \u4ef6\u6570 \uff0c 100% \u8868\u793a \u6240\u6709 \u53ef\u7528 \u7a7a\u95f4 \u5c06 \u88ab \u5360\u7528 Offset : \u8be5 \u4f5c\u54c1 \u76f8\u5bf9 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e3b\u4f53 \u7684 \u7a7a\u95f4 \u504f\u79fb Blinds and curtains : Min / Max size : \u9009\u62e9 \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 \u6216 \u7a97\u5e18 \u7684 \u6700\u5c0f / \u6700\u5927 \u957f\u5ea6 \uff0c \u503c \u4e4b\u95f4 \u968f\u673a \u53d8\u5316 \u3002 1.0 \u4e3a \u5168\u95ed \uff0c 0.0 \u4e3a \u5168\u5f00 \u3002 Pipes and wires : Index : \u5b9a\u4e49 \u5c06 \u653e\u7f6e \u7ba1\u9053 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9762 Offset side / front : \u4ece \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u9762 \u7684 \u4e2d\u5fc3 \u5411 \u4f5c\u54c1 \u6dfb\u52a0 \u7a7a\u95f4 \u504f\u79fb \u7b14\u8bb0 \u5728 \u67d0\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \uff0c \u5f53 \u60a8 \u9009\u62e9 \u7ec6\u8282 \u7f51\u683c \u90e8\u4ef6 \uff08 \u4f8b\u5982 \u82b1\u76c6 \u3001 \u5929\u7ebf \u548c \u7a7a\u8c03 \u88c5\u7f6e \uff09 \u65f6 \uff0c \u60a8 \u4e0d\u5230 \u770b\u4e0d\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6709 \u4efb\u4f55 \u53d8\u5316 \u3002 \u8fd9 \u5f88 \u53ef\u80fd \u56e0\u4e3a \u662f\u56e0\u4e3a \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 \u90e8\u4ef6 \u6ca1\u6709 \u6dfb\u52a0 \u60a8 \u9009\u62e9 \u7684 \u90e8\u4ef6 \u6240 \u9700 \u7684 \u9002\u5f53 \u5957 \u63a5\u5b57 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u69fd \u90e8\u5206 \uff08 sockets section \uff09 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 \u63d2\u69fd \u3002 \u5957 \u63a5\u5b57 \u63d2\u69fd \u662f \u951a\u70b9 \uff0c \u7528\u4e8e \u5b9a\u4e49 \u5c06 \u7ec6\u8282 \u7f51\u683c \u7269\u4f53 \u653e\u7f6e \u5728 \u53e6 \u4e00\u4e2a \u7f51\u683c \u7269\u4f53 \u4e0a \u7684 \u4f4d\u7f6e \u3002 \u8981 \u5c06 \u5957 \u63a5\u5b57 \u6dfb\u52a0 \u5230 \u7a0b\u5e8f \u5efa\u7b51 \u4e2d \u7684 \u7f51\u683c \u7269\u4f53 \uff0c \u8bf7 \u5728 \u9009\u62e9 \u7a0b\u5e8f \u5efa\u7b51 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8f6c \u5230 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \uff08 details panel \uff09 \uff0c \u901a\u5e38 \u4f4d\u4e8e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u754c\u9762 \u7684 \u53f3\u4fa7 \u3002 \u5728 \u90a3\u91cc \uff0c \u60a8 \u5c06 \u627e\u5230 \u201c \u7f51\u683c \uff08 Meshes \uff09 \u201d \u548c \u201c \u7ec6\u8282 \u7f51\u683c \uff08 Detail meshes \uff09 \u201d \u9762\u677f \u3002 \u6253\u5f00 \u76f8\u5173 \u90e8\u5206 \uff0c \u5728 \u60a8 \u8981 \u653e\u7f6e \u63d2\u5ea7 \u7684 \u4f4d\u7f6e \u6253\u5f00 \u7f51\u7247 \u3002 \u627e\u5230 \u8981 \u5728 \u5176 \u4e0a \u653e\u7f6e \u5957 \u63a5\u5b57 \u7684 \u7f51\u683c \uff0c \u7136\u540e \u53cc\u51fb \u8be5 \u56fe\u6807 \u4ee5 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u5176 \u6253\u5f00 \u3002 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( create socket ) \u201d \u4ee5 \u6dfb\u52a0 \u5957 \u63a5\u5b57 \u5e76 \u4f7f\u7528 \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a \u7a7a\u8c03 \u673a\u7ec4 \uff08 Air conditioning unit \uff09 \uff1a aa _ * \u5929\u7ebf \uff08 Antennas \uff09 \uff1a ant _ * \u82b1\u76c6 \uff08 Plant pots \uff09 \uff1a pot _ * \u5c06 \u661f\u53f7 \u66ff\u6362 \u4e3a \u7d22\u5f15 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u6709 \u591a\u5c11 \u4e2a\u5957 \u63a5\u5b57 \uff0c \u5373 aa _ 0 , aa _ 2 , aa _ 3 ... \u5f53 \u60a8 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( Create socket ) \u201d \u65f6 \uff0c \u5957 \u63a5\u5b57 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u4e09\u7ef4 \u53e5\u67c4 \u8fdb\u884c \u5b9e\u4f8b \u5316 \u3002 \u5c06 \u63d2\u69fd \u62d6\u52a8 \u5230 \u7f51\u683c \u4e0a \u7684 \u6240 \u9700 \u4f4d\u7f6e \uff0c \u8fd9 \u662f \u60a8 \u7684 \u7ec6\u8282 \u90e8\u4ef6 \u5c06 \u663e\u793a \u8fde\u63a5 \u5230 \u5355\u5143 \u7684 \u4f4d\u7f6e \u3002 \u5916\u5899 \u6750\u6599 \u5728 \u5916\u89c2 \u6750\u6599 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 \u548c \u9884\u89c8 \u8981 \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u6750\u6599 \u3002 \u70d8\u7119 \u5728 \u70f9\u996a \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u9009\u62e9 \u7684 \u6240\u6709 \u7f51\u683c \u7269\u4f53 \u548c \u6750\u8d28 \u7ec4\u5408 \u5230 \u5177\u6709 \u5173\u8054 \u6750\u8d28 \u548c \u7eb9\u7406 \u7684 \u5355\u4e2a \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u4e2d \u3002 \u8fd8 \u5c06 \u4e3a LOD \u521b\u5efa \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 LOD \u7eb9\u7406 \u3002 \u5728 \u754c\u9762 \u4e2d \u6307\u5b9a \u5c06 \u4fdd\u5b58 \u65b0 \u5efa\u7b51 \u8d44\u6e90 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540d\u79f0 \u3002 \u4e00\u65e6 \u60a8 \u5b8c\u6210 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5236\u4f5c \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 Carla \u8d44\u4ea7 \u4e00\u6837 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5b9e\u4f8b \u653e\u7f6e \u5728 \u5730\u56fe \u4e2d \u3002","title":"Adv procedural building tool"},{"location":"adv_procedural_building_tool/#_1","text":"\u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u751f\u6210 \u865a\u62df \u4e09\u7ef4 \u5efa\u7b51 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 \u754c\u9762 \u5bf9 \u5176 \u5c3a\u5bf8 \u548c \u88c5\u9970 \u98ce\u683c \u8fdb\u884c \u8c03\u5236 \uff0c \u4ee5 \u521b\u5efa \u8fd1\u4e4e \u65e0\u9650 \u7684 \u53d8\u5316 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u754c\u9762 \u9009\u62e9 \u697c\u5c42 \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5c3a\u5bf8 \u548c \u9ad8\u5ea6 \u3002 \u7136\u540e \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5efa\u7b51 \u5927\u5802 \u3001 \u4e3b\u4f53 \u4ee5\u53ca \u9876\u5c42 \u6216 \u9601\u697c \u9009\u62e9 \u591a\u79cd \u98ce\u683c \u3002 \u53ef\u4ee5 \u4ece Carla \u8d44\u6e90 \u8d44\u6e90\u5e93 \u4e2d\u4e3a \u89d2\u7a97 \u548c \u9633\u53f0 \u7b49 \u529f\u80fd \u9009\u62e9 \u5404\u79cd \u9762\u677f \u5143\u7d20 \u6837\u5f0f \u3002 \u6253\u5f00 \u5de5\u5177 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u7f51\u683c \u53c2\u6570 \u7f51\u683c \u5143\u7d20 \u63d2\u69fd \u5916\u5899 \u6750\u6599 \u70d8\u7119","title":"\u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177"},{"location":"adv_procedural_building_tool/#_2","text":"\u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u5411 \u573a\u666f \u6dfb\u52a0 \u7a0b\u5e8f \u6dfb\u52a0\u7a0b\u5e8f \u5efa\u7b51 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5bfc\u822a \u5230 Content > Carla > Blueprints > LevelDesign \u5e76 \u62d6\u52a8 \u84dd\u56fe BP _ ProceduralBuilding \u5230 \u5730\u56fe \u4e2d \u3002 \u5c06 \u8d44\u4ea7 \u79fb\u52a8 \u5230 \u60a8 \u5e0c\u671b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4f4d\u7f6e \u3002 \u9009\u62e9 \u4e00\u4e2a \u6709 \u7a7a\u95f4 \u7684 \u5730\u65b9 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u6e05\u695a \u5730 \u770b\u5230 \u7ed3\u679c \u3002 \u7136\u540e \uff0c \u8981 \u6253\u5f00 \u8be5 \u5de5\u5177 \uff0c \u8bf7 \u53f3\u952e \u5355\u51fb WD _ ProceduralBuilding \u5c0f \u90e8\u4ef6 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Run editor utility widget \u6765 \u542f\u52a8 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u3002 \u8fd9 \u5c06 \u6253\u5f00 \u8be5 \u5de5\u5177 \u7684 \u754c\u9762 \u3002 \u7b14\u8bb0 \u60a8 \u5fc5\u987b \u5728 \u6253\u5f00 \u5de5\u5177 \u4e4b\u524d \u5b8c\u6210 \u6b64 \u6b65\u9aa4 \uff0c \u5730\u56fe \u4e2d \u5fc5\u987b \u5b58\u5728 BP _ ProceduralBuilding \u84dd\u56fe \u7684 \u5b9e\u4f8b \uff0c \u5de5\u5177 \u624d\u80fd \u8fd0\u884c \u3002 \u60a8 \u8fd8 \u5fc5\u987b \u786e\u4fdd \u5728 \u7ee7\u7eed \u4e4b\u524d \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \uff08 World outliner \uff09 \u4e2d \u9009\u62e9 BP _ ProceduralBuilding \u5b9e\u4f53 \u3002","title":"\u6253\u5f00 \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177"},{"location":"adv_procedural_building_tool/#_3","text":"\u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u57fa\u672c \u5c5e\u6027 \uff0c \u4f8b\u5982 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u548c \u697c\u5c42 \u9ad8\u5ea6 \u3002 \u7b14\u8bb0 \u5728 \u7f51\u683c \u53c2\u6570 \u90e8\u5206 \uff08 mesh parameters \uff09 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u4e4b\u524d \uff0c \u8c03\u6574 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u65f6 \uff0c \u60a8 \u4e0d\u4f1a \u5728 \u865a\u5e7b \u5f15\u64ce \u89c6 \u53e3\u4e2d \u770b\u5230 \u4efb\u4f55 \u53d8\u5316 \u3002 \u53ef\u7528 \u53c2\u6570 \u5982\u4e0b \uff1a Seed : \u8bbe\u7f6e \u7a0b\u5e8f \u751f\u6210 \u7684 \u968f\u673a \u79cd\u5b50 \uff0c \u8fd9 \u53ef\u4ee5 \u4f7f \u5efa\u7b51 \u5efa\u7b51\u7269 \u5177\u6709 \u76f8\u540c \u8bbe\u7f6e \u7684 \u53d8\u5316 \u3002 Num floors : \u8bbe\u7f6e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5c42\u6570 \u6216 \u697c\u5c42 \u6570 \uff0c \u5e76 \u4ece\u6b64 \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9ad8\u5ea6 \u3002 Length X / Y : \u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5728 X \u548c Y \u7ef4\u5ea6 \u4e0a \u7684 \u5360\u5730 \u5730\u9762 \u9762\u79ef \u5360\u5730\u9762\u79ef \u5927\u5c0f \u3002 \u8fd9\u4e9b \u662f \u65e0 \u5355\u4f4d \u7684 \uff0c \u6570\u5b57 \u8868\u793a \u91cd\u590d \u590d\u90e8 \u90e8\u5206 \u91cd\u590d\u90e8\u5206 \u7684 \u6570\u91cf \uff0c \u6bcf\u4e2a \u90e8\u5206 \u662f \u4e00\u5217 \u7a97\u53e3 \u3002 Create automatically : \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u5728 \u89c6 \u53e3\u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u8c03\u6574 \u7684 \u6548\u679c \u3002 Corners : \u5141\u8bb8 \u5c06 \u89d2\u4ef6 \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5728 Mesh parameters \u90e8\u5206 \u4e2d \u9009\u62e9 \u8fd9\u4e9b \u4ef6 \u3002 Walls : \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5de6 / \u53f3 / \u524d / \u540e \u7684 \u4e2d\u95f4 \u90e8\u5206 \u66ff\u6362 \u4e3a \u53ef \u4f7f\u7528 \u7f51\u683c \u53c2\u6570 \uff08 Mesh parameters \uff09 \u83dc\u5355 \u9009\u62e9 \u7684 \u66ff\u4ee3 \u90e8\u5206 \u3002 Doors : \u5141\u8bb8 \u5728 \u5927\u5385 \u66fe \u653e\u7f6e \u95e8 \u7684 \u9635\u5217 \u3002 \u95e8 \u653e\u7f6e \u5728 \u9009\u5b9a \u7684 \u7d22\u5f15 \u4f4d\u7f6e \u3002","title":"\u57fa\u672c\u53c2\u6570"},{"location":"adv_procedural_building_tool/#_4","text":"\u5728 \u754c\u9762 \u7684 \u201c \u7f51\u683c \u53c2\u6570 ( Mesh Parameters ) \u201d \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u6211\u4eec \u9009\u62e9 \u5c06 \u7528\u4e8e \u8986\u76d6 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u90e8 \u7684 \u7f51\u683c \u4ef6 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0d\u540c \u90e8\u5206 \u7684 \u7f51\u7247 \u5206\u4e3a 5 \u7c7b \uff1a Lobby : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5927\u5802 \u7684 \u7f51\u7247 \u3002 Midsection : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d\u6bb5 \u3001 \u5927\u5802 \u548c \u9876\u5c42 \u4e4b\u95f4 \u7684 \u6bcf \u4e00\u5c42 \u7684 \u7f51\u72b6 \u90e8\u4ef6 \u3002 Penthouse : \u7528\u4e8e \u88c5\u9970 \u9876\u5c42 \u516c\u5bd3 \u5c42 \u7684 \u7f51\u683c \u4ef6 \u3002 Doors : \u4e3a \u5927\u5385 \u6dfb\u52a0 \u95e8 \u7684 \u7f51\u72b6 \u90e8\u4ef6 Walls : \u7528\u4e8e \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u7f51\u7247 \u5728 \u6bcf\u4e2a \u7c7b\u522b \u4e2d \uff0c \u60a8 \u90fd \u4f1a \u53d1\u73b0 \u8bb8\u591a \u7f51\u7247 \u9009\u9879 \u3002 \u5355\u51fb \u4e00\u4e2a \u6216 \u591a\u4e2a \u4f7f \u5176 \u53d8\u4e3a \u7ea2\u8272 \uff0c \u8fd9\u4e9b \u5c06 \u88ab \u6dfb\u52a0 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u8be5 \u5de5\u5177 \u5c06 \u5728 \u9009\u9879 \u4e4b\u95f4 \u968f\u673a \u4ea4\u66ff \u3002 \u5f53 \u60a8 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u9009\u62e9 \u7f51\u683c \u7247\u6bb5 \u65f6 \uff0c \u5982\u679c \u60a8 \u5728 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 \u81ea\u52a8 \u521b\u5efa \uff08 Create automatically \uff09 \uff0c \u60a8 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u89c6 \u53e3\u4e2d \u770b\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u5728 \u6210\u5f62 \u3002","title":"\u7f51\u683c \u53c2\u6570"},{"location":"adv_procedural_building_tool/#_5","text":"\u5728 \u6b64 \u90e8\u5206 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u66f4 \u8be6\u7ec6 \u5143\u7d20 \uff0c \u4f8b\u5982 \u7a97\u6237 \u3001 \u67f1\u5b50 \u3001 \u82b1\u76c6 \u3001 \u7a7a\u8c03 \u88c5\u7f6e \u548c \u5929\u7ebf \u3002 \u6bcf\u79cd \u7c7b\u578b \u7684 \u88c5\u9970 \u90fd \u6709 \u7565\u5fae \u4e0d\u540c \u7684 \u5c5e\u6027 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ec6\u8282 \u7684 \u88c5\u9970 \u6709 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \uff1a \u5782\u76f4 / \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c : \u8fd9\u4e9b \u7f51\u683c \u7247 \u5b9a\u4e49 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e2d \u7a97\u6846 \u7684 \u6837\u5f0f \u3002 \u5782\u76f4 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u5bbd\u5ea6 \u9ad8 \u7684 \u7a97\u6237 \u7a7a\u95f4 \uff0c \u800c \u6c34\u5e73 \u7a97\u6237 \u7f51\u683c \u5c06 \u5360\u636e \u6bd4\u5176 \u9ad8\u5ea6 \u66f4 \u5bbd \u7684 \u7a97\u6237 \u7a7a\u95f4 \u3002 \u5982\u679c \u60a8 \u9009\u62e9 \u591a\u4e2a \u9009\u9879 \uff0c \u5b83\u4eec \u5c06 \u4ea4\u66ff \u51fa\u73b0 \u3002 \u67f1 \u7f51\u683c : \u8fd9\u4e9b \u4eff\u771f \u8de8\u8d8a \u5efa\u7b51 \u5efa\u7b51\u7269 \u9ad8\u5ea6 \u7684 \u7816 \u780c \u67f1 \u7ec6\u8282 \u9876\u90e8 / \u5e95\u90e8 \u7a97\u6237 \u7ec6\u8282 : \u8fd9\u4e9b \u7f51\u683c \u7528 \u95e8\u6963 \u548c \u906e\u9633 \u906e\u9633\u677f \u88c5\u9970 \u7a97\u6237 \u7684 \u9876\u90e8 \uff0c \u7528 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u88c5\u9970 \u7a97\u6237 \u7684 \u5e95\u90e8 \u3002 Window columns : \u5206\u9694 \u7a97\u6237 \u7684 \u7816 \u780c \u67f1 Curtain meshes : \u5b89\u88c5 \u5728 \u7a97\u6237 \u5185 \u7684 \u7a97\u5e18 \u548c \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 Pot meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9 \u6dfb\u52a0 \u5230 \u7a97\u53f0 \u548c \u690d\u7269 \u7bb1 \u7684 \u82b1\u76c6 Air conditioner meshes : \u5728 \u6307\u5b9a \u63d2\u5ea7 \u70b9\u5904 \u6dfb\u52a0 \u5230 \u7a97\u6237 \u7684 \u7a7a\u8c03 \u88c5\u7f6e Pipe meshes : \u5782\u76f4 \u5411\u4e0b \u5ef6\u4f38 \u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7ba1\u9053 \uff0c \u6a21\u4eff \u5c4b\u9876 \u7684 \u6392\u6c34 \u6c34\u7ba1 \u6392\u6c34\u7ba1 Wire meshes : \u6cbf\u7740 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5782\u76f4 \u5ef6\u4f38 \u7684 \u7535\u7ebf \uff0c \u6a21\u4eff \u7535\u89c6 \u5929\u7ebf \u5ef6\u4f38 \u548c \u95ea\u7535 \u63a5\u5730 \u5730\u7ebf \u63a5\u5730\u7ebf Antenna meshes : \u4ece \u7a97\u6237 \u4f38\u51fa \u7684 \u7535\u89c6 \u5929\u7ebf \u53c2\u6570 \u7684 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \uff1a \u5e38\u7528 \u53c2\u6570 : Percentage : \u63a7\u5236 \u5c06 \u653e\u7f6e \u5728 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e0a \u7684 \u4ef6\u6570 \uff0c 100% \u8868\u793a \u6240\u6709 \u53ef\u7528 \u7a7a\u95f4 \u5c06 \u88ab \u5360\u7528 Offset : \u8be5 \u4f5c\u54c1 \u76f8\u5bf9 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e3b\u4f53 \u7684 \u7a7a\u95f4 \u504f\u79fb Blinds and curtains : Min / Max size : \u9009\u62e9 \u767e\u53f6 \u53f6\u7a97 \u767e\u53f6\u7a97 \u6216 \u7a97\u5e18 \u7684 \u6700\u5c0f / \u6700\u5927 \u957f\u5ea6 \uff0c \u503c \u4e4b\u95f4 \u968f\u673a \u53d8\u5316 \u3002 1.0 \u4e3a \u5168\u95ed \uff0c 0.0 \u4e3a \u5168\u5f00 \u3002 Pipes and wires : Index : \u5b9a\u4e49 \u5c06 \u653e\u7f6e \u7ba1\u9053 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u9762 Offset side / front : \u4ece \u5efa\u7b51 \u5efa\u7b51\u7269 \u6b63\u9762 \u7684 \u4e2d\u5fc3 \u5411 \u4f5c\u54c1 \u6dfb\u52a0 \u7a7a\u95f4 \u504f\u79fb \u7b14\u8bb0 \u5728 \u67d0\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \uff0c \u5f53 \u60a8 \u9009\u62e9 \u7ec6\u8282 \u7f51\u683c \u90e8\u4ef6 \uff08 \u4f8b\u5982 \u82b1\u76c6 \u3001 \u5929\u7ebf \u548c \u7a7a\u8c03 \u88c5\u7f6e \uff09 \u65f6 \uff0c \u60a8 \u4e0d\u5230 \u770b\u4e0d\u5230 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6709 \u4efb\u4f55 \u53d8\u5316 \u3002 \u8fd9 \u5f88 \u53ef\u80fd \u56e0\u4e3a \u662f\u56e0\u4e3a \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 \u90e8\u4ef6 \u6ca1\u6709 \u6dfb\u52a0 \u60a8 \u9009\u62e9 \u7684 \u90e8\u4ef6 \u6240 \u9700 \u7684 \u9002\u5f53 \u5957 \u63a5\u5b57 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u69fd \u90e8\u5206 \uff08 sockets section \uff09 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 \u63d2\u69fd \u3002","title":"\u7f51\u683c \u5143\u7d20"},{"location":"adv_procedural_building_tool/#_6","text":"\u63d2\u69fd \u662f \u951a\u70b9 \uff0c \u7528\u4e8e \u5b9a\u4e49 \u5c06 \u7ec6\u8282 \u7f51\u683c \u7269\u4f53 \u653e\u7f6e \u5728 \u53e6 \u4e00\u4e2a \u7f51\u683c \u7269\u4f53 \u4e0a \u7684 \u4f4d\u7f6e \u3002 \u8981 \u5c06 \u5957 \u63a5\u5b57 \u6dfb\u52a0 \u5230 \u7a0b\u5e8f \u5efa\u7b51 \u4e2d \u7684 \u7f51\u683c \u7269\u4f53 \uff0c \u8bf7 \u5728 \u9009\u62e9 \u7a0b\u5e8f \u5efa\u7b51 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8f6c \u5230 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \uff08 details panel \uff09 \uff0c \u901a\u5e38 \u4f4d\u4e8e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u754c\u9762 \u7684 \u53f3\u4fa7 \u3002 \u5728 \u90a3\u91cc \uff0c \u60a8 \u5c06 \u627e\u5230 \u201c \u7f51\u683c \uff08 Meshes \uff09 \u201d \u548c \u201c \u7ec6\u8282 \u7f51\u683c \uff08 Detail meshes \uff09 \u201d \u9762\u677f \u3002 \u6253\u5f00 \u76f8\u5173 \u90e8\u5206 \uff0c \u5728 \u60a8 \u8981 \u653e\u7f6e \u63d2\u5ea7 \u7684 \u4f4d\u7f6e \u6253\u5f00 \u7f51\u7247 \u3002 \u627e\u5230 \u8981 \u5728 \u5176 \u4e0a \u653e\u7f6e \u5957 \u63a5\u5b57 \u7684 \u7f51\u683c \uff0c \u7136\u540e \u53cc\u51fb \u8be5 \u56fe\u6807 \u4ee5 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u5176 \u6253\u5f00 \u3002 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( create socket ) \u201d \u4ee5 \u6dfb\u52a0 \u5957 \u63a5\u5b57 \u5e76 \u4f7f\u7528 \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a \u7a7a\u8c03 \u673a\u7ec4 \uff08 Air conditioning unit \uff09 \uff1a aa _ * \u5929\u7ebf \uff08 Antennas \uff09 \uff1a ant _ * \u82b1\u76c6 \uff08 Plant pots \uff09 \uff1a pot _ * \u5c06 \u661f\u53f7 \u66ff\u6362 \u4e3a \u7d22\u5f15 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u6709 \u591a\u5c11 \u4e2a\u5957 \u63a5\u5b57 \uff0c \u5373 aa _ 0 , aa _ 2 , aa _ 3 ... \u5f53 \u60a8 \u5355\u51fb \u201c \u521b\u5efa \u5957 \u63a5\u5b57 ( Create socket ) \u201d \u65f6 \uff0c \u5957 \u63a5\u5b57 \u5c06 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u4e09\u7ef4 \u53e5\u67c4 \u8fdb\u884c \u5b9e\u4f8b \u5316 \u3002 \u5c06 \u63d2\u69fd \u62d6\u52a8 \u5230 \u7f51\u683c \u4e0a \u7684 \u6240 \u9700 \u4f4d\u7f6e \uff0c \u8fd9 \u662f \u60a8 \u7684 \u7ec6\u8282 \u90e8\u4ef6 \u5c06 \u663e\u793a \u8fde\u63a5 \u5230 \u5355\u5143 \u7684 \u4f4d\u7f6e \u3002","title":"\u5957 \u63a5\u5b57"},{"location":"adv_procedural_building_tool/#_7","text":"\u5728 \u5916\u89c2 \u6750\u6599 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 \u548c \u9884\u89c8 \u8981 \u88c5\u9970 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5899\u58c1 \u7684 \u6750\u6599 \u3002","title":"\u5916\u5899 \u6750\u6599"},{"location":"adv_procedural_building_tool/#_8","text":"\u5728 \u70f9\u996a \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u9009\u62e9 \u7684 \u6240\u6709 \u7f51\u683c \u7269\u4f53 \u548c \u6750\u8d28 \u7ec4\u5408 \u5230 \u5177\u6709 \u5173\u8054 \u6750\u8d28 \u548c \u7eb9\u7406 \u7684 \u5355\u4e2a \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u4e2d \u3002 \u8fd8 \u5c06 \u4e3a LOD \u521b\u5efa \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 LOD \u7eb9\u7406 \u3002 \u5728 \u754c\u9762 \u4e2d \u6307\u5b9a \u5c06 \u4fdd\u5b58 \u65b0 \u5efa\u7b51 \u8d44\u6e90 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540d\u79f0 \u3002 \u4e00\u65e6 \u60a8 \u5b8c\u6210 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5236\u4f5c \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 Carla \u8d44\u4ea7 \u4e00\u6837 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u5b9e\u4f8b \u653e\u7f6e \u5728 \u5730\u56fe \u4e2d \u3002","title":"\u70d8\u7119"},{"location":"adv_ptv/","text":"PTV - Vissim \u8054\u5408 \u4eff\u771f Carla \u5f00\u53d1 \u4e86 \u4e0e PTV - Vissim \u7684 \u534f\u540c \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u80fd\u529b \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u534f\u540c \u4eff\u771f \u521b\u5efa \u65b0 \u7f51\u7edc \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u4e3a\u4e86 \u8fd0\u884c \u534f\u540c \u4eff\u771f \uff0c \u6709 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u662f \u5fc5\u8981 \u7684 \u3002 \u8d2d\u4e70 PTV - Vissim \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u9700\u8981 \u83b7\u53d6 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u754c\u9762 \u63d2\u4ef6 \u3002 \u5728 PTV - Vissim \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u67e5\u627e DrivingSimulatorProxy . dll \u3002 \u5c06 \u5176 \u79fb\u81f3 C : \\ Windows \\ System32 \u3002 \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u4e0e \u6b64 \u529f\u80fd \u76f8\u5173 \u7684 \u6240\u6709 \u5185\u5bb9 \u90fd \u53ef\u4ee5 \u5728 \u201c Co - Simulation / PTV - Vissim \u201d \u4e2d \u627e\u5230 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u793a\u4f8b \uff0c \u5176\u4e2d \u5305\u542b Town01 \u548c Town03 \u7684 \u7f51\u7edc \u3002 \u8981 \u8fd0\u884c \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u4f7f\u7528 \u811a\u672c PTV - Vissim / run _ synchronization . py \u3002 \u8fd9\u6709 \u4e00\u4e2a \u5305\u542b PTV - Vissim \u7f51\u7edc \u7684 \u5f3a\u5236 \u53c2\u6570 \u548c \u4e00\u4e9b \u5176\u4ed6 \u53ef \u9009 \u53c2\u6570 \u3002 vissim _ network \u2014 vissim \u7f51\u7edc \u6587\u4ef6 \u3002 \u8fd9 \u53ef\u4ee5 \u662f \u4e00\u4e2a \u793a\u4f8b \uff0c \u4e5f \u53ef\u4ee5 \u662f \u4e00\u4e2a \u81ea\u884c \u521b\u5efa \u7684 PTV - Vissim \u7f51\u7edc \u3002 -- carla - host \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 \uff09 \u2014 carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 \uff09 \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- vissim - version \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2020 \uff09 \u2014 PTV - Vissim \u7248\u672c \u3002 -- step - length ( default : 0.05 s ) - \u4e3a \u4eff\u771f \u65f6\u95f4 \u6b65 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u589e\u91cf \u79d2 \u3002 -- simulator - vehicles \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 1 \uff09 \u2014 \u5c06 \u5728 Carla \u4e2d \u751f\u6210 \u5e76 \u4f20\u9012 \u7ed9 PTV - Vissim \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 python3 run _ synchronization . py examples / Town03 / Town03 . inpx \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u4e2d \u6309 Ctrl + C \u3002 \u4e24\u4e2a \u4eff\u771f \u5c06 \u540c\u6b65 \u8fd0\u884c \u3002 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u53d1\u751f \u7684 \u52a8\u4f5c \u6216 \u4e8b\u4ef6 \u5c06 \u4f20\u64ad \u5230 \u53e6 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u5305\u62ec \u8f66\u8f86 \u79fb\u52a8 \u548c \u751f\u6210 \u3002 \u7531\u4e8e PTV - Vissim \u7c7b\u578b \uff0c \u751f\u6210 \u53d7\u5230 \u9650\u5236 \u53d7\u5230\u9650\u5236 \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76\u4e14 PTV - Vissim \u4e2d \u7684 Vehicle Type \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \uff0c \u5b83 \u5c06 \u751f\u6210 \u6c7d\u8f66 \u3002 \u4e0d\u7ba1 \u5b83 \u662f\u5426 \u5728 Carla \u4e2d \u4f5c\u4e3a \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u5728 \u63d0\u4f9b \u7684 \u793a\u4f8b \u4e2d \uff0c \u8f66\u8f86 \u7c7b\u578b \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 PTV - Vissim \u4e2d \u751f\u6210 \uff0c Carla \u5c06 \u4f7f\u7528 \u76f8\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u3002 \u5c3a\u5bf8 \u548c \u7279\u6027 \u5c06 \u76f8\u4f3c \uff0c \u4f46 \u4e0d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7f51\u7edc \u4e3a\u4e86 \u8ba9 \u65b0 \u7684 PTV - Vissim \u7f51\u7edc \u4e0e Carla \u4e00\u8d77 \u8fd0\u884c \uff0c \u9700\u8981 \u5b8c\u6210 \u4e00\u4e9b \u8bbe\u7f6e \u3002 \u6fc0\u6d3b \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8f6c \u5230 Base Data / Network setting / Driving simulator \u5e76 \u542f\u7528 \u8be5 \u9009\u9879 \u6307\u5b9a \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u3002 \u8fd9\u4e9b \u7c7b\u578b \u5c06 \u5728 PTV - Vissim \u4e2d \u7528\u4e8e \u4e0e Carla \u4e2d \u5b8c\u6210 \u7684 \u751f\u6210 \u540c\u6b65 \uff0c \u9ed8\u8ba4 \u4e3a\u7a7a \u5c06 \u7f51\u7edc \u5bfc\u51fa \u4e3a . inpx \u3002 \u521b\u5efa \u7f51\u7edc \uff0c \u5c06 \u5176 \u5bfc\u51fa \uff0c \u7136\u540e \u4f7f\u7528 run _ synchronization . py \u8fd0\u884c \u534f\u540c \u4eff\u771f \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u4efb\u4f55 \u8f66\u8f86 \u90fd \u5c06 \u4f7f\u7528 \u8fd9\u4e9b \u7c7b\u578b \u5728 PTV - Vissim \u4e2d \u751f\u6210 \u3002 \u7b14\u8bb0 \u5982\u679c \u884c\u4eba \u548c \u8f66\u8f86 \u7c7b\u578b \u4e3a\u7a7a \uff0c PTV - Vissim \u5c06 \u5d29\u6e83 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9 \u5c31\u662f PTV - Vissim \u4e0e Carla \u7684 \u8054\u5408 \u4eff\u771f \u7684 \u5168\u90e8 \u5185\u5bb9 \u5168\u90e8\u5185\u5bb9 \u3002 \u6253\u5f00 Carla \u5e76 \u73a9\u5f04 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"PTV - Vissim \u8054\u5408 \u4eff\u771f"},{"location":"adv_ptv/#ptv-vissim","text":"Carla \u5f00\u53d1 \u4e86 \u4e0e PTV - Vissim \u7684 \u534f\u540c \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u80fd\u529b \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u534f\u540c \u4eff\u771f \u521b\u5efa \u65b0 \u7f51\u7edc","title":"PTV - Vissim \u8054\u5408 \u4eff\u771f"},{"location":"adv_ptv/#_1","text":"\u4e3a\u4e86 \u8fd0\u884c \u534f\u540c \u4eff\u771f \uff0c \u6709 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u662f \u5fc5\u8981 \u7684 \u3002 \u8d2d\u4e70 PTV - Vissim \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u9700\u8981 \u83b7\u53d6 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u754c\u9762 \u63d2\u4ef6 \u3002 \u5728 PTV - Vissim \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u67e5\u627e DrivingSimulatorProxy . dll \u3002 \u5c06 \u5176 \u79fb\u81f3 C : \\ Windows \\ System32 \u3002","title":"\u5fc5\u5907\u6761\u4ef6"},{"location":"adv_ptv/#_2","text":"\u4e0e \u6b64 \u529f\u80fd \u76f8\u5173 \u7684 \u6240\u6709 \u5185\u5bb9 \u90fd \u53ef\u4ee5 \u5728 \u201c Co - Simulation / PTV - Vissim \u201d \u4e2d \u627e\u5230 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e9b \u793a\u4f8b \uff0c \u5176\u4e2d \u5305\u542b Town01 \u548c Town03 \u7684 \u7f51\u7edc \u3002 \u8981 \u8fd0\u884c \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u4f7f\u7528 \u811a\u672c PTV - Vissim / run _ synchronization . py \u3002 \u8fd9\u6709 \u4e00\u4e2a \u5305\u542b PTV - Vissim \u7f51\u7edc \u7684 \u5f3a\u5236 \u53c2\u6570 \u548c \u4e00\u4e9b \u5176\u4ed6 \u53ef \u9009 \u53c2\u6570 \u3002 vissim _ network \u2014 vissim \u7f51\u7edc \u6587\u4ef6 \u3002 \u8fd9 \u53ef\u4ee5 \u662f \u4e00\u4e2a \u793a\u4f8b \uff0c \u4e5f \u53ef\u4ee5 \u662f \u4e00\u4e2a \u81ea\u884c \u521b\u5efa \u7684 PTV - Vissim \u7f51\u7edc \u3002 -- carla - host \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 \uff09 \u2014 carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 \uff09 \u8981 \u76d1\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- vissim - version \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2020 \uff09 \u2014 PTV - Vissim \u7248\u672c \u3002 -- step - length ( default : 0.05 s ) - \u4e3a \u4eff\u771f \u65f6\u95f4 \u6b65 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u589e\u91cf \u79d2 \u3002 -- simulator - vehicles \uff08 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 1 \uff09 \u2014 \u5c06 \u5728 Carla \u4e2d \u751f\u6210 \u5e76 \u4f20\u9012 \u7ed9 PTV - Vissim \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 python3 run _ synchronization . py examples / Town03 / Town03 . inpx \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u4e2d \u6309 Ctrl + C \u3002 \u4e24\u4e2a \u4eff\u771f \u5c06 \u540c\u6b65 \u8fd0\u884c \u3002 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u53d1\u751f \u7684 \u52a8\u4f5c \u6216 \u4e8b\u4ef6 \u5c06 \u4f20\u64ad \u5230 \u53e6 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u5305\u62ec \u8f66\u8f86 \u79fb\u52a8 \u548c \u751f\u6210 \u3002 \u7531\u4e8e PTV - Vissim \u7c7b\u578b \uff0c \u751f\u6210 \u53d7\u5230 \u9650\u5236 \u53d7\u5230\u9650\u5236 \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76\u4e14 PTV - Vissim \u4e2d \u7684 Vehicle Type \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \uff0c \u5b83 \u5c06 \u751f\u6210 \u6c7d\u8f66 \u3002 \u4e0d\u7ba1 \u5b83 \u662f\u5426 \u5728 Carla \u4e2d \u4f5c\u4e3a \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u5728 \u63d0\u4f9b \u7684 \u793a\u4f8b \u4e2d \uff0c \u8f66\u8f86 \u7c7b\u578b \u8bbe\u7f6e \u4e3a \u201c \u6c7d\u8f66 \u201d \u3002 * \u5982\u679c \u8f66\u8f86 \u5728 PTV - Vissim \u4e2d \u751f\u6210 \uff0c Carla \u5c06 \u4f7f\u7528 \u76f8\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u3002 \u5c3a\u5bf8 \u548c \u7279\u6027 \u5c06 \u76f8\u4f3c \uff0c \u4f46 \u4e0d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002","title":"\u8fd0\u884c \u8054\u5408 \u4eff\u771f"},{"location":"adv_ptv/#_3","text":"\u4e3a\u4e86 \u8ba9 \u65b0 \u7684 PTV - Vissim \u7f51\u7edc \u4e0e Carla \u4e00\u8d77 \u8fd0\u884c \uff0c \u9700\u8981 \u5b8c\u6210 \u4e00\u4e9b \u8bbe\u7f6e \u3002 \u6fc0\u6d3b \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8f6c \u5230 Base Data / Network setting / Driving simulator \u5e76 \u542f\u7528 \u8be5 \u9009\u9879 \u6307\u5b9a \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u3002 \u8fd9\u4e9b \u7c7b\u578b \u5c06 \u5728 PTV - Vissim \u4e2d \u7528\u4e8e \u4e0e Carla \u4e2d \u5b8c\u6210 \u7684 \u751f\u6210 \u540c\u6b65 \uff0c \u9ed8\u8ba4 \u4e3a\u7a7a \u5c06 \u7f51\u7edc \u5bfc\u51fa \u4e3a . inpx \u3002 \u521b\u5efa \u7f51\u7edc \uff0c \u5c06 \u5176 \u5bfc\u51fa \uff0c \u7136\u540e \u4f7f\u7528 run _ synchronization . py \u8fd0\u884c \u534f\u540c \u4eff\u771f \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u4efb\u4f55 \u8f66\u8f86 \u90fd \u5c06 \u4f7f\u7528 \u8fd9\u4e9b \u7c7b\u578b \u5728 PTV - Vissim \u4e2d \u751f\u6210 \u3002 \u7b14\u8bb0 \u5982\u679c \u884c\u4eba \u548c \u8f66\u8f86 \u7c7b\u578b \u4e3a\u7a7a \uff0c PTV - Vissim \u5c06 \u5d29\u6e83 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9 \u5c31\u662f PTV - Vissim \u4e0e Carla \u7684 \u8054\u5408 \u4eff\u771f \u7684 \u5168\u90e8 \u5185\u5bb9 \u5168\u90e8\u5185\u5bb9 \u3002 \u6253\u5f00 Carla \u5e76 \u73a9\u5f04 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u521b\u5efa \u4e00\u4e2a \u65b0 \u7f51\u7edc"},{"location":"adv_recorder/","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b64 \u529f\u80fd \u5141\u8bb8 \u8bb0\u5f55 \u548c \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u6240\u6709 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u90fd \u8bb0\u5f55 \u5728 recorder file \u4e2d \u3002 \u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u67e5\u8be2 \u53ef\u4ee5 \u8ddf\u8e2a \u548c \u7814\u7a76 \u8fd9\u4e9b \u4e8b\u4ef6 \u3002 \u8bb0\u5f55 \u4eff\u771f \u64ad\u653e \u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50 \u5f55\u5236 \u6587\u4ef6 \u67e5\u8be2 \u78b0\u649e \u88ab \u56f0\u4f4f \u7684 \u89d2\u8272 \u793a\u4f8b Python \u811a\u672c \u8bb0\u5f55 \u6240\u6709 \u6570\u636e \u4ec5 \u5199\u5165 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 carla . Client \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \uff0c \u6bcf\u5e27 \u66f4\u65b0 \u89d2\u8272 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 Actor \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u5f55\u97f3 \u4e2d \u7684 \u5c06 \u7ee7\u7eed \u4ed6\u4eec \u7684 \u65b9\u5f0f \uff0c \u5c31 \u597d\u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u7684 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u89d2\u8272 \u2014 \u521b\u5efa \u548c \u9500\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u6846 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u6765\u81ea \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ \u3001 / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u7684 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u4e2d \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 additional _ data \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u6f14\u5458 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \uff0c \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u5f55\u97f3 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002 \u4eff\u771f \u64ad\u653e \u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u65f6\u5019 \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \uff0c \u8fd9\u4e2a \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u8bf4\u660e \u7b14\u8bb0 \u5f00\u59cb \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u662f \u80af\u5b9a \u7684 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u8ba1\u7b97 \u3002 \u5982\u679c \u662f \u5426\u5b9a \u7684 \uff0c \u5c06 \u4ece \u6700\u540e \u8003\u8651 \u3002 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u64ad\u653e \u79d2\u6570 \u3002 0 \u662f \u6240\u6709 \u7684 \u5f55\u97f3 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u76f8\u673a \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u6f14\u5458 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u201c 0 \u201d \u4ee5 \u8ba9 \u89c2\u4f17 \u81ea\u7531 \u79fb\u52a8 \u3002 \u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50 \u65f6\u95f4 \u56e0\u7d20 \u5c06 \u51b3\u5b9a \u64ad\u653e \u901f\u5ea6 \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u66f4\u6539 \u800c \u65e0\u9700 \u505c\u6b62 \u56de\u653e \u3002 client . set _ replayer _ time _ factor ( 2.0 ) \u53c2\u6570 \u9ed8\u8ba4 \u5feb \u52a8\u4f5c \u52a8\u4f5c \u6162\u52a8\u4f5c time _ factor 1.0 > 1.0 * * < 1.0 * * \u91cd\u8981 \u7684 \u5982\u679c time _ factor > 2.0 \uff0c actors \u7684 \u4f4d\u7f6e \u63d2\u503c \u88ab \u7981\u7528 \u5e76\u4e14 \u53ea\u662f \u66f4\u65b0 \u3002 \u884c\u4eba \u7684 \u52a8\u753b \u4e0d \u53d7 \u65f6\u95f4 \u56e0\u7d20 \u7684 \u5f71\u54cd \u3002 \u5f53 \u65f6\u95f4 \u56e0\u7d20 \u5728 20x \u5de6\u53f3 \u65f6 \uff0c \u5f88 \u5bb9\u6613 \u7406\u89e3 \u6d41\u91cf \u3002 \u5f55\u5236 \u6587\u4ef6 \u53ef\u4ee5 \u4f7f\u7528 \u7b80\u5355 \u7684 API \u8c03\u7528 \u6765 \u68c0\u7d22 \u8bb0\u5f55 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u68c0\u7d22 \u6ce8\u518c \u4e8b\u4ef6 \u7684 \u90a3\u4e9b \u5e27 \u3002 \u8bbe\u7f6e \u53c2\u6570 show _ all \u5c06 \u8fd4\u56de \u6bcf \u4e00\u5e27 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5173\u4e8e \u5982\u4f55 \u5b58\u50a8 \u6570\u636e \u7684 \u7ec6\u8282 \u5728 recorder ' s reference \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002 # \u663e\u793a \u76f8\u5173 \u5e27 \u7684 \u4fe1\u606f print ( client . show _ recorder _ file _ info ( \" recording01 . log \" ) ) \u5f00\u653e \u4fe1\u606f . \u8bb0\u5f55 \u4eff\u771f \u7684 \u5730\u56fe \u3001 \u65e5\u671f \u548c \u65f6\u95f4 \u3002 Frame information . \u4efb\u4f55 \u53ef\u80fd \u53d1\u751f \u7684 \u4e8b\u4ef6 \uff0c \u4f8b\u5982 \u89d2\u8272 \u751f\u6210 \u6216 \u78b0\u649e \u3002 \u5b83 \u5305\u542b \u6f14\u5458 \u7684 ID \u548c \u4e00\u4e9b \u9644\u52a0 \u4fe1\u606f \u3002 \u5173\u95ed \u4fe1\u606f . \u8bb0\u5f55 \u7684 \u5e27 \u6570 \u548c \u603b \u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 21 / 19 10 : 46 : 20 Frame 1 at 0 seconds Create 2190 : spectator ( 0 ) at ( - 260 , - 200 , 382.001 ) Create 2191 : traffic . traffic _ light ( 3 ) at ( 4255 , 10020 , 0 ) Create 2192 : traffic . traffic _ light ( 3 ) at ( 4025 , 7860 , 0 ) ... Create 2258 : traffic . speed _ limit.90 ( 0 ) at ( 21651.7 , - 1347.59 , 15 ) Create 2259 : traffic . speed _ limit.90 ( 0 ) at ( 5357 , 21457.1 , 15 ) Frame 2 at 0.0254253 seconds Create 2276 : vehicle . mini . cooperst ( 1 ) at ( 4347.63 , - 8409.51 , 120 ) number _ of _ wheels = 4 object _ type = color = 255 , 241 , 0 role _ name = autopilot ... Frame 2350 at 60.2805 seconds Destroy 2276 Frame 2351 at 60.3057 seconds Destroy 2277 ... Frames : 2354 Duration : 60.3753 seconds \u67e5\u8be2 \u78b0\u649e \u8f66\u8f86 \u5fc5\u987b \u6709 \u4e00\u4e2a \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4ee5 \u8bb0\u5f55 \u78b0\u649e \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u88ab \u67e5\u8be2 \uff0c \u4f7f\u7528 \u53c2\u6570 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u4e2d \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3002 \u4f8b\u5982 \uff0c h \u6807\u8bc6 role _ name = hero \u7684 \u89d2\u8272 \uff0c \u901a\u5e38 \u5206\u914d \u7ed9 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u53ef \u7528\u4e8e \u67e5\u8be2 \u3002 h = Hero v = Vehicle w = Walker t = Traffic light o = Other a = Any \u7b14\u8bb0 manual _ control . py \u811a\u672c \u4e3a \u81ea\u6211 \u8f66\u8f86 \u5206\u914d role _ name = hero \u3002 \u78b0\u649e \u67e5\u8be2 \u9700\u8981 \u4e24\u4e2a \u6807\u5fd7 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u663e\u793a \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 print ( client . show _ recorder _ collisions ( \" recording01 . log \" , \" v \" , \" a \" ) ) \u8f93\u51fa \u603b\u7ed3 \u4e86 \u78b0\u649e \u7684 \u65f6\u95f4 \uff0c \u4ee5\u53ca \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3001 ID \u548c \u63cf\u8ff0 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 36 : 08 Time Types Id Actor 1 Id Actor 2 16 v v 122 vehicle . yamaha . yzf 118 vehicle . dodge _ charger . police 27 v o 122 vehicle . yamaha . yzf 0 Frames : 790 Duration : 46 seconds \u91cd\u8981 \u7684 \u56e0\u4e3a \u8bb0\u5f55 \u78b0\u649e \u7684 \u662f Hero \u6216 Ego \u8f66\u8f86 \uff0c \u6240\u4ee5 \u8fd9 \u5c06 \u59cb\u7ec8 \u662f Actor 1 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5e76 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u8bbe\u7f6e \u5b83 \u6765 \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u78b0\u649e \u3002 client . replay _ file ( \" col2 . log \" , 13 , 0 , 122 ) \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u56de\u653e \u663e\u793a \u4e86 \u8fd9 \u4e00\u70b9 \u3002 \u88ab \u5361\u4f4f \u7684 \u89d2\u8272 \u68c0\u6d4b \u5728 \u5f55\u5236 \u8fc7\u7a0b \u4e2d \u5361\u4f4f \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u89d2\u8272 \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a \u5b83 \u88ab \u963b\u585e \u3002 \u8be5 \u5b9a\u4e49 \u7531 \u7528\u6237 \u5728 \u67e5\u8be2 \u671f\u95f4 \u8fdb\u884c \u3002 print ( client . show _ recorder _ actors _ blocked ( \" recording01 . log \" , min _ time , min _ distance ) ) \u53c2\u6570 \u8bf4\u660e \u9ed8\u8ba4 min _ time \u79fb\u52a8 \u7684 \u6700\u5c0f \u79d2\u6570 ` min _ distance ` \u3002 30 \u79d2 \u3002 min _ distance \u79fb\u52a8 \u7684 \u6700\u5c0f \u5398\u7c73 \u6570 \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 10 \u5398\u7c73 \u3002 \u7b14\u8bb0 \u6709\u65f6 \u8f66\u8f86 \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \u505c\u7559 \u7684 \u65f6\u95f4 \u6bd4 \u9884\u671f \u7684 \u8981 \u957f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8003\u8651 \u8f66\u8f86 \u5728 60 \u79d2 \u5185 \u79fb\u52a8 \u4e0d\u5230 1 \u7c73 \u65f6 \u88ab \u5361\u4f4f \u3002 client . show _ recorder _ actors _ blocked ( \" col3 . log \" , 60 , 100 ) \u8f93\u51fa \u5df2 \u6392\u5e8f \u7531 duration \u8868\u793a \uff0c \u5b83 \u8bf4\u660e \u4e86 \u505c\u6b62 \u88ab \u201c \u963b\u585e \u201d \u5e76 \u79fb\u52a8 min _ distance \u9700\u8981 \u591a\u957f \u65f6\u95f4 \u957f\u65f6\u95f4 \u591a\u957f\u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 45 : 01 Time Id Actor Duration 36 173 vehicle . nissan . patrol 336 75 214 vehicle . chevrolet . impala 295 302 143 vehicle . bmw . grandtourer 67 Frames : 6985 Duration : 374 seconds \u8f66\u8f86 173 \u5728 36 \u79d2 \u65f6 \u505c\u6b62 336 \u79d2 \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a 36 \u4e4b\u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u91cd\u65b0 \u4eff\u771f \u4ee5 \u68c0\u67e5 \u5b83 \u3002 client . replay _ file ( \" col3 . log \" , 34 , 0 , 173 ) \u793a\u4f8b python \u811a\u672c PythonAPI / examples \u4e2d \u63d0\u4f9b \u7684 \u4e00\u4e9b \u811a\u672c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7684 \u4f7f\u7528 \u3002 start _ recording . py \u5f00\u59cb \u5f55\u5236 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u5728 \u5f00\u59cb \u65f6 \u751f\u6210 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - n \uff08 \u53ef \u9009 \uff09 \u4ea7\u751f \u7684 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - t \uff08 \u53ef \u9009 \uff09 \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u3002 start _ replaying . py \u5f00\u59cb \u64ad\u653e \u5f55\u97f3 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f00\u59cb \u65f6\u95f4 \u3001 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u548c \u8981 \u8ddf\u968f \u7684 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u8d77\u59cb \u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - d ( \u53ef \u9009 ) \u671f\u95f4 \u3002 \u9ed8\u8ba4 \u4e3a \u5168\u90e8 \u3002 - c \uff08 \u53ef \u9009 \uff09 \u8981 \u5173\u6ce8 \u7684 \u6f14\u5458 \u7684 ID \u3002 show _ recorder _ file _ info . py \u663e\u793a \u5f55\u5236 \u6587\u4ef6 \u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u4ec5 \u663e\u793a \u8bb0\u5f55 \u4e8b\u4ef6 \u7684 \u5e27 \u3002 \u4f46\u662f \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u53ef\u4ee5 \u663e\u793a \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u6807\u8bb0 \u4ee5 \u663e\u793a \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 show _ recorder _ collisions . py \u663e\u793a \u7c7b\u578b \u4e3a A \u548c B \u7684 \u6f14\u5458 \u7684 \u4e24\u4e2a \u6807\u5fd7 \u4e4b\u95f4 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 - t = vv \u5c06 \u663e\u793a \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6240\u6709 \u78b0\u649e \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \u76f8\u5173 \u89d2\u8272 \u7684 \u6807\u5fd7 \u3002 h = hero v = vehicle w = walker t = traffic light o = other a = any show _ recorder _ actors _ blocked . py \u5217\u51fa \u88ab \u8ba4\u4e3a \u88ab \u963b\u6b62 \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a Actors \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \uff08 \u53ef \u9009 \uff09 \u662f \u65f6\u5019 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u585e \u4e4b\u524d \u79fb\u52a8 - d \u4e86 \u3002 - d ( \u53ef \u9009 ) \u79fb\u52a8 \u8ddd\u79bb \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 \u73b0\u5728 \u662f \u8bd5\u9a8c \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u7684 \u65f6\u5019 \u4e86 \u3002 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u56de\u653e \u4eff\u771f \u3001 \u8ffd\u6eaf \u4e8b\u4ef6 \u3001 \u8fdb\u884c \u66f4\u6539 \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \u3002 \u5728 Carla \u8bba\u575b \u4e0a \u5c31 \u6b64\u4e8b \u53d1\u8868 \u8868\u610f \u610f\u89c1 \u53d1\u8868\u610f\u89c1 \u3002 Carla \u8bba\u575b","title":"\u8bb0\u5f55\u5668"},{"location":"adv_recorder/#_1","text":"\u6b64 \u529f\u80fd \u5141\u8bb8 \u8bb0\u5f55 \u548c \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u6240\u6709 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u90fd \u8bb0\u5f55 \u5728 recorder file \u4e2d \u3002 \u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u67e5\u8be2 \u53ef\u4ee5 \u8ddf\u8e2a \u548c \u7814\u7a76 \u8fd9\u4e9b \u4e8b\u4ef6 \u3002 \u8bb0\u5f55 \u4eff\u771f \u64ad\u653e \u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50 \u5f55\u5236 \u6587\u4ef6 \u67e5\u8be2 \u78b0\u649e \u88ab \u56f0\u4f4f \u7684 \u89d2\u8272 \u793a\u4f8b Python \u811a\u672c","title":"\u8bb0\u5f55\u5668"},{"location":"adv_recorder/#_2","text":"\u6240\u6709 \u6570\u636e \u4ec5 \u5199\u5165 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 carla . Client \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \uff0c \u6bcf\u5e27 \u66f4\u65b0 \u89d2\u8272 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 Actor \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u5f55\u97f3 \u4e2d \u7684 \u5c06 \u7ee7\u7eed \u4ed6\u4eec \u7684 \u65b9\u5f0f \uff0c \u5c31 \u597d\u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u7684 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u89d2\u8272 \u2014 \u521b\u5efa \u548c \u9500\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u6846 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u6765\u81ea \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ \u3001 / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u7684 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u4e2d \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 additional _ data \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u6f14\u5458 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \uff0c \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u5f55\u97f3 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002","title":"\u8bb0\u5f55"},{"location":"adv_recorder/#_3","text":"\u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u65f6\u5019 \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \uff0c \u8fd9\u4e2a \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u8bf4\u660e \u7b14\u8bb0 \u5f00\u59cb \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u662f \u80af\u5b9a \u7684 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u8ba1\u7b97 \u3002 \u5982\u679c \u662f \u5426\u5b9a \u7684 \uff0c \u5c06 \u4ece \u6700\u540e \u8003\u8651 \u3002 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u64ad\u653e \u79d2\u6570 \u3002 0 \u662f \u6240\u6709 \u7684 \u5f55\u97f3 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 \u76f8\u673a \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u6f14\u5458 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u201c 0 \u201d \u4ee5 \u8ba9 \u89c2\u4f17 \u81ea\u7531 \u79fb\u52a8 \u3002","title":"\u4eff\u771f \u64ad\u653e"},{"location":"adv_recorder/#_4","text":"\u65f6\u95f4 \u56e0\u7d20 \u5c06 \u51b3\u5b9a \u64ad\u653e \u901f\u5ea6 \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u66f4\u6539 \u800c \u65e0\u9700 \u505c\u6b62 \u56de\u653e \u3002 client . set _ replayer _ time _ factor ( 2.0 ) \u53c2\u6570 \u9ed8\u8ba4 \u5feb \u52a8\u4f5c \u52a8\u4f5c \u6162\u52a8\u4f5c time _ factor 1.0 > 1.0 * * < 1.0 * * \u91cd\u8981 \u7684 \u5982\u679c time _ factor > 2.0 \uff0c actors \u7684 \u4f4d\u7f6e \u63d2\u503c \u88ab \u7981\u7528 \u5e76\u4e14 \u53ea\u662f \u66f4\u65b0 \u3002 \u884c\u4eba \u7684 \u52a8\u753b \u4e0d \u53d7 \u65f6\u95f4 \u56e0\u7d20 \u7684 \u5f71\u54cd \u3002 \u5f53 \u65f6\u95f4 \u56e0\u7d20 \u5728 20x \u5de6\u53f3 \u65f6 \uff0c \u5f88 \u5bb9\u6613 \u7406\u89e3 \u6d41\u91cf \u3002","title":"\u8bbe\u7f6e \u65f6\u95f4 \u56e0\u5b50"},{"location":"adv_recorder/#_5","text":"\u53ef\u4ee5 \u4f7f\u7528 \u7b80\u5355 \u7684 API \u8c03\u7528 \u6765 \u68c0\u7d22 \u8bb0\u5f55 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u68c0\u7d22 \u6ce8\u518c \u4e8b\u4ef6 \u7684 \u90a3\u4e9b \u5e27 \u3002 \u8bbe\u7f6e \u53c2\u6570 show _ all \u5c06 \u8fd4\u56de \u6bcf \u4e00\u5e27 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5173\u4e8e \u5982\u4f55 \u5b58\u50a8 \u6570\u636e \u7684 \u7ec6\u8282 \u5728 recorder ' s reference \u4e2d\u6709 \u8be6\u7ec6 \u8bf4\u660e \u3002 # \u663e\u793a \u76f8\u5173 \u5e27 \u7684 \u4fe1\u606f print ( client . show _ recorder _ file _ info ( \" recording01 . log \" ) ) \u5f00\u653e \u4fe1\u606f . \u8bb0\u5f55 \u4eff\u771f \u7684 \u5730\u56fe \u3001 \u65e5\u671f \u548c \u65f6\u95f4 \u3002 Frame information . \u4efb\u4f55 \u53ef\u80fd \u53d1\u751f \u7684 \u4e8b\u4ef6 \uff0c \u4f8b\u5982 \u89d2\u8272 \u751f\u6210 \u6216 \u78b0\u649e \u3002 \u5b83 \u5305\u542b \u6f14\u5458 \u7684 ID \u548c \u4e00\u4e9b \u9644\u52a0 \u4fe1\u606f \u3002 \u5173\u95ed \u4fe1\u606f . \u8bb0\u5f55 \u7684 \u5e27 \u6570 \u548c \u603b \u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 21 / 19 10 : 46 : 20 Frame 1 at 0 seconds Create 2190 : spectator ( 0 ) at ( - 260 , - 200 , 382.001 ) Create 2191 : traffic . traffic _ light ( 3 ) at ( 4255 , 10020 , 0 ) Create 2192 : traffic . traffic _ light ( 3 ) at ( 4025 , 7860 , 0 ) ... Create 2258 : traffic . speed _ limit.90 ( 0 ) at ( 21651.7 , - 1347.59 , 15 ) Create 2259 : traffic . speed _ limit.90 ( 0 ) at ( 5357 , 21457.1 , 15 ) Frame 2 at 0.0254253 seconds Create 2276 : vehicle . mini . cooperst ( 1 ) at ( 4347.63 , - 8409.51 , 120 ) number _ of _ wheels = 4 object _ type = color = 255 , 241 , 0 role _ name = autopilot ... Frame 2350 at 60.2805 seconds Destroy 2276 Frame 2351 at 60.3057 seconds Destroy 2277 ... Frames : 2354 Duration : 60.3753 seconds","title":"\u5f55\u5236 \u6587\u4ef6"},{"location":"adv_recorder/#_6","text":"","title":"\u67e5\u8be2"},{"location":"adv_recorder/#_7","text":"\u8f66\u8f86 \u5fc5\u987b \u6709 \u4e00\u4e2a \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4ee5 \u8bb0\u5f55 \u78b0\u649e \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u88ab \u67e5\u8be2 \uff0c \u4f7f\u7528 \u53c2\u6570 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u4e2d \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3002 \u4f8b\u5982 \uff0c h \u6807\u8bc6 role _ name = hero \u7684 \u89d2\u8272 \uff0c \u901a\u5e38 \u5206\u914d \u7ed9 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u53ef \u7528\u4e8e \u67e5\u8be2 \u3002 h = Hero v = Vehicle w = Walker t = Traffic light o = Other a = Any \u7b14\u8bb0 manual _ control . py \u811a\u672c \u4e3a \u81ea\u6211 \u8f66\u8f86 \u5206\u914d role _ name = hero \u3002 \u78b0\u649e \u67e5\u8be2 \u9700\u8981 \u4e24\u4e2a \u6807\u5fd7 \u6765 \u8fc7\u6ee4 \u78b0\u649e \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u663e\u793a \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 print ( client . show _ recorder _ collisions ( \" recording01 . log \" , \" v \" , \" a \" ) ) \u8f93\u51fa \u603b\u7ed3 \u4e86 \u78b0\u649e \u7684 \u65f6\u95f4 \uff0c \u4ee5\u53ca \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u3001 ID \u548c \u63cf\u8ff0 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 36 : 08 Time Types Id Actor 1 Id Actor 2 16 v v 122 vehicle . yamaha . yzf 118 vehicle . dodge _ charger . police 27 v o 122 vehicle . yamaha . yzf 0 Frames : 790 Duration : 46 seconds \u91cd\u8981 \u7684 \u56e0\u4e3a \u8bb0\u5f55 \u78b0\u649e \u7684 \u662f Hero \u6216 Ego \u8f66\u8f86 \uff0c \u6240\u4ee5 \u8fd9 \u5c06 \u59cb\u7ec8 \u662f Actor 1 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5e76 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u8bbe\u7f6e \u5b83 \u6765 \u91cd\u65b0 \u65b0\u5236 \u5236\u5b9a \u91cd\u65b0\u5236\u5b9a \u78b0\u649e \u3002 client . replay _ file ( \" col2 . log \" , 13 , 0 , 122 ) \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u56de\u653e \u663e\u793a \u4e86 \u8fd9 \u4e00\u70b9 \u3002","title":"\u78b0\u649e"},{"location":"adv_recorder/#_8","text":"\u68c0\u6d4b \u5728 \u5f55\u5236 \u8fc7\u7a0b \u4e2d \u5361\u4f4f \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u89d2\u8272 \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a \u5b83 \u88ab \u963b\u585e \u3002 \u8be5 \u5b9a\u4e49 \u7531 \u7528\u6237 \u5728 \u67e5\u8be2 \u671f\u95f4 \u8fdb\u884c \u3002 print ( client . show _ recorder _ actors _ blocked ( \" recording01 . log \" , min _ time , min _ distance ) ) \u53c2\u6570 \u8bf4\u660e \u9ed8\u8ba4 min _ time \u79fb\u52a8 \u7684 \u6700\u5c0f \u79d2\u6570 ` min _ distance ` \u3002 30 \u79d2 \u3002 min _ distance \u79fb\u52a8 \u7684 \u6700\u5c0f \u5398\u7c73 \u6570 \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 10 \u5398\u7c73 \u3002 \u7b14\u8bb0 \u6709\u65f6 \u8f66\u8f86 \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \u505c\u7559 \u7684 \u65f6\u95f4 \u6bd4 \u9884\u671f \u7684 \u8981 \u957f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8003\u8651 \u8f66\u8f86 \u5728 60 \u79d2 \u5185 \u79fb\u52a8 \u4e0d\u5230 1 \u7c73 \u65f6 \u88ab \u5361\u4f4f \u3002 client . show _ recorder _ actors _ blocked ( \" col3 . log \" , 60 , 100 ) \u8f93\u51fa \u5df2 \u6392\u5e8f \u7531 duration \u8868\u793a \uff0c \u5b83 \u8bf4\u660e \u4e86 \u505c\u6b62 \u88ab \u201c \u963b\u585e \u201d \u5e76 \u79fb\u52a8 min _ distance \u9700\u8981 \u591a\u957f \u65f6\u95f4 \u957f\u65f6\u95f4 \u591a\u957f\u65f6\u95f4 \u3002 Version : 1 Map : Town05 Date : 02 / 19 / 19 15 : 45 : 01 Time Id Actor Duration 36 173 vehicle . nissan . patrol 336 75 214 vehicle . chevrolet . impala 295 302 143 vehicle . bmw . grandtourer 67 Frames : 6985 Duration : 374 seconds \u8f66\u8f86 173 \u5728 36 \u79d2 \u65f6 \u505c\u6b62 336 \u79d2 \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a 36 \u4e4b\u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u91cd\u65b0 \u4eff\u771f \u4ee5 \u68c0\u67e5 \u5b83 \u3002 client . replay _ file ( \" col3 . log \" , 34 , 0 , 173 )","title":"\u88ab \u5361\u4f4f \u7684 \u89d2\u8272"},{"location":"adv_recorder/#python","text":"PythonAPI / examples \u4e2d \u63d0\u4f9b \u7684 \u4e00\u4e9b \u811a\u672c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7684 \u4f7f\u7528 \u3002 start _ recording . py \u5f00\u59cb \u5f55\u5236 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u5728 \u5f00\u59cb \u65f6 \u751f\u6210 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - n \uff08 \u53ef \u9009 \uff09 \u4ea7\u751f \u7684 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - t \uff08 \u53ef \u9009 \uff09 \u5f55\u5236 \u7684 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u3002 start _ replaying . py \u5f00\u59cb \u64ad\u653e \u5f55\u97f3 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5f00\u59cb \u65f6\u95f4 \u3001 \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 \u548c \u8981 \u8ddf\u968f \u7684 \u6f14\u5458 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u8d77\u59cb \u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 - d ( \u53ef \u9009 ) \u671f\u95f4 \u3002 \u9ed8\u8ba4 \u4e3a \u5168\u90e8 \u3002 - c \uff08 \u53ef \u9009 \uff09 \u8981 \u5173\u6ce8 \u7684 \u6f14\u5458 \u7684 ID \u3002 show _ recorder _ file _ info . py \u663e\u793a \u5f55\u5236 \u6587\u4ef6 \u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u4ec5 \u663e\u793a \u8bb0\u5f55 \u4e8b\u4ef6 \u7684 \u5e27 \u3002 \u4f46\u662f \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u53ef\u4ee5 \u663e\u793a \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - s \uff08 \u53ef \u9009 \uff09 \u6807\u8bb0 \u4ee5 \u663e\u793a \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 show _ recorder _ collisions . py \u663e\u793a \u7c7b\u578b \u4e3a A \u548c B \u7684 \u6f14\u5458 \u7684 \u4e24\u4e2a \u6807\u5fd7 \u4e4b\u95f4 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 - t = vv \u5c06 \u663e\u793a \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6240\u6709 \u78b0\u649e \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \u76f8\u5173 \u89d2\u8272 \u7684 \u6807\u5fd7 \u3002 h = hero v = vehicle w = walker t = traffic light o = other a = any show _ recorder _ actors _ blocked . py \u5217\u51fa \u88ab \u8ba4\u4e3a \u88ab \u963b\u6b62 \u7684 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u7279\u5b9a \u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \uff0c \u5219 \u8ba4\u4e3a Actors \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \u8bf4\u660e - f \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 - t \uff08 \u53ef \u9009 \uff09 \u662f \u65f6\u5019 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u585e \u4e4b\u524d \u79fb\u52a8 - d \u4e86 \u3002 - d ( \u53ef \u9009 ) \u79fb\u52a8 \u8ddd\u79bb \u4e0d\u4f1a \u88ab \u89c6\u4e3a \u963b\u585e \u3002 \u73b0\u5728 \u662f \u8bd5\u9a8c \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u7684 \u65f6\u5019 \u4e86 \u3002 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u56de\u653e \u4eff\u771f \u3001 \u8ffd\u6eaf \u4e8b\u4ef6 \u3001 \u8fdb\u884c \u66f4\u6539 \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \u3002 \u5728 Carla \u8bba\u575b \u4e0a \u5c31 \u6b64\u4e8b \u53d1\u8868 \u8868\u610f \u610f\u89c1 \u53d1\u8868\u610f\u89c1 \u3002 Carla \u8bba\u575b","title":"\u793a\u4f8b python \u811a\u672c"},{"location":"adv_rendering_options/","text":"\u6e32\u67d3 \u9009\u9879 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Carla \u4e2d \u53ef\u7528 \u7684 \u4e0d\u540c \u6e32\u67d3 \u9009\u9879 \uff0c \u5305\u62ec \u8d28\u91cf \u7ea7\u522b \u3001 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u548c \u79bb\u5c4f \u6a21\u5f0f \u3002 \u5b83 \u8fd8 \u89e3\u91ca \u4e86 Carla 0.9 . 12 \u7248\u672c \u5728 \u8fd9\u4e9b \u65b9\u9762 \u4e0e \u4ee5\u524d \u7248\u672c \u7684 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u3002 \u56fe\u5f62 \u8d28\u91cf Vulkan \u56fe\u5f62 API \u8d28\u91cf \u7b49\u7ea7 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u79bb\u5c4f \u6a21\u5f0f \u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3 \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09 ) \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09 \u91cd\u8981 \u4e0b\u9762 \u7684 \u4e00\u4e9b \u547d\u4ee4 \u9009\u9879 \u5728 Carla \u6253\u5305 \u7248\u672c \u4e2d \u5e76 \u4e0d \u7b49\u6548 \u3002 \u8bf7 \u9605\u8bfb \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u90e8\u5206 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u6b64 \u5185\u5bb9 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u56fe\u5f62 \u8d28\u91cf Vulkan \u56fe\u5f62 API \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u4ec5 \u652f\u6301 Vulkan \u56fe\u5f62 API \u3002 \u4ee5\u524d \u7248\u672c \u7684 Carla \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u4f7f\u7528 OpenGL \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u65e9\u671f \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u76f8\u5e94 \u7684 \u6587\u6863 \u7248\u672c \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u8d28\u91cf \u7b49\u7ea7 Carla \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 Epic \u662f \u9ed8\u8ba4 \u7684 \u5e76\u4e14 \u662f \u6700 \u8be6\u7ec6 \u7684 \u3002 Low \u4f1a \u7981\u7528 \u6240\u6709 \u5904\u7406 \u540e\u5904\u7406 \u548c \u9634\u5f71 \uff0c \u5e76\u4e14 \u7ed8\u56fe \u8ddd\u79bb \u8bbe\u7f6e \u4e3a 50m \u800c \u4e0d\u662f \u65e0\u9650 \u3002 \u4eff\u771f \u5728 Low \u6a21\u5f0f \u4e0b \u8fd0\u884c \u901f\u5ea6 \u660e\u663e \u66f4 \u5feb \u3002 \u8fd9 \u5728 \u5b58\u5728 \u6280\u672f \u9650\u5236 \u3001 \u7cbe\u5ea6 \u4e0d \u91cd\u8981 \u7684 \u60c5\u51b5 \u4e0b \u6216\u8005 \u5728 \u5177\u6709 \u66f4 \u7b80\u5355 \u6570\u636e \u6216\u4ec5 \u6d89\u53ca \u63a5\u8fd1 \u5143\u7d20 \u7684 \u6761\u4ef6 \u4e0b \u8bad\u7ec3 \u667a\u80fd \u4f53 \u7684 \u60c5\u51b5 \u4e0b \u5f88 \u6709 \u5e2e\u52a9 \u3002 \u4e0b\u56fe \u6bd4\u8f83 \u4e86 \u4e24\u79cd \u6a21\u5f0f \u3002 Windows \u548c Linux \u6240 \u4f7f\u7528 \u7684 \u6807\u5fd7 \u662f \u76f8\u540c \u7684 \u3002 \u4f7f\u7528 \u6784\u5efa \u65f6 \u6ca1\u6709 \u7b49\u6548 \u9009\u9879 \uff0c \u4f46 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6709 \u81ea\u5df1 \u7684 \u8d28\u91cf \u8bbe\u7f6e \u3002 \u8bbf\u95ee Settings / Engine Scalability Settings \u4ee5 \u83b7\u5f97 \u6240 \u9700 \u8d28\u91cf \u7684 \u66f4 \u5927 \u5b9a\u5236 \u3002 \u53f2\u8bd7 \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe \u91cd\u8981 \u5bfc\u81f4 \u53f2\u8bd7 \u6a21\u5f0f \u663e\u793a \u5f02\u5e38 \u767d\u5ea6 \u7684 \u95ee\u9898 \u5df2 \u5f97\u5230 \u4fee\u590d \u3002 \u5982\u679c \u95ee\u9898 \u4ecd\u7136 \u5b58\u5728 \uff0c \u8bf7 \u5220\u9664 GameUserSettings . ini \u3002 \u5b83 \u6b63\u5728 \u4fdd\u5b58 \u4ee5\u524d \u7684 \u8bbe\u7f6e \uff0c \u5e76 \u5c06 \u5728 \u4e0b\u6b21 \u8fd0\u884c \u65f6 \u518d\u6b21 \u751f\u6210 \u3002 Ubuntu \u8def\u5f84 \uff1a ~ / . config / Epic / CarlaUE4 / Saved / Config / LinuxNoEditor / Windows \u8def\u5f84 \uff1a < Package folder > \\ WindowsNoEditor \\ CarlaUE4 \\ Saved \\ Config \\ WindowsNoEditor \\ \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u6b64 \u6a21\u5f0f \u7981\u7528 \u6e32\u67d3 \u3002 \u865a\u5e7b \u5f15\u64ce \u5c06 \u8df3 \u8fc7 \u6709\u5173 \u56fe\u5f62 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 \u6b64 \u6a21\u5f0f \u53ef \u9632\u6b62 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5b83 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u5927\u91cf \u4ea4\u901a \u4eff\u771f \u548c \u975e\u5e38 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u7684 \u9053\u8def \u884c\u4e3a \u3002 \u8981 \u542f\u7528 \u6216 \u7981\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u8bf7 \u66f4\u6539 \u4e16\u754c \u8bbe\u7f6e \uff0c \u6216 \u4f7f\u7528 / PythonAPI / util / config . py \u3002 \u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 \u811a\u672c \u542f\u7528 \u548c \u7981\u7528 \u5b83 \u7684 \u793a\u4f8b \uff1a settings = world . get _ settings ( ) settings . no _ rendering _ mode = True world . apply _ settings ( settings ) ... settings . no _ rendering _ mode = False world . apply _ settings ( settings ) \u8981 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u7981\u7528 \u548c \u542f\u7528 \u6e32\u67d3 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd PythonAPI / util && python3 config . py -- no - rendering cd PythonAPI / util && python3 config . py -- rendering \u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u5c06 \u542f\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u5e76 \u4f7f\u7528 \u7b80\u5355 \u56fe\u5f62 \u5229\u7528 Pygame \u521b\u5efa \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff1a cd PythonAPI / examples && python3 no _ rendering _ mode . py \u7b14\u8bb0 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \uff0c \u76f8\u673a \u548c GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u4e0d \u4f7f\u7528 GPU \u3002 \u865a\u5e7b \u5f15\u64ce \u672a \u7ed8\u5236 \u4efb\u4f55 \u573a\u666f \u3002 \u79bb\u5c4f \u6a21\u5f0f \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u8be5 \u5f15\u64ce \u5f15\u5165 \u4e86 \u5bf9 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u652f\u6301 \u3002 \u5728 Carla \u7684 \u65e9\u671f \u7248\u672c \u4e2d \uff0c \u79bb\u5c4f \u6e32\u67d3 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5f62 API \u3002 \u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3 \u4e86\u89e3 \u65e0 \u6e32\u67d3 \u6a21\u5f0f ( no - rendering mode ) \u548c \u79bb\u5c4f \u6a21\u5f0f ( off - screen mode ) \u4e4b\u95f4 \u7684 \u533a\u522b \u5f88 \u91cd\u8981 \uff1a \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u4e0d \u6e32\u67d3 \u4efb\u4f55 \u5185\u5bb9 \u3002 \u56fe\u5f62 \u4e0d \u88ab \u8ba1\u7b97 \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u79bb\u5c4f \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u6b63\u5e38 \u5de5\u4f5c \uff0c \u8ba1\u7b97 \u6e32\u67d3 \uff0c \u4f46 \u6ca1\u6709 \u53ef\u7528 \u7684 \u663e\u793a \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u6570\u636e \u3002 \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09 \u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u542f\u52a8 Carla \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - RenderOffScreen \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09 \u5982\u679c \u60a8 \u4f7f\u7528 OpenGL \u6216 Vulkan \uff0c \u5219 \u4f7f\u7528 \u79bb\u5c4f \u6a21\u5f0f \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u4f7f\u7528 OpenGL \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5728 Linux \u4e2d\u4ee5 \u79bb\u5c4f \u6a21\u5f0f \u8fd0\u884c \uff1a # Linux DISPLAY = . / CarlaUE4 . sh - opengl Vulkan \u9700\u8981 \u989d\u5916 \u7684 \u6b65\u9aa4 \uff0c \u56e0\u4e3a \u5b83 \u9700\u8981 \u4f7f\u7528 X11 \u7f51\u7edc \u534f\u8bae \u7f51\u7edc\u534f\u8bae \u4e0e \u663e\u793a X \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u6307\u5bfc \u60a8 \u5982\u4f55 \u8bbe\u7f6e \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5c4f \u7684 Ubuntu 18.04 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u4e0e Vulkan \u4e00\u8d77 \u8fd0\u884c \u3002 1 . \u83b7\u53d6 \u6700\u65b0 \u7684 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \uff1a wget http : / / download . nvidia . com / XFree86 / Linux - x86 _ 64 / 450.57 / NVIDIA - Linux - x86 _ 64 - 450.57 . run 2 . \u5b89\u88c5 \u9a71\u52a8 \uff1a sudo / bin / bash NVIDIA - Linux - x86 _ 64 - 450.57 . run -- accept - license -- no - questions -- ui = none 3 . \u5b89\u88c5 xserver \u76f8\u5173 \u4f9d\u8d56 \uff1a sudo apt - get install - y xserver - xorg mesa - utils libvulkan1 4 . \u914d\u7f6e xserver \uff1a sudo nvidia - xconfig -- preserve - busid - a -- virtual = 1280x1024 5 . \u8bbe\u7f6e SDL _ VIDEODRIVER \u53d8\u91cf \u3002 ENV SDL _ VIDEODRIVER = x11 6 . \u8fd0\u884c xserver \uff1a sudo X : 0 & 7 . \u8fd0\u884c Carla \uff1a DISPLAY = : 0 . GPU . / CarlaUE4 . sh - vulkan Carla \u5728 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6267\u884c \u4e0a\u8ff0 \u6240\u6709 \u6b65\u9aa4 \u7684 Dockerfile \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u6e32\u67d3 \u9009\u9879"},{"location":"adv_rendering_options/#_1","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Carla \u4e2d \u53ef\u7528 \u7684 \u4e0d\u540c \u6e32\u67d3 \u9009\u9879 \uff0c \u5305\u62ec \u8d28\u91cf \u7ea7\u522b \u3001 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u548c \u79bb\u5c4f \u6a21\u5f0f \u3002 \u5b83 \u8fd8 \u89e3\u91ca \u4e86 Carla 0.9 . 12 \u7248\u672c \u5728 \u8fd9\u4e9b \u65b9\u9762 \u4e0e \u4ee5\u524d \u7248\u672c \u7684 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u3002 \u56fe\u5f62 \u8d28\u91cf Vulkan \u56fe\u5f62 API \u8d28\u91cf \u7b49\u7ea7 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u79bb\u5c4f \u6a21\u5f0f \u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3 \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09 ) \u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09 \u91cd\u8981 \u4e0b\u9762 \u7684 \u4e00\u4e9b \u547d\u4ee4 \u9009\u9879 \u5728 Carla \u6253\u5305 \u7248\u672c \u4e2d \u5e76 \u4e0d \u7b49\u6548 \u3002 \u8bf7 \u9605\u8bfb \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u90e8\u5206 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u6b64 \u5185\u5bb9 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6e32\u67d3 \u9009\u9879"},{"location":"adv_rendering_options/#_2","text":"","title":"\u56fe\u5f62 \u8d28\u91cf"},{"location":"adv_rendering_options/#vulkan-api","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u4ec5 \u652f\u6301 Vulkan \u56fe\u5f62 API \u3002 \u4ee5\u524d \u7248\u672c \u7684 Carla \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u4f7f\u7528 OpenGL \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u65e9\u671f \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u76f8\u5e94 \u7684 \u6587\u6863 \u7248\u672c \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002","title":"Vulkan \u56fe\u5f62 API"},{"location":"adv_rendering_options/#_3","text":"Carla \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 Epic \u662f \u9ed8\u8ba4 \u7684 \u5e76\u4e14 \u662f \u6700 \u8be6\u7ec6 \u7684 \u3002 Low \u4f1a \u7981\u7528 \u6240\u6709 \u5904\u7406 \u540e\u5904\u7406 \u548c \u9634\u5f71 \uff0c \u5e76\u4e14 \u7ed8\u56fe \u8ddd\u79bb \u8bbe\u7f6e \u4e3a 50m \u800c \u4e0d\u662f \u65e0\u9650 \u3002 \u4eff\u771f \u5728 Low \u6a21\u5f0f \u4e0b \u8fd0\u884c \u901f\u5ea6 \u660e\u663e \u66f4 \u5feb \u3002 \u8fd9 \u5728 \u5b58\u5728 \u6280\u672f \u9650\u5236 \u3001 \u7cbe\u5ea6 \u4e0d \u91cd\u8981 \u7684 \u60c5\u51b5 \u4e0b \u6216\u8005 \u5728 \u5177\u6709 \u66f4 \u7b80\u5355 \u6570\u636e \u6216\u4ec5 \u6d89\u53ca \u63a5\u8fd1 \u5143\u7d20 \u7684 \u6761\u4ef6 \u4e0b \u8bad\u7ec3 \u667a\u80fd \u4f53 \u7684 \u60c5\u51b5 \u4e0b \u5f88 \u6709 \u5e2e\u52a9 \u3002 \u4e0b\u56fe \u6bd4\u8f83 \u4e86 \u4e24\u79cd \u6a21\u5f0f \u3002 Windows \u548c Linux \u6240 \u4f7f\u7528 \u7684 \u6807\u5fd7 \u662f \u76f8\u540c \u7684 \u3002 \u4f7f\u7528 \u6784\u5efa \u65f6 \u6ca1\u6709 \u7b49\u6548 \u9009\u9879 \uff0c \u4f46 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6709 \u81ea\u5df1 \u7684 \u8d28\u91cf \u8bbe\u7f6e \u3002 \u8bbf\u95ee Settings / Engine Scalability Settings \u4ee5 \u83b7\u5f97 \u6240 \u9700 \u8d28\u91cf \u7684 \u66f4 \u5927 \u5b9a\u5236 \u3002","title":"\u8d28\u91cf \u7b49\u7ea7"},{"location":"adv_rendering_options/#_4","text":". / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe","title":"\u53f2\u8bd7 \u6a21\u5f0f"},{"location":"adv_rendering_options/#_5","text":". / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe \u91cd\u8981 \u5bfc\u81f4 \u53f2\u8bd7 \u6a21\u5f0f \u663e\u793a \u5f02\u5e38 \u767d\u5ea6 \u7684 \u95ee\u9898 \u5df2 \u5f97\u5230 \u4fee\u590d \u3002 \u5982\u679c \u95ee\u9898 \u4ecd\u7136 \u5b58\u5728 \uff0c \u8bf7 \u5220\u9664 GameUserSettings . ini \u3002 \u5b83 \u6b63\u5728 \u4fdd\u5b58 \u4ee5\u524d \u7684 \u8bbe\u7f6e \uff0c \u5e76 \u5c06 \u5728 \u4e0b\u6b21 \u8fd0\u884c \u65f6 \u518d\u6b21 \u751f\u6210 \u3002 Ubuntu \u8def\u5f84 \uff1a ~ / . config / Epic / CarlaUE4 / Saved / Config / LinuxNoEditor / Windows \u8def\u5f84 \uff1a < Package folder > \\ WindowsNoEditor \\ CarlaUE4 \\ Saved \\ Config \\ WindowsNoEditor \\","title":"\u4f4e\u8d28\u91cf \u6a21\u5f0f"},{"location":"adv_rendering_options/#_6","text":"\u6b64 \u6a21\u5f0f \u7981\u7528 \u6e32\u67d3 \u3002 \u865a\u5e7b \u5f15\u64ce \u5c06 \u8df3 \u8fc7 \u6709\u5173 \u56fe\u5f62 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 \u6b64 \u6a21\u5f0f \u53ef \u9632\u6b62 \u6e32\u67d3 \u5f00\u9500 \u3002 \u5b83 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u5927\u91cf \u4ea4\u901a \u4eff\u771f \u548c \u975e\u5e38 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u7684 \u9053\u8def \u884c\u4e3a \u3002 \u8981 \u542f\u7528 \u6216 \u7981\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u8bf7 \u66f4\u6539 \u4e16\u754c \u8bbe\u7f6e \uff0c \u6216 \u4f7f\u7528 / PythonAPI / util / config . py \u3002 \u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 \u811a\u672c \u542f\u7528 \u548c \u7981\u7528 \u5b83 \u7684 \u793a\u4f8b \uff1a settings = world . get _ settings ( ) settings . no _ rendering _ mode = True world . apply _ settings ( settings ) ... settings . no _ rendering _ mode = False world . apply _ settings ( settings ) \u8981 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u7981\u7528 \u548c \u542f\u7528 \u6e32\u67d3 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a cd PythonAPI / util && python3 config . py -- no - rendering cd PythonAPI / util && python3 config . py -- rendering \u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u5c06 \u542f\u7528 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff0c \u5e76 \u4f7f\u7528 \u7b80\u5355 \u56fe\u5f62 \u5229\u7528 Pygame \u521b\u5efa \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff1a cd PythonAPI / examples && python3 no _ rendering _ mode . py \u7b14\u8bb0 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \uff0c \u76f8\u673a \u548c GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u4e0d \u4f7f\u7528 GPU \u3002 \u865a\u5e7b \u5f15\u64ce \u672a \u7ed8\u5236 \u4efb\u4f55 \u573a\u666f \u3002","title":"\u65e0 \u6e32\u67d3 \u6a21\u5f0f"},{"location":"adv_rendering_options/#_7","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5728 \u865a\u5e7b \u5f15\u64ce 4.26 \u4e0a \u8fd0\u884c \uff0c \u8be5 \u5f15\u64ce \u5f15\u5165 \u4e86 \u5bf9 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u652f\u6301 \u3002 \u5728 Carla \u7684 \u65e9\u671f \u7248\u672c \u4e2d \uff0c \u79bb\u5c4f \u6e32\u67d3 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5f62 API \u3002","title":"\u79bb\u5c4f \u6a21\u5f0f"},{"location":"adv_rendering_options/#_8","text":"\u4e86\u89e3 \u65e0 \u6e32\u67d3 \u6a21\u5f0f ( no - rendering mode ) \u548c \u79bb\u5c4f \u6a21\u5f0f ( off - screen mode ) \u4e4b\u95f4 \u7684 \u533a\u522b \u5f88 \u91cd\u8981 \uff1a \u65e0 \u6e32\u67d3 \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u4e0d \u6e32\u67d3 \u4efb\u4f55 \u5185\u5bb9 \u3002 \u56fe\u5f62 \u4e0d \u88ab \u8ba1\u7b97 \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u7a7a \u6570\u636e \u3002 \u79bb\u5c4f \u6a21\u5f0f \uff1a \u865a\u5e7b \u5f15\u64ce \u6b63\u5e38 \u5de5\u4f5c \uff0c \u8ba1\u7b97 \u6e32\u67d3 \uff0c \u4f46 \u6ca1\u6709 \u53ef\u7528 \u7684 \u663e\u793a \u3002 \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd4\u56de \u6570\u636e \u3002","title":"\u79bb\u5c4f \u4e0e \u65e0 \u6e32\u67d3"},{"location":"adv_rendering_options/#0912","text":"\u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u542f\u52a8 Carla \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / CarlaUE4 . sh - RenderOffScreen","title":"\u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 \u7248\u672c 0.9 . 12 + \uff09"},{"location":"adv_rendering_options/#0912_1","text":"\u5982\u679c \u60a8 \u4f7f\u7528 OpenGL \u6216 Vulkan \uff0c \u5219 \u4f7f\u7528 \u79bb\u5c4f \u6a21\u5f0f \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u4f7f\u7528 OpenGL \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5728 Linux \u4e2d\u4ee5 \u79bb\u5c4f \u6a21\u5f0f \u8fd0\u884c \uff1a # Linux DISPLAY = . / CarlaUE4 . sh - opengl Vulkan \u9700\u8981 \u989d\u5916 \u7684 \u6b65\u9aa4 \uff0c \u56e0\u4e3a \u5b83 \u9700\u8981 \u4f7f\u7528 X11 \u7f51\u7edc \u534f\u8bae \u7f51\u7edc\u534f\u8bae \u4e0e \u663e\u793a X \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u6307\u5bfc \u60a8 \u5982\u4f55 \u8bbe\u7f6e \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5c4f \u7684 Ubuntu 18.04 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u4e0e Vulkan \u4e00\u8d77 \u8fd0\u884c \u3002 1 . \u83b7\u53d6 \u6700\u65b0 \u7684 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \uff1a wget http : / / download . nvidia . com / XFree86 / Linux - x86 _ 64 / 450.57 / NVIDIA - Linux - x86 _ 64 - 450.57 . run 2 . \u5b89\u88c5 \u9a71\u52a8 \uff1a sudo / bin / bash NVIDIA - Linux - x86 _ 64 - 450.57 . run -- accept - license -- no - questions -- ui = none 3 . \u5b89\u88c5 xserver \u76f8\u5173 \u4f9d\u8d56 \uff1a sudo apt - get install - y xserver - xorg mesa - utils libvulkan1 4 . \u914d\u7f6e xserver \uff1a sudo nvidia - xconfig -- preserve - busid - a -- virtual = 1280x1024 5 . \u8bbe\u7f6e SDL _ VIDEODRIVER \u53d8\u91cf \u3002 ENV SDL _ VIDEODRIVER = x11 6 . \u8fd0\u884c xserver \uff1a sudo X : 0 & 7 . \u8fd0\u884c Carla \uff1a DISPLAY = : 0 . GPU . / CarlaUE4 . sh - vulkan Carla \u5728 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6267\u884c \u4e0a\u8ff0 \u6240\u6709 \u6b65\u9aa4 \u7684 Dockerfile \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u8bbe\u7f6e \u79bb\u5c4f \u6a21\u5f0f \uff08 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \uff09"},{"location":"adv_rss/","text":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 Carla \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u96c6\u6210 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7684 C++ \u5e93 \u3002 \u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8c03\u67e5 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( Responsibility Sensitive Safety , RSS ) \u7684 \u884c\u4e3a \uff0c \u800c \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 Carla \u5c06 \u8d1f\u8d23 \u63d0\u4f9b \u8f93\u5165 \uff0c \u5e76 \u5c06 \u8f93\u51fa \u52a8\u6001 \u5e94\u7528 \u5230 \u81ea\u52a8 \u9a7e\u9a76 ( Autonomous Driving , AD ) \u7cfb\u7edf \u3002 \u6982\u8ff0 \u7f16\u8bd1 \u4ee5\u6765 \u6784\u5efa \u5f53\u524d \u72b6\u6001 RssSensor RssRestrictor \u91cd\u8981 \u6b64 \u529f\u80fd \u6b63\u5728 \u5f00\u53d1 \u4e2d \u3002 \u76ee\u524d \uff0c \u5b83 \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002 \u6982\u8ff0 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5e93 \u5b9e\u73b0 \u4e86 \u5b89\u5168 \u4fdd\u8bc1 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u5b83 \u63a5\u6536 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fe1\u606f \uff0c \u5e76 \u5411 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u9650\u5236 \u3002 \u7efc\u4e0a \u6240\u8ff0 \u7efc\u4e0a\u6240\u8ff0 \uff0c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6a21\u5757 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765 \u5b9a\u4e49 \u60c5\u51b5 \u3002 \u60c5\u5883 \u63cf\u8ff0 \u4e86 \u81ea\u6211 \u8f66\u8f86 \u4e0e \u73af\u5883 \u5143\u7d20 \u7684 \u72b6\u6001 \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u60c5\u51b5 \uff0c \u90fd \u4f1a \u8fdb\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \uff0c \u5e76 \u8ba1\u7b97 \u9002\u5f53 \u7684 \u54cd\u5e94 \u3002 \u603b\u4f53 \u54cd\u5e94 \u662f \u6240\u6709 \u54cd\u5e94 \u7684 \u7efc\u5408 \u7ed3\u679c \u3002 \u6709\u5173 \u8be5\u5e93 \u7684 \u5177\u4f53 \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \uff0c \u5c24\u5176 \u662f \u80cc\u666f \u90e8\u5206 \u3002 \u8fd9 \u662f \u5728 Carla \u4e2d \u4f7f\u7528 \u4e24\u4e2a \u5143\u7d20 \u5b9e\u73b0 \u7684 \u3002 RssSensor \u8d1f\u8d23 \u60c5\u51b5 \u5206\u6790 \uff0c \u5e76 \u4f7f\u7528 ad - rss - lib \u751f\u6210 \u54cd\u5e94 \u3002 RssRestrictor \u901a\u8fc7 \u9650\u5236 \u8f66\u8f86 \u7684 \u547d\u4ee4 \u6765 \u5e94\u7528 \u54cd\u5e94 \u3002 \u4e0b\u56fe \u63cf\u7ed8 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e0e Carla \u67b6\u6784 \u7684 \u96c6\u6210 \u3002 1 . \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u76f8\u673a \u56fe\u50cf \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \uff08 \u4ec5\u5f53 \u5ba2\u6237 \u9700\u8981 \u53ef\u89c6 \u53ef\u89c6\u5316 \u65f6 \uff09 \u3002 \u4e3a RssSensor \u63d0\u4f9b \u4e16\u754c \u6570\u636e \u3002 \u5c06 \u8f66\u8f86 \u7684 \u7269\u7406 \u6a21\u578b \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 RssRestrictor \u3002 \uff08 \u4ec5\u5f53 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u88ab \u8986\u76d6 \u65f6 \uff09 \u3002 2 . \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e3a RssSensor \u63d0\u4f9b \u4e00\u4e9b \u9700\u8981 \u8003\u8651 \u7684 \u53c2\u6570 \u3002 \u5411 RssResrictor \u53d1\u9001 \u521d\u59cb carla . VehicleControl . 3 . RssSensor \u4f7f\u7528 ad - rss - lib \u63d0\u53d6 \u60c5\u5883 \u3001 \u6267\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u5e76 \u751f\u6210 \u54cd\u5e94 \u3002 \u5411 RssRestrictor \u53d1\u9001 \u5305\u542b \u6b63\u786e \u54cd\u5e94 \u548c \u8981 \u5e94\u7528 \u7684 \u52a0\u901f \u9650\u5236 \u7684 \u54cd\u5e94 \u3002 4 . RssRestrictor \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bf7\u6c42 \uff0c \u5219 \u5c06 \u54cd\u5e94 \u5e94\u7528 \u4e8e carla . VehicleControl \uff0c \u5e76 \u8fd4\u56de \u7ed3\u679c \u3002 \u7ed3\u679c \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u7f16\u8bd1 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u96c6\u6210 \u5fc5\u987b \u4e0e Carla \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5206\u5f00 \u6784\u5efa \u3002 ad - rss - lib \u9644\u5e26 LGPL - 2.1 \u5f00\u6e90 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8fd9\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5b83 \u5fc5\u987b \u9759\u6001 \u94fe\u63a5 \u5230 libCarla \u3002 \u63d0\u9192 \u4e00\u4e0b \uff0c \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002 \u4f9d\u8d56 \u6784\u5efa \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53ca\u5176 \u4f9d\u8d56 \u9879 \u8fd8 \u9700\u8981 \u5176\u4ed6 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3002 \u67e5\u770b \u5b98\u65b9 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 Ubunutu ( > = 16.04 ) \u63d0\u4f9b \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install libgtest - dev libpython - dev libpugixml - dev libtbb - dev \u4f9d\u8d56 \u9879\u662f \u4f7f\u7528 colcon \u6784\u5efa \u7684 \uff0c \u56e0\u6b64 \u5fc5\u987b \u5b89\u88c5 \u5b83 \u3002 pip3 install -- user - U colcon - common - extensions Python \u7ed1\u5b9a \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install castxml pip3 install -- user pygccxml pyplusplus \u6784\u5efa \u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5373\u53ef \u6784\u5efa \u5b8c\u6574 \u7684 \u4f9d\u8d56 \u9879 \u548c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7ec4\u4ef6 \u96c6 \u3002 \u7f16\u8bd1 LibCarla \u4ee5 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u3002 make LibCarla . client . rss \u7f16\u8bd1 PythonAPI \u4ee5 \u5305\u542b \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u529f\u80fd \u3002 make PythonAPI . rss \u4f5c\u4e3a \u66ff\u4ee3 \u65b9\u6848 \uff0c \u53ef\u4ee5 \u76f4\u63a5 \u6784\u5efa \u5305 \u3002 make package . rss \u5f53\u524d \u72b6\u6001 RssSensor carla . RssSensor \u5b8c\u5168 \u652f\u6301 ad - rss - lib v4.2 . 0 \u529f\u80fd \u529f\u80fd\u96c6 \uff0c \u5305\u62ec \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 stay on road \u652f\u6301 \u548c \u975e \u7ed3\u6784 \u7ed3\u6784\u5316 \u7684 constellations \uff08 \u6bd4\u5982 \uff1a \u884c\u4eba \uff09 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u4e86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u771f\u5b9e \u6570\u636e \uff0c \u5305\u62ec \u5176\u4ed6 \u4ea4\u901a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 RssRestrictor \u5f53 \u5ba2\u6237 \u4f46 \u8c03\u7528 \u65f6 \uff0c carla . RssRestrictor \u5c06 \u4fee\u6539 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u901a\u8fc7 \u7ed9\u5b9a \u7684 \u54cd\u5e94 \u6700\u597d \u5730 \u8fbe\u5230 \u6240 \u9700 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u6216 \u51cf \u901f\u5ea6 \u3002 \u7531\u4e8e carla . VehicleControl \u5bf9\u8c61 \u7684 \u7ed3\u6784 \uff0c \u6240 \u5e94\u7528 \u7684 \u9650\u5236 \u5177\u6709 \u4e00\u5b9a \u7684 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u6cb9\u95e8 ( throttle ) \u3001 \u5239\u8f66 ( brake ) \u548c \u65b9\u5411 \u65b9\u5411\u76d8 ( streering ) \u503c \u3002 \u7136\u800c \uff0c \u7531\u4e8e \u6c7d\u8f66 \u7269\u7406 \u539f\u7406 \u548c \u7b80\u5355 \u7684 \u63a7\u5236 \u9009\u9879 \uff0c \u8fd9\u4e9b \u53ef\u80fd \u65e0\u6cd5 \u6ee1\u8db3 \u3002 \u53ea \u9700 \u901a\u8fc7 \u671d\u5e73 \u884c\u8f66 \u8f66\u9053 \u884c\u8f66\u9053 \u65b9\u5411 \u53cd\u5411 \u8f6c\u5411 \u5373\u53ef \u5728 \u6a2a\u5411 \u65b9\u5411 \u8fdb\u884c \u9650\u5236 \u5e72\u9884 \u3002 \u5982\u679c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8bf7\u6c42 \u51cf\u901f \uff0c \u5236\u52a8 \u5236\u52a8\u5668 \u5c06 \u88ab \u6fc0\u6d3b \u3002 \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e carla . Vehicle \u63d0\u4f9b \u7684 \u8f66\u8f86 \u8d28\u91cf \u548c \u5236\u52a8 \u626d\u77e9 \u3002 \u7b14\u8bb0 \u5728 \u81ea\u52a8 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u4e2d \uff0c \u53ef\u4ee5 \u4f7f \u8ba1\u5212 \u7684 \u8f68\u8ff9 \u9002\u5e94 \u9650\u5236 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u5feb\u901f \u63a7\u5236 \u73af\u8def \uff08 > 1KHz \uff09 \u6765 \u786e\u4fdd \u9075\u5faa \u8fd9\u4e9b \u8981\u6c42 \u3002 \u8fd9 \u5960\u5b9a \u4e86 Carla \u4e2d \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u67e5\u627e \u6709\u5173 \u7279\u5b9a \u5c5e\u6027 \u548c \u53c2\u6570 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u8d23\u4efb \u654f\u611f \u5b89\u5168"},{"location":"adv_rss/#_1","text":"Carla \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93\u4e2d \u96c6\u6210 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7684 C++ \u5e93 \u3002 \u6b64 \u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8c03\u67e5 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( Responsibility Sensitive Safety , RSS ) \u7684 \u884c\u4e3a \uff0c \u800c \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 Carla \u5c06 \u8d1f\u8d23 \u63d0\u4f9b \u8f93\u5165 \uff0c \u5e76 \u5c06 \u8f93\u51fa \u52a8\u6001 \u5e94\u7528 \u5230 \u81ea\u52a8 \u9a7e\u9a76 ( Autonomous Driving , AD ) \u7cfb\u7edf \u3002 \u6982\u8ff0 \u7f16\u8bd1 \u4ee5\u6765 \u6784\u5efa \u5f53\u524d \u72b6\u6001 RssSensor RssRestrictor \u91cd\u8981 \u6b64 \u529f\u80fd \u6b63\u5728 \u5f00\u53d1 \u4e2d \u3002 \u76ee\u524d \uff0c \u5b83 \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002","title":"\u8d23\u4efb \u654f\u611f \u5b89\u5168"},{"location":"adv_rss/#_2","text":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5e93 \u5b9e\u73b0 \u4e86 \u5b89\u5168 \u4fdd\u8bc1 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u5b83 \u63a5\u6536 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fe1\u606f \uff0c \u5e76 \u5411 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u9650\u5236 \u3002 \u7efc\u4e0a \u6240\u8ff0 \u7efc\u4e0a\u6240\u8ff0 \uff0c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6a21\u5757 \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6765 \u5b9a\u4e49 \u60c5\u51b5 \u3002 \u60c5\u5883 \u63cf\u8ff0 \u4e86 \u81ea\u6211 \u8f66\u8f86 \u4e0e \u73af\u5883 \u5143\u7d20 \u7684 \u72b6\u6001 \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u60c5\u51b5 \uff0c \u90fd \u4f1a \u8fdb\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \uff0c \u5e76 \u8ba1\u7b97 \u9002\u5f53 \u7684 \u54cd\u5e94 \u3002 \u603b\u4f53 \u54cd\u5e94 \u662f \u6240\u6709 \u54cd\u5e94 \u7684 \u7efc\u5408 \u7ed3\u679c \u3002 \u6709\u5173 \u8be5\u5e93 \u7684 \u5177\u4f53 \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \uff0c \u5c24\u5176 \u662f \u80cc\u666f \u90e8\u5206 \u3002 \u8fd9 \u662f \u5728 Carla \u4e2d \u4f7f\u7528 \u4e24\u4e2a \u5143\u7d20 \u5b9e\u73b0 \u7684 \u3002 RssSensor \u8d1f\u8d23 \u60c5\u51b5 \u5206\u6790 \uff0c \u5e76 \u4f7f\u7528 ad - rss - lib \u751f\u6210 \u54cd\u5e94 \u3002 RssRestrictor \u901a\u8fc7 \u9650\u5236 \u8f66\u8f86 \u7684 \u547d\u4ee4 \u6765 \u5e94\u7528 \u54cd\u5e94 \u3002 \u4e0b\u56fe \u63cf\u7ed8 \u4e86 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4e0e Carla \u67b6\u6784 \u7684 \u96c6\u6210 \u3002 1 . \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u76f8\u673a \u56fe\u50cf \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \uff08 \u4ec5\u5f53 \u5ba2\u6237 \u9700\u8981 \u53ef\u89c6 \u53ef\u89c6\u5316 \u65f6 \uff09 \u3002 \u4e3a RssSensor \u63d0\u4f9b \u4e16\u754c \u6570\u636e \u3002 \u5c06 \u8f66\u8f86 \u7684 \u7269\u7406 \u6a21\u578b \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 RssRestrictor \u3002 \uff08 \u4ec5\u5f53 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u88ab \u8986\u76d6 \u65f6 \uff09 \u3002 2 . \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e3a RssSensor \u63d0\u4f9b \u4e00\u4e9b \u9700\u8981 \u8003\u8651 \u7684 \u53c2\u6570 \u3002 \u5411 RssResrictor \u53d1\u9001 \u521d\u59cb carla . VehicleControl . 3 . RssSensor \u4f7f\u7528 ad - rss - lib \u63d0\u53d6 \u60c5\u5883 \u3001 \u6267\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u5e76 \u751f\u6210 \u54cd\u5e94 \u3002 \u5411 RssRestrictor \u53d1\u9001 \u5305\u542b \u6b63\u786e \u54cd\u5e94 \u548c \u8981 \u5e94\u7528 \u7684 \u52a0\u901f \u9650\u5236 \u7684 \u54cd\u5e94 \u3002 4 . RssRestrictor \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bf7\u6c42 \uff0c \u5219 \u5c06 \u54cd\u5e94 \u5e94\u7528 \u4e8e carla . VehicleControl \uff0c \u5e76 \u8fd4\u56de \u7ed3\u679c \u3002 \u7ed3\u679c \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002","title":"\u6982\u8ff0"},{"location":"adv_rss/#_3","text":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 \u96c6\u6210 \u5fc5\u987b \u4e0e Carla \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5206\u5f00 \u6784\u5efa \u3002 ad - rss - lib \u9644\u5e26 LGPL - 2.1 \u5f00\u6e90 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8fd9\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5b83 \u5fc5\u987b \u9759\u6001 \u94fe\u63a5 \u5230 libCarla \u3002 \u63d0\u9192 \u4e00\u4e0b \uff0c \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8be5 \u529f\u80fd \u4ec5 \u9002\u7528 \u4e8e Linux \u7248\u672c \u3002","title":"\u7f16\u8bd1"},{"location":"adv_rss/#_4","text":"\u6784\u5efa \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53ca\u5176 \u4f9d\u8d56 \u9879 \u8fd8 \u9700\u8981 \u5176\u4ed6 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3002 \u67e5\u770b \u5b98\u65b9 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 Ubunutu ( > = 16.04 ) \u63d0\u4f9b \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install libgtest - dev libpython - dev libpugixml - dev libtbb - dev \u4f9d\u8d56 \u9879\u662f \u4f7f\u7528 colcon \u6784\u5efa \u7684 \uff0c \u56e0\u6b64 \u5fc5\u987b \u5b89\u88c5 \u5b83 \u3002 pip3 install -- user - U colcon - common - extensions Python \u7ed1\u5b9a \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u4f9d\u8d56 \u9879 \u3002 sudo apt - get install castxml pip3 install -- user pygccxml pyplusplus","title":"\u4f9d\u8d56"},{"location":"adv_rss/#_5","text":"\u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5373\u53ef \u6784\u5efa \u5b8c\u6574 \u7684 \u4f9d\u8d56 \u9879 \u548c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u7ec4\u4ef6 \u96c6 \u3002 \u7f16\u8bd1 LibCarla \u4ee5 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u3002 make LibCarla . client . rss \u7f16\u8bd1 PythonAPI \u4ee5 \u5305\u542b \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u529f\u80fd \u3002 make PythonAPI . rss \u4f5c\u4e3a \u66ff\u4ee3 \u65b9\u6848 \uff0c \u53ef\u4ee5 \u76f4\u63a5 \u6784\u5efa \u5305 \u3002 make package . rss","title":"\u6784\u5efa"},{"location":"adv_rss/#_6","text":"","title":"\u5f53\u524d \u72b6\u6001"},{"location":"adv_rss/#rsssensor","text":"carla . RssSensor \u5b8c\u5168 \u652f\u6301 ad - rss - lib v4.2 . 0 \u529f\u80fd \u529f\u80fd\u96c6 \uff0c \u5305\u62ec \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 stay on road \u652f\u6301 \u548c \u975e \u7ed3\u6784 \u7ed3\u6784\u5316 \u7684 constellations \uff08 \u6bd4\u5982 \uff1a \u884c\u4eba \uff09 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u4e86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u771f\u5b9e \u6570\u636e \uff0c \u5305\u62ec \u5176\u4ed6 \u4ea4\u901a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002","title":"RssSensor"},{"location":"adv_rss/#rssrestrictor","text":"\u5f53 \u5ba2\u6237 \u4f46 \u8c03\u7528 \u65f6 \uff0c carla . RssRestrictor \u5c06 \u4fee\u6539 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u901a\u8fc7 \u7ed9\u5b9a \u7684 \u54cd\u5e94 \u6700\u597d \u5730 \u8fbe\u5230 \u6240 \u9700 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u6216 \u51cf \u901f\u5ea6 \u3002 \u7531\u4e8e carla . VehicleControl \u5bf9\u8c61 \u7684 \u7ed3\u6784 \uff0c \u6240 \u5e94\u7528 \u7684 \u9650\u5236 \u5177\u6709 \u4e00\u5b9a \u7684 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u6cb9\u95e8 ( throttle ) \u3001 \u5239\u8f66 ( brake ) \u548c \u65b9\u5411 \u65b9\u5411\u76d8 ( streering ) \u503c \u3002 \u7136\u800c \uff0c \u7531\u4e8e \u6c7d\u8f66 \u7269\u7406 \u539f\u7406 \u548c \u7b80\u5355 \u7684 \u63a7\u5236 \u9009\u9879 \uff0c \u8fd9\u4e9b \u53ef\u80fd \u65e0\u6cd5 \u6ee1\u8db3 \u3002 \u53ea \u9700 \u901a\u8fc7 \u671d\u5e73 \u884c\u8f66 \u8f66\u9053 \u884c\u8f66\u9053 \u65b9\u5411 \u53cd\u5411 \u8f6c\u5411 \u5373\u53ef \u5728 \u6a2a\u5411 \u65b9\u5411 \u8fdb\u884c \u9650\u5236 \u5e72\u9884 \u3002 \u5982\u679c \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8bf7\u6c42 \u51cf\u901f \uff0c \u5236\u52a8 \u5236\u52a8\u5668 \u5c06 \u88ab \u6fc0\u6d3b \u3002 \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e carla . Vehicle \u63d0\u4f9b \u7684 \u8f66\u8f86 \u8d28\u91cf \u548c \u5236\u52a8 \u626d\u77e9 \u3002 \u7b14\u8bb0 \u5728 \u81ea\u52a8 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u4e2d \uff0c \u53ef\u4ee5 \u4f7f \u8ba1\u5212 \u7684 \u8f68\u8ff9 \u9002\u5e94 \u9650\u5236 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u5feb\u901f \u63a7\u5236 \u73af\u8def \uff08 > 1KHz \uff09 \u6765 \u786e\u4fdd \u9075\u5faa \u8fd9\u4e9b \u8981\u6c42 \u3002 \u8fd9 \u5960\u5b9a \u4e86 Carla \u4e2d \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u67e5\u627e \u6709\u5173 \u7279\u5b9a \u5c5e\u6027 \u548c \u53c2\u6570 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"RssRestrictor"},{"location":"adv_sumo/","text":"\u548c SUMO \u8fdb\u884c \u8054\u5408 \u4eff\u771f Carla \u4e0e SUMO \u5f00\u53d1 \u4e86 \u8054\u5408 \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u529f\u80fd \u6765 \u652f\u6301 \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f \u521b\u5efa Carla vtypes \u521b\u5efa SUMO \u7f51\u7edc \u8fd0\u884c \u540c\u6b65 \u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u9996\u5148 \uff0c \u9700\u8981 \u5b89\u88c5 SUMO \u624d\u80fd \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u5efa\u8bae \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u800c \u4e0d\u662f \u7b80\u5355 \u5b89\u88c5 \uff0c \u56e0\u4e3a \u6709 \u65b0 \u529f\u80fd \u548c \u4fee\u590d \u53ef\u4ee5 \u6539\u8fdb \u534f\u540c \u4eff\u771f \u3002 \u5b8c\u6210 \u540e \uff0c \u8bbe\u7f6e SUMO \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc SUMO \u5df2 \u51c6\u5907 \u597d \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 Co - Simulation / Sumo / examples \u4e2d\u6709 \u4e00\u4e9b Town01 , Town04 \u548c Town05 \u7684 \u793a\u4f8b \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u63cf\u8ff0 \u4e86 \u4eff\u771f \u7684 \u914d\u7f6e \uff08 \u4f8b\u5982 \u7f51\u7edc \u3001 \u8def\u7ebf \u3001 \u8f66\u8f86 \u7c7b\u578b ... \uff09 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e4b\u4e00 \u6765 \u6d4b\u8bd5 \u8054\u5408 \u4eff\u771f \u3002 \u8be5 \u811a\u672c \u6709 \u4e0d\u540c \u7684 \u9009\u9879 \uff0c \u4e0b\u9762 \u5c06 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u73b0\u5728 \uff0c \u8ba9 \u6211\u4eec \u4e3a Town04 \u8fd0\u884c \u4e00\u4e2a \u7b80\u5355 \u7684 \u793a\u4f8b \u3002 \u4f7f\u7528 Town04 \u8fd0\u884c Carla \u4eff\u771f \u3002 cd ~ / carla . / CarlaUE4 . sh cd PythonAPI / util python3 config . py -- map Town04 \u7136\u540e \uff0c \u8fd0\u884c SUMO \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town04 . sumocfg -- sumo - gui \u7b14\u8bb0 \u8fd0\u884c \u65f6\u5019 \u53ef\u80fd \u62a5\u9519 \uff1a module ' traci ' has no attribute ' sumolib ' \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a sumolib \u662f \u72ec\u7acb \u7684 \u5305 \uff0c \u4e0d \u5728 traci \u91cc\u9762 \uff0c \u9700\u8981 \u628a carla / Co - Simulation / Sumo / sumo _ integration / sumo _ simulation . py \u7684 304 \u884c \u7684 \u8fd9 \u4e00\u53e5 \u4ee3 sumo _ net = traci . sumolib . net . readNet ( net _ file ) \u7801 \u6539\u6210 sumo _ net = sumolib . net . readNet ( net _ file ) \u3002 \u8fd0\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f \u521b\u5efa carla vtypes \u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / create _ sumo _ vtypes . py \u7528\u6237 \u53ef\u4ee5 \u57fa\u4e8e Carla \u84dd \u56fe\u5e93 \u521b\u5efa vtypes \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e Carla \u84dd\u56fe \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- output - file ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a carlavtypes . rou . xml ) \u2014 \u751f\u6210 \u7684 \u5305\u542b vtypes \u7684 \u6587\u4ef6 \u3002 \u8be5 \u811a\u672c \u4f7f\u7528 data / vtypes . json \u5b58\u50a8 \u7684 \u4fe1\u606f \u6765 \u521b\u5efa SUMO vtypes \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u8f91 \u6240\u8ff0 \u6587\u4ef6 \u6765 \u4fee\u6539 \u3002 \u7b14\u8bb0 \u5fc5\u987b \u8fd0\u884c Carla \u4eff\u771f \u624d\u80fd \u6267\u884c \u8be5 \u811a\u672c \u3002 \u521b\u5efa SUMO \u7f51\u7edc \u521b\u5efa \u4e0e Carla \u540c\u6b65 \u7684 SUMO \u7f51\u7edc \u63a8\u8350 \u65b9\u6cd5 \u662f \u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / netconvert _ carla . py . \u8fd9 \u5c31\u8981 \u5229\u7528 SUMO \u63d0\u4f9b \u7684 netconvert \u5de5\u5177 \u4e86 \u3002 \u4e3a\u4e86 \u8fd0\u884c \u8be5 \u811a\u672c \uff0c \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 xodr _ file \u2014 OpenDRIVE \u6587\u4ef6 . xodr \u3002 -- output ' ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a net . net . xml ) \u2014 \u8f93\u51fa \u6587\u4ef6 . net . xml \u3002 -- guess - tls ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a false ) \u2014 SUMO \u53ea\u80fd \u4e3a \u9053\u8def \u4e2d \u7684 \u7279\u5b9a \u8f66\u9053 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u4f46 Carla \u4e0d\u80fd \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a True \uff0c SUMO \u5c06 \u4e0d\u4f1a \u533a\u5206 \u7279\u5b9a \u8f66\u9053 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u5e76\u4e14 \u8fd9\u4e9b \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0e Carla \u540c\u6b65 \u3002 \u8be5 \u811a\u672c \u7684 \u8f93\u51fa \u5c06 \u662f . net . xml \u53ef\u4ee5 \u4f7f\u7528 NETEDIT \u8fdb\u884c \u7f16\u8f91 \u7684 \u3002 \u4f7f\u7528 \u5b83 \u6765 \u7f16\u8f91 \u8def\u7ebf \u3001 \u6dfb\u52a0 \u9700\u6c42 \uff0c \u5e76 \u6700\u7ec8 \u51c6\u5907 \u4e00\u4e2a \u53ef\u4ee5 \u4fdd\u5b58 \u4e3a . sumocfg \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u53ef\u80fd \u4f1a \u6709\u6240 \u5e2e\u52a9 \u3002 \u770b \u4e00\u773c Co - Simulation / Sumo / examples \u3002 \u5bf9\u4e8e \u6bcf\u4e2a example . sumocfg \u6587\u4ef6 \uff0c \u90fd \u6709 \u591a\u4e2a \u540c\u540d \u7684 \u76f8\u5173 \u6587\u4ef6 \u3002 \u6240\u6709 \u8fd9\u4e9b \u90fd \u5305\u542b \u4e00\u4e2a \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002 \u8fd0\u884c \u540c\u6b65 \u4e00\u65e6 \u4eff\u771f \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u5e76 \u4fdd\u5b58 \u4e3a . sumocfg \uff0c \u5c31 \u53ef\u4ee5 \u8fd0\u884c \u4e86 \u3002 \u6709 \u4e00\u4e9b \u53ef \u9009 \u53c2\u6570 \u53ef\u4ee5 \u66f4\u6539 \u534f\u540c \u4eff\u771f \u7684 \u8bbe\u7f6e \u3002 sumo _ cfg _ file \u2014 SUMO \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 -- sumo - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 SUMO \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- sumo - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8813 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u7684 GUI \u7248\u672c \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u7ba1\u7406 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u9009\u9879 \u6709 carla , sumo \u548c none \u3002 \u5982\u679c \u9009\u62e9 none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u53ea\u4f1a \u9075\u5b88 \u751f\u6210 \u5b83 \u7684 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 python3 run _ synchronization . py < SUMOCFG FILE > -- tls - manager carla -- sumo - gui \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u6309 Ctrl + C \u3002 \u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210 \u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u5e26\u6765 \u4e86 \u4e00\u9879 \u9644\u52a0 \u529f\u80fd \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76 \u7531 \u540e\u8005 \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4e00\u6837 \u3002 \u811a\u672c spawn _ npc _ sumo . py \u51e0\u4e4e \u7b49\u540c \u540c\u4e8e \u7b49\u540c\u4e8e \u5df2\u77e5 \u7684 generate _ traffic . py \u3002 \u8be5 \u811a\u672c \u6839\u636e Carla \u4e2d \u7684 \u6d3b\u52a8 \u57ce\u9547 \u81ea\u52a8 \u5728 \u4e34\u65f6 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u751f\u6210 SUMO \u7f51\u7edc \u3002 \u8be5 \u811a\u672c \u5c06 \u521b\u5efa \u968f\u673a \u8def\u7ebf \u5e76 \u8ba9 \u8f66\u8f86 \u56db\u5904 \u6f2b\u6e38 \u3002 \u5f53 \u811a\u672c \u8fd0\u884c \u540c\u6b65 \u4eff\u5e76 \u5728 \u5176\u4e2d \u751f\u6210 \u8f66\u8f86 \u65f6 \uff0c \u53c2\u6570 \u4e0e run _ synchronization . py \u548c generate _ traffic . py \u4e2d \u51fa\u73b0 \u7684 \u53c2\u6570 \u76f8\u540c \u3002 -- host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- port ( default : 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 - n , -- number - of - vehicles ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 10 ) \u2014 \u751f\u6210 \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 -- safe \u2014 \u907f\u514d \u751f\u6210 \u8f66\u8f86 \u5bb9\u6613 \u53d1\u751f \u4e8b\u6545 \u3002 -- filterv ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a \" vehicle . \" ) * \u2014 \u8fc7\u6ee4 \u751f\u6210 \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u72b6\u6001 \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6765 \u66f4\u6539 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u5b83\u4eec \u3002 \u5982\u679c \u662f none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 # \u751f\u6210 10 \u8f86\u8f66 \uff0c \u7531 SUMO \u7ba1\u7406 \uff0c \u800c \u4e0d\u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 python3 spawn _ sumo _ npc . py - n 10 -- tls - manager carla -- sumo - gui sumo TraCI \u63a5\u53e3 \u6587\u6863 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9 \u5c31\u662f \u4e0e Carla \u8fdb\u884c SUMO \u8054\u5408 \u4eff\u771f \u7684 \u5168\u90e8 \u5185\u5bb9 \u5168\u90e8\u5185\u5bb9 \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u548c SUMO \u8054\u5408 \u4eff\u771f"},{"location":"adv_sumo/#sumo","text":"Carla \u4e0e SUMO \u5f00\u53d1 \u4e86 \u8054\u5408 \u4eff\u771f \u529f\u80fd \u3002 \u8fd9 \u5141\u8bb8 \u968f\u610f \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \uff0c \u5e76 \u5229\u7528 \u6bcf\u4e2a \u4eff\u771f \u7684 \u529f\u80fd \u6765 \u652f\u6301 \u7528\u6237 \u3002 \u5fc5\u5907 \u6761\u4ef6 \u5fc5\u5907\u6761\u4ef6 \u8fd0\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f \u521b\u5efa Carla vtypes \u521b\u5efa SUMO \u7f51\u7edc \u8fd0\u884c \u540c\u6b65 \u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210","title":"\u548c SUMO \u8fdb\u884c \u8054\u5408 \u4eff\u771f"},{"location":"adv_sumo/#_1","text":"\u9996\u5148 \uff0c \u9700\u8981 \u5b89\u88c5 SUMO \u624d\u80fd \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u5efa\u8bae \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u800c \u4e0d\u662f \u7b80\u5355 \u5b89\u88c5 \uff0c \u56e0\u4e3a \u6709 \u65b0 \u529f\u80fd \u548c \u4fee\u590d \u53ef\u4ee5 \u6539\u8fdb \u534f\u540c \u4eff\u771f \u3002 \u5b8c\u6210 \u540e \uff0c \u8bbe\u7f6e SUMO \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc SUMO \u5df2 \u51c6\u5907 \u597d \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 Co - Simulation / Sumo / examples \u4e2d\u6709 \u4e00\u4e9b Town01 , Town04 \u548c Town05 \u7684 \u793a\u4f8b \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u63cf\u8ff0 \u4e86 \u4eff\u771f \u7684 \u914d\u7f6e \uff08 \u4f8b\u5982 \u7f51\u7edc \u3001 \u8def\u7ebf \u3001 \u8f66\u8f86 \u7c7b\u578b ... \uff09 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e4b\u4e00 \u6765 \u6d4b\u8bd5 \u8054\u5408 \u4eff\u771f \u3002 \u8be5 \u811a\u672c \u6709 \u4e0d\u540c \u7684 \u9009\u9879 \uff0c \u4e0b\u9762 \u5c06 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u73b0\u5728 \uff0c \u8ba9 \u6211\u4eec \u4e3a Town04 \u8fd0\u884c \u4e00\u4e2a \u7b80\u5355 \u7684 \u793a\u4f8b \u3002 \u4f7f\u7528 Town04 \u8fd0\u884c Carla \u4eff\u771f \u3002 cd ~ / carla . / CarlaUE4 . sh cd PythonAPI / util python3 config . py -- map Town04 \u7136\u540e \uff0c \u8fd0\u884c SUMO \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town04 . sumocfg -- sumo - gui \u7b14\u8bb0 \u8fd0\u884c \u65f6\u5019 \u53ef\u80fd \u62a5\u9519 \uff1a module ' traci ' has no attribute ' sumolib ' \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a sumolib \u662f \u72ec\u7acb \u7684 \u5305 \uff0c \u4e0d \u5728 traci \u91cc\u9762 \uff0c \u9700\u8981 \u628a carla / Co - Simulation / Sumo / sumo _ integration / sumo _ simulation . py \u7684 304 \u884c \u7684 \u8fd9 \u4e00\u53e5 \u4ee3 sumo _ net = traci . sumolib . net . readNet ( net _ file ) \u7801 \u6539\u6210 sumo _ net = sumolib . net . readNet ( net _ file ) \u3002","title":"\u5fc5\u5907\u6761\u4ef6"},{"location":"adv_sumo/#_2","text":"","title":"\u8fd0\u884c \u81ea\u5b9a\u4e49 \u8054\u5408 \u4eff\u771f"},{"location":"adv_sumo/#carla-vtypes","text":"\u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / create _ sumo _ vtypes . py \u7528\u6237 \u53ef\u4ee5 \u57fa\u4e8e Carla \u84dd \u56fe\u5e93 \u521b\u5efa vtypes \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e Carla \u84dd\u56fe \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- output - file ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a carlavtypes . rou . xml ) \u2014 \u751f\u6210 \u7684 \u5305\u542b vtypes \u7684 \u6587\u4ef6 \u3002 \u8be5 \u811a\u672c \u4f7f\u7528 data / vtypes . json \u5b58\u50a8 \u7684 \u4fe1\u606f \u6765 \u521b\u5efa SUMO vtypes \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u8f91 \u6240\u8ff0 \u6587\u4ef6 \u6765 \u4fee\u6539 \u3002 \u7b14\u8bb0 \u5fc5\u987b \u8fd0\u884c Carla \u4eff\u771f \u624d\u80fd \u6267\u884c \u8be5 \u811a\u672c \u3002","title":"\u521b\u5efa carla vtypes"},{"location":"adv_sumo/#sumo_1","text":"\u521b\u5efa \u4e0e Carla \u540c\u6b65 \u7684 SUMO \u7f51\u7edc \u63a8\u8350 \u65b9\u6cd5 \u662f \u4f7f\u7528 \u811a\u672c Co - Simulation / Sumo / util / netconvert _ carla . py . \u8fd9 \u5c31\u8981 \u5229\u7528 SUMO \u63d0\u4f9b \u7684 netconvert \u5de5\u5177 \u4e86 \u3002 \u4e3a\u4e86 \u8fd0\u884c \u8be5 \u811a\u672c \uff0c \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 xodr _ file \u2014 OpenDRIVE \u6587\u4ef6 . xodr \u3002 -- output ' ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a net . net . xml ) \u2014 \u8f93\u51fa \u6587\u4ef6 . net . xml \u3002 -- guess - tls ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a false ) \u2014 SUMO \u53ea\u80fd \u4e3a \u9053\u8def \u4e2d \u7684 \u7279\u5b9a \u8f66\u9053 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u4f46 Carla \u4e0d\u80fd \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a True \uff0c SUMO \u5c06 \u4e0d\u4f1a \u533a\u5206 \u7279\u5b9a \u8f66\u9053 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u5e76\u4e14 \u8fd9\u4e9b \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0e Carla \u540c\u6b65 \u3002 \u8be5 \u811a\u672c \u7684 \u8f93\u51fa \u5c06 \u662f . net . xml \u53ef\u4ee5 \u4f7f\u7528 NETEDIT \u8fdb\u884c \u7f16\u8f91 \u7684 \u3002 \u4f7f\u7528 \u5b83 \u6765 \u7f16\u8f91 \u8def\u7ebf \u3001 \u6dfb\u52a0 \u9700\u6c42 \uff0c \u5e76 \u6700\u7ec8 \u51c6\u5907 \u4e00\u4e2a \u53ef\u4ee5 \u4fdd\u5b58 \u4e3a . sumocfg \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u53ef\u80fd \u4f1a \u6709\u6240 \u5e2e\u52a9 \u3002 \u770b \u4e00\u773c Co - Simulation / Sumo / examples \u3002 \u5bf9\u4e8e \u6bcf\u4e2a example . sumocfg \u6587\u4ef6 \uff0c \u90fd \u6709 \u591a\u4e2a \u540c\u540d \u7684 \u76f8\u5173 \u6587\u4ef6 \u3002 \u6240\u6709 \u8fd9\u4e9b \u90fd \u5305\u542b \u4e00\u4e2a \u8054\u5408 \u4eff\u771f \u793a\u4f8b \u3002","title":"\u521b\u5efa SUMO \u7f51\u7edc"},{"location":"adv_sumo/#_3","text":"\u4e00\u65e6 \u4eff\u771f \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u5e76 \u4fdd\u5b58 \u4e3a . sumocfg \uff0c \u5c31 \u53ef\u4ee5 \u8fd0\u884c \u4e86 \u3002 \u6709 \u4e00\u4e9b \u53ef \u9009 \u53c2\u6570 \u53ef\u4ee5 \u66f4\u6539 \u534f\u540c \u4eff\u771f \u7684 \u8bbe\u7f6e \u3002 sumo _ cfg _ file \u2014 SUMO \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 -- carla - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 Carla \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP -- carla - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 -- sumo - host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 SUMO \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- sumo - port ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8813 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u7684 GUI \u7248\u672c \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u7ba1\u7406 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u9009\u9879 \u6709 carla , sumo \u548c none \u3002 \u5982\u679c \u9009\u62e9 none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u53ea\u4f1a \u9075\u5b88 \u751f\u6210 \u5b83 \u7684 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 python3 run _ synchronization . py < SUMOCFG FILE > -- tls - manager carla -- sumo - gui \u7b14\u8bb0 \u8981 \u505c\u6b62 \u8054\u5408 \u4eff\u771f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u811a\u672c \u7684 \u7ec8\u7aef \u6309 Ctrl + C \u3002","title":"\u8fd0\u884c \u540c\u6b65"},{"location":"adv_sumo/#sumo-npc","text":"\u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u5e26\u6765 \u4e86 \u4e00\u9879 \u9644\u52a0 \u529f\u80fd \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u751f\u6210 \uff0c \u5e76 \u7531 \u540e\u8005 \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4e00\u6837 \u3002 \u811a\u672c spawn _ npc _ sumo . py \u51e0\u4e4e \u7b49\u540c \u540c\u4e8e \u7b49\u540c\u4e8e \u5df2\u77e5 \u7684 generate _ traffic . py \u3002 \u8be5 \u811a\u672c \u6839\u636e Carla \u4e2d \u7684 \u6d3b\u52a8 \u57ce\u9547 \u81ea\u52a8 \u5728 \u4e34\u65f6 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u751f\u6210 SUMO \u7f51\u7edc \u3002 \u8be5 \u811a\u672c \u5c06 \u521b\u5efa \u968f\u673a \u8def\u7ebf \u5e76 \u8ba9 \u8f66\u8f86 \u56db\u5904 \u6f2b\u6e38 \u3002 \u5f53 \u811a\u672c \u8fd0\u884c \u540c\u6b65 \u4eff\u5e76 \u5728 \u5176\u4e2d \u751f\u6210 \u8f66\u8f86 \u65f6 \uff0c \u53c2\u6570 \u4e0e run _ synchronization . py \u548c generate _ traffic . py \u4e2d \u51fa\u73b0 \u7684 \u53c2\u6570 \u76f8\u540c \u3002 -- host ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 127.0 . 0.1 ) \u2014 \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 IP \u3002 -- port ( default : 2000 ) \u2014 \u8981 \u4fa6\u542c \u7684 TCP \u7aef\u53e3 \u3002 - n , -- number - of - vehicles ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 10 ) \u2014 \u751f\u6210 \u7684 \u8f66\u8f86 \u6570\u91cf \u3002 -- safe \u2014 \u907f\u514d \u751f\u6210 \u8f66\u8f86 \u5bb9\u6613 \u53d1\u751f \u4e8b\u6545 \u3002 -- filterv ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a \" vehicle . \" ) * \u2014 \u8fc7\u6ee4 \u751f\u6210 \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 -- sumo - gui \u2014 \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 SUMO \u3002 -- step - length ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 s ) \u2014 \u8bbe\u7f6e \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u56fa\u5b9a \u589e\u91cf \u79d2 \u3002 -- sync - vehicle - lights ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u706f \u72b6\u6001 \u3002 -- sync - vehicle - color ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u8f66\u8f86 \u989c\u8272 \u3002 -- sync - vehicle - all ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a False ) \u2014 \u540c\u6b65 \u6240\u6709 \u8f66\u8f86 \u5c5e\u6027 \u3002 -- tls - manager ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a none ) \u2014 \u9009\u62e9 \u54ea\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6765 \u66f4\u6539 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u53e6 \u4e00\u4e2a \u5c06 \u76f8\u5e94 \u5730 \u66f4\u65b0 \u5b83\u4eec \u3002 \u5982\u679c \u662f none \uff0c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5c06 \u4e0d \u540c\u6b65 \u3002 # \u751f\u6210 10 \u8f86\u8f66 \uff0c \u7531 SUMO \u7ba1\u7406 \uff0c \u800c \u4e0d\u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 python3 spawn _ sumo _ npc . py - n 10 -- tls - manager carla -- sumo - gui","title":"\u7531 SUMO \u63a7\u5236 \u7684 NPC \u751f\u6210"},{"location":"adv_sumo/#sumo-traci","text":"\u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9 \u5c31\u662f \u4e0e Carla \u8fdb\u884c SUMO \u8054\u5408 \u4eff\u771f \u7684 \u5168\u90e8 \u5185\u5bb9 \u5168\u90e8\u5185\u5bb9 \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"sumo TraCI \u63a5\u53e3 \u6587\u6863"},{"location":"adv_synchrony_timestep/","text":"\u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u672c \u8282 \u4ecb\u7ecd Carla \u4e2d \u7684 \u4e24\u4e2a \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 \u5b83\u4eec \u7684 \u914d\u7f6e \u5b9a\u4e49 \u4e86 \u4eff\u771f \u4e2d \u7684 \u65f6\u95f4 \u5982\u4f55 \u6d41\u901d \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5982\u4f55 \u4f7f \u4eff\u771f \u5411\u524d \u63a8\u8fdb \u4eff\u771f \u548c \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4eff\u771f \u8bb0\u5f55 \u7269\u7406 \u5b50\u6b65 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u53ef\u80fd \u7684 \u914d\u7f6e \u7269\u7406 \u51b3\u5b9a \u5b9a\u8bba \u51b3\u5b9a\u8bba \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u5b9e\u65f6 \u548c \u4eff\u771f \u65f6\u95f4 \u662f \u6709 \u533a\u522b \u7684 \u3002 \u4eff\u771f \u4e16\u754c \u6709 \u81ea\u5df1 \u7684 \u65f6\u949f \u548c \u65f6\u95f4 \uff0c \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6267\u884c \u3002 \u8ba1\u7b97 \u4e24\u4e2a \u4eff\u771f \u6b65\u9aa4 \u9700\u8981 \u4e00\u4e9b \u5b9e\u65f6 \u65f6\u95f4 \u3002 \u4f46\u662f \uff0c \u5728 \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u4e5f \u5b58\u5728 \u65f6\u95f4 \u8de8\u5ea6 \u65f6\u95f4\u8de8\u5ea6 \uff0c \u5373 \u65f6\u95f4 \u6b65\u957f \u4e3a\u4e86 \u6f84\u6e05 \u8fd9 \u4e00\u70b9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u80fd \u9700\u8981 \u51e0 \u6beb\u79d2 \u6765 \u8ba1\u7b97 \u4eff\u771f \u7684 \u4e24\u4e2a \u6b65\u9aa4 \u3002 \u4f46\u662f \uff0c \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u7684 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u914d\u7f6e \u4e3a \uff0c \u4f8b\u5982 \uff0c \u59cb\u7ec8 \u4e3a \u4e00\u79d2 \u3002 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u662f \u56fa\u5b9a \u7684 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u53ef\u53d8 \u7684 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u7528\u6237 \u7684 \u504f\u597d \u3002 \u7b14\u8bb0 \u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u662f \u76f8\u4e92 \u4e92\u4ea4 \u4ea4\u7ec7 \u76f8\u4e92\u4ea4\u7ec7 \u7684 \u6982\u5ff5 \u3002 \u8bf7 \u52a1\u5fc5 \u9605\u8bfb \u8fd9 \u4e24\u4e2a \u90e8\u5206 \uff0c \u4ee5 \u5145\u5206 \u4e86\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f Carla \u4e2d \u7684 \u9ed8\u8ba4 \u6a21\u5f0f \u3002 \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u5c06 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u8fd9\u4e9b \u6b65\u9aa4 \u6240 \u9700 \u7684 \u65f6\u95f4 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = None # Set a variable time - step world . apply _ settings ( settings ) PythonAPI / util / config . py \u4f7f\u7528 \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u65f6\u95f4 \u6b65\u957f \u3002 \u96f6 \u7b49\u4e8e \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 cd PythonAPI / util && python3 config . py -- delta - seconds 0 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u4fdd\u6301 \u6052\u5b9a \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a 0.5 \u79d2 \uff0c \u6bcf\u79d2 \u5c06 \u6709 \u4e24\u4e2a \u4eff\u771f \u5e27 \u3002 \u4f7f\u7528 \u76f8\u540c \u7684 \u65f6\u95f4 \u589e\u91cf \u5bf9\u4e8e \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u662f \u6700\u597d \u7684 \u65b9\u5f0f \u3002 \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c06 \u5bf9\u5e94 \u4e8e \u4eff\u771f \u4e2d \u6613\u4e8e \u7406\u89e3 \u7684 \u65f6\u523b \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u53ef\u4ee5 \u5728 \u66f4 \u5c11 \u7684 \u5b9e\u9645 \u65f6\u95f4 \u5185 \u4eff\u771f \u66f4\u957f \u7684 \u65f6\u95f4 \u65f6\u95f4\u6bb5 \u3002 \u53ef\u4ee5 \u5728 \u4e16\u754c \u8bbe\u7f6e \u4e2d \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u8981 \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4e3a 0.05 \u79d2 \uff0c \u8bf7 \u5e94\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u82b1\u8d39 20 \u4e2a \u6b65\u9aa4 \uff08 1 / 0.05 \uff09 \u6765 \u91cd\u73b0 \u4eff\u771f \u4e16\u754c \u4e2d \u7684 \u4e00\u79d2 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8fd9 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 \u811a\u672c \u8fdb\u884c \u8bbe\u7f6e \u3002 PythonAPI / util / config . py cd PythonAPI / util && python3 config . py -- delta - seconds 0.05 \u4eff\u771f \u8bb0\u5f55 Carla \u5177\u6709 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u529f\u80fd \uff0c \u53ef\u4ee5 \u8bb0\u5f55 \u4eff\u771f \uff0c \u7136\u540e \u91cd\u65b0 \u6f14\u7ece \u3002 \u4f46\u662f \uff0c \u5728 \u5bfb\u627e \u7cbe\u5ea6 \u65f6 \uff0c \u9700\u8981 \u8003\u8651 \u4e00\u4e9b \u4e8b\u60c5 \u3002 \u6709 \u4e86 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u91cd\u6f14 \u5b83 \u5c31 \u5f88 \u5bb9\u6613 \u4e86 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb \u4eff\u771f \u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4f7f\u7528 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u4e8b\u60c5 \u4f1a \u7a0d\u5fae \u590d\u6742 \u4e00\u4e9b \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u4e0e \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u4e0d\u540c \uff0c \u56e0\u4e3a \u903b\u8f91 \u5468\u671f \u4f1a \u4e0d\u65f6 \u53d8\u5316 \u3002 \u7136\u540e \uff0c \u5c06 \u4f7f\u7528 \u8bb0\u5f55 \u7684 \u6570\u636e \u5bf9 \u4fe1\u606f \u8fdb\u884c \u63d2\u503c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u88ab\u8feb \u91cd\u73b0 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u4eff\u771f \u7684 \u6b65\u957f \u5c06 \u76f8\u540c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u5b9e\u65f6 \u65f6\u95f4 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u65f6\u95f4 \u6b65\u957f \u5e94 \u9010\u4e00 \u4f20\u9012 \u3002 \u8fd9\u4e9b \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u662f \u539f\u59cb \u4eff\u771f \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u8fd0\u884c \u7684 \u7ed3\u679c \u3002 \u7531\u4e8e \u8868\u793a \u8fd9\u4e9b \u6240 \u9700 \u7684 \u65f6\u95f4 \u5927\u591a \u4e0d\u540c \uff0c \u56e0\u6b64 \u4eff\u771f \u5fc5\u7136 \u4f1a\u4ee5 \u5947\u602a \u7684 \u65f6\u95f4 \u6ce2\u52a8 \u518d\u73b0 \u3002 \u7269\u7406 \u5b50\u6b65 \u4e3a\u4e86 \u7cbe\u786e \u8ba1\u7b97 \u7269\u7406 \u6548\u679c \uff0c \u7269\u7406 \u4eff\u771f \u5fc5\u987b \u5728 \u975e\u5e38 \u5c0f \u7684 \u65f6\u95f4 \u6b65\u5185 \u8fdb\u884c \u3002 \u5f53 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6bcf \u5e27 \u6267\u884c \u591a\u6b21 \u8ba1\u7b97 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6e32\u67d3 \uff0c \u8bfb\u53d6 \u5b58\u50a8 \u7b49 \uff09 \u65f6 \uff0c \u65f6\u95f4 \u6b65\u957f \u53ef\u80fd \u4f1a \u6210\u4e3a \u4e00\u4e2a \u95ee\u9898 \u3002 \u7531\u4e8e \u8fd9\u4e2a \u9650\u5236 \u4ec5 \u53d1\u751f \u5728 \u7269\u7406 \u4eff\u771f \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ec5 \u5bf9 \u7269\u7406 \u8ba1\u7b97 \u5e94\u7528 \u5b50\u6b65 \u3002 \u5728 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u7269\u7406 \u5b50\u6b65 \u662f \u6253\u5f00 \u7684 \uff0c \u5e76\u4e14 \u88ab \u8bbe\u5b9a \u4e3a \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u957f \u6700\u5927 10 \u4e2a \u7269\u7406 \u5b50\u6b65 \u6ca1 \uff0c \u6bcf\u4e2a \u7269\u7406 \u5b50\u6b65 \u6700\u5927 \u4e3a 0.01 \u79d2 \u3002 \u5f53\u7136 \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 API \u8c03\u6574 \u8fd9\u4e9b \u8bbe\u5b9a \uff1a settings = world . get _ settings ( ) settings . substepping = True settings . max _ substep _ delta _ time = 0.01 settings . max _ substeps = 10 world . apply _ settings ( settings ) \u6ce8\u610f \uff0c \u5f53 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u65f6 \uff0c \u6211\u4eec \u8bbe\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u65f6 \u9700\u8981 \u9075\u5faa \u4ee5\u4e0b \u6761\u4ef6 \u6765 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff1a fixed _ delta _ seconds < = max _ substep _ delta _ time * max _ substeps \u6ce8\u610f \uff0c \u4e3a\u4e86 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff0c \u5b50\u6b65 \u7684 \u65f6\u95f4 \u95f4\u9694 \u5e94\u8be5 \u81f3\u5c11 \u4f4e\u4e8e 0.01666 \uff0c \u7406\u60f3 \u60c5\u51b5 \u4e0b \u4f4e\u4e8e 0.01 \u3002 \u4e3a\u4e86 \u6f14\u793a \u6700\u4f73 \u7269\u7406 \u5b50\u6b65 \u7684 \u6548\u679c \uff0c \u8bf7 \u8003\u8651 \u4e0b\u9762 \u7684 \u56fe \u3002 \u4e0b\u9762 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u56fe\u8868 \u663e\u793a \u4e86 \u5728 \u4e0d\u540c \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \u3002 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u5728 \u6240\u6709 \u4eff\u771f \u4e2d \u90fd \u662f \u6052\u5b9a \u7684 \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.01 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u901f\u5ea6 \u4e0d \u53d7 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u5dee\u5f02 \u7684 \u5f71\u54cd \u3002 \u7b2c\u4e8c \u4e8c\u5f20 \u7b2c\u4e8c\u5f20 \u56fe \u663e\u793a \u4e86 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \uff0c \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u4e3a 0.04 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u4e00\u65e6 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u8d85\u8fc7 0.01 \uff0c \u901f\u5ea6 \u5e38\u6570 \u5f00\u59cb \u51fa\u73b0 \u504f\u5dee \uff0c \u968f\u7740 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u7684 \u589e\u52a0 \uff0c \u504f\u5dee \u7684 \u4e25\u91cd \u7a0b\u5ea6 \u4e5f \u5728 \u589e\u52a0 \u3002 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u6d4b\u91cf z - \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u65f6 \u663e\u793a \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e0e \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u76f8\u540c \u7684 \u5dee\u5f02 \u7684 \u5f71\u54cd \u6765 \u518d\u6b21 \u8bc1\u660e \u8fd9\u79cd \u504f\u5dee \uff0c \u53ea\u6709 \u5f53 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e3a 0.01 \u6216 \u66f4 \u5c0f\u65f6 \u624d \u4f1a \u53d1\u751f \u6536\u655b \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 Carla \u91c7\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u5bf9 \u4e16\u754c \u8fdb\u884c \u4fee\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u4eff\u771f \uff0c \u800c \u4e0d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u66f4\u65b0 \u5230 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u524d \u4f1a \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u7684 \u201c ready to go \u201d \u7684 \u6d88\u606f \u3002 \u7b14\u8bb0 \u540c\u65f6 \u8fd0\u884c \u591a\u4e2a client \u65f6 \uff0c \u53ea\u80fd \u6709 \u4e00\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a server \u4f1a \u5bf9 \u6bcf\u4e2a \u6536\u5230 \u7684 \u201c ready to go \u201d \u4fe1\u606f \u8fdb\u884c \u53cd\u5e94 \uff0c \u591a\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \u5c06\u4f1a \u53d1\u9001 \u8fc7\u591a \u201c ready to go \u201d \u4fe1\u606f \u5bfc\u81f4 \u540c\u6b65 \u5931\u8d25 \u3002 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u53ea \u9700\u8981 \u6539\u53d8 settings . synchronous _ mode \u7684 \u503c \u5373\u53ef \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb this \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a false \u6216 \u4f7f\u7528 \u811a\u672c \u3002 PythonAPI / util / config . py . cd PythonAPI / util && python3 config . py -- no - sync # Disables synchronous mode \u540c\u6b65 \u6a21\u5f0f \u4e0d\u80fd \u901a\u8fc7 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u673a \u7684 \u54cd\u5e94 \u3002 \u4f7f\u7528 \u8fd9\u4e2a \u811a\u672c \uff0c \u7528\u6237 \u4e0d\u80fd \u5728 \u9700\u8981 \u7684 \u65f6\u5019 \u53d1\u9001 \u523b\u5ea6 \u3002 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8f83\u6162 \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \u4e4b\u95f4 \u7684 \u540c\u6b65 \uff0c \u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49 \u60c5\u51b5 \u4e0b \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u901f\u5ea6 \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d \u7b49\u5f85 \uff0c \u4fe1\u606f \u5c06\u4f1a \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u6240\u6709 \u5185\u5bb9 \uff0c \u4fe1\u606f \u4f1a \u4e22\u5931 \u6216 \u6df7\u6dc6 \u3002 \u7c7b\u4f3c \u7684 \u60c5\u51b5 \u662f \uff0c \u5982\u679c \u6709 \u5f88\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u64cd\u4f5c \uff0c \u5c06 \u65e0\u6cd5 \u786e\u5b9a \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u6765\u81ea \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u6bb5 \u4ee3\u7801 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u5728 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u52fe\u9009 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u91cd\u8981 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u3002 \u5728 \u8fd9\u91cc \uff0c \u540c\u6b65 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u4e16\u754c \u5177\u6709 \u5f02\u6b65 \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u6b65\u8fdb \uff0c \u6216 \u5728 \u6536\u5230 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # Wait for the next tick and retrieve the snapshot of the tick . world _ snapshot = world . wait _ for _ tick ( ) # Register a callback to get called every time we receive a new snapshot . world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) ) \u53ef\u80fd \u7684 \u914d\u7f6e \u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u7684 \u914d\u7f6e \uff0c \u5bfc\u81f4 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u4ee5\u4e0b \u662f \u5bf9 \u8fd9\u4e9b \u53ef\u80fd \u53ef\u80fd\u6027 \u7684 \u7b80\u8981 \u603b\u7ed3 \u3002 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u540c\u6b65 \u6a21\u5f0f \u5ba2\u6237 \u5b8c\u5168 \u63a7\u5236 \u4eff\u771f \u53ca\u5176 \u4fe1\u606f \u3002 \u4e0d \u53ef\u9760 \u4eff\u771f \u7684 \u98ce\u9669 \u3002 \u5f02\u6b65 \u6a21\u5f0f \u8fd9\u662f \u5173\u4e8e \u4fe1\u606f \u7684 \u597d \u65f6\u95f4 \u53c2\u8003 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4ee5 \u6700\u5feb \u7684 \u901f\u5ea6 \u8fd0\u884c \u3002 \u4e0d \u5bb9\u6613 \u91cd\u590d \u7684 \u4eff\u771f \u3002 \u540c\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9 \u51e0\u4e4e \u53ef\u4ee5 \u80af\u5b9a \u662f \u4e00\u79cd \u4e0d \u53ef\u53d6 \u7684 \u72b6\u6001 \u3002 \u5f53 \u65f6\u95f4 \u6b65\u957f \u5927\u4e8e 0.1 \u79d2 \u65f6 \uff0c \u7269\u7406 \u65e0\u6cd5 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8ba1\u7b97 \u6b65\u9aa4 \uff0c \u5219 \u5f88 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u7269\u7406 \u7279\u6027 \u4e0d\u4f1a \u540c\u6b65 \u3002 \u4eff\u771f \u5c06 \u4e0d \u53ef\u9760 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u7684 Carla \u72b6\u6001 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u662f \u5f02\u6b65 \u7684 \u3002 \u4eff\u771f \u65f6\u95f4 \u6839\u636e \u5b9e\u65f6 \u6d41\u52a8 \u3002 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u9700\u8981 \u8003\u8651 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u7b97\u672f \u8bef\u5dee \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u65f6\u95f4 \u6b65\u957f \u7684 \u53ef\u80fd \u5dee\u5f02 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u68c0\u7d22 \u5230 \u7684 \u4fe1\u606f \u5c06 \u5f88 \u5bb9\u6613 \u4e0e \u4eff\u771f \u4e2d \u7684 \u786e\u5207 \u65f6\u523b \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u8fd9\u79cd \u914d\u7f6e \u53ef\u4ee5 \u4ee5 \u66f4 \u4f4e \u7684 \u5b9e\u65f6 \u5ea6 \u4eff\u771f \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 \u540c\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u7edf\u6cbb \u4eff\u771f \u3002 \u65f6\u95f4 \u6b65\u957f \u5c06 \u662f \u56fa\u5b9a \u7684 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u5373\u65f6 \u62a5\u4ef7 \u4e4b\u524d \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d\u4f1a \u8ba1\u7b97 \u4ee5\u4e0b \u6b65\u9aa4 \u3002 \u5f53 \u540c\u6b65 \u548c \u7cbe\u5ea6 \u76f8\u5173 \u65f6 \uff0c \u8fd9\u662f \u6700\u4f73 \u6a21\u5f0f \u3002 \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6216 \u68c0\u7d22 \u4fe1\u606f \u7684 \u4e0d\u540c \u5143\u7d20 \u65f6 \u3002 \u8b66\u544a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8bf7 \u59cb\u7ec8 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u7528\u6237 \uff0c \u5e76\u4e14 \u5b83 \u4f7f\u7528 \u7684 \u662f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u592a\u5927 \u3002 \u7269\u7406 \u7406\u5b66 \u7269\u7406\u5b66 \u662f \u4e0d \u53ef\u9760 \u7684 \u3002 \u8fd9\u4e2a \u95ee\u9898 \u5728 \u65f6\u95f4 \u6b65\u957f \u9650\u5236 \u90e8\u5206 \u6709 \u66f4\u597d \u7684 \u89e3\u91ca \u3002 \u7269\u7406 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 Carla \u5728 \u7279\u5b9a \u60c5\u51b5 \u4e0b \u652f\u6301 \u7269\u7406 \u548c \u78b0\u649e \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff1a \u540c\u6b65 \u6a21\u5f0f \u548c \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u5fc5\u987b \u542f\u7528 \uff1a \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8981\u6c42 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5b8c\u5168 \u540c\u6b65 \uff0c \u4ee5 \u786e\u4fdd \u547d\u4ee4 \u88ab \u6b63\u786e \u5e94\u7528 \u5e76 \u4ea7\u751f \u51c6\u786e \u548c \u53ef \u590d\u5236 \u7684 \u7ed3\u679c \u3002 \u5fc5\u987b \u901a\u8fc7 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u6765 \u5f3a\u5236 \u6267\u884c \u5f3a\u5236\u6267\u884c \u6052\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u4e0d \u8bbe\u7f6e \uff0c \u65f6\u95f4 \u6b65\u957f \u5c06 \u6839\u636e \u4eff\u771f \u6027\u80fd \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u81ea\u52a8 \u8ba1\u7b97 \u3002 \u5728 \u52a0\u8f7d \u6216 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u4e4b\u524d \uff0c \u5fc5\u987b \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff1a \u5982\u679c \u4e16\u754c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u4e0d \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e0d\u540c \u7684 \u65f6\u95f4 \u6233 \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u5728 \u7269\u7406 \u4eff\u771f \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7b49 \u5bf9\u8c61 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u4e2d \u4ea7\u751f \u5fae\u5c0f \u7684 \u5dee\u5f02 \u3002 \u6bcf \u4e00\u6b21 \u65b0 \u7684 \u91cd\u590d \u90fd \u5fc5\u987b \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \uff1a \u6bcf\u6b21 \u8981 \u91cd\u73b0 \u4eff\u771f \u65f6 \uff0c \u8bf7 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u3002 \u547d\u4ee4 \u5e94\u8be5 \u662f \u5904\u7406 \u6279\u5904\u7406 \u7684 \uff0c \u800c \u4e0d\u662f \u4e00\u6b21 \u53d1\u51fa \u4e00\u4e2a \u547d\u4ee4 \uff1a \u867d\u7136 \u5f88\u5c11 \u89c1 \uff0c \u4f46 \u5728 \u7e41\u5fd9 \u7684 \u4eff\u771f \u6216 \u8fc7\u8f7d \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \uff0c \u5355\u4e2a \u53d1\u51fa \u7684 \u547d\u4ee4 \u53ef\u80fd \u4f1a \u4e22\u5931 \u3002 \u5982\u679c \u547d\u4ee4 \u5728 apply _ batch _ sync \u547d\u4ee4 \u4e2d \u5904\u7406 \u6279\u5904\u7406 \uff0c \u5219 \u4fdd\u8bc1 \u8be5 \u547d\u4ee4 \u88ab \u6267\u884c \u6216 \u8fd4\u56de \u5931\u8d25 \u54cd\u5e94 \u3002 \u4ee5\u4e0b \u662f \u4e0a\u8ff0 \u6b65\u9aa4 \u7684 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings # Set up the traffic manager traffic _ manager = client . get _ trafficmanager ( TM _ PORT ) traffic _ manager . set _ synchronous _ mode ( True ) traffic _ manager . set _ random _ device _ seed ( SEED ) # define TM seed for determinism # Spawn your vehicles , pedestrians , etc . # Simulation loop while True : # Your code world . tick ( ) \u64ad\u653e \u529f\u80fd \u7684 \u4e00\u4e2a \u5177\u4f53 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings client . replay _ file ( FILE _ TO _ PLAY , 0 , 0 , 0 , False ) world . tick ( ) # a tick is necessary for the server to process the replay _ file command # Simulation loop while True : # Your code world . tick ( ) \u8fd0\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u5c06 \u786e\u4fdd \u6bcf\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u7ed3\u679c \u76f8\u540c \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u5728 Carla \u4e2d \u7684 \u4f5c\u7528 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u6253\u5f00 Carla \uff0c \u73a9 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u4efb\u4f55 \u5efa\u8bae \u6216 \u7591\u95ee \u3002 Carla forum","title":"\u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_1","text":"\u672c \u8282 \u4ecb\u7ecd Carla \u4e2d \u7684 \u4e24\u4e2a \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 \u5b83\u4eec \u7684 \u914d\u7f6e \u5b9a\u4e49 \u4e86 \u4eff\u771f \u4e2d \u7684 \u65f6\u95f4 \u5982\u4f55 \u6d41\u901d \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5982\u4f55 \u4f7f \u4eff\u771f \u5411\u524d \u63a8\u8fdb \u4eff\u771f \u548c \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4eff\u771f \u8bb0\u5f55 \u7269\u7406 \u5b50\u6b65 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u53ef\u80fd \u7684 \u914d\u7f6e \u7269\u7406 \u51b3\u5b9a \u5b9a\u8bba \u51b3\u5b9a\u8bba","title":"\u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_2","text":"\u5b9e\u65f6 \u548c \u4eff\u771f \u65f6\u95f4 \u662f \u6709 \u533a\u522b \u7684 \u3002 \u4eff\u771f \u4e16\u754c \u6709 \u81ea\u5df1 \u7684 \u65f6\u949f \u548c \u65f6\u95f4 \uff0c \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6267\u884c \u3002 \u8ba1\u7b97 \u4e24\u4e2a \u4eff\u771f \u6b65\u9aa4 \u9700\u8981 \u4e00\u4e9b \u5b9e\u65f6 \u65f6\u95f4 \u3002 \u4f46\u662f \uff0c \u5728 \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u4e5f \u5b58\u5728 \u65f6\u95f4 \u8de8\u5ea6 \u65f6\u95f4\u8de8\u5ea6 \uff0c \u5373 \u65f6\u95f4 \u6b65\u957f \u4e3a\u4e86 \u6f84\u6e05 \u8fd9 \u4e00\u70b9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u80fd \u9700\u8981 \u51e0 \u6beb\u79d2 \u6765 \u8ba1\u7b97 \u4eff\u771f \u7684 \u4e24\u4e2a \u6b65\u9aa4 \u3002 \u4f46\u662f \uff0c \u8fd9 \u4e24\u4e2a \u4eff\u771f \u65f6\u523b \u4e4b\u95f4 \u7684 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u914d\u7f6e \u4e3a \uff0c \u4f8b\u5982 \uff0c \u59cb\u7ec8 \u4e3a \u4e00\u79d2 \u3002 \u65f6\u95f4 \u6b65\u957f \u53ef\u4ee5 \u662f \u56fa\u5b9a \u7684 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u53ef\u53d8 \u7684 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u7528\u6237 \u7684 \u504f\u597d \u3002 \u7b14\u8bb0 \u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u662f \u76f8\u4e92 \u4e92\u4ea4 \u4ea4\u7ec7 \u76f8\u4e92\u4ea4\u7ec7 \u7684 \u6982\u5ff5 \u3002 \u8bf7 \u52a1\u5fc5 \u9605\u8bfb \u8fd9 \u4e24\u4e2a \u90e8\u5206 \uff0c \u4ee5 \u5145\u5206 \u4e86\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u3002","title":"\u4eff\u771f \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_3","text":"Carla \u4e2d \u7684 \u9ed8\u8ba4 \u6a21\u5f0f \u3002 \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u5c06 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u8fd9\u4e9b \u6b65\u9aa4 \u6240 \u9700 \u7684 \u65f6\u95f4 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = None # Set a variable time - step world . apply _ settings ( settings ) PythonAPI / util / config . py \u4f7f\u7528 \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u65f6\u95f4 \u6b65\u957f \u3002 \u96f6 \u7b49\u4e8e \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 cd PythonAPI / util && python3 config . py -- delta - seconds 0","title":"\u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_4","text":"\u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u4fdd\u6301 \u6052\u5b9a \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a 0.5 \u79d2 \uff0c \u6bcf\u79d2 \u5c06 \u6709 \u4e24\u4e2a \u4eff\u771f \u5e27 \u3002 \u4f7f\u7528 \u76f8\u540c \u7684 \u65f6\u95f4 \u589e\u91cf \u5bf9\u4e8e \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u662f \u6700\u597d \u7684 \u65b9\u5f0f \u3002 \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c06 \u5bf9\u5e94 \u4e8e \u4eff\u771f \u4e2d \u6613\u4e8e \u7406\u89e3 \u7684 \u65f6\u523b \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u53ef\u4ee5 \u5728 \u66f4 \u5c11 \u7684 \u5b9e\u9645 \u65f6\u95f4 \u5185 \u4eff\u771f \u66f4\u957f \u7684 \u65f6\u95f4 \u65f6\u95f4\u6bb5 \u3002 \u53ef\u4ee5 \u5728 \u4e16\u754c \u8bbe\u7f6e \u4e2d \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u8981 \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u4e3a 0.05 \u79d2 \uff0c \u8bf7 \u5e94\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u82b1\u8d39 20 \u4e2a \u6b65\u9aa4 \uff08 1 / 0.05 \uff09 \u6765 \u91cd\u73b0 \u4eff\u771f \u4e16\u754c \u4e2d \u7684 \u4e00\u79d2 \u3002 settings = world . get _ settings ( ) settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8fd9 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 \u811a\u672c \u8fdb\u884c \u8bbe\u7f6e \u3002 PythonAPI / util / config . py cd PythonAPI / util && python3 config . py -- delta - seconds 0.05","title":"\u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f"},{"location":"adv_synchrony_timestep/#_5","text":"Carla \u5177\u6709 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u529f\u80fd \uff0c \u53ef\u4ee5 \u8bb0\u5f55 \u4eff\u771f \uff0c \u7136\u540e \u91cd\u65b0 \u6f14\u7ece \u3002 \u4f46\u662f \uff0c \u5728 \u5bfb\u627e \u7cbe\u5ea6 \u65f6 \uff0c \u9700\u8981 \u8003\u8651 \u4e00\u4e9b \u4e8b\u60c5 \u3002 \u6709 \u4e86 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u91cd\u6f14 \u5b83 \u5c31 \u5f88 \u5bb9\u6613 \u4e86 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb \u4eff\u771f \u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4f7f\u7528 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u4e8b\u60c5 \u4f1a \u7a0d\u5fae \u590d\u6742 \u4e00\u4e9b \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53ef\u53d8 \u7684 \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u4e0e \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u4e0d\u540c \uff0c \u56e0\u4e3a \u903b\u8f91 \u5468\u671f \u4f1a \u4e0d\u65f6 \u53d8\u5316 \u3002 \u7136\u540e \uff0c \u5c06 \u4f7f\u7528 \u8bb0\u5f55 \u7684 \u6570\u636e \u5bf9 \u4fe1\u606f \u8fdb\u884c \u63d2\u503c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u88ab\u8feb \u91cd\u73b0 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u4eff\u771f \u7684 \u6b65\u957f \u5c06 \u76f8\u540c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u5b9e\u65f6 \u65f6\u95f4 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u65f6\u95f4 \u6b65\u957f \u5e94 \u9010\u4e00 \u4f20\u9012 \u3002 \u8fd9\u4e9b \u539f\u59cb \u65f6\u95f4 \u6b65\u957f \u662f \u539f\u59cb \u4eff\u771f \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u8fd0\u884c \u7684 \u7ed3\u679c \u3002 \u7531\u4e8e \u8868\u793a \u8fd9\u4e9b \u6240 \u9700 \u7684 \u65f6\u95f4 \u5927\u591a \u4e0d\u540c \uff0c \u56e0\u6b64 \u4eff\u771f \u5fc5\u7136 \u4f1a\u4ee5 \u5947\u602a \u7684 \u65f6\u95f4 \u6ce2\u52a8 \u518d\u73b0 \u3002","title":"\u4eff\u771f \u8bb0\u5f55"},{"location":"adv_synchrony_timestep/#_6","text":"\u4e3a\u4e86 \u7cbe\u786e \u8ba1\u7b97 \u7269\u7406 \u6548\u679c \uff0c \u7269\u7406 \u4eff\u771f \u5fc5\u987b \u5728 \u975e\u5e38 \u5c0f \u7684 \u65f6\u95f4 \u6b65\u5185 \u8fdb\u884c \u3002 \u5f53 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6bcf \u5e27 \u6267\u884c \u591a\u6b21 \u8ba1\u7b97 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6e32\u67d3 \uff0c \u8bfb\u53d6 \u5b58\u50a8 \u7b49 \uff09 \u65f6 \uff0c \u65f6\u95f4 \u6b65\u957f \u53ef\u80fd \u4f1a \u6210\u4e3a \u4e00\u4e2a \u95ee\u9898 \u3002 \u7531\u4e8e \u8fd9\u4e2a \u9650\u5236 \u4ec5 \u53d1\u751f \u5728 \u7269\u7406 \u4eff\u771f \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ec5 \u5bf9 \u7269\u7406 \u8ba1\u7b97 \u5e94\u7528 \u5b50\u6b65 \u3002 \u5728 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u7269\u7406 \u5b50\u6b65 \u662f \u6253\u5f00 \u7684 \uff0c \u5e76\u4e14 \u88ab \u8bbe\u5b9a \u4e3a \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u957f \u6700\u5927 10 \u4e2a \u7269\u7406 \u5b50\u6b65 \u6ca1 \uff0c \u6bcf\u4e2a \u7269\u7406 \u5b50\u6b65 \u6700\u5927 \u4e3a 0.01 \u79d2 \u3002 \u5f53\u7136 \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 API \u8c03\u6574 \u8fd9\u4e9b \u8bbe\u5b9a \uff1a settings = world . get _ settings ( ) settings . substepping = True settings . max _ substep _ delta _ time = 0.01 settings . max _ substeps = 10 world . apply _ settings ( settings ) \u6ce8\u610f \uff0c \u5f53 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u65f6 \uff0c \u6211\u4eec \u8bbe\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u65f6 \u9700\u8981 \u9075\u5faa \u4ee5\u4e0b \u6761\u4ef6 \u6765 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff1a fixed _ delta _ seconds < = max _ substep _ delta _ time * max _ substeps \u6ce8\u610f \uff0c \u4e3a\u4e86 \u4fdd\u8bc1 \u7269\u7406 \u4eff\u771f \u7684 \u51c6\u786e \u51c6\u786e\u6027 \uff0c \u5b50\u6b65 \u7684 \u65f6\u95f4 \u95f4\u9694 \u5e94\u8be5 \u81f3\u5c11 \u4f4e\u4e8e 0.01666 \uff0c \u7406\u60f3 \u60c5\u51b5 \u4e0b \u4f4e\u4e8e 0.01 \u3002 \u4e3a\u4e86 \u6f14\u793a \u6700\u4f73 \u7269\u7406 \u5b50\u6b65 \u7684 \u6548\u679c \uff0c \u8bf7 \u8003\u8651 \u4e0b\u9762 \u7684 \u56fe \u3002 \u4e0b\u9762 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u56fe\u8868 \u663e\u793a \u4e86 \u5728 \u4e0d\u540c \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u7684 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \u3002 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u5728 \u6240\u6709 \u4eff\u771f \u4e2d \u90fd \u662f \u6052\u5b9a \u7684 \uff0c \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.01 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u901f\u5ea6 \u4e0d \u53d7 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u5dee\u5f02 \u7684 \u5f71\u54cd \u3002 \u7b2c\u4e8c \u4e8c\u5f20 \u7b2c\u4e8c\u5f20 \u56fe \u663e\u793a \u4e86 \u4eff\u771f \u4e2d \u901f\u5ea6 \u968f \u65f6\u95f4 \u7684 \u53d8\u5316 \uff0c \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u56fa\u5b9a \u4e3a 0.04 \u3002 \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \uff0c \u4e00\u65e6 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u8d85\u8fc7 0.01 \uff0c \u901f\u5ea6 \u5e38\u6570 \u5f00\u59cb \u51fa\u73b0 \u504f\u5dee \uff0c \u968f\u7740 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u7684 \u589e\u52a0 \uff0c \u504f\u5dee \u7684 \u4e25\u91cd \u7a0b\u5ea6 \u4e5f \u5728 \u589e\u52a0 \u3002 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u6d4b\u91cf z - \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u65f6 \u663e\u793a \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e0e \u56fa\u5b9a \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u76f8\u540c \u7684 \u5dee\u5f02 \u7684 \u5f71\u54cd \u6765 \u518d\u6b21 \u8bc1\u660e \u8fd9\u79cd \u504f\u5dee \uff0c \u53ea\u6709 \u5f53 \u7269\u7406 \u589e\u91cf \u65f6\u95f4 \u4e3a 0.01 \u6216 \u66f4 \u5c0f\u65f6 \u624d \u4f1a \u53d1\u751f \u6536\u655b \u3002","title":"\u7269\u7406 \u5b50\u6b65"},{"location":"adv_synchrony_timestep/#-","text":"Carla \u91c7\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u5bf9 \u4e16\u754c \u8fdb\u884c \u4fee\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u4eff\u771f \uff0c \u800c \u4e0d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u66f4\u65b0 \u5230 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e4b\u524d \u4f1a \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u7684 \u201c ready to go \u201d \u7684 \u6d88\u606f \u3002 \u7b14\u8bb0 \u540c\u65f6 \u8fd0\u884c \u591a\u4e2a client \u65f6 \uff0c \u53ea\u80fd \u6709 \u4e00\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a server \u4f1a \u5bf9 \u6bcf\u4e2a \u6536\u5230 \u7684 \u201c ready to go \u201d \u4fe1\u606f \u8fdb\u884c \u53cd\u5e94 \uff0c \u591a\u4e2a client \u5f00\u542f \u540c\u6b65 \u6a21\u5f0f \u5c06\u4f1a \u53d1\u9001 \u8fc7\u591a \u201c ready to go \u201d \u4fe1\u606f \u5bfc\u81f4 \u540c\u6b65 \u5931\u8d25 \u3002","title":"\u5ba2\u6237\u7aef - \u670d\u52a1\u5668 \u540c\u6b65"},{"location":"adv_synchrony_timestep/#_7","text":"\u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u53ea \u9700\u8981 \u6539\u53d8 settings . synchronous _ mode \u7684 \u503c \u5373\u53ef \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb this \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a false \u6216 \u4f7f\u7528 \u811a\u672c \u3002 PythonAPI / util / config . py . cd PythonAPI / util && python3 config . py -- no - sync # Disables synchronous mode \u540c\u6b65 \u6a21\u5f0f \u4e0d\u80fd \u901a\u8fc7 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u673a \u7684 \u54cd\u5e94 \u3002 \u4f7f\u7528 \u8fd9\u4e2a \u811a\u672c \uff0c \u7528\u6237 \u4e0d\u80fd \u5728 \u9700\u8981 \u7684 \u65f6\u5019 \u53d1\u9001 \u523b\u5ea6 \u3002","title":"\u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_synchrony_timestep/#_8","text":"\u540c\u6b65 \u6a21\u5f0f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8f83\u6162 \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \u4e4b\u95f4 \u7684 \u540c\u6b65 \uff0c \u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49 \u60c5\u51b5 \u4e0b \u5c24\u4e3a \u4e3a\u91cd \u91cd\u8981 \u5c24\u4e3a\u91cd\u8981 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u901f\u5ea6 \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d \u7b49\u5f85 \uff0c \u4fe1\u606f \u5c06\u4f1a \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u6240\u6709 \u5185\u5bb9 \uff0c \u4fe1\u606f \u4f1a \u4e22\u5931 \u6216 \u6df7\u6dc6 \u3002 \u7c7b\u4f3c \u7684 \u60c5\u51b5 \u662f \uff0c \u5982\u679c \u6709 \u5f88\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u64cd\u4f5c \uff0c \u5c06 \u65e0\u6cd5 \u786e\u5b9a \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u6765\u81ea \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u6bb5 \u4ee3\u7801 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u5728 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u52fe\u9009 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u91cd\u8981 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u3002 \u5728 \u8fd9\u91cc \uff0c \u540c\u6b65 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u4e16\u754c \u5177\u6709 \u5f02\u6b65 \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u6b65\u8fdb \uff0c \u6216 \u5728 \u6536\u5230 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # Wait for the next tick and retrieve the snapshot of the tick . world _ snapshot = world . wait _ for _ tick ( ) # Register a callback to get called every time we receive a new snapshot . world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) )","title":"\u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_synchrony_timestep/#_9","text":"\u65f6\u95f4 \u6b65\u957f \u548c \u540c\u6b65 \u7684 \u914d\u7f6e \uff0c \u5bfc\u81f4 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u4ee5\u4e0b \u662f \u5bf9 \u8fd9\u4e9b \u53ef\u80fd \u53ef\u80fd\u6027 \u7684 \u7b80\u8981 \u603b\u7ed3 \u3002 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u540c\u6b65 \u6a21\u5f0f \u5ba2\u6237 \u5b8c\u5168 \u63a7\u5236 \u4eff\u771f \u53ca\u5176 \u4fe1\u606f \u3002 \u4e0d \u53ef\u9760 \u4eff\u771f \u7684 \u98ce\u9669 \u3002 \u5f02\u6b65 \u6a21\u5f0f \u8fd9\u662f \u5173\u4e8e \u4fe1\u606f \u7684 \u597d \u65f6\u95f4 \u53c2\u8003 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4ee5 \u6700\u5feb \u7684 \u901f\u5ea6 \u8fd0\u884c \u3002 \u4e0d \u5bb9\u6613 \u91cd\u590d \u7684 \u4eff\u771f \u3002 \u540c\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9 \u51e0\u4e4e \u53ef\u4ee5 \u80af\u5b9a \u662f \u4e00\u79cd \u4e0d \u53ef\u53d6 \u7684 \u72b6\u6001 \u3002 \u5f53 \u65f6\u95f4 \u6b65\u957f \u5927\u4e8e 0.1 \u79d2 \u65f6 \uff0c \u7269\u7406 \u65e0\u6cd5 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8ba1\u7b97 \u6b65\u9aa4 \uff0c \u5219 \u5f88 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u7269\u7406 \u7279\u6027 \u4e0d\u4f1a \u540c\u6b65 \u3002 \u4eff\u771f \u5c06 \u4e0d \u53ef\u9760 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u7684 Carla \u72b6\u6001 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u662f \u5f02\u6b65 \u7684 \u3002 \u4eff\u771f \u65f6\u95f4 \u6839\u636e \u5b9e\u65f6 \u6d41\u52a8 \u3002 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u9700\u8981 \u8003\u8651 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u7b97\u672f \u8bef\u5dee \uff0c \u4ee5\u53ca \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u65f6\u95f4 \u6b65\u957f \u7684 \u53ef\u80fd \u5dee\u5f02 \u3002 \u5f02\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u68c0\u7d22 \u5230 \u7684 \u4fe1\u606f \u5c06 \u5f88 \u5bb9\u6613 \u4e0e \u4eff\u771f \u4e2d \u7684 \u786e\u5207 \u65f6\u523b \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901f\u5ea6 \u8db3\u591f \u5feb \uff0c \u8fd9\u79cd \u914d\u7f6e \u53ef\u4ee5 \u4ee5 \u66f4 \u4f4e \u7684 \u5b9e\u65f6 \u5ea6 \u4eff\u771f \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 \u540c\u6b65 \u6a21\u5f0f + \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u7edf\u6cbb \u4eff\u771f \u3002 \u65f6\u95f4 \u6b65\u957f \u5c06 \u662f \u56fa\u5b9a \u7684 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u5373\u65f6 \u62a5\u4ef7 \u4e4b\u524d \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0d\u4f1a \u8ba1\u7b97 \u4ee5\u4e0b \u6b65\u9aa4 \u3002 \u5f53 \u540c\u6b65 \u548c \u7cbe\u5ea6 \u76f8\u5173 \u65f6 \uff0c \u8fd9\u662f \u6700\u4f73 \u6a21\u5f0f \u3002 \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6216 \u68c0\u7d22 \u4fe1\u606f \u7684 \u4e0d\u540c \u5143\u7d20 \u65f6 \u3002 \u8b66\u544a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8bf7 \u59cb\u7ec8 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5fc5\u987b \u7b49\u5f85 \u7528\u6237 \uff0c \u5e76\u4e14 \u5b83 \u4f7f\u7528 \u7684 \u662f \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \uff0c \u5219 \u65f6\u95f4 \u6b65\u957f \u5c06 \u592a\u5927 \u3002 \u7269\u7406 \u7406\u5b66 \u7269\u7406\u5b66 \u662f \u4e0d \u53ef\u9760 \u7684 \u3002 \u8fd9\u4e2a \u95ee\u9898 \u5728 \u65f6\u95f4 \u6b65\u957f \u9650\u5236 \u90e8\u5206 \u6709 \u66f4\u597d \u7684 \u89e3\u91ca \u3002","title":"\u53ef\u80fd \u7684 \u914d\u7f6e"},{"location":"adv_synchrony_timestep/#_10","text":"Carla \u5728 \u7279\u5b9a \u60c5\u51b5 \u4e0b \u652f\u6301 \u7269\u7406 \u548c \u78b0\u649e \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff1a \u540c\u6b65 \u6a21\u5f0f \u548c \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u5fc5\u987b \u542f\u7528 \uff1a \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8981\u6c42 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5b8c\u5168 \u540c\u6b65 \uff0c \u4ee5 \u786e\u4fdd \u547d\u4ee4 \u88ab \u6b63\u786e \u5e94\u7528 \u5e76 \u4ea7\u751f \u51c6\u786e \u548c \u53ef \u590d\u5236 \u7684 \u7ed3\u679c \u3002 \u5fc5\u987b \u901a\u8fc7 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u6765 \u5f3a\u5236 \u6267\u884c \u5f3a\u5236\u6267\u884c \u6052\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u5982\u679c \u4e0d \u8bbe\u7f6e \uff0c \u65f6\u95f4 \u6b65\u957f \u5c06 \u6839\u636e \u4eff\u771f \u6027\u80fd \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u81ea\u52a8 \u8ba1\u7b97 \u3002 \u5728 \u52a0\u8f7d \u6216 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u4e4b\u524d \uff0c \u5fc5\u987b \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff1a \u5982\u679c \u4e16\u754c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u4e0d \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e0d\u540c \u7684 \u65f6\u95f4 \u6233 \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u5728 \u7269\u7406 \u4eff\u771f \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7b49 \u5bf9\u8c61 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u4e2d \u4ea7\u751f \u5fae\u5c0f \u7684 \u5dee\u5f02 \u3002 \u6bcf \u4e00\u6b21 \u65b0 \u7684 \u91cd\u590d \u90fd \u5fc5\u987b \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \uff1a \u6bcf\u6b21 \u8981 \u91cd\u73b0 \u4eff\u771f \u65f6 \uff0c \u8bf7 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u3002 \u547d\u4ee4 \u5e94\u8be5 \u662f \u5904\u7406 \u6279\u5904\u7406 \u7684 \uff0c \u800c \u4e0d\u662f \u4e00\u6b21 \u53d1\u51fa \u4e00\u4e2a \u547d\u4ee4 \uff1a \u867d\u7136 \u5f88\u5c11 \u89c1 \uff0c \u4f46 \u5728 \u7e41\u5fd9 \u7684 \u4eff\u771f \u6216 \u8fc7\u8f7d \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \uff0c \u5355\u4e2a \u53d1\u51fa \u7684 \u547d\u4ee4 \u53ef\u80fd \u4f1a \u4e22\u5931 \u3002 \u5982\u679c \u547d\u4ee4 \u5728 apply _ batch _ sync \u547d\u4ee4 \u4e2d \u5904\u7406 \u6279\u5904\u7406 \uff0c \u5219 \u4fdd\u8bc1 \u8be5 \u547d\u4ee4 \u88ab \u6267\u884c \u6216 \u8fd4\u56de \u5931\u8d25 \u54cd\u5e94 \u3002 \u4ee5\u4e0b \u662f \u4e0a\u8ff0 \u6b65\u9aa4 \u7684 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings # Set up the traffic manager traffic _ manager = client . get _ trafficmanager ( TM _ PORT ) traffic _ manager . set _ synchronous _ mode ( True ) traffic _ manager . set _ random _ device _ seed ( SEED ) # define TM seed for determinism # Spawn your vehicles , pedestrians , etc . # Simulation loop while True : # Your code world . tick ( ) \u64ad\u653e \u529f\u80fd \u7684 \u4e00\u4e2a \u5177\u4f53 \u793a\u4f8b \uff1a client = carla . Client ( HOST , PORT ) # connect to the server client . set _ timeout ( 10.0 ) world = client . get _ world ( ) # Load the desired map client . load _ world ( \" Town10HD _ Opt \" ) # Set synchronous mode settings new _ settings = world . get _ settings ( ) new _ settings . synchronous _ mode = True new _ settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( new _ settings ) client . reload _ world ( False ) # reload map keeping the world settings client . replay _ file ( FILE _ TO _ PLAY , 0 , 0 , 0 , False ) world . tick ( ) # a tick is necessary for the server to process the replay _ file command # Simulation loop while True : # Your code world . tick ( ) \u8fd0\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u5c06 \u786e\u4fdd \u6bcf\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u7ed3\u679c \u76f8\u540c \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 \u5728 Carla \u4e2d \u7684 \u4f5c\u7528 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u6253\u5f00 Carla \uff0c \u73a9 \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u4efb\u4f55 \u5efa\u8bae \u6216 \u7591\u95ee \u3002 Carla forum","title":"\u7269\u7406 \u786e\u5b9a\u6027"},{"location":"adv_traffic_manager/","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ec0\u4e48 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f \u7ed3\u6784 \u7ed3\u6784\u5316 \u8bbe\u8ba1 \u7528\u6237 \u5b9a\u5236 \u67b6\u6784 \u6982\u8ff0 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4eff\u771f \u72b6\u6001 \u63a7\u5236 \u5faa\u73af \u5185\u5b58 \u5730\u56fe \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 PID \u63a7\u5236 \u63a7\u5236\u5668 \u547d\u4ee4 \u6570\u7ec4 \u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u884c\u4e3a \u8003\u8651 \u56e0\u7d20 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u914d\u7f6e \u81ea\u52a8 \u9a7e\u9a76 \u884c\u4e3a \u505c\u6b62 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u591a\u91cd \u4eff\u771f \u540c\u6b65 \u6a21\u5f0f \u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ec0\u4e48 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 ( Traffic Manager , TM ) \u662f \u5728 \u4eff\u771f \u4e2d\u4ee5 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u63a7\u5236 \u8f66\u8f86 \u7684 \u6a21\u5757 \u3002 \u5176 \u76ee\u6807 \u662f \u5728 \u4eff\u771f \u4e2d \u586b\u5145 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u7528\u6237 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u884c\u4e3a \uff0c \u4f8b\u5982 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002 \u7ed3\u6784 \u7ed3\u6784\u5316 \u8bbe\u8ba1 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6784\u5efa \u4e8e Carla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u4e0a \u3002 \u6267\u884c \u6d41\u7a0b \u5206\u4e3a \u591a\u4e2a \u9636\u6bb5 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u6709 \u72ec\u7acb \u7684 \u64cd\u4f5c \u548c \u76ee\u6807 \u3002 \u8fd9 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u76f8\u4f4d \u76f8\u5173 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u7684 \u5f00\u53d1 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u4e0e \u5176\u4ed6 \u9636\u6bb5 \u7684 \u901a\u4fe1 \u901a\u8fc7 \u540c\u6b65 \u6d88\u606f \u4f20\u9012 \u6d88\u606f\u4f20\u9012 \u8fdb\u884c \u7ba1\u7406 \u3002 \u4fe1\u606f \u671d \u4e00\u4e2a \u65b9\u5411 \u6d41\u52a8 \u3002 \u7528\u6237 \u5b9a\u5236 \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u8bbe\u7f6e \u5141\u8bb8 \u3001 \u5f3a\u5236 \u6216 \u9f13\u52b1 \u7279\u5b9a \u884c\u4e3a \u7684 \u53c2\u6570 \u6765 \u5bf9 \u6d41\u91cf \u8fdb\u884c \u4e00\u5b9a \u7a0b\u5ea6 \u7684 \u63a7\u5236 \u3002 \u7528\u6237 \u53ef\u4ee5 \u6839\u636e \u81ea\u5df1 \u7684 \u559c\u597d \u6539\u53d8 \u6d41\u91cf \u884c\u4e3a \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728\u7ebf \u8fd8\u662f \u79bb\u7ebf \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u5141\u8bb8 \u6c7d\u8f66 \u5ffd\u7565 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u6216 \u5f3a\u5236 \u53d8\u9053 \u3002 \u5728 \u5c1d\u8bd5 \u4eff\u771f \u73b0\u5b9e \u65f6 \uff0c \u80fd\u591f \u5c1d\u8bd5 \u5404\u79cd \u884c\u4e3a \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u9a7e\u9a76 \u7cfb\u7edf \u9700\u8981 \u5728 \u7279\u5b9a \u548c \u975e\u5178 \u5178\u578b \u975e\u5178\u578b \u60c5\u51b5 \u4e0b \u8fdb\u884c \u8bad\u7ec3 \u3002 \u67b6\u6784 \u6982\u8ff0 \u4e0a\u56fe \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5185\u90e8 \u67b6\u6784 \u793a\u610f \u610f\u56fe \u793a\u610f\u56fe \u3002 \u6bcf\u4e2a \u7ec4\u4ef6 \u7684 C++ \u4ee3\u7801 \u53ef\u4ee5 \u5728 LibCarla / source / carla / trafficmanager \u4e2d \u627e\u5230 \u3002 \u4ee5\u4e0b \u5404\u8282 \u8be6\u7ec6 \u89e3\u91ca \u4e86 \u6bcf\u4e2a \u7ec4\u4ef6 \u3002 \u903b\u8f91 \u6982\u8ff0 \u5982\u4e0b \uff1a 1 . \u5b58\u50a8 \u5e76 \u66f4\u65b0 \u4eff\u771f \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 ( Agent Lifecycle & State Management , ALSM ) \u626b\u63cf \u4e16\u754c \uff0c \u8ddf\u8e2a \u6240\u6709 \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u5e76 \u6e05\u7406 \u4e0d\u518d \u5b58\u5728 \u7684 \u6761\u76ee \u3002 \u6240\u6709 \u6570\u636e \u5747 \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u68c0\u7d22 \u5e76 \u7ecf\u8fc7 \u591a\u4e2a \u9636\u6bb5 \u3002 ALSM \u662f \u552f\u4e00 \u8c03\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7ec4\u4ef6 \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \u7684 \u8f66\u8f86 \uff08 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \uff09 \u4ee5\u53ca \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u4e0d \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \uff08 \u4e0d \u53d7 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u63a7\u5236 \uff09 \u7684 \u884c\u4eba \u548c \u8f66\u8f86 \u3002 \u4eff\u771f \u72b6\u6001 \u662f \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \u7684 \u7f13\u5b58 \u5b58\u50a8 \u3002 2 . \u8ba1\u7b97 \u6bcf\u8f86 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6839\u636e \u4eff\u771f \u72b6\u6001 \u4e3a \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u751f\u6210 \u53ef\u884c \u7684 \u547d\u4ee4 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8ba1\u7b97 \u90fd \u662f \u5355\u72ec \u8fdb\u884c \u7684 \u3002 \u8fd9\u4e9b \u8ba1\u7b97 \u5206\u4e3a \u4e0d\u540c \u7684 \u9636\u6bb5 \u3002 \u63a7\u5236 \u5faa\u73af \u901a\u8fc7 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u6765 \u786e\u4fdd \u6240\u6709 \u8ba1\u7b97 \u7684 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u5728 \u5f53\u524d \u9636\u6bb5 \u7684 \u6240\u6709 \u8f66\u8f86 \u8ba1\u7b97 \u5b8c\u6210 \u4e4b\u524d \uff0c \u6ca1\u6709 \u8f66\u8f86 \u8fdb\u5165 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u4f1a \u7ecf\u5386 \u4ee5\u4e0b \u9636\u6bb5 \uff1a 2.1 - \u5b9a\u4f4d \u9636\u6bb5 \u8def\u5f84 \u662f \u4f7f\u7528 \u4ece \u5185\u5b58 \u5730\u56fe \u4e2d \u6536\u96c6 \u7684 \u9644\u8fd1 \u8def\u5f84 \u70b9 \u5217\u8868 \u52a8\u6001 \u521b\u5efa \u52a8\u6001\u521b\u5efa \u7684 \uff0c \u5185\u5b58 \u5730\u56fe \u662f \u4eff\u771f \u5730\u56fe \u4f5c\u4e3a \u8def\u5f84 \u70b9 \u7f51\u683c \u7684 \u7b80\u5316 \u3002 \u8def\u53e3 \u7684 \u65b9\u5411 \u662f \u968f\u673a \u9009\u62e9 \u7684 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u5747 \u7531 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 ( Path Buffers & Vehicle Tracking , PBVT ) \u7ec4\u4ef6 \u5b58\u50a8 \u548c \u7ef4\u62a4 \uff0c \u4ee5\u4fbf \u5728 \u672a\u6765 \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 2.2 - \u78b0\u649e \u9636\u6bb5 \u8fb9\u754c \u6846 \u5ef6\u4f38 \u5230 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u4e0a \uff0c \u4ee5 \u8bc6\u522b \u548c \u5bfc\u822a \u6f5c\u5728 \u7684 \u78b0\u649e \u5371\u9669 \u3002 2.3 - \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 . \u4e0e \u78b0\u649e \u9636\u6bb5 \u7c7b\u4f3c \uff0c \u4f1a \u8bc6\u522b \u7531\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u7ea7 \u800c \u5f71\u54cd \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8def\u5f84 \u7684 \u6f5c\u5728 \u5371\u9669 \u3002 2.4 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 . \u8f66\u8f86 \u8fd0\u52a8 \u662f \u6839\u636e \u5b9a\u4e49 \u7684 \u8def\u5f84 \u8ba1\u7b97 \u7684 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u786e\u5b9a \u5982\u4f55 \u5230\u8fbe \u76ee\u6807 \u8def\u5f84 \u70b9 \u3002 \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a Carla \u547d\u4ee4 \u4ee5\u4f9b \u4e0b \u4e00\u6b65 \u5e94\u7528 \u3002 2.5 - \u8f66\u706f \u9636\u6bb5 . \u8f66\u706f \u6839\u636e \u73af\u5883 \u56e0\u7d20 \u73af\u5883\u56e0\u7d20 \uff08 \u4f8b\u5982 \u9633\u5149 \u548c \u96fe \u6216 \u96e8 \u7684 \u5b58\u5728 \uff09 \u548c \u8f66\u8f86 \u884c\u4e3a \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u8f66\u8f86 \u5c06 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u65b9\u5411 \u6307\u793a \u6307\u793a\u706f \uff1b \u5982\u679c \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \uff09 \u3002 3 . \u5728 \u4eff\u771f \u4e2d \u5e94\u7528 \u547d\u4ee4 \u4e0a \u4e00\u6b65 \u751f\u6210 \u7684 \u547d\u4ee4 \u88ab \u6536\u96c6 \u5230 \u547d\u4ee4 \u6570\u7ec4 \u4e2d \uff0c \u6279\u91cf \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5728 \u540c\u4e00 \u5e27 \u4e2d \u5e94\u7528 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u4e0a\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u4e2d \u7684 \u6bcf\u4e2a \u7ec4\u4ef6 \u548c \u9636\u6bb5 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u3002 \u5b83 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u5468\u671f \u7684 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u63d0\u4f9b \u4eff\u771f \u5f53\u524d \u72b6\u6001 \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u7ec4\u4ef6 \uff1a \u626b\u63cf \u4e16\u754c \u4ee5 \u8ddf\u8e2a \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u5982\u679c \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff0c \u5219 \u901a\u8fc7 Vehicle . get _ velocity ( ) \u68c0\u7d22 \u901f\u5ea6 \u3002 \u5426\u5219 \uff0c \u5c06 \u4f7f\u7528 \u4f4d\u7f6e \u968f \u65f6\u95f4 \u66f4\u65b0 \u7684 \u5386\u53f2 \u53f2\u8bb0 \u8bb0\u5f55 \u5386\u53f2\u8bb0\u5f55 \u6765 \u8ba1\u7b97 \u901f\u5ea6 \u8ba1\u7b97\u901f\u5ea6 \u3002 \u5b58\u50a8 \u4eff\u771f \u72b6\u6001 \u7ec4\u4ef6 \u4e2d \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u8fb9\u754c \u6846\u7b49 \uff09 \u3002 \u66f4\u65b0 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5217\u8868 \u3002 \u66f4\u65b0 \u63a7\u5236 \u5faa\u73af \u548c \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u7ec4\u4ef6 \u4e2d \u7684 \u6761\u76ee \u4ee5 \u5339\u914d \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a ALSM . h , ALSM . cpp . \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u8bb0\u5f55 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u4f20\u9012 \u6765 \u6700\u65b0 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u5217\u8868 \u3002 \u5c06 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u8f66\u8f86 \u5b58\u50a8 \u5728 \u5355\u72ec \u7684 \u6570\u7ec4 \u4e2d \uff0c \u4ee5\u4fbf \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8fdb\u884c \u8fed\u4ee3 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a MotionPlannerStage . cpp . \u4eff\u771f \u72b6\u6001 \u4eff\u771f \u72b6\u6001 \u5b58\u50a8 \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u4ee5\u4fbf \u5728 \u540e\u671f \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 \u4eff\u771f \u72b6\u6001 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff0c \u5305\u62ec \u5f53\u524d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7b49 \u3002 \u5c06 \u6240\u6709 \u4fe1\u606f \u5b58\u50a8 \u5728 \u7f13\u5b58 \u4e2d \uff0c \u907f\u514d \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u5bf9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u540e\u7eed \u8c03\u7528 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a SimulationState . cpp , SimulationState . h . \u63a7\u5236 \u5faa\u73af \u63a7\u5236 \u5faa\u73af \u7ba1\u7406 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u4e0b \u4e00\u4e2a \u547d\u4ee4 \u7684 \u8ba1\u7b97 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u540c\u6b65 \u6267\u884c \u3002 \u63a7\u5236 \u5faa\u73af \u7531 \u4e94\u4e2a \u4e0d\u540c \u7684 \u9636\u6bb5 \u7ec4\u6210 ; \u5b9a\u4f4d \uff0c \u78b0\u649e \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u8fd0\u52a8 \u89c4\u5212 \u548c \u8f66\u8f86 \u706f \u3002 \u63a7\u5236 \u5faa\u73af : \u4ece \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u63a5\u6536 TM - \u63a7\u5236 \u7684 \u8f66\u8f86 \u6570\u7ec4 \u3002 \u901a\u8fc7 \u5faa\u73af \u904d\u5386 \u6570\u7ec4 \uff0c \u5206\u522b \u5bf9 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6267\u884c \u8ba1\u7b97 \u3002 \u5c06 \u8ba1\u7b97 \u5206\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7684 \u9636\u6bb5 \u3002 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u4ee5 \u4fdd\u8bc1 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u6240\u6709 \u8f66\u8f86 \u7684 \u8ba1\u7b97 \u5728 \u4efb\u4f55 \u8f66\u8f86 \u79fb\u52a8 \u5230 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u4e4b\u524d \u5b8c\u6210 \uff0c \u786e\u4fdd \u6240\u6709 \u8f66\u8f86 \u5728 \u540c\u4e00 \u5e27 \u4e2d \u66f4\u65b0 \u3002 \u534f\u8c03 \u5404 \u9636\u6bb5 \u4e4b\u95f4 \u7684 \u8fc7\u6e21 \uff0c \u4f7f \u6240\u6709 \u8ba1\u7b97 \u540c\u6b65 \u5b8c\u6210 \u3002 \u5f53 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 ( \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u548c \u8f66\u8f86 \u706f\u5149 \u9636\u6bb5 ) \u5b8c\u6210 \u65f6 \uff0c \u5c06 \u547d\u4ee4 \u6570\u7ec4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u56e0\u6b64 \u5728 \u547d\u4ee4 \u8ba1\u7b97 \u548c \u547d\u4ee4 \u5e94\u7528 \u4e4b\u95f4 \u6ca1\u6709 \u5e27 \u5ef6\u8fdf \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp . \u5185\u5b58 \u5730\u56fe \u5185\u5b58 \u5730\u56fe \u662f \u5305\u542b \u5728 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u4e2d \u7684 \u8f85\u52a9 \u6a21\u5757 \uff0c \u5728 \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u3002 \u5185\u5b58 \u5730\u56fe : \u5c06 \u5730\u56fe \u8f6c\u6362 \u4e3a \u79bb\u6563 \u8def\u5f84 \u70b9 \u7684 \u7f51\u683c \u3002 \u5305\u542b \u7279\u5b9a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u4e2d \u7684 \u8def\u70b9 \uff0c \u5e76 \u63d0\u4f9b \u66f4 \u591a \u4fe1\u606f \u6765 \u8fde\u63a5 \u8def\u70b9 \u548c \u8bc6\u522b \u9053\u8def \u3001 \u8def\u53e3 \u7b49 \u3002 \u901a\u8fc7 \u8bc6\u522b \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 ID \u6765 \u5feb\u901f \u5b9a\u4f4d \u9644\u8fd1 \u533a\u57df \u7684 \u8f66\u8f86 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : InMemoryMap . cpp and SimpleWaypoint . cpp . PBVT PBVT \u4ee3\u8868 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u3002 PBVT \u662f \u4e00\u79cd \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5b83 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u9884\u671f \u8def\u5f84 \uff0c \u5e76 \u5141\u8bb8 \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8f7b\u677e \u8bbf\u95ee \u6570\u636e \u3002 PBVT : \u5305\u542b \u4e00\u4e2a deque \u5bf9\u8c61 \u7684 \u5730\u56fe \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6709 \u4e00\u4e2a \u5165\u53e3 \u3002 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u4e00\u7ec4 \u8def\u70b9 \uff0c \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u5305\u542b \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u7684 \u5185\u5b58 \u5730\u56fe \uff0c \u7528\u4e8e \u5c06 \u6bcf\u4e2a \u8f66\u8f86 \u4e0e \u6700\u8fd1 \u7684 \u8def\u70b9 \u548c \u53ef\u80fd \u7684 \u91cd\u53e0 \u8def\u5f84 \u5173\u8054 \u8d77\u6765 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u5728 \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6267\u884c \u8ba1\u7b97 \u7684 \u8f85\u52a9 \u6a21\u5757 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 : \u6839\u636e \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6536\u96c6 \u7684 \u4fe1\u606f \uff0c \u4f30\u7b97 \u8fbe\u5230 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u6240 \u9700 \u7684 \u6cb9\u95e8 \u3001 \u5239\u8f66 \u548c \u8f6c\u5411 \u8f93\u5165 \u3002 \u6839\u636e \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5177\u4f53 \u53c2\u6570 \u5316 \u8fdb\u884c \u8c03\u6574 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4fee\u6539 \u53c2\u6570 \u3002 \u9605\u8bfb \u66f4 \u591a \u5173\u4e8e PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u4fe1\u606f \uff0c \u4e86\u89e3 \u5982\u4f55 \u8fdb\u884c \u4fee\u6539 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : PIDController . cpp . \u547d\u4ee4 \u6570\u7ec4 \u547d\u4ee4 \u6570\u7ec4 \u8868\u793a TM \u903b\u8f91 \u5468\u671f \u4e2d \u7684 \u6700\u540e \u4e00\u6b65 \u3002 \u5b83 \u63a5\u6536 \u6240\u6709 \u6ce8\u518c \u8f66\u8f86 \u7684 \u547d\u4ee4 \u5e76 \u5e94\u7528 \u5b83\u4eec \u3002 \u547d\u4ee4 \u6570\u7ec4 : \u4ece \u8def\u5f84 \u89c4\u5212 \u9636\u6bb5 \u63a5\u6536 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . VehicleControl \u3002 \u5904\u7406 \u6279\u5904\u7406 \u8981 \u5728 \u540c\u4e00 \u5e27 \u5185 \u5e94\u7528 \u7684 \u6240\u6709 \u547d\u4ee4 \u3002 \u5c06 \u5904\u7406 \u6279\u5904\u7406 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5728 carla \u4e2d \u8c03\u7528 apply _ batch \uff08 \uff09 \u6216 apply _ batch _ synch \uff08 \uff09 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4eff\u771f \u662f \u5206\u522b \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd8\u662f \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp . \u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5 \u7b2c 1 \u9636\u6bb5 - \u5b9a\u4f4d \u9636\u6bb5 \u5b9a\u4f4d \u9636\u6bb5 \u4e3a TM \u63a7\u5236 \u7684 \u8f66\u8f86 \u5b9a\u4e49 \u4e86 \u8fd1 \u672a\u6765 \u7684 \u8def\u5f84 \u3002 \u672c\u5730 \u672c\u5730\u5316 \u9636\u6bb5 \uff1a \u4ece \u4eff\u771f \u72b6\u6001 \u83b7\u53d6 \u6240\u6709 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u4f7f\u7528 \u5185\u5b58 \u5730\u56fe \u5c06 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u4e0e \u822a\u70b9 \u5217\u8868 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \uff0c \u8be5 \u822a\u70b9 \u5217\u8868 \u6839\u636e \u5176 \u8f68\u8ff9 \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u8f66\u8f86 \u884c\u9a76 \u5f97 \u8d8a \u5feb \uff0c \u5217\u8868 \u5c31 \u8d8a\u957f \u3002 \u6839\u636e \u89c4\u5212 \u51b3\u7b56 \u66f4\u65b0 \u8def\u5f84 \uff0c \u4f8b\u5982 \u53d8\u9053 \u3001 \u9650\u901f \u3001 \u4e0e \u524d\u65b9 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u53c2\u6570 \u5316\u7b49 \u3002 \u5c06 \u6240\u6709 \u8f66\u8f86 \u7684 \u8def\u5f84 \u5b58\u50a8 \u5728 PBVT \u6a21\u5757 \u4e2d \u3002 \u76f8\u4e92 \u6bd4\u8f83 \u8def\u5f84 \u4ee5 \u4f30\u8ba1 \u53ef\u80fd \u7684 \u78b0\u649e \u60c5\u51b5 \u3002 \u7ed3\u679c \u5c06 \u4f20\u9012 \u5230 \u78b0\u649e \u9636\u6bb5 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : LocalizationStage . cpp and LocalizationUtils . cpp . \u7b2c 2 \u9636\u6bb5 - \u78b0\u649e \u9636\u6bb5 \u78b0\u649e \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u78b0\u649e \u5371\u9669 \u3002 \u78b0\u649e \u9636\u6bb5 \uff1a \u4ece \u5b9a\u4f4d \u9636\u6bb5 \u63a5\u6536 \u8def\u5f84 \u53ef\u80fd \u91cd\u53e0 \u7684 \u8f66\u8f86 \u5bf9 \u5217\u8868 \u3002 \u524d\u65b9 \u8def\u5f84 \uff08 \u5730\u7ebf \u6d4b\u5730\u7ebf \u8fb9\u754c \uff09 \u6269\u5c55 \u6bcf\u4e2a \u8f66\u8f86 \u5bf9 \u7684 \u8fb9\u754c \u6846 \uff0c \u4ee5 \u68c0\u67e5 \u5b83\u4eec \u662f\u5426 \u5b9e\u9645 \u91cd\u53e0 \u5e76 \u786e\u5b9a \u78b0\u649e \u98ce\u9669 \u662f\u5426 \u771f\u5b9e \u3002 \u5c06 \u6240\u6709 \u53ef\u80fd \u7684 \u78b0\u649e \u7684 \u5371\u9669 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff0c \u4ee5 \u76f8\u5e94 \u5730 \u4fee\u6539 \u8def\u5f84 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : CollisionStage . cpp . \u7b2c\u4e09 \u4e09\u9636 \u9636\u6bb5 \u7b2c\u4e09\u9636\u6bb5 - \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u5668 \u9020\u6210 \u7684 \u5371\u9669 \uff0c \u4f8b\u5982 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u7684 \u4f18\u5148 \u4f18\u5148\u6743 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff1a \u5982\u679c \u8f66\u8f86 \u53d7\u5230 \u9ec4\u8272 \u6216 \u7ea2\u8272 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6216 \u505c\u8f66 \u6807\u5fd7 \u7684 \u5f71\u54cd \uff0c \u5219 \u8bbe\u7f6e \u4ea4\u901a \u5371\u9669 \u3002 \u5982\u679c \u8fb9\u754c \u6846 \u4f4d\u4e8e \u65e0 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \uff0c \u5219 \u6cbf \u8f66\u8f86 \u8def\u5f84 \u5ef6\u4f38 \u8fb9\u754c \u6846 \u3002 \u8def\u5f84 \u91cd\u53e0 \u7684 \u8f66\u8f86 \u9075\u5faa \u201c \u5148\u8fdb \u5148\u8fdb\u5148\u51fa \u201d \u7684 \u987a\u5e8f \u79fb\u52a8 \u3002 \u7b49\u5f85 \u65f6\u95f4 \u7b49\u5f85\u65f6\u95f4 \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u56fa\u5b9a\u503c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficLightStage . cpp . \u7b2c 4 \u9636\u6bb5 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \u201c \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \u201d \uff08 Motion Planner Stage \uff09 \u751f\u6210 \u8981 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 Carla \u547d\u4ee4 \u3002 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff1a \u6536\u96c6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \uff08 \u4eff\u771f \u72b6\u6001 ) \uff09 \u3001 \u8def\u5f84 \uff08 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \uff09 \u548c \u5371\u9669 \uff08 \u78b0\u649e \u9636\u6bb5 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \uff09 \u3002 \u5bf9 \u8f66\u8f86 \u5e94 \u5982\u4f55 \u79fb\u52a8 \u505a\u51fa \u9ad8\u7ea7 \u51b3\u7b56 \uff0c \u4f8b\u5982 \uff0c \u8ba1\u7b97 \u9632\u6b62 \u78b0\u649e \u5371\u9669 \u6240 \u9700 \u7684 \u5236\u52a8 \u5236\u52a8\u5668 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7528\u4e8e \u6839\u636e \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u4f30\u8ba1 \u884c\u4e3a \u3002 \u5c06 \u671f\u671b \u7684 \u8fd0\u52a8 \u8f6c\u5316 \u4e3a \u9002\u7528 \u4e8e \u8f66\u8f86 \u7684 carla . VehicleControl \u3002 \u5c06 \u751f\u6210 \u7684 Carla \u547d\u4ee4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u547d\u4ee4 \u6570\u7ec4 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : MotionPlannerStage . cpp . \u7b2c 5 \u9636\u6bb5 - \u8f66\u706f \u9636\u6bb5 \u8f66\u706f \u9636\u6bb5 \u6839\u636e \u8f66\u8f86 \u72b6\u51b5 \u548c \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u6fc0\u6d3b \u8f66\u706f \u3002 \u200b \u8f66\u706f \u9636\u6bb5 : \u68c0\u7d22 \u8f66\u8f86 \u7684 \u8ba1\u5212 \u822a\u70b9 \u3001 \u6709\u5173 \u8f66\u8f86 \u706f\u5149 \u7684 \u4fe1\u606f \uff08 \u4f8b\u5982 \u706f\u5149 \u72b6\u6001 \u548c \u8ba1\u5212 \u5e94\u7528 \u7684 \u547d\u4ee4 \uff09 \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u786e\u5b9a \u8f66\u706f \u7684 \u65b0 \u72b6\u6001 : \u5982\u679c \u8f66\u8f86 \u8ba1\u5212 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3002 \u5982\u679c \u5e94\u7528 \u7684 \u547d\u4ee4 \u8981\u6c42 \u8f66\u8f86 \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u505c\u8f66 \u8f66\u706f \u505c\u8f66\u706f \u3002 \u4ece \u65e5 \u843d\u5230 \u9ece\u660e \u6216 \u5728 \u5927\u96e8 \u4e2d \u6253\u5f00 \u5149\u706f \u8fd1\u5149\u706f \u548c \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u5728 \u5927\u96fe \u6761\u4ef6 \u4e0b \u6253\u5f00 \u96fe\u706f \u3002 \u5982\u679c \u8f66\u706f \u72b6\u6001 \u5df2 \u66f4\u6539 \uff0c \u8bf7 \u66f4\u65b0 \u8f66\u706f \u72b6\u6001 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : VehicleLightStage . cpp . \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u884c\u4e3a \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 TM \u5b9e\u73b0 \u4e86 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u65f6 \u5fc5\u987b \u8003\u8651 \u7684 \u4e00\u822c \u884c\u4e3a \u6a21\u5f0f \uff1a \u8f66\u8f86 \u4e0d\u662f \u4ee5 \u76ee\u6807 \u4e3a \u5bfc\u5411 \u7684 \uff0c \u5b83\u4eec \u9075\u5faa \u52a8\u6001 \u4ea7\u751f \u7684 \u8f68\u8ff9 \uff0c \u5e76 \u5728 \u63a5\u8fd1 \u8def\u53e3 \u65f6 \u968f\u673a \u9009\u62e9 \u8def\u5f84 \u3002 \u4ed6\u4eec \u7684 \u9053\u8def \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u7684 \u3002 \u9664\u975e \u8bbe\u7f6e \u4e86 \u4efb\u4f55 \u5176\u4ed6 \u503c \uff0c \u5426\u5219 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u662f \u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 70% \u3002 \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u6743 \u4e0d \u9075\u5b88 \u4ea4\u901a \u6cd5\u89c4 \u4ea4\u901a\u6cd5\u89c4 \u3002 TM \u5728 \u8def\u53e3 \u4f7f\u7528 \u81ea\u5df1 \u7684 \u4f18\u5148 \u4f18\u5148\u7ea7 \u7cfb\u7edf \u3002 \u6b64 \u9650\u5236 \u7684 \u89e3\u51b3 \u5de5\u4f5c \u6b63\u5728 \u8fdb\u884c \u4e2d \u3002 \u540c\u65f6 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \uff0c \u4f8b\u5982 \uff0c \u73af\u5f62 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5185 \u7684 \u8f66\u8f86 \u8ba9\u6b65 \u7ed9 \u8bd5\u56fe \u8fdb\u5165 \u7684 \u8f66\u8f86 \u3002 TM \u884c\u4e3a \u53ef\u4ee5 \u901a\u8fc7 Python API \u8fdb\u884c \u8c03\u6574 \u3002 \u6709\u5173 \u5177\u4f53 \u65b9\u6cd5 \u5177\u4f53\u65b9\u6cd5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u6587\u6863 \u7684 TM \u90e8\u5206 \u3002 \u4ee5\u4e0b \u662f \u901a\u8fc7 API \u5b9e\u73b0 \u7684 \u529f\u80fd \u7684 \u4e00\u822c \u6458\u8981 \uff1a \u4e3b\u9898 \u63cf\u8ff0 \u5e38\u89c4 : - \u521b\u5efa \u8fde\u63a5 \u5230 \u7aef\u53e3 \u7684 TM \u5b9e\u4f8b \u3002 - \u68c0\u7d22 TM \u8fde\u63a5 \u7684 \u7aef\u53e3 \u3002 \u5b89\u5168 \u6761\u4ef6 : - \u8bbe\u7f6e \u505c\u6b62 \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216\u8005 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 \u8fd9 \u5c06 \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 - \u5c06 \u6240 \u9700 \u901f\u5ea6 \u8bbe\u7f6e \u4e3a \u5f53\u524d \u901f\u5ea6 \u73b0\u72b6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 - \u91cd\u7f6e \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u78b0\u649e \u7ba1\u7406 : - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u4e0e \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u5176\u4ed6 \u8f66\u8f86 \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53d8\u9053 : - \u5f3a\u5236 \u53d8\u9053 \uff0c \u5ffd\u7565 \u53ef\u80fd \u7684 \u78b0\u649e \u3002 - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u7684 \u53d8\u9053 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : - \u542f\u7528 / \u7981\u7528 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u3002 - \u66f4\u6539 \u542f\u7528 \u7269\u7406 \u7684 \u534a\u5f84 \u3002 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7b14\u8bb0 TM \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 TM \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540c\u6b65 \u6a21\u5f0f \u3002 TM \u5b9e\u4f8b \u7531 carla \u521b\u5efa . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u4f20\u9012 \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7f3a\u7701 \u7aef\u53e3 \u4e3a 8000 \u3002 \u8981 \u521b\u5efa TM \u5b9e\u4f8b \uff1a tm = client . get _ trafficmanager ( port ) \u8981 \u4e3a \u4e00\u7ec4 \u8f66\u8f86 \u542f\u7528 autopilot \uff0c \u8bf7 \u68c0\u7d22 TM \u5b9e\u4f8b \u7684 \u7aef\u53e3 \u5e76 \u8bbe\u7f6e set _ autopilot \u4e3a True \uff0c \u540c\u65f6 \u4f20\u9012 TM \u7aef\u53e3 \u3002 \u5982\u679c \u672a \u63d0\u4f9b \u7aef\u53e3 \uff0c \u5b83 \u5c06 \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 8000 \uff09 \u4e2d \u7684 TM \u3002 \u5982\u679c TM \u4e0d \u5b58\u5728 \uff0c \u5b83 \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 tm _ port = tm . get _ port ( ) for v in vehicles _ list : v . set _ autopilot ( True , tm _ port ) \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \u521b\u5efa \u6216 \u8fde\u63a5 \u5230 TM \u4e0e \u4e0a\u8ff0 \u793a\u4f8b \u4e0d\u540c \u3002 / PythonAPI / examples \u4e2d \u7684 generate _ traffic . py \u811a\u672c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u7aef\u53e3 \u521b\u5efa TM \u5b9e\u4f8b \uff0c \u5e76 \u901a\u8fc7 \u6279\u91cf \u5c06 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u8bbe\u7f6e \u4e3a \u4ee5\u4e0b \u503c\u6765 \u6ce8\u518c \u751f\u6210 \u7684 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u3002 traffic _ manager = client . get _ trafficmanager ( args . tm - port ) tm _ port = traffic _ manager . get _ port ( ) ... batch . append ( SpawnActor ( blueprint , transform ) . then ( SetAutopilot ( FutureActor , True , tm _ port ) ) ) ... traffic _ manager . global _ percentage _ speed _ difference ( 30.0 ) \u914d\u7f6e autopilot \u884c\u4e3a \u4ee5\u4e0b \u793a\u4f8b \u521b\u5efa \u4e00\u4e2a TM \u5b9e\u4f8b \uff0c \u5e76 \u4e3a \u7279\u5b9a \u8f66\u8f86 \u914d\u7f6e \u5371\u9669 \u884c\u4e3a \uff0c \u4f7f \u5176 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u4e0d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4fdd\u6301 \u5b89\u5168 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u6bd4 \u5f53\u524d \u9650\u901f \u5feb 20% \u7684 \u901f\u5ea6 \u884c\u9a76 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . ignore _ lights _ percentage ( danger _ car , 100 ) tm . distance _ to _ leading _ vehicle ( danger _ car , 0 ) tm . vehicle _ percentage _ speed _ difference ( danger _ car , - 20 ) \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u76f8\u540c \u7684 \u8f66\u8f86 \u5217\u8868 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \uff0c \u4f46 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u9002\u5ea6 \u9a7e\u9a76 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u884c\u9a76 \u901f\u5ea6 \u6bd4 \u5f53\u524d \u9650\u901f \u6162 80% \uff0c \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4e4b\u95f4 \u81f3\u5c11 \u7559\u51fa 5 \u7c73 \u7684 \u8ddd\u79bb \uff0c \u5e76\u4e14 \u4ece\u4e0d \u8fdb\u884c \u53d8\u9053 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . global _ distance _ to _ leading _ vehicle ( 5 ) tm . global _ percentage _ speed _ difference ( 80 ) for v in my _ vehicles : tm . auto _ lane _ change ( v , False ) \u59d4\u6d3e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \u8f66\u706f \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c TM \u7ba1\u7406 \u7684 \u8f66\u8f86 \u7684 \u8f66\u706f \uff08 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u8f6c\u5411 \u8f6c\u5411\u706f \u7b49 \uff09 \u6c38\u8fdc \u4e0d\u4f1a \u66f4\u65b0 \u3002 \u53ef\u4ee5 \u59d4\u6258 TM \u6765 \u66f4\u65b0 \u7ed9\u5b9a \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8f66\u706f \uff1a tm = client . get _ trafficmanager ( port ) for actor in my _ vehicles : tm . update _ vehicle _ lights ( actor , True ) \u8f66\u706f \u7ba1\u7406 \u5fc5\u987b \u6309 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8fdb\u884c \u6307\u5b9a \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u7ed9\u5b9a \u65f6\u95f4 \u90fd \u53ef\u4ee5 \u6709 \u5e26 \u548c \u4e0d\u5e26 \u81ea\u52a8 \u706f \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u505c\u6b62 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 TM \u4e0d\u662f \u4e00\u4e2a \u9700\u8981 \u88ab \u6467\u6bc1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 ; \u5f53 \u521b\u5efa \u5b83 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u505c\u6b62 \u65f6 \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002 \u8fd9 \u662f \u7531 API \u81ea\u52a8 \u7ba1\u7406 \u7684 \uff0c \u7528\u6237 \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 \u4f46\u662f \uff0c \u5728 \u5173\u95ed TM \u65f6 \uff0c \u7528\u6237 \u5fc5\u987b \u6467\u6bc1 \u7531 \u5b83 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u5728 \u5730\u56fe \u4e0a \u4fdd\u6301 \u4e0d \u52a8 \u3002 generate _ traffic . py \u811a\u672c \u4f1a \u81ea\u52a8 \u6267\u884c \u6b64 \u64cd\u4f5c : client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) \u7b14\u8bb0 \u5173\u95ed TM - Server \u5c06 \u5173\u95ed \u8fde\u63a5 \u5230 \u5b83 \u7684 TM - Clients \u3002 \u8981 \u4e86\u89e3 TM - Server \u548c TM - Client \u4e4b\u95f4 \u7684 \u533a\u522b , \u8bf7 \u9605\u8bfb Running multiple Traffic Managers \u3002 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u5728 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e0b \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u5728 \u76f8\u540c \u6761\u4ef6 \u4e0b \u4ea7\u751f \u76f8\u540c \u7684 \u7ed3\u679c \u548c \u884c\u4e3a \u3002 \u4e0d\u8981 \u5c06 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8bba \u8bef\u8ba4 \u8ba4\u4e3a \u8bef\u8ba4\u4e3a \u662f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u867d\u7136 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u60a8 \u5b58\u50a8 \u4eff\u771f \u65e5\u5fd7 \u4ee5 \u8fdb\u884c \u56de\u653e \uff0c \u4f46 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u53ef \u786e\u4fdd \u53ea\u8981 \u7ef4\u6301 \u76f8\u540c \u7684 \u6761\u4ef6 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u811a\u672c \u7684 \u4e0d\u540c \u6267\u884c \u8fc7\u7a0b \u4e2d \u59cb\u7ec8 \u5177\u6709 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4ec5 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u53ef\u7528 \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u8f83 \u5c11 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5b9e\u73b0 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 \u5728 \u5f00\u59cb \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u540c\u6b65 \u6a21\u5f0f \u90e8\u5206 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8981 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \uff1a my _ tm . set _ random _ device _ seed ( seed _ value ) seed _ value \u662f \u4e00\u4e2a \u5c06 \u751f\u6210 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u7684 \u6570\u5b57 \u7684 int \u79cd\u5b50 \u79cd\u5b50\u6570 \u3002 \u8be5\u503c \u672c\u8eab \u5e76 \u4e0d \u76f8\u5173 \uff0c \u4f46 \u76f8\u540c \u7684 \u503c \u5c06 \u59cb\u7ec8 \u5bfc\u81f4 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u5177\u6709 \u76f8\u540c \u6761\u4ef6 \u3001 \u4f7f\u7528 \u76f8\u540c \u79cd\u5b50 \u503c \u7684 \u4e24\u6b21 \u4eff\u771f \u5c06 \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \u3002 \u4e3a\u4e86 \u4fdd\u6301 \u591a\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff0c \u5fc5\u987b \u4e3a \u6bcf\u6b21 \u4eff\u771f \u8bbe\u7f6e \u79cd\u5b50 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b21 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u65f6 \uff0c \u90fd \u5fc5\u987b \u91cd\u65b0 \u8bbe\u7f6e \u79cd\u5b50 \uff1a client . reload _ world ( ) my _ tm . set _ random _ device _ seed ( seed _ value ) \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u79cd\u5b50 \u503c \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u6765 \u5728 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u4e2d \u6d4b\u8bd5 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 50 \u4e2a \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u586b\u5145 \u5730\u56fe \uff0c \u5e76 \u5c06 \u79cd\u5b50 \u8bbe\u7f6e \u4e3a \u4efb\u610f \u503c 9 \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 -- seed 9 \u8b66\u544a \u5728 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e4b\u524d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5fc5\u987b \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \u540c\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u6df7\u5408 \u6a21\u5f0f \u5141\u8bb8 \u7528\u6237 \u7981\u7528 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u6216 \u6807\u8bb0 \u4e3a \u82f1\u96c4 \u7684 \u8f66\u8f86 \u7279\u5b9a \u534a\u5f84 \u4e4b\u5916 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7269\u7406 \u8ba1\u7b97 \u3002 \u8fd9 \u6d88\u9664 \u4e86 \u4eff\u771f \u4e2d \u7684 \u8f66\u8f86 \u7269\u7406 \u74f6\u9888 \u3002 \u7269\u7406 \u529f\u80fd \u88ab \u7981\u7528 \u7684 \u8f66\u8f86 \u5c06 \u901a\u8fc7 \u9690\u5f62 \u4f20\u9001 \u79fb\u52a8 \u3002 \u7ef4\u6301 \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u57fa\u672c \u8ba1\u7b97 \uff0c \u4ee5 \u786e\u4fdd \u4f4d\u7f6e \u66f4\u65b0 \u548c \u8f66\u8f86 \u901f\u5ea6 \u4fdd\u6301 \u771f\u5b9e \uff0c \u5e76\u4e14 \u8f66\u8f86 \u4e0a \u7269\u7406 \u8ba1\u7b97 \u7684 \u5207\u6362 \u662f \u6d41\u7545 \u7684 \u3002 \u6df7\u5408 \u6a21\u5f0f \u4f7f\u7528 Actor . set _ simulate _ physics ( ) \u65b9\u6cd5 \u6765 \u5207\u6362 \u7269\u7406 \u8ba1\u7b97 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u662f \u7981\u7528 \u7684 \u3002 \u6709 \u4e24\u4e2a \u9009\u9879 \u53ef\u4ee5 \u542f\u7528 \u5b83 \uff1a TrafficManager . set _ hybrid _ physics _ mode ( True ) \u2014 \u6b64 \u65b9\u6cd5 \u4e3a \u8c03\u7528 \u5b83 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5bf9\u8c61 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u4ee5 -- hybrid \u6807\u5fd7 \u8fd0\u884c generate _ traffic . py \u2014 \u6b64 \u793a\u4f8b \u811a\u672c \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u4e2d \u751f\u6210 \u8f66\u8f86 \u3002 \u5f53 \u6807\u5fd7 -- hybrid \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u65f6 \uff0c \u5b83 \u5c06 \u8fd9\u4e9b \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u6df7\u5408 \u6a21\u5f0f \u3002 \u8981 \u4fee\u6539 \u6df7\u5408 \u6a21\u5f0f \u7684 \u884c\u4e3a \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4e24\u4e2a \u53c2\u6570 \uff1a Radius ( \u9ed8\u8ba4 = 50 \u7c73 ) \u2014 \u534a\u5f84 \u76f8\u5bf9 \u4e8e \u6807\u8bb0 \u6709 \u82f1\u96c4 \u7684 \u8f66\u8f86 \u3002 \u8be5 \u534a\u5f84 \u5185 \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5c06 \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff1b \u534a\u5f84 \u4e4b\u5916 \u7684 \u8f66\u8f86 \u5c06 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u4f7f\u7528 traffic _ manager . set _ hybrid _ physics _ radius ( r ) \u4fee\u6539 \u534a\u5f84 \u7684 \u5927\u5c0f \u3002 Hero vehicle \u2014 \u5e26\u6709 \u6807\u8bb0 role _ name = ' hero ' \u7684 \u8f66\u8f86 \u4f5c\u4e3a \u534a\u5f84 \u7684 \u4e2d\u5fc3 \u3002 \u5982\u679c \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u6240\u6709 \u8f66\u8f86 \u7684 \u7269\u7406 \u529f\u80fd \u5c06 \u88ab \u7981\u7528 \u3002 \u5982\u679c \u6709 \u4e0d\u6b62 \u4e00\u8f86 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u5219 \u4f1a \u8003\u8651 \u6240\u6709 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u534a\u5f84 \uff0c \u4ece\u800c \u5728 \u542f\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u60c5\u51b5 \u4e0b \u521b\u5efa \u4e0d\u540c \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u4e0b\u9762 \u7684 \u526a\u8f91 \u663e\u793a \u4e86 \u6df7\u5408 \u6a21\u5f0f \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u65f6 \u5982\u4f55 \u542f\u7528 \u548c \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u82f1\u96c4 \u8f66\u8f86 \u6807\u6709 \u7ea2\u8272 \u65b9\u5757 \u3002 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u8f66\u8f86 \u6807\u6709 \u84dd\u8272 \u65b9\u5757 \u3002 \u5f53 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u5f71\u54cd \u534a\u5f84 \u5185\u65f6 \uff0c \u542f\u7528 \u7269\u7406 \u529f\u80fd \u5e76\u4e14 \u6807\u7b7e \u53d8\u4e3a \u7eff\u8272 \u3002 \u8fd0\u884c \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6307\u5b9a \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u6765 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u7aef\u53e3 \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 8000 \u7aef\u53e3 \u3002 \u5982\u679c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u66f4 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5b83\u4eec \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u800c \u539f\u59cb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u8fd9\u4e9b \u6807\u9898 \u5b9a\u4e49 \u4e86 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fde\u63a5 \u5230 \u7a7a\u95f2 \u7aef\u53e3 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u7136\u540e \u5176\u4ed6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff09 \u8fde\u63a5 \u5230 \u5b83 \u6b63\u5728 \u8fd0\u884c \u7684 \u540c\u4e00 \u7aef\u53e3 \uff0c \u5219 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5c06 \u89c4\u5b9a \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \uff0c \u4f8b\u5982 \uff0c \u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u505c\u6b62 \uff0c \u5219 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u505c\u6b62 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6bcf\u4e2a \u7aef\u53e3 \u90fd \u8fde\u63a5 \u5230 \u4e0d\u540c \u4e14 \u90fd \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \uff1a tm01 = client01 . get _ trafficmanager ( ) # tm01 -- > tm01 ( p = 8000 ) tm02 = client02 . get _ trafficmanager ( 5000 ) # tm02 ( p = 5000 ) -- > tm02 ( p = 5000 ) \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5f53 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \uff09 \u5360\u7528 \u7684 \u7aef\u53e3 \u65f6 \uff0c \u5c31 \u4f1a \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u51b3\u5b9a \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf \u4e00\u4e2a \u90fd \u4e0e \u4e0a \u4e00\u8282 \u4e2d \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8fde\u63a5 \u3002 tm03 = client03 . get _ trafficmanager ( ) # tm03 -- > tm01 ( p = 8000 ) . tm04 = client04 . get _ trafficmanager ( 5000 ) # tm04 ( p = 5000 ) -- > tm02 ( p = 5000 ) Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u8fc7 \u5b58\u50a8 \u94fe\u63a5 \u5230 \u5b83\u4eec \u7684 \u7aef\u53e3 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef IP \uff08 \u5bf9 \u7528\u6237 \u9690\u85cf \uff09 \u6765 \u4fdd\u5b58 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u7684 \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u3002 \u76ee\u524d \u65e0\u6cd5 \u68c0\u67e5 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5df2 \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5c1d\u8bd5 \u521b\u5efa \u5b9e\u4f8b \u65f6 \u59cb\u7ec8 \u4f1a \u5c1d\u8bd5 \u8fde\u63a5 \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u521b\u5efa \u65b0 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u6216 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u4e2d \uff0c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a TM \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a TM \u5c06 \u662f TM \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5176\u4f59 \u7684 \u5c06 \u662f \u8fde\u63a5 \u5230 \u5b83 \u7684 TM \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 TM - Server \u5c06 \u89c4\u5b9a \u6240\u6709 TM \u5b9e\u4f8b \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Client \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u4e2d \uff0c \u5728 \u4e0d\u540c \u7684 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u90fd \u4f1a \u63a7\u5236 \u81ea\u5df1 \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4550 # TM - Server B \u591a\u91cd \u4eff\u771f \u591a\u91cd \u4eff\u771f \u662f \u6307 \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u65f6 \u8fd0\u884c \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9700\u8981 \u8fde\u63a5 \u5230 \u76f8\u5173 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u53e3 \u3002 \u53ea\u8981 \u8ba1\u7b97 \u80fd\u529b \u8ba1\u7b97\u80fd\u529b \u5141\u8bb8 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u4ee5 \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u4eff\u771f \uff0c \u4e0d\u4f1a \u51fa\u73b0 \u4efb\u4f55 \u95ee\u9898 \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 # simulation A terminal 2 : . / CarlaUE4 . sh - carla - rpc - port = 5000 # simulation B terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A connected to simulation A terminal 4 : python3 generate _ traffic . py -- port 5000 -- tm - port 5050 # TM - Server B connected to simulation B \u591a\u91cd \u4eff\u771f \u7684 \u6982\u5ff5 \u72ec\u7acb \u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u672c\u8eab \u3002 \u4e0a\u9762 \u7684 \u793a\u4f8b \u5e76\u884c \u8fd0\u884c \u4e24\u4e2a Carla \u4eff\u771f A \u548c B \u3002 \u5728 \u6bcf\u4e2a \u4eff\u771f \u4e2d \uff0c \u90fd \u72ec\u7acb \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4eff\u771f A \u53ef\u4ee5 \u8fd0\u884c \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u7a0b\u5e8f \uff0c \u800c \u4eff\u771f B \u5219 \u8fd0\u884c \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6216 \u6839\u672c \u4e0d \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e0a\u8ff0 \u8bbe\u7f6e \u6700 \u53ef\u80fd \u51fa\u73b0 \u7684 \u95ee\u9898 \u662f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u672a \u5728 \u6240\u9009 \u4eff\u771f \u4e0a \u8fd0\u884c \u7684 \u73b0\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \uff0c \u5c06\u4f1a \u51fa\u73b0 \u9519\u8bef \u6d88\u606f \uff0c \u5e76\u4e14 \u8fde\u63a5 \u5c06 \u88ab \u4e2d\u6b62 \uff0c \u4ee5 \u9632\u6b62 \u4eff\u771f \u4e4b\u95f4 \u7684 \u5e72\u6270 \u3002 \u540c\u6b65 \u6a21\u5f0f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u624d\u80fd \u6b63\u5e38 \u8fd0\u884c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u5219 \u4eff\u771f \u5e94 \u81f3\u5c11 \u4ee5 20 - 30 fps \u8fd0\u884c \u3002 \u4e0b\u9762 \u7684 \u811a\u672c \u6f14\u793a \u4e86 \u5982\u4f55 \u5c06 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a ... # Set the simulation to sync mode init _ settings = world . get _ settings ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True # After that , set the TM to sync mode my _ tm . set _ synchronous _ mode ( True ) ... # Tick the world in the same client world . apply _ settings ( init _ settings ) world . tick ( ) ... # Always disable sync mode before the script ends to prevent the server blocking whilst waiting for a tick settings . synchronous _ mode = False my _ tm . set _ synchronous _ mode ( False ) \u793a\u4f8b \u811a\u672c generate _ traffic . py \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76\u7528 \u8f66\u8f86 \u548c \u884c\u4eba \u586b\u5145 \u5730\u56fe \u3002 \u5b83 \u81ea\u52a8 \u5c06 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u548c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u4e0a\u8ff0 \u547d\u4ee4 \u65f6 \u4f7f\u7528 -- async \u6807\u5fd7 \u3002 \u5982\u679c \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u540c\u6b65 \u5c06\u4f1a \u5931\u8d25 \u3002 \u8bf7 \u9075\u5faa \u4ee5\u4e0b \u51c6\u5219 \u4ee5 \u907f\u514d \u51fa\u73b0 \u907f\u514d\u51fa\u73b0 \u95ee\u9898 \uff1a \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u60c5\u51b5 \u4e0b \uff0c \u53ea \u9700 \u5c06 \u4e00\u53f0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 ScenarioRunner \u6a21\u5757 \u81ea\u52a8 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 ScenarioRunner \u5185 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u8b66\u544a \u5728 \u7ba1\u7406 \u65f6\u949f \u7684 \u811a\u672c \u5b8c\u6210 \u4e4b\u524d \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff08 \u5bf9\u4e8e \u4e16\u754c \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \uff0c \u4ee5 \u9632\u6b62 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u963b\u585e \uff0c \u6c38\u8fdc \u7b49\u5f85 \u65f6\u949f \u3002 \u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8981 \u4e86\u89e3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5982\u4f55 \u5728 \u5927 \u5730\u56fe \u4e0a \u5de5\u4f5c \uff0c \u8bf7 \u52a1\u5fc5 \u9996\u5148 \u9605\u8bfb \u6b64\u5904 \u7684 \u6587\u6863 \u6765 \u719f\u6089 \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u5728 \u5927 \u5730\u56fe \u4e2d \u7684 \u884c\u4e3a \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \uff1a \u4e0d \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u90fd \u5c06 \u88ab \u89c6\u4e3a \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f11\u7720 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u50cf \u6df7\u5408 \u6a21\u5f0f \u4e00\u6837 \u5728 \u5730\u56fe \u4e0a \u79fb\u52a8 \u3002 \u7531\u4e8e \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \u6765 \u89e6\u53d1 \u5730\u56fe \u74e6\u7247 \u6d41 \uff0c \u56e0\u6b64 \u4e0d\u4f1a \u6e32\u67d3 \u8f66\u8f86 \u3002 \u5448\u73b0 \u82f1\u96c4 \u8f66\u8f86 \u5f53 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u8d85\u8fc7 actor _ active _ distance \u5b9a\u4e49 \u7684 \u503c\u65f6 \uff0c \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 actor _ active _ distance \u3002 \u8981 \u8bbe\u7f6e \u6b64\u503c \uff0c \u8bf7 \u4f7f\u7528 Python API \uff1a settings = world . get _ settings ( ) # Actors will become dormant 2km away from the ego vehicle settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \uff0c \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u5728 \u82f1\u96c4 \u8f66\u8f86 \u5468\u56f4 \u4e0d\u65ad \u91cd\u751f \uff0c \u800c \u4e0d\u662f \u5728 \u5730\u56fe \u7684 \u5176\u4ed6 \u90e8\u5206 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53ef\u4ee5 \u4f7f\u7528 set _ respawn _ dormant _ vehicles Python API \u4e2d \u7684 \u65b9\u6cd5 \u914d\u7f6e \u6b64 \u9009\u9879 \u3002 \u8f66\u8f86 \u5c06 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u7528\u6237 \u5b9a\u4e49 \u8ddd\u79bb \u5185 \u91cd\u751f \u3002 \u53ef \u91cd\u751f \u8ddd\u79bb \u7684 \u4e0a\u4e0b \u8fb9\u754c \u53ef\u4ee5 \u4f7f\u7528 set _ boundaries _ respawn _ dormant _ vehicles \u65b9\u6cd5 \u8bbe\u7f6e \u3002 \u6ce8\u610f \uff0c \u4e0a \u8ddd\u79bb \u4e0d\u4f1a \u5927\u4e8e \u5927 \u5730\u56fe \u7684 \u74e6\u7247 \u6d41 \u8ddd\u79bb \uff0c \u8ddd\u79bb \u6700\u5c0f \u4e3a 20m \u3002 \u8981 \u4f7f \u82f1\u96c4 \u8f66\u8f86 25 \u7c73 \u548c 700 \u7c73 \u8303\u56f4 \u5185 \u7684 \u4f11\u7720 \u8f66\u8f86 \u91cd\u751f \uff1a my _ tm . set _ respawn _ dormant _ vehicles ( True ) my _ tm . set _ boundaries _ respawn _ dormant _ vehicles ( 25 , 700 ) \u5982\u679c \u78b0\u649e \u963b\u6b62 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u91cd\u8bd5 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u3002 \u5982\u679c \u4f11\u7720 \u8f66\u8f86 \u6ca1\u6709 \u91cd\u751f \uff0c \u5b83\u4eec \u7684 \u884c\u4e3a \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u5982\u679c \u542f\u7528 \u4e86 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5728 \u5730\u56fe \u4e0a \u4f20\u9001 \u3002 \u5982\u679c \u672a \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4e0d\u4f1a \u8ba1\u7b97 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7269\u7406 \u7279\u6027 \uff0c \u5e76\u4e14 \u5b83\u4eec \u5c06 \u4fdd\u6301 \u5728 \u539f \u4f4d\u7f6e \uff0c \u76f4\u5230 \u4e0d\u518d \u4f11\u7720 \u3002 \u5982\u679c \u4f60 \u6709 \u4efb\u4f55 \u5173\u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u95ee\u9898 \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_1","text":"\u4ec0\u4e48 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f \u7ed3\u6784 \u7ed3\u6784\u5316 \u8bbe\u8ba1 \u7528\u6237 \u5b9a\u5236 \u67b6\u6784 \u6982\u8ff0 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4eff\u771f \u72b6\u6001 \u63a7\u5236 \u5faa\u73af \u5185\u5b58 \u5730\u56fe \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 PID \u63a7\u5236 \u63a7\u5236\u5668 \u547d\u4ee4 \u6570\u7ec4 \u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u884c\u4e3a \u8003\u8651 \u56e0\u7d20 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u914d\u7f6e \u81ea\u52a8 \u9a7e\u9a76 \u884c\u4e3a \u505c\u6b62 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u591a\u91cd \u4eff\u771f \u540c\u6b65 \u6a21\u5f0f \u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_2","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 ( Traffic Manager , TM ) \u662f \u5728 \u4eff\u771f \u4e2d\u4ee5 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u63a7\u5236 \u8f66\u8f86 \u7684 \u6a21\u5757 \u3002 \u5176 \u76ee\u6807 \u662f \u5728 \u4eff\u771f \u4e2d \u586b\u5145 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u3002 \u7528\u6237 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u884c\u4e3a \uff0c \u4f8b\u5982 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002","title":"\u4ec0\u4e48 \u662f \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1f"},{"location":"adv_traffic_manager/#_3","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6784\u5efa \u4e8e Carla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u4e0a \u3002 \u6267\u884c \u6d41\u7a0b \u5206\u4e3a \u591a\u4e2a \u9636\u6bb5 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u6709 \u72ec\u7acb \u7684 \u64cd\u4f5c \u548c \u76ee\u6807 \u3002 \u8fd9 \u6709\u5229 \u5229\u4e8e \u6709\u5229\u4e8e \u76f8\u4f4d \u76f8\u5173 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u7684 \u5f00\u53d1 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u4e0e \u5176\u4ed6 \u9636\u6bb5 \u7684 \u901a\u4fe1 \u901a\u8fc7 \u540c\u6b65 \u6d88\u606f \u4f20\u9012 \u6d88\u606f\u4f20\u9012 \u8fdb\u884c \u7ba1\u7406 \u3002 \u4fe1\u606f \u671d \u4e00\u4e2a \u65b9\u5411 \u6d41\u52a8 \u3002","title":"\u7ed3\u6784\u5316 \u8bbe\u8ba1"},{"location":"adv_traffic_manager/#_4","text":"\u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u8bbe\u7f6e \u5141\u8bb8 \u3001 \u5f3a\u5236 \u6216 \u9f13\u52b1 \u7279\u5b9a \u884c\u4e3a \u7684 \u53c2\u6570 \u6765 \u5bf9 \u6d41\u91cf \u8fdb\u884c \u4e00\u5b9a \u7a0b\u5ea6 \u7684 \u63a7\u5236 \u3002 \u7528\u6237 \u53ef\u4ee5 \u6839\u636e \u81ea\u5df1 \u7684 \u559c\u597d \u6539\u53d8 \u6d41\u91cf \u884c\u4e3a \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728\u7ebf \u8fd8\u662f \u79bb\u7ebf \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u5141\u8bb8 \u6c7d\u8f66 \u5ffd\u7565 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u6216 \u5f3a\u5236 \u53d8\u9053 \u3002 \u5728 \u5c1d\u8bd5 \u4eff\u771f \u73b0\u5b9e \u65f6 \uff0c \u80fd\u591f \u5c1d\u8bd5 \u5404\u79cd \u884c\u4e3a \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u9a7e\u9a76 \u7cfb\u7edf \u9700\u8981 \u5728 \u7279\u5b9a \u548c \u975e\u5178 \u5178\u578b \u975e\u5178\u578b \u60c5\u51b5 \u4e0b \u8fdb\u884c \u8bad\u7ec3 \u3002","title":"\u7528\u6237 \u5b9a\u5236"},{"location":"adv_traffic_manager/#_5","text":"","title":"\u67b6\u6784"},{"location":"adv_traffic_manager/#_6","text":"\u4e0a\u56fe \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5185\u90e8 \u67b6\u6784 \u793a\u610f \u610f\u56fe \u793a\u610f\u56fe \u3002 \u6bcf\u4e2a \u7ec4\u4ef6 \u7684 C++ \u4ee3\u7801 \u53ef\u4ee5 \u5728 LibCarla / source / carla / trafficmanager \u4e2d \u627e\u5230 \u3002 \u4ee5\u4e0b \u5404\u8282 \u8be6\u7ec6 \u89e3\u91ca \u4e86 \u6bcf\u4e2a \u7ec4\u4ef6 \u3002 \u903b\u8f91 \u6982\u8ff0 \u5982\u4e0b \uff1a 1 . \u5b58\u50a8 \u5e76 \u66f4\u65b0 \u4eff\u771f \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 ( Agent Lifecycle & State Management , ALSM ) \u626b\u63cf \u4e16\u754c \uff0c \u8ddf\u8e2a \u6240\u6709 \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u5e76 \u6e05\u7406 \u4e0d\u518d \u5b58\u5728 \u7684 \u6761\u76ee \u3002 \u6240\u6709 \u6570\u636e \u5747 \u4ece \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u68c0\u7d22 \u5e76 \u7ecf\u8fc7 \u591a\u4e2a \u9636\u6bb5 \u3002 ALSM \u662f \u552f\u4e00 \u8c03\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u7ec4\u4ef6 \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \u7684 \u8f66\u8f86 \uff08 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \uff09 \u4ee5\u53ca \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u4e0d \u5904\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u72b6\u6001 \uff08 \u4e0d \u53d7 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u63a7\u5236 \uff09 \u7684 \u884c\u4eba \u548c \u8f66\u8f86 \u3002 \u4eff\u771f \u72b6\u6001 \u662f \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \u7684 \u7f13\u5b58 \u5b58\u50a8 \u3002 2 . \u8ba1\u7b97 \u6bcf\u8f86 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6839\u636e \u4eff\u771f \u72b6\u6001 \u4e3a \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u751f\u6210 \u53ef\u884c \u7684 \u547d\u4ee4 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8ba1\u7b97 \u90fd \u662f \u5355\u72ec \u8fdb\u884c \u7684 \u3002 \u8fd9\u4e9b \u8ba1\u7b97 \u5206\u4e3a \u4e0d\u540c \u7684 \u9636\u6bb5 \u3002 \u63a7\u5236 \u5faa\u73af \u901a\u8fc7 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u6765 \u786e\u4fdd \u6240\u6709 \u8ba1\u7b97 \u7684 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u5728 \u5f53\u524d \u9636\u6bb5 \u7684 \u6240\u6709 \u8f66\u8f86 \u8ba1\u7b97 \u5b8c\u6210 \u4e4b\u524d \uff0c \u6ca1\u6709 \u8f66\u8f86 \u8fdb\u5165 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u4f1a \u7ecf\u5386 \u4ee5\u4e0b \u9636\u6bb5 \uff1a 2.1 - \u5b9a\u4f4d \u9636\u6bb5 \u8def\u5f84 \u662f \u4f7f\u7528 \u4ece \u5185\u5b58 \u5730\u56fe \u4e2d \u6536\u96c6 \u7684 \u9644\u8fd1 \u8def\u5f84 \u70b9 \u5217\u8868 \u52a8\u6001 \u521b\u5efa \u52a8\u6001\u521b\u5efa \u7684 \uff0c \u5185\u5b58 \u5730\u56fe \u662f \u4eff\u771f \u5730\u56fe \u4f5c\u4e3a \u8def\u5f84 \u70b9 \u7f51\u683c \u7684 \u7b80\u5316 \u3002 \u8def\u53e3 \u7684 \u65b9\u5411 \u662f \u968f\u673a \u9009\u62e9 \u7684 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u5747 \u7531 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 ( Path Buffers & Vehicle Tracking , PBVT ) \u7ec4\u4ef6 \u5b58\u50a8 \u548c \u7ef4\u62a4 \uff0c \u4ee5\u4fbf \u5728 \u672a\u6765 \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 2.2 - \u78b0\u649e \u9636\u6bb5 \u8fb9\u754c \u6846 \u5ef6\u4f38 \u5230 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u8def\u5f84 \u4e0a \uff0c \u4ee5 \u8bc6\u522b \u548c \u5bfc\u822a \u6f5c\u5728 \u7684 \u78b0\u649e \u5371\u9669 \u3002 2.3 - \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 . \u4e0e \u78b0\u649e \u9636\u6bb5 \u7c7b\u4f3c \uff0c \u4f1a \u8bc6\u522b \u7531\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u7ea7 \u800c \u5f71\u54cd \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8def\u5f84 \u7684 \u6f5c\u5728 \u5371\u9669 \u3002 2.4 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 . \u8f66\u8f86 \u8fd0\u52a8 \u662f \u6839\u636e \u5b9a\u4e49 \u7684 \u8def\u5f84 \u8ba1\u7b97 \u7684 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u786e\u5b9a \u5982\u4f55 \u5230\u8fbe \u76ee\u6807 \u8def\u5f84 \u70b9 \u3002 \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a Carla \u547d\u4ee4 \u4ee5\u4f9b \u4e0b \u4e00\u6b65 \u5e94\u7528 \u3002 2.5 - \u8f66\u706f \u9636\u6bb5 . \u8f66\u706f \u6839\u636e \u73af\u5883 \u56e0\u7d20 \u73af\u5883\u56e0\u7d20 \uff08 \u4f8b\u5982 \u9633\u5149 \u548c \u96fe \u6216 \u96e8 \u7684 \u5b58\u5728 \uff09 \u548c \u8f66\u8f86 \u884c\u4e3a \uff08 \u4f8b\u5982 \uff0c \u5982\u679c \u8f66\u8f86 \u5c06 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u65b9\u5411 \u6307\u793a \u6307\u793a\u706f \uff1b \u5982\u679c \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \uff09 \u3002 3 . \u5728 \u4eff\u771f \u4e2d \u5e94\u7528 \u547d\u4ee4 \u4e0a \u4e00\u6b65 \u751f\u6210 \u7684 \u547d\u4ee4 \u88ab \u6536\u96c6 \u5230 \u547d\u4ee4 \u6570\u7ec4 \u4e2d \uff0c \u6279\u91cf \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5728 \u540c\u4e00 \u5e27 \u4e2d \u5e94\u7528 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u4e0a\u8ff0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u4e2d \u7684 \u6bcf\u4e2a \u7ec4\u4ef6 \u548c \u9636\u6bb5 \u3002","title":"\u6982\u8ff0"},{"location":"adv_traffic_manager/#_7","text":"\u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u3002 \u5b83 \u662f \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u903b\u8f91 \u5468\u671f \u7684 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u63d0\u4f9b \u4eff\u771f \u5f53\u524d \u72b6\u6001 \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u3002 \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u7ec4\u4ef6 \uff1a \u626b\u63cf \u4e16\u754c \u4ee5 \u8ddf\u8e2a \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u5982\u679c \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff0c \u5219 \u901a\u8fc7 Vehicle . get _ velocity ( ) \u68c0\u7d22 \u901f\u5ea6 \u3002 \u5426\u5219 \uff0c \u5c06 \u4f7f\u7528 \u4f4d\u7f6e \u968f \u65f6\u95f4 \u66f4\u65b0 \u7684 \u5386\u53f2 \u53f2\u8bb0 \u8bb0\u5f55 \u5386\u53f2\u8bb0\u5f55 \u6765 \u8ba1\u7b97 \u901f\u5ea6 \u8ba1\u7b97\u901f\u5ea6 \u3002 \u5b58\u50a8 \u4eff\u771f \u72b6\u6001 \u7ec4\u4ef6 \u4e2d \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u548c \u884c\u4eba \u7684 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u548c \u9644\u52a0 \u4fe1\u606f \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u8fb9\u754c \u6846\u7b49 \uff09 \u3002 \u66f4\u65b0 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5217\u8868 \u3002 \u66f4\u65b0 \u63a7\u5236 \u5faa\u73af \u548c \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u7ec4\u4ef6 \u4e2d \u7684 \u6761\u76ee \u4ee5 \u5339\u914d \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a ALSM . h , ALSM . cpp .","title":"\u667a\u80fd \u4f53 \u7684 \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406"},{"location":"adv_traffic_manager/#_8","text":"\u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u8bb0\u5f55 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u4f20\u9012 \u6765 \u6700\u65b0 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u5217\u8868 \u3002 \u5c06 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u8f66\u8f86 \u5b58\u50a8 \u5728 \u5355\u72ec \u7684 \u6570\u7ec4 \u4e2d \uff0c \u4ee5\u4fbf \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8fdb\u884c \u8fed\u4ee3 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a MotionPlannerStage . cpp .","title":"\u8f66\u8f86 \u6ce8\u518c\u8868"},{"location":"adv_traffic_manager/#_9","text":"\u4eff\u771f \u72b6\u6001 \u5b58\u50a8 \u4eff\u771f \u4e2d \u6240\u6709 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u4ee5\u4fbf \u5728 \u540e\u671f \u9636\u6bb5 \u8f7b\u677e \u8bbf\u95ee \u548c \u4fee\u6539 \u3002 \u4eff\u771f \u72b6\u6001 \uff1a \u4ece \u667a\u80fd \u4f53 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u548c \u72b6\u6001 \u7ba1\u7406 \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \uff0c \u5305\u62ec \u5f53\u524d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7b49 \u3002 \u5c06 \u6240\u6709 \u4fe1\u606f \u5b58\u50a8 \u5728 \u7f13\u5b58 \u4e2d \uff0c \u907f\u514d \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u5bf9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u540e\u7eed \u8c03\u7528 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 \uff1a SimulationState . cpp , SimulationState . h .","title":"\u4eff\u771f \u72b6\u6001"},{"location":"adv_traffic_manager/#_10","text":"\u63a7\u5236 \u5faa\u73af \u7ba1\u7406 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u4e0b \u4e00\u4e2a \u547d\u4ee4 \u7684 \u8ba1\u7b97 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u540c\u6b65 \u6267\u884c \u3002 \u63a7\u5236 \u5faa\u73af \u7531 \u4e94\u4e2a \u4e0d\u540c \u7684 \u9636\u6bb5 \u7ec4\u6210 ; \u5b9a\u4f4d \uff0c \u78b0\u649e \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u8fd0\u52a8 \u89c4\u5212 \u548c \u8f66\u8f86 \u706f \u3002 \u63a7\u5236 \u5faa\u73af : \u4ece \u8f66\u8f86 \u6ce8\u518c \u6ce8\u518c\u8868 \u63a5\u6536 TM - \u63a7\u5236 \u7684 \u8f66\u8f86 \u6570\u7ec4 \u3002 \u901a\u8fc7 \u5faa\u73af \u904d\u5386 \u6570\u7ec4 \uff0c \u5206\u522b \u5bf9 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6267\u884c \u8ba1\u7b97 \u3002 \u5c06 \u8ba1\u7b97 \u5206\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7684 \u9636\u6bb5 \u3002 \u5728 \u9636\u6bb5 \u4e4b\u95f4 \u521b\u5efa \u540c\u6b65 \u5c4f\u969c \u4ee5 \u4fdd\u8bc1 \u4e00\u81f4 \u4e00\u81f4\u6027 \u3002 \u6240\u6709 \u8f66\u8f86 \u7684 \u8ba1\u7b97 \u5728 \u4efb\u4f55 \u8f66\u8f86 \u79fb\u52a8 \u5230 \u9636\u6bb5 \u4e0b\u4e00\u9636\u6bb5 \u4e4b\u524d \u5b8c\u6210 \uff0c \u786e\u4fdd \u6240\u6709 \u8f66\u8f86 \u5728 \u540c\u4e00 \u5e27 \u4e2d \u66f4\u65b0 \u3002 \u534f\u8c03 \u5404 \u9636\u6bb5 \u4e4b\u95f4 \u7684 \u8fc7\u6e21 \uff0c \u4f7f \u6240\u6709 \u8ba1\u7b97 \u540c\u6b65 \u5b8c\u6210 \u3002 \u5f53 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 ( \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u548c \u8f66\u8f86 \u706f\u5149 \u9636\u6bb5 ) \u5b8c\u6210 \u65f6 \uff0c \u5c06 \u547d\u4ee4 \u6570\u7ec4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u56e0\u6b64 \u5728 \u547d\u4ee4 \u8ba1\u7b97 \u548c \u547d\u4ee4 \u5e94\u7528 \u4e4b\u95f4 \u6ca1\u6709 \u5e27 \u5ef6\u8fdf \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp .","title":"\u63a7\u5236 \u5faa\u73af"},{"location":"adv_traffic_manager/#_11","text":"\u5185\u5b58 \u5730\u56fe \u662f \u5305\u542b \u5728 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u4e2d \u7684 \u8f85\u52a9 \u6a21\u5757 \uff0c \u5728 \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u3002 \u5185\u5b58 \u5730\u56fe : \u5c06 \u5730\u56fe \u8f6c\u6362 \u4e3a \u79bb\u6563 \u8def\u5f84 \u70b9 \u7684 \u7f51\u683c \u3002 \u5305\u542b \u7279\u5b9a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u4e2d \u7684 \u8def\u70b9 \uff0c \u5e76 \u63d0\u4f9b \u66f4 \u591a \u4fe1\u606f \u6765 \u8fde\u63a5 \u8def\u70b9 \u548c \u8bc6\u522b \u9053\u8def \u3001 \u8def\u53e3 \u7b49 \u3002 \u901a\u8fc7 \u8bc6\u522b \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 ID \u6765 \u5feb\u901f \u5b9a\u4f4d \u9644\u8fd1 \u533a\u57df \u7684 \u8f66\u8f86 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : InMemoryMap . cpp and SimpleWaypoint . cpp .","title":"\u5185\u5b58 \u5730\u56fe"},{"location":"adv_traffic_manager/#pbvt","text":"PBVT \u4ee3\u8868 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \u3002 PBVT \u662f \u4e00\u79cd \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5b83 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u9884\u671f \u8def\u5f84 \uff0c \u5e76 \u5141\u8bb8 \u5728 \u63a7\u5236 \u5faa\u73af \u671f\u95f4 \u8f7b\u677e \u8bbf\u95ee \u6570\u636e \u3002 PBVT : \u5305\u542b \u4e00\u4e2a deque \u5bf9\u8c61 \u7684 \u5730\u56fe \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u6709 \u4e00\u4e2a \u5165\u53e3 \u3002 \u5305\u542b \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u4e00\u7ec4 \u8def\u70b9 \uff0c \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u5305\u542b \u5b9a\u4f4d \u9636\u6bb5 \u4f7f\u7528 \u7684 \u5185\u5b58 \u5730\u56fe \uff0c \u7528\u4e8e \u5c06 \u6bcf\u4e2a \u8f66\u8f86 \u4e0e \u6700\u8fd1 \u7684 \u8def\u70b9 \u548c \u53ef\u80fd \u7684 \u91cd\u53e0 \u8def\u5f84 \u5173\u8054 \u8d77\u6765 \u3002","title":"PBVT"},{"location":"adv_traffic_manager/#pid","text":"PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u5728 \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6267\u884c \u8ba1\u7b97 \u7684 \u8f85\u52a9 \u6a21\u5757 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 : \u6839\u636e \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u6536\u96c6 \u7684 \u4fe1\u606f \uff0c \u4f30\u7b97 \u8fbe\u5230 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u6240 \u9700 \u7684 \u6cb9\u95e8 \u3001 \u5239\u8f66 \u548c \u8f6c\u5411 \u8f93\u5165 \u3002 \u6839\u636e \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5177\u4f53 \u53c2\u6570 \u5316 \u8fdb\u884c \u8c03\u6574 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4fee\u6539 \u53c2\u6570 \u3002 \u9605\u8bfb \u66f4 \u591a \u5173\u4e8e PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u4fe1\u606f \uff0c \u4e86\u89e3 \u5982\u4f55 \u8fdb\u884c \u4fee\u6539 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : PIDController . cpp .","title":"PID \u63a7\u5236\u5668"},{"location":"adv_traffic_manager/#_12","text":"\u547d\u4ee4 \u6570\u7ec4 \u8868\u793a TM \u903b\u8f91 \u5468\u671f \u4e2d \u7684 \u6700\u540e \u4e00\u6b65 \u3002 \u5b83 \u63a5\u6536 \u6240\u6709 \u6ce8\u518c \u8f66\u8f86 \u7684 \u547d\u4ee4 \u5e76 \u5e94\u7528 \u5b83\u4eec \u3002 \u547d\u4ee4 \u6570\u7ec4 : \u4ece \u8def\u5f84 \u89c4\u5212 \u9636\u6bb5 \u63a5\u6536 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . VehicleControl \u3002 \u5904\u7406 \u6279\u5904\u7406 \u8981 \u5728 \u540c\u4e00 \u5e27 \u5185 \u5e94\u7528 \u7684 \u6240\u6709 \u547d\u4ee4 \u3002 \u5c06 \u5904\u7406 \u6279\u5904\u7406 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5728 carla \u4e2d \u8c03\u7528 apply _ batch \uff08 \uff09 \u6216 apply _ batch _ synch \uff08 \uff09 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4eff\u771f \u662f \u5206\u522b \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd8\u662f \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficManagerLocal . cpp .","title":"\u547d\u4ee4 \u6570\u7ec4"},{"location":"adv_traffic_manager/#_13","text":"","title":"\u63a7\u5236 \u5faa\u73af \u7684 \u9636\u6bb5"},{"location":"adv_traffic_manager/#1-","text":"\u5b9a\u4f4d \u9636\u6bb5 \u4e3a TM \u63a7\u5236 \u7684 \u8f66\u8f86 \u5b9a\u4e49 \u4e86 \u8fd1 \u672a\u6765 \u7684 \u8def\u5f84 \u3002 \u672c\u5730 \u672c\u5730\u5316 \u9636\u6bb5 \uff1a \u4ece \u4eff\u771f \u72b6\u6001 \u83b7\u53d6 \u6240\u6709 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u4f7f\u7528 \u5185\u5b58 \u5730\u56fe \u5c06 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u4e0e \u822a\u70b9 \u5217\u8868 \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \uff0c \u8be5 \u822a\u70b9 \u5217\u8868 \u6839\u636e \u5176 \u8f68\u8ff9 \u63cf\u8ff0 \u5176 \u5f53\u524d \u4f4d\u7f6e \u548c \u8fd1\u671f \u8def\u5f84 \u3002 \u8f66\u8f86 \u884c\u9a76 \u5f97 \u8d8a \u5feb \uff0c \u5217\u8868 \u5c31 \u8d8a\u957f \u3002 \u6839\u636e \u89c4\u5212 \u51b3\u7b56 \u66f4\u65b0 \u8def\u5f84 \uff0c \u4f8b\u5982 \u53d8\u9053 \u3001 \u9650\u901f \u3001 \u4e0e \u524d\u65b9 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u53c2\u6570 \u5316\u7b49 \u3002 \u5c06 \u6240\u6709 \u8f66\u8f86 \u7684 \u8def\u5f84 \u5b58\u50a8 \u5728 PBVT \u6a21\u5757 \u4e2d \u3002 \u76f8\u4e92 \u6bd4\u8f83 \u8def\u5f84 \u4ee5 \u4f30\u8ba1 \u53ef\u80fd \u7684 \u78b0\u649e \u60c5\u51b5 \u3002 \u7ed3\u679c \u5c06 \u4f20\u9012 \u5230 \u78b0\u649e \u9636\u6bb5 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : LocalizationStage . cpp and LocalizationUtils . cpp .","title":"\u7b2c 1 \u9636\u6bb5 - \u5b9a\u4f4d \u9636\u6bb5"},{"location":"adv_traffic_manager/#2-","text":"\u78b0\u649e \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u78b0\u649e \u5371\u9669 \u3002 \u78b0\u649e \u9636\u6bb5 \uff1a \u4ece \u5b9a\u4f4d \u9636\u6bb5 \u63a5\u6536 \u8def\u5f84 \u53ef\u80fd \u91cd\u53e0 \u7684 \u8f66\u8f86 \u5bf9 \u5217\u8868 \u3002 \u524d\u65b9 \u8def\u5f84 \uff08 \u5730\u7ebf \u6d4b\u5730\u7ebf \u8fb9\u754c \uff09 \u6269\u5c55 \u6bcf\u4e2a \u8f66\u8f86 \u5bf9 \u7684 \u8fb9\u754c \u6846 \uff0c \u4ee5 \u68c0\u67e5 \u5b83\u4eec \u662f\u5426 \u5b9e\u9645 \u91cd\u53e0 \u5e76 \u786e\u5b9a \u78b0\u649e \u98ce\u9669 \u662f\u5426 \u771f\u5b9e \u3002 \u5c06 \u6240\u6709 \u53ef\u80fd \u7684 \u78b0\u649e \u7684 \u5371\u9669 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff0c \u4ee5 \u76f8\u5e94 \u5730 \u4fee\u6539 \u8def\u5f84 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : CollisionStage . cpp .","title":"\u7b2c 2 \u9636\u6bb5 - \u78b0\u649e \u9636\u6bb5"},{"location":"adv_traffic_manager/#-","text":"\u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \u4f1a \u89e6\u53d1 \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u5668 \u9020\u6210 \u7684 \u5371\u9669 \uff0c \u4f8b\u5982 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u8def\u53e3 \u7684 \u4f18\u5148 \u4f18\u5148\u6743 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff1a \u5982\u679c \u8f66\u8f86 \u53d7\u5230 \u9ec4\u8272 \u6216 \u7ea2\u8272 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6216 \u505c\u8f66 \u6807\u5fd7 \u7684 \u5f71\u54cd \uff0c \u5219 \u8bbe\u7f6e \u4ea4\u901a \u5371\u9669 \u3002 \u5982\u679c \u8fb9\u754c \u6846 \u4f4d\u4e8e \u65e0 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \uff0c \u5219 \u6cbf \u8f66\u8f86 \u8def\u5f84 \u5ef6\u4f38 \u8fb9\u754c \u6846 \u3002 \u8def\u5f84 \u91cd\u53e0 \u7684 \u8f66\u8f86 \u9075\u5faa \u201c \u5148\u8fdb \u5148\u8fdb\u5148\u51fa \u201d \u7684 \u987a\u5e8f \u79fb\u52a8 \u3002 \u7b49\u5f85 \u65f6\u95f4 \u7b49\u5f85\u65f6\u95f4 \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u56fa\u5b9a\u503c \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : TrafficLightStage . cpp .","title":"\u7b2c\u4e09\u9636\u6bb5 - \u4ea4\u901a\u706f \u9636\u6bb5"},{"location":"adv_traffic_manager/#4-","text":"\u201c \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \u201d \uff08 Motion Planner Stage \uff09 \u751f\u6210 \u8981 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 Carla \u547d\u4ee4 \u3002 \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5 \uff1a \u6536\u96c6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \uff08 \u4eff\u771f \u72b6\u6001 ) \uff09 \u3001 \u8def\u5f84 \uff08 \u8def\u5f84 \u7f13\u5b58 \u548c \u8f66\u8f86 \u8f68\u8ff9 \uff09 \u548c \u5371\u9669 \uff08 \u78b0\u649e \u9636\u6bb5 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u9636\u6bb5 \uff09 \u3002 \u5bf9 \u8f66\u8f86 \u5e94 \u5982\u4f55 \u79fb\u52a8 \u505a\u51fa \u9ad8\u7ea7 \u51b3\u7b56 \uff0c \u4f8b\u5982 \uff0c \u8ba1\u7b97 \u9632\u6b62 \u78b0\u649e \u5371\u9669 \u6240 \u9700 \u7684 \u5236\u52a8 \u5236\u52a8\u5668 \u3002 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7528\u4e8e \u6839\u636e \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u4f30\u8ba1 \u884c\u4e3a \u3002 \u5c06 \u671f\u671b \u7684 \u8fd0\u52a8 \u8f6c\u5316 \u4e3a \u9002\u7528 \u4e8e \u8f66\u8f86 \u7684 carla . VehicleControl \u3002 \u5c06 \u751f\u6210 \u7684 Carla \u547d\u4ee4 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u547d\u4ee4 \u6570\u7ec4 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : MotionPlannerStage . cpp .","title":"\u7b2c 4 \u9636\u6bb5 - \u8fd0\u52a8 \u89c4\u5212 \u5668 \u9636\u6bb5"},{"location":"adv_traffic_manager/#5-","text":"\u8f66\u706f \u9636\u6bb5 \u6839\u636e \u8f66\u8f86 \u72b6\u51b5 \u548c \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u6fc0\u6d3b \u8f66\u706f \u3002 \u200b \u8f66\u706f \u9636\u6bb5 : \u68c0\u7d22 \u8f66\u8f86 \u7684 \u8ba1\u5212 \u822a\u70b9 \u3001 \u6709\u5173 \u8f66\u8f86 \u706f\u5149 \u7684 \u4fe1\u606f \uff08 \u4f8b\u5982 \u706f\u5149 \u72b6\u6001 \u548c \u8ba1\u5212 \u5e94\u7528 \u7684 \u547d\u4ee4 \uff09 \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u786e\u5b9a \u8f66\u706f \u7684 \u65b0 \u72b6\u6001 : \u5982\u679c \u8f66\u8f86 \u8ba1\u5212 \u5728 \u4e0b \u4e00\u4e2a \u8def\u53e3 \u5de6\u8f6c / \u53f3\u8f6c \uff0c \u5219 \u6253\u5f00 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3002 \u5982\u679c \u5e94\u7528 \u7684 \u547d\u4ee4 \u8981\u6c42 \u8f66\u8f86 \u5236\u52a8 \uff0c \u5219 \u6253\u5f00 \u505c\u8f66 \u8f66\u706f \u505c\u8f66\u706f \u3002 \u4ece \u65e5 \u843d\u5230 \u9ece\u660e \u6216 \u5728 \u5927\u96e8 \u4e2d \u6253\u5f00 \u5149\u706f \u8fd1\u5149\u706f \u548c \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u5728 \u5927\u96fe \u6761\u4ef6 \u4e0b \u6253\u5f00 \u96fe\u706f \u3002 \u5982\u679c \u8f66\u706f \u72b6\u6001 \u5df2 \u66f4\u6539 \uff0c \u8bf7 \u66f4\u65b0 \u8f66\u706f \u72b6\u6001 \u3002 \u76f8\u5173 \u7684 . cpp \u6587\u4ef6 : VehicleLightStage . cpp .","title":"\u7b2c 5 \u9636\u6bb5 - \u8f66\u706f \u9636\u6bb5"},{"location":"adv_traffic_manager/#_14","text":"","title":"\u4f7f\u7528 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_15","text":"TM \u5b9e\u73b0 \u4e86 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u65f6 \u5fc5\u987b \u8003\u8651 \u7684 \u4e00\u822c \u884c\u4e3a \u6a21\u5f0f \uff1a \u8f66\u8f86 \u4e0d\u662f \u4ee5 \u76ee\u6807 \u4e3a \u5bfc\u5411 \u7684 \uff0c \u5b83\u4eec \u9075\u5faa \u52a8\u6001 \u4ea7\u751f \u7684 \u8f68\u8ff9 \uff0c \u5e76 \u5728 \u63a5\u8fd1 \u8def\u53e3 \u65f6 \u968f\u673a \u9009\u62e9 \u8def\u5f84 \u3002 \u4ed6\u4eec \u7684 \u9053\u8def \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u7684 \u3002 \u9664\u975e \u8bbe\u7f6e \u4e86 \u4efb\u4f55 \u5176\u4ed6 \u503c \uff0c \u5426\u5219 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 \u662f \u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 70% \u3002 \u8def\u53e3 \u4f18\u5148 \u4f18\u5148\u6743 \u4e0d \u9075\u5b88 \u4ea4\u901a \u6cd5\u89c4 \u4ea4\u901a\u6cd5\u89c4 \u3002 TM \u5728 \u8def\u53e3 \u4f7f\u7528 \u81ea\u5df1 \u7684 \u4f18\u5148 \u4f18\u5148\u7ea7 \u7cfb\u7edf \u3002 \u6b64 \u9650\u5236 \u7684 \u89e3\u51b3 \u5de5\u4f5c \u6b63\u5728 \u8fdb\u884c \u4e2d \u3002 \u540c\u65f6 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \uff0c \u4f8b\u5982 \uff0c \u73af\u5f62 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5185 \u7684 \u8f66\u8f86 \u8ba9\u6b65 \u7ed9 \u8bd5\u56fe \u8fdb\u5165 \u7684 \u8f66\u8f86 \u3002 TM \u884c\u4e3a \u53ef\u4ee5 \u901a\u8fc7 Python API \u8fdb\u884c \u8c03\u6574 \u3002 \u6709\u5173 \u5177\u4f53 \u65b9\u6cd5 \u5177\u4f53\u65b9\u6cd5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u6587\u6863 \u7684 TM \u90e8\u5206 \u3002 \u4ee5\u4e0b \u662f \u901a\u8fc7 API \u5b9e\u73b0 \u7684 \u529f\u80fd \u7684 \u4e00\u822c \u6458\u8981 \uff1a \u4e3b\u9898 \u63cf\u8ff0 \u5e38\u89c4 : - \u521b\u5efa \u8fde\u63a5 \u5230 \u7aef\u53e3 \u7684 TM \u5b9e\u4f8b \u3002 - \u68c0\u7d22 TM \u8fde\u63a5 \u7684 \u7aef\u53e3 \u3002 \u5b89\u5168 \u6761\u4ef6 : - \u8bbe\u7f6e \u505c\u6b62 \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216\u8005 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 \u8fd9 \u5c06 \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 - \u5c06 \u6240 \u9700 \u901f\u5ea6 \u8bbe\u7f6e \u4e3a \u5f53\u524d \u901f\u5ea6 \u73b0\u72b6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff08 \u5bf9\u4e8e \u5355\u4e2a \u8f66\u8f86 \u6216 \u6240\u6709 \u8f66\u8f86 \uff09 \u3002 - \u91cd\u7f6e \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u78b0\u649e \u7ba1\u7406 : - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u4e0e \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u5176\u4ed6 \u8f66\u8f86 \u3002 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 - \u8ba9 \u8f66\u8f86 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u53d8\u9053 : - \u5f3a\u5236 \u53d8\u9053 \uff0c \u5ffd\u7565 \u53ef\u80fd \u7684 \u78b0\u649e \u3002 - \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u7684 \u53d8\u9053 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : - \u542f\u7528 / \u7981\u7528 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u3002 - \u66f4\u6539 \u542f\u7528 \u7269\u7406 \u7684 \u534a\u5f84 \u3002","title":"\u8f66\u8f86 \u884c\u4e3a \u6ce8\u610f\u4e8b\u9879"},{"location":"adv_traffic_manager/#_16","text":"\u7b14\u8bb0 TM \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 TM \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540c\u6b65 \u6a21\u5f0f \u3002 TM \u5b9e\u4f8b \u7531 carla \u521b\u5efa . \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u4f20\u9012 \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7f3a\u7701 \u7aef\u53e3 \u4e3a 8000 \u3002 \u8981 \u521b\u5efa TM \u5b9e\u4f8b \uff1a tm = client . get _ trafficmanager ( port ) \u8981 \u4e3a \u4e00\u7ec4 \u8f66\u8f86 \u542f\u7528 autopilot \uff0c \u8bf7 \u68c0\u7d22 TM \u5b9e\u4f8b \u7684 \u7aef\u53e3 \u5e76 \u8bbe\u7f6e set _ autopilot \u4e3a True \uff0c \u540c\u65f6 \u4f20\u9012 TM \u7aef\u53e3 \u3002 \u5982\u679c \u672a \u63d0\u4f9b \u7aef\u53e3 \uff0c \u5b83 \u5c06 \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u9ed8\u8ba4 \u7aef\u53e3 \uff08 8000 \uff09 \u4e2d \u7684 TM \u3002 \u5982\u679c TM \u4e0d \u5b58\u5728 \uff0c \u5b83 \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 tm _ port = tm . get _ port ( ) for v in vehicles _ list : v . set _ autopilot ( True , tm _ port ) \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \u521b\u5efa \u6216 \u8fde\u63a5 \u5230 TM \u4e0e \u4e0a\u8ff0 \u793a\u4f8b \u4e0d\u540c \u3002 / PythonAPI / examples \u4e2d \u7684 generate _ traffic . py \u811a\u672c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u7aef\u53e3 \u521b\u5efa TM \u5b9e\u4f8b \uff0c \u5e76 \u901a\u8fc7 \u6279\u91cf \u5c06 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u8bbe\u7f6e \u4e3a \u4ee5\u4e0b \u503c\u6765 \u6ce8\u518c \u751f\u6210 \u7684 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u3002 traffic _ manager = client . get _ trafficmanager ( args . tm - port ) tm _ port = traffic _ manager . get _ port ( ) ... batch . append ( SpawnActor ( blueprint , transform ) . then ( SetAutopilot ( FutureActor , True , tm _ port ) ) ) ... traffic _ manager . global _ percentage _ speed _ difference ( 30.0 )","title":"\u521b\u5efa \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#autopilot","text":"\u4ee5\u4e0b \u793a\u4f8b \u521b\u5efa \u4e00\u4e2a TM \u5b9e\u4f8b \uff0c \u5e76 \u4e3a \u7279\u5b9a \u8f66\u8f86 \u914d\u7f6e \u5371\u9669 \u884c\u4e3a \uff0c \u4f7f \u5176 \u5ffd\u7565 \u6240\u6709 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u4e0d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4fdd\u6301 \u5b89\u5168 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u6bd4 \u5f53\u524d \u9650\u901f \u5feb 20% \u7684 \u901f\u5ea6 \u884c\u9a76 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . ignore _ lights _ percentage ( danger _ car , 100 ) tm . distance _ to _ leading _ vehicle ( danger _ car , 0 ) tm . vehicle _ percentage _ speed _ difference ( danger _ car , - 20 ) \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u76f8\u540c \u7684 \u8f66\u8f86 \u5217\u8868 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \uff0c \u4f46 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u9002\u5ea6 \u9a7e\u9a76 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u884c\u9a76 \u901f\u5ea6 \u6bd4 \u5f53\u524d \u9650\u901f \u6162 80% \uff0c \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4e4b\u95f4 \u81f3\u5c11 \u7559\u51fa 5 \u7c73 \u7684 \u8ddd\u79bb \uff0c \u5e76\u4e14 \u4ece\u4e0d \u8fdb\u884c \u53d8\u9053 \uff1a tm = client . get _ trafficmanager ( port ) tm _ port = tm . get _ port ( ) for v in my _ vehicles : v . set _ autopilot ( True , tm _ port ) danger _ car = my _ vehicles [ 0 ] tm . global _ distance _ to _ leading _ vehicle ( 5 ) tm . global _ percentage _ speed _ difference ( 80 ) for v in my _ vehicles : tm . auto _ lane _ change ( v , False )","title":"\u914d\u7f6e autopilot \u884c\u4e3a"},{"location":"adv_traffic_manager/#_17","text":"\u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c TM \u7ba1\u7406 \u7684 \u8f66\u8f86 \u7684 \u8f66\u706f \uff08 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u8f6c\u5411 \u8f6c\u5411\u706f \u7b49 \uff09 \u6c38\u8fdc \u4e0d\u4f1a \u66f4\u65b0 \u3002 \u53ef\u4ee5 \u59d4\u6258 TM \u6765 \u66f4\u65b0 \u7ed9\u5b9a \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8f66\u706f \uff1a tm = client . get _ trafficmanager ( port ) for actor in my _ vehicles : tm . update _ vehicle _ lights ( actor , True ) \u8f66\u706f \u7ba1\u7406 \u5fc5\u987b \u6309 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8fdb\u884c \u6307\u5b9a \uff0c \u5e76\u4e14 \u5728 \u4efb\u4f55 \u7ed9\u5b9a \u65f6\u95f4 \u90fd \u53ef\u4ee5 \u6709 \u5e26 \u548c \u4e0d\u5e26 \u81ea\u52a8 \u706f \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002","title":"\u59d4\u6d3e \u4ea4\u901a\u7ba1\u7406 \u5668 \u81ea\u52a8\u66f4\u65b0 \u8f66\u706f"},{"location":"adv_traffic_manager/#_18","text":"TM \u4e0d\u662f \u4e00\u4e2a \u9700\u8981 \u88ab \u6467\u6bc1 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 ; \u5f53 \u521b\u5efa \u5b83 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u505c\u6b62 \u65f6 \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002 \u8fd9 \u662f \u7531 API \u81ea\u52a8 \u7ba1\u7406 \u7684 \uff0c \u7528\u6237 \u65e0\u9700 \u6267\u884c \u4efb\u4f55 \u64cd\u4f5c \u3002 \u4f46\u662f \uff0c \u5728 \u5173\u95ed TM \u65f6 \uff0c \u7528\u6237 \u5fc5\u987b \u6467\u6bc1 \u7531 \u5b83 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u5728 \u5730\u56fe \u4e0a \u4fdd\u6301 \u4e0d \u52a8 \u3002 generate _ traffic . py \u811a\u672c \u4f1a \u81ea\u52a8 \u6267\u884c \u6b64 \u64cd\u4f5c : client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) \u7b14\u8bb0 \u5173\u95ed TM - Server \u5c06 \u5173\u95ed \u8fde\u63a5 \u5230 \u5b83 \u7684 TM - Clients \u3002 \u8981 \u4e86\u89e3 TM - Server \u548c TM - Client \u4e4b\u95f4 \u7684 \u533a\u522b , \u8bf7 \u9605\u8bfb Running multiple Traffic Managers \u3002","title":"\u505c\u6b62 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_19","text":"\u5728 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e0b \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u5728 \u76f8\u540c \u6761\u4ef6 \u4e0b \u4ea7\u751f \u76f8\u540c \u7684 \u7ed3\u679c \u548c \u884c\u4e3a \u3002 \u4e0d\u8981 \u5c06 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u8bba \u8bef\u8ba4 \u8ba4\u4e3a \u8bef\u8ba4\u4e3a \u662f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u867d\u7136 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u60a8 \u5b58\u50a8 \u4eff\u771f \u65e5\u5fd7 \u4ee5 \u8fdb\u884c \u56de\u653e \uff0c \u4f46 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u53ef \u786e\u4fdd \u53ea\u8981 \u7ef4\u6301 \u76f8\u540c \u7684 \u6761\u4ef6 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u811a\u672c \u7684 \u4e0d\u540c \u6267\u884c \u8fc7\u7a0b \u4e2d \u59cb\u7ec8 \u5177\u6709 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4ec5 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u53ef\u7528 \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u8f83 \u5c11 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5b9e\u73b0 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 \u5728 \u5f00\u59cb \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u540c\u6b65 \u6a21\u5f0f \u90e8\u5206 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8981 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \uff1a my _ tm . set _ random _ device _ seed ( seed _ value ) seed _ value \u662f \u4e00\u4e2a \u5c06 \u751f\u6210 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u7684 \u6570\u5b57 \u7684 int \u79cd\u5b50 \u79cd\u5b50\u6570 \u3002 \u8be5\u503c \u672c\u8eab \u5e76 \u4e0d \u76f8\u5173 \uff0c \u4f46 \u76f8\u540c \u7684 \u503c \u5c06 \u59cb\u7ec8 \u5bfc\u81f4 \u76f8\u540c \u7684 \u8f93\u51fa \u3002 \u5177\u6709 \u76f8\u540c \u6761\u4ef6 \u3001 \u4f7f\u7528 \u76f8\u540c \u79cd\u5b50 \u503c \u7684 \u4e24\u6b21 \u4eff\u771f \u5c06 \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \u3002 \u4e3a\u4e86 \u4fdd\u6301 \u591a\u6b21 \u4eff\u771f \u8fd0\u884c \u7684 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \uff0c \u5fc5\u987b \u4e3a \u6bcf\u6b21 \u4eff\u771f \u8bbe\u7f6e \u79cd\u5b50 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b21 \u91cd\u65b0 \u52a0\u8f7d \u4e16\u754c \u65f6 \uff0c \u90fd \u5fc5\u987b \u91cd\u65b0 \u8bbe\u7f6e \u79cd\u5b50 \uff1a client . reload _ world ( ) my _ tm . set _ random _ device _ seed ( seed _ value ) \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u79cd\u5b50 \u503c \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u6765 \u5728 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u4e2d \u6d4b\u8bd5 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 50 \u4e2a \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u586b\u5145 \u5730\u56fe \uff0c \u5e76 \u5c06 \u79cd\u5b50 \u8bbe\u7f6e \u4e3a \u4efb\u610f \u503c 9 \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 -- seed 9 \u8b66\u544a \u5728 \u542f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u6a21\u5f0f \u4e4b\u524d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5fc5\u987b \u5904\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \u540c\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u786e\u5b9a\u6027 \u6a21\u5f0f"},{"location":"adv_traffic_manager/#_20","text":"\u6df7\u5408 \u6a21\u5f0f \u5141\u8bb8 \u7528\u6237 \u7981\u7528 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u6216 \u6807\u8bb0 \u4e3a \u82f1\u96c4 \u7684 \u8f66\u8f86 \u7279\u5b9a \u534a\u5f84 \u4e4b\u5916 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7269\u7406 \u8ba1\u7b97 \u3002 \u8fd9 \u6d88\u9664 \u4e86 \u4eff\u771f \u4e2d \u7684 \u8f66\u8f86 \u7269\u7406 \u74f6\u9888 \u3002 \u7269\u7406 \u529f\u80fd \u88ab \u7981\u7528 \u7684 \u8f66\u8f86 \u5c06 \u901a\u8fc7 \u9690\u5f62 \u4f20\u9001 \u79fb\u52a8 \u3002 \u7ef4\u6301 \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u57fa\u672c \u8ba1\u7b97 \uff0c \u4ee5 \u786e\u4fdd \u4f4d\u7f6e \u66f4\u65b0 \u548c \u8f66\u8f86 \u901f\u5ea6 \u4fdd\u6301 \u771f\u5b9e \uff0c \u5e76\u4e14 \u8f66\u8f86 \u4e0a \u7269\u7406 \u8ba1\u7b97 \u7684 \u5207\u6362 \u662f \u6d41\u7545 \u7684 \u3002 \u6df7\u5408 \u6a21\u5f0f \u4f7f\u7528 Actor . set _ simulate _ physics ( ) \u65b9\u6cd5 \u6765 \u5207\u6362 \u7269\u7406 \u8ba1\u7b97 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u662f \u7981\u7528 \u7684 \u3002 \u6709 \u4e24\u4e2a \u9009\u9879 \u53ef\u4ee5 \u542f\u7528 \u5b83 \uff1a TrafficManager . set _ hybrid _ physics _ mode ( True ) \u2014 \u6b64 \u65b9\u6cd5 \u4e3a \u8c03\u7528 \u5b83 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5bf9\u8c61 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u4ee5 -- hybrid \u6807\u5fd7 \u8fd0\u884c generate _ traffic . py \u2014 \u6b64 \u793a\u4f8b \u811a\u672c \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u4e2d \u751f\u6210 \u8f66\u8f86 \u3002 \u5f53 \u6807\u5fd7 -- hybrid \u4f5c\u4e3a \u811a\u672c \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u65f6 \uff0c \u5b83 \u5c06 \u8fd9\u4e9b \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u6df7\u5408 \u6a21\u5f0f \u3002 \u8981 \u4fee\u6539 \u6df7\u5408 \u6a21\u5f0f \u7684 \u884c\u4e3a \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4e24\u4e2a \u53c2\u6570 \uff1a Radius ( \u9ed8\u8ba4 = 50 \u7c73 ) \u2014 \u534a\u5f84 \u76f8\u5bf9 \u4e8e \u6807\u8bb0 \u6709 \u82f1\u96c4 \u7684 \u8f66\u8f86 \u3002 \u8be5 \u534a\u5f84 \u5185 \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5c06 \u542f\u7528 \u7269\u7406 \u529f\u80fd \uff1b \u534a\u5f84 \u4e4b\u5916 \u7684 \u8f66\u8f86 \u5c06 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u4f7f\u7528 traffic _ manager . set _ hybrid _ physics _ radius ( r ) \u4fee\u6539 \u534a\u5f84 \u7684 \u5927\u5c0f \u3002 Hero vehicle \u2014 \u5e26\u6709 \u6807\u8bb0 role _ name = ' hero ' \u7684 \u8f66\u8f86 \u4f5c\u4e3a \u534a\u5f84 \u7684 \u4e2d\u5fc3 \u3002 \u5982\u679c \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u6240\u6709 \u8f66\u8f86 \u7684 \u7269\u7406 \u529f\u80fd \u5c06 \u88ab \u7981\u7528 \u3002 \u5982\u679c \u6709 \u4e0d\u6b62 \u4e00\u8f86 \u82f1\u96c4 \u8f66\u8f86 \uff0c \u5219 \u4f1a \u8003\u8651 \u6240\u6709 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u534a\u5f84 \uff0c \u4ece\u800c \u5728 \u542f\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u60c5\u51b5 \u4e0b \u521b\u5efa \u4e0d\u540c \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u4e0b\u9762 \u7684 \u526a\u8f91 \u663e\u793a \u4e86 \u6df7\u5408 \u6a21\u5f0f \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u65f6 \u5982\u4f55 \u542f\u7528 \u548c \u7981\u7528 \u7269\u7406 \u529f\u80fd \u3002 \u82f1\u96c4 \u8f66\u8f86 \u6807\u6709 \u7ea2\u8272 \u65b9\u5757 \u3002 \u7981\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u8f66\u8f86 \u6807\u6709 \u84dd\u8272 \u65b9\u5757 \u3002 \u5f53 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u5f71\u54cd \u534a\u5f84 \u5185\u65f6 \uff0c \u542f\u7528 \u7269\u7406 \u529f\u80fd \u5e76\u4e14 \u6807\u7b7e \u53d8\u4e3a \u7eff\u8272 \u3002","title":"\u6df7\u5408 \u7269\u7406\u6a21\u5f0f"},{"location":"adv_traffic_manager/#_21","text":"","title":"\u8fd0\u884c \u591a\u4e2a \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"adv_traffic_manager/#_22","text":"Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6307\u5b9a \u8981 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u6765 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u7aef\u53e3 \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 8000 \u7aef\u53e3 \u3002 \u5982\u679c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u66f4 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5b83\u4eec \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u800c \u539f\u59cb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u6210\u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u8fd9\u4e9b \u6807\u9898 \u5b9a\u4e49 \u4e86 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u65b9\u5f0f \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1\u7aef \u548c \u5ba2\u6237\u7aef"},{"location":"adv_traffic_manager/#_23","text":"\u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fde\u63a5 \u5230 \u7a7a\u95f2 \u7aef\u53e3 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u7136\u540e \u5176\u4ed6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff09 \u8fde\u63a5 \u5230 \u5b83 \u6b63\u5728 \u8fd0\u884c \u7684 \u540c\u4e00 \u7aef\u53e3 \uff0c \u5219 \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5c06 \u89c4\u5b9a \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \uff0c \u4f8b\u5982 \uff0c \u5982\u679c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u505c\u6b62 \uff0c \u5219 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u505c\u6b62 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6bcf\u4e2a \u7aef\u53e3 \u90fd \u8fde\u63a5 \u5230 \u4e0d\u540c \u4e14 \u90fd \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \uff1a tm01 = client01 . get _ trafficmanager ( ) # tm01 -- > tm01 ( p = 8000 ) tm02 = client02 . get _ trafficmanager ( 5000 ) # tm02 ( p = 5000 ) -- > tm02 ( p = 5000 )","title":"\u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u670d\u52a1\u7aef"},{"location":"adv_traffic_manager/#_24","text":"\u5f53 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff08 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \uff09 \u5360\u7528 \u7684 \u7aef\u53e3 \u65f6 \uff0c \u5c31 \u4f1a \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u884c\u4e3a \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u51b3\u5b9a \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u521b\u5efa \u4e24\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf \u4e00\u4e2a \u90fd \u4e0e \u4e0a \u4e00\u8282 \u4e2d \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8fde\u63a5 \u3002 tm03 = client03 . get _ trafficmanager ( ) # tm03 -- > tm01 ( p = 8000 ) . tm04 = client04 . get _ trafficmanager ( 5000 ) # tm04 ( p = 5000 ) -- > tm02 ( p = 5000 ) Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u8fc7 \u5b58\u50a8 \u94fe\u63a5 \u5230 \u5b83\u4eec \u7684 \u7aef\u53e3 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef IP \uff08 \u5bf9 \u7528\u6237 \u9690\u85cf \uff09 \u6765 \u4fdd\u5b58 \u6240\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u7684 \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u3002 \u76ee\u524d \u65e0\u6cd5 \u68c0\u67e5 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u5df2 \u521b\u5efa \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5c1d\u8bd5 \u521b\u5efa \u5b9e\u4f8b \u65f6 \u59cb\u7ec8 \u4f1a \u5c1d\u8bd5 \u8fde\u63a5 \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u521b\u5efa \u65b0 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u6216 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u5ba2\u6237\u7aef"},{"location":"adv_traffic_manager/#_25","text":"\u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4eff\u771f \u4e2d \uff0c \u5728 \u540c\u4e00 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a TM \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a TM \u5c06 \u662f TM \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5176\u4f59 \u7684 \u5c06 \u662f \u8fde\u63a5 \u5230 \u5b83 \u7684 TM \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 TM - Server \u5c06 \u89c4\u5b9a \u6240\u6709 TM \u5b9e\u4f8b \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Client","title":"\u591a \u5ba2\u6237\u7aef \u4eff\u771f"},{"location":"adv_traffic_manager/#_26","text":"\u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u4e2d \uff0c \u5728 \u4e0d\u540c \u7684 \u7aef\u53e3 \u4e0a \u521b\u5efa \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u90fd \u4f1a \u63a7\u5236 \u81ea\u5df1 \u7684 \u884c\u4e3a \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 terminal 2 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4550 # TM - Server B","title":"\u591a \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f"},{"location":"adv_traffic_manager/#_27","text":"\u591a\u91cd \u4eff\u771f \u662f \u6307 \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u65f6 \u8fd0\u884c \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9700\u8981 \u8fde\u63a5 \u5230 \u76f8\u5173 \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u53e3 \u3002 \u53ea\u8981 \u8ba1\u7b97 \u80fd\u529b \u8ba1\u7b97\u80fd\u529b \u5141\u8bb8 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u4ee5 \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u4eff\u771f \uff0c \u4e0d\u4f1a \u51fa\u73b0 \u4efb\u4f55 \u95ee\u9898 \uff1a terminal 1 : . / CarlaUE4 . sh - carla - rpc - port = 4000 # simulation A terminal 2 : . / CarlaUE4 . sh - carla - rpc - port = 5000 # simulation B terminal 3 : python3 generate _ traffic . py -- port 4000 -- tm - port 4050 # TM - Server A connected to simulation A terminal 4 : python3 generate _ traffic . py -- port 5000 -- tm - port 5050 # TM - Server B connected to simulation B \u591a\u91cd \u4eff\u771f \u7684 \u6982\u5ff5 \u72ec\u7acb \u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u672c\u8eab \u3002 \u4e0a\u9762 \u7684 \u793a\u4f8b \u5e76\u884c \u8fd0\u884c \u4e24\u4e2a Carla \u4eff\u771f A \u548c B \u3002 \u5728 \u6bcf\u4e2a \u4eff\u771f \u4e2d \uff0c \u90fd \u72ec\u7acb \u521b\u5efa \u4e00\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u4eff\u771f A \u53ef\u4ee5 \u8fd0\u884c \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u7a0b\u5e8f \uff0c \u800c \u4eff\u771f B \u5219 \u8fd0\u884c \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6216 \u6839\u672c \u4e0d \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e0a\u8ff0 \u8bbe\u7f6e \u6700 \u53ef\u80fd \u51fa\u73b0 \u7684 \u95ee\u9898 \u662f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c1d\u8bd5 \u8fde\u63a5 \u5230 \u672a \u5728 \u6240\u9009 \u4eff\u771f \u4e0a \u8fd0\u884c \u7684 \u73b0\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5982\u679c \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \uff0c \u5c06\u4f1a \u51fa\u73b0 \u9519\u8bef \u6d88\u606f \uff0c \u5e76\u4e14 \u8fde\u63a5 \u5c06 \u88ab \u4e2d\u6b62 \uff0c \u4ee5 \u9632\u6b62 \u4eff\u771f \u4e4b\u95f4 \u7684 \u5e72\u6270 \u3002","title":"\u591a\u91cd \u4eff\u771f"},{"location":"adv_traffic_manager/#_28","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u8ba1 \u4e3a \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5de5\u4f5c \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u624d\u80fd \u6b63\u5e38 \u8fd0\u884c \u3002 \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u610f\u5916 \u548c \u4e0d\u826f \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u5219 \u4eff\u771f \u5e94 \u81f3\u5c11 \u4ee5 20 - 30 fps \u8fd0\u884c \u3002 \u4e0b\u9762 \u7684 \u811a\u672c \u6f14\u793a \u4e86 \u5982\u4f55 \u5c06 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a ... # Set the simulation to sync mode init _ settings = world . get _ settings ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True # After that , set the TM to sync mode my _ tm . set _ synchronous _ mode ( True ) ... # Tick the world in the same client world . apply _ settings ( init _ settings ) world . tick ( ) ... # Always disable sync mode before the script ends to prevent the server blocking whilst waiting for a tick settings . synchronous _ mode = False my _ tm . set _ synchronous _ mode ( False ) \u793a\u4f8b \u811a\u672c generate _ traffic . py \u542f\u52a8 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76\u7528 \u8f66\u8f86 \u548c \u884c\u4eba \u586b\u5145 \u5730\u56fe \u3002 \u5b83 \u81ea\u52a8 \u5c06 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u548c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff1a cd PythonAPI / examples python3 generate _ traffic . py - n 50 \u5982\u679c \u9700\u8981 \u5f02\u6b65 \u6a21\u5f0f \uff0c \u8bf7 \u5728 \u8fd0\u884c \u4e0a\u8ff0 \u547d\u4ee4 \u65f6 \u4f7f\u7528 -- async \u6807\u5fd7 \u3002 \u5982\u679c \u591a\u4e2a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u540c\u6b65 \u5c06\u4f1a \u5931\u8d25 \u3002 \u8bf7 \u9075\u5faa \u4ee5\u4e0b \u51c6\u5219 \u4ee5 \u907f\u514d \u51fa\u73b0 \u907f\u514d\u51fa\u73b0 \u95ee\u9898 \uff1a \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u5e94 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u591a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u60c5\u51b5 \u4e0b \uff0c \u53ea \u9700 \u5c06 \u4e00\u53f0 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u670d\u52a1 \u670d\u52a1\u7aef \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 ScenarioRunner \u6a21\u5757 \u81ea\u52a8 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 ScenarioRunner \u5185 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u8b66\u544a \u5728 \u7ba1\u7406 \u65f6\u949f \u7684 \u811a\u672c \u5b8c\u6210 \u4e4b\u524d \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff08 \u5bf9\u4e8e \u4e16\u754c \u548c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \uff0c \u4ee5 \u9632\u6b62 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u963b\u585e \uff0c \u6c38\u8fdc \u7b49\u5f85 \u65f6\u949f \u3002","title":"\u540c\u6b65 \u6a21\u5f0f"},{"location":"adv_traffic_manager/#_29","text":"\u8981 \u4e86\u89e3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5982\u4f55 \u5728 \u5927 \u5730\u56fe \u4e0a \u5de5\u4f5c \uff0c \u8bf7 \u52a1\u5fc5 \u9996\u5148 \u9605\u8bfb \u6b64\u5904 \u7684 \u6587\u6863 \u6765 \u719f\u6089 \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u5728 \u5927 \u5730\u56fe \u4e2d \u7684 \u884c\u4e3a \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \uff1a \u4e0d \u5b58\u5728 \u82f1\u96c4 \u8f66\u8f86 \u6240\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u90fd \u5c06 \u88ab \u89c6\u4e3a \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f11\u7720 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u50cf \u6df7\u5408 \u6a21\u5f0f \u4e00\u6837 \u5728 \u5730\u56fe \u4e0a \u79fb\u52a8 \u3002 \u7531\u4e8e \u6ca1\u6709 \u82f1\u96c4 \u8f66\u8f86 \u6765 \u89e6\u53d1 \u5730\u56fe \u74e6\u7247 \u6d41 \uff0c \u56e0\u6b64 \u4e0d\u4f1a \u6e32\u67d3 \u8f66\u8f86 \u3002 \u5448\u73b0 \u82f1\u96c4 \u8f66\u8f86 \u5f53 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u8d85\u8fc7 actor _ active _ distance \u5b9a\u4e49 \u7684 \u503c\u65f6 \uff0c \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 actor _ active _ distance \u3002 \u8981 \u8bbe\u7f6e \u6b64\u503c \uff0c \u8bf7 \u4f7f\u7528 Python API \uff1a settings = world . get _ settings ( ) # Actors will become dormant 2km away from the ego vehicle settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \uff0c \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u5728 \u82f1\u96c4 \u8f66\u8f86 \u5468\u56f4 \u4e0d\u65ad \u91cd\u751f \uff0c \u800c \u4e0d\u662f \u5728 \u5730\u56fe \u7684 \u5176\u4ed6 \u90e8\u5206 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53ef\u4ee5 \u4f7f\u7528 set _ respawn _ dormant _ vehicles Python API \u4e2d \u7684 \u65b9\u6cd5 \u914d\u7f6e \u6b64 \u9009\u9879 \u3002 \u8f66\u8f86 \u5c06 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u7528\u6237 \u5b9a\u4e49 \u8ddd\u79bb \u5185 \u91cd\u751f \u3002 \u53ef \u91cd\u751f \u8ddd\u79bb \u7684 \u4e0a\u4e0b \u8fb9\u754c \u53ef\u4ee5 \u4f7f\u7528 set _ boundaries _ respawn _ dormant _ vehicles \u65b9\u6cd5 \u8bbe\u7f6e \u3002 \u6ce8\u610f \uff0c \u4e0a \u8ddd\u79bb \u4e0d\u4f1a \u5927\u4e8e \u5927 \u5730\u56fe \u7684 \u74e6\u7247 \u6d41 \u8ddd\u79bb \uff0c \u8ddd\u79bb \u6700\u5c0f \u4e3a 20m \u3002 \u8981 \u4f7f \u82f1\u96c4 \u8f66\u8f86 25 \u7c73 \u548c 700 \u7c73 \u8303\u56f4 \u5185 \u7684 \u4f11\u7720 \u8f66\u8f86 \u91cd\u751f \uff1a my _ tm . set _ respawn _ dormant _ vehicles ( True ) my _ tm . set _ boundaries _ respawn _ dormant _ vehicles ( 25 , 700 ) \u5982\u679c \u78b0\u649e \u963b\u6b62 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u91cd\u8bd5 \u4e0b \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u3002 \u5982\u679c \u4f11\u7720 \u8f66\u8f86 \u6ca1\u6709 \u91cd\u751f \uff0c \u5b83\u4eec \u7684 \u884c\u4e3a \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u662f\u5426 \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \u3002 \u5982\u679c \u542f\u7528 \u4e86 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5728 \u5730\u56fe \u4e0a \u4f20\u9001 \u3002 \u5982\u679c \u672a \u542f\u7528 \u6df7\u5408 \u6a21\u5f0f \uff0c \u5219 \u4e0d\u4f1a \u8ba1\u7b97 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7269\u7406 \u7279\u6027 \uff0c \u5e76\u4e14 \u5b83\u4eec \u5c06 \u4fdd\u6301 \u5728 \u539f \u4f4d\u7f6e \uff0c \u76f4\u5230 \u4e0d\u518d \u4f11\u7720 \u3002 \u5982\u679c \u4f60 \u6709 \u4efb\u4f55 \u5173\u4e8e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u95ee\u9898 \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5927 \u5730\u56fe \u4e2d \u7684 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"bp_library/","text":"\u84dd \u56fe\u5e93 \u84dd \u56fe\u5e93 ( carla . BlueprintLibrary ) \u662f Carla \u4e2d \u7528\u4e8e \u53ef\u7528 \u7684 \u6240\u6709 \u5185\u5bb9 carla . ActorBlueprint \u53ca\u5176 \u5c5e\u6027 ( carla . ActorAttribute ) \u7684 \u6458\u8981 \u3002 \u4ee5\u4e0b \u662f \u6253\u5370 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff1a blueprints = [ bp for bp in world . get _ blueprint _ library ( ) . filter ( ' * ' ) ] for blueprint in blueprints : print ( blueprint . id ) for attr in blueprint : print ( ' - { } ' . format ( attr ) ) \u67e5\u770b \u84dd\u56fe \u7684 \u4ecb\u7ecd \u3002 \u63a7\u5236 \u63a7\u5236\u5668 controller . ai . walker \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 sensor . camera . depth \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . dvs \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 log _ eps ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 negative _ threshold ( Float ) - \u53ef \u4fee\u6539 positive _ threshold ( Float ) - \u53ef \u4fee\u6539 refractory _ period _ ns ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 sigma _ negative _ threshold ( Float ) - \u53ef \u4fee\u6539 sigma _ positive _ threshold ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 use _ log ( Bool ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . optical _ flow \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . rgb \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . semantic _ segmentation \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast \u5c5e\u6027 \uff1a atmosphere _ attenuation _ rate ( Float ) - \u53ef \u4fee\u6539 channels ( Int ) - \u53ef \u4fee\u6539 dropoff _ general _ rate ( Float ) - \u53ef \u4fee\u6539 dropoff _ intensity _ limit ( Float ) - \u53ef \u4fee\u6539 dropoff _ zero _ intensity ( Float ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 noise _ stddev ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast _ semantic \u5c5e\u6027 \uff1a channels ( Int ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . collision \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . gnss \u5c5e\u6027 \uff1a noise _ alt _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ alt _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . imu \u5c5e\u6027 \uff1a noise _ accel _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . lane _ invasion \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . obstacle \u5c5e\u6027 \uff1a debug _ linetrace ( Bool ) - \u53ef \u4fee\u6539 distance ( Float ) - \u53ef \u4fee\u6539 hit _ radius ( Float ) - \u53ef \u4fee\u6539 only _ dynamics ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . radar \u5c5e\u6027 \uff1a horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 vertical _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . rss \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 static static . prop . advertisement \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . atm \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barbeque \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barrel \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bike helmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bin \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . briefcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . busstop \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . calibrator \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrierend \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothcontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothesline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . colacan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . constructioncone \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . container \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . doghouse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . fountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gardenlamp \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . glasscontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gnome \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . guitarcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . ironplank \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . kiosk _ 01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mailbox \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . maptable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mesh \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 static . prop . mobile \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . motorhelmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 0 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 1 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . pergola \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot07 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot08 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticchair \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plastictable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . platformgarbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . purse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingcart \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingtrolley \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . slide \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetfountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swing \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swingcouch \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . table \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficwarning \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trampoline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . travelcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . vendingmachine \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . wateringcan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . trigger . friction \u5c5e\u6027 \uff1a extent _ x ( Float ) - \u53ef \u4fee\u6539 extent _ y ( Float ) - \u53ef \u4fee\u6539 extent _ z ( Float ) - \u53ef \u4fee\u6539 friction ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 vehicle vehicle . audi . a2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . etron \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . tt \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bh . crossbike \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bmw . grandtourer \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . carlacola \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . firetruck \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . chevrolet . impala \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . citroen . c3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . diamondback . century \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . ambulance \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . crown \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . mustang \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . gazelle . omafiets \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . harley - davidson . low _ rider \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . jeep . wrangler _ rubicon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . kawasaki . ninja \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2017 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . sprinter \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . micro . microlino \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . micra \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . seat . leon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . cybertruck \u5c5e\u6027 \uff1a generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . model3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . toyota . prius \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . vespa . zx125 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . yamaha . yzf \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 walker walker . pedestrian.0001 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0002 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0003 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0004 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0005 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0006 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0007 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0008 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0009 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0010 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0011 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0012 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0013 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0014 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0015 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0016 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0017 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0018 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0019 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0020 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0021 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0022 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0023 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0024 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0025 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0026 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0027 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0028 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0029 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0030 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0031 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0032 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0033 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0034 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0035 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0036 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0037 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0038 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0039 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0040 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0041 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0042 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0043 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0044 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0045 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0046 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0047 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0048 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539","title":"\u84dd \u56fe\u5e93"},{"location":"bp_library/#_1","text":"\u84dd \u56fe\u5e93 ( carla . BlueprintLibrary ) \u662f Carla \u4e2d \u7528\u4e8e \u53ef\u7528 \u7684 \u6240\u6709 \u5185\u5bb9 carla . ActorBlueprint \u53ca\u5176 \u5c5e\u6027 ( carla . ActorAttribute ) \u7684 \u6458\u8981 \u3002 \u4ee5\u4e0b \u662f \u6253\u5370 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff1a blueprints = [ bp for bp in world . get _ blueprint _ library ( ) . filter ( ' * ' ) ] for blueprint in blueprints : print ( blueprint . id ) for attr in blueprint : print ( ' - { } ' . format ( attr ) ) \u67e5\u770b \u84dd\u56fe \u7684 \u4ecb\u7ecd \u3002","title":"\u84dd \u56fe\u5e93"},{"location":"bp_library/#_2","text":"controller . ai . walker \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539","title":"\u63a7\u5236\u5668"},{"location":"bp_library/#_3","text":"sensor . camera . depth \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . dvs \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 log _ eps ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 negative _ threshold ( Float ) - \u53ef \u4fee\u6539 positive _ threshold ( Float ) - \u53ef \u4fee\u6539 refractory _ period _ ns ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 sigma _ negative _ threshold ( Float ) - \u53ef \u4fee\u6539 sigma _ positive _ threshold ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 use _ log ( Bool ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . optical _ flow \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . camera . rgb \u5c5e\u6027 \uff1a black _ clip ( Float ) - \u53ef \u4fee\u6539 blade _ count ( Int ) - \u53ef \u4fee\u6539 bloom _ intensity ( Float ) - \u53ef \u4fee\u6539 blur _ amount ( Float ) - \u53ef \u4fee\u6539 blur _ radius ( Float ) - \u53ef \u4fee\u6539 calibration _ constant ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ intensity ( Float ) - \u53ef \u4fee\u6539 chromatic _ aberration _ offset ( Float ) - \u53ef \u4fee\u6539 enable _ postprocess _ effects ( Bool ) - \u53ef \u4fee\u6539 exposure _ compensation ( Float ) - \u53ef \u4fee\u6539 exposure _ max _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ min _ bright ( Float ) - \u53ef \u4fee\u6539 exposure _ mode ( String ) - \u53ef \u4fee\u6539 exposure _ speed _ down ( Float ) - \u53ef \u4fee\u6539 exposure _ speed _ up ( Float ) - \u53ef \u4fee\u6539 focal _ distance ( Float ) - \u53ef \u4fee\u6539 fov ( Float ) - \u53ef \u4fee\u6539 fstop ( Float ) - \u53ef \u4fee\u6539 gamma ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 iso ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ flare _ intensity ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 min _ fstop ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ intensity ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ max _ distortion ( Float ) - \u53ef \u4fee\u6539 motion _ blur _ min _ object _ screen _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 shoulder ( Float ) - \u53ef \u4fee\u6539 shutter _ speed ( Float ) - \u53ef \u4fee\u6539 slope ( Float ) - \u53ef \u4fee\u6539 temp ( Float ) - \u53ef \u4fee\u6539 tint ( Float ) - \u53ef \u4fee\u6539 toe ( Float ) - \u53ef \u4fee\u6539 white _ clip ( Float ) - \u53ef \u4fee\u6539 sensor . camera . semantic _ segmentation \u5c5e\u6027 \uff1a fov ( Float ) - \u53ef \u4fee\u6539 image _ size _ x ( Int ) - \u53ef \u4fee\u6539 image _ size _ y ( Int ) - \u53ef \u4fee\u6539 lens _ circle _ falloff ( Float ) - \u53ef \u4fee\u6539 lens _ circle _ multiplier ( Float ) - \u53ef \u4fee\u6539 lens _ k ( Float ) - \u53ef \u4fee\u6539 lens _ kcube ( Float ) - \u53ef \u4fee\u6539 lens _ x _ size ( Float ) - \u53ef \u4fee\u6539 lens _ y _ size ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast \u5c5e\u6027 \uff1a atmosphere _ attenuation _ rate ( Float ) - \u53ef \u4fee\u6539 channels ( Int ) - \u53ef \u4fee\u6539 dropoff _ general _ rate ( Float ) - \u53ef \u4fee\u6539 dropoff _ intensity _ limit ( Float ) - \u53ef \u4fee\u6539 dropoff _ zero _ intensity ( Float ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 noise _ stddev ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . lidar . ray _ cast _ semantic \u5c5e\u6027 \uff1a channels ( Int ) - \u53ef \u4fee\u6539 horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 lower _ fov ( Float ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 rotation _ frequency ( Float ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 upper _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . collision \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . gnss \u5c5e\u6027 \uff1a noise _ alt _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ alt _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lat _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ bias ( Float ) - \u53ef \u4fee\u6539 noise _ lon _ stddev ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . imu \u5c5e\u6027 \uff1a noise _ accel _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ accel _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ bias _ z ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ x ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ y ( Float ) - \u53ef \u4fee\u6539 noise _ gyro _ stddev _ z ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . lane _ invasion \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 sensor . other . obstacle \u5c5e\u6027 \uff1a debug _ linetrace ( Bool ) - \u53ef \u4fee\u6539 distance ( Float ) - \u53ef \u4fee\u6539 hit _ radius ( Float ) - \u53ef \u4fee\u6539 only _ dynamics ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 sensor . other . radar \u5c5e\u6027 \uff1a horizontal _ fov ( Float ) - \u53ef \u4fee\u6539 noise _ seed ( Int ) - \u53ef \u4fee\u6539 points _ per _ second ( Int ) - \u53ef \u4fee\u6539 range ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 sensor _ tick ( Float ) - \u53ef \u4fee\u6539 vertical _ fov ( Float ) - \u53ef \u4fee\u6539 sensor . other . rss \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539","title":"\u4f20\u611f\u5668"},{"location":"bp_library/#static","text":"static . prop . advertisement \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . atm \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barbeque \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . barrel \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bench03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bike helmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . bin \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . box03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . briefcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . brokentile04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . busstop \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . calibrator \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . chainbarrierend \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothcontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . clothesline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . colacan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . constructioncone \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . container \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . creasedbox03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . dirtdebris03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . doghouse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . fountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . garbage06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gardenlamp \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . glasscontainer \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . gnome \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . guitarcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . ironplank \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . kiosk _ 01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mailbox \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . maptable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . mesh \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 static . prop . mobile \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . motorhelmet \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 0 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . omri - 1 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . pergola \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot06 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot07 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plantpot08 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plasticchair \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . plastictable \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . platformgarbage01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . purse \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingcart \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . shoppingtrolley \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . slide \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetbarrier \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetfountain \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . streetsign04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swing \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . swingcouch \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . table \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficcone02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trafficwarning \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trampoline \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashbag \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan01 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan02 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan03 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan04 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . trashcan05 \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . travelcase \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . vendingmachine \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . prop . wateringcan \u5c5e\u6027 \uff1a role _ name ( String ) - \u53ef \u4fee\u6539 size ( String ) static . trigger . friction \u5c5e\u6027 \uff1a extent _ x ( Float ) - \u53ef \u4fee\u6539 extent _ y ( Float ) - \u53ef \u4fee\u6539 extent _ z ( Float ) - \u53ef \u4fee\u6539 friction ( Float ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539","title":"static"},{"location":"bp_library/#vehicle","text":"vehicle . audi . a2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . etron \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . audi . tt \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bh . crossbike \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . bmw . grandtourer \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . carlacola \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . carlamotors . firetruck \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . chevrolet . impala \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . citroen . c3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . diamondback . century \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . dodge . charger _ police _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . ambulance \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . crown \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . ford . mustang \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . gazelle . omafiets \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . harley - davidson . low _ rider \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . jeep . wrangler _ rubicon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . kawasaki . ninja \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2017 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . lincoln . mkz _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . coupe _ 2020 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mercedes . sprinter \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . micro . microlino \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . mini . cooper _ s _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . micra \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . nissan . patrol _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . seat . leon \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . cybertruck \u5c5e\u6027 \uff1a generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . tesla . model3 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . toyota . prius \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . vespa . zx125 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . volkswagen . t2 _ 2021 \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539 vehicle . yamaha . yzf \u5c5e\u6027 \uff1a color ( RGBColor ) - \u53ef \u4fee\u6539 driver _ id ( Int ) - \u53ef \u4fee\u6539 generation ( Int ) number _ of _ wheels ( Int ) object _ type ( String ) role _ name ( String ) - \u53ef \u4fee\u6539 sticky _ control ( Bool ) - \u53ef \u4fee\u6539","title":"vehicle"},{"location":"bp_library/#walker","text":"walker . pedestrian.0001 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0002 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0003 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0004 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0005 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0006 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0007 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0008 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0009 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0010 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0011 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0012 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0013 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0014 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0015 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0016 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0017 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0018 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0019 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0020 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0021 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0022 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0023 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0024 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0025 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0026 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0027 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0028 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0029 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0030 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0031 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0032 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0033 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0034 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0035 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0036 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0037 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0038 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0039 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0040 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0041 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0042 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0043 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0044 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0045 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0046 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0047 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539 walker . pedestrian.0048 \u5c5e\u6027 \uff1a age ( String ) gender ( String ) generation ( Int ) is _ invincible ( Bool ) - \u53ef \u4fee\u6539 role _ name ( String ) - \u53ef \u4fee\u6539 speed ( Float ) - \u53ef \u4fee\u6539","title":"walker"},{"location":"build_carla/","text":"\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7528\u6237 \u53ef\u4ee5 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u4ee5 \u7528\u4e8e \u5f00\u53d1 \u76ee\u7684 \u3002 \u5982\u679c \u60a8 \u60f3\u8981 \u5411 Carla \u6dfb\u52a0 \u989d\u5916 \u7684 \u7279\u6027 \u6216 \u529f\u80fd \uff0c \u6216\u8005 \u60f3\u8981 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u521b\u5efa \u8d44\u6e90 \u6216 \u64cd\u4f5c \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5efa\u8bae\u60a8 \u8fd9\u6837 \u505a \u3002 \u6784\u5efa \u8bf4\u660e \u9002\u7528 \u4e8e Linux \u548c Windows \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u90e8\u7f72 \u5728 AWS \u3001 Azure \u6216 Google \u4e91 \u670d\u52a1 \u4e2d \u3002 \u8bbf\u95ee Carla GitHub \u5e76 \u514b\u9686 \u5b58\u50a8 \u5e93 \u3002 Linux \u6784\u5efa Windows \u6784\u5efa Docker \u5e26 \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u66f4\u65b0 Carla \u6784\u5efa \u7cfb\u7edf \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898","title":"\u6784\u5efa Carla"},{"location":"build_carla/#carla","text":"\u7528\u6237 \u53ef\u4ee5 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u4ee5 \u7528\u4e8e \u5f00\u53d1 \u76ee\u7684 \u3002 \u5982\u679c \u60a8 \u60f3\u8981 \u5411 Carla \u6dfb\u52a0 \u989d\u5916 \u7684 \u7279\u6027 \u6216 \u529f\u80fd \uff0c \u6216\u8005 \u60f3\u8981 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u521b\u5efa \u8d44\u6e90 \u6216 \u64cd\u4f5c \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5efa\u8bae\u60a8 \u8fd9\u6837 \u505a \u3002 \u6784\u5efa \u8bf4\u660e \u9002\u7528 \u4e8e Linux \u548c Windows \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u90e8\u7f72 \u5728 AWS \u3001 Azure \u6216 Google \u4e91 \u670d\u52a1 \u4e2d \u3002 \u8bbf\u95ee Carla GitHub \u5e76 \u514b\u9686 \u5b58\u50a8 \u5e93 \u3002 Linux \u6784\u5efa Windows \u6784\u5efa Docker \u5e26 \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u66f4\u65b0 Carla \u6784\u5efa \u7cfb\u7edf \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898","title":"\u4ece \u6e90\u4ee3\u7801 \u6784\u5efa Carla"},{"location":"build_docker/","text":"Docker \u4e2d \u7684 Carla \u7528\u6237 \u53ef\u4ee5 \u62c9\u53d6 \u57fa\u4e8e Carla \u7248\u672c \u7684 \u6620\u50cf \u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u4ee5\u4e0b \u7528\u6237 \u5f88 \u6709\u7528 \uff1a \u60f3\u8981 \u8fd0\u884c Carla \u800c \u4e0d \u9700\u8981 \u5b89\u88c5 \u6240\u6709 \u4f9d\u8d56 \u9879 \u8fd0\u884c \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u6267\u884c GPU \u6620\u5c04 \u5728 \u6ca1\u6709 \u663e\u793a \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u8fd0\u884c Carla \u56fe\u50cf \u7684 \u8981\u6c42 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 OpenGL \u548c Vulkan \u56fe\u5f62 API \u8fd0\u884c \u56fe\u50cf \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla \u79bb\u5c4f \u6a21\u5f0f \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u5b89\u88c5 \uff1a Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 NVIDIA Container Toolkit : NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u662f \u4e00\u4e2a \u5e93 \u548c \u5de5\u5177 \u5de5\u5177\u96c6 \uff0c \u53ef \u5c06 NVIDIA \u56fe\u5f62 \u8bbe\u5907 \u516c\u5f00 \u7ed9 Linux \u5bb9\u5668 \u3002 \u5b83 \u4e13\u4e3a \u5728 Linux \u4e3b\u673a \u7cfb\u7edf \u6216 \u9002\u7528 \u4e8e Linux \u7684 Windows \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7248\u672c 2 \u4e0b \u7684 Linux \u53d1\u884c \u53d1\u884c\u7248 \u4e2d \u8fd0\u884c \u7684 Linux \u5bb9\u5668 \u800c \u8bbe\u8ba1 \u3002 nvidia - docker2 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u5b89\u88c5 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 CentOS \u5b89\u88c5 Docker \uff1a yum install - y yum - utils device - mapper - persistent - data lvm2 yum - config - manager -- add - repo http : / / mirrors . aliyun . com / docker - ce / linux / centos / docker - ce . repo yum list docker - ce -- showduplicates | sort - r yum - y install docker - ce - 18.03 . 1 . ce docker \u542f\u52a8 \u51fa\u9519 \uff1a failed to start daemon : error initializing graphdriver : driver not supported \u89e3\u51b3 \uff1a rm - rf / var / lib / docker / * systemctl restart docker CentOS \u5b89\u88c5 NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u547d\u4ee4 \uff1a curl - s - L https : / / nvidia . github . io / libnvidia - container / stable / rpm / nvidia - container - toolkit . repo | \\ tee / etc / yum . repos . d / nvidia - container - toolkit . repo yum - config - manager -- enable nvidia - container - toolkit - experimental yum install - y nvidia - container - toolkit nvidia - ctk runtime configure -- runtime = docker \u7b14\u8bb0 Docker \u9700\u8981 sudo \u624d\u80fd \u8fd0\u884c \u3002 \u6309\u7167 \u672c \u6307\u5357 \u5c06 \u7528\u6237 \u6dfb\u52a0 \u5230 docker sudo \u7ec4 \u3002 \u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla 1 . \u62c9\u53d6 Carla \u955c\u50cf \u3002 \u60a8 \u53ef\u4ee5 \u63d0\u53d6 \u6700\u65b0 \u7684 Carla \u6620\u50cf \u6216 \u7279\u5b9a \u7684 \u53d1\u884c \u7248\u672c \u3002 \u6700\u65b0 \u955c\u50cf \u662f \u6307 \u6700\u65b0 \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8981\u62c9\u53d6 \u6620\u50cf \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \uff1a # \u62c9\u53d6 \u6700\u65b0 \u7684 \u955c\u50cf docker pull carlasim / carla : latest # \u62c9\u53d6 \u7279\u5b9a \u7684 \u7248\u672c docker pull carlasim / carla : 0.9 . 12 2 . \u8fd0\u884c Carla \u5bb9\u5668 \u3002 \u4e0d\u540c \u7248\u672c \u7684 Carla \u652f\u6301 \u4e0d\u540c \u7684 \u56fe\u5f62 API \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5f71\u54cd Docker \u955c\u50cf \u7684 \u8fd0\u884c \u6761\u4ef6 \uff1a 0.9 . 12 \u4ec5 \u652f\u6301 Vulkan 0.9 . 7 + \u540c\u65f6 \u652f\u6301 Vulkan \u548c OpenGL \u3002 Carla 0.9 . 12 \u8981 \u4f7f\u7528 \u663e\u793a \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh \u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh - RenderOffScreen Carla 0.9 . 7 \u81f3 0.9 . 11 \u8981 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY - e SDL _ VIDEODRIVER = x11 - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 11 / bin / bash . / CarlaUE4 . sh - vulkan < - additonal - carla - flags > \u7b14\u8bb0 \u53ea\u8981 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6709 \u663e\u793a \u663e\u793a\u5668 \uff0c \u6b64 \u547d\u4ee4 \u5c06 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \u6620\u50cf \u3002 \u6709\u5173 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Vulkan \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u8981 \u4f7f\u7528 OpenGL \u8fd0\u884c Carla \uff1a docker run - e DISPLAY = $ DISPLAY -- net = host -- gpus all -- runtime = nvidia carlasim / carla : < version > / bin / bash CarlaUE4 . sh - opengl < - additonal - carla - flags > 3 . \uff08 \u53ef \u9009 \uff09 \u914d\u7f6e Docker \u6807\u5fd7 \u3002 \u4e0a\u9762 \u7684 \u547d\u4ee4 \u4f7f\u7528 \u4e86 \u4e00\u4e9b Docker \u6807\u5fd7 \uff0c \u53ef\u4ee5 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u8fdb\u884c \u914d\u7f6e \uff1a Networking : -- net = host \u53c2\u6570 \u5c06 \u5141\u8bb8 \u5bb9\u5668 \u5171\u4eab \u4e3b\u673a \u7684 \u6574\u4e2a \u7f51\u7edc \u3002 \u5982\u679c \u60a8 \u5e0c\u671b \u5c06 \u4e3b\u673a \u4e0a \u7684 \u7279\u5b9a \u7aef\u53e3 \u6620\u5c04 \u5230 \u5bb9\u5668 \u7aef\u53e3 \uff0c \u8bf7 \u4f7f\u7528 \u6807\u5fd7 - p < host - ports > : < container - ports > \u3002 GPUs : \u60a8 \u53ef\u4ee5 \u4f7f\u7528 -- gpus all \u9009\u62e9 \u6709\u6240 GPU \uff0c \u6216\u8005 \u4f7f\u7528 -- gpus ' \" device = < gpu _ 01 > , < gpu _ 02 > \" ' \u4f7f\u7528 \u7279\u5b9a GPU \u3002 \u6d4f\u89c8 \u6b64\u5904 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u79bb\u5c4f \u6a21\u5f0f \u5982\u679c \u60a8 \u5728 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \uff0c \u5219 OpenGL \u4e0d \u9700\u8981 \u914d\u7f6e \uff0c \u4f46\u662f \u60a8 \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u624d\u80fd \u4f7f\u7528 Carla 0.9 . 12 \u4e4b\u524d \u7684 Vulkan \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u6709\u5173 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"Docker \u4e2d \u7684 Carla"},{"location":"build_docker/#docker-carla","text":"\u7528\u6237 \u53ef\u4ee5 \u62c9\u53d6 \u57fa\u4e8e Carla \u7248\u672c \u7684 \u6620\u50cf \u4ee5 \u5728 Docker \u5bb9\u5668 \u4e2d \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u4ee5\u4e0b \u7528\u6237 \u5f88 \u6709\u7528 \uff1a \u60f3\u8981 \u8fd0\u884c Carla \u800c \u4e0d \u9700\u8981 \u5b89\u88c5 \u6240\u6709 \u4f9d\u8d56 \u9879 \u8fd0\u884c \u591a\u4e2a Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u6267\u884c GPU \u6620\u5c04 \u5728 \u6ca1\u6709 \u663e\u793a \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u8fd0\u884c Carla \u56fe\u50cf \u7684 \u8981\u6c42 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 OpenGL \u548c Vulkan \u56fe\u5f62 API \u8fd0\u884c \u56fe\u50cf \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla \u79bb\u5c4f \u6a21\u5f0f","title":"Docker \u4e2d \u7684 Carla"},{"location":"build_docker/#_1","text":"\u60a8 \u9700\u8981 \u5b89\u88c5 \uff1a Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 NVIDIA Container Toolkit : NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u662f \u4e00\u4e2a \u5e93 \u548c \u5de5\u5177 \u5de5\u5177\u96c6 \uff0c \u53ef \u5c06 NVIDIA \u56fe\u5f62 \u8bbe\u5907 \u516c\u5f00 \u7ed9 Linux \u5bb9\u5668 \u3002 \u5b83 \u4e13\u4e3a \u5728 Linux \u4e3b\u673a \u7cfb\u7edf \u6216 \u9002\u7528 \u4e8e Linux \u7684 Windows \u7cfb\u7edf \u5b50\u7cfb\u7edf \u7248\u672c 2 \u4e0b \u7684 Linux \u53d1\u884c \u53d1\u884c\u7248 \u4e2d \u8fd0\u884c \u7684 Linux \u5bb9\u5668 \u800c \u8bbe\u8ba1 \u3002 nvidia - docker2 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u5b89\u88c5 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 CentOS \u5b89\u88c5 Docker \uff1a yum install - y yum - utils device - mapper - persistent - data lvm2 yum - config - manager -- add - repo http : / / mirrors . aliyun . com / docker - ce / linux / centos / docker - ce . repo yum list docker - ce -- showduplicates | sort - r yum - y install docker - ce - 18.03 . 1 . ce docker \u542f\u52a8 \u51fa\u9519 \uff1a failed to start daemon : error initializing graphdriver : driver not supported \u89e3\u51b3 \uff1a rm - rf / var / lib / docker / * systemctl restart docker CentOS \u5b89\u88c5 NVIDIA \u5bb9\u5668 \u5de5\u5177 \u5de5\u5177\u5305 \u547d\u4ee4 \uff1a curl - s - L https : / / nvidia . github . io / libnvidia - container / stable / rpm / nvidia - container - toolkit . repo | \\ tee / etc / yum . repos . d / nvidia - container - toolkit . repo yum - config - manager -- enable nvidia - container - toolkit - experimental yum install - y nvidia - container - toolkit nvidia - ctk runtime configure -- runtime = docker \u7b14\u8bb0 Docker \u9700\u8981 sudo \u624d\u80fd \u8fd0\u884c \u3002 \u6309\u7167 \u672c \u6307\u5357 \u5c06 \u7528\u6237 \u6dfb\u52a0 \u5230 docker sudo \u7ec4 \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"build_docker/#carla","text":"1 . \u62c9\u53d6 Carla \u955c\u50cf \u3002 \u60a8 \u53ef\u4ee5 \u63d0\u53d6 \u6700\u65b0 \u7684 Carla \u6620\u50cf \u6216 \u7279\u5b9a \u7684 \u53d1\u884c \u7248\u672c \u3002 \u6700\u65b0 \u955c\u50cf \u662f \u6307 \u6700\u65b0 \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8981\u62c9\u53d6 \u6620\u50cf \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \uff1a # \u62c9\u53d6 \u6700\u65b0 \u7684 \u955c\u50cf docker pull carlasim / carla : latest # \u62c9\u53d6 \u7279\u5b9a \u7684 \u7248\u672c docker pull carlasim / carla : 0.9 . 12 2 . \u8fd0\u884c Carla \u5bb9\u5668 \u3002 \u4e0d\u540c \u7248\u672c \u7684 Carla \u652f\u6301 \u4e0d\u540c \u7684 \u56fe\u5f62 API \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5f71\u54cd Docker \u955c\u50cf \u7684 \u8fd0\u884c \u6761\u4ef6 \uff1a 0.9 . 12 \u4ec5 \u652f\u6301 Vulkan 0.9 . 7 + \u540c\u65f6 \u652f\u6301 Vulkan \u548c OpenGL \u3002 Carla 0.9 . 12 \u8981 \u4f7f\u7528 \u663e\u793a \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh \u8981 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 12 / bin / bash . / CarlaUE4 . sh - RenderOffScreen Carla 0.9 . 7 \u81f3 0.9 . 11 \u8981 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \uff1a sudo docker run -- privileged -- gpus all -- net = host - e DISPLAY = $ DISPLAY - e SDL _ VIDEODRIVER = x11 - v / tmp / . X11 - unix : / tmp / . X11 - unix : rw carlasim / carla : 0.9 . 11 / bin / bash . / CarlaUE4 . sh - vulkan < - additonal - carla - flags > \u7b14\u8bb0 \u53ea\u8981 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6709 \u663e\u793a \u663e\u793a\u5668 \uff0c \u6b64 \u547d\u4ee4 \u5c06 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Vulkan \u8fd0\u884c Carla \u6620\u50cf \u3002 \u6709\u5173 \u5728 \u79bb\u5c4f \u6a21\u5f0f \u4e0b \u8fd0\u884c Vulkan \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u8981 \u4f7f\u7528 OpenGL \u8fd0\u884c Carla \uff1a docker run - e DISPLAY = $ DISPLAY -- net = host -- gpus all -- runtime = nvidia carlasim / carla : < version > / bin / bash CarlaUE4 . sh - opengl < - additonal - carla - flags > 3 . \uff08 \u53ef \u9009 \uff09 \u914d\u7f6e Docker \u6807\u5fd7 \u3002 \u4e0a\u9762 \u7684 \u547d\u4ee4 \u4f7f\u7528 \u4e86 \u4e00\u4e9b Docker \u6807\u5fd7 \uff0c \u53ef\u4ee5 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u8fdb\u884c \u914d\u7f6e \uff1a Networking : -- net = host \u53c2\u6570 \u5c06 \u5141\u8bb8 \u5bb9\u5668 \u5171\u4eab \u4e3b\u673a \u7684 \u6574\u4e2a \u7f51\u7edc \u3002 \u5982\u679c \u60a8 \u5e0c\u671b \u5c06 \u4e3b\u673a \u4e0a \u7684 \u7279\u5b9a \u7aef\u53e3 \u6620\u5c04 \u5230 \u5bb9\u5668 \u7aef\u53e3 \uff0c \u8bf7 \u4f7f\u7528 \u6807\u5fd7 - p < host - ports > : < container - ports > \u3002 GPUs : \u60a8 \u53ef\u4ee5 \u4f7f\u7528 -- gpus all \u9009\u62e9 \u6709\u6240 GPU \uff0c \u6216\u8005 \u4f7f\u7528 -- gpus ' \" device = < gpu _ 01 > , < gpu _ 02 > \" ' \u4f7f\u7528 \u7279\u5b9a GPU \u3002 \u6d4f\u89c8 \u6b64\u5904 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u5728 \u5bb9\u5668 \u4e2d \u8fd0\u884c Carla"},{"location":"build_docker/#_2","text":"\u5982\u679c \u60a8 \u5728 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \uff0c \u5219 OpenGL \u4e0d \u9700\u8981 \u914d\u7f6e \uff0c \u4f46\u662f \u60a8 \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u624d\u80fd \u4f7f\u7528 Carla 0.9 . 12 \u4e4b\u524d \u7684 Vulkan \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u6709\u5173 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6e32\u67d3 \u6587\u6863 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u79bb\u5c4f \u6a21\u5f0f"},{"location":"build_docker_unreal/","text":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u5982\u4f55 \u4f7f\u7528 Docker \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 \u7136\u540e \uff0c \u751f\u6210 \u7684 \u6620\u50cf \u53ef \u7528\u4e8e \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \u3002 \u6b64 \u8fc7\u7a0b \u4e0d\u5e94 \u4e0e \u7528\u4e8e \u5728 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u7684 \u9884 \u6784\u5efa Carla Docker \u6620\u50cf \u76f8 \u6df7\u6dc6 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u76f8\u5173 \u6587\u6863 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u6784\u5efa \u955c\u50cf \u4e0b \u4e00\u6b65 \uff1a \u6253\u5305 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u7cfb\u7edf \u8981\u6c42 \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a 64 \u4f4d \u7248\u672c \u7684 Docker \u662f Ubuntu 16.04 + \u81f3\u5c11 8GB \u5185\u5b58 \u7528\u4e8e \u521d\u59cb \u5bb9\u5668 \u6784\u5efa \u8fc7\u7a0b \u7684 \u81f3\u5c11 600GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u8f6f\u4ef6 \u8981\u6c42 Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u5b89\u88c5 Docker \u3002 Python : \u60a8 \u9700\u8981 \u5b89\u88c5 Python 3.6 \u6216 \u66f4 \u9ad8 \u7248\u672c \u5e76 \u5728 \u7cfb\u7edf \u8def\u5f84 \u4e2d \u6b63\u786e \u8bbe\u7f6e \u3002 \u6709\u5173 \u5b89\u88c5 \u8bf4\u660e \u548c Python \u6587\u6863 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u865a\u5e7b \u5f15\u64ce GitHub \u8bbf\u95ee : \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8fd9 \u5c06 \u5728 Docker \u6784\u5efa \u8fc7\u7a0b \u4e2d \u4e0b\u8f7d \u3002 \u5bf9\u4e8e \u6b64 \u4e0b\u8f7d \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u4e0e \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u5173\u8054 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u5728 \u6784\u5efa \u8fc7\u7a0b \u4e2d \u60a8 \u9700\u8981 \u767b\u5f55 \u60a8 \u7684 \u5e10\u6237 \u3002 \u6216\u8005 \u76f4\u63a5 \u4ece \u5f00\u6e90 \u6e56 \u5de5\u5546 \u4ed3\u5e93 \u8fdb\u884c \u4e0b\u8f7d \u3002 Carla : \u4e3a Carla \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca Carla \u672c\u8eab \u6240 \u9700 \u7684 Dockerfile \u548c \u5de5\u5177 \u4f4d\u4e8e Util / DockerCARLA \u6e90 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \u4e2d \u3002 \u5982\u679c \u60a8 \u8fd8 \u6ca1\u6709 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4e0b\u8f7d \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla \u6784\u5efa \u955c\u50cf \u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u82b1\u8d39 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 1 . \u6784\u5efa Carla \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 Prerequisites . Dockerfile \u6784\u5efa \u4e00\u4e2a \u540d\u4e3a carla - prerequisitesusing \u7684 \u6620\u50cf \u3002 \u5728 \u6b64 \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5b89\u88c5 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u6240 \u9700 \u7684 \u5de5\u5177 \uff0c \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u5e76 \u7f16\u8bd1 \u5b83 \u3002 \u60a8 \u9700\u8981 \u63d0\u4f9b \u60a8 \u7684 \u767b\u5f55 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4f5c\u4e3a \u6784\u5efa \u53c2\u6570 \uff0c \u624d\u80fd \u6210\u529f \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \uff1a docker build -- build - arg EPIC _ USER = < GitHubUserName > -- build - arg EPIC _ PASS = < GitHubPassword > - t carla - prerequisites - f Prerequisites . Dockerfile . 2 . \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 \u4e0a \u4e00\u6b65 \u4e2d \u521b\u5efa \u7684 \u6620\u50cf \u57fa\u4e8e Carla \u5b58\u50a8 \u5e93 \u7684 \u5f53\u524d \u4e3b \u5206\u652f \uff08 \u6700\u65b0 \u7248\u672c \uff09 \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u6620\u50cf \uff1a docker build - t carla - f Carla . Dockerfile . \u5982\u679c \u60a8 \u60f3 \u6784\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u7279\u5b9a \u5206\u652f \u6216 \u6807\u7b7e \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a docker build - t carla - f Carla . Dockerfile . -- build - arg GIT _ BRANCH = < branch _ or _ tag _ name > \u4e0b \u4e00\u6b65 \uff1a \u6253\u5305 \u672c \u6307\u5357 \u4e2d \u521b\u5efa \u7684 Carla \u955c\u50cf \u7528\u4e8e \u521b\u5efa \u72ec\u7acb \u7684 Carla \u5305 \u6216 \u6253\u5305 \u5730\u56fe \u6216 \u7f51\u683c \u7b49 \u8d44\u6e90 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u8fd9\u662f \u901a\u8fc7 \u4f7f\u7528 Util / Docker \u4e2d \u7684 \u811a\u672c docker _ tools . py \u6765 \u5b9e\u73b0 \u7684 \u3002 \u8be5 \u811a\u672c \u7528\u4e8e docker - py \u5904\u7406 Docker \u955c\u50cf \u6620\u50cf \u3002 \u8be5 docker _ tools . py \u811a\u672c \u53ef \u7528\u4e8e \uff1a \u521b\u5efa Carla \u5305 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u5728 Carla \u5305\u4e2d \u70d8\u7119 \u9700\u8981 \u4f7f\u7528 \u7684 \u8d44\u4ea7 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u51c6\u5907 \u5730\u56fe \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla forum","title":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla"},{"location":"build_docker_unreal/#docker-carla","text":"\u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u5982\u4f55 \u4f7f\u7528 Docker \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 \u7136\u540e \uff0c \u751f\u6210 \u7684 \u6620\u50cf \u53ef \u7528\u4e8e \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \u3002 \u6b64 \u8fc7\u7a0b \u4e0d\u5e94 \u4e0e \u7528\u4e8e \u5728 \u591a\u4e2a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u6ca1\u6709 \u663e\u793a \u663e\u793a\u5668 \u7684 \u60c5\u51b5 \u4e0b \u8fd0\u884c Carla \u7684 \u9884 \u6784\u5efa Carla Docker \u6620\u50cf \u76f8 \u6df7\u6dc6 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u76f8\u5173 \u6587\u6863 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u6784\u5efa \u955c\u50cf \u4e0b \u4e00\u6b65 \uff1a \u6253\u5305","title":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla"},{"location":"build_docker_unreal/#_1","text":"","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"build_docker_unreal/#_2","text":"\u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a 64 \u4f4d \u7248\u672c \u7684 Docker \u662f Ubuntu 16.04 + \u81f3\u5c11 8GB \u5185\u5b58 \u7528\u4e8e \u521d\u59cb \u5bb9\u5668 \u6784\u5efa \u8fc7\u7a0b \u7684 \u81f3\u5c11 600GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_docker_unreal/#_3","text":"Docker : \u6309\u7167 \u6b64\u5904 \u7684 \u5b89\u88c5 \u8bf4\u660e \u5b89\u88c5 Docker \u3002 Python : \u60a8 \u9700\u8981 \u5b89\u88c5 Python 3.6 \u6216 \u66f4 \u9ad8 \u7248\u672c \u5e76 \u5728 \u7cfb\u7edf \u8def\u5f84 \u4e2d \u6b63\u786e \u8bbe\u7f6e \u3002 \u6709\u5173 \u5b89\u88c5 \u8bf4\u660e \u548c Python \u6587\u6863 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u865a\u5e7b \u5f15\u64ce GitHub \u8bbf\u95ee : \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8fd9 \u5c06 \u5728 Docker \u6784\u5efa \u8fc7\u7a0b \u4e2d \u4e0b\u8f7d \u3002 \u5bf9\u4e8e \u6b64 \u4e0b\u8f7d \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u4e0e \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u5173\u8054 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u5728 \u6784\u5efa \u8fc7\u7a0b \u4e2d \u60a8 \u9700\u8981 \u767b\u5f55 \u60a8 \u7684 \u5e10\u6237 \u3002 \u6216\u8005 \u76f4\u63a5 \u4ece \u5f00\u6e90 \u6e56 \u5de5\u5546 \u4ed3\u5e93 \u8fdb\u884c \u4e0b\u8f7d \u3002 Carla : \u4e3a Carla \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca Carla \u672c\u8eab \u6240 \u9700 \u7684 Dockerfile \u548c \u5de5\u5177 \u4f4d\u4e8e Util / DockerCARLA \u6e90 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \u4e2d \u3002 \u5982\u679c \u60a8 \u8fd8 \u6ca1\u6709 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4e0b\u8f7d \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla","title":"\u8f6f\u4ef6 \u8981\u6c42"},{"location":"build_docker_unreal/#_4","text":"\u4ee5\u4e0b \u6b65\u9aa4 \u5c06 \u82b1\u8d39 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \u3002 1 . \u6784\u5efa Carla \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 Prerequisites . Dockerfile \u6784\u5efa \u4e00\u4e2a \u540d\u4e3a carla - prerequisitesusing \u7684 \u6620\u50cf \u3002 \u5728 \u6b64 \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5b89\u88c5 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u6240 \u9700 \u7684 \u5de5\u5177 \uff0c \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u5e76 \u7f16\u8bd1 \u5b83 \u3002 \u60a8 \u9700\u8981 \u63d0\u4f9b \u60a8 \u7684 \u767b\u5f55 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4f5c\u4e3a \u6784\u5efa \u53c2\u6570 \uff0c \u624d\u80fd \u6210\u529f \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \uff1a docker build -- build - arg EPIC _ USER = < GitHubUserName > -- build - arg EPIC _ PASS = < GitHubPassword > - t carla - prerequisites - f Prerequisites . Dockerfile . 2 . \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u955c\u50cf \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u4f7f\u7528 \u4e0a \u4e00\u6b65 \u4e2d \u521b\u5efa \u7684 \u6620\u50cf \u57fa\u4e8e Carla \u5b58\u50a8 \u5e93 \u7684 \u5f53\u524d \u4e3b \u5206\u652f \uff08 \u6700\u65b0 \u7248\u672c \uff09 \u6784\u5efa \u6700\u7ec8 \u7684 Carla \u6620\u50cf \uff1a docker build - t carla - f Carla . Dockerfile . \u5982\u679c \u60a8 \u60f3 \u6784\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u7279\u5b9a \u5206\u652f \u6216 \u6807\u7b7e \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a docker build - t carla - f Carla . Dockerfile . -- build - arg GIT _ BRANCH = < branch _ or _ tag _ name >","title":"\u6784\u5efa \u955c\u50cf"},{"location":"build_docker_unreal/#_5","text":"\u672c \u6307\u5357 \u4e2d \u521b\u5efa \u7684 Carla \u955c\u50cf \u7528\u4e8e \u521b\u5efa \u72ec\u7acb \u7684 Carla \u5305 \u6216 \u6253\u5305 \u5730\u56fe \u6216 \u7f51\u683c \u7b49 \u8d44\u6e90 \uff0c \u4ee5\u4fbf \u5b83\u4eec \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u8fd9\u662f \u901a\u8fc7 \u4f7f\u7528 Util / Docker \u4e2d \u7684 \u811a\u672c docker _ tools . py \u6765 \u5b9e\u73b0 \u7684 \u3002 \u8be5 \u811a\u672c \u7528\u4e8e docker - py \u5904\u7406 Docker \u955c\u50cf \u6620\u50cf \u3002 \u8be5 docker _ tools . py \u811a\u672c \u53ef \u7528\u4e8e \uff1a \u521b\u5efa Carla \u5305 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u5728 Carla \u5305\u4e2d \u70d8\u7119 \u9700\u8981 \u4f7f\u7528 \u7684 \u8d44\u4ea7 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u51c6\u5907 \u5730\u56fe \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \uff1a \u5728 \u6b64\u5904 \u67e5\u627e \u6559\u7a0b \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u6216 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla forum","title":"\u4e0b \u4e00\u6b65 \uff1a \u6253\u5305"},{"location":"build_faq/","text":"\u5e38\u95ee \u7684 \u95ee\u9898 \u6b64\u5904 \u5217\u51fa \u4e86 \u6709\u5173 Carla \u5b89\u88c5 \u548c \u6784\u5efa \u7684 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u3002 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 \u8be5\u9879 \u76ee\u7684 GitHub issues \u627e\u5230 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u53d1\u73b0 \u6b64\u5904 \u5217\u51fa \u7684 \u7591\u95ee \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u968f\u65f6 \u63d0\u95ee \u3002 Carla \u8bba\u575b \u7cfb\u7edf \u8981\u6c42 \u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 \u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002 Linux \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002 \u201c make launch \u201d \u5728 Linux \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002 AttributeError : module ' carla ' has no attribute ' Client ' when running a script . \u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" . Windows \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002 CarlaUE4 \u65e0\u6cd5 \u7f16\u8bd1 \u3002 \u5c1d\u8bd5 \u4ece\u6e90 \u624b\u52a8 \u91cd\u5efa \u5b83 \u3002 \u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002 Error C2440 , C2672 \uff1a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u3002 \u201c make launch \u201d \u5728 Windows \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002 \u6a21\u5757 \u7f3a\u5931 \u6216 \u4f7f\u7528 \u4e0d\u540c \u7684 \u5f15\u64ce \u7248\u672c \u6784\u5efa \u3002 \u5728 PythonAPI / carla \u4e2d \u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u8fd0\u884c Carla \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002 \u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002 \u5f53 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u94fe\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd8\u662f \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 ImportError : DLL load failed : The specified module could not be found . ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app . ImportError : No module named ' carla ' RuntimeError : rpc : : rpc _ error during call in function apply _ batch \u5176\u4ed6 Fatal error : ' version . h ' has been modified since the precompiled header . \u521b\u5efa Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f \u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1f \u7cfb\u7edf \u8981\u6c42 \u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 \u5efa\u8bae \u81f3\u5c11 \u6709 170GB \u53ef\u7528 \u7a7a\u95f4 \u3002 \u6784\u5efa Carla \u9700\u8981 \u5927\u7ea6 35GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \uff0c \u52a0\u4e0a \u865a\u5e7b \u5f15\u64ce \u5927\u7ea6 \u9700\u8981 95 - 135GB \u3002 \u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002 Carla \u662f \u4e00\u6b3e \u6027\u80fd \u8981\u6c42 \u8f83 \u9ad8 \u7684 \u8f6f\u4ef6 \u3002 \u5b83 \u81f3\u5c11 \u9700\u8981 6GB GPU \uff0c \u6216\u8005 \u66f4\u597d \u7684 \u662f \u80fd\u591f \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 \u4e13\u7528 GPU \u3002 \u770b\u770b \u865a\u5e7b \u5f15\u64ce \u63a8\u8350 \u7684 \u786c\u4ef6 \u3002 Linux \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002 Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . sh \u811a\u672c \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u4f7f\u7528 CarlaUE4 . sh \u8fd0\u884c Carla \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u8fdb\u884c \u64cd\u4f5c \u3002 \u201c make launch \u201d \u5728 Linux \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76\u4f1a \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u5c1d\u8bd5 \u5355\u72ec \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u5b83 \u662f\u5426 \u662f\u5426\u662f 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 UE4 _ ROOT \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u3002 \u5883 \u53d8\u91cf \u672a \u8bbe\u7f6e \u3002 \u8bf7 \u8bb0\u4f4f \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 ~ / . bashrc \u6216 ~ / . profile \u6765 \u4f7f \u5176 \u5728 \u4f1a \u8bdd \u8303\u56f4 \u5185 \u6301\u4e45 \u5b58\u5728 \u3002 \u5426\u5219 \uff0c \u9700\u8981 \u4e3a \u6bcf\u4e2a \u65b0 shell \u8fdb\u884c \u8bbe\u7f6e \u3002 \u8fd0\u884c export UE4 _ ROOT = < path _ to _ unreal _ 4 - 26 > \u8bbe\u7f6e \u8fd9\u6b21 \u7684 \u53d8\u91cf \u3002 \u68c0\u67e5 \u4f9d\u8d56 \u3002 \u786e\u4fdd \u4e00\u5207 \u90fd \u5b89\u88c5 \u6b63\u786e \u3002 \u4e5f\u8bb8 \u5176\u4e2d \u4e00\u4e2a \u547d\u4ee4 \u88ab \u8df3 \u8fc7 \u3001 \u4e0d \u6210\u529f \u6216\u8005 \u4f9d\u8d56 \u9879 \u4e0d \u9002\u5408 \u7cfb\u7edf \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Ubuntu \u7248\u672c \u5e94\u4e3a 16.04 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002 1 . \u865a\u5e7b \u5f15\u64ce \u5e10\u53f7 \u662f\u5426 \u5df2 \u6fc0\u6d3b \uff1f \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93\u662f \u79c1\u6709 \u7684 \u3002 \u4e3a\u4e86 \u514b\u9686 \u5b83 \uff0c \u8bf7 \u521b\u5efa \u865a \u5e7b \u5f15\u64ce \u5e10 \u6237 \uff0c \u6fc0\u6d3b \u5b83 \uff08 \u68c0\u67e5 \u9a8c\u8bc1 \u90ae\u4ef6 \uff09 \uff0c \u7136\u540e \u94fe\u63a5 \u60a8 \u7684 GitHub \u5e10\u6237 \u3002 2 . git \u662f\u5426 \u5b89\u88c5 \u6b63\u786e \uff1f \u6709\u65f6 \u9519\u8bef \u8868\u660e \u4e0e https \u534f\u8bae \u4e0d \u517c\u5bb9 \u3002 \u901a\u8fc7 \u5378\u8f7d \u5e76 \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 git \u5373\u53ef \u8f7b\u677e \u89e3\u51b3 \u3002 \u6253\u5f00 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a sudo apt - get remove git # \u5378\u8f7d git sudo apt install git - all # \u5b89\u88c5 git AttributeError : module ' carla ' has no attribute ' Client ' when running a script . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 pip3 install - Iv setuptools = = 47.3 . 1 \u5e76 \u518d\u6b21 \u6784\u5efa PythonAPI \u3002 make PythonAPI \u5c1d\u8bd5 \u6784\u5efa \u6587\u6863 \u6765 \u6d4b\u8bd5 \u4e00\u5207 \u662f\u5426 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5e94\u8be5 \u4f1a \u663e\u793a \u6210\u529f \u7684 \u6d88\u606f \u3002 make PythonAPI . docs \u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" . \u5982\u679c \u8fd0\u884c \u811a\u672c \u8fd4\u56de \u4e0e \u6b64\u7c7b \u4f3c\u7684 \u8f93\u51fa \uff0c \u5219 \u8bf4\u660e PythonAPI \u4e2d \u7684 . egg \u6587\u4ef6 \u5b58\u5728 \u95ee\u9898 \u3002 \u91cd\u8981 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u9996\u5148 \uff0c \u6253\u5f00 < root _ carla > / PythonAPI / carla / dist \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u548c \u4f60 \u6b63\u5728 \u4f7f\u7528 \u76f8\u5bf9 \u5e94 \u7684 Carla \u548c Python \u54cd\u5e94 \u7684 . egg \u6587\u4ef6 \uff08 \u7c7b\u4f3c \u4e8e carla - 0 . X . X - pyX . X - linux - x86 _ 64 . egg \uff09 \u3002 \u786e\u4fdd \u8be5 \u6587\u4ef6 \u4e0e \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 Python \u7248\u672c \u5339\u914d \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u3002 python3 -- version # \u6216\u8005 \u5bf9\u4e8e Python 2 python -- version \u5982\u679c \u6587\u4ef6 \u4e22\u5931 \u6216\u8005 \u60a8 \u8ba4\u4e3a \u5b83 \u53ef\u80fd \u635f\u574f \u5df2\u635f\u574f \uff0c \u8bf7 \u5c1d\u8bd5 \u518d\u6b21 \u91cd\u5efa \u3002 make clean make PythonAPI make launch \u73b0\u5728 \u518d\u6b21 \u5c1d\u8bd5 \u793a\u4f8b \u811a\u672c \u4e4b\u4e00 \u3002 cd PythonAPI / examples python3 dynamic _ weather . py \u5982\u679c \u9519\u8bef \u4ecd\u7136 \u5b58\u5728 \uff0c \u5219 \u95ee\u9898 \u53ef\u80fd \u4e0e \u60a8 \u7684 PythonPATH \u6709\u5173 \u3002 \u8fd9\u4e9b \u811a\u672c \u4f1a \u81ea\u52a8 \u67e5\u627e . egg \u4e0e \u6784\u5efa \u76f8\u5173 \u7684 \u6587\u4ef6 \uff0c \u56e0\u6b64 \uff0c \u60a8 \u7684 PythonPATH \u4e2d \u53ef\u80fd \u5b58\u5728 \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \u5e72\u6270 \u8be5 \u8fc7\u7a0b \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u663e\u793a PythonPATH \u7684 \u5185\u5bb9 \u3002 echo $ PYTHONPATH \u5728 \u7c7b\u4f3c \u4e8e PythonAPI / carla / dist \u7684 \u8def\u5f84 \u4e0b \u67e5\u627e \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \uff0c \u5e76 \u5220\u9664 \u5b83\u4eec \u3002 \u5b83\u4eec \u53ef\u80fd \u5c5e\u4e8e Carla \u5b89\u88c5 \u7684 \u5176\u4ed6 \u5b9e\u4f8b \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u8fd8 \u901a\u8fc7 apt - get \u5b89\u88c5 \u4e86 Carla \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5220\u9664 \uff0c \u5e76\u4e14 PythonPATH \u4e5f \u4f1a \u88ab \u6e05\u7406 \u3002 sudo apt - get purge carla - simulator \u6700\u7ec8 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 ~ / . bashrc \uff0c \u5c06 PythonPATH \u4e0b \u4f60 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u8fdb\u6765 \u3002 \u8fd9 \u4e0d\u662f \u63a8\u8350 \u7684 \u65b9\u5f0f \u3002 \u6700\u597d \u6709 \u4e00\u4e2a \u660e\u786e \u7684 PythonPATH \uff0c \u53ea \u9700 \u5728 \u811a\u672c \u4e2d \u6dfb\u52a0 \u5fc5\u8981 \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u5373\u53ef \u3002 \u9996\u5148 \uff0c \u6253\u5f00 ~ / . bashrc . gedit ~ / . bashrc \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 ~ / . bashrc \u3002 \u5b83\u4eec \u5b58\u50a8 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \uff0c \u4ee5\u4fbf Python \u53ef\u4ee5 \u81ea\u52a8 \u627e\u5230 \u5b83 \u3002 \u4fdd\u5b58 \u6587\u4ef6 \uff0c \u7136\u540e \u91cd\u7f6e \u7ec8\u7aef \u4ee5 \u4f7f \u66f4\u6539 \u751f\u6548 \u3002 export PYTHONPATH = $ PYTHONPATH : \" $ { CARLA _ ROOT } / PythonAPI / carla / dist / $ ( ls $ { CARLA _ ROOT } / PythonAPI / carla / dist | grep py3 . ) \" export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6e05\u7406 PythonPATH \u6216 \u6dfb\u52a0 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u540e \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5e94\u8be5 \u6b63\u5e38 \u5de5\u4f5c \u3002 Windows \u6784\u5efa \u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002 Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . exe \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u76f4\u63a5 \u83b7\u53d6 CarlaUE4 . exe \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 CarlaUE4 could not be compiled . Try rebuilding it from source manually . \u5c1d\u8bd5 \u6784\u5efa Carla \u65f6 \u51fa\u73b0 \u95ee\u9898 \u3002 \u4f7f\u7528 Visual Studio \u91cd\u65b0 \u6784\u5efa \u4ee5 \u53d1\u73b0 \u53d1\u751f \u4e86 \u4ec0\u4e48 \u3002 1 . \u8f6c \u5230 carla / Unreal / CarlaUE4 \u5e76 \u53f3\u952e \u5355\u51fb CarlaUE4 . uproject \u3002 2 . \u5355\u51fb Generate Visual Studio project files \u3002 3 . \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 \u751f\u6210 \u7684 \u6587\u4ef6 \u3002 4 . \u4f7f\u7528 Visual Studio \u7f16\u8bd1 \u9879\u76ee \u3002 \u5feb\u6377 \u5feb\u6377\u952e \u662f F7 \u3002 \u6784\u5efa \u5c06 \u5931\u8d25 \uff0c \u4f46 \u53d1\u73b0 \u7684 \u95ee\u9898 \u5c06 \u663e\u793a \u5728 \u4e0b\u9762 \u3002 \u4e0d\u540c \u7684 \u95ee\u9898 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51fa\u73b0 \u6b64 \u7279\u5b9a \u9519\u8bef \u6d88\u606f \u3002 \u7528\u6237 @ tamakoji \u89e3\u51b3 \u4e86 \u4e00\u4e2a \u7ecf\u5e38 \u51fa\u73b0 \u7ecf\u5e38\u51fa\u73b0 \u7684 \u60c5\u51b5 \uff0c \u5373 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u672a \u6b63\u786e \u514b\u9686 \u4e14 \u65e0\u6cd5 \u8bbe\u7f6e Carla \u7248\u672c \uff08 \u4ece git \u5c06 \u5176 \u4e0b\u8f7d \u4e3a . zip \u65f6 \uff09 \u3002 \u68c0\u67e5 Build / CMakeLists . txt . in . \u5982\u679c \u663e\u793a \uff1a set ( CARLA _ VERSION ) \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a 1 . \u8f6c \u5230 Setup . bat \u7b2c 198 \u884c \u3002 2 . Update the line from : for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = %% i \u4e3a \uff1a for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = \" 0.9 . 9 \" \u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002 \u5f53 \u5c1d\u8bd5 \u4f7f\u7528 make \u547d\u4ee4 \u6784\u5efa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6\u4f1a \u51fa\u73b0 \u6b64 \u95ee\u9898 \u3002 \u5373\u4f7f CMake \u5df2 \u5b89\u88c5 \u3001 \u66f4\u65b0 \u5e76 \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 Visual Studio \u7248\u672c \u4e4b\u95f4 \u53ef\u80fd \u5b58\u5728 \u51b2\u7a81 \u3002 \u53ea \u7559\u4e0b VS2019 \uff0c \u5176\u4f59 \u7684 \u5f7b\u5e95 \u5220\u9664 \u3002 Error C2440 , C2672 : compiler version . \u7531\u4e8e \u4e0e \u5176\u4ed6 Visual Studio \u6216 Microsoft \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u51b2\u7a81 \uff0c \u8be5 \u6784\u5efa \u672a \u4f7f\u7528 2019 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u3002 \u5378\u8f7d \u8fd9\u4e9b \u5e76 \u518d\u6b21 \u91cd\u5efa \u3002 Visual Studio \u4e0d \u64c5\u957f \u6446\u8131 \u81ea\u8eab \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u7ba1\u7406 \u7ba1\u7406\u5458 \u6743\u9650 \u3002 \u8981 \u4fdd\u7559 \u5176\u4ed6 Visual Studio \u7248\u672c \uff0c \u8bf7 \u901a\u8fc7 \u6dfb\u52a0 \u4ee5\u4e0b \u884c \u8fdb\u884c \u7f16\u8f91 % appdata% \\ Unreal Engine \\ UnrealBuildTool \\ BuildConfiguration . xml \uff1a < VCProjectFileGenerator > < Version > VisualStudio2019 < / Version > < / VCProjectFileGenerator > < WindowsPlatform > < Compiler > VisualStudio2019 < / Compiler > < / WindowsPlatform > \u201c make launch \u201d \u5728 Windows \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76 \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002 Windows \u6784\u5efa \u671f\u95f4 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u5e76 \u786e\u4fdd \u6240\u6709 \u5185\u5bb9 \u5747 \u5df2 \u6b63\u786e \u66f4\u65b0 \u3002 \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u8fd0\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u662f\u5426 \u4f7f\u7528 \u4e86 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 Visual Studio 2019 . \u5982\u679c \u5b89\u88c5 \u6216 \u6700\u8fd1 \u5378\u8f7d \u4e86 \u5176\u4ed6 \u7248\u672c \u7684 Visual Studio \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u51b2\u7a81 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002 Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002 \u4e0b\u8f7d \u4f9d\u8d56 \u9879 \u5e76 \u5c06 bin \u5185\u5bb9 \u89e3\u538b \u5230 make \u5b89\u88c5 \u8def\u5f84 \u4e2d \u3002 Modules are missing or built with a different engine version . \u5355\u51fb on Accept \u4ee5 \u91cd\u5efa \u5b83\u4eec \u3002 \u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u5728 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 Windows \u4e2d \uff0c make PythonAPI \u547d\u4ee4 \u53ef\u80fd \u4f1a \u8fd4\u56de \u4e00\u6761 \u6d88\u606f \uff0c \u8868\u660e Python API \u5b89\u88c5 \u6210\u529f \uff0c \u4f46 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5e76\u672a \u6210\u529f \u3002 \u5982\u679c \u770b\u5230 \u6b64 \u8f93\u51fa \u540e \u76ee\u5f55 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u8bf7 \u67e5\u770b \u4e0a\u9762 \u7684 \u547d\u4ee4 \u8f93\u51fa \u3002 \u5f88 \u53ef\u80fd \u53d1\u751f \u4e86 \u9519\u8bef \uff0c \u9700\u8981 \u5728 \u66f4\u6b63 \u9519\u8bef \u5e76 \u8fd0\u884c make clean \u540e \u91cd\u8bd5 \u6784\u5efa \u3002 osm2odr - visualstudio \u4e3a\u7a7a \uff0c \u6216\u8005 \u62f7\u8d1d \u8fc7\u53bb \u7684 \u76ee\u5f55 \u4e0d \u5bf9 CMake Error : The current CMakeCache . txt directory D : / work / workspace / carla / Build / osm2odr - visualstudio / CMakeCache . txt is different than the directory d : / work / buffer / carla / Build / osm2odr - visualstudio where CMakeCache . txt was created . This may result in binaries being created in the wrong place . If you are not sure , reedit the CMakeCache . txt CMake Error : The source directory \" D : / work / workspace / carla / Build / osm2odr - visualstudio / x64 \" does not appear to contain CMakeLists . txt . \u5220\u9664 carla \\ Build \\ osm2odr - visualstudio \\ CMakeCache . txt \u7c7b\u578b \u8f6c\u6362 \u7c7b\u578b\u8f6c\u6362 \u4e0d \u5bf9 carla / Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Vehicle / CustomTerrainPhysicsComponent . cpp ( 1161 ) : error C2440 : \u201c static _ cast \u201d : \u65e0\u6cd5 \u4ece \u201c float \u201d \u8f6c\u6362 \u4e3a \u201c EDefResolutionType \u201d \u6ce8\u91ca \u6389 / / ChosenRes = static _ cast < EDefResolutionType > ( Value ) ; / / static _ cast < EDefResolutionType > ( Value ) \u94fe\u63a5 \u4e0d\u5230 osm2odr . lib fatal error LNK1181 : carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ lib \\ osm2odr . lib \u4ece \u5176\u4ed6 \u5730\u65b9 \u62f7\u8d1d \u8fc7\u6765 \u3002 \u8fd0\u884c Carla \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002 \u865a\u5e7b 4 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5728 \u5931\u7126 \u65f6\u4f1a \u8fdb\u5165 \u4f4e \u6027\u80fd \u6a21\u5f0f \u3002 \u8f6c \u5230 \u201c \u7f16\u8f91 - > \u7f16\u8f91 \u7f16\u8f91\u5668 \u504f\u597d \u8bbe\u7f6e - > \u6027\u80fd \u201d \uff08 Edit / Editor Preferences / Performance \uff09 \uff0c \u7136\u540e \u7981\u7528 \u201c \u5904\u4e8e \u80cc\u666f \u4e2d \u65f6 \u5360\u7528 \u8f83 \u5c11 CPU \u201d \u9009\u9879 \u3002 \u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002 \u6709\u4e9b \u811a\u672c \u6709 \u8981\u6c42 \u3002 \u8fd9\u4e9b \u5217 \u5728 \u540d\u4e3a Requirements . txt \u7684 \u6587\u4ef6 \u4e2d \uff0c \u4e0e \u811a\u672c \u672c\u8eab \u4f4d\u4e8e \u540c\u4e00 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u8fd9\u4e9b \u4ee5\u4fbf \u8fd0\u884c \u811a\u672c \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 pip \u547d\u4ee4 \u8fdb\u884c \u5b89\u88c5 \u3002 \u6709\u65f6 \u5728 Windows \u4e0a \uff0c \u811a\u672c \u65e0\u6cd5 \u4ec5 \u4f7f\u7528 > script _ name . py \u8fd0\u884c \u3002 \u5c1d\u8bd5 \u6dfb\u52a0 . Try adding > python3 script _ name . py \uff0c \u5e76 \u786e\u4fdd \u4f4d\u4e8e \u6b63\u786e \u7684 \u76ee\u5f55 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5355\u51fb \u201c \u8fd0\u884c \u201d \uff08 Play \uff09 \u5e76 \u7b49\u5f85 \u573a\u666f \u52a0\u8f7d \u3002 \u6b64\u65f6 \uff0c Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u50cf \u72ec\u7acb \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e00\u6837 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd8\u662f \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u53ef\u80fd \u5df2 \u8fc7\u65f6 \u3002 \u786e\u4fdd \u60c5\u51b5 \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u5982\u679c \u95ee\u9898 \u4ecd \u672a \u89e3\u51b3 \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u53d1\u5e03 \u5177\u4f53 \u95ee\u9898 \u3002 ImportError : DLL load failed : The specified module could not be found . \u6240 \u9700 \u7684 \u5e93 \u4e4b\u4e00 \u5c1a\u672a \u6b63\u786e \u5b89\u88c5 \u3002 \u4f5c\u4e3a \u89e3\u51b3 \u65b9\u6cd5 \uff0c \u8bf7 \u8f6c\u81f3 carla \\ Build \\ zlib - source \\ build \u5e76 \u5728 \u811a\u672c \u7684 \u8def\u5f84 \u4e2d \u590d\u5236 \u540d\u4e3a zlib . dll \u7684 \u6587\u4ef6 \u3002 ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app . 32 \u4f4d Python \u7248\u672c \u5728 \u5c1d\u8bd5 \u8fd0\u884c \u811a\u672c \u65f6\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5378\u8f7d \u5b83 \u5e76 \u4ec5 \u4fdd\u7559 \u6240 \u9700 \u7684 Python3 x64 \u3002 ImportError : No module named ' carla ' \u51fa\u73b0 \u6b64 \u9519\u8bef \u7684 \u539f\u56e0 \u662f Python \u627e \u4e0d\u5230 Carla \u5e93 \u3002 Carla \u5e93 \u5305\u542b \u5728 \u4f4d\u4e8e PythonAPI / carla / dist \u76ee\u5f55 \u4e2d \u7684 \u4e00\u4e2a . egg \u6587\u4ef6 \u4e2d \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5c06 \u5728 \u6b64 \u76ee\u5f55 \u4e2d \u67e5\u627e \u5b83 \u3002 \u8be5 . egg \u6587\u4ef6 \u9075\u5faa carla - - py - . egg \u547d\u540d \u6cd5 \u3002 \u91cd\u8981 Carla \u4ec5 \u5728 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e2d \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u6587\u4ef6 . egg \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u5728 \u5feb\u901f \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u4e2d \u9605\u8bfb \u6709\u5173 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u65b0 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u6253\u5305 \u7248\u672c \u7684 Carla \uff0c \u5219 \u4f1a \u6709 \u591a\u4e2a . egg \u6587\u4ef6 \uff0c \u5bf9\u5e94 \u4e0d\u540c \u7248\u672c \u7684 Python \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u7684 \u7248\u672c \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u6b63\u5728 \u4f7f\u7528 \u8fd9\u4e9b Python \u7248\u672c \u4e4b\u4e00 \u8fd0\u884c \u811a\u672c \u3002 \u8981 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u952e\u5165 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a python3 -- version # \u6216\u8005 python -- version \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Python \uff0c \u5219 \u8be5 . egg \u6587\u4ef6 \u5c06 \u6839\u636e \u7cfb\u7edf \u4e0a \u7684 \u9ed8\u8ba4 Python \u7248\u672c \u6784\u5efa \u3002 \u5728 Linux \u4e2d \uff0c \u8fd9 \u5c06 \u662f \u8fd4\u56de \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a / usr / bin / env python3 -- version # \u6216\u8005 \u5982\u679c \u4f60 \u6307\u5b9a ARGS = \" -- python - version = 2 \" / usr / bin / env python2 -- version \u5728 Windows \u4e2d \uff0c \u5b83 \u5c06 \u6210\u4e3a \u4ee5\u4e0b \u529f\u80fd \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a py - 3 -- version \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u4e0e \u60a8 \u7684 . egg \u6587\u4ef6 \u5bf9\u5e94 \u7684 Python \u7248\u672c \u8fd0\u884c \u811a\u672c . egg \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 \u5c06 Python \u8def\u5f84 \u8bbe\u7f6e \u4e3a \u6307\u5411 Carla \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : < path / to / carla / > / PythonAPI / carla / dist / < your _ egg _ file > # \u68c0\u67e5 \u73b0\u5728 Carla \u662f\u5426 \u80fd \u53d1\u73b0 python3 - c ' import carla ; print ( \" Success \" ) ' \u8bf7 \u6ce8\u610f \uff0c \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u6216 Conda \u7b49 \u5176\u4ed6 Python \u73af\u5883 \u53ef\u80fd \u4f1a \u4f7f Carla \u7684 \u5b89\u88c5 \u53d8\u5f97 \u590d\u6742 \u53d8\u5f97\u590d\u6742 \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u76f8\u5e94 \u5730 \u8bbe\u7f6e Python \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u548c \u8def\u5f84 \u3002 RuntimeError : rpc : : rpc _ error during call in function apply _ batch PythonAPI \u7684 \u7248\u672c \u8981 \u548c Carla \u670d\u52a1 \u7684 \u7248\u672c \u4e00\u81f4 \uff0c \u6bd4\u5982 dev \u5206\u652f \u7684 \u4ee3\u7801 \u7f16\u8bd1 \u5f97\u5230 \u7684 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u7684 \u573a\u666f \u4e5f \u8981 \u7528 dev \u5206\u652f \u4ee3\u7801 \u7f16\u8bd1 \u7684 PythonAPI \u8fdb\u884c \u8fde\u63a5 \u3002 \u5176\u4ed6 Fatal error : ' version . h ' has been modified since the precompiled header . \u7531\u4e8e Linux \u66f4\u65b0 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u65f6\u5e38 \u53d1\u751f \u3002 Makefile \u4e2d\u6709 \u4e00\u4e2a \u9488\u5bf9 \u6b64 \u95ee\u9898 \u7684 \u7279\u6b8a \u76ee\u6807 \u3002 \u867d\u7136 \u82b1 \u4e86 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff0c \u4f46 \u89e3\u51b3 \u4e86 \u95ee\u9898 \uff1a make hard - clean make CarlaUE4Editor \u521b\u5efa Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u5728 Linux \u4e2d \uff0c \u5728 \u9879\u76ee \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c make package \u3002 \u8be5\u5305 \u5c06 \u5305\u62ec \u9879\u76ee \u548c Python API \u6a21\u5757 \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7f16\u8bd1 Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6253\u5f00 CarlaUE4 \u9879\u76ee \uff0c \u8f6c \u5230 \u83dc\u5355 File / Package Project \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u5e73\u53f0 \u3002 \u53ef\u80fd \u8fd8\u8981 \u7b49 \u4e00\u4e0b \u3002 \u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f \u867d\u7136 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e \u865a\u5e7b \u5f15\u64ce \uff0c \u4f46 \u5728 Carla \u4e2d \u4e0d\u53ef \u7528 \u3002 \u6211\u4eec \u6709 \u8bb8\u591a \u4e0d \u652f\u6301 \u4ea4\u53c9 \u7f16\u8bd1 \u7684 \u4f9d\u8d56 \u9879 \u3002 \u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1f \u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla","title":"\u5e38\u95ee \u7684 \u95ee\u9898"},{"location":"build_faq/#_1","text":"\u6b64\u5904 \u5217\u51fa \u4e86 \u6709\u5173 Carla \u5b89\u88c5 \u548c \u6784\u5efa \u7684 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u3002 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 \u8be5\u9879 \u76ee\u7684 GitHub issues \u627e\u5230 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u53d1\u73b0 \u6b64\u5904 \u5217\u51fa \u7684 \u7591\u95ee \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u968f\u65f6 \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5e38\u95ee \u7684 \u95ee\u9898"},{"location":"build_faq/#_2","text":"\u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 \u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_faq/#linux","text":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002 \u201c make launch \u201d \u5728 Linux \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 \u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002 AttributeError : module ' carla ' has no attribute ' Client ' when running a script . \u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" .","title":"Linux \u6784\u5efa"},{"location":"build_faq/#windows","text":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002 CarlaUE4 \u65e0\u6cd5 \u7f16\u8bd1 \u3002 \u5c1d\u8bd5 \u4ece\u6e90 \u624b\u52a8 \u91cd\u5efa \u5b83 \u3002 \u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002 Error C2440 , C2672 \uff1a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u3002 \u201c make launch \u201d \u5728 Windows \u4e0a \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002 \u6a21\u5757 \u7f3a\u5931 \u6216 \u4f7f\u7528 \u4e0d\u540c \u7684 \u5f15\u64ce \u7248\u672c \u6784\u5efa \u3002 \u5728 PythonAPI / carla \u4e2d \u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939","title":"Windows \u6784\u5efa"},{"location":"build_faq/#carla","text":"\u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002 \u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002 \u5f53 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u94fe\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd8\u662f \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 ImportError : DLL load failed : The specified module could not be found . ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app . ImportError : No module named ' carla ' RuntimeError : rpc : : rpc _ error during call in function apply _ batch","title":"\u8fd0\u884c Carla"},{"location":"build_faq/#_3","text":"Fatal error : ' version . h ' has been modified since the precompiled header . \u521b\u5efa Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f \u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1f","title":"\u5176\u4ed6"},{"location":"build_faq/#_4","text":"","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_faq/#carla_1","text":"\u5efa\u8bae \u81f3\u5c11 \u6709 170GB \u53ef\u7528 \u7a7a\u95f4 \u3002 \u6784\u5efa Carla \u9700\u8981 \u5927\u7ea6 35GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \uff0c \u52a0\u4e0a \u865a\u5e7b \u5f15\u64ce \u5927\u7ea6 \u9700\u8981 95 - 135GB \u3002","title":"\u6784\u5efa Carla \u6240 \u9700 \u7684 \u78c1\u76d8\u7a7a\u95f4 \u3002"},{"location":"build_faq/#carla_2","text":"Carla \u662f \u4e00\u6b3e \u6027\u80fd \u8981\u6c42 \u8f83 \u9ad8 \u7684 \u8f6f\u4ef6 \u3002 \u5b83 \u81f3\u5c11 \u9700\u8981 6GB GPU \uff0c \u6216\u8005 \u66f4\u597d \u7684 \u662f \u80fd\u591f \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 \u4e13\u7528 GPU \u3002 \u770b\u770b \u865a\u5e7b \u5f15\u64ce \u63a8\u8350 \u7684 \u786c\u4ef6 \u3002","title":"\u8fd0\u884c Carla \u7684 \u63a8\u8350 \u786c\u4ef6 \u3002"},{"location":"build_faq/#linux_1","text":"","title":"Linux \u6784\u5efa"},{"location":"build_faq/#github-carlaue4sh","text":"Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . sh \u811a\u672c \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u4f7f\u7528 CarlaUE4 . sh \u8fd0\u884c Carla \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . sh \u201d \u811a\u672c \u3002"},{"location":"build_faq/#make-launch-linux","text":"\u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76\u4f1a \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u5c1d\u8bd5 \u5355\u72ec \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u5b83 \u662f\u5426 \u662f\u5426\u662f 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 UE4 _ ROOT \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u3002 \u5883 \u53d8\u91cf \u672a \u8bbe\u7f6e \u3002 \u8bf7 \u8bb0\u4f4f \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 ~ / . bashrc \u6216 ~ / . profile \u6765 \u4f7f \u5176 \u5728 \u4f1a \u8bdd \u8303\u56f4 \u5185 \u6301\u4e45 \u5b58\u5728 \u3002 \u5426\u5219 \uff0c \u9700\u8981 \u4e3a \u6bcf\u4e2a \u65b0 shell \u8fdb\u884c \u8bbe\u7f6e \u3002 \u8fd0\u884c export UE4 _ ROOT = < path _ to _ unreal _ 4 - 26 > \u8bbe\u7f6e \u8fd9\u6b21 \u7684 \u53d8\u91cf \u3002 \u68c0\u67e5 \u4f9d\u8d56 \u3002 \u786e\u4fdd \u4e00\u5207 \u90fd \u5b89\u88c5 \u6b63\u786e \u3002 \u4e5f\u8bb8 \u5176\u4e2d \u4e00\u4e2a \u547d\u4ee4 \u88ab \u8df3 \u8fc7 \u3001 \u4e0d \u6210\u529f \u6216\u8005 \u4f9d\u8d56 \u9879 \u4e0d \u9002\u5408 \u7cfb\u7edf \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Ubuntu \u7248\u672c \u5e94\u4e3a 16.04 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002","title":"\u201c make launch \u201d \u5728 Linux \u4e0a \u4e0d\u8d77\u4f5c\u7528 \u3002"},{"location":"build_faq/#_5","text":"1 . \u865a\u5e7b \u5f15\u64ce \u5e10\u53f7 \u662f\u5426 \u5df2 \u6fc0\u6d3b \uff1f \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93\u662f \u79c1\u6709 \u7684 \u3002 \u4e3a\u4e86 \u514b\u9686 \u5b83 \uff0c \u8bf7 \u521b\u5efa \u865a \u5e7b \u5f15\u64ce \u5e10 \u6237 \uff0c \u6fc0\u6d3b \u5b83 \uff08 \u68c0\u67e5 \u9a8c\u8bc1 \u90ae\u4ef6 \uff09 \uff0c \u7136\u540e \u94fe\u63a5 \u60a8 \u7684 GitHub \u5e10\u6237 \u3002 2 . git \u662f\u5426 \u5b89\u88c5 \u6b63\u786e \uff1f \u6709\u65f6 \u9519\u8bef \u8868\u660e \u4e0e https \u534f\u8bae \u4e0d \u517c\u5bb9 \u3002 \u901a\u8fc7 \u5378\u8f7d \u5e76 \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 git \u5373\u53ef \u8f7b\u677e \u89e3\u51b3 \u3002 \u6253\u5f00 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a sudo apt - get remove git # \u5378\u8f7d git sudo apt install git - all # \u5b89\u88c5 git","title":"\u514b\u9686 \u865a\u5e7b \u5f15\u64ce \u5b58\u50a8 \u5e93 \u663e\u793a \u9519\u8bef \u3002"},{"location":"build_faq/#attributeerror-module-carla-has-no-attribute-client-when-running-a-script","text":"\u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 pip3 install - Iv setuptools = = 47.3 . 1 \u5e76 \u518d\u6b21 \u6784\u5efa PythonAPI \u3002 make PythonAPI \u5c1d\u8bd5 \u6784\u5efa \u6587\u6863 \u6765 \u6d4b\u8bd5 \u4e00\u5207 \u662f\u5426 \u6b63\u5e38 \u8fd0\u884c \u3002 \u5e94\u8be5 \u4f1a \u663e\u793a \u6210\u529f \u7684 \u6d88\u606f \u3002 make PythonAPI . docs","title":"AttributeError : module ' carla ' has no attribute ' Client ' when running a script ."},{"location":"build_faq/#runtimeerror-rpcrpc_error-during-call-in-function-version","text":"\u5982\u679c \u8fd0\u884c \u811a\u672c \u8fd4\u56de \u4e0e \u6b64\u7c7b \u4f3c\u7684 \u8f93\u51fa \uff0c \u5219 \u8bf4\u660e PythonAPI \u4e2d \u7684 . egg \u6587\u4ef6 \u5b58\u5728 \u95ee\u9898 \u3002 \u91cd\u8981 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u9996\u5148 \uff0c \u6253\u5f00 < root _ carla > / PythonAPI / carla / dist \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u548c \u4f60 \u6b63\u5728 \u4f7f\u7528 \u76f8\u5bf9 \u5e94 \u7684 Carla \u548c Python \u54cd\u5e94 \u7684 . egg \u6587\u4ef6 \uff08 \u7c7b\u4f3c \u4e8e carla - 0 . X . X - pyX . X - linux - x86 _ 64 . egg \uff09 \u3002 \u786e\u4fdd \u8be5 \u6587\u4ef6 \u4e0e \u60a8 \u6b63\u5728 \u4f7f\u7528 \u7684 Python \u7248\u672c \u5339\u914d \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u3002 python3 -- version # \u6216\u8005 \u5bf9\u4e8e Python 2 python -- version \u5982\u679c \u6587\u4ef6 \u4e22\u5931 \u6216\u8005 \u60a8 \u8ba4\u4e3a \u5b83 \u53ef\u80fd \u635f\u574f \u5df2\u635f\u574f \uff0c \u8bf7 \u5c1d\u8bd5 \u518d\u6b21 \u91cd\u5efa \u3002 make clean make PythonAPI make launch \u73b0\u5728 \u518d\u6b21 \u5c1d\u8bd5 \u793a\u4f8b \u811a\u672c \u4e4b\u4e00 \u3002 cd PythonAPI / examples python3 dynamic _ weather . py \u5982\u679c \u9519\u8bef \u4ecd\u7136 \u5b58\u5728 \uff0c \u5219 \u95ee\u9898 \u53ef\u80fd \u4e0e \u60a8 \u7684 PythonPATH \u6709\u5173 \u3002 \u8fd9\u4e9b \u811a\u672c \u4f1a \u81ea\u52a8 \u67e5\u627e . egg \u4e0e \u6784\u5efa \u76f8\u5173 \u7684 \u6587\u4ef6 \uff0c \u56e0\u6b64 \uff0c \u60a8 \u7684 PythonPATH \u4e2d \u53ef\u80fd \u5b58\u5728 \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \u5e72\u6270 \u8be5 \u8fc7\u7a0b \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u663e\u793a PythonPATH \u7684 \u5185\u5bb9 \u3002 echo $ PYTHONPATH \u5728 \u7c7b\u4f3c \u4e8e PythonAPI / carla / dist \u7684 \u8def\u5f84 \u4e0b \u67e5\u627e \u53e6 \u4e00\u4e2a . egg \u6587\u4ef6 \uff0c \u5e76 \u5220\u9664 \u5b83\u4eec \u3002 \u5b83\u4eec \u53ef\u80fd \u5c5e\u4e8e Carla \u5b89\u88c5 \u7684 \u5176\u4ed6 \u5b9e\u4f8b \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u8fd8 \u901a\u8fc7 apt - get \u5b89\u88c5 \u4e86 Carla \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5220\u9664 \uff0c \u5e76\u4e14 PythonPATH \u4e5f \u4f1a \u88ab \u6e05\u7406 \u3002 sudo apt - get purge carla - simulator \u6700\u7ec8 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 ~ / . bashrc \uff0c \u5c06 PythonPATH \u4e0b \u4f60 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u8fdb\u6765 \u3002 \u8fd9 \u4e0d\u662f \u63a8\u8350 \u7684 \u65b9\u5f0f \u3002 \u6700\u597d \u6709 \u4e00\u4e2a \u660e\u786e \u7684 PythonPATH \uff0c \u53ea \u9700 \u5728 \u811a\u672c \u4e2d \u6dfb\u52a0 \u5fc5\u8981 \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u5373\u53ef \u3002 \u9996\u5148 \uff0c \u6253\u5f00 ~ / . bashrc . gedit ~ / . bashrc \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 ~ / . bashrc \u3002 \u5b83\u4eec \u5b58\u50a8 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \uff0c \u4ee5\u4fbf Python \u53ef\u4ee5 \u81ea\u52a8 \u627e\u5230 \u5b83 \u3002 \u4fdd\u5b58 \u6587\u4ef6 \uff0c \u7136\u540e \u91cd\u7f6e \u7ec8\u7aef \u4ee5 \u4f7f \u66f4\u6539 \u751f\u6548 \u3002 export PYTHONPATH = $ PYTHONPATH : \" $ { CARLA _ ROOT } / PythonAPI / carla / dist / $ ( ls $ { CARLA _ ROOT } / PythonAPI / carla / dist | grep py3 . ) \" export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6e05\u7406 PythonPATH \u6216 \u6dfb\u52a0 \u6784\u5efa \u7684 . egg \u6587\u4ef6 \u8def\u5f84 \u540e \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5e94\u8be5 \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u65e0\u6cd5 \u8fd0\u884c \u793a\u4f8b \u811a\u672c \u6216 \" RuntimeError : rpc : : rpc _ error during call in function version \" ."},{"location":"build_faq/#windows_1","text":"","title":"Windows \u6784\u5efa"},{"location":"build_faq/#github-carlaue4exe","text":"Carla \u7684 \u6e90 \u7248\u672c \u4e2d \u6ca1\u6709 CarlaUE4 . exe \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u6309\u7167 \u6784\u5efa \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u8981 \u76f4\u63a5 \u83b7\u53d6 CarlaUE4 . exe \uff0c \u8bf7 \u6309\u7167 \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u4ece GitHub \u4e0b\u8f7d \u65f6 \u4e0d\u4f1a \u51fa\u73b0 \u201c CarlaUE4 . exe \u201d \u3002"},{"location":"build_faq/#carlaue4-could-not-be-compiled-try-rebuilding-it-from-source-manually","text":"\u5c1d\u8bd5 \u6784\u5efa Carla \u65f6 \u51fa\u73b0 \u95ee\u9898 \u3002 \u4f7f\u7528 Visual Studio \u91cd\u65b0 \u6784\u5efa \u4ee5 \u53d1\u73b0 \u53d1\u751f \u4e86 \u4ec0\u4e48 \u3002 1 . \u8f6c \u5230 carla / Unreal / CarlaUE4 \u5e76 \u53f3\u952e \u5355\u51fb CarlaUE4 . uproject \u3002 2 . \u5355\u51fb Generate Visual Studio project files \u3002 3 . \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 \u751f\u6210 \u7684 \u6587\u4ef6 \u3002 4 . \u4f7f\u7528 Visual Studio \u7f16\u8bd1 \u9879\u76ee \u3002 \u5feb\u6377 \u5feb\u6377\u952e \u662f F7 \u3002 \u6784\u5efa \u5c06 \u5931\u8d25 \uff0c \u4f46 \u53d1\u73b0 \u7684 \u95ee\u9898 \u5c06 \u663e\u793a \u5728 \u4e0b\u9762 \u3002 \u4e0d\u540c \u7684 \u95ee\u9898 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51fa\u73b0 \u6b64 \u7279\u5b9a \u9519\u8bef \u6d88\u606f \u3002 \u7528\u6237 @ tamakoji \u89e3\u51b3 \u4e86 \u4e00\u4e2a \u7ecf\u5e38 \u51fa\u73b0 \u7ecf\u5e38\u51fa\u73b0 \u7684 \u60c5\u51b5 \uff0c \u5373 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u672a \u6b63\u786e \u514b\u9686 \u4e14 \u65e0\u6cd5 \u8bbe\u7f6e Carla \u7248\u672c \uff08 \u4ece git \u5c06 \u5176 \u4e0b\u8f7d \u4e3a . zip \u65f6 \uff09 \u3002 \u68c0\u67e5 Build / CMakeLists . txt . in . \u5982\u679c \u663e\u793a \uff1a set ( CARLA _ VERSION ) \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u64cd\u4f5c \uff1a 1 . \u8f6c \u5230 Setup . bat \u7b2c 198 \u884c \u3002 2 . Update the line from : for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = %% i \u4e3a \uff1a for / f %% i in ( ' git describe -- tags -- dirty -- always ' ) do set carla _ version = \" 0.9 . 9 \"","title":"CarlaUE4 could not be compiled . Try rebuilding it from source manually ."},{"location":"build_faq/#cmake-cmake","text":"\u5f53 \u5c1d\u8bd5 \u4f7f\u7528 make \u547d\u4ee4 \u6784\u5efa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6\u4f1a \u51fa\u73b0 \u6b64 \u95ee\u9898 \u3002 \u5373\u4f7f CMake \u5df2 \u5b89\u88c5 \u3001 \u66f4\u65b0 \u5e76 \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 Visual Studio \u7248\u672c \u4e4b\u95f4 \u53ef\u80fd \u5b58\u5728 \u51b2\u7a81 \u3002 \u53ea \u7559\u4e0b VS2019 \uff0c \u5176\u4f59 \u7684 \u5f7b\u5e95 \u5220\u9664 \u3002","title":"\u5373\u4f7f CMake \u5df2 \u6b63\u786e \u5b89\u88c5 \uff0c \u4e5f \u4f1a \u663e\u793a CMake \u9519\u8bef \u3002"},{"location":"build_faq/#error-c2440-c2672-compiler-version","text":"\u7531\u4e8e \u4e0e \u5176\u4ed6 Visual Studio \u6216 Microsoft \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u51b2\u7a81 \uff0c \u8be5 \u6784\u5efa \u672a \u4f7f\u7528 2019 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u3002 \u5378\u8f7d \u8fd9\u4e9b \u5e76 \u518d\u6b21 \u91cd\u5efa \u3002 Visual Studio \u4e0d \u64c5\u957f \u6446\u8131 \u81ea\u8eab \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u7ba1\u7406 \u7ba1\u7406\u5458 \u6743\u9650 \u3002 \u8981 \u4fdd\u7559 \u5176\u4ed6 Visual Studio \u7248\u672c \uff0c \u8bf7 \u901a\u8fc7 \u6dfb\u52a0 \u4ee5\u4e0b \u884c \u8fdb\u884c \u7f16\u8f91 % appdata% \\ Unreal Engine \\ UnrealBuildTool \\ BuildConfiguration . xml \uff1a < VCProjectFileGenerator > < Version > VisualStudio2019 < / Version > < / VCProjectFileGenerator > < WindowsPlatform > < Compiler > VisualStudio2019 < / Compiler > < / WindowsPlatform >","title":"Error C2440 , C2672 : compiler version ."},{"location":"build_faq/#make-launch-windows","text":"\u5728 \u6784\u5efa \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u4f1a \u62d6 \u51fa \u8bb8\u591a \u4e0d\u540c \u7684 \u95ee\u9898 \uff0c \u5e76 \u50cf \u8fd9\u6837 \u663e\u73b0 \u73b0\u51fa \u51fa\u6765 \u663e\u73b0\u51fa \u663e\u73b0\u51fa\u6765 \u3002 \u4ee5\u4e0b \u662f \u6700 \u53ef\u80fd \u7684 \u539f\u56e0 \u5217\u8868 \uff1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002 Windows \u6784\u5efa \u671f\u95f4 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u5e76 \u786e\u4fdd \u6240\u6709 \u5185\u5bb9 \u5747 \u5df2 \u6b63\u786e \u66f4\u65b0 \u3002 \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce 4.26 \u3002 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u65f6 \u53ef\u80fd \u51fa\u73b0 \u67d0\u4e9b \u95ee\u9898 \u3002 \u8fd0\u884c \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u68c0\u67e5 \u662f\u5426 \u4f7f\u7528 \u4e86 4.26 \u7248\u672c \u3002 \u4e0b\u8f7d \u8d44\u4ea7 \u3002 \u5982\u679c \u6ca1\u6709 \u89c6\u89c9 \u5185\u5bb9 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u65e0\u6cd5 \u8fd0\u884c \u3002 \u6b64 \u6b65\u9aa4 \u662f \u5f3a\u5236 \u5f3a\u5236\u6027 \u7684 \u3002 Visual Studio 2019 . \u5982\u679c \u5b89\u88c5 \u6216 \u6700\u8fd1 \u5378\u8f7d \u4e86 \u5176\u4ed6 \u7248\u672c \u7684 Visual Studio \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u51b2\u7a81 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u5220\u9664 Carla \u5e76 \u518d\u6b21 \u514b\u9686 \u5b83 \u3002 \u4ee5\u9632 \u4e07\u4e00 \u4ee5\u9632\u4e07\u4e00 \u51fa \u4e86 \u95ee\u9898 \u3002 \u5220\u9664 Carla \u5e76 \u91cd\u65b0 \u514b\u9686 \u6216 \u4e0b\u8f7d \u3002 \u6ee1\u8db3 \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u9700\u8981 \u5927\u7ea6 170GB \u7684 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u548c \u4e00\u4e2a \u4e13\u7528 GPU \uff08 \u6216 \u81f3\u5c11 \u4e00\u4e2a 6GB \uff09 \u624d\u80fd \u8fd0\u884c \u3002 \u7cfb\u7edf \u663e\u793a \u4e0e Carla \u51b2\u7a81 \u7684 \u5176\u4ed6 \u7279\u5b9a \u539f\u56e0 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8bf7 \u5c06 \u8fd9\u4e9b \u5185\u5bb9 \u53d1\u5e03 \u5230 \u8bba\u575b \u4e0a \uff0c \u4ee5\u4fbf \u56e2\u961f \u53ef\u4ee5 \u66f4\u591a \u66f4\u591a\u5730 \u4e86\u89e3 \u5b83\u4eec \u3002","title":"\u201c make launch \u201d \u5728 Windows \u4e0a \u4e0d\u8d77\u4f5c\u7528 \u3002"},{"location":"build_faq/#make-libintl3dll-libiconv2dll","text":"\u4e0b\u8f7d \u4f9d\u8d56 \u9879 \u5e76 \u5c06 bin \u5185\u5bb9 \u89e3\u538b \u5230 make \u5b89\u88c5 \u8def\u5f84 \u4e2d \u3002","title":"Make \u7f3a\u5c11 libintl3 . dll \u6216 / \u548c libiconv2 . dll \u3002"},{"location":"build_faq/#modules-are-missing-or-built-with-a-different-engine-version","text":"\u5355\u51fb on Accept \u4ee5 \u91cd\u5efa \u5b83\u4eec \u3002","title":"Modules are missing or built with a different engine version ."},{"location":"build_faq/#pythonapicarladist","text":"\u5728 Windows \u4e2d \uff0c make PythonAPI \u547d\u4ee4 \u53ef\u80fd \u4f1a \u8fd4\u56de \u4e00\u6761 \u6d88\u606f \uff0c \u8868\u660e Python API \u5b89\u88c5 \u6210\u529f \uff0c \u4f46 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5e76\u672a \u6210\u529f \u3002 \u5982\u679c \u770b\u5230 \u6b64 \u8f93\u51fa \u540e \u76ee\u5f55 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u8bf7 \u67e5\u770b \u4e0a\u9762 \u7684 \u547d\u4ee4 \u8f93\u51fa \u3002 \u5f88 \u53ef\u80fd \u53d1\u751f \u4e86 \u9519\u8bef \uff0c \u9700\u8981 \u5728 \u66f4\u6b63 \u9519\u8bef \u5e76 \u8fd0\u884c make clean \u540e \u91cd\u8bd5 \u6784\u5efa \u3002","title":"\u5c3d\u7ba1 \u6210\u529f \u8f93\u51fa \u6d88\u606f \uff0c \u4f46 \u5728 PythonAPI / carla \u4e2d \u6ca1\u6709 dist \u6587\u4ef6\u5939 \u3002"},{"location":"build_faq/#osm2odr-visualstudio","text":"CMake Error : The current CMakeCache . txt directory D : / work / workspace / carla / Build / osm2odr - visualstudio / CMakeCache . txt is different than the directory d : / work / buffer / carla / Build / osm2odr - visualstudio where CMakeCache . txt was created . This may result in binaries being created in the wrong place . If you are not sure , reedit the CMakeCache . txt CMake Error : The source directory \" D : / work / workspace / carla / Build / osm2odr - visualstudio / x64 \" does not appear to contain CMakeLists . txt . \u5220\u9664 carla \\ Build \\ osm2odr - visualstudio \\ CMakeCache . txt","title":"osm2odr - visualstudio \u4e3a\u7a7a \uff0c \u6216\u8005 \u62f7\u8d1d \u8fc7\u53bb \u7684 \u76ee\u5f55 \u4e0d \u5bf9"},{"location":"build_faq/#_6","text":"carla / Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Vehicle / CustomTerrainPhysicsComponent . cpp ( 1161 ) : error C2440 : \u201c static _ cast \u201d : \u65e0\u6cd5 \u4ece \u201c float \u201d \u8f6c\u6362 \u4e3a \u201c EDefResolutionType \u201d \u6ce8\u91ca \u6389 / / ChosenRes = static _ cast < EDefResolutionType > ( Value ) ; / / static _ cast < EDefResolutionType > ( Value )","title":"\u7c7b\u578b\u8f6c\u6362 \u4e0d \u5bf9"},{"location":"build_faq/#osm2odrlib","text":"fatal error LNK1181 : carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ lib \\ osm2odr . lib \u4ece \u5176\u4ed6 \u5730\u65b9 \u62f7\u8d1d \u8fc7\u6765 \u3002","title":"\u94fe\u63a5 \u4e0d\u5230 osm2odr . lib"},{"location":"build_faq/#carla_3","text":"","title":"\u8fd0\u884c Carla"},{"location":"build_faq/#fps","text":"\u865a\u5e7b 4 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5728 \u5931\u7126 \u65f6\u4f1a \u8fdb\u5165 \u4f4e \u6027\u80fd \u6a21\u5f0f \u3002 \u8f6c \u5230 \u201c \u7f16\u8f91 - > \u7f16\u8f91 \u7f16\u8f91\u5668 \u504f\u597d \u8bbe\u7f6e - > \u6027\u80fd \u201d \uff08 Edit / Editor Preferences / Performance \uff09 \uff0c \u7136\u540e \u7981\u7528 \u201c \u5904\u4e8e \u80cc\u666f \u4e2d \u65f6 \u5360\u7528 \u8f83 \u5c11 CPU \u201d \u9009\u9879 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u670d\u52a1\u5668\u65f6 FPS \u901f\u7387 \u8f83 \u4f4e \u3002"},{"location":"build_faq/#_7","text":"\u6709\u4e9b \u811a\u672c \u6709 \u8981\u6c42 \u3002 \u8fd9\u4e9b \u5217 \u5728 \u540d\u4e3a Requirements . txt \u7684 \u6587\u4ef6 \u4e2d \uff0c \u4e0e \u811a\u672c \u672c\u8eab \u4f4d\u4e8e \u540c\u4e00 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u8fd9\u4e9b \u4ee5\u4fbf \u8fd0\u884c \u811a\u672c \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u53ef\u4ee5 \u901a\u8fc7 \u7b80\u5355 \u7684 pip \u547d\u4ee4 \u8fdb\u884c \u5b89\u88c5 \u3002 \u6709\u65f6 \u5728 Windows \u4e0a \uff0c \u811a\u672c \u65e0\u6cd5 \u4ec5 \u4f7f\u7528 > script _ name . py \u8fd0\u884c \u3002 \u5c1d\u8bd5 \u6dfb\u52a0 . Try adding > python3 script _ name . py \uff0c \u5e76 \u786e\u4fdd \u4f4d\u4e8e \u6b63\u786e \u7684 \u76ee\u5f55 \u4e2d \u3002","title":"\u65e0\u6cd5 \u8fd0\u884c \u811a\u672c \u3002"},{"location":"build_faq/#_8","text":"\u5355\u51fb \u201c \u8fd0\u884c \u201d \uff08 Play \uff09 \u5e76 \u7b49\u5f85 \u573a\u666f \u52a0\u8f7d \u3002 \u6b64\u65f6 \uff0c Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u50cf \u72ec\u7acb \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e00\u6837 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u8fd0\u884c \u65f6 \u8fde\u63a5 \u5230 \u4eff\u771f\u5668 \u3002"},{"location":"build_faq/#carla_4","text":"NVIDIA \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \u53ef\u80fd \u5df2 \u8fc7\u65f6 \u3002 \u786e\u4fdd \u60c5\u51b5 \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u5982\u679c \u95ee\u9898 \u4ecd \u672a \u89e3\u51b3 \uff0c \u8bf7 \u67e5\u770b \u8bba\u575b \u5e76 \u53d1\u5e03 \u5177\u4f53 \u95ee\u9898 \u3002","title":"\u65e0\u6cd5 \u8fd0\u884c Carla \uff0c \u65e0\u8bba\u662f \u4e8c\u8fdb\u5236 \u8fd8\u662f \u6e90\u4ee3\u7801 \u6784\u5efa \u3002"},{"location":"build_faq/#importerror-dll-load-failed-the-specified-module-could-not-be-found","text":"\u6240 \u9700 \u7684 \u5e93 \u4e4b\u4e00 \u5c1a\u672a \u6b63\u786e \u5b89\u88c5 \u3002 \u4f5c\u4e3a \u89e3\u51b3 \u65b9\u6cd5 \uff0c \u8bf7 \u8f6c\u81f3 carla \\ Build \\ zlib - source \\ build \u5e76 \u5728 \u811a\u672c \u7684 \u8def\u5f84 \u4e2d \u590d\u5236 \u540d\u4e3a zlib . dll \u7684 \u6587\u4ef6 \u3002","title":"ImportError : DLL load failed : The specified module could not be found ."},{"location":"build_faq/#importerror-dll-load-failed-while-importing-libcarla-1-is-not-a-valid-win32-app","text":"32 \u4f4d Python \u7248\u672c \u5728 \u5c1d\u8bd5 \u8fd0\u884c \u811a\u672c \u65f6\u4f1a \u4ea7\u751f \u51b2\u7a81 \u3002 \u5378\u8f7d \u5b83 \u5e76 \u4ec5 \u4fdd\u7559 \u6240 \u9700 \u7684 Python3 x64 \u3002","title":"ImportError : DLL load failed while importing libcarla : % 1 is not a valid Win32 app ."},{"location":"build_faq/#importerror-no-module-named-carla","text":"\u51fa\u73b0 \u6b64 \u9519\u8bef \u7684 \u539f\u56e0 \u662f Python \u627e \u4e0d\u5230 Carla \u5e93 \u3002 Carla \u5e93 \u5305\u542b \u5728 \u4f4d\u4e8e PythonAPI / carla / dist \u76ee\u5f55 \u4e2d \u7684 \u4e00\u4e2a . egg \u6587\u4ef6 \u4e2d \uff0c \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u5c06 \u5728 \u6b64 \u76ee\u5f55 \u4e2d \u67e5\u627e \u5b83 \u3002 \u8be5 . egg \u6587\u4ef6 \u9075\u5faa carla - - py - . egg \u547d\u540d \u6cd5 \u3002 \u91cd\u8981 Carla \u4ec5 \u5728 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e2d \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u6587\u4ef6 . egg \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 + \uff0c \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff08 . whl \u6216 PyPi \u4e0b\u8f7d \uff09 \u7684 \u8f83 \u65b0 \u65b9\u6cd5 \u4e4b\u4e00 \uff0c \u672c\u8282 \u4e2d \u7684 \u4fe1\u606f \u5c06 \u4e0e \u60a8 \u65e0\u5173 \u3002 \u5728 \u5feb\u901f \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u4e2d \u9605\u8bfb \u6709\u5173 \u4f7f\u7528 / \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u65b0 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u6253\u5305 \u7248\u672c \u7684 Carla \uff0c \u5219 \u4f1a \u6709 \u591a\u4e2a . egg \u6587\u4ef6 \uff0c \u5bf9\u5e94 \u4e0d\u540c \u7248\u672c \u7684 Python \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u7684 \u7248\u672c \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u6b63\u5728 \u4f7f\u7528 \u8fd9\u4e9b Python \u7248\u672c \u4e4b\u4e00 \u8fd0\u884c \u811a\u672c \u3002 \u8981 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Python \u7248\u672c \uff0c \u8bf7 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u952e\u5165 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a python3 -- version # \u6216\u8005 python -- version \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Python \uff0c \u5219 \u8be5 . egg \u6587\u4ef6 \u5c06 \u6839\u636e \u7cfb\u7edf \u4e0a \u7684 \u9ed8\u8ba4 Python \u7248\u672c \u6784\u5efa \u3002 \u5728 Linux \u4e2d \uff0c \u8fd9 \u5c06 \u662f \u8fd4\u56de \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a / usr / bin / env python3 -- version # \u6216\u8005 \u5982\u679c \u4f60 \u6307\u5b9a ARGS = \" -- python - version = 2 \" / usr / bin / env python2 -- version \u5728 Windows \u4e2d \uff0c \u5b83 \u5c06 \u6210\u4e3a \u4ee5\u4e0b \u529f\u80fd \u7684 \u9ed8\u8ba4 Python \u7248\u672c \uff1a py - 3 -- version \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u4e0e \u60a8 \u7684 . egg \u6587\u4ef6 \u5bf9\u5e94 \u7684 Python \u7248\u672c \u8fd0\u884c \u811a\u672c . egg \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 \u5c06 Python \u8def\u5f84 \u8bbe\u7f6e \u4e3a \u6307\u5411 Carla \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : < path / to / carla / > / PythonAPI / carla / dist / < your _ egg _ file > # \u68c0\u67e5 \u73b0\u5728 Carla \u662f\u5426 \u80fd \u53d1\u73b0 python3 - c ' import carla ; print ( \" Success \" ) ' \u8bf7 \u6ce8\u610f \uff0c \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u6216 Conda \u7b49 \u5176\u4ed6 Python \u73af\u5883 \u53ef\u80fd \u4f1a \u4f7f Carla \u7684 \u5b89\u88c5 \u53d8\u5f97 \u590d\u6742 \u53d8\u5f97\u590d\u6742 \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u76f8\u5e94 \u5730 \u8bbe\u7f6e Python \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u548c \u8def\u5f84 \u3002","title":"ImportError : No module named ' carla '"},{"location":"build_faq/#runtimeerror-rpcrpc_error-during-call-in-function-apply_batch","text":"PythonAPI \u7684 \u7248\u672c \u8981 \u548c Carla \u670d\u52a1 \u7684 \u7248\u672c \u4e00\u81f4 \uff0c \u6bd4\u5982 dev \u5206\u652f \u7684 \u4ee3\u7801 \u7f16\u8bd1 \u5f97\u5230 \u7684 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u7684 \u573a\u666f \u4e5f \u8981 \u7528 dev \u5206\u652f \u4ee3\u7801 \u7f16\u8bd1 \u7684 PythonAPI \u8fdb\u884c \u8fde\u63a5 \u3002","title":"RuntimeError : rpc : : rpc _ error during call in function apply _ batch"},{"location":"build_faq/#_9","text":"","title":"\u5176\u4ed6"},{"location":"build_faq/#fatal-error-versionh-has-been-modified-since-the-precompiled-header","text":"\u7531\u4e8e Linux \u66f4\u65b0 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u65f6\u5e38 \u53d1\u751f \u3002 Makefile \u4e2d\u6709 \u4e00\u4e2a \u9488\u5bf9 \u6b64 \u95ee\u9898 \u7684 \u7279\u6b8a \u76ee\u6807 \u3002 \u867d\u7136 \u82b1 \u4e86 \u5f88 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff0c \u4f46 \u89e3\u51b3 \u4e86 \u95ee\u9898 \uff1a make hard - clean make CarlaUE4Editor","title":"Fatal error : ' version . h ' has been modified since the precompiled header ."},{"location":"build_faq/#carla_5","text":"\u5728 Linux \u4e2d \uff0c \u5728 \u9879\u76ee \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c make package \u3002 \u8be5\u5305 \u5c06 \u5305\u62ec \u9879\u76ee \u548c Python API \u6a21\u5757 \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7f16\u8bd1 Carla \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002 \u6253\u5f00 CarlaUE4 \u9879\u76ee \uff0c \u8f6c \u5230 \u83dc\u5355 File / Package Project \uff0c \u7136\u540e \u9009\u62e9 \u4e00\u4e2a \u5e73\u53f0 \u3002 \u53ef\u80fd \u8fd8\u8981 \u7b49 \u4e00\u4e0b \u3002","title":"\u521b\u5efa Carla \u7684 \u4e8c\u8fdb\u5236 \u7248\u672c \u3002"},{"location":"build_faq/#linux-windows-carla","text":"\u867d\u7136 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e \u865a\u5e7b \u5f15\u64ce \uff0c \u4f46 \u5728 Carla \u4e2d \u4e0d\u53ef \u7528 \u3002 \u6211\u4eec \u6709 \u8bb8\u591a \u4e0d \u652f\u6301 \u4ea4\u53c9 \u7f16\u8bd1 \u7684 \u4f9d\u8d56 \u9879 \u3002","title":"\u6211 \u53ef\u4ee5 \u5728 Linux \u8ba1\u7b97\u673a \u4e0a \u6253\u5305 \u9002\u7528 \u4e8e Windows \u7684 Carla \uff0c \u53cd\u4e4b\u4ea6\u7136 \u5417 \uff1f"},{"location":"build_faq/#carla_6","text":"\u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla","title":"\u5982\u4f55 \u5378\u8f7d Carla \u5ba2\u6237\u7aef \u5e93 \uff1f"},{"location":"build_linux/","text":"Linux \u7cfb\u7edf \u4e0a \u7684 \u6784\u5efa \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Linux \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 Ubuntu 18.04 . Carla \u63d0\u4f9b \u5bf9 Ubuntu 16.04 \u4e4b\u524d \u7248\u672c \u7684 \u652f\u6301 \u3002 \u7136\u800c \uff0c \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u9002\u5f53 \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4e0b\u9762 \u5355\u72ec \u5217\u51fa \u4e86 Ubuntu 18.04 \u53ca \u4e4b\u524d \u7248\u672c \u7684 \u4f9d\u8d56 \u9879 \u3002 \u786e\u4fdd \u5b89\u88c5 \u4e0e \u60a8 \u7684 \u7cfb\u7edf \u76f8\u5bf9 \u5e94 \u7684 \u8f6f\u4ef6 \u3002 130 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u5360\u7528 \u5927\u7ea6 31 GB \uff0c \u865a\u5e7b \u5f15\u64ce \u5c06 \u5360\u7528 \u5927\u7ea6 91 GB \uff0c \u56e0\u6b64 \u9700\u8981 \u5927\u7ea6 130 GB \u7684 \u53ef\u7528 \u7a7a\u95f4 \u6765 \u5bb9\u7eb3 \u8fd9 \u4e24\u4e2a \u7a7a\u95f4 \u4ee5\u53ca \u989d\u5916 \u7684 \u5c0f\u578b \u8f6f\u4ef6 \u5b89\u88c5 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u7684 \u76ee\u6807 \u662f \u8fdb\u884c \u771f\u5b9e \u7684 \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u8b66\u544a \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002 \u8f6f\u4ef6 \u8981\u6c42 Carla \u9700\u8981 \u8fd0\u884c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f6f\u4ef6 \u3002 \u6709\u4e9b \u662f \u5728 Carla \u6784\u5efa \u8fc7\u7a0b \u672c\u8eab \u671f\u95f4 \u6784\u5efa \u7684 \uff0c \u4f8b\u5982 Boost . Python \u3002 \u5176\u4ed6 \u662f \u5e94\u8be5 \u5728 \u5f00\u59cb \u6784\u5efa \u4e4b\u524d \u5b89\u88c5 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff08 cmake \u3001 clang \u3001 \u4e0d\u540c \u7248\u672c \u7684 Python \u7b49 \uff09 \u3002 \u8981 \u5b89\u88c5 \u8fd9\u4e9b \u8981\u6c42 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a 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 / xenial / llvm - toolchain - xenial - 8 main \" && sudo apt - get update \u8b66\u544a \u4ee5\u4e0b \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Ubuntu \u7248\u672c \u3002 \u8bf7 \u52a1\u5fc5 \u505a\u51fa \u76f8\u5e94 \u7684 \u9009\u62e9 \u3002 Ubuntu 18.04 . sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u4ee5\u524d \u7684 Ubuntu \u7248\u672c \u3002 sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng16 - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u6240\u6709 Ubuntu \u7cfb\u7edf \u3002 \u4e3a\u4e86 \u907f\u514d \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u4e4b\u95f4 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \uff0c \u8bf7 \u4f7f\u7528 \u76f8\u540c \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u548c C++ \u8fd0\u884c \u65f6\u5e93 \u6765 \u7f16\u8bd1 \u6240\u6709 \u5185\u5bb9 \u3002 Carla \u56e2\u961f \u4f7f\u7528 clang - 8 \u548c LLVM \u7684 lib c++ \u3002 \u66f4\u6539 \u9ed8\u8ba4 \u7684 clang \u7248\u672c \u4ee5 \u7f16\u8bd1 \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u3002 sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 8 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 8 / bin / clang 180 \u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u6237 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 Carla Python API \u3002 \u9700\u8981 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u5bf9\u4e8e Python 3 pip3 - V # \u5bf9\u4e8e Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # \u5bf9\u4e8e Python 3 pip3 install -- upgrade pip # \u5bf9\u4e8e Python 2 pip install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip install -- user setuptools && pip3 install -- user - Iv setuptools = = 47.3 . 1 && pip install -- user distro && pip3 install -- user distro && pip install -- user wheel && pip3 install -- user wheel auditwheel \u865a\u5e7b \u5f15\u64ce \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u6709 \u7684 \u8865\u4e01 \u3002 1 . \u5c06 Carla \u7684 \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u7684 \u5185\u5bb9 \u514b\u9686 \u5230 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff1a git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 2 . \u5bfc\u822a \u5230 \u514b\u9686 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \uff1a cd ~ / UnrealEngine _ 4.26 3 . \u8fdb\u884c \u6784\u5efa \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e24 \u4e24\u4e2a \u4e00\u4e24\u4e2a \u5c0f\u65f6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u7cfb\u7edf \u3002 . / Setup . sh && . / GenerateProjectFiles . sh && make \u5982\u679c \u51fa\u73b0 bash : . / Setup . sh : Permission denied . / Setup . sh : line 40 : Engine / Build / BatchFiles / Linux / GitDependencies . sh : Permission denied Engine / Build / BatchFiles / Linux / GitDependencies . sh : line 25 : mono : command not found Setting up Mono Corlib not in sync with this runtime : expected corlib version 149 , found 1051600014 . chmod + x Setup . sh chmod + x Engine / Build / BatchFiles / Linux / GitDependencies . sh sudo apt - get install mono - complete git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 4 . \u6253\u5f00 \u7f16\u8f91 \u7f16\u8f91\u5668 \u68c0\u67e5 \u865a\u5e7b \u5f15\u64ce \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 cd ~ / UnrealEngine _ 4.26 / Engine / Binaries / Linux && . / UE4Editor \u7535\u8111 \u914d\u7f6e \u7535\u8111\u914d\u7f6e \u8fbe \u4e0d\u5230 Vulkan \u7684 \u6807\u51c6 \u4f1a \u51fa\u73b0 \uff08 OpenGL \u7684 API \u4e5f \u5e9f\u5f03 \u4e86 \uff09 \uff1a Cannot find a compatible Yulkan driver ( ICD ) \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u7b14\u8bb0 \u4f7f\u7528 sudo apt - get install aria2 \u4e0b\u8f7d aria2 \u5c06 \u52a0\u5feb \u4ee5\u4e0b \u547d\u4ee4 \u7684 \u901f\u5ea6 \u3002 \u514b\u9686 Carla \u4ed3\u5e93 Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla . git \u7b14\u8bb0 The master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002 \u83b7\u53d6 \u8d44\u4ea7 \u60a8 \u9700\u8981 \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u6e90 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \u3002 \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u811a\u672c \u6765 \u81ea\u52a8 \u6267\u884c \u6b64 \u8fc7\u7a0b \u3002 \u8981 \u4f7f\u7528 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / Update . sh \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u63d0\u53d6 \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u91cd\u8981 \u8981 \u4e0b\u8f7d \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u8d44\u4ea7 \uff0c \u8bf7 \u8bbf\u95ee \u66f4\u65b0 Carla \u5e76 \u9605\u8bfb \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c \u7684 Carla \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u6e90 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4e3a\u4e86 \u8ba9 Carla \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u6b63\u786e \u5b89\u88c5 \uff0c \u6211\u4eec \u9700\u8981 \u8bbe\u7f6e Carla \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u4ec5 \u4e3a\u6b64 \u4f1a\u8bdd \u8bbe\u7f6e \u53d8\u91cf \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 \u8981 \u8bbe\u7f6e \u53d8\u91cf \u4ee5\u4f7f \u5176 \u5728 \u4f1a \u8bdd \u4e2d \u4fdd\u6301 \u4e0d\u53d8 \uff1a 1 . \u6253\u5f00 ~ / . bashrc \u6216 . / profile \u3002 gedit ~ / . bashrc # \u6216 gedit ~ / . profile 2 . \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 \u6587\u4ef6 \u5e95\u90e8 \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 3 . \u4fdd\u5b58 \u6587\u4ef6 \u5e76 \u91cd\u7f6e \u7ec8\u7aef \u3002 \u6784\u5efa Carla \u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8b66\u544a \u786e\u4fdd \u8fd0\u884c make PythonAPI \u4ee5 \u51c6\u5907 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u8fd0\u884c make launch \u51c6\u5907 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6216\u8005 make LibCarla \u5c06 \u51c6\u5907 Carla \u5e93\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a \uff1a Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI \u6216\u8005 \uff0c \u8981 \u4e3a \u7279\u5b9a \u7248\u672c \u7684 Python \u7f16\u8bd1 PythonAPI \uff0c \u8bf7 \u5728 \u6839 Carla \u76ee\u5f55 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 # Delete versions as required make PythonAPI ARGS = \" -- python - version = 2.7 , 3.6 , 3.7 , 3.8 \" Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 Carla . whl \uff0c . whl \u5c06 \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 \uff1a # Python 3 pip3 install < path / to / wheel > . whl # Python 2 pip install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 . whl \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 3 . \u5f00\u59cb \u4eff\u771f \uff1a \u6309 \u201c \u8fd0\u884c \u201d \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 WASD \u952e \u79fb\u52a8 \u76f8\u673a \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 PythonAPI \\ examples \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI / examples python3 - m pip install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI / examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 Use less CPU when in background \u3002 \u5176\u4ed6 make \u547d\u4ee4 \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002 \u5176\u4ed6 v2ray \u7684 \u7248\u672c \u4e0d\u80fd \u592a\u9ad8 \uff0c \u6bd4\u5982 \u53ef\u4ee5 \u4f7f\u7528 v4.45 . 2 \uff0c \u56fe\u5f62 \u754c\u9762 \u56fe\u5f62\u754c\u9762 \u4f7f\u7528 Qv2ray 2.7 . 0 \u3002 \u6709\u5173 \u672c \u6307\u5357 \u7684 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 Carla \u8bba\u575b \u4e2d \u7684 \u5e16\u5b50 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5b66\u4e60 \u5982\u4f55 \u66f4\u65b0 Carla \u6784\u5efa \u6216 \u5728 \u4eff\u771f \u4e2d \u8fc8\u51fa \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u5e76 \u5b66\u4e60 \u4e00\u4e9b \u6838\u5fc3 \u6982\u5ff5 \u3002 \u66f4\u65b0 Carla \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"Linux \u4e0a \u7f16\u8bd1"},{"location":"build_linux/#linux","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Linux \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4","title":"Linux \u7cfb\u7edf \u4e0a \u7684 \u6784\u5efa"},{"location":"build_linux/#_1","text":"","title":"\u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3\u6761\u4ef6"},{"location":"build_linux/#_2","text":"Ubuntu 18.04 . Carla \u63d0\u4f9b \u5bf9 Ubuntu 16.04 \u4e4b\u524d \u7248\u672c \u7684 \u652f\u6301 \u3002 \u7136\u800c \uff0c \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u9002\u5f53 \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u4e0b\u9762 \u5355\u72ec \u5217\u51fa \u4e86 Ubuntu 18.04 \u53ca \u4e4b\u524d \u7248\u672c \u7684 \u4f9d\u8d56 \u9879 \u3002 \u786e\u4fdd \u5b89\u88c5 \u4e0e \u60a8 \u7684 \u7cfb\u7edf \u76f8\u5bf9 \u5e94 \u7684 \u8f6f\u4ef6 \u3002 130 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u5360\u7528 \u5927\u7ea6 31 GB \uff0c \u865a\u5e7b \u5f15\u64ce \u5c06 \u5360\u7528 \u5927\u7ea6 91 GB \uff0c \u56e0\u6b64 \u9700\u8981 \u5927\u7ea6 130 GB \u7684 \u53ef\u7528 \u7a7a\u95f4 \u6765 \u5bb9\u7eb3 \u8fd9 \u4e24\u4e2a \u7a7a\u95f4 \u4ee5\u53ca \u989d\u5916 \u7684 \u5c0f\u578b \u8f6f\u4ef6 \u5b89\u88c5 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u7684 \u76ee\u6807 \u662f \u8fdb\u884c \u771f\u5b9e \u7684 \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u8b66\u544a \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_linux/#_3","text":"Carla \u9700\u8981 \u8fd0\u884c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f6f\u4ef6 \u3002 \u6709\u4e9b \u662f \u5728 Carla \u6784\u5efa \u8fc7\u7a0b \u672c\u8eab \u671f\u95f4 \u6784\u5efa \u7684 \uff0c \u4f8b\u5982 Boost . Python \u3002 \u5176\u4ed6 \u662f \u5e94\u8be5 \u5728 \u5f00\u59cb \u6784\u5efa \u4e4b\u524d \u5b89\u88c5 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff08 cmake \u3001 clang \u3001 \u4e0d\u540c \u7248\u672c \u7684 Python \u7b49 \uff09 \u3002 \u8981 \u5b89\u88c5 \u8fd9\u4e9b \u8981\u6c42 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a 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 / xenial / llvm - toolchain - xenial - 8 main \" && sudo apt - get update \u8b66\u544a \u4ee5\u4e0b \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Ubuntu \u7248\u672c \u3002 \u8bf7 \u52a1\u5fc5 \u505a\u51fa \u76f8\u5e94 \u7684 \u9009\u62e9 \u3002 Ubuntu 18.04 . sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u4ee5\u524d \u7684 Ubuntu \u7248\u672c \u3002 sudo apt - get install build - essential clang - 8 lld - 8 g ++- 7 cmake ninja - build libvulkan1 python python - pip python - dev python3 - dev python3 - pip libpng16 - dev libtiff5 - dev libjpeg - dev tzdata sed curl unzip autoconf libtool rsync libxml2 - dev git \u6240\u6709 Ubuntu \u7cfb\u7edf \u3002 \u4e3a\u4e86 \u907f\u514d \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u4e4b\u95f4 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \uff0c \u8bf7 \u4f7f\u7528 \u76f8\u540c \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \u548c C++ \u8fd0\u884c \u65f6\u5e93 \u6765 \u7f16\u8bd1 \u6240\u6709 \u5185\u5bb9 \u3002 Carla \u56e2\u961f \u4f7f\u7528 clang - 8 \u548c LLVM \u7684 lib c++ \u3002 \u66f4\u6539 \u9ed8\u8ba4 \u7684 clang \u7248\u672c \u4ee5 \u7f16\u8bd1 \u865a\u5e7b \u5f15\u64ce \u548c Carla \u4f9d\u8d56 \u9879 \u3002 sudo update - alternatives -- install / usr / bin / clang ++ clang ++ / usr / lib / llvm - 8 / bin / clang ++ 180 && sudo update - alternatives -- install / usr / bin / clang clang / usr / lib / llvm - 8 / bin / clang 180 \u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u6237 \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 Carla Python API \u3002 \u9700\u8981 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # \u5bf9\u4e8e Python 3 pip3 - V # \u5bf9\u4e8e Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # \u5bf9\u4e8e Python 3 pip3 install -- upgrade pip # \u5bf9\u4e8e Python 2 pip install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip install -- user setuptools && pip3 install -- user - Iv setuptools = = 47.3 . 1 && pip install -- user distro && pip3 install -- user distro && pip install -- user wheel && pip3 install -- user wheel auditwheel","title":"\u8f6f\u4ef6 \u8981\u6c42"},{"location":"build_linux/#_4","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u6709 \u7684 \u8865\u4e01 \u3002 1 . \u5c06 Carla \u7684 \u865a\u5e7b \u5f15\u64ce 4.26 \u5206\u652f \u7684 \u5185\u5bb9 \u514b\u9686 \u5230 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \uff1a git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 2 . \u5bfc\u822a \u5230 \u514b\u9686 \u5b58\u50a8 \u5e93 \u7684 \u76ee\u5f55 \uff1a cd ~ / UnrealEngine _ 4.26 3 . \u8fdb\u884c \u6784\u5efa \u3002 \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e24 \u4e24\u4e2a \u4e00\u4e24\u4e2a \u5c0f\u65f6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u7cfb\u7edf \u3002 . / Setup . sh && . / GenerateProjectFiles . sh && make \u5982\u679c \u51fa\u73b0 bash : . / Setup . sh : Permission denied . / Setup . sh : line 40 : Engine / Build / BatchFiles / Linux / GitDependencies . sh : Permission denied Engine / Build / BatchFiles / Linux / GitDependencies . sh : line 25 : mono : command not found Setting up Mono Corlib not in sync with this runtime : expected corlib version 149 , found 1051600014 . chmod + x Setup . sh chmod + x Engine / Build / BatchFiles / Linux / GitDependencies . sh sudo apt - get install mono - complete git clone https : / / github . com / OpenHUTB / UnrealEngine . git ~ / UnrealEngine _ 4.26 4 . \u6253\u5f00 \u7f16\u8f91 \u7f16\u8f91\u5668 \u68c0\u67e5 \u865a\u5e7b \u5f15\u64ce \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 cd ~ / UnrealEngine _ 4.26 / Engine / Binaries / Linux && . / UE4Editor \u7535\u8111 \u914d\u7f6e \u7535\u8111\u914d\u7f6e \u8fbe \u4e0d\u5230 Vulkan \u7684 \u6807\u51c6 \u4f1a \u51fa\u73b0 \uff08 OpenGL \u7684 API \u4e5f \u5e9f\u5f03 \u4e86 \uff09 \uff1a Cannot find a compatible Yulkan driver ( ICD )","title":"\u865a\u5e7b \u5f15\u64ce"},{"location":"build_linux/#carla","text":"\u7b14\u8bb0 \u4f7f\u7528 sudo apt - get install aria2 \u4e0b\u8f7d aria2 \u5c06 \u52a0\u5feb \u4ee5\u4e0b \u547d\u4ee4 \u7684 \u901f\u5ea6 \u3002","title":"\u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla"},{"location":"build_linux/#carla_1","text":"Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla . git \u7b14\u8bb0 The master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002","title":"\u514b\u9686 Carla \u4ed3\u5e93"},{"location":"build_linux/#_5","text":"\u60a8 \u9700\u8981 \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u6e90 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \u3002 \u6211\u4eec \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u811a\u672c \u6765 \u81ea\u52a8 \u6267\u884c \u6b64 \u8fc7\u7a0b \u3002 \u8981 \u4f7f\u7528 \u8be5 \u811a\u672c \uff0c \u8bf7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a . / Update . sh \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u63d0\u53d6 \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u91cd\u8981 \u8981 \u4e0b\u8f7d \u5f53\u524d \u6b63\u5728 \u5f00\u53d1 \u7684 \u8d44\u4ea7 \uff0c \u8bf7 \u8bbf\u95ee \u66f4\u65b0 Carla \u5e76 \u9605\u8bfb \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c \u7684 Carla \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u6e90 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla","title":"\u83b7\u53d6 \u8d44\u4ea7"},{"location":"build_linux/#_6","text":"\u4e3a\u4e86 \u8ba9 Carla \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u6b63\u786e \u5b89\u88c5 \uff0c \u6211\u4eec \u9700\u8981 \u8bbe\u7f6e Carla \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u4ec5 \u4e3a\u6b64 \u4f1a\u8bdd \u8bbe\u7f6e \u53d8\u91cf \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 \u8981 \u8bbe\u7f6e \u53d8\u91cf \u4ee5\u4f7f \u5176 \u5728 \u4f1a \u8bdd \u4e2d \u4fdd\u6301 \u4e0d\u53d8 \uff1a 1 . \u6253\u5f00 ~ / . bashrc \u6216 . / profile \u3002 gedit ~ / . bashrc # \u6216 gedit ~ / . profile 2 . \u5c06 \u4ee5\u4e0b \u884c \u6dfb\u52a0 \u5230 \u6587\u4ef6 \u5e95\u90e8 \uff1a export UE4 _ ROOT = ~ / UnrealEngine _ 4.26 3 . \u4fdd\u5b58 \u6587\u4ef6 \u5e76 \u91cd\u7f6e \u7ec8\u7aef \u3002","title":"\u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883\u53d8\u91cf"},{"location":"build_linux/#carla_2","text":"\u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8b66\u544a \u786e\u4fdd \u8fd0\u884c make PythonAPI \u4ee5 \u51c6\u5907 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u8fd0\u884c make launch \u51c6\u5907 \u670d\u52a1 \u670d\u52a1\u7aef \u3002 \u6216\u8005 make LibCarla \u5c06 \u51c6\u5907 Carla \u5e93\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a \uff1a Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI \u6216\u8005 \uff0c \u8981 \u4e3a \u7279\u5b9a \u7248\u672c \u7684 Python \u7f16\u8bd1 PythonAPI \uff0c \u8bf7 \u5728 \u6839 Carla \u76ee\u5f55 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 # Delete versions as required make PythonAPI ARGS = \" -- python - version = 2.7 , 3.6 , 3.7 , 3.8 \" Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 Carla . whl \uff0c . whl \u5c06 \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 pip \u6216 pip3 \u5b89\u88c5 \uff1a # Python 3 pip3 install < path / to / wheel > . whl # Python 2 pip install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 . whl \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 3 . \u5f00\u59cb \u4eff\u771f \uff1a \u6309 \u201c \u8fd0\u884c \u201d \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 WASD \u952e \u79fb\u52a8 \u76f8\u673a \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 PythonAPI \\ examples \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI / examples python3 - m pip install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI / examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 Use less CPU when in background \u3002","title":"\u6784\u5efa Carla"},{"location":"build_linux/#make","text":"\u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002","title":"\u5176\u4ed6 make \u547d\u4ee4"},{"location":"build_linux/#_7","text":"v2ray \u7684 \u7248\u672c \u4e0d\u80fd \u592a\u9ad8 \uff0c \u6bd4\u5982 \u53ef\u4ee5 \u4f7f\u7528 v4.45 . 2 \uff0c \u56fe\u5f62 \u754c\u9762 \u56fe\u5f62\u754c\u9762 \u4f7f\u7528 Qv2ray 2.7 . 0 \u3002 \u6709\u5173 \u672c \u6307\u5357 \u7684 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 Carla \u8bba\u575b \u4e2d \u7684 \u5e16\u5b50 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5b66\u4e60 \u5982\u4f55 \u66f4\u65b0 Carla \u6784\u5efa \u6216 \u5728 \u4eff\u771f \u4e2d \u8fc8\u51fa \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u5e76 \u5b66\u4e60 \u4e00\u4e9b \u6838\u5fc3 \u6982\u5ff5 \u3002 \u66f4\u65b0 Carla \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"\u5176\u4ed6"},{"location":"build_system/","text":"\u6784\u5efa \u7cfb\u7edf \u8bbe\u7f6e LibCarla CarlaUE4 \u548c Carla \u63d2\u4ef6 PythonAPI 0.9 . 12 + \u7248\u672c 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u672c \u6587\u6863 \u662f \u4e00\u4e2a \u6b63\u5728 \u8fdb\u884c \u7684 \u5de5\u4f5c \uff0c \u8fd9\u91cc \u4ec5 \u8003\u8651 Linux \u6784\u5efa \u7cfb\u7edf \u3002 \u8bbe\u7f6e \u4e2d \u6700\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u90e8\u5206 \u662f \u7f16\u8bd1 \u6240\u6709 \u4f9d\u8d56 \u9879 \u548c \u6a21\u5757 \uff0c \u4f7f \u5176 \u4e0e a ) \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u865a\u5e7b \u5f15\u64ce \u548c b ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 Python \u517c\u5bb9 \u3002 \u76ee\u6807 \u662f \u80fd\u591f \u4ece \u5355\u72ec \u7684 Python \u8fdb\u7a0b \u8c03\u7528 \u865a\u5e7b \u5f15\u64ce \u7684 \u51fd\u6570 \u3002 \u5728 Linux \u4e2d \uff0c \u6211\u4eec \u4f7f\u7528 clang - 8.0 \u548c C++ 14 \u6807\u51c6 \u7f16\u8bd1 Carla \u548c \u6240\u6709 \u4f9d\u8d56 \u9879 \u3002 \u7136\u800c \uff0c \u6211\u4eec \u6839\u636e \u4ee3\u7801 \u7684 \u4f7f\u7528 \u4f4d\u7f6e \u6765 \u94fe\u63a5 \u4e0d\u540c \u7684 \u8fd0\u884c \u65f6 C++ \u5e93 \uff0c \u56e0\u4e3a \u6240\u6709 \u5c06 \u4e0e \u865a\u5e7b \u5f15\u64ce \u94fe\u63a5 \u7684 \u4ee3\u7801 \u90fd \u9700\u8981 \u4f7f\u7528 lib c++ \u8fdb\u884c \u7f16\u8bd1 \u3002 \u8bbe\u7f6e \u547d\u4ee4 make setup \u83b7\u53d6 \u5e76 \u7f16\u8bd1 \u4f9d\u8d56 \u9879 llvm - 8 ( lib c++ and lib c++ abi ) rpclib - 2.2 . 1 ( twice , with libstd c++ and lib c++ ) boost - 1.72 . 0 ( headers and boost _ python for libstd c++ ) googletest - 1.8 . 1 ( with lib c++ ) LibCarla \u4f7f\u7528 CMake \u7f16\u8bd1 \uff08 \u6700\u4f4e \u7248\u672c \u9700\u8981 CMake 3.9 \uff09 \u3002 \u547d\u4ee4 make LibCarla \u4e24\u79cd \u914d\u7f6e \uff1a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5355\u5143 \u6d4b\u8bd5 \u5355\u5143\u6d4b\u8bd5 \u662f \u5426 \u8981\u6c42 rpclib , gtest , boost rpclib , boost \u6807\u51c6 \u8fd0\u884c \u65f6 LLVM ' s lib c++ \u9ed8\u8ba4 libstd c++ \u8f93\u51fa headers and test exes ibcarla _ client . a \u9700\u8981 Carla plugin PythonAPI CarlaUE4 \u548c Carla \u63d2\u4ef6 \u4e24\u8005 \u5747 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u6784\u5efa \u5de5\u5177 \u5728 \u540c\u4e00 \u6b65\u9aa4 \u8fdb\u884c \u7f16\u8bd1 \u3002 \u5b83\u4eec \u9700\u8981 UE4 _ ROOT \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u547d\u4ee4 make CarlaUE4Editor \u8981 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u8bf7 \u8fd0\u884c make launch \u7f16\u8bd1 0.9 . 15 \u65f6\u5019 \u51fa\u73b0 carla / Unreal / CarlaUE4 / Plugins / CarlaTools / Source / CarlaTools / Private / Online / CustomFileDownloader . cpp ( 11 ) : fatal rror C1083 : \u65e0\u6cd5 \u6253\u5f00 \u5305\u62ec \u6587\u4ef6 : \u201c OSM2ODR . h \u201d : No such file or directory \u89e3\u51b3 \uff1a \u5c06 0.9 . 14 build \u4e2d \u7684 carla \\ Build \\ osm2odr - visualstudio \u590d\u5236 \u8fc7\u6765 \u3002 PythonAPI 0.9 . 12 + \u7248\u672c \u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev , pip > = 20.3 , wheel , \u548c auditwheel \u3002 \u547d\u4ee4 \uff1a make PythonAPI \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 \uff0c \u6bcf\u4e2a \u6587\u4ef6 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5e76 \u5bf9\u5e94 \u4e8e \u7cfb\u7edf \u4e0a \u652f\u6301 \u7684 Python \u7248\u672c \u3002 \u4e00\u4e2a \u6587\u4ef6 \u662f . whl \u6587\u4ef6 \uff0c \u53e6 \u4e00\u4e2a \u6587\u4ef6 \u662f . egg \u6587\u4ef6 \u3002 \u8fd9 \u5141\u8bb8 \u9009\u62e9 \u4e24\u79cd \u4e0d\u540c \u7684 \u3001 \u4e92\u65a5 \u7684 \u65b9\u5f0f \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 A . . whl \u6587\u4ef6 . whl \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 \uff1a pip install < wheel _ file > . whl \u65e0\u9700 \u50cf \u4ee5\u524d \u7248\u672c \u6216 . egg \u6587\u4ef6 \u4e2d \u90a3\u6837 \u76f4\u63a5 \u5728 \u811a\u672c \u4e2d \u5bfc \u5165\u5e93 \u8def\u5f84 ( \u53c2\u9605 \u8bf7\u53c2\u9605 __ 0.9 . 12 _ \u4e4b\u524d \u7684 \u7248\u672c _ ) ; import carla \u5c31 \u8db3\u591f \u4e86 \u3002 B . . egg \u6587\u4ef6 \u53c2\u9605 \u8bf7\u53c2\u9605 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e86\u89e3 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev \u3002 \u547d\u4ee4 make PythonAPI \u5b83 \u521b\u9020 \u4e86 \u4e24\u4e2a \" egg \" \u5305 PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u7cfb\u7edf \u8def\u5f84 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u5305 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Python \u811a\u672c \u4e2d \u3002 # ! / usr / bin / env python import sys sys . path . append ( ' PythonAPI / dist / carla - X . X . X - py% d .% d - linux - x86 _ 64 . egg ' % ( sys . version _ info . major , sys . version _ info . minor ) ) import carla # ... \u6216\u8005 \uff0c \u53ef\u4ee5 \u4f7f\u7528 easy _ install \u5b89\u88c5 easy _ install2 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg easy _ install3 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg","title":"\u7f16\u8bd1\u7cfb\u7edf"},{"location":"build_system/#_1","text":"\u8bbe\u7f6e LibCarla CarlaUE4 \u548c Carla \u63d2\u4ef6 PythonAPI 0.9 . 12 + \u7248\u672c 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u672c \u6587\u6863 \u662f \u4e00\u4e2a \u6b63\u5728 \u8fdb\u884c \u7684 \u5de5\u4f5c \uff0c \u8fd9\u91cc \u4ec5 \u8003\u8651 Linux \u6784\u5efa \u7cfb\u7edf \u3002 \u8bbe\u7f6e \u4e2d \u6700\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u90e8\u5206 \u662f \u7f16\u8bd1 \u6240\u6709 \u4f9d\u8d56 \u9879 \u548c \u6a21\u5757 \uff0c \u4f7f \u5176 \u4e0e a ) \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u7684 \u865a\u5e7b \u5f15\u64ce \u548c b ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 Python \u517c\u5bb9 \u3002 \u76ee\u6807 \u662f \u80fd\u591f \u4ece \u5355\u72ec \u7684 Python \u8fdb\u7a0b \u8c03\u7528 \u865a\u5e7b \u5f15\u64ce \u7684 \u51fd\u6570 \u3002 \u5728 Linux \u4e2d \uff0c \u6211\u4eec \u4f7f\u7528 clang - 8.0 \u548c C++ 14 \u6807\u51c6 \u7f16\u8bd1 Carla \u548c \u6240\u6709 \u4f9d\u8d56 \u9879 \u3002 \u7136\u800c \uff0c \u6211\u4eec \u6839\u636e \u4ee3\u7801 \u7684 \u4f7f\u7528 \u4f4d\u7f6e \u6765 \u94fe\u63a5 \u4e0d\u540c \u7684 \u8fd0\u884c \u65f6 C++ \u5e93 \uff0c \u56e0\u4e3a \u6240\u6709 \u5c06 \u4e0e \u865a\u5e7b \u5f15\u64ce \u94fe\u63a5 \u7684 \u4ee3\u7801 \u90fd \u9700\u8981 \u4f7f\u7528 lib c++ \u8fdb\u884c \u7f16\u8bd1 \u3002","title":"\u6784\u5efa \u7cfb\u7edf"},{"location":"build_system/#_2","text":"\u547d\u4ee4 make setup \u83b7\u53d6 \u5e76 \u7f16\u8bd1 \u4f9d\u8d56 \u9879 llvm - 8 ( lib c++ and lib c++ abi ) rpclib - 2.2 . 1 ( twice , with libstd c++ and lib c++ ) boost - 1.72 . 0 ( headers and boost _ python for libstd c++ ) googletest - 1.8 . 1 ( with lib c++ )","title":"\u8bbe\u7f6e"},{"location":"build_system/#libcarla","text":"\u4f7f\u7528 CMake \u7f16\u8bd1 \uff08 \u6700\u4f4e \u7248\u672c \u9700\u8981 CMake 3.9 \uff09 \u3002 \u547d\u4ee4 make LibCarla \u4e24\u79cd \u914d\u7f6e \uff1a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5355\u5143 \u6d4b\u8bd5 \u5355\u5143\u6d4b\u8bd5 \u662f \u5426 \u8981\u6c42 rpclib , gtest , boost rpclib , boost \u6807\u51c6 \u8fd0\u884c \u65f6 LLVM ' s lib c++ \u9ed8\u8ba4 libstd c++ \u8f93\u51fa headers and test exes ibcarla _ client . a \u9700\u8981 Carla plugin PythonAPI","title":"LibCarla"},{"location":"build_system/#carlaue4-carla","text":"\u4e24\u8005 \u5747 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u6784\u5efa \u5de5\u5177 \u5728 \u540c\u4e00 \u6b65\u9aa4 \u8fdb\u884c \u7f16\u8bd1 \u3002 \u5b83\u4eec \u9700\u8981 UE4 _ ROOT \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u547d\u4ee4 make CarlaUE4Editor \u8981 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u8bf7 \u8fd0\u884c make launch \u7f16\u8bd1 0.9 . 15 \u65f6\u5019 \u51fa\u73b0 carla / Unreal / CarlaUE4 / Plugins / CarlaTools / Source / CarlaTools / Private / Online / CustomFileDownloader . cpp ( 11 ) : fatal rror C1083 : \u65e0\u6cd5 \u6253\u5f00 \u5305\u62ec \u6587\u4ef6 : \u201c OSM2ODR . h \u201d : No such file or directory \u89e3\u51b3 \uff1a \u5c06 0.9 . 14 build \u4e2d \u7684 carla \\ Build \\ osm2odr - visualstudio \u590d\u5236 \u8fc7\u6765 \u3002","title":"CarlaUE4 \u548c Carla \u63d2\u4ef6"},{"location":"build_system/#pythonapi","text":"","title":"PythonAPI"},{"location":"build_system/#0912","text":"\u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev , pip > = 20.3 , wheel , \u548c auditwheel \u3002 \u547d\u4ee4 \uff1a make PythonAPI \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 \uff0c \u6bcf\u4e2a \u6587\u4ef6 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5e76 \u5bf9\u5e94 \u4e8e \u7cfb\u7edf \u4e0a \u652f\u6301 \u7684 Python \u7248\u672c \u3002 \u4e00\u4e2a \u6587\u4ef6 \u662f . whl \u6587\u4ef6 \uff0c \u53e6 \u4e00\u4e2a \u6587\u4ef6 \u662f . egg \u6587\u4ef6 \u3002 \u8fd9 \u5141\u8bb8 \u9009\u62e9 \u4e24\u79cd \u4e0d\u540c \u7684 \u3001 \u4e92\u65a5 \u7684 \u65b9\u5f0f \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 A . . whl \u6587\u4ef6 . whl \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 \uff1a pip install < wheel _ file > . whl \u65e0\u9700 \u50cf \u4ee5\u524d \u7248\u672c \u6216 . egg \u6587\u4ef6 \u4e2d \u90a3\u6837 \u76f4\u63a5 \u5728 \u811a\u672c \u4e2d \u5bfc \u5165\u5e93 \u8def\u5f84 ( \u53c2\u9605 \u8bf7\u53c2\u9605 __ 0.9 . 12 _ \u4e4b\u524d \u7684 \u7248\u672c _ ) ; import carla \u5c31 \u8db3\u591f \u4e86 \u3002 B . . egg \u6587\u4ef6 \u53c2\u9605 \u8bf7\u53c2\u9605 0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c \u4e86\u89e3 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"0.9 . 12 + \u7248\u672c"},{"location":"build_system/#0912_1","text":"\u4f7f\u7528 Python \u7684 setuptools ( \" setup . py \" ) \u7f16\u8bd1 \u3002 \u76ee\u524d \u9700\u8981 \u5728 \u673a\u5668 \u4e0a \u5b89\u88c5 \u4ee5\u4e0b \u8f6f\u4ef6 \uff1a Python , libpython - dev , \u548c libboost - python - dev \u3002 \u547d\u4ee4 make PythonAPI \u5b83 \u521b\u9020 \u4e86 \u4e24\u4e2a \" egg \" \u5305 PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg \u901a\u8fc7 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u7cfb\u7edf \u8def\u5f84 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u5305 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Python \u811a\u672c \u4e2d \u3002 # ! / usr / bin / env python import sys sys . path . append ( ' PythonAPI / dist / carla - X . X . X - py% d .% d - linux - x86 _ 64 . egg ' % ( sys . version _ info . major , sys . version _ info . minor ) ) import carla # ... \u6216\u8005 \uff0c \u53ef\u4ee5 \u4f7f\u7528 easy _ install \u5b89\u88c5 easy _ install2 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py2.7 - linux - x86 _ 64 . egg easy _ install3 -- user -- no - deps PythonAPI / dist / carla - X . X . X - py3.7 - linux - x86 _ 64 . egg","title":"0.9 . 12 \u4e4b\u524d \u7684 \u7248\u672c"},{"location":"build_update/","text":"\u66f4\u65b0 Carla \u66f4\u65b0 \u547d\u4ee4 \u6458\u8981 \u83b7\u53d6 \u6700\u65b0 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u66f4\u65b0 Linux \u548c Windows \u6784\u5efa \u6e05\u9664 \u6784\u5efa \u4ece origin \u62c9\u53d6 \u4e0b\u8f7d \u8d44\u4ea7 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u8981 \u53d1\u5e03 \u610f\u5916 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u968f\u65f6 \u767b\u5f55 Carla \u8bba\u575b \u3002 Carla \u8bba\u575b \u66f4\u65b0 \u547d\u4ee4 \u6458\u8981 \u663e\u793a \u66f4\u65b0 Carla \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c # \u66f4\u65b0 Carla \u5305 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \u3002 # 1 . \u5220\u9664 \u5f53\u524d \u7684 \u7248\u672c \u3002 # 2 . \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u6216 \u4e00\u4e2a \u4e00\u4e2a \u60f3\u8981 \u7684 \u7248\u672c \u3002 # \u66f4\u65b0 Linux \u6784\u5efa \u3002 git checkout master make clean git pull origin master . / Update . sh # \u66f4\u65b0 Windows \u6784\u5efa \u3002 git checkout master make clean git pull origin master # \u64e6\u9664 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u7684 \u5185\u5bb9 \u3002 # \u8f6c \u81f3 ` \\ Util \\ ContentVersions . txt ` . # \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u5728 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u89e3\u538b \u51fa\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u83b7\u53d6 \u5f00\u53d1 \u7248\u672c \u7684 \u8d44\u4ea7 # \u5220\u9664 \u5305\u542b \u4e4b\u524d \u8d44\u4ea7 \u7684 ` / Carla ` \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 # \u8f6c\u81f3 \u8f6c\u81f3\u4e3b Carla \u76ee\u5f55 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u83b7\u53d6 \u6700\u65b0 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u5df2 \u9884\u5148 \u6253\u5305 \uff0c \u56e0\u6b64 \u4e0e Carla \u7684 \u7279\u5b9a \u7248\u672c \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u8981 \u83b7\u53d6 \u6700\u65b0 \u7248\u672c \uff0c \u8bf7 \u5220\u9664 \u4e4b\u524d \u7684 \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6765 \u83b7\u53d6 \u6240 \u9700 \u7684 \u7248\u672c \u3002 \u7248\u672c \u5217 \u5728 Carla \u4ed3\u5e93 \u7684 Development \u4e2d \u3002 \u8fd8\u6709 \u4e00\u4e2a \u9ad8\u5ea6 \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 Nightly build \uff0c \u5176\u4e2d \u5305\u542b Carla \u7684 \u6700\u65b0 \u72b6\u6001 \u3002 Get releases Get the nightly build \u66f4\u65b0 Linux \u548c Windows \u6784\u5efa \u66f4\u65b0 \u524d \u8bf7 \u786e\u4fdd \u4f4d\u4e8e \u672c\u5730 master \u5206\u652f \u3002 \u7136\u540e \uff0c \u5c06 \u66f4\u6539 merge \u6216 rebase \u5230 \u5176\u4ed6 \u5206\u652f \u5e76 \u89e3\u51b3 \u53ef\u80fd \u7684 \u51b2\u7a81 \u3002 git checkout master \u6e05\u7406 \u6784\u5efa \u8f6c\u5230 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5220\u9664 \u5148\u524d \u6784\u5efa \u751f\u6210 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make clean \u4ece origin \u62c9\u53d6 \u4ece Carla \u5b58\u50a8 \u5e93\u4e2d master \u5206\u652f \u83b7\u53d6 \u5f53\u524d \u7248\u672c \u3002 git pull origin master \u4e0b\u8f7d \u8d44\u4ea7 Linux . . / Update . sh Windows . 1 . \u5220\u9664 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u4e4b\u524d \u7684 \u5185\u5bb9 \u3002 2 . \u8f6c \u81f3 \\ Util \\ ContentVersions . txt \u3002 3 . \u4e0b\u8f7d \u6700\u65b0 \u7684 latest \u7684 \u5185\u5bb9 \u3002 4 . \u5728 Unreal \\ CarlaUE4 \\ Content \\ Carla \u62bd\u53d6 \u65b0 \u7684 \u5185\u5bb9 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u4e0e Carla \u56e2\u961f \u6b63\u5728 \u5f00\u53d1 \u7684 \u9879\u76ee \u5408\u4f5c \uff0c \u8bf7 \u83b7\u53d6 \u4e0b\u9762 \u7684 \u5f00\u53d1 \u8d44\u4ea7 \u3002 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u65c1\u89c2 \u89c2\u8005 \u65c1\u89c2\u8005 \u89c6\u56fe \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u3002 make launch \u83b7\u53d6 \u5f00\u53d1 \u7248 \u7684 \u8d44\u4ea7 Carla \u56e2\u961f \u4f7f\u7528 \u4ecd \u5728 \u5f00\u53d1 \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u6a21\u578b \u548c \u5730\u56fe \u6709 \u4e00\u4e2a \u516c\u5171 git \u5b58\u50a8 \u5e93 \uff0c Carla \u56e2\u961f \u5b9a\u671f \u5728 \u5176\u4e2d \u63a8\u9001 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002 \u8d44\u4ea7 \u5c1a\u672a \u5b8c\u6210 \uff0c \u4ec5 \u5efa\u8bae \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4f7f\u7528 \u5b83\u4eec \u3002 \u4e3a\u4e86 \u5904\u7406 \u8fd9\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u5efa\u8bae \u5b89\u88c5 git - lfs \u3002 \u5b58\u50a8 \u5e93\u4f1a \u5b9a\u671f \u4fee\u6539 \uff0c \u5e76\u4e14 git - lfs \u5904\u7406 \u5927\u578b \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u7684 \u901f\u5ea6 \u66f4 \u5feb \u3002 \u8981 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff0c \u8bf7 \u8f6c\u5230 \u4e3b Carla \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u7b14\u8bb0 \u5728 \u514b\u9686 \u5b58\u50a8 \u5e93 \u4e4b\u524d \u5220\u9664 \u5305\u542b \u8d44\u4ea7 \u7684 / Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5426\u5219 \uff0c \u5c06 \u663e\u793a \u9519\u8bef \u3002","title":"Carla \u66f4\u65b0"},{"location":"build_update/#carla","text":"\u66f4\u65b0 \u547d\u4ee4 \u6458\u8981 \u83b7\u53d6 \u6700\u65b0 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u66f4\u65b0 Linux \u548c Windows \u6784\u5efa \u6e05\u9664 \u6784\u5efa \u4ece origin \u62c9\u53d6 \u4e0b\u8f7d \u8d44\u4ea7 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u83b7\u53d6 \u5f00\u53d1 \u8d44\u4ea7 \u8981 \u53d1\u5e03 \u610f\u5916 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u968f\u65f6 \u767b\u5f55 Carla \u8bba\u575b \u3002 Carla \u8bba\u575b","title":"\u66f4\u65b0 Carla"},{"location":"build_update/#_1","text":"\u663e\u793a \u66f4\u65b0 Carla \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c # \u66f4\u65b0 Carla \u5305 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \u3002 # 1 . \u5220\u9664 \u5f53\u524d \u7684 \u7248\u672c \u3002 # 2 . \u6309\u7167 \u5feb\u901f \u5f00\u59cb \u5b89\u88c5 \u6216 \u4e00\u4e2a \u4e00\u4e2a \u60f3\u8981 \u7684 \u7248\u672c \u3002 # \u66f4\u65b0 Linux \u6784\u5efa \u3002 git checkout master make clean git pull origin master . / Update . sh # \u66f4\u65b0 Windows \u6784\u5efa \u3002 git checkout master make clean git pull origin master # \u64e6\u9664 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u7684 \u5185\u5bb9 \u3002 # \u8f6c \u81f3 ` \\ Util \\ ContentVersions . txt ` . # \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u5728 ` Unreal \\ CarlaUE4 \\ Content \\ Carla ` \u4e2d \u89e3\u538b \u51fa\u65b0 \u7684 \u8d44\u4ea7 \u5185\u5bb9 \u3002 # \u83b7\u53d6 \u5f00\u53d1 \u7248\u672c \u7684 \u8d44\u4ea7 # \u5220\u9664 \u5305\u542b \u4e4b\u524d \u8d44\u4ea7 \u7684 ` / Carla ` \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 # \u8f6c\u81f3 \u8f6c\u81f3\u4e3b Carla \u76ee\u5f55 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla","title":"\u66f4\u65b0 \u547d\u4ee4 \u6458\u8981"},{"location":"build_update/#_2","text":"\u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \u5df2 \u9884\u5148 \u6253\u5305 \uff0c \u56e0\u6b64 \u4e0e Carla \u7684 \u7279\u5b9a \u7248\u672c \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u8981 \u83b7\u53d6 \u6700\u65b0 \u7248\u672c \uff0c \u8bf7 \u5220\u9664 \u4e4b\u524d \u7684 \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6765 \u83b7\u53d6 \u6240 \u9700 \u7684 \u7248\u672c \u3002 \u7248\u672c \u5217 \u5728 Carla \u4ed3\u5e93 \u7684 Development \u4e2d \u3002 \u8fd8\u6709 \u4e00\u4e2a \u9ad8\u5ea6 \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 Nightly build \uff0c \u5176\u4e2d \u5305\u542b Carla \u7684 \u6700\u65b0 \u72b6\u6001 \u3002 Get releases Get the nightly build","title":"\u83b7\u53d6 \u6700\u65b0 \u7684 \u4e8c\u8fdb\u5236 \u7248\u672c"},{"location":"build_update/#linux-windows","text":"\u66f4\u65b0 \u524d \u8bf7 \u786e\u4fdd \u4f4d\u4e8e \u672c\u5730 master \u5206\u652f \u3002 \u7136\u540e \uff0c \u5c06 \u66f4\u6539 merge \u6216 rebase \u5230 \u5176\u4ed6 \u5206\u652f \u5e76 \u89e3\u51b3 \u53ef\u80fd \u7684 \u51b2\u7a81 \u3002 git checkout master","title":"\u66f4\u65b0 Linux \u548c Windows \u6784\u5efa"},{"location":"build_update/#_3","text":"\u8f6c\u5230 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5220\u9664 \u5148\u524d \u6784\u5efa \u751f\u6210 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make clean","title":"\u6e05\u7406 \u6784\u5efa"},{"location":"build_update/#origin","text":"\u4ece Carla \u5b58\u50a8 \u5e93\u4e2d master \u5206\u652f \u83b7\u53d6 \u5f53\u524d \u7248\u672c \u3002 git pull origin master","title":"\u4ece origin \u62c9\u53d6"},{"location":"build_update/#_4","text":"Linux . . / Update . sh Windows . 1 . \u5220\u9664 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u4e4b\u524d \u7684 \u5185\u5bb9 \u3002 2 . \u8f6c \u81f3 \\ Util \\ ContentVersions . txt \u3002 3 . \u4e0b\u8f7d \u6700\u65b0 \u7684 latest \u7684 \u5185\u5bb9 \u3002 4 . \u5728 Unreal \\ CarlaUE4 \\ Content \\ Carla \u62bd\u53d6 \u65b0 \u7684 \u5185\u5bb9 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u4e0e Carla \u56e2\u961f \u6b63\u5728 \u5f00\u53d1 \u7684 \u9879\u76ee \u5408\u4f5c \uff0c \u8bf7 \u83b7\u53d6 \u4e0b\u9762 \u7684 \u5f00\u53d1 \u8d44\u4ea7 \u3002","title":"\u4e0b\u8f7d \u8d44\u4ea7"},{"location":"build_update/#_5","text":"\u5728 \u65c1\u89c2 \u89c2\u8005 \u65c1\u89c2\u8005 \u89c6\u56fe \u4e2d \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u3002 make launch","title":"\u542f\u52a8 \u670d\u52a1\u5668"},{"location":"build_update/#_6","text":"Carla \u56e2\u961f \u4f7f\u7528 \u4ecd \u5728 \u5f00\u53d1 \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u6a21\u578b \u548c \u5730\u56fe \u6709 \u4e00\u4e2a \u516c\u5171 git \u5b58\u50a8 \u5e93 \uff0c Carla \u56e2\u961f \u5b9a\u671f \u5728 \u5176\u4e2d \u63a8\u9001 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002 \u8d44\u4ea7 \u5c1a\u672a \u5b8c\u6210 \uff0c \u4ec5 \u5efa\u8bae \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4f7f\u7528 \u5b83\u4eec \u3002 \u4e3a\u4e86 \u5904\u7406 \u8fd9\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u5efa\u8bae \u5b89\u88c5 git - lfs \u3002 \u5b58\u50a8 \u5e93\u4f1a \u5b9a\u671f \u4fee\u6539 \uff0c \u5e76\u4e14 git - lfs \u5904\u7406 \u5927\u578b \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u7684 \u901f\u5ea6 \u66f4 \u5feb \u3002 \u8981 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff0c \u8bf7 \u8f6c\u5230 \u4e3b Carla \u76ee\u5f55 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 git clone https : / / bitbucket . org / carla - simulator / carla - content Unreal / CarlaUE4 / Content / Carla \u7b14\u8bb0 \u5728 \u514b\u9686 \u5b58\u50a8 \u5e93 \u4e4b\u524d \u5220\u9664 \u5305\u542b \u8d44\u4ea7 \u7684 / Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5426\u5219 \uff0c \u5c06 \u663e\u793a \u9519\u8bef \u3002","title":"\u83b7\u53d6 \u5f00\u53d1 \u7248 \u7684 \u8d44\u4ea7"},{"location":"build_windows/","text":"Windows \u4e0b \u7684 \u6784\u5efa \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u9047\u5230 \u9519\u8bef \u6216 \u56f0\u96be \uff0c \u8bf7 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \uff0c \u5176\u4e2d \u63d0\u4f9b \u4e86 \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u3002 \u6216\u8005 \u4f7f\u7528 Carla \u8bba\u575b \u53d1\u5e03 \u60a8 \u53ef\u80fd \u6709 \u7684 \u4efb\u4f55 \u7591\u95ee \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5 Python \u4f9d\u8d56 \u9879 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 Visual Studio 2019 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u627e\u5230 \u5f00\u59cb \u6784\u5efa Carla \u4e4b\u524d \u6240 \u9700 \u7684 \u7cfb\u7edf \u8981\u6c42 \u3001 \u6b21\u8981 \u548c \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \u4ee5\u53ca Python \u4f9d\u8d56 \u9879 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u7cfb\u7edf \u8981\u6c42 64 \u4f4d \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u5728 \u4efb\u4f55 64 \u4f4d Windows \u7cfb\u7edf \u4e2d \u8fd0\u884c \u3002 165 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u672c\u8eab \u5c06 \u5360\u7528 \u5927\u7ea6 32 GB \uff0c \u76f8\u5173 \u7684 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \uff08 \u5305\u62ec \u865a\u5e7b \u5f15\u64ce \uff09 \u5c06 \u5360\u7528 \u5927\u7ea6 133 GB \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u7aef\u53e3 \u4e3a 2000 \u548c 2001 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002 \u8f6f\u4ef6 \u8981\u6c42 \u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5 CMake \u4ece \u7b80\u5355 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u751f\u6210 \u6807\u51c6 \u6784\u5efa \u6587\u4ef6 \u3002 Git \u662f \u4e00\u4e2a \u7528\u4e8e \u7ba1\u7406 Carla \u5b58\u50a8 \u5e93 \u7684 \u7248\u672c \u63a7\u5236 \u7cfb\u7edf \u63a7\u5236\u7cfb\u7edf \u3002 Make \u751f\u6210 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u5fc5\u987b \u4f7f\u7528 Make \u7684 3.81 \u7248\u672c \uff0c \u5426\u5219 \u6784\u5efa \u53ef\u80fd \u4f1a \u5931\u8d25 \u3002 \u5982\u679c \u5b89\u88c5 \u4e86 \u591a\u4e2a \u7248\u672c \u7684 Make \uff0c \u8bf7 \u68c0\u67e5 \u6784\u5efa Carla \u65f6 \u5728 PATH \u4e2d \u4f7f\u7528 \u7684 \u7248\u672c \u662f\u5426 \u4e3a 3.81 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u6765 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Make \u7248\u672c make -- version \u3002 7Zip \u4e00\u6b3e \u6587\u4ef6 \u538b\u7f29 \u8f6f\u4ef6 \u538b\u7f29\u8f6f\u4ef6 \u3002 \u8fd9\u662f \u81ea\u52a8 \u89e3\u538b \u538b\u7f29 \u89e3\u538b\u7f29 \u8d44\u4ea7 \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \uff0c \u5e76 \u9632\u6b62 \u5728 \u6784\u5efa \u671f\u95f4 \u7531\u4e8e \u9519\u8bef \u6216 \u90e8\u5206 \u63d0\u53d6 \u5927 \u6587\u4ef6 \u800c \u51fa\u73b0 \u9519\u8bef \u3002 Python3 x64 \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 \u5b89\u88c5 x32 \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \uff0c \u56e0\u6b64 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5378\u8f7d \u5b83 \u3002 \u91cd\u8981 \u786e\u4fdd \u5c06 \u4e0a\u8ff0 \u7a0b\u5e8f \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6dfb\u52a0 \u7684 \u8def\u5f84 \u5e94 \u4e0e \u7a0b\u5e8f \u7684 bin \u76ee\u5f55 \u76f8\u5bf9 \u5e94 \u3002 Python \u4f9d\u8d56 \u9879 \u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u4e8e \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip3 \u6765 \u5b89\u88c5 Carla \u7684 Python API \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a pip3 - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a pip3 install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip3 install -- user setuptools pip3 install -- user wheel \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 Visual Studio 2019 \u4ece \u6b64\u5904 \u83b7\u53d6 2019 \u7248 Visual Studio \u3002 \u9009\u62e9 \u793e\u533a \u4f5c\u4e3a \u514d\u8d39 \u7248\u672c \u3002 \u4f7f\u7528 Visual Studio \u5b89\u88c5 \u7a0b\u5e8f \u5b89\u88c5\u7a0b\u5e8f \u5b89\u88c5 \u4e09\u4e2a \u9644\u52a0 \u5143\u7d20 \uff1a Windows 8.1 SDK . \u5728 \u53f3\u4fa7 \u7684 Installation details \u90e8\u5206 \u4e2d \u9009\u62e9 \u5b83 \uff0c \u6216\u8005 \u8f6c \u5230 Indivdual Components \u9009\u9879 \u9009\u9879\u5361 \u5e76 \u5728 SDKs , libraries , and frameworks \u6807\u9898 \u4e0b \u67e5\u770b \u3002 x64 Visual C++ Toolset . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 Desktop development with C++ \u3002 \u8fd9 \u5c06 \u542f\u7528 \u7528\u4e8e \u6784\u5efa \u7684 x64 \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u3002 \u901a\u8fc7 \u6309 Windows \u6309\u94ae \u5e76 \u641c\u7d22 x64 \u6765 \u68c0\u67e5 \u5b83 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u5c0f\u5fc3 \u4e0d\u8981 \u6253\u5f00 x86 _ x64 \u63d0\u793a \u3002 . NET framework 4.6 . 2 . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 . NET desktop development \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 \u7684 \u5b89\u88c5 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u9009\u62e9 . NET Framework 4.6 . 2 development tools \u3002 \u8fd9\u662f \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u6240 \u5fc5\u9700 \u7684 \u3002 \u91cd\u8981 \u5176\u4ed6 Visual Studio \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 \u5373\u4f7f \u8fd9\u4e9b \u5df2 \u88ab \u5378\u8f7d \uff0c \u67d0\u4e9b \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u4e5f \u53ef\u80fd \u4ecd\u7136 \u5b58\u5728 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u4e0a\u8ff0 \u6b65\u9aa4 \u4f7f\u7528 Visual Studio 2022 \uff0c \u5e76 \u5c06 Windows 8.1 SDK \u66ff\u6362 \u4e3a Windows 11 / 10 SDK \u3002 \u8981 \u8986\u76d6 CMake \u4e2d \u7684 \u9ed8\u8ba4 Visual Studio 2019 Generator \uff0c \u8bf7 \u5728 \u4f7f\u7528 makefile \u547d\u4ee4 \u65f6 \u6307\u5b9a GENERATOR = \" Visual Studio 17 2022 \" \uff08 \u8bf7 \u53c2\u89c1 \u8868 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u6307\u5b9a \u4efb\u4f55 \u4e0e \u6784\u5efa \u811a\u672c \u4e2d \u7279\u5b9a \u7684 \u6784\u5efa \u547d\u4ee4 \u914d\u5408 \u4f7f\u7528 \u7684 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \uff0c \u4ee5 \u8fdb\u884c \u5b8c\u6574 \u5217\u8868 \u8fd0\u884c cmake - G \uff08 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Ninja \u5df2\u7ecf \u8fc7 \u6d4b\u8bd5 \u53ef\u7528 \u6d4b\u8bd5\u53ef\u7528 \u4e8e \u6784\u5efa LibCarla \uff09 \u3002 \u865a\u5e7b \u5f15\u64ce \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8981 \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \u7684 \u8fd9\u4e2a \u5206\u652f \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u94fe\u63a5 \u5230 \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u8981 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 \u4fee\u6539 \u7248\u672c \uff1a 1 . \u5728 \u7ec8\u7aef \u4e2d \uff0c \u5bfc\u822a \u5230 \u8981 \u4fdd\u5b58 \u865a\u5e7b \u5f15\u64ce \u7684 \u4f4d\u7f6e \u5e76 \u514b\u9686 carla \u5206\u652f \uff1a git clone -- depth 1 - b carla https : / / github . com / CarlaUnreal / UnrealEngine . git . \u7b14\u8bb0 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9760\u8fd1 C : \\ \\ \uff0c \u56e0\u4e3a \u5982\u679c \u8def\u5f84 \u8d85\u8fc7 \u4e00\u5b9a \u957f\u5ea6 \uff0c Setup . bat \u5219 \u4f1a \u5728 \u6b65\u9aa4 3 \u4e2d \u8fd4\u56de \u9519\u8bef \u3002 2 . \u8fd0\u884c \u914d\u7f6e \u811a\u672c \uff1a Setup . bat GenerateProjectFiles . bat 3 . \u7f16\u8bd1 \u4fee\u6539 \u540e \u7684 \u5f15\u64ce \uff1a \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 UE4 . sln \u6e90 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u3002 \u5728 \u6784\u5efa \u680f\u4e2d \uff0c \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u9009\u62e9 \u201c Development Editor \u201d \u3001 \u201c Win64 \u201d \u548c \u201c UnrealBuildTool \u201d \u9009\u9879 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4efb\u4f55 \u5e2e\u52a9 \uff0c \u8bf7 \u67e5\u770b \u672c \u6307\u5357 \u3002 \u5728 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u53f3\u952e \u5355\u51fb UE4 \u5e76 \u9009\u62e9 Build \u3002 4 . \u7f16\u8bd1 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6253\u5f00 \u5f15\u64ce \uff0c \u901a\u8fc7 \u542f\u52a8 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 Engine \\ Binaries \\ Win64 \\ UE4Editor . exe \u6765 \u68c0\u67e5 \u6240\u6709 \u5185\u5bb9 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u5982\u679c \u5b89\u88c5 \u6210\u529f \uff0c \u865a\u5e7b \u5f15\u64ce \u7684 \u7248\u672c \u9009\u62e9 \u9009\u62e9\u5668 \u5e94\u8be5 \u80fd\u591f \u8bc6\u522b \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53f3\u952e \u5355\u51fb \u4efb\u4f55 . uproject \u6587\u4ef6 \u5e76 \u9009\u62e9 Switch Unreal Engine version \u6765 \u68c0\u67e5 \u8fd9 \u4e00\u70b9 \u3002 \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u4e00\u4e2a \u5f39 \u51fa \u7a97\u53e3 \uff0c \u663e\u793a Source Build at PATH \u662f \u60a8 \u9009\u62e9 \u7684 \u5b89\u88c5 \u8def\u5f84 \u3002 \u5982\u679c \u60a8 \u5728 \u53f3\u952e \u5355\u51fb . uproject \u6587\u4ef6 \u6216 Generate Visual Studio project files \u65f6 \u4e0d\u5230 \u770b\u4e0d\u5230 \u6b64 \u9009\u62e9 \u9009\u62e9\u5668 \uff0c \u5219 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u51fa\u73b0 \u95ee\u9898 \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u91cd\u65b0 \u6b63\u786e \u5b89\u88c5 \u3002 \u91cd\u8981 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u7ee7\u7eed \u4e4b\u524d \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002 \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u5b58\u50a8 \u5e93 Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla \u7b14\u8bb0 \u8be5 master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002 \u83b7\u53d6 \u8d44\u4ea7 \u901a\u8fc7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u4ee5 \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \uff1a Update . bat \u5982\u679c \u5b89\u88c5 \u4e86 7zip \uff0c \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u89e3\u538b \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u5b89\u88c5 \u6b64 \u8f6f\u4ef6 \uff0c \u5219 \u9700\u8981 \u624b\u52a8 \u5c06 \u6587\u4ef6 \u5185\u5bb9 \u89e3\u538b \u5230 Unreal \\ CarlaUE4 \\ Content \\ Carla \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c Carla \u7684 \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u4ea7 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u53d8\u91cf \u9700\u8981 \u8bbe\u7f6e \u4e00\u4e2a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u9009\u62e9 \u8981 \u4f7f\u7528 \u54ea\u4e2a \u7279\u5b9a \u7248\u672c \u7684 \u865a\u5e7b \u5f15\u64ce \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c Carla \u5c06 \u5728 Windows \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u641c\u7d22 \u865a\u5e7b \u5f15\u64ce \u5e76 \u4f7f\u7528 \u5728 \u90a3\u91cc \u627e\u5230 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u7248\u672c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff1a \u6253\u5f00 Windows \u63a7\u5236 \u5236\u9762 \u9762\u677f \u63a7\u5236\u9762\u677f \uff0c \u7136\u540e \u8f6c \u81f3 Advanced System Settings \u6216 \u5728 Windows \u641c\u7d22 \u680f\u4e2d \u641c\u7d22 Advanced System Settings \u3002 \u5728 \u9762\u677f \u4e0a Advanced Advanced \u6253\u5f00 Environment Variables ... \u3002 \u5355\u51fb New ... \u4ee5 \u521b\u5efa \u53d8\u91cf \u3002 \u4e3a \u53d8\u91cf UE4 _ ROOT \u547d\u540d \u5e76 \u9009\u62e9 \u6240 \u9700 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u8def\u5f84 \u3002 \u6784\u5efa Carla \u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 \u547d\u4ee4 \u5e94 \u901a\u8fc7 VS 2019 \u7684 x64 Native Tools Command Prompt for VS 2019 \u6267\u884c \u3002 \u901a\u8fc7 \u5355\u51fb \u8be5 Windows \u952e \u5e76 \u641c\u7d22 \u6765 \u6253\u5f00 \u5b83 x64 \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24 \u90e8\u5206 \uff1a \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef : Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 CARLA . whl \uff0c \u5219 \u5b83 \u5c06 . whl \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 \u4ee5\u4e0b pip3 \u547d\u4ee4 \u5b89\u88c5 . whl \u6587\u4ef6 \uff1a pip3 install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 . whl \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u670d\u52a1\u7aef : \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 \u7b14\u8bb0 \u5982\u679c \u7f16\u8bd1 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4e2d\u6587 \u4e71\u7801 \uff0c \u4e3a\u4e86 \u4fbf\u4e8e \u5bfb\u627e \u7f16\u8bd1 \u9519\u8bef \uff0c \u53ef\u4ee5 \u4f7f\u7528 chcp 65001 \u547d\u4ee4 \u5c06 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \u4fee\u6539 \u4e3a UTF - 8 \uff08 \u9009\u62e9 \u201c \u5c5e\u6027 \u201d \u3002 \u5728 \u201c \u5c5e\u6027 \u201d > > \u201c \u9009\u9879 \u201d \u4e00\u680f \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u770b\u5230 \u5f53\u524d \u4ee3\u7801 \u9875 \u7684 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \uff09 \u3002 3 . \u5f00\u59cb \u4eff\u771f : \u6309 Play \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6309\u952e \u79fb\u52a8 \u76f8\u673a WASD \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 PythonAPI \\ examples \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples pip3 install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI \\ examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 \u3002 \u5176\u4ed6 \u6784\u5efa \u547d\u4ee4 \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002 make downloadplugin \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 StreetMap \u3002 make setup \u6784 \u4e0b\u8f7d \u5e76 \u751f\u6210 \u4f9d\u8d56 \u5e93 make LibCarla \u521b\u5efa LibCarla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u670d\u52a1\u7aef \uff08 make server + make client \uff09 make osm2odr \u521b\u5efa OSM \u8f6c OpenDRIVE \u7684 \u5e93 make import \u5bfc\u5165 \u8d44\u4ea7 \u62a5\u9519 \u6267\u884c make osm2odr \u62a5\u9519 \uff1a CMake Error : The source directory \" D : / work / workspace / carla / Build / osm2odr - visualstudio / x64 \" does not appear to contain CMakeLists . txt . Specify -- help for usage , or press the help button on the CMake GUI . Error : could not load cache \u4ece \u5176\u4ed6 \u5730\u65b9 \u628a Build \\ osm2odr - visualstudio \\ CMakeCache . txt \u62f7\u8d1d \u8fc7\u6765 \uff0c \u4fee\u6539 \u91cc\u9762 \u5bf9\u5e94 \u7684 \u76ee\u5f55 \u4e3a \u5f53\u524d \u5de5\u7a0b \u7684 \u76ee\u5f55 \u3002 \u6267\u884c make PythonAPI \u62a5\u9519 \uff1a libcarla . obj : error LNK2001 : \u65e0\u6cd5 \u89e3\u6790 \u7684 \u5916\u90e8 \u7b26\u53f7 \" class std : : basic _ string < char , struct std : : char _ traits < char > , class std : : allocator < char > > __ cdecl osm2odr : : ConvertOSMToOpenDRIVE ( class std : : basic _ string < char , struct std : : char _ traits < char > , class std : : allocator < char > > , struct osm2odr : : OSM2ODRSettings ) \" ( ? ConvertOSMToOpenDRIVE @ osm2odr @ @ YA ? AV ? $ basic _ string @ DU ? $ char _ traits @ D @ std @ @ V ? $ allocator @ D @ 2 @ @ std @ @ V23 @ UOSM2ODRSettings @ 1 @ @ Z ) \u4ece \u5176\u4ed6 \u7f16\u8bd1 \u6210\u529f \u7684 \u5730\u65b9 \u5c06 PythonAPI \\ carla \\ dependencies \\ lib \\ osm2odr . lib \u62f7\u8d1d \u8fc7\u6765 \u3002 \u6709\u5173 \u672c \u6307\u5357 \u7684 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u6784\u5efa \u4e86 Carla \uff0c \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u4e86\u89e3 \u5982\u4f55 \u66f4\u65b0 Carla \u6784\u5efa \u6216 \u5728 \u4eff\u771f \u4e2d \u8fc8\u51fa \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u5e76 \u5b66\u4e60 \u4e00\u4e9b \u6838\u5fc3 \u6982\u5ff5 \u3002 \u66f4\u65b0 Carla \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"Windows \u4e0a \u7f16\u8bd1"},{"location":"build_windows/#windows","text":"\u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5728 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6709 \u4e24\u4e2a \u90e8\u5206 \u3002 \u7b2c\u4e00 \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u7cfb\u7edf \u8981\u6c42 \u548c \u6240 \u9700 \u8f6f\u4ef6 \u7684 \u5b89\u88c5 \uff0c \u7b2c\u4e8c \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u5982\u4f55 \u5b9e\u9645 \u6784\u5efa \u548c \u8fd0\u884c Carla \u3002 \u6784\u5efa \u8fc7\u7a0b \u5f88\u957f \uff08 4 \u5c0f\u65f6 \u6216 \u66f4 \u65f6\u95f4 \u957f\u65f6\u95f4 \uff09 \u5e76\u4e14 \u6d89\u53ca \u591a\u79cd \u8f6f\u4ef6 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u5f00\u59cb \u4e4b\u524d \u5b8c\u6574 \u9605\u8bfb \u8be5 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u9047\u5230 \u9519\u8bef \u6216 \u56f0\u96be \uff0c \u8bf7 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \uff0c \u5176\u4e2d \u63d0\u4f9b \u4e86 \u6700 \u5e38\u89c1 \u95ee\u9898 \u5e38\u89c1\u95ee\u9898 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u3002 \u6216\u8005 \u4f7f\u7528 Carla \u8bba\u575b \u53d1\u5e03 \u60a8 \u53ef\u80fd \u6709 \u7684 \u4efb\u4f55 \u7591\u95ee \u3002 \u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u7cfb\u7edf \u8981\u6c42 \u8f6f\u4ef6 \u8981\u6c42 \u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5 Python \u4f9d\u8d56 \u9879 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 Visual Studio 2019 \u865a\u5e7b \u5f15\u64ce \u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla \u514b\u9686 Carla \u4ed3\u5e93 \u83b7\u53d6 \u8d44\u4ea7 \u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6784\u5efa Carla \u5176\u4ed6 make \u547d\u4ee4","title":"Windows \u4e0b \u7684 \u6784\u5efa"},{"location":"build_windows/#_1","text":"\u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u627e\u5230 \u5f00\u59cb \u6784\u5efa Carla \u4e4b\u524d \u6240 \u9700 \u7684 \u7cfb\u7edf \u8981\u6c42 \u3001 \u6b21\u8981 \u548c \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \u4ee5\u53ca Python \u4f9d\u8d56 \u9879 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u7b2c\u4e00 \u90e8\u5206 \uff1a \u5148\u51b3\u6761\u4ef6"},{"location":"build_windows/#_2","text":"64 \u4f4d \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e94 \u5728 \u4efb\u4f55 64 \u4f4d Windows \u7cfb\u7edf \u4e2d \u8fd0\u884c \u3002 165 GB \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u672c\u8eab \u5c06 \u5360\u7528 \u5927\u7ea6 32 GB \uff0c \u76f8\u5173 \u7684 \u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5 \uff08 \u5305\u62ec \u865a\u5e7b \u5f15\u64ce \uff09 \u5c06 \u5360\u7528 \u5927\u7ea6 133 GB \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u7aef\u53e3 \u4e3a 2000 \u548c 2001 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u8981 \u4ece Carla 0.9 . 12 \u5347\u7ea7 \u5230 0.9 . 13 : \u60a8 \u5fc5\u987b \u9996\u5148 \u5c06 \u865a\u5e7b \u5f15\u64ce 4 \u7684 Carla \u5206\u652f \u5347\u7ea7 \u5230 \u6700\u65b0 \u7248\u672c \u3002 \u6709\u5173 \u5347\u7ea7 \u865a\u5e7b \u5f15\u64ce 4 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u90e8\u5206 \u3002","title":"\u7cfb\u7edf \u8981\u6c42"},{"location":"build_windows/#_3","text":"","title":"\u8f6f\u4ef6 \u8981\u6c42"},{"location":"build_windows/#_4","text":"CMake \u4ece \u7b80\u5355 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u751f\u6210 \u6807\u51c6 \u6784\u5efa \u6587\u4ef6 \u3002 Git \u662f \u4e00\u4e2a \u7528\u4e8e \u7ba1\u7406 Carla \u5b58\u50a8 \u5e93 \u7684 \u7248\u672c \u63a7\u5236 \u7cfb\u7edf \u63a7\u5236\u7cfb\u7edf \u3002 Make \u751f\u6210 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u5fc5\u987b \u4f7f\u7528 Make \u7684 3.81 \u7248\u672c \uff0c \u5426\u5219 \u6784\u5efa \u53ef\u80fd \u4f1a \u5931\u8d25 \u3002 \u5982\u679c \u5b89\u88c5 \u4e86 \u591a\u4e2a \u7248\u672c \u7684 Make \uff0c \u8bf7 \u68c0\u67e5 \u6784\u5efa Carla \u65f6 \u5728 PATH \u4e2d \u4f7f\u7528 \u7684 \u7248\u672c \u662f\u5426 \u4e3a 3.81 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u6765 \u68c0\u67e5 \u9ed8\u8ba4 \u7684 Make \u7248\u672c make -- version \u3002 7Zip \u4e00\u6b3e \u6587\u4ef6 \u538b\u7f29 \u8f6f\u4ef6 \u538b\u7f29\u8f6f\u4ef6 \u3002 \u8fd9\u662f \u81ea\u52a8 \u89e3\u538b \u538b\u7f29 \u89e3\u538b\u7f29 \u8d44\u4ea7 \u6587\u4ef6 \u6240 \u5fc5\u9700 \u7684 \uff0c \u5e76 \u9632\u6b62 \u5728 \u6784\u5efa \u671f\u95f4 \u7531\u4e8e \u9519\u8bef \u6216 \u90e8\u5206 \u63d0\u53d6 \u5927 \u6587\u4ef6 \u800c \u51fa\u73b0 \u9519\u8bef \u3002 Python3 x64 \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 \u5b89\u88c5 x32 \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \uff0c \u56e0\u6b64 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5378\u8f7d \u5b83 \u3002 \u91cd\u8981 \u786e\u4fdd \u5c06 \u4e0a\u8ff0 \u7a0b\u5e8f \u6dfb\u52a0 \u5230 \u73af\u5883 \u8def\u5f84 \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6dfb\u52a0 \u7684 \u8def\u5f84 \u5e94 \u4e0e \u7a0b\u5e8f \u7684 bin \u76ee\u5f55 \u76f8\u5bf9 \u5e94 \u3002","title":"\u57fa\u7840 \u8f6f\u4ef6 \u5b89\u88c5"},{"location":"build_windows/#python","text":"\u4ece Carla 0.9 . 12 \u5f00\u59cb \uff0c \u7528\u4e8e \u53ef\u4ee5 \u9009\u62e9 \u4f7f\u7528 pip3 \u6765 \u5b89\u88c5 Carla \u7684 Python API \u3002 \u8981 \u68c0\u67e5 \u60a8 \u662f\u5426 \u6709 \u5408\u9002 \u7684 \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a pip3 - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a pip3 install -- upgrade pip \u60a8 \u5fc5\u987b \u5b89\u88c5 \u4ee5\u4e0b Python \u4f9d\u8d56 \u9879 \uff1a pip3 install -- user setuptools pip3 install -- user wheel","title":"Python \u4f9d\u8d56 \u9879"},{"location":"build_windows/#_5","text":"","title":"\u4e3b\u8981 \u8f6f\u4ef6 \u5b89\u88c5"},{"location":"build_windows/#visual-studio-2019","text":"\u4ece \u6b64\u5904 \u83b7\u53d6 2019 \u7248 Visual Studio \u3002 \u9009\u62e9 \u793e\u533a \u4f5c\u4e3a \u514d\u8d39 \u7248\u672c \u3002 \u4f7f\u7528 Visual Studio \u5b89\u88c5 \u7a0b\u5e8f \u5b89\u88c5\u7a0b\u5e8f \u5b89\u88c5 \u4e09\u4e2a \u9644\u52a0 \u5143\u7d20 \uff1a Windows 8.1 SDK . \u5728 \u53f3\u4fa7 \u7684 Installation details \u90e8\u5206 \u4e2d \u9009\u62e9 \u5b83 \uff0c \u6216\u8005 \u8f6c \u5230 Indivdual Components \u9009\u9879 \u9009\u9879\u5361 \u5e76 \u5728 SDKs , libraries , and frameworks \u6807\u9898 \u4e0b \u67e5\u770b \u3002 x64 Visual C++ Toolset . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 Desktop development with C++ \u3002 \u8fd9 \u5c06 \u542f\u7528 \u7528\u4e8e \u6784\u5efa \u7684 x64 \u547d\u4ee4 \u63d0\u793a \u63d0\u793a\u7b26 \u547d\u4ee4\u63d0\u793a\u7b26 \u3002 \u901a\u8fc7 \u6309 Windows \u6309\u94ae \u5e76 \u641c\u7d22 x64 \u6765 \u68c0\u67e5 \u5b83 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u5c0f\u5fc3 \u4e0d\u8981 \u6253\u5f00 x86 _ x64 \u63d0\u793a \u3002 . NET framework 4.6 . 2 . \u5728 Workloads \u90e8\u5206 \u4e2d \uff0c \u9009\u62e9 . NET desktop development \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 \u7684 \u5b89\u88c5 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u9009\u62e9 . NET Framework 4.6 . 2 development tools \u3002 \u8fd9\u662f \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u6240 \u5fc5\u9700 \u7684 \u3002 \u91cd\u8981 \u5176\u4ed6 Visual Studio \u7248\u672c \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 \u5373\u4f7f \u8fd9\u4e9b \u5df2 \u88ab \u5378\u8f7d \uff0c \u67d0\u4e9b \u5bc4\u5b58 \u5bc4\u5b58\u5668 \u4e5f \u53ef\u80fd \u4ecd\u7136 \u5b58\u5728 \u3002 \u8981 \u4ece \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u5f7b\u5e95 \u6e05\u9664 \u5f7b\u5e95\u6e05\u9664 Visual Studio \uff0c \u8bf7 \u8f6c\u5230 Program Files ( x86 ) \\ Microsoft Visual Studio \\ Installer \\ resources \\ app \\ layout \u5e76 \u8fd0\u884c . \\ InstallCleanup . exe - full \u3002 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u4e0a\u8ff0 \u6b65\u9aa4 \u4f7f\u7528 Visual Studio 2022 \uff0c \u5e76 \u5c06 Windows 8.1 SDK \u66ff\u6362 \u4e3a Windows 11 / 10 SDK \u3002 \u8981 \u8986\u76d6 CMake \u4e2d \u7684 \u9ed8\u8ba4 Visual Studio 2019 Generator \uff0c \u8bf7 \u5728 \u4f7f\u7528 makefile \u547d\u4ee4 \u65f6 \u6307\u5b9a GENERATOR = \" Visual Studio 17 2022 \" \uff08 \u8bf7 \u53c2\u89c1 \u8868 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u6307\u5b9a \u4efb\u4f55 \u4e0e \u6784\u5efa \u811a\u672c \u4e2d \u7279\u5b9a \u7684 \u6784\u5efa \u547d\u4ee4 \u914d\u5408 \u4f7f\u7528 \u7684 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \uff0c \u4ee5 \u8fdb\u884c \u5b8c\u6574 \u5217\u8868 \u8fd0\u884c cmake - G \uff08 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Ninja \u5df2\u7ecf \u8fc7 \u6d4b\u8bd5 \u53ef\u7528 \u6d4b\u8bd5\u53ef\u7528 \u4e8e \u6784\u5efa LibCarla \uff09 \u3002","title":"Visual Studio 2019"},{"location":"build_windows/#_6","text":"\u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4.26 \u7684 \u4fee\u6539 \u6539\u7248 \u4fee\u6539\u7248 \u3002 \u8be5 \u5206\u652f \u5305\u542b Carla \u7279\u5b9a \u7684 \u8865\u4e01 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8981 \u4e0b\u8f7d \u865a\u5e7b \u5f15\u64ce \u7684 \u8fd9\u4e2a \u5206\u652f \uff0c \u60a8 \u9700\u8981 \u6709 \u4e00\u4e2a \u94fe\u63a5 \u5230 \u865a\u5e7b \u5f15\u64ce \u5e10\u6237 \u7684 GitHub \u5e10\u6237 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8fdb\u884c \u6b64 \u8bbe\u7f6e \uff0c \u8bf7 \u5148 \u6309\u7167 \u672c \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u518d \u7ee7\u7eed \u64cd\u4f5c \u3002 \u8981 \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 \u4fee\u6539 \u7248\u672c \uff1a 1 . \u5728 \u7ec8\u7aef \u4e2d \uff0c \u5bfc\u822a \u5230 \u8981 \u4fdd\u5b58 \u865a\u5e7b \u5f15\u64ce \u7684 \u4f4d\u7f6e \u5e76 \u514b\u9686 carla \u5206\u652f \uff1a git clone -- depth 1 - b carla https : / / github . com / CarlaUnreal / UnrealEngine . git . \u7b14\u8bb0 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9760\u8fd1 C : \\ \\ \uff0c \u56e0\u4e3a \u5982\u679c \u8def\u5f84 \u8d85\u8fc7 \u4e00\u5b9a \u957f\u5ea6 \uff0c Setup . bat \u5219 \u4f1a \u5728 \u6b65\u9aa4 3 \u4e2d \u8fd4\u56de \u9519\u8bef \u3002 2 . \u8fd0\u884c \u914d\u7f6e \u811a\u672c \uff1a Setup . bat GenerateProjectFiles . bat 3 . \u7f16\u8bd1 \u4fee\u6539 \u540e \u7684 \u5f15\u64ce \uff1a \u4f7f\u7528 Visual Studio 2019 \u6253\u5f00 UE4 . sln \u6e90 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u3002 \u5728 \u6784\u5efa \u680f\u4e2d \uff0c \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u9009\u62e9 \u201c Development Editor \u201d \u3001 \u201c Win64 \u201d \u548c \u201c UnrealBuildTool \u201d \u9009\u9879 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4efb\u4f55 \u5e2e\u52a9 \uff0c \u8bf7 \u67e5\u770b \u672c \u6307\u5357 \u3002 \u5728 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u53f3\u952e \u5355\u51fb UE4 \u5e76 \u9009\u62e9 Build \u3002 4 . \u7f16\u8bd1 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6253\u5f00 \u5f15\u64ce \uff0c \u901a\u8fc7 \u542f\u52a8 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 Engine \\ Binaries \\ Win64 \\ UE4Editor . exe \u6765 \u68c0\u67e5 \u6240\u6709 \u5185\u5bb9 \u662f\u5426 \u5df2 \u6b63\u786e \u5b89\u88c5 \u3002 \u7b14\u8bb0 \u5982\u679c \u5b89\u88c5 \u6210\u529f \uff0c \u865a\u5e7b \u5f15\u64ce \u7684 \u7248\u672c \u9009\u62e9 \u9009\u62e9\u5668 \u5e94\u8be5 \u80fd\u591f \u8bc6\u522b \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53f3\u952e \u5355\u51fb \u4efb\u4f55 . uproject \u6587\u4ef6 \u5e76 \u9009\u62e9 Switch Unreal Engine version \u6765 \u68c0\u67e5 \u8fd9 \u4e00\u70b9 \u3002 \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u4e00\u4e2a \u5f39 \u51fa \u7a97\u53e3 \uff0c \u663e\u793a Source Build at PATH \u662f \u60a8 \u9009\u62e9 \u7684 \u5b89\u88c5 \u8def\u5f84 \u3002 \u5982\u679c \u60a8 \u5728 \u53f3\u952e \u5355\u51fb . uproject \u6587\u4ef6 \u6216 Generate Visual Studio project files \u65f6 \u4e0d\u5230 \u770b\u4e0d\u5230 \u6b64 \u9009\u62e9 \u9009\u62e9\u5668 \uff0c \u5219 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u51fa\u73b0 \u95ee\u9898 \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u91cd\u65b0 \u6b63\u786e \u5b89\u88c5 \u3002 \u91cd\u8981 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \u53d1\u751f \u4e86 \u5f88\u591a \u4e8b\u60c5 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u7ee7\u7eed \u4e4b\u524d \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u3002","title":"\u865a\u5e7b \u5f15\u64ce"},{"location":"build_windows/#carla","text":"","title":"\u7b2c\u4e8c \u90e8\u5206 \uff1a \u6784\u5efa Carla"},{"location":"build_windows/#carla_1","text":"Carla \u4ed3\u5e93 \u4e0a\u9762 \u7684 \u6309\u94ae \u5c06 \u5e26 \u60a8 \u8fdb\u5165 \u8be5\u9879 \u76ee\u7684 \u5b98\u65b9 \u5b58\u50a8 \u5e93 \u3002 \u4ece \u90a3\u91cc \u4e0b\u8f7d \u5e76 \u5728 \u672c\u5730 \u63d0\u53d6 \u5b83 \u6216 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b83 \uff1a git clone https : / / github . com / carla - simulator / carla \u7b14\u8bb0 \u8be5 master \u5206\u652f \u5305\u542b Carla \u7684 \u5f53\u524d \u7248\u672c \u4ee5\u53ca \u6700\u65b0 \u7684 \u4fee\u590d \u548c \u529f\u80fd \u3002 \u4ee5\u524d \u7684 Carla \u7248\u672c \u6807\u6709 \u7248\u672c \u540d\u79f0 \u3002 \u6c38\u8fdc \u8bb0\u4f4f \u4f7f\u7528 \u547d\u4ee4 git branch \u68c0\u67e5 git \u4e2d \u7684 \u5f53\u524d \u5206\u652f \u3002","title":"\u514b\u9686 Carla \u5b58\u50a8 \u5e93"},{"location":"build_windows/#_7","text":"\u901a\u8fc7 \u5728 Carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u4e0b\u8f7d \u6700\u65b0 \u7684 \u8d44\u4ea7 \u4ee5 \u4f7f\u7528 \u5f53\u524d \u7248\u672c \u7684 Carla \uff1a Update . bat \u5982\u679c \u5b89\u88c5 \u4e86 7zip \uff0c \u8d44\u6e90 \u5c06 \u88ab \u4e0b\u8f7d \u5e76 \u89e3\u538b \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u5b89\u88c5 \u6b64 \u8f6f\u4ef6 \uff0c \u5219 \u9700\u8981 \u624b\u52a8 \u5c06 \u6587\u4ef6 \u5185\u5bb9 \u89e3\u538b \u5230 Unreal \\ CarlaUE4 \\ Content \\ Carla \u3002 \u8981 \u4e0b\u8f7d \u7279\u5b9a \u7248\u672c Carla \u7684 \u8d44\u6e90 \uff1a \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff0c \u5bfc\u822a \u5230 \\ Util \\ ContentVersions . txt \u3002 \u672c \u6587\u6863 \u5305\u542b \u6240\u6709 Carla \u7248\u672c \u7684 \u8d44\u4ea7 \u94fe\u63a5 \u3002 \u63d0\u53d6 Unreal \\ CarlaUE4 \\ Content \\ Carla \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5982\u679c \u8be5 \u8def\u5f84 \u4e0d \u5b58\u5728 \uff0c \u8bf7 \u521b\u5efa \u5b83 \u3002 \u4f7f\u7528 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u547d\u4ee4 \u63d0\u53d6 \u6587\u4ef6 \uff1a tar - xvzf < assets _ file _ name > . tar . gz . tar - C C : \\ path \\ to \\ carla \\ Unreal \\ CarlaUE4 \\ Content \\ Carla","title":"\u83b7\u53d6 \u8d44\u4ea7"},{"location":"build_windows/#_8","text":"\u9700\u8981 \u8bbe\u7f6e \u4e00\u4e2a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u4ee5\u4fbf Carla \u53ef\u4ee5 \u627e\u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u9009\u62e9 \u8981 \u4f7f\u7528 \u54ea\u4e2a \u7279\u5b9a \u7248\u672c \u7684 \u865a\u5e7b \u5f15\u64ce \u3002 \u5982\u679c \u6307\u5b9a \u672a\u6307\u5b9a \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c Carla \u5c06 \u5728 Windows \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d \u641c\u7d22 \u865a\u5e7b \u5f15\u64ce \u5e76 \u4f7f\u7528 \u5728 \u90a3\u91cc \u627e\u5230 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u7248\u672c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff1a \u6253\u5f00 Windows \u63a7\u5236 \u5236\u9762 \u9762\u677f \u63a7\u5236\u9762\u677f \uff0c \u7136\u540e \u8f6c \u81f3 Advanced System Settings \u6216 \u5728 Windows \u641c\u7d22 \u680f\u4e2d \u641c\u7d22 Advanced System Settings \u3002 \u5728 \u9762\u677f \u4e0a Advanced Advanced \u6253\u5f00 Environment Variables ... \u3002 \u5355\u51fb New ... \u4ee5 \u521b\u5efa \u53d8\u91cf \u3002 \u4e3a \u53d8\u91cf UE4 _ ROOT \u547d\u540d \u5e76 \u9009\u62e9 \u6240 \u9700 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \u7684 \u5b89\u88c5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u8def\u5f84 \u3002","title":"\u8bbe\u7f6e \u865a\u5e7b \u5f15\u64ce \u53d8\u91cf"},{"location":"build_windows/#carla_2","text":"\u672c \u8282 \u6982\u8ff0 \u4e86 \u6784\u5efa Carla \u7684 \u547d\u4ee4 \u3002 \u6240\u6709 \u547d\u4ee4 \u90fd \u5e94 \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u3002 \u547d\u4ee4 \u5e94 \u901a\u8fc7 VS 2019 \u7684 x64 Native Tools Command Prompt for VS 2019 \u6267\u884c \u3002 \u901a\u8fc7 \u5355\u51fb \u8be5 Windows \u952e \u5e76 \u641c\u7d22 \u6765 \u6253\u5f00 \u5b83 x64 \u3002 Carla \u7684 \u6784\u5efa \u8fc7\u7a0b \u5206\u4e3a \u4e24 \u90e8\u5206 \uff1a \u7f16\u8bd1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 1 . \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef : Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \u6388\u4e88 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u3002 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa Carla \u65f6 \u9700\u8981 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u4efb\u4f55 \u66f4\u65b0 \u540e \u9700\u8981 \u518d\u6b21 \u7f16\u8bd1 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7f16\u8bd1 \u5b8c\u6210 \u540e \uff0c \u60a8 \u5c06 \u80fd\u591f \u8fd0\u884c \u811a\u672c \u4e0e \u4eff\u771f \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 Python API \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a make PythonAPI Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u5c06 \u4ee5 \u4e24\u79cd \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \u3001 \u4e92\u65a5 \u7684 \u5f62\u5f0f \u6784\u5efa \u3002 \u8fd9\u4f7f \u7528\u6237 \u53ef\u4ee5 \u81ea\u7531 \u9009\u62e9 \u81ea\u7531\u9009\u62e9 \u4ed6\u4eec \u559c\u6b22 \u7684 \u5f62\u5f0f \u6765 \u8fd0\u884c Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u3002 \u4e24\u79cd \u5f62\u5f0f \u5305\u62ec . egg \u6587\u4ef6 \u548c . whl \u6587\u4ef6 \u3002 \u9009\u62e9 \u4ee5\u4e0b \u9009\u9879 \u4e4b\u4e00 \u6765 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a A . . egg \u6587\u4ef6 . egg \u6587\u4ef6 \u4e0d \u9700\u8981 \u5b89\u88c5 \u3002 \u5bfc\u5165 Carla \u65f6 \uff0c Carla \u7684 \u6240\u6709 \u793a\u4f8b \u811a\u672c \u90fd \u4f1a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 CARLA . whl \uff0c \u5219 \u5b83 \u5c06 . whl \u4f18\u5148 \u4e8e . egg \u6587\u4ef6 \u3002 B . . whl \u6587\u4ef6 \u5e94 \u4f7f\u7528 \u4ee5\u4e0b pip3 \u547d\u4ee4 \u5b89\u88c5 . whl \u6587\u4ef6 \uff1a pip3 install < path / to / wheel > . whl . whl \u6587\u4ef6 \u65e0\u6cd5 \u5206\u53d1 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e13\u95e8 \u4e3a \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8b66\u544a \u4f7f\u7528 \u4e0d\u540c \u65b9\u6cd5 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4ee5\u53ca \u7cfb\u7edf \u4e0a \u5b89\u88c5 \u4e0d\u540c \u7248\u672c \u7684 Carla \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u5efa\u8bae \u5728 \u5b89\u88c5 . whl \u65f6 \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u5e76 \u5728 \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u4e4b\u524d \u5378\u8f7d \u4efb\u4f55 \u4ee5\u524d \u5b89\u88c5 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 2 . \u7f16\u8bd1 \u670d\u52a1 \u670d\u52a1\u7aef : \u4ee5\u4e0b \u547d\u4ee4 \u7f16\u8bd1 \u5e76 \u542f\u52a8 \u865a\u5e7b \u5f15\u64ce \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6216 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6 \u8fd0\u884c \u6b64 \u547d\u4ee4 \uff1a make launch \u8be5 \u9879\u76ee \u53ef\u80fd \u4f1a \u8981\u6c42 \u6784\u5efa \u5176\u4ed6 \u5b9e\u4f8b \uff0c \u4f8b\u5982 UE4Editor - Carla . dll \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u3002 \u540c\u610f \u624d\u80fd \u6253\u5f00 \u9879\u76ee \u3002 \u5728 \u9996\u6b21 \u542f\u52a8 \u671f\u95f4 \uff0c \u7f16\u8f91 \u7f16\u8f91\u5668 \u53ef\u80fd \u4f1a \u663e\u793a \u6709\u5173 \u7740\u8272 \u7740\u8272\u5668 \u548c \u7f51\u683c \u8ddd\u79bb \u573a \u7684 \u8b66\u544a \u3002 \u8fd9\u4e9b \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u52a0\u8f7d \uff0c \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \u5730\u56fe \u5c06 \u65e0\u6cd5 \u6b63\u786e \u663e\u793a \u3002 \u7b14\u8bb0 \u5982\u679c \u7f16\u8bd1 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4e2d\u6587 \u4e71\u7801 \uff0c \u4e3a\u4e86 \u4fbf\u4e8e \u5bfb\u627e \u7f16\u8bd1 \u9519\u8bef \uff0c \u53ef\u4ee5 \u4f7f\u7528 chcp 65001 \u547d\u4ee4 \u5c06 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \u4fee\u6539 \u4e3a UTF - 8 \uff08 \u9009\u62e9 \u201c \u5c5e\u6027 \u201d \u3002 \u5728 \u201c \u5c5e\u6027 \u201d > > \u201c \u9009\u9879 \u201d \u4e00\u680f \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u770b\u5230 \u5f53\u524d \u4ee3\u7801 \u9875 \u7684 \u7f16\u7801 \u65b9\u5f0f \u7f16\u7801\u65b9\u5f0f \uff09 \u3002 3 . \u5f00\u59cb \u4eff\u771f : \u6309 Play \u5f00\u59cb \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6309\u952e \u79fb\u52a8 \u76f8\u673a WASD \uff0c \u5e76 \u901a\u8fc7 \u5728 \u79fb\u52a8 \u9f20\u6807 \u7684 \u540c\u65f6 \u5355\u51fb \u573a\u666f \u6765 \u65cb\u8f6c \u76f8\u673a \u3002 \u4f7f\u7528 \u91cc\u9762 \u7684 \u793a\u4f8b \u811a\u672c \u6d4b\u8bd5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 PythonAPI \\ examples \u3002 \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u4e3a \u6bcf\u4e2a \u811a\u672c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u57ce\u9547 \u5728\u57ce\u9547 \u4e2d \u4ea7\u751f \u4e00\u4e9b \u751f\u547d \u5e76 \u521b\u5efa \u5929\u6c14 \u5faa\u73af \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples pip3 install - r requirements . txt python3 generate _ traffic . py # \u7ec8\u7aef B cd PythonAPI \\ examples python3 dynamic _ weather . py \u91cd\u8981 \u5982\u679c \u4eff\u771f \u4ee5 \u975e\u5e38 \u975e\u5e38\u4f4e \u7684 FPS \u901f\u7387 \u8fd0\u884c \uff0c \u8bf7 \u8f6c\u81f3 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 Edit - > Editor preferences - > Performance \u5e76 \u7981\u7528 \u3002","title":"\u6784\u5efa Carla"},{"location":"build_windows/#_9","text":"\u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u8fd8\u6709 \u66f4 \u591a \u6709\u7528 \u7684 make \u547d\u4ee4 \u3002 \u5728 \u4e0b\u8868\u4e2d \u627e\u5230 \u5b83\u4eec \uff1a \u547d\u4ee4 \u63cf\u8ff0 make help \u6253\u5370 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 make launch \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 make PythonAPI \u6784\u5efa Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 make LibCarla \u51c6\u5907 \u5c06 Carla \u5e93 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4efb\u4f55 \u5730\u65b9 \u3002 make package \u6784\u5efa Carla \u5e76 \u521b\u5efa \u7528\u4e8e \u5206\u53d1 \u7684 \u6253\u5305 \u7248\u672c \u3002 make clean \u5220\u9664 \u6784\u5efa \u7cfb\u7edf \u751f\u6210 \u7cfb\u7edf\u751f\u6210 \u7684 \u6240\u6709 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u548c \u4e34\u65f6 \u65f6\u6587 \u6587\u4ef6 \u4e34\u65f6\u6587\u4ef6 \u3002 make rebuild make clean \u548c make launch \u4e24\u8005 \u90fd \u5728 \u4e00\u4e2a \u547d\u4ee4 \u4e2d \u3002 make downloadplugin \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 StreetMap \u3002 make setup \u6784 \u4e0b\u8f7d \u5e76 \u751f\u6210 \u4f9d\u8d56 \u5e93 make LibCarla \u521b\u5efa LibCarla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u670d\u52a1\u7aef \uff08 make server + make client \uff09 make osm2odr \u521b\u5efa OSM \u8f6c OpenDRIVE \u7684 \u5e93 make import \u5bfc\u5165 \u8d44\u4ea7","title":"\u5176\u4ed6 \u6784\u5efa \u547d\u4ee4"},{"location":"build_windows/#_10","text":"\u6267\u884c make osm2odr \u62a5\u9519 \uff1a CMake Error : The source directory \" D : / work / workspace / carla / Build / osm2odr - visualstudio / x64 \" does not appear to contain CMakeLists . txt . Specify -- help for usage , or press the help button on the CMake GUI . Error : could not load cache \u4ece \u5176\u4ed6 \u5730\u65b9 \u628a Build \\ osm2odr - visualstudio \\ CMakeCache . txt \u62f7\u8d1d \u8fc7\u6765 \uff0c \u4fee\u6539 \u91cc\u9762 \u5bf9\u5e94 \u7684 \u76ee\u5f55 \u4e3a \u5f53\u524d \u5de5\u7a0b \u7684 \u76ee\u5f55 \u3002 \u6267\u884c make PythonAPI \u62a5\u9519 \uff1a libcarla . obj : error LNK2001 : \u65e0\u6cd5 \u89e3\u6790 \u7684 \u5916\u90e8 \u7b26\u53f7 \" class std : : basic _ string < char , struct std : : char _ traits < char > , class std : : allocator < char > > __ cdecl osm2odr : : ConvertOSMToOpenDRIVE ( class std : : basic _ string < char , struct std : : char _ traits < char > , class std : : allocator < char > > , struct osm2odr : : OSM2ODRSettings ) \" ( ? ConvertOSMToOpenDRIVE @ osm2odr @ @ YA ? AV ? $ basic _ string @ DU ? $ char _ traits @ D @ std @ @ V ? $ allocator @ D @ 2 @ @ std @ @ V23 @ UOSM2ODRSettings @ 1 @ @ Z ) \u4ece \u5176\u4ed6 \u7f16\u8bd1 \u6210\u529f \u7684 \u5730\u65b9 \u5c06 PythonAPI \\ carla \\ dependencies \\ lib \\ osm2odr . lib \u62f7\u8d1d \u8fc7\u6765 \u3002 \u6709\u5173 \u672c \u6307\u5357 \u7684 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u6784\u5efa \u4e86 Carla \uff0c \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u4e86\u89e3 \u5982\u4f55 \u66f4\u65b0 Carla \u6784\u5efa \u6216 \u5728 \u4eff\u771f \u4e2d \u8fc8\u51fa \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \uff0c \u5e76 \u5b66\u4e60 \u4e00\u4e9b \u6838\u5fc3 \u6982\u5ff5 \u3002 \u66f4\u65b0 Carla \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"\u62a5\u9519"},{"location":"carla_ackermann_control/","text":"Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 carla _ ackermann _ control \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7528\u4e8e \u901a\u8fc7 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u63a7\u5236 Carla \u8f66\u8f86 \u3002 \u8be5\u5305 \u5c06 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u8f6c\u6362 \u4e3a CarlaEgoVehicleControl \u6d88\u606f \u3002 \u5b83 \u4ece Carla \u8bfb\u53d6 \u8f66\u8f86 \u4fe1\u606f \uff0c \u5e76 \u5c06 \u8be5 \u4fe1\u606f \u4f20\u9012 \u7ed9 \u57fa\u4e8e Python \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u8c03\u7528 simple - pid \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u63a7\u5236 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u901f\u5ea6 \u3002 \u914d\u7f6e \u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u914d\u7f6e \u4f7f\u7528 ROS 1 \u548c ROS 2 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u521d\u59cb \u8bbe\u7f6e \u53c2\u6570 \uff0c \u4e5f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u901a\u8fc7 ROS 1 \u4e2d \u7684 ROS \u52a8\u6001 \u91cd\u65b0 \u914d\u7f6e \u91cd\u65b0\u914d\u7f6e \u6765 \u8bbe\u7f6e \u53c2\u6570 \u3002 \u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f \u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / ackermann _ cmd \u5411 \u6c7d\u8f66 \u53d1\u9001 \u547d\u4ee4 \u6765 \u6d4b\u8bd5 \u8bbe\u7f6e \u3002 \u4f8b\u5982 \uff0c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 10 \u7c73 / \u79d2 \u7684 \u901f\u5ea6 \u79fb\u52a8 \u89d2\u8272 \u540d\u79f0 \u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 \u6216\u8005 \u8ba9 \u8f66\u8f86 \u5411\u524d \u79fb\u52a8 \uff0c \u540c\u65f6 \u8f6c\u5f2f 1.22 \u5f27\u5ea6 \u7684 \u89d2\u5ea6 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ cmd ackermann _ msgs . AckermannDrive \u8f6c\u5411 \u547d\u4ee4 \u7684 \u8ba2\u9605 \u8005 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ control / control _ info carla _ ackermann _ control . EgoVehicleControlInfo \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u4f7f\u7528 \u7684 \u5f53\u524d \u503c \uff08 \u5bf9\u4e8e \u8c03\u8bd5 \u6709\u7528 \uff09","title":"Carla \u963f\u514b\u66fc \u63a7\u5236"},{"location":"carla_ackermann_control/#carla","text":"carla _ ackermann _ control \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7528\u4e8e \u901a\u8fc7 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u63a7\u5236 Carla \u8f66\u8f86 \u3002 \u8be5\u5305 \u5c06 \u963f\u514b \u963f\u514b\u66fc \u6d88\u606f \u8f6c\u6362 \u4e3a CarlaEgoVehicleControl \u6d88\u606f \u3002 \u5b83 \u4ece Carla \u8bfb\u53d6 \u8f66\u8f86 \u4fe1\u606f \uff0c \u5e76 \u5c06 \u8be5 \u4fe1\u606f \u4f20\u9012 \u7ed9 \u57fa\u4e8e Python \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u8c03\u7528 simple - pid \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u63a7\u5236 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u901f\u5ea6 \u3002 \u914d\u7f6e \u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03","title":"Carla \u963f\u514b\u66fc \u63a7\u5236"},{"location":"carla_ackermann_control/#_1","text":"\u4f7f\u7528 ROS 1 \u548c ROS 2 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u521d\u59cb \u8bbe\u7f6e \u53c2\u6570 \uff0c \u4e5f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u901a\u8fc7 ROS 1 \u4e2d \u7684 ROS \u52a8\u6001 \u91cd\u65b0 \u914d\u7f6e \u91cd\u65b0\u914d\u7f6e \u6765 \u8bbe\u7f6e \u53c2\u6570 \u3002","title":"\u914d\u7f6e"},{"location":"carla_ackermann_control/#_2","text":"\u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / ackermann _ cmd \u5411 \u6c7d\u8f66 \u53d1\u9001 \u547d\u4ee4 \u6765 \u6d4b\u8bd5 \u8bbe\u7f6e \u3002 \u4f8b\u5982 \uff0c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 10 \u7c73 / \u79d2 \u7684 \u901f\u5ea6 \u79fb\u52a8 \u89d2\u8272 \u540d\u79f0 \u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 0.0 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 \u6216\u8005 \u8ba9 \u8f66\u8f86 \u5411\u524d \u79fb\u52a8 \uff0c \u540c\u65f6 \u8f6c\u5f2f 1.22 \u5f27\u5ea6 \u7684 \u89d2\u5ea6 \uff1a # ROS 1 rostopic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10 # ROS 2 ros2 topic pub / carla / ego _ vehicle / ackermann _ cmd ackermann _ msgs / AckermannDrive \" { steering _ angle : 1.22 , steering _ angle _ velocity : 0.0 , speed : 10 , acceleration : 0.0 , jerk : 0.0 } \" - r 10","title":"\u6d4b\u8bd5 \u63a7\u5236 \u6d88\u606f"},{"location":"carla_ackermann_control/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_ackermann_control/#_3","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ cmd ackermann _ msgs . AckermannDrive \u8f6c\u5411 \u547d\u4ee4 \u7684 \u8ba2\u9605 \u8005","title":"\u8ba2\u9605"},{"location":"carla_ackermann_control/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / ackermann _ control / control _ info carla _ ackermann _ control . EgoVehicleControlInfo \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u4f7f\u7528 \u7684 \u5f53\u524d \u503c \uff08 \u5bf9\u4e8e \u8c03\u8bd5 \u6709\u7528 \uff09","title":"\u53d1\u5e03"},{"location":"carla_ad_agent/","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u662f \u4e00\u79cd \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \uff0c \u53ef\u4ee5 \u9075\u5faa \u7ed9\u5b9a \u8def\u7ebf \uff0c \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \uff0c \u5e76 \u901a\u8fc7 \u8bbf\u95ee \u771f\u5b9e \u6570\u636e \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 \u5b83 \u6765 \u63d0\u4f9b \u5982\u4f55 \u4f7f\u7528 ROS \u6865 \u7684 \u793a\u4f8b \u3002 \u9700\u6c42 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9 \u53c2\u6570 \u8ba2\u9605 \u53d1\u5e03 \u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9 \u53c2\u6570 \u53d1\u5e03 \u8ba2\u9605 \u5728 \u5185\u90e8 \uff0c Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u4f7f\u7528 \u5355\u72ec \u7684 \u8282\u70b9 \u8fdb\u884c \u672c\u5730 \u89c4\u5212 \u3002 \u8be5 \u8282\u70b9 \u5df2 \u9488\u5bf9 vehicle . tesla . model3 \u8fdb\u884c \u4e86 \u4f18\u5316 \uff0c \u56e0\u4e3a \u5b83 \u6ca1\u6709 \u4efb\u4f55 \u6362\u6863 \u5ef6\u8fdf \u3002 PID \u53c2\u6570 \u901a\u8fc7 Ziegler - Nichols \u65b9\u6cd5 \u91c7\u96c6 \u3002 \u9700\u6c42 \u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ ad _ agent \uff0c \u9700\u8981 \u751f\u6210 \u6700\u5c11 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6 \uff08 \u6709\u5173 \u5982\u4f55 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \uff1a \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . odom ) \uff0c \u5176 \u89d2\u8272 \u540d odometry \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u4e00\u4e2a \u5bf9\u8c61 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . objects ) \uff0c \u5176 \u89d2\u8272 \u540d objects \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u5177\u6709 \u89d2\u8272 \u540d\u79f0 traffic _ lights \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . traffic _ lights ) \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9 \u53c2\u6570 \u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 avoid _ risk bool ( default : true ) \u5982\u679c \u4e3a \u771f \uff0c \u5219 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u76f8\u649e \u5e76 \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / target _ speed std _ msgs / Float64 \u81ea\u6211 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / vehicle _ info carla _ msgs / CarlaEgoVehicleInfo \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 id / carla / < ROLE NAME > / objects derived _ object _ msgs / ObjectArray \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f / carla / traffic _ lights / status carla _ msgs / CarlaTrafficLightStatusList \u83b7\u53d6 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u5f53\u524d \u72b6\u6001 / carla / traffic _ lights / info carla _ msgs / CarlaTrafficLightInfoList \u83b7\u53d6 \u6709\u5173 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4fe1\u606f \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6 \u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9 \u53c2\u6570 \u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 control _ time _ step float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 ) \u63a7\u5236 \u5faa\u73af \u901f\u7387 Kp _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.9 ) \u6bd4\u4f8b \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u79ef\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u5fae\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kp _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.206 ) \u6bd4\u4f8b \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0206 ) \u79ef\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.515 ) \u5fae\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs / Path \u9075\u5faa \u7684 \u8def\u7ebf / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / next _ target visualization _ msgs / Marker \u4e0b \u4e00\u4e2a \u76ee\u6807 \u59ff\u52bf \u6807\u8bb0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \u8f66\u8f86 \u63a7\u5236 \u6307\u4ee4 \u63a7\u5236\u6307\u4ee4","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53"},{"location":"carla_ad_agent/#carla","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u662f \u4e00\u79cd \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \uff0c \u53ef\u4ee5 \u9075\u5faa \u7ed9\u5b9a \u8def\u7ebf \uff0c \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \uff0c \u5e76 \u901a\u8fc7 \u8bbf\u95ee \u771f\u5b9e \u6570\u636e \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 \u5b83 \u6765 \u63d0\u4f9b \u5982\u4f55 \u4f7f\u7528 ROS \u6865 \u7684 \u793a\u4f8b \u3002 \u9700\u6c42 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9 \u53c2\u6570 \u8ba2\u9605 \u53d1\u5e03 \u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9 \u53c2\u6570 \u53d1\u5e03 \u8ba2\u9605 \u5728 \u5185\u90e8 \uff0c Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u4f7f\u7528 \u5355\u72ec \u7684 \u8282\u70b9 \u8fdb\u884c \u672c\u5730 \u89c4\u5212 \u3002 \u8be5 \u8282\u70b9 \u5df2 \u9488\u5bf9 vehicle . tesla . model3 \u8fdb\u884c \u4e86 \u4f18\u5316 \uff0c \u56e0\u4e3a \u5b83 \u6ca1\u6709 \u4efb\u4f55 \u6362\u6863 \u5ef6\u8fdf \u3002 PID \u53c2\u6570 \u901a\u8fc7 Ziegler - Nichols \u65b9\u6cd5 \u91c7\u96c6 \u3002","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53"},{"location":"carla_ad_agent/#_1","text":"\u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ ad _ agent \uff0c \u9700\u8981 \u751f\u6210 \u6700\u5c11 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6 \uff08 \u6709\u5173 \u5982\u4f55 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \uff1a \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . odom ) \uff0c \u5176 \u89d2\u8272 \u540d odometry \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u4e00\u4e2a \u5bf9\u8c61 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . objects ) \uff0c \u5176 \u89d2\u8272 \u540d objects \u9644\u52a0 \u5230 \u8f66\u8f86 \u4e0a \u3002 \u5177\u6709 \u89d2\u8272 \u540d\u79f0 traffic _ lights \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 ( sensor . pseudo . traffic _ lights ) \u3002","title":"\u9700\u6c42"},{"location":"carla_ad_agent/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_ad_agent/#_2","text":"","title":"\u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8282\u70b9"},{"location":"carla_ad_agent/#_3","text":"\u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 avoid _ risk bool ( default : true ) \u5982\u679c \u4e3a \u771f \uff0c \u5219 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u76f8\u649e \u5e76 \u5c0a\u91cd \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f","title":"\u53c2\u6570"},{"location":"carla_ad_agent/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / target _ speed std _ msgs / Float64 \u81ea\u6211 \u8f66\u8f86 \u7684 \u76ee\u6807 \u901f\u5ea6 / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / vehicle _ info carla _ msgs / CarlaEgoVehicleInfo \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 id / carla / < ROLE NAME > / objects derived _ object _ msgs / ObjectArray \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f / carla / traffic _ lights / status carla _ msgs / CarlaTrafficLightStatusList \u83b7\u53d6 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u5f53\u524d \u72b6\u6001 / carla / traffic _ lights / info carla _ msgs / CarlaTrafficLightInfoList \u83b7\u53d6 \u6709\u5173 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4fe1\u606f","title":"\u8ba2\u9605"},{"location":"carla_ad_agent/#_5","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6","title":"\u53d1\u5e03"},{"location":"carla_ad_agent/#_6","text":"","title":"\u672c\u5730 \u89c4\u5212 \u5668 \u8282\u70b9"},{"location":"carla_ad_agent/#_7","text":"\u53c2\u6570 \u7c7b\u578b \u63cf\u8ff0 role _ name string ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a ego _ vehicle ) \u81ea\u6211 \u8f66\u8f86 \u7684 Carla \u89d2\u8272 \u540d\u79f0 control _ time _ step float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.05 ) \u63a7\u5236 \u5faa\u73af \u901f\u7387 Kp _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.9 ) \u6bd4\u4f8b \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u79ef\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ lateral float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0 ) \u5fae\u5206 \u9879 \u6a2a\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kp _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.206 ) \u6bd4\u4f8b \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Ki _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.0206 ) \u79ef\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668 Kd _ longitudinal float ( \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 0.515 ) \u5fae\u5206 \u9879 \u7eb5\u5411 PID \u63a7\u5236 \u63a7\u5236\u5668","title":"\u53c2\u6570"},{"location":"carla_ad_agent/#_8","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs / Path \u9075\u5faa \u7684 \u8def\u7ebf / carla / < ROLE NAME > / odometry nav _ msgs / Odometry \u81ea\u6211 \u8f66\u8f86 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 / carla / < ROLE NAME > / speed _ command std _ msgs / Float64 \u76ee\u6807 \u901f\u5ea6","title":"\u8ba2\u9605"},{"location":"carla_ad_agent/#_9","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / next _ target visualization _ msgs / Marker \u4e0b \u4e00\u4e2a \u76ee\u6807 \u59ff\u52bf \u6807\u8bb0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \u8f66\u8f86 \u63a7\u5236 \u6307\u4ee4 \u63a7\u5236\u6307\u4ee4","title":"\u53d1\u5e03"},{"location":"carla_ad_demo/","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u81ea\u52a8 \u9a7e\u9a76 \u662f \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u8fd0\u884c \u6f14\u793a \u968f\u673a \u8def\u7ebf \u573a\u666f \u6267\u884c \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5b89\u88c5 Scenario Runner \u5e76 \u6309\u7167 Scenario Runner \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u9a8c\u8bc1 \u5176 \u662f\u5426 \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Scenario Runner \u5b89\u88c5 \uff1a export SCENARIO _ RUNNER _ PATH = < path _ to _ scenario _ runner > \u8fd0\u884c \u6f14\u793a \u968f\u673a \u8def\u7ebf \u8981 \u542f\u52a8 \u81ea\u6211 \u8f66\u8f86 \u9075\u5faa \u968f\u673a \u751f\u6210 \u7684 \u8def\u7ebf \u7684 \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ad _ demo carla _ ad _ demo . launch # ROS 2 ros2 launch carla _ ad _ demo carla _ ad _ demo . launch . py \u60a8 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u751f\u6210 \u66f4 \u591a \u8f66\u8f86 \u6216 \u884c\u4eba \uff1a cd < CARLA _ PATH > / PythonAPI / examples / python3 spawn _ npc . py \u573a\u666f \u6267\u884c \u8981 \u4f7f\u7528 \u9884\u5b9a \u4e49 \u573a\u666f \u6267\u884c \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS1 roslaunch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch # ROS2 ros2 launch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch . py \u5728 RVIZ Carla \u63d2\u4ef6 \u4e2d \u9009\u62e9 \u793a\u4f8b \u573a\u666f \u201c FollowLeadingVehicle \u201d \uff0c \u7136\u540e \u6309 \u201c \u6267\u884c \u201d \u3002 \u81ea\u6211 \u8f66\u8f86 \u91cd\u65b0 \u5b9a\u4f4d \u5e76 \u5904\u7406 \u573a\u666f \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / available _ scenarios \u6765 \u6307\u5b9a \u81ea\u5df1 \u7684 \u573a\u666f \u3002 \u542f\u52a8 \u6587\u4ef6 \u663e\u793a \u4e86 \u5982\u4f55 \u6267\u884c \u6b64 \u64cd\u4f5c \u7684 \u793a\u4f8b \uff1a < node pkg = \" rostopic \" type = \" rostopic \" name = \" publish _ scenarios \" args = \" pub / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList ' { ' scenarios ' : [ { ' name ' : ' FollowLeadingVehicle ' , ' scenario _ file ' : ' $ ( find carla _ ad _ demo ) / config / FollowLeadingVehicle . xosc ' } ] } ' - l \" / >","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a"},{"location":"carla_ad_demo/#carla","text":"\u81ea\u52a8 \u9a7e\u9a76 \u662f \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u8fd0\u884c \u6f14\u793a \u968f\u673a \u8def\u7ebf \u573a\u666f \u6267\u884c","title":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a"},{"location":"carla_ad_demo/#_1","text":"\u5b89\u88c5 Scenario Runner \u5e76 \u6309\u7167 Scenario Runner \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u9a8c\u8bc1 \u5176 \u662f\u5426 \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Scenario Runner \u5b89\u88c5 \uff1a export SCENARIO _ RUNNER _ PATH = < path _ to _ scenario _ runner >","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"carla_ad_demo/#_2","text":"","title":"\u8fd0\u884c \u6f14\u793a"},{"location":"carla_ad_demo/#_3","text":"\u8981 \u542f\u52a8 \u81ea\u6211 \u8f66\u8f86 \u9075\u5faa \u968f\u673a \u751f\u6210 \u7684 \u8def\u7ebf \u7684 \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ad _ demo carla _ ad _ demo . launch # ROS 2 ros2 launch carla _ ad _ demo carla _ ad _ demo . launch . py \u60a8 \u8fd8 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u751f\u6210 \u66f4 \u591a \u8f66\u8f86 \u6216 \u884c\u4eba \uff1a cd < CARLA _ PATH > / PythonAPI / examples / python3 spawn _ npc . py","title":"\u968f\u673a \u8def\u7ebf"},{"location":"carla_ad_demo/#_4","text":"\u8981 \u4f7f\u7528 \u9884\u5b9a \u4e49 \u573a\u666f \u6267\u884c \u6f14\u793a \uff0c \u8bf7 \u5728 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS1 roslaunch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch # ROS2 ros2 launch carla _ ad _ demo carla _ ad _ demo _ with _ scenario . launch . py \u5728 RVIZ Carla \u63d2\u4ef6 \u4e2d \u9009\u62e9 \u793a\u4f8b \u573a\u666f \u201c FollowLeadingVehicle \u201d \uff0c \u7136\u540e \u6309 \u201c \u6267\u884c \u201d \u3002 \u81ea\u6211 \u8f66\u8f86 \u91cd\u65b0 \u5b9a\u4f4d \u5e76 \u5904\u7406 \u573a\u666f \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / available _ scenarios \u6765 \u6307\u5b9a \u81ea\u5df1 \u7684 \u573a\u666f \u3002 \u542f\u52a8 \u6587\u4ef6 \u663e\u793a \u4e86 \u5982\u4f55 \u6267\u884c \u6b64 \u64cd\u4f5c \u7684 \u793a\u4f8b \uff1a < node pkg = \" rostopic \" type = \" rostopic \" name = \" publish _ scenarios \" args = \" pub / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList ' { ' scenarios ' : [ { ' name ' : ' FollowLeadingVehicle ' , ' scenario _ file ' : ' $ ( find carla _ ad _ demo ) / config / FollowLeadingVehicle . xosc ' } ] } ' - l \" / >","title":"\u573a\u666f \u6267\u884c"},{"location":"carla_manual_control/","text":"Carla \u624b\u52a8 \u63a7\u5236 CARLA \u624b\u52a8 \u63a7\u5236 \u5305 \u662f \u4e0e Carla \u4e00\u8d77 \u6253\u5305 \u7684 manual _ control . py \u811a\u672c \u7684 \u4ec5 ROS \u7248\u672c \u3002 \u6240\u6709 \u6570\u636e \u5747 \u901a\u8fc7 ROS \u4e3b\u9898 \u63a5\u6536 \u3002 \u9700\u6c42 \u8fd0\u884c \u5305 \u9700\u6c42 \u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ manual _ control \uff0c \u9700\u8981 \u5c06 \u4e00\u4e9b \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6709\u5173 \u5982\u4f55 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \u5bf9\u8c61 \uff09 \uff1a to display an image : \u89d2\u8272 \u540d\u4e3a rgb _ view \u548c \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e3a 800x600 \u7684 \u76f8\u673a \u3002 to display the current position : \u5177\u6709 \u89d2\u8272 \u540d\u79f0 gnss \u7684 GNSS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5177\u6709 \u89d2\u8272 \u540d odometry \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on lane invasions : \u5177\u6709 \u89d2\u8272 \u540d lane _ invasion \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on collisons : \u5177\u6709 \u89d2\u8272 \u540d collision \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8fd0\u884c \u5305 \u8981 \u8fd0\u884c \u5305 \uff1a 1 . \u786e\u4fdd Carla \u6b63\u5728 \u8fd0\u884c \u3002 \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u751f\u6210 \u5bf9\u8c61 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u542f\u52a8 carla _ manual _ control \u8282\u70b9 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py 4 . \u8981 \u624b\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u8bf7 \u6309 \u201c B \u201d \u3002 \u6309 \u201c H \u201d \u67e5\u770b \u8bf4\u660e \u3002 \u6216\u8005 \uff0c \u5c06 \u4e0a\u8ff0 \u6240\u6709 \u547d\u4ee4 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u5355\u72ec \u7684 \u542f\u52a8 \u6587\u4ef6 \uff0c \u5e76 \u53ef\u4ee5 \u901a\u8fc7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u540c\u65f6 \u8fd0\u884c \uff1a # 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","title":"Carla \u624b\u52a8 \u63a7\u5236"},{"location":"carla_manual_control/#carla","text":"CARLA \u624b\u52a8 \u63a7\u5236 \u5305 \u662f \u4e0e Carla \u4e00\u8d77 \u6253\u5305 \u7684 manual _ control . py \u811a\u672c \u7684 \u4ec5 ROS \u7248\u672c \u3002 \u6240\u6709 \u6570\u636e \u5747 \u901a\u8fc7 ROS \u4e3b\u9898 \u63a5\u6536 \u3002 \u9700\u6c42 \u8fd0\u884c \u5305","title":"Carla \u624b\u52a8 \u63a7\u5236"},{"location":"carla_manual_control/#_1","text":"\u4e3a\u4e86 \u80fd\u591f \u4f7f\u7528 carla _ manual _ control \uff0c \u9700\u8981 \u5c06 \u4e00\u4e9b \u7279\u5b9a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6709\u5173 \u5982\u4f55 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u751f\u6210 \u5bf9\u8c61 \u5bf9\u8c61 \uff09 \uff1a to display an image : \u89d2\u8272 \u540d\u4e3a rgb _ view \u548c \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e3a 800x600 \u7684 \u76f8\u673a \u3002 to display the current position : \u5177\u6709 \u89d2\u8272 \u540d\u79f0 gnss \u7684 GNSS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5177\u6709 \u89d2\u8272 \u540d odometry \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on lane invasions : \u5177\u6709 \u89d2\u8272 \u540d lane _ invasion \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 to get a notification on collisons : \u5177\u6709 \u89d2\u8272 \u540d collision \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002","title":"\u9700\u6c42"},{"location":"carla_manual_control/#_2","text":"\u8981 \u8fd0\u884c \u5305 \uff1a 1 . \u786e\u4fdd Carla \u6b63\u5728 \u8fd0\u884c \u3002 \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u751f\u6210 \u5bf9\u8c61 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u542f\u52a8 carla _ manual _ control \u8282\u70b9 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py 4 . \u8981 \u624b\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u8bf7 \u6309 \u201c B \u201d \u3002 \u6309 \u201c H \u201d \u67e5\u770b \u8bf4\u660e \u3002 \u6216\u8005 \uff0c \u5c06 \u4e0a\u8ff0 \u6240\u6709 \u547d\u4ee4 \u7ec4\u5408 \u5408\u6210 \u7ec4\u5408\u6210 \u4e00\u4e2a \u5355\u72ec \u7684 \u542f\u52a8 \u6587\u4ef6 \uff0c \u5e76 \u53ef\u4ee5 \u901a\u8fc7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u540c\u65f6 \u8fd0\u884c \uff1a # 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","title":"\u8fd0\u884c \u5305"},{"location":"carla_plugin/","text":"\u865a\u5e7b \u5f15\u64ce \u7684 Carla \u63d2\u4ef6 \u5404\u4e2a \u7c7b \u7684 \u7ee7\u627f \u5173\u7cfb \u56fe \uff1a C++ \u6587\u6863","title":"Carla plugin"},{"location":"carla_plugin/#carla","text":"\u5404\u4e2a \u7c7b \u7684 \u7ee7\u627f \u5173\u7cfb \u56fe \uff1a C++ \u6587\u6863","title":"\u865a\u5e7b \u5f15\u64ce \u7684 Carla \u63d2\u4ef6"},{"location":"carla_ros_scenario_runner/","text":"Carla ROS Scenario Runner The CARLA ROS Scenario Runner \u5305 \u662f \u4e00\u4e2a \u5305\u88c5 \u5668 \uff0c \u7528\u4e8e \u901a\u8fc7 ROS \u4f7f\u7528 CARLA Scenario Runner \u6267\u884c OpenScenarios \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u4f7f\u7528 ROS Scenario Runner \u8fd0\u884c ROS Scenario Runner ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u670d\u52a1 \u53d1\u5e03 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u6309\u7167 Scenario Runner \u5165\u95e8 \u201d \u6559\u7a0b \u5b89\u88c5 Scenario Runner \u3002 \u5b89\u88c5 Python \u6a21\u5757 Pexpect : sudo apt install python - pexpect \u4f7f\u7528 ROS Scenario Runner ROS Scenario Runner \u6700\u597d \u5728 rviz _ carla _ plugin \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u652f\u6301 \u66f4\u6539 \u5730\u56fe \u3002 \u6bcf\u4e2a \u573a\u666f \u90fd \u9700\u8981 \u4f7f\u7528 \u5f53\u524d \u6d3b\u52a8 \u7684 \u5730\u56fe \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \u573a\u666f \u3002 \u7279\u522b \u91cd\u8981 \u7684 \u662f ROS \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \uff1a < Controller name = \" EgoVehicleAgent \" > < Properties > < Property name = \" module \" value = \" carla _ ros _ scenario _ runner . ros _ vehicle _ control \" / > < Property name = \" launch \" value = \" carla _ ad _ agent . launch \" / > < Property name = \" launch - package \" value = \" carla _ ad _ agent \" / > < Property name = \" path _ topic _ name \" value = \" waypoints \" / > < / Properties > < / Controller > \u4e0a\u9762 \u7684 \u4ee3\u7801 \u793a\u4f8b \u663e\u793a \u4e86 \u4e00\u4e2a \u6b63\u5728 \u542f\u52a8 \u7684 carla _ ad _ agent \u5b9e\u4f8b \u3002 \u4efb\u4f55 \u9644\u52a0 \u5185\u5bb9 < Property > \u90fd \u5e94 \u4f5c\u4e3a ROS \u53c2\u6570 \u9644\u52a0 \uff08 \u540d\u79f0 : = \u503c \uff09 \u3002 \u8fd0\u884c ROS Scenario Runner 1 . \u8fd0\u884c ROS Scenario Runner \u5305 \uff1a # ROS 1 roslaunch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch scenario _ runner _ path : = < path _ to _ scenario _ runner > # ROS 2 ros2 launch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch . py scenario _ runner _ path : = < path _ to _ scenario _ runner > 2 . \u8fd0\u884c \u573a\u666f \uff1a # ROS 1 rosservice call / scenario _ runner / execute _ scenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \" # ROS 2 ros2 service call / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / srv / ExecuteScenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \" ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u670d\u52a1 \u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types . ExecuteScenario \u6267\u884c \u4e00\u4e2a \u573a\u666f \u3002 \u5982\u679c \u5f53\u524d \u6b63\u5728 \u8fd0\u884c \u53e6 \u4e00\u4e2a \u573a\u666f \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / status carla _ ros _ scenario _ runner _ types . CarlaScenarioRunnerStatus \u573a\u666f \u8fd0\u884c \u5668 \u6267\u884c \u7684 \u5f53\u524d \u72b6\u6001 \uff08 \u7531 rviz _ carla _ plugin \u4f7f\u7528 \uff09 \u63a7\u5236 \u63a7\u5236\u5668 ros _ vehicle _ control \u63d0\u4f9b \u4ee5\u4e0b \u4e3b\u9898 \uff1a \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs . Path \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u8def\u5f84 \u3002 \u6ce8 \uff1a \u53ef\u4ee5 \u901a\u8fc7 \u4fee\u6539 \u53c2\u6570 path _ topic _ name \u6765 \u66f4\u6539 \u4e3b\u9898 \u540d\u79f0 / carla / < ROLE NAME > / target _ speed std _ msgs . Float64 \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u76ee\u6807 \u901f\u5ea6","title":"Carla ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#carla-ros-scenario-runner","text":"The CARLA ROS Scenario Runner \u5305 \u662f \u4e00\u4e2a \u5305\u88c5 \u5668 \uff0c \u7528\u4e8e \u901a\u8fc7 ROS \u4f7f\u7528 CARLA Scenario Runner \u6267\u884c OpenScenarios \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u4f7f\u7528 ROS Scenario Runner \u8fd0\u884c ROS Scenario Runner ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u670d\u52a1 \u53d1\u5e03","title":"Carla ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#_1","text":"\u6309\u7167 Scenario Runner \u5165\u95e8 \u201d \u6559\u7a0b \u5b89\u88c5 Scenario Runner \u3002 \u5b89\u88c5 Python \u6a21\u5757 Pexpect : sudo apt install python - pexpect","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"carla_ros_scenario_runner/#ros-scenario-runner","text":"ROS Scenario Runner \u6700\u597d \u5728 rviz _ carla _ plugin \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u652f\u6301 \u66f4\u6539 \u5730\u56fe \u3002 \u6bcf\u4e2a \u573a\u666f \u90fd \u9700\u8981 \u4f7f\u7528 \u5f53\u524d \u6d3b\u52a8 \u7684 \u5730\u56fe \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u793a\u4f8b \u573a\u666f \u3002 \u7279\u522b \u91cd\u8981 \u7684 \u662f ROS \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \uff1a < Controller name = \" EgoVehicleAgent \" > < Properties > < Property name = \" module \" value = \" carla _ ros _ scenario _ runner . ros _ vehicle _ control \" / > < Property name = \" launch \" value = \" carla _ ad _ agent . launch \" / > < Property name = \" launch - package \" value = \" carla _ ad _ agent \" / > < Property name = \" path _ topic _ name \" value = \" waypoints \" / > < / Properties > < / Controller > \u4e0a\u9762 \u7684 \u4ee3\u7801 \u793a\u4f8b \u663e\u793a \u4e86 \u4e00\u4e2a \u6b63\u5728 \u542f\u52a8 \u7684 carla _ ad _ agent \u5b9e\u4f8b \u3002 \u4efb\u4f55 \u9644\u52a0 \u5185\u5bb9 < Property > \u90fd \u5e94 \u4f5c\u4e3a ROS \u53c2\u6570 \u9644\u52a0 \uff08 \u540d\u79f0 : = \u503c \uff09 \u3002","title":"\u4f7f\u7528 ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#ros-scenario-runner_1","text":"1 . \u8fd0\u884c ROS Scenario Runner \u5305 \uff1a # ROS 1 roslaunch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch scenario _ runner _ path : = < path _ to _ scenario _ runner > # ROS 2 ros2 launch carla _ ros _ scenario _ runner carla _ ros _ scenario _ runner . launch . py scenario _ runner _ path : = < path _ to _ scenario _ runner > 2 . \u8fd0\u884c \u573a\u666f \uff1a # ROS 1 rosservice call / scenario _ runner / execute _ scenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \" # ROS 2 ros2 service call / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / srv / ExecuteScenario \" { ' scenario ' : { ' scenario _ file ' : ' < full _ path _ to _ openscenario _ file > ' } } \"","title":"\u8fd0\u884c ROS Scenario Runner"},{"location":"carla_ros_scenario_runner/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_ros_scenario_runner/#_2","text":"\u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types . ExecuteScenario \u6267\u884c \u4e00\u4e2a \u573a\u666f \u3002 \u5982\u679c \u5f53\u524d \u6b63\u5728 \u8fd0\u884c \u53e6 \u4e00\u4e2a \u573a\u666f \uff0c \u5b83 \u5c06 \u505c\u6b62 \u3002","title":"\u670d\u52a1"},{"location":"carla_ros_scenario_runner/#_3","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / scenario _ runner / status carla _ ros _ scenario _ runner _ types . CarlaScenarioRunnerStatus \u573a\u666f \u8fd0\u884c \u5668 \u6267\u884c \u7684 \u5f53\u524d \u72b6\u6001 \uff08 \u7531 rviz _ carla _ plugin \u4f7f\u7528 \uff09 \u63a7\u5236 \u63a7\u5236\u5668 ros _ vehicle _ control \u63d0\u4f9b \u4ee5\u4e0b \u4e3b\u9898 \uff1a \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / waypoints nav _ msgs . Path \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u8def\u5f84 \u3002 \u6ce8 \uff1a \u53ef\u4ee5 \u901a\u8fc7 \u4fee\u6539 \u53c2\u6570 path _ topic _ name \u6765 \u66f4\u6539 \u4e3b\u9898 \u540d\u79f0 / carla / < ROLE NAME > / target _ speed std _ msgs . Float64 \u573a\u666f \u4e2d \u5b9a\u4e49 \u7684 \u76ee\u6807 \u901f\u5ea6","title":"\u53d1\u5e03"},{"location":"carla_spawn_objects/","text":"Carla \u751f\u6210 \u5bf9\u8c61 carla _ spawn _ objects \u5305 \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff09 \u5e76 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u5b83\u4eec \u4e0a \u3002 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u521b\u5efa \u914d\u7f6e \u751f\u6210 \u8f66\u8f86 \u8f66\u8f86 \u518d \u751f\u6210 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u5bf9\u8c61 \u53ca\u5176 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u901a\u8fc7 . json \u6587\u4ef6 \u5b9a\u4e49 \u3002 \u8be5 \u6587\u4ef6 \u7684 \u9ed8\u8ba4 \u4f4d\u7f6e \u5728 carla _ spawn _ objects / config / objects . json . \u8981 \u66f4\u6539 \u4f4d\u7f6e \uff0c \u8bf7 \u5728 \u542f\u52a8 \u5305\u65f6 \u901a\u8fc7 \u79c1\u6709 ROS \u53c2\u6570 objects _ definition _ file \u4f20\u9012 \u6587\u4ef6 \u8def\u5f84 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch objects _ definition _ file : = path / to / objects . json # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py objects _ definition _ file : = path / to / objects . json \u521b\u5efa \u914d\u7f6e \u60a8 \u53ef\u4ee5 \u5728 ros - bridge repository \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u793a\u4f8b \uff0c \u5e76 \u6309\u7167 \u6b64 \u5927\u7eb2 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \uff1a { \" objects \" : [ { \" type \" : \" < SENSOR - TYPE > \" , \" id \" : \" < NAME > \" , \" spawn _ point \" : { \" x \" : 0.0 , \" y \" : 0.0 , \" z \" : 0.0 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : 0.0 } , < ADDITIONAL - SENSOR - ATTRIBUTES > } , { \" type \" : \" < VEHICLE - TYPE > \" , \" id \" : \" < VEHICLE - NAME > \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , \" sensors \" : [ < SENSORS - TO - ATTACH - TO - VEHICLE > ] } ... ] } \u7b14\u8bb0 \u8bf7 \u8bb0\u4f4f \uff0c \u76f4\u63a5 \u5b9a\u4e49 \u4f4d\u7f6e \u65f6 \uff0c ROS \u4f7f\u7528 \u53f3\u624b \u7cfb\u7edf \u3002 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u5747 \u6309\u7167 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u63cf\u8ff0 \u8fdb\u884c \u5b9a\u4e49 \u3002 \u751f\u6210 \u8f66\u8f86 \u5982\u679c \u6ca1\u6709 \u5b9a\u4e49 \u7279\u5b9a \u7684 \u751f\u6210 \u70b9 \uff0c \u8f66\u8f86 \u5c06 \u5728 \u968f\u673a \u4f4d\u7f6e \u751f\u6210 \u3002 \u8981 \u5b9a\u4e49 \u8f66\u8f86 \u751f\u6210 \u7684 \u4f4d\u7f6e \uff0c \u6709 \u4e24\u79cd \u9009\u62e9 \uff1a \u5c06 \u6240 \u9700 \u4f4d\u7f6e \u4f20\u9012 \u7ed9 ROS \u53c2\u6570 spawn _ point _ < VEHICLE - NAME > \u3002 < VEHICLE - NAME > \u5c06 \u662f \u60a8 \u5728 . json \u6587\u4ef6 \u4e2d \u63d0\u4f9b \u7684 \u8f66\u8f86 id \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u521d\u59cb \u4f4d\u7f6e \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , } \u8f66\u8f86 \u518d \u751f\u6210 \u901a\u8fc7 \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / < CONTROLLER _ ID > / initialpose \uff0c \u8f66\u8f86 \u53ef\u4ee5 \u5728 \u4eff\u771f \u671f\u95f4 \u91cd\u751f \u5230 \u4e0d\u540c \u7684 \u4f4d\u7f6e \u3002 \u8981 \u4f7f\u7528 \u6b64 \u529f\u80fd \uff1a \u5c06 actor . pseudo . control \u4f2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9644\u52a0 \u5230 . json \u6587\u4ef6 \u4e2d \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u7528\u4e8e \u53d1\u5e03 \u5230 \u4e3b\u9898 \u7684 < CONTROLLER _ ID > \u503c \u5177\u6709 \u76f8\u540c \u7684 id \u503c \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" sensors \" : [ { \" type \" : \" actor . pseudo . control \" , \" id \" : \" control \" } ] } \u542f\u52a8 set _ inital _ pose \u8282\u70b9 \uff0c \u5c06 < CONTROLLER _ ID > \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 ROS \u53c2\u6570 controller _ id \uff08 \u9ed8\u8ba4 = ' control ' \uff09 \uff1a roslaunch carla _ spawn _ objects set _ initial _ pose . launch controller _ id : = < CONTROLLER _ ID > \u53d1\u5e03 \u6d88\u606f \u4ee5 \u8bbe\u7f6e \u65b0 \u4f4d\u7f6e \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u4f7f\u7528 RVIZ \u754c\u9762 \u4e2d \u63d0\u4f9b \u7684 2D Pose Estimate \u6309\u94ae \u3002 \u7136\u540e \uff0c \u60a8 \u53ef\u4ee5 \u5355\u51fb \u5730\u56fe \u7684 \u89c6\u53e3 \u4ee5 \u5728 \u8be5 \u4f4d\u7f6e \u91cd\u751f \u3002 \u8fd9 \u5c06 \u5220\u9664 \u5f53\u524d ego _ vehicle \u5bf9\u8c61 \u5e76 \u5728 \u6307\u5b9a \u4f4d\u7f6e \u91cd\u65b0 \u751f\u6210 \u5b83 \u3002 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u521d\u59cb \u4f4d\u7f6e \u5e94 \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \uff0c \u5982 \u4e0a\u9762 \u7684 \u8f66\u8f86 \u6240\u793a \u3002 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u70b9 \u88ab \u8ba4\u4e3a \u662f \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u7684 \u3002 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u73b0\u6709 \u7684 \u8f66\u8f86 \u4e0a \u3002 \u4e3a\u6b64 \uff1a \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 sensor . pseudo . actor _ list \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u8bbf\u95ee \u73b0\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002 ... { \" type \" : \" sensor . pseudo . actor _ list \" , \" id \" : \" actor _ list \" } , \u6839\u636e \u9700\u8981 \u5b9a\u4e49 \u5176\u4f59 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u542f\u52a8 \u8282\u70b9 \u5e76 \u5c06 spawn _ sensors _ only \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u4e3a True \u3002 \u8fd9 \u5c06 \u68c0\u67e5 \u4e0e \u6587\u4ef6 \u4e2d \u6307\u5b9a \u7684 \u89d2\u8272 \u76f8\u540c id \u548c type \u7684 \u89d2\u8272 \u662f\u5426 \u5df2 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \uff0c \u5982\u679c \u662f \uff0c \u5219 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u8be5 \u89d2\u8272 \u3002 # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ sensors _ only : = True # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ sensors _ only : = True","title":"Carla \u751f\u6210 \u5bf9\u8c61"},{"location":"carla_spawn_objects/#carla","text":"carla _ spawn _ objects \u5305 \u7528\u4e8e \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff09 \u5e76 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u5b83\u4eec \u4e0a \u3002 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u521b\u5efa \u914d\u7f6e \u751f\u6210 \u8f66\u8f86 \u8f66\u8f86 \u518d \u751f\u6210 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a","title":"Carla \u751f\u6210 \u5bf9\u8c61"},{"location":"carla_spawn_objects/#_1","text":"\u5bf9\u8c61 \u53ca\u5176 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u901a\u8fc7 . json \u6587\u4ef6 \u5b9a\u4e49 \u3002 \u8be5 \u6587\u4ef6 \u7684 \u9ed8\u8ba4 \u4f4d\u7f6e \u5728 carla _ spawn _ objects / config / objects . json . \u8981 \u66f4\u6539 \u4f4d\u7f6e \uff0c \u8bf7 \u5728 \u542f\u52a8 \u5305\u65f6 \u901a\u8fc7 \u79c1\u6709 ROS \u53c2\u6570 objects _ definition _ file \u4f20\u9012 \u6587\u4ef6 \u8def\u5f84 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch objects _ definition _ file : = path / to / objects . json # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py objects _ definition _ file : = path / to / objects . json","title":"\u914d\u7f6e \u548c \u4f20\u611f\u5668 \u8bbe\u7f6e"},{"location":"carla_spawn_objects/#_2","text":"\u60a8 \u53ef\u4ee5 \u5728 ros - bridge repository \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u793a\u4f8b \uff0c \u5e76 \u6309\u7167 \u6b64 \u5927\u7eb2 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u914d\u7f6e \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \uff1a { \" objects \" : [ { \" type \" : \" < SENSOR - TYPE > \" , \" id \" : \" < NAME > \" , \" spawn _ point \" : { \" x \" : 0.0 , \" y \" : 0.0 , \" z \" : 0.0 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : 0.0 } , < ADDITIONAL - SENSOR - ATTRIBUTES > } , { \" type \" : \" < VEHICLE - TYPE > \" , \" id \" : \" < VEHICLE - NAME > \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , \" sensors \" : [ < SENSORS - TO - ATTACH - TO - VEHICLE > ] } ... ] } \u7b14\u8bb0 \u8bf7 \u8bb0\u4f4f \uff0c \u76f4\u63a5 \u5b9a\u4e49 \u4f4d\u7f6e \u65f6 \uff0c ROS \u4f7f\u7528 \u53f3\u624b \u7cfb\u7edf \u3002 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u5747 \u6309\u7167 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u63cf\u8ff0 \u8fdb\u884c \u5b9a\u4e49 \u3002","title":"\u521b\u5efa \u914d\u7f6e"},{"location":"carla_spawn_objects/#_3","text":"\u5982\u679c \u6ca1\u6709 \u5b9a\u4e49 \u7279\u5b9a \u7684 \u751f\u6210 \u70b9 \uff0c \u8f66\u8f86 \u5c06 \u5728 \u968f\u673a \u4f4d\u7f6e \u751f\u6210 \u3002 \u8981 \u5b9a\u4e49 \u8f66\u8f86 \u751f\u6210 \u7684 \u4f4d\u7f6e \uff0c \u6709 \u4e24\u79cd \u9009\u62e9 \uff1a \u5c06 \u6240 \u9700 \u4f4d\u7f6e \u4f20\u9012 \u7ed9 ROS \u53c2\u6570 spawn _ point _ < VEHICLE - NAME > \u3002 < VEHICLE - NAME > \u5c06 \u662f \u60a8 \u5728 . json \u6587\u4ef6 \u4e2d \u63d0\u4f9b \u7684 \u8f66\u8f86 id \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ point _ < VEHICLE - NAME > : = x , y , z , roll , pitch , yaw \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u521d\u59cb \u4f4d\u7f6e \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" spawn _ point \" : { \" x \" : - 11.1 , \" y \" : 138.5 , \" z \" : 0.2 , \" roll \" : 0.0 , \" pitch \" : 0.0 , \" yaw \" : - 178.7 } , }","title":"\u751f\u6210 \u8f66\u8f86"},{"location":"carla_spawn_objects/#_4","text":"\u901a\u8fc7 \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / < CONTROLLER _ ID > / initialpose \uff0c \u8f66\u8f86 \u53ef\u4ee5 \u5728 \u4eff\u771f \u671f\u95f4 \u91cd\u751f \u5230 \u4e0d\u540c \u7684 \u4f4d\u7f6e \u3002 \u8981 \u4f7f\u7528 \u6b64 \u529f\u80fd \uff1a \u5c06 actor . pseudo . control \u4f2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9644\u52a0 \u5230 . json \u6587\u4ef6 \u4e2d \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u7528\u4e8e \u53d1\u5e03 \u5230 \u4e3b\u9898 \u7684 < CONTROLLER _ ID > \u503c \u5177\u6709 \u76f8\u540c \u7684 id \u503c \uff1a { \" type \" : \" vehicle . * \" , \" id \" : \" ego _ vehicle \" , \" sensors \" : [ { \" type \" : \" actor . pseudo . control \" , \" id \" : \" control \" } ] } \u542f\u52a8 set _ inital _ pose \u8282\u70b9 \uff0c \u5c06 < CONTROLLER _ ID > \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 ROS \u53c2\u6570 controller _ id \uff08 \u9ed8\u8ba4 = ' control ' \uff09 \uff1a roslaunch carla _ spawn _ objects set _ initial _ pose . launch controller _ id : = < CONTROLLER _ ID > \u53d1\u5e03 \u6d88\u606f \u4ee5 \u8bbe\u7f6e \u65b0 \u4f4d\u7f6e \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u4f7f\u7528 RVIZ \u754c\u9762 \u4e2d \u63d0\u4f9b \u7684 2D Pose Estimate \u6309\u94ae \u3002 \u7136\u540e \uff0c \u60a8 \u53ef\u4ee5 \u5355\u51fb \u5730\u56fe \u7684 \u89c6\u53e3 \u4ee5 \u5728 \u8be5 \u4f4d\u7f6e \u91cd\u751f \u3002 \u8fd9 \u5c06 \u5220\u9664 \u5f53\u524d ego _ vehicle \u5bf9\u8c61 \u5e76 \u5728 \u6307\u5b9a \u4f4d\u7f6e \u91cd\u65b0 \u751f\u6210 \u5b83 \u3002","title":"\u8f66\u8f86 \u518d \u751f\u6210"},{"location":"carla_spawn_objects/#_5","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u521d\u59cb \u4f4d\u7f6e \u5e94 \u76f4\u63a5 \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \uff0c \u5982 \u4e0a\u9762 \u7684 \u8f66\u8f86 \u6240\u793a \u3002 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u70b9 \u88ab \u8ba4\u4e3a \u662f \u76f8\u5bf9 \u4e8e \u8f66\u8f86 \u7684 \u3002","title":"\u751f\u6210 \u4f20\u611f\u5668"},{"location":"carla_spawn_objects/#_6","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u73b0\u6709 \u7684 \u8f66\u8f86 \u4e0a \u3002 \u4e3a\u6b64 \uff1a \u5728 . json \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 sensor . pseudo . actor _ list \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u8bbf\u95ee \u73b0\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002 ... { \" type \" : \" sensor . pseudo . actor _ list \" , \" id \" : \" actor _ list \" } , \u6839\u636e \u9700\u8981 \u5b9a\u4e49 \u5176\u4f59 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u542f\u52a8 \u8282\u70b9 \u5e76 \u5c06 spawn _ sensors _ only \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u4e3a True \u3002 \u8fd9 \u5c06 \u68c0\u67e5 \u4e0e \u6587\u4ef6 \u4e2d \u6307\u5b9a \u7684 \u89d2\u8272 \u76f8\u540c id \u548c type \u7684 \u89d2\u8272 \u662f\u5426 \u5df2 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \uff0c \u5982\u679c \u662f \uff0c \u5219 \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9644\u52a0 \u5230 \u8be5 \u89d2\u8272 \u3002 # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch spawn _ sensors _ only : = True # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py spawn _ sensors _ only : = True","title":"\u5c06 \u4f20\u611f\u5668 \u5b89\u88c5 \u5230 \u73b0\u6709 \u8f66\u8f86 \u4e0a"},{"location":"carla_twist_to_control/","text":"Carla \u626d\u8f6c \u63a7\u5236 carla _ twist _ to _ control \u5305 \u5c06 geometry _ msgs . Twist \u8f6c\u6362 \u4e3a carla _ msgs . CarlaEgoVehicleControl \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ info carla _ msgs . CarlaEgoVehicleInfo \u81ea\u6211 \u8f66\u8f86 \u4fe1\u606f \uff0c \u63a5\u6536 \u6700\u5927 \u8f6c\u5411 \u89d2\u5ea6 \u3002 / carla / < ROLE NAME > / twist geometry _ msgs . Twist \u626d\u8f6c \u8f6c\u6362 \u3002 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs . CarlaEgoVehicleControl \u8f6c\u6362 \u540e \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002","title":"Carla \u626d\u8f6c \u63a7\u5236"},{"location":"carla_twist_to_control/#carla","text":"carla _ twist _ to _ control \u5305 \u5c06 geometry _ msgs . Twist \u8f6c\u6362 \u4e3a carla _ msgs . CarlaEgoVehicleControl \u3002","title":"Carla \u626d\u8f6c \u63a7\u5236"},{"location":"carla_twist_to_control/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_twist_to_control/#_1","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ info carla _ msgs . CarlaEgoVehicleInfo \u81ea\u6211 \u8f66\u8f86 \u4fe1\u606f \uff0c \u63a5\u6536 \u6700\u5927 \u8f6c\u5411 \u89d2\u5ea6 \u3002 / carla / < ROLE NAME > / twist geometry _ msgs . Twist \u626d\u8f6c \u8f6c\u6362 \u3002","title":"\u8ba2\u9605"},{"location":"carla_twist_to_control/#_2","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ROLE NAME > / vehicle _ control _ cmd carla _ msgs . CarlaEgoVehicleControl \u8f6c\u6362 \u540e \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002","title":"\u53d1\u5e03"},{"location":"carla_waypoint/","text":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668 Carla \u822a\u70b9 \u53d1\u5e03 \u5668 \u4f7f \u822a\u70b9 \u8ba1\u7b97 \u53ef \u7528\u4e8e ROS \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \uff0c \u5e76 \u63d0\u4f9b \u67e5\u8be2 Carla \u822a\u70b9 \u7684 \u670d\u52a1 \u3002 \u8981 \u4e86\u89e3 \u6709\u5173 \u822a\u70b9 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u6587\u6863 \u3002 \u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668 \u8bbe\u5b9a \u76ee\u6807 \u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u670d\u52a1 \u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668 \u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch # ROS 2 ros2 launch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch . py \u8bbe\u5b9a \u76ee\u6807 \u5982\u679c \u53ef\u7528 \uff0c \u5219 \u4ece \u4e3b\u9898 / carla / < ROLE NAME > / goal \u4e2d \u8bfb\u53d6 \u76ee\u6807 \uff0c \u5426\u5219 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u751f\u6210 \u70b9 \u3002 \u8bbe\u7f6e \u76ee\u6807 \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u5355\u51fb RVIZ \u4e2d \u7684 \u201c 2D Nav Goal \u201d \u3002 \u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 Waypoint Publisher \u4e3a Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u89c4\u5212 \u8def\u7ebf \u3002 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u5b83 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u542f\u52a8 \u6587\u4ef6 \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ego vehicle name > / waypoints nav _ msgs / Path \u53d1\u5e03 \u8ba1\u7b97 \u51fa \u7684 \u8def\u7ebf \u670d\u52a1 \u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / carla _ waypoint _ publisher / < ego vehicle name > / get _ waypoint carla _ waypoint _ types / GetWaypoint \u83b7\u53d6 \u7279\u5b9a \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9 / carla _ waypoint _ publisher / < ego vehicle name > / get _ actor _ waypoint carla _ waypoint _ types / GetActorWaypoint \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u7684 \u822a\u70b9","title":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#carla","text":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668 \u4f7f \u822a\u70b9 \u8ba1\u7b97 \u53ef \u7528\u4e8e ROS \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \uff0c \u5e76 \u63d0\u4f9b \u67e5\u8be2 Carla \u822a\u70b9 \u7684 \u670d\u52a1 \u3002 \u8981 \u4e86\u89e3 \u6709\u5173 \u822a\u70b9 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u6587\u6863 \u3002 \u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668 \u8bbe\u5b9a \u76ee\u6807 \u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u53d1\u5e03 \u670d\u52a1","title":"Carla \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#_1","text":"\u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch # ROS 2 ros2 launch carla _ waypoint _ publisher carla _ waypoint _ publisher . launch . py","title":"\u8fd0\u884c \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#_2","text":"\u5982\u679c \u53ef\u7528 \uff0c \u5219 \u4ece \u4e3b\u9898 / carla / < ROLE NAME > / goal \u4e2d \u8bfb\u53d6 \u76ee\u6807 \uff0c \u5426\u5219 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u751f\u6210 \u70b9 \u3002 \u8bbe\u7f6e \u76ee\u6807 \u7684 \u9996\u9009 \u65b9\u6cd5 \u662f \u5355\u51fb RVIZ \u4e2d \u7684 \u201c 2D Nav Goal \u201d \u3002","title":"\u8bbe\u5b9a \u76ee\u6807"},{"location":"carla_waypoint/#_3","text":"Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u4f7f\u7528 Waypoint Publisher \u4e3a Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u89c4\u5212 \u8def\u7ebf \u3002 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u5b83 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u81ea\u52a8 \u9a7e\u9a76 \u6f14\u793a \u542f\u52a8 \u6587\u4ef6 \u3002","title":"\u4f7f\u7528 \u822a\u70b9 \u53d1\u5e03 \u5668"},{"location":"carla_waypoint/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"carla_waypoint/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < ego vehicle name > / waypoints nav _ msgs / Path \u53d1\u5e03 \u8ba1\u7b97 \u51fa \u7684 \u8def\u7ebf","title":"\u53d1\u5e03"},{"location":"carla_waypoint/#_5","text":"\u670d\u52a1 \u7c7b\u578b \u63cf\u8ff0 / carla _ waypoint _ publisher / < ego vehicle name > / get _ waypoint carla _ waypoint _ types / GetWaypoint \u83b7\u53d6 \u7279\u5b9a \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9 / carla _ waypoint _ publisher / < ego vehicle name > / get _ actor _ waypoint carla _ waypoint _ types / GetActorWaypoint \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u7684 \u822a\u70b9","title":"\u670d\u52a1"},{"location":"catalogue/","text":"Carla \u76ee\u5f55 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5e9e\u5927 \u7684 \u4e09\u7ef4 \u8d44\u4ea7 \u5e93\u6765 \u586b\u5145 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u7684 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u3002 \u4e09\u7ef4 \u8d44\u6e90 \u8d44\u6e90\u5e93 \u63d0\u4f9b \u4e86 \u5927\u91cf \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u7684 \u9884 \u6784\u5efa \u5730\u56fe \u3001 \u7528\u4e8e \u4ea4\u901a \u4eff\u771f \u7684 \u5404\u79cd \u8f66\u8f86 \u6a21\u578b \u4ee5\u53ca \u884c\u4eba \u548c \u5176\u4ed6 \u7ed3\u6784 \u6216 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6a21\u578b \uff0c \u8fd9\u4e9b \u6a21\u578b \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u4eff\u771f \u4e2d \u3002 \u8be5 \u76ee\u5f55 \u8bb0\u5f55 \u4e86 \u53ef \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 \u6240\u6709 \u4e09\u7ef4 \u8d44\u6e90 \u3002 \u8f66\u8f86 \u76ee\u5f55 \u884c\u4eba \u76ee\u5f55 \u9053\u5177 \u76ee\u5f55 \u5730\u56fe Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b 10 \u4e2a\u9884 \u6784\u5efa \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff0c \u4e3a \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u81ea\u4e3b \u667a\u80fd \u4f53 \u63d0\u4f9b \u4e86 \u591a\u79cd \u73af\u5883 \u3002 \u57ce\u9547 \u6982\u51b5 Town01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 Town02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 Town03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 Town04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 Town11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u7528\u4f5c \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u7684 \u6982\u5ff5 \u8bc1\u660e \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 Town13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 Town15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002 \u8f66\u8f86 Carla \u63d0\u4f9b \u5404\u79cd \u8f66\u8f86 \uff0c \u4ee5\u53ca \u73b0\u5b9e \u4e16\u754c \u6c7d\u8f66 \u3001 \u5361\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4fdd\u771f \u9ad8\u4fdd\u771f \u6a21\u578b \uff0c \u7528\u4e8e \u5728 \u4eff\u771f \u4e2d \u590d\u5236 \u4ea4\u901a \u3002 \u5728 \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u8f86 \u3002 \u884c\u4eba Carla \u7684 \u8d44\u4ea7 \u5e93 \u5305\u542b \u5404\u79cd \u884c\u4eba \uff0c \u53ef \u4eff\u771f \u667a\u80fd \u4f53 \u5468\u56f4 \u4e09\u7ef4 \u73af\u5883 \u4e2d \u7684 \u4eba\u6d41 \u6d41\u91cf \u4eba\u6d41\u91cf \u3002 \u5728 \u884c\u4eba \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u60f3\u8981 \u7684 \u884c\u4eba \u3002 \u9053\u5177 Carla \u7684 \u9053\u5177 \u4eff\u771f \u4e86 \u60a8 \u53ef\u80fd \u5728 \u9053\u8def \u4e0a \u6216 \u9053\u8def \u9644\u8fd1 \u53d1\u73b0 \u7684 \u5404\u79cd \u7ed3\u6784 \u548c \u7269\u54c1 \uff0c \u4f8b\u5982 \u4fe1\u606f \u4ead \u3001 \u96d5\u50cf \u3001 \u957f\u51f3 \u3001 \u76d2\u5b50 \u3001 \u5783\u573e \u5783\u573e\u7bb1 \u3001 \u788e\u7247 \u6216 \u5783\u573e \u3002 \u8fd9\u4e9b \u9053\u5177 \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u5730 \u653e\u7f6e \u5728 \u4eff\u771f \u4e2d \u7684 \u4efb\u4f55 \u4f4d\u7f6e \u3002 \u5728 \u9053\u5177 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u7684 \u9053\u5177 \u3002","title":"Carla \u76ee\u5f55"},{"location":"catalogue/#carla","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5e9e\u5927 \u7684 \u4e09\u7ef4 \u8d44\u4ea7 \u5e93\u6765 \u586b\u5145 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u7684 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u3002 \u4e09\u7ef4 \u8d44\u6e90 \u8d44\u6e90\u5e93 \u63d0\u4f9b \u4e86 \u5927\u91cf \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u7684 \u9884 \u6784\u5efa \u5730\u56fe \u3001 \u7528\u4e8e \u4ea4\u901a \u4eff\u771f \u7684 \u5404\u79cd \u8f66\u8f86 \u6a21\u578b \u4ee5\u53ca \u884c\u4eba \u548c \u5176\u4ed6 \u7ed3\u6784 \u6216 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6a21\u578b \uff0c \u8fd9\u4e9b \u6a21\u578b \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u6dfb\u52a0 \u5230 \u60a8 \u7684 \u4eff\u771f \u4e2d \u3002 \u8be5 \u76ee\u5f55 \u8bb0\u5f55 \u4e86 \u53ef \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 \u6240\u6709 \u4e09\u7ef4 \u8d44\u6e90 \u3002 \u8f66\u8f86 \u76ee\u5f55 \u884c\u4eba \u76ee\u5f55 \u9053\u5177 \u76ee\u5f55","title":"Carla \u76ee\u5f55"},{"location":"catalogue/#_1","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b 10 \u4e2a\u9884 \u6784\u5efa \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff0c \u4e3a \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u81ea\u4e3b \u667a\u80fd \u4f53 \u63d0\u4f9b \u4e86 \u591a\u79cd \u73af\u5883 \u3002 \u57ce\u9547 \u6982\u51b5 Town01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 Town02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 Town03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 Town04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u3002 Town10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 Town11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u7528\u4f5c \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u7684 \u6982\u5ff5 \u8bc1\u660e \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 Town13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 Town15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002","title":"\u5730\u56fe"},{"location":"catalogue/#_2","text":"Carla \u63d0\u4f9b \u5404\u79cd \u8f66\u8f86 \uff0c \u4ee5\u53ca \u73b0\u5b9e \u4e16\u754c \u6c7d\u8f66 \u3001 \u5361\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4fdd\u771f \u9ad8\u4fdd\u771f \u6a21\u578b \uff0c \u7528\u4e8e \u5728 \u4eff\u771f \u4e2d \u590d\u5236 \u4ea4\u901a \u3002 \u5728 \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u8f86 \u3002","title":"\u8f66\u8f86"},{"location":"catalogue/#_3","text":"Carla \u7684 \u8d44\u4ea7 \u5e93 \u5305\u542b \u5404\u79cd \u884c\u4eba \uff0c \u53ef \u4eff\u771f \u667a\u80fd \u4f53 \u5468\u56f4 \u4e09\u7ef4 \u73af\u5883 \u4e2d \u7684 \u4eba\u6d41 \u6d41\u91cf \u4eba\u6d41\u91cf \u3002 \u5728 \u884c\u4eba \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u60f3\u8981 \u7684 \u884c\u4eba \u3002","title":"\u884c\u4eba"},{"location":"catalogue/#_4","text":"Carla \u7684 \u9053\u5177 \u4eff\u771f \u4e86 \u60a8 \u53ef\u80fd \u5728 \u9053\u8def \u4e0a \u6216 \u9053\u8def \u9644\u8fd1 \u53d1\u73b0 \u7684 \u5404\u79cd \u7ed3\u6784 \u548c \u7269\u54c1 \uff0c \u4f8b\u5982 \u4fe1\u606f \u4ead \u3001 \u96d5\u50cf \u3001 \u957f\u51f3 \u3001 \u76d2\u5b50 \u3001 \u5783\u573e \u5783\u573e\u7bb1 \u3001 \u788e\u7247 \u6216 \u5783\u573e \u3002 \u8fd9\u4e9b \u9053\u5177 \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u52a8\u6001 \u5730 \u653e\u7f6e \u5728 \u4eff\u771f \u4e2d \u7684 \u4efb\u4f55 \u4f4d\u7f6e \u3002 \u5728 \u9053\u5177 \u76ee\u5f55 \u4e2d \u6d4f\u89c8 \u5e76 \u9009\u62e9 \u60a8 \u7684 \u9053\u5177 \u3002","title":"\u9053\u5177"},{"location":"catalogue_pedestrians/","text":"\u884c\u4eba \u76ee\u5f55 \u6210\u5e74 \u6210\u5e74\u4eba \u6210\u5e74 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u53d8\u4f53 5 \u53d8\u4f53 6 \u6210\u5e74 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 3 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 4 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 5 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 6 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 7 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 8 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 9 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 10 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 11 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 12 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 13 \u53d8\u4f53 1 \u6210\u5e74 \u884c\u4eba - 14 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 15 \u53d8\u4f53 1 \u53d8\u4f53 2 \u5c0f\u5b69 \u5c0f\u5b69 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 3 \u53d8\u4f53 1 \u5c0f\u5b69 \u884c\u4eba - 4 \u53d8\u4f53 1 \u8b66\u5bdf \u8b66\u5bdf - 1 \u8b66\u5bdf - 2 \u6210\u5e74 \u6210\u5e74\u4eba \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0001 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0005 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0006 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 4 \u84dd\u56fe ID : walker . pedestrian.0007 \u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 5 \u84dd\u56fe ID : walker . pedestrian.0008 \u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0004 \u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0003 \u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0002 \u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0015 \u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0019 \u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0016 \u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0017 \u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0026 \u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0018 \u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0021 \u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0020 \u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0023 \u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0022 \u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0024 \u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0025 \u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0027 \u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0029 \u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0028 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0041 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0040 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0033 \u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 4 \u84dd\u56fe ID : walker . pedestrian.0031 \u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0034 \u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0038 \u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0035 \u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0036 \u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0037 \u6210\u5e74 \u884c\u4eba 13 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0039 \u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0042 \u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0043 \u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0044 \u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0047 \u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0046 Children Child pedestrian 1 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0011 Child pedestrian 1 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0010 Child pedestrian 1 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0009 Child pedestrian 2 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0014 Child pedestrian 2 - \u53d8\u4f53 2 \u84dd\u56fe ID : walker . pedestrian.0013 Child pedestrian 2 - \u53d8\u4f53 3 \u84dd\u56fe ID : walker . pedestrian.0012 Child pedestrian 3 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0048 Child pedestrian 4 - \u53d8\u4f53 1 \u84dd\u56fe ID : walker . pedestrian.0049 \u8b66\u5bdf \u8b66\u5bdf 1 \u84dd\u56fe ID : walker . pedestrian.0030 \u8b66\u5bdf 2 \u84dd\u56fe ID : walker . pedestrian.0032","title":"\u884c\u4eba \u76ee\u5f55"},{"location":"catalogue_pedestrians/#_1","text":"","title":"\u884c\u4eba \u76ee\u5f55"},{"location":"catalogue_pedestrians/#_2","text":"\u6210\u5e74 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u53d8\u4f53 5 \u53d8\u4f53 6 \u6210\u5e74 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 3 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 4 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 5 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 6 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 7 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 8 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 9 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 10 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u53d8\u4f53 4 \u6210\u5e74 \u884c\u4eba - 11 \u53d8\u4f53 1 \u53d8\u4f53 2 \u6210\u5e74 \u884c\u4eba - 12 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 13 \u53d8\u4f53 1 \u6210\u5e74 \u884c\u4eba - 14 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u6210\u5e74 \u884c\u4eba - 15 \u53d8\u4f53 1 \u53d8\u4f53 2","title":"\u6210\u5e74\u4eba"},{"location":"catalogue_pedestrians/#_3","text":"\u5c0f\u5b69 \u884c\u4eba - 1 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 2 \u53d8\u4f53 1 \u53d8\u4f53 2 \u53d8\u4f53 3 \u5c0f\u5b69 \u884c\u4eba - 3 \u53d8\u4f53 1 \u5c0f\u5b69 \u884c\u4eba - 4 \u53d8\u4f53 1","title":"\u5c0f\u5b69"},{"location":"catalogue_pedestrians/#_4","text":"\u8b66\u5bdf - 1 \u8b66\u5bdf - 2","title":"\u8b66\u5bdf"},{"location":"catalogue_pedestrians/#_5","text":"","title":"\u6210\u5e74\u4eba"},{"location":"catalogue_pedestrians/#1-1","text":"\u84dd\u56fe ID : walker . pedestrian.0001","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#1-2","text":"\u84dd\u56fe ID : walker . pedestrian.0005","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#1-3","text":"\u84dd\u56fe ID : walker . pedestrian.0006","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#1-4","text":"\u84dd\u56fe ID : walker . pedestrian.0007","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 4"},{"location":"catalogue_pedestrians/#1-5","text":"\u84dd\u56fe ID : walker . pedestrian.0008","title":"\u6210\u5e74 \u884c\u4eba 1 - \u53d8\u4f53 5"},{"location":"catalogue_pedestrians/#2-1","text":"\u84dd\u56fe ID : walker . pedestrian.0004","title":"\u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#2-2","text":"\u84dd\u56fe ID : walker . pedestrian.0003","title":"\u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#2-3","text":"\u84dd\u56fe ID : walker . pedestrian.0002","title":"\u6210\u5e74 \u884c\u4eba 2 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#3-1","text":"\u84dd\u56fe ID : walker . pedestrian.0015","title":"\u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#3-2","text":"\u84dd\u56fe ID : walker . pedestrian.0019","title":"\u6210\u5e74 \u884c\u4eba 3 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#4-1","text":"\u84dd\u56fe ID : walker . pedestrian.0016","title":"\u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#4-2","text":"\u84dd\u56fe ID : walker . pedestrian.0017","title":"\u6210\u5e74 \u884c\u4eba 4 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#5-1","text":"\u84dd\u56fe ID : walker . pedestrian.0026","title":"\u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#5-2","text":"\u84dd\u56fe ID : walker . pedestrian.0018","title":"\u6210\u5e74 \u884c\u4eba 5 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#6-1","text":"\u84dd\u56fe ID : walker . pedestrian.0021","title":"\u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#6-2","text":"\u84dd\u56fe ID : walker . pedestrian.0020","title":"\u6210\u5e74 \u884c\u4eba 6 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#7-1","text":"\u84dd\u56fe ID : walker . pedestrian.0023","title":"\u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#7-2","text":"\u84dd\u56fe ID : walker . pedestrian.0022","title":"\u6210\u5e74 \u884c\u4eba 7 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#8-1","text":"\u84dd\u56fe ID : walker . pedestrian.0024","title":"\u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#8-2","text":"\u84dd\u56fe ID : walker . pedestrian.0025","title":"\u6210\u5e74 \u884c\u4eba 8 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#9-1","text":"\u84dd\u56fe ID : walker . pedestrian.0027","title":"\u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#9-2","text":"\u84dd\u56fe ID : walker . pedestrian.0029","title":"\u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#9-3","text":"\u84dd\u56fe ID : walker . pedestrian.0028","title":"\u6210\u5e74 \u884c\u4eba 9 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#10-1","text":"\u84dd\u56fe ID : walker . pedestrian.0041","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#10-2","text":"\u84dd\u56fe ID : walker . pedestrian.0040","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#10-3","text":"\u84dd\u56fe ID : walker . pedestrian.0033","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#10-4","text":"\u84dd\u56fe ID : walker . pedestrian.0031","title":"\u6210\u5e74 \u884c\u4eba 10 - \u53d8\u4f53 4"},{"location":"catalogue_pedestrians/#11-1","text":"\u84dd\u56fe ID : walker . pedestrian.0034","title":"\u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#11-2","text":"\u84dd\u56fe ID : walker . pedestrian.0038","title":"\u6210\u5e74 \u884c\u4eba 11 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#12-1","text":"\u84dd\u56fe ID : walker . pedestrian.0035","title":"\u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#12-2","text":"\u84dd\u56fe ID : walker . pedestrian.0036","title":"\u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#12-3","text":"\u84dd\u56fe ID : walker . pedestrian.0037","title":"\u6210\u5e74 \u884c\u4eba 12 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#13-1","text":"\u84dd\u56fe ID : walker . pedestrian.0039","title":"\u6210\u5e74 \u884c\u4eba 13 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#14-1","text":"\u84dd\u56fe ID : walker . pedestrian.0042","title":"\u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#14-2","text":"\u84dd\u56fe ID : walker . pedestrian.0043","title":"\u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#14-3","text":"\u84dd\u56fe ID : walker . pedestrian.0044","title":"\u6210\u5e74 \u884c\u4eba 14 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#15-1","text":"\u84dd\u56fe ID : walker . pedestrian.0047","title":"\u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#15-2","text":"\u84dd\u56fe ID : walker . pedestrian.0046","title":"\u6210\u5e74 \u884c\u4eba 15 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#children","text":"","title":"Children"},{"location":"catalogue_pedestrians/#child-pedestrian-1-1","text":"\u84dd\u56fe ID : walker . pedestrian.0011","title":"Child pedestrian 1 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#child-pedestrian-1-2","text":"\u84dd\u56fe ID : walker . pedestrian.0010","title":"Child pedestrian 1 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#child-pedestrian-1-3","text":"\u84dd\u56fe ID : walker . pedestrian.0009","title":"Child pedestrian 1 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#child-pedestrian-2-1","text":"\u84dd\u56fe ID : walker . pedestrian.0014","title":"Child pedestrian 2 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#child-pedestrian-2-2","text":"\u84dd\u56fe ID : walker . pedestrian.0013","title":"Child pedestrian 2 - \u53d8\u4f53 2"},{"location":"catalogue_pedestrians/#child-pedestrian-2-3","text":"\u84dd\u56fe ID : walker . pedestrian.0012","title":"Child pedestrian 2 - \u53d8\u4f53 3"},{"location":"catalogue_pedestrians/#child-pedestrian-3-1","text":"\u84dd\u56fe ID : walker . pedestrian.0048","title":"Child pedestrian 3 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#child-pedestrian-4-1","text":"\u84dd\u56fe ID : walker . pedestrian.0049","title":"Child pedestrian 4 - \u53d8\u4f53 1"},{"location":"catalogue_pedestrians/#_6","text":"","title":"\u8b66\u5bdf"},{"location":"catalogue_pedestrians/#1","text":"\u84dd\u56fe ID : walker . pedestrian.0030","title":"\u8b66\u5bdf 1"},{"location":"catalogue_pedestrians/#2","text":"\u84dd\u56fe ID : walker . pedestrian.0032","title":"\u8b66\u5bdf 2"},{"location":"catalogue_props/","text":"\u9053\u5177 \u76ee\u5f55 \u5bb9\u5668 \u6876 \u6876 \u7bb1\u5b50 \u7bb1\u5b50 \u5e03\u5236 \u5bb9\u5668 \u5783\u573e \u5783\u573e\u7bb1 \u73bb\u7483 \u5bb9\u5668 \u76d2\u5b50 \u76d2\u5b50 01 \u76d2\u5b50 02 \u76d2\u5b50 03 \u6298\u75d5 \u76d2 01 \u6298\u75d5 \u76d2 02 \u6298\u75d5 \u76d2 03 \u5783\u573e \u888b\u5b50 \u5783\u573e \u5783\u573e\u888b \u5783\u573e \u53ef\u4e50 \u7f50 \u5783\u573e 01 \u5783\u573e 02 \u5783\u573e 03 \u5783\u573e 04 \u5783\u573e 05 \u5783\u573e 06 \u5e73\u53f0 \u5783\u573e \u5e73\u53f0 01 \u5783\u573e \u5783\u573e\u6876 \u5783\u573e \u5783\u573e\u6876 01 \u5783\u573e \u5783\u573e\u6876 02 \u5783\u573e \u5783\u573e\u6876 03 \u5783\u573e \u5783\u573e\u6876 04 \u5783\u573e \u5783\u573e\u6876 05 \u516c\u56ed / \u82b1\u56ed \u5bb6\u5177 \u957f\u51f3 03 \u5ead\u9662 \u5ead\u9662\u706f \u51c9\u68da \u5851\u6599 \u6905 \u5851\u6599 \u684c \u6ed1\u68af \u79cb\u5343 \u79cb\u5343 \u6c99\u53d1 \u684c\u5b50 \u8e66\u5e8a \u6742\u9879 \u70e7\u70e4 \u67b6 \u667e\u8863 \u8863\u7ef3 \u667e\u8863\u7ef3 \u72d7\u7a9d \u4f8f\u5112 \u55b7\u58f6 \u5176\u4ed6 \u5e72\u8349 \u6346 \u5907\u7528 \u5e72\u8349 \u6346 \u82b1\u76c6 \u82b1\u76c6 01 \u82b1\u76c6 02 \u82b1\u76c6 03 \u82b1\u76c6 04 \u82b1\u76c6 05 \u82b1\u76c6 06 \u82b1\u76c6 07 \u82b1\u76c6 08 \u4e2a\u4eba \u7684 \u888b \u5851\u6599 \u5851\u6599\u888b \u8d2d\u7269 \u8d2d\u7269\u888b \u63a8\u8f66 \u8d2d\u7269 \u8d2d\u7269\u8f66 \u8d2d\u7269 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u7bb1 \u516c\u6587 \u516c\u6587\u5305 \u5409\u4ed6 \u76d2 \u65c5\u884c \u65c5\u884c\u7bb1 \u8863\u670d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5934\u76d4 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u5934\u76d4 \u4e2a\u4eba \u5f71\u54cd \u624b\u673a \u94b1\u5305 \u8def \u969c\u788d \u969c\u788d\u7269 \u8857\u9053 \u62a4\u680f \u9525\u4f53 \u5efa\u7b51 \u9525\u4f53 \u4ea4\u901a \u9525 01 \u4ea4\u901a \u9525 02 \u65bd\u5de5 \u94c1\u677f \u65bd\u5de5 \u8b66\u793a \u788e\u7247 \u788e\u74e6 01 \u788e\u74e6 02 \u788e\u74e6 03 \u788e\u74e6 04 \u6c61\u57a2 / \u788e\u7247 01 \u6c61\u57a2 / \u788e\u7247 02 \u6c61\u57a2 / \u788e\u7247 03 \u6807\u5fd7 \u4ea4\u901a \u8b66\u544a \u4e8b\u6545 \u8b66\u544a \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u969c\u788d \u969c\u788d\u7269 \u94fe \u6805\u680f \u94fe \u6805\u680f \u672b\u7aef \u957f\u51f3 \u957f\u51f3 01 \u957f\u51f3 02 Commercial \u9910\u8f66 \u4fe1\u606f \u4ead 01 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u55b7\u6cc9 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u5730 \u56fe\u8868 \u6807\u5fd7 \u5e7f\u544a \u8def\u724c \u8def\u724c 01 \u8def\u724c 04 \u8fd0\u8f93 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u5907\u7528 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u516c\u7528 \u81ea\u52a8 \u63d0\u6b3e \u63d0\u6b3e\u673a \u90ae\u7bb1 \u8857\u5934 \u55b7\u6cc9 \u552e\u8d27 \u8d27\u673a \u552e\u8d27\u673a \u516c\u7528 \u6821\u51c6 \u6821\u51c6 \u6821\u51c6\u5668 \u5bb9\u5668 \u6876 \u84dd\u56fe ID : static . prop . barrel \u5783\u573e \u5783\u573e\u6876 \u84dd\u56fe ID : static . prop . bin \u5e03\u5236 \u5bb9\u5668 \u84dd\u56fe ID : static . prop . clothcontainer \u5783\u573e \u5783\u573e\u7bb1 \u84dd\u56fe ID : static . prop . container \u73bb\u7483 \u5bb9\u5668 \u84dd\u56fe ID : static . prop . glasscontainer \u76d2\u5b50 01 \u84dd\u56fe ID : static . prop . box01 \u76d2\u5b50 02 \u84dd\u56fe ID : static . prop . box02 \u76d2\u5b50 03 \u84dd\u56fe ID : static . prop . box03 \u6298\u75d5 \u76d2 01 \u84dd\u56fe ID : static . prop . creasedbox01 \u6298\u75d5 \u76d2 02 \u84dd\u56fe ID : static . prop . creasedbox02 \u6298\u75d5 \u76d2 03 \u84dd\u56fe ID : static . prop . creasedbox03 \u5783\u573e \u5783\u573e \u5783\u573e\u888b \u84dd\u56fe ID : static . prop . trashbag \u53ef\u4e50 \u7f50 \u84dd\u56fe ID : static . prop . colacan \u5783\u573e 01 \u84dd\u56fe ID : static . prop . garbage01 \u5783\u573e 02 \u84dd\u56fe ID : static . prop . garbage02 \u5783\u573e 03 \u84dd\u56fe ID : static . prop . garbage03 \u5783\u573e 04 \u84dd\u56fe ID : static . prop . garbage04 \u5783\u573e 05 \u84dd\u56fe ID : static . prop . garbage05 \u5783\u573e 06 \u84dd\u56fe ID : static . prop . garbage06 \u5783\u573e \u5e73\u53f0 01 \u84dd\u56fe ID : static . prop . platformgarbage01 \u5783\u573e \u5783\u573e\u6876 01 \u84dd\u56fe ID : static . prop . trashcan01 \u5783\u573e \u5783\u573e\u6876 02 \u84dd\u56fe ID : static . prop . trashcan02 \u5783\u573e \u5783\u573e\u6876 03 \u84dd\u56fe ID : static . prop . trashcan03 \u5783\u573e \u5783\u573e\u6876 04 \u84dd\u56fe ID : static . prop . trashcan04 \u5783\u573e \u5783\u573e\u6876 05 \u84dd\u56fe ID : static . prop . trashcan05 \u516c\u56ed / \u82b1\u56ed \u957f\u51f3 03 \u84dd\u56fe ID : static . prop . bench03 \u5ead\u9662 \u5ead\u9662\u706f \u84dd\u56fe ID : static . prop . gardenlamp \u51c9\u68da \u84dd\u56fe ID : static . prop . pergola \u5851\u6599 \u6905 \u84dd\u56fe ID : static . prop . plasticchair \u5851\u6599 \u684c \u84dd\u56fe ID : static . prop . plastictable \u6ed1\u68af \u84dd\u56fe ID : static . prop . slide \u79cb\u5343 \u84dd\u56fe ID : static . prop . swing \u79cb\u5343 \u6c99\u53d1 \u84dd\u56fe ID : static . prop . swingcouch \u684c\u5b50 \u84dd\u56fe ID : static . prop . table \u8e66\u5e8a \u84dd\u56fe ID : static . prop . trampoline \u70e7\u70e4 \u67b6 \u84dd\u56fe ID : static . prop . barbeque \u667e\u8863 \u8863\u7ef3 \u667e\u8863\u7ef3 \u84dd\u56fe ID : static . prop . clothesline \u72d7\u7a9d \u84dd\u56fe ID : static . prop . doghouse \u4f8f\u5112 \u84dd\u56fe ID : static . prop . gnome \u55b7\u58f6 \u84dd\u56fe ID : static . prop . wateringcan \u5e72\u8349 \u6346 \u84dd\u56fe ID : static . prop . haybale \u5e72\u8349 \u6346 \u5907\u7528 \u84dd\u56fe ID : static . prop . haybalelb \u82b1\u76c6 01 \u84dd\u56fe ID : static . prop . plantpot01 \u82b1\u76c6 02 \u84dd\u56fe ID : static . prop . plantpot02 \u82b1\u76c6 03 \u84dd\u56fe ID : static . prop . plantpot03 \u82b1\u76c6 04 \u84dd\u56fe ID : static . prop . plantpot04 \u82b1\u76c6 05 \u84dd\u56fe ID : static . prop . plantpot05 \u82b1\u76c6 06 \u84dd\u56fe ID : static . prop . plantpot06 \u82b1\u76c6 07 \u84dd\u56fe ID : static . prop . plantpot07 \u82b1\u76c6 08 \u84dd\u56fe ID : static . prop . plantpot08 \u4e2a\u4eba \u7684 \u5851\u6599 \u5851\u6599\u888b \u84dd\u56fe ID : static . prop . plasticbag \u8d2d\u7269 \u8d2d\u7269\u888b \u84dd\u56fe ID : static . prop . shoppingbag \u8d2d\u7269 \u8d2d\u7269\u8f66 \u84dd\u56fe ID : static . prop . shoppingcart \u8d2d\u7269 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u84dd\u56fe ID : static . prop . shoppingtrolley \u516c\u6587 \u516c\u6587\u5305 \u84dd\u56fe ID : static . prop . briefcase \u5409\u4ed6 \u76d2 \u84dd\u56fe ID : static . prop . guitarcase \u65c5\u884c \u65c5\u884c\u7bb1 \u84dd\u56fe ID : static . prop . travelcase \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5934\u76d4 \u84dd\u56fe ID : static . prop . bike helmet \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u5934\u76d4 \u84dd\u56fe ID : static . prop . motorhelmet \u624b\u673a \u84dd\u56fe ID : static . prop . mobile \u94b1\u5305 \u84dd\u56fe ID : static . prop . purse \u8def \u8857\u9053 \u62a4\u680f \u84dd\u56fe ID : static . prop . streetbarrier \u5efa\u7b51 \u9525\u4f53 \u84dd\u56fe ID : static . prop . constructioncone \u4ea4\u901a \u9525 01 \u84dd\u56fe ID : static . prop . trafficcone01 \u4ea4\u901a \u9525 02 \u84dd\u56fe ID : static . prop . trafficcone02 \u94c1\u677f \u84dd\u56fe ID : static . prop . ironplank \u65bd\u5de5 \u8b66\u793a \u84dd\u56fe ID : static . prop . warningconstruction \u788e\u74e6 01 \u84dd\u56fe ID : static . prop . brokentile01 \u788e\u74e6 02 \u84dd\u56fe ID : static . prop . brokentile02 \u788e\u74e6 03 \u84dd\u56fe ID : static . prop . brokentile03 \u788e\u74e6 04 \u84dd\u56fe ID : static . prop . brokentile04 \u6c61\u57a2 / \u788e\u7247 01 \u84dd\u56fe ID : static . prop . dirtdebris01 \u6c61\u57a2 / \u788e\u7247 02 \u84dd\u56fe ID : static . prop . dirtdebris02 \u6c61\u57a2 / \u788e\u7247 03 \u84dd\u56fe ID : static . prop . dirtdebris03 \u4ea4\u901a \u8b66\u544a \u84dd\u56fe ID : static . prop . trafficwarning \u4e8b\u6545 \u8b66\u544a \u84dd\u56fe ID : static . prop . warningaccident \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u94fe \u6805\u680f \u84dd\u56fe ID : static . prop . chainbarrier \u94fe \u6805\u680f \u672b\u7aef \u84dd\u56fe ID : static . prop . chainbarrierend \u957f\u51f3 01 \u84dd\u56fe ID : static . prop . bench01 \u957f\u51f3 02 \u84dd\u56fe ID : static . prop . bench02 \u9910\u8f66 \u84dd\u56fe ID : static . prop . foodcart \u4fe1\u606f \u4ead 01 \u84dd\u56fe ID : static . prop . kiosk _ 01 \u55b7\u6cc9 \u84dd\u56fe ID : static . prop . fountain \u5730 \u56fe\u8868 \u84dd\u56fe ID : static . prop . maptable \u5e7f\u544a \u84dd\u56fe ID : static . prop . advertisement \u8def\u724c \u84dd\u56fe ID : static . prop . streetsign \u8def\u724c 01 \u84dd\u56fe ID : static . prop . streetsign01 \u8def\u724c 04 \u84dd\u56fe ID : static . prop . streetsign04 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u84dd\u56fe ID : static . prop . busstop \u5907\u7528 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u84dd\u56fe ID : static . prop . busstoplb \u81ea\u52a8 \u63d0\u6b3e \u63d0\u6b3e\u673a \u84dd\u56fe ID : static . prop . atm \u90ae\u7bb1 \u84dd\u56fe ID : static . prop . mailbox \u8857\u5934 \u55b7\u6cc9 \u84dd\u56fe ID : static . prop . streetfountain \u552e\u8d27 \u8d27\u673a \u552e\u8d27\u673a \u84dd\u56fe ID : static . prop . vendingmachine \u516c\u7528 \u6821\u51c6 \u6821\u51c6\u5668 \u84dd\u56fe ID : static . prop . calibrator","title":"\u9053\u5177 \u76ee\u5f55"},{"location":"catalogue_props/#_1","text":"","title":"\u9053\u5177 \u76ee\u5f55"},{"location":"catalogue_props/#_2","text":"\u6876 \u6876 \u7bb1\u5b50 \u7bb1\u5b50 \u5e03\u5236 \u5bb9\u5668 \u5783\u573e \u5783\u573e\u7bb1 \u73bb\u7483 \u5bb9\u5668 \u76d2\u5b50 \u76d2\u5b50 01 \u76d2\u5b50 02 \u76d2\u5b50 03 \u6298\u75d5 \u76d2 01 \u6298\u75d5 \u76d2 02 \u6298\u75d5 \u76d2 03","title":"\u5bb9\u5668"},{"location":"catalogue_props/#_3","text":"\u888b\u5b50 \u5783\u573e \u5783\u573e\u888b \u5783\u573e \u53ef\u4e50 \u7f50 \u5783\u573e 01 \u5783\u573e 02 \u5783\u573e 03 \u5783\u573e 04 \u5783\u573e 05 \u5783\u573e 06 \u5e73\u53f0 \u5783\u573e \u5e73\u53f0 01 \u5783\u573e \u5783\u573e\u6876 \u5783\u573e \u5783\u573e\u6876 01 \u5783\u573e \u5783\u573e\u6876 02 \u5783\u573e \u5783\u573e\u6876 03 \u5783\u573e \u5783\u573e\u6876 04 \u5783\u573e \u5783\u573e\u6876 05","title":"\u5783\u573e"},{"location":"catalogue_props/#_4","text":"\u5bb6\u5177 \u957f\u51f3 03 \u5ead\u9662 \u5ead\u9662\u706f \u51c9\u68da \u5851\u6599 \u6905 \u5851\u6599 \u684c \u6ed1\u68af \u79cb\u5343 \u79cb\u5343 \u6c99\u53d1 \u684c\u5b50 \u8e66\u5e8a \u6742\u9879 \u70e7\u70e4 \u67b6 \u667e\u8863 \u8863\u7ef3 \u667e\u8863\u7ef3 \u72d7\u7a9d \u4f8f\u5112 \u55b7\u58f6 \u5176\u4ed6 \u5e72\u8349 \u6346 \u5907\u7528 \u5e72\u8349 \u6346 \u82b1\u76c6 \u82b1\u76c6 01 \u82b1\u76c6 02 \u82b1\u76c6 03 \u82b1\u76c6 04 \u82b1\u76c6 05 \u82b1\u76c6 06 \u82b1\u76c6 07 \u82b1\u76c6 08","title":"\u516c\u56ed / \u82b1\u56ed"},{"location":"catalogue_props/#_5","text":"\u888b \u5851\u6599 \u5851\u6599\u888b \u8d2d\u7269 \u8d2d\u7269\u888b \u63a8\u8f66 \u8d2d\u7269 \u8d2d\u7269\u8f66 \u8d2d\u7269 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u7bb1 \u516c\u6587 \u516c\u6587\u5305 \u5409\u4ed6 \u76d2 \u65c5\u884c \u65c5\u884c\u7bb1 \u8863\u670d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5934\u76d4 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u5934\u76d4 \u4e2a\u4eba \u5f71\u54cd \u624b\u673a \u94b1\u5305","title":"\u4e2a\u4eba \u7684"},{"location":"catalogue_props/#_6","text":"\u969c\u788d \u969c\u788d\u7269 \u8857\u9053 \u62a4\u680f \u9525\u4f53 \u5efa\u7b51 \u9525\u4f53 \u4ea4\u901a \u9525 01 \u4ea4\u901a \u9525 02 \u65bd\u5de5 \u94c1\u677f \u65bd\u5de5 \u8b66\u793a \u788e\u7247 \u788e\u74e6 01 \u788e\u74e6 02 \u788e\u74e6 03 \u788e\u74e6 04 \u6c61\u57a2 / \u788e\u7247 01 \u6c61\u57a2 / \u788e\u7247 02 \u6c61\u57a2 / \u788e\u7247 03 \u6807\u5fd7 \u4ea4\u901a \u8b66\u544a \u4e8b\u6545 \u8b66\u544a","title":"\u8def"},{"location":"catalogue_props/#_7","text":"\u969c\u788d \u969c\u788d\u7269 \u94fe \u6805\u680f \u94fe \u6805\u680f \u672b\u7aef \u957f\u51f3 \u957f\u51f3 01 \u957f\u51f3 02 Commercial \u9910\u8f66 \u4fe1\u606f \u4ead 01 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u55b7\u6cc9 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u5730 \u56fe\u8868 \u6807\u5fd7 \u5e7f\u544a \u8def\u724c \u8def\u724c 01 \u8def\u724c 04 \u8fd0\u8f93 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u5907\u7528 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u516c\u7528 \u81ea\u52a8 \u63d0\u6b3e \u63d0\u6b3e\u673a \u90ae\u7bb1 \u8857\u5934 \u55b7\u6cc9 \u552e\u8d27 \u8d27\u673a \u552e\u8d27\u673a","title":"\u4eba\u884c\u9053"},{"location":"catalogue_props/#_8","text":"\u6821\u51c6 \u6821\u51c6 \u6821\u51c6\u5668","title":"\u516c\u7528"},{"location":"catalogue_props/#_9","text":"","title":"\u5bb9\u5668"},{"location":"catalogue_props/#_10","text":"\u84dd\u56fe ID : static . prop . barrel","title":"\u6876"},{"location":"catalogue_props/#_11","text":"\u84dd\u56fe ID : static . prop . bin","title":"\u5783\u573e\u6876"},{"location":"catalogue_props/#_12","text":"\u84dd\u56fe ID : static . prop . clothcontainer","title":"\u5e03\u5236 \u5bb9\u5668"},{"location":"catalogue_props/#_13","text":"\u84dd\u56fe ID : static . prop . container","title":"\u5783\u573e\u7bb1"},{"location":"catalogue_props/#_14","text":"\u84dd\u56fe ID : static . prop . glasscontainer","title":"\u73bb\u7483 \u5bb9\u5668"},{"location":"catalogue_props/#01","text":"\u84dd\u56fe ID : static . prop . box01","title":"\u76d2\u5b50 01"},{"location":"catalogue_props/#02","text":"\u84dd\u56fe ID : static . prop . box02","title":"\u76d2\u5b50 02"},{"location":"catalogue_props/#03","text":"\u84dd\u56fe ID : static . prop . box03","title":"\u76d2\u5b50 03"},{"location":"catalogue_props/#01_1","text":"\u84dd\u56fe ID : static . prop . creasedbox01","title":"\u6298\u75d5 \u76d2 01"},{"location":"catalogue_props/#02_1","text":"\u84dd\u56fe ID : static . prop . creasedbox02","title":"\u6298\u75d5 \u76d2 02"},{"location":"catalogue_props/#03_1","text":"\u84dd\u56fe ID : static . prop . creasedbox03","title":"\u6298\u75d5 \u76d2 03"},{"location":"catalogue_props/#_15","text":"","title":"\u5783\u573e"},{"location":"catalogue_props/#_16","text":"\u84dd\u56fe ID : static . prop . trashbag","title":"\u5783\u573e\u888b"},{"location":"catalogue_props/#_17","text":"\u84dd\u56fe ID : static . prop . colacan","title":"\u53ef\u4e50 \u7f50"},{"location":"catalogue_props/#01_2","text":"\u84dd\u56fe ID : static . prop . garbage01","title":"\u5783\u573e 01"},{"location":"catalogue_props/#02_2","text":"\u84dd\u56fe ID : static . prop . garbage02","title":"\u5783\u573e 02"},{"location":"catalogue_props/#03_2","text":"\u84dd\u56fe ID : static . prop . garbage03","title":"\u5783\u573e 03"},{"location":"catalogue_props/#04","text":"\u84dd\u56fe ID : static . prop . garbage04","title":"\u5783\u573e 04"},{"location":"catalogue_props/#05","text":"\u84dd\u56fe ID : static . prop . garbage05","title":"\u5783\u573e 05"},{"location":"catalogue_props/#06","text":"\u84dd\u56fe ID : static . prop . garbage06","title":"\u5783\u573e 06"},{"location":"catalogue_props/#01_3","text":"\u84dd\u56fe ID : static . prop . platformgarbage01","title":"\u5783\u573e \u5e73\u53f0 01"},{"location":"catalogue_props/#01_4","text":"\u84dd\u56fe ID : static . prop . trashcan01","title":"\u5783\u573e\u6876 01"},{"location":"catalogue_props/#02_3","text":"\u84dd\u56fe ID : static . prop . trashcan02","title":"\u5783\u573e\u6876 02"},{"location":"catalogue_props/#03_3","text":"\u84dd\u56fe ID : static . prop . trashcan03","title":"\u5783\u573e\u6876 03"},{"location":"catalogue_props/#04_1","text":"\u84dd\u56fe ID : static . prop . trashcan04","title":"\u5783\u573e\u6876 04"},{"location":"catalogue_props/#05_1","text":"\u84dd\u56fe ID : static . prop . trashcan05","title":"\u5783\u573e\u6876 05"},{"location":"catalogue_props/#_18","text":"","title":"\u516c\u56ed / \u82b1\u56ed"},{"location":"catalogue_props/#03_4","text":"\u84dd\u56fe ID : static . prop . bench03","title":"\u957f\u51f3 03"},{"location":"catalogue_props/#_19","text":"\u84dd\u56fe ID : static . prop . gardenlamp","title":"\u5ead\u9662\u706f"},{"location":"catalogue_props/#_20","text":"\u84dd\u56fe ID : static . prop . pergola","title":"\u51c9\u68da"},{"location":"catalogue_props/#_21","text":"\u84dd\u56fe ID : static . prop . plasticchair","title":"\u5851\u6599 \u6905"},{"location":"catalogue_props/#_22","text":"\u84dd\u56fe ID : static . prop . plastictable","title":"\u5851\u6599 \u684c"},{"location":"catalogue_props/#_23","text":"\u84dd\u56fe ID : static . prop . slide","title":"\u6ed1\u68af"},{"location":"catalogue_props/#_24","text":"\u84dd\u56fe ID : static . prop . swing","title":"\u79cb\u5343"},{"location":"catalogue_props/#_25","text":"\u84dd\u56fe ID : static . prop . swingcouch","title":"\u79cb\u5343 \u6c99\u53d1"},{"location":"catalogue_props/#_26","text":"\u84dd\u56fe ID : static . prop . table","title":"\u684c\u5b50"},{"location":"catalogue_props/#_27","text":"\u84dd\u56fe ID : static . prop . trampoline","title":"\u8e66\u5e8a"},{"location":"catalogue_props/#_28","text":"\u84dd\u56fe ID : static . prop . barbeque","title":"\u70e7\u70e4 \u67b6"},{"location":"catalogue_props/#_29","text":"\u84dd\u56fe ID : static . prop . clothesline","title":"\u667e\u8863\u7ef3"},{"location":"catalogue_props/#_30","text":"\u84dd\u56fe ID : static . prop . doghouse","title":"\u72d7\u7a9d"},{"location":"catalogue_props/#_31","text":"\u84dd\u56fe ID : static . prop . gnome","title":"\u4f8f\u5112"},{"location":"catalogue_props/#_32","text":"\u84dd\u56fe ID : static . prop . wateringcan","title":"\u55b7\u58f6"},{"location":"catalogue_props/#_33","text":"\u84dd\u56fe ID : static . prop . haybale","title":"\u5e72\u8349 \u6346"},{"location":"catalogue_props/#_34","text":"\u84dd\u56fe ID : static . prop . haybalelb","title":"\u5e72\u8349 \u6346 \u5907\u7528"},{"location":"catalogue_props/#01_5","text":"\u84dd\u56fe ID : static . prop . plantpot01","title":"\u82b1\u76c6 01"},{"location":"catalogue_props/#02_4","text":"\u84dd\u56fe ID : static . prop . plantpot02","title":"\u82b1\u76c6 02"},{"location":"catalogue_props/#03_5","text":"\u84dd\u56fe ID : static . prop . plantpot03","title":"\u82b1\u76c6 03"},{"location":"catalogue_props/#04_2","text":"\u84dd\u56fe ID : static . prop . plantpot04","title":"\u82b1\u76c6 04"},{"location":"catalogue_props/#05_2","text":"\u84dd\u56fe ID : static . prop . plantpot05","title":"\u82b1\u76c6 05"},{"location":"catalogue_props/#06_1","text":"\u84dd\u56fe ID : static . prop . plantpot06","title":"\u82b1\u76c6 06"},{"location":"catalogue_props/#07","text":"\u84dd\u56fe ID : static . prop . plantpot07","title":"\u82b1\u76c6 07"},{"location":"catalogue_props/#08","text":"\u84dd\u56fe ID : static . prop . plantpot08","title":"\u82b1\u76c6 08"},{"location":"catalogue_props/#_35","text":"","title":"\u4e2a\u4eba \u7684"},{"location":"catalogue_props/#_36","text":"\u84dd\u56fe ID : static . prop . plasticbag","title":"\u5851\u6599\u888b"},{"location":"catalogue_props/#_37","text":"\u84dd\u56fe ID : static . prop . shoppingbag","title":"\u8d2d\u7269\u888b"},{"location":"catalogue_props/#_38","text":"\u84dd\u56fe ID : static . prop . shoppingcart","title":"\u8d2d\u7269\u8f66"},{"location":"catalogue_props/#_39","text":"\u84dd\u56fe ID : static . prop . shoppingtrolley","title":"\u8d2d\u7269 \u624b\u63a8\u8f66"},{"location":"catalogue_props/#_40","text":"\u84dd\u56fe ID : static . prop . briefcase","title":"\u516c\u6587\u5305"},{"location":"catalogue_props/#_41","text":"\u84dd\u56fe ID : static . prop . guitarcase","title":"\u5409\u4ed6 \u76d2"},{"location":"catalogue_props/#_42","text":"\u84dd\u56fe ID : static . prop . travelcase","title":"\u65c5\u884c\u7bb1"},{"location":"catalogue_props/#_43","text":"\u84dd\u56fe ID : static . prop . bike helmet","title":"\u81ea\u884c\u8f66 \u5934\u76d4"},{"location":"catalogue_props/#_44","text":"\u84dd\u56fe ID : static . prop . motorhelmet","title":"\u6469\u6258\u8f66 \u5934\u76d4"},{"location":"catalogue_props/#_45","text":"\u84dd\u56fe ID : static . prop . mobile","title":"\u624b\u673a"},{"location":"catalogue_props/#_46","text":"\u84dd\u56fe ID : static . prop . purse","title":"\u94b1\u5305"},{"location":"catalogue_props/#_47","text":"","title":"\u8def"},{"location":"catalogue_props/#_48","text":"\u84dd\u56fe ID : static . prop . streetbarrier","title":"\u8857\u9053 \u62a4\u680f"},{"location":"catalogue_props/#_49","text":"\u84dd\u56fe ID : static . prop . constructioncone","title":"\u5efa\u7b51 \u9525\u4f53"},{"location":"catalogue_props/#01_6","text":"\u84dd\u56fe ID : static . prop . trafficcone01","title":"\u4ea4\u901a \u9525 01"},{"location":"catalogue_props/#02_5","text":"\u84dd\u56fe ID : static . prop . trafficcone02","title":"\u4ea4\u901a \u9525 02"},{"location":"catalogue_props/#_50","text":"\u84dd\u56fe ID : static . prop . ironplank","title":"\u94c1\u677f"},{"location":"catalogue_props/#_51","text":"\u84dd\u56fe ID : static . prop . warningconstruction","title":"\u65bd\u5de5 \u8b66\u793a"},{"location":"catalogue_props/#01_7","text":"\u84dd\u56fe ID : static . prop . brokentile01","title":"\u788e\u74e6 01"},{"location":"catalogue_props/#02_6","text":"\u84dd\u56fe ID : static . prop . brokentile02","title":"\u788e\u74e6 02"},{"location":"catalogue_props/#03_6","text":"\u84dd\u56fe ID : static . prop . brokentile03","title":"\u788e\u74e6 03"},{"location":"catalogue_props/#04_3","text":"\u84dd\u56fe ID : static . prop . brokentile04","title":"\u788e\u74e6 04"},{"location":"catalogue_props/#01_8","text":"\u84dd\u56fe ID : static . prop . dirtdebris01","title":"\u6c61\u57a2 / \u788e\u7247 01"},{"location":"catalogue_props/#02_7","text":"\u84dd\u56fe ID : static . prop . dirtdebris02","title":"\u6c61\u57a2 / \u788e\u7247 02"},{"location":"catalogue_props/#03_7","text":"\u84dd\u56fe ID : static . prop . dirtdebris03","title":"\u6c61\u57a2 / \u788e\u7247 03"},{"location":"catalogue_props/#_52","text":"\u84dd\u56fe ID : static . prop . trafficwarning","title":"\u4ea4\u901a \u8b66\u544a"},{"location":"catalogue_props/#_53","text":"\u84dd\u56fe ID : static . prop . warningaccident","title":"\u4e8b\u6545 \u8b66\u544a"},{"location":"catalogue_props/#_54","text":"","title":"\u4eba\u884c\u9053"},{"location":"catalogue_props/#_55","text":"\u84dd\u56fe ID : static . prop . chainbarrier","title":"\u94fe \u6805\u680f"},{"location":"catalogue_props/#_56","text":"\u84dd\u56fe ID : static . prop . chainbarrierend","title":"\u94fe \u6805\u680f \u672b\u7aef"},{"location":"catalogue_props/#01_9","text":"\u84dd\u56fe ID : static . prop . bench01","title":"\u957f\u51f3 01"},{"location":"catalogue_props/#02_8","text":"\u84dd\u56fe ID : static . prop . bench02","title":"\u957f\u51f3 02"},{"location":"catalogue_props/#_57","text":"\u84dd\u56fe ID : static . prop . foodcart","title":"\u9910\u8f66"},{"location":"catalogue_props/#01_10","text":"\u84dd\u56fe ID : static . prop . kiosk _ 01","title":"\u4fe1\u606f \u4ead 01"},{"location":"catalogue_props/#_58","text":"\u84dd\u56fe ID : static . prop . fountain","title":"\u55b7\u6cc9"},{"location":"catalogue_props/#_59","text":"\u84dd\u56fe ID : static . prop . maptable","title":"\u5730 \u56fe\u8868"},{"location":"catalogue_props/#_60","text":"\u84dd\u56fe ID : static . prop . advertisement","title":"\u5e7f\u544a"},{"location":"catalogue_props/#_61","text":"\u84dd\u56fe ID : static . prop . streetsign","title":"\u8def\u724c"},{"location":"catalogue_props/#01_11","text":"\u84dd\u56fe ID : static . prop . streetsign01","title":"\u8def\u724c 01"},{"location":"catalogue_props/#04_4","text":"\u84dd\u56fe ID : static . prop . streetsign04","title":"\u8def\u724c 04"},{"location":"catalogue_props/#_62","text":"\u84dd\u56fe ID : static . prop . busstop","title":"\u516c\u4ea4\u8f66\u7ad9"},{"location":"catalogue_props/#_63","text":"\u84dd\u56fe ID : static . prop . busstoplb","title":"\u5907\u7528 \u516c\u4ea4\u8f66\u7ad9"},{"location":"catalogue_props/#_64","text":"\u84dd\u56fe ID : static . prop . atm","title":"\u81ea\u52a8 \u63d0\u6b3e\u673a"},{"location":"catalogue_props/#_65","text":"\u84dd\u56fe ID : static . prop . mailbox","title":"\u90ae\u7bb1"},{"location":"catalogue_props/#_66","text":"\u84dd\u56fe ID : static . prop . streetfountain","title":"\u8857\u5934 \u55b7\u6cc9"},{"location":"catalogue_props/#_67","text":"\u84dd\u56fe ID : static . prop . vendingmachine","title":"\u552e\u8d27\u673a"},{"location":"catalogue_props/#_68","text":"","title":"\u516c\u7528"},{"location":"catalogue_props/#_69","text":"\u84dd\u56fe ID : static . prop . calibrator","title":"\u6821\u51c6\u5668"},{"location":"catalogue_vehicles/","text":"\u8f66\u8f86 \u76ee\u5f55 \u7b2c 2 \u4ee3 \u8f66 \u9053\u5947 - Charger 2020 \u9053\u5947 - Police Charger 2020 \u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u6797\u80af - MKZ 2020 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe 2020 \u8ff7\u4f60 - Cooper S 2021 \u5c3c\u6851 - Patrol 2021 \u5361\u8f66 Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 Carla Motors - \u6d88\u9632 \u6d88\u9632\u8f66 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Cybertruck \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u798f\u7279 - \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Sprinter \u5927\u4f17 - T2 2021 \u5df4\u58eb \u4e09\u83f1 - Fusorosa \u7b2c\u4e00 \u4e00\u4ee3 \u7b2c\u4e00\u4ee3 \u8f66 \u5965\u8fea - A2 \u5965\u8fea - E - Tron \u5965\u8fea - TT \u5b9d\u9a6c - \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u96ea\u4f5b\u5170 - Impala \u96ea\u94c1\u9f99 - C3 \u9053\u5947 - Police Charger \u798f\u7279 - Mustang \u5409\u666e \u5409\u666e\u8f66 - Wrangler Rubicon \u6797\u80af - MKZ 2017 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe \u5fae\u578b \u5fae\u578b\u8f66 - Microlino \u8ff7\u4f60 - Cooper S \u5c3c\u6851 - Micra \u5c3c\u6851 - Patrol Seat - Leon \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Model 3 Toyota - Prius \u5361\u8f66 Carla Motors - CarlaCola \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u5927\u4f17 - T2 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider Kawasaki - Ninja Vespa - ZX 125 Yamaha - YZF \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 BH - \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 - Century Gazelle - Omafiets \u68c0\u67e5 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u8f66\u8f86 \u8981 \u68c0\u67e5 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u4ece \u4e0b\u9762 \u7684 \u8f66\u8f86 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4e2d \u68c0\u7d22 \u84dd\u56fe ID \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u884c\u4e2d bp _ lib . find ( ' blueprint . id . goes _ here ' ) \uff1a client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) spectator = world . get _ spectator ( ) # \u8bbe\u7f6e \u8f66\u8f86 \u53d8\u6362 vehicle _ loc = carla . Location ( x = - 46.9 , y = 20.0 , z = 0.2 ) vehicle _ rot = carla . Rotation ( pitch = 0.0 , yaw = 142.0 , roll = 0.0 ) vehicle _ trans = carla . Transform ( vehicle _ loc , vehicle _ rot ) # \u5728 \u8fd9\u91cc \u7c98\u8d34 \u84dd\u56fe ID vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) # \u8bbe\u7f6e \u89c6\u89d2 \u53d8\u6362 camera _ loc = carla . Location ( x = - 48.7 , y = 24.8 , z = 1.7 ) camera _ rot = carla . Rotation ( pitch = - 13.4 , yaw = - 75.7 , roll = 0.0 ) camera _ trans = carla . Transform ( camera _ loc , camera _ rot ) # \u751f\u6210 \u8f66\u8f86 vehicle = world . spawn _ actor ( vehicle _ bp , vehicle _ trans ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( camera _ trans ) \u5728 \u5c1d\u8bd5 \u751f\u6210 \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4e4b\u524d \uff0c \u4e0d\u8981 \u5fd8\u8bb0 \u6467\u6bc1 \u8be5 \u8f66\u8f86 \u4ee5 \u907f\u514d \u78b0\u649e \uff1a vehicle . destroy ( ) \u8f66 \u5965\u8fea - A2 \u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : A2 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . a2 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5965\u8fea - E - Tron \u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : E - Tron \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . etron \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5965\u8fea - TT \u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : TT \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . tt \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5b9d\u9a6c - \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u5236\u9020 \u5236\u9020\u5546 : \u5b9d\u9a6c \u578b\u53f7 : \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bmw . grandtourer \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u96ea\u4f5b\u5170 - Impala \u5236\u9020 \u5236\u9020\u5546 : \u96ea\u4f5b\u5170 \u578b\u53f7 : Impala \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . chevrolet . impala \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u96ea\u94c1\u9f99 - C3 \u5236\u9020 \u5236\u9020\u5546 : \u96ea\u94c1\u9f99 \u578b\u53f7 : C3 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . citroen . c3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u9053\u5947 - Charger 2020 \u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u9053\u5947 - Police Charger \u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . dodge . charger _ police \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u9053\u5947 - Police Charger 2020 \u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ police _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . crown \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : taxi \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u798f\u7279 - Mustang \u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : Mustang \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . ford . mustang \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5409\u666e \u5409\u666e\u8f66 - Wrangler Rubicon \u5236\u9020 \u5236\u9020\u5546 : \u5409\u666e \u5409\u666e\u8f66 \u578b\u53f7 : Wrangler Rubicon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . jeep . wrangler _ rubicon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u6797\u80af - MKZ 2017 \u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2017 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2017 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u6797\u80af - MKZ 2020 \u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe \u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mercedes . coupe \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe 2020 \u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . coupe _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5fae\u578b \u5fae\u578b\u8f66 - Microlino \u5236\u9020 \u5236\u9020\u5546 : \u5fae\u578b \u5fae\u578b\u8f66 \u578b\u53f7 : Microlino \u7c7b\u522b : \u5fae\u578b \u5fae\u578b\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . micro . microlino \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u8ff7\u4f60 - Cooper S \u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mini . cooper _ s \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u8ff7\u4f60 - Cooper S 2021 \u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S 2021 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mini . cooper _ s _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5c3c\u6851 - Micra \u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Micra \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . micra \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5c3c\u6851 - Patrol \u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . patrol \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5c3c\u6851 - Patrol 2021 \u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol 2021 \u7c7b\u522b : SUV \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . nissan . patrol _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True Seat - Leon \u5236\u9020 \u5236\u9020\u5546 : Seat \u578b\u53f7 : Leon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . seat . leon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Model 3 \u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Model 3 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . tesla . model3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Toyota - Prius \u5236\u9020 \u5236\u9020\u5546 : Toyota \u578b\u53f7 : Prius \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . toyota . prius \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5361\u8f66 Carla Motors - CarlaCola \u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : CarlaCola \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . carlamotors . carlacola \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 \u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . european _ hgv \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Carla Motors - Firetruck \u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : Firetruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . firetruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Cybertruck \u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Cybertruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . tesla . cybertruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u798f\u7279 - \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . ambulance \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Sprinter \u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Sprinter \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . sprinter \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5927\u4f17 - T2 \u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . volkswagen . t2 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5927\u4f17 - T2 2021 \u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 2021 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . volkswagen . t2 _ 2021 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True \u5df4\u58eb \u4e09\u83f1 - Fusorosa \u5236\u9020 \u5236\u9020\u5546 : \u4e09\u83f1 \u578b\u53f7 : Fusorosa \u7c7b\u522b : \u5df4\u58eb \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mitsubishi . fusorosa \u57fa\u672c \u7c7b\u578b : \u5df4\u58eb \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider \u5236\u9020 \u5236\u9020\u5546 : \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 : Low Rider \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . harley - davidson . low _ rider \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Kawasaki - Ninja \u5236\u9020 \u5236\u9020\u5546 : Kawasaki \u578b\u53f7 : Ninja \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . kawasaki . ninja \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Vespa - ZX 125 \u5236\u9020 \u5236\u9020\u5546 : Vespa \u578b\u53f7 : ZX 125 \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . vespa . zx125 \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Yamaha - YZF \u5236\u9020 \u5236\u9020\u5546 : Yamaha \u578b\u53f7 : YZF \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . yamaha . yzf \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 BH - \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5236\u9020 \u5236\u9020\u5546 : BH \u578b\u53f7 : \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bh . crossbike \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 - Century \u5236\u9020 \u5236\u9020\u5546 : \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u578b\u53f7 : Century \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . diamondback . century \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False Gazelle - Omafiets \u5236\u9020 \u5236\u9020\u5546 : Gazelle \u578b\u53f7 : Omafiets \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . gazelle . omafiets \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Catalogue vehicles"},{"location":"catalogue_vehicles/#_1","text":"","title":"\u8f66\u8f86 \u76ee\u5f55"},{"location":"catalogue_vehicles/#2","text":"\u8f66 \u9053\u5947 - Charger 2020 \u9053\u5947 - Police Charger 2020 \u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u6797\u80af - MKZ 2020 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe 2020 \u8ff7\u4f60 - Cooper S 2021 \u5c3c\u6851 - Patrol 2021 \u5361\u8f66 Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 Carla Motors - \u6d88\u9632 \u6d88\u9632\u8f66 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Cybertruck \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u798f\u7279 - \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Sprinter \u5927\u4f17 - T2 2021 \u5df4\u58eb \u4e09\u83f1 - Fusorosa","title":"\u7b2c 2 \u4ee3"},{"location":"catalogue_vehicles/#_2","text":"\u8f66 \u5965\u8fea - A2 \u5965\u8fea - E - Tron \u5965\u8fea - TT \u5b9d\u9a6c - \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u96ea\u4f5b\u5170 - Impala \u96ea\u94c1\u9f99 - C3 \u9053\u5947 - Police Charger \u798f\u7279 - Mustang \u5409\u666e \u5409\u666e\u8f66 - Wrangler Rubicon \u6797\u80af - MKZ 2017 \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af - Coupe \u5fae\u578b \u5fae\u578b\u8f66 - Microlino \u8ff7\u4f60 - Cooper S \u5c3c\u6851 - Micra \u5c3c\u6851 - Patrol Seat - Leon \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 - Model 3 Toyota - Prius \u5361\u8f66 Carla Motors - CarlaCola \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u5927\u4f17 - T2 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider Kawasaki - Ninja Vespa - ZX 125 Yamaha - YZF \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 BH - \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 - Century Gazelle - Omafiets","title":"\u7b2c\u4e00\u4ee3"},{"location":"catalogue_vehicles/#_3","text":"\u8981 \u68c0\u67e5 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u4ece \u4e0b\u9762 \u7684 \u8f66\u8f86 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u4e2d \u68c0\u7d22 \u84dd\u56fe ID \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 \u884c\u4e2d bp _ lib . find ( ' blueprint . id . goes _ here ' ) \uff1a client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) spectator = world . get _ spectator ( ) # \u8bbe\u7f6e \u8f66\u8f86 \u53d8\u6362 vehicle _ loc = carla . Location ( x = - 46.9 , y = 20.0 , z = 0.2 ) vehicle _ rot = carla . Rotation ( pitch = 0.0 , yaw = 142.0 , roll = 0.0 ) vehicle _ trans = carla . Transform ( vehicle _ loc , vehicle _ rot ) # \u5728 \u8fd9\u91cc \u7c98\u8d34 \u84dd\u56fe ID vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) # \u8bbe\u7f6e \u89c6\u89d2 \u53d8\u6362 camera _ loc = carla . Location ( x = - 48.7 , y = 24.8 , z = 1.7 ) camera _ rot = carla . Rotation ( pitch = - 13.4 , yaw = - 75.7 , roll = 0.0 ) camera _ trans = carla . Transform ( camera _ loc , camera _ rot ) # \u751f\u6210 \u8f66\u8f86 vehicle = world . spawn _ actor ( vehicle _ bp , vehicle _ trans ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( camera _ trans ) \u5728 \u5c1d\u8bd5 \u751f\u6210 \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4e4b\u524d \uff0c \u4e0d\u8981 \u5fd8\u8bb0 \u6467\u6bc1 \u8be5 \u8f66\u8f86 \u4ee5 \u907f\u514d \u78b0\u649e \uff1a vehicle . destroy ( )","title":"\u68c0\u67e5 \u4eff\u771f\u5668 \u4e2d \u7684 \u8f66\u8f86"},{"location":"catalogue_vehicles/#_4","text":"","title":"\u8f66"},{"location":"catalogue_vehicles/#-a2","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : A2 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . a2 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5965\u8fea - A2"},{"location":"catalogue_vehicles/#-e-tron","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : E - Tron \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . etron \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5965\u8fea - E - Tron"},{"location":"catalogue_vehicles/#-tt","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5965\u8fea \u578b\u53f7 : TT \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . audi . tt \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5965\u8fea - TT"},{"location":"catalogue_vehicles/#-","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5b9d\u9a6c \u578b\u53f7 : \u529f\u80fd \u591a\u529f\u80fd \u65c5\u884c \u884c\u8f66 \u65c5\u884c\u8f66 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bmw . grandtourer \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5b9d\u9a6c - \u591a\u529f\u80fd \u65c5\u884c\u8f66"},{"location":"catalogue_vehicles/#-impala","text":"\u5236\u9020 \u5236\u9020\u5546 : \u96ea\u4f5b\u5170 \u578b\u53f7 : Impala \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . chevrolet . impala \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u96ea\u4f5b\u5170 - Impala"},{"location":"catalogue_vehicles/#-c3","text":"\u5236\u9020 \u5236\u9020\u5546 : \u96ea\u94c1\u9f99 \u578b\u53f7 : C3 \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . citroen . c3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u96ea\u94c1\u9f99 - C3"},{"location":"catalogue_vehicles/#-charger-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u9053\u5947 - Charger 2020"},{"location":"catalogue_vehicles/#-police-charger","text":"\u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . dodge . charger _ police \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u9053\u5947 - Police Charger"},{"location":"catalogue_vehicles/#-police-charger-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u9053\u5947 \u578b\u53f7 : Police Charger 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . dodge . charger _ police _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u9053\u5947 - Police Charger 2020"},{"location":"catalogue_vehicles/#-_1","text":"\u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u7687\u51a0 \uff08 \u51fa\u79df \u79df\u8f66 \u51fa\u79df\u8f66 \uff09 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . crown \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : taxi \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u798f\u7279 - \u7687\u51a0 \uff08 \u51fa\u79df\u8f66 \uff09"},{"location":"catalogue_vehicles/#-mustang","text":"\u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : Mustang \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . ford . mustang \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u798f\u7279 - Mustang"},{"location":"catalogue_vehicles/#-wrangler-rubicon","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5409\u666e \u5409\u666e\u8f66 \u578b\u53f7 : Wrangler Rubicon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . jeep . wrangler _ rubicon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5409\u666e\u8f66 - Wrangler Rubicon"},{"location":"catalogue_vehicles/#-mkz-2017","text":"\u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2017 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2017 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u6797\u80af - MKZ 2017"},{"location":"catalogue_vehicles/#-mkz-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u6797\u80af \u578b\u53f7 : MKZ 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . lincoln . mkz _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u6797\u80af - MKZ 2020"},{"location":"catalogue_vehicles/#-coupe","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mercedes . coupe \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u6885\u8d5b\u5fb7\u65af - Coupe"},{"location":"catalogue_vehicles/#-coupe-2020","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Coupe 2020 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . coupe _ 2020 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u6885\u8d5b\u5fb7\u65af - Coupe 2020"},{"location":"catalogue_vehicles/#-microlino","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5fae\u578b \u5fae\u578b\u8f66 \u578b\u53f7 : Microlino \u7c7b\u522b : \u5fae\u578b \u5fae\u578b\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . micro . microlino \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5fae\u578b\u8f66 - Microlino"},{"location":"catalogue_vehicles/#-cooper-s","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . mini . cooper _ s \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u8ff7\u4f60 - Cooper S"},{"location":"catalogue_vehicles/#-cooper-s-2021","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8ff7\u4f60 \u578b\u53f7 : Cooper S 2021 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mini . cooper _ s _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u8ff7\u4f60 - Cooper S 2021"},{"location":"catalogue_vehicles/#-micra","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Micra \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . micra \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5c3c\u6851 - Micra"},{"location":"catalogue_vehicles/#-patrol","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol \u7c7b\u522b : SUV \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . nissan . patrol \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5c3c\u6851 - Patrol"},{"location":"catalogue_vehicles/#-patrol-2021","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5c3c\u6851 \u578b\u53f7 : Patrol 2021 \u7c7b\u522b : SUV \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . nissan . patrol _ 2021 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u5c3c\u6851 - Patrol 2021"},{"location":"catalogue_vehicles/#seat-leon","text":"\u5236\u9020 \u5236\u9020\u5546 : Seat \u578b\u53f7 : Leon \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . seat . leon \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Seat - Leon"},{"location":"catalogue_vehicles/#-model-3","text":"\u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Model 3 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . tesla . model3 \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u7279\u65af\u62c9 - Model 3"},{"location":"catalogue_vehicles/#toyota-prius","text":"\u5236\u9020 \u5236\u9020\u5546 : Toyota \u578b\u53f7 : Prius \u7c7b\u522b : \u7d27\u51d1 \u7d27\u51d1\u578b \u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . toyota . prius \u57fa\u672c \u7c7b\u578b : \u6c7d\u8f66 \u5c0f\u6c7d\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Toyota - Prius"},{"location":"catalogue_vehicles/#_5","text":"","title":"\u5361\u8f66"},{"location":"catalogue_vehicles/#carla-motors-carlacola","text":"\u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : CarlaCola \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . carlamotors . carlacola \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Carla Motors - CarlaCola"},{"location":"catalogue_vehicles/#carla-motors-hgv","text":"\u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09 \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . european _ hgv \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Carla Motors - \u6b27\u6d32 HGV \uff08 \u9a7e\u9a76\u5ba4 \u4f4d\u4e8e \u53d1\u52a8\u673a \u4e0a\u65b9 \uff09"},{"location":"catalogue_vehicles/#carla-motors-firetruck","text":"\u5236\u9020 \u5236\u9020\u5546 : Carla Motors \u578b\u53f7 : Firetruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . carlamotors . firetruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"Carla Motors - Firetruck"},{"location":"catalogue_vehicles/#-cybertruck","text":"\u5236\u9020 \u5236\u9020\u5546 : \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u578b\u53f7 : Cybertruck \u7c7b\u522b : \u5361\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . tesla . cybertruck \u57fa\u672c \u7c7b\u578b : \u5361\u8f66 \u7279\u6b8a \u7c7b\u578b : \u7535\u52a8 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u7279\u65af\u62c9 - Cybertruck"},{"location":"catalogue_vehicles/#_6","text":"","title":"\u9762\u5305\u8f66"},{"location":"catalogue_vehicles/#-_2","text":"\u5236\u9020 \u5236\u9020\u5546 : \u798f\u7279 \u578b\u53f7 : \u6551\u62a4 \u62a4\u8f66 \u6551\u62a4\u8f66 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . ford . ambulance \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u7279\u6b8a \u7c7b\u578b : \u6551\u9669 \u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u798f\u7279 - \u6551\u62a4\u8f66"},{"location":"catalogue_vehicles/#-sprinter","text":"\u5236\u9020 \u5236\u9020\u5546 : \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af \u578b\u53f7 : Sprinter \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mercedes . sprinter \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u6885\u8d5b\u5fb7\u65af - Sprinter"},{"location":"catalogue_vehicles/#-t2","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 \u7c7b\u522b : \u6807\u51c6 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . volkswagen . t2 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5927\u4f17 - T2"},{"location":"catalogue_vehicles/#-t2-2021","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5927\u4f17 \u578b\u53f7 : T2 2021 \u7c7b\u522b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . volkswagen . t2 _ 2021 \u57fa\u672c \u7c7b\u578b : \u9762\u5305 \u5305\u8f66 \u9762\u5305\u8f66 \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : True","title":"\u5927\u4f17 - T2 2021"},{"location":"catalogue_vehicles/#_7","text":"","title":"\u5df4\u58eb"},{"location":"catalogue_vehicles/#-fusorosa","text":"\u5236\u9020 \u5236\u9020\u5546 : \u4e09\u83f1 \u578b\u53f7 : Fusorosa \u7c7b\u522b : \u5df4\u58eb \u4e16\u4ee3 : 2 \u84dd\u56fe ID : vehicle . mitsubishi . fusorosa \u57fa\u672c \u7c7b\u578b : \u5df4\u58eb \u6709\u706f : True \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u4e09\u83f1 - Fusorosa"},{"location":"catalogue_vehicles/#_8","text":"","title":"\u6469\u6258\u8f66"},{"location":"catalogue_vehicles/#-low-rider","text":"\u5236\u9020 \u5236\u9020\u5546 : \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 : Low Rider \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . harley - davidson . low _ rider \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u54c8\u96f7 \u6234\u7ef4\u68ee - Low Rider"},{"location":"catalogue_vehicles/#kawasaki-ninja","text":"\u5236\u9020 \u5236\u9020\u5546 : Kawasaki \u578b\u53f7 : Ninja \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . kawasaki . ninja \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Kawasaki - Ninja"},{"location":"catalogue_vehicles/#vespa-zx-125","text":"\u5236\u9020 \u5236\u9020\u5546 : Vespa \u578b\u53f7 : ZX 125 \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . vespa . zx125 \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Vespa - ZX 125"},{"location":"catalogue_vehicles/#yamaha-yzf","text":"\u5236\u9020 \u5236\u9020\u5546 : Yamaha \u578b\u53f7 : YZF \u7c7b\u522b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . yamaha . yzf \u57fa\u672c \u7c7b\u578b : \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Yamaha - YZF"},{"location":"catalogue_vehicles/#_9","text":"","title":"\u81ea\u884c\u8f66"},{"location":"catalogue_vehicles/#bh-","text":"\u5236\u9020 \u5236\u9020\u5546 : BH \u578b\u53f7 : \u8d8a\u91ce \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . bh . crossbike \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"BH - \u8d8a\u91ce \u81ea\u884c\u8f66"},{"location":"catalogue_vehicles/#-century","text":"\u5236\u9020 \u5236\u9020\u5546 : \u5927\u540d \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u578b\u53f7 : Century \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . diamondback . century \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"\u5927\u540d \u81ea\u884c\u8f66 - Century"},{"location":"catalogue_vehicles/#gazelle-omafiets","text":"\u5236\u9020 \u5236\u9020\u5546 : Gazelle \u578b\u53f7 : Omafiets \u7c7b\u522b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u4e16\u4ee3 : 1 \u84dd\u56fe ID : vehicle . gazelle . omafiets \u57fa\u672c \u7c7b\u578b : \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6709\u706f : False \u6709 \u6253\u5f00 \u7684 \u95e8 : False","title":"Gazelle - Omafiets"},{"location":"cont_code_of_conduct/","text":"\u8d21\u732e \u8d21\u732e\u8005 \u5951\u7ea6 \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u6211\u4eec \u7684 \u627f\u8bfa \u6211\u4eec \u7684 \u6807\u51c6 \u6211\u4eec \u7684 \u8d23\u4efb \u8303\u56f4 \u6267\u884c \u5f52\u5c5e \u6211\u4eec \u7684 \u627f\u8bfa \u4e3a\u4e86 \u8425\u9020 \u4e00\u4e2a \u5f00\u653e \u548c \u70ed\u60c5 \u7684 \u73af\u5883 \uff0c \u6211\u4eec \u4f5c\u4e3a \u8d21\u732e \u8d21\u732e\u8005 \u548c \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u627f\u8bfa \u8ba9 \u6bcf\u4e2a \u4eba \u53c2\u4e0e \u6211\u4eec \u7684 \u9879\u76ee \u548c \u793e\u533a \u6210\u4e3a \u65e0 \u9a9a\u6270 \u7684 \u4f53\u9a8c \uff0c \u65e0\u8bba \u5e74\u9f84 \u3001 \u4f53\u578b \u3001 \u6b8b\u75be \u3001 \u79cd\u65cf \u3001 \u6027\u522b \u8ba4\u540c \u548c \u8868\u8fbe \uff0c \u7ecf\u9a8c \u6c34\u5e73 \u3001 \u6559\u80b2 \u7a0b\u5ea6 \u3001 \u793e\u4f1a \u7ecf\u6d4e \u5730\u4f4d \u3001 \u56fd\u7c4d \u3001 \u4e2a\u4eba \u5916\u8868 \u3001 \u79cd\u65cf \u3001 \u5b97\u6559 \u6216\u6027 \u8ba4\u540c \u548c \u53d6\u5411 \u3002 \u6211\u4eec \u7684 \u6807\u51c6 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u9020 \u79ef\u6781 \u73af\u5883 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6b22\u8fce \u548c \u5305\u5bb9 \u7684 \u8bed\u8a00 \u5c0a\u91cd \u4e0d\u540c \u7684 \u89c2\u70b9 \u548c \u7ecf\u9a8c \u4f18\u96c5 \u5730 \u63a5\u53d7 \u5efa\u8bbe \u5efa\u8bbe\u6027 \u7684 \u6279\u8bc4 \u4e13\u6ce8 \u4e8e \u5bf9 \u793e\u533a \u6700 \u6709\u5229 \u7684 \u4e8b\u60c5 \u5bf9 \u5176\u4ed6 \u793e\u533a \u6210\u5458 \u8868\u73b0 \u51fa \u540c\u60c5 \u540c\u60c5\u5fc3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6027 \u8bed\u8a00 \u6216 \u56fe\u50cf \u4ee5\u53ca \u4e0d \u6b22\u8fce \u53d7\u6b22\u8fce \u7684 \u6027 \u5173\u6ce8 \u6216 \u6311\u9017 \u6076\u641e \u3001 \u4fae\u8fb1 / \u8d2c\u635f \u8bc4\u8bba \u4ee5\u53ca \u4e2a\u4eba \u6216 \u653f\u6cbb \u653b\u51fb \u516c\u5f00 \u6216 \u79c1\u4eba \u9a9a\u6270 \u672a\u7ecf \u660e\u786e \u8bb8\u53ef \uff0c \u53d1\u5e03 \u4ed6\u4eba \u7684 \u79c1\u4eba \u4fe1\u606f \uff0c \u4f8b\u5982 \u5b9e\u9645 \u5730\u5740 \u6216 \u7535\u5b50 \u5730\u5740 \u5728 \u4e13\u4e1a \u73af\u5883 \u4e2d \u53ef\u80fd \u88ab \u5408\u7406 \u5730 \u8ba4\u4e3a \u4e0d \u9002\u5f53 \u7684 \u5176\u4ed6 \u884c\u4e3a \u6211\u4eec \u7684 \u8d23\u4efb \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u8d23\u4efb \u9610\u660e \u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u6807\u51c6 \uff0c \u5e76 \u5e94 \u9488\u5bf9 \u4efb\u4f55 \u4e0d\u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u60c5\u51b5 \u91c7\u53d6 \u9002\u5f53 \u548c \u516c\u5e73 \u7684 \u7ea0\u6b63 \u63aa\u65bd \u3002 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u6743\u5229 \u548c \u8d23\u4efb \u5220\u9664 \u3001 \u7f16\u8f91 \u6216 \u62d2\u7edd \u4e0d \u7b26\u5408 \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u8bc4\u8bba \u3001 \u63d0\u4ea4 \u3001 \u4ee3\u7801 \u3001 \u7ef4\u57fa \u7f16\u8f91 \u3001 \u95ee\u9898 \u548c \u5176\u4ed6 \u8d21\u732e \uff0c \u6216\u8005 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7981\u6b62 \u4efb\u4f55 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u5176\u4ed6 \u884c\u4e3a \u4ed6\u4eec \u8ba4\u4e3a \u4e0d \u6070\u5f53 \u3001 \u5177\u6709 \u5a01\u80c1 \u5a01\u80c1\u6027 \u3001 \u5192\u72af \u6027 \u6216 \u6709\u5bb3 \u3002 \u8303\u56f4 \u5f53 \u4e2a\u4eba \u4ee3\u8868 \u9879\u76ee \u6216 \u5176 \u793e\u533a \u65f6 \uff0c \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u9002\u7528 \u4e8e \u9879\u76ee \u7a7a\u95f4 \u548c \u516c\u5171 \u7a7a\u95f4 \u3002 \u4ee3\u8868 \u9879\u76ee \u6216 \u793e\u533a \u7684 \u793a\u4f8b \u5305\u62ec \u4f7f\u7528 \u5b98\u65b9 \u9879\u76ee \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u5730\u5740 \u3001 \u901a\u8fc7 \u5b98\u65b9 \u793e\u4ea4 \u5a92\u4f53 \u5e10\u6237 \u53d1\u5e16 \u6216 \u5728\u7ebf \u4e0a \u6216 \u7ebf\u4e0b \u6d3b\u52a8 \u4e2d \u62c5\u4efb \u6307\u5b9a \u4ee3\u8868 \u3002 \u9879\u76ee \u7684 \u8868\u793a \u53ef\u4ee5 \u7531 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u5b9a\u4e49 \u548c \u6f84\u6e05 \u3002 \u6267\u884c \u53ef\u4ee5 \u901a\u8fc7 info - carla @ osvf . org \u8054\u7cfb \u9879\u76ee \u56e2\u961f \u6765 \u4e3e\u62a5 \u8fb1\u9a82 \u3001 \u9a9a\u6270 \u6216 \u5176\u4ed6 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u3002 \u6240\u6709 \u6295\u8bc9 \u90fd \u5c06 \u63a5\u53d7 \u5ba1\u67e5 \u548c \u8c03\u67e5 \uff0c \u5e76 \u5c06 \u6839\u636e \u5177\u4f53 \u60c5\u51b5 \u5177\u4f53\u60c5\u51b5 \u505a\u51fa \u5fc5\u8981 \u4e14 \u9002\u5f53 \u7684 \u56de\u5e94 \u3002 \u9879\u76ee \u56e2\u961f \u6709 \u4e49\u52a1 \u5bf9 \u4e8b\u4ef6 \u62a5\u544a \u4e8b\u4ef6\u62a5\u544a \u8005 \u4fdd\u5bc6 \u3002 \u5177\u4f53 \u6267\u884c \u653f\u7b56 \u7684 \u66f4 \u591a \u7ec6\u8282 \u53ef\u80fd \u4f1a \u5355\u72ec \u53d1\u5e03 \u3002 \u4e0d \u5584\u610f \u5730 \u9075\u5b88 \u6216 \u6267\u884c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u53ef\u80fd \u4f1a \u9762\u4e34 \u9879\u76ee \u9886\u5bfc \u9886\u5bfc\u5c42 \u5176\u4ed6 \u6210\u5458 \u786e\u5b9a \u7684 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7684 \u5f71\u54cd \u3002 \u5f52\u5c5e \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u6539\u7f16 \u6539\u7f16\u81ea \u8d21\u732e \u8d21\u732e\u8005 \u5951\u7ea6 1.4 \u7248 \uff0c \u53ef \u4ece https : / / www . contributor - covenant . org / version / 1 / 4 / code - of - conduct . html \u83b7\u53d6 \u3002","title":"\u884c\u4e3a\u51c6\u5219"},{"location":"cont_code_of_conduct/#_1","text":"\u6211\u4eec \u7684 \u627f\u8bfa \u6211\u4eec \u7684 \u6807\u51c6 \u6211\u4eec \u7684 \u8d23\u4efb \u8303\u56f4 \u6267\u884c \u5f52\u5c5e","title":"\u8d21\u732e\u8005 \u5951\u7ea6 \u884c\u4e3a\u51c6\u5219"},{"location":"cont_code_of_conduct/#_2","text":"\u4e3a\u4e86 \u8425\u9020 \u4e00\u4e2a \u5f00\u653e \u548c \u70ed\u60c5 \u7684 \u73af\u5883 \uff0c \u6211\u4eec \u4f5c\u4e3a \u8d21\u732e \u8d21\u732e\u8005 \u548c \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u627f\u8bfa \u8ba9 \u6bcf\u4e2a \u4eba \u53c2\u4e0e \u6211\u4eec \u7684 \u9879\u76ee \u548c \u793e\u533a \u6210\u4e3a \u65e0 \u9a9a\u6270 \u7684 \u4f53\u9a8c \uff0c \u65e0\u8bba \u5e74\u9f84 \u3001 \u4f53\u578b \u3001 \u6b8b\u75be \u3001 \u79cd\u65cf \u3001 \u6027\u522b \u8ba4\u540c \u548c \u8868\u8fbe \uff0c \u7ecf\u9a8c \u6c34\u5e73 \u3001 \u6559\u80b2 \u7a0b\u5ea6 \u3001 \u793e\u4f1a \u7ecf\u6d4e \u5730\u4f4d \u3001 \u56fd\u7c4d \u3001 \u4e2a\u4eba \u5916\u8868 \u3001 \u79cd\u65cf \u3001 \u5b97\u6559 \u6216\u6027 \u8ba4\u540c \u548c \u53d6\u5411 \u3002","title":"\u6211\u4eec \u7684 \u627f\u8bfa"},{"location":"cont_code_of_conduct/#_3","text":"\u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u9020 \u79ef\u6781 \u73af\u5883 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6b22\u8fce \u548c \u5305\u5bb9 \u7684 \u8bed\u8a00 \u5c0a\u91cd \u4e0d\u540c \u7684 \u89c2\u70b9 \u548c \u7ecf\u9a8c \u4f18\u96c5 \u5730 \u63a5\u53d7 \u5efa\u8bbe \u5efa\u8bbe\u6027 \u7684 \u6279\u8bc4 \u4e13\u6ce8 \u4e8e \u5bf9 \u793e\u533a \u6700 \u6709\u5229 \u7684 \u4e8b\u60c5 \u5bf9 \u5176\u4ed6 \u793e\u533a \u6210\u5458 \u8868\u73b0 \u51fa \u540c\u60c5 \u540c\u60c5\u5fc3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u793a\u4f8b \u5305\u62ec \uff1a \u4f7f\u7528 \u6027 \u8bed\u8a00 \u6216 \u56fe\u50cf \u4ee5\u53ca \u4e0d \u6b22\u8fce \u53d7\u6b22\u8fce \u7684 \u6027 \u5173\u6ce8 \u6216 \u6311\u9017 \u6076\u641e \u3001 \u4fae\u8fb1 / \u8d2c\u635f \u8bc4\u8bba \u4ee5\u53ca \u4e2a\u4eba \u6216 \u653f\u6cbb \u653b\u51fb \u516c\u5f00 \u6216 \u79c1\u4eba \u9a9a\u6270 \u672a\u7ecf \u660e\u786e \u8bb8\u53ef \uff0c \u53d1\u5e03 \u4ed6\u4eba \u7684 \u79c1\u4eba \u4fe1\u606f \uff0c \u4f8b\u5982 \u5b9e\u9645 \u5730\u5740 \u6216 \u7535\u5b50 \u5730\u5740 \u5728 \u4e13\u4e1a \u73af\u5883 \u4e2d \u53ef\u80fd \u88ab \u5408\u7406 \u5730 \u8ba4\u4e3a \u4e0d \u9002\u5f53 \u7684 \u5176\u4ed6 \u884c\u4e3a","title":"\u6211\u4eec \u7684 \u6807\u51c6"},{"location":"cont_code_of_conduct/#_4","text":"\u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u8d23\u4efb \u9610\u660e \u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u6807\u51c6 \uff0c \u5e76 \u5e94 \u9488\u5bf9 \u4efb\u4f55 \u4e0d\u53ef \u63a5\u53d7 \u884c\u4e3a \u7684 \u60c5\u51b5 \u91c7\u53d6 \u9002\u5f53 \u548c \u516c\u5e73 \u7684 \u7ea0\u6b63 \u63aa\u65bd \u3002 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u6709 \u6743\u5229 \u548c \u8d23\u4efb \u5220\u9664 \u3001 \u7f16\u8f91 \u6216 \u62d2\u7edd \u4e0d \u7b26\u5408 \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u8bc4\u8bba \u3001 \u63d0\u4ea4 \u3001 \u4ee3\u7801 \u3001 \u7ef4\u57fa \u7f16\u8f91 \u3001 \u95ee\u9898 \u548c \u5176\u4ed6 \u8d21\u732e \uff0c \u6216\u8005 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7981\u6b62 \u4efb\u4f55 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u5176\u4ed6 \u884c\u4e3a \u4ed6\u4eec \u8ba4\u4e3a \u4e0d \u6070\u5f53 \u3001 \u5177\u6709 \u5a01\u80c1 \u5a01\u80c1\u6027 \u3001 \u5192\u72af \u6027 \u6216 \u6709\u5bb3 \u3002","title":"\u6211\u4eec \u7684 \u8d23\u4efb"},{"location":"cont_code_of_conduct/#_5","text":"\u5f53 \u4e2a\u4eba \u4ee3\u8868 \u9879\u76ee \u6216 \u5176 \u793e\u533a \u65f6 \uff0c \u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u9002\u7528 \u4e8e \u9879\u76ee \u7a7a\u95f4 \u548c \u516c\u5171 \u7a7a\u95f4 \u3002 \u4ee3\u8868 \u9879\u76ee \u6216 \u793e\u533a \u7684 \u793a\u4f8b \u5305\u62ec \u4f7f\u7528 \u5b98\u65b9 \u9879\u76ee \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u5730\u5740 \u3001 \u901a\u8fc7 \u5b98\u65b9 \u793e\u4ea4 \u5a92\u4f53 \u5e10\u6237 \u53d1\u5e16 \u6216 \u5728\u7ebf \u4e0a \u6216 \u7ebf\u4e0b \u6d3b\u52a8 \u4e2d \u62c5\u4efb \u6307\u5b9a \u4ee3\u8868 \u3002 \u9879\u76ee \u7684 \u8868\u793a \u53ef\u4ee5 \u7531 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u5b9a\u4e49 \u548c \u6f84\u6e05 \u3002","title":"\u8303\u56f4"},{"location":"cont_code_of_conduct/#_6","text":"\u53ef\u4ee5 \u901a\u8fc7 info - carla @ osvf . org \u8054\u7cfb \u9879\u76ee \u56e2\u961f \u6765 \u4e3e\u62a5 \u8fb1\u9a82 \u3001 \u9a9a\u6270 \u6216 \u5176\u4ed6 \u4e0d\u53ef \u63a5\u53d7 \u7684 \u884c\u4e3a \u3002 \u6240\u6709 \u6295\u8bc9 \u90fd \u5c06 \u63a5\u53d7 \u5ba1\u67e5 \u548c \u8c03\u67e5 \uff0c \u5e76 \u5c06 \u6839\u636e \u5177\u4f53 \u60c5\u51b5 \u5177\u4f53\u60c5\u51b5 \u505a\u51fa \u5fc5\u8981 \u4e14 \u9002\u5f53 \u7684 \u56de\u5e94 \u3002 \u9879\u76ee \u56e2\u961f \u6709 \u4e49\u52a1 \u5bf9 \u4e8b\u4ef6 \u62a5\u544a \u4e8b\u4ef6\u62a5\u544a \u8005 \u4fdd\u5bc6 \u3002 \u5177\u4f53 \u6267\u884c \u653f\u7b56 \u7684 \u66f4 \u591a \u7ec6\u8282 \u53ef\u80fd \u4f1a \u5355\u72ec \u53d1\u5e03 \u3002 \u4e0d \u5584\u610f \u5730 \u9075\u5b88 \u6216 \u6267\u884c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u7684 \u9879\u76ee \u7ef4\u62a4 \u7ef4\u62a4\u8005 \u53ef\u80fd \u4f1a \u9762\u4e34 \u9879\u76ee \u9886\u5bfc \u9886\u5bfc\u5c42 \u5176\u4ed6 \u6210\u5458 \u786e\u5b9a \u7684 \u6682\u65f6 \u6216 \u6c38\u4e45 \u7684 \u5f71\u54cd \u3002","title":"\u6267\u884c"},{"location":"cont_code_of_conduct/#_7","text":"\u672c \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u6539\u7f16 \u6539\u7f16\u81ea \u8d21\u732e \u8d21\u732e\u8005 \u5951\u7ea6 1.4 \u7248 \uff0c \u53ef \u4ece https : / / www . contributor - covenant . org / version / 1 / 4 / code - of - conduct . html \u83b7\u53d6 \u3002","title":"\u5f52\u5c5e"},{"location":"cont_coding_standard/","text":"\u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u4e00\u822c Python C++ \u4e00\u822c \u4f7f\u7528 \u7a7a\u683c \uff0c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 \u907f\u514d \u6dfb\u52a0 \u5c3e\u968f \u7a7a\u683c \uff0c \u56e0\u4e3a \u5b83\u4f1a \u5728 \u5dee\u5f02 \u4e2d \u4ea7\u751f \u566a\u97f3 \u3002 Python \u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u4ee3\u7801 \u4e0d \u5e94 \u8d85\u8fc7 120 \u5217 \u3002 \u6240\u6709 \u4ee3\u7801 \u5fc5\u987b \u4e0e Python 2.7 \u548c 3.7 \u517c\u5bb9 \u3002 Pylint \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a \uff08 \u5f88\u5c11 \u6709 \u4f8b\u5916 \u9002\u7528 \u4e8e\u5916 \u90e8\u7c7b \uff0c \u5982 numpy \u548c pygame \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 . pylintrc \uff09 \u3002 Python \u4ee3\u7801 \u9075\u5faa PEP8 \u98ce\u683c \u6307\u5357 \uff08 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 autopep8 \uff09 \u3002 C++ \u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u5982\u679c \u53ef\u4ee5 \u4f7f \u4ee3\u7801 \u66f4 \u6e05\u6670 \uff0c \u5728 \u6781\u5c11 \u5c11\u6570 \u6781\u5c11\u6570 \u60c5\u51b5 \u4e0b \u4ee3\u7801 \u53ef\u80fd \u4f1a \u7a0d\u5fae \u8d85\u51fa \u6b64 \u9650\u5236 \u3002 \u7f16\u8bd1 \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a ( clang ++- 8 - Wall - Wextra - std = C++ 14 - Wno - missing - braces ) . \u7981\u6b62 \u4f7f\u7528 throw \uff0c \u8bf7 \u6539\u4e3a \u4f7f\u7528 carla : : throw _ exception \u3002 \u865a\u5e7b C++ \u4ee3\u7801 \uff08 CarlaUE4 \u548c Carla \u63d2\u4ef6 \uff09 \u9075\u5faa \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \uff0c \u4f46 \u4f7f\u7528 \u7a7a\u683c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 LibCarla \u4f7f\u7528 \u8c37\u6b4c \u98ce\u683c \u6307\u5357 \u7684 \u53d8\u4f53 \u3002 \u5982\u679c \u4ee3\u7801 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f7f\u7528 \uff0c \u5219 \u5e94 \u5c06 try - catch \u5757 \u7684 \u4f7f\u7528 # ifndef LIBCARLA _ NO _ EXCEPTIONS \u62ec \u8d77\u6765 \u3002","title":"\u7f16\u7801\u6807\u51c6"},{"location":"cont_coding_standard/#_1","text":"\u4e00\u822c Python C++","title":"\u7f16\u7801\u6807\u51c6"},{"location":"cont_coding_standard/#_2","text":"\u4f7f\u7528 \u7a7a\u683c \uff0c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 \u907f\u514d \u6dfb\u52a0 \u5c3e\u968f \u7a7a\u683c \uff0c \u56e0\u4e3a \u5b83\u4f1a \u5728 \u5dee\u5f02 \u4e2d \u4ea7\u751f \u566a\u97f3 \u3002","title":"\u4e00\u822c"},{"location":"cont_coding_standard/#python","text":"\u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u4ee3\u7801 \u4e0d \u5e94 \u8d85\u8fc7 120 \u5217 \u3002 \u6240\u6709 \u4ee3\u7801 \u5fc5\u987b \u4e0e Python 2.7 \u548c 3.7 \u517c\u5bb9 \u3002 Pylint \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a \uff08 \u5f88\u5c11 \u6709 \u4f8b\u5916 \u9002\u7528 \u4e8e\u5916 \u90e8\u7c7b \uff0c \u5982 numpy \u548c pygame \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 . pylintrc \uff09 \u3002 Python \u4ee3\u7801 \u9075\u5faa PEP8 \u98ce\u683c \u6307\u5357 \uff08 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 autopep8 \uff09 \u3002","title":"Python"},{"location":"cont_coding_standard/#c","text":"\u6ce8\u91ca \u4e0d \u5e94 \u8d85\u8fc7 80 \u5217 \uff0c \u5982\u679c \u53ef\u4ee5 \u4f7f \u4ee3\u7801 \u66f4 \u6e05\u6670 \uff0c \u5728 \u6781\u5c11 \u5c11\u6570 \u6781\u5c11\u6570 \u60c5\u51b5 \u4e0b \u4ee3\u7801 \u53ef\u80fd \u4f1a \u7a0d\u5fae \u8d85\u51fa \u6b64 \u9650\u5236 \u3002 \u7f16\u8bd1 \u4e0d \u5e94 \u7ed9\u51fa \u4efb\u4f55 \u9519\u8bef \u6216 \u8b66\u544a ( clang ++- 8 - Wall - Wextra - std = C++ 14 - Wno - missing - braces ) . \u7981\u6b62 \u4f7f\u7528 throw \uff0c \u8bf7 \u6539\u4e3a \u4f7f\u7528 carla : : throw _ exception \u3002 \u865a\u5e7b C++ \u4ee3\u7801 \uff08 CarlaUE4 \u548c Carla \u63d2\u4ef6 \uff09 \u9075\u5faa \u865a\u5e7b \u5f15\u64ce \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \uff0c \u4f46 \u4f7f\u7528 \u7a7a\u683c \u800c \u4e0d\u662f \u5236\u8868 \u5236\u8868\u7b26 \u3002 LibCarla \u4f7f\u7528 \u8c37\u6b4c \u98ce\u683c \u6307\u5357 \u7684 \u53d8\u4f53 \u3002 \u5982\u679c \u4ee3\u7801 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f7f\u7528 \uff0c \u5219 \u5e94 \u5c06 try - catch \u5757 \u7684 \u4f7f\u7528 # ifndef LIBCARLA _ NO _ EXCEPTIONS \u62ec \u8d77\u6765 \u3002","title":"C++"},{"location":"cont_contribution_guidelines/","text":"\u4e3a Carla \u505a\u51fa \u8d21\u732e Carla \u56e2\u961f \u5f88 \u9ad8\u5174 \u63a5\u53d7 \u4efb\u4f55 \u613f\u610f \u5408\u4f5c \u7684 \u4eba \u7684 \u8d21\u732e \u3002 \u6839\u636e \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u80fd\u529b \uff0c \u53ef\u4ee5 \u91c7\u7528 \u4e0d\u540c \u7684 \u65b9\u5f0f \u4e3a \u9879\u76ee \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u56e2\u961f \u5c06 \u5c3d \u6700\u5927 \u52aa\u529b \u5c06 \u8d21\u732e \u6210\u529f \u6574\u5408 \u5230 Carla \u4e2d \u3002 \u770b\u770b \u5427 \uff0c \u4e0d\u8981 \u72b9\u8c6b \uff01 \u62a5\u544a \u9519\u8bef \u8bf7\u6c42 \u529f\u80fd \u4ee3\u7801 \u8d21\u732e \u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce \u5f00\u59cb \u4e4b\u524d \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u63d0\u4ea4 \u6e05\u5355 \u827a\u672f \u8d21\u732e \u6587\u6863 \u8d21\u732e \u62a5\u544a \u9519\u8bef \u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 Issues \u90e8\u5206 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 \u62a5\u544a \u65b0 \u9519\u8bef \u4e4b\u524d \uff0c \u8bf7 \u52a1\u5fc5 \u8fdb\u884c \u4e00\u4e9b \u68c0\u67e5 \u3002 1 . \u68c0\u67e5 \u662f\u5426 \u5df2 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 GitHub \u4e0a \u7684 \u540c\u4e00 \u95ee\u9898 \u90e8\u5206 \u67e5\u627e \u5b83 \u3002 2 . \u9605\u8bfb \u6587\u6863 \u3002 \u786e\u4fdd \u95ee\u9898 \u662f \u4e00\u4e2a \u9519\u8bef \uff0c \u800c \u4e0d\u662f \u5bf9 Carla \u5e94\u8be5 \u5982\u4f55 \u5de5\u4f5c \u7684 \u8bef\u89e3 \u3002 \u9605\u8bfb \u6587\u6863 \u4e2d \u4e0e \u8be5 \u95ee\u9898 \u76f8\u5173 \u7684 \u9875\u9762 \u5e76 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u3002 \u8bf7\u6c42 \u529f\u80fd \u65b0 \u529f\u80fd \u7684 \u60f3\u6cd5 \u4e5f \u662f \u4e00\u79cd \u5f88 \u597d \u7684 \u8d21\u732e \u65b9\u5f0f \u3002 \u4efb\u4f55 \u53ef\u4ee5 \u6539\u5584 \u7528\u6237 \u4f53\u9a8c \u7684 \u5efa\u8bae \u90fd \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7684 \u76f8\u5e94 GitHub \u90e8\u5206 \u63d0\u4ea4 \u3002 \u4ee3\u7801 \u8d21\u732e \u5728 \u5f00\u59cb \u52a8\u624b \u7f16\u7801 \u4e4b\u524d \uff0c \u8bf7 \u67e5\u770b Issues \u677f\u5757 \u4ee5 \u4e86\u89e3 \u56e2\u961f \u5df2\u7ecf \u5728 \u505a \u4ec0\u4e48 \uff0c \u4ee5 \u907f\u514d \u91cd\u53e0 \u3002 \u5982 \u6709 \u7591\u95ee \u6216 \u8ba8\u8bba \u5982\u4f55 \u7ee7\u7eed \uff0c \u8bf7 \u8054\u7cfb \u6211\u4eec \u4e4b\u4e00 \uff08 \u6216 \u53d1\u9001 \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u81f3 carla . simulator @ gmail . com \uff09 \u3002 \u4e3a\u4e86 \u5f00\u59cb \u5de5\u4f5c \uff0c \u8bf7 \u521b\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u5206\u53c9 \uff0c \u5e76 \u5c06 \u6240\u8ff0 \u5206\u53c9 \u514b\u9686 \u5230 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \u4f7f \u60a8 \u7684 \u5206\u53c9 \u4e0e \u539f\u59cb \u5b58\u50a8 \u5e93 \u4fdd\u6301 \u540c\u6b65 \u3002 \u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce \u6709\u5173 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u8fdb\u884c C++ \u7f16\u7a0b \u7684 \u57fa\u672c \u4ecb\u7ecd \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u7684 C++ \u7f16\u7a0b \u6559\u7a0b \u3002 \u7f51\u4e0a \u8fd8\u6709 \u5176\u4ed6 \u9009\u9879 \uff0c \u5176\u4e2d \u4e00\u4e9b \u4e0d\u662f \u514d\u8d39 \u7684 \u3002 Udemy \u7684 \u865a\u5e7b C++ \u8bfe\u7a0b \u975e\u5e38 \u5b8c\u6574 \uff0c \u5e76\u4e14 \u901a\u5e38 \u63d0\u4f9b \u4ef7\u683c \u975e\u5e38 \u5b9e\u60e0 \u7684 \u4f18\u60e0 \u3002 \u5f00\u59cb \u4e4b\u524d \u67e5\u770b Carla \u8bbe\u8ba1 \u6587\u6863 \uff0c \u4e86\u89e3 \u7ec4\u6210 Carla \u7684 \u4e0d\u540c \u6a21\u5757 \u3002 \u9009\u62e9 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u4e00\u4e2a \u6765 \u5bb9\u7eb3 \u65b0 \u529f\u80fd \u3002 \u5982\u679c \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u8054\u7cfb Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 \u56e2\u961f \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u63d0\u4ea4 \u65b0 \u4ee3\u7801 \u65f6 \u9075\u5faa \u5f53\u524d \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u3002 \u63d0\u4ea4 \u8d21\u732e \u548c \u65b0 \u529f\u80fd \u4e0d\u4f1a \u76f4\u63a5 \u5408\u5e76 \u5230 master \u5206\u652f \uff0c \u800c\u662f \u5408\u5e76 \u5230 \u540d\u4e3a dev \u7684 \u4e2d\u95f4 \u5206\u652f \u3002 \u8fd9\u79cd Gitflow \u5206\u652f \u6a21\u578b \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u7ef4\u62a4 \u7a33\u5b9a \u7684 \u4e3b \u5206\u652f \u3002 \u8be5 \u6a21\u578b \u9700\u8981 \u7279\u5b9a \u7684 \u8d21\u732e \u5de5\u4f5c \u6d41\u7a0b \u3002 \u59cb\u7ec8 \u8ba9 \u60a8 \u7684 dev \u5206\u652f \u66f4\u65b0 \u6700\u65b0 \u7684 \u66f4\u6539 \u3002 \u4ece \u540d\u4e3a username / name _ of _ the _ contribution \u7684 dev \u5b50 \u5206\u652f \u4e2d \u5f00\u53d1 \u8d21\u732e \u3002 \u8d21\u732e \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u4ece \u60a8 \u7684 \u5206\u652f \u5411 dev \u63d0\u4ea4 \u62c9\u53d6 \u8bf7\u6c42 \uff08 pull - request \uff09 \u3002 \u586b\u5199 \u63cf\u8ff0 \u65f6 \u5c3d\u91cf \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5728 \u5408\u5e76 \u4e4b\u524d \uff0c \u65b0 \u4ee3\u7801 \u9700\u8981 \u901a\u8fc7 \u4e00\u4e9b \u68c0\u67e5 \u3002 \u68c0\u67e5 \u7531 \u6301\u7eed \u96c6\u6210 \u7cfb\u7edf \u96c6\u6210\u7cfb\u7edf \u81ea\u52a8 \u8fd0\u884c \u3002 \u5982\u679c \u68c0\u67e5 \u6210\u529f \uff0c \u5c06\u4f1a \u51fa\u73b0 \u7eff\u8272 \u52fe\u53f7 \u3002 \u5982\u679c \u6709 \u7ea2\u8272 \u6807\u8bb0 \uff0c \u8bf7 \u76f8\u5e94 \u66f4\u6b63 \u4ee3\u7801 \u3002 \u4e00\u65e6 \u8d21\u732e \u88ab \u5408\u5e76 \u5230 dev \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u4e0e \u5176\u4f59 \u65b0 \u529f\u80fd \u4e00\u8d77 \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u5230 \u4e0b \u4e00\u4e2a \u7248\u672c \u65f6 \uff0c \u8be5 dev \u5206\u652f \u5c06 \u5408\u5e76 \u5230 master \uff0c \u5e76\u4e14 \u8d21\u732e \u5c06 \u53ef\u7528 \u5e76 \u516c\u5e03 \u3002 \u6e05\u5355 \u60a8 \u7684 \u5206\u652f \u5df2 \u4e0e dev \u5206\u652f \u4fdd\u6301 \u540c\u6b65 \uff0c \u5e76 \u901a\u8fc7 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u4e86 \u6d4b\u8bd5 \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u6269\u5c55 README / \u6587\u6863 \u3002 \u4ee3\u7801 \u7f16\u8bd1 \u6b63\u786e \u3002 \u6240\u6709 \u6d4b\u8bd5 \u5747 \u901a\u8fc7 make check \u3002 \u827a\u672f \u8d21\u732e \u827a\u672f \u8d21\u732e \u5305\u62ec \u8f66\u8f86 \u3001 \u884c\u4eba \u3001 \u5730\u56fe \u6216 Carla \u4e2d \u4f7f\u7528 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u578b \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u5b58\u50a8 \u5728 BitBucket \u5b58\u50a8 \u5e93\u4e2d \uff0c \u8be5 \u5b58\u50a8 \u5e93\u6709 \u4e00\u4e9b \u5e10\u6237 \u7a7a\u95f4 \u9650\u5236 \u3002 \u51fa\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8d21\u732e \u8d21\u732e\u8005 \u5fc5\u987b \u4e0e Carla \u56e2\u961f \u8054\u7cfb \uff0c \u5e76 \u8981\u6c42 \u4ed6\u4eec \u5728 \u5185\u5bb9 \u5b58\u50a8 \u5e93\u4e0a \u4e3a \u8d21\u732e \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 1 . \u521b\u5efa BitBucket \u8d26\u6237 \u3002 \u8bbf\u95ee Bitbucket \u9875\u9762 \u3002 2 . \u8054\u7cfb \u827a\u672f \u56e2\u961f \u4ee5 \u83b7\u53d6 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u7684 \u8bbf\u95ee \u6743\u9650 \u3002 \u52a0\u5165 Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8f6c \u81f3 \u8d21\u732e \u8d21\u732e\u8005 \u9891\u9053 \u5e76 \u8bf7\u6c42 \u8bbf\u95ee \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 3 . \u5c06 \u4e3a \u6bcf\u4e2a \u8d21\u732e \u8d21\u732e\u8005 \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 \u8be5 \u5206\u652f \u5c06 \u88ab \u547d\u540d \u4e3a contributors / contributor _ name \u3002 \u8be5 \u7528\u6237 \u6240 \u505a \u7684 \u6240\u6709 \u8d21\u732e \u90fd \u5e94 \u5728 \u76f8\u5e94 \u7684 \u5206\u652f \u4e2d \u505a\u51fa \u3002 4 . \u6784\u5efa Carla \u3002 \u4e3a\u4e86 \u505a\u51fa \u8d21\u732e \uff0c Carla \u6784\u5efa \u662f \u5fc5\u8981 \u7684 \u3002 \u6309\u7167 \u8bf4\u660e \u5728 Linux \u6216 Windows \u4e2d \u6784\u5efa \u3002 5 . \u4e0b\u8f7d \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 \u6309\u7167 \u8bf4\u660e \u66f4\u65b0 \u6b64\u5904 \u7684 \u5185\u5bb9 \u3002 6 . \u66f4\u65b0 \u5206\u652f \u4ee5 \u4e0e master \u540c\u6b65 \u3002 \u5206\u652f \u5e94 \u59cb\u7ec8 \u4f7f\u7528 master \u4e2d \u7684 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u66f4\u65b0 \u3002 7 . \u4e0a\u4f20 \u8d21\u732e \u3002 \u8fdb\u884c \u76f8\u5e94 \u7684 \u66f4\u6539 \u5e76 \u5c06 \u5206\u652f \u63a8\u9001 \u5230 origin \u3002 8 . \u7b49\u5f85 \u7f8e\u672f \u7f8e\u672f\u7ec4 \u5ba1\u6838 \u3002 \u4e00\u65e6 \u8d21\u732e \u4e0a\u4f20 \uff0c \u56e2\u961f \u5c06 \u68c0\u67e5 \u4e0e master \u5408\u5e76 \u7684 \u4e00\u5207 \u662f\u5426 \u51c6\u5907 \u597d \u3002 \u6587\u6863 \u8d21\u732e \u5982\u679c \u67d0\u4e9b \u6587\u6863 \u7f3a\u5931 \u3001 \u6a21\u7cca \u6216 \u4e0d \u7cbe\u786e \uff0c \u5219 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 \u9519\u8bef \u4e00\u6837 \u8fdb\u884c \u62a5\u544a \uff08 \u8bf7 \u9605\u8bfb \u4e0a \u4e00\u8282 \u6709\u5173 \u5982\u4f55 \u62a5\u544a \u9519\u8bef \uff09 \u3002 \u4f46\u662f \uff0c \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u5199 \u6587\u6863 \u6765 \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u6587\u6863 \u662f \u7528 Markdown \u548c HTML \u6807\u7b7e \u6df7\u5408 \u7f16\u5199 \u7684 \uff0c \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 CSS \u4ee3\u7801 \u7528\u4e8e \u8868\u683c \u6216 town slider \u7b49 \u529f\u80fd \u3002 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u5f00\u59cb \u7f16\u5199 \u6587\u6863 \u3002 \u91cd\u8981 \u8981 \u63d0\u4ea4 \u6587\u6863 \u8d21\u732e \uff0c \u8bf7 \u9075\u5faa \u4e0a\u9762 \u4ee3\u7801 \u8d21\u732e \u4e2d \u89e3\u91ca \u7684 \u76f8\u540c \u5de5\u4f5c \u6d41\u7a0b \u3002 \u800c\u8a00 \u603b\u800c\u8a00\u4e4b \uff0c \u8d21\u732e \u662f \u5728 \u6765\u81ea dev \u5206\u652f \u7684 \u5b50 \u5206\u652f \u4e2d \u505a\u51fa \u7684 \uff0c \u5e76 \u5408\u5e76 \u5230 \u8be5 \u5206\u652f \u3002 1 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6309\u7167 \u6587\u6863 \u4e2d \u7684 \u6b65\u9aa4 \u5728 Linux \u6216 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 2 . \u5b89\u88c5 MkDocs . MkDocs \u662f \u4e00\u4e2a \u7528\u4e8e \u6784\u5efa \u6587\u6863 \u7684 \u9759\u6001 \u7ad9\u70b9 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u3002 pip install mkdocs 3 . \u53ef\u89c6 \u53ef\u89c6\u5316 \u6587\u6863 \u3002 \u5728 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u5355\u51fb \u7ec8\u7aef \u4e2d \u663e\u793a \u7684 \u94fe\u63a5 \u4ee5 \u6253\u5f00 \u6587\u6863 \u6253\u5f00\u6587\u6863 \u7684 \u672c\u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 mkdocs serve 4 . \u521b\u5efa git \u5206\u652f \u3002 \u521b\u5efa \u65b0 \u5206\u652f \u65f6 \uff0c \u8bf7 \u786e\u4fdd \u4f4d\u4e8e dev \u5206\u652f \u4e2d \uff08 \u66f4\u65b0 \u5230 \u6700\u65b0 \u66f4\u6539 \uff09 \u3002 git checkout - b < contributor _ name > / < branch _ name > 5 . \u7f16\u5199 \u6587\u6863 \u3002 \u6309\u7167 \u6587\u6863 \u6807\u51c6 \u9875\u9762 \u4e2d \u7684 \u6307\u5357 \u7f16\u8f91 \u6587\u4ef6 \u3002 6 . \u63d0\u4ea4 \u66f4\u6539 \u3002 \u5728 GitHub \u5b58\u50a8 \u5e93\u4e2d \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \uff0c \u5e76 \u6dfb\u52a0 \u4e00\u4e2a \u5efa\u8bae \u7684 \u5ba1\u9605 \u8005 \u3002 \u586b\u5199 \u62c9\u53d6 \u8bf7\u6c42 \u63cf\u8ff0 \u65f6 \uff0c \u8bf7 \u5c1d\u8bd5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 7 . \u7b49\u5f85 \u5ba1\u6838 \u3002 \u56e2\u961f \u5c06 \u68c0\u67e5 \u5408\u5e76 \u6216 \u9700\u8981 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u662f\u5426 \u5df2 \u51c6\u5907 \u597d \u3002 \u7b14\u8bb0 \u672c\u5730 \u5b58\u50a8 \u5e93 \u5fc5\u987b \u4f7f\u7528 dev \u5206\u652f \u4e2d \u7684 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u8fdb\u884c \u66f4\u65b0 \u3002","title":"\u8d21\u732e \u6307\u5357"},{"location":"cont_contribution_guidelines/#carla","text":"Carla \u56e2\u961f \u5f88 \u9ad8\u5174 \u63a5\u53d7 \u4efb\u4f55 \u613f\u610f \u5408\u4f5c \u7684 \u4eba \u7684 \u8d21\u732e \u3002 \u6839\u636e \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u80fd\u529b \uff0c \u53ef\u4ee5 \u91c7\u7528 \u4e0d\u540c \u7684 \u65b9\u5f0f \u4e3a \u9879\u76ee \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u56e2\u961f \u5c06 \u5c3d \u6700\u5927 \u52aa\u529b \u5c06 \u8d21\u732e \u6210\u529f \u6574\u5408 \u5230 Carla \u4e2d \u3002 \u770b\u770b \u5427 \uff0c \u4e0d\u8981 \u72b9\u8c6b \uff01 \u62a5\u544a \u9519\u8bef \u8bf7\u6c42 \u529f\u80fd \u4ee3\u7801 \u8d21\u732e \u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce \u5f00\u59cb \u4e4b\u524d \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u63d0\u4ea4 \u6e05\u5355 \u827a\u672f \u8d21\u732e \u6587\u6863 \u8d21\u732e","title":"\u4e3a Carla \u505a\u51fa \u8d21\u732e"},{"location":"cont_contribution_guidelines/#_1","text":"\u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 Issues \u90e8\u5206 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 \u62a5\u544a \u65b0 \u9519\u8bef \u4e4b\u524d \uff0c \u8bf7 \u52a1\u5fc5 \u8fdb\u884c \u4e00\u4e9b \u68c0\u67e5 \u3002 1 . \u68c0\u67e5 \u662f\u5426 \u5df2 \u62a5\u544a \u95ee\u9898 \u3002 \u5728 GitHub \u4e0a \u7684 \u540c\u4e00 \u95ee\u9898 \u90e8\u5206 \u67e5\u627e \u5b83 \u3002 2 . \u9605\u8bfb \u6587\u6863 \u3002 \u786e\u4fdd \u95ee\u9898 \u662f \u4e00\u4e2a \u9519\u8bef \uff0c \u800c \u4e0d\u662f \u5bf9 Carla \u5e94\u8be5 \u5982\u4f55 \u5de5\u4f5c \u7684 \u8bef\u89e3 \u3002 \u9605\u8bfb \u6587\u6863 \u4e2d \u4e0e \u8be5 \u95ee\u9898 \u76f8\u5173 \u7684 \u9875\u9762 \u5e76 \u67e5\u770b \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u3002","title":"\u62a5\u544a \u9519\u8bef"},{"location":"cont_contribution_guidelines/#_2","text":"\u65b0 \u529f\u80fd \u7684 \u60f3\u6cd5 \u4e5f \u662f \u4e00\u79cd \u5f88 \u597d \u7684 \u8d21\u732e \u65b9\u5f0f \u3002 \u4efb\u4f55 \u53ef\u4ee5 \u6539\u5584 \u7528\u6237 \u4f53\u9a8c \u7684 \u5efa\u8bae \u90fd \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7684 \u76f8\u5e94 GitHub \u90e8\u5206 \u63d0\u4ea4 \u3002","title":"\u8bf7\u6c42 \u529f\u80fd"},{"location":"cont_contribution_guidelines/#_3","text":"\u5728 \u5f00\u59cb \u52a8\u624b \u7f16\u7801 \u4e4b\u524d \uff0c \u8bf7 \u67e5\u770b Issues \u677f\u5757 \u4ee5 \u4e86\u89e3 \u56e2\u961f \u5df2\u7ecf \u5728 \u505a \u4ec0\u4e48 \uff0c \u4ee5 \u907f\u514d \u91cd\u53e0 \u3002 \u5982 \u6709 \u7591\u95ee \u6216 \u8ba8\u8bba \u5982\u4f55 \u7ee7\u7eed \uff0c \u8bf7 \u8054\u7cfb \u6211\u4eec \u4e4b\u4e00 \uff08 \u6216 \u53d1\u9001 \u7535\u5b50 \u90ae\u4ef6 \u7535\u5b50\u90ae\u4ef6 \u81f3 carla . simulator @ gmail . com \uff09 \u3002 \u4e3a\u4e86 \u5f00\u59cb \u5de5\u4f5c \uff0c \u8bf7 \u521b\u5efa Carla \u5b58\u50a8 \u5e93 \u7684 \u5206\u53c9 \uff0c \u5e76 \u5c06 \u6240\u8ff0 \u5206\u53c9 \u514b\u9686 \u5230 \u60a8 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u3002 \u8bf7 \u8bb0\u4f4f \u4f7f \u60a8 \u7684 \u5206\u53c9 \u4e0e \u539f\u59cb \u5b58\u50a8 \u5e93 \u4fdd\u6301 \u540c\u6b65 \u3002","title":"\u4ee3\u7801 \u8d21\u732e"},{"location":"cont_contribution_guidelines/#_4","text":"\u6709\u5173 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u8fdb\u884c C++ \u7f16\u7a0b \u7684 \u57fa\u672c \u4ecb\u7ecd \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u865a\u5e7b \u5f15\u64ce \u7684 C++ \u7f16\u7a0b \u6559\u7a0b \u3002 \u7f51\u4e0a \u8fd8\u6709 \u5176\u4ed6 \u9009\u9879 \uff0c \u5176\u4e2d \u4e00\u4e9b \u4e0d\u662f \u514d\u8d39 \u7684 \u3002 Udemy \u7684 \u865a\u5e7b C++ \u8bfe\u7a0b \u975e\u5e38 \u5b8c\u6574 \uff0c \u5e76\u4e14 \u901a\u5e38 \u63d0\u4f9b \u4ef7\u683c \u975e\u5e38 \u5b9e\u60e0 \u7684 \u4f18\u60e0 \u3002","title":"\u4e86\u89e3 \u865a\u5e7b \u5f15\u64ce"},{"location":"cont_contribution_guidelines/#_5","text":"\u67e5\u770b Carla \u8bbe\u8ba1 \u6587\u6863 \uff0c \u4e86\u89e3 \u7ec4\u6210 Carla \u7684 \u4e0d\u540c \u6a21\u5757 \u3002 \u9009\u62e9 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u4e00\u4e2a \u6765 \u5bb9\u7eb3 \u65b0 \u529f\u80fd \u3002 \u5982\u679c \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u8054\u7cfb Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 \u56e2\u961f \u3002","title":"\u5f00\u59cb \u4e4b\u524d"},{"location":"cont_contribution_guidelines/#_6","text":"\u63d0\u4ea4 \u65b0 \u4ee3\u7801 \u65f6 \u9075\u5faa \u5f53\u524d \u7684 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u3002","title":"\u7f16\u7801\u6807\u51c6"},{"location":"cont_contribution_guidelines/#_7","text":"\u8d21\u732e \u548c \u65b0 \u529f\u80fd \u4e0d\u4f1a \u76f4\u63a5 \u5408\u5e76 \u5230 master \u5206\u652f \uff0c \u800c\u662f \u5408\u5e76 \u5230 \u540d\u4e3a dev \u7684 \u4e2d\u95f4 \u5206\u652f \u3002 \u8fd9\u79cd Gitflow \u5206\u652f \u6a21\u578b \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u7ef4\u62a4 \u7a33\u5b9a \u7684 \u4e3b \u5206\u652f \u3002 \u8be5 \u6a21\u578b \u9700\u8981 \u7279\u5b9a \u7684 \u8d21\u732e \u5de5\u4f5c \u6d41\u7a0b \u3002 \u59cb\u7ec8 \u8ba9 \u60a8 \u7684 dev \u5206\u652f \u66f4\u65b0 \u6700\u65b0 \u7684 \u66f4\u6539 \u3002 \u4ece \u540d\u4e3a username / name _ of _ the _ contribution \u7684 dev \u5b50 \u5206\u652f \u4e2d \u5f00\u53d1 \u8d21\u732e \u3002 \u8d21\u732e \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u4ece \u60a8 \u7684 \u5206\u652f \u5411 dev \u63d0\u4ea4 \u62c9\u53d6 \u8bf7\u6c42 \uff08 pull - request \uff09 \u3002 \u586b\u5199 \u63cf\u8ff0 \u65f6 \u5c3d\u91cf \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5728 \u5408\u5e76 \u4e4b\u524d \uff0c \u65b0 \u4ee3\u7801 \u9700\u8981 \u901a\u8fc7 \u4e00\u4e9b \u68c0\u67e5 \u3002 \u68c0\u67e5 \u7531 \u6301\u7eed \u96c6\u6210 \u7cfb\u7edf \u96c6\u6210\u7cfb\u7edf \u81ea\u52a8 \u8fd0\u884c \u3002 \u5982\u679c \u68c0\u67e5 \u6210\u529f \uff0c \u5c06\u4f1a \u51fa\u73b0 \u7eff\u8272 \u52fe\u53f7 \u3002 \u5982\u679c \u6709 \u7ea2\u8272 \u6807\u8bb0 \uff0c \u8bf7 \u76f8\u5e94 \u66f4\u6b63 \u4ee3\u7801 \u3002 \u4e00\u65e6 \u8d21\u732e \u88ab \u5408\u5e76 \u5230 dev \u4e2d \uff0c \u5c31 \u53ef\u4ee5 \u4e0e \u5176\u4f59 \u65b0 \u529f\u80fd \u4e00\u8d77 \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u5230 \u4e0b \u4e00\u4e2a \u7248\u672c \u65f6 \uff0c \u8be5 dev \u5206\u652f \u5c06 \u5408\u5e76 \u5230 master \uff0c \u5e76\u4e14 \u8d21\u732e \u5c06 \u53ef\u7528 \u5e76 \u516c\u5e03 \u3002","title":"\u63d0\u4ea4"},{"location":"cont_contribution_guidelines/#_8","text":"\u60a8 \u7684 \u5206\u652f \u5df2 \u4e0e dev \u5206\u652f \u4fdd\u6301 \u540c\u6b65 \uff0c \u5e76 \u901a\u8fc7 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u4e86 \u6d4b\u8bd5 \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u6269\u5c55 README / \u6587\u6863 \u3002 \u4ee3\u7801 \u7f16\u8bd1 \u6b63\u786e \u3002 \u6240\u6709 \u6d4b\u8bd5 \u5747 \u901a\u8fc7 make check \u3002","title":"\u6e05\u5355"},{"location":"cont_contribution_guidelines/#_9","text":"\u827a\u672f \u8d21\u732e \u5305\u62ec \u8f66\u8f86 \u3001 \u884c\u4eba \u3001 \u5730\u56fe \u6216 Carla \u4e2d \u4f7f\u7528 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u578b \u7684 \u8d44\u4ea7 \u3002 \u8fd9\u4e9b \u5b58\u50a8 \u5728 BitBucket \u5b58\u50a8 \u5e93\u4e2d \uff0c \u8be5 \u5b58\u50a8 \u5e93\u6709 \u4e00\u4e9b \u5e10\u6237 \u7a7a\u95f4 \u9650\u5236 \u3002 \u51fa\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8d21\u732e \u8d21\u732e\u8005 \u5fc5\u987b \u4e0e Carla \u56e2\u961f \u8054\u7cfb \uff0c \u5e76 \u8981\u6c42 \u4ed6\u4eec \u5728 \u5185\u5bb9 \u5b58\u50a8 \u5e93\u4e0a \u4e3a \u8d21\u732e \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 1 . \u521b\u5efa BitBucket \u8d26\u6237 \u3002 \u8bbf\u95ee Bitbucket \u9875\u9762 \u3002 2 . \u8054\u7cfb \u827a\u672f \u56e2\u961f \u4ee5 \u83b7\u53d6 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u7684 \u8bbf\u95ee \u6743\u9650 \u3002 \u52a0\u5165 Discord \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u8f6c \u81f3 \u8d21\u732e \u8d21\u732e\u8005 \u9891\u9053 \u5e76 \u8bf7\u6c42 \u8bbf\u95ee \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 3 . \u5c06 \u4e3a \u6bcf\u4e2a \u8d21\u732e \u8d21\u732e\u8005 \u521b\u5efa \u4e00\u4e2a \u5206\u652f \u3002 \u8be5 \u5206\u652f \u5c06 \u88ab \u547d\u540d \u4e3a contributors / contributor _ name \u3002 \u8be5 \u7528\u6237 \u6240 \u505a \u7684 \u6240\u6709 \u8d21\u732e \u90fd \u5e94 \u5728 \u76f8\u5e94 \u7684 \u5206\u652f \u4e2d \u505a\u51fa \u3002 4 . \u6784\u5efa Carla \u3002 \u4e3a\u4e86 \u505a\u51fa \u8d21\u732e \uff0c Carla \u6784\u5efa \u662f \u5fc5\u8981 \u7684 \u3002 \u6309\u7167 \u8bf4\u660e \u5728 Linux \u6216 Windows \u4e2d \u6784\u5efa \u3002 5 . \u4e0b\u8f7d \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u3002 \u6309\u7167 \u8bf4\u660e \u66f4\u65b0 \u6b64\u5904 \u7684 \u5185\u5bb9 \u3002 6 . \u66f4\u65b0 \u5206\u652f \u4ee5 \u4e0e master \u540c\u6b65 \u3002 \u5206\u652f \u5e94 \u59cb\u7ec8 \u4f7f\u7528 master \u4e2d \u7684 \u6700\u65b0 \u66f4\u6539 \u8fdb\u884c \u66f4\u65b0 \u3002 7 . \u4e0a\u4f20 \u8d21\u732e \u3002 \u8fdb\u884c \u76f8\u5e94 \u7684 \u66f4\u6539 \u5e76 \u5c06 \u5206\u652f \u63a8\u9001 \u5230 origin \u3002 8 . \u7b49\u5f85 \u7f8e\u672f \u7f8e\u672f\u7ec4 \u5ba1\u6838 \u3002 \u4e00\u65e6 \u8d21\u732e \u4e0a\u4f20 \uff0c \u56e2\u961f \u5c06 \u68c0\u67e5 \u4e0e master \u5408\u5e76 \u7684 \u4e00\u5207 \u662f\u5426 \u51c6\u5907 \u597d \u3002","title":"\u827a\u672f \u8d21\u732e"},{"location":"cont_contribution_guidelines/#_10","text":"\u5982\u679c \u67d0\u4e9b \u6587\u6863 \u7f3a\u5931 \u3001 \u6a21\u7cca \u6216 \u4e0d \u7cbe\u786e \uff0c \u5219 \u53ef\u4ee5 \u50cf \u4efb\u4f55 \u5176\u4ed6 \u9519\u8bef \u4e00\u6837 \u8fdb\u884c \u62a5\u544a \uff08 \u8bf7 \u9605\u8bfb \u4e0a \u4e00\u8282 \u6709\u5173 \u5982\u4f55 \u62a5\u544a \u9519\u8bef \uff09 \u3002 \u4f46\u662f \uff0c \u7528\u6237 \u53ef\u4ee5 \u901a\u8fc7 \u7f16\u5199 \u6587\u6863 \u6765 \u505a\u51fa \u8d21\u732e \u3002 \u8be5 \u6587\u6863 \u662f \u7528 Markdown \u548c HTML \u6807\u7b7e \u6df7\u5408 \u7f16\u5199 \u7684 \uff0c \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 CSS \u4ee3\u7801 \u7528\u4e8e \u8868\u683c \u6216 town slider \u7b49 \u529f\u80fd \u3002 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u5f00\u59cb \u7f16\u5199 \u6587\u6863 \u3002 \u91cd\u8981 \u8981 \u63d0\u4ea4 \u6587\u6863 \u8d21\u732e \uff0c \u8bf7 \u9075\u5faa \u4e0a\u9762 \u4ee3\u7801 \u8d21\u732e \u4e2d \u89e3\u91ca \u7684 \u76f8\u540c \u5de5\u4f5c \u6d41\u7a0b \u3002 \u800c\u8a00 \u603b\u800c\u8a00\u4e4b \uff0c \u8d21\u732e \u662f \u5728 \u6765\u81ea dev \u5206\u652f \u7684 \u5b50 \u5206\u652f \u4e2d \u505a\u51fa \u7684 \uff0c \u5e76 \u5408\u5e76 \u5230 \u8be5 \u5206\u652f \u3002 1 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u6309\u7167 \u6587\u6863 \u4e2d \u7684 \u6b65\u9aa4 \u5728 Linux \u6216 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 2 . \u5b89\u88c5 MkDocs . MkDocs \u662f \u4e00\u4e2a \u7528\u4e8e \u6784\u5efa \u6587\u6863 \u7684 \u9759\u6001 \u7ad9\u70b9 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u3002 pip install mkdocs 3 . \u53ef\u89c6 \u53ef\u89c6\u5316 \u6587\u6863 \u3002 \u5728 \u4e3b Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u5355\u51fb \u7ec8\u7aef \u4e2d \u663e\u793a \u7684 \u94fe\u63a5 \u4ee5 \u6253\u5f00 \u6587\u6863 \u6253\u5f00\u6587\u6863 \u7684 \u672c\u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 mkdocs serve 4 . \u521b\u5efa git \u5206\u652f \u3002 \u521b\u5efa \u65b0 \u5206\u652f \u65f6 \uff0c \u8bf7 \u786e\u4fdd \u4f4d\u4e8e dev \u5206\u652f \u4e2d \uff08 \u66f4\u65b0 \u5230 \u6700\u65b0 \u66f4\u6539 \uff09 \u3002 git checkout - b < contributor _ name > / < branch _ name > 5 . \u7f16\u5199 \u6587\u6863 \u3002 \u6309\u7167 \u6587\u6863 \u6807\u51c6 \u9875\u9762 \u4e2d \u7684 \u6307\u5357 \u7f16\u8f91 \u6587\u4ef6 \u3002 6 . \u63d0\u4ea4 \u66f4\u6539 \u3002 \u5728 GitHub \u5b58\u50a8 \u5e93\u4e2d \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \uff0c \u5e76 \u6dfb\u52a0 \u4e00\u4e2a \u5efa\u8bae \u7684 \u5ba1\u9605 \u8005 \u3002 \u586b\u5199 \u62c9\u53d6 \u8bf7\u6c42 \u63cf\u8ff0 \u65f6 \uff0c \u8bf7 \u5c1d\u8bd5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5177\u6709 \u63cf\u8ff0 \u63cf\u8ff0\u6027 \u3002 7 . \u7b49\u5f85 \u5ba1\u6838 \u3002 \u56e2\u961f \u5c06 \u68c0\u67e5 \u5408\u5e76 \u6216 \u9700\u8981 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u662f\u5426 \u5df2 \u51c6\u5907 \u597d \u3002 \u7b14\u8bb0 \u672c\u5730 \u5b58\u50a8 \u5e93 \u5fc5\u987b \u4f7f\u7528 dev \u5206\u652f \u4e2d \u7684 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u8fdb\u884c \u66f4\u65b0 \u3002","title":"\u6587\u6863 \u8d21\u732e"},{"location":"cont_doc_standard/","text":"\u6587\u6863 \u6807\u51c6 \u672c \u6587\u6863 \u5c06 \u4f5c\u4e3a \u4e3a \u6587\u6863 \u505a\u51fa \u8d21\u732e \u800c \u9700\u8981 \u9075\u5faa \u7684 \u4e00\u4e9b \u89c4\u5219 \u7684 \u6307\u5357 \u548c \u793a\u4f8b \u3002 \u6587\u6863 \u7ed3\u6784 \u89c4\u5219 \u4f8b\u5916 \u60c5\u51b5 \u4f8b\u5916\u60c5\u51b5 \u6587\u6863 \u7ed3\u6784 \u6211\u4eec \u548c extra . css \u4e00\u8d77 \uff0c \u6df7\u5408 \u4f7f\u7528 Markdown \u548c HTML \u6807\u7b7e \u6765\u81ea \u5b9a\u4e49 \u6587\u6863 \u548c \u6587\u4ef6 \u3002 \u8981 \u66f4\u65b0 Python API \u6587\u6863 \uff0c \u60a8 \u9700\u8981 \u7f16\u8f91 carla / PythonAPI / docs / \u5185\u90e8 \u76f8\u5e94 \u7684 YAML \u6587\u4ef6 \u5e76 \u8fd0\u884c doc _ gen . py \u6216 make PythonAPI . docs \uff0c \u800c \u4e0d\u662f \u76f4\u63a5 \u4fee\u6539 Markdown \u3002 \u8fd9 \u5c06 \u5728 carla / Docs / \u4e2d \u91cd\u65b0 \u751f\u6210 \u76f8\u5e94 \u7684 Markdown \u6587\u4ef6 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u8f93\u5165 \u5230 mkdocs . \u89c4\u5219 \u5404\u8282 \u4e4b\u95f4 \u548c \u6587\u6863 \u672b\u5c3e \u59cb\u7ec8 \u7559\u6709 \u7a7a\u884c \u3002 \u9664 HTML \u76f8\u5173 \u5185\u5bb9 \u3001 Markdown \u8868\u683c \u3001 \u4ee3\u7801 \u7247\u6bb5 \u548c \u5f15\u7528 \u94fe\u63a5 \u5916 \uff0c \u4e66\u5199 \u4e0d \u5e94 \u8d85\u8fc7 100 \u5217 \u3002 \u5982\u679c \u5185\u8054 \u94fe\u63a5 \u8d85\u51fa \u9650\u5236 \uff0c \u8bf7 \u4f7f\u7528 \u5f15\u7528 \u7684 [ name ] [ reference _ link ] markdown \u7b26\u53f7 [ reference _ link ] : https : / / \uff0c \u800c \u4e0d\u662f [ name ] ( https : / / ) \u3002 \u4f7f\u7528 < br > \u8fdb\u884c \u5185\u8054 \u8df3\u8f6c \uff0c \u800c \u4e0d\u662f \u5728 \u884c\u5c3e \u7559\u4e0b \u4e24\u4e2a \u7a7a\u683c \u3002 \u5728 \u65b0\u9875 \u9875\u9762 \u65b0\u9875\u9762 \u7684 \u5f00\u5934 \u4f7f\u7528 < h1 > Title < / h1 > \uff0c \u4ee5 \u5236\u4f5c \u6807\u9898 \u6216 < hx > Heading < hx > \u5236\u4f5c \u4e0d\u4f1a \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e0a \u7684 \u6807\u9898 \u3002 \u4f7f\u7528 ------ \u5f3a\u8c03 \u6807\u9898 \u6216 # \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e0b\u5212 \u5212\u7ebf \u4e0b\u5212\u7ebf \u6765 \u5236\u4f5c \u6807\u9898 \u5e76 \u5c06 \u5176 \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e2d \u3002 \u4f8b\u5916 \u60c5\u51b5 \u4f8b\u5916\u60c5\u51b5 \u901a\u8fc7 Python \u811a\u672c \u751f\u6210 \u7684 \u6587\u6863 \uff0c \u4f8b\u5982 PythonAPI \u53c2\u8003 \u65b9\u4fbf \u7684 markdown cheatsheet \u3002","title":"\u6587\u6863 \u6807\u51c6"},{"location":"cont_doc_standard/#_1","text":"\u672c \u6587\u6863 \u5c06 \u4f5c\u4e3a \u4e3a \u6587\u6863 \u505a\u51fa \u8d21\u732e \u800c \u9700\u8981 \u9075\u5faa \u7684 \u4e00\u4e9b \u89c4\u5219 \u7684 \u6307\u5357 \u548c \u793a\u4f8b \u3002 \u6587\u6863 \u7ed3\u6784 \u89c4\u5219 \u4f8b\u5916 \u60c5\u51b5 \u4f8b\u5916\u60c5\u51b5","title":"\u6587\u6863 \u6807\u51c6"},{"location":"cont_doc_standard/#_2","text":"\u6211\u4eec \u548c extra . css \u4e00\u8d77 \uff0c \u6df7\u5408 \u4f7f\u7528 Markdown \u548c HTML \u6807\u7b7e \u6765\u81ea \u5b9a\u4e49 \u6587\u6863 \u548c \u6587\u4ef6 \u3002 \u8981 \u66f4\u65b0 Python API \u6587\u6863 \uff0c \u60a8 \u9700\u8981 \u7f16\u8f91 carla / PythonAPI / docs / \u5185\u90e8 \u76f8\u5e94 \u7684 YAML \u6587\u4ef6 \u5e76 \u8fd0\u884c doc _ gen . py \u6216 make PythonAPI . docs \uff0c \u800c \u4e0d\u662f \u76f4\u63a5 \u4fee\u6539 Markdown \u3002 \u8fd9 \u5c06 \u5728 carla / Docs / \u4e2d \u91cd\u65b0 \u751f\u6210 \u76f8\u5e94 \u7684 Markdown \u6587\u4ef6 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u8f93\u5165 \u5230 mkdocs .","title":"\u6587\u6863 \u7ed3\u6784"},{"location":"cont_doc_standard/#_3","text":"\u5404\u8282 \u4e4b\u95f4 \u548c \u6587\u6863 \u672b\u5c3e \u59cb\u7ec8 \u7559\u6709 \u7a7a\u884c \u3002 \u9664 HTML \u76f8\u5173 \u5185\u5bb9 \u3001 Markdown \u8868\u683c \u3001 \u4ee3\u7801 \u7247\u6bb5 \u548c \u5f15\u7528 \u94fe\u63a5 \u5916 \uff0c \u4e66\u5199 \u4e0d \u5e94 \u8d85\u8fc7 100 \u5217 \u3002 \u5982\u679c \u5185\u8054 \u94fe\u63a5 \u8d85\u51fa \u9650\u5236 \uff0c \u8bf7 \u4f7f\u7528 \u5f15\u7528 \u7684 [ name ] [ reference _ link ] markdown \u7b26\u53f7 [ reference _ link ] : https : / / \uff0c \u800c \u4e0d\u662f [ name ] ( https : / / ) \u3002 \u4f7f\u7528 < br > \u8fdb\u884c \u5185\u8054 \u8df3\u8f6c \uff0c \u800c \u4e0d\u662f \u5728 \u884c\u5c3e \u7559\u4e0b \u4e24\u4e2a \u7a7a\u683c \u3002 \u5728 \u65b0\u9875 \u9875\u9762 \u65b0\u9875\u9762 \u7684 \u5f00\u5934 \u4f7f\u7528 < h1 > Title < / h1 > \uff0c \u4ee5 \u5236\u4f5c \u6807\u9898 \u6216 < hx > Heading < hx > \u5236\u4f5c \u4e0d\u4f1a \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e0a \u7684 \u6807\u9898 \u3002 \u4f7f\u7528 ------ \u5f3a\u8c03 \u6807\u9898 \u6216 # \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e0b\u5212 \u5212\u7ebf \u4e0b\u5212\u7ebf \u6765 \u5236\u4f5c \u6807\u9898 \u5e76 \u5c06 \u5176 \u663e\u793a \u5728 \u5bfc\u822a \u680f\u4e2d \u3002","title":"\u89c4\u5219"},{"location":"cont_doc_standard/#_4","text":"\u901a\u8fc7 Python \u811a\u672c \u751f\u6210 \u7684 \u6587\u6863 \uff0c \u4f8b\u5982 PythonAPI \u53c2\u8003 \u65b9\u4fbf \u7684 markdown cheatsheet \u3002","title":"\u4f8b\u5916\u60c5\u51b5"},{"location":"content_authoring_large_maps/","text":"\u4e3a Carla \u521b\u5efa \u5927 \u5730\u56fe Carla \u4e2d \u5927 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 11 \u548c 12 \uff09 \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 10 \uff09 \u4e0d\u540c \u3002 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u56fe\u5757 \uff0c \u5373 \u5730\u56fe \u7684 \u7ec6\u5206 \uff0c \u901a\u5e38 \u5927\u5c0f \u8bbe\u7f6e \u4e3a \u7ea6 1 \u81f3 2 \u516c\u91cc \u3002 \u8fd9\u4e9b \u56fe\u5757 \u5212\u5206 \u4e86 \u5730\u56fe \uff0c \u4ee5\u4fbf \u4ec5 \u5c06 \u9700\u8981 \u7684 \u5730\u56fe \u90e8\u5206 \u52a0\u8f7d \u5230 \u56fe\u5f62 \u5185\u5b58 \u4e2d\u4ee5 \u8fdb\u884c \u9ad8\u6548 \u6e32\u67d3 \u3002 \u4e0d \u9700\u8981 \u7684 \u56fe\u5757 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u5e76 \u51c6\u5907 \u5728 \u9700\u8981 \u65f6 \u52a0\u8f7d \u3002 \u901a\u5e38 \uff0c \u4f1a \u52a0\u8f7d \u81ea\u6211 \u8f66\u8f86 \u4f4d\u7f6e \u4e2d \u7684 \u56fe\u5757 \u65c1\u8fb9 \u7684 \u56fe\u5757 \uff0c \u4f46 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u52a0\u8f7d \u66f4 \u591a \u56fe\u5757 \u3002 \u5f53 Carla \u542f\u52a8 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u8bbe\u7f6e \u4e2d \u4fee\u6539 \u6b64 \u884c\u4e3a \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe RoadRunner \u662f \u63a8\u8350 \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u7684 \u8f6f\u4ef6 \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u4f7f\u7528 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe \u4ee5\u53ca \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5bfc\u5165 \u548c \u5904\u7406 \u5927 \u5730\u56fe \u3002 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe \u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u590d\u6742 \u5730\u56fe \u7684 \u5177\u4f53 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRunner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u4ece \u8868\u9762 \u4e0a \u770b \uff0c \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u4e0e \u6784\u5efa \u6807\u51c6 \u5730\u56fe \u57fa\u672c \u672c\u76f8 \u76f8\u540c \u57fa\u672c\u76f8\u540c \uff0c \u53ea\u662f \u6bd4\u4f8b \u66f4\u5927 \u3002 \u5dee\u5f02 \u4e3b\u8981 \u5728\u4e8e \u5730\u56fe \u7684 \u5bfc\u51fa \u65b9\u5f0f \u3002 \u8fd9\u91cc \u6211\u4eec \u521b\u5efa \u4e86 \u4e00\u5f20 \u5927\u7ea6 1.2 \u516c\u91cc \u5927\u5c0f \u7684 \u5927 \u5730\u56fe \u3002 \u5f53 \u6211\u4eec \u5bfc\u51fa \u5b83 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 700m \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u56e0\u6b64 \u5730\u56fe \u5e94\u8be5 \u5206\u5272 \u6210 \u5927\u7ea6 4 \u4e2a \u56fe\u5757 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5efa\u8bae \u7684 \u5730\u56fe \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20x20 km 2 \u3002 \u5927\u4e8e \u6b64 \u5927\u5c0f \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002 \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe \u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u901a\u8fc7 \u5355\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \uff08 World settings tool \uff09 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5bfc\u51fa \u5b8c\u6574 \u5730\u56fe \u3002 \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb \u201c \u5e94\u7528 \u4e16\u754c \u66f4\u6539 \u201d \uff08 Apply World Changes \uff09 \u3002 \u4f7f\u7528 \u573a\u666f \u5bfc\u51fa \u9884\u89c8 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 \u5982\u4f55 \u5c06 \u5730\u56fe \u5212\u5206 \u4e3a \u56fe\u5757 \u4ee5\u4f9b \u5bfc\u51fa \u3002 \u8c03\u6574 \u201c \u5e73\u94fa \u9009\u9879 \u201d \uff08 Tiling Options \uff09 \u83dc\u5355 \u4e2d \u7684 \u201c \u5e73\u94fa \u5927\u5c0f \u201d \uff08 Tile Size \uff09 \u53c2\u6570 \uff0c \u627e\u5230 \u9002\u5408 \u60a8 \u5730\u56fe \u7684 \u5e73\u94fa \u5927\u5c0f \uff0c \u6309 \u201c \u5237\u65b0 \u573a\u666f \u201d \uff08 Refresh Scene \uff09 \u67e5\u770b \u8c03\u6574 \u7684 \u5f71\u54cd \u3002 \u7b14\u8bb0 Tile size : \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5757 \u5927\u5c0f \u662f \u4e00\u4e2a \u5224\u65ad \u8c03\u7528 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 \u65f6 \u80fd\u591f \u6709\u6548 \u5de5\u4f5c \u3002 \u5982\u679c \u60a8 \u7684 \u5730\u56fe \u5305\u542b \u5bc6\u96c6 \u7684 3D \u8d44\u6e90 \uff08 \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \uff09 \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d7\u76ca \u4e8e \u8f83 \u5c0f \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u4ee5 \u9632\u6b62 \u52a0\u8f7d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u8d44\u6e90 \u3002 \u4f46\u662f \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u589e\u52a0 \u6784\u5efa \u5730\u56fe \u6240 \u9700 \u5de5\u4f5c \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 Carla \u5f15\u64ce \u652f\u6301 \u7684 \u6700\u5927 \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 2 \u516c\u91cc \uff0c \u6211\u4eec \u5efa\u8bae \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 1 \u516c\u91cc \u5de6\u53f3 \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u5bfc\u51fa . fbx \u51e0\u4f55 \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > Firebox ( . fbx ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a \u901a\u8fc7 \u5206\u6bb5 \u5206\u5272 \uff08 Split by Segmentation \uff09 : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u5e76 \u6539\u8fdb \u884c\u4eba \u5bfc\u822a \u3002 \u4e8c\u7ef4 \u7eb9\u7406 \u7684 \u529b\u91cf \uff08 Power of Two Texture Dimensions \uff09 : \u63d0\u9ad8 \u6027\u80fd \u3002 \u5d4c\u5165 \u7eb9\u7406 \uff08 Embed Textures \uff09 : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 \u5bfc\u51fa \u5230 \u56fe\u5757 \uff08 Export to Tiles \uff09 : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 2000 x 2000 \u3002 \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 \uff08 Export Individual Tiles \uff09 : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u56fe\u5757 \u3002 3 . \u5bfc\u51fa . xodr OpenDrive \u5730\u56fe \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u5728 \u60a8 \u9009\u62e9 \u5bfc\u51fa \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u6709 \u51e0\u4e2a \u65b0 \u6587\u4ef6 \uff0c \u4e00\u4e2a . xodr \u6587\u4ef6 \u548c \u51e0\u4e2a . fbx \u6587\u4ef6 \uff1a \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u6839 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u5728 Roadrunner \u4e2d \u521b\u5efa \u4e86 \u5927 \u5730\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u5165 Carla \u4e2d \u3002 RoadRunner \u521b\u5efa \u7684 \u6587\u4ef6 \u5e94 \u8f6c\u79fb \u5230 \u7528\u4e8e \u6784\u5efa Carla \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u76ee\u5f55 \u5185 \u3002 \u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002 \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u8b66\u544a \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c RoadRunner \u5e94 \u7b26\u5408 \u6b64 \u547d\u540d \u7ea6\u5b9a \uff0c \u4f46 \u5728 \u51c6\u5907 \u5bfc\u5165 Carla \u4e4b\u524d \u503c\u5f97 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \uff0c \u56e0\u4e3a \u6b64 \u9636\u6bb5 \u5f15\u8d77 \u7684 \u95ee\u9898 \u7a0d\u540e \u4fee\u590d \u8d77\u6765 \u53ef\u80fd \u4f1a \u5f88 \u4e4f\u5473 \u3002 \u6700\u7ec8 \u5730\u56fe \u4e2d \u7684 \u56fe\u5757 \u5c06 \u5982\u4e0b \u56fe \u6240\u793a \u6392\u5217 \uff1a \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 LargeMap . xodr \u7b14\u8bb0 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 package . json \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 . json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c . xodr \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u6599 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx tile \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" LargeMap \" , \" xodr \" : \" . / LargeMap . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 700 , \" tiles \" : [ \" . / LargeMap _ Tile _ 0 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 0 _ 1 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] } \u8fdb\u884c \u5bfc\u5165 \u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 \u8be5 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76 \u51c6\u5907 \u597d \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u5efa\u7b51 \u7b49 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u73b0\u5728 \u60a8 \u5df2 \u5bfc\u5165 \u65b0 \u5730\u56fe \uff0c \u60a8 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u9ed8\u8ba4 \u547d\u540d map _ package \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u627e\u5230 \u8be5 \u5730\u56fe \u3002 \u5982\u679c \u60a8 \u5728 \u5bfc\u5165 \u547d\u4ee4 \u4e2d \u4f7f\u7528 \u53c2\u6570 \" -- package = < package _ name > \" \uff0c \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u6709 \u4e00\u4e2a \u5907\u7528 \u540d\u79f0 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \uff0c \u6253\u5f00 \u8be5 Maps \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u6253\u5f00 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u91cc\u9762 \u4f60 \u4f1a \u53d1\u73b0 \u51e0\u4e2a \u6a59\u8272 \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u6574\u4e2a \u5730\u56fe \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \uff0c \u800c \u4ece RoadRunner \u5bfc\u51fa \u7684 \u6bcf\u4e2a \u56fe\u5757 \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \u3002 \u8981 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7b49 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \uff0c \u8bf7 \u53cc\u51fb \u8981 \u5904\u7406 \u7684 \u56fe\u5757 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u4f8b\u5982 \u672c\u4f8b \u4e2d LargeMap _ Tile _ 0 _ 0 \uff09 \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u52a0\u8f7d \u5230 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u5757 \u6ca1\u6709 \u4efb\u4f55 \u7167\u660e \u8bbe\u7f6e \uff0c \u56e0\u6b64 \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u89c6\u56fe \u6a21\u5f0f \u4ece \u66f4\u6539 Lit \u4e3a Unlit \u624d\u80fd \u5728 \u52a0\u8f7d \u56fe\u5757 \u540e \u770b\u5230 \u5b83 \u3002 \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b \u5411 \u5730\u56fe \u6dfb\u52a0 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u786e\u4fdd \u4fdd\u5b58 \u5bf9 \u6b63\u5728 \u5904\u7406 \u7684 \u56fe\u5757 \u6240 \u505a \u7684 \u4fee\u6539 \uff0c \u7136\u540e \u52a0\u8f7d \u4e0b \u4e00\u4e2a \u56fe\u5757 \u5e76 \u91cd\u590d \u8be5 \u8fc7\u7a0b \u3002 \u60a8 \u65e0\u6cd5 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u6574\u4e2a \u5730\u56fe \uff0c \u56e0\u6b64 \u52a0\u8f7d \uff08 \u901a\u8fc7 \u53cc\u51fb \uff09 \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5bf9\u4e8e \u88c5\u9970 \u5730\u56fe \u5c06 \u6ca1\u6709 \u7528\u5904 \u3002 \u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u5982\u679c \u60a8 \u60f3 \u52a0\u8f7d \u5730\u56fe \u5e76 \u5f00\u59cb \u4eff\u771f \u8fdb\u884c \u5b9e\u9a8c \uff0c \u60a8 \u5e94\u8be5 \u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u53cc\u51fb \u5e26\u6709 \u6839 \u5730\u56fe \u540d\u79f0 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5e76 \u7b49\u5f85 \u5176 \u52a0\u8f7d \u3002 \u5bf9\u4e8e \u975e\u5e38 \u5927 \u7684 \u5730\u56fe \uff0c \u52a0\u8f7d \u6709\u65f6 \u53ef\u80fd \u9700\u8981 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u751a\u81f3 \u51e0\u5206 \u5206\u949f \u51e0\u5206\u949f \u3002 \u52a0\u8f7d \u540e \uff0c \u5355\u51fb \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u64ad\u653e \u9009\u9879 \u3002 \u4eff\u771f \u73b0\u5728 \u5c06 \u4ece \u60a8 \u7684 \u65b0 \u5927 \u5730\u56fe \u5f00\u59cb \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u4ece \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5efa\u8bae \u5728 \u5f00\u59cb \u4eff\u771f \u4e4b\u524d \u5148 \u9010\u4e2a \u52a0\u8f7d \u6bcf\u4e2a \u56fe\u5757 \uff08 \u901a\u8fc7 \u53cc\u51fb \u5b83\u4eec \uff09 \uff0c \u76f4\u5230 \u52a0\u8f7d \u5b8c \u6240\u6709 \u56fe\u5757 \u3002 \u8fd9\u4f1a \u5728 \u540e\u53f0 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \uff0c \u4f8b\u5982 \u70d8\u7119 \u7f51\u683c \u8ddd\u79bb \u573a \u548c \u56fe\u5757 \u7684 \u7740\u8272 \u7740\u8272\u5668 \u3002 \u5982\u679c \u60a8 \u4e00 \u5f00\u59cb \u4e0d \u9010\u4e00 \u52a0\u8f7d \u56fe\u5757 \uff0c \u8fd9\u4e9b \u64cd\u4f5c \u53ef\u80fd \u4f1a \u5728 \u8fd0\u884c \u65f6 \u6267\u884c \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u865a\u5e7b \u5f15\u64ce \u6302 \u8d77 \u6216 \u5d29\u6e83 \u3002 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u9075\u5faa \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b - \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 Linux \u4e0b \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u548c Windows \u4e0b \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u548c \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"Content authoring large maps"},{"location":"content_authoring_large_maps/#carla","text":"Carla \u4e2d \u5927 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 11 \u548c 12 \uff09 \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \uff08 \u5982 \u57ce\u9547 10 \uff09 \u4e0d\u540c \u3002 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u56fe\u5757 \uff0c \u5373 \u5730\u56fe \u7684 \u7ec6\u5206 \uff0c \u901a\u5e38 \u5927\u5c0f \u8bbe\u7f6e \u4e3a \u7ea6 1 \u81f3 2 \u516c\u91cc \u3002 \u8fd9\u4e9b \u56fe\u5757 \u5212\u5206 \u4e86 \u5730\u56fe \uff0c \u4ee5\u4fbf \u4ec5 \u5c06 \u9700\u8981 \u7684 \u5730\u56fe \u90e8\u5206 \u52a0\u8f7d \u5230 \u56fe\u5f62 \u5185\u5b58 \u4e2d\u4ee5 \u8fdb\u884c \u9ad8\u6548 \u6e32\u67d3 \u3002 \u4e0d \u9700\u8981 \u7684 \u56fe\u5757 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u5e76 \u51c6\u5907 \u5728 \u9700\u8981 \u65f6 \u52a0\u8f7d \u3002 \u901a\u5e38 \uff0c \u4f1a \u52a0\u8f7d \u81ea\u6211 \u8f66\u8f86 \u4f4d\u7f6e \u4e2d \u7684 \u56fe\u5757 \u65c1\u8fb9 \u7684 \u56fe\u5757 \uff0c \u4f46 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u52a0\u8f7d \u66f4 \u591a \u56fe\u5757 \u3002 \u5f53 Carla \u542f\u52a8 \u65f6 \uff0c \u53ef\u4ee5 \u5728 \u8bbe\u7f6e \u4e2d \u4fee\u6539 \u6b64 \u884c\u4e3a \u3002","title":"\u4e3a Carla \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#roadrunner","text":"RoadRunner \u662f \u63a8\u8350 \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u7684 \u8f6f\u4ef6 \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u4f7f\u7528 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe \u4ee5\u53ca \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5bfc\u5165 \u548c \u5904\u7406 \u5927 \u5730\u56fe \u3002 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe \u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#roadrunner_1","text":"\u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u590d\u6742 \u5730\u56fe \u7684 \u5177\u4f53 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRunner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u4ece \u8868\u9762 \u4e0a \u770b \uff0c \u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe \u4e0e \u6784\u5efa \u6807\u51c6 \u5730\u56fe \u57fa\u672c \u672c\u76f8 \u76f8\u540c \u57fa\u672c\u76f8\u540c \uff0c \u53ea\u662f \u6bd4\u4f8b \u66f4\u5927 \u3002 \u5dee\u5f02 \u4e3b\u8981 \u5728\u4e8e \u5730\u56fe \u7684 \u5bfc\u51fa \u65b9\u5f0f \u3002 \u8fd9\u91cc \u6211\u4eec \u521b\u5efa \u4e86 \u4e00\u5f20 \u5927\u7ea6 1.2 \u516c\u91cc \u5927\u5c0f \u7684 \u5927 \u5730\u56fe \u3002 \u5f53 \u6211\u4eec \u5bfc\u51fa \u5b83 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 700m \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u56e0\u6b64 \u5730\u56fe \u5e94\u8be5 \u5206\u5272 \u6210 \u5927\u7ea6 4 \u4e2a \u56fe\u5757 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5efa\u8bae \u7684 \u5730\u56fe \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20x20 km 2 \u3002 \u5927\u4e8e \u6b64 \u5927\u5c0f \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002","title":"\u5728 RoadRunner \u4e2d \u6784\u5efa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#roadrunner_2","text":"\u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u901a\u8fc7 \u5355\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \uff08 World settings tool \uff09 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5bfc\u51fa \u5b8c\u6574 \u5730\u56fe \u3002 \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb \u201c \u5e94\u7528 \u4e16\u754c \u66f4\u6539 \u201d \uff08 Apply World Changes \uff09 \u3002 \u4f7f\u7528 \u573a\u666f \u5bfc\u51fa \u9884\u89c8 \u5de5\u5177 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 \u5982\u4f55 \u5c06 \u5730\u56fe \u5212\u5206 \u4e3a \u56fe\u5757 \u4ee5\u4f9b \u5bfc\u51fa \u3002 \u8c03\u6574 \u201c \u5e73\u94fa \u9009\u9879 \u201d \uff08 Tiling Options \uff09 \u83dc\u5355 \u4e2d \u7684 \u201c \u5e73\u94fa \u5927\u5c0f \u201d \uff08 Tile Size \uff09 \u53c2\u6570 \uff0c \u627e\u5230 \u9002\u5408 \u60a8 \u5730\u56fe \u7684 \u5e73\u94fa \u5927\u5c0f \uff0c \u6309 \u201c \u5237\u65b0 \u573a\u666f \u201d \uff08 Refresh Scene \uff09 \u67e5\u770b \u8c03\u6574 \u7684 \u5f71\u54cd \u3002 \u7b14\u8bb0 Tile size : \u60a8 \u4f7f\u7528 \u7684 \u56fe\u5757 \u5927\u5c0f \u662f \u4e00\u4e2a \u5224\u65ad \u8c03\u7528 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 \u65f6 \u80fd\u591f \u6709\u6548 \u5de5\u4f5c \u3002 \u5982\u679c \u60a8 \u7684 \u5730\u56fe \u5305\u542b \u5bc6\u96c6 \u7684 3D \u8d44\u6e90 \uff08 \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \uff09 \uff0c \u60a8 \u53ef\u80fd \u4f1a \u53d7\u76ca \u4e8e \u8f83 \u5c0f \u7684 \u56fe\u5757 \u5927\u5c0f \uff0c \u4ee5 \u9632\u6b62 \u52a0\u8f7d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u8d44\u6e90 \u3002 \u4f46\u662f \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u589e\u52a0 \u6784\u5efa \u5730\u56fe \u6240 \u9700 \u5de5\u4f5c \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 Carla \u5f15\u64ce \u652f\u6301 \u7684 \u6700\u5927 \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 2 \u516c\u91cc \uff0c \u6211\u4eec \u5efa\u8bae \u74e6\u7247 \u5c3a\u5bf8 \u4e3a 1 \u516c\u91cc \u5de6\u53f3 \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u5bfc\u51fa . fbx \u51e0\u4f55 \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > Firebox ( . fbx ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a \u901a\u8fc7 \u5206\u6bb5 \u5206\u5272 \uff08 Split by Segmentation \uff09 : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u5e76 \u6539\u8fdb \u884c\u4eba \u5bfc\u822a \u3002 \u4e8c\u7ef4 \u7eb9\u7406 \u7684 \u529b\u91cf \uff08 Power of Two Texture Dimensions \uff09 : \u63d0\u9ad8 \u6027\u80fd \u3002 \u5d4c\u5165 \u7eb9\u7406 \uff08 Embed Textures \uff09 : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 \u5bfc\u51fa \u5230 \u56fe\u5757 \uff08 Export to Tiles \uff09 : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 2000 x 2000 \u3002 \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 \uff08 Export Individual Tiles \uff09 : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u56fe\u5757 \u3002 3 . \u5bfc\u51fa . xodr OpenDrive \u5730\u56fe \u6587\u4ef6 \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u5728 \u60a8 \u9009\u62e9 \u5bfc\u51fa \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u6709 \u51e0\u4e2a \u65b0 \u6587\u4ef6 \uff0c \u4e00\u4e2a . xodr \u6587\u4ef6 \u548c \u51e0\u4e2a . fbx \u6587\u4ef6 \uff1a \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u6839 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u5728 Roadrunner \u4e2d \u521b\u5efa \u4e86 \u5927 \u5730\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u5165 Carla \u4e2d \u3002 RoadRunner \u521b\u5efa \u7684 \u6587\u4ef6 \u5e94 \u8f6c\u79fb \u5230 \u7528\u4e8e \u6784\u5efa Carla \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u76ee\u5f55 \u5185 \u3002","title":"\u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#carla_1","text":"RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002","title":"\u5c06 \u5927 \u5730\u56fe \u5bfc\u5165 Carla"},{"location":"content_authoring_large_maps/#_1","text":"\u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u8b66\u544a \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c RoadRunner \u5e94 \u7b26\u5408 \u6b64 \u547d\u540d \u7ea6\u5b9a \uff0c \u4f46 \u5728 \u51c6\u5907 \u5bfc\u5165 Carla \u4e4b\u524d \u503c\u5f97 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \uff0c \u56e0\u4e3a \u6b64 \u9636\u6bb5 \u5f15\u8d77 \u7684 \u95ee\u9898 \u7a0d\u540e \u4fee\u590d \u8d77\u6765 \u53ef\u80fd \u4f1a \u5f88 \u4e4f\u5473 \u3002 \u6700\u7ec8 \u5730\u56fe \u4e2d \u7684 \u56fe\u5757 \u5c06 \u5982\u4e0b \u56fe \u6240\u793a \u6392\u5217 \uff1a \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 LargeMap _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 LargeMap . xodr \u7b14\u8bb0 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 package . json \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6587\u4ef6 \u548c \u6587\u4ef6\u5939"},{"location":"content_authoring_large_maps/#json","text":". json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c . xodr \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u6599 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx tile \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" LargeMap \" , \" xodr \" : \" . / LargeMap . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 700 , \" tiles \" : [ \" . / LargeMap _ Tile _ 0 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 0 _ 1 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 0 . fbx \" , \" . / LargeMap _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] }","title":"\u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09"},{"location":"content_authoring_large_maps/#_2","text":"\u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 \u8be5 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76 \u51c6\u5907 \u597d \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u5efa\u7b51 \u7b49 \u3002","title":"\u8fdb\u884c \u5bfc\u5165"},{"location":"content_authoring_large_maps/#_3","text":"\u73b0\u5728 \u60a8 \u5df2 \u5bfc\u5165 \u65b0 \u5730\u56fe \uff0c \u60a8 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u9ed8\u8ba4 \u547d\u540d map _ package \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u627e\u5230 \u8be5 \u5730\u56fe \u3002 \u5982\u679c \u60a8 \u5728 \u5bfc\u5165 \u547d\u4ee4 \u4e2d \u4f7f\u7528 \u53c2\u6570 \" -- package = < package _ name > \" \uff0c \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u6709 \u4e00\u4e2a \u5907\u7528 \u540d\u79f0 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \uff0c \u6253\u5f00 \u8be5 Maps \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u6253\u5f00 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u91cc\u9762 \u4f60 \u4f1a \u53d1\u73b0 \u51e0\u4e2a \u6a59\u8272 \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u6574\u4e2a \u5730\u56fe \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \uff0c \u800c \u4ece RoadRunner \u5bfc\u51fa \u7684 \u6bcf\u4e2a \u56fe\u5757 \u5c06 \u6709 \u4e00\u4e2a \u5173\u5361 \u6587\u4ef6 \u3002 \u8981 \u5c06 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7b49 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \uff0c \u8bf7 \u53cc\u51fb \u8981 \u5904\u7406 \u7684 \u56fe\u5757 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u4f8b\u5982 \u672c\u4f8b \u4e2d LargeMap _ Tile _ 0 _ 0 \uff09 \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u52a0\u8f7d \u5230 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u5757 \u6ca1\u6709 \u4efb\u4f55 \u7167\u660e \u8bbe\u7f6e \uff0c \u56e0\u6b64 \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u89c6\u56fe \u6a21\u5f0f \u4ece \u66f4\u6539 Lit \u4e3a Unlit \u624d\u80fd \u5728 \u52a0\u8f7d \u56fe\u5757 \u540e \u770b\u5230 \u5b83 \u3002 \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b \u5411 \u5730\u56fe \u6dfb\u52a0 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u786e\u4fdd \u4fdd\u5b58 \u5bf9 \u6b63\u5728 \u5904\u7406 \u7684 \u56fe\u5757 \u6240 \u505a \u7684 \u4fee\u6539 \uff0c \u7136\u540e \u52a0\u8f7d \u4e0b \u4e00\u4e2a \u56fe\u5757 \u5e76 \u91cd\u590d \u8be5 \u8fc7\u7a0b \u3002 \u60a8 \u65e0\u6cd5 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u6574\u4e2a \u5730\u56fe \uff0c \u56e0\u6b64 \u52a0\u8f7d \uff08 \u901a\u8fc7 \u53cc\u51fb \uff09 \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5bf9\u4e8e \u88c5\u9970 \u5730\u56fe \u5c06 \u6ca1\u6709 \u7528\u5904 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u5904\u7406 \u5927 \u5730\u56fe"},{"location":"content_authoring_large_maps/#_4","text":"\u5982\u679c \u60a8 \u60f3 \u52a0\u8f7d \u5730\u56fe \u5e76 \u5f00\u59cb \u4eff\u771f \u8fdb\u884c \u5b9e\u9a8c \uff0c \u60a8 \u5e94\u8be5 \u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u7684 \u5173\u5361 \u6587\u4ef6 \u3002 \u53cc\u51fb \u5e26\u6709 \u6839 \u5730\u56fe \u540d\u79f0 \u7684 \u5173\u5361 \u6587\u4ef6 \uff08 \u540e\u9762 \u4e0d\u5e26 \u540e\u7f00 \u7684 \u6587\u4ef6 _ Tile _ X _ Y \uff09 \u5e76 \u7b49\u5f85 \u5176 \u52a0\u8f7d \u3002 \u5bf9\u4e8e \u975e\u5e38 \u5927 \u7684 \u5730\u56fe \uff0c \u52a0\u8f7d \u6709\u65f6 \u53ef\u80fd \u9700\u8981 \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u751a\u81f3 \u51e0\u5206 \u5206\u949f \u51e0\u5206\u949f \u3002 \u52a0\u8f7d \u540e \uff0c \u5355\u51fb \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u64ad\u653e \u9009\u9879 \u3002 \u4eff\u771f \u73b0\u5728 \u5c06 \u4ece \u60a8 \u7684 \u65b0 \u5927 \u5730\u56fe \u5f00\u59cb \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u4ece \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4eff\u771f \uff0c \u5efa\u8bae \u5728 \u5f00\u59cb \u4eff\u771f \u4e4b\u524d \u5148 \u9010\u4e2a \u52a0\u8f7d \u6bcf\u4e2a \u56fe\u5757 \uff08 \u901a\u8fc7 \u53cc\u51fb \u5b83\u4eec \uff09 \uff0c \u76f4\u5230 \u52a0\u8f7d \u5b8c \u6240\u6709 \u56fe\u5757 \u3002 \u8fd9\u4f1a \u5728 \u540e\u53f0 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \uff0c \u4f8b\u5982 \u70d8\u7119 \u7f51\u683c \u8ddd\u79bb \u573a \u548c \u56fe\u5757 \u7684 \u7740\u8272 \u7740\u8272\u5668 \u3002 \u5982\u679c \u60a8 \u4e00 \u5f00\u59cb \u4e0d \u9010\u4e00 \u52a0\u8f7d \u56fe\u5757 \uff0c \u8fd9\u4e9b \u64cd\u4f5c \u53ef\u80fd \u4f1a \u5728 \u8fd0\u884c \u65f6 \u6267\u884c \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u865a\u5e7b \u5f15\u64ce \u6302 \u8d77 \u6216 \u5d29\u6e83 \u3002","title":"\u52a0\u8f7d \u6574\u4e2a \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f"},{"location":"content_authoring_large_maps/#_5","text":"\u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u9075\u5faa \u4e0e \u6807\u51c6 \u5730\u56fe \u76f8\u540c \u7684 \u8fc7\u7a0b - \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 Linux \u4e0b \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u548c Windows \u4e0b \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u548c \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe"},{"location":"core_actors/","text":"\u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u5728 \u4eff\u771f \u4e2d \u6267\u884c \u52a8\u4f5c \u7684 \u5143\u7d20 \uff0c \u4ed6\u4eec \u53ef\u4ee5 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Carla \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5305\u62ec \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u4e5f \u5305\u62ec \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u89c2\u770b \u8005 \u3002 \u5bf9 \u5982\u4f55 \u64cd\u4f5c \u5b83\u4eec \u6709 \u5145\u5206 \u7684 \u4e86\u89e3 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u672c\u8282 \u5c06 \u4ecb\u7ecd \u751f\u6210 \u3001 \u6467\u6bc1 \u3001 \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u7ba1\u7406 \u5b83\u4eec \u3002 \u7136\u800c \uff0c \u53ef\u80fd \u53ef\u80fd\u6027 \u51e0\u4e4e \u662f \u65e0\u7a77 \u65e0\u5c3d \u65e0\u7a77\u65e0\u5c3d \u7684 \u3002 \u5b9e\u9a8c \u3001 \u67e5\u770b \u672c \u6587\u6863 \u4e2d \u7684 \u6559\u7a0b \uff0c \u5e76 \u5728 Carla \u8bba\u575b \u4e2d \u5206\u4eab \u7591\u8651 \u548c \u60f3\u6cd5 \u3002 \u84dd\u56fe \u7ba1\u7406 \u84dd \u56fe\u5e93 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u751f\u6210 \u5904\u7406 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u8f66\u8f86 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u84dd\u56fe \u8fd9\u4e9b \u5e03\u5c40 \u5141\u8bb8 \u7528\u6237 \u5c06 \u65b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e73\u6ed1 \u5730 \u7ed3\u5408 \u5230 \u4eff\u771f \u4e2d \u3002 \u5b83\u4eec \u5df2\u7ecf \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u662f \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u5305\u62ec \u8f66\u8f86 \u989c\u8272 \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u901a\u9053 \u6570\u91cf \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u901f\u5ea6 \u7b49\u7b49 \u3002 \u84dd \u56fe\u5e93 \u5217\u51fa \u4e86 \u53ef\u7528 \u7684 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u3002 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u84dd\u56fe \u5177\u6709 \u4e00\u4e2a \u751f\u6210 \u5c5e\u6027 \uff0c \u7528\u4e8e \u6307\u793a \u5b83\u4eec \u662f \u65b0 \u7684 \uff08 \u7b2c 2 \u4ee3 \uff09 \u8d44\u4ea7 \u8fd8\u662f \u65e7 \u7684 \uff08 \u7b2c 1 \u4ee3 \uff09 \u8d44\u4ea7 \u3002 \u7ba1\u7406 \u84dd \u56fe\u5e93 carla . BlueprintLibrary \u7c7b \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . ActorBlueprint \u5143\u7d20 \u3002 \u5b83 \u662f \u80fd\u591f \u63d0\u4f9b \u5bf9 \u5b83 \u8bbf\u95ee \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 blueprint _ library = world . get _ blueprint _ library ( ) \u84dd\u56fe \u6709 \u4e00\u4e2a ID \u6765 \u8bc6\u522b \u5b83\u4eec \u548c \u7531\u6b64 \u4ea7\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53ef\u4ee5 \u8bfb\u53d6 \u5e93\u6765 \u627e\u5230 \u67d0\u4e2a ID \uff0c \u968f\u673a \u9009\u62e9 \u84dd\u56fe \uff0c \u6216\u8005 \u4f7f\u7528 \u901a\u914d\u7b26 \u6a21\u5f0f \u8fc7\u6ee4 \u7ed3\u679c \u3002 # \u627e \u4e00\u4e2a \u6307\u5b9a \u7684 \u84dd\u56fe collision _ sensor _ bp = blueprint _ library . find ( ' sensor . other . collision ' ) # \u968f\u673a \u9009\u62e9 \u4e00\u4e2a \u8f66\u8f86 \u84dd\u56fe vehicle _ bp = random . choice ( blueprint _ library . filter ( ' vehicle . * . * ' ) ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u6bcf\u4e2a carla . ActorBlueprint \u80fd \u83b7\u53d6 get \u548c \u6539\u53d8 set \u4e00\u4e9b \u5217 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 carla . ActorAttribute \u3002 is _ bike = [ vehicle . get _ attribute ( ' number _ of _ wheels ' ) = = 2 ] if ( is _ bike ) vehicle . set _ attribute ( ' color ' , ' 255 , 0 , 0 ' ) \u7b14\u8bb0 \u67d0\u4e9b \u5c5e\u6027 \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u67e5\u770b \u3002 \u5c5e\u6027 \u6709 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 \u7c7b\u578b carla . ActorAttributeType \u53d8\u91cf \u3002 \u5b83 \u4ece \u679a\u4e3e \u5217\u8868 \u4e2d \u58f0\u660e \u5176 \u7c7b\u578b \u3002 \u6b64\u5916 \uff0c \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u8fd8 \u9644\u5e26 \u4e00\u4e2a \u63a8\u8350 \u63a8\u8350\u503c \u5217\u8868 \u3002 for attr in blueprint : if attr . is _ modifiable : blueprint . set _ attribute ( attr . id , random . choice ( attr . recommended _ values ) ) \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u4ed6\u4eec \u81ea\u5df1 \u7684 \u8f66\u8f86 \u3002 \u67e5\u770b \u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09 \u4ee5 \u4e86\u89e3 \u76f8\u5173 \u4fe1\u606f \u3002 \u8d21\u732e \u8d21\u732e\u8005 \u53ef\u4ee5 \u5c06 \u4ed6\u4eec \u7684 \u65b0 \u5185\u5bb9 \u6dfb\u52a0 \u5230 Carla \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u91cd\u8981 \u672c \u8282 \u63d0\u5230 \u4e86 \u5173\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 Python API \u63d0\u4f9b commands \uff0c \u4ee5\u4fbf \u5728 \u4e00\u4e2a \u6846\u67b6 \u4e2d \u5e94\u7528 \u4e00\u6279 \u6700 \u5e38\u89c1 \u7684 \u547d\u4ee4 \u3002 \u751f\u6210 \u4e16\u754c \u5bf9\u8c61 \u8d1f\u8d23 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u8ddf\u8e2a \u8fd9\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u751f\u6210 \u53ea \u9700\u8981 \u4e00\u5f20 \u84dd\u56fe \u548c \u4e00\u4e2a carla . Transform \u8bf4\u660e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u4e16\u754c \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u629b\u51fa \u4e00\u4e2a \u5f02\u5e38 \u3002 try _ spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u8fd4\u56de None \u3002 transform = Transform ( Location ( x = 230 , y = 195 , z = 40 ) , Rotation ( yaw = 180 ) ) actor = world . spawn _ actor ( blueprint , transform ) \u91cd\u8981 Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf \u3002 \u8bb0\u4f4f \uff1a carla . Rotation \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5b9a\u4e49 \u4e3a \u201c \u4fef\u4ef0 \u3001 \u504f\u822a \u3001 \u7ffb\u6eda \u201d ( pitch , yaw , roll ) \uff0c \u4e0e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u201c \u7ffb\u6eda \u3001 \u4fef\u4ef0 \u3001 \u504f\u822a \u201d ( roll , pitch , yaw ) \u4e0d\u540c \u3002 \u5982\u679c \u5728 \u6307\u5b9a \u4f4d\u7f6e \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u5c06 \u4e0d\u4f1a \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u65e0\u8bba \u8fd9\u79cd \u60c5\u51b5 \u53d1\u751f \u5728 \u9759\u6001 \u5bf9\u8c61 \u8fd8\u662f \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8eab\u4e0a \u3002 \u53ef\u4ee5 \u5c1d\u8bd5 \u907f\u514d \u8fd9\u4e9b \u4e0d \u5e0c\u671b \u7684 \u751f\u6210 \u78b0\u649e \u3002 map . get _ spawn _ points ( ) \u5bf9\u4e8e \u8f66\u8f86 \u3002 \u8fd4\u56de \u63a8\u8350 \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) world . get _ random _ location ( ) \u5bf9\u4e8e \u884c\u4eba \u3002 \u8fd4\u56de \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u7684 \u968f\u673a \u70b9 \u3002 \u540c\u6837 \u7684 \u65b9\u6cd5 \u4e5f \u7528\u4e8e \u4e3a \u884c\u4eba \u8bbe\u7f6e \u76ee\u6807 \u4f4d\u7f6e \u3002 spawn _ point = carla . Transform ( ) spawn _ point . location = world . get _ random _ location _ from _ navigation ( ) \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u751f\u6210 \u65f6 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8ddf\u968f \u4ed6\u4eec \u6240 \u4f9d\u9644 \u7684 \u7236\u7ea7 \u3002 \u8fd9 \u5bf9\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7279\u522b \u6709\u7528 \u3002 \u8be5 \u9644\u4ef6 \u53ef\u4ee5 \u662f \u521a\u6027 \u7684 \uff08 \u9002\u5408 \u68c0\u7d22 \u7cbe\u786e \u6570\u636e \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u6839\u636e \u5176\u7236 \u7ea7 \u7684 \u60c5\u51b5 \u8fdb\u884c \u8f7b\u677e \u79fb\u52a8 \u3002 \u5b83 \u7531 \u8f85\u52a9 \u7c7b carla . AttachmentType \u5b9a\u4e49 \u3002 \u4e0b \u4e00\u4e2a \u793a\u4f8b \u5c06 \u76f8\u673a \u521a\u6027 \u5730 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u56e0\u6b64 \u5b83\u4eec \u7684 \u76f8\u5bf9 \u4f4d\u7f6e \u4fdd\u6301 \u56fa\u5b9a \u3002 camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle , carla . AttachmentType . Rigid ) \u91cd\u8981 \u5f53 \u751f\u6210 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u63d0\u4f9b \u7684 \u53d8\u6362 \u5fc5\u987b \u76f8\u5bf9 \u4e8e \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e00\u65e6 \u751f\u6210 \uff0c \u4e16\u754c \u5bf9\u8c61 \u5c31 \u4f1a \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u5217\u8868 \u4e2d \u3002 \u8fd9 \u53ef\u4ee5 \u5f88 \u5bb9\u6613 \u5730 \u641c\u7d22 \u6216 \u8fed\u4ee3 \u3002 actor _ list = world . get _ actors ( ) # \u6839\u636e id \u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 actor = actor _ list . find ( id ) # \u6253\u5370 \u4e16\u754c \u4e0a \u6240\u6709 \u9650\u901f \u6807\u5fd7 \u7684 \u4f4d\u7f6e \u3002 for speed _ sign in actor _ list . filter ( ' traffic . speed _ limit . * ' ) : print ( speed _ sign . get _ location ( ) ) \u5904\u7406 carla . Actor \u4e3b\u8981 \u7531 get ( ) \u548c set ( ) \u65b9\u6cd5 \u7ec4\u6210 \uff0c \u7528\u4e8e \u7ba1\u7406 \u5730\u56fe \u5468\u56f4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 print ( actor . get _ acceleration ( ) ) print ( actor . get _ velocity ( ) ) location = actor . get _ location ( ) location . z + = 10.0 actor . set _ location ( location ) \u53ef\u4ee5 \u7981\u7528 \u6f14\u5458 \u7684 \u7269\u7406 \u7279\u6027 \u4ee5 \u5c06 \u5176 \u51bb\u7ed3 \u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 actor . set _ simulate _ physics ( False ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8fd8\u6709 \u4ed6\u4eec \u7684 \u84dd\u56fe \u63d0\u4f9b \u7684 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u6709\u7528 \u3002 \u7b14\u8bb0 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u65b9\u6cd5 \u662f \u5f02\u6b65 \u5411 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53d1\u9001 \u8bf7\u6c42 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u89e3\u6790 \u5b83\u4eec \u7684 \u65f6\u95f4 \u6709\u9650 \u3002 \u4f7f\u7528 set ( ) \u65b9\u6cd5 \u6df9\u6ca1 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u79ef\u7d2f \u660e\u663e \u7684 \u5ef6\u8fdf \u3002 \u6467\u6bc1 \u5f53 Python \u811a\u672c \u5b8c\u6210 \u65f6 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u4f1a \u88ab \u9500\u6bc1 \u3002 \u4ed6\u4eec \u5fc5\u987b \u660e\u786e \u5730 \u6467\u6bc1 \u81ea\u5df1 \u3002 destroyed _ sucessfully = actor . destroy ( ) # \u5982\u679c \u6210\u529f \u8fd4\u56de True \u91cd\u8981 \u9500\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f1a \u963b\u585e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u76f4\u5230 \u8be5 \u8fc7\u7a0b \u5b8c\u6210 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4ed6\u4eec \u6709 \u81ea\u5df1 \u7684 \u90e8\u5206 \uff0c \u7b2c\u56db \u90e8\u5206 . \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u3002 \u73b0\u5728 \uff0c \u6211\u4eec \u53ea \u770b \u4e00\u4e0b \u5e38\u89c1 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u5468\u671f \u3002 \u6b64 \u793a\u4f8b \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5176 \u8fde\u63a5 \u5230 \u8f66\u8f86 \uff0c \u5e76 \u544a\u8bc9 \u76f8\u673a \u5c06 \u751f\u6210 \u7684 \u56fe\u50cf \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 camera _ bp = blueprint _ library . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle ) camera . listen ( lambda image : image . save _ to _ disk ( ' output / % 06d . png ' % image . frame ) ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e5f \u6709 \u84dd\u56fe \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u5b89\u88c5 \u5728 \u8f66\u8f86 \u4e0a\u4ee5 \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76d1\u542c \u6570\u636e \u3002 \u6536\u5230 \u6570\u636e \u540e \uff0c \u5b83\u4eec \u4f1a \u8c03\u7528 \u7528 Lambda \u8868\u8fbe \u8fbe\u5f0f \u8868\u8fbe\u5f0f \u63cf\u8ff0 \u7684 \u51fd\u6570 ( \u63d0\u4f9b \u7684 \u94fe\u63a5 \u4e2d \u7684 6.14 ) \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7531 \u865a\u5e7b \u5f15\u64ce \u653e\u7f6e \u4ee5 \u63d0\u4f9b \u6e38\u620f \u5185 \u7684 \u89c6\u89d2 \u3002 \u5b83 \u53ef \u7528\u4e8e \u79fb\u52a8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \u7684 \u89c6\u89d2 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u79fb\u52a8 \u89c2\u4f17 \u6f14\u5458 \uff0c \u5c06 \u89c6\u89d2 \u6307\u5411 \u6240 \u9700 \u7684 \u8f66\u8f86 \u3002 spectator = world . get _ spectator ( ) transform = vehicle . get _ transform ( ) spectator . set _ transform ( carla . Transform ( transform . location + carla . Location ( z = 50 ) , carla . Rotation ( pitch = - 90 ) ) ) \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Carela \u4e2d \u53ea\u6709 \u505c\u9760 \u505c\u9760\u70b9 \u3001 \u8ba9 \u884c \u8def\u7ebf \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u88ab \u89c6\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5176\u4f59 \u7684 OpenDRIVE \u6807\u5fd7 \u53ef \u901a\u8fc7 API \u4f5c\u4e3a \u5730\u6807 \uff08 carla . Landmark \uff09 \u8fdb\u884c \u8bbf\u95ee \u3002 \u4ed6\u4eec \u7684 \u4fe1\u606f \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u5b9e\u4f8b \u8bbf\u95ee \uff0c \u4f46 \u4ed6\u4eec \u5728 \u4eff\u771f \u4e2d \u5e76 \u4e0d \u4f5c\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b58\u5728 \u3002 \u5728 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u7b2c 3 \u90e8\u5206 \u5730\u56fe \u548c \u5bfc\u822a \u4e2d\u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u5730\u6807 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u3001 \u505c\u6b62 \u3001 \u8ba9 \u884c \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u65f6 \uff0c \u4f1a \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u81ea\u52a8 \u751f\u6210 \u3002 \u8fd9\u4e9b \u90fd \u65e0\u6cd5 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \uff0c \u56e0\u6b64 \u65e0\u6cd5 \u751f\u6210 \u3002 \u7b14\u8bb0 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 Carela \u5730\u56fe \u6ca1\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6216 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u8fd9\u4e9b \u662f \u7531 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u624b\u52a8 \u653e\u7f6e \u7684 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u672a \u5728 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u672c\u8eab \u4e2d \u5b9a\u4e49 \uff0c \u5982\u4e0b \u9875 \u6240\u8ff0 \u3002 \u76f8\u53cd \uff0c \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . BoundingBox \u6765 \u5f71\u54cd \u5176\u4e2d \u7684 \u8f66\u8f86 \u3002 # \u83b7\u5f97 \u5f71\u54cd \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f if vehicle _ actor . is _ at _ traffic _ light ( ) : traffic _ light = vehicle _ actor . get _ traffic _ light ( ) \u8def\u53e3 \u8bbe\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u4e0e \u4efb\u4f55 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u4ed6\u4eec \u6709 \u81ea\u5df1 \u72ec\u7279 \u7684 ID \uff0c \u4f46 \u5bf9\u4e8e \u5c94\u8def \u53e3 \u4e5f \u6709 \u4e00\u4e2a \u4e00\u4e2a\u7ec4 \uff08 group \uff09 ID \u3002 \u540c \u4e00\u7ec4 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9075\u5faa \u4e00\u4e2a \u5faa\u73af \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e3a \u7eff\u8272 \uff0c \u800c \u5176\u4f59 \u7684 \u5219 \u4fdd\u6301 \u7ea2\u8272 \u3002 \u6d3b\u8dc3 \u7684 \u706f\u4f1a \u6301\u7eed \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u5448 \u7eff\u8272 \u3001 \u9ec4\u8272 \u548c \u7ea2\u8272 \uff0c \u56e0\u6b64 \u6709 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u6240\u6709 \u706f \u90fd \u662f \u7ea2\u8272 \u7684 \u3002 \u7136\u540e \uff0c \u4e0b \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5f00\u59cb \u5faa\u73af \uff0c \u524d \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e0e \u5176\u4f59 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e00\u8d77 \u51bb\u7ed3 \u3002 \u53ef\u4ee5 \u4f7f\u7528 API \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u6bcf\u4e2a \u72b6\u6001 \u82b1\u8d39 \u7684 \u79d2\u6570 \u4e5f \u662f \u5982\u6b64 \u3002 \u53ef\u80fd \u7684 \u72b6\u6001 \u7528 carla . TrafficLightState \u63cf\u8ff0 \u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u3002 # \u4ea4\u901a \u4ea4\u901a\u706f \u4ece\u7ea2 \u53d8\u7eff if traffic _ light . get _ state ( ) = = carla . TrafficLightState . Red : traffic _ light . set _ state ( carla . TrafficLightState . Green ) traffic _ light . set _ set _ green _ time ( 4.0 ) \u7b14\u8bb0 \u53ea\u6709 \u5f53 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4e3a \u7ea2\u8272 \u65f6 \uff0c \u8f66\u8f86 \u624d \u4f1a \u610f\u8bc6 \u5230 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u8f66\u8f86 carla . Vehicle \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u6f14\u5458 \u3002 \u5b83 \u91c7\u7528 \u4e86 \u4eff\u771f \u8f6e\u5f0f \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u7279\u6b8a \u5185\u90e8 \u7ec4\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5e94\u7528 \u56db\u79cd \u4e0d\u540c \u7684 \u63a7\u4ef6 \u6765 \u5b9e\u73b0 \u7684 \uff1a carla . VehicleControl \u63d0\u4f9b \u6cb9\u95e8 \u3001 \u8f6c\u5411 \u3001 \u5239\u8f66 \u7b49 \u9a7e\u9a76 \u547d\u4ee4 \u7684 \u8f93\u5165 \u3002 vehicle . apply _ control ( carla . VehicleControl ( throttle = 1.0 , steer = - 1.0 ) ) carla . VehiclePhysicsControl \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u7269\u7406 \u5c5e\u6027 \u5e76 \u5305\u542b \u53e6\u5916 \u4e24\u4e2a \u63a7\u5236 \u63a7\u5236\u5668 \uff1a carla . GearPhysicsControl \u63a7\u5236 \u9f7f\u8f6e \u3002 carla . WheelPhysicsControl \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u7279\u5b9a \u63a7\u5236 \u3002 vehicle . apply _ physics _ control ( carla . VehiclePhysicsControl ( max _ rpm = 5000.0 , center _ of _ mass = carla . Vector3D ( 0.0 , 0.0 , 0.0 ) , torque _ curve = [ [ 0 , 400 ] , [ 5000 , 400 ] ] ) ) \u8f66\u8f86 \u6709 \u4e00\u4e2a carla . BoundingBox \u5c01\u88c5 \u5b83\u4eec \u3002 \u8be5 \u8fb9\u754c \u6846 \u5141\u8bb8 \u5c06 \u7269\u7406 \u539f\u7406 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u5e76 \u68c0\u6d4b \u78b0\u649e \u3002 box = vehicle . bounding _ box print ( box . location ) # \u76f8\u5bf9 \u8f66\u8f86 \u7684 \u4f4d\u7f6e print ( box . extent ) # XYZ half - box extents in meters . \u901a\u8fc7 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u53c2\u6570 \u53ef\u4ee5 \u6539\u5584 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u9ed8\u8ba4 \u7684 \u8f6e\u5b50 \u7269\u7406 \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u4f7f\u7528 \u4ece\u8f74\u5230 \u5730\u677f \u7684 \u5355 \u5c04\u7ebf \u6295\u5c04 \uff0c \u4f46\u662f \u5f53 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u65f6 \uff0c \u5c06 \u68c0\u67e5 \u8f6e\u5b50 \u7684 \u6574\u4e2a \u4f53\u79ef \u662f\u5426 \u53d1\u751f \u78b0\u649e \u3002 \u5b83 \u53ef\u4ee5 \u8fd9\u6837 \u542f\u7528 \uff1a physics _ control = vehicle . get _ physics _ control ( ) physics _ control . use _ sweep _ wheel _ collision = True vehicle . apply _ physics _ control ( physics _ control ) \u8f66\u8f86 \u8fd8 \u5305\u62ec \u5176 \u72ec\u6709 \u7684 \u5176\u4ed6 \u529f\u80fd \uff1a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u4f1a \u5c06 \u8f66\u8f86 \u8ba2\u9605 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u57ce\u5e02 \u72b6\u51b5 \u3002 \u8be5 \u6a21\u5757 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4e0d\u662f \u57fa\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u3002 vehicle . set _ autopilot ( True ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 \u548c \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \uff0c \u914d\u5907 \u96c6\u6210 \u8f66\u706f \u7684 \u8f66\u8f86 \u5982\u4e0b \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff1a \u6240\u6709 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u90fd \u6709 \u524d\u540e \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \uff1a \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \uff1a \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 Impala \u3001 \u9053\u5947 \u8b66\u8f66 \u3001 \u9053\u5947 Charger \u3001 \u5965\u8fea e - tron \u3001 \u6797\u80af 2017 \u5e74 \u548c 2020 \u5e74 \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Model 3 \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Cybertruck \u3001 \u5927\u4f17 T2 \u548c \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af C \u7ea7 \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights ) \u884c\u4eba carla . Walker \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u8f66\u8f86 \u7c7b\u4f3c \u3002 \u5bf9 \u5b83\u4eec \u7684 \u63a7\u5236 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u3002 carla . WalkerControl \u4ee5 \u4e00\u5b9a \u7684 \u65b9\u5411 \u548c \u901f\u5ea6 \u79fb\u52a8 \u884c\u4eba \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u4ed6\u4eec \u8df3\u8dc3 \u3002 carla . WalkerBoneControl \u63d0\u4f9b \u5bf9 \u4e09\u7ef4 \u9aa8\u67b6 \u7684 \u63a7\u5236 \u3002 \u672c \u6559\u7a0b \u89e3\u91ca \u4e86 \u5982\u4f55 \u63a7\u5236 \u5b83 \u3002 \u884c\u4eba \u53ef\u4ee5 \u7531 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u3002 \u4ed6\u4eec \u6ca1\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u3002 carla . WalkerAIController \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5b83 \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5468\u56f4 \u79fb\u52a8 \u3002 walker _ controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) world . SpawnActor ( walker _ controller _ bp , carla . Transform ( ) , parent _ walker ) \u7b14\u8bb0 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u65e0\u5f62 \u7684 \uff0c \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u4e0d\u4f1a \u51fa\u73b0 \u5728 \u73b0\u573a \u3002 \u6b64\u5916 \uff0c \u4f4d\u7f6e ( 0 , 0 , 0 ) \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u4f4d\u7f6e \u4e0d\u4f1a \u5bfc\u81f4 \u78b0\u649e \u3002 \u6bcf\u4e2a \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u90fd \u9700\u8981 \u521d\u59cb \u521d\u59cb\u5316 \u3001 \u76ee\u6807 \u548c \u53ef\u9009 \u7684 \u901f\u5ea6 \u3002 \u505c\u6b62 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u76f8\u540c \u3002 ai _ controller . start ( ) ai _ controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) ai _ controller . set _ max _ speed ( 1 + random . random ( ) ) # \u5728 1 \u7c73 \u6bcf\u79d2 \u5230 2 \u7c73 \u6bcf\u79d2 \u4e4b\u95f4 \uff08 \u9ed8\u8ba4 \u662f 1.4 \u7c73 \u6bcf\u79d2 \uff09 ... ai _ controller . stop ( ) \u5f53 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5230\u8fbe \u76ee\u6807 \u4f4d\u7f6e \u65f6 \uff0c \u4ed6\u4eec \u4f1a \u81ea\u52a8 \u6b65\u884c \u5230 \u53e6 \u4e00\u4e2a \u968f\u673a \u70b9 \u3002 \u5982\u679c \u65e0\u6cd5 \u5230\u8fbe \u76ee\u6807 \u70b9 \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5c06 \u524d\u5f80 \u8ddd\u79bb \u5f53\u524d \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u70b9 \u3002 carla . Client \u4e2d \u7684 \u4e00\u4e2a \u7247\u6bb5 \u4f7f\u7528 \u6279\u6b21 \u751f\u6210 \u5927\u91cf \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5e76 \u8ba9 \u5b83\u4eec \u56db\u5904 \u6e38\u8361 \u3002 \u91cd\u8981 \u8981 \u6467\u6bc1 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u884c\u4eba \uff0c \u8bf7 \u505c\u6b62 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u5173\u4e8e Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8fd9 \u5c31\u662f \u4e00\u4e2a \u603b\u7ed3 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 Carla \u7684 \u5730\u56fe \u3001 \u9053\u8def \u548c \u4ea4\u901a \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u6216 \u8bbf\u95ee \u8bba\u575b \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b 3rd . \u5730\u56fe \u548c \u5bfc\u822a","title":"\u7b2c\u4e8c \u3001 \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe"},{"location":"core_actors/#_1","text":"Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u5728 \u4eff\u771f \u4e2d \u6267\u884c \u52a8\u4f5c \u7684 \u5143\u7d20 \uff0c \u4ed6\u4eec \u53ef\u4ee5 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Carla \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5305\u62ec \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u4e5f \u5305\u62ec \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u548c \u89c2\u770b \u8005 \u3002 \u5bf9 \u5982\u4f55 \u64cd\u4f5c \u5b83\u4eec \u6709 \u5145\u5206 \u7684 \u4e86\u89e3 \u662f \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u7684 \u3002 \u672c\u8282 \u5c06 \u4ecb\u7ecd \u751f\u6210 \u3001 \u6467\u6bc1 \u3001 \u7c7b\u578b \u4ee5\u53ca \u5982\u4f55 \u7ba1\u7406 \u5b83\u4eec \u3002 \u7136\u800c \uff0c \u53ef\u80fd \u53ef\u80fd\u6027 \u51e0\u4e4e \u662f \u65e0\u7a77 \u65e0\u5c3d \u65e0\u7a77\u65e0\u5c3d \u7684 \u3002 \u5b9e\u9a8c \u3001 \u67e5\u770b \u672c \u6587\u6863 \u4e2d \u7684 \u6559\u7a0b \uff0c \u5e76 \u5728 Carla \u8bba\u575b \u4e2d \u5206\u4eab \u7591\u8651 \u548c \u60f3\u6cd5 \u3002 \u84dd\u56fe \u7ba1\u7406 \u84dd \u56fe\u5e93 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u751f\u6210 \u5904\u7406 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u8f66\u8f86 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005","title":"\u7b2c\u4e8c \u3001 \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe"},{"location":"core_actors/#_2","text":"\u8fd9\u4e9b \u5e03\u5c40 \u5141\u8bb8 \u7528\u6237 \u5c06 \u65b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e73\u6ed1 \u5730 \u7ed3\u5408 \u5230 \u4eff\u771f \u4e2d \u3002 \u5b83\u4eec \u5df2\u7ecf \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u662f \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u5305\u62ec \u8f66\u8f86 \u989c\u8272 \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u7684 \u901a\u9053 \u6570\u91cf \u3001 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u901f\u5ea6 \u7b49\u7b49 \u3002 \u84dd \u56fe\u5e93 \u5217\u51fa \u4e86 \u53ef\u7528 \u7684 \u84dd\u56fe \u53ca\u5176 \u5c5e\u6027 \u3002 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u84dd\u56fe \u5177\u6709 \u4e00\u4e2a \u751f\u6210 \u5c5e\u6027 \uff0c \u7528\u4e8e \u6307\u793a \u5b83\u4eec \u662f \u65b0 \u7684 \uff08 \u7b2c 2 \u4ee3 \uff09 \u8d44\u4ea7 \u8fd8\u662f \u65e7 \u7684 \uff08 \u7b2c 1 \u4ee3 \uff09 \u8d44\u4ea7 \u3002","title":"\u84dd\u56fe"},{"location":"core_actors/#_3","text":"carla . BlueprintLibrary \u7c7b \u5305\u542b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . ActorBlueprint \u5143\u7d20 \u3002 \u5b83 \u662f \u80fd\u591f \u63d0\u4f9b \u5bf9 \u5b83 \u8bbf\u95ee \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 blueprint _ library = world . get _ blueprint _ library ( ) \u84dd\u56fe \u6709 \u4e00\u4e2a ID \u6765 \u8bc6\u522b \u5b83\u4eec \u548c \u7531\u6b64 \u4ea7\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53ef\u4ee5 \u8bfb\u53d6 \u5e93\u6765 \u627e\u5230 \u67d0\u4e2a ID \uff0c \u968f\u673a \u9009\u62e9 \u84dd\u56fe \uff0c \u6216\u8005 \u4f7f\u7528 \u901a\u914d\u7b26 \u6a21\u5f0f \u8fc7\u6ee4 \u7ed3\u679c \u3002 # \u627e \u4e00\u4e2a \u6307\u5b9a \u7684 \u84dd\u56fe collision _ sensor _ bp = blueprint _ library . find ( ' sensor . other . collision ' ) # \u968f\u673a \u9009\u62e9 \u4e00\u4e2a \u8f66\u8f86 \u84dd\u56fe vehicle _ bp = random . choice ( blueprint _ library . filter ( ' vehicle . * . * ' ) ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u6bcf\u4e2a carla . ActorBlueprint \u80fd \u83b7\u53d6 get \u548c \u6539\u53d8 set \u4e00\u4e9b \u5217 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 carla . ActorAttribute \u3002 is _ bike = [ vehicle . get _ attribute ( ' number _ of _ wheels ' ) = = 2 ] if ( is _ bike ) vehicle . set _ attribute ( ' color ' , ' 255 , 0 , 0 ' ) \u7b14\u8bb0 \u67d0\u4e9b \u5c5e\u6027 \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u67e5\u770b \u3002 \u5c5e\u6027 \u6709 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c5e\u6027 \u7c7b\u578b carla . ActorAttributeType \u53d8\u91cf \u3002 \u5b83 \u4ece \u679a\u4e3e \u5217\u8868 \u4e2d \u58f0\u660e \u5176 \u7c7b\u578b \u3002 \u6b64\u5916 \uff0c \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u8fd8 \u9644\u5e26 \u4e00\u4e2a \u63a8\u8350 \u63a8\u8350\u503c \u5217\u8868 \u3002 for attr in blueprint : if attr . is _ modifiable : blueprint . set _ attribute ( attr . id , random . choice ( attr . recommended _ values ) ) \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u4ed6\u4eec \u81ea\u5df1 \u7684 \u8f66\u8f86 \u3002 \u67e5\u770b \u6559\u7a0b \uff08 \u8d44\u4ea7 \uff09 \u4ee5 \u4e86\u89e3 \u76f8\u5173 \u4fe1\u606f \u3002 \u8d21\u732e \u8d21\u732e\u8005 \u53ef\u4ee5 \u5c06 \u4ed6\u4eec \u7684 \u65b0 \u5185\u5bb9 \u6dfb\u52a0 \u5230 Carla \u3002","title":"\u7ba1\u7406 \u84dd \u56fe\u5e93"},{"location":"core_actors/#_4","text":"\u91cd\u8981 \u672c \u8282 \u63d0\u5230 \u4e86 \u5173\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 Python API \u63d0\u4f9b commands \uff0c \u4ee5\u4fbf \u5728 \u4e00\u4e2a \u6846\u67b6 \u4e2d \u5e94\u7528 \u4e00\u6279 \u6700 \u5e38\u89c1 \u7684 \u547d\u4ee4 \u3002","title":"\u53c2\u4e0e\u8005 \u751f\u547d\u5468\u671f"},{"location":"core_actors/#_5","text":"\u4e16\u754c \u5bf9\u8c61 \u8d1f\u8d23 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u8ddf\u8e2a \u8fd9\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u751f\u6210 \u53ea \u9700\u8981 \u4e00\u5f20 \u84dd\u56fe \u548c \u4e00\u4e2a carla . Transform \u8bf4\u660e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u4e16\u754c \u6709 \u4e24\u4e2a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u629b\u51fa \u4e00\u4e2a \u5f02\u5e38 \u3002 try _ spawn _ actor ( ) \u5982\u679c \u751f\u6210 \u5931\u8d25 \u8fd4\u56de None \u3002 transform = Transform ( Location ( x = 230 , y = 195 , z = 40 ) , Rotation ( yaw = 180 ) ) actor = world . spawn _ actor ( blueprint , transform ) \u91cd\u8981 Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf \u3002 \u8bb0\u4f4f \uff1a carla . Rotation \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5b9a\u4e49 \u4e3a \u201c \u4fef\u4ef0 \u3001 \u504f\u822a \u3001 \u7ffb\u6eda \u201d ( pitch , yaw , roll ) \uff0c \u4e0e \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u201c \u7ffb\u6eda \u3001 \u4fef\u4ef0 \u3001 \u504f\u822a \u201d ( roll , pitch , yaw ) \u4e0d\u540c \u3002 \u5982\u679c \u5728 \u6307\u5b9a \u4f4d\u7f6e \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u5c06 \u4e0d\u4f1a \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u65e0\u8bba \u8fd9\u79cd \u60c5\u51b5 \u53d1\u751f \u5728 \u9759\u6001 \u5bf9\u8c61 \u8fd8\u662f \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8eab\u4e0a \u3002 \u53ef\u4ee5 \u5c1d\u8bd5 \u907f\u514d \u8fd9\u4e9b \u4e0d \u5e0c\u671b \u7684 \u751f\u6210 \u78b0\u649e \u3002 map . get _ spawn _ points ( ) \u5bf9\u4e8e \u8f66\u8f86 \u3002 \u8fd4\u56de \u63a8\u8350 \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) world . get _ random _ location ( ) \u5bf9\u4e8e \u884c\u4eba \u3002 \u8fd4\u56de \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u7684 \u968f\u673a \u70b9 \u3002 \u540c\u6837 \u7684 \u65b9\u6cd5 \u4e5f \u7528\u4e8e \u4e3a \u884c\u4eba \u8bbe\u7f6e \u76ee\u6807 \u4f4d\u7f6e \u3002 spawn _ point = carla . Transform ( ) spawn _ point . location = world . get _ random _ location _ from _ navigation ( ) \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u751f\u6210 \u65f6 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8ddf\u968f \u4ed6\u4eec \u6240 \u4f9d\u9644 \u7684 \u7236\u7ea7 \u3002 \u8fd9 \u5bf9\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7279\u522b \u6709\u7528 \u3002 \u8be5 \u9644\u4ef6 \u53ef\u4ee5 \u662f \u521a\u6027 \u7684 \uff08 \u9002\u5408 \u68c0\u7d22 \u7cbe\u786e \u6570\u636e \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u6839\u636e \u5176\u7236 \u7ea7 \u7684 \u60c5\u51b5 \u8fdb\u884c \u8f7b\u677e \u79fb\u52a8 \u3002 \u5b83 \u7531 \u8f85\u52a9 \u7c7b carla . AttachmentType \u5b9a\u4e49 \u3002 \u4e0b \u4e00\u4e2a \u793a\u4f8b \u5c06 \u76f8\u673a \u521a\u6027 \u5730 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u56e0\u6b64 \u5b83\u4eec \u7684 \u76f8\u5bf9 \u4f4d\u7f6e \u4fdd\u6301 \u56fa\u5b9a \u3002 camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle , carla . AttachmentType . Rigid ) \u91cd\u8981 \u5f53 \u751f\u6210 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u63d0\u4f9b \u7684 \u53d8\u6362 \u5fc5\u987b \u76f8\u5bf9 \u4e8e \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e00\u65e6 \u751f\u6210 \uff0c \u4e16\u754c \u5bf9\u8c61 \u5c31 \u4f1a \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u5217\u8868 \u4e2d \u3002 \u8fd9 \u53ef\u4ee5 \u5f88 \u5bb9\u6613 \u5730 \u641c\u7d22 \u6216 \u8fed\u4ee3 \u3002 actor _ list = world . get _ actors ( ) # \u6839\u636e id \u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 actor = actor _ list . find ( id ) # \u6253\u5370 \u4e16\u754c \u4e0a \u6240\u6709 \u9650\u901f \u6807\u5fd7 \u7684 \u4f4d\u7f6e \u3002 for speed _ sign in actor _ list . filter ( ' traffic . speed _ limit . * ' ) : print ( speed _ sign . get _ location ( ) )","title":"\u751f\u6210"},{"location":"core_actors/#_6","text":"carla . Actor \u4e3b\u8981 \u7531 get ( ) \u548c set ( ) \u65b9\u6cd5 \u7ec4\u6210 \uff0c \u7528\u4e8e \u7ba1\u7406 \u5730\u56fe \u5468\u56f4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 print ( actor . get _ acceleration ( ) ) print ( actor . get _ velocity ( ) ) location = actor . get _ location ( ) location . z + = 10.0 actor . set _ location ( location ) \u53ef\u4ee5 \u7981\u7528 \u6f14\u5458 \u7684 \u7269\u7406 \u7279\u6027 \u4ee5 \u5c06 \u5176 \u51bb\u7ed3 \u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 actor . set _ simulate _ physics ( False ) \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8fd8\u6709 \u4ed6\u4eec \u7684 \u84dd\u56fe \u63d0\u4f9b \u7684 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u6709\u7528 \u3002 \u7b14\u8bb0 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u65b9\u6cd5 \u662f \u5f02\u6b65 \u5411 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53d1\u9001 \u8bf7\u6c42 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u89e3\u6790 \u5b83\u4eec \u7684 \u65f6\u95f4 \u6709\u9650 \u3002 \u4f7f\u7528 set ( ) \u65b9\u6cd5 \u6df9\u6ca1 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5c06 \u79ef\u7d2f \u660e\u663e \u7684 \u5ef6\u8fdf \u3002","title":"\u5904\u7406"},{"location":"core_actors/#_7","text":"\u5f53 Python \u811a\u672c \u5b8c\u6210 \u65f6 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d\u4f1a \u88ab \u9500\u6bc1 \u3002 \u4ed6\u4eec \u5fc5\u987b \u660e\u786e \u5730 \u6467\u6bc1 \u81ea\u5df1 \u3002 destroyed _ sucessfully = actor . destroy ( ) # \u5982\u679c \u6210\u529f \u8fd4\u56de True \u91cd\u8981 \u9500\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f1a \u963b\u585e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u76f4\u5230 \u8be5 \u8fc7\u7a0b \u5b8c\u6210 \u3002","title":"\u6467\u6bc1"},{"location":"core_actors/#_8","text":"","title":"\u53c2\u4e0e\u8005 \u7c7b\u578b"},{"location":"core_actors/#_9","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4ed6\u4eec \u6709 \u81ea\u5df1 \u7684 \u90e8\u5206 \uff0c \u7b2c\u56db \u90e8\u5206 . \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u3002 \u73b0\u5728 \uff0c \u6211\u4eec \u53ea \u770b \u4e00\u4e0b \u5e38\u89c1 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u5468\u671f \u3002 \u6b64 \u793a\u4f8b \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5176 \u8fde\u63a5 \u5230 \u8f66\u8f86 \uff0c \u5e76 \u544a\u8bc9 \u76f8\u673a \u5c06 \u751f\u6210 \u7684 \u56fe\u50cf \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 camera _ bp = blueprint _ library . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , relative _ transform , attach _ to = my _ vehicle ) camera . listen ( lambda image : image . save _ to _ disk ( ' output / % 06d . png ' % image . frame ) ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e5f \u6709 \u84dd\u56fe \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u5b89\u88c5 \u5728 \u8f66\u8f86 \u4e0a\u4ee5 \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76d1\u542c \u6570\u636e \u3002 \u6536\u5230 \u6570\u636e \u540e \uff0c \u5b83\u4eec \u4f1a \u8c03\u7528 \u7528 Lambda \u8868\u8fbe \u8fbe\u5f0f \u8868\u8fbe\u5f0f \u63cf\u8ff0 \u7684 \u51fd\u6570 ( \u63d0\u4f9b \u7684 \u94fe\u63a5 \u4e2d \u7684 6.14 ) \u3002","title":"\u4f20\u611f\u5668"},{"location":"core_actors/#_10","text":"\u7531 \u865a\u5e7b \u5f15\u64ce \u653e\u7f6e \u4ee5 \u63d0\u4f9b \u6e38\u620f \u5185 \u7684 \u89c6\u89d2 \u3002 \u5b83 \u53ef \u7528\u4e8e \u79fb\u52a8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \u7684 \u89c6\u89d2 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u79fb\u52a8 \u89c2\u4f17 \u6f14\u5458 \uff0c \u5c06 \u89c6\u89d2 \u6307\u5411 \u6240 \u9700 \u7684 \u8f66\u8f86 \u3002 spectator = world . get _ spectator ( ) transform = vehicle . get _ transform ( ) spectator . set _ transform ( carla . Transform ( transform . location + carla . Location ( z = 50 ) , carla . Rotation ( pitch = - 90 ) ) )","title":"\u89c2\u5bdf\u8005"},{"location":"core_actors/#_11","text":"\u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c Carela \u4e2d \u53ea\u6709 \u505c\u9760 \u505c\u9760\u70b9 \u3001 \u8ba9 \u884c \u8def\u7ebf \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u88ab \u89c6\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5176\u4f59 \u7684 OpenDRIVE \u6807\u5fd7 \u53ef \u901a\u8fc7 API \u4f5c\u4e3a \u5730\u6807 \uff08 carla . Landmark \uff09 \u8fdb\u884c \u8bbf\u95ee \u3002 \u4ed6\u4eec \u7684 \u4fe1\u606f \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u5b9e\u4f8b \u8bbf\u95ee \uff0c \u4f46 \u4ed6\u4eec \u5728 \u4eff\u771f \u4e2d \u5e76 \u4e0d \u4f5c\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b58\u5728 \u3002 \u5728 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u7b2c 3 \u90e8\u5206 \u5730\u56fe \u548c \u5bfc\u822a \u4e2d\u5c06 \u66f4 \u8be6\u7ec6 \u5730 \u89e3\u91ca \u5730\u6807 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u3001 \u505c\u6b62 \u3001 \u8ba9 \u884c \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u65f6 \uff0c \u4f1a \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u81ea\u52a8 \u751f\u6210 \u3002 \u8fd9\u4e9b \u90fd \u65e0\u6cd5 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \uff0c \u56e0\u6b64 \u65e0\u6cd5 \u751f\u6210 \u3002 \u7b14\u8bb0 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 Carela \u5730\u56fe \u6ca1\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6216 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u8fd9\u4e9b \u662f \u7531 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u624b\u52a8 \u653e\u7f6e \u7684 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u672a \u5728 \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u672c\u8eab \u4e2d \u5b9a\u4e49 \uff0c \u5982\u4e0b \u9875 \u6240\u8ff0 \u3002 \u76f8\u53cd \uff0c \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . BoundingBox \u6765 \u5f71\u54cd \u5176\u4e2d \u7684 \u8f66\u8f86 \u3002 # \u83b7\u5f97 \u5f71\u54cd \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f if vehicle _ actor . is _ at _ traffic _ light ( ) : traffic _ light = vehicle _ actor . get _ traffic _ light ( ) \u8def\u53e3 \u8bbe\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u4e0e \u4efb\u4f55 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u4ed6\u4eec \u6709 \u81ea\u5df1 \u72ec\u7279 \u7684 ID \uff0c \u4f46 \u5bf9\u4e8e \u5c94\u8def \u53e3 \u4e5f \u6709 \u4e00\u4e2a \u4e00\u4e2a\u7ec4 \uff08 group \uff09 ID \u3002 \u540c \u4e00\u7ec4 \u4e2d \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9075\u5faa \u4e00\u4e2a \u5faa\u73af \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e3a \u7eff\u8272 \uff0c \u800c \u5176\u4f59 \u7684 \u5219 \u4fdd\u6301 \u7ea2\u8272 \u3002 \u6d3b\u8dc3 \u7684 \u706f\u4f1a \u6301\u7eed \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u5448 \u7eff\u8272 \u3001 \u9ec4\u8272 \u548c \u7ea2\u8272 \uff0c \u56e0\u6b64 \u6709 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u6240\u6709 \u706f \u90fd \u662f \u7ea2\u8272 \u7684 \u3002 \u7136\u540e \uff0c \u4e0b \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5f00\u59cb \u5faa\u73af \uff0c \u524d \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e0e \u5176\u4f59 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4e00\u8d77 \u51bb\u7ed3 \u3002 \u53ef\u4ee5 \u4f7f\u7528 API \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u6bcf\u4e2a \u72b6\u6001 \u82b1\u8d39 \u7684 \u79d2\u6570 \u4e5f \u662f \u5982\u6b64 \u3002 \u53ef\u80fd \u7684 \u72b6\u6001 \u7528 carla . TrafficLightState \u63cf\u8ff0 \u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u3002 # \u4ea4\u901a \u4ea4\u901a\u706f \u4ece\u7ea2 \u53d8\u7eff if traffic _ light . get _ state ( ) = = carla . TrafficLightState . Red : traffic _ light . set _ state ( carla . TrafficLightState . Green ) traffic _ light . set _ set _ green _ time ( 4.0 ) \u7b14\u8bb0 \u53ea\u6709 \u5f53 \u4fe1\u53f7 \u4fe1\u53f7\u706f \u4e3a \u7ea2\u8272 \u65f6 \uff0c \u8f66\u8f86 \u624d \u4f1a \u610f\u8bc6 \u5230 \u4ea4\u901a \u4ea4\u901a\u706f \u3002","title":"\u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a\u706f"},{"location":"core_actors/#_12","text":"carla . Vehicle \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u6f14\u5458 \u3002 \u5b83 \u91c7\u7528 \u4e86 \u4eff\u771f \u8f6e\u5f0f \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u7279\u6b8a \u5185\u90e8 \u7ec4\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5e94\u7528 \u56db\u79cd \u4e0d\u540c \u7684 \u63a7\u4ef6 \u6765 \u5b9e\u73b0 \u7684 \uff1a carla . VehicleControl \u63d0\u4f9b \u6cb9\u95e8 \u3001 \u8f6c\u5411 \u3001 \u5239\u8f66 \u7b49 \u9a7e\u9a76 \u547d\u4ee4 \u7684 \u8f93\u5165 \u3002 vehicle . apply _ control ( carla . VehicleControl ( throttle = 1.0 , steer = - 1.0 ) ) carla . VehiclePhysicsControl \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u7269\u7406 \u5c5e\u6027 \u5e76 \u5305\u542b \u53e6\u5916 \u4e24\u4e2a \u63a7\u5236 \u63a7\u5236\u5668 \uff1a carla . GearPhysicsControl \u63a7\u5236 \u9f7f\u8f6e \u3002 carla . WheelPhysicsControl \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u7279\u5b9a \u63a7\u5236 \u3002 vehicle . apply _ physics _ control ( carla . VehiclePhysicsControl ( max _ rpm = 5000.0 , center _ of _ mass = carla . Vector3D ( 0.0 , 0.0 , 0.0 ) , torque _ curve = [ [ 0 , 400 ] , [ 5000 , 400 ] ] ) ) \u8f66\u8f86 \u6709 \u4e00\u4e2a carla . BoundingBox \u5c01\u88c5 \u5b83\u4eec \u3002 \u8be5 \u8fb9\u754c \u6846 \u5141\u8bb8 \u5c06 \u7269\u7406 \u539f\u7406 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u5e76 \u68c0\u6d4b \u78b0\u649e \u3002 box = vehicle . bounding _ box print ( box . location ) # \u76f8\u5bf9 \u8f66\u8f86 \u7684 \u4f4d\u7f6e print ( box . extent ) # XYZ half - box extents in meters . \u901a\u8fc7 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u53c2\u6570 \u53ef\u4ee5 \u6539\u5584 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u9ed8\u8ba4 \u7684 \u8f6e\u5b50 \u7269\u7406 \u7cfb\u7edf \u7cfb\u7edf\u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u4f7f\u7528 \u4ece\u8f74\u5230 \u5730\u677f \u7684 \u5355 \u5c04\u7ebf \u6295\u5c04 \uff0c \u4f46\u662f \u5f53 \u542f\u7528 \u626b\u8f6e \u78b0\u649e \u65f6 \uff0c \u5c06 \u68c0\u67e5 \u8f6e\u5b50 \u7684 \u6574\u4e2a \u4f53\u79ef \u662f\u5426 \u53d1\u751f \u78b0\u649e \u3002 \u5b83 \u53ef\u4ee5 \u8fd9\u6837 \u542f\u7528 \uff1a physics _ control = vehicle . get _ physics _ control ( ) physics _ control . use _ sweep _ wheel _ collision = True vehicle . apply _ physics _ control ( physics _ control ) \u8f66\u8f86 \u8fd8 \u5305\u62ec \u5176 \u72ec\u6709 \u7684 \u5176\u4ed6 \u529f\u80fd \uff1a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u4f1a \u5c06 \u8f66\u8f86 \u8ba2\u9605 \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u57ce\u5e02 \u72b6\u51b5 \u3002 \u8be5 \u6a21\u5757 \u662f \u786c \u7f16\u7801 \u7684 \uff0c \u4e0d\u662f \u57fa\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u3002 vehicle . set _ autopilot ( True ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 \u548c \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \uff0c \u914d\u5907 \u96c6\u6210 \u8f66\u706f \u7684 \u8f66\u8f86 \u5982\u4e0b \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff1a \u6240\u6709 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u90fd \u6709 \u524d\u540e \u4f4d\u7f6e \u4f4d\u7f6e\u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \uff1a \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \uff1a \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 Impala \u3001 \u9053\u5947 \u8b66\u8f66 \u3001 \u9053\u5947 Charger \u3001 \u5965\u8fea e - tron \u3001 \u6797\u80af 2017 \u5e74 \u548c 2020 \u5e74 \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Model 3 \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 Cybertruck \u3001 \u5927\u4f17 T2 \u548c \u8d5b\u5fb7 \u5fb7\u65af \u6885\u8d5b\u5fb7 \u8d5b\u5fb7\u65af \u6885\u8d5b\u5fb7\u65af C \u7ea7 \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights )","title":"\u8f66\u8f86"},{"location":"core_actors/#_13","text":"carla . Walker \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u8f66\u8f86 \u7c7b\u4f3c \u3002 \u5bf9 \u5b83\u4eec \u7684 \u63a7\u5236 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u63d0\u4f9b \u3002 carla . WalkerControl \u4ee5 \u4e00\u5b9a \u7684 \u65b9\u5411 \u548c \u901f\u5ea6 \u79fb\u52a8 \u884c\u4eba \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u4ed6\u4eec \u8df3\u8dc3 \u3002 carla . WalkerBoneControl \u63d0\u4f9b \u5bf9 \u4e09\u7ef4 \u9aa8\u67b6 \u7684 \u63a7\u5236 \u3002 \u672c \u6559\u7a0b \u89e3\u91ca \u4e86 \u5982\u4f55 \u63a7\u5236 \u5b83 \u3002 \u884c\u4eba \u53ef\u4ee5 \u7531 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u3002 \u4ed6\u4eec \u6ca1\u6709 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u3002 carla . WalkerAIController \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5b83 \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5468\u56f4 \u79fb\u52a8 \u3002 walker _ controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) world . SpawnActor ( walker _ controller _ bp , carla . Transform ( ) , parent _ walker ) \u7b14\u8bb0 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u65e0\u5f62 \u7684 \uff0c \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u4e0d\u4f1a \u51fa\u73b0 \u5728 \u73b0\u573a \u3002 \u6b64\u5916 \uff0c \u4f4d\u7f6e ( 0 , 0 , 0 ) \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u4f4d\u7f6e \u4e0d\u4f1a \u5bfc\u81f4 \u78b0\u649e \u3002 \u6bcf\u4e2a \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u90fd \u9700\u8981 \u521d\u59cb \u521d\u59cb\u5316 \u3001 \u76ee\u6807 \u548c \u53ef\u9009 \u7684 \u901f\u5ea6 \u3002 \u505c\u6b62 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u76f8\u540c \u3002 ai _ controller . start ( ) ai _ controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) ai _ controller . set _ max _ speed ( 1 + random . random ( ) ) # \u5728 1 \u7c73 \u6bcf\u79d2 \u5230 2 \u7c73 \u6bcf\u79d2 \u4e4b\u95f4 \uff08 \u9ed8\u8ba4 \u662f 1.4 \u7c73 \u6bcf\u79d2 \uff09 ... ai _ controller . stop ( ) \u5f53 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5230\u8fbe \u76ee\u6807 \u4f4d\u7f6e \u65f6 \uff0c \u4ed6\u4eec \u4f1a \u81ea\u52a8 \u6b65\u884c \u5230 \u53e6 \u4e00\u4e2a \u968f\u673a \u70b9 \u3002 \u5982\u679c \u65e0\u6cd5 \u5230\u8fbe \u76ee\u6807 \u70b9 \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5c06 \u524d\u5f80 \u8ddd\u79bb \u5f53\u524d \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u70b9 \u3002 carla . Client \u4e2d \u7684 \u4e00\u4e2a \u7247\u6bb5 \u4f7f\u7528 \u6279\u6b21 \u751f\u6210 \u5927\u91cf \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5e76 \u8ba9 \u5b83\u4eec \u56db\u5904 \u6e38\u8361 \u3002 \u91cd\u8981 \u8981 \u6467\u6bc1 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u884c\u4eba \uff0c \u8bf7 \u505c\u6b62 \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u5173\u4e8e Carla \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8fd9 \u5c31\u662f \u4e00\u4e2a \u603b\u7ed3 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 Carla \u7684 \u5730\u56fe \u3001 \u9053\u8def \u548c \u4ea4\u901a \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u6216 \u8bbf\u95ee \u8bba\u575b \u53d1\u5e03 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b 3rd . \u5730\u56fe \u548c \u5bfc\u822a","title":"\u884c\u4eba"},{"location":"core_map/","text":"\u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a \u5728 \u8ba8\u8bba \u4e86 \u4e16\u754c \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u540e \uff0c \u662f \u65f6\u5019 \u5c06 \u6240\u6709 \u5185\u5bb9 \u90fd \u653e\u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u5e76 \u4e86\u89e3 \u5730\u56fe \u4ee5\u53ca \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5982\u4f55 \u5bfc\u822a \u3002 \u5730\u56fe \u6539\u53d8 \u5730\u56fe \u5730\u6807 \u8f66\u9053 \u8def\u53e3 \u822a\u70b9 \u73af\u5883 \u5bf9\u8c61 \u5728 Carla \u4e2d \u5bfc\u822a \u901a\u8fc7 \u822a\u8def \u70b9 \u5bfc\u822a \u751f\u6210 \u5730\u56fe \u5bfc\u822a Carla \u5730\u56fe \u975e \u5206\u5c42 \u5730\u56fe \u5206\u5c42 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 painting \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5 \u5730\u56fe \u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u5b9a\u4e49 \u3002 \u5730\u56fe \u7684 \u9053\u8def \u5b9a\u4e49 \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \uff0c \u8fd9\u662f \u4e00\u79cd \u6807\u51c6 \u6807\u51c6\u5316 \u7684 \u5e26 \u6ce8\u91ca \u7684 \u9053\u8def \u5b9a\u4e49 \u683c\u5f0f \u3002 OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u9053\u8def \u3001 \u8f66\u9053 \u3001 \u8def\u53e3 \u7b49 \u65b9\u5f0f \u51b3\u5b9a \u4e86 Python API \u7684 \u529f\u80fd \u4ee5\u53ca \u51b3\u7b56 \u80cc\u540e \u7684 \u63a8\u7406 \u3002 Python API \u5145\u5f53 \u9ad8\u7ea7 \u67e5\u8be2 \u7cfb\u7edf \u6765 \u5bfc\u822a \u8fd9\u4e9b \u9053\u8def \u3002 \u5b83 \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u66f4 \u5e7f\u6cdb \u7684 \u5de5\u5177 \u5de5\u5177\u96c6 \u3002 \u6539\u53d8 \u5730\u56fe \u8981 \u6539\u53d8 \u5730\u56fe \uff0c \u4e16\u754c \u4e5f \u5fc5\u987b \u6539\u53d8 \u3002 \u5c06 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u91cd\u65b0 \u521b\u5efa \u4eff\u771f \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u4e16\u754c \u65b0\u4e16\u754c \u4e2d \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u4e5f \u53ef\u4ee5 \u66f4\u6539 \u5730\u56fe \u548c \u4e16\u754c \uff1a reload _ world ( ) \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u521b\u5efa \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 load _ world ( ) \u6539\u53d8 \u5f53\u524d \u5730\u56fe \u5e76 \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 world = client . load _ world ( ' Town01 ' ) \u6bcf\u4e2a \u5730\u56fe \u90fd \u6709 \u4e00\u4e2a \u4e0e \u5f53\u524d \u52a0\u8f7d \u7684 \u57ce\u5e02 \u540d\u79f0 \u5339\u914d \u7684 name \u5c5e\u6027 \uff0c \u4f8b\u5982 Town01 \u3002 \u8981 \u83b7\u53d6 \u53ef\u7528 \u5730\u56fe \u7684 \u5217\u8868 \uff1a print ( client . get _ available _ maps ( ) ) \u5730\u6807 OpenDRIVE \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u5c06 \u8f6c\u6362 \u4e3a Carla \uff0c \u4f5c\u4e3a \u53ef \u4ece API \u67e5\u8be2 \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u4ee5\u4e0b \u65b9\u6cd5 \u548c \u7c7b \u53ef \u7528\u4e8e \u64cd\u4f5c \u548c \u4f7f\u7528 \u5730\u6807 \u5bf9\u8c61 \uff1a carla . Landmark \u5bf9\u8c61 \u4ee3\u8868 OpenDRIVE \u4fe1\u53f7 \u3002 \u8be5\u7c7b \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u63cf\u8ff0 \u4e86 \u5730\u6807 \u53ca\u5176 \u5f71\u54cd \u533a\u57df \u3002 carla . LandmarkOrientation \u8bf4\u660e \u5730\u6807 \u76f8\u5bf9 \u4e8e \u9053\u8def \u51e0\u4f55 \u5b9a\u4e49 \u7684 \u65b9\u5411 \u3002 carla . LandmarkType \u5305\u542b \u5e38\u89c1 \u7684 \u5730\u6807 \u7c7b\u578b \uff0c \u4ee5\u4fbf \u4e8e \u8f6c\u6362 \u4e3a OpenDRIVE \u7c7b\u578b \u3002 carla . Waypoint \u53ef\u4ee5 \u83b7\u5f97 \u4f4d\u4e8e \u5176 \u524d\u65b9 \u4e00\u5b9a \u8ddd\u79bb \u7684 \u5730\u6807 \u3002 \u53ef\u4ee5 \u6307\u5b9a \u8981 \u83b7\u53d6 \u7684 \u5730\u6807 \u7c7b\u578b \u3002 carla . Map \u68c0\u7d22 \u5730\u6807 \u96c6 \u3002 \u5b83 \u53ef\u4ee5 \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \uff0c \u6216\u8005 \u5177\u6709 \u5171\u540c ID \u3001 \u7c7b\u578b \u6216\u7ec4 \u7684 \u5730\u6807 \u3002 carla . World \u5145\u5f53 \u5730\u6807 \u3001 \u4eff\u771f \u4e2d \u4ee3\u8868 \u4ed6\u4eec \u7684 carla . TrafficSign \u548c carla . TrafficLight \u4e4b\u95f4 \u7684 \u4e2d\u95f4 \u3002 my _ waypoint . get _ landmarks ( 200.0 , True ) \u8def\u5f84 \u70b9 carla . Waypoint \u662f Carla \u4e16\u754c \u4e2d \u7684 \u4e09\u7ef4 \u6709 \u5411 \u70b9 \uff0c \u5bf9\u5e94 \u4e8e OpenDRIVE \u8f66\u9053 \u3002 \u4e0e \u8def\u5f84 \u70b9 \u76f8\u5173 \u7684 \u6240\u6709 \u4e8b\u60c5 \u90fd \u53d1\u751f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1b \u53ea \u9700 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e00\u6b21 \u5373\u53ef \u83b7\u53d6 \u5305\u542b \u822a\u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u6bcf\u4e2a \u8def\u5f84 \u70b9 \u90fd \u5305\u542b \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u8bf4\u660e \u5176 \u5728 \u5730\u56fe \u4e0a \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5305\u542b \u8be5 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 \u7684 \u65b9\u5411 \u3002 \u53d8\u91cf road _ id , section _ id , lane _ id \u548c s \u5bf9\u5e94 OpenDRIVE \u9053\u8def \u3002 \u8def\u5f84 \u70b9 id \u7684 \u662f \u7531 \u8fd9 \u56db\u4e2a \u503c \u7684 \u54c8\u5e0c \u7ec4\u5408 \u6784\u9020 \u7684 \u3002 \u7b14\u8bb0 \u540c\u4e00 \u9053\u8def \u5185 \u8ddd\u79bb \u5c0f\u4e8e 2 \u5398\u7c73 \u7684 \u8def\u70b9 \u5171\u4eab \u76f8\u540c \u7684 \u8def\u70b9 id \u3002 \u8def\u5f84 \u70b9 \u4fdd\u5b58 \u6709\u5173 \u5305\u542b \u8be5 \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7684 \u4fe1\u606f \u3002 \u6b64 \u4fe1\u606f \u5305\u62ec \u8f66\u9053 \u7684 \u5de6 \u8f66\u9053 \u548c \u53f3 \u8f66\u9053 \u6807\u8bb0 \u3001 \u7528\u4e8e \u786e\u5b9a \u5176 \u662f\u5426 \u4f4d\u4e8e \u8def\u53e3 \u5185 \u7684 \u5e03\u5c14 \u5e03\u5c14\u503c \u3001 \u8f66\u9053 \u7c7b\u578b \u3001 \u5bbd\u5ea6 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u3002 # \u4ece \u8def\u5f84 \u70b9 \u8bbf\u95ee \u8f66\u9053 \u4fe1\u606f inside _ junction = waypoint . is _ junction ( ) width = waypoint . lane _ width right _ lm _ color = waypoint . right _ lane _ marking . color \u8f66\u9053 OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u7684 \u901a\u9053 \u7c7b\u578b \u5c06 carla . LaneType \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u8f6c\u6362 \u4e3a API \u3002 \u8f66\u9053 \u5468\u56f4 \u7684 \u8f66\u9053 \u6807\u8bb0 \u53ef \u901a\u8fc7 carla . LaneMarking \u8bbf\u95ee \u3002 \u8f66\u9053 \u6807\u8bb0 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53d8\u91cf \u5b9a\u4e49 \uff1a color : carla . LaneMarkingColor \u662f \u5b9a\u4e49 \u6807\u8bb0 \u989c\u8272 \u7684 \u679a\u4e3e \u503c \u3002 lane _ change : carla . LaneChange \u8bf4\u660e \u8f66\u9053 \u662f\u5426 \u5141\u8bb8 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u4e24\u8005 \u90fd \u5141\u8bb8 \u6216 \u4e0d \u5141\u8bb8 \u3002 type : carla . LaneMarkingType \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u6807\u8bb0 \u7c7b\u578b \u7684 \u679a\u4e3e \u503c \u3002 width : \u5b9a\u4e49 \u6807\u8bb0 \u7684 \u539a\u5ea6 \u3002 \u4e0b\u9762 \u7684 \u793a\u4f8b \u663e\u793a \u4e86 \u83b7\u53d6 \u6709\u5173 \u7279\u5b9a \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7c7b\u578b \u3001 \u8f66\u9053 \u6807\u8bb0 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u7684 \u4fe1\u606f \uff1a # \u83b7\u5f97 \u8def\u5f84 \u70b9 \u8f66\u9053 \u7c7b\u578b lane _ type = waypoint . lane _ type # \u83b7\u5f97 \u5de6 \u8f66\u9053 \u6807\u8bb0 \u7684 \u7c7b\u578b left _ lanemarking _ type = waypoint . left _ lane _ marking . type ( ) # \u83b7\u5f97 \u8be5 \u8def\u5f84 \u70b9 \u53ef \u5f97 \u7684 \u8f66\u9053 \u6539\u53d8 lane _ change = waypoint . lane _ change \u8def\u53e3 carla . Junction \u4ee3\u8868 OpenDRIVE \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u3002 \u6b64\u7c7b \u5305\u542b \u5e26\u6709 \u8fb9\u754c \u6846 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \uff0c \u7528\u4e8e \u8bc6\u522b \u5176\u4e2d \u7684 \u8f66\u9053 \u6216 \u8f66\u8f86 \u3002 \u8be5 carla . Junction \u7c7b \u5305\u542b get _ waypoints \u4e3a \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6bcf\u4e2a \u8f66\u9053 \u8fd4\u56de \u4e00\u5bf9 \u8def\u70b9 \u7684 \u65b9\u6cd5 \u3002 \u6bcf \u5bf9 \u4f4d\u4e8e \u4ea4\u754c \u4ea4\u754c\u5904 \u8fb9\u754c \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 waypoints _ junc = my _ junction . get _ waypoints ( ) \u73af\u5883 \u5bf9\u8c61 Carla \u5730\u56fe \u4e0a \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u90fd \u6709 \u4e00\u7ec4 \u5173\u8054 \u7684 \u53d8\u91cf \uff0c \u53ef\u4ee5 \u5728 \u6b64 \u5904 \u627e\u5230 \u8fd9\u4e9b \u53d8\u91cf \u3002 \u8fd9\u4e9b \u53d8\u91cf \u4e2d \u5305\u542b \u4e00\u4e2a \u552f\u4e00 ID \uff0c \u53ef \u7528\u4e8e \u5207\u6362 \u8be5 \u5bf9\u8c61 \u5728 \u5730\u56fe \u4e0a \u7684 \u53ef\u89c1 \u6027 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u6839\u636e \u6bcf\u4e2a \u73af\u5883 \u5bf9\u8c61 \u7684 \u8bed\u4e49 \u6807\u7b7e \u83b7\u53d6 \u5176 ID \uff1a # \u83b7\u5f97 \u4e16\u754c \u4e2d \u7684 \u5efa\u7b51 world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # \u8bbf\u95ee \u5404\u4e2a \u5efa\u7b51 IDs \u5e76 \u4fdd\u5b58 \u5728 \u96c6\u5408 \u5f53\u4e2d building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # \u5207\u6362 \u5efa\u7b51 \u4e3a \u4e0d \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , False ) # \u5207\u6362 \u5efa\u7b51 \u4e3a \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , True ) \u67e5\u770b \u5207\u6362 \u4e0d\u540c \u5bf9\u8c61 \u7684 \u793a\u4f8b \uff1a \u5728 Carla \u4e2d \u5bfc\u822a Carla \u4e2d \u7684 \u5bfc\u822a \u662f \u901a\u8fc7 Waypoint API \uff08 \u6765\u81ea carla . Waypoint \u548c carla . Map \u7684 \u65b9\u6cd5 \u7ec4\u5408 \uff09 \u8fdb\u884c \u7ba1\u7406 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u9996\u5148 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4ee5 \u68c0\u7d22 \u5305\u542b \u8def\u5f84 \u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u4e00\u6b21 \uff0c \u6240\u6709 \u540e\u7eed \u67e5\u8be2 \u90fd \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6267\u884c \u3002 \u901a\u8fc7 \u8def\u5f84 \u70b9 \u5bfc\u822a Waypoint API \u516c\u5f00 \u4e86 \u5141\u8bb8 \u8def\u5f84 \u70b9 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u5e76 \u6784\u5efa \u6cbf \u9053\u8def \u4f9b \u8f66\u8f86 \u5bfc\u822a \u7684 \u8def\u5f84 \u7684 \u65b9\u6cd5 \uff1a next ( d ) \u5728 \u8f66\u9053 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb d \u5185 \u7684 \u822a\u8def \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 previous ( d ) \u5728 \u8f66\u9053 \u76f8\u53cd \u7684 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb \u5c0f\u4e8e d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u8def\u5f84 \u70b9 \u3002 next _ until _ lane _ end ( d ) \u548c previous _ until _ lane _ start ( d ) \u8fd4\u56de \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5217\u8868 \u5206\u522b \u4ece \u5f53\u524d \u8def\u5f84 \u70b9\u5230 \u5176 \u8f66\u9053 \u7684 \u7ec8\u70b9 \u548c \u8d77\u70b9 \u3002 get _ right _ lane ( ) \u548c get _ left _ lane ( ) \u8fd4\u56de \u76f8\u90bb \u8f66\u9053 \u4e2d \u7684 \u7b49 \u8def\u5f84 \u70b9 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u627e\u5230 \u53f3 / \u5de6 \u8f66\u9053 \u4e0a \u7684 \u4e0b \u4e00\u4e2a \u8def\u70b9 \u5e76 \u79fb\u52a8 \u5230 \u8be5 \u8def\u70b9 \u6765 \u8fdb\u884c \u53d8\u9053 \u64cd\u4f5c \u3002 # \u627e\u5230 \u524d\u9762 2 \u7c73 \u7684 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9 waypoint = waypoint . next ( 2.0 ) \u751f\u6210 \u5730\u56fe \u5bfc\u822a \u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u8bf7\u6c42 \u53d1\u51fa\u8bf7\u6c42 \u6765 \u83b7\u53d6 . xodr \u5730\u56fe \u6587\u4ef6 \u5e76 \u5c06 \u5176 \u89e3\u6790 \u4e3a carla . Map \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u505a \u4e00\u6b21 \u3002 \u83b7\u53d6 \u5730\u56fe \u5bf9\u8c61 \uff1a map = world . get _ map ( ) \u5730\u56fe \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u521b\u5efa \u8f66\u8f86 \u7684 \u63a8\u8350 \u751f\u6210 \u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \u83b7\u53d6 \u8fd9\u4e9b \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \uff0c \u6bcf\u4e2a \u751f\u6210 \u70b9 \u90fd \u5305\u542b carla . Transform \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u751f\u6210 \u70b9 \u53ef\u80fd \u5df2 \u88ab \u5360\u7528 \uff0c \u4ece\u800c \u5bfc\u81f4 \u7531\u4e8e \u78b0\u649e \u800c \u5bfc\u81f4 \u8f66\u8f86 \u521b\u5efa \u5931\u8d25 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u83b7\u53d6 \u8ddd \u7279\u5b9a \u4f4d\u7f6e \u6216 \u7279\u5b9a road _ id \u3001 lane _ id \u548c s \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u822a\u8def \u70b9 \u4ee5\u53ca \u5730\u56fe OpenDRIVE \u5b9a\u4e49 \u4e2d \u7684 \u503c\u6765 \u5f00\u59cb \u4f7f\u7528 \u8def\u5f84 \u70b9 \uff1a # \u9a7e\u9a76 \u8f66\u9053 \u6216 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e2d\u5fc3 \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \u3002 waypoint01 = map . get _ waypoint ( vehicle . get _ location ( ) , project _ to _ road = True , lane _ type = ( carla . LaneType . Driving | carla . LaneType . Sidewalk ) ) # \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \uff0c \u540c\u65f6 \u6307\u5b9a OpenDRIVE \u53c2\u6570 \u3002 waypoint02 = map . get _ waypoint _ xodr ( road _ id , lane _ id , s ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c55\u793a \u4e86 \u5982\u4f55 \u751f\u6210 \u8def\u70b9 \u96c6\u5408 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u57ce\u5e02 \u8f66\u9053 \u3002 \u8fd9 \u5c06 \u4e3a \u6574\u4e2a \u5730\u56fe \u4e0a \u7684 \u6bcf\u6761 \u9053\u8def \u548c \u8f66\u9053 \u521b\u5efa \u8def\u5f84 \u70b9 \u3002 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u5927\u7ea6 \u4e3a 2 \u7c73 \uff1a waypoint _ list = map . generate _ waypoints ( 2.0 ) \u8981 \u751f\u6210 \u9053\u8def \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \uff0c \u8bf7 \u4f7f\u7528 \u4e0b\u9762 \u7684 \u793a\u4f8b \u3002 \u8fd9 \u5c06 \u8fd4\u56de \u8def\u5f84 \u70b9 \u5bf9 \uff08 \u5143\u7ec4 \uff09 \u7684 \u5217\u8868 \u3002 \u6bcf \u5bf9 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u5143\u7d20 \u4e0e \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5143\u7d20 \u8fde\u63a5 \uff0c \u4e24\u8005 \u90fd \u5b9a\u4e49 \u4e86 \u5730\u56fe \u4e2d \u6bcf\u6761 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u6709\u5173 \u6b64 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 PythonAPI \u4e2d \u627e\u5230 \u3002 waypoint _ tuple _ list = map . get _ topology ( ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c06 carla . Transform \u8f6c\u6362 \u4e3a \u5730\u7406 \u7eac\u5ea6 \u5730\u7406\u7eac\u5ea6 \u548c \u7ecf\u5ea6 \u5750\u6807 \uff0c \u91c7\u7528 carla . GeoLocation \u7684 \u5f62\u5f0f \uff1a my _ geolocation = map . transform _ to _ geolocation ( vehicle . transform ) \u4f7f\u7528 \u4ee5\u4e0b \u793a\u4f8b \u5c06 OpenDRIVE \u683c\u5f0f \u7684 \u9053\u8def \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a info _ map = map . to _ opendrive ( ) Carla \u5730\u56fe Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d\u6709 \u516b\u4e2a \u57ce\u9547 \uff0c \u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u4e24\u79cd \u5730\u56fe \uff0c \u975e \u5206\u5c42 \u5730\u56fe \u548c \u5206\u5c42 \u5730\u56fe \u3002 \u56fe\u5c42 \u662f \u6307 \u5730\u56fe \u4e2d \u5206\u7ec4 \u7684 \u5bf9\u8c61 \uff0c \u7531 \u4ee5\u4e0b \u90e8\u5206 \u7ec4\u6210 \uff1a NONE \u5efa\u7b51 \u5efa\u7b51\u7269 \u8d34\u6807 \u53f6\u5b50 \u5730\u9762 \u505c\u653e \u7684 \u8f66\u8f86 \u7c92\u5b50 \u9053\u5177 \u8def\u706f \u5899\u58c1 \u5168\u90e8 \u975e \u5206\u5c42 \u5730\u56fe \u4e0b\u8868 \u663e\u793a \u4e86 \u975e \u5206\u5c42 \u5730\u56fe \uff08 \u5355\u51fb \u57ce\u9547 \u540d\u79f0 \u53ef \u67e5\u770b \u5e03\u5c40 \u7684 \u4fef\u89c6 \u89c6\u56fe \u4fef\u89c6\u56fe \uff09 \u3002 \u6240\u6709 \u56fe\u5c42 \u59cb\u7ec8 \u5b58\u5728 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5728 \u8fd9\u4e9b \u5730\u56fe \u4e2d \u6253\u5f00 \u6216 \u5173\u95ed \u3002 \u76f4\u5230 Carla 0.9 . 11 \u4e3a\u6b62 \uff0c \u8fd9\u4e9b \u662f \u552f\u4e00 \u53ef\u7528 \u7684 \u5730\u56fe \u7c7b\u578b \u3002 \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u751a\u81f3 \u521b\u5efa \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u65b0 \u5730\u56fe \u3002 \u57ce\u9547 \u6982\u62ec Town01 \u7531 \u201c T \u5b57 \u8def\u53e3 \u201d \u7ec4\u6210 \u7684 \u57fa\u672c \u57ce\u9547 \u5e03\u5c40 \u3002 Town02 \u548c Town01 \u7c7b\u4f3c \uff0c \u4f46\u662f \u66f4 \u5c0f \u3002 Town03 \u6700 \u590d\u6742 \u7684 \u57ce\u9547 \uff0c \u6709 5 \u8f66\u9053 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 \u73af\u5c9b \u3001 \u51f9\u51f8 \u4e0d\u5e73 \u51f9\u51f8\u4e0d\u5e73 \u3001 \u96a7\u9053 \u7b49 \u3002 Town04 \u6709 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5c0f\u9547 \u7684 \u65e0\u9650 \u5faa\u73af \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u957f \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u8f6c \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town10 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town11 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 Town13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 Town15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002 HUTB \u57fa\u4e8e \u6e56\u5357 \u5de5\u5546 \u5546\u5927 \u5927\u5b66 \u5de5\u5546\u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002 \u5206\u5c42 \u5730\u56fe \u5206\u5c42 \u5730\u56fe \u7684 \u5e03\u5c40 \u4e0e\u975e \u5206\u5c42 \u5730\u56fe \u76f8\u540c \uff0c \u4f46 \u53ef\u4ee5 \u5173\u95ed \u548c \u6253\u5f00 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u6709 \u4e00\u4e2a \u65e0\u6cd5 \u5173\u95ed \u7684 \u6700\u5c0f \u5e03\u5c40 \uff0c \u7531 \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7ec4\u6210 \u3002 \u5206\u5c42 \u5730\u56fe \u53ef\u4ee5 \u901a\u8fc7 \u540e\u7f00 _ Opt \u6765 \u6807\u8bc6 \uff0c \u4f8b\u5982 Town01 _ Opt \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u5730\u56fe \uff0c \u53ef\u4ee5 \u901a\u8fc7 Python API \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff1a # \u52a0\u8f7d \u57ce\u9547 01 \u7684 \u5206\u5c42 \u5730\u56fe \uff0c \u5e26\u6709 \u6700\u5c0f \u5e03\u5c40 \u52a0\u4e0a \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u505c\u653e \u7684 \u8f66\u8f86 world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # \u5173\u95ed \u6240\u6709 \u5efa\u7b51 world . unload _ map _ layer ( carla . MapLayer . Buildings ) # \u6253\u5f00 \u6240\u6709 \u5efa\u7b51 world . load _ map _ layer ( carla . MapLayer . Buildings ) \u67e5\u770b \u6309 \u987a\u5e8f \u52a0\u8f7d \u548c \u5378\u8f7d \u6240\u6709 \u5c42 \u7684 \u793a\u4f8b \uff1a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe Carla \u65e8\u5728 \u9488\u5bf9 \u4e13\u4e1a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fdb\u884c \u53ef \u6269\u5c55 \u548c \u9ad8\u5ea6 \u5b9a\u5236 \u3002 \u56e0\u6b64 \uff0c \u9664\u4e86 Carla \u4e2d \u73b0\u6709 \u7684 \u8bb8\u591a \u5730\u56fe \u548c \u8d44\u4ea7 \u4e4b\u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u548c \u5bfc\u5165 \u65b0 \u7684 \u5730\u56fe \u3001 \u9053\u8def \u7f51\u7edc \u548c \u8d44\u4ea7 \uff0c \u4ee5 \u586b\u5145 Carla \u4eff\u771f \u4e2d \u7684 \u5b9a\u5236 \u73af\u5883 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u6784\u5efa \u548c \u96c6\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6240 \u9700 \u7684 \u6b65\u9aa4 \uff1a \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a "},{"location":"core_map/#_1","text":"\u5728 \u8ba8\u8bba \u4e86 \u4e16\u754c \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u540e \uff0c \u662f \u65f6\u5019 \u5c06 \u6240\u6709 \u5185\u5bb9 \u90fd \u653e\u5728 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u5e76 \u4e86\u89e3 \u5730\u56fe \u4ee5\u53ca \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5982\u4f55 \u5bfc\u822a \u3002 \u5730\u56fe \u6539\u53d8 \u5730\u56fe \u5730\u6807 \u8f66\u9053 \u8def\u53e3 \u822a\u70b9 \u73af\u5883 \u5bf9\u8c61 \u5728 Carla \u4e2d \u5bfc\u822a \u901a\u8fc7 \u822a\u8def \u70b9 \u5bfc\u822a \u751f\u6210 \u5730\u56fe \u5bfc\u822a Carla \u5730\u56fe \u975e \u5206\u5c42 \u5730\u56fe \u5206\u5c42 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 painting \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u7b2c\u4e09 \u3001 \u5730\u56fe \u548c \u5bfc\u822a"},{"location":"core_map/#_2","text":"\u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u5b9a\u4e49 \u3002 \u5730\u56fe \u7684 \u9053\u8def \u5b9a\u4e49 \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \uff0c \u8fd9\u662f \u4e00\u79cd \u6807\u51c6 \u6807\u51c6\u5316 \u7684 \u5e26 \u6ce8\u91ca \u7684 \u9053\u8def \u5b9a\u4e49 \u683c\u5f0f \u3002 OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u9053\u8def \u3001 \u8f66\u9053 \u3001 \u8def\u53e3 \u7b49 \u65b9\u5f0f \u51b3\u5b9a \u4e86 Python API \u7684 \u529f\u80fd \u4ee5\u53ca \u51b3\u7b56 \u80cc\u540e \u7684 \u63a8\u7406 \u3002 Python API \u5145\u5f53 \u9ad8\u7ea7 \u67e5\u8be2 \u7cfb\u7edf \u6765 \u5bfc\u822a \u8fd9\u4e9b \u9053\u8def \u3002 \u5b83 \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u66f4 \u5e7f\u6cdb \u7684 \u5de5\u5177 \u5de5\u5177\u96c6 \u3002","title":"\u5730\u56fe"},{"location":"core_map/#_3","text":"\u8981 \u6539\u53d8 \u5730\u56fe \uff0c \u4e16\u754c \u4e5f \u5fc5\u987b \u6539\u53d8 \u3002 \u5c06 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u91cd\u65b0 \u521b\u5efa \u4eff\u771f \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u4e16\u754c \u65b0\u4e16\u754c \u4e2d \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \uff0c \u4e5f \u53ef\u4ee5 \u66f4\u6539 \u5730\u56fe \u548c \u4e16\u754c \uff1a reload _ world ( ) \u4f7f\u7528 \u76f8\u540c \u7684 \u5730\u56fe \u521b\u5efa \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 load _ world ( ) \u6539\u53d8 \u5f53\u524d \u5730\u56fe \u5e76 \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 world = client . load _ world ( ' Town01 ' ) \u6bcf\u4e2a \u5730\u56fe \u90fd \u6709 \u4e00\u4e2a \u4e0e \u5f53\u524d \u52a0\u8f7d \u7684 \u57ce\u5e02 \u540d\u79f0 \u5339\u914d \u7684 name \u5c5e\u6027 \uff0c \u4f8b\u5982 Town01 \u3002 \u8981 \u83b7\u53d6 \u53ef\u7528 \u5730\u56fe \u7684 \u5217\u8868 \uff1a print ( client . get _ available _ maps ( ) )","title":"\u6539\u53d8 \u5730\u56fe"},{"location":"core_map/#_4","text":"OpenDRIVE \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u5c06 \u8f6c\u6362 \u4e3a Carla \uff0c \u4f5c\u4e3a \u53ef \u4ece API \u67e5\u8be2 \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u4ee5\u4e0b \u65b9\u6cd5 \u548c \u7c7b \u53ef \u7528\u4e8e \u64cd\u4f5c \u548c \u4f7f\u7528 \u5730\u6807 \u5bf9\u8c61 \uff1a carla . Landmark \u5bf9\u8c61 \u4ee3\u8868 OpenDRIVE \u4fe1\u53f7 \u3002 \u8be5\u7c7b \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u63cf\u8ff0 \u4e86 \u5730\u6807 \u53ca\u5176 \u5f71\u54cd \u533a\u57df \u3002 carla . LandmarkOrientation \u8bf4\u660e \u5730\u6807 \u76f8\u5bf9 \u4e8e \u9053\u8def \u51e0\u4f55 \u5b9a\u4e49 \u7684 \u65b9\u5411 \u3002 carla . LandmarkType \u5305\u542b \u5e38\u89c1 \u7684 \u5730\u6807 \u7c7b\u578b \uff0c \u4ee5\u4fbf \u4e8e \u8f6c\u6362 \u4e3a OpenDRIVE \u7c7b\u578b \u3002 carla . Waypoint \u53ef\u4ee5 \u83b7\u5f97 \u4f4d\u4e8e \u5176 \u524d\u65b9 \u4e00\u5b9a \u8ddd\u79bb \u7684 \u5730\u6807 \u3002 \u53ef\u4ee5 \u6307\u5b9a \u8981 \u83b7\u53d6 \u7684 \u5730\u6807 \u7c7b\u578b \u3002 carla . Map \u68c0\u7d22 \u5730\u6807 \u96c6 \u3002 \u5b83 \u53ef\u4ee5 \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \uff0c \u6216\u8005 \u5177\u6709 \u5171\u540c ID \u3001 \u7c7b\u578b \u6216\u7ec4 \u7684 \u5730\u6807 \u3002 carla . World \u5145\u5f53 \u5730\u6807 \u3001 \u4eff\u771f \u4e2d \u4ee3\u8868 \u4ed6\u4eec \u7684 carla . TrafficSign \u548c carla . TrafficLight \u4e4b\u95f4 \u7684 \u4e2d\u95f4 \u3002 my _ waypoint . get _ landmarks ( 200.0 , True )","title":"\u5730\u6807"},{"location":"core_map/#_5","text":"carla . Waypoint \u662f Carla \u4e16\u754c \u4e2d \u7684 \u4e09\u7ef4 \u6709 \u5411 \u70b9 \uff0c \u5bf9\u5e94 \u4e8e OpenDRIVE \u8f66\u9053 \u3002 \u4e0e \u8def\u5f84 \u70b9 \u76f8\u5173 \u7684 \u6240\u6709 \u4e8b\u60c5 \u90fd \u53d1\u751f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1b \u53ea \u9700 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e00\u6b21 \u5373\u53ef \u83b7\u53d6 \u5305\u542b \u822a\u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u6bcf\u4e2a \u8def\u5f84 \u70b9 \u90fd \u5305\u542b \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u8bf4\u660e \u5176 \u5728 \u5730\u56fe \u4e0a \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5305\u542b \u8be5 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 \u7684 \u65b9\u5411 \u3002 \u53d8\u91cf road _ id , section _ id , lane _ id \u548c s \u5bf9\u5e94 OpenDRIVE \u9053\u8def \u3002 \u8def\u5f84 \u70b9 id \u7684 \u662f \u7531 \u8fd9 \u56db\u4e2a \u503c \u7684 \u54c8\u5e0c \u7ec4\u5408 \u6784\u9020 \u7684 \u3002 \u7b14\u8bb0 \u540c\u4e00 \u9053\u8def \u5185 \u8ddd\u79bb \u5c0f\u4e8e 2 \u5398\u7c73 \u7684 \u8def\u70b9 \u5171\u4eab \u76f8\u540c \u7684 \u8def\u70b9 id \u3002 \u8def\u5f84 \u70b9 \u4fdd\u5b58 \u6709\u5173 \u5305\u542b \u8be5 \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7684 \u4fe1\u606f \u3002 \u6b64 \u4fe1\u606f \u5305\u62ec \u8f66\u9053 \u7684 \u5de6 \u8f66\u9053 \u548c \u53f3 \u8f66\u9053 \u6807\u8bb0 \u3001 \u7528\u4e8e \u786e\u5b9a \u5176 \u662f\u5426 \u4f4d\u4e8e \u8def\u53e3 \u5185 \u7684 \u5e03\u5c14 \u5e03\u5c14\u503c \u3001 \u8f66\u9053 \u7c7b\u578b \u3001 \u5bbd\u5ea6 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u3002 # \u4ece \u8def\u5f84 \u70b9 \u8bbf\u95ee \u8f66\u9053 \u4fe1\u606f inside _ junction = waypoint . is _ junction ( ) width = waypoint . lane _ width right _ lm _ color = waypoint . right _ lane _ marking . color","title":"\u8def\u5f84 \u70b9"},{"location":"core_map/#_6","text":"OpenDRIVE 1.4 \u6807\u51c6 \u5b9a\u4e49 \u7684 \u901a\u9053 \u7c7b\u578b \u5c06 carla . LaneType \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u503c \u8f6c\u6362 \u4e3a API \u3002 \u8f66\u9053 \u5468\u56f4 \u7684 \u8f66\u9053 \u6807\u8bb0 \u53ef \u901a\u8fc7 carla . LaneMarking \u8bbf\u95ee \u3002 \u8f66\u9053 \u6807\u8bb0 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53d8\u91cf \u5b9a\u4e49 \uff1a color : carla . LaneMarkingColor \u662f \u5b9a\u4e49 \u6807\u8bb0 \u989c\u8272 \u7684 \u679a\u4e3e \u503c \u3002 lane _ change : carla . LaneChange \u8bf4\u660e \u8f66\u9053 \u662f\u5426 \u5141\u8bb8 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u4e24\u8005 \u90fd \u5141\u8bb8 \u6216 \u4e0d \u5141\u8bb8 \u3002 type : carla . LaneMarkingType \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u6807\u8bb0 \u7c7b\u578b \u7684 \u679a\u4e3e \u503c \u3002 width : \u5b9a\u4e49 \u6807\u8bb0 \u7684 \u539a\u5ea6 \u3002 \u4e0b\u9762 \u7684 \u793a\u4f8b \u663e\u793a \u4e86 \u83b7\u53d6 \u6709\u5173 \u7279\u5b9a \u8def\u5f84 \u70b9 \u7684 \u8f66\u9053 \u7c7b\u578b \u3001 \u8f66\u9053 \u6807\u8bb0 \u548c \u8f66\u9053 \u53d8\u66f4 \u6743\u9650 \u7684 \u4fe1\u606f \uff1a # \u83b7\u5f97 \u8def\u5f84 \u70b9 \u8f66\u9053 \u7c7b\u578b lane _ type = waypoint . lane _ type # \u83b7\u5f97 \u5de6 \u8f66\u9053 \u6807\u8bb0 \u7684 \u7c7b\u578b left _ lanemarking _ type = waypoint . left _ lane _ marking . type ( ) # \u83b7\u5f97 \u8be5 \u8def\u5f84 \u70b9 \u53ef \u5f97 \u7684 \u8f66\u9053 \u6539\u53d8 lane _ change = waypoint . lane _ change","title":"\u8f66\u9053"},{"location":"core_map/#_7","text":"carla . Junction \u4ee3\u8868 OpenDRIVE \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u3002 \u6b64\u7c7b \u5305\u542b \u5e26\u6709 \u8fb9\u754c \u6846 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \uff0c \u7528\u4e8e \u8bc6\u522b \u5176\u4e2d \u7684 \u8f66\u9053 \u6216 \u8f66\u8f86 \u3002 \u8be5 carla . Junction \u7c7b \u5305\u542b get _ waypoints \u4e3a \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6bcf\u4e2a \u8f66\u9053 \u8fd4\u56de \u4e00\u5bf9 \u8def\u70b9 \u7684 \u65b9\u6cd5 \u3002 \u6bcf \u5bf9 \u4f4d\u4e8e \u4ea4\u754c \u4ea4\u754c\u5904 \u8fb9\u754c \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 waypoints _ junc = my _ junction . get _ waypoints ( )","title":"\u8def\u53e3"},{"location":"core_map/#_8","text":"Carla \u5730\u56fe \u4e0a \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u90fd \u6709 \u4e00\u7ec4 \u5173\u8054 \u7684 \u53d8\u91cf \uff0c \u53ef\u4ee5 \u5728 \u6b64 \u5904 \u627e\u5230 \u8fd9\u4e9b \u53d8\u91cf \u3002 \u8fd9\u4e9b \u53d8\u91cf \u4e2d \u5305\u542b \u4e00\u4e2a \u552f\u4e00 ID \uff0c \u53ef \u7528\u4e8e \u5207\u6362 \u8be5 \u5bf9\u8c61 \u5728 \u5730\u56fe \u4e0a \u7684 \u53ef\u89c1 \u6027 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u6839\u636e \u6bcf\u4e2a \u73af\u5883 \u5bf9\u8c61 \u7684 \u8bed\u4e49 \u6807\u7b7e \u83b7\u53d6 \u5176 ID \uff1a # \u83b7\u5f97 \u4e16\u754c \u4e2d \u7684 \u5efa\u7b51 world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # \u8bbf\u95ee \u5404\u4e2a \u5efa\u7b51 IDs \u5e76 \u4fdd\u5b58 \u5728 \u96c6\u5408 \u5f53\u4e2d building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # \u5207\u6362 \u5efa\u7b51 \u4e3a \u4e0d \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , False ) # \u5207\u6362 \u5efa\u7b51 \u4e3a \u53ef\u89c1 world . enable _ environment _ objects ( objects _ to _ toggle , True ) \u67e5\u770b \u5207\u6362 \u4e0d\u540c \u5bf9\u8c61 \u7684 \u793a\u4f8b \uff1a","title":"\u73af\u5883 \u5bf9\u8c61"},{"location":"core_map/#carla","text":"Carla \u4e2d \u7684 \u5bfc\u822a \u662f \u901a\u8fc7 Waypoint API \uff08 \u6765\u81ea carla . Waypoint \u548c carla . Map \u7684 \u65b9\u6cd5 \u7ec4\u5408 \uff09 \u8fdb\u884c \u7ba1\u7406 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u9996\u5148 \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4ee5 \u68c0\u7d22 \u5305\u542b \u8def\u5f84 \u70b9 \u4fe1\u606f \u7684 \u5730\u56fe \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u4e00\u6b21 \uff0c \u6240\u6709 \u540e\u7eed \u67e5\u8be2 \u90fd \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6267\u884c \u3002","title":"\u5728 Carla \u4e2d \u5bfc\u822a"},{"location":"core_map/#_9","text":"Waypoint API \u516c\u5f00 \u4e86 \u5141\u8bb8 \u8def\u5f84 \u70b9 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u5e76 \u6784\u5efa \u6cbf \u9053\u8def \u4f9b \u8f66\u8f86 \u5bfc\u822a \u7684 \u8def\u5f84 \u7684 \u65b9\u6cd5 \uff1a next ( d ) \u5728 \u8f66\u9053 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb d \u5185 \u7684 \u822a\u8def \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 previous ( d ) \u5728 \u8f66\u9053 \u76f8\u53cd \u7684 \u65b9\u5411 \u4e0a \u521b\u5efa \u8fd1\u4f3c \u8ddd\u79bb \u5c0f\u4e8e d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5305\u542b \u6bcf\u4e2a \u53ef\u80fd \u504f\u5dee \u7684 \u4e00\u4e2a \u8def\u5f84 \u70b9 \u3002 next _ until _ lane _ end ( d ) \u548c previous _ until _ lane _ start ( d ) \u8fd4\u56de \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb d \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5217\u8868 \u5206\u522b \u4ece \u5f53\u524d \u8def\u5f84 \u70b9\u5230 \u5176 \u8f66\u9053 \u7684 \u7ec8\u70b9 \u548c \u8d77\u70b9 \u3002 get _ right _ lane ( ) \u548c get _ left _ lane ( ) \u8fd4\u56de \u76f8\u90bb \u8f66\u9053 \u4e2d \u7684 \u7b49 \u8def\u5f84 \u70b9 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u627e\u5230 \u53f3 / \u5de6 \u8f66\u9053 \u4e0a \u7684 \u4e0b \u4e00\u4e2a \u8def\u70b9 \u5e76 \u79fb\u52a8 \u5230 \u8be5 \u8def\u70b9 \u6765 \u8fdb\u884c \u53d8\u9053 \u64cd\u4f5c \u3002 # \u627e\u5230 \u524d\u9762 2 \u7c73 \u7684 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9 waypoint = waypoint . next ( 2.0 )","title":"\u901a\u8fc7 \u8def\u5f84 \u70b9 \u5bfc\u822a"},{"location":"core_map/#_10","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u8bf7\u6c42 \u53d1\u51fa\u8bf7\u6c42 \u6765 \u83b7\u53d6 . xodr \u5730\u56fe \u6587\u4ef6 \u5e76 \u5c06 \u5176 \u89e3\u6790 \u4e3a carla . Map \u5bf9\u8c61 \u3002 \u8fd9 \u53ea \u9700\u8981 \u505a \u4e00\u6b21 \u3002 \u83b7\u53d6 \u5730\u56fe \u5bf9\u8c61 \uff1a map = world . get _ map ( ) \u5730\u56fe \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u521b\u5efa \u8f66\u8f86 \u7684 \u63a8\u8350 \u751f\u6210 \u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \u83b7\u53d6 \u8fd9\u4e9b \u751f\u6210 \u70b9 \u7684 \u5217\u8868 \uff0c \u6bcf\u4e2a \u751f\u6210 \u70b9 \u90fd \u5305\u542b carla . Transform \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u751f\u6210 \u70b9 \u53ef\u80fd \u5df2 \u88ab \u5360\u7528 \uff0c \u4ece\u800c \u5bfc\u81f4 \u7531\u4e8e \u78b0\u649e \u800c \u5bfc\u81f4 \u8f66\u8f86 \u521b\u5efa \u5931\u8d25 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u83b7\u53d6 \u8ddd \u7279\u5b9a \u4f4d\u7f6e \u6216 \u7279\u5b9a road _ id \u3001 lane _ id \u548c s \u4f4d\u7f6e \u6700\u8fd1 \u7684 \u822a\u8def \u70b9 \u4ee5\u53ca \u5730\u56fe OpenDRIVE \u5b9a\u4e49 \u4e2d \u7684 \u503c\u6765 \u5f00\u59cb \u4f7f\u7528 \u8def\u5f84 \u70b9 \uff1a # \u9a7e\u9a76 \u8f66\u9053 \u6216 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e2d\u5fc3 \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \u3002 waypoint01 = map . get _ waypoint ( vehicle . get _ location ( ) , project _ to _ road = True , lane _ type = ( carla . LaneType . Driving | carla . LaneType . Sidewalk ) ) # \u6700\u8fd1 \u7684 \u8def\u5f84 \u70b9 \uff0c \u540c\u65f6 \u6307\u5b9a OpenDRIVE \u53c2\u6570 \u3002 waypoint02 = map . get _ waypoint _ xodr ( road _ id , lane _ id , s ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c55\u793a \u4e86 \u5982\u4f55 \u751f\u6210 \u8def\u70b9 \u96c6\u5408 \u4ee5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u57ce\u5e02 \u8f66\u9053 \u3002 \u8fd9 \u5c06 \u4e3a \u6574\u4e2a \u5730\u56fe \u4e0a \u7684 \u6bcf\u6761 \u9053\u8def \u548c \u8f66\u9053 \u521b\u5efa \u8def\u5f84 \u70b9 \u3002 \u5b83\u4eec \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u5927\u7ea6 \u4e3a 2 \u7c73 \uff1a waypoint _ list = map . generate _ waypoints ( 2.0 ) \u8981 \u751f\u6210 \u9053\u8def \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \uff0c \u8bf7 \u4f7f\u7528 \u4e0b\u9762 \u7684 \u793a\u4f8b \u3002 \u8fd9 \u5c06 \u8fd4\u56de \u8def\u5f84 \u70b9 \u5bf9 \uff08 \u5143\u7ec4 \uff09 \u7684 \u5217\u8868 \u3002 \u6bcf \u5bf9 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u5143\u7d20 \u4e0e \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5143\u7d20 \u8fde\u63a5 \uff0c \u4e24\u8005 \u90fd \u5b9a\u4e49 \u4e86 \u5730\u56fe \u4e2d \u6bcf\u6761 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u6709\u5173 \u6b64 \u65b9\u6cd5 \u7684 \u66f4 \u591a \u4fe1\u606f \u53ef\u4ee5 \u5728 PythonAPI \u4e2d \u627e\u5230 \u3002 waypoint _ tuple _ list = map . get _ topology ( ) \u4e0b\u9762 \u7684 \u793a\u4f8b \u5c06 carla . Transform \u8f6c\u6362 \u4e3a \u5730\u7406 \u7eac\u5ea6 \u5730\u7406\u7eac\u5ea6 \u548c \u7ecf\u5ea6 \u5750\u6807 \uff0c \u91c7\u7528 carla . GeoLocation \u7684 \u5f62\u5f0f \uff1a my _ geolocation = map . transform _ to _ geolocation ( vehicle . transform ) \u4f7f\u7528 \u4ee5\u4e0b \u793a\u4f8b \u5c06 OpenDRIVE \u683c\u5f0f \u7684 \u9053\u8def \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a info _ map = map . to _ opendrive ( )","title":"\u751f\u6210 \u5730\u56fe \u5bfc\u822a"},{"location":"core_map/#carla_1","text":"Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d\u6709 \u516b\u4e2a \u57ce\u9547 \uff0c \u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u4e24\u79cd \u5730\u56fe \uff0c \u975e \u5206\u5c42 \u5730\u56fe \u548c \u5206\u5c42 \u5730\u56fe \u3002 \u56fe\u5c42 \u662f \u6307 \u5730\u56fe \u4e2d \u5206\u7ec4 \u7684 \u5bf9\u8c61 \uff0c \u7531 \u4ee5\u4e0b \u90e8\u5206 \u7ec4\u6210 \uff1a NONE \u5efa\u7b51 \u5efa\u7b51\u7269 \u8d34\u6807 \u53f6\u5b50 \u5730\u9762 \u505c\u653e \u7684 \u8f66\u8f86 \u7c92\u5b50 \u9053\u5177 \u8def\u706f \u5899\u58c1 \u5168\u90e8","title":"Carla \u5730\u56fe"},{"location":"core_map/#_11","text":"\u4e0b\u8868 \u663e\u793a \u4e86 \u975e \u5206\u5c42 \u5730\u56fe \uff08 \u5355\u51fb \u57ce\u9547 \u540d\u79f0 \u53ef \u67e5\u770b \u5e03\u5c40 \u7684 \u4fef\u89c6 \u89c6\u56fe \u4fef\u89c6\u56fe \uff09 \u3002 \u6240\u6709 \u56fe\u5c42 \u59cb\u7ec8 \u5b58\u5728 \uff0c \u5e76\u4e14 \u65e0\u6cd5 \u5728 \u8fd9\u4e9b \u5730\u56fe \u4e2d \u6253\u5f00 \u6216 \u5173\u95ed \u3002 \u76f4\u5230 Carla 0.9 . 11 \u4e3a\u6b62 \uff0c \u8fd9\u4e9b \u662f \u552f\u4e00 \u53ef\u7528 \u7684 \u5730\u56fe \u7c7b\u578b \u3002 \u7b14\u8bb0 \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u751a\u81f3 \u521b\u5efa \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u65b0 \u5730\u56fe \u3002 \u57ce\u9547 \u6982\u62ec Town01 \u7531 \u201c T \u5b57 \u8def\u53e3 \u201d \u7ec4\u6210 \u7684 \u57fa\u672c \u57ce\u9547 \u5e03\u5c40 \u3002 Town02 \u548c Town01 \u7c7b\u4f3c \uff0c \u4f46\u662f \u66f4 \u5c0f \u3002 Town03 \u6700 \u590d\u6742 \u7684 \u57ce\u9547 \uff0c \u6709 5 \u8f66\u9053 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3001 \u73af\u5c9b \u3001 \u51f9\u51f8 \u4e0d\u5e73 \u51f9\u51f8\u4e0d\u5e73 \u3001 \u96a7\u9053 \u7b49 \u3002 Town04 \u6709 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5c0f\u9547 \u7684 \u65e0\u9650 \u5faa\u73af \u3002 Town05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 Town06 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u957f \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u8f6c \u3002 Town07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 Town10 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town11 \u5177\u6709 \u5927\u9053 \u6216 \u957f\u5eca \u7b49 \u4e0d\u540c \u73af\u5883 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5\u53ca \u66f4 \u771f\u5b9e \u7684 \u7eb9\u7406 \u3002 Town12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 Town13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 Town15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002 HUTB \u57fa\u4e8e \u6e56\u5357 \u5de5\u5546 \u5546\u5927 \u5927\u5b66 \u5de5\u5546\u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002","title":"\u975e \u5206\u5c42 \u5730\u56fe"},{"location":"core_map/#_12","text":"\u5206\u5c42 \u5730\u56fe \u7684 \u5e03\u5c40 \u4e0e\u975e \u5206\u5c42 \u5730\u56fe \u76f8\u540c \uff0c \u4f46 \u53ef\u4ee5 \u5173\u95ed \u548c \u6253\u5f00 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u6709 \u4e00\u4e2a \u65e0\u6cd5 \u5173\u95ed \u7684 \u6700\u5c0f \u5e03\u5c40 \uff0c \u7531 \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7ec4\u6210 \u3002 \u5206\u5c42 \u5730\u56fe \u53ef\u4ee5 \u901a\u8fc7 \u540e\u7f00 _ Opt \u6765 \u6807\u8bc6 \uff0c \u4f8b\u5982 Town01 _ Opt \u3002 \u4f7f\u7528 \u8fd9\u4e9b \u5730\u56fe \uff0c \u53ef\u4ee5 \u901a\u8fc7 Python API \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff1a # \u52a0\u8f7d \u57ce\u9547 01 \u7684 \u5206\u5c42 \u5730\u56fe \uff0c \u5e26\u6709 \u6700\u5c0f \u5e03\u5c40 \u52a0\u4e0a \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u505c\u653e \u7684 \u8f66\u8f86 world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # \u5173\u95ed \u6240\u6709 \u5efa\u7b51 world . unload _ map _ layer ( carla . MapLayer . Buildings ) # \u6253\u5f00 \u6240\u6709 \u5efa\u7b51 world . load _ map _ layer ( carla . MapLayer . Buildings ) \u67e5\u770b \u6309 \u987a\u5e8f \u52a0\u8f7d \u548c \u5378\u8f7d \u6240\u6709 \u5c42 \u7684 \u793a\u4f8b \uff1a","title":"\u5206\u5c42 \u5730\u56fe"},{"location":"core_map/#_13","text":"Carla \u65e8\u5728 \u9488\u5bf9 \u4e13\u4e1a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fdb\u884c \u53ef \u6269\u5c55 \u548c \u9ad8\u5ea6 \u5b9a\u5236 \u3002 \u56e0\u6b64 \uff0c \u9664\u4e86 Carla \u4e2d \u73b0\u6709 \u7684 \u8bb8\u591a \u5730\u56fe \u548c \u8d44\u4ea7 \u4e4b\u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u548c \u5bfc\u5165 \u65b0 \u7684 \u5730\u56fe \u3001 \u9053\u8def \u7f51\u7edc \u548c \u8d44\u4ea7 \uff0c \u4ee5 \u586b\u5145 Carla \u4eff\u771f \u4e2d \u7684 \u5b9a\u5236 \u73af\u5883 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u6784\u5efa \u548c \u96c6\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6240 \u9700 \u7684 \u6b65\u9aa4 \uff1a \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"core_sensors/","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u4ece \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4e3a \u9a7e\u9a76 \u667a\u80fd \u4f53 \u521b\u9020 \u5b66\u4e60 \u73af\u5883 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u672c\u9875 \u603b\u7ed3 \u4e86 \u5f00\u59cb \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5b83 \u4ecb\u7ecd \u4e86 \u53ef\u7528 \u7684 \u7c7b\u578b \u53ca\u5176 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u53ef\u4ee5 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd \u8bbe\u7f6e \u751f\u6210 \u76d1\u542c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7c7b\u578b \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd carla . Sensor \u7c7b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u80fd\u591f \u6d4b\u91cf \u548c \u4f20\u8f93 \u6570\u636e \u4f20\u8f93\u6570\u636e \u3002 \u8fd9\u4e2a \u6570\u636e \u662f \u4ec0\u4e48 \uff1f \u6839\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \uff0c \u5b83 \u53d8\u5316 \u5f88\u5927 \u53d8\u5316\u5f88\u5927 \u3002 \u6240\u6709 \u7c7b\u578b \u7684 \u6570\u636e \u90fd \u7ee7\u627f \u81ea \u901a\u7528 \u7684 carla . SensorData \u3002 \u4ed6\u4eec \u4ec0\u4e48 \u65f6\u5019 \u68c0\u7d22 \u6570\u636e \uff1f \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e0a \u6216 \u5728 \u6ce8\u518c \u67d0\u4e2a \u4e8b\u4ef6 \u65f6 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \u3002 \u4ed6\u4eec \u5982\u4f55 \u68c0\u7d22 \u6570\u636e \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u79cd \u63a5\u6536 \u548c \u7ba1\u7406 \u6570\u636e \u7684 listen ( ) \u65b9\u6cd5 \u3002 \u5c3d\u7ba1 \u5b58\u5728 \u5dee\u5f02 \uff0c \u4f46 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f7f\u7528 \u65b9\u5f0f \u90fd \u76f8\u4f3c \u3002 \u8bbe\u7f6e \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u627e\u5230 \u84dd\u56fe \u5e76 \u8bbe\u7f6e \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u5728 \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4ed6\u4eec \u7684 \u5c5e\u6027 \u5c06 \u51b3\u5b9a \u6240 \u83b7\u5f97 \u7684 \u7ed3\u679c \u3002 \u8fd9\u4e9b \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d\u6709 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8bbe\u7f6e \u4eea\u8868 \u4eea\u8868\u677f \u9ad8\u6e05 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3002 # \u627e\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 blueprint = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u4fee\u6539 \u84dd\u56fe \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u56fe\u50cf \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u548c \u89c6\u91ce blueprint . set _ attribute ( ' image _ size _ x ' , ' 1920 ' ) blueprint . set _ attribute ( ' image _ size _ y ' , ' 1080 ' ) blueprint . set _ attribute ( ' fov ' , ' 110 ' ) # \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 blueprint . set _ attribute ( ' sensor _ tick ' , ' 1.0 ' ) \u751f\u6210 attachment _ to \u548c attachment _ type \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94 \u8fde\u63a5 \u5230\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u901a\u5e38 \u662f \u8f66\u8f86 \uff09 \u4e0a \uff0c \u4ee5 \u8ddf\u8e2a \u5b83 \u5e76 \u6536\u96c6 \u4fe1\u606f \u3002 \u9644\u4ef6 \u7c7b\u578b \u5c06 \u786e\u5b9a \u5176 \u5173\u4e8e \u6240\u8ff0 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u5982\u4f55 \u66f4\u65b0 \u3002 \u521a\u6027 \u9644\u4ef6 ( Rigid attachment ) \u3002 \u52a8 \u5bf9\u4e8e \u5176\u7236 \u4f4d\u7f6e \u662f \u4e25\u683c \u7684 \u3002 \u8fd9 \u662f\u4ece \u4eff\u771f \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u5408\u9002 \u9644\u4ef6 \u3002 \u5f39\u7c27 \u81c2 \u9644\u4ef6 ( SpringArm attachment ) \u3002 \u8fd0\u52a8 \u53d8\u5f97 \u8f7b\u677e \uff0c \u51e0\u4e4e \u6ca1\u6709 \u52a0\u901f \u548c \u51cf\u901f \u3002 \u4ec5 \u5efa\u8bae \u4f7f\u7528 \u6b64 \u9644\u4ef6 \u6765 \u5f55\u5236 \u4eff\u771f \u89c6\u9891 \u3002 \u66f4\u65b0 \u6444\u50cf \u6444\u50cf\u673a \u4f4d\u7f6e \u65f6 \uff0c \u79fb\u52a8 \u5e73\u6ed1 \u5e76\u4e14 \u907f\u514d \u201c \u8df3\u8dc3 \u201d \u3002 \u5f39\u7c27 \u81c2 \u5e7d\u7075 \u9644\u4ef6 ( SpringArmGhost attachment ) \u3002 \u4e0e \u524d \u4e00\u4e2a \u7c7b\u4f3c \uff0c \u4f46 \u6ca1\u6709 \u8fdb\u884c \u78b0\u649e \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216\u4f20\u611f\u5668 \u53ef\u4ee5 \u7a7f\u8fc7 \u5899\u58c1 \u6216 \u5176\u4ed6 \u51e0\u4f55 \u5f62\u72b6 \u3002 transform = carla . Transform ( carla . Location ( x = 0.8 , z = 1.7 ) ) sensor = world . spawn _ actor ( blueprint , transform , attach _ to = my _ vehicle ) \u91cd\u8981 \u5f53 \u5e26\u6709 \u9644\u4ef6 \u751f\u6210 \u65f6 \uff0c \u4f4d\u7f6e \u5fc5\u987b \u76f8\u5bf9 \u4e8e\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u76d1\u542c \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a listen ( ) \u65b9\u6cd5 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 \u53c2\u6570 callback \u662f \u4e00\u4e2a lambda \u51fd\u6570 \u3002 \u5b83 \u63cf\u8ff0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u5e94\u8be5 \u505a \u4ec0\u4e48 \u3002 \u8fd9 \u5fc5\u987b \u5c06 \u68c0\u7d22 \u7684 \u6570\u636e \u4f5c\u4e3a \u53c2\u6570 \u3002 # \u6bcf\u6b21 \u76f8\u673a \u751f\u6210 \u65b0 \u56fe\u50cf \u65f6 \uff0c \u90fd \u4f1a \u8c03\u7528 do _ something ( ) \u3002 sensor . listen ( lambda data : do _ something ( data ) ) ... # \u6bcf\u6b21 \u68c0\u6d4b \u5230 \u78b0\u649e \u65f6 \uff0c \u6b64 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u6253\u5370 \u3002 def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor02 . listen ( callback ) \u6570\u636e \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 \u90fd \u5177\u6709 \u5c06 \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u529f\u80fd \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u5b83 \u5728 \u5176\u4ed6 \u73af\u5883 \u4e2d \u4f7f\u7528 \u3002 \u4e0d\u540c \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5dee\u5f02 \u5f88\u5927 \u3002 \u67e5\u770b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4ee5 \u83b7\u5f97 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u7136\u800c \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u603b\u662f \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6807\u7b7e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u8f6e\u6570 \u5f00\u59cb \u4ee5\u6765 \u4ee5 \u4eff\u771f \u79d2 \u4e3a \u5355\u4f4d \u7684 \u6d4b\u91cf \u65f6\u95f4 \u6233 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e16\u754c \u53c2\u8003 \u3002 \u91cd\u8981 is _ listening \u662f \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \uff0c \u53ef\u4ee5 \u968f\u610f \u542f\u7528 / \u7981\u7528 \u6570\u636e \u76d1\u542c \u3002 sensor _ tick \u662f \u4e00\u4e2a \u84dd\u56fe \u5c5e\u6027 \uff0c \u7528\u4e8e \u8bbe\u7f6e \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7c7b\u578b \u76f8\u673a \u4ece \u4ed6\u4eec \u7684 \u89d2\u5ea6 \u62cd\u6444 \u4e16\u754c \u3002 \u5bf9\u4e8e \u8fd4\u56de carla . Image \u7684 \u76f8\u673a \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8f85\u52a9 \u7c7b carla . ColorConverter \u4fee\u6539 \u56fe\u50cf \u4ee5 \u8868\u793a \u4e0d\u540c \u7684 \u4fe1\u606f \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u6df1\u5ea6 carla . Image \u5728 \u7070\u5ea6 \u56fe\u4e2d \u6e32\u67d3 \u89c6\u91ce \u4e2d \u5143\u7d20 \u7684 \u6df1\u5ea6 \u3002 RGB carla . Image \u63d0\u4f9b \u6e05\u6670 \u7684 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u89c6\u91ce \u3002 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u5c31 \u50cf \u4e00\u5f20 \u6b63\u5e38 \u7684 \u73b0\u573a \u7167\u7247 \u3002 \u5149\u6d41 carla . Image \u6e32\u67d3 \u76f8\u673a \u4e2d \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u8fd0\u52a8 \u3002 \u8bed\u4e49 \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 \u5b9e\u4f8b \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u548c \u552f\u4e00 \u7684 \u5bf9\u8c61 ID \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 DVS carla . DVSEventArray \u4f5c\u4e3a \u4e8b\u4ef6 \u6d41 \u5f02\u6b65 \u6d4b\u91cf \u4eae\u5ea6 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u3002 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5f53 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u89e6\u53d1 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u78b0\u649e carla . CollisionEvent \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 carla . LaneInvasionEvent \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d carla . ObstacleDetectionEvent \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002 \u5176\u4ed6 \u4e0d\u540c \u7684 \u529f\u80fd \uff0c \u4f8b\u5982 \u5bfc\u822a \u3001 \u7269\u7406 \u5c5e\u6027 \u6d4b\u91cf \u548c \u573a\u666f \u7684 \u4e8c\u7ef4 / \u4e09\u7ef4 \u70b9\u56fe \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u68c0\u7d22 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf ( GNSS ) carla . GNSSMeasurement \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( IMU ) carla . IMUMeasurement \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe ( LIDAR ) carla . LidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 \u5305\u542b \u6bcf\u4e2a \u70b9 \u7684 \u5750\u6807 \u548c \u5f3a\u5ea6 \u7684 4D \u70b9\u4e91 \uff0c \u4ee5 \u5bf9 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 \u96f7\u8fbe carla . RadarMeasurement \u4e8c\u7ef4 \u70b9\u56fe \u5efa\u6a21 \u89c6\u7ebf \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fd0\u52a8 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( RSS ) carla . RssResponse \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u4e13\u95e8 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe carla . SemanticLidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 3D \u70b9\u4e91 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u5206\u5272 \u7684 \u989d\u5916 \u4fe1\u606f \u3002 \u8fd9\u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5305\u88c5 \u4ee5\u53ca \u5b83\u4eec \u5982\u4f55 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 Carla \u7684 \u4ecb\u7ecd \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u7136\u800c \uff0c \u8fd8\u6709 \u5f88\u591a \u4e1c\u897f \u9700\u8981 \u5b66\u4e60 \u3002 \u7ee7\u7eed \u5b66\u4e60 \u3002 Carla \u4e2d\u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u529f\u80fd \uff1a \u6e32\u67d3 \u9009\u9879 \u3001 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3001 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7b49\u7b49 \u3002 \u8fd9\u662f \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u4ed6\u4eec \u7684 \u65f6\u673a \u597d\u65f6\u673a \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u81ea\u7531 \u5b9e\u9a8c \u3002 \u67e5\u770b \u672c \u6587\u6863 \u7684 \u53c2\u8003 \u90e8\u5206 \u3002 \u5b83 \u5305\u542b \u6709\u5173 Python API \u4e2d \u7684 \u7c7b \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ee3\u7801 \u7247\u6bb5 \u7b49 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Python API \u53c2\u8003 \u53d1\u8868 \u60a8 \u7684 \u610f\u89c1 \u3002 \u6709 \u4efb\u4f55 \u7591\u95ee \u3001 \u5efa\u8bae \u548c \u60f3\u6cd5 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u7b2c\u56db \u3001 \u4f20\u611f\u5668 \u548c \u6570\u636e"},{"location":"core_sensors/#_1","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u4ece \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4e3a \u9a7e\u9a76 \u667a\u80fd \u4f53 \u521b\u9020 \u5b66\u4e60 \u73af\u5883 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u672c\u9875 \u603b\u7ed3 \u4e86 \u5f00\u59cb \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u9700 \u7684 \u4e00\u5207 \u3002 \u5b83 \u4ecb\u7ecd \u4e86 \u53ef\u7528 \u7684 \u7c7b\u578b \u53ca\u5176 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u53ef\u4ee5 \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd \u8bbe\u7f6e \u751f\u6210 \u76d1\u542c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7c7b\u578b \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6","title":"\u4f20\u611f\u5668 \u548c \u6570\u636e"},{"location":"core_sensors/#_2","text":"carla . Sensor \u7c7b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u80fd\u591f \u6d4b\u91cf \u548c \u4f20\u8f93 \u6570\u636e \u4f20\u8f93\u6570\u636e \u3002 \u8fd9\u4e2a \u6570\u636e \u662f \u4ec0\u4e48 \uff1f \u6839\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \uff0c \u5b83 \u53d8\u5316 \u5f88\u5927 \u53d8\u5316\u5f88\u5927 \u3002 \u6240\u6709 \u7c7b\u578b \u7684 \u6570\u636e \u90fd \u7ee7\u627f \u81ea \u901a\u7528 \u7684 carla . SensorData \u3002 \u4ed6\u4eec \u4ec0\u4e48 \u65f6\u5019 \u68c0\u7d22 \u6570\u636e \uff1f \u5728 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e0a \u6216 \u5728 \u6ce8\u518c \u67d0\u4e2a \u4e8b\u4ef6 \u65f6 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7c7b\u578b \u3002 \u4ed6\u4eec \u5982\u4f55 \u68c0\u7d22 \u6570\u636e \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u79cd \u63a5\u6536 \u548c \u7ba1\u7406 \u6570\u636e \u7684 listen ( ) \u65b9\u6cd5 \u3002 \u5c3d\u7ba1 \u5b58\u5728 \u5dee\u5f02 \uff0c \u4f46 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f7f\u7528 \u65b9\u5f0f \u90fd \u76f8\u4f3c \u3002","title":"\u4f20\u611f\u5668 \u9010\u6b65 \u4ecb\u7ecd"},{"location":"core_sensors/#_3","text":"\u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u6837 \uff0c \u627e\u5230 \u84dd\u56fe \u5e76 \u8bbe\u7f6e \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u5728 \u5904\u7406 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4ed6\u4eec \u7684 \u5c5e\u6027 \u5c06 \u51b3\u5b9a \u6240 \u83b7\u5f97 \u7684 \u7ed3\u679c \u3002 \u8fd9\u4e9b \u5728 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4e2d\u6709 \u8be6\u7ec6 \u4ecb\u7ecd \u3002 \u4ee5\u4e0b \u793a\u4f8b \u8bbe\u7f6e \u4eea\u8868 \u4eea\u8868\u677f \u9ad8\u6e05 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u3002 # \u627e\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 blueprint = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u4fee\u6539 \u84dd\u56fe \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u56fe\u50cf \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u548c \u89c6\u91ce blueprint . set _ attribute ( ' image _ size _ x ' , ' 1920 ' ) blueprint . set _ attribute ( ' image _ size _ y ' , ' 1080 ' ) blueprint . set _ attribute ( ' fov ' , ' 110 ' ) # \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 blueprint . set _ attribute ( ' sensor _ tick ' , ' 1.0 ' )","title":"\u8bbe\u7f6e"},{"location":"core_sensors/#_4","text":"attachment _ to \u548c attachment _ type \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94 \u8fde\u63a5 \u5230\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u901a\u5e38 \u662f \u8f66\u8f86 \uff09 \u4e0a \uff0c \u4ee5 \u8ddf\u8e2a \u5b83 \u5e76 \u6536\u96c6 \u4fe1\u606f \u3002 \u9644\u4ef6 \u7c7b\u578b \u5c06 \u786e\u5b9a \u5176 \u5173\u4e8e \u6240\u8ff0 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u5982\u4f55 \u66f4\u65b0 \u3002 \u521a\u6027 \u9644\u4ef6 ( Rigid attachment ) \u3002 \u52a8 \u5bf9\u4e8e \u5176\u7236 \u4f4d\u7f6e \u662f \u4e25\u683c \u7684 \u3002 \u8fd9 \u662f\u4ece \u4eff\u771f \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u5408\u9002 \u9644\u4ef6 \u3002 \u5f39\u7c27 \u81c2 \u9644\u4ef6 ( SpringArm attachment ) \u3002 \u8fd0\u52a8 \u53d8\u5f97 \u8f7b\u677e \uff0c \u51e0\u4e4e \u6ca1\u6709 \u52a0\u901f \u548c \u51cf\u901f \u3002 \u4ec5 \u5efa\u8bae \u4f7f\u7528 \u6b64 \u9644\u4ef6 \u6765 \u5f55\u5236 \u4eff\u771f \u89c6\u9891 \u3002 \u66f4\u65b0 \u6444\u50cf \u6444\u50cf\u673a \u4f4d\u7f6e \u65f6 \uff0c \u79fb\u52a8 \u5e73\u6ed1 \u5e76\u4e14 \u907f\u514d \u201c \u8df3\u8dc3 \u201d \u3002 \u5f39\u7c27 \u81c2 \u5e7d\u7075 \u9644\u4ef6 ( SpringArmGhost attachment ) \u3002 \u4e0e \u524d \u4e00\u4e2a \u7c7b\u4f3c \uff0c \u4f46 \u6ca1\u6709 \u8fdb\u884c \u78b0\u649e \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216\u4f20\u611f\u5668 \u53ef\u4ee5 \u7a7f\u8fc7 \u5899\u58c1 \u6216 \u5176\u4ed6 \u51e0\u4f55 \u5f62\u72b6 \u3002 transform = carla . Transform ( carla . Location ( x = 0.8 , z = 1.7 ) ) sensor = world . spawn _ actor ( blueprint , transform , attach _ to = my _ vehicle ) \u91cd\u8981 \u5f53 \u5e26\u6709 \u9644\u4ef6 \u751f\u6210 \u65f6 \uff0c \u4f4d\u7f6e \u5fc5\u987b \u76f8\u5bf9 \u4e8e\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u751f\u6210"},{"location":"core_sensors/#_5","text":"\u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a listen ( ) \u65b9\u6cd5 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 \u53c2\u6570 callback \u662f \u4e00\u4e2a lambda \u51fd\u6570 \u3002 \u5b83 \u63cf\u8ff0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u65f6 \u5e94\u8be5 \u505a \u4ec0\u4e48 \u3002 \u8fd9 \u5fc5\u987b \u5c06 \u68c0\u7d22 \u7684 \u6570\u636e \u4f5c\u4e3a \u53c2\u6570 \u3002 # \u6bcf\u6b21 \u76f8\u673a \u751f\u6210 \u65b0 \u56fe\u50cf \u65f6 \uff0c \u90fd \u4f1a \u8c03\u7528 do _ something ( ) \u3002 sensor . listen ( lambda data : do _ something ( data ) ) ... # \u6bcf\u6b21 \u68c0\u6d4b \u5230 \u78b0\u649e \u65f6 \uff0c \u6b64 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u6253\u5370 \u3002 def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor02 . listen ( callback )","title":"\u76d1\u542c"},{"location":"core_sensors/#_6","text":"\u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 \u90fd \u5177\u6709 \u5c06 \u4fe1\u606f \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u529f\u80fd \u3002 \u8fd9 \u5c06 \u5141\u8bb8 \u5b83 \u5728 \u5176\u4ed6 \u73af\u5883 \u4e2d \u4f7f\u7528 \u3002 \u4e0d\u540c \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5dee\u5f02 \u5f88\u5927 \u3002 \u67e5\u770b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u4ee5 \u83b7\u5f97 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u7136\u800c \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u603b\u662f \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6807\u7b7e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u8f6e\u6570 \u5f00\u59cb \u4ee5\u6765 \u4ee5 \u4eff\u771f \u79d2 \u4e3a \u5355\u4f4d \u7684 \u6d4b\u91cf \u65f6\u95f4 \u6233 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e16\u754c \u53c2\u8003 \u3002 \u91cd\u8981 is _ listening \u662f \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \uff0c \u53ef\u4ee5 \u968f\u610f \u542f\u7528 / \u7981\u7528 \u6570\u636e \u76d1\u542c \u3002 sensor _ tick \u662f \u4e00\u4e2a \u84dd\u56fe \u5c5e\u6027 \uff0c \u7528\u4e8e \u8bbe\u7f6e \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002","title":"\u6570\u636e"},{"location":"core_sensors/#_7","text":"","title":"\u4f20\u611f\u5668 \u7c7b\u578b"},{"location":"core_sensors/#_8","text":"\u4ece \u4ed6\u4eec \u7684 \u89d2\u5ea6 \u62cd\u6444 \u4e16\u754c \u3002 \u5bf9\u4e8e \u8fd4\u56de carla . Image \u7684 \u76f8\u673a \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u8f85\u52a9 \u7c7b carla . ColorConverter \u4fee\u6539 \u56fe\u50cf \u4ee5 \u8868\u793a \u4e0d\u540c \u7684 \u4fe1\u606f \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u6df1\u5ea6 carla . Image \u5728 \u7070\u5ea6 \u56fe\u4e2d \u6e32\u67d3 \u89c6\u91ce \u4e2d \u5143\u7d20 \u7684 \u6df1\u5ea6 \u3002 RGB carla . Image \u63d0\u4f9b \u6e05\u6670 \u7684 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u89c6\u91ce \u3002 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u5c31 \u50cf \u4e00\u5f20 \u6b63\u5e38 \u7684 \u73b0\u573a \u7167\u7247 \u3002 \u5149\u6d41 carla . Image \u6e32\u67d3 \u76f8\u673a \u4e2d \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u8fd0\u52a8 \u3002 \u8bed\u4e49 \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 \u5b9e\u4f8b \u5206\u5272 carla . Image \u6839\u636e \u5143\u7d20 \u7684 \u6807\u7b7e \u548c \u552f\u4e00 \u7684 \u5bf9\u8c61 ID \u4ee5 \u7279\u5b9a \u989c\u8272 \u6e32\u67d3 \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u3002 DVS carla . DVSEventArray \u4f5c\u4e3a \u4e8b\u4ef6 \u6d41 \u5f02\u6b65 \u6d4b\u91cf \u4eae\u5ea6 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u3002","title":"\u76f8\u673a"},{"location":"core_sensors/#_9","text":"\u5f53 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u89e6\u53d1 \u65f6 \u83b7\u53d6 \u6570\u636e \u83b7\u53d6\u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u78b0\u649e carla . CollisionEvent \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 carla . LaneInvasionEvent \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d carla . ObstacleDetectionEvent \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002","title":"\u68c0\u6d4b\u5668"},{"location":"core_sensors/#_10","text":"\u4e0d\u540c \u7684 \u529f\u80fd \uff0c \u4f8b\u5982 \u5bfc\u822a \u3001 \u7269\u7406 \u5c5e\u6027 \u6d4b\u91cf \u548c \u573a\u666f \u7684 \u4e8c\u7ef4 / \u4e09\u7ef4 \u70b9\u56fe \u3002 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u68c0\u7d22 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u6982\u8ff0 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf ( GNSS ) carla . GNSSMeasurement \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( IMU ) carla . IMUMeasurement \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe ( LIDAR ) carla . LidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 \u5305\u542b \u6bcf\u4e2a \u70b9 \u7684 \u5750\u6807 \u548c \u5f3a\u5ea6 \u7684 4D \u70b9\u4e91 \uff0c \u4ee5 \u5bf9 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 \u96f7\u8fbe carla . RadarMeasurement \u4e8c\u7ef4 \u70b9\u56fe \u5efa\u6a21 \u89c6\u7ebf \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fd0\u52a8 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 ( RSS ) carla . RssResponse \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u4e13\u95e8 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe carla . SemanticLidarMeasurement \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u751f\u6210 3D \u70b9\u4e91 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u5206\u5272 \u7684 \u989d\u5916 \u4fe1\u606f \u3002 \u8fd9\u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5305\u88c5 \u4ee5\u53ca \u5b83\u4eec \u5982\u4f55 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u3002 Carla \u7684 \u4ecb\u7ecd \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u7136\u800c \uff0c \u8fd8\u6709 \u5f88\u591a \u4e1c\u897f \u9700\u8981 \u5b66\u4e60 \u3002 \u7ee7\u7eed \u5b66\u4e60 \u3002 Carla \u4e2d\u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u529f\u80fd \uff1a \u6e32\u67d3 \u9009\u9879 \u3001 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3001 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7b49\u7b49 \u3002 \u8fd9\u662f \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u4ed6\u4eec \u7684 \u65f6\u673a \u597d\u65f6\u673a \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u81ea\u7531 \u5b9e\u9a8c \u3002 \u67e5\u770b \u672c \u6587\u6863 \u7684 \u53c2\u8003 \u90e8\u5206 \u3002 \u5b83 \u5305\u542b \u6709\u5173 Python API \u4e2d \u7684 \u7c7b \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u4ee3\u7801 \u7247\u6bb5 \u7b49 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Python API \u53c2\u8003 \u53d1\u8868 \u60a8 \u7684 \u610f\u89c1 \u3002 \u6709 \u4efb\u4f55 \u7591\u95ee \u3001 \u5efa\u8bae \u548c \u60f3\u6cd5 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u5176\u4ed6"},{"location":"core_world/","text":"\u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u662f Carla \u7684 \u4e24\u4e2a \u57fa\u672c \u8981\u7d20 \u57fa\u672c\u8981\u7d20 \uff0c \u662f \u64cd\u4f5c \u4eff\u771f \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5fc5\u8981 \u62bd\u8c61 \u3002 \u672c \u6559\u7a0b \u4ece \u5b9a\u4e49 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u548c \u521b\u5efa \uff0c \u5230 \u63cf\u8ff0 \u5b83\u4eec \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u3002 \u5982\u679c \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \u6216 \u95ee\u9898 \uff0c Carla \u8bba\u575b \u53ef\u4ee5 \u4e3a \u60a8 \u89e3\u51b3 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e16\u754c \u8fde\u63a5 \u5176\u4ed6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u4e16\u754c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5929\u6c14 \u706f\u5149 \u8c03\u8bd5 \u4e16\u754c \u5feb\u7167 \u4e16\u754c \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u662f Carla \u67b6\u6784 \u4e2d \u7684 \u4e3b\u8981 \u5143\u7d20 \u4e4b\u4e00 \u3002 \u5b83\u4eec \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u68c0\u7d22 \u4fe1\u606f \u5e76 \u66f4\u6539 \u547d\u4ee4 \u3002 \u8fd9\u662f \u901a\u8fc7 \u811a\u672c \u5b8c\u6210 \u7684 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bc6\u522b \u81ea\u5df1 \u7684 \u8eab\u4efd \uff0c \u5e76 \u8fde\u63a5 \u5230 \u4e16\u754c \uff0c \u7136\u540e \u8fdb\u884c \u4eff\u771f \u64cd\u4f5c \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u5ba2\u6237 \u8fd8 \u53ef\u4ee5 \u8bbf\u95ee \u9ad8\u7ea7 Carla \u6a21\u5757 \u3001 \u529f\u80fd \u5e76 \u5e94\u7528 \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u672c\u8282 \u4ec5 \u4ecb\u7ecd \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bf8\u5982 \u751f\u6210 \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u7c7b \u7684 \u57fa\u672c \u4e8b\u60c5 \u5f88 \u6709\u7528 \u3002 \u5176\u4f59 \u529f\u80fd \u66f4\u52a0 \u590d\u6742 \uff0c \u5c06 \u5728 \u9ad8\u7ea7 \u6b65\u9aa4 \u4e2d \u5404\u81ea \u7684 \u9875\u9762 \u4e2d \u8fdb\u884c \u89e3\u51b3 \u3002 \u67e5\u770b Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u4ee5 \u4e86\u89e3 \u8be5\u7c7b \u7684 \u7279\u5b9a \u65b9\u6cd5 \u548c \u53d8\u91cf \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u9700\u8981 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u3002 \u6807\u8bc6 \u5b83 \u7684 IP \u5730\u5740 \u4ee5\u53ca \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u7684 \u4e24\u4e2a TCP \u7aef\u53e3 \u3002 \u53ef\u9009 \u7684 \u7b2c\u4e09 \u4e09\u4e2a \u7b2c\u4e09\u4e2a \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u5de5\u4f5c \u7ebf\u7a0b \u7684 \u6570\u91cf \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a \u5168\u90e8 ( 0 ) \u3002 Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u5305\u542b \u4e00\u4e2a \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u5728 \u8fd0\u884c \u811a\u672c \u65f6 \u5c06 \u8fd9\u4e9b \u89e3\u6790 \u4e3a \u53c2\u6570 \u3002 client = carla . Client ( ' localhost ' , 2000 ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4f7f\u7528 \u672c\u5730 \u4e3b\u673a IP \u548c \u7aef\u53e3 2000 \u8fdb\u884c \u8fde\u63a5 \uff0c \u4f46 \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u59cb\u7ec8 \u4e3a n + 1 , 2001 \u3002 \u521b\u5efa \u5ba2\u6237 \u5ba2\u6237\u7aef \u540e \uff0c \u8bbe\u7f6e \u5176 time - out \u3002 \u8fd9 \u9650\u5236 \u4e86 \u6240\u6709 \u7f51\u7edc \u64cd\u4f5c \uff0c \u4ee5\u4fbf \u8fd9\u4e9b \u64cd\u4f5c \u4e0d\u4f1a \u6c38\u8fdc \u963b\u6b62 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5982\u679c \u8fde\u63a5 \u5931\u8d25 \uff0c \u5c06 \u8fd4\u56de \u9519\u8bef \u3002 client . set _ timeout ( 10.0 ) # \u79d2 \u53ef\u4ee5 \u8fde\u63a5 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u56e0\u4e3a \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u811a\u672c \u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u5728 \u5177\u6709 \u9ad8\u7ea7 Carla \u529f\u80fd \uff08 \u4f8b\u5982 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \u7684 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65b9\u6848 \u4e2d \u5de5\u4f5c \uff0c \u5fc5\u7136 \u4f1a \u4f7f \u901a\u4fe1 \u66f4\u52a0 \u590d\u6742 \u3002 \u7b14\u8bb0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6709 \u4e0d\u540c \u7684 libcarla \u6a21\u5757 \u3002 \u5982\u679c \u7248\u672c \u4e0d\u540c \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 get _ client _ version ( ) \u548c get _ server _ version ( ) \u65b9\u6cd5 \u8fdb\u884c \u68c0\u67e5 \u3002 \u4e16\u754c \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u76f8\u5f53 \u8f7b\u677e \u5730 \u8fde\u63a5 \u548c \u68c0\u7d22 \u5f53\u524d \u4e16\u754c \u3002 world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u53ef\u4ee5 \u83b7\u5f97 \u53ef\u7528 \u5730\u56fe \u5217\u8868 \u6765 \u66f4\u6539 \u5f53\u524d \u5730\u56fe \u3002 \u8fd9 \u5c06 \u6467\u6bc1 \u5f53\u524d \u7684 \u4e16\u754c \u5e76 \u521b\u9020 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u754c \u3002 print ( client . get _ available _ maps ( ) ) ... world = client . load _ world ( ' Town01 ' ) # client . reload _ world ( ) \u521b\u5efa \u4e00\u4e2a \u76f8\u540c \u5730\u56fe \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4e16\u754c \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a id \u6216 \u4e16\u4ee3 \u3002 \u6bcf\u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8c03\u7528 load _ world ( ) \u6216 reload _ world ( ) \u65f6 \uff0c \u524d \u4e00\u4e2a \u88ab \u9500\u6bc1 \u3002 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u4ee3 \u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u7684 \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u865a\u5e7b \u5f15\u64ce \u4e0d\u4f1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u3002 \u4f7f\u7528 \u547d\u4ee4 \u547d\u4ee4 \u662f \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 Carla \u65b9\u6cd5 \u7684 \u6539\u7f16 \uff0c \u53ef\u4ee5 \u6279\u91cf \u5e94\u7528 \u3002 \u4f8b\u5982 \uff0c command . SetAutopilot \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e command . SetAutopilot \uff0c \u542f\u7528 \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 Client . apply _ batch \u6216 Client . apply _ batch _ sync ( ) \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u5728 \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u5e94\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u547d\u4ee4 \u3002 \u8fd9 \u5bf9\u4e8e \u901a\u5e38 \u5e94\u7528 \u4e8e \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u5143\u7d20 \u7684 \u65b9\u6cd5 \u6765\u8bf4 \u53d8\u5f97 \u975e\u5e38 \u6709\u7528 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u4f7f\u7528 \u5904\u7406 \u6279\u5904\u7406 \u4e00\u6b21 \u4e00\u6b21\u6027 \u9500\u6bc1 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8f66\u8f86 \u3002 client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) Python API \u53c2\u8003 \u7684 \u6700\u65b0 \u90e8\u5206 \u5217\u51fa \u4e86 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002 \u5176\u4ed6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u4e3b\u8981 \u76ee\u7684 \u662f \u83b7\u53d6 \u6216 \u6539\u53d8 \u4e16\u754c \uff0c \u5e76 \u5e94\u7528 \u547d\u4ee4 \u3002 \u4f46\u662f \uff0c \u5b83 \u8fd8 \u63d0\u4f9b \u5bf9 \u4e00\u4e9b \u9644\u52a0 \u529f\u80fd \u7684 \u8bbf\u95ee \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6bcf\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u4ee5 \u91cd\u5efa \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 . \u5141\u8bb8 \u91cd\u65b0 \u8fdb\u884c \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u5feb\u7167 \u603b\u7ed3 \u6bcf\u5e27 \u7684 \u4eff\u771f \u72b6\u6001 \u3002 \u4e16\u754c \u4eff\u771f \u7684 \u4e3b\u8981 \u6807\u5c3a \u3002 \u5b83 \u7684 \u5b9e\u4f8b \u5e94\u8be5 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u3002 \u5b83 \u4e0d \u5305\u542b \u4e16\u754c \u672c\u8eab \u7684 \u6a21\u578b \uff0c \u8fd9\u662f Map \u7c7b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u76f8\u53cd \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4fe1\u606f \u548c \u5e38\u89c4 \u8bbe\u7f6e \u53ef\u4ee5 \u4ece \u6b64\u7c7b \u8bbf\u95ee \u3002 \u4eff\u771f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u3002 \u84dd \u56fe\u5e93 \u3002 \u5730\u56fe \u3002 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5feb\u7167 \u3002 \u5929\u6c14 \u548c \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u3002 \u5b83 \u7684 \u4e00\u4e9b \u6700 \u91cd\u8981 \u7684 \u65b9\u6cd5 \u662f getters \uff0c \u7cbe\u786e \u5730 \u68c0\u7d22 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u4fe1\u606f \u6216 \u5b9e\u4f8b \u3002 \u67e5\u770b carla . World \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e16\u754c \u4e0a \u6709 \u4e0d\u540c \u7684 \u4e0e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u5173 \u7684 \u65b9\u6cd5 \uff0c \u5141\u8bb8 \u4e0d\u540c \u7684 \u529f\u80fd \u3002 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f46 \u4e0d \u6467\u6bc1 \u4ed6\u4eec \uff09 \u3002 \u83b7\u5f97 \u573a\u666f \u4e2d \u7684 \u6bcf \u4e00\u4f4d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u6216\u8005 \u627e\u5230 \u4e00\u4e2a \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u84dd \u56fe\u5e93 \u3002 \u8bbf\u95ee \u89c2\u5bdf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4eff\u771f \u7684 \u89c6\u89d2 \u3002 \u68c0\u7d22 \u9002\u5408 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u968f\u673a \u4f4d\u7f6e \u3002 \u751f\u6210 \u5c06 \u5728 \u7b2c\u4e8c \u90e8\u5206 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u3002 \u9700\u8981 \u5bf9 \u84dd \u56fe\u5e93 \u3001 \u5c5e\u6027 \u7b49 \u6709 \u4e00\u5b9a \u7684 \u4e86\u89e3 \u3002 \u5929\u6c14 \u5929\u6c14 \u672c\u8eab \u5e76 \u4e0d\u662f \u4e00\u4e2a \u7c7b \uff0c \u800c\u662f \u4e00\u7ec4 \u53ef \u4ece \u4e16\u754c \u83b7\u53d6 \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \u5316 \u5305\u62ec \u592a\u9633 \u65b9\u5411 \u3001 \u4e91\u91cf \u3001 \u98ce \u3001 \u96fe \u7b49\u7b49 \u3002 \u8f85\u52a9 \u7c7b carla . WeatherParameters \u7528\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u3002 weather = carla . WeatherParameters ( cloudiness = 80.0 , precipitation = 30.0 , sun _ altitude _ angle = 70.0 ) world . set _ weather ( weather ) print ( world . get _ weather ( ) ) \u6709 \u4e00\u4e9b \u5929\u6c14 \u9884\u8bbe \u53ef\u4ee5 \u76f4\u63a5 \u5e94\u7528 \u4e8e \u4e16\u754c \u3002 \u8fd9\u4e9b \u5217 \u5728 carla . WeatherParameters \u4e2d \u5e76 \u53ef \u4f5c\u4e3a \u679a\u4e3e \u8bbf\u95ee \u3002 world . set _ weather ( carla . WeatherParameters . WetCloudySunset ) \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u4e24\u4e2a \u811a\u672c \u6765\u81ea \u5b9a\u4e49 \u5929\u6c14 \u3002 environment . py ( \u5728 PythonAPI / util \u76ee\u5f55 \u4e0b ) \u2014 \u63d0\u4f9b \u5bf9 \u5929\u6c14 \u548c \u5149\u7167 \u53c2\u6570 \u7684 \u8bbf\u95ee \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5b9e\u65f6 \u66f4\u6539 \u8fd9\u4e9b \u53c2\u6570 \u3002 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] dynamic _ weather . py ( \u5728 PythonAPI / examples \u76ee\u5f55 \u4e0b ) \u2014 \u542f\u7528 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4e3a \u6bcf\u5f20 Carla \u5730\u56fe \u51c6\u5907 \u7684 \u7279\u5b9a \u5929\u6c14 \u5468\u671f \u3002 dynamic _ weather . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - s FACTOR , -- speed FACTOR rate at which the weather changes ( default : 1.0 ) \u7b14\u8bb0 \u5929\u6c14 \u7684 \u53d8\u5316 \u4e0d\u4f1a \u5f71\u54cd \u7269\u7406 \u3002 \u5b83\u4eec \u53ea\u662f \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6355\u83b7 \u7684 \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \u3002 \u5f53 sun _ altitude _ angle < 0 \u65f6 \uff0c \u591c\u95f4 \u6a21\u5f0f \u5f00\u59cb \uff0c \u8fd9 \u88ab \u8ba4\u4e3a \u662f \u65e5\u843d \u3002 \u8fd9\u662f \u706f\u5149 \u53d8\u5f97 \u7279\u522b \u91cd\u8981 \u7684 \u65f6\u5019 \u3002 \u706f\u5149 \u5f53 \u4eff\u771f \u8fdb\u5165 \u591c\u95f4 \u6a21\u5f0f \u65f6 \uff0c \u8def\u706f \u4f1a \u81ea\u52a8 \u6253\u5f00 \u3002 \u706f\u5149 \u7531 \u5730\u56fe \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u653e\u7f6e \uff0c \u5e76 \u53ef \u4f5c\u4e3a carla . Light \u5bf9\u8c61 \u8bbf\u95ee \u3002 \u989c\u8272 \u548c \u5f3a\u5ea6 \u7b49 \u5c5e\u6027 \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 carla . LightState \u7c7b\u578b \u7684 \u53d8\u91cf light _ state \u5141\u8bb8 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u8bbe\u7f6e \u6240\u6709 \u8fd9\u4e9b \u3002 \u8def\u706f \u4f7f\u7528 \u5176 \u7c7b\u578b \u4e3a carla . LightState \u7684 \u5c5e\u6027 light _ state \u8fdb\u884c \u5206\u7c7b \u3002 \u8fd9 \u5141\u8bb8 \u5c06 \u706f \u5206\u7c7b \u4e3a \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u706f ... \u53ef\u4ee5 \u68c0\u7d22 [ carla . LightManager ] \u7684 \u5b9e\u4f8b \u6765 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u5904\u7406 \u4e00\u7ec4 \u706f \u3002 # \u83b7\u5f97 \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u548c \u706f\u5149 lmanager = world . get _ lightmanager ( ) mylights = lmanager . get _ all _ lights ( ) # \u5b9a\u5236 \u4e00\u4e2a \u7279\u5b9a \u7684 \u706f\u5149 light01 = mylights [ 0 ] light01 . turn _ on ( ) light01 . set _ intensity ( 100.0 ) state01 = carla . LightState ( 200.0 , red , carla . LightGroup . Building , True ) light01 . set _ light _ state ( state01 ) # \u5b9a\u5236 \u4e00\u7ec4 \u706f my _ lights = lmanager . get _ light _ group ( carla . LightGroup . Building ) lmanager . turn _ on ( my _ lights ) lmanager . set _ color ( my _ lights , carla . Color ( 255 , 0 , 0 ) ) lmanager . set _ intensities ( my _ lights , list _ of _ intensities ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 / \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u4ee5\u4e0b \u662f \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \u53ef\u7528 \u7684 \u5217\u8868 \u3002 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3002 \u5b83\u4eec \u90fd \u6709 \u524d\u540e \u793a\u5ed3 \u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \u3002 \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 \u3001 \u9053\u5947 \uff08 \u8b66\u8f66 \uff09 \u3001 \u94b0 \u521b \u3001 \u6797\u80af \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 3S \u3001 \u5927\u4f17 T2 \u4ee5\u53ca \u5373\u5c06 \u5230\u6765 \u7684 Carla \u65b0 \u5ba2\u4eba \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights ) \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u5929\u6c14 environment . py \u90e8\u5206 \u4e2d \u63cf\u8ff0 \u7684 \u5b9e\u65f6 \u8bbe\u7f6e \u706f\u5149 \u3002 \u8c03\u8bd5 \u4e16\u754c \u5bf9\u8c61 \u6709 \u4e00\u4e2a carla . DebugHelper \u5bf9\u8c61 \u4f5c\u4e3a \u516c\u5171 \u5c5e\u6027 \u3002 \u5b83 \u5141\u8bb8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7ed8\u5236 \u4e0d\u540c \u7684 \u5f62\u72b6 \u3002 \u8fd9\u4e9b \u7528\u4e8e \u8ddf\u8e2a \u6b63\u5728 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5904 \u7ed8\u5236 \u4e00\u4e2a \u7ea2\u8272 \u6846 \u3002 debug = world . debug debug . draw _ box ( carla . BoundingBox ( actor _ snapshot . get _ transform ( ) . location , carla . Vector3D ( 0.5 , 0.5 , 2 ) ) , actor _ snapshot . get _ transform ( ) . rotation , 0.05 , carla . Color ( 255 , 0 , 0 , 0 ) , 0 ) \u6b64 \u793a\u4f8b \u5728 carla . DebugHelper \u7684 \u7247\u6bb5 \u4e2d \u8fdb\u884c \u4e86 \u6269\u5c55 \uff0c \u5c55\u793a \u4e86 \u5982\u4f55 \u4e3a \u4e16\u754c \u5feb\u7167 \u4e2d \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7ed8\u5236 \u65b9\u6846 \u3002 \u4e16\u754c \u5feb\u7167 \u5305\u542b \u4eff\u771f \u4e2d \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u7684 \u72b6\u6001 \u3002 \u4e00\u79cd \u5e26\u6709 \u65f6\u95f4 \u53c2\u8003 \u7684 \u9759\u6001 \u4e16\u754c \u56fe\u50cf \u3002 \u5373\u4f7f \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u4fe1\u606f \u4e5f \u6765\u81ea \u76f8\u540c \u7684 \u4eff\u771f \u6b65\u9aa4 \u3002 # \u68c0\u7d22 \u5f53\u524d \u5e27 \u7684 \u4e16\u754c \u5feb\u7167 \u3002 world _ snapshot = world . get _ snapshot ( ) carla . WorldSnapshot \u5305\u542b carla . Timestamp \u548c carla . ActorSnapshot \u5217\u8868 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u7684 \u641c\u7d22 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167 \u3002 \u5feb\u7167 \u5217\u51fa \u4e86 \u5176\u4e2d \u51fa\u73b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u3002 timestamp = world _ snapshot . timestamp # \u83b7\u53d6 \u65f6\u95f4 \u53c2\u8003 for actor _ snapshot in world _ snapshot : # \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u5feb\u7167 \u4fe1\u606f actual _ actor = world . get _ actor ( actor _ snapshot . id ) actor _ snapshot . get _ transform ( ) actor _ snapshot . get _ velocity ( ) actor _ snapshot . get _ angular _ velocity ( ) actor _ snapshot . get _ acceleration ( ) actor _ snapshot = world _ snapshot . find ( actual _ actor . id ) # \u83b7\u5f97 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167 \u4e16\u754c \u8bbe\u7f6e \u4e16\u754c \u53ef\u4ee5 \u4f7f\u7528 \u4e00\u4e9b \u9ad8\u7ea7 \u7684 \u4eff\u771f \u914d\u7f6e \u3002 \u8fd9\u4e9b \u51b3\u5b9a \u4e86 \u6e32\u67d3 \u6761\u4ef6 \u3001 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u4ece \u8f85\u52a9 \u7c7b carla . WorldSettings \u8bbf\u95ee \u3002 \u76ee\u524d \uff0c \u9ed8\u8ba4 \u7684 Carla \u4ee5 \u6700\u4f73 \u56fe\u5f62 \u8d28\u91cf \u3001 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u548c \u5f02\u6b65 \u65b9\u5f0f \u8fd0\u884c \u3002 \u8981 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u6df1\u5165 \u4e86\u89e3 \u6b64 \u95ee\u9898 \uff0c \u8bf7 \u67e5\u770b \u9ad8\u7ea7 \u6b65\u9aa4 \u90e8\u5206 \u3002 \u6709\u5173 \u540c\u6b65 \u3001 \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u6e32\u67d3 \u9009\u9879 \u7684 \u9875\u9762 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u8d77\u70b9 \u3002 \u8fd9 \u662f \u5bf9 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u5305\u88c5 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \uff0c \u4e3a \u4eff\u771f \u8d4b\u4e88 \u751f\u547d \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe","title":"\u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237\u7aef"},{"location":"core_world/#_1","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u662f Carla \u7684 \u4e24\u4e2a \u57fa\u672c \u8981\u7d20 \u57fa\u672c\u8981\u7d20 \uff0c \u662f \u64cd\u4f5c \u4eff\u771f \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5fc5\u8981 \u62bd\u8c61 \u3002 \u672c \u6559\u7a0b \u4ece \u5b9a\u4e49 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u548c \u521b\u5efa \uff0c \u5230 \u63cf\u8ff0 \u5b83\u4eec \u7684 \u53ef\u80fd \u53ef\u80fd\u6027 \u3002 \u5982\u679c \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u51fa\u73b0 \u4efb\u4f55 \u7591\u95ee \u6216 \u95ee\u9898 \uff0c Carla \u8bba\u575b \u53ef\u4ee5 \u4e3a \u60a8 \u89e3\u51b3 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e16\u754c \u8fde\u63a5 \u5176\u4ed6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u4e16\u754c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5929\u6c14 \u706f\u5149 \u8c03\u8bd5 \u4e16\u754c \u5feb\u7167 \u4e16\u754c \u8bbe\u7f6e","title":"\u7b2c\u4e00 \u3001 \u4e16\u754c \u548c \u5ba2\u6237\u7aef"},{"location":"core_world/#_2","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u662f Carla \u67b6\u6784 \u4e2d \u7684 \u4e3b\u8981 \u5143\u7d20 \u4e4b\u4e00 \u3002 \u5b83\u4eec \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u68c0\u7d22 \u4fe1\u606f \u5e76 \u66f4\u6539 \u547d\u4ee4 \u3002 \u8fd9\u662f \u901a\u8fc7 \u811a\u672c \u5b8c\u6210 \u7684 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bc6\u522b \u81ea\u5df1 \u7684 \u8eab\u4efd \uff0c \u5e76 \u8fde\u63a5 \u5230 \u4e16\u754c \uff0c \u7136\u540e \u8fdb\u884c \u4eff\u771f \u64cd\u4f5c \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u5ba2\u6237 \u8fd8 \u53ef\u4ee5 \u8bbf\u95ee \u9ad8\u7ea7 Carla \u6a21\u5757 \u3001 \u529f\u80fd \u5e76 \u5e94\u7528 \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u672c\u8282 \u4ec5 \u4ecb\u7ecd \u547d\u4ee4 \u5904\u7406 \u6279\u5904\u7406 \u3002 \u8fd9\u4e9b \u5bf9\u4e8e \u8bf8\u5982 \u751f\u6210 \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u7c7b \u7684 \u57fa\u672c \u4e8b\u60c5 \u5f88 \u6709\u7528 \u3002 \u5176\u4f59 \u529f\u80fd \u66f4\u52a0 \u590d\u6742 \uff0c \u5c06 \u5728 \u9ad8\u7ea7 \u6b65\u9aa4 \u4e2d \u5404\u81ea \u7684 \u9875\u9762 \u4e2d \u8fdb\u884c \u89e3\u51b3 \u3002 \u67e5\u770b Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u4ee5 \u4e86\u89e3 \u8be5\u7c7b \u7684 \u7279\u5b9a \u65b9\u6cd5 \u548c \u53d8\u91cf \u3002","title":"\u5ba2\u6237\u7aef"},{"location":"core_world/#_3","text":"\u9700\u8981 \u4e24\u4ef6 \u4e24\u4ef6\u4e8b \u3002 \u6807\u8bc6 \u5b83 \u7684 IP \u5730\u5740 \u4ee5\u53ca \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u7684 \u4e24\u4e2a TCP \u7aef\u53e3 \u3002 \u53ef\u9009 \u7684 \u7b2c\u4e09 \u4e09\u4e2a \u7b2c\u4e09\u4e2a \u53c2\u6570 \u8bbe\u7f6e \u53c2\u6570\u8bbe\u7f6e \u5de5\u4f5c \u7ebf\u7a0b \u7684 \u6570\u91cf \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a \u5168\u90e8 ( 0 ) \u3002 Python API \u53c2\u8003 \u4e2d \u7684 carla . Client \u5305\u542b \u4e00\u4e2a \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u5728 \u8fd0\u884c \u811a\u672c \u65f6 \u5c06 \u8fd9\u4e9b \u89e3\u6790 \u4e3a \u53c2\u6570 \u3002 client = carla . Client ( ' localhost ' , 2000 ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4f7f\u7528 \u672c\u5730 \u4e3b\u673a IP \u548c \u7aef\u53e3 2000 \u8fdb\u884c \u8fde\u63a5 \uff0c \u4f46 \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u59cb\u7ec8 \u4e3a n + 1 , 2001 \u3002 \u521b\u5efa \u5ba2\u6237 \u5ba2\u6237\u7aef \u540e \uff0c \u8bbe\u7f6e \u5176 time - out \u3002 \u8fd9 \u9650\u5236 \u4e86 \u6240\u6709 \u7f51\u7edc \u64cd\u4f5c \uff0c \u4ee5\u4fbf \u8fd9\u4e9b \u64cd\u4f5c \u4e0d\u4f1a \u6c38\u8fdc \u963b\u6b62 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5982\u679c \u8fde\u63a5 \u5931\u8d25 \uff0c \u5c06 \u8fd4\u56de \u9519\u8bef \u3002 client . set _ timeout ( 10.0 ) # \u79d2 \u53ef\u4ee5 \u8fde\u63a5 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u56e0\u4e3a \u4e00\u6b21 \u8fd0\u884c \u591a\u4e2a \u811a\u672c \u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u5728 \u5177\u6709 \u9ad8\u7ea7 Carla \u529f\u80fd \uff08 \u4f8b\u5982 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff09 \u7684 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65b9\u6848 \u4e2d \u5de5\u4f5c \uff0c \u5fc5\u7136 \u4f1a \u4f7f \u901a\u4fe1 \u66f4\u52a0 \u590d\u6742 \u3002 \u7b14\u8bb0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6709 \u4e0d\u540c \u7684 libcarla \u6a21\u5757 \u3002 \u5982\u679c \u7248\u672c \u4e0d\u540c \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u95ee\u9898 \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 get _ client _ version ( ) \u548c get _ server _ version ( ) \u65b9\u6cd5 \u8fdb\u884c \u68c0\u67e5 \u3002","title":"\u5ba2\u6237\u7aef \u521b\u5efa"},{"location":"core_world/#_4","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u76f8\u5f53 \u8f7b\u677e \u5730 \u8fde\u63a5 \u548c \u68c0\u7d22 \u5f53\u524d \u4e16\u754c \u3002 world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u53ef\u4ee5 \u83b7\u5f97 \u53ef\u7528 \u5730\u56fe \u5217\u8868 \u6765 \u66f4\u6539 \u5f53\u524d \u5730\u56fe \u3002 \u8fd9 \u5c06 \u6467\u6bc1 \u5f53\u524d \u7684 \u4e16\u754c \u5e76 \u521b\u9020 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u754c \u3002 print ( client . get _ available _ maps ( ) ) ... world = client . load _ world ( ' Town01 ' ) # client . reload _ world ( ) \u521b\u5efa \u4e00\u4e2a \u76f8\u540c \u5730\u56fe \u4e16\u754c \u7684 \u65b0 \u5b9e\u4f8b \u3002 \u6bcf\u4e2a \u4e16\u754c \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a id \u6216 \u4e16\u4ee3 \u3002 \u6bcf\u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8c03\u7528 load _ world ( ) \u6216 reload _ world ( ) \u65f6 \uff0c \u524d \u4e00\u4e2a \u88ab \u9500\u6bc1 \u3002 \u4e00\u4e2a \u65b0 \u7684 \u4e16\u4ee3 \u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u521b\u5efa \u7684 \u3002 \u5728 \u6b64 \u8fc7\u7a0b \u4e2d \u865a\u5e7b \u5f15\u64ce \u4e0d\u4f1a \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u3002","title":"\u4e16\u754c \u8fde\u63a5"},{"location":"core_world/#_5","text":"\u547d\u4ee4 \u662f \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 Carla \u65b9\u6cd5 \u7684 \u6539\u7f16 \uff0c \u53ef\u4ee5 \u6279\u91cf \u5e94\u7528 \u3002 \u4f8b\u5982 \uff0c command . SetAutopilot \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e command . SetAutopilot \uff0c \u542f\u7528 \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u3002 \u4f46\u662f \uff0c \u4f7f\u7528 Client . apply _ batch \u6216 Client . apply _ batch _ sync ( ) \u65b9\u6cd5 \uff0c \u53ef\u4ee5 \u5728 \u4e00\u4e2a \u4eff\u771f \u6b65\u9aa4 \u4e2d \u5e94\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u547d\u4ee4 \u3002 \u8fd9 \u5bf9\u4e8e \u901a\u5e38 \u5e94\u7528 \u4e8e \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u5143\u7d20 \u7684 \u65b9\u6cd5 \u6765\u8bf4 \u53d8\u5f97 \u975e\u5e38 \u6709\u7528 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u4f7f\u7528 \u5904\u7406 \u6279\u5904\u7406 \u4e00\u6b21 \u4e00\u6b21\u6027 \u9500\u6bc1 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8f66\u8f86 \u3002 client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in vehicles _ list ] ) Python API \u53c2\u8003 \u7684 \u6700\u65b0 \u90e8\u5206 \u5217\u51fa \u4e86 \u6240\u6709 \u53ef\u7528 \u7684 \u547d\u4ee4 \u3002","title":"\u4f7f\u7528 \u547d\u4ee4"},{"location":"core_world/#_6","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u4e3b\u8981 \u76ee\u7684 \u662f \u83b7\u53d6 \u6216 \u6539\u53d8 \u4e16\u754c \uff0c \u5e76 \u5e94\u7528 \u547d\u4ee4 \u3002 \u4f46\u662f \uff0c \u5b83 \u8fd8 \u63d0\u4f9b \u5bf9 \u4e00\u4e9b \u9644\u52a0 \u529f\u80fd \u7684 \u8bbf\u95ee \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6bcf\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u4ee5 \u91cd\u5efa \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 . \u5141\u8bb8 \u91cd\u65b0 \u8fdb\u884c \u4ee5\u524d \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u5feb\u7167 \u603b\u7ed3 \u6bcf\u5e27 \u7684 \u4eff\u771f \u72b6\u6001 \u3002","title":"\u5176\u4ed6 \u5ba2\u6237\u7aef \u5b9e\u7528\u7a0b\u5e8f"},{"location":"core_world/#_7","text":"\u4eff\u771f \u7684 \u4e3b\u8981 \u6807\u5c3a \u3002 \u5b83 \u7684 \u5b9e\u4f8b \u5e94\u8be5 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u3002 \u5b83 \u4e0d \u5305\u542b \u4e16\u754c \u672c\u8eab \u7684 \u6a21\u578b \uff0c \u8fd9\u662f Map \u7c7b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u76f8\u53cd \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4fe1\u606f \u548c \u5e38\u89c4 \u8bbe\u7f6e \u53ef\u4ee5 \u4ece \u6b64\u7c7b \u8bbf\u95ee \u3002 \u4eff\u771f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u3002 \u84dd \u56fe\u5e93 \u3002 \u5730\u56fe \u3002 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5feb\u7167 \u3002 \u5929\u6c14 \u548c \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u3002 \u5b83 \u7684 \u4e00\u4e9b \u6700 \u91cd\u8981 \u7684 \u65b9\u6cd5 \u662f getters \uff0c \u7cbe\u786e \u5730 \u68c0\u7d22 \u8fd9\u4e9b \u5143\u7d20 \u7684 \u4fe1\u606f \u6216 \u5b9e\u4f8b \u3002 \u67e5\u770b carla . World \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u4e16\u754c"},{"location":"core_world/#_8","text":"\u4e16\u754c \u4e0a \u6709 \u4e0d\u540c \u7684 \u4e0e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u5173 \u7684 \u65b9\u6cd5 \uff0c \u5141\u8bb8 \u4e0d\u540c \u7684 \u529f\u80fd \u3002 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f46 \u4e0d \u6467\u6bc1 \u4ed6\u4eec \uff09 \u3002 \u83b7\u5f97 \u573a\u666f \u4e2d \u7684 \u6bcf \u4e00\u4f4d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u6216\u8005 \u627e\u5230 \u4e00\u4e2a \u7279\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u84dd \u56fe\u5e93 \u3002 \u8bbf\u95ee \u89c2\u5bdf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4eff\u771f \u7684 \u89c6\u89d2 \u3002 \u68c0\u7d22 \u9002\u5408 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u968f\u673a \u4f4d\u7f6e \u3002 \u751f\u6210 \u5c06 \u5728 \u7b2c\u4e8c \u90e8\u5206 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u3002 \u9700\u8981 \u5bf9 \u84dd \u56fe\u5e93 \u3001 \u5c5e\u6027 \u7b49 \u6709 \u4e00\u5b9a \u7684 \u4e86\u89e3 \u3002","title":"\u53c2\u4e0e\u8005"},{"location":"core_world/#_9","text":"\u5929\u6c14 \u672c\u8eab \u5e76 \u4e0d\u662f \u4e00\u4e2a \u7c7b \uff0c \u800c\u662f \u4e00\u7ec4 \u53ef \u4ece \u4e16\u754c \u83b7\u53d6 \u7684 \u53c2\u6570 \u3002 \u53c2\u6570 \u5316 \u5305\u62ec \u592a\u9633 \u65b9\u5411 \u3001 \u4e91\u91cf \u3001 \u98ce \u3001 \u96fe \u7b49\u7b49 \u3002 \u8f85\u52a9 \u7c7b carla . WeatherParameters \u7528\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u3002 weather = carla . WeatherParameters ( cloudiness = 80.0 , precipitation = 30.0 , sun _ altitude _ angle = 70.0 ) world . set _ weather ( weather ) print ( world . get _ weather ( ) ) \u6709 \u4e00\u4e9b \u5929\u6c14 \u9884\u8bbe \u53ef\u4ee5 \u76f4\u63a5 \u5e94\u7528 \u4e8e \u4e16\u754c \u3002 \u8fd9\u4e9b \u5217 \u5728 carla . WeatherParameters \u4e2d \u5e76 \u53ef \u4f5c\u4e3a \u679a\u4e3e \u8bbf\u95ee \u3002 world . set _ weather ( carla . WeatherParameters . WetCloudySunset ) \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u4e24\u4e2a \u811a\u672c \u6765\u81ea \u5b9a\u4e49 \u5929\u6c14 \u3002 environment . py ( \u5728 PythonAPI / util \u76ee\u5f55 \u4e0b ) \u2014 \u63d0\u4f9b \u5bf9 \u5929\u6c14 \u548c \u5149\u7167 \u53c2\u6570 \u7684 \u8bbf\u95ee \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5b9e\u65f6 \u66f4\u6539 \u8fd9\u4e9b \u53c2\u6570 \u3002 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] dynamic _ weather . py ( \u5728 PythonAPI / examples \u76ee\u5f55 \u4e0b ) \u2014 \u542f\u7528 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u4e3a \u6bcf\u5f20 Carla \u5730\u56fe \u51c6\u5907 \u7684 \u7279\u5b9a \u5929\u6c14 \u5468\u671f \u3002 dynamic _ weather . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - s FACTOR , -- speed FACTOR rate at which the weather changes ( default : 1.0 ) \u7b14\u8bb0 \u5929\u6c14 \u7684 \u53d8\u5316 \u4e0d\u4f1a \u5f71\u54cd \u7269\u7406 \u3002 \u5b83\u4eec \u53ea\u662f \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6355\u83b7 \u7684 \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \u3002 \u5f53 sun _ altitude _ angle < 0 \u65f6 \uff0c \u591c\u95f4 \u6a21\u5f0f \u5f00\u59cb \uff0c \u8fd9 \u88ab \u8ba4\u4e3a \u662f \u65e5\u843d \u3002 \u8fd9\u662f \u706f\u5149 \u53d8\u5f97 \u7279\u522b \u91cd\u8981 \u7684 \u65f6\u5019 \u3002","title":"\u5929\u6c14"},{"location":"core_world/#_10","text":"\u5f53 \u4eff\u771f \u8fdb\u5165 \u591c\u95f4 \u6a21\u5f0f \u65f6 \uff0c \u8def\u706f \u4f1a \u81ea\u52a8 \u6253\u5f00 \u3002 \u706f\u5149 \u7531 \u5730\u56fe \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u653e\u7f6e \uff0c \u5e76 \u53ef \u4f5c\u4e3a carla . Light \u5bf9\u8c61 \u8bbf\u95ee \u3002 \u989c\u8272 \u548c \u5f3a\u5ea6 \u7b49 \u5c5e\u6027 \u53ef\u4ee5 \u968f\u610f \u66f4\u6539 \u3002 carla . LightState \u7c7b\u578b \u7684 \u53d8\u91cf light _ state \u5141\u8bb8 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u8bbe\u7f6e \u6240\u6709 \u8fd9\u4e9b \u3002 \u8def\u706f \u4f7f\u7528 \u5176 \u7c7b\u578b \u4e3a carla . LightState \u7684 \u5c5e\u6027 light _ state \u8fdb\u884c \u5206\u7c7b \u3002 \u8fd9 \u5141\u8bb8 \u5c06 \u706f \u5206\u7c7b \u4e3a \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u706f ... \u53ef\u4ee5 \u68c0\u7d22 [ carla . LightManager ] \u7684 \u5b9e\u4f8b \u6765 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u5904\u7406 \u4e00\u7ec4 \u706f \u3002 # \u83b7\u5f97 \u706f\u5149 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u548c \u706f\u5149 lmanager = world . get _ lightmanager ( ) mylights = lmanager . get _ all _ lights ( ) # \u5b9a\u5236 \u4e00\u4e2a \u7279\u5b9a \u7684 \u706f\u5149 light01 = mylights [ 0 ] light01 . turn _ on ( ) light01 . set _ intensity ( 100.0 ) state01 = carla . LightState ( 200.0 , red , carla . LightGroup . Building , True ) light01 . set _ light _ state ( state01 ) # \u5b9a\u5236 \u4e00\u7ec4 \u706f my _ lights = lmanager . get _ light _ group ( carla . LightGroup . Building ) lmanager . turn _ on ( my _ lights ) lmanager . set _ color ( my _ lights , carla . Color ( 255 , 0 , 0 ) ) lmanager . set _ intensities ( my _ lights , list _ of _ intensities ) \u8f66\u706f \u5fc5\u987b \u7531 \u7528\u6237 \u6253\u5f00 / \u5173\u95ed \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u7ec4 \u5728 carla . VehicleLightState \u4e2d \u5217\u51fa \u7684 \u706f \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u96c6\u6210 \u4e86 \u8f66\u706f \u3002 \u4ee5\u4e0b \u662f \u622a\u81f3 \u64b0\u5199 \u672c\u6587 \u65f6 \u53ef\u7528 \u7684 \u5217\u8868 \u3002 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3002 \u5b83\u4eec \u90fd \u6709 \u524d\u540e \u793a\u5ed3 \u706f \u3002 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3002 \u9a6c\u54c8 \u96c5\u9a6c\u54c8 \u548c \u54c8\u96f7 \u6234\u7ef4\u68ee \u578b\u53f7 \u3002 \u6c7d\u8f66 \u3002 \u5965\u8fea TT \u3001 \u96ea\u4f5b\u5170 \u3001 \u9053\u5947 \uff08 \u8b66\u8f66 \uff09 \u3001 \u94b0 \u521b \u3001 \u6797\u80af \u3001 \u91ce\u9a6c \u3001 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 3S \u3001 \u5927\u4f17 T2 \u4ee5\u53ca \u5373\u5c06 \u5230\u6765 \u7684 Carla \u65b0 \u5ba2\u4eba \u3002 \u53ef\u4ee5 \u4f7f\u7528 carla . Vehicle . get _ light _ state \u548c carla . Vehicle . set _ light _ state \u65b9\u6cd5 \u968f\u65f6 \u68c0\u7d22 \u548c \u66f4\u65b0 \u8f66\u8f86 \u7684 \u706f\u5149 \u3002 \u5b83\u4eec \u4f7f\u7528 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u8fd0\u7b97 \u6765\u81ea \u5b9a\u4e49 \u706f\u5149 \u8bbe\u7f6e \u3002 # \u6253\u5f00 \u4f4d\u7f6e \u4f4d\u7f6e\u706f current _ lights = carla . VehicleLightState . NONE current _ lights | = carla . VehicleLightState . Position vehicle . set _ light _ state ( current _ lights ) \u7b14\u8bb0 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u5929\u6c14 environment . py \u90e8\u5206 \u4e2d \u63cf\u8ff0 \u7684 \u5b9e\u65f6 \u8bbe\u7f6e \u706f\u5149 \u3002","title":"\u706f\u5149"},{"location":"core_world/#_11","text":"\u4e16\u754c \u5bf9\u8c61 \u6709 \u4e00\u4e2a carla . DebugHelper \u5bf9\u8c61 \u4f5c\u4e3a \u516c\u5171 \u5c5e\u6027 \u3002 \u5b83 \u5141\u8bb8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7ed8\u5236 \u4e0d\u540c \u7684 \u5f62\u72b6 \u3002 \u8fd9\u4e9b \u7528\u4e8e \u8ddf\u8e2a \u6b63\u5728 \u53d1\u751f \u7684 \u4e8b\u4ef6 \u3002 \u4ee5\u4e0b \u793a\u4f8b \u5c06 \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5904 \u7ed8\u5236 \u4e00\u4e2a \u7ea2\u8272 \u6846 \u3002 debug = world . debug debug . draw _ box ( carla . BoundingBox ( actor _ snapshot . get _ transform ( ) . location , carla . Vector3D ( 0.5 , 0.5 , 2 ) ) , actor _ snapshot . get _ transform ( ) . rotation , 0.05 , carla . Color ( 255 , 0 , 0 , 0 ) , 0 ) \u6b64 \u793a\u4f8b \u5728 carla . DebugHelper \u7684 \u7247\u6bb5 \u4e2d \u8fdb\u884c \u4e86 \u6269\u5c55 \uff0c \u5c55\u793a \u4e86 \u5982\u4f55 \u4e3a \u4e16\u754c \u5feb\u7167 \u4e2d \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7ed8\u5236 \u65b9\u6846 \u3002","title":"\u8c03\u8bd5"},{"location":"core_world/#_12","text":"\u5305\u542b \u4eff\u771f \u4e2d \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u7684 \u72b6\u6001 \u3002 \u4e00\u79cd \u5e26\u6709 \u65f6\u95f4 \u53c2\u8003 \u7684 \u9759\u6001 \u4e16\u754c \u56fe\u50cf \u3002 \u5373\u4f7f \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u4fe1\u606f \u4e5f \u6765\u81ea \u76f8\u540c \u7684 \u4eff\u771f \u6b65\u9aa4 \u3002 # \u68c0\u7d22 \u5f53\u524d \u5e27 \u7684 \u4e16\u754c \u5feb\u7167 \u3002 world _ snapshot = world . get _ snapshot ( ) carla . WorldSnapshot \u5305\u542b carla . Timestamp \u548c carla . ActorSnapshot \u5217\u8868 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u7684 \u641c\u7d22 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167 \u3002 \u5feb\u7167 \u5217\u51fa \u4e86 \u5176\u4e2d \u51fa\u73b0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u3002 timestamp = world _ snapshot . timestamp # \u83b7\u53d6 \u65f6\u95f4 \u53c2\u8003 for actor _ snapshot in world _ snapshot : # \u83b7\u53d6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u5feb\u7167 \u4fe1\u606f actual _ actor = world . get _ actor ( actor _ snapshot . id ) actor _ snapshot . get _ transform ( ) actor _ snapshot . get _ velocity ( ) actor _ snapshot . get _ angular _ velocity ( ) actor _ snapshot . get _ acceleration ( ) actor _ snapshot = world _ snapshot . find ( actual _ actor . id ) # \u83b7\u5f97 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5feb\u7167","title":"\u4e16\u754c \u5feb\u7167"},{"location":"core_world/#_13","text":"\u4e16\u754c \u53ef\u4ee5 \u4f7f\u7528 \u4e00\u4e9b \u9ad8\u7ea7 \u7684 \u4eff\u771f \u914d\u7f6e \u3002 \u8fd9\u4e9b \u51b3\u5b9a \u4e86 \u6e32\u67d3 \u6761\u4ef6 \u3001 \u4eff\u771f \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u4ece \u8f85\u52a9 \u7c7b carla . WorldSettings \u8bbf\u95ee \u3002 \u76ee\u524d \uff0c \u9ed8\u8ba4 \u7684 Carla \u4ee5 \u6700\u4f73 \u56fe\u5f62 \u8d28\u91cf \u3001 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u548c \u5f02\u6b65 \u65b9\u5f0f \u8fd0\u884c \u3002 \u8981 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u6df1\u5165 \u4e86\u89e3 \u6b64 \u95ee\u9898 \uff0c \u8bf7 \u67e5\u770b \u9ad8\u7ea7 \u6b65\u9aa4 \u90e8\u5206 \u3002 \u6709\u5173 \u540c\u6b65 \u3001 \u65f6\u95f4 \u6b65\u957f \u4ee5\u53ca \u6e32\u67d3 \u9009\u9879 \u7684 \u9875\u9762 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u8d77\u70b9 \u3002 \u8fd9 \u662f \u5bf9 \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7684 \u5305\u88c5 \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u4ed4\u7ec6 \u7814\u7a76 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \uff0c \u4e3a \u4eff\u771f \u8d4b\u4e88 \u751f\u547d \u3002 \u7ee7\u7eed \u9605\u8bfb \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u7b2c\u4e8c \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe","title":"\u4e16\u754c \u8bbe\u7f6e"},{"location":"cpp/","text":"C++ \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u8fd0\u884c doxygen \u5c06 \u5728 Doxygen / html \u76ee\u5f55 \u4e0b \u751f\u6210 html \u6587\u4ef6 \uff0c \u6587\u6863 \u4e3b\u9875 \u4f4d\u4e8e \u3002 \u6240\u6709 \u7c7b \u7684 \u7ee7\u627f \u5173\u7cfb \u3002 LibCarla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u4e0d \u4f7f\u7528 Nagle \u7b97\u6cd5 \uff0c \u5c06 Linux \u4e0a \u7684 \u540c\u6b65 \u6a21\u5f0f \u901f\u5ea6 \u63d0\u9ad8 \u4e86 \u7ea6 3 \u500d \u3002 _ socket . set _ option ( boost : : asio : : ip : : tcp : : no _ delay ( true ) ) ; \u7b14\u8bb0 Nagle \u7b97\u6cd5 \u662f \u4e00\u79cd \u7528\u4e8e \u63d0\u9ad8 TCP / IP \u7f51\u7edc \u6027\u80fd \u7684 \u7b97\u6cd5 \uff0c \u5b83 \u901a\u8fc7 \u51cf\u5c11 \u6570\u636e \u6570\u636e\u5305 \u7684 \u53d1\u9001 \u53d1\u9001\u91cf \u6765 \u51cf\u5c11 \u7f51\u7edc \u62e5\u5835 \u3002 Nagle \u7b97\u6cd5 \u7684 \u4e3b\u8981 \u76ee\u7684 \u662f \u5408\u5e76 \u4e00\u5b9a \u6570\u91cf \u7684 \u8f93\u51fa \u6570\u636e \u540e \u4e00\u6b21 \u4e00\u6b21\u6027 \u63d0\u4ea4 \uff0c \u4ee5 \u907f\u514d \u7f51\u7edc \u4e2d \u5145\u65a5 \u7740 \u8bb8\u591a \u5c0f \u6570\u636e \u5757 \u3002 \u5f53 TCP \u62a5\u6587 \u627f\u8f7d \u7684 \u6570\u636e \u6570\u636e\u91cf \u975e\u5e38 \u5c0f\u65f6 \uff0c \u4f8b\u5982 \u51e0\u4e2a \u5b57\u8282 \uff0c \u6574\u4e2a \u7f51\u7edc \u7684 \u6548\u7387 \u4f1a \u5f88 \u4f4e \uff0c \u56e0\u4e3a \u6bcf\u4e2a TCP \u62a5\u6587 \u4e2d \u90fd \u4f1a \u5305\u542b \u5927\u91cf \u7684 \u5934\u90e8 \u4fe1\u606f \uff0c \u800c \u6709\u6548 \u6570\u636e \u5360\u6709 \u7684 \u6bd4\u91cd \u5c31 \u4f1a \u975e\u5e38 \u975e\u5e38\u4f4e \u3002 Nagle \u7b97\u6cd5 \u8981\u6c42 \uff0c \u5f53 \u4e00\u4e2a TCP \u8fde\u63a5 \u4e2d\u6709 \u5728 \u4f20 \u6570\u636e \uff08 \u5df2\u7ecf \u53d1\u51fa \u4f46 \u8fd8 \u672a \u786e\u8ba4 \u7684 \u6570\u636e \uff09 \u65f6 \uff0c \u5c0f\u4e8e MSS \uff08 \u6700\u5927 \u5206\u6bb5 \u5927\u5c0f \uff09 \u7684 \u62a5\u6587 \u6bb5 \u5c31 \u4e0d\u80fd \u88ab \u53d1\u9001 \uff0c \u76f4\u5230 \u6240\u6709 \u7684 \u5728 \u4f20 \u6570\u636e \u90fd \u6536\u5230 \u4e86 ACK \u3002 \u540c\u65f6 \u6536\u5230 ACK \u540e \uff0c TCP \u8fd8 \u4e0d\u4f1a \u9a6c\u4e0a \u5c31 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \uff0c \u4f1a \u6536\u96c6 \u5c0f\u5305 \u5408\u5e76 \u4e00\u8d77 \u53d1\u9001 \u3002 \u7136\u800c \uff0c Nagle \u7b97\u6cd5 \u5e76 \u4e0d\u9002 \u7528\u4e8e \u6240\u6709 \u60c5\u51b5 \uff0c \u5728 \u4e00\u4e9b \u8981\u6c42 \u4f4e \u5ef6\u8fdf \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \uff08 \u4f8b\u5982 \u5373\u65f6 \u901a\u8baf \u5373\u65f6\u901a \u5373\u65f6\u901a\u8baf \u5e94\u7528 \uff09 \uff0c Nagle \u7b97\u6cd5 \u7684 \u89c4\u5b9a \u662f \u4e0d\u6613 \u88ab \u63a5\u53d7 \u7684 \uff0c \u56e0\u6b64 \u9700\u8981 \u8bbe\u7f6e TCP _ NODELAY \u6216\u8005 TCP _ CORK \u5173\u95ed Nagle \u7b97\u6cd5 \u3002 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u793a\u4f8b \u53ea \u652f\u6301 \u5728 Linux \u4e0a \u8fd0\u884c \u3002","title":"Cpp"},{"location":"cpp/#c","text":"\u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u8fd0\u884c doxygen \u5c06 \u5728 Doxygen / html \u76ee\u5f55 \u4e0b \u751f\u6210 html \u6587\u4ef6 \uff0c \u6587\u6863 \u4e3b\u9875 \u4f4d\u4e8e \u3002 \u6240\u6709 \u7c7b \u7684 \u7ee7\u627f \u5173\u7cfb \u3002","title":"C++"},{"location":"cpp/#libcarla","text":"","title":"LibCarla"},{"location":"cpp/#_1","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u4e0d \u4f7f\u7528 Nagle \u7b97\u6cd5 \uff0c \u5c06 Linux \u4e0a \u7684 \u540c\u6b65 \u6a21\u5f0f \u901f\u5ea6 \u63d0\u9ad8 \u4e86 \u7ea6 3 \u500d \u3002 _ socket . set _ option ( boost : : asio : : ip : : tcp : : no _ delay ( true ) ) ; \u7b14\u8bb0 Nagle \u7b97\u6cd5 \u662f \u4e00\u79cd \u7528\u4e8e \u63d0\u9ad8 TCP / IP \u7f51\u7edc \u6027\u80fd \u7684 \u7b97\u6cd5 \uff0c \u5b83 \u901a\u8fc7 \u51cf\u5c11 \u6570\u636e \u6570\u636e\u5305 \u7684 \u53d1\u9001 \u53d1\u9001\u91cf \u6765 \u51cf\u5c11 \u7f51\u7edc \u62e5\u5835 \u3002 Nagle \u7b97\u6cd5 \u7684 \u4e3b\u8981 \u76ee\u7684 \u662f \u5408\u5e76 \u4e00\u5b9a \u6570\u91cf \u7684 \u8f93\u51fa \u6570\u636e \u540e \u4e00\u6b21 \u4e00\u6b21\u6027 \u63d0\u4ea4 \uff0c \u4ee5 \u907f\u514d \u7f51\u7edc \u4e2d \u5145\u65a5 \u7740 \u8bb8\u591a \u5c0f \u6570\u636e \u5757 \u3002 \u5f53 TCP \u62a5\u6587 \u627f\u8f7d \u7684 \u6570\u636e \u6570\u636e\u91cf \u975e\u5e38 \u5c0f\u65f6 \uff0c \u4f8b\u5982 \u51e0\u4e2a \u5b57\u8282 \uff0c \u6574\u4e2a \u7f51\u7edc \u7684 \u6548\u7387 \u4f1a \u5f88 \u4f4e \uff0c \u56e0\u4e3a \u6bcf\u4e2a TCP \u62a5\u6587 \u4e2d \u90fd \u4f1a \u5305\u542b \u5927\u91cf \u7684 \u5934\u90e8 \u4fe1\u606f \uff0c \u800c \u6709\u6548 \u6570\u636e \u5360\u6709 \u7684 \u6bd4\u91cd \u5c31 \u4f1a \u975e\u5e38 \u975e\u5e38\u4f4e \u3002 Nagle \u7b97\u6cd5 \u8981\u6c42 \uff0c \u5f53 \u4e00\u4e2a TCP \u8fde\u63a5 \u4e2d\u6709 \u5728 \u4f20 \u6570\u636e \uff08 \u5df2\u7ecf \u53d1\u51fa \u4f46 \u8fd8 \u672a \u786e\u8ba4 \u7684 \u6570\u636e \uff09 \u65f6 \uff0c \u5c0f\u4e8e MSS \uff08 \u6700\u5927 \u5206\u6bb5 \u5927\u5c0f \uff09 \u7684 \u62a5\u6587 \u6bb5 \u5c31 \u4e0d\u80fd \u88ab \u53d1\u9001 \uff0c \u76f4\u5230 \u6240\u6709 \u7684 \u5728 \u4f20 \u6570\u636e \u90fd \u6536\u5230 \u4e86 ACK \u3002 \u540c\u65f6 \u6536\u5230 ACK \u540e \uff0c TCP \u8fd8 \u4e0d\u4f1a \u9a6c\u4e0a \u5c31 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \uff0c \u4f1a \u6536\u96c6 \u5c0f\u5305 \u5408\u5e76 \u4e00\u8d77 \u53d1\u9001 \u3002 \u7136\u800c \uff0c Nagle \u7b97\u6cd5 \u5e76 \u4e0d\u9002 \u7528\u4e8e \u6240\u6709 \u60c5\u51b5 \uff0c \u5728 \u4e00\u4e9b \u8981\u6c42 \u4f4e \u5ef6\u8fdf \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \uff08 \u4f8b\u5982 \u5373\u65f6 \u901a\u8baf \u5373\u65f6\u901a \u5373\u65f6\u901a\u8baf \u5e94\u7528 \uff09 \uff0c Nagle \u7b97\u6cd5 \u7684 \u89c4\u5b9a \u662f \u4e0d\u6613 \u88ab \u63a5\u53d7 \u7684 \uff0c \u56e0\u6b64 \u9700\u8981 \u8bbe\u7f6e TCP _ NODELAY \u6216\u8005 TCP _ CORK \u5173\u95ed Nagle \u7b97\u6cd5 \u3002 C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u793a\u4f8b \u53ea \u652f\u6301 \u5728 Linux \u4e0a \u8fd0\u884c \u3002","title":"\u5ba2\u6237\u7aef"},{"location":"cpp_client/","text":"C++ \u5ba2\u6237 \u5ba2\u6237\u7aef \u793a\u4f8b \u6b64 \u793a\u4f8b \u4f7f\u7528 CARLA \u7684 C++ API \u521b\u5efa \u4e00\u4e2a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u4ee5 \u4ece C++ \u8fde\u63a5 \u548c \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u7f16\u8bd1 \u548c \u8fd0\u884c \u4f7f\u7528 \u63d0\u4f9b \u7684 Makefile \uff08 \u4ec5\u9650 Linux \uff09 \u7f16\u8bd1 \u5e76 \u8fd0\u884c \u793a\u4f8b \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5b83 \u5e0c\u671b \u6709 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5728 2000 \u7aef\u53e3 \u8fd0\u884c \u3002 make run \u5b83 \u7684 \u5de5\u4f5c \u539f\u7406 \u4e3a\u4e86 \u5c06 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u94fe\u63a5 \u5230 LibCarla \uff0c \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u4e0e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u76f8\u540c \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u914d\u7f6e \u6765 \u7f16\u8bd1 LibCarla \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u751f\u6210 \u4e00\u4e2a CMake \u5de5\u5177 \u94fe \u6587\u4ef6 \uff0c \u6307\u5b9a \u6240 \u9700 \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u6807\u5fd7 # Example ToolChain . cmake set ( CMAKE _ C _ COMPILER / usr / bin / clang - 8 ) set ( CMAKE _ CXX _ COMPILER / usr / bin / clang ++- 8 ) set ( CMAKE _ CXX _ FLAGS \" $ { CMAKE _ CXX _ FLAGS } - std = c++ 14 - O3 - DNDEBUG \" CACHE STRING \" \" FORCE ) We pass this file to CMake when compiling LibCarla . client cd / path / to / carla - root - folder make setup cd / path / to / build - folder cmake \\ - G \" Ninja \" \\ - DCMAKE _ BUILD _ TYPE = Client \\ - DLIBCARLA _ BUILD _ RELEASE = ON \\ - DLIBCARLA _ BUILD _ DEBUG = OFF \\ - DLIBCARLA _ BUILD _ TEST = OFF \\ - DCMAKE _ TOOLCHAIN _ FILE = / path / to / ToolChain . cmake \\ - DCMAKE _ INSTALL _ PREFIX = / path / to / install - folder \\ / path / to / carla - root - folder ninja ninja install This will generate the following structure at the provided install path libcarla - install \u251c \u2500 \u2500 include \u2502 \u251c \u2500 \u2500 carla \u2502 \u251c \u2500 \u2500 cephes \u2502 \u251c \u2500 \u2500 pugixml | \u251c \u2500 \u2500 ... \u2502 \u2514 \u2500 \u2500 system \u2502 \u251c \u2500 \u2500 boost \u2502 \u251c \u2500 \u2500 recast \u2502 \u2514 \u2500 \u2500 rpc \u2514 \u2500 \u2500 lib \u251c \u2500 \u2500 libcarla _ client . a \u251c \u2500 \u2500 librpc . a \u251c \u2500 \u2500 libboost _ filesystem . a \u2514 \u2500 \u2500 ... Our application needs to be linked at minimum against libcarla _ client . a , librpc . a , libRecast . a , and libDetour * . a . If we make use of IO functionality and / or image processing we would need to link against boost _ filesystem , png , tiff , and / or jpeg . For more details take a look at the Makefile provided .","title":"C++ \u5ba2\u6237\u7aef \u793a\u4f8b"},{"location":"cpp_client/#c","text":"\u6b64 \u793a\u4f8b \u4f7f\u7528 CARLA \u7684 C++ API \u521b\u5efa \u4e00\u4e2a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u4ee5 \u4ece C++ \u8fde\u63a5 \u548c \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002","title":"C++ \u5ba2\u6237\u7aef \u793a\u4f8b"},{"location":"cpp_client/#_1","text":"\u4f7f\u7528 \u63d0\u4f9b \u7684 Makefile \uff08 \u4ec5\u9650 Linux \uff09 \u7f16\u8bd1 \u5e76 \u8fd0\u884c \u793a\u4f8b \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5b83 \u5e0c\u671b \u6709 \u4e00\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5728 2000 \u7aef\u53e3 \u8fd0\u884c \u3002 make run","title":"\u7f16\u8bd1 \u548c \u8fd0\u884c"},{"location":"cpp_client/#_2","text":"\u4e3a\u4e86 \u5c06 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u94fe\u63a5 \u5230 LibCarla \uff0c \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u4e0e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u76f8\u540c \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u914d\u7f6e \u6765 \u7f16\u8bd1 LibCarla \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u751f\u6210 \u4e00\u4e2a CMake \u5de5\u5177 \u94fe \u6587\u4ef6 \uff0c \u6307\u5b9a \u6240 \u9700 \u7684 \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u548c \u6807\u5fd7 # Example ToolChain . cmake set ( CMAKE _ C _ COMPILER / usr / bin / clang - 8 ) set ( CMAKE _ CXX _ COMPILER / usr / bin / clang ++- 8 ) set ( CMAKE _ CXX _ FLAGS \" $ { CMAKE _ CXX _ FLAGS } - std = c++ 14 - O3 - DNDEBUG \" CACHE STRING \" \" FORCE ) We pass this file to CMake when compiling LibCarla . client cd / path / to / carla - root - folder make setup cd / path / to / build - folder cmake \\ - G \" Ninja \" \\ - DCMAKE _ BUILD _ TYPE = Client \\ - DLIBCARLA _ BUILD _ RELEASE = ON \\ - DLIBCARLA _ BUILD _ DEBUG = OFF \\ - DLIBCARLA _ BUILD _ TEST = OFF \\ - DCMAKE _ TOOLCHAIN _ FILE = / path / to / ToolChain . cmake \\ - DCMAKE _ INSTALL _ PREFIX = / path / to / install - folder \\ / path / to / carla - root - folder ninja ninja install This will generate the following structure at the provided install path libcarla - install \u251c \u2500 \u2500 include \u2502 \u251c \u2500 \u2500 carla \u2502 \u251c \u2500 \u2500 cephes \u2502 \u251c \u2500 \u2500 pugixml | \u251c \u2500 \u2500 ... \u2502 \u2514 \u2500 \u2500 system \u2502 \u251c \u2500 \u2500 boost \u2502 \u251c \u2500 \u2500 recast \u2502 \u2514 \u2500 \u2500 rpc \u2514 \u2500 \u2500 lib \u251c \u2500 \u2500 libcarla _ client . a \u251c \u2500 \u2500 librpc . a \u251c \u2500 \u2500 libboost _ filesystem . a \u2514 \u2500 \u2500 ... Our application needs to be linked at minimum against libcarla _ client . a , librpc . a , libRecast . a , and libDetour * . a . If we make use of IO functionality and / or image processing we would need to link against boost _ filesystem , png , tiff , and / or jpeg . For more details take a look at the Makefile provided .","title":"\u5b83 \u7684 \u5de5\u4f5c \u539f\u7406"},{"location":"custom_assets_tutorials/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8d44\u4ea7 Carla \u62e5\u6709 \u5927\u91cf \u5f00\u7bb1 \u5373\u7528 \u7684 \u8d44\u4ea7 \uff0c \u5305\u62ec \u5b8c\u6574 \u7684 \u57ce\u9547 \u548c \u57ce\u5e02 \u4ee5\u53ca \u9053\u8def \u7f51\u7edc \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u4ee5 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u3002 \u7136\u800c \uff0c \u5bf9\u4e8e \u8bb8\u591a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u60a8 \u53ef\u80fd \u60f3\u8981 \u6dfb\u52a0 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \uff0c \u800c Carla \u5b8c\u5168 \u6709 \u80fd\u529b \u52a0\u8f7d \u5b8c\u5168 \u7531 \u7528\u6237 \u521b\u5efa \u7684 \u65b0 \u8d44\u4ea7 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \u5e76 \u5c06 \u5176 \u6dfb\u52a0 \u5230 Carla \u7684 \u591a\u79cd \u6280\u672f \u3002 \u6dfb\u52a0 \u9053\u5177 \u6dfb\u52a0 \u8f66\u8f86 \u6253\u5305 \u8d44\u4ea7 \u5b9a\u5236 \u6750\u6599 \u6dfb\u52a0 \u9053\u5177 \u9053\u5177 \u662f \u573a\u666f \u4e2d\u9664 \u9053\u8def \u548c \u8f66\u8f86 \u4e4b\u5916 \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5305\u542b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u5177 \u3002 \u6dfb\u52a0 \u8f66\u8f86 \u8f66\u8f86 \u662f Carla \u7684 \u652f\u67f1 \u3002 \u5b83\u4eec \u7528\u4e8e \u4eff\u771f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \uff0c \u5e76 \u5145\u5f53 \u81ea\u52a8 \u667a\u80fd \u4f53 \u63a7\u5236 \u7684 \u8f66\u8f86 \u7684 \u865a\u62df \u4eff\u771f \u3002 Carla \u62e5\u6709 \u4e00\u4e2a \u5e9e\u5927 \u4e14 \u4e0d\u65ad \u589e\u957f \u7684 \u5f00\u7bb1 \u5373\u7528 \u8f66\u8f86 \u5e93 \uff0c \u4f46 \u5bf9\u4e8e \u7279\u6b8a \u5e94\u7528 \uff0c Carla \u80fd\u591f \u88c5\u8f7d \u5b9a\u5236 \u8bbe\u8ba1 \u7684 \u8f66\u8f86 \u3002 \u672c \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u3002 \u6253\u5305 \u8d44\u4ea7 \u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u6253\u5305 \u8d44\u6e90 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u5b9a\u5236 \u6750\u6599 Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u5b9e\u73b0 \u8fd9\u4e00 \u76ee\u6807 \u3002","title":"\u81ea\u5b9a\u4e49 \u8d44\u4ea7"},{"location":"custom_assets_tutorials/#_1","text":"Carla \u62e5\u6709 \u5927\u91cf \u5f00\u7bb1 \u5373\u7528 \u7684 \u8d44\u4ea7 \uff0c \u5305\u62ec \u5b8c\u6574 \u7684 \u57ce\u9547 \u548c \u57ce\u5e02 \u4ee5\u53ca \u9053\u8def \u7f51\u7edc \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \uff0c \u4ee5 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u3002 \u7136\u800c \uff0c \u5bf9\u4e8e \u8bb8\u591a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u60a8 \u53ef\u80fd \u60f3\u8981 \u6dfb\u52a0 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \uff0c \u800c Carla \u5b8c\u5168 \u6709 \u80fd\u529b \u52a0\u8f7d \u5b8c\u5168 \u7531 \u7528\u6237 \u521b\u5efa \u7684 \u65b0 \u8d44\u4ea7 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u4ee5\u4e0b \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8d44\u4ea7 \u5e76 \u5c06 \u5176 \u6dfb\u52a0 \u5230 Carla \u7684 \u591a\u79cd \u6280\u672f \u3002 \u6dfb\u52a0 \u9053\u5177 \u6dfb\u52a0 \u8f66\u8f86 \u6253\u5305 \u8d44\u4ea7 \u5b9a\u5236 \u6750\u6599","title":"\u81ea\u5b9a\u4e49 \u8d44\u4ea7"},{"location":"custom_assets_tutorials/#_2","text":"\u9053\u5177 \u662f \u573a\u666f \u4e2d\u9664 \u9053\u8def \u548c \u8f66\u8f86 \u4e4b\u5916 \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5305\u542b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u5177 \u3002","title":"\u6dfb\u52a0 \u9053\u5177"},{"location":"custom_assets_tutorials/#_3","text":"\u8f66\u8f86 \u662f Carla \u7684 \u652f\u67f1 \u3002 \u5b83\u4eec \u7528\u4e8e \u4eff\u771f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \uff0c \u5e76 \u5145\u5f53 \u81ea\u52a8 \u667a\u80fd \u4f53 \u63a7\u5236 \u7684 \u8f66\u8f86 \u7684 \u865a\u62df \u4eff\u771f \u3002 Carla \u62e5\u6709 \u4e00\u4e2a \u5e9e\u5927 \u4e14 \u4e0d\u65ad \u589e\u957f \u7684 \u5f00\u7bb1 \u5373\u7528 \u8f66\u8f86 \u5e93 \uff0c \u4f46 \u5bf9\u4e8e \u7279\u6b8a \u5e94\u7528 \uff0c Carla \u80fd\u591f \u88c5\u8f7d \u5b9a\u5236 \u8bbe\u8ba1 \u7684 \u8f66\u8f86 \u3002 \u672c \u6587\u6863 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u521b\u5efa \u548c \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u3002","title":"\u6dfb\u52a0 \u8f66\u8f86"},{"location":"custom_assets_tutorials/#_4","text":"\u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u6253\u5305 \u8d44\u6e90 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002","title":"\u6253\u5305 \u8d44\u4ea7"},{"location":"custom_assets_tutorials/#_5","text":"Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u672c \u6587\u6863 \u6f14\u793a \u4e86 \u5982\u4f55 \u5b9e\u73b0 \u8fd9\u4e00 \u76ee\u6807 \u3002","title":"\u5b9a\u5236 \u6750\u6599"},{"location":"custom_plate/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 Carla \u4e2d \u8f66\u8f86 \u7684 \u8f66\u724c \u5728 Carla \u6a21\u62df \u73af\u5883 \u4e2d \uff0c \u9ed8\u8ba4 \u7684 \u8f66\u8f86 \u8f66\u724c \u662f \u9884\u8bbe \u7684 \u9759\u6001 \u8d44\u4ea7 \u3002 \u5982\u679c \u9700\u8981 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u8f66\u724c \u4ee5 \u6ee1\u8db3 \u7279\u5b9a \u7684 \u6d4b\u8bd5 \u9700\u6c42 \u6216 \u589e\u5f3a \u573a\u666f \u7684 \u771f\u5b9e \u771f\u5b9e\u6027 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u4e13\u4e1a \u65b9\u6cd5 \u6765 \u66ff\u6362 Carla \u4e2d \u8f66\u8f86 \u7684 \u8f66\u724c \uff1a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u8f66\u724c \u7684 \u6b65\u9aa4 1 . \u8d44\u4ea7 \u51c6\u5907 \u9996\u5148 \uff0c \u8bbe\u8ba1 \u6216 \u83b7\u53d6 \u4f60 \u60f3\u8981 \u5e94\u7528 \u7684 \u8f66\u724c \u56fe\u50cf \u3002 \u786e\u4fdd \u56fe\u50cf \u7b26\u5408 \u5b9e\u9645 \u7b26\u5408\u5b9e\u9645 \u8f66\u724c \u7684 \u5c3a\u5bf8 \u548c \u8bbe\u8ba1 \u89c4\u8303 \u8bbe\u8ba1\u89c4\u8303 \u3002 \u8f66\u724c \u56fe\u50cf \u5e94 \u4fdd\u5b58 \u4e3a \u9ad8\u5206 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u9ad8\u5206\u8fa8\u7387 \u7684 . PNG \u6216 . JPG \u6587\u4ef6 \uff0c \u4ee5 \u4fdd\u6301 \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \u7684 \u6e05\u6670 \u6e05\u6670\u5ea6 \u3002 \u5c06 \u8bbe\u8ba1 \u597d \u7684 \u56fe\u7247 \u5bfc\u5165 Carla \u4e2d \u5bf9\u5e94 \u7684 \u76ee\u5f55 \u4e0b \uff0c \u5e76 \u8f6c\u6362 \u4e3a \u6750\u8d28 \u3002 \u5982\u4e0b \u56fe \u6240\u793a \uff1a \u5c06 \u56fe\u7247 \u76f4\u63a5 \u62d6\u81f3 / Game / Carla / Static / GenericMaterials / Licenseplates , \u53f3\u952e \u9009\u62e9 \u521b\u5efa \u6750\u8d28 2 . \u6750\u8d28 \u66ff\u6362 \u5bfc \u80ae\u81f3 Carla / Blueprints / Vehicles \u4e0b \u7684 \u76ee\u6807 \u8f66\u8f86 \uff0c \u53f3\u952e \u9009\u62e9 \u7f16\u8f91 \u3002 \u5982\u4e0b \u56fe \u6240\u793a \uff1a \u8fdb\u5165 \u8f66\u8f86 \u8d44\u4ea7 \u7f16\u8f91 \u754c\u9762 \u540e \uff0c \u53cc\u51fb \u7f51\u683c \u4f53 \uff08 VehicleMesh \uff09 \u7ee7\u627f \uff0c \u4f1a \u51fa\u73b0 \u8f66\u8f86 \u4ee5\u53ca \u8f66\u8f86 \u6240 \u5f15\u7528 \u7684 \u8d44\u4ea7 \u3002 \u5c06 \u8f66\u8f86 \u653e\u5927 \uff0c \u4ee5\u4fbf \u67e5\u770b \u662f\u5426 \u4fee\u6539 \u6210\u529f \u3002 \u627e\u5230 \u8f66\u8f86 \u8f66\u724c \u4f4d\u7f6e \uff0c \u5c06\u6750 \u8def\u5f84 \u66ff\u6362 \u4e3a \u5148\u524d \u6240 \u51c6\u5907 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \u3002 \u8fd9\u6837 \uff0c \u6211\u4eec \u7684 \u8f66\u724c \u5df2\u7ecf \u66ff\u6362 \u6210\u529f \uff01 \u56de\u5230 \u4e3b \u754c\u9762 \uff0c \u70b9\u51fb \u7f16\u8bd1 \u8fd0\u884c \uff0c \u5219 \u51fa\u73b0 \u6211\u4eec \u60f3\u8981 \u7684 \u6548\u679c \uff01 3 . \u6d4b\u8bd5 \u8f66\u724c \u66ff\u6362 \u6210\u529f \u540e \uff0c \u5c06 \u573a\u666f \u5bfc\u51fa \uff0c \u6253\u5305 \u6210 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u8fd0\u884c python \u811a\u672c \u5728 \u573a\u666f \u4e2d \u6dfb\u52a0 \u5df2\u7ecf \u88ab \u66ff\u6362 \u8fc7 \u8f66\u724c \u7684 \u8f66\u8f86 \uff0c \u8c03\u6574 \u89c6\u89d2 \uff0c \u89c2\u5bdf \u8f66\u724c \u3002 \u6700\u540e \u663e\u793a \u7ed3\u679c \u5982\u4e0b \u56fe \u6240\u793a \uff1a","title":"\u81ea\u5b9a\u4e49 Carla \u4e2d \u8f66\u8f86 \u7684 \u8f66\u724c"},{"location":"custom_plate/#carla","text":"\u5728 Carla \u6a21\u62df \u73af\u5883 \u4e2d \uff0c \u9ed8\u8ba4 \u7684 \u8f66\u8f86 \u8f66\u724c \u662f \u9884\u8bbe \u7684 \u9759\u6001 \u8d44\u4ea7 \u3002 \u5982\u679c \u9700\u8981 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u8f66\u724c \u4ee5 \u6ee1\u8db3 \u7279\u5b9a \u7684 \u6d4b\u8bd5 \u9700\u6c42 \u6216 \u589e\u5f3a \u573a\u666f \u7684 \u771f\u5b9e \u771f\u5b9e\u6027 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u4e13\u4e1a \u65b9\u6cd5 \u6765 \u66ff\u6362 Carla \u4e2d \u8f66\u8f86 \u7684 \u8f66\u724c \uff1a","title":"\u81ea\u5b9a\u4e49 Carla \u4e2d \u8f66\u8f86 \u7684 \u8f66\u724c"},{"location":"custom_plate/#_1","text":"1 . \u8d44\u4ea7 \u51c6\u5907 \u9996\u5148 \uff0c \u8bbe\u8ba1 \u6216 \u83b7\u53d6 \u4f60 \u60f3\u8981 \u5e94\u7528 \u7684 \u8f66\u724c \u56fe\u50cf \u3002 \u786e\u4fdd \u56fe\u50cf \u7b26\u5408 \u5b9e\u9645 \u7b26\u5408\u5b9e\u9645 \u8f66\u724c \u7684 \u5c3a\u5bf8 \u548c \u8bbe\u8ba1 \u89c4\u8303 \u8bbe\u8ba1\u89c4\u8303 \u3002 \u8f66\u724c \u56fe\u50cf \u5e94 \u4fdd\u5b58 \u4e3a \u9ad8\u5206 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u9ad8\u5206\u8fa8\u7387 \u7684 . PNG \u6216 . JPG \u6587\u4ef6 \uff0c \u4ee5 \u4fdd\u6301 \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \u7684 \u6e05\u6670 \u6e05\u6670\u5ea6 \u3002 \u5c06 \u8bbe\u8ba1 \u597d \u7684 \u56fe\u7247 \u5bfc\u5165 Carla \u4e2d \u5bf9\u5e94 \u7684 \u76ee\u5f55 \u4e0b \uff0c \u5e76 \u8f6c\u6362 \u4e3a \u6750\u8d28 \u3002 \u5982\u4e0b \u56fe \u6240\u793a \uff1a \u5c06 \u56fe\u7247 \u76f4\u63a5 \u62d6\u81f3 / Game / Carla / Static / GenericMaterials / Licenseplates , \u53f3\u952e \u9009\u62e9 \u521b\u5efa \u6750\u8d28 2 . \u6750\u8d28 \u66ff\u6362 \u5bfc \u80ae\u81f3 Carla / Blueprints / Vehicles \u4e0b \u7684 \u76ee\u6807 \u8f66\u8f86 \uff0c \u53f3\u952e \u9009\u62e9 \u7f16\u8f91 \u3002 \u5982\u4e0b \u56fe \u6240\u793a \uff1a \u8fdb\u5165 \u8f66\u8f86 \u8d44\u4ea7 \u7f16\u8f91 \u754c\u9762 \u540e \uff0c \u53cc\u51fb \u7f51\u683c \u4f53 \uff08 VehicleMesh \uff09 \u7ee7\u627f \uff0c \u4f1a \u51fa\u73b0 \u8f66\u8f86 \u4ee5\u53ca \u8f66\u8f86 \u6240 \u5f15\u7528 \u7684 \u8d44\u4ea7 \u3002 \u5c06 \u8f66\u8f86 \u653e\u5927 \uff0c \u4ee5\u4fbf \u67e5\u770b \u662f\u5426 \u4fee\u6539 \u6210\u529f \u3002 \u627e\u5230 \u8f66\u8f86 \u8f66\u724c \u4f4d\u7f6e \uff0c \u5c06\u6750 \u8def\u5f84 \u66ff\u6362 \u4e3a \u5148\u524d \u6240 \u51c6\u5907 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \u3002 \u8fd9\u6837 \uff0c \u6211\u4eec \u7684 \u8f66\u724c \u5df2\u7ecf \u66ff\u6362 \u6210\u529f \uff01 \u56de\u5230 \u4e3b \u754c\u9762 \uff0c \u70b9\u51fb \u7f16\u8bd1 \u8fd0\u884c \uff0c \u5219 \u51fa\u73b0 \u6211\u4eec \u60f3\u8981 \u7684 \u6548\u679c \uff01 3 . \u6d4b\u8bd5 \u8f66\u724c \u66ff\u6362 \u6210\u529f \u540e \uff0c \u5c06 \u573a\u666f \u5bfc\u51fa \uff0c \u6253\u5305 \u6210 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 \u8fd0\u884c python \u811a\u672c \u5728 \u573a\u666f \u4e2d \u6dfb\u52a0 \u5df2\u7ecf \u88ab \u66ff\u6362 \u8fc7 \u8f66\u724c \u7684 \u8f66\u8f86 \uff0c \u8c03\u6574 \u89c6\u89d2 \uff0c \u89c2\u5bdf \u8f66\u724c \u3002 \u6700\u540e \u663e\u793a \u7ed3\u679c \u5982\u4e0b \u56fe \u6240\u793a \uff1a","title":"\u81ea\u5b9a\u4e49 \u8f66\u8f86 \u8f66\u724c \u7684 \u6b65\u9aa4"},{"location":"development_tutorials/","text":"\u5f00\u53d1 Carla \u662f \u5f00\u6e90 \u7684 \uff0c \u5e76\u4e14 \u5177\u6709 \u9ad8\u5ea6 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u529f\u80fd \u6216 \u5185\u5bb9 \u4ee5 \u6ee1\u8db3 \u4e13\u95e8 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6216 \u7279\u5b9a \u9700\u6c42 \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u4f7f\u7528 Carla \u4ee3\u7801 \u5e93 \u5b9e\u73b0 \u7279\u5b9a \u7684 \u5f00\u53d1 \u76ee\u6807 \uff1a \u8fdb\u884c \u53d1\u5e03 \u5347\u7ea7 \u5185\u5bb9 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u78b0\u649e \u8fb9\u754c \u8fdb\u884c \u53d1\u5e03 \u5982\u679c \u60a8 \u60f3 \u5f00\u53d1 \u81ea\u5df1 \u7684 Carla \u5206\u652f \u5e76 \u53d1\u5e03 \u4ee3\u7801 \u7248\u672c \uff0c \u8bf7 \u9075\u5faa \u672c \u6307\u5357 \u3002 \u5347\u7ea7 \u5185\u5bb9 \u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u5b58\u50a8 \u5e93\u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u5b58\u50a8 \u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u8bf7 \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u5347\u7ea7 \u5185\u5bb9 \u3002 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e Carla \u6709 \u4e00\u7ec4 \u5df2 \u5b9a\u4e49 \u7684 \u8bed\u4e49 \u6807\u7b7e \uff0c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7528\u4f8b \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u9700\u8981 \u5176\u4ed6 \u8bfe\u7a0b \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u672c \u6307\u5357 \u4e2d \u7684 \u8be6\u7ec6 \u8bf4\u660e \u6dfb\u52a0 \u5b83\u4eec \u3002 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u60a8 \u53ef\u4ee5 \u4fee\u6539 Carla \u7684 C++ \u4ee3\u7801 \u6765 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7528\u4f8b \u521b\u5efa \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 Carla \u6709 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u53ef \u5e2e\u52a9 \u7cfb\u7edf \u5bf9\u7cfb\u7edf \u6027\u80fd \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u5728 \u8fd9\u91cc \u627e\u5230 \u5b8c\u6574 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u6709\u5173 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u3002 \u751f\u6210 \u78b0\u649e \u8fb9\u754c \u6709\u5173 \u4e3a \u8f66\u8f86 \u751f\u6210 \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6307\u5357 \u3002","title":"\u5f00\u53d1"},{"location":"development_tutorials/#_1","text":"Carla \u662f \u5f00\u6e90 \u7684 \uff0c \u5e76\u4e14 \u5177\u6709 \u9ad8\u5ea6 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8fd9 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u529f\u80fd \u6216 \u5185\u5bb9 \u4ee5 \u6ee1\u8db3 \u4e13\u95e8 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6216 \u7279\u5b9a \u9700\u6c42 \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u4f7f\u7528 Carla \u4ee3\u7801 \u5e93 \u5b9e\u73b0 \u7279\u5b9a \u7684 \u5f00\u53d1 \u76ee\u6807 \uff1a \u8fdb\u884c \u53d1\u5e03 \u5347\u7ea7 \u5185\u5bb9 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u78b0\u649e \u8fb9\u754c","title":"\u5f00\u53d1"},{"location":"development_tutorials/#_2","text":"\u5982\u679c \u60a8 \u60f3 \u5f00\u53d1 \u81ea\u5df1 \u7684 Carla \u5206\u652f \u5e76 \u53d1\u5e03 \u4ee3\u7801 \u7248\u672c \uff0c \u8bf7 \u9075\u5faa \u672c \u6307\u5357 \u3002","title":"\u8fdb\u884c \u53d1\u5e03"},{"location":"development_tutorials/#_3","text":"\u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u5b58\u50a8 \u5e93\u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u5b58\u50a8 \u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u8bf7 \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u5347\u7ea7 \u5185\u5bb9 \u3002","title":"\u5347\u7ea7 \u5185\u5bb9"},{"location":"development_tutorials/#_4","text":"Carla \u6709 \u4e00\u7ec4 \u5df2 \u5b9a\u4e49 \u7684 \u8bed\u4e49 \u6807\u7b7e \uff0c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7528\u4f8b \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u9700\u8981 \u5176\u4ed6 \u8bfe\u7a0b \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u672c \u6307\u5357 \u4e2d \u7684 \u8be6\u7ec6 \u8bf4\u660e \u6dfb\u52a0 \u5b83\u4eec \u3002","title":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e"},{"location":"development_tutorials/#_5","text":"\u60a8 \u53ef\u4ee5 \u4fee\u6539 Carla \u7684 C++ \u4ee3\u7801 \u6765 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7528\u4f8b \u521b\u5efa \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u521b\u5efa \u65b0 \u4f20\u611f\u5668"},{"location":"development_tutorials/#_6","text":"Carla \u6709 \u4e00\u4e2a \u57fa\u51c6 \u6d4b\u8bd5 \u811a\u672c \uff0c \u53ef \u5e2e\u52a9 \u7cfb\u7edf \u5bf9\u7cfb\u7edf \u6027\u80fd \u8fdb\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u5728 \u8fd9\u91cc \u627e\u5230 \u5b8c\u6574 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u6027\u80fd \u57fa\u51c6 \u6d4b\u8bd5"},{"location":"development_tutorials/#_7","text":"\u6709\u5173 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u3002","title":"\u8bb0\u5f55\u5668 \u6587\u4ef6\u683c\u5f0f"},{"location":"development_tutorials/#_8","text":"\u6709\u5173 \u4e3a \u8f66\u8f86 \u751f\u6210 \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6307\u5357 \u3002","title":"\u751f\u6210 \u78b0\u649e \u8fb9\u754c"},{"location":"download/","text":"\u4e0b\u8f7d \u6700\u65b0 \u53d1\u5e03 Carla 0.9 . 15 - \u6587\u6863 \u6bcf\u665a \u6784\u5efa \u8fd9\u662f \u4e00\u4e2a \u81ea\u52a8 \u6784\u5efa \uff0c \u6700\u65b0 \u7684 \u66f4\u6539 \u5df2 \u63a8\u9001 \u5230 \u6211\u4eec \u7684 dev \u5206\u652f \u3002 \u5b83 \u5305\u542b \u5c06 \u6210\u4e3a \u4e0b \u4e00\u4e2a \u7248\u672c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \uff0c \u4f46 \u4e5f \u5305\u542b \u4e00\u4e9b \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u66f4\u6539 \u3002 \u4f7f\u7528 \u98ce\u9669 \u81ea\u8d1f \uff01 Carla \u6bcf\u665a \u6784\u5efa ( Linux ) \u9644\u52a0 \u5730\u56fe \u591c\u95f4 \u6784\u5efa ( Linux ) Carla \u6bcf\u665a \u6784\u5efa \uff08 Windows \uff09 \u9644\u52a0 \u5730\u56fe \u6bcf\u665a \u6784\u5efa ( Windows ) \u7248\u672c 0.9 . x \u4ee5\u4e0b \u662f Carla \u7684 \u5148\u524d \u7248\u672c \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u7248\u672c \u7684 \u7279\u5b9a \u6587\u6863 \u7684 \u94fe\u63a5 \uff1a Carla 0.9 . 14 - \u6587\u6863 Carla 0.9 . 13 - \u6587\u6863 Carla 0.9 . 12 - \u6587\u6863 Carla 0.9 . 11 - \u6587\u6863 Carla 0.9 . 10 - \u6587\u6863 Carla 0.9 . 9 - \u6587\u6863 Carla 0.9 . 8 - \u6587\u6863 Carla 0.9 . 7 - \u6587\u6863 Carla 0.9 . 6 - \u6587\u6863 Carla 0.9 . 5 - \u6587\u6863 Carla 0.9 . 4 - \u6587\u6863 Carla 0.9 . 3 - \u6587\u6863 Carla 0.9 . 2 - \u6587\u6863 Carla 0.9 . 1 - \u6587\u6863 Carla 0.9 . 0 - \u6587\u6863 Versions 0.8 . x Carla 0.8 . 4 - \u6587\u6863 Carla 0.8 . 3 Carla 0.8 . 2 - \u6587\u6863 Docker \u6240\u6709 \u7248\u672c \u90fd \u53ef\u4ee5 \u4ece DockerHub \u4e2d \u83b7\u53d6 \uff1a docker pull carlasim / carla : X . X . X \u4f7f\u7528 \u6807\u7b7e \u201c latest \u201d \u8868\u793a \u6700\u65b0 \u7248\u672c \uff1a docker pull carlasim / carla : latest","title":"\u4e0b\u8f7d"},{"location":"download/#_1","text":"","title":"\u4e0b\u8f7d"},{"location":"download/#_2","text":"Carla 0.9 . 15 - \u6587\u6863","title":"\u6700\u65b0 \u53d1\u5e03"},{"location":"download/#_3","text":"\u8fd9\u662f \u4e00\u4e2a \u81ea\u52a8 \u6784\u5efa \uff0c \u6700\u65b0 \u7684 \u66f4\u6539 \u5df2 \u63a8\u9001 \u5230 \u6211\u4eec \u7684 dev \u5206\u652f \u3002 \u5b83 \u5305\u542b \u5c06 \u6210\u4e3a \u4e0b \u4e00\u4e2a \u7248\u672c \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u7684 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \uff0c \u4f46 \u4e5f \u5305\u542b \u4e00\u4e9b \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u66f4\u6539 \u3002 \u4f7f\u7528 \u98ce\u9669 \u81ea\u8d1f \uff01 Carla \u6bcf\u665a \u6784\u5efa ( Linux ) \u9644\u52a0 \u5730\u56fe \u591c\u95f4 \u6784\u5efa ( Linux ) Carla \u6bcf\u665a \u6784\u5efa \uff08 Windows \uff09 \u9644\u52a0 \u5730\u56fe \u6bcf\u665a \u6784\u5efa ( Windows )","title":"\u6bcf\u665a \u6784\u5efa"},{"location":"download/#09x","text":"\u4ee5\u4e0b \u662f Carla \u7684 \u5148\u524d \u7248\u672c \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u7248\u672c \u7684 \u7279\u5b9a \u6587\u6863 \u7684 \u94fe\u63a5 \uff1a Carla 0.9 . 14 - \u6587\u6863 Carla 0.9 . 13 - \u6587\u6863 Carla 0.9 . 12 - \u6587\u6863 Carla 0.9 . 11 - \u6587\u6863 Carla 0.9 . 10 - \u6587\u6863 Carla 0.9 . 9 - \u6587\u6863 Carla 0.9 . 8 - \u6587\u6863 Carla 0.9 . 7 - \u6587\u6863 Carla 0.9 . 6 - \u6587\u6863 Carla 0.9 . 5 - \u6587\u6863 Carla 0.9 . 4 - \u6587\u6863 Carla 0.9 . 3 - \u6587\u6863 Carla 0.9 . 2 - \u6587\u6863 Carla 0.9 . 1 - \u6587\u6863 Carla 0.9 . 0 - \u6587\u6863","title":"\u7248\u672c 0.9 . x"},{"location":"download/#versions-08x","text":"Carla 0.8 . 4 - \u6587\u6863 Carla 0.8 . 3 Carla 0.8 . 2 - \u6587\u6863","title":"Versions 0.8 . x"},{"location":"download/#docker","text":"\u6240\u6709 \u7248\u672c \u90fd \u53ef\u4ee5 \u4ece DockerHub \u4e2d \u83b7\u53d6 \uff1a docker pull carlasim / carla : X . X . X \u4f7f\u7528 \u6807\u7b7e \u201c latest \u201d \u8868\u793a \u6700\u65b0 \u7248\u672c \uff1a docker pull carlasim / carla : latest","title":"Docker"},{"location":"ecosys_ansys/","text":"Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \uff1a \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \u5728 2021 \u5e74 4 \u6708 \u7684 \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7cfb\u5217 \u4e2d \uff0c Ansys \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Ansys \u5b9e\u65f6 \u96f7\u8fbe ( Real Time Radar , RTR ) \u4e0e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u96c6\u6210 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u4e0b\u8f7d \u5e76 \u67e5\u770b \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u9644\u5e26 \u7684 \u6f14\u793a \u5e7b\u706f \u5e7b\u706f\u7247 \u548c \u89c6\u9891 \u3002 \u8be5 \u6f14\u793a \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5b9e\u65f6 \u96f7\u8fbe \u5982\u4f55 \u4e0e Carla \u96c6\u6210 \uff0c \u4ee5 \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u5e76 \u5305\u62ec \u6240 \u4f7f\u7528 \u7684 \u6a21\u578b \u3001 \u52a8\u4f5c \u7a7a\u95f4 \u548c \u5956\u52b1 \u7b56\u7565 \u3002 \u89c6\u9891 \u663e\u793a \u4e86 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u8bad\u7ec3 \u7ed3\u679c \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6f14\u793a \u6587\u7a3f \u5e76 \u5728 \u6b64\u5904 \u67e5\u770b \u89c6\u9891 \u3002","title":"Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b"},{"location":"ecosys_ansys/#ansys","text":"\u5728 2021 \u5e74 4 \u6708 \u7684 \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u7cfb\u5217 \u4e2d \uff0c Ansys \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 Ansys \u5b9e\u65f6 \u96f7\u8fbe ( Real Time Radar , RTR ) \u4e0e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u96c6\u6210 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u4e0b\u8f7d \u5e76 \u67e5\u770b \u7f51\u7edc \u7814\u8ba8 \u7814\u8ba8\u4f1a \u9644\u5e26 \u7684 \u6f14\u793a \u5e7b\u706f \u5e7b\u706f\u7247 \u548c \u89c6\u9891 \u3002 \u8be5 \u6f14\u793a \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5b9e\u65f6 \u96f7\u8fbe \u5982\u4f55 \u4e0e Carla \u96c6\u6210 \uff0c \u4ee5 \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u5e76 \u5305\u62ec \u6240 \u4f7f\u7528 \u7684 \u6a21\u578b \u3001 \u52a8\u4f5c \u7a7a\u95f4 \u548c \u5956\u52b1 \u7b56\u7565 \u3002 \u89c6\u9891 \u663e\u793a \u4e86 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u8bad\u7ec3 \u7ed3\u679c \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6f14\u793a \u6587\u7a3f \u5e76 \u5728 \u6b64\u5904 \u67e5\u770b \u89c6\u9891 \u3002","title":"Ansys \u5b9e\u65f6 \u96f7\u8fbe \u6a21\u578b \uff1a \u4f7f\u7528 \u5f3a\u5316 \u5b66\u4e60 \u8bad\u7ec3 \u8f66\u8f86 \u7eb5\u5411 \u63a7\u5236\u5668"},{"location":"ecosys_femfx/","text":"\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6 FEMFX \u662f \u4e00\u4e2a \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \uff0c \u4f7f\u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 ( Finite Element Method , FEM ) \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u6211\u4eec \u6253\u7b97 \u8ba9 \u8fd9\u4e9b \u529f\u80fd \u8865\u5145 \u800c \u4e0d\u662f \u53d6\u4ee3 \u4f20\u7edf \u7684 \u521a\u4f53 \u7269\u7406 \u3002 \u8be5 \u7cfb\u7edf \u7684 \u8bbe\u8ba1 \u8003\u8651 \u4e86 \u4ee5\u4e0b \u56e0\u7d20 \uff1a \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \uff1a \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u903c\u771f \u7684 \u6728\u6750 \u3001 \u91d1\u5c5e \u3001 \u5851\u6599 \uff0c \u751a\u81f3 \u73bb\u7483 \uff0c \u56e0\u4e3a \u5b83\u4eec \u50cf \u771f\u5b9e \u6750\u6599 \u4e00\u6837 \u6839\u636e \u538b\u529b \u5f2f\u66f2 \u548c \u65ad\u88c2 \u3002 \u53d8\u5f62 \u6548\u679c \uff1a \u975e \u521a\u6027 \u7528\u4f8b \uff0c \u4f8b\u5982 \u8f6f\u4f53 \u7269\u4f53 \u3001 \u5f2f\u66f2 \u6216 \u626d\u66f2 \u7684 \u7269\u4f53 \u3002 \u8fd9 \u4e0d\u4ec5 \u4ec5\u4ec5 \u4e0d\u4ec5\u4ec5 \u662f \u4e00\u79cd \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \uff0c \u800c\u4e14 \u6750\u6599 \u4f1a \u62b5\u6297 \u6216 \u63a8\u56de \u5176\u4ed6 \u7269\u4f53 \u3002 \u52a8\u6001 \u66f4\u6539 \u6750\u8d28 \uff1a \u60a8 \u53ef\u4ee5 \u66f4\u6539 \u8bbe\u7f6e \u4ee5 \u4f7f \u540c\u4e00 \u5bf9\u8c61 \u7684 \u884c\u4e3a \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \uff0c \u4f8b\u5982 \u53d8\u6210 \u51dd\u80f6 \u72b6 \u6216 \u878d\u5316 \u6e38\u620f \u6216 \u8c1c\u9898 \u7684 \u6709\u8da3 \u7269\u7406 \u4ea4\u4e92 \u8be5\u5e93 \u4f7f\u7528 \u5e7f\u6cdb \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u6765 \u5229\u7528 \u591a\u6838 CPU \uff0c \u5e76 \u4ece CPU \u6838\u5fc3 \u6570\u91cf \u589e\u52a0 \u7684 \u8d8b\u52bf \u4e2d \u53d7\u76ca \u3002","title":"\u6709\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6"},{"location":"ecosys_femfx/#_1","text":"FEMFX \u662f \u4e00\u4e2a \u7528\u4e8e \u53d8\u5f62 \u6750\u6599 \u7269\u7406 \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b CPU \u5e93 \uff0c \u4f7f\u7528 \u6709\u9650 \u5143\u6cd5 \u6709\u9650\u5143 \u6709\u9650\u5143\u6cd5 ( Finite Element Method , FEM ) \u3002 \u5b9e\u4f53 \u5bf9\u8c61 \u8868\u793a \u4e3a \u56db\u9762 \u56db\u9762\u4f53 \u5355\u5143 \u7684 \u7f51\u683c \uff0c \u6bcf\u4e2a \u5355\u5143 \u90fd \u5177\u6709 \u63a7\u5236 \u521a\u5ea6 \u3001 \u4f53\u79ef \u5982\u4f55 \u968f \u53d8\u5f62 \u53d8\u5316 \u4ee5\u53ca \u53d1\u751f \u65ad\u88c2 \u6216 \u5851\u6027 \uff08 \u6c38\u4e45 \uff09 \u53d8\u5f62 \u7684 \u5e94\u529b \u9650\u5236 \u7684 \u6750\u6599 \u53c2\u6570 \u3002 \u8be5 \u6a21\u578b \u652f\u6301 \u591a\u79cd \u6750\u6599 \u4ee5\u53ca \u6750\u6599 \u4e4b\u95f4 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u6211\u4eec \u6253\u7b97 \u8ba9 \u8fd9\u4e9b \u529f\u80fd \u8865\u5145 \u800c \u4e0d\u662f \u53d6\u4ee3 \u4f20\u7edf \u7684 \u521a\u4f53 \u7269\u7406 \u3002 \u8be5 \u7cfb\u7edf \u7684 \u8bbe\u8ba1 \u8003\u8651 \u4e86 \u4ee5\u4e0b \u56e0\u7d20 \uff1a \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \uff1a \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u903c\u771f \u7684 \u6728\u6750 \u3001 \u91d1\u5c5e \u3001 \u5851\u6599 \uff0c \u751a\u81f3 \u73bb\u7483 \uff0c \u56e0\u4e3a \u5b83\u4eec \u50cf \u771f\u5b9e \u6750\u6599 \u4e00\u6837 \u6839\u636e \u538b\u529b \u5f2f\u66f2 \u548c \u65ad\u88c2 \u3002 \u53d8\u5f62 \u6548\u679c \uff1a \u975e \u521a\u6027 \u7528\u4f8b \uff0c \u4f8b\u5982 \u8f6f\u4f53 \u7269\u4f53 \u3001 \u5f2f\u66f2 \u6216 \u626d\u66f2 \u7684 \u7269\u4f53 \u3002 \u8fd9 \u4e0d\u4ec5 \u4ec5\u4ec5 \u4e0d\u4ec5\u4ec5 \u662f \u4e00\u79cd \u89c6\u89c9 \u6548\u679c \u89c6\u89c9\u6548\u679c \uff0c \u800c\u4e14 \u6750\u6599 \u4f1a \u62b5\u6297 \u6216 \u63a8\u56de \u5176\u4ed6 \u7269\u4f53 \u3002 \u52a8\u6001 \u66f4\u6539 \u6750\u8d28 \uff1a \u60a8 \u53ef\u4ee5 \u66f4\u6539 \u8bbe\u7f6e \u4ee5 \u4f7f \u540c\u4e00 \u5bf9\u8c61 \u7684 \u884c\u4e3a \u622a\u7136 \u4e0d\u540c \u622a\u7136\u4e0d\u540c \uff0c \u4f8b\u5982 \u53d8\u6210 \u51dd\u80f6 \u72b6 \u6216 \u878d\u5316 \u6e38\u620f \u6216 \u8c1c\u9898 \u7684 \u6709\u8da3 \u7269\u7406 \u4ea4\u4e92 \u8be5\u5e93 \u4f7f\u7528 \u5e7f\u6cdb \u7684 \u591a\u7ebf \u7ebf\u7a0b \u591a\u7ebf\u7a0b \u6765 \u5229\u7528 \u591a\u6838 CPU \uff0c \u5e76 \u4ece CPU \u6838\u5fc3 \u6570\u91cf \u589e\u52a0 \u7684 \u8d8b\u52bf \u4e2d \u53d7\u76ca \u3002","title":"\u9650\u5143 \u53d8\u5f62 \u6750\u6599 \u865a\u5e7b \u63d2\u4ef6"},{"location":"ecosys_iss/","text":"\u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \uff08 Intelligent Self - driving System , ISS \uff09 \u662f \u4e00\u4e2a \u7528 Python \u548c C++ \u7f16\u5199 \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u6846\u67b6 \uff0c \u65e8\u5728 \u6784\u5efa \u4e00\u4e2a \u9002\u5408 \u7814\u7a76 \u7684 \u53ef \u6269\u5c55 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u611f\u77e5 \u3001 \u5b9a\u4f4d \u3001 \u6620\u5c04 \u3001 \u9884\u6d4b \u3001 \u89c4\u5212 \u548c \u63a7\u5236 \u3002 \u5bf9\u5916 \u5916\u90e8 \u5bf9\u5916\u90e8 \u5e93 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6700\u5c0f \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u8bbe\u8ba1 \u53ef\u4ee5 \u4e3a \u7814\u7a76 \u4eba\u5458 \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u900f\u660e \u3001 \u5e72\u51c0 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u5b89\u88c5 \u7b97\u6cd5 \u611f\u77e5 \u5b9a\u4f4d \u9884\u6d4b \u89c4\u5212 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u793a\u4f8b \u76ee\u524d \uff0c \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u6846\u67b6 \u80fd\u591f \u4f7f\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u6765 \u90e8\u7f72 \u548c \u6d4b\u8bd5 \u7b97\u6cd5 \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u96c6\u6210 \u5230 \u6211\u4eec \u7684 \u6846\u67b6 \u4e2d\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bc4\u4f30 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7b97\u6cd5 \u3002 \u6b64\u5916 \uff0c \u53ef\u4ee5 \u91c7\u7528 \u76f8\u5e94 \u7684 \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u6765 \u64cd\u7eb5 \u4eff\u771f \u8f66\u8f86 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u6f14\u793a \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d PointPillar 3D \u68c0\u6d4b \u7b97\u6cd5 \u7684 \u5b9e\u65f6 \u6f14\u793a \u5c55\u793a \u672c\u5730 \u884c\u4e3a \u89c4\u5212 \u7684 \u6f14\u793a \u5fae\u578b \u5fae\u578b\u8f66 \u6f14\u793a \u9664\u4e86 \u4eff\u771f \u7ed3\u679c \u4e4b\u5916 \uff0c \u5982\u679c \u6765\u81ea \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u901a\u8fc7 ROS \u4f20\u8f93 \u56de ISS \uff0c \u5219 ISS \u6846\u67b6 \u53ef\u4ee5 \u5229\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5b8c\u6210 \u5404\u79cd \u4efb\u52a1 \u5e76 \u5bf9 \u7269\u7406 \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u8fdb\u884c \u63a7\u5236 \u3002 \u6211\u4eec \u5728 \u4e0b\u9762 \u5c55\u793a \u4e86 \u4e09\u4e2a \u89c6\u9891 \uff0c \u5c55\u793a \u4e86 ISS \u4e0e \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4e92\u52a8 \u3002 \u4e24\u4e2a \u6f14\u793a \u5206\u522b \u5c55\u793a \u4e86 \u5728 \u5ba4\u5185 \u548c \u5ba4\u5916 \u73af\u5883 \u4e2d \u5bfc\u822a \u7684 \u5b9e\u4f53 \u5fae\u578b \u5fae\u578b\u8f66 \u4f7f\u7528 \u6765\u81ea \u7269\u7406 \u5fae\u578b \u5fae\u578b\u8f66 \u7684 \u6570\u636e \u5c55\u793a A - LOAM SLAM \u7b97\u6cd5 \u7684 \u6f14\u793a","title":"ISS \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf"},{"location":"ecosys_iss/#_1","text":"\u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \uff08 Intelligent Self - driving System , ISS \uff09 \u662f \u4e00\u4e2a \u7528 Python \u548c C++ \u7f16\u5199 \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u6846\u67b6 \uff0c \u65e8\u5728 \u6784\u5efa \u4e00\u4e2a \u9002\u5408 \u7814\u7a76 \u7684 \u53ef \u6269\u5c55 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u611f\u77e5 \u3001 \u5b9a\u4f4d \u3001 \u6620\u5c04 \u3001 \u9884\u6d4b \u3001 \u89c4\u5212 \u548c \u63a7\u5236 \u3002 \u5bf9\u5916 \u5916\u90e8 \u5bf9\u5916\u90e8 \u5e93 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6700\u5c0f \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u8bbe\u8ba1 \u53ef\u4ee5 \u4e3a \u7814\u7a76 \u4eba\u5458 \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u900f\u660e \u3001 \u5e72\u51c0 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u5b89\u88c5 \u7b97\u6cd5 \u611f\u77e5 \u5b9a\u4f4d \u9884\u6d4b \u89c4\u5212 \u63a7\u5236","title":"\u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf"},{"location":"ecosys_iss/#_2","text":"\u76ee\u524d \uff0c \u667a\u80fd \u9a7e\u9a76 \u7cfb\u7edf \u6846\u67b6 \u80fd\u591f \u4f7f\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u6765 \u90e8\u7f72 \u548c \u6d4b\u8bd5 \u7b97\u6cd5 \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u96c6\u6210 \u5230 \u6211\u4eec \u7684 \u6846\u67b6 \u4e2d\u540e \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bc4\u4f30 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7b97\u6cd5 \u3002 \u6b64\u5916 \uff0c \u53ef\u4ee5 \u91c7\u7528 \u76f8\u5e94 \u7684 \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u6765 \u64cd\u7eb5 \u4eff\u771f \u8f66\u8f86 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u6f14\u793a \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d PointPillar 3D \u68c0\u6d4b \u7b97\u6cd5 \u7684 \u5b9e\u65f6 \u6f14\u793a \u5c55\u793a \u672c\u5730 \u884c\u4e3a \u89c4\u5212 \u7684 \u6f14\u793a","title":"\u4eff\u771f\u5668 \u793a\u4f8b"},{"location":"ecosys_iss/#_3","text":"\u9664\u4e86 \u4eff\u771f \u7ed3\u679c \u4e4b\u5916 \uff0c \u5982\u679c \u6765\u81ea \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u901a\u8fc7 ROS \u4f20\u8f93 \u56de ISS \uff0c \u5219 ISS \u6846\u67b6 \u53ef\u4ee5 \u5229\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5b8c\u6210 \u5404\u79cd \u4efb\u52a1 \u5e76 \u5bf9 \u7269\u7406 \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u8fdb\u884c \u63a7\u5236 \u3002 \u6211\u4eec \u5728 \u4e0b\u9762 \u5c55\u793a \u4e86 \u4e09\u4e2a \u89c6\u9891 \uff0c \u5c55\u793a \u4e86 ISS \u4e0e \u771f\u5b9e \u5fae\u578b \u6c7d\u8f66 \u5fae\u578b\u6c7d\u8f66 \u7684 \u4e92\u52a8 \u3002 \u4e24\u4e2a \u6f14\u793a \u5206\u522b \u5c55\u793a \u4e86 \u5728 \u5ba4\u5185 \u548c \u5ba4\u5916 \u73af\u5883 \u4e2d \u5bfc\u822a \u7684 \u5b9e\u4f53 \u5fae\u578b \u5fae\u578b\u8f66 \u4f7f\u7528 \u6765\u81ea \u7269\u7406 \u5fae\u578b \u5fae\u578b\u8f66 \u7684 \u6570\u636e \u5c55\u793a A - LOAM SLAM \u7b97\u6cd5 \u7684 \u6f14\u793a","title":"\u5fae\u578b\u8f66 \u6f14\u793a"},{"location":"ecosys_ros/","text":"\u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff08 Robotic Operating System , ROS \uff09 \u662f \u4e00\u7ec4 \u7528\u4e8e \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u8f6f\u4ef6 \u5e93 \u3002 Carla \u53ef\u4ee5 \u901a\u8fc7 \u5176 ROS \u63a5\u53e3 \u76f4\u63a5 \u8fde\u63a5 \u5230 ROS \uff0c \u63a7\u5236 \u4fe1\u53f7 \u53ef\u4ee5 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u901a\u8fc7 ROS \u4e3b\u9898 \u8bbf\u95ee \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u8fde\u63a5 Carla \u548c ROS \u6709 \u4e24\u79cd \u9009\u62e9 \u3002 Carla \u539f\u751f \u63a5\u53e3 : \u76f4\u63a5 \u6784\u5efa \u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 ROS \u63a5\u53e3 ROS \u6865 : \u4e00\u4e2a \u5355\u72ec \u7684 \u5e93 \uff0c \u7528\u4e8e \u5728 ROS \u548c Carla \u4e4b\u95f4 \u4f20\u8f93 \u4fe1\u53f7 Carla \u7684 \u539f\u751f ROS \u63a5\u53e3 \u8fd9\u662f \u63a8\u8350 \u7684 \u63a5\u53e3 \uff0c \u56e0\u4e3a \u5b83 \u63d0\u4f9b \u6700\u4f73 \u6027\u80fd \u548c \u6700\u4f4e \u5ef6\u8fdf \u3002 \u76ee\u524d \u672c \u673a \u63a5\u53e3 \u4ec5 \u652f\u6301 ROS 2 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 ROS 1 \uff0c \u5219 \u5fc5\u987b \u4f7f\u7528 ROS \u6865 \u3002 Carla ROS \u6865 Carla ROS \u6865 \u662f \u4e00\u4e2a \u7528\u4e8e \u5c06 ROS \u8fde\u63a5 \u5230 Carla \u7684 \u5e93 \uff0c \u5b83 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 \u7531\u4e8e Carla ROS \u6865 \u662f \u4e00\u4e2a \u5355\u72ec \u7684 \u5305 \uff0c \u56e0\u6b64 \u4e0e \u672c\u673a \u63a5\u53e3 \u76f8\u6bd4 \uff0c \u5b58\u5728 \u989d\u5916 \u7684 \u5ef6\u8fdf \u3002 ROS \u6865 \u4ecd\u7136 \u63d0\u4f9b \u652f\u6301 ROS 1 \u548c ROS 2 \u7684 \u65e7 \u5b9e\u73b0 \u3002","title":"Ecosys ros"},{"location":"ecosys_ros/#_1","text":"\u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff08 Robotic Operating System , ROS \uff09 \u662f \u4e00\u7ec4 \u7528\u4e8e \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u8f6f\u4ef6 \u5e93 \u3002 Carla \u53ef\u4ee5 \u901a\u8fc7 \u5176 ROS \u63a5\u53e3 \u76f4\u63a5 \u8fde\u63a5 \u5230 ROS \uff0c \u63a7\u5236 \u4fe1\u53f7 \u53ef\u4ee5 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u901a\u8fc7 ROS \u4e3b\u9898 \u8bbf\u95ee \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u8fde\u63a5 Carla \u548c ROS \u6709 \u4e24\u79cd \u9009\u62e9 \u3002 Carla \u539f\u751f \u63a5\u53e3 : \u76f4\u63a5 \u6784\u5efa \u5230 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u7684 ROS \u63a5\u53e3 ROS \u6865 : \u4e00\u4e2a \u5355\u72ec \u7684 \u5e93 \uff0c \u7528\u4e8e \u5728 ROS \u548c Carla \u4e4b\u95f4 \u4f20\u8f93 \u4fe1\u53f7","title":"\u673a\u5668\u4eba \u64cd\u4f5c\u7cfb\u7edf"},{"location":"ecosys_ros/#carla-ros","text":"\u8fd9\u662f \u63a8\u8350 \u7684 \u63a5\u53e3 \uff0c \u56e0\u4e3a \u5b83 \u63d0\u4f9b \u6700\u4f73 \u6027\u80fd \u548c \u6700\u4f4e \u5ef6\u8fdf \u3002 \u76ee\u524d \u672c \u673a \u63a5\u53e3 \u4ec5 \u652f\u6301 ROS 2 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 ROS 1 \uff0c \u5219 \u5fc5\u987b \u4f7f\u7528 ROS \u6865 \u3002","title":"Carla \u7684 \u539f\u751f ROS \u63a5\u53e3"},{"location":"ecosys_ros/#carla-ros_1","text":"Carla ROS \u6865 \u662f \u4e00\u4e2a \u7528\u4e8e \u5c06 ROS \u8fde\u63a5 \u5230 Carla \u7684 \u5e93 \uff0c \u5b83 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 \u7531\u4e8e Carla ROS \u6865 \u662f \u4e00\u4e2a \u5355\u72ec \u7684 \u5305 \uff0c \u56e0\u6b64 \u4e0e \u672c\u673a \u63a5\u53e3 \u76f8\u6bd4 \uff0c \u5b58\u5728 \u989d\u5916 \u7684 \u5ef6\u8fdf \u3002 ROS \u6865 \u4ecd\u7136 \u63d0\u4f9b \u652f\u6301 ROS 1 \u548c ROS 2 \u7684 \u65e7 \u5b9e\u73b0 \u3002","title":"Carla ROS \u6865"},{"location":"ecosys_simready/","text":"NVIDIA Omniverse \u7684 SimReady \u5185\u5bb9 NVIDIA \u7684 SimReady \u89c4\u8303 \u652f\u6301 \u51c6\u5907 \u4e13 \u4e3a \u6a21\u62df \u800c \u6784\u5efa \u7684 \u4e09\u7ef4 \u5185\u5bb9 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u6a21\u62df 3D \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u7684 \u5185\u5bb9 \u521b\u5efa \u7ba1\u9053 \uff0c \u4ee5 \u5b9e\u73b0 \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u4e2d \u7684 \u673a\u5668 \u5b66\u4e60 \u76ee\u7684 \u3002 \u901a\u8fc7 \u73b0\u5df2 \u96c6\u6210 \u5230 CARLA \u4e2d \u7684 Omniverse \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \uff0c \u7528\u6237 \u53ea \u9700 \u70b9\u51fb \u51e0\u4e0b \u5373\u53ef \u5bfc\u5165 SimReady \u5185\u5bb9 \uff0c \u4f8b\u5982 \u5df2 \u914d\u7f6e \u5de5\u4f5c \u706f \u3001 \u95e8 \u3001 \u8f66\u8f6e \u548c \u9053\u5177 \u7684 \u8f66\u8f86 \uff0c \u53ef \u7acb\u5373 \u7528\u4e8e \u88c5\u9970 CARLA \u5730\u56fe \u3002 CARLA \u7684 Omniverse \u96c6\u6210 \u80fd\u591f \u663e \u7740 \u52a0\u901f \u60a8 \u7684 \u73af\u5883 \u6784\u5efa \u6d41\u7a0b \uff0c \u5e76 \u4e3a Omniverse \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d \u7684 \u6574\u4e2a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e16\u754c \u6253\u5f00 \u5927\u95e8 \u3002 \u7b14\u8bb0 Omniverse \u865a\u5e7b \u5f15\u64ce \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u76ee\u524d \u4ec5 \u5728 Windows \u4e2d \u53ef\u7528 \u3002 \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u5f00\u59cb \u4f7f\u7528 Omniverse \u5e76 \u5728 CARLA \u4e2d \u4f7f\u7528 SimReady \u5185\u5bb9 \uff1a \u9996\u5148 \uff0c \u60a8 \u5e94\u8be5 \u5148 \u5b89\u88c5 NVIDIA Omniverse 1 . \u5b89\u88c5 \u865a\u5e7b \u5f15\u64ce Omniverse \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u542f\u52a8 NVIDIA Omniverse \u542f\u52a8 \u542f\u52a8\u5668 \u5bfc\u822a \u81f3 Exchange \u9009\u9879 \u9009\u9879\u5361 \u627e\u5230 Epic Games Unreal Engine 4.26 Omniverse \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u786e\u4fdd \u5b89\u88c5 \u7248\u672c \u4e3a Release 105.1 . 578 \u5355\u51fb \u5b89\u88c5 Omniverse \u5c06 \u65e0\u6cd5 \u627e\u5230 Unreal Engine \uff0c \u5355\u51fb \u8bf7\u5355\u51fb OK \u3002 \u5b83\u4f1a \u63d0\u793a \u4f60 \u627e\u5230 \u4f60 \u7684 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \uff0c \u9009\u62e9 \u8fd9\u4e2a \u8def\u5f84 \uff1a { UE4 _ ROOT } \\ Engine \\ Plugins \\ Marketplace \\ NVIDIA \u6309 \u5b89\u88c5 \u3002 2 . \u8bbe\u7f6e \u672c\u5730 Omniverse \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 \u542f\u52a8 \u542f\u52a8\u5668 \u6253\u5f00 NVIDIA Omniverse \u5bfc\u822a \u81f3 Nucleus \u9009\u9879 \u9009\u9879\u5361 \u70b9\u51fb Create Local Server \u521b\u5efa \u7ba1\u7406 \u7ba1\u7406\u5458 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9009\u62e9 Local Nucleus Service \u65c1\u8fb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u56fe\u6807 \uff0c \u8fd9 \u5e94\u8be5 \u5728 Web \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 \u672c\u5730 \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 3 . \u8fde\u63a5 CARLA \u6a21\u62df \u6a21\u62df\u5668 \u4ece CARLA \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 make launch \u542f\u52a8 CARLA \u5982\u679c \u73b0\u6709 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u5e76\u4e14 \u60a8 \u60f3\u8981 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8bbe\u7f6e \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Clean Local Assets \uff08 \u53ef \u9009 \uff09 \u9009\u62e9 Omniverse \u56fe\u6807 \u5e76 \u5355\u51fb Add Server \u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u547d\u540d \u5e76 \u5355\u51fb Add to Content Browser \u767b\u5f55 \u8868\u5355 \u5e94 \u5728 \u60a8 \u7684 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u542f\u52a8 \uff0c \u5355\u51fb Create Account \u521b\u5efa \u7ba1\u7406 \u7ba1\u7406\u5458 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f Omniverse \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u73b0\u5728 \u5e94\u8be5 \u5728 \u865a\u5e7b \u5f15\u64ce \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7684 Content / Omniverse \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u53ef\u89c1 \u518d\u6b21 \u8bbf\u95ee \u60a8 \u7684 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5355\u51fb Connect to a Server \u4f7f\u7528 \u60a8 \u4e3a CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540d\u79f0 \u8fdb\u884c \u8eab\u4efd \u9a8c\u8bc1 \u8eab\u4efd\u9a8c\u8bc1 \u4f7f\u7528 \u60a8 \u4e3a CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u7684 \u7ba1\u7406 \u7ba1\u7406\u5458 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u73b0\u5728 \u5e94\u8be5 \u663e\u793a \u5728 \u60a8 \u7684 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d 4 . \u5bfc\u5165 SimReady \u8d44\u4ea7 \u5bfc\u822a \u81f3 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5668\u4e2d \u7684 \u201c Projects \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u53f3\u952e \u5355\u51fb \uff0c \u7136\u540e \u9009\u62e9 Upload Folder \u9009\u62e9 \u60a8 \u7684 SimReady \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0a\u4f20 \u6587\u4ef6 5 . \u4f7f\u7528 Omniverse \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u5c06 \u8f66\u8f86 \u52a0\u8f7d \u5230 CARLA \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 CARLA \u9879\u76ee \u5bfc\u822a \u81f3 CarlaTools / Content / USDImporter \u53f3\u952e \u5355\u51fb UW _ USDVehicleImporterEditorWidget \u9009\u62e9 Run Editor Utility Widget \u5728 Omniverse \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5668\u4e2d \u67e5\u627e \u8f66\u8f86 \u590d\u5236 \u8def\u5f84 \uff08 \u5e94 \u7c7b\u4f3c \u4e8e \uff1a omniverse : / / localhost / Projects / SimReadyUSD ... / vehicle . usd ) \u5c06 \u5176 \u7c98\u8d34 \u5230 \u5c0f\u7ec4 \u4ef6 \u5185 \u7684 Omiverse URL \u9009\u9879 \u9009\u9879\u5361 \u4e2d \u9009\u62e9 Import Asset \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u8f66\u8f86 \u663e\u793a \u5728 \u5f15\u64ce \u4e2d \u60a8 \u5728 Import destination \u5b57\u6bb5 \u4e2d \u6307\u5b9a \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 \u53e6 \u4e00\u4e2a \u5730\u56fe \u573a\u666f \uff08 \u5b83 \u53ef\u80fd \u5df2 \u6253\u5f00 \u5305\u542b \u5bfc\u5165 \u6570\u636e \u7684 \u65b0 \u573a\u666f \uff09 \uff0c \u5e94 \u51fa\u73b0 Save Content \u63d0\u793a \u3002 \u53d6\u6d88 \u9009\u4e2d Untitled \u573a\u666f \uff0c \u7136\u540e \u5355\u51fb Save selected \u4ee5 \u4fdd\u5b58 \u65b0 \u5185\u5bb9 \u8be5 \u8f66\u8f86 \u73b0\u5df2 \u53ef \u5728 CARLA \u5185 \u4f7f\u7528 \uff0c \u5e76 \u5c06 \u901a\u8fc7 Python API \u63d0\u4f9b","title":"NVIDIA Omniverse \u7684 SimReady \u5185\u5bb9"},{"location":"ecosys_simready/#nvidia-omniverse-simready","text":"NVIDIA \u7684 SimReady \u89c4\u8303 \u652f\u6301 \u51c6\u5907 \u4e13 \u4e3a \u6a21\u62df \u800c \u6784\u5efa \u7684 \u4e09\u7ef4 \u5185\u5bb9 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u6a21\u62df 3D \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u7684 \u5185\u5bb9 \u521b\u5efa \u7ba1\u9053 \uff0c \u4ee5 \u5b9e\u73b0 \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u4e2d \u7684 \u673a\u5668 \u5b66\u4e60 \u76ee\u7684 \u3002 \u901a\u8fc7 \u73b0\u5df2 \u96c6\u6210 \u5230 CARLA \u4e2d \u7684 Omniverse \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \uff0c \u7528\u6237 \u53ea \u9700 \u70b9\u51fb \u51e0\u4e0b \u5373\u53ef \u5bfc\u5165 SimReady \u5185\u5bb9 \uff0c \u4f8b\u5982 \u5df2 \u914d\u7f6e \u5de5\u4f5c \u706f \u3001 \u95e8 \u3001 \u8f66\u8f6e \u548c \u9053\u5177 \u7684 \u8f66\u8f86 \uff0c \u53ef \u7acb\u5373 \u7528\u4e8e \u88c5\u9970 CARLA \u5730\u56fe \u3002 CARLA \u7684 Omniverse \u96c6\u6210 \u80fd\u591f \u663e \u7740 \u52a0\u901f \u60a8 \u7684 \u73af\u5883 \u6784\u5efa \u6d41\u7a0b \uff0c \u5e76 \u4e3a Omniverse \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d \u7684 \u6574\u4e2a \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e16\u754c \u6253\u5f00 \u5927\u95e8 \u3002 \u7b14\u8bb0 Omniverse \u865a\u5e7b \u5f15\u64ce \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u76ee\u524d \u4ec5 \u5728 Windows \u4e2d \u53ef\u7528 \u3002 \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u5f00\u59cb \u4f7f\u7528 Omniverse \u5e76 \u5728 CARLA \u4e2d \u4f7f\u7528 SimReady \u5185\u5bb9 \uff1a \u9996\u5148 \uff0c \u60a8 \u5e94\u8be5 \u5148 \u5b89\u88c5 NVIDIA Omniverse","title":"NVIDIA Omniverse \u7684 SimReady \u5185\u5bb9"},{"location":"ecosys_simready/#1-omniverse","text":"\u542f\u52a8 NVIDIA Omniverse \u542f\u52a8 \u542f\u52a8\u5668 \u5bfc\u822a \u81f3 Exchange \u9009\u9879 \u9009\u9879\u5361 \u627e\u5230 Epic Games Unreal Engine 4.26 Omniverse \u8fde\u63a5 \u63a5\u5668 \u8fde\u63a5\u5668 \u786e\u4fdd \u5b89\u88c5 \u7248\u672c \u4e3a Release 105.1 . 578 \u5355\u51fb \u5b89\u88c5 Omniverse \u5c06 \u65e0\u6cd5 \u627e\u5230 Unreal Engine \uff0c \u5355\u51fb \u8bf7\u5355\u51fb OK \u3002 \u5b83\u4f1a \u63d0\u793a \u4f60 \u627e\u5230 \u4f60 \u7684 \u865a\u5e7b \u5f15\u64ce \u5b89\u88c5 \uff0c \u9009\u62e9 \u8fd9\u4e2a \u8def\u5f84 \uff1a { UE4 _ ROOT } \\ Engine \\ Plugins \\ Marketplace \\ NVIDIA \u6309 \u5b89\u88c5 \u3002","title":"1 . \u5b89\u88c5 \u865a\u5e7b \u5f15\u64ce Omniverse \u8fde\u63a5\u5668"},{"location":"ecosys_simready/#2-omniverse","text":"\u4f7f\u7528 \u542f\u52a8 \u542f\u52a8\u5668 \u6253\u5f00 NVIDIA Omniverse \u5bfc\u822a \u81f3 Nucleus \u9009\u9879 \u9009\u9879\u5361 \u70b9\u51fb Create Local Server \u521b\u5efa \u7ba1\u7406 \u7ba1\u7406\u5458 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9009\u62e9 Local Nucleus Service \u65c1\u8fb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u56fe\u6807 \uff0c \u8fd9 \u5e94\u8be5 \u5728 Web \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 \u672c\u5730 \u4e3b\u673a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668","title":"2 . \u8bbe\u7f6e \u672c\u5730 Omniverse \u670d\u52a1\u5668"},{"location":"ecosys_simready/#3-carla","text":"\u4ece CARLA \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 make launch \u542f\u52a8 CARLA \u5982\u679c \u73b0\u6709 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u5e76\u4e14 \u60a8 \u60f3\u8981 \u91cd\u65b0 \u542f\u52a8 \u91cd\u65b0\u542f\u52a8 \u8bbe\u7f6e \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Clean Local Assets \uff08 \u53ef \u9009 \uff09 \u9009\u62e9 Omniverse \u56fe\u6807 \u5e76 \u5355\u51fb Add Server \u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u547d\u540d \u5e76 \u5355\u51fb Add to Content Browser \u767b\u5f55 \u8868\u5355 \u5e94 \u5728 \u60a8 \u7684 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u542f\u52a8 \uff0c \u5355\u51fb Create Account \u521b\u5efa \u7ba1\u7406 \u7ba1\u7406\u5458 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f Omniverse \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u73b0\u5728 \u5e94\u8be5 \u5728 \u865a\u5e7b \u5f15\u64ce \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7684 Content / Omniverse \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u53ef\u89c1 \u518d\u6b21 \u8bbf\u95ee \u60a8 \u7684 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5355\u51fb Connect to a Server \u4f7f\u7528 \u60a8 \u4e3a CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540d\u79f0 \u8fdb\u884c \u8eab\u4efd \u9a8c\u8bc1 \u8eab\u4efd\u9a8c\u8bc1 \u4f7f\u7528 \u60a8 \u4e3a CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u7684 \u7ba1\u7406 \u7ba1\u7406\u5458 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u73b0\u5728 \u5e94\u8be5 \u663e\u793a \u5728 \u60a8 \u7684 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d","title":"3 . \u8fde\u63a5 CARLA \u6a21\u62df\u5668"},{"location":"ecosys_simready/#4-simready","text":"\u5bfc\u822a \u81f3 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5668\u4e2d \u7684 \u201c Projects \u201d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u53f3\u952e \u5355\u51fb \uff0c \u7136\u540e \u9009\u62e9 Upload Folder \u9009\u62e9 \u60a8 \u7684 SimReady \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0a\u4f20 \u6587\u4ef6","title":"4 . \u5bfc\u5165 SimReady \u8d44\u4ea7"},{"location":"ecosys_simready/#5-omniverse-carla","text":"\u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 CARLA \u9879\u76ee \u5bfc\u822a \u81f3 CarlaTools / Content / USDImporter \u53f3\u952e \u5355\u51fb UW _ USDVehicleImporterEditorWidget \u9009\u62e9 Run Editor Utility Widget \u5728 Omniverse \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5668\u4e2d \u67e5\u627e \u8f66\u8f86 \u590d\u5236 \u8def\u5f84 \uff08 \u5e94 \u7c7b\u4f3c \u4e8e \uff1a omniverse : / / localhost / Projects / SimReadyUSD ... / vehicle . usd ) \u5c06 \u5176 \u7c98\u8d34 \u5230 \u5c0f\u7ec4 \u4ef6 \u5185 \u7684 Omiverse URL \u9009\u9879 \u9009\u9879\u5361 \u4e2d \u9009\u62e9 Import Asset \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u8f66\u8f86 \u663e\u793a \u5728 \u5f15\u64ce \u4e2d \u60a8 \u5728 Import destination \u5b57\u6bb5 \u4e2d \u6307\u5b9a \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u6253\u5f00 \u53e6 \u4e00\u4e2a \u5730\u56fe \u573a\u666f \uff08 \u5b83 \u53ef\u80fd \u5df2 \u6253\u5f00 \u5305\u542b \u5bfc\u5165 \u6570\u636e \u7684 \u65b0 \u573a\u666f \uff09 \uff0c \u5e94 \u51fa\u73b0 Save Content \u63d0\u793a \u3002 \u53d6\u6d88 \u9009\u4e2d Untitled \u573a\u666f \uff0c \u7136\u540e \u5355\u51fb Save selected \u4ee5 \u4fdd\u5b58 \u65b0 \u5185\u5bb9 \u8be5 \u8f66\u8f86 \u73b0\u5df2 \u53ef \u5728 CARLA \u5185 \u4f7f\u7528 \uff0c \u5e76 \u5c06 \u901a\u8fc7 Python API \u63d0\u4f9b","title":"5 . \u4f7f\u7528 Omniverse \u8fde\u63a5\u5668 \u5c06 \u8f66\u8f86 \u52a0\u8f7d \u5230 CARLA"},{"location":"ext_docs/","text":"\u6269\u5c55 \u6587\u6863 \u4e0b\u9762 \uff0c \u60a8 \u5c06 \u627e\u5230 \u6709\u5173 Carla \u8bb8\u591a \u5e7f\u6cdb \u529f\u80fd \u7684 \u6df1\u5165 \u6587\u6863 \u3002 \u5148\u8fdb \u7406\u5ff5 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u6ce8\u518c \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u65e0 \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6d4b\u8bd5 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u884c\u9a76 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u591a GPU \u2014 \u8bbe\u7f6e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ee5 \u4f7f\u7528 \u591a\u4e2a GPU \u8fdb\u884c \u5904\u7406 \u3002 \u4ea4\u901a \u4eff\u771f \u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u7528 \u586b\u5145 \u4ea4\u901a \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002 \u53c2\u8003 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u4f7f\u7528 OpenStreetMap \u6570\u636e \u7684 \u7a0b\u5e8f \u5730\u56fe \u751f\u6210 \u5de5\u5177 \u3002 Carla \u4e2d \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u3002 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5728 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u7528\u4e8e \u624b\u52a8 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u66f4\u6539 \u9053\u8def \u7684 \u5916\u89c2 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u8d44\u6599 \u5e76 \u586b\u5145 \u666f\u89c2 \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u5927 \u5730\u56fe \u5927 \u5730\u56fe \u6982\u8ff0 \u2014 \u89e3\u91ca \u5927 \u5730\u56fe \u5728 Carla \u4e2d \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe \u3002","title":"\u6269\u5c55 \u6587\u6863"},{"location":"ext_docs/#_1","text":"\u4e0b\u9762 \uff0c \u60a8 \u5c06 \u627e\u5230 \u6709\u5173 Carla \u8bb8\u591a \u5e7f\u6cdb \u529f\u80fd \u7684 \u6df1\u5165 \u6587\u6863 \u3002","title":"\u6269\u5c55 \u6587\u6863"},{"location":"ext_docs/#_2","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u2014 \u5728 \u4eff\u771f \u4e2d \u6ce8\u518c \u4e8b\u4ef6 \u5e76 \u518d\u6b21 \u64ad\u653e \u3002 \u6e32\u67d3 \u9009\u9879 \u2014 \u4ece \u8d28\u91cf \u8bbe\u7f6e \u5230 \u65e0 \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6a21\u5f0f \u3002 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65\u957f \u2014 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u548c \u4eff\u771f \u65f6\u95f4 \u3002 \u57fa\u51c6 \u6d4b\u8bd5 \u6027\u80fd \u2014 \u4f7f\u7528 \u6211\u4eec \u51c6\u5907 \u7684 \u811a\u672c \u6267\u884c \u57fa\u51c6 \u6d4b\u8bd5 \u3002 Carla \u667a\u80fd \u4f53 \u2014 \u667a\u80fd \u4f53 \u811a\u672c \u5141\u8bb8 \u5355\u4e2a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u6f2b\u6e38 \u6216 \u884c\u9a76 \u5230 \u8bbe\u5b9a \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u591a GPU \u2014 \u8bbe\u7f6e Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ee5 \u4f7f\u7528 \u591a\u4e2a GPU \u8fdb\u884c \u5904\u7406 \u3002","title":"\u5148\u8fdb \u7406\u5ff5"},{"location":"ext_docs/#_3","text":"\u4ea4\u901a \u4eff\u771f \u6982\u8ff0 \u2014 \u53ef \u7528\u4e8e \u7528 \u586b\u5145 \u4ea4\u901a \u573a\u666f \u7684 \u4e0d\u540c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u901a\u8fc7 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u6765 \u4eff\u771f \u57ce\u5e02 \u4ea4\u901a \u57ce\u5e02\u4ea4\u901a \u3002","title":"\u4ea4\u901a \u4eff\u771f"},{"location":"ext_docs/#_4","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u2014 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u8be6\u7ec6 \u8bf4\u660e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u2014 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u68c0\u7d22 \u6570\u636e \u7684 \u6240\u6709 \u5185\u5bb9 \u3002","title":"\u53c2\u8003"},{"location":"ext_docs/#_5","text":"\u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \u2014 \u4f7f\u7528 OpenStreetMap \u6570\u636e \u7684 \u7a0b\u5e8f \u5730\u56fe \u751f\u6210 \u5de5\u5177 \u3002 Carla \u4e2d \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6982\u8ff0 \u2014 \u6dfb\u52a0 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u6240 \u6d89\u53ca \u7684 \u8fc7\u7a0b \u548c \u9009\u9879 \u7684 \u6982\u8ff0 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u751f\u6210 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u6807\u51c6 \u5c3a\u5bf8 \u5730\u56fe \u3002 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u5982\u4f55 \u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5728 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u3002 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u2014 \u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u624b\u52a8 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u2014 \u5982\u4f55 \u51c6\u5907 \u7528\u4e8e \u624b\u52a8 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u521b\u5efa \u5b50 \u56fe\u5c42 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u2014 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u2014 \u5982\u4f55 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u66f4\u6539 \u9053\u8def \u7684 \u5916\u89c2 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \u2014 \u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u586b\u5145 \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 \u2014 \u4e3a \u60a8 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u5929\u6c14 \u8d44\u6599 \u5e76 \u586b\u5145 \u666f\u89c2 \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u2014 \u83b7\u53d6 \u884c\u4eba \u56db\u5904 \u8d70\u52a8 \u6240 \u9700 \u7684 \u4fe1\u606f \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"ext_docs/#_6","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u2014 \u89e3\u91ca \u5927 \u5730\u56fe \u5728 Carla \u4e2d \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe \u3002 \u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe \u2014 \u5982\u4f55 \u5bfc\u5165 \u5927 \u5730\u56fe \u3002","title":"\u5927 \u5730\u56fe"},{"location":"file_specification/","text":"Util / BuildTools / * BuildUE4Plugins . bat : \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 StreetMap Setup . bat \uff1a \u8c03\u7528 Util / InstallersWin / * . bat \u4e0b\u8f7d \u5e76 \u751f\u6210 zlib \u3001 libpng \u3001 rpclib \u3001 Google Test \u3001 Recast & Detour \u3001 Fast - DDS ( for ROS2 ) \u3001 Boost \u3001 Xercesc \u3001 Sqlite3 \u3001 PROJ \u3001 Eigen \u3001 Chrono \u5e93 \uff1b \u8bbe\u7f6e \u8d44\u4ea7 \u4e0b\u8f7d URL \uff1b \u751f\u6210 CMakeLists . txt . in \uff1b BuildLibCarla . bat \uff1a \u521b\u5efa LibCarla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u670d\u52a1\u7aef \uff1b BuildOSM2ODR . bat \uff1a \u521b\u5efa OSM \u8f6c OpenDRIVE \u7684 \u5e93 \uff1b \u9644\u52a0 \uff1a \u6784\u5efa \u6b65\u9aa4 \u5206\u6790 Update . bat \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u521d\u59cb \u521d\u59cb\u5316 \uff1b \u83b7\u53d6 \u6700\u65b0 \u7684 \u8d44\u4ea7 \u5305 \uff1b \u4e0b\u8f7d \u5e76 \u89e3\u538b \u8d44\u4ea7 \u5185\u5bb9 \uff1b \u5982\u679c \u4e0d \u5b58\u5728 7zip \u5c31 \u7528 powershell - Command \" Expand - Archive ' \u547d\u4ee4 \u8fdb\u884c \u89e3\u538b \u3002 Makefile make PythonAPI \u6267\u884c Util / BuildTools / BuildPythonAPI . bat \uff0c \u771f\u6b63 \u6267\u884c \u7684 \u662f python setup . py bdist _ egg bdist _ wheel \uff0c \u5728 PythonAPI / carla / dist \u76ee\u5f55 \u4e0b \u751f\u6210 * . egg \u548c * . whl \u6587\u4ef6 \uff1b make launch \u6267\u884c Makefile \uff0c \u8c03\u7528 Util / BuildTools / Windows . mk \uff0c \u771f\u6b63 \u6267\u884c \u7684 \u662f BuildLibCarla . bat \uff0c \u6784\u5efa LibCarla \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1b Build Xerces \u662f \u7531 Apache \u7ec4\u7ec7 \u6240 \u63a8\u52a8 \u7684 \u4e00\u9879 XML \u6587\u6863 \u89e3\u6790 \u5f00\u6e90 \u9879\u76ee \u3002 SQLite \u662f \u4e00\u6b3e \u8f7b\u578b \u7684 \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \uff0c \u662f \u9075\u5b88 ACID \u7684 \u5173\u7cfb \u578b \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \u7ba1\u7406 \u7cfb\u7edf \u7ba1\u7406\u7cfb \u7ba1\u7406\u7cfb\u7edf \uff0c \u5b83 \u5305\u542b \u5728 \u4e00\u4e2a \u76f8\u5bf9 \u5c0f \u7684 C \u5e93\u4e2d \u3002 PROJ \u662f \u4e00\u79cd \u901a\u7528 \u5750\u6807 \u8f6c\u6362 \u8f6f\u4ef6 \uff0c \u5b83 \u5c06 \u5750\u6807 \u4ece \u4e00\u4e2a \u5750\u6807 \u53c2\u8003 \u53c2\u8003\u7cfb \uff08 CRS \uff09 \u8f6c\u6362 \u4e3a \u53e6 \u4e00\u4e2a \u5750\u6807 \u53c2\u8003 \u53c2\u8003\u7cfb \u3002 \u8fd9 \u5305\u62ec \u5730\u56fe \u6295\u5f71 \u5730\u56fe\u6295\u5f71 \u548c \u5927\u5730 \u5750\u6807 \u53d8\u6362 \u3002","title":"\u6587\u4ef6 \u8bf4\u660e"},{"location":"file_specification/#utilbuildtools","text":"BuildUE4Plugins . bat : \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 StreetMap Setup . bat \uff1a \u8c03\u7528 Util / InstallersWin / * . bat \u4e0b\u8f7d \u5e76 \u751f\u6210 zlib \u3001 libpng \u3001 rpclib \u3001 Google Test \u3001 Recast & Detour \u3001 Fast - DDS ( for ROS2 ) \u3001 Boost \u3001 Xercesc \u3001 Sqlite3 \u3001 PROJ \u3001 Eigen \u3001 Chrono \u5e93 \uff1b \u8bbe\u7f6e \u8d44\u4ea7 \u4e0b\u8f7d URL \uff1b \u751f\u6210 CMakeLists . txt . in \uff1b BuildLibCarla . bat \uff1a \u521b\u5efa LibCarla \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u670d\u52a1\u7aef \uff1b BuildOSM2ODR . bat \uff1a \u521b\u5efa OSM \u8f6c OpenDRIVE \u7684 \u5e93 \uff1b","title":"Util / BuildTools / *"},{"location":"file_specification/#_1","text":"","title":"\u9644\u52a0 \uff1a \u6784\u5efa \u6b65\u9aa4 \u5206\u6790"},{"location":"file_specification/#updatebat","text":"\u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u521d\u59cb \u521d\u59cb\u5316 \uff1b \u83b7\u53d6 \u6700\u65b0 \u7684 \u8d44\u4ea7 \u5305 \uff1b \u4e0b\u8f7d \u5e76 \u89e3\u538b \u8d44\u4ea7 \u5185\u5bb9 \uff1b \u5982\u679c \u4e0d \u5b58\u5728 7zip \u5c31 \u7528 powershell - Command \" Expand - Archive ' \u547d\u4ee4 \u8fdb\u884c \u89e3\u538b \u3002","title":"Update . bat"},{"location":"file_specification/#makefile","text":"make PythonAPI \u6267\u884c Util / BuildTools / BuildPythonAPI . bat \uff0c \u771f\u6b63 \u6267\u884c \u7684 \u662f python setup . py bdist _ egg bdist _ wheel \uff0c \u5728 PythonAPI / carla / dist \u76ee\u5f55 \u4e0b \u751f\u6210 * . egg \u548c * . whl \u6587\u4ef6 \uff1b make launch \u6267\u884c Makefile \uff0c \u8c03\u7528 Util / BuildTools / Windows . mk \uff0c \u771f\u6b63 \u6267\u884c \u7684 \u662f BuildLibCarla . bat \uff0c \u6784\u5efa LibCarla \u7684 \u670d\u52a1 \u670d\u52a1\u7aef \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1b","title":"Makefile"},{"location":"file_specification/#build","text":"Xerces \u662f \u7531 Apache \u7ec4\u7ec7 \u6240 \u63a8\u52a8 \u7684 \u4e00\u9879 XML \u6587\u6863 \u89e3\u6790 \u5f00\u6e90 \u9879\u76ee \u3002 SQLite \u662f \u4e00\u6b3e \u8f7b\u578b \u7684 \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \uff0c \u662f \u9075\u5b88 ACID \u7684 \u5173\u7cfb \u578b \u6570\u636e \u636e\u5e93 \u6570\u636e\u5e93 \u7ba1\u7406 \u7cfb\u7edf \u7ba1\u7406\u7cfb \u7ba1\u7406\u7cfb\u7edf \uff0c \u5b83 \u5305\u542b \u5728 \u4e00\u4e2a \u76f8\u5bf9 \u5c0f \u7684 C \u5e93\u4e2d \u3002 PROJ \u662f \u4e00\u79cd \u901a\u7528 \u5750\u6807 \u8f6c\u6362 \u8f6f\u4ef6 \uff0c \u5b83 \u5c06 \u5750\u6807 \u4ece \u4e00\u4e2a \u5750\u6807 \u53c2\u8003 \u53c2\u8003\u7cfb \uff08 CRS \uff09 \u8f6c\u6362 \u4e3a \u53e6 \u4e00\u4e2a \u5750\u6807 \u53c2\u8003 \u53c2\u8003\u7cfb \u3002 \u8fd9 \u5305\u62ec \u5730\u56fe \u6295\u5f71 \u5730\u56fe\u6295\u5f71 \u548c \u5927\u5730 \u5750\u6807 \u53d8\u6362 \u3002","title":"Build"},{"location":"foundations/","text":"\u57fa\u7840 \u672c\u9875 \u4ecb\u7ecd \u4e86 \u4e86\u89e3 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5982\u4f55 \u901a\u8fc7 API \u8fdb\u884c \u64cd\u4f5c \u548c \u901a\u4fe1 \u6240 \u9700 \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 Carla \u4f7f\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u8fd0\u884c \uff0c \u5176\u4e2d Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u5e76 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u5176 \u53d1\u9001 \u6307\u4ee4 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u4f7f\u7528 API \u4e0e \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u8981 \u4f7f\u7528 Python API \uff0c \u60a8 \u5fc5\u987b \u901a\u8fc7 pip \u5b89\u88c5 \u8be5 \u6a21\u5757 \uff1a pip install carla - simulator # Python 2 pip3 install carla - simulator # Python 3 \u8fd8\u8981 \u786e\u4fdd \u5728 python \u811a\u672c \u4e2d \u5bfc\u5165 Carla \u5305 \uff1a import carla \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e16\u754c \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u4eff\u771f \u56de\u653e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u662f \u7528\u6237 \u8fd0\u884c \u4ee5 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u4fe1\u606f \u6216 \u66f4\u6539 \u7684 \u6a21\u5757 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f7f\u7528 IP \u548c \u7279\u5b9a \u7aef\u53e3 \u8fd0\u884c \u3002 \u5b83 \u901a\u8fc7 \u7ec8\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u6709 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u540c\u65f6 \u8fd0\u884c \u3002 \u9ad8\u7ea7 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7ba1\u7406 \u9700\u8981 \u5bf9 Carla \u548c \u540c\u6b65 \u6709 \u900f\u5f7b \u7684 \u4e86\u89e3 \u3002 \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a client = carla . Client ( ' localhost ' , 2000 ) \u8fd9\u4f1a \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \u4e3a \u4e0e \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a localhost \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u6216\u8005 \uff0c \u5982\u679c \u5728 \u5355\u72ec \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u7f51\u7edc \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7f51\u7edc\u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u6570 \u662f \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5728 \u7aef\u53e3 2000 \u4e0a \u8fd0\u884c \uff0c \u5982 \u6709 \u5fc5\u8981 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u542f\u52a8 Carla \u65f6 \u5728 \u8bbe\u7f6e \u4e2d \u66f4\u6539 \u6b64 \u8bbe\u7f6e \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u53ef \u7528\u4e8e \u591a\u79cd \u529f\u80fd \uff0c \u5305\u62ec \u52a0\u8f7d \u65b0 \u5730\u56fe \u3001 \u8bb0\u5f55 \u4eff\u771f \u548c \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a client . load _ world ( ' Town07 ' ) client . start _ recorder ( ' recording . log ' ) \u4e16\u754c \u4e16\u754c \u662f \u4ee3\u8868 \u4eff\u771f \u7684 \u5bf9\u8c61 \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u62bd\u8c61 \u5c42 \uff0c \u5305\u542b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u6539\u53d8 \u5929\u6c14 \u3001 \u83b7\u53d6 \u4e16\u754c \u5f53\u524d \u72b6\u6001 \u7b49 \u7684 \u4e3b\u8981 \u65b9\u6cd5 \u3002 \u6bcf\u4e2a \u4eff\u771f \u53ea\u6709 \u4e00\u4e2a \u4e16\u754c \u3002 \u5f53 \u5730\u56fe \u6539\u53d8 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u6467\u6bc1 \u5e76 \u66ff\u6362 \u4e3a \u65b0 \u7684 \u3002 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u68c0\u7d22 \u4e16\u754c \u5bf9\u8c61 \uff1a world = client . get _ world ( ) \u4e16\u754c \u5bf9\u8c61 \u53ef \u7528\u4e8e \u4f7f\u7528 \u5176 \u591a\u79cd \u65b9\u6cd5 \u8bbf\u95ee \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5929\u6c14 \u3001 \u8f66\u8f86 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u5730\u56fe \uff1a level = world . get _ map ( ) weather = world . get _ weather ( ) blueprint _ library = world . get _ blueprint _ library ( ) \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u84dd\u56fe \u6f14\u5458 \u662f \u5728 \u4eff\u771f \u4e2d \u626e\u6f14 \u89d2\u8272 \u7684 \u4efb\u4f55 \u4e1c\u897f \u3002 \u8f66\u8f86 \u884c\u4eba \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u4f17 \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u662f \u751f\u6210 \u89d2\u8272 \u6240 \u5fc5\u9700 \u7684 \u5df2\u7ecf \u5236\u4f5c \u597d \u7684 \u89d2\u8272 \u5e03\u5c40 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7ec4 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c5e\u6027 \u53ef\u4ee5 \u7531 \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u80fd \u3002 \u6709 \u4e00\u4e2a Blueprint \u5e93 \uff0c \u5176\u4e2d \u5305\u542b \u6240\u6709 \u53ef\u7528 \u7684 \u84dd\u56fe \u4ee5\u53ca \u6709\u5173 \u5b83\u4eec \u7684 \u4fe1\u606f \u3002 \u5730\u56fe \u548c \u5bfc\u822a \u5730\u56fe \u662f \u4ee3\u8868 \u4eff\u771f \u4e16\u754c \u7684 \u5bf9\u8c61 \uff0c \u4e3b\u8981 \u662f \u57ce\u9547 \u3002 \u6709 \u516b\u5f20 \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5b83\u4eec \u90fd \u4f7f\u7528 opdrive 1.4 \u6807\u51c6 \u6765 \u63cf\u8ff0 \u9053\u8def \u3002 \u9053\u8def \u3001 \u8f66\u9053 \u548c \u8def\u53e3 \u7531 Python API \u7ba1\u7406 \uff0c \u4ee5\u4fbf \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbf\u95ee \u3002 \u8fd9\u4e9b \u4e0e waypoint \u7c7b \u4e00\u8d77 \u4f7f\u7528 \uff0c \u4e3a \u8f66\u8f86 \u63d0\u4f9b \u5bfc\u822a \u8def\u5f84 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u662f \u53ef \u8bbf\u95ee \u7684 carla . Landmark \u3002 \u8fd9\u4e9b \u5730\u6807 \u5bf9\u8c61 \u5305\u542b \u5173\u4e8e \u5b83\u4eec \u7684 OpenDRIVE \u5b9a\u4e49 \u7684 \u4fe1\u606f \u3002 \u6b64\u5916 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5728 \u8fd0\u884c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u505c\u8f66 \u6807\u5fd7 \u3001 \u8ba9 \u884c \u6807\u5fd7 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5bf9\u8c61 \uff0c \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u4f1a \u653e\u7f6e \u5728 \u9053\u8def \u4e0a \uff0c \u6709 \u8fb9\u754c \u6846 \u5305\u56f4 \u3002 \u4e00\u65e6 \u8f66\u8f86 \u8fdb\u5165 \u5b83\u4eec \u7684 \u8fb9\u754c \u6846 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u610f\u8bc6 \u5230 \u8fd9\u4e9b \u5bf9\u8c61 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6570\u636e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49\u5f85 \u4e00\u4e9b \u4e8b\u4ef6 \u53d1\u751f \uff0c \u7136\u540e \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u6570\u636e \u3002 \u5b83\u4eec \u8c03\u7528 \u5b9a\u4e49 \u5982\u4f55 \u7ba1\u7406 \u6570\u636e \u7684 \u51fd\u6570 \u3002 \u6839\u636e \u4e0d\u540c \u7684 \u60c5\u51b5 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u9644\u7740 \u5728 \u7236 \u8f66\u8f86 \u4e0a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u8ddf\u968f \u8f66\u8f86 \uff0c \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7531 Blueprint \u5e93 \u4e2d \u7684 \u84dd\u56fe \u5b9a\u4e49 \u3002 \u76f8\u673a ( RGB \uff0c \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 ) \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 Gnss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c04\u7ebf \u6295\u5c04 \u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u969c\u788d \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe RSS \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f Carla \u5177\u6709 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u4fe1\u606f \u5e76 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u66f4\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u672c\u8d28 \u4e0a \uff0c \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f1a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u5ba2\u6237 \u8bf7\u6c42 \u662f \u5373\u65f6 \u5904\u7406 \u7684 \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8fd0\u884c Python \u4ee3\u7801 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u63a7\u5236 \u5e76 \u544a\u8bc9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f55\u65f6 \u66f4\u65b0 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u5b9e\u9a8c \u6216 \u8bbe\u7f6e \u4eff\u771f \uff0c \u5f02\u6b65 \u6a21\u5f0f \u662f \u8fd0\u884c Carla \u7684 \u5408\u9002 \u6a21\u5f0f \uff0c \u56e0\u6b64 \u60a8 \u53ef\u4ee5 \u5728 \u653e\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u5728 \u5730\u56fe \u4e0a \u98de\u884c \u3002 \u5f53 \u60a8 \u60f3\u8981 \u5f00\u59cb \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \u6216 \u5728 \u4eff\u771f \u4e2d \u90e8\u7f72 \u667a\u80fd \u4f53\u65f6 \uff0c \u5efa\u8bae \u5efa\u8bae\u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a \u8fd9 \u5c06 \u4e3a \u60a8 \u63d0\u4f9b \u66f4 \u591a \u7684 \u63a7\u5236 \u63a7\u5236\u529b \u548c \u9884\u6d4b \u6d4b\u6027 \u9884\u6d4b\u6027 \u53ef\u9884\u6d4b\u6027 \u3002 \u9605\u8bfb \u6709\u5173 \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u4e2d \uff0c \u53ea\u6709 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u8be5 \u53d1\u51fa \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9 \u6536\u5230 \u7684 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u505a\u51fa \u54cd\u5e94 \uff0c \u5c31 \u597d\u50cf \u5b83 \u6765\u81ea \u540c\u4e00 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u6837 \u3002 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u6ef4\u7b54 \u4fe1\u53f7 \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u4ea7\u751f \u4e0d \u4e00\u81f4 \u3002 \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u7684 \u66f4\u6539 \u53ea\u662f \u5e03\u5c14 \u72b6\u6001 \u7684 \u95ee\u9898 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u672c\u6587 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a False \u6216 \u4f7f\u7528 \u811a\u672c PythonAPI / util / config . py \u3002 cd PythonAPI / util && python3 config . py -- no - sync # \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u65e0\u6cd5 \u4f7f\u7528 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u4f7f\u7528 \u6b64 \u811a\u672c \uff0c \u7528\u6237 \u65e0\u6cd5 \u5728 \u9700\u8981 \u65f6 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u4e0e \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \u4e4b\u95f4 \u7684 \u540c\u6b65 \u65f6 \u7279\u522b \u76f8\u5173 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ca1\u6709 \u7b49\u5f85 \uff0c \u5c31 \u4f1a \u51fa\u73b0 \u4fe1\u606f \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u4e00\u5207 \uff0c \u5e76\u4e14 \u4f1a \u4e22\u5931 \u6216 \u6df7\u5408 \u3002 \u540c\u6837 \uff0c \u5bf9\u4e8e \u8bb8\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u60c5\u51b5 \uff0c \u4e0d \u53ef\u80fd \u77e5\u9053 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u90fd \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u4e2a \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u7ed9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u7684 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u751f\u6210 \u3002 \u540c\u6b65 \u5728 \u8fd9\u91cc \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4e16\u754c \u4e0a \u6709 \u5f02\u6b65 \u65b9\u6cd5 \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u6216\u8005 \u5728 \u6536\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u5e76 \u83b7\u53d6 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u5feb\u7167 world _ snapshot = world . wait _ for _ tick ( ) # \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u6536\u5230 \u65b0 \u7684 \u5feb\u7167 \u65f6 \u90fd \u88ab \u8c03\u7528 \u3002 world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) ) \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u5c06 \u91cd\u73b0 \u5148\u524d \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u6570\u636e \u4fdd\u5b58 \u5230 \u6587\u4ef6 \u4e2d \u3002 \u8fd9\u4e9b \u6570\u636e \u5305\u62ec \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3001 \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u4ee5\u53ca \u592a\u9633 \u7684 \u4f4d\u7f6e \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u6570\u636e \u88ab \u8bb0\u5f55 \u5230 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a0d\u540e \u53ef\u4ee5 \u52a0\u8f7d \u8be5 \u6587\u4ef6 \u4ee5 \u51c6\u786e \u5730 \u518d\u73b0 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u5728 \u6bcf \u4e00\u5e27 \u4e0a \u8fdb\u884c \u66f4\u65b0 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u8bb0\u5f55 \u4e2d \u7684 \u4eba\u4f1a \u7ee7\u7eed \u4ed6\u4eec \u7684 \u8def \uff0c \u5c31 \u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u4e0d\u4f1a \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u2014 \u521b\u9020 \u548c \u6467\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u76d2 \u3002 \u4ea4\u901a \u7b49 \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u8bb0\u5f55 \u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ , / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c additional _ data \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u8bb0\u5f55 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002 \u4eff\u771f \u56de\u653e \u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \u4e4b\u5916 \uff0c \u6b64 \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u63cf\u8ff0 \u7b14\u8bb0 start \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5982\u679c \u4e3a \u6b63 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u7b97 \u8d77 \u3002 \u5982\u679c \u4e3a \u8d1f \uff0c \u5219 \u4ece \u6700\u540e \u8003\u8651 \u3002 duration \u64ad\u653e \u79d2\u6570 \u3002 0 \u4e3a \u5168\u90e8 \u8bb0\u5f55 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 camera \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u662f \u8ba9 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u81ea\u7531 \u79fb\u52a8 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ee5 \u672c \u6587\u6863 \u4e2d \u6307\u5b9a \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u4fdd\u5b58 \u6240\u6709 \u6570\u636e \u3002 \u6e32\u67d3 Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u6709\u5173 \u6e32\u67d3 \u8d28\u91cf \u548c \u6548\u7387 \u7684 \u9009\u9879 \u3002 \u5728 \u6700 \u57fa\u672c \u7684 \u5c42\u9762 \u4e0a \uff0c Carla \u63d0\u4f9b \u4e86 \u4e24\u79cd \u8d28\u91cf \u9009\u9879 \uff0c \u53ef\u4ee5 \u5728 \u9ad8 \u89c4\u683c \u548c \u4f4e \u89c4\u683c \u786c\u4ef6 \u4e0a \u8fd0\u884c \u5e76 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u6548\u679c \uff1a \u53f2\u8bd7 \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f . / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe Carla \u8fd8 \u63d0\u4f9b \u6682\u505c \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u9009\u9879 \uff0c \u4ee5\u4fbf \u66f4 \u6709\u6548 \u5730 \u8bb0\u5f55 \u6216 \u8fd0\u884c \u4eff\u771f \u3002 \u6709\u5173 \u6e32\u67d3 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002 \u8fdb\u9636 \u6b65\u9aa4 Carla \u63d0\u4f9b \u4e86 \u5e7f\u6cdb \u7684 \u529f\u80fd \uff0c \u8d85\u51fa \u4e86 \u672c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ecb\u7ecd \u7684 \u8303\u56f4 \u3002 \u8fd9\u91cc \u5217\u51fa \u4e86 \u4e00\u4e9b \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u3002 \u7136\u800c \uff0c \u5728 \u5f00\u59cb \u8fdb\u9636 \u6b65\u9aa4 \u4e4b\u524d \uff0c \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u9605\u8bfb \u6574\u4e2a \u201c \u57fa\u7840 \u201d \u90e8\u5206 \u3002 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u683c \u3002 \u5141\u8bb8 \u5728 Carla \u4e2d \u52a0\u8f7d \u4efb\u4f55 OpenDRIVE \u5730\u56fe \uff0c \u65e0\u9700 \u521b\u5efa \u8d44\u6e90 \u3002 PTV - Vissim \u534f\u540c \u4eff\u771f \u3002 \u5728 Carla \u548c PTV - Vissim \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u5f55\u5236 \u5668 \u3002 \u4fdd\u5b58 \u4eff\u771f \u72b6\u6001 \u7684 \u5feb\u7167 \uff0c \u4ee5\u4fbf \u4ee5 \u7cbe\u786e \u7684 \u7cbe\u5ea6 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u3002 \u6e32\u67d3 \u9009\u9879 \u3002 \u5305\u62ec \u56fe\u5f62 \u8d28\u91cf \u8bbe\u7f6e \u3001 \u79bb\u5c4f \u6e32\u67d3 \u548c \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u3002 RSS \uff08 Responsibility Sensitive Safety \uff09 \uff1a \u96c6\u6210 \u7528\u4e8e \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u8f66\u8f86 \u8f68\u8ff9 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b89\u5168\u6027 C++ \u5e93 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u540c\u6b65 \u3002 \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u4fe1 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 SUMO \u534f\u540c \u4eff\u771f \uff1a \u5728 Carla \u548c SUMO \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6240\u6709 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u7684 \u8f66\u8f86 \u3002 \u5b83 \u4eff\u771f \u57ce\u5e02 \u4e2d \u7684 \u4ea4\u901a \uff0c \u4f7f \u4eff\u771f \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u4e00\u4e2a \u771f\u5b9e \u7684 \u57ce\u5e02 \u73af\u5883 \u3002","title":"\u6982\u5ff5 \u548c \u57fa\u7840"},{"location":"foundations/#_1","text":"\u672c\u9875 \u4ecb\u7ecd \u4e86 \u4e86\u89e3 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5982\u4f55 \u901a\u8fc7 API \u8fdb\u884c \u64cd\u4f5c \u548c \u901a\u4fe1 \u6240 \u9700 \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u3002 Carla \u4f7f\u7528 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u8fd0\u884c \uff0c \u5176\u4e2d Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u5e76 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u5176 \u53d1\u9001 \u6307\u4ee4 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4ee3\u7801 \u4f7f\u7528 API \u4e0e \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u8981 \u4f7f\u7528 Python API \uff0c \u60a8 \u5fc5\u987b \u901a\u8fc7 pip \u5b89\u88c5 \u8be5 \u6a21\u5757 \uff1a pip install carla - simulator # Python 2 pip3 install carla - simulator # Python 3 \u8fd8\u8981 \u786e\u4fdd \u5728 python \u811a\u672c \u4e2d \u5bfc\u5165 Carla \u5305 \uff1a import carla \u4e16\u754c \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e16\u754c \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u4eff\u771f \u56de\u653e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f","title":"\u57fa\u7840"},{"location":"foundations/#_2","text":"","title":"\u4e16\u754c \u548c \u5ba2\u6237\u7aef"},{"location":"foundations/#_3","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u662f \u7528\u6237 \u8fd0\u884c \u4ee5 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u4fe1\u606f \u6216 \u66f4\u6539 \u7684 \u6a21\u5757 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f7f\u7528 IP \u548c \u7279\u5b9a \u7aef\u53e3 \u8fd0\u884c \u3002 \u5b83 \u901a\u8fc7 \u7ec8\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u6709 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u540c\u65f6 \u8fd0\u884c \u3002 \u9ad8\u7ea7 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7ba1\u7406 \u9700\u8981 \u5bf9 Carla \u548c \u540c\u6b65 \u6709 \u900f\u5f7b \u7684 \u4e86\u89e3 \u3002 \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \uff1a client = carla . Client ( ' localhost ' , 2000 ) \u8fd9\u4f1a \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \u4e3a \u4e0e \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a localhost \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u8fdb\u884c \u670d\u52a1\u5668 \u670d\u52a1\u5668\u8fdb\u884c \u901a\u4fe1 \u3002 \u6216\u8005 \uff0c \u5982\u679c \u5728 \u5355\u72ec \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5219 \u53ef\u4ee5 \u4f7f\u7528 \u7f51\u7edc \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7f51\u7edc\u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u6570 \u662f \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u5728 \u7aef\u53e3 2000 \u4e0a \u8fd0\u884c \uff0c \u5982 \u6709 \u5fc5\u8981 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u542f\u52a8 Carla \u65f6 \u5728 \u8bbe\u7f6e \u4e2d \u66f4\u6539 \u6b64 \u8bbe\u7f6e \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u53ef \u7528\u4e8e \u591a\u79cd \u529f\u80fd \uff0c \u5305\u62ec \u52a0\u8f7d \u65b0 \u5730\u56fe \u3001 \u8bb0\u5f55 \u4eff\u771f \u548c \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a client . load _ world ( ' Town07 ' ) client . start _ recorder ( ' recording . log ' )","title":"\u5ba2\u6237\u7aef"},{"location":"foundations/#_4","text":"\u4e16\u754c \u662f \u4ee3\u8868 \u4eff\u771f \u7684 \u5bf9\u8c61 \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u62bd\u8c61 \u5c42 \uff0c \u5305\u542b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u6539\u53d8 \u5929\u6c14 \u3001 \u83b7\u53d6 \u4e16\u754c \u5f53\u524d \u72b6\u6001 \u7b49 \u7684 \u4e3b\u8981 \u65b9\u6cd5 \u3002 \u6bcf\u4e2a \u4eff\u771f \u53ea\u6709 \u4e00\u4e2a \u4e16\u754c \u3002 \u5f53 \u5730\u56fe \u6539\u53d8 \u65f6 \uff0c \u5b83\u4f1a \u88ab \u6467\u6bc1 \u5e76 \u66ff\u6362 \u4e3a \u65b0 \u7684 \u3002 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u68c0\u7d22 \u4e16\u754c \u5bf9\u8c61 \uff1a world = client . get _ world ( ) \u4e16\u754c \u5bf9\u8c61 \u53ef \u7528\u4e8e \u4f7f\u7528 \u5176 \u591a\u79cd \u65b9\u6cd5 \u8bbf\u95ee \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5929\u6c14 \u3001 \u8f66\u8f86 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u5730\u56fe \uff1a level = world . get _ map ( ) weather = world . get _ weather ( ) blueprint _ library = world . get _ blueprint _ library ( )","title":"\u4e16\u754c"},{"location":"foundations/#_5","text":"\u6f14\u5458 \u662f \u5728 \u4eff\u771f \u4e2d \u626e\u6f14 \u89d2\u8272 \u7684 \u4efb\u4f55 \u4e1c\u897f \u3002 \u8f66\u8f86 \u884c\u4eba \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u89c2\u4f17 \u4ea4\u901a \u901a\u4fe1 \u4fe1\u53f7 \u4ea4\u901a\u4fe1\u53f7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u662f \u751f\u6210 \u89d2\u8272 \u6240 \u5fc5\u9700 \u7684 \u5df2\u7ecf \u5236\u4f5c \u597d \u7684 \u89d2\u8272 \u5e03\u5c40 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u662f \u5e26\u6709 \u52a8\u753b \u548c \u4e00\u7ec4 \u5c5e\u6027 \u7684 \u6a21\u578b \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c5e\u6027 \u53ef\u4ee5 \u7531 \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u800c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u80fd \u3002 \u6709 \u4e00\u4e2a Blueprint \u5e93 \uff0c \u5176\u4e2d \u5305\u542b \u6240\u6709 \u53ef\u7528 \u7684 \u84dd\u56fe \u4ee5\u53ca \u6709\u5173 \u5b83\u4eec \u7684 \u4fe1\u606f \u3002","title":"\u53c2\u4e0e\u8005 \u548c \u84dd\u56fe"},{"location":"foundations/#_6","text":"\u5730\u56fe \u662f \u4ee3\u8868 \u4eff\u771f \u4e16\u754c \u7684 \u5bf9\u8c61 \uff0c \u4e3b\u8981 \u662f \u57ce\u9547 \u3002 \u6709 \u516b\u5f20 \u5730\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5b83\u4eec \u90fd \u4f7f\u7528 opdrive 1.4 \u6807\u51c6 \u6765 \u63cf\u8ff0 \u9053\u8def \u3002 \u9053\u8def \u3001 \u8f66\u9053 \u548c \u8def\u53e3 \u7531 Python API \u7ba1\u7406 \uff0c \u4ee5\u4fbf \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbf\u95ee \u3002 \u8fd9\u4e9b \u4e0e waypoint \u7c7b \u4e00\u8d77 \u4f7f\u7528 \uff0c \u4e3a \u8f66\u8f86 \u63d0\u4f9b \u5bfc\u822a \u8def\u5f84 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u662f \u53ef \u8bbf\u95ee \u7684 carla . Landmark \u3002 \u8fd9\u4e9b \u5730\u6807 \u5bf9\u8c61 \u5305\u542b \u5173\u4e8e \u5b83\u4eec \u7684 OpenDRIVE \u5b9a\u4e49 \u7684 \u4fe1\u606f \u3002 \u6b64\u5916 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5728 \u8fd0\u884c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u505c\u8f66 \u6807\u5fd7 \u3001 \u8ba9 \u884c \u6807\u5fd7 \u548c \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u5bf9\u8c61 \uff0c \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u4fe1\u606f \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u4f1a \u653e\u7f6e \u5728 \u9053\u8def \u4e0a \uff0c \u6709 \u8fb9\u754c \u6846 \u5305\u56f4 \u3002 \u4e00\u65e6 \u8f66\u8f86 \u8fdb\u5165 \u5b83\u4eec \u7684 \u8fb9\u754c \u6846 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u610f\u8bc6 \u5230 \u8fd9\u4e9b \u5bf9\u8c61 \u3002","title":"\u5730\u56fe \u548c \u5bfc\u822a"},{"location":"foundations/#_7","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7b49\u5f85 \u4e00\u4e9b \u4e8b\u4ef6 \u53d1\u751f \uff0c \u7136\u540e \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u6570\u636e \u3002 \u5b83\u4eec \u8c03\u7528 \u5b9a\u4e49 \u5982\u4f55 \u7ba1\u7406 \u6570\u636e \u7684 \u51fd\u6570 \u3002 \u6839\u636e \u4e0d\u540c \u7684 \u60c5\u51b5 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u9644\u7740 \u5728 \u7236 \u8f66\u8f86 \u4e0a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u8ddf\u968f \u8f66\u8f86 \uff0c \u6536\u96c6 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7531 Blueprint \u5e93 \u4e2d \u7684 \u84dd\u56fe \u5b9a\u4e49 \u3002 \u76f8\u673a ( RGB \uff0c \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 ) \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 Gnss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c04\u7ebf \u6295\u5c04 \u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u969c\u788d \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe RSS","title":"\u4f20\u611f\u5668 \u548c \u6570\u636e"},{"location":"foundations/#_8","text":"Carla \u5177\u6709 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \u4eff\u771f \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u68c0\u7d22 \u4fe1\u606f \u5e76 \u8bf7\u6c42 \u4eff\u771f \u4e2d \u7684 \u66f4\u6539 \u3002 \u672c \u8282 \u6d89\u53ca \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u901a\u4fe1 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c Carla \u4ee5 \u5f02\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u672c\u8d28 \u4e0a \uff0c \u5728 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f1a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb\u5730 \u8fd0\u884c \u3002 \u5ba2\u6237 \u8bf7\u6c42 \u662f \u5373\u65f6 \u5904\u7406 \u7684 \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u8fd0\u884c Python \u4ee3\u7801 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u63a7\u5236 \u5e76 \u544a\u8bc9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f55\u65f6 \u66f4\u65b0 \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u5b9e\u9a8c \u6216 \u8bbe\u7f6e \u4eff\u771f \uff0c \u5f02\u6b65 \u6a21\u5f0f \u662f \u8fd0\u884c Carla \u7684 \u5408\u9002 \u6a21\u5f0f \uff0c \u56e0\u6b64 \u60a8 \u53ef\u4ee5 \u5728 \u653e\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u5728 \u5730\u56fe \u4e0a \u98de\u884c \u3002 \u5f53 \u60a8 \u60f3\u8981 \u5f00\u59cb \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \u6216 \u5728 \u4eff\u771f \u4e2d \u90e8\u7f72 \u667a\u80fd \u4f53\u65f6 \uff0c \u5efa\u8bae \u5efa\u8bae\u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u56e0\u4e3a \u8fd9 \u5c06 \u4e3a \u60a8 \u63d0\u4f9b \u66f4 \u591a \u7684 \u63a7\u5236 \u63a7\u5236\u529b \u548c \u9884\u6d4b \u6d4b\u6027 \u9884\u6d4b\u6027 \u53ef\u9884\u6d4b\u6027 \u3002 \u9605\u8bfb \u6709\u5173 \u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u7b14\u8bb0 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u67b6\u6784 \u4e2d \uff0c \u53ea\u6709 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u8be5 \u53d1\u51fa \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5bf9 \u6536\u5230 \u7684 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u505a\u51fa \u54cd\u5e94 \uff0c \u5c31 \u597d\u50cf \u5b83 \u6765\u81ea \u540c\u4e00 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u6837 \u3002 \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u6ef4\u7b54 \u4fe1\u53f7 \u5c06 \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u4ea7\u751f \u4e0d \u4e00\u81f4 \u3002","title":"\u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f"},{"location":"foundations/#_9","text":"\u540c\u6b65 \u6a21\u5f0f \u548c \u5f02\u6b65 \u6a21\u5f0f \u4e4b\u95f4 \u7684 \u66f4\u6539 \u53ea\u662f \u5e03\u5c14 \u72b6\u6001 \u7684 \u95ee\u9898 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True # \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u8b66\u544a \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u672c\u6587 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 \u8981 \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u53ea \u9700 \u5c06 \u53d8\u91cf \u8bbe\u7f6e \u4e3a False \u6216 \u4f7f\u7528 \u811a\u672c PythonAPI / util / config . py \u3002 cd PythonAPI / util && python3 config . py -- no - sync # \u7981\u7528 \u540c\u6b65 \u6a21\u5f0f \u540c\u6b65 \u6a21\u5f0f \u65e0\u6cd5 \u4f7f\u7528 \u811a\u672c \u542f\u7528 \uff0c \u53ea\u80fd \u7981\u7528 \u3002 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u4f7f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u4f7f\u7528 \u6b64 \u811a\u672c \uff0c \u7528\u6237 \u65e0\u6cd5 \u5728 \u9700\u8981 \u65f6 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u3002","title":"\u8bbe\u7f6e \u540c\u6b65 \u6a21\u5f0f"},{"location":"foundations/#_10","text":"\u540c\u6b65 \u6a21\u5f0f \u4e0e \u7f13\u6162 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4ee5\u53ca \u9700\u8981 \u4e0d\u540c \u5143\u7d20 \uff08 \u4f8b\u5982 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff09 \u4e4b\u95f4 \u7684 \u540c\u6b65 \u65f6 \u7279\u522b \u76f8\u5173 \u3002 \u5982\u679c \u5ba2\u6237 \u5ba2\u6237\u7aef \u592a\u6162 \u800c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ca1\u6709 \u7b49\u5f85 \uff0c \u5c31 \u4f1a \u51fa\u73b0 \u4fe1\u606f \u6ea2\u51fa \u3002 \u5ba2\u6237 \u5c06 \u65e0\u6cd5 \u7ba1\u7406 \u4e00\u5207 \uff0c \u5e76\u4e14 \u4f1a \u4e22\u5931 \u6216 \u6df7\u5408 \u3002 \u540c\u6837 \uff0c \u5bf9\u4e8e \u8bb8\u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5f02\u6b65 \u60c5\u51b5 \uff0c \u4e0d \u53ef\u80fd \u77e5\u9053 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f\u5426 \u90fd \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u540c\u4e00 \u65f6\u523b \u7684 \u6570\u636e \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u6269\u5c55 \u4e86 \u524d \u4e00\u4e2a \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5c06 \u5f53\u524d \u6b65\u9aa4 \u7684 \u56fe\u50cf \u6570\u636e \u5b58\u50a8 \u5728 \u961f\u5217 \u4e2d \uff0c \u5e76 \u4ece \u961f\u5217 \u4e2d \u68c0\u7d22 \u540e \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \u7ed9 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u591a\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u590d\u6742 \u7684 \u793a\u4f8b \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) camera = world . spawn _ actor ( blueprint , transform ) image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) while True : world . tick ( ) image = image _ queue . get ( ) \u91cd\u8981 \u6765\u81ea \u57fa\u4e8e GPU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4e3b\u8981 \u662f \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u7684 \u6570\u636e \u901a\u5e38 \u4f1a \u5ef6\u8fdf \u51e0\u5e27 \u751f\u6210 \u3002 \u540c\u6b65 \u5728 \u8fd9\u91cc \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u4e16\u754c \u4e0a \u6709 \u5f02\u6b65 \u65b9\u6cd5 \u53ef\u4ee5 \u8ba9 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u6216\u8005 \u5728 \u6536\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u6267\u884c \u67d0\u4e9b \u64cd\u4f5c \u3002 # \u7b49\u5f85 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u5e76 \u83b7\u53d6 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u5feb\u7167 world _ snapshot = world . wait _ for _ tick ( ) # \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u6536\u5230 \u65b0 \u7684 \u5feb\u7167 \u65f6 \u90fd \u88ab \u8c03\u7528 \u3002 world . on _ tick ( lambda world _ snapshot : do _ something ( world _ snapshot ) )","title":"\u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f"},{"location":"foundations/#_11","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u5c06 \u91cd\u73b0 \u5148\u524d \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u6570\u636e \u4fdd\u5b58 \u5230 \u6587\u4ef6 \u4e2d \u3002 \u8fd9\u4e9b \u6570\u636e \u5305\u62ec \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3001 \u884c\u4eba \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u4ee5\u53ca \u592a\u9633 \u7684 \u4f4d\u7f6e \u548c \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u6570\u636e \u88ab \u8bb0\u5f55 \u5230 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a0d\u540e \u53ef\u4ee5 \u52a0\u8f7d \u8be5 \u6587\u4ef6 \u4ee5 \u51c6\u786e \u5730 \u518d\u73b0 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6839\u636e \u8bb0\u5f55 \u6587\u4ef6 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u5728 \u6bcf \u4e00\u5e27 \u4e0a \u8fdb\u884c \u66f4\u65b0 \u3002 \u5f53\u524d \u4eff\u771f \u4e2d \u51fa\u73b0 \u5728 \u5f55\u5236 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u88ab \u79fb\u52a8 \u6216 \u91cd\u65b0 \u751f\u6210 \u4ee5 \u4eff\u771f \u5b83 \u3002 \u90a3\u4e9b \u6ca1\u6709 \u51fa\u73b0 \u5728 \u8bb0\u5f55 \u4e2d \u7684 \u4eba\u4f1a \u7ee7\u7eed \u4ed6\u4eec \u7684 \u8def \uff0c \u5c31 \u50cf \u4ec0\u4e48 \u90fd \u6ca1 \u53d1\u751f \u4e00\u6837 \u3002 \u91cd\u8981 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u4f46 \u884c\u4eba \u4e0d\u4f1a \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u5305\u62ec \u6709\u5173 \u8bb8\u591a \u4e0d\u540c \u5143\u7d20 \u7684 \u4fe1\u606f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u2014 \u521b\u9020 \u548c \u6467\u6bc1 \u3001 \u8fb9\u754c \u548c \u89e6\u53d1 \u76d2 \u3002 \u4ea4\u901a \u7b49 \u2014 \u72b6\u6001 \u53d8\u5316 \u548c \u65f6\u95f4 \u8bbe\u7f6e \u3002 \u8f66\u8f86 \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3001 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u5149 \u72b6\u6001 \u548c \u7269\u7406 \u63a7\u5236 \u3002 \u884c\u4eba \u2014 \u4f4d\u7f6e \u548c \u65b9\u5411 \uff0c \u4ee5\u53ca \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u706f\u5149 \u2014 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u8857\u9053 \u548c \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002","title":"\u8bb0\u5f55\u5668"},{"location":"foundations/#_12","text":"\u8981 \u5f00\u59cb \u5f55\u5236 \uff0c \u53ea \u9700\u8981 \u4e00\u4e2a \u6587\u4ef6 \u6587\u4ef6\u540d \u3002 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u4f7f\u7528 \\ , / \u6216 : \u5b57\u7b26 \u4f1a \u5c06 \u5176 \u5b9a\u4e49 \u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 CarlaUE4 / Saved \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" ) \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u5b58\u50a8 \u56de\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u4e3a\u4e86 \u4fdd\u5b58 \u524d\u9762 \u63d0\u5230 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c additional _ data \u5fc5\u987b \u5728 \u5f00\u59cb \u5f55\u5236 \u65f6 \u914d\u7f6e \u53c2\u6570 \u3002 client . start _ recorder ( \" / home / carla / recording01 . log \" , True ) \u7b14\u8bb0 \u5176\u4ed6 \u6570\u636e \u5305\u62ec \uff1a \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u901f\u5ea6 \u7ebf\u901f\u5ea6 \u548c \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \u8bbe\u7f6e \u3001 \u6267\u884c \u65f6\u95f4 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u548c \u8fb9\u754c \u6846 \u4ee5\u53ca \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u8981 \u505c\u6b62 \u8bb0\u5f55 \uff0c \u8c03\u7528 \u4e5f \u5f88 \u7b80\u5355 \u3002 client . stop _ recorder ( ) \u7b14\u8bb0 \u4f30\u8ba1 \u636e\u4f30\u8ba1 \uff0c 50 \u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c 100 \u8f86\u8f66 \u7684 1 \u5c0f\u65f6 \u8bb0\u5f55 \u5927\u7ea6 \u9700\u8981 200MB \u5927\u5c0f \u3002","title":"\u8bb0\u5f55"},{"location":"foundations/#_13","text":"\u53ef\u4ee5 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \u5f00\u59cb \u64ad\u653e \u3002 \u9664\u4e86 \u65e5\u5fd7 \u6587\u4ef6 \u7684 \u8def\u5f84 \u4e4b\u5916 \uff0c \u6b64 \u65b9\u6cd5 \u8fd8 \u9700\u8981 \u4e00\u4e9b \u53c2\u6570 \u3002 client . replay _ file ( \" recording01 . log \" , start , duration , camera ) \u53c2\u6570 \u63cf\u8ff0 \u7b14\u8bb0 start \u8bb0\u5f55 \u5f00\u59cb \u4eff\u771f \u7684 \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5982\u679c \u4e3a \u6b63 \uff0c \u65f6\u95f4 \u5c06 \u4ece \u8bb0\u5f55 \u5f00\u59cb \u7b97 \u8d77 \u3002 \u5982\u679c \u4e3a \u8d1f \uff0c \u5219 \u4ece \u6700\u540e \u8003\u8651 \u3002 duration \u64ad\u653e \u79d2\u6570 \u3002 0 \u4e3a \u5168\u90e8 \u8bb0\u5f55 \u3002 \u64ad\u653e \u7ed3\u675f \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u884c\u4eba \u5c06 \u505c\u6b62 \u3002 camera \u76f8\u673a \u5c06 \u805a\u7126 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u662f \u8ba9 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u81ea\u7531 \u79fb\u52a8 \u3002","title":"\u4eff\u771f \u56de\u653e"},{"location":"foundations/#_14","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ee5 \u672c \u6587\u6863 \u4e2d \u6307\u5b9a \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u4fdd\u5b58 \u6240\u6709 \u6570\u636e \u3002","title":"\u8bb0\u5f55\u5668 \u6587\u4ef6\u683c\u5f0f"},{"location":"foundations/#_15","text":"Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u6709\u5173 \u6e32\u67d3 \u8d28\u91cf \u548c \u6548\u7387 \u7684 \u9009\u9879 \u3002 \u5728 \u6700 \u57fa\u672c \u7684 \u5c42\u9762 \u4e0a \uff0c Carla \u63d0\u4f9b \u4e86 \u4e24\u79cd \u8d28\u91cf \u9009\u9879 \uff0c \u53ef\u4ee5 \u5728 \u9ad8 \u89c4\u683c \u548c \u4f4e \u89c4\u683c \u786c\u4ef6 \u4e0a \u8fd0\u884c \u5e76 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u6548\u679c \uff1a","title":"\u6e32\u67d3"},{"location":"foundations/#_16","text":". / CarlaUE4 . sh - quality - level = Epic \u53f2\u8bd7 \u6a21\u5f0f \u622a\u56fe","title":"\u53f2\u8bd7 \u6a21\u5f0f"},{"location":"foundations/#_17","text":". / CarlaUE4 . sh - quality - level = Low \u4f4e\u8d28 \u8d28\u91cf \u4f4e\u8d28\u91cf \u6a21\u5f0f \u622a\u56fe Carla \u8fd8 \u63d0\u4f9b \u6682\u505c \u6e32\u67d3 \u6216 \u79bb\u5c4f \u6e32\u67d3 \u7684 \u9009\u9879 \uff0c \u4ee5\u4fbf \u66f4 \u6709\u6548 \u5730 \u8bb0\u5f55 \u6216 \u8fd0\u884c \u4eff\u771f \u3002 \u6709\u5173 \u6e32\u67d3 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002","title":"\u4f4e\u8d28\u91cf \u6a21\u5f0f"},{"location":"foundations/#_18","text":"Carla \u63d0\u4f9b \u4e86 \u5e7f\u6cdb \u7684 \u529f\u80fd \uff0c \u8d85\u51fa \u4e86 \u672c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4ecb\u7ecd \u7684 \u8303\u56f4 \u3002 \u8fd9\u91cc \u5217\u51fa \u4e86 \u4e00\u4e9b \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u3002 \u7136\u800c \uff0c \u5728 \u5f00\u59cb \u8fdb\u9636 \u6b65\u9aa4 \u4e4b\u524d \uff0c \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u9605\u8bfb \u6574\u4e2a \u201c \u57fa\u7840 \u201d \u90e8\u5206 \u3002 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u4ec5 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u683c \u3002 \u5141\u8bb8 \u5728 Carla \u4e2d \u52a0\u8f7d \u4efb\u4f55 OpenDRIVE \u5730\u56fe \uff0c \u65e0\u9700 \u521b\u5efa \u8d44\u6e90 \u3002 PTV - Vissim \u534f\u540c \u4eff\u771f \u3002 \u5728 Carla \u548c PTV - Vissim \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u5f55\u5236 \u5668 \u3002 \u4fdd\u5b58 \u4eff\u771f \u72b6\u6001 \u7684 \u5feb\u7167 \uff0c \u4ee5\u4fbf \u4ee5 \u7cbe\u786e \u7684 \u7cbe\u5ea6 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u3002 \u6e32\u67d3 \u9009\u9879 \u3002 \u5305\u62ec \u56fe\u5f62 \u8d28\u91cf \u8bbe\u7f6e \u3001 \u79bb\u5c4f \u6e32\u67d3 \u548c \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u3002 RSS \uff08 Responsibility Sensitive Safety \uff09 \uff1a \u96c6\u6210 \u7528\u4e8e \u6839\u636e \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u4fee\u6539 \u8f66\u8f86 \u8f68\u8ff9 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u5b89\u5168\u6027 C++ \u5e93 \u3002 \u4eff\u771f \u65f6\u95f4 \u548c \u540c\u6b65 \u3002 \u5173\u4e8e \u4eff\u771f \u65f6\u95f4 \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 - \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u4fe1 \u7684 \u6240\u6709 \u5185\u5bb9 \u3002 SUMO \u534f\u540c \u4eff\u771f \uff1a \u5728 Carla \u548c SUMO \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u8fd0\u884c \u540c\u6b65 \u4eff\u771f \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff1a \u8be5 \u6a21\u5757 \u8d1f\u8d23 \u6240\u6709 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u7684 \u8f66\u8f86 \u3002 \u5b83 \u4eff\u771f \u57ce\u5e02 \u4e2d \u7684 \u4ea4\u901a \uff0c \u4f7f \u4eff\u771f \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u4e00\u4e2a \u771f\u5b9e \u7684 \u57ce\u5e02 \u73af\u5883 \u3002","title":"\u8fdb\u9636 \u6b65\u9aa4"},{"location":"iss_install/","text":"\u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \uff08 ISS \uff09 \u662f \u4e00\u4e2a \u7528 Python \u548c C++ \u7f16\u5199 \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u6846\u67b6 \uff0c \u65e8\u5728 \u6784\u5efa \u4e00\u4e2a \u9002\u5408 \u7814\u7a76 \u7684 \u53ef \u6269\u5c55 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u611f\u77e5 \u3001 \u5b9a\u4f4d \u3001 \u6620\u5c04 \u3001 \u9884\u6d4b \u3001 \u89c4\u5212 \u548c \u63a7\u5236 \u3002 \u5bf9\u5916 \u5916\u90e8 \u5bf9\u5916\u90e8 \u5e93 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6700\u5c0f \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u8bbe\u8ba1 \u53ef\u4ee5 \u4e3a \u7814\u7a76 \u4eba\u5458 \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u900f\u660e \u3001 \u5e72\u51c0 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \u3002 ISS \u7684 \u4ee3\u7801 \u53ef\u4ee5 \u4ece \u5176 Github \u4ed3\u5e93 \u4e0b\u8f7d \uff0c \u5176\u4e2d \u53ef\u4ee5 \u627e\u5230 \u8be6\u7ec6 \u7684 \u5b89\u88c5 \u8bf4\u660e \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 ISS \u4f7f\u7528 Ubuntu 20.04 \u8fdb\u884c \u6d4b\u8bd5 \uff0c \u8fd0\u884c Python 3.8 \u3002 \u5bf9\u4e8e \u90a3\u4e9b \u6709 \u5174\u8da3 \u5c06 ISS \u4e0e Gazebo \u548c ROS - Noetic \u7ed3\u5408 \u4f7f\u7528 \u7684 \u4eba \uff0c \u60a8 \u5e94\u8be5 \u6309\u7167 \u5b98\u65b9 ROS \u6587\u6863 \u4e2d \u63d0\u4f9b \u7684 \u8bf4\u660e \u5b89\u88c5 ROS - Noetic \u3002 \u8981 \u5c06 ISS \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \uff0c \u5fc5\u987b \u5b89\u88c5 Carla \u3002 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u7248\u672c 0.9 . 13 \uff0c \u53ef\u4ee5 \u5728 Carla GitHub \u53d1\u5e03 \u9875\u9762 \u53d1\u5e03\u9875 \u53d1\u5e03\u9875\u9762 \u627e\u5230 \u8be5 \u7248\u672c \u3002 \u5b89\u88c5 \u5b89\u88c5 ROS Noetic , \u4ee5\u53ca \u4e0b\u8f7d \u76f8\u5173 \u4f9d\u8d56 : sudo apt - get install ros - noetic - navigation ros - noetic - gmapping ros - noetic - teb - local - planner ros - noetic - ackermann - msgs ros - noetic - gazebo - ros - pkgs ros - noetic - gazebo - ros - control ros - noetic - joint - state - publisher - gui ros - noetic - ros - control ros - noetic - ros - controllers \u5b89\u88c5 CARLA 0.9 . 13 \u5e76 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf : ` ` ` export CARLA _ ROOT = export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6ce8\u610f \u8fd0\u884c \u4ee3\u7801 \u65f6 \u9700\u8981 agents \u6a21\u5757 \uff0c \u5728 conda \u73af\u5883 ISS \u76ee\u5f55 \u4e0b \uff0c \u8fd8 \u9700\u8981 \u914d\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf export PYTHONPATH = $ PYTHONPATH : / home / ... / carla - 0.9 . 13 / carla : / home / ... / carla - 0.9 . 13 / PythonAPI / carla / agents ` ` ` \u521b\u5efa \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 conda create - n iss python = 3.8 conda activate iss \u6ce8\u610f \u82e5 \u8981 \u9000\u51fa \u5f53\u524d conda \u73af\u5883 \uff0c \u6267\u884c conda deactivate \u5b89\u88c5 git - lfs \u9012\u5f52 \u514b\u9686 \u9879\u76ee \u53ca\u5176 \u5b50 \u6a21\u5757 : ` ` ` git clone -- recurse - submodules https : / / github . com / CAS - LRJ / ISS . git && cd ISS pip3 install - r Install / requirements . txt python3 Install / setup . py develop \u6ce8\u610f \uff1a \u8fd9\u91cc \u5fc5\u987b \u9012\u5f52 \u514b\u9686 \uff0c \u5c06\u5b50 \u6a21\u5757 \u4e00\u5e76 \u514b\u9686 \u4e0b\u6765 \uff0c \u67e5\u770b \u5b50 \u6a21\u5757 \u5185\u5bb9 \u662f\u5426 \u514b\u9686 \u6210\u529f \uff0c \u5426\u5219 \u8fd0\u884c \u62a5\u9519 \u3002 ` ` ` \u5b89\u88c5 PyTorch \u548c torch - scatter : pip3 install torch = = 1.7 . 1 + cu110 torchvision = = 0.8 . 2 + cu110 torchaudio = = 0.7 . 2 - f https : / / download . pytorch . org / whl / torch _ stable . htmlpip3 install Install / torch _ scatter - 2.0 . 7 - cp38 - cp38 - linux _ x86 _ 64 . whl \u5b89\u88c5 CUDA Toolkit 11.8 \u5b89\u88c5 MMDetection \u6784\u5efa \u8981 \u4f7f\u7528 ROS - Noetic , \u9996\u5148 \u6784\u5efa ROS \u5de5\u4f5c \u7a7a\u95f4 \u3002 ` ` ` cd ros1 _ ws && catkin build source devel / setup . bash # or setup . zsh \u6ce8\u610f \uff1a \u4f1a \u751f\u6210 devel \u76ee\u5f55 \uff01 ` ` ` \u8fd0\u884c \u4efb\u52a1 \u6253\u5f00 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 cd carla - 0.9 . 13 . / CarlaUE4 . sh \u542f\u52a8 ros \u8282\u70b9 \uff0c \u4e3a \u667a\u80fd \u9a7e\u9a76 \u8f66\u8f86 \u4f5c \u5168\u5c40 \u8def\u5f84 \u89c4\u5212 roslaunch carla _ bridge carla _ demo . launch \u6ce8\u610f \uff1a \u8fd0\u884c \u8fc7\u7a0b \u4e2d \u8981\u6c42 \u5b89\u88c5 \u5176\u4ed6 \u5305 \uff0c \u9664 CARLA client API \u4e3a 0.9 . 13 \uff0c \u5176\u4ed6 \u4e0d \u505a \u8981\u6c42","title":"\u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf"},{"location":"iss_install/#_1","text":"\u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \uff08 ISS \uff09 \u662f \u4e00\u4e2a \u7528 Python \u548c C++ \u7f16\u5199 \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u6846\u67b6 \uff0c \u65e8\u5728 \u6784\u5efa \u4e00\u4e2a \u9002\u5408 \u7814\u7a76 \u7684 \u53ef \u6269\u5c55 \u5de5\u4f5c \u7a7a\u95f4 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u5305\u542b \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u76f8\u5173 \u4efb\u52a1 \u7684 \u4f20\u7edf \u548c \u6df1\u5ea6 \u5b66\u4e60 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u611f\u77e5 \u3001 \u5b9a\u4f4d \u3001 \u6620\u5c04 \u3001 \u9884\u6d4b \u3001 \u89c4\u5212 \u548c \u63a7\u5236 \u3002 \u5bf9\u5916 \u5916\u90e8 \u5bf9\u5916\u90e8 \u5e93 \u4f9d\u8d56 \u4f9d\u8d56\u6027 \u6700\u5c0f \u7684 \u6a21\u5757 \u6a21\u5757\u5316 \u8bbe\u8ba1 \u53ef\u4ee5 \u4e3a \u7814\u7a76 \u4eba\u5458 \u8bc4\u4f30 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u900f\u660e \u3001 \u5e72\u51c0 \u7684 \u5de5\u4f5c \u7a7a\u95f4 \u3002 ISS \u7684 \u4ee3\u7801 \u53ef\u4ee5 \u4ece \u5176 Github \u4ed3\u5e93 \u4e0b\u8f7d \uff0c \u5176\u4e2d \u53ef\u4ee5 \u627e\u5230 \u8be6\u7ec6 \u7684 \u5b89\u88c5 \u8bf4\u660e \u3002","title":"\u667a\u80fd \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf"},{"location":"iss_install/#_2","text":"ISS \u4f7f\u7528 Ubuntu 20.04 \u8fdb\u884c \u6d4b\u8bd5 \uff0c \u8fd0\u884c Python 3.8 \u3002 \u5bf9\u4e8e \u90a3\u4e9b \u6709 \u5174\u8da3 \u5c06 ISS \u4e0e Gazebo \u548c ROS - Noetic \u7ed3\u5408 \u4f7f\u7528 \u7684 \u4eba \uff0c \u60a8 \u5e94\u8be5 \u6309\u7167 \u5b98\u65b9 ROS \u6587\u6863 \u4e2d \u63d0\u4f9b \u7684 \u8bf4\u660e \u5b89\u88c5 ROS - Noetic \u3002 \u8981 \u5c06 ISS \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \uff0c \u5fc5\u987b \u5b89\u88c5 Carla \u3002 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u7248\u672c 0.9 . 13 \uff0c \u53ef\u4ee5 \u5728 Carla GitHub \u53d1\u5e03 \u9875\u9762 \u53d1\u5e03\u9875 \u53d1\u5e03\u9875\u9762 \u627e\u5230 \u8be5 \u7248\u672c \u3002","title":"\u5148\u51b3\u6761\u4ef6"},{"location":"iss_install/#_3","text":"\u5b89\u88c5 ROS Noetic , \u4ee5\u53ca \u4e0b\u8f7d \u76f8\u5173 \u4f9d\u8d56 : sudo apt - get install ros - noetic - navigation ros - noetic - gmapping ros - noetic - teb - local - planner ros - noetic - ackermann - msgs ros - noetic - gazebo - ros - pkgs ros - noetic - gazebo - ros - control ros - noetic - joint - state - publisher - gui ros - noetic - ros - control ros - noetic - ros - controllers \u5b89\u88c5 CARLA 0.9 . 13 \u5e76 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf : ` ` ` export CARLA _ ROOT = export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6ce8\u610f \u8fd0\u884c \u4ee3\u7801 \u65f6 \u9700\u8981 agents \u6a21\u5757 \uff0c \u5728 conda \u73af\u5883 ISS \u76ee\u5f55 \u4e0b \uff0c \u8fd8 \u9700\u8981 \u914d\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf export PYTHONPATH = $ PYTHONPATH : / home / ... / carla - 0.9 . 13 / carla : / home / ... / carla - 0.9 . 13 / PythonAPI / carla / agents ` ` ` \u521b\u5efa \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 conda create - n iss python = 3.8 conda activate iss \u6ce8\u610f \u82e5 \u8981 \u9000\u51fa \u5f53\u524d conda \u73af\u5883 \uff0c \u6267\u884c conda deactivate \u5b89\u88c5 git - lfs \u9012\u5f52 \u514b\u9686 \u9879\u76ee \u53ca\u5176 \u5b50 \u6a21\u5757 : ` ` ` git clone -- recurse - submodules https : / / github . com / CAS - LRJ / ISS . git && cd ISS pip3 install - r Install / requirements . txt python3 Install / setup . py develop \u6ce8\u610f \uff1a \u8fd9\u91cc \u5fc5\u987b \u9012\u5f52 \u514b\u9686 \uff0c \u5c06\u5b50 \u6a21\u5757 \u4e00\u5e76 \u514b\u9686 \u4e0b\u6765 \uff0c \u67e5\u770b \u5b50 \u6a21\u5757 \u5185\u5bb9 \u662f\u5426 \u514b\u9686 \u6210\u529f \uff0c \u5426\u5219 \u8fd0\u884c \u62a5\u9519 \u3002 ` ` ` \u5b89\u88c5 PyTorch \u548c torch - scatter : pip3 install torch = = 1.7 . 1 + cu110 torchvision = = 0.8 . 2 + cu110 torchaudio = = 0.7 . 2 - f https : / / download . pytorch . org / whl / torch _ stable . htmlpip3 install Install / torch _ scatter - 2.0 . 7 - cp38 - cp38 - linux _ x86 _ 64 . whl \u5b89\u88c5 CUDA Toolkit 11.8 \u5b89\u88c5 MMDetection","title":"\u5b89\u88c5"},{"location":"iss_install/#_4","text":"\u8981 \u4f7f\u7528 ROS - Noetic , \u9996\u5148 \u6784\u5efa ROS \u5de5\u4f5c \u7a7a\u95f4 \u3002 ` ` ` cd ros1 _ ws && catkin build source devel / setup . bash # or setup . zsh \u6ce8\u610f \uff1a \u4f1a \u751f\u6210 devel \u76ee\u5f55 \uff01 ` ` `","title":"\u6784\u5efa"},{"location":"iss_install/#_5","text":"\u6253\u5f00 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 cd carla - 0.9 . 13 . / CarlaUE4 . sh \u542f\u52a8 ros \u8282\u70b9 \uff0c \u4e3a \u667a\u80fd \u9a7e\u9a76 \u8f66\u8f86 \u4f5c \u5168\u5c40 \u8def\u5f84 \u89c4\u5212 roslaunch carla _ bridge carla _ demo . launch \u6ce8\u610f \uff1a \u8fd0\u884c \u8fc7\u7a0b \u4e2d \u8981\u6c42 \u5b89\u88c5 \u5176\u4ed6 \u5305 \uff0c \u9664 CARLA client API \u4e3a 0.9 . 13 \uff0c \u5176\u4ed6 \u4e0d \u505a \u8981\u6c42","title":"\u8fd0\u884c \u4efb\u52a1"},{"location":"large_map_import/","text":"\u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u7248\u672c \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002 \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u8bf7 \u6ce8\u610f \uff0c \u66f4\u6b63 \u7684 y \u5750 \u6807\u662f \u6307 y \u8f74\u4e0a \u8f83 \u4f4e \u7684 \u56fe\u5757 \u3002 \u4f8b\u5982 \uff0c Map01 _ Tile _ 0 _ 1 \u4f1a \u5750\u5728 Map01 _ Tile _ 0 _ 0 \u7684 \u4e0b\u9762 \u3002 \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 Map01 . xodr \u7b14\u8bb0 \u8be5 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 . json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 Maps \u548c Props \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx \u56fe\u5757 \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" xodr \" : \" . / Map01 . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 2000 , \" tiles \" : [ \" . / Map01 _ Tile _ 0 _ 0 . fbx \" , \" . / Map01 _ Tile _ 0 _ 1 . fbx \" , \" . / Map01 _ Tile _ 1 _ 0 . fbx \" , \" . / Map01 _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] } \u8fdb\u884c \u5bfc\u5165 \u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 < mapName > \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef \u4f9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7b49 \u3002 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe \u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e2d \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u76ee\u5f55 \u4e0b \uff0c \u5728 Windows \u4e2d \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe"},{"location":"large_map_import/#_1","text":"RoadRunner \u4e2d \u751f\u6210 \u7684 \u5927 \u5730\u56fe \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 \u7248\u672c \u4e2d \uff0c \u5e76 \u6253\u5305 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u5206\u53d1 \u548c \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u975e\u5e38 \u76f8\u4f3c \uff0c \u53ea\u662f \u6dfb\u52a0 \u4e86 \u56fe\u5757 \u548c \u6279\u91cf \u5bfc\u5165 \u7684 \u7279\u5b9a \u672f\u8bed \u3002 \u6587\u4ef6 \u548c \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09 \u8fdb\u884c \u5bfc\u5165 \u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe","title":"\u5bfc\u5165 / \u6253\u5305 \u5927 \u5730\u56fe"},{"location":"large_map_import/#_2","text":"\u6240\u6709 \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u5e94 \u653e\u7f6e \u5728 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5305\u62ec \uff1a \u591a\u4e2a . fbx \u6587\u4ef6 \u4e2d \u7684 \u5730\u56fe \u7f51\u683c \u4ee3\u8868 \u5730\u56fe \u7684 \u4e0d\u540c \u56fe\u5757 \u3002 OpenDRIVE \u5b9a\u4e49 \u4f4d\u4e8e \u5355\u4e2a . xodr \u6587\u4ef6 \u4e2d \u3002 \u7b14\u8bb0 \u60a8 \u4e0d\u80fd \u540c\u65f6 \u5bfc\u5165 \u5927 \u5730\u56fe \u548c \u6807\u51c6 \u5730\u56fe \u3002 \u5730\u56fe \u56fe\u5757 \u7684 \u547d\u540d \u7ea6\u5b9a \u975e\u5e38 \u91cd\u8981 \u3002 \u6bcf\u4e2a \u5730\u56fe \u56fe\u5757 \u5e94 \u6839\u636e \u4ee5\u4e0b \u7ea6\u5b9a \u547d\u540d \uff1a < mapName > _ Tile _ < x - coordinate > _ < y - coordinate > . fbx \u8bf7 \u6ce8\u610f \uff0c \u66f4\u6b63 \u7684 y \u5750 \u6807\u662f \u6307 y \u8f74\u4e0a \u8f83 \u4f4e \u7684 \u56fe\u5757 \u3002 \u4f8b\u5982 \uff0c Map01 _ Tile _ 0 _ 1 \u4f1a \u5750\u5728 Map01 _ Tile _ 0 _ 0 \u7684 \u4e0b\u9762 \u3002 \u751f\u6210 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u5305\u542b \u4e00\u4e2a \u5305\u542b \u7531 \u56db\u4e2a \u56fe\u5757 \u7ec4\u6210 \u7684 \u5927 \u5730\u56fe \u7684 \u5305 \uff0c \u5176 \u7ed3\u6784 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \uff1a Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 0 _ 1 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 0 . fbx \u251c \u2500 \u2500 Map01 _ Tile _ 1 _ 1 . fbx \u2514 \u2500 \u2500 Map01 . xodr \u7b14\u8bb0 \u8be5 package . json \u6587\u4ef6 \u5e76 \u4e0d\u662f \u7edd\u5bf9 \u5fc5\u8981 \u7684 \u3002 \u5982\u679c \u672a \u521b\u5efa package . json \u6587\u4ef6 \uff0c \u81ea\u52a8 \u5bfc\u5165 \u8fc7\u7a0b \u5c06 \u521b\u5efa \u4e00\u4e2a \u3002 \u5728 \u4e0b \u4e00\u8282 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6784\u5efa \u81ea\u5df1 package . json \u7684 \u7ed3\u6784 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6587\u4ef6 \u548c \u6587\u4ef6\u5939"},{"location":"large_map_import/#json","text":". json \u63cf\u8ff0 \u662f \u5728 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u81ea\u52a8 \u521b\u5efa \u7684 \uff0c \u4f46 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u624b\u52a8 \u521b\u5efa \u63cf\u8ff0 \u3002 \u73b0\u6709 . json \u63cf\u8ff0 \u5c06 \u8986\u76d6 \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u4efb\u4f55 \u503c \u3002 \u8be5 . json \u6587\u4ef6 \u5e94 \u521b\u5efa \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6587\u4ef6 \u6587\u4ef6\u540d \u5c06 \u662f \u5305 \u5206\u53d1 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u63cf\u8ff0 \u4e86 Maps \u548c Props \u7684 JSON \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a name : \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 xodr : . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 use _ carla _ materials : \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 tile _ size : \u56fe\u5757 \u7684 \u5927\u5c0f \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 ( 2kmx2km ) \u3002 tiles : \u7ec4\u6210 \u6574\u4e2a \u5730\u56fe \u7684 . fbx \u56fe\u5757 \u6587\u4ef6 \u7684 \u5217\u8868 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u672c \u6559\u7a0b \u4e86\u89e3 \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" xodr \" : \" . / Map01 . xodr \" , \" use _ carla _ materials \" : true , \" tile _ size \" : 2000 , \" tiles \" : [ \" . / Map01 _ Tile _ 0 _ 0 . fbx \" , \" . / Map01 _ Tile _ 0 _ 1 . fbx \" , \" . / Map01 _ Tile _ 1 _ 0 . fbx \" , \" . / Map01 _ Tile _ 1 _ 1 . fbx \" ] } ] , \" props \" : [ ] }","title":"\u521b\u5efa JSON \u63cf\u8ff0 \uff08 \u53ef \u9009 \uff09"},{"location":"large_map_import/#_3","text":"\u5c06 \u6240\u6709 \u6587\u4ef6 \u653e\u5165 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u540e \uff0c \u5728 \u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make import \u6839\u636e \u60a8 \u7684 \u7cfb\u7edf \uff0c \u865a\u5e7b \u5f15\u64ce \u53ef\u80fd \u4f1a \u6d88\u8017 \u592a \u591a \u5185\u5b58 \u800c \u65e0\u6cd5 \u4e00\u6b21 \u5bfc\u5165 \u6240\u6709 \u6587\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u9009\u62e9 \u6279\u91cf \u5bfc\u5165 \u6587\u4ef6 \uff1a make import ARGS = \" -- batch - size = 200 \" \u8be5 make import \u547d\u4ee4 \u8fd8 \u5b58\u5728 \u4e24\u4e2a \u6807\u5fd7 \uff1a -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u5bfc\u5165 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u6240\u6709 \u6587\u4ef6 \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5e76 \u51c6\u5907 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u3002 \u5730\u56fe \u5730\u56fe\u5305 \u5c06 \u5728 Unreal / CarlaUE4 / Content \u4e2d \u521b\u5efa \u3002 \u5c06 \u521b\u5efa \u4e00\u4e2a \u5e95\u56fe \u56fe\u5757 < mapName > \uff0c \u4f5c\u4e3a \u6240\u6709 \u56fe\u5757 \u7684 \u6d41 \u7ea7\u522b \u3002 \u57fa\u7840 \u56fe\u5757 \u5c06 \u5305\u542b \u5929\u7a7a \u3001 \u5929\u6c14 \u548c \u5927 \u5730\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef \u4f9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f7f\u7528 \u3002 \u7b14\u8bb0 \u76ee\u524d \u4e0d \u5efa\u8bae \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u4e3a \u6807\u51c6 \u5730\u56fe \u63d0\u4f9b \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5de5\u5177 \uff0c \u4f8b\u5982 \u9053\u8def \u753b\u5bb6 \u3001 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7b49 \u3002","title":"\u8fdb\u884c \u5bfc\u5165"},{"location":"large_map_import/#_4","text":"\u8981 \u6253\u5305 \u5927 \u5730\u56fe \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u72ec\u7acb \u5305\u4e2d \u4f7f\u7528 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a make package ARGS = \" -- packages = < mapPackage > \" \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e2d \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \u76ee\u5f55 \u4e0b \uff0c \u5728 Windows \u4e2d \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u3002 \u7136\u540e \u53ef\u4ee5 \u5c06 \u5b83\u4eec \u5206\u53d1 \u548c \u6253\u5305 \u4ee5 \u5728 \u72ec\u7acb \u7684 Carla \u5305\u4e2d \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u5bfc\u5165 \u6253\u5305 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u6253\u5305 \u4e00\u5f20 \u5927 \u5730\u56fe"},{"location":"large_map_overview/","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u5927 \u5730\u56fe \u6982\u8ff0 \u74e6\u7247 \u6d41 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5927 \u5730\u56fe \u6982\u8ff0 Carla \u4e2d \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8fdb\u884c \u5927 \u8303\u56f4 \u7684 \u4eff\u771f \u3002 \u5728 Carla \u4e2d \uff0c \u5927 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u4e0d \u5927\u4e8e 2kmx2km \u7684 \u65b9\u5f62 \u74e6\u7247 \u3002 \u74e6\u7247 \u6839\u636e \u5b83\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u63a5\u8fd1 \u5ea6 \uff08 \u6d41 \u8ddd\u79bb \uff09 \u6d41\u5165 \u548c \u6d41\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5730\u56fe \u4e0a \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e5f \u6839\u636e \u4ed6\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u8fdb\u884c \u7ba1\u7406 \u3002 \u74e6\u7247 \u6d41 \u81ea\u4e3b \u8f66\u8f86 \u5bf9\u4e8e \u5730\u56fe \u74e6\u7247 \u7684 \u88c5\u8f7d \u548c \u5378\u8f7d \u662f \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u3002 \u6839\u636e \u8ddd \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u503c \uff0c \u74e6\u7247 \u88ab \u6d41\u5f0f \u4f20\u8f93 \u8fdb \u548c \u4f20\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u4f8b\u5982 \uff0c \u4f4d\u4e8e \u6d41 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u74e6\u7247 \u5c06 \u4e0d\u4f1a \u5728 \u4eff\u771f \u4e2d \u6e32\u67d3 \uff0c \u800c \u5c06 \u6e32\u67d3 \u6d41 \u8ddd\u79bb \u5185 \u7684 \u74e6\u7247 \u3002 \u6e32\u67d3 \u7684 \u74e6\u7247 \u5c06 \u968f\u7740 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u79fb\u52a8 \u800c \u53d8\u5316 \u3002 \u8981 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \uff0c \u8bf7 \u4f7f\u7528 \u5982\u4e0b \u7684 set _ attribute \u65b9\u6cd5 \uff1a blueprint . set _ attribute ( ' role _ name ' , ' hero ' ) world . spawn _ actor ( blueprint , spawn _ point ) \u4f7f\u7528 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u8bbe\u7f6e \u6d41 \u8ddd\u79bb \uff0c \u4ee5\u4fbf \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 2 \u516c\u91cc \u534a\u5f84 \u5185 \u52a0\u8f7d \u74e6\u7247 \uff1a settings = world . get _ settings ( ) settings . tile _ stream _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u547d\u4ee4 \u8bbe\u7f6e \u6d41 \u4f20\u8f93 \u8ddd\u79bb : cd PythonAPI / util python3 config . py -- tile - stream - distance 2000 \u7b14\u8bb0 \u5927 \u5730\u56fe \u76ee\u524d \u4e00\u6b21 \u4ec5 \u652f\u6301 \u4e00\u8f86 \u81ea\u4e3b \u8f66\u8f86 \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5411 Carla \u5f15\u5165 \u4e86 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6982\u5ff5 \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ec5 \u5b58\u5728 \u4e8e \u5927 \u5730\u56fe \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u4e2d \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u4eff\u771f \u4e2d \u4f4d\u4e8e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u975e \u81ea\u4e3b \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f8b\u5982 \uff0c \u8fdc\u79bb \u81ea\u4e3b \u8f66\u8f86 \u7684 \u8f66\u8f86 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u53ef\u4ee5 \u7b49\u4e8e \u6216 \u5c0f\u4e8e \u6d41 \u8ddd\u79bb \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u73b0 \u81ea\u5df1 \u53d1\u73b0\u81ea\u5df1 \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \uff0c \u5b83 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ecd\u7136 \u5b58\u5728 \uff0c \u4f46 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \u3002 \u5c3d\u7ba1 \u4ecd\u7136 \u53ef\u4ee5 \u8bbe\u7f6e \u4f4d\u7f6e \u548c \u53d8\u6362 \uff0c \u4f46 \u4e0d\u4f1a \u8ba1\u7b97 \u7269\u7406 \u7269\u7406\u91cf \uff08 \u9664\u975e \u901a\u8fc7 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4ee5 \u6df7\u5408 \u6a21\u5f0f \u8fd0\u884c \uff09 \u3002 \u4e00\u65e6 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u518d\u6b21 \u8fdb\u5165 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u5185 \uff0c \u5b83 \u5c06 \u9192\u6765 \uff0c \u5e76\u4e14 \u5176 \u6e32\u67d3 \u548c \u7269\u7406 \u5c06 \u6062\u590d \u6b63\u5e38 \u6062\u590d\u6b63\u5e38 \u3002 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5177\u6709 \u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u53ef\u4ee5 \u5728 \u5927 \u5730\u56fe \u4e2d \u64cd\u4f5c \u65f6 \u8fdb\u884c \u914d\u7f6e \u3002 \u8bf7 \u9605\u8bfb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u5176 \u5de5\u4f5c \u539f\u7406 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u6216 \u5728 world . tick ( ) \u65f6 \u9192\u6765 \u3002 \u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \u8f66\u8f86 \u5468\u56f4 2 \u516c\u91cc \u534a\u5f84 \uff1a settings = world . get _ settings ( ) settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u65b9\u6cd5 \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb cd PythonAPI / util python3 config . py -- actor - active - distance 2000 \u8981 \u68c0\u67e5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \uff1a actor . is _ dormant \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5927 \u5730\u56fe \u6982\u8ff0"},{"location":"large_map_overview/#_1","text":"\u5927 \u5730\u56fe \u6982\u8ff0 \u74e6\u7247 \u6d41 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005","title":"\u5927 \u5730\u56fe \u6982\u8ff0"},{"location":"large_map_overview/#_2","text":"Carla \u4e2d \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5141\u8bb8 \u7528\u6237 \u8fdb\u884c \u5927 \u8303\u56f4 \u7684 \u4eff\u771f \u3002 \u5728 Carla \u4e2d \uff0c \u5927 \u5730\u56fe \u88ab \u5212\u5206 \u4e3a \u4e0d \u5927\u4e8e 2kmx2km \u7684 \u65b9\u5f62 \u74e6\u7247 \u3002 \u74e6\u7247 \u6839\u636e \u5b83\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u63a5\u8fd1 \u5ea6 \uff08 \u6d41 \u8ddd\u79bb \uff09 \u6d41\u5165 \u548c \u6d41\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5730\u56fe \u4e0a \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e5f \u6839\u636e \u4ed6\u4eec \u4e0e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u8fdb\u884c \u7ba1\u7406 \u3002","title":"\u5927 \u5730\u56fe \u6982\u8ff0"},{"location":"large_map_overview/#_3","text":"\u81ea\u4e3b \u8f66\u8f86 \u5bf9\u4e8e \u5730\u56fe \u74e6\u7247 \u7684 \u88c5\u8f7d \u548c \u5378\u8f7d \u662f \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u3002 \u6839\u636e \u8ddd \u81ea\u4e3b \u8f66\u8f86 \u7684 \u6d41 \u8ddd\u79bb \u503c \uff0c \u74e6\u7247 \u88ab \u6d41\u5f0f \u4f20\u8f93 \u8fdb \u548c \u4f20\u51fa \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u4f8b\u5982 \uff0c \u4f4d\u4e8e \u6d41 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u74e6\u7247 \u5c06 \u4e0d\u4f1a \u5728 \u4eff\u771f \u4e2d \u6e32\u67d3 \uff0c \u800c \u5c06 \u6e32\u67d3 \u6d41 \u8ddd\u79bb \u5185 \u7684 \u74e6\u7247 \u3002 \u6e32\u67d3 \u7684 \u74e6\u7247 \u5c06 \u968f\u7740 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u79fb\u52a8 \u800c \u53d8\u5316 \u3002 \u8981 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \uff0c \u8bf7 \u4f7f\u7528 \u5982\u4e0b \u7684 set _ attribute \u65b9\u6cd5 \uff1a blueprint . set _ attribute ( ' role _ name ' , ' hero ' ) world . spawn _ actor ( blueprint , spawn _ point ) \u4f7f\u7528 \u4e0b\u9762 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u8bbe\u7f6e \u6d41 \u8ddd\u79bb \uff0c \u4ee5\u4fbf \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 2 \u516c\u91cc \u534a\u5f84 \u5185 \u52a0\u8f7d \u74e6\u7247 \uff1a settings = world . get _ settings ( ) settings . tile _ stream _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u547d\u4ee4 \u8bbe\u7f6e \u6d41 \u4f20\u8f93 \u8ddd\u79bb : cd PythonAPI / util python3 config . py -- tile - stream - distance 2000 \u7b14\u8bb0 \u5927 \u5730\u56fe \u76ee\u524d \u4e00\u6b21 \u4ec5 \u652f\u6301 \u4e00\u8f86 \u81ea\u4e3b \u8f66\u8f86 \u3002","title":"\u74e6\u7247 \u6d41"},{"location":"large_map_overview/#_4","text":"\u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u5411 Carla \u5f15\u5165 \u4e86 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6982\u5ff5 \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ec5 \u5b58\u5728 \u4e8e \u5927 \u5730\u56fe \u7684 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u4e2d \u3002 \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u4eff\u771f \u4e2d \u4f4d\u4e8e \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \u7684 \u975e \u81ea\u4e3b \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f8b\u5982 \uff0c \u8fdc\u79bb \u81ea\u4e3b \u8f66\u8f86 \u7684 \u8f66\u8f86 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u53ef\u4ee5 \u7b49\u4e8e \u6216 \u5c0f\u4e8e \u6d41 \u8ddd\u79bb \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u73b0 \u81ea\u5df1 \u53d1\u73b0\u81ea\u5df1 \u5728 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u4e4b\u5916 \uff0c \u5b83 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ecd\u7136 \u5b58\u5728 \uff0c \u4f46 \u4e0d\u4f1a \u88ab \u6e32\u67d3 \u3002 \u5c3d\u7ba1 \u4ecd\u7136 \u53ef\u4ee5 \u8bbe\u7f6e \u4f4d\u7f6e \u548c \u53d8\u6362 \uff0c \u4f46 \u4e0d\u4f1a \u8ba1\u7b97 \u7269\u7406 \u7269\u7406\u91cf \uff08 \u9664\u975e \u901a\u8fc7 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4ee5 \u6df7\u5408 \u6a21\u5f0f \u8fd0\u884c \uff09 \u3002 \u4e00\u65e6 \u4f11\u7720 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u518d\u6b21 \u8fdb\u5165 \u81ea\u4e3b \u8f66\u8f86 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u5185 \uff0c \u5b83 \u5c06 \u9192\u6765 \uff0c \u5e76\u4e14 \u5176 \u6e32\u67d3 \u548c \u7269\u7406 \u5c06 \u6062\u590d \u6b63\u5e38 \u6062\u590d\u6b63\u5e38 \u3002 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5177\u6709 \u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u53ef\u4ee5 \u5728 \u5927 \u5730\u56fe \u4e2d \u64cd\u4f5c \u65f6 \u8fdb\u884c \u914d\u7f6e \u3002 \u8bf7 \u9605\u8bfb \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u5176 \u5de5\u4f5c \u539f\u7406 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8fdb\u5165 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u6216 \u5728 world . tick ( ) \u65f6 \u9192\u6765 \u3002 \u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb \u8bbe\u7f6e \u4e3a \u81ea\u4e3b \u8f66\u8f86 \u5468\u56f4 2 \u516c\u91cc \u534a\u5f84 \uff1a settings = world . get _ settings ( ) settings . actor _ active _ distance = 2000 world . apply _ settings ( settings ) \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b config . py \u65b9\u6cd5 \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u52a8 \u8ddd\u79bb cd PythonAPI / util python3 config . py -- actor - active - distance 2000 \u8981 \u68c0\u67e5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \uff1a actor . is _ dormant \u5982\u679c \u60a8 \u5bf9 \u5927 \u5730\u56fe \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4f11\u7720 \u53c2\u4e0e\u8005"},{"location":"large_map_roadrunner/","text":"\u5728 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \uff0c \u5728 \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u60c5 \uff0c \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u5927 \u5730\u56fe \uff0c \u4ee5\u4fbf \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe \u4e0b \u4e00\u4e2a \u6b65\u9aa4 RoadRunner \u7b80\u4ecb RoadRunner \u662f \u4e00\u4e2a \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u8bbe\u8ba1 3D \u573a\u666f \u6765 \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u3002 \u5b83 \u53ef\u4ee5 \u7528\u6765 \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u548c \u4f34\u968f \u7684 opdrive \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e RoadRunner \u7684 \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB \u6821\u56ed \u8bb8\u53ef \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u4e00\u4e0b \u4f60 \u7684 \u5927\u5b66 \u662f\u5426 \u6709 \u8bbf\u95ee \u6743\u9650 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u5173\u4e8e \u53ef \u8bbf\u95ee \u6027 \u7684 \u95ee\u9898 \u6216 \u9ebb\u70e6 \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u4e00\u4e2a \u8bd5\u7528 \u8bd5\u7528\u7248 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c \u5728 RoadRunner \u6587\u6863 \u4e2d\u6709 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5730\u56fe \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20km \u00d7 20km \u3002 \u5927\u4e8e \u8fd9\u4e2a \u503c \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002 \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe \u4e0b\u9762 \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u4e00\u65e6 \u4f60 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u4e86 \u4f60 \u7684 \u5730\u56fe \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u5bfc\u51fa \u5b83 \u4e86 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5728 \u5bfc\u51fa \u540e \u4e0d\u80fd \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd : \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u6620\u5c04 \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u4e00\u65e6 \u5730\u56fe \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb opdrive \u9884\u89c8 \u5de5\u5177 \u6309\u94ae \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 opdrive \u9053\u8def \u7f51\u7edc \uff0c \u5e76 \u7ed9 \u4e00\u5207 \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 _ opdrive \u9884\u89c8 \u5de5\u5177 _ \u4f7f \u5b83 \u66f4 \u5bb9\u6613 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8def\u53e3 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u70b9\u51fb \u2018 Maneuver Tool \u2019 \uff0c \u7136\u540e \u70b9\u51fb \u2018 Rebuild Maneuver Roads \u2019 \u3002 \u901a\u8fc7 \u70b9\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u60a8 \u60f3\u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5b8c\u6574 \u7684 \u5730\u56fe \u8fdb\u884c \u5bfc\u51fa \u3002 \u5f53 \u5b83 \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb Apply World Changes \u3002 \u5f53 \u60a8 \u51c6\u5907 \u5bfc\u51fa \u65f6 : 1 . \u5bfc\u51fa . fbx \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 , \u9009\u62e9 File - > Export - > Firebox ( . fbx ) __ 2 .__ \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d : \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 : Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u5bf9 \u7f51\u683c \u8fdb\u884c \u5212\u5206 \uff0c \u6539\u5584 \u884c\u4eba \u5bfc\u822a \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u4e86 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u74f7\u7816 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u662f 2000 x 2000 \u3002 Export Individual Tiles : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u5757 \u3002 3 . \u5bfc\u51fa . xodr \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u7684 \u6587\u4ef6 \u540d\u79f0 \u6587\u4ef6\u540d \u6587\u4ef6\u540d\u79f0 \u76f8\u540c \u3002 \u4e0b \u4e00\u4e2a \u6b65\u9aa4 \u73b0\u5728 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u4e86 \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5bfc\u5165 \u5927 \u5730\u56fe \u6307\u5357 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#roadrunner","text":"RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5927 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \uff0c \u5728 \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u60c5 \uff0c \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u5927 \u5730\u56fe \uff0c \u4ee5\u4fbf \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe \u4e0b \u4e00\u4e2a \u6b65\u9aa4","title":"\u5728 RoadRunner \u521b\u5efa \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#roadrunner_1","text":"RoadRunner \u662f \u4e00\u4e2a \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u8bbe\u8ba1 3D \u573a\u666f \u6765 \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u3002 \u5b83 \u53ef\u4ee5 \u7528\u6765 \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u548c \u4f34\u968f \u7684 opdrive \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e RoadRunner \u7684 \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB \u6821\u56ed \u8bb8\u53ef \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u4e00\u4e0b \u4f60 \u7684 \u5927\u5b66 \u662f\u5426 \u6709 \u8bbf\u95ee \u6743\u9650 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u5173\u4e8e \u53ef \u8bbf\u95ee \u6027 \u7684 \u95ee\u9898 \u6216 \u9ebb\u70e6 \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u4e00\u4e2a \u8bd5\u7528 \u8bd5\u7528\u7248 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"RoadRunner \u7b80\u4ecb"},{"location":"large_map_roadrunner/#_1","text":"\u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u5f00\u59cb \u4e4b\u524d"},{"location":"large_map_roadrunner/#roadrunner_2","text":"\u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c \u5728 RoadRunner \u6587\u6863 \u4e2d\u6709 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u5982\u679c \u60a8 \u6b63\u5728 \u6784\u5efa \u5e26\u6709 \u9ad8\u7a0b \u7684 \u5927 \u5730\u56fe \uff0c \u5219 \u5efa\u8bae \u5730\u56fe \u7684 \u6700\u5927 \u5c3a\u5bf8 \u4e3a 20km \u00d7 20km \u3002 \u5927\u4e8e \u8fd9\u4e2a \u503c \u7684 \u5730\u56fe \u53ef\u80fd \u4f1a \u5bfc\u81f4 RoadRunner \u5728 \u5bfc\u51fa \u65f6 \u5d29\u6e83 \u3002","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u4e00\u4e2a \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#roadrunner_3","text":"\u4e0b\u9762 \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5927 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u4e00\u65e6 \u4f60 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u4e86 \u4f60 \u7684 \u5730\u56fe \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u5bfc\u51fa \u5b83 \u4e86 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5728 \u5bfc\u51fa \u540e \u4e0d\u80fd \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd : \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5730 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u6620\u5c04 \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u4e00\u65e6 \u5730\u56fe \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb opdrive \u9884\u89c8 \u5de5\u5177 \u6309\u94ae \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 opdrive \u9053\u8def \u7f51\u7edc \uff0c \u5e76 \u7ed9 \u4e00\u5207 \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 _ opdrive \u9884\u89c8 \u5de5\u5177 _ \u4f7f \u5b83 \u66f4 \u5bb9\u6613 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8def\u53e3 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u70b9\u51fb \u2018 Maneuver Tool \u2019 \uff0c \u7136\u540e \u70b9\u51fb \u2018 Rebuild Maneuver Roads \u2019 \u3002 \u901a\u8fc7 \u70b9\u51fb \u4e16\u754c \u8bbe\u7f6e \u5de5\u5177 \u5e76 \u62d6\u52a8 \u84dd\u8272 \u8fb9\u754c \u6846 \u7684 \u8fb9\u7f18 \u4ee5 \u5305\u542b \u60a8 \u60f3\u8981 \u5bfc\u51fa \u7684 \u6574\u4e2a \u533a\u57df \uff0c \u786e\u4fdd \u9009\u62e9 \u5b8c\u6574 \u7684 \u5730\u56fe \u8fdb\u884c \u5bfc\u51fa \u3002 \u5f53 \u5b83 \u51c6\u5907 \u597d \u4e86 \uff0c \u70b9\u51fb Apply World Changes \u3002 \u5f53 \u60a8 \u51c6\u5907 \u5bfc\u51fa \u65f6 : 1 . \u5bfc\u51fa . fbx \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 , \u9009\u62e9 File - > Export - > Firebox ( . fbx ) __ 2 .__ \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d : \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 : Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u5bf9 \u7f51\u683c \u8fdb\u884c \u5212\u5206 \uff0c \u6539\u5584 \u884c\u4eba \u5bfc\u822a \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u4e86 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u74f7\u7816 \u7684 \u5927\u5c0f \u3002 Carla \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u6700\u5927 \u5c3a\u5bf8 \u662f 2000 x 2000 \u3002 Export Individual Tiles : \u751f\u6210 \u5728 Carla \u4e2d \u6d41\u5f0f \u4f20\u8f93 \u5927 \u5730\u56fe \u6240 \u9700 \u7684 \u5355\u4e2a \u5757 \u3002 3 . \u5bfc\u51fa . xodr \u6587\u4ef6 : \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u9009\u62e9 File - > Export - > OpendDRIVE ( . xodr ) \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u7684 \u6587\u4ef6 \u540d\u79f0 \u6587\u4ef6\u540d \u6587\u4ef6\u540d\u79f0 \u76f8\u540c \u3002","title":"\u5728 RoadRunner \u4e2d \u5bfc\u51fa \u4e00\u4e2a \u5927 \u5730\u56fe"},{"location":"large_map_roadrunner/#_2","text":"\u73b0\u5728 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u4e86 \u3002 \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5bfc\u5165 \u5927 \u5730\u56fe \u6307\u5357 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u90a3\u4e48 \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u4e2a \u6b65\u9aa4"},{"location":"launch_windows/","text":"Windows \u4e0b \u7684 \u542f\u52a8 \u5305 \u7684 \u6784\u5efa \u53d1\u5e03 \u5b89\u88c5 \u7248\u672c \u53c2\u8003 \u94fe\u63a5 \u8fdb\u884c \u865a\u5e7b \u5f15\u64ce \u7684 \u53d1\u5e03 \u3002 \u4f7f\u7528 Visual Studio \u6253\u5f00 UE4 . shn \u3002 \u5728 \u53f3\u4fa7 \u8fb9\u680f \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u4e00\u4e2a \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668 \u9762\u677f \u3002 \u5c55\u5f00 Programs \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u627e\u5230 AutomationTool \u9879\u76ee \uff08 Engine \\ Source \\ Programs \\ AutomationTool \uff09 \uff1a \u53f3\u952e \u5355\u51fb \u5b83 \u5e76 \u9009\u62e9 \u751f\u6210 ( Build ) \uff0c \u5e94\u8be5 \u5f88\u5feb \u3002 \u8fd0\u884c \u5b89\u88c5 \u8f6f\u4ef6 \u7684 \u6784\u5efa \u811a\u672c \u5b89\u88c5 Windows 10 SDK ; \u8fd0\u884c \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u7684 \u5b89\u88c5 \u6784\u5efa \u811a\u672c GenerateInstalledBuild . bat \u3002 \u5982\u679c \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 LocalBuilds \u4e0e \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5904\u4e8e \u540c\u4e00 \u7ea7\u522b \u7684 Engine \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76\u4e14 \u63a7\u5236 \u63a7\u5236\u53f0 \u4e2d \u6ca1\u6709 \u9519\u8bef \u3002 ( \u8fd8 \u5305\u62ec \u4e00\u4e2a InstalledDDC \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a DerivedDataCache ) \u3002 \u95ee\u9898 ERROR : Visual Studio 2017 must be installed in order to build this target . \u89e3\u51b3 \uff1a \u4e0b\u8f7d 3d5 _ VisualStudio20171509 . rar \u8fdb\u884c \u5b89\u88c5 \u3002 Unable to find installation of PDBCOPY . EXE \u89e3\u51b3 \uff1a \u53c2\u8003 \u94fe\u63a5 \u4ece \u767e\u5ea6 \u767e\u5ea6\u7f51 \u76d8 \u4e0b\u8f7d X64 Debuggers And Tools - x64 _ en - us . msi \u5b89\u88c5 \u3002 \u65e0\u6cd5 \u542f\u52a8 \u6b64 \u7a0b\u5e8f \uff0c \u56e0\u4e3a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u4e22\u5931 XINPUT1 _ 3 . dll \u3002 \u5c1d\u8bd5 \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 \u8be5\u7a0b \u89e3\u51b3 \uff1a \u53c2\u8003 \u94fe\u63a5 \u5b89\u88c5 DirectX Redist ( June 2010 ) \u3002 \u5355\u72ec \u8fd0\u884c Engine - > Binaries - > Win64 \u4f1a \u51fa\u73b0 \u9519\u8bef \u63d0\u793a \uff1a Plugin ' ExampleDeviceProfileSelector ' failed to load because moduleExampleDeviceProfileSelector ' could not be found . Please ensure the plugin isproperly installed , otherwise consider disabling the plugin for this project . \u4f46\u662f make launch \u4e0d\u4f1a \u51fa\u9519 \u3002","title":"Windows \u4e0b \u7684 \u542f\u52a8 \u5305 \u7684 \u6784\u5efa"},{"location":"launch_windows/#windows","text":"","title":"Windows \u4e0b \u7684 \u542f\u52a8 \u5305 \u7684 \u6784\u5efa"},{"location":"launch_windows/#_1","text":"\u53c2\u8003 \u94fe\u63a5 \u8fdb\u884c \u865a\u5e7b \u5f15\u64ce \u7684 \u53d1\u5e03 \u3002 \u4f7f\u7528 Visual Studio \u6253\u5f00 UE4 . shn \u3002 \u5728 \u53f3\u4fa7 \u8fb9\u680f \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u4e00\u4e2a \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668 \u9762\u677f \u3002 \u5c55\u5f00 Programs \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u627e\u5230 AutomationTool \u9879\u76ee \uff08 Engine \\ Source \\ Programs \\ AutomationTool \uff09 \uff1a \u53f3\u952e \u5355\u51fb \u5b83 \u5e76 \u9009\u62e9 \u751f\u6210 ( Build ) \uff0c \u5e94\u8be5 \u5f88\u5feb \u3002","title":"\u53d1\u5e03 \u5b89\u88c5 \u7248\u672c"},{"location":"launch_windows/#_2","text":"\u5b89\u88c5 Windows 10 SDK ; \u8fd0\u884c \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u7684 \u5b89\u88c5 \u6784\u5efa \u811a\u672c GenerateInstalledBuild . bat \u3002 \u5982\u679c \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 LocalBuilds \u4e0e \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5904\u4e8e \u540c\u4e00 \u7ea7\u522b \u7684 Engine \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76\u4e14 \u63a7\u5236 \u63a7\u5236\u53f0 \u4e2d \u6ca1\u6709 \u9519\u8bef \u3002 ( \u8fd8 \u5305\u62ec \u4e00\u4e2a InstalledDDC \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a DerivedDataCache ) \u3002","title":"\u8fd0\u884c \u5b89\u88c5 \u8f6f\u4ef6 \u7684 \u6784\u5efa \u811a\u672c"},{"location":"launch_windows/#_3","text":"ERROR : Visual Studio 2017 must be installed in order to build this target . \u89e3\u51b3 \uff1a \u4e0b\u8f7d 3d5 _ VisualStudio20171509 . rar \u8fdb\u884c \u5b89\u88c5 \u3002 Unable to find installation of PDBCOPY . EXE \u89e3\u51b3 \uff1a \u53c2\u8003 \u94fe\u63a5 \u4ece \u767e\u5ea6 \u767e\u5ea6\u7f51 \u76d8 \u4e0b\u8f7d X64 Debuggers And Tools - x64 _ en - us . msi \u5b89\u88c5 \u3002 \u65e0\u6cd5 \u542f\u52a8 \u6b64 \u7a0b\u5e8f \uff0c \u56e0\u4e3a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e2d \u4e22\u5931 XINPUT1 _ 3 . dll \u3002 \u5c1d\u8bd5 \u91cd\u65b0 \u65b0\u5b89 \u5b89\u88c5 \u91cd\u65b0\u5b89\u88c5 \u8be5\u7a0b \u89e3\u51b3 \uff1a \u53c2\u8003 \u94fe\u63a5 \u5b89\u88c5 DirectX Redist ( June 2010 ) \u3002 \u5355\u72ec \u8fd0\u884c Engine - > Binaries - > Win64 \u4f1a \u51fa\u73b0 \u9519\u8bef \u63d0\u793a \uff1a Plugin ' ExampleDeviceProfileSelector ' failed to load because moduleExampleDeviceProfileSelector ' could not be found . Please ensure the plugin isproperly installed , otherwise consider disabling the plugin for this project . \u4f46\u662f make launch \u4e0d\u4f1a \u51fa\u9519 \u3002","title":"\u95ee\u9898"},{"location":"libcarla/","text":"LibCarla C++ \u6587\u6863","title":"Libcarla"},{"location":"libcarla/#libcarla","text":"C++ \u6587\u6863","title":"LibCarla"},{"location":"map_town01/","text":"\u57ce\u9547 1 \u57ce\u9547 1 \u662f \u4e00\u5ea7 \u5c0f\u9547 \uff0c \u62e5\u6709 \u4f17\u591a \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \uff0c \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u9488\u53f6 \u9488\u53f6\u6811 \uff0c \u8fd8\u6709 \u51e0\u5ea7 \u6a2a\u8de8 \u6cb3\u6d41 \u7684 \u5c0f\u6865 \uff0c \u5c06 \u5c0f\u9547 \u5206\u4e3a \u4e24\u534a \u3002 \u8def\u7f51 \u9053\u8def \u7f51\u7edc \u6709 \u51e0\u5ea7 \u8de8\u6c34 \u6865\u6881 \u548c \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u3002 \u7279\u5f81 \u5730\u56fe \u4e0a \u6709 \u4e00\u6761 \u5c0f\u6cb3 \uff0c \u6709 \u51e0\u4e2a \u8def\u53e3 \u3002 \u5546\u4e1a \u98ce\u683c \u5efa\u7b51 \u6797\u7acb \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u57ce\u9547 1"},{"location":"map_town01/#1","text":"\u57ce\u9547 1 \u662f \u4e00\u5ea7 \u5c0f\u9547 \uff0c \u62e5\u6709 \u4f17\u591a \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \uff0c \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u9488\u53f6 \u9488\u53f6\u6811 \uff0c \u8fd8\u6709 \u51e0\u5ea7 \u6a2a\u8de8 \u6cb3\u6d41 \u7684 \u5c0f\u6865 \uff0c \u5c06 \u5c0f\u9547 \u5206\u4e3a \u4e24\u534a \u3002","title":"\u57ce\u9547 1"},{"location":"map_town01/#_1","text":"\u9053\u8def \u7f51\u7edc \u6709 \u51e0\u5ea7 \u8de8\u6c34 \u6865\u6881 \u548c \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u3002","title":"\u8def\u7f51"},{"location":"map_town01/#_2","text":"\u5730\u56fe \u4e0a \u6709 \u4e00\u6761 \u5c0f\u6cb3 \uff0c \u6709 \u51e0\u4e2a \u8def\u53e3 \u3002 \u5546\u4e1a \u98ce\u683c \u5efa\u7b51 \u6797\u7acb \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u7279\u5f81"},{"location":"map_town02/","text":"\u57ce\u9547 2 \u57ce\u9547 2 \u662f \u4e00\u4e2a \u5c0f\u9547 \uff0c \u6709 \u4f17\u591a \u7684 \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6709 \u6210\u7247 \u7684 \u9488\u53f6 \u9488\u53f6\u6811 \u3001 \u4e00\u4e2a \u516c\u56ed \u4ee5\u53ca \u4e00\u4e2a \u4f4f\u5b85 \u548c \u5546\u4e1a \u5546\u4e1a\u533a \u3002 \u8def\u7f51 \u8def\u7f51 \u7531 \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u7ec4\u6210 \u3002 \u7279\u5f81 \u5730\u56fe \u4e0a \u6709 \u5546\u4e1a \u5546\u4e1a\u533a \u548c \u5927\u8857 \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u516c\u5bd3 \u516c\u5bd3\u697c \u548c \u6559\u5802 \u3002 \u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8fd8\u6709 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u9053\u8def \u3002","title":"\u57ce\u9547 2"},{"location":"map_town02/#2","text":"\u57ce\u9547 2 \u662f \u4e00\u4e2a \u5c0f\u9547 \uff0c \u6709 \u4f17\u591a \u7684 \u4e01\u5b57 \u8def\u53e3 \u548c \u5404\u79cd \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6709 \u6210\u7247 \u7684 \u9488\u53f6 \u9488\u53f6\u6811 \u3001 \u4e00\u4e2a \u516c\u56ed \u4ee5\u53ca \u4e00\u4e2a \u4f4f\u5b85 \u548c \u5546\u4e1a \u5546\u4e1a\u533a \u3002","title":"\u57ce\u9547 2"},{"location":"map_town02/#_1","text":"\u8def\u7f51 \u7531 \u8bb8\u591a \u7b80\u5355 \u7684 \u4e01\u5b57 \u8def\u53e3 \u7ec4\u6210 \u3002","title":"\u8def\u7f51"},{"location":"map_town02/#_2","text":"\u5730\u56fe \u4e0a \u6709 \u5546\u4e1a \u5546\u4e1a\u533a \u548c \u5927\u8857 \u3002 \u8fd8\u6709 \u4f4f\u5b85 \u516c\u5bd3 \u516c\u5bd3\u697c \u548c \u6559\u5802 \u3002 \u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8fd8\u6709 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u9053\u8def \u3002","title":"\u7279\u5f81"},{"location":"map_town03/","text":"\u57ce\u9547 3 \u57ce\u9547 3 \u662f \u4e00\u4e2a \u8f83\u5927 \u7684 \u9547 \uff0c \u5177\u6709 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u57ce\u533a \u7684 \u7279\u70b9 \u3002 \u8be5 \u5730\u56fe \u5305\u62ec \u4e00\u4e9b \u6709\u8da3 \u7684 \u9053\u8def \u7f51\u7edc \u7279\u5f81 \uff0c \u4f8b\u5982 \u73af\u5c9b \u3001 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002 \u8be5\u9547 \u8fd8 \u5305\u62ec \u4e00\u6761 \u9ad8\u67b6 \u5730\u94c1 \u8f68\u9053 \u548c \u4e00\u5ea7 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u7684 \u5927\u578b \u5efa\u7b51 \u3002 \u8def\u7f51 \u8def\u7f51 \u8bbe\u6709 \u4e2d\u592e \u73af\u5c9b \u548c \u4f4f\u5b85 \u80e1\u540c \u6b7b\u80e1\u540c \uff0c \u4ee5\u53ca \u4f17\u591a \u56db\u5411 \u8def\u53e3 \u548c \u4e01\u5b57 \u8def\u53e3 \u3002 \u7279\u5f81 \u8be5 \u5730\u56fe \u4ee5 \u7a81\u51fa \u7684 \u4e2d\u592e \u73af\u5c9b \u4e3a \u7279\u8272 \uff0c \u5176\u4e2d \u6709 \u4e00\u5ea7 \u73b0\u4ee3 \u4e3b\u4e49 \u73b0\u4ee3\u4e3b\u4e49 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u548c \u6c34\u57df \u3002 \u4e2d\u5fc3 \u5468\u56f4 \u6709 \u4e00\u6761 \u51f8\u8d77 \u7684 \u5730\u94c1 \u8f68\u9053 \u3002 \u4e00\u4e2a \u5927\u8def \u8def\u53e3 \u5927\u8def\u53e3 \u65c1\u8fb9 \u8fd8\u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8def\u7f51 \u8bbe\u6709 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u3002 \u8fd9\u91cc \u6709 \u516c\u56ed \u548c \u5404\u79cd \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u5546\u4e1a \u5efa\u7b51 \u548c \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u57ce\u9547 3"},{"location":"map_town03/#3","text":"\u57ce\u9547 3 \u662f \u4e00\u4e2a \u8f83\u5927 \u7684 \u9547 \uff0c \u5177\u6709 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u57ce\u533a \u7684 \u7279\u70b9 \u3002 \u8be5 \u5730\u56fe \u5305\u62ec \u4e00\u4e9b \u6709\u8da3 \u7684 \u9053\u8def \u7f51\u7edc \u7279\u5f81 \uff0c \u4f8b\u5982 \u73af\u5c9b \u3001 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002 \u8be5\u9547 \u8fd8 \u5305\u62ec \u4e00\u6761 \u9ad8\u67b6 \u5730\u94c1 \u8f68\u9053 \u548c \u4e00\u5ea7 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u7684 \u5927\u578b \u5efa\u7b51 \u3002","title":"\u57ce\u9547 3"},{"location":"map_town03/#_1","text":"\u8def\u7f51 \u8bbe\u6709 \u4e2d\u592e \u73af\u5c9b \u548c \u4f4f\u5b85 \u80e1\u540c \u6b7b\u80e1\u540c \uff0c \u4ee5\u53ca \u4f17\u591a \u56db\u5411 \u8def\u53e3 \u548c \u4e01\u5b57 \u8def\u53e3 \u3002","title":"\u8def\u7f51"},{"location":"map_town03/#_2","text":"\u8be5 \u5730\u56fe \u4ee5 \u7a81\u51fa \u7684 \u4e2d\u592e \u73af\u5c9b \u4e3a \u7279\u8272 \uff0c \u5176\u4e2d \u6709 \u4e00\u5ea7 \u73b0\u4ee3 \u4e3b\u4e49 \u73b0\u4ee3\u4e3b\u4e49 \u7eaa\u5ff5 \u7eaa\u5ff5\u7891 \u548c \u6c34\u57df \u3002 \u4e2d\u5fc3 \u5468\u56f4 \u6709 \u4e00\u6761 \u51f8\u8d77 \u7684 \u5730\u94c1 \u8f68\u9053 \u3002 \u4e00\u4e2a \u5927\u8def \u8def\u53e3 \u5927\u8def\u53e3 \u65c1\u8fb9 \u8fd8\u6709 \u4e00\u4e2a \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u8def\u7f51 \u8bbe\u6709 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u3002 \u8fd9\u91cc \u6709 \u516c\u56ed \u548c \u5404\u79cd \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u5546\u4e1a \u5efa\u7b51 \u548c \u4f4f\u5b85 \u4f4f\u5b85\u697c \u3002","title":"\u7279\u5f81"},{"location":"map_town04/","text":"\u57ce\u9547 4 \u57ce\u9547 4 \u662f \u4e00\u4e2a \u4ee5 \u96ea\u5c71 \u548c \u9488\u53f6 \u9488\u53f6\u6811 \u4e3a \u80cc\u666f \u7684 \u5c0f\u9547 \u3002 \u4e00\u6761 \u591a \u8f66\u9053 \u9053\u8def \u4ee5 \u201c 8 \u5b57\u5f62 \u201d \u73af\u7ed5 \u57ce\u9547 \u3002 \u8def\u7f51 \u8def\u7f51 \u7531 \u5546\u4e1a \u548c \u4f4f\u5b85 \u5efa\u7b51 \u4e4b\u95f4 \u7684 \u77ed \u8857\u9053 \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7ec4\u6210 \u7684 \u5c0f\u578b \u7f51\u7edc \u7ec4\u6210 \uff0c \u201c 8 \u5b57\u5f62 \u201d \u98ce\u683c \u7684 \u73af\u5f62 \u9053\u8def \u73af\u7ed5 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u9644\u8fd1 \u7684 \u4e00\u5ea7 \u5c71 \u3002 8 \u5b57\u5f62 \u7684 \u5341\u5b57 \u4ee3\u8868 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 / \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u548c \u73af\u5f62 \u652f\u8def \u3002 \u8be5 \u7f51\u7edc \u8fd8 \u8bbe\u6709 \u5e26 \u73af\u5f62 \u652f\u8def \u7684 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002 \u7279\u5f81 \u4f9d\u5c71 \u800c \u5efa \u7684 \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u9547 \u4e2d\u5fc3 \u662f \u4e00\u4e2a \u8bbe\u6709 \u6237\u5916 \u5ea7\u4f4d \u7684 \u6b65\u884c \u8d2d\u7269 \u5546\u573a \u3002 \u8fd9\u91cc \u6709 \u5404\u79cd \u98ce\u683c \u7684 \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u4ee5\u53ca \u8857\u9053 \uff0c \u5305\u62ec \u6811\u6728 \u548c \u5e7f\u544a \u5e7f\u544a\u724c \u3002","title":"\u57ce\u9547 4"},{"location":"map_town04/#4","text":"\u57ce\u9547 4 \u662f \u4e00\u4e2a \u4ee5 \u96ea\u5c71 \u548c \u9488\u53f6 \u9488\u53f6\u6811 \u4e3a \u80cc\u666f \u7684 \u5c0f\u9547 \u3002 \u4e00\u6761 \u591a \u8f66\u9053 \u9053\u8def \u4ee5 \u201c 8 \u5b57\u5f62 \u201d \u73af\u7ed5 \u57ce\u9547 \u3002","title":"\u57ce\u9547 4"},{"location":"map_town04/#_1","text":"\u8def\u7f51 \u7531 \u5546\u4e1a \u548c \u4f4f\u5b85 \u5efa\u7b51 \u4e4b\u95f4 \u7684 \u77ed \u8857\u9053 \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7ec4\u6210 \u7684 \u5c0f\u578b \u7f51\u7edc \u7ec4\u6210 \uff0c \u201c 8 \u5b57\u5f62 \u201d \u98ce\u683c \u7684 \u73af\u5f62 \u9053\u8def \u73af\u7ed5 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u9644\u8fd1 \u7684 \u4e00\u5ea7 \u5c71 \u3002 8 \u5b57\u5f62 \u7684 \u5341\u5b57 \u4ee3\u8868 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 / \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u548c \u73af\u5f62 \u652f\u8def \u3002 \u8be5 \u7f51\u7edc \u8fd8 \u8bbe\u6709 \u5e26 \u73af\u5f62 \u652f\u8def \u7684 \u5730\u4e0b \u901a\u9053 \u5730\u4e0b\u901a\u9053 \u548c \u7acb\u4ea4 \u7acb\u4ea4\u6865 \u3002","title":"\u8def\u7f51"},{"location":"map_town04/#_2","text":"\u4f9d\u5c71 \u800c \u5efa \u7684 \u52a0\u6cb9 \u52a0\u6cb9\u7ad9 \u3002 \u9547 \u4e2d\u5fc3 \u662f \u4e00\u4e2a \u8bbe\u6709 \u6237\u5916 \u5ea7\u4f4d \u7684 \u6b65\u884c \u8d2d\u7269 \u5546\u573a \u3002 \u8fd9\u91cc \u6709 \u5404\u79cd \u98ce\u683c \u7684 \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u4ee5\u53ca \u8857\u9053 \uff0c \u5305\u62ec \u6811\u6728 \u548c \u5e7f\u544a \u5e7f\u544a\u724c \u3002","title":"\u7279\u5f81"},{"location":"map_town05/","text":"\u57ce\u9547 5 \u57ce\u9547 5 \u662f \u4e00\u4e2a \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5 \u9488\u53f6 \u9488\u53f6\u6811 \u8986\u76d6 \u7684 \u5c71\u4e18 \u4e3a \u80cc\u666f \uff0c \u6709 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5927\u578b \u591a \u8f66\u9053 \u9053\u8def \u548c \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002 \u8def\u7f51 \u8fd9\u4e9b \u9053\u8def \u7531 \u8bb8\u591a \u53cc \u8f66\u9053 \u57ce\u5e02 \u5e02\u9053 \u9053\u8def \u57ce\u5e02\u9053\u8def \u7ec4\u6210 \uff0c \u5728 \u8bb8\u591a \u5927\u578b \u8def\u53e3 \u76f8\u4ea4 \u3002 \u57ce\u9547 \u4e24\u4fa7 \u7684 \u8def\u53e3 \u53ef \u901a\u5f80 \u7528\u4f5c \u73af\u8def \u7684 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u7279\u5f81 \u8be5\u9547 \u62e5\u6709 \u4f17\u591a \u5546\u4e1a \u5efa\u7b51 \u3002 \u57ce\u9547 \u4e2d\u5fc3 \u8fd8\u6709 \u4e00\u5ea7 \u5efa\u7b51 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u3002 \u6709 \u4e00\u4e2a \u505c\u8f66 \u8f66\u573a \u505c\u8f66\u573a \uff0c \u5360\u636e \u4e00\u4e2a \u8857\u533a \u3002 \u9053\u8def \u5ef6\u4f38 \u5230 \u4e00\u5904 \u5546\u4e1a \u5efa\u7b51 \u4e0b\u65b9 \u3002","title":"\u57ce\u9547 5"},{"location":"map_town05/#5","text":"\u57ce\u9547 5 \u662f \u4e00\u4e2a \u57ce\u5e02 \u73af\u5883 \uff0c \u4ee5 \u9488\u53f6 \u9488\u53f6\u6811 \u8986\u76d6 \u7684 \u5c71\u4e18 \u4e3a \u80cc\u666f \uff0c \u6709 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u5927\u578b \u591a \u8f66\u9053 \u9053\u8def \u548c \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002","title":"\u57ce\u9547 5"},{"location":"map_town05/#_1","text":"\u8fd9\u4e9b \u9053\u8def \u7531 \u8bb8\u591a \u53cc \u8f66\u9053 \u57ce\u5e02 \u5e02\u9053 \u9053\u8def \u57ce\u5e02\u9053\u8def \u7ec4\u6210 \uff0c \u5728 \u8bb8\u591a \u5927\u578b \u8def\u53e3 \u76f8\u4ea4 \u3002 \u57ce\u9547 \u4e24\u4fa7 \u7684 \u8def\u53e3 \u53ef \u901a\u5f80 \u7528\u4f5c \u73af\u8def \u7684 \u9ad8\u67b6 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002","title":"\u8def\u7f51"},{"location":"map_town05/#_2","text":"\u8be5\u9547 \u62e5\u6709 \u4f17\u591a \u5546\u4e1a \u5efa\u7b51 \u3002 \u57ce\u9547 \u4e2d\u5fc3 \u8fd8\u6709 \u4e00\u5ea7 \u5efa\u7b51 \u6b63\u5728 \u5efa\u8bbe \u4e2d \u3002 \u6709 \u4e00\u4e2a \u505c\u8f66 \u8f66\u573a \u505c\u8f66\u573a \uff0c \u5360\u636e \u4e00\u4e2a \u8857\u533a \u3002 \u9053\u8def \u5ef6\u4f38 \u5230 \u4e00\u5904 \u5546\u4e1a \u5efa\u7b51 \u4e0b\u65b9 \u3002","title":"\u7279\u5f81"},{"location":"map_town06/","text":"\u57ce\u9547 6 \u57ce\u9547 6 \u662f \u4e00\u4e2a \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u5c0f\u9547 \uff0c \u5750\u843d \u5728 \u9488\u53f6 \u9488\u53f6\u6797 \u666f\u89c2 \u4e2d \uff0c \u62e5\u6709 \u4f17\u591a \u5927\u578b 4 - 6 \u8f66\u9053 \u9053\u8def \u548c \u7279\u6b8a \u8def\u53e3 \uff0c \u4f8b\u5982 \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 6 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002 \u8def\u7f51 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u6709 4 \u6761 \u5927\u578b \u5e73\u884c \u9053\u8def \uff0c \u6709 4 \u81f3 6 \u6761 \u8f66\u9053 \uff0c \u901a\u8fc7 \u591a\u4e2a \u652f\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u3002 \u57ce\u9547 6 \u7684 \u4f17\u591a \u652f\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u5305\u62ec \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u5c55\u793a \u4e86 \u591a\u79cd \u9053\u8def \u573a\u666f \uff0c \u5305\u62ec 5 \u8f66\u9053 \u9053\u8def \u3001 \u80e1\u540c \u6b7b\u80e1\u540c \u548c \u6307\u5b9a \u8f6c\u5f2f \u8f66\u9053 \u3002","title":"\u57ce\u9547 6"},{"location":"map_town06/#6","text":"\u57ce\u9547 6 \u662f \u4e00\u4e2a \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u5c0f\u9547 \uff0c \u5750\u843d \u5728 \u9488\u53f6 \u9488\u53f6\u6797 \u666f\u89c2 \u4e2d \uff0c \u62e5\u6709 \u4f17\u591a \u5927\u578b 4 - 6 \u8f66\u9053 \u9053\u8def \u548c \u7279\u6b8a \u8def\u53e3 \uff0c \u4f8b\u5982 \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 6 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002","title":"\u57ce\u9547 6"},{"location":"map_town06/#_1","text":"\u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u6709 4 \u6761 \u5927\u578b \u5e73\u884c \u9053\u8def \uff0c \u6709 4 \u81f3 6 \u6761 \u8f66\u9053 \uff0c \u901a\u8fc7 \u591a\u4e2a \u652f\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u76f8\u4e92 \u4e92\u8fde \u8fde\u63a5 \u76f8\u4e92\u8fde\u63a5 \u3002 \u57ce\u9547 6 \u7684 \u4f17\u591a \u652f\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u5305\u62ec \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u5c55\u793a \u4e86 \u591a\u79cd \u9053\u8def \u573a\u666f \uff0c \u5305\u62ec 5 \u8f66\u9053 \u9053\u8def \u3001 \u80e1\u540c \u6b7b\u80e1\u540c \u548c \u6307\u5b9a \u8f6c\u5f2f \u8f66\u9053 \u3002","title":"\u8def\u7f51"},{"location":"map_town07/","text":"\u57ce\u9547 7 \u57ce\u9547 7 \u6a21\u4eff \u4e86 \u4e00\u4e2a \u5b89\u9759 \u7684 \u4e61\u6751 \u793e\u533a \uff0c \u7eff\u8272 \u7684 \u666f\u89c2 \u5145\u6ee1 \u4e86 \u7389\u7c73 \u7389\u7c73\u5730 \u3001 \u8c37\u4ed3 \u3001 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u57ce\u9547 7 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002 \u8def\u7f51 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u5f88\u5c0f \uff0c \u5305\u542b \u4e00\u7ec4 \u7b80\u5355 \u7684 \u8def\u53e3 \u548c \u6ca1\u6709 \u6807\u8bb0 \u7684 \u9053\u8def \u4ee5\u53ca \u51e0\u6761 \u4f4f\u5b85 \u505c\u8f66 \u8857 \u3002 \u7279\u5f81 \u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u5305\u62ec \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u573a \u5efa\u7b51 \u3002 \u6709\u4e9b \u7ed3\u6784 \u53ea \u5728 \u519c\u6751 \u519c\u4e1a \u73af\u5883 \u4e2d \u51fa\u73b0 \uff0c \u4f8b\u5982 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u8fd8\u6709 \u4e00\u5c0f \u5c0f\u7247 \u4e00\u5c0f\u7247 \u6c34\u57df \uff0c \u4e0a\u9762 \u6709 \u4e00\u5ea7 \u77ed \u516c\u8def \u8def\u6865 \u516c\u8def\u6865 \u3002 \u4e00\u4e9b \u9053\u8def \u4e24\u65c1 \u90fd \u662f \u7389\u7c73 \u7389\u7c73\u5730 \u3002","title":"\u57ce\u9547 7"},{"location":"map_town07/#7","text":"\u57ce\u9547 7 \u6a21\u4eff \u4e86 \u4e00\u4e2a \u5b89\u9759 \u7684 \u4e61\u6751 \u793e\u533a \uff0c \u7eff\u8272 \u7684 \u666f\u89c2 \u5145\u6ee1 \u4e86 \u7389\u7c73 \u7389\u7c73\u5730 \u3001 \u8c37\u4ed3 \u3001 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u57ce\u9547 7 \u662f \u9644\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u5e94 \u4e0e Carla \u5305 \u4e00\u8d77 \u4e0b\u8f7d \u3002 \u5c06 \u4e0b\u8f7d \u7684 ZIP \u6587\u4ef6 \u79fb\u52a8 \u5230 \u89e3\u538b \u7684 Carla \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u7136\u540e \u8fd0\u884c Util / ImportAssets . sh \u811a\u672c \u3002","title":"\u57ce\u9547 7"},{"location":"map_town07/#_1","text":"\u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u5f88\u5c0f \uff0c \u5305\u542b \u4e00\u7ec4 \u7b80\u5355 \u7684 \u8def\u53e3 \u548c \u6ca1\u6709 \u6807\u8bb0 \u7684 \u9053\u8def \u4ee5\u53ca \u51e0\u6761 \u4f4f\u5b85 \u505c\u8f66 \u8857 \u3002","title":"\u8def\u7f51"},{"location":"map_town07/#_2","text":"\u8fd9\u4e9b \u5efa\u7b51 \u5efa\u7b51\u7269 \u5305\u62ec \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u573a \u5efa\u7b51 \u3002 \u6709\u4e9b \u7ed3\u6784 \u53ea \u5728 \u519c\u6751 \u519c\u4e1a \u73af\u5883 \u4e2d \u51fa\u73b0 \uff0c \u4f8b\u5982 \u7cae\u4ed3 \u548c \u98ce\u8f66 \u3002 \u8fd8\u6709 \u4e00\u5c0f \u5c0f\u7247 \u4e00\u5c0f\u7247 \u6c34\u57df \uff0c \u4e0a\u9762 \u6709 \u4e00\u5ea7 \u77ed \u516c\u8def \u8def\u6865 \u516c\u8def\u6865 \u3002 \u4e00\u4e9b \u9053\u8def \u4e24\u65c1 \u90fd \u662f \u7389\u7c73 \u7389\u7c73\u5730 \u3002","title":"\u7279\u5f81"},{"location":"map_town10/","text":"\u57ce\u9547 10 \u57ce\u9547 10 \u878d\u5408 \u4e86 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u73af\u5883 \u7684 \u7279\u8272 \uff0c \u62e5\u6709 \u5149\u9c9c \u9c9c\u4eae \u4eae\u4e3d \u5149\u9c9c\u4eae\u4e3d \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u548c \u5de5\u4e1a \u5efa\u7b51 \uff0c \u6bd7\u90bb \u6d77\u6ee8 \u957f\u5eca \u3001 \u516c\u5bd3 \u516c\u5bd3\u697c \u3001 \u9152\u5e97 \u3001 \u516c\u5171 \u5171\u5efa \u5efa\u7b51 \u516c\u5171\u5efa\u7b51 \u548c \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \u3002 \u57ce\u9547 10 \u7684 \u8def\u7f51 \u62e5\u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \u5e03\u7f6e \uff0c \u5177\u6709 \u5404\u79cd \u8f66\u9053 \u6807\u8bb0 \u3001 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u548c \u4fe1\u53f7 \u7c7b\u578b \uff0c \u4ee5 \u6311\u6218 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u4e0e \u5176\u4ed6 \u4ea4\u901a \u7684 \u534f\u5546 \u3002 \u8def\u7f51 \u9053\u8def \u7f51\u7edc \u7531 \u7f51\u683c \u5e03\u5c40 \u7ec4\u6210 \uff0c \u5305\u62ec \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \uff0c \u5305\u62ec \u56db\u5411 \u9ec4\u7bb1 \u8def\u53e3 \u3001 \u4e13\u7528 \u8f6c\u5f2f \u8f66\u9053 \u548c \u4e2d\u592e \u9884\u7559 \u533a \u3002 \u7279\u5f81 \u9547 \u4e2d\u5fc3 \u6709 \u4e00\u6761 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \uff0c \u5373\u4f7f \u5728 \u4e2d\u5348 \uff0c \u6811\u51a0 \u4e5f \u4f1a \u5728 \u6811\u836b \u6811\u836b\u4e0b \u6295 \u4e0b \u9634\u5f71 \u3002 \u4e00\u5ea7 \u5b8f\u4f1f \u7684 \u535a\u7269 \u535a\u7269\u9986 \u5360\u636e \u4e86 \u9547 \u4e2d\u5fc3 \u7684 \u4e00\u4fa7 \u3002 \u57ce\u9547 \u7684 \u4e00\u4fa7 \u53e6\u4e00\u4fa7 \u6709 \u4e00\u6761 \u6d77\u6d0b \u957f\u5eca \u3002 \u8be5 \u5efa\u7b51 \u5305\u62ec \u4f17\u591a \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5305\u62ec \u5149\u6ed1 \u7684 \u53cd\u5149 \u5efa\u7b51 \u548c \u5f62\u72b6 \u5f02\u5e38 \u7684 \u626d\u66f2 \u548c \u5706\u67f1 \u67f1\u5f62 \u5706\u67f1\u5f62 \u5854\u697c \u3002","title":"\u57ce\u9547 10"},{"location":"map_town10/#10","text":"\u57ce\u9547 10 \u878d\u5408 \u4e86 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u73af\u5883 \u7684 \u7279\u8272 \uff0c \u62e5\u6709 \u5149\u9c9c \u9c9c\u4eae \u4eae\u4e3d \u5149\u9c9c\u4eae\u4e3d \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u548c \u5de5\u4e1a \u5efa\u7b51 \uff0c \u6bd7\u90bb \u6d77\u6ee8 \u957f\u5eca \u3001 \u516c\u5bd3 \u516c\u5bd3\u697c \u3001 \u9152\u5e97 \u3001 \u516c\u5171 \u5171\u5efa \u5efa\u7b51 \u516c\u5171\u5efa\u7b51 \u548c \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \u3002 \u57ce\u9547 10 \u7684 \u8def\u7f51 \u62e5\u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \u5e03\u7f6e \uff0c \u5177\u6709 \u5404\u79cd \u8f66\u9053 \u6807\u8bb0 \u3001 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u548c \u4fe1\u53f7 \u7c7b\u578b \uff0c \u4ee5 \u6311\u6218 \u60a8 \u7684 \u81ea\u4e3b \u667a\u80fd \u4f53 \u4e0e \u5176\u4ed6 \u4ea4\u901a \u7684 \u534f\u5546 \u3002","title":"\u57ce\u9547 10"},{"location":"map_town10/#_1","text":"\u9053\u8def \u7f51\u7edc \u7531 \u7f51\u683c \u5e03\u5c40 \u7ec4\u6210 \uff0c \u5305\u62ec \u8bb8\u591a \u4e0d\u540c \u7684 \u8def\u53e3 \uff0c \u5305\u62ec \u56db\u5411 \u9ec4\u7bb1 \u8def\u53e3 \u3001 \u4e13\u7528 \u8f6c\u5f2f \u8f66\u9053 \u548c \u4e2d\u592e \u9884\u7559 \u533a \u3002","title":"\u8def\u7f51"},{"location":"map_town10/#_2","text":"\u9547 \u4e2d\u5fc3 \u6709 \u4e00\u6761 \u7eff\u6811 \u6210\u836b \u7eff\u6811\u6210\u836b \u7684 \u6797\u836b \u5927\u9053 \u6797\u836b\u5927\u9053 \uff0c \u5373\u4f7f \u5728 \u4e2d\u5348 \uff0c \u6811\u51a0 \u4e5f \u4f1a \u5728 \u6811\u836b \u6811\u836b\u4e0b \u6295 \u4e0b \u9634\u5f71 \u3002 \u4e00\u5ea7 \u5b8f\u4f1f \u7684 \u535a\u7269 \u535a\u7269\u9986 \u5360\u636e \u4e86 \u9547 \u4e2d\u5fc3 \u7684 \u4e00\u4fa7 \u3002 \u57ce\u9547 \u7684 \u4e00\u4fa7 \u53e6\u4e00\u4fa7 \u6709 \u4e00\u6761 \u6d77\u6d0b \u957f\u5eca \u3002 \u8be5 \u5efa\u7b51 \u5305\u62ec \u4f17\u591a \u98ce\u683c \u5404\u5f02 \u98ce\u683c\u5404\u5f02 \u7684 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5305\u62ec \u5149\u6ed1 \u7684 \u53cd\u5149 \u5efa\u7b51 \u548c \u5f62\u72b6 \u5f02\u5e38 \u7684 \u626d\u66f2 \u548c \u5706\u67f1 \u67f1\u5f62 \u5706\u67f1\u5f62 \u5854\u697c \u3002","title":"\u7279\u5f81"},{"location":"map_town11/","text":"\u57ce\u9547 11 \u662f \u4e00\u5f20 \u6ca1\u6709 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u6216 \u690d\u88ab \u7b49 \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u9053\u8def \u8def\u7f51 \u9053\u8def\u7f51 \u7531 \u6742\u4e71 \u6742\u4e71\u65e0\u7ae0 \u7684 \u5355\u8f66 \u9053 \u9053\u8def \u7ec4\u6210 \uff0c \u6563\u5e03 \u7740 \u5c0f\u7fa4 \u7f51\u683c \u72b6 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u3002 \u8be5 \u666f\u89c2 \u6709 \u4e00\u4e9b \u4e18\u9675 \u548c \u9ad8\u5730 \uff0c \u5e76\u4e14 \u5177\u6709 \u8349\u72b6 \u7eb9\u7406 \u3002 \u57ce\u9547 11 \u4e3b\u8981 \u7528\u4f5c Carla 0.9 . 12 \u4e2d \u5f15\u5165 \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u7684 \u6982\u5ff5 \u9a8c\u8bc1 \uff0c \u5e76\u4e14 \u662f \u7b2c\u4e00 \u4e00\u5f20 \u7b2c\u4e00\u5f20 \u96c6\u6210 \u5230 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u7684 \u5927 \u5730\u56fe \u3002 \u60a8 \u53ef\u80fd \u4f1a \u53d1\u73b0 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u67e5\u770b \u57ce\u9547 11 \u7684 \u8d44\u6e90 \u6587\u4ef6 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u4e86\u89e3 Carla \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u4e2d \u5904\u7406 \u5927 \u5730\u56fe \u7684 \u60c5\u51b5 \u3002","title":"Map town11"},{"location":"map_town12/","text":"\u57ce\u9547 12 \u57ce\u9547 12 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u9053\u8def \u5e03\u5c40 \u90e8\u5206 \u53d7\u5230 \u7f8e\u56fd \u5fb7\u514b \u8428\u65af \u8428\u65af\u5dde \u5fb7\u514b\u8428\u65af\u5dde \u963f\u9a6c \u9a6c\u91cc \u963f\u9a6c\u91cc \u6d1b\u5e02 \u9053\u8def \u5e03\u5c40 \u7684 \u542f\u53d1 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002 \u5bfc\u822a \u5668 \u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 500.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) ) \u57ce\u9547 12 \u533a \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \uff1a \u57ce\u9547 12 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 12 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002 \u793e\u533a \u5efa\u7b51 \uff1a \u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u7cbe\u54c1 \u7cbe\u54c1\u5e97 \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 12 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u7f8e\u56fd \u57ce\u5e02 \u7684 \u7ecf\u5178 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u3002 \u516c\u56ed \uff1a \u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \uff1a \u57ce\u9547 12 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u5176\u4e2d \u6563\u5e03 \u7740 \u4ee4\u4eba \u5370\u8c61 \u6df1\u523b \u7684 \u73af\u5c9b \u8def\u53e3 \u548c \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u3002 \u519c\u6751 \u548c \u519c\u7530 \uff1a \u57ce\u9547 12 \u8fd8\u6709 \u4e61\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002 \u6c34\u57df \uff1a \u57ce\u9547 12 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec 2 \u4e2a \u5927\u6e56 \u548c \u51e0\u4e2a \u6c60\u5858 \u3002 \u7531\u4e8e \u57ce\u5e02 \u65c1\u8fb9 \u6709 \u4e00\u4e9b \u5927\u578b \u6c34\u666f \uff0c \u8fd9\u4e9b \u6c34\u666f \u4f1a \u4ea7\u751f \u5929\u9645 \u5929\u9645\u7ebf \u7684 \u5012 \u53cd\u5c04 \uff0c \u7ed9 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5e26\u6765 \u6311\u6218 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 10482.4274 * state . pX + - 5.39801455 * state . pY - 5673.07949 ; const carlaY = 5.39801455 * state . pX + 10482.4274 * state . pY - 2885.15738 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u57ce\u9547 12"},{"location":"map_town12/#12","text":"\u57ce\u9547 12 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u9053\u8def \u5e03\u5c40 \u90e8\u5206 \u53d7\u5230 \u7f8e\u56fd \u5fb7\u514b \u8428\u65af \u8428\u65af\u5dde \u5fb7\u514b\u8428\u65af\u5dde \u963f\u9a6c \u9a6c\u91cc \u963f\u9a6c\u91cc \u6d1b\u5e02 \u9053\u8def \u5e03\u5c40 \u7684 \u542f\u53d1 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002","title":"\u57ce\u9547 12"},{"location":"map_town12/#_1","text":"\u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 500.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) )","title":"\u5bfc\u822a \u5668"},{"location":"map_town12/#12_1","text":"","title":"\u57ce\u9547 12 \u533a"},{"location":"map_town12/#_2","text":"\u57ce\u9547 12 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002","title":"\u5e02\u4e2d\u5fc3 \u9ad8\u5c42\u5efa\u7b51 \uff1a"},{"location":"map_town12/#_3","text":"\u57ce\u9547 12 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002","title":"\u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town12/#_4","text":"\u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u7cbe\u54c1 \u7cbe\u54c1\u5e97 \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002","title":"\u793e\u533a \u5efa\u7b51 \uff1a"},{"location":"map_town12/#_5","text":"\u57ce\u9547 12 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u7f8e\u56fd \u57ce\u5e02 \u7684 \u7ecf\u5178 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u5468\u56f4 \u73af\u7ed5 \u73af\u7ed5\u7740 \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u3002","title":"\u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town12/#_6","text":"\u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002","title":"\u516c\u56ed \uff1a"},{"location":"map_town12/#_7","text":"\u57ce\u9547 12 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u5176\u4e2d \u6563\u5e03 \u7740 \u4ee4\u4eba \u5370\u8c61 \u6df1\u523b \u7684 \u73af\u5c9b \u8def\u53e3 \u548c \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u3002","title":"\u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9\u8def\u53e3 \uff1a"},{"location":"map_town12/#_8","text":"\u57ce\u9547 12 \u8fd8\u6709 \u4e61\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002","title":"\u519c\u6751 \u548c \u519c\u7530 \uff1a"},{"location":"map_town12/#_9","text":"\u57ce\u9547 12 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec 2 \u4e2a \u5927\u6e56 \u548c \u51e0\u4e2a \u6c60\u5858 \u3002 \u7531\u4e8e \u57ce\u5e02 \u65c1\u8fb9 \u6709 \u4e00\u4e9b \u5927\u578b \u6c34\u666f \uff0c \u8fd9\u4e9b \u6c34\u666f \u4f1a \u4ea7\u751f \u5929\u9645 \u5929\u9645\u7ebf \u7684 \u5012 \u53cd\u5c04 \uff0c \u7ed9 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5e26\u6765 \u6311\u6218 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 10482.4274 * state . pX + - 5.39801455 * state . pY - 5673.07949 ; const carlaY = 5.39801455 * state . pX + 10482.4274 * state . pY - 2885.15738 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u6c34\u57df \uff1a"},{"location":"map_town13/","text":"\u57ce\u9547 13 \u57ce\u9547 13 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002 \u7b14\u8bb0 \u57ce\u9547 13 \u88ab \u8bbe\u8ba1 \u4e3a \u57ce\u9547 12 \u7684 \u9644\u5c5e \u8bbe\u65bd \uff0c \u8fd9\u6837 \u5b83\u4eec \u5c31 \u53ef\u4ee5 \u4f5c\u4e3a \u8bad\u7ec3 - \u6d4b\u8bd5 \u5bf9 \u3002 \u8fd9\u4e9b \u57ce\u9547 \u6709 \u8bb8\u591a \u5171\u540c \u7279\u5f81 \uff0c \u4f46 \u5728 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3001 \u9053\u8def \u7eb9\u7406 \u3001 \u8def\u9762 \u7eb9\u7406 \u548c \u690d\u88ab \u65b9\u9762 \u4e5f \u6709 \u8bb8\u591a \u5dee\u5f02 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e00\u4e2a \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \uff0c \u7136\u540e \u4f7f\u7528 \u53e6 \u4e00\u4e2a \u8fdb\u884c \u6d4b\u8bd5 \uff0c \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u66b4\u9732 \u5f00\u53d1 \u81ea\u52a8 \u9a7e\u9a76 \u6280\u672f \u6808\u65f6 \u53ef\u80fd \u51fa\u73b0 \u7684 \u8fc7\u5ea6 \u62df\u5408 \u95ee\u9898 \u3002 \u5bfc\u822a \u5668 \u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u4f17 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 300.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) ) \u57ce\u9547 13 \u533a \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \uff1a \u57ce\u9547 13 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002 \u793e\u533a \u5efa\u7b51 \uff1a \u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u4e3a \u5546\u4e1a \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 13 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002 \u8bb8\u591a \u4f4f\u5b85 \u4f4f\u5b85\u533a \u90fd \u8bbe\u6709 \u5e26\u6709 \u906e\u9633 \u5e18 \u7684 \u9633\u53f0 \uff0c \u7c7b\u4f3c \u4e8e \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \u7684 \u5357\u6b27 \u56fd\u5bb6 \u5357\u6b27\u56fd\u5bb6 \u3002 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a \u57ce\u9547 13 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u6b27\u6d32 \u57ce\u5e02 \u7684 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u88ab \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u5305\u56f4 \u3002 \u516c\u56ed \uff1a \u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \uff1a \u57ce\u9547 13 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u5927\u578b \u73af\u5c9b \u548c \u6a2a\u8de8 \u5927\u7247 \u6c34\u57df \u7684 \u5824 \u9053 \u3002 \u519c\u6751 \u548c \u519c\u7530 \uff1a \u57ce\u9547 13 \u8fd8\u6709 \u4e00\u4e9b \u519c\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002 \u6c34\u57df \uff1a \u57ce\u9547 13 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec \u4e00\u4e2a \u5e26\u6709 \u4e2d\u5fc3 \u5c9b \u7684 \u5927\u6e56 \u548c \u519c\u6751 \u5730\u533a \u7684 \u51e0\u4e2a \u6c60\u5858 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 14556.0868 * state . pX + - 7.34734913 * state . pY - 6655.00941 ; const carlaY = 2.19186383 * state . pX + 12431.3323 * state . pY - 4524.46039 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u57ce\u9547 13"},{"location":"map_town13/#13","text":"\u57ce\u9547 13 \u662f \u4e00\u5f20 \u5c3a\u5bf8 \u4e3a 10x10 km 2 \u7684 \u5927 \u5730\u56fe \u3002 \u5b83 \u5206\u4e3a 36 \u4e2a \u56fe\u5757 \uff0c \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5c3a\u5bf8 \u4e3a 2x2 km 2 \uff08 \u67d0\u4e9b \u8fb9\u7f18 \u56fe\u5757 \u8f83 \u5c0f \uff09 \u3002 \u6709 \u8bb8\u591a \u4e0e \u57ce\u5e02 \u5f62\u6210 \u9c9c\u660e \u5bf9\u6bd4 \u9c9c\u660e\u5bf9\u6bd4 \u7684 \u533a\u57df \uff0c \u5305\u62ec \u57ce\u5e02 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u5730\u533a \uff0c \u8fd8\u6709 \u73af\u7ed5 \u57ce\u5e02 \u7684 \u5927\u578b \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \u548c \u73af\u5f62 \u516c\u8def \u3002 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u53cd\u6620 \u4e86 \u5317\u7f8e \u8bb8\u591a \u5927\u4e2d \u4e2d\u57ce \u57ce\u5e02 \u5927\u4e2d\u57ce\u5e02 \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3002 \u7b14\u8bb0 \u57ce\u9547 13 \u88ab \u8bbe\u8ba1 \u4e3a \u57ce\u9547 12 \u7684 \u9644\u5c5e \u8bbe\u65bd \uff0c \u8fd9\u6837 \u5b83\u4eec \u5c31 \u53ef\u4ee5 \u4f5c\u4e3a \u8bad\u7ec3 - \u6d4b\u8bd5 \u5bf9 \u3002 \u8fd9\u4e9b \u57ce\u9547 \u6709 \u8bb8\u591a \u5171\u540c \u7279\u5f81 \uff0c \u4f46 \u5728 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u3001 \u9053\u8def \u7eb9\u7406 \u3001 \u8def\u9762 \u7eb9\u7406 \u548c \u690d\u88ab \u65b9\u9762 \u4e5f \u6709 \u8bb8\u591a \u5dee\u5f02 \u3002 \u4f7f\u7528 \u5176\u4e2d \u4e00\u4e2a \u751f\u6210 \u8bad\u7ec3 \u6570\u636e \uff0c \u7136\u540e \u4f7f\u7528 \u53e6 \u4e00\u4e2a \u8fdb\u884c \u6d4b\u8bd5 \uff0c \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u66b4\u9732 \u5f00\u53d1 \u81ea\u52a8 \u9a7e\u9a76 \u6280\u672f \u6808\u65f6 \u53ef\u80fd \u51fa\u73b0 \u7684 \u8fc7\u5ea6 \u62df\u5408 \u95ee\u9898 \u3002","title":"\u57ce\u9547 13"},{"location":"map_town13/#_1","text":"\u5bfc\u822a \u5668 \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u5730\u56fe \u53ef \u7528\u4e8e \u6d4f\u89c8 \u57ce\u9547 \u5e76 \u5bfc\u51fa \u5750\u6807 \u4ee5 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u3002 \u4f7f\u7528 \u5bfc\u822a \u5668 : left mouse button - \u5355\u51fb \u5e76 \u6309\u4f4f \uff0c \u5411 \u5de6 \u3001 \u5411 \u53f3 \u3001 \u5411\u4e0a \u6216 \u5411\u4e0b \u62d6\u52a8 \u4ee5 \u79fb\u52a8 \u5730\u56fe scroll mouse wheel - \u5411\u4e0b \u6eda\u52a8 \u7f29\u5c0f \uff0c \u5411\u4e0a \u6eda\u52a8 \u653e\u5927 \u9f20\u6807 \u6307\u9488 \u4e0b\u65b9 \u7684 \u4f4d\u7f6e double click - \u53cc\u51fb \u5730\u56fe \u4e0a \u7684 \u67d0\u4e2a \u70b9\u6765 \u8bb0\u5f55 \u5750\u6807 \uff0c \u60a8 \u5c06 \u5728 \u6587\u672c \u548c \u5730\u56fe \u4e0b\u65b9 \u6b63\u4e0b\u65b9 \u7684 \u4ee3\u7801 \u5757 \u4e2d \u627e\u5230 \u5750\u6807 \u533a\u57df \u989c\u8272 \u53c2\u8003 : & nbsp \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c & nbsp \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u793e\u533a \u5efa\u7b51 & nbsp \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 & nbsp \u516c\u56ed & nbsp \u519c\u6751 \u571f\u5730 \u519c\u6751\u571f\u5730 & nbsp \u6c34\u57df Carla \u5750\u6807 : X : -- Y : -- \u53cc\u51fb \u5174\u8da3 \u70b9\u540e \uff0c \u5bfc\u822a \u5668 \u5c06 \u663e\u793a \u76f8\u5e94 \u7684 Carla \u5750\u6807 \u5e76 \u5728 \u4ee5\u4e0b \u4ee3\u7801 \u5757 \u4e2d \u66f4\u65b0 \u5b83\u4eec \u3002 \u5c06 \u4ee3\u7801 \u590d\u5236 \u5e76 \u7c98\u8d34 \u5230 \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 Python \u7ec8\u7aef \u4e2d \uff0c \u5c06 \u89c2\u4f17 \u79fb\u52a8 \u5230 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u3002 \u60a8 \u9996\u5148 \u9700\u8981 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u8bbe\u7f6e \u4e16\u754c \u5bf9\u8c61 \uff1a # Carla \u5750\u6807 : X 0.0 , Y 0.0 spectator = world . get _ spectator ( ) loc = carla . Location ( 0.0 , 0.0 , 300.0 ) rot = carla . Rotation ( pitch = - 90 , yaw = 0.0 , roll = 0.0 ) spectator . set _ transform ( carla . Transform ( loc , rot ) )","title":"\u5bfc\u822a \u5668"},{"location":"map_town13/#13_1","text":"","title":"\u57ce\u9547 13 \u533a"},{"location":"map_town13/#_2","text":"\u57ce\u9547 13 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u662f \u4e00 \u5927\u7247 \u9ad8\u5c42 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \uff0c \u5728 \u4e00\u81f4 \u7684 \u9053\u8def \u7f51\u683c \u4e0a \u6392\u5217 \u5217\u6210 \u6392\u5217\u6210 \u8857\u533a \uff0c \u7c7b\u4f3c \u4e8e \u8bb8\u591a \u7f8e\u56fd \u548c \u6b27\u6d32 \u5927\u57ce \u57ce\u5e02 \u5927\u57ce\u5e02 \u7684 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u533a\u57df \u3002","title":"\u5e02\u4e2d\u5fc3 \u9ad8\u5c42\u5efa\u7b51 \uff1a"},{"location":"map_town13/#_3","text":"\u793e\u533a \u5efa\u7b51 \u662f \u4e00\u7ec4 2 - 4 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8272\u5f69 \u7f24\u7eb7 \u8272\u5f69\u7f24\u7eb7 \u7684 \u6ce2 \u7c73\u4e9a \u897f\u7c73\u4e9a \u98ce\u683c \uff0c \u5e95\u5c42 \u4e3a \u5546\u4e1a \uff0c \u6bd7\u90bb \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u4e2d\u5fc3\u533a \u5e02\u4e2d\u5fc3\u533a \u3002","title":"\u793e\u533a \u5efa\u7b51 \uff1a"},{"location":"map_town13/#_4","text":"\u57ce\u9547 13 \u7684 \u9ad8\u5bc6 \u5bc6\u5ea6 \u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u62e5\u6709 \u8bb8\u591a 2 \u81f3 10 \u5c42 \u7684 \u516c\u5bd3 \u516c\u5bd3\u697c \uff0c \u8857\u9053 \u4e0a \u8fd8 \u8bbe\u6709 \u5496\u5561 \u5496\u5561\u9986 \u548c \u96f6\u552e \u96f6\u552e\u5e97 \u7b49 \u5546\u4e1a \u5730\u4ea7 \u5546\u4e1a\u5730\u4ea7 \u3002 \u8bb8\u591a \u4f4f\u5b85 \u4f4f\u5b85\u533a \u90fd \u8bbe\u6709 \u5e26\u6709 \u906e\u9633 \u5e18 \u7684 \u9633\u53f0 \uff0c \u7c7b\u4f3c \u4e8e \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \u7684 \u5357\u6b27 \u56fd\u5bb6 \u5357\u6b27\u56fd\u5bb6 \u3002","title":"\u9ad8\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town13/#_5","text":"\u57ce\u9547 13 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u53cd\u6620 \u4e86 \u8bb8\u591a \u6b27\u6d32 \u57ce\u5e02 \u7684 \u90ca\u533a \uff0c \u4e00\u5c42 \u548c \u4e24\u5c42 \u7684 \u4f4f\u5b85 \u88ab \u56f4\u680f \u82b1\u56ed \u548c \u8f66\u5e93 \u5305\u56f4 \u3002","title":"\u4f4e\u5bc6\u5ea6 \u4f4f\u5b85 \uff1a"},{"location":"map_town13/#_6","text":"\u5bc6\u96c6 \u7684 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u88ab \u7eff\u8272 \u516c\u5171 \u7a7a\u95f4 \u7684 \u5c0f\u5c9b \u6240 \u5206\u5272 \uff0c \u7eff\u53f6 \u4e0e \u57ce\u5e02 \u5efa\u7b51 \u5e76 \u7f6e \u3002","title":"\u516c\u56ed \uff1a"},{"location":"map_town13/#_7","text":"\u57ce\u9547 13 \u62e5\u6709 \u5e7f\u6cdb \u7684 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u7cfb\u7edf \uff0c \u5305\u62ec 3 - 4 \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3001 \u5927\u578b \u73af\u5c9b \u548c \u6a2a\u8de8 \u5927\u7247 \u6c34\u57df \u7684 \u5824 \u9053 \u3002","title":"\u9ad8\u901f\u516c\u8def \u548c \u4ea4\u53c9\u8def\u53e3 \uff1a"},{"location":"map_town13/#_8","text":"\u57ce\u9547 13 \u8fd8\u6709 \u4e00\u4e9b \u519c\u6751 \u5730\u533a \uff0c \u6709 \u7279\u8272 \u519c\u7530 \u5efa\u7b51 \uff0c \u5982 \u6728\u5236 \u8c37\u4ed3 \u548c \u519c\u820d \u3001 \u98ce\u8f66 \u3001 \u7cae\u4ed3 \u3001 \u7389\u7c73 \u7389\u7c73\u7530 \u3001 \u5e72 \u8349\u579b \u548c \u4e61\u6751 \u56f4\u680f \u3002 \u8fd9\u4e9b \u5730\u533a \u6709 \u672a \u6807\u8bb0 \u7684 \u4e61\u6751 \u571f\u8def \u548c \u7528\u4e8e \u57ce\u9645 \u4ea4\u901a \u7684 \u5355\u8f66 \u9053 \u57ce\u9645 \u9053\u8def \u3002","title":"\u519c\u6751 \u548c \u519c\u7530 \uff1a"},{"location":"map_town13/#_9","text":"\u57ce\u9547 13 \u4e2d\u6709 \u591a\u4e2a \u6c34\u57df \uff0c \u5305\u62ec \u4e00\u4e2a \u5e26\u6709 \u4e2d\u5fc3 \u5c9b \u7684 \u5927\u6e56 \u548c \u519c\u6751 \u5730\u533a \u7684 \u51e0\u4e2a \u6c60\u5858 \u3002 @ keyframes fadeMe { from { color : # 77aaff ; } to { color : # 000000 ; } } window . addEventListener ( ' load ' , function ( ) { var text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) var text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const code _ coords = document . getElementsByClassName ( \" hljs - number \" ) const code _ comment = document . getElementsByClassName ( \" hljs - comment \" ) const image = document . querySelector ( ' [ src $ = \" map \" ] ' ) ; const canv = document . createElement ( ' canvas ' ) ; canv . setAttribute ( ' height ' , image . height ) canv . setAttribute ( ' width ' , image . width ) image . parentNode . replaceChild ( canv , image ) var state = { mDown : false , button : 0 , lastX : 0 , lastY : 0 , canvX : 0 , canvY : 0 , zoom : 1.0 , mdownX : 0 , mdownY : 0 , pX : 0.5 , pY : 0.5 , dblClick : false , listObj : false , touch : false } ctx = canv . getContext ( ' 2d ' ) ctx . drawImage ( image , 0 , 0 , canv . width , canv . height ) canv . addEventListener ( ' mousemove ' , ( event ) = > { dX = event . clientX - state . lastX dY = event . clientY - state . lastY state . lastX = event . clientX state . lastY = event . clientY if ( state . mDown && state . button = = 0 ) { state . canvX + = dX state . canvY + = dY ctx . clearRect ( 0 , 0 , canv . width , canv . height ) ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) state . touch = true ; } } ) canv . addEventListener ( ' mousedown ' , ( event ) = > { state . button = event . button ; state . mDown = true ; state . touch = true ; var rect = canv . getBoundingClientRect ( ) ; state . mdownX = event . clientX - rect . left ; state . mdownY = event . clientY - rect . top ; state . pX = ( state . mdownX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( state . mdownY - state . canvY ) / ( canv . height * state . zoom ) ; } ) canv . addEventListener ( ' mouseup ' , ( event ) = > { state . mDown = false ; } ) canv . addEventListener ( ' wheel ' , ( event ) = > { state . mDown = false ; var rect = canv . getBoundingClientRect ( ) ; dX = event . clientX - rect . left ; dY = event . clientY - rect . top ; state . pX = ( dX - state . canvX ) / ( canv . width * state . zoom ) ; state . pY = ( dY - state . canvY ) / ( canv . height * state . zoom ) ; if ( state . touch ) { event . preventDefault ( ) ; if ( event . wheelDelta > 0 ) { state . zoom * = 1.15 } else { state . zoom * = 0.85 } if ( state . zoom < 1.0 ) { state . zoom = 1.0 ; } if ( state . zoom > 30.0 ) { state . zoom = 30.0 } ctx . clearRect ( 0 , 0 , canv . width , canv . height ) state . canvX = - canv . width * state . zoom * state . pX + dX ; state . canvY = - canv . height * state . zoom * state . pY + dY ; ctx . drawImage ( image , state . canvX , state . canvY , canv . width * state . zoom , canv . height * state . zoom ) ; } } ) canv . addEventListener ( ' dblclick ' , ( event ) = > { text _ coord _ x = document . getElementById ( \" carlacoord _ x \" ) text _ coord _ y = document . getElementById ( \" carlacoord _ y \" ) const carlaX = 14556.0868 * state . pX + - 7.34734913 * state . pY - 6655.00941 ; const carlaY = 2.19186383 * state . pX + 12431.3323 * state . pY - 4524.46039 ; code _ coords [ 0 ] . textContent = carlaX . toFixed ( 1 ) code _ coords [ 1 ] . textContent = carlaY . toFixed ( 1 ) code _ comment [ 0 ] . textContent = \" # CARLA coordinates - X : \" + carlaX . toFixed ( 1 ) + \" Y : \" + carlaY . toFixed ( 1 ) var newX = text _ coord _ x . cloneNode ( true ) var newY = text _ coord _ y . cloneNode ( true ) newX . textContent = carlaX . toFixed ( 1 ) newY . textContent = carlaY . toFixed ( 1 ) var parentX = text _ coord _ x . parentNode var parentY = text _ coord _ y . parentNode parentX . replaceChild ( newX , text _ coord _ x ) ; parentY . replaceChild ( newY , text _ coord _ y ) ; / / console . log ( state . pX + \" , \" + state . pY ) } ) } )","title":"\u6c34\u57df \uff1a"},{"location":"map_town15/","text":"\u57ce\u9547 15 \u57ce\u9547 15 \u662f \u6839\u636e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u7684 \u9053\u8def \u5e03\u5c40 \u7ed8\u5236 \u7684 \u5730\u56fe \u3002 \u5730\u56fe \u4e2d \u4eff\u771f \u4e86 \u73b0\u4ee3 \u6821\u56ed \u7684 \u4e00\u4e9b \u6807\u5fd7 \u6807\u5fd7\u6027 \u5efa\u7b51 \uff0c \u5305\u62ec \u4eba\u6587 \u56fe\u4e66 \u4e66\u9986 \u56fe\u4e66\u9986 \u3001 \u533b\u5b66 \u5927\u697c \u4ee5\u53ca Carla \u7684 \u8bde\u751f \u751f\u5730 \u8bde\u751f\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \u3002 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \u8be5 \u5730\u56fe \u5305\u62ec \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \uff0c \u8be5 \u4e2d\u5fc3 \u662f \u4e16\u754c \u77e5\u540d \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u7814\u7a76 \u4e2d\u5fc3 \uff0c \u4e5f \u662f Carla \u5f00\u53d1 \u56e2\u961f \u7684 \u6240\u5728 \u6240\u5728\u5730 \u3002 \u4eba\u6587 \u56fe\u4e66 \u4e66\u9986 \u56fe\u4e66\u9986 \u8fd9\u5ea7 \u5efa\u7b51 \u5728 \u6cf0\u7f57 \u5c3c\u4e9a \u4e9a\u8bed \u52a0\u6cf0\u7f57 \u7f57\u5c3c\u4e9a \u5c3c\u4e9a\u8bed \u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed \u4e2d \u88ab \u79f0\u4e3a Biblioteca d ' Humanitats \uff0c \u4e3a \u5728 \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u5b66\u4e60 \u548c \u5de5\u4f5c \u7684 \u5b66\u751f \u548c \u7814\u7a76 \u4eba\u5458 \u63d0\u4f9b \u4e86 \u6db5\u76d6 \u591a\u4e2a \u5b66\u79d1 \u7684 \u6587\u732e \u3002","title":"\u57ce\u9547 15"},{"location":"map_town15/#15","text":"\u57ce\u9547 15 \u662f \u6839\u636e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u7684 \u9053\u8def \u5e03\u5c40 \u7ed8\u5236 \u7684 \u5730\u56fe \u3002 \u5730\u56fe \u4e2d \u4eff\u771f \u4e86 \u73b0\u4ee3 \u6821\u56ed \u7684 \u4e00\u4e9b \u6807\u5fd7 \u6807\u5fd7\u6027 \u5efa\u7b51 \uff0c \u5305\u62ec \u4eba\u6587 \u56fe\u4e66 \u4e66\u9986 \u56fe\u4e66\u9986 \u3001 \u533b\u5b66 \u5927\u697c \u4ee5\u53ca Carla \u7684 \u8bde\u751f \u751f\u5730 \u8bde\u751f\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \u3002","title":"\u57ce\u9547 15"},{"location":"map_town15/#_1","text":"\u8be5 \u5730\u56fe \u5305\u62ec \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3 \uff0c \u8be5 \u4e2d\u5fc3 \u662f \u4e16\u754c \u77e5\u540d \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u7814\u7a76 \u4e2d\u5fc3 \uff0c \u4e5f \u662f Carla \u5f00\u53d1 \u56e2\u961f \u7684 \u6240\u5728 \u6240\u5728\u5730 \u3002","title":"\u8ba1\u7b97\u673a \u89c6\u89c9 \u4e2d\u5fc3"},{"location":"map_town15/#_2","text":"\u8fd9\u5ea7 \u5efa\u7b51 \u5728 \u6cf0\u7f57 \u5c3c\u4e9a \u4e9a\u8bed \u52a0\u6cf0\u7f57 \u7f57\u5c3c\u4e9a \u5c3c\u4e9a\u8bed \u52a0\u6cf0\u7f57\u5c3c\u4e9a\u8bed \u4e2d \u88ab \u79f0\u4e3a Biblioteca d ' Humanitats \uff0c \u4e3a \u5728 \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u5b66\u4e60 \u548c \u5de5\u4f5c \u7684 \u5b66\u751f \u548c \u7814\u7a76 \u4eba\u5458 \u63d0\u4f9b \u4e86 \u6db5\u76d6 \u591a\u4e2a \u5b66\u79d1 \u7684 \u6587\u732e \u3002","title":"\u4eba\u6587 \u56fe\u4e66\u9986"},{"location":"maps_tutorials/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5728 Carla \u4e2d \uff0c \u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u7f51\u7edc \u7684 \u5b9a\u4e49 \u3002 \u9053\u8def \u7f51\u7edc \u662f \u901a\u8fc7 OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5f00\u7bb1 \u5373\u7528 \u7684 \u5730\u56fe \uff0c \u53ef \u7528\u4e8e \u591a\u79cd \u5e94\u7528 \u3002 \u7528\u6237 \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5df1 \u7684 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"maps_tutorials/#_1","text":"\u5728 Carla \u4e2d \uff0c \u5730\u56fe \u5305\u62ec \u57ce\u9547 \u7684 \u4e09\u7ef4 \u6a21\u578b \u53ca\u5176 \u9053\u8def \u7f51\u7edc \u7684 \u5b9a\u4e49 \u3002 \u9053\u8def \u7f51\u7edc \u662f \u901a\u8fc7 OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5f00\u7bb1 \u5373\u7528 \u7684 \u5730\u56fe \uff0c \u53ef \u7528\u4e8e \u591a\u79cd \u5e94\u7528 \u3002 \u7528\u6237 \u8fd8 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5df1 \u7684 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u3002 \u4ee5\u4e0b \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u5c06 \u5176 \u52a0\u8f7d \u5230 Carla \u4e2d \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6982\u8ff0 \u9053\u8def \u6d82\u88c5 \u5b9a\u5236 \u5efa\u7b51 \u751f\u6210 \u5730\u56fe \u6dfb\u52a0 \u5730\u56fe \u5730\u56fe\u5305 \u6dfb\u52a0 \u5730\u56fe \u6e90 \u66ff\u4ee3 \u65b9\u6cd5","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe"},{"location":"pcl_recorder/","text":"\u70b9\u4e91 \u5730\u56fe \u521b\u5efa PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \u5141\u8bb8 \u60a8 \u4ece Carla \u5730\u56fe \u521b\u5efa \u70b9\u4e91 \u5730\u56fe \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5b89\u88c5 pcl - tools \u5e93 \uff1a sudo apt install pcl - tools \u4f7f\u7528 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305\u5c06 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u6216 Carla PythonAPI \u4e2d \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u8fdb\u884c \u63a7\u5236 \u3002 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u65b0 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u542f\u52a8 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \uff1a # ROS 1 roslaunch pcl _ recorder pcl _ recorder . launch # ROS 2 ros2 launch pcl _ recorder pcl _ recorder . launch . py 2 . \u6355\u83b7 \u9a71\u52a8 \u5b8c\u6210 \u540e \uff0c \u51cf\u5c0f \u70b9\u4e91 \u7684 \u6574\u4f53 \u5927\u5c0f \uff1a # Create one point cloud file pcl _ concatenate _ points _ pcd / tmp / pcl _ capture / * . pcd # Filter duplicates pcl _ voxel _ grid - leaf 0.1 , 0.1 , 0.1 output . pcd map . pcd 3 . \u9a8c\u8bc1 \u7ed3\u679c \uff1a pcl _ viewer map . pcd","title":"\u70b9\u4e91 \u5730\u56fe \u521b\u5efa"},{"location":"pcl_recorder/#_1","text":"PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \u5141\u8bb8 \u60a8 \u4ece Carla \u5730\u56fe \u521b\u5efa \u70b9\u4e91 \u5730\u56fe \u3002","title":"\u70b9\u4e91 \u5730\u56fe \u521b\u5efa"},{"location":"pcl_recorder/#_2","text":"\u5b89\u88c5 pcl - tools \u5e93 \uff1a sudo apt install pcl - tools","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"pcl_recorder/#pcl","text":"PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305\u5c06 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u6216 Carla PythonAPI \u4e2d \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u529f\u80fd \u8fdb\u884c \u63a7\u5236 \u3002 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u65b0 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u542f\u52a8 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5305 \uff1a # ROS 1 roslaunch pcl _ recorder pcl _ recorder . launch # ROS 2 ros2 launch pcl _ recorder pcl _ recorder . launch . py 2 . \u6355\u83b7 \u9a71\u52a8 \u5b8c\u6210 \u540e \uff0c \u51cf\u5c0f \u70b9\u4e91 \u7684 \u6574\u4f53 \u5927\u5c0f \uff1a # Create one point cloud file pcl _ concatenate _ points _ pcd / tmp / pcl _ capture / * . pcd # Filter duplicates pcl _ voxel _ grid - leaf 0.1 , 0.1 , 0.1 output . pcd map . pcd 3 . \u9a8c\u8bc1 \u7ed3\u679c \uff1a pcl _ viewer map . pcd","title":"\u4f7f\u7528 PCL \u8bb0\u5f55\u5668"},{"location":"plugins_carlaviz/","text":"carlaviz carlaviz \u63d2\u4ef6 \u7528\u4e8e \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3002 \u521b\u5efa \u4e86 \u4e00\u4e2a \u5177\u6709 \u573a\u666f \u7684 \u4e00\u4e9b \u57fa\u672c \u8868\u793a \u7684 \u7a97\u53e3 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u5373\u65f6 \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u8fd8 \u53ef\u4ee5 \u5728 \u573a\u666f \u4e2d \u7ed8\u5236 \u9644\u52a0 \u6587\u672c \u3001 \u7ebf\u6761 \u548c \u6298\u7ebf \u3002 \u4e00\u822c \u4fe1\u606f \u652f\u6301 \u83b7\u53d6 carlaviz \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4e0b\u8f7d \u63d2\u4ef6 \u5de5\u5177 \u4e00\u822c \u4fe1\u606f \u8d21\u732e \u8d21\u732e\u8005 \u2014 Minjun Xu , \u4e5f \u88ab \u79f0\u4e3a wx9698 . \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u2014 MIT . \u652f\u6301 Linux \u2014 Carla 0.9 . 6 , 0.9 . 7 , 0.9 . 8 , 0.9 . 9 , 0.9 . 10 . Windows \u2014 Carla 0.9 . 9 , 0.9 . 10 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u2014 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002 \u83b7\u53d6 carlaviz \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 Docker \u2014 \u8bbf\u95ee \u6587\u6863 \u5e76 \u5b89\u88c5 Docker . \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u2014 \u4efb\u4f55 \u80fd\u591f \u8fd0\u884c Carla \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u90fd \u5e94\u8be5 \u53ef\u4ee5 \u5de5\u4f5c \u3002 Websocket - client \u2014 pip3 install websocket _ client \u3002 \u5982\u679c \u7cfb\u7edf \u4e2d \u5c1a\u672a \u5b89\u88c5 pip \u3002 \u4e0b\u8f7d \u63d2\u4ef6 \u6253\u5f00 \u7ec8\u7aef \u5e76 \u6839\u636e \u8981 \u8fd0\u884c \u7684 Carla \u7248\u672c \u62c9\u53d6 carlaviz \u7684 Docker \u6620\u50cf \u3002 # \u4ec5\u62c9\u53d6 \u548c \u6240 \u4f7f\u7528 \u7684 Carla \u5305 \u5339\u914d \u7684 \u955c\u50cf \u3002 docker pull mjxu96 / carlaviz : 0.9 . 6 docker pull mjxu96 / carlaviz : 0.9 . 7 docker pull mjxu96 / carlaviz : 0.9 . 8 docker pull mjxu96 / carlaviz : 0.9 . 9 docker pull mjxu96 / carlaviz : 0.9 . 10 # \u5982\u679c \u5de5\u4f5c \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e0a \uff0c \u5219 \u62c9\u53d6 \u8be5 \u955c\u50cf docker pull mjxu96 / carlaviz : latest \u91cd\u8981 \u76ee\u524d \u5728 Windows \u4e2d\u4ec5 \u652f\u6301 0.9 . 9 \u548c 0.9 . 10 \u3002 Carla \u81f3 0.9 . 9 \uff08 \u5305\u542b \uff09 \u8bbe\u7f6e \u4e3a \u5355\u6d41 \u3002 \u5bf9\u4e8e \u66f4\u9ad8 \u7248\u672c \uff0c \u5b9e\u73b0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u591a\u6d41 \u3002 \u5728 \u5355\u6d41 \u4e2d , \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ea\u80fd \u88ab \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u542c\u5230 \u3002 \u5f53 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5df2\u7ecf \u542c\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u4f8b\u5982 \u5728 \u8fd0\u884c manual _ control . py \u65f6 \uff0c carlaviz \u88ab\u8feb \u590d\u5236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u68c0\u7d22 \u6570\u636e \uff0c \u5e76\u4e14 \u6027\u80fd \u53ef\u80fd \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u5728 \u591a\u6d41 \u4e2d \uff0c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u542c\u5230 \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 carlaviz \u4e0d \u9700\u8981 \u91cd\u590d \u8fd9\u4e9b \uff0c \u5e76\u4e14 \u6027\u80fd \u4e0d\u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u7b14\u8bb0 \u6216\u8005 \uff0c \u5728 Linux \u4e0a \uff0c \u7528\u6237 \u53ef\u4ee5 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u6784\u5efa carlaviz \uff0c \u4f46 \u4f7f\u7528 Docker \u6620\u50cf \u5c06 \u4f7f \u4e8b\u60c5 \u53d8\u5f97 \u66f4\u52a0 \u5bb9\u6613 \u3002 \u8fd0\u884c carlaviz 1 . \u8fd0\u884c Carla \u3002 a ) \u5728 Carla \u5305\u4e2d \u2014 \u8f6c \u81f3 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u4f7f\u7528 CarlaUE4 . exe ( Windows ) \u6216 . / CarlaUE4 . sh ( Linux ) \u542f\u52a8 \u4eff\u771f \u3002 b ) \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u5305\u4e2d \u2014 \u8f6c \u5230 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u4f7f\u7528 make launch \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u5e76 \u6309 Play \u3002 2 . \u8fd0\u884c carlaviz . \u6839\u636e \u5df2 \u4e0b\u8f7d \u7684 Docker \u955c\u50cf \uff0c \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 \u66f4\u6539 \u5148\u524d \u4e0b\u8f7d \u7684 \u955c\u50cf \u7684 \u540d\u79f0 < name _ of _ Docker _ image > \uff0c \u4f8b\u5982 mjxu96 / carlaviz : latest \u6216 mjxu96 / carlaviz : 0.9 . 10 \u3002 # \u5728 Linux \u7cfb\u7edf docker run - it -- network = \" host \" - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = localhost - e CARLA _ SERVER _ PORT = 2000 < name _ of _ Docker _ image > # \u5728 Windows / MacOS \u7cfb\u7edf docker run - it - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = host . docker . internal - e CARLA _ SERVER _ PORT = 2000 - p 8080 - 8081 : 8080 - 8081 - p 8089 : 8089 < name _ of _ Docker _ image > \u5982\u679c \u4e00\u5207 \u90fd \u5df2 \u6b63\u786e \u8bbe\u7f6e \uff0c carlaviz \u5c06 \u663e\u793a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u6210\u529f \u6d88\u606f \u3002 \u8b66\u544a \u8bf7 \u8bb0\u4f4f \u7f16\u8f91 \u524d\u9762 \u7684 \u547d\u4ee4 \u4ee5 \u5339\u914d \u6b63\u5728 \u4f7f\u7528 \u7684 Docker \u6620\u50cf \u3002 3 . \u4ece \u672c\u5730 \u6253\u5f00 \u6253\u5f00 Web \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u8f6c\u5230 http : / / 127.0 . 0.1 : 8080 / \u3002 carlaviz \u9ed8\u8ba4 \u5728 8080 \u7aef\u53e3 \u8fd0\u884c \u3002 \u8f93\u51fa \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u3002 \u5de5\u5177 \u4e00\u65e6 \u63d2\u4ef6 \u8fd0\u884c \uff0c \u5b83 \u5c31 \u53ef\u4ee5 \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3001 \u5176\u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u8be5 \u63d2\u4ef6 \u5728 \u53f3\u4fa7 \u663e\u793a \u4e00\u4e2a \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \uff0c \u573a\u666f \u5b9e\u65f6 \u66f4\u65b0 \uff0c \u5de6\u4fa7 \u663e\u793a \u4e00\u4e2a \u4fa7\u8fb9 \u680f \uff0c \u5176\u4e2d \u5305\u542b \u8981 \u663e\u793a \u7684 \u9879\u76ee \u5217\u8868 \u3002 \u5176\u4e2d \u4e00\u4e9b \u9879\u76ee \u5c06 \u51fa\u73b0 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \uff0c \u5176\u4ed6 \u9879\u76ee \uff08 \u4e3b\u8981 \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6e38\u620f \u6570\u636e \uff09 \u51fa\u73b0 \u5728 \u9879\u76ee \u5217\u8868 \u4e0a\u65b9 \u3002 \u4ee5\u4e0b \u662f \u53ef \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u9009\u9879 \u5217\u8868 \u3002 \u53ef\u80fd \u4f1a \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \uff0c \u4f8b\u5982 View Mode \u2014 \u66f4\u6539 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u7684 \u89c6\u89d2 \u3002 Top Down \u2014 \u7a7a\u4e2d \u89c6\u89d2 \u3002 Perspective \u2014 \u81ea\u7531 \u7684 \u89c6\u89d2 \u3002 Driver \u2014 \u7b2c\u4e00 \u4eba\u79f0 \u7b2c\u4e00\u4eba\u79f0 \u89c6\u89d2 \u3002 / vehicle \u2014 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5c5e\u6027 \u3002 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u5305\u62ec \u901f\u5ea6 \u901f\u5ea6\u8ba1 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \uff0c \u4ee5\u53ca IMU \u3001 GNSS \u548c \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 / velocity \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u3002 / acceleration \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u3002 / drawing \u2014 \u5728 \u4f7f\u7528 CarlaPainter \u7ed8\u5236 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \u3002 / texts \u2014 \u6587\u672c \u5143\u7d20 \u3002 / points \u2014 \u70b9 \u5143\u7d20 \u3002 / polylines \u2014 \u6298\u7ebf \u5143\u7d20 \u3002 / objects \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 / walkers \u2014 \u66f4\u65b0 \u884c\u4eba \u3002 / vehicles \u2014 \u66f4\u65b0 \u8f66\u8f86 \u3002 / game \u2014 \u663e\u793a \u6e38\u620f \u6570\u636e \u3002 / time \u2014 \u5f53\u524d \u4eff\u771f \u65f6\u95f4 \u548c \u5e27 \u3002 / lidar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / radar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / traffic \u2014 \u5730\u6807 \u6570\u636e \u3002 / traffic _ light \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 / stop _ sign \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u505c\u8f66 \u6807\u5fd7 \u3002 \u5c1d\u8bd5 \u751f\u6210 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9\u4e9b \u5c06 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \u3002 cd PythonAPI / examples # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4eff\u771f \u4e0b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 python3 generate _ traffic . py - n 10 - w 5 \u751f\u6210 \u4e00\u4e2a \u624b\u52a8 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u5e76 \u56db\u5904 \u79fb\u52a8 \uff0c \u4ee5 \u67e5\u770b \u63d2\u4ef6 \u5982\u4f55 \u66f4\u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 cd PythonAPI / examples python3 manual _ control . py \u8d21\u732e \u8d21\u732e\u8005 ( wx9698 ) \u521b\u5efa \u4e86 \u4e00\u4e2a \u9644\u52a0 \u7c7b CarlaPainter \uff0c \u5b83 \u5141\u8bb8 \u7528\u6237 \u7ed8\u5236 \u8981 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u7684 \u5143\u7d20 \u3002 \u5176\u4e2d \u5305\u62ec \u6587\u672c \u3001 \u70b9 \u548c \u6298\u7ebf \u3002 \u6309\u7167 \u6b64 \u793a\u4f8b \u751f\u6210 \u5e26\u6709 LIDAR \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u7ed8\u5236 LIDAR \u6570\u636e \u3001 \u8f66\u8f86 \u7684 \u8f68\u8ff9 \u548c \u901f\u5ea6 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e carlaviz \u63d2\u4ef6 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"Web \u53ef\u89c6\u5316 \u5668"},{"location":"plugins_carlaviz/#carlaviz","text":"carlaviz \u63d2\u4ef6 \u7528\u4e8e \u5728 \u7f51\u7edc \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3002 \u521b\u5efa \u4e86 \u4e00\u4e2a \u5177\u6709 \u573a\u666f \u7684 \u4e00\u4e9b \u57fa\u672c \u8868\u793a \u7684 \u7a97\u53e3 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u5373\u65f6 \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u8fd8 \u53ef\u4ee5 \u5728 \u573a\u666f \u4e2d \u7ed8\u5236 \u9644\u52a0 \u6587\u672c \u3001 \u7ebf\u6761 \u548c \u6298\u7ebf \u3002 \u4e00\u822c \u4fe1\u606f \u652f\u6301 \u83b7\u53d6 carlaviz \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4e0b\u8f7d \u63d2\u4ef6 \u5de5\u5177","title":"carlaviz"},{"location":"plugins_carlaviz/#_1","text":"\u8d21\u732e \u8d21\u732e\u8005 \u2014 Minjun Xu , \u4e5f \u88ab \u79f0\u4e3a wx9698 . \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u2014 MIT .","title":"\u4e00\u822c \u4fe1\u606f"},{"location":"plugins_carlaviz/#_2","text":"Linux \u2014 Carla 0.9 . 6 , 0.9 . 7 , 0.9 . 8 , 0.9 . 9 , 0.9 . 10 . Windows \u2014 Carla 0.9 . 9 , 0.9 . 10 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u2014 \u6700\u65b0 \u66f4\u65b0 \u6700\u65b0\u66f4\u65b0 \u3002","title":"\u652f\u6301"},{"location":"plugins_carlaviz/#carlaviz_1","text":"","title":"\u83b7\u53d6 carlaviz"},{"location":"plugins_carlaviz/#_3","text":"Docker \u2014 \u8bbf\u95ee \u6587\u6863 \u5e76 \u5b89\u88c5 Docker . \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u2014 \u4efb\u4f55 \u80fd\u591f \u8fd0\u884c Carla \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u90fd \u5e94\u8be5 \u53ef\u4ee5 \u5de5\u4f5c \u3002 Websocket - client \u2014 pip3 install websocket _ client \u3002 \u5982\u679c \u7cfb\u7edf \u4e2d \u5c1a\u672a \u5b89\u88c5 pip \u3002","title":"\u5148\u51b3\u6761\u4ef6"},{"location":"plugins_carlaviz/#_4","text":"\u6253\u5f00 \u7ec8\u7aef \u5e76 \u6839\u636e \u8981 \u8fd0\u884c \u7684 Carla \u7248\u672c \u62c9\u53d6 carlaviz \u7684 Docker \u6620\u50cf \u3002 # \u4ec5\u62c9\u53d6 \u548c \u6240 \u4f7f\u7528 \u7684 Carla \u5305 \u5339\u914d \u7684 \u955c\u50cf \u3002 docker pull mjxu96 / carlaviz : 0.9 . 6 docker pull mjxu96 / carlaviz : 0.9 . 7 docker pull mjxu96 / carlaviz : 0.9 . 8 docker pull mjxu96 / carlaviz : 0.9 . 9 docker pull mjxu96 / carlaviz : 0.9 . 10 # \u5982\u679c \u5de5\u4f5c \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e0a \uff0c \u5219 \u62c9\u53d6 \u8be5 \u955c\u50cf docker pull mjxu96 / carlaviz : latest \u91cd\u8981 \u76ee\u524d \u5728 Windows \u4e2d\u4ec5 \u652f\u6301 0.9 . 9 \u548c 0.9 . 10 \u3002 Carla \u81f3 0.9 . 9 \uff08 \u5305\u542b \uff09 \u8bbe\u7f6e \u4e3a \u5355\u6d41 \u3002 \u5bf9\u4e8e \u66f4\u9ad8 \u7248\u672c \uff0c \u5b9e\u73b0 \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u591a\u6d41 \u3002 \u5728 \u5355\u6d41 \u4e2d , \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ea\u80fd \u88ab \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u542c\u5230 \u3002 \u5f53 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5df2\u7ecf \u542c\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u4f8b\u5982 \u5728 \u8fd0\u884c manual _ control . py \u65f6 \uff0c carlaviz \u88ab\u8feb \u590d\u5236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u68c0\u7d22 \u6570\u636e \uff0c \u5e76\u4e14 \u6027\u80fd \u53ef\u80fd \u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u5728 \u591a\u6d41 \u4e2d \uff0c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u542c\u5230 \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 carlaviz \u4e0d \u9700\u8981 \u91cd\u590d \u8fd9\u4e9b \uff0c \u5e76\u4e14 \u6027\u80fd \u4e0d\u4f1a \u53d7\u5230 \u5f71\u54cd \u3002 \u7b14\u8bb0 \u6216\u8005 \uff0c \u5728 Linux \u4e0a \uff0c \u7528\u6237 \u53ef\u4ee5 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u6784\u5efa carlaviz \uff0c \u4f46 \u4f7f\u7528 Docker \u6620\u50cf \u5c06 \u4f7f \u4e8b\u60c5 \u53d8\u5f97 \u66f4\u52a0 \u5bb9\u6613 \u3002","title":"\u4e0b\u8f7d \u63d2\u4ef6"},{"location":"plugins_carlaviz/#carlaviz_2","text":"1 . \u8fd0\u884c Carla \u3002 a ) \u5728 Carla \u5305\u4e2d \u2014 \u8f6c \u81f3 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u4f7f\u7528 CarlaUE4 . exe ( Windows ) \u6216 . / CarlaUE4 . sh ( Linux ) \u542f\u52a8 \u4eff\u771f \u3002 b ) \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u5305\u4e2d \u2014 \u8f6c \u5230 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u4f7f\u7528 make launch \u8fd0\u884c \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u5e76 \u6309 Play \u3002 2 . \u8fd0\u884c carlaviz . \u6839\u636e \u5df2 \u4e0b\u8f7d \u7684 Docker \u955c\u50cf \uff0c \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u3002 \u66f4\u6539 \u5148\u524d \u4e0b\u8f7d \u7684 \u955c\u50cf \u7684 \u540d\u79f0 < name _ of _ Docker _ image > \uff0c \u4f8b\u5982 mjxu96 / carlaviz : latest \u6216 mjxu96 / carlaviz : 0.9 . 10 \u3002 # \u5728 Linux \u7cfb\u7edf docker run - it -- network = \" host \" - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = localhost - e CARLA _ SERVER _ PORT = 2000 < name _ of _ Docker _ image > # \u5728 Windows / MacOS \u7cfb\u7edf docker run - it - e CARLAVIZ _ HOST _ IP = localhost - e CARLA _ SERVER _ IP = host . docker . internal - e CARLA _ SERVER _ PORT = 2000 - p 8080 - 8081 : 8080 - 8081 - p 8089 : 8089 < name _ of _ Docker _ image > \u5982\u679c \u4e00\u5207 \u90fd \u5df2 \u6b63\u786e \u8bbe\u7f6e \uff0c carlaviz \u5c06 \u663e\u793a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u6210\u529f \u6d88\u606f \u3002 \u8b66\u544a \u8bf7 \u8bb0\u4f4f \u7f16\u8f91 \u524d\u9762 \u7684 \u547d\u4ee4 \u4ee5 \u5339\u914d \u6b63\u5728 \u4f7f\u7528 \u7684 Docker \u6620\u50cf \u3002 3 . \u4ece \u672c\u5730 \u6253\u5f00 \u6253\u5f00 Web \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u8f6c\u5230 http : / / 127.0 . 0.1 : 8080 / \u3002 carlaviz \u9ed8\u8ba4 \u5728 8080 \u7aef\u53e3 \u8fd0\u884c \u3002 \u8f93\u51fa \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u3002","title":"\u8fd0\u884c carlaviz"},{"location":"plugins_carlaviz/#_5","text":"\u4e00\u65e6 \u63d2\u4ef6 \u8fd0\u884c \uff0c \u5b83 \u5c31 \u53ef\u4ee5 \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u4eff\u771f \u3001 \u5176\u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4ee5\u53ca \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u8be5 \u63d2\u4ef6 \u5728 \u53f3\u4fa7 \u663e\u793a \u4e00\u4e2a \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \uff0c \u573a\u666f \u5b9e\u65f6 \u66f4\u65b0 \uff0c \u5de6\u4fa7 \u663e\u793a \u4e00\u4e2a \u4fa7\u8fb9 \u680f \uff0c \u5176\u4e2d \u5305\u542b \u8981 \u663e\u793a \u7684 \u9879\u76ee \u5217\u8868 \u3002 \u5176\u4e2d \u4e00\u4e9b \u9879\u76ee \u5c06 \u51fa\u73b0 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \uff0c \u5176\u4ed6 \u9879\u76ee \uff08 \u4e3b\u8981 \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u6e38\u620f \u6570\u636e \uff09 \u51fa\u73b0 \u5728 \u9879\u76ee \u5217\u8868 \u4e0a\u65b9 \u3002 \u4ee5\u4e0b \u662f \u53ef \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u9009\u9879 \u5217\u8868 \u3002 \u53ef\u80fd \u4f1a \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \uff0c \u4f8b\u5982 View Mode \u2014 \u66f4\u6539 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u7684 \u89c6\u89d2 \u3002 Top Down \u2014 \u7a7a\u4e2d \u89c6\u89d2 \u3002 Perspective \u2014 \u81ea\u7531 \u7684 \u89c6\u89d2 \u3002 Driver \u2014 \u7b2c\u4e00 \u4eba\u79f0 \u7b2c\u4e00\u4eba\u79f0 \u89c6\u89d2 \u3002 / vehicle \u2014 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5c5e\u6027 \u3002 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u5305\u62ec \u901f\u5ea6 \u901f\u5ea6\u8ba1 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \uff0c \u4ee5\u53ca IMU \u3001 GNSS \u548c \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u6570\u636e \u3002 / velocity \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u3002 / acceleration \u2014 \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u3002 / drawing \u2014 \u5728 \u4f7f\u7528 CarlaPainter \u7ed8\u5236 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5176\u4ed6 \u5143\u7d20 \u3002 / texts \u2014 \u6587\u672c \u5143\u7d20 \u3002 / points \u2014 \u70b9 \u5143\u7d20 \u3002 / polylines \u2014 \u6298\u7ebf \u5143\u7d20 \u3002 / objects \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 / walkers \u2014 \u66f4\u65b0 \u884c\u4eba \u3002 / vehicles \u2014 \u66f4\u65b0 \u8f66\u8f86 \u3002 / game \u2014 \u663e\u793a \u6e38\u620f \u6570\u636e \u3002 / time \u2014 \u5f53\u524d \u4eff\u771f \u65f6\u95f4 \u548c \u5e27 \u3002 / lidar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / radar \u2014 LIDAR \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 / points \u2014 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u70b9\u4e91 \u3002 / traffic \u2014 \u5730\u6807 \u6570\u636e \u3002 / traffic _ light \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 / stop _ sign \u2014 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u5730\u56fe \u7684 \u505c\u8f66 \u6807\u5fd7 \u3002 \u5c1d\u8bd5 \u751f\u6210 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9\u4e9b \u5c06 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u81ea\u52a8 \u66f4\u65b0 \u81ea\u52a8\u66f4\u65b0 \u3002 cd PythonAPI / examples # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4eff\u771f \u4e0b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 python3 generate _ traffic . py - n 10 - w 5 \u751f\u6210 \u4e00\u4e2a \u624b\u52a8 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u5e76 \u56db\u5904 \u79fb\u52a8 \uff0c \u4ee5 \u67e5\u770b \u63d2\u4ef6 \u5982\u4f55 \u66f4\u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 cd PythonAPI / examples python3 manual _ control . py \u8d21\u732e \u8d21\u732e\u8005 ( wx9698 ) \u521b\u5efa \u4e86 \u4e00\u4e2a \u9644\u52a0 \u7c7b CarlaPainter \uff0c \u5b83 \u5141\u8bb8 \u7528\u6237 \u7ed8\u5236 \u8981 \u5728 \u53ef\u89c6 \u53ef\u89c6\u5316 \u7a97\u53e3 \u4e2d \u663e\u793a \u7684 \u5143\u7d20 \u3002 \u5176\u4e2d \u5305\u62ec \u6587\u672c \u3001 \u70b9 \u548c \u6298\u7ebf \u3002 \u6309\u7167 \u6b64 \u793a\u4f8b \u751f\u6210 \u5e26\u6709 LIDAR \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u7ed8\u5236 LIDAR \u6570\u636e \u3001 \u8f66\u8f86 \u7684 \u8f68\u8ff9 \u548c \u901f\u5ea6 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e carlaviz \u63d2\u4ef6 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u5de5\u5177"},{"location":"python_api/","text":"Python API \u53c2\u8003 \u6b64 \u53c2\u8003 \u5305\u542b Python API \u7684 \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u8981 \u67e5\u9605 \u7279\u5b9a Carla \u7248\u672c \u7684 \u5148\u524d \u53c2\u8003 \uff0c \u8bf7 \u4f7f\u7528 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4\u6539 \u6587\u6863 \u7248\u672c \u3002 \u8fd9\u4f1a \u5c06 \u6574\u4e2a \u6587\u6863 \u66f4 \u6539\u4e3a \u4e4b\u524d \u7684 \u72b6\u6001 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6700\u65b0 \u7248\u672c \u662f dev \u5206\u652f \uff0c \u53ef\u80fd \u4f1a \u663e\u793a \u4efb\u4f55 Carla \u6253\u5305 \u7248\u672c \u4e2d \u4e0d\u53ef \u7528 \u7684 \u529f\u80fd \u3002 carla . AckermannControllerSettings \u7ba1\u7406 Ackermann PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \u3002 \u5b9e\u4f8b \u53d8\u91cf speed _ kp ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 speed _ ki ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 speed _ kd ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002 accel _ kp ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 accel _ ki ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 accel _ kd ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002 \u65b9\u6cd5 __ init __ ( self , speed _ kp = 0.15 , speed _ ki = 0.0 , speed _ kd = 0.25 , accel _ kp = 0.01 , accel _ ki = 0.0 , accel _ kd = 0.01 ) Parameters : speed _ kp ( float ) speed _ ki ( float ) speed _ kd ( float ) accel _ kp ( float ) accel _ ki ( float ) accel _ kd ( float ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . AckermannControllerSettings ) __ ne __ ( self , other = carla . AckermannControllerSettings ) __ str __ ( self ) carla . Actor Carla \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b9a\u4e49 \u4e3a \u5728 \u4eff\u771f \u4e2d \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \u6216 \u53ef\u4ee5 \u79fb\u52a8 \u7684 \u4efb\u4f55 \u7269\u4f53 \u3002 \u5176\u4e2d \u5305\u62ec \uff1a \u884c\u4eba \u3001 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff08 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u89c6\u4e3a \u5176\u4e2d \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u4eff\u771f \u4e2d \u7531 carla . World \u751f\u6210 \uff0c \u5e76\u4e14 \u9700\u8981 \u521b\u5efa carla . ActorBlueprint \u3002 \u8fd9\u4e9b \u84dd\u56fe \u5c5e\u4e8e Carla \u63d0\u4f9b \u7684 \u5e93 \uff0c \u8bf7 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf attributes ( dict ) \u5305\u542b \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u84dd\u56fe \u5c5e\u6027 \u7684 \u5b57\u5178 \u3002 id ( int ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u5728 \u7ed9\u5b9a \u7684 \u60c5\u8282 \u4e2d\u662f \u552f\u4e00 \u7684 \u3002 type _ id ( str ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \uff0c \u4f8b\u5982 vehicle . ford . mustang \u3002 is _ alive ( bool ) \u8fd4\u56de \u6b64 \u5bf9\u8c61 \u662f\u5426 \u662f\u5426\u662f \u4f7f\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53e5\u67c4 \u9500\u6bc1 \u7684 \u3002 is _ active ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( True ) \u6216\u975e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( False ) \u3002 is _ dormant ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( True ) \u6216\u975e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( False ) - \u4e0e is _ active \u76f8\u53cd \u3002 parent ( carla . Actor ) \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u4ed6\u4eec \u5c06 \u8ddf\u968f \u7684 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u5c31\u662f \u6240\u8bf4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 semantic _ tags ( list ( int ) ) \u84dd\u56fe \u5217\u8868 \u7ec4\u4ef6 \u4e3a\u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u7684 \u8bed\u4e49 \u6807\u7b7e \u5217\u8868 \u3002 \u4f8b\u5982 \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u53ef\u4ee5 \u7528 Pole \u548c TrafficLight . \u3002 \u8fd9\u4e9b \u6807\u7b7e \u7531 \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u3002 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 actor _ state ( carla . ActorState ) \u8fd4\u56de carla . ActorState \uff0c \u5b83 \u53ef\u4ee5 \u8bc6\u522b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u3001 \u4f11\u7720 \u6216 \u65e0\u6548 \u72b6\u6001 \u3002 bounding _ box ( carla . BoundingBox ) \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u51e0\u4f55 \u5f62\u72b6 \u7684 \u8fb9\u754c \u6846 \u3002 \u5b83 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u662f \u76f8\u5bf9 \u4e8e \u5b83 \u6240 \u9644\u7740 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u3002 \u65b9\u6cd5 add _ angular _ impulse ( self , angular _ impulse ) \u5728 \u89d2\u8272 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u89d2 \u51b2\u91cf \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u626d\u77e9 \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ torque ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u65cb\u8f6c \u529b \u3002 \u53c2\u6570 : angular _ impulse ( carla . Vector3D - degrees * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u89d2 \u8109\u51b2 \u77e2\u91cf \u3002 add _ force ( self , force ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u529b \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u529b \u3002 \u4f7f\u7528 add _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u8109\u51b2 \u3002 \u53c2\u6570 : force ( carla . Vector3D - N ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u529b \u77e2\u91cf \u3002 add _ impulse ( self , impulse ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u8109\u51b2 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u529b \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ force ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u529b \u3002 \u53c2\u6570 : impulse ( carla . Vector3D - N * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u8109\u51b2 \u77e2\u91cf \u3002 add _ torque ( self , torque ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u626d\u77e9 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u626d\u77e9 \u3002 \u4f7f\u7528 add _ angular _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u626d\u77e9 \u3002 \u53c2\u6570 : torque ( carla . Vector3D - \u5ea6 ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u626d\u77e9 \u77e2\u91cf \u3002 destroy ( self ) \u544a\u8bc9 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u9500\u6bc1 \u8fd9\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5982\u679c \u6210\u529f \u5219 True \u3002 \u5982\u679c \u5df2\u7ecf \u88ab \u7834\u574f \u5219 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u8fd4\u56de : bool \u8b66\u544a : T \u6b64 \u65b9\u6cd5 \u4f1a \u963b\u6b62 \u811a\u672c \uff0c \u76f4\u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b8c\u6210 \u9500\u6bc1 \u4e3a\u6b62 \u3002 disable _ constant _ velocity ( self ) \u7981\u7528 \u4e4b\u524d \u4e3a carla . Vehicle \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbe\u7f6e \u7684 \u4efb\u4f55 \u6052\u5b9a \u901f\u5ea6 \u3002 enable _ constant _ velocity ( self , velocity ) \u5c06 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u77e2\u91cf \u8bbe\u7f6e \u4e3a \u968f \u65f6\u95f4 \u53d8\u5316 \u7684 \u6052\u5b9a \u503c \u3002 \u6240 \u5f97\u5230 \u7684 \u901f\u5ea6 \u5c06 \u8fd1\u4f3c \u8fd1\u4f3c\u4e8e velocity \u6240 \u8bbe\u7f6e \u7684 \u901f\u5ea6 \uff0c \u4e0e set _ target _ velocity ( ) \u4e00\u6837 \u3002 \u53c2\u6570 : velocity ( carla . Vector3D - m / s ) - Velocity vector in local space . \u6ce8\u610f : \u53ea\u6709 carla . Vehicle \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u3002 \u8b66\u544a : \u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u542f\u7528 \u6052\u5b9a \u901f\u5ea6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 \u6b64 \u65b9\u6cd5 \u4f1a \u8986\u76d6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5bf9 \u901f\u5ea6 \u7684 \u4efb\u4f55 \u66f4\u6539 \u3002 \u83b7\u53d6 \u5668 get _ acceleration ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u6536\u5230 \u7684 \u89d2\u8272 \u7684 \u4e09\u7ef4 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Vector3D - m / s 2 get _ angular _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - deg / s get _ location ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u4e0a \u4e00\u6b21 tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Location - \u7c73 \u8bbe\u7f6e \u5668 : carla . Actor . set _ location get _ transform ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Transform \u8bbe\u7f6e \u5668 : carla . Actor . set _ transform get _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s get _ world ( self ) \u8fd4\u56de \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240\u5c5e \u7684 \u4e16\u754c \u3002 \u8fd4\u56de : carla . World \u8bbe\u7f6e \u5668 set _ enable _ gravity ( self , enabled ) \u542f\u7528 \u6216 \u7981\u7528 \u6f14\u5458 \u7684 \u91cd\u529b \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 \u53c2\u6570 \uff1a enabled ( bool ) set _ location ( self , location ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ location set _ simulate _ physics ( self , enabled = True ) \u542f\u7528 \u6216 \u7981\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u7684 \u7269\u7406 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1a enabled ( bool ) set _ target _ angular _ velocity ( self , angular _ velocity ) \u8bbe\u7f6e \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u77e2\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a angular _ velocity ( carla . Vector3D - deg / s ) set _ target _ velocity ( self , velocity ) \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a velocity ( carla . Vector3D ) set _ transform ( self , transform ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ transform \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . ActorAttribute Carla \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . BlueprintLibrary \u8fdb\u884c \u8bbf\u95ee \u3002 \u6bcf\u4e2a \u84dd\u56fe \u90fd \u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5185\u90e8 \u5b9a\u4e49 \u7684 \u5c5e\u6027 \u3002 \u5176\u4e2d \u4e00\u4e9b \u662f \u53ef\u4ee5 \u4fee\u6539 \u7684 \uff0c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u662f \u4e0d\u53ef \u4fee\u6539 \u7684 \u3002 \u4e3a \u53ef \u8bbe\u7f6e \u7684 \u503c \u63d0\u4f9b \u4e86 \u63a8\u8350 \u63a8\u8350\u503c \u5217\u8868 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( str ) \u5e93\u4e2d \u5c5e\u6027 \u7684 \u540d\u79f0 \u548c \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 is _ modifiable ( bool ) \u5982\u679c \u5c5e\u6027 \u7684 \u503c \u53ef\u4ee5 \u4fee\u6539 \uff0c \u5219 \u4e3a True \u3002 recommended _ values ( list ( str ) ) \u8bbe\u8ba1 \u84dd\u56fe \u7684 \u4eba\u5458 \u5efa\u8bae \u7684 \u503c \u5217\u8868 \u3002 type ( carla . ActorAttributeType ) \u5c5e\u6027 \u7684 \u53c2\u6570 \u7c7b\u578b \u3002 \u65b9\u6cd5 as _ bool ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a \u5e03\u5c14 \u5e03\u5c14\u503c \u3002 as _ color ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a carla . Color \u3002 as _ float ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a \u6d6e\u70b9 \u578b \u3002 as _ int ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a int \u3002 as _ str ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u9b54\u672f \u65b9\u6cd5 __ bool __ ( self ) __ eq __ ( self , other = bool / int / float / str / carla . Color / carla . ActorAttribute ) \u5982\u679c \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5c5e\u6027 \u548c other \u76f8\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ float __ ( self ) __ int __ ( self ) __ ne __ ( self , other = bool / int / float / str / carla . Color / carla . ActorAttribute ) \u5982\u679c \u6b64 actor \u7684 \u5c5e\u6027 \u548c other \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ nonzero __ ( self ) \u5982\u679c \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5c5e\u6027 \u4e0d\u4e3a \u96f6 \u6216 null \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de : bool __ str __ ( self ) carla . ActorAttributeType Carla \u5728 carla . BlueprintLibrary \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u6bcf\u4e2a \u84dd\u56fe \u5177\u6709 \u4e0d\u540c \u7684 \u5c5e\u6027 \u3002 \u6b64\u7c7b \u5c06 carla . ActorAttribute \u4e2d \u7684 \u7c7b\u578b \u5b9a\u4e49 \u7c7b\u578b\u5b9a\u4e49 \u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u3002 \u6240\u6709 \u8fd9\u4e9b \u4fe1\u606f \u5747 \u5728 \u5185\u90e8 \u7ba1\u7406 \uff0c \u5e76 \u5728 \u6b64\u5904 \u5217\u51fa \uff0c \u4ee5\u4fbf \u66f4\u597d \u5730 \u7406\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u3002 \u5b9e\u4f8b \u53d8\u91cf Bool Int Float String RGBColor carla . ActorBlueprint Carla \u4e3a Actor \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . BlueprintLibrary \u8fdb\u884c \u67e5\u9605 \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u5305\u542b \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53ef\u4ee5 \u4fee\u6539 \u6216 \u4e0d\u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u3002 \u8be5\u7c7b \u662f \u5e93 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u521b\u5efa \u4e4b\u95f4 \u7684 \u4e2d\u95f4 \u6b65\u9aa4 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9700\u8981 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u624d\u80fd \u4ea7\u751f \u3002 \u8fd9\u4e9b \u5c06 \u6240\u8ff0 \u84dd\u56fe \u7684 \u4fe1\u606f \u53ca\u5176 \u5c5e\u6027 \u548c \u4e00\u4e9b \u6807\u7b7e \u5b58\u50a8 \u5728 \u5bf9\u8c61 \u4e2d\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u5206\u7c7b \u3002 \u7136\u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u5c5e\u6027 \u5e76 \u6700\u7ec8 \u901a\u8fc7 carla . World \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( str ) \u5e93\u5185 \u6240\u8ff0 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u4f8b\u5982 walker . pedestrian.0001 \u3002 tags ( list ( str ) ) \u6bcf\u4e2a \u84dd\u56fe \u5177\u6709 \u7684 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63cf\u8ff0 \u5b83\u4eec \u7684 \u6807\u7b7e \u5217\u8868 \u3002 \u4f8b\u5982 [ ' 0001 ' , ' pedestrian ' , ' walker ' ] \u3002 \u65b9\u6cd5 has _ attribute ( self , id ) \u5982\u679c \u84dd\u56fe \u5305\u542b \u8be5 id \u5c5e\u6027 \uff0c \u5219 \u8fd4\u56de True \u3002 \u53c2\u6570 \uff1a id ( str ) - \u4f8b\u5982 gender \u5c06 \u4e3a \u884c\u4eba \u7684 \u84dd\u56fe \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool has _ tag ( self , tag ) \u5982\u679c \u84dd\u56fe \u5df2 \u5217\u51fa \u6307\u5b9a tag \u7684 \u5185\u5bb9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u53c2\u6570 \uff1a tag ( str ) - \u4f8b\u5982 \uff1a ' walker ' \u3002 \u8fd4\u56de \uff1a bool match _ tags ( self , wildcard _ pattern ) \u5982\u679c \u4e3a\u6b64 \u84dd\u56fe \u5217\u51fa \u7684 \u4efb\u4f55 \u6807\u8bb0 \u5339\u914d wildcard _ pattern \uff0c \u5219 \u8fd4\u56de True \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a bool \u83b7\u53d6 \u5668 get _ attribute ( self , id ) \u8fd4\u56de \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5c5e\u6027 \u4ee5\u53ca id \u6807\u8bc6 \u6807\u8bc6\u7b26 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1a id ( str ) \u8fd4\u56de \uff1a carla . ActorAttribute \u8bbe\u7f6e \u5668 \uff1a carla . ActorBlueprint . set _ attribute \u8bbe\u7f6e \u5668 set _ attribute ( self , id , value ) snippet \u2192 \u5982\u679c id \u5c5e\u6027 \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u5c06 \u5176\u503c \u6539\u4e3a value \u3002 \u53c2\u6570 \uff1a id ( str ) - \u8981 \u66f4\u6539 \u5c5e\u6027 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 value ( str ) - \u6240\u8ff0 \u5c5e\u6027 \u7684 \u65b0\u503c \u3002 \u83b7\u53d6 \u5668 \uff1a carla . ActorBlueprint . get _ attribute Dunder \u65b9\u6cd5 __ iter __ ( self ) \u5728 \u84dd\u56fe \u6709 \u7684 carla . ActorAttribute \u4e4b\u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u6b64 \u84dd\u56fe \u7684 \u5c5e\u6027 \u6570\u91cf \u3002 __ str __ ( self ) carla . ActorList \u4e00\u4e2a \u7c7b \uff0c \u5b83 \u5305\u542b \u73b0\u573a \u51fa\u73b0 \u7684 \u6bcf\u4e2a \u6f14\u5458 \u5e76 \u63d0\u4f9b \u5bf9 \u4ed6\u4eec \u7684 \u8bbf\u95ee \u3002 \u8be5 \u5217\u8868 \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81ea\u52a8 \u521b\u5efa \u548c \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u4f7f\u7528 carla . World \u8fd4\u56de \u3002 \u65b9\u6cd5 filter ( self , wildcard _ pattern ) \u7b5b\u9009 \u5339\u914d wildcard _ pattern \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \uff0c \u4ee5 \u5bf9\u6297 \u53d8\u91cf type _ id ( \u5b83 \u6807\u8bc6 \u7528\u4e8e \u751f\u6210 \u5b83\u4eec \u7684 \u84dd\u56fe ) \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a list find ( self , actor _ id ) \u4f7f\u7528 \u5176 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u67e5\u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u8fd4\u56de \u5b83 \uff0c \u5982\u679c \u4e0d \u5b58\u5728 \u5219 \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a actor _ id ( int ) \u8fd4\u56de \uff1a carla . Actor Dunder \u65b9\u6cd5 __ getitem __ ( self , pos = int ) \u8fd4\u56de \u4e0e \u5217\u8868 \u4e2d pos \u4f4d\u7f6e \u76f8\u5bf9 \u5e94 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de \uff1a carla . Actor __ iter __ ( self ) \u5728 \u5305\u542b carla . Actor \u7684 \u5217\u8868 \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u5217\u51fa \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int __ str __ ( self ) \u5728 \u5217\u51fa \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u89e3\u6790 ID \u3002 \u8fd4\u56de \uff1a str carla . ActorSnapshot \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u7279\u5b9a \u65f6\u523b \u7684 \u6240\u6709 \u4fe1\u606f \u7684 \u7c7b \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u5305\u542b \u5728 carla . WorldSnapshot \u4e2d \uff0c \u5e76 \u5728 \u6bcf\u4e2a \u65f6\u949f \u5468\u671f \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u6b21 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( int ) \u5feb\u7167 \u672c\u8eab \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ acceleration ( self ) \u8fd4\u56de \u5728 \u8be5 tick \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s 2 get _ angular _ velocity ( self ) \u8fd4\u56de \u4e3a \u8be5 tick \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - rad / s get _ transform ( self ) \u8fd4\u56de \u8be5 tick \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u8fd4\u56de \uff1a carla . Transform get _ velocity ( self ) \u8fd4\u56de \u5728 \u8be5 tick \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s carla . ActorState \u5b9a\u4e49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u72b6\u6001 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf Invalid \u5982\u679c \u51fa\u73b0 \u95ee\u9898 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c31\u662f \u65e0\u6548 \u7684 \u3002 Active \u5f53 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5e76\u4e14 \u53ef\u4ee5 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u5b83 \u5c31\u662f \u6d3b\u8dc3 \u7684 \u3002 Dormant \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d \u88ab \u53ef\u89c6 \u53ef\u89c6\u5316 \u5e76\u4e14 \u4e0d\u4f1a \u901a\u8fc7 \u7269\u7406 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c31 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u4e8e \u5927 \u5730\u56fe \u4e2d \u5df2 \u5378\u8f7d \u7684 \u56fe\u5757 \u4e0a \uff0c \u5219 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 carla . AttachmentType \u5b9a\u4e49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0e \u5176\u7236 \u7ea7 \u4e4b\u95f4 \u7684 \u9644\u4ef6 \u9009\u9879 \u7684 \u7c7b \u3002 \u5f53 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u5b83\u4eec \u53ef\u4ee5 \u9644\u52a0 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \uff0c \u8fd9\u6837 \u5b83\u4eec \u7684 \u4f4d\u7f6e \u5c31 \u4f1a \u76f8\u5e94 \u6539\u53d8 \u3002 \u8fd9 \u5bf9\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7279\u522b \u6709\u7528 \u3002 carla . World . spawn _ actor \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u751f\u6210 \u65f6 \u8fde\u63a5 \u5230 \u6c7d\u8f66 \u4e0a \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9644\u4ef6 \u7c7b\u578b \u5728 \u7c7b \u4e2d \u58f0\u660e \u4e3a \u679a\u4e3e \u3002 \u5b9e\u4f8b \u53d8\u91cf Rigid \u901a\u8fc7 \u6b64 \u56fa\u5b9a \u9644\u4ef6 \uff0c \u5bf9\u8c61 \u4e25\u683c \u9075\u5faa \u5176\u7236 \u4f4d\u7f6e \u3002 \u8fd9\u662f \u63a8\u8350 \u7684 \u9644\u4ef6 \uff0c \u7528\u4e8e \u4ece \u4eff\u771f \u4e2d \u68c0\u7d22 \u7cbe\u786e \u6570\u636e \u3002 SpringArm \u4e00\u79cd \u9644\u4ef6 \uff0c \u53ef \u6839\u636e \u5176\u7236 \u7ea7 \u6269\u5c55 \u6216 \u7f29\u56de \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 \u4ec5 \u5efa\u8bae \u5728 \u9700\u8981 \u5e73\u6ed1 \u8fd0\u52a8 \u7684 \u4eff\u771f \u4e2d \u5f55\u5236 \u89c6\u9891 \u65f6 \u4f7f\u7528 \u6b64 \u9644\u4ef6 \u3002 SpringArms \u662f \u4e00\u4e2a \u865a\u5e7b \u5f15\u64ce \u7ec4\u4ef6 \uff0c \u56e0\u6b64 check the UE \u6587\u6863 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8b66\u544a \uff1a \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 Z \u8f74\u4e0a \u4ea7\u751f \u76f8\u5bf9 \u5e73\u79fb \u65f6 \uff0c SpringArm \u9644\u4ef6 \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u5947\u602a \u7684 \u884c\u4e3a \u3002 \uff08 \u6bd4\u5982 \uff1a child _ location = Location ( 0 , 0 , 2 ) \uff09 \u3002 SpringArmGhost \u4e00\u4e2a \u4e0e \u524d \u4e00\u4e2a \u7c7b\u4f3c \u7684 \u9644\u4ef6 \uff0c \u4f46 \u5b83 \u4e0d\u4f1a \u8fdb\u884c \u78b0\u649e \u6d4b\u8bd5 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83 \u4e0d\u4f1a \u6269\u5c55 \u6216 \u6536\u7f29 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 ghost \u4e00\u8bcd \u56e0\u4e3a \u662f\u56e0\u4e3a \u8fd9\u6837 \u76f8\u673a \u5c31 \u53ef\u4ee5 \u7a7f\u8fc7 \u5899\u58c1 \u548c \u5176\u4ed6 \u51e0\u4f55 \u5f62\u72b6 \u3002 \u6b64 \u9644\u4ef6 \u4ec5 \u5efa\u8bae \u7528\u4e8e \u5f55\u5236 \u9700\u8981 \u5e73\u6ed1 \u79fb\u52a8 \u7684 \u4eff\u771f \u89c6\u9891 \u3002 SpringArms \u662f \u4e00\u4e2a \u865a\u5e7b \u5f15\u64ce \u7ec4\u4ef6 \uff0c \u8bf7 \u67e5\u770b \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8b66\u544a \uff1a \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 Z \u8f74\u4e0a \u4ea7\u751f \u76f8\u5bf9 \u5e73\u79fb \u65f6 \uff0c SpringArm \u9644\u4ef6 \u4f1a \u51fa\u73b0 \u5947\u602a \u7684 \u884c\u4e3a \uff08 \u6bd4\u5982 child _ location = Location ( 0 , 0 , 2 ) \uff09 \u3002 carla . BlueprintLibrary \u5305\u542b \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u6210 \u63d0\u4f9b \u7684 \u84dd\u56fe \u7684 \u7c7b \u3002 \u5b83 \u7684 \u4e3b\u8981 \u5e94\u7528 \u662f \u8fd4\u56de \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u9700 \u7684 carla . ActorBlueprint \u5bf9\u8c61 \u3002 \u6bcf\u4e2a \u84dd\u56fe \u90fd \u6709 \u4e00\u4e2a \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u53ef\u80fd \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u4e5f \u53ef\u80fd \u662f \u4e0d\u53ef \u4fee\u6539 \u7684 \u3002 \u8be5\u5e93 \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81ea\u52a8 \u521b\u5efa \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . World \u8bbf\u95ee \u3002 \u8fd9 \u662f \u5305\u542b \u6bcf\u4e2a \u53ef\u7528 \u84dd\u56fe \u53ca\u5176 \u7ec6\u8282 \u7684 \u53c2\u8003 \u3002 \u65b9\u6cd5 filter ( self , wildcard _ pattern ) \u6839\u636e \u6b64\u5e93 \u4e2d \u5305\u542b \u7684 \u6bcf\u4e2a \u84dd\u56fe \u7684 id \u548c \u6807\u8bb0 \u8fc7\u6ee4 \u4e0e \u901a\u914d\u7b26 \u6a21\u5f0f wildcard _ pattern \u5339\u914d \u7684 \u84dd\u56fe \u5217\u8868 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u4f5c\u4e3a \u65b0 \u7684 \u7ed3\u679c \u8fd4\u56de \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a carla . BlueprintLibrary filter _ by _ attribute ( self , name , value ) \u6839\u636e \u6b64\u5e93 \u4e2d \u5305\u542b \u7684 \u6bcf\u4e2a \u84dd\u56fe \uff0c \u7b5b\u9009 \u5177\u6709 \u4e0e\u503c value \u5339\u914d \u7684 \u7ed9\u5b9a \u5c5e\u6027 \u7684 \u84dd\u56fe \u5217\u8868 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u4f5c\u4e3a \u65b0 \u7684 \u7ed3\u679c \u8fd4\u56de \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a name ( str ) value ( str ) \u8fd4\u56de \uff1a carla . BlueprintLibrary find ( self , id ) \u8fd4\u56de \u4e0e \u8be5 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u5bf9\u5e94 \u7684 \u84dd\u56fe \u3002 \u53c2\u6570 \uff1a id ( str ) \u8fd4\u56de \uff1a carla . ActorBlueprint Dunder \u65b9\u6cd5 __ getitem __ ( self , pos = int ) \u8fd4\u56de \u5b58\u50a8 \u5728 \u5305\u542b \u84dd\u56fe \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u5185 pos \u4f4d\u7f6e \u7684 \u84dd\u56fe \u3002 \u8fd4\u56de : carla . ActorBlueprint __ iter __ ( self ) \u5728 \u5b58\u50a8 \u5e93 carla . ActorBlueprint \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u6784\u6210 \u5e93 \u7684 \u84dd\u56fe \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int __ str __ ( self ) \u89e3\u6790 \u8981 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5316 \u7684 \u6bcf\u4e2a \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u8fd4\u56de \uff1a string carla . BoundingBox \u8fb9\u754c \u6846 \u5305\u542b \u573a\u666f \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5143\u7d20 \u7684 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u88ab carla . DebugHelper \u6216 carla . Client \u7528\u4e8e \u7ed8\u5236 \u5b83\u4eec \u7684 \u5f62\u72b6 \u4ee5 \u8fdb\u884c \u8c03\u8bd5 \u3002 \u770b\u770b carla . DebugHelper . draw _ box \uff0c \u5176\u4e2d \u4f7f\u7528 \u4e16\u754c \u5feb\u7167 \u7ed8\u5236 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u8fb9\u754c \u6846 \u3002 \u5b9e\u4f8b \u53d8\u91cf extent ( carla . Vector3D - \u7c73 ) \u4ece \u957f\u65b9 \u957f\u65b9\u4f53 \u4e2d\u5fc3 \u5230 \u4e00\u4e2a \u9876\u70b9 \u7684 \u77e2\u91cf \u3002 \u6bcf\u4e2a \u8f74\u4e2d \u7684 \u503c \u7b49\u4e8e \u8be5\u8f74\u6846 \u5927\u5c0f \u7684 \u4e00\u534a \u3002 extent . x * 2 \u5c06 \u8fd4\u56de \u6846\u5728 x \u8f74\u4e0a \u7684 \u5927\u5c0f \u3002 location ( carla . Location - \u7c73 ) \u8fb9\u754c \u6846 \u7684 \u4e2d\u5fc3 \u3002 rotation ( carla . Rotation ) \u8fb9\u754c \u6846 \u7684 \u671d\u5411 \u3002 \u65b9\u6cd5 __ init __ ( self , location , extent ) \u53c2\u6570 \uff1a location ( carla . Location ) - \u76f8\u5bf9 \u4e8e \u5176\u7236 \u6846 \u7684 \u4e2d\u5fc3 \u3002 extent ( carla . Vector3D - \u7c73 ) - \u5305\u542b \u6bcf\u4e2a \u8f74 \u7684 \u957f\u65b9 \u957f\u65b9\u4f53 \u5927\u5c0f \u7684 \u4e00\u534a \u7684 \u77e2\u91cf \u3002 contains ( self , world _ point , transform ) \u5982\u679c \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u4f20\u9012 \u7684 \u70b9 \u5728 \u6b64 \u8fb9\u754c \u6846\u5185 \uff0c \u5219 \u8fd4\u56de True \u3002 Parameters : world _ point ( carla . Location - \u7c73 ) - \u8981 \u68c0\u67e5 \u7684 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u70b9 \u3002 transform ( carla . Transform ) - \u5305\u542b \u5c06 \u6b64 \u5bf9\u8c61 \u7684 \u5c40\u90e8 \u7a7a\u95f4 \u8f6c\u6362 \u4e3a \u4e16\u754c \u7a7a\u95f4 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8fd4\u56de \uff1a bool \u83b7\u53d6 \u5668 get _ local _ vertices ( self ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u5c40\u90e8 \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ world _ vertices ( self , transform ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) - \u5305\u542b \u5c06 \u6b64 \u5bf9\u8c61 \u7684 \u672c\u5730 \u7a7a\u95f4 \u8f6c\u6362 \u4e3a \u4e16\u754c \u7a7a\u95f4 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u53e6 \u4e00\u4e2a other \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u5176\u4ed6 other \u7684 \u4f4d\u7f6e \u6216 \u8303\u56f4 \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str carla . CityObjectLabel \u5305\u542b \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World . get _ level _ bbs ( ) \u8fd4\u56de \u7684 \u8fb9\u754c \u6846 \u7684 \u4e0d\u540c \u6807\u7b7e \u7684 \u679a\u4e3e \u58f0\u660e \u3002 \u8fd9\u4e9b \u503c \u5bf9\u5e94 \u4e8e \u573a\u666f \u4e2d \u5143\u7d20 \u6240 \u5177\u6709 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u5b9e\u4f8b \u53d8\u91cf None Buildings Fences Other Pedestrians Poles RoadLines Roads Sidewalks TrafficSigns Vegetation Vehicles Walls Sky Ground Bridge RailTrack GuardRail TrafficLight Static Dynamic Water Terrain Any carla . Client \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 Carla \u8fde\u63a5 \u5230 \u8fd0\u884c \u4eff\u771f \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u5305\u542b Carla \u5e93 ( libcarla ) \uff0c \u4f46 \u5b58\u5728 \u4e00\u4e9b \u5dee\u5f02 \uff0c \u5141\u8bb8 \u5b83\u4eec \u4e4b\u95f4 \u8fdb\u884c \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u521b\u5efa \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u4f1a \u8fde\u63a5 \u5230 \u4eff\u771f \u5185 \u7684 RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53d1\u9001 \u547d\u4ee4 \u3002 \u4eff\u771f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u8fd0\u884c \u3002 \u4e00\u65e6 \u5efa\u7acb \u8fde\u63a5 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u4ec5 \u63a5\u6536 \u4ece \u4eff\u771f \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u662f \u4f8b\u5916 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u7ba1\u7406 \u8d1f\u8d23\u7ba1\u7406 \u884c\u4eba \uff0c \u56e0\u6b64 \uff0c \u5982\u679c \u60a8 \u4e0e \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u8d77 \u8fd0\u884c \u4eff\u771f \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u901a\u8fc7 \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u751f\u6210 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u56e0\u4e3a \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ea \u77e5\u9053 \u5b83 \u8d1f\u8d23 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u5177\u6709 \u8bb0\u5f55 \u529f\u80fd \uff0c \u53ef\u4ee5 \u5728 \u8fd0\u884c \u4eff\u771f \u65f6 \u4fdd\u5b58 \u4eff\u771f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u8fd9 \u4f7f\u5f97 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u968f\u610f \u91cd\u653e \u91cd\u653e\u4ee5 \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u8fdb\u884c \u5b9e\u9a8c \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u6b64 \u5f55\u97f3 \u5f55\u97f3\u673a \u7684 \u4e00\u4e9b \u4fe1\u606f \u3002 \u65b9\u6cd5 __ init __ ( self , host = 127.0 . 0.1 , port = 2000 , worker _ threads = 0 ) snippet \u2192 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6784\u9020 \u5668 \u3002 \u53c2\u6570 \uff1a host ( str ) - \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b9e\u4f8b \u7684 \u5730\u5740 IP\u5730\u5740 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a localhost \uff08 127.0 . 0.1 \uff09 \u3002 port ( int ) - \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b9e\u4f8b \u7684 TCP \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u548c \u968f\u540e \u7684 2001 \u3002 worker _ threads ( int ) - \u7528\u4e8e \u540e\u53f0 \u66f4\u65b0 \u7684 \u5de5\u4f5c \u7ebf\u7a0b \u6570 \u3002 \u5982\u679c \u4e3a 0 \uff0c \u5219 \u4f7f\u7528 \u6240\u6709 \u53ef\u7528 \u7684 \u5e76\u53d1 \u6027 \u3002 apply _ batch ( self , commands ) \u5728 \u5355\u4e2a \u4eff\u771f \u6b65\u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u4e0d \u68c0\u7d22 \u4efb\u4f55 \u4fe1\u606f \u3002 \u5982\u679c \u9700\u8981 \u6709\u5173 \u6bcf\u4e2a \u547d\u4ee4 \u7684 \u54cd\u5e94 \u7684 \u4fe1\u606f \uff0c \u8bf7 \u4f7f\u7528 apply _ batch _ sync ( ) \u65b9\u6cd5 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u5220\u9664 \u5361\u62c9 \u4e2d \u51fa\u73b0 \u7684 \u6f14\u5458 \u7684 \u793a\u4f8b \u3002 \u4e00\u6b21 \u5217\u51fa \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 carla . ActorList \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u6bcf\u4e2a \u547d\u4ee4 \u90fd \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u81ea\u5df1 \u7684 \u53c2\u6570 \u3002 \u5b83\u4eec \u663e\u793a \u5728 \u6b64 \u9875\u9762 \u5e95\u90e8 \u5217\u51fa \u3002 apply _ batch _ sync ( self , commands , due _ tick _ cue = False ) snippet \u2192 \u5728 \u5355\u4e2a \u4eff\u771f \u6b65\u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u963b\u6b62 \u76f4\u5230 \u547d\u4ee4 \u94fe\u63a5 \uff0c \u5e76 \u8fd4\u56de command . Response \u5217\u8868 \u3002 \u53ef \u7528\u4e8e \u786e\u5b9a \u5355\u4e2a \u547d\u4ee4 \u662f\u5426 \u6210\u529f \u7684 \u54cd\u5e94 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u7528\u6765 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f8b\u5b50 \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u53ef\u7528 \u7684 \u547d\u4ee4 \u5217 \u5728 \u65b9\u6cd5 apply _ batch ( ) \u7684 \u6b63\u4e0a \u4e0a\u65b9 \u6b63\u4e0a\u65b9 \u3002 due _ tick _ cue ( bool ) - \u4e00\u4e2a \u5e03\u5c14 \u53c2\u6570 \uff0c \u7528\u4e8e \u6307\u5b9a \u662f\u5426 \u6267\u884c Carla \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5e94\u7528 \u5904\u7406 \u6279\u5904\u7406 \u540e \u8fdb\u884c carla . World . tick \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a False \u3002 \u8fd4\u56de \uff1a list ( command . Response ) generate _ opendrive _ world ( self , opendrive , parameters = ( 2.0 , 50.0 , 1.0 , 0.6 , true , true ) , reset _ settings = True ) \u4f7f\u7528 \u4ece OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u57fa\u672c \u4e09\u7ef4 \u62d3\u6251 \u52a0\u8f7d \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u6b64 \u5185\u5bb9 \u4f5c\u4e3a string \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u3002 \u5b83 \u7c7b\u4f3c \u4e8e client . load _ world ( map _ name ) \uff0c \u4f46 \u5141\u8bb8 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 OpenDRIVE \u6620\u5c04 \u3002 \u6c7d\u8f66 \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u4f46 \u9664\u4e86 \u9053\u8def \u548c \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e4b\u5916 \uff0c \u6ca1\u6709 \u4efb\u4f55 \u56fe\u5f62 \u3002 \u53c2\u6570 \uff1a opendrive ( str ) - OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 string \uff0c \u800c \u4e0d\u662f . xodr \u7684 \u8def\u5f84 \u3002 parameters ( carla . OpendriveGenerationParameters ) - \u7f51\u683c \u751f\u6210 \u7684 \u5176\u4ed6 \u8bbe\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u5267\u96c6 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 load _ world ( self , map _ name , reset _ settings = True , map _ layers = carla . MapLayer . All ) Creates a new world with default settings using map _ name map . All actors in the current world will be destroyed . \u53c2\u6570 \uff1a map _ name ( str ) - \u8981 \u5728 \u8fd9\u4e2a \u4e16\u754c \u4e0a \u4f7f\u7528 \u7684 \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u63a5\u53d7 \u5b8c\u6574 \u8def\u5f84 \u548c \u5730\u56fe \u540d\u79f0 \uff0c \u4f8b\u5982 \u201c / Game / Calla / Maps / Town01 \u201d \u6216 \u201c Town01 \u201d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 map _ layers ( carla . MapLayer ) - \u5c06 \u52a0\u8f7d \u7684 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5c06 \u52a0\u8f7d \u6240\u6709 \u56fe\u5c42 \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u7684 \u4f5c\u7528 \u7c7b\u4f3c \u4e8e \u6807\u5fd7 \u63a9\u7801 \u3002 \u8b66\u544a \uff1a map _ layers \u4ec5 \u5bf9 \" Opt \" \u5730\u56fe \u53ef\u7528 \u3002 reload _ world ( self , reset _ settings = True ) \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u4e16\u754c \uff0c \u8bf7 \u6ce8\u610f \uff0c \u5c06 \u4f7f\u7528 \u540c\u4e00 \u5730\u56fe \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u4e16\u754c \u4e0a \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 Raises : \u5bf9\u5e94 \u7684 \u8fd0\u884c \u65f6 \u9519\u8bef RuntimeError \u3002 replay _ file ( self , name , start , duration , follow _ id , replay _ sensors ) \u4f7f\u7528 map _ name \u52a0\u8f7d \u5177\u6709 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u5f53\u524d \u4e16\u754c \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5305\u542b \u4eff\u771f \u4fe1\u606f \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 start ( float - seconds ) - \u5f00\u59cb \u64ad\u653e \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u8d1f\u6570 \u8868\u793a \u4ece \u7ed3\u5c3e \u5f00\u59cb \u8bfb\u53d6 \uff0c \u5728 \u5f55\u5236 \u7ed3\u675f \u524d 10 \u79d2 \u4e3a - 10 \u3002 duration ( float - seconds ) - \u5c06 \u4f7f\u7528 \u4fe1\u606f name \u6587\u4ef6 \u91cd\u65b0 \u6267\u884c \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u5230\u8fbe \u7ec8\u70b9 \uff0c \u4eff\u771f \u5c06 \u7ee7\u7eed \u3002 follow _ id ( int ) - \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6b64\u503c \u4e3a 0 \uff0c \u5219 \u7981\u7528 \u76f8\u673a \u3002 replay _ sensors ( bool ) - \u7528\u4e8e \u5728 \u64ad\u653e \u671f\u95f4 \u542f\u7528 \u6216 \u7981\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6807\u5fd7 \u3002 request _ file ( self , name ) \u7531 carla . Client . get _ required _ files \u8fd4\u56de \u9700\u8981 \u6587\u4ef6 \u7684 \u4e00\u4e2a \u8bf7\u6c42 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u60a8 \u8bf7\u6c42 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 show _ recorder _ actors _ blocked ( self , filename , min _ time , min _ distance ) \u7ec8\u7aef \u5c06 \u663e\u793a \u88ab \u89c6\u4e3a \u88ab \u5c4f\u853d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6ce8\u518c \u4fe1\u606f \u3002 \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \u65f6 \uff0c \u5373 min _ distance \u548c min _ time \uff0c \u5219 \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8981 \u52a0\u8f7d \u7684 \u5f55\u5236 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 min _ time ( float - seconds ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u6321 \u4e4b\u524d \u5fc5\u987b \u79fb\u52a8 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \u7684 \u6700 \u77ed\u65f6 \u65f6\u95f4 \u77ed\u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 60 \u79d2 \u3002 min _ distance ( float - centimeters ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5fc5\u987b \u79fb\u52a8 \u7684 \u6700\u5c0f \u8ddd\u79bb \u624d\u80fd \u4e0d \u88ab \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 100 \u5398\u7c73 \u3002 \u8fd4\u56de \uff1a string show _ recorder _ collisions ( self , filename , category1 , category2 ) \u7ec8\u7aef \u5c06 \u663e\u793a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u6307\u5b9a \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u6765 \u8fc7\u6ee4 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u7c7b\u522b \u5c06 \u5728 category1 \u548c category1 \u4e2d \u6307\u5b9a \u5982\u4e0b \uff1a \u201c h \u201d = \u82f1\u96c4 \uff0c \u4e00\u79cd \u53ef\u4ee5 \u624b\u52a8 \u63a7\u5236 \u6216 \u7531 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u201d v ' = \u8f66\u8f86 ' w ' = \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 ' t ' = \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f ' o ' = \u5176\u4ed6 ' a ' = \u4efb\u4f55 \u5982\u679c \u60a8 \u53ea \u60f3 \u770b\u5230 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \uff0c \u8bf7 \u5c06 category1 \u7528\u4f5c ' v ' \uff0c \u5c06 category2 \u7528\u4f5c ' w ' \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u3002 \u5982\u679c \u8981 \u67e5\u770b \u6240\u6709 \u78b0\u649e \uff08 \u8fc7\u6ee4 \u6389 \uff09 \uff0c \u53ef\u4ee5 \u5bf9 \u4e24\u4e2a \u53c2\u6570 \u90fd \u4f7f\u7528 \u201c a \u201d \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 category1 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e00 \u4e00\u7c7b \u7b2c\u4e00\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 category2 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e8c \u4e8c\u7c7b \u7b2c\u4e8c\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 \u8fd4\u56de \uff1a string show _ recorder _ file _ info ( self , filename , show _ all ) \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4fdd\u5b58 \u7684 \u4fe1\u606f \u5c06 \u88ab \u89e3\u6790 \u5e76 \u4ee5 \u6587\u672c \u5f62\u5f0f \u663e\u793a \u5728 \u60a8 \u7684 \u7ec8\u7aef \u4e2d \uff08 \u5e27 \u3001 \u65f6\u95f4 \u3001 \u4e8b\u4ef6 \u3001 \u72b6\u6001 \u3001 \u4f4d\u7f6e \u2026 \uff09 \u3002 \u53ef\u4ee5 \u4f7f\u7528 show _ all \u53c2\u6570 \u6307\u5b9a \u663e\u793a \u7684 \u4fe1\u606f \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u8bfb\u53d6 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 show _ all ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u8fd4\u56de \u4e3a \u6bcf \u5e27 \u5b58\u50a8 \u7684 \u6240\u6709 \u4fe1\u606f \uff08 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3001 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u548c \u52a8\u753b \u6570\u636e \u2026 \uff09 \u3002 \u5982\u679c \u4e3a False \uff0c \u5219 \u8fd4\u56de \u5173\u952e \u4e8b\u4ef6 \u548c \u5e27 \u7684 \u6458\u8981 \u3002 \u8fd4\u56de \uff1a string start _ recorder ( self , filename , additional _ data = False ) \u542f\u7528 \u5f55\u5236 \u529f\u80fd \uff0c \u8be5 \u529f\u80fd \u5c06 \u5f00\u59cb \u4fdd\u5b58 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u91cd\u64ad \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u7528\u4e8e \u5199\u5165 \u8bb0\u5f55 \u6570\u636e \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 \u4e00\u4e2a \u7b80\u5355 \u7684 \u540d\u79f0 \u4f1a \u5c06 \u5f55\u5236 \u4fdd\u5b58 \u5728 \u201c CarlaUE4 / Saved / recording . log \u201d \u4e2d \u3002 \u5426\u5219 \uff0c \u5982\u679c \u540d\u79f0 \u4e2d \u51fa\u73b0 \u67d0\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5219 \u4f1a \u5c06 \u5176 \u89c6\u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 additional _ data ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u8bb0\u5f55 \u7528\u4e8e \u518d\u73b0 \u4eff\u771f \u7684 \u5fc5\u8981 \u975e\u5fc5\u8981 \u6570\u636e \uff08 \u8fb9\u754c \u6846 \u4f4d\u7f6e \u3001 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 \u7b49 \uff09 \u3002 stop _ recorder ( self ) \u505c\u6b62 \u6b63\u5728 \u8fdb\u884c \u7684 \u5f55\u5236 \u3002 \u5982\u679c \u60a8 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u6307\u5b9a \u4e86 \u4e00\u4e2a \u8def\u5f84 \uff0c \u5219 \u5f55\u5236 \u6587\u4ef6 \u5c06 \u5728 \u90a3\u91cc \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u8bf7 \u67e5\u770b CarlaUE4 / Saved / \u5185\u90e8 \u3002 stop _ replayer ( self , keep _ actors ) \u505c\u6b62 \u5f53\u524d \u91cd\u64ad \u3002 \u53c2\u6570 \uff1a keep _ actors ( bool ) - \u5982\u679c \u4f60 \u60f3 \u81ea\u52a8 \u5220\u9664 \u91cd\u64ad \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5219 \u4e3a True \uff0c \u5982\u679c \u4f60 \u60f3 \u4fdd\u7559 \u4ed6\u4eec \uff0c \u5219 \u4e3a False \u3002 \u83b7\u53d6 \u5668 get _ available _ maps ( self ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u53ef\u7528 \u6620\u5c04 \u7684 \u8def\u5f84 \u3002 \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u521b\u5efa \uff0c \u56e0\u6b64 \u5728 \u6587\u4ef6 \u4e2d \u67e5\u627e \u65f6 \u627e \u4e0d\u5230 \u5b83\u4eec \u3002 \u6b64 \u65b9\u6cd5 \u53ef\u80fd \u7684 \u8fd4\u56de \u7ed3\u679c \u4e4b\u4e00 \u662f \uff1a [ ' / Game / Carla / Maps / Town01 ' , ' / Game / Carla / Maps / Town02 ' , ' / Game / Carla / Maps / Town03 ' , ' / Game / Carla / Maps / Town04 ' , ' / Game / Carla / Maps / Town05 ' , ' / Game / Carla / Maps / Town06 ' , ' / Game / Carla / Maps / Town07 ' ] . \u8fd4\u56de \uff1a list ( str ) get _ client _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u5ba2\u6237 \u5ba2\u6237\u7aef libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 libcarla \u7248\u672c \uff0c \u4f46 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u4e0e \u610f\u5916 \u4e0d \u517c\u5bb9 \u6709\u5173 \u7684 \u95ee\u9898 \u3002 \u8fd4\u56de \uff1a str get _ required _ files ( self , folder , download = True ) \u8be2\u95ee \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u54ea\u4e9b \u6587\u4ef6 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u5730\u56fe \u3002 \u9009\u9879 \uff0c \u5982\u679c \u6587\u4ef6 \u4e0d \u5728 \u7f13\u5b58 \u4e2d \uff0c \u5219 \u81ea\u52a8 \u4e0b\u8f7d \u6587\u4ef6 \u3002 \u53c2\u6570 \uff1a folder ( str ) - \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6240 \u9700 \u6587\u4ef6 \u4e0b\u8f7d \u5230 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 download ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u4e0b\u8f7d \u5c1a\u672a \u5728 \u7f13\u5b58 \u4e2d \u7684 \u6587\u4ef6 \u3002 get _ server _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u5e94\u8be5 \u4f7f\u7528 \u76f8\u540c \u7684 libcarla \u7248\u672c \u3002 \u8fd4\u56de \uff1a str get _ trafficmanager ( self , client _ connection = 8000 ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u7aef\u53e3 \u76f8\u5173 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5982\u679c \u8be5 \u5b9e\u4f8b \u4e0d \u5b58\u5728 \uff0c \u5219 \u4f1a \u521b\u5efa \u8be5 \u5b9e\u4f8b \u3002 \u53c2\u6570 \uff1a client _ connection ( int ) - \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 8000 \u3002 \u8fd4\u56de \uff1a carla . TrafficManager get _ world ( self ) \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 \u8fd4\u56de \uff1a carla . World \u8bbe\u7f6e \u5668 set _ files _ base _ folder ( self , path ) \u53c2\u6570 \uff1a path ( str ) - \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 set _ replayer _ ignore _ hero ( self , ignore _ hero ) \u53c2\u6570 \uff1a ignore _ hero ( bool ) - \u5728 \u64ad\u653e \u5f55\u5236 \u7684 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u542f\u7528 \u6216 \u7981\u7528 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u64ad\u653e \u3002 set _ replayer _ ignore _ spectator ( self , ignore _ spectator ) \u53c2\u6570 \uff1a ignore _ spectator ( bool ) - \u786e\u5b9a \u56de\u653e \u7a0b\u5e8f \u662f\u5426 \u4f1a \u590d\u5236 \u8bb0\u5f55 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u52a8\u4f5c \u3002 set _ replayer _ time _ factor ( self , time _ factor = 1.0 ) \u4f7f\u7528 \u65f6 \uff0c \u4f1a \u968f\u610f \u4fee\u6539 \u91cd\u65b0 \u4eff\u771f \u7684 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5f53 \u64ad\u653e \u65f6 \uff0c \u5b83 \u53ef\u4ee5 \u4f7f\u7528 \u591a\u6b21 \u3002 \u53c2\u6570 \uff1a time _ factor ( float ) - 1.0 \u8868\u793a \u6b63\u5e38 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5927\u4e8e 1.0 \u8868\u793a \u5feb\u901f \u8fd0\u52a8 \uff08 2.0 \u8868\u793a \u53cc\u500d \u901f\u5ea6 \uff09 \uff0c \u5c0f\u4e8e 1.0 \u8868\u793a \u6162\u901f \u8fd0\u52a8 \uff08 0.5 \u8868\u793a \u4e00\u534a \u901f\u5ea6 \uff09 \u3002 set _ timeout ( self , seconds ) \u8bbe\u7f6e \u5728 \u963b\u6b62 \u7f51\u7edc \u8c03\u7528 \u5e76 \u5f15\u53d1 \u8d85\u65f6 \u8d85\u65f6 \u9519\u8bef \u4e4b\u524d \u5141\u8bb8 \u7f51\u7edc \u8c03\u7528 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a seconds ( float - seconds ) - \u65b0 \u7684 \u8d85 \u65f6\u503c \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 5 \u79d2 \u3002 carla . CollisionEvent \u4ece carla . SensorData \u7ee7\u627f \u4e3a sensor . other . collision \u5b9a\u4e49 \u78b0\u649e \u6570\u636e \u7684 \u7c7b \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3a \u68c0\u6d4b \u5230 \u7684 \u6bcf\u4e2a \u78b0\u649e \u521b\u5efa \u4e00\u4e2a \u78b0\u649e \u6570\u636e \u3002 \u6bcf\u4e2a \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u5e27 \u6bcf\u4e2a \u78b0\u649e \u4ea7\u751f \u4e00\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u901a\u8fc7 \u4e0e \u591a\u4e2a \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \uff0c \u53ef\u4ee5 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u4ea7\u751f \u591a\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf actor ( carla . Actor ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4e5f \u5c31\u662f \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 other _ actor ( carla . Actor ) \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u4e0e \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse ( carla . Vector3D - N * s ) \u78b0\u649e \u4ea7\u751f \u7684 \u6b63\u5e38 \u8109\u51b2 \u3002 carla . Color \u5b9a\u4e49 32 \u4f4d RGBA \u989c\u8272 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf r ( int ) \u7ea2\u8272 ( 0 - 255 ) \u3002 g ( int ) \u7eff\u8272 ( 0 - 255 ) \u3002 b ( int ) \u84dd\u8272 ( 0 - 255 ) \u3002 a ( int ) Alpha \u901a\u9053 ( 0 - 255 ) . \u3002 \u65b9\u6cd5 __ init __ ( self , r = 0 , g = 0 , b = 0 , a = 255 ) \u521d\u59cb \u521d\u59cb\u5316 \u989c\u8272 \uff0c \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 \u53c2\u6570 \uff1a r ( int ) g ( int ) b ( int ) a ( int ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . Color ) __ ne __ ( self , other = carla . Color ) __ str __ ( self ) carla . ColorConverter \u5b9a\u4e49 \u53ef \u5e94\u7528 \u4e8e carla . Image \u7684 \u8f6c\u6362 \u6a21\u5f0f \u7684 \u7c7b \uff0c \u4ee5 \u663e\u793a carla . Sensor \u63d0\u4f9b \u7684 \u4fe1\u606f \u3002 \u6df1\u5ea6 \u8f6c\u6362 \u4f1a \u5bfc\u81f4 \u7cbe\u5ea6 \u635f\u5931 \uff0c \u56e0\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u6df1\u5ea6 \u68c0\u6d4b \u4e3a \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a 0 \u5230 255 \u4e4b\u95f4 \u7684 \u7070\u5ea6 \u503c \u3002 \u67e5\u770b carla . Sensor . listen \u4e2d \u7684 \u7247\u6bb5 \uff0c \u4e86\u89e3 \u5982\u4f55 \u521b\u5efa \u548c \u4fdd\u5b58 \u56fe\u50cf \u7684 \u793a\u4f8b sensor . camera . semantic _ segmentation \u7684 \u6570\u636e \u3002 \u5b9e\u4f8b \u53d8\u91cf CityScapesPalette \u4f7f\u7528 \u84dd \u56fe\u5e93 \u63d0\u4f9b \u7684 \u6807\u7b7e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u5206\u6bb5 \u5730\u56fe \u3002 \u7531 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4f7f\u7528 \u3002 Depth \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u7ebf\u6027 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u7531 \u6df1\u5ea6 \u76f8\u673a \u4f7f\u7528 \u3002 LogarithmicDepth \u4f7f\u7528 \u5bf9\u6570 \u523b\u5ea6 \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u6df1\u5ea6 \u6df1\u5ea6\u56fe \uff0c \u4ece\u800c \u5728 \u5c0f \u8ddd\u79bb \u4e0a \u83b7\u5f97 \u66f4\u597d \u7684 \u7cbe\u5ea6 \uff0c \u4f46 \u5728 \u8ddd\u79bb \u8f83 \u8fdc \u65f6\u4f1a \u4e22\u5931 \u7cbe\u5ea6 \u3002 Raw \u672a \u5bf9 \u56fe\u50cf \u5e94\u7528 \u4efb\u4f55 \u66f4\u6539 \u3002 \u7531 RGB \u76f8\u673a \u4f7f\u7528 \u3002 carla . DVSEvent \u5b9a\u4e49 DVS \u4e8b\u4ef6 \u7684 \u7c7b \u3002 \u4e8b\u4ef6 \u662f \u4e00\u4e2a \u56db\u5143 \u5143\u7ec4 \u56db\u5143\u7ec4 \uff0c \u56e0\u6b64 \u662f \u4e00\u4e2a \u7531 4 \u4e2a \u5143\u7d20 \u7ec4\u6210 \u7684 \u5143\u7ec4 \uff0c \u5176\u4e2d x \u3001 \u50cf\u7d20 y \u5750\u6807 \u4f4d\u7f6e \u3001 \u65f6\u95f4 \u6233 t \u548c \u4e8b\u4ef6 \u6781\u6027 pol \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf x ( int ) X \u50cf\u7d20 \u5750\u6807 \u3002 y ( int ) Y \u50cf\u7d20 \u5750\u6807 \u3002 t ( int ) \u4e8b\u4ef6 \u53d1\u751f \u65f6\u523b \u7684 \u65f6\u95f4 \u6233 \u3002 pol ( bool ) \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 True \u8868\u793a \u6b63\u6570 \uff0c False \u8868\u793a \u8d1f\u6570 \u3002 \u65b9\u6cd5 Dunder \u65b9\u6cd5 __ str __ ( self ) carla . DVSEventArray \u5728 carla . DVSEvent \u4e2d \u5b9a\u4e49 \u4e8b\u4ef6 \u6d41 \u7684 \u7c7b \u3002 \u6b64\u7c7b \u6d41\u662f \u4efb\u610f \u5927\u5c0f \u7684 \u6570\u7ec4 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4e8b\u4ef6 \u7684 \u6570\u91cf \u3002 \u4e3a\u4e86 \u65b9\u4fbf \u8d77 \u89c1 \uff0c \u8be5\u7c7b \u8fd8 \u5b58\u50a8 \u89c6\u91ce \u3001 \u56fe\u50cf \u7684 \u9ad8\u5ea6 \u548c \u5bbd\u5ea6 \u4ee5\u53ca \u65f6\u95f4 \u6233 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf fov ( float - \u5ea6 ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( \u5b57\u8282 ) \u65b9\u6cd5 to _ array ( self ) \u6309 \u4ee5\u4e0b \u987a\u5e8f \u5c06 \u4e8b\u4ef6 \u6d41 \u8f6c\u6362 \u4e3a int \u503c \u6570\u7ec4 [ x , y , t , pol ] \u3002 to _ array _ pol ( self ) \u8fd4\u56de \u4e00\u4e2a \u6570\u7ec4 \uff0c \u8be5 \u6570\u7ec4 \u5177\u6709 \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 to _ array _ t ( self ) \u8fd4\u56de \u4e00\u4e2a \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 \u65f6\u95f4 \u6233 \u3002 to _ array _ x ( self ) \u8fd4\u56de \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 X \u50cf\u7d20 \u5750\u6807 \u7684 \u6570\u7ec4 \u3002 to _ array _ y ( self ) \u8fd4\u56de \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 Y \u50cf\u7d20 \u5750\u6807 \u6570\u7ec4 \u3002 to _ image ( self ) \u6309\u7167 \u4ee5\u4e0b \u6a21\u5f0f \u8f6c\u6362 \u56fe\u50cf \uff1a \u84dd\u8272 \u8868\u793a \u6b63 \u4e8b\u4ef6 \uff0c \u7ea2\u8272 \u8868\u793a \u8d1f \u4e8b\u4ef6 \u3002 \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 carla . DVSEvent \u4f5c\u4e3a \u68c0\u7d22 \u7684 \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self ) carla . DebugHelper carla . World \u7684 \u8f85\u52a9 \u7c7b \u90e8\u5206 \uff0c \u5b9a\u4e49 \u521b\u5efa \u8c03\u8bd5 \u5f62\u72b6 \u7684 \u65b9\u6cd5 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f62\u72b6 \u6301\u7eed \u4e00\u79d2 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u662f \u6c38\u4e45 \u6c38\u4e45\u6027 \u7684 \uff0c \u4f46 \u8981 \u8003\u8651 \u5230 \u8fd9\u6837 \u505a \u6240 \u9700 \u7684 \u8d44\u6e90 \u3002 \u67e5\u770b \u6b64\u7c7b \u7684 \u53ef\u7528 \u7247\u6bb5 \uff0c \u4e86\u89e3 \u5982\u4f55 \u5728 Carla \u4e2d \u8f7b\u677e \u8c03\u8bd5 \u3002 \u65b9\u6cd5 draw _ arrow ( self , begin , end , thickness = 0.1 , arrow _ size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u4ece \u5f00\u59cb begin \u5230 \u7ed3\u675f end \u7ed8\u5236 \u4e00\u4e2a \u6307\u5411 \u8be5 \u65b9\u5411 \u7684 \u7bad\u5934 \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u5f00\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u7ed3\u675f \u5e76 \u6307\u5411 \u7684 \u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 arrow _ size ( float - \u7c73 ) - \u7bad\u5934 \u5c16\u7aef \u7684 \u5927\u5c0f \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ box ( self , box , rotation , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) snippet \u2192 \u7ed8\u5236 \u4e00\u4e2a \u6846 \uff0c \u901a\u5e38 \u7528\u4e8e \u5bf9\u8c61 \u78b0\u649e \u5668 \u3002 \u53c2\u6570 \uff1a box ( carla . BoundingBox ) - \u5305\u542b \u6bcf\u4e2a \u8f74 \u7684 \u4f4d\u7f6e \u548c \u6846 \u957f\u5ea6 \u7684 \u5bf9\u8c61 \u3002 rotation ( carla . Rotation - \u5ea6 ( pitch , yaw , roll ) ) - \u6839\u636e \u865a\u5e7b \u5f15\u64ce \u8f74\u7cfb \u7684 \u8fb9\u754c \u6846 \u65b9\u5411 \u3002 thickness ( float - \u7c73 ) - \u5b9a\u4e49 \u8fb9\u754c \u6846 \u7684 \u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - \u79d2 ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ hud _ arrow ( self , begin , end , thickness = 0.1 , arrow _ size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u4e0a \u4ece\u5934 begin \u5230 \u5c3e end \u753b \u4e00\u4e2a \u7bad\u5934 \uff0c \u8fd9\u4e2a \u7bad\u5934 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u7bad\u5934 \u8d77\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u7bad\u5934 \u7ed3\u675f \u5e76 \u6307\u5411 \u7684 \u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 arrow _ size ( float - \u7c73 ) - \u7bad\u5c16 \u7684 \u5927\u5c0f \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ hud _ box ( self , box , rotation , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u4e0a \u7ed8\u5236 \u4e00\u4e2a \u6846 \uff0c \u901a\u5e38 \u7528\u4e8e \u5bf9\u8c61 \u78b0\u649e \u5668 \u3002 \u8be5\u6846 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 Parameters : box ( carla . BoundingBox ) - \u5305\u542b \u6bcf\u4e2a \u8f74 \u7684 \u6846 \u7684 \u4f4d\u7f6e \u548c \u957f\u5ea6 \u7684 \u5bf9\u8c61 \u3002 rotation ( carla . Rotation - degrees ( pitch , yaw , roll ) ) - \u6839\u636e \u865a\u5e7b \u5f15\u64ce \u7684 \u8f74 \u7cfb\u7edf \u786e\u5b9a \u8fb9\u754c \u6846 \u7684 \u65b9\u5411 \u3002 thickness ( float - \u7c73 ) - \u5b9a\u4e49 \u8fb9\u754c \u6846\u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ hud _ line ( self , begin , end , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u4e0a \u5f00\u59cb begin \u548c \u7ed3\u675f end \u4e4b\u95f4 \u753b \u4e00\u6761 \u4e00\u6761\u7ebf \u3002 \u8fd9\u6761 \u8fd9\u6761\u7ebf \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u76f4\u7ebf \u5f00\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u76f4\u7ebf \u7ed3\u675f \u7684 \u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - \u79d2 ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ hud _ point ( self , location , size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u7684 \u4f4d\u7f6e location \u4e0a \u7ed8\u5236 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u8fd9\u4e2a \u70b9 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u70b9 \u5728 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d\u4f7f \u7269\u4f53 \u5c45\u4e2d \u3002 size ( float - \u7c73 ) - \u70b9 \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ line ( self , begin , end , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 \u5f00\u59cb begin \u548c \u7ed3\u675f end \u4e4b\u95f4 \u7ed8\u5236 \u4e00\u6761 \u4e00\u6761\u7ebf \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u76f4\u7ebf \u8d77\u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u76f4\u7ebf \u7ec8\u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - \u79d2 ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ point ( self , location , size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u7ed8\u5236 \u4e00\u4e2a \u4e00\u4e2a\u70b9 location \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u5728 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d\u70b9 \u4ee5 \u5c06 \u5bf9\u8c61 \u5c45\u4e2d \u3002 size ( float - \u7c73 ) - \u70b9 \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ string ( self , location , text , draw _ shadow = False , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) snippet \u2192 \u5728 \u4eff\u771f \u7684 \u7ed9\u5b9a \u4f4d\u7f6e \u7ed8\u5236 \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u8be5 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u4eff\u771f \u4e2d \u6587\u672c \u5c45\u4e2d \u7684 \u4f4d\u7f6e \u3002 text ( str ) - \u65e8\u5728 \u5411 \u4e16\u754c \u5c55\u793a \u7684 \u6587\u672c \u3002 draw _ shadow ( bool ) - \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u6295\u5c04 \u9634\u5f71 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u662f \u7981\u7528 \u7684 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 carla . EnvironmentObject \u8868\u793a \u5173\u5361 \u4e2d \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u7684 \u7c7b \uff0c \u8be5 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u53ef\u4ee5 \u662f \u4e0e \u5176\u4ed6 \u73af\u5883 \u5bf9\u8c61 \uff08 \u5373 \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \uff09 \u5f62\u6210 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b9e\u4f8b \u53d8\u91cf transform ( carla . Transform ) \u5305\u542b \u73af\u5883 \u5bf9\u8c61 \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 bounding _ box ( carla . BoundingBox ) \u5305\u542b \u4e16\u754c \u7a7a\u95f4 \u4e2d \u6bcf\u4e2a \u8f74 \u7684 \u4f4d\u7f6e \u3001 \u65cb\u8f6c \u548c \u8fb9\u754c \u6846 \u957f\u5ea6 \u7684 \u5bf9\u8c61 \u3002 id ( int ) \u7528\u4e8e \u6807\u8bc6 \u5173\u5361 \u4e2d \u5bf9\u8c61 \u7684 \u552f\u4e00 ID \u3002 name ( string ) \u73af\u5883 \u5bf9\u8c61 EnvironmentObject \u7684 \u540d\u79f0 \u3002 type ( carla . CityObjectLabel ) Semantic tag . \u65b9\u6cd5 Dunder \u65b9\u6cd5 __ str __ ( self ) \u5c06 \u73af\u5883 \u5bf9\u8c61 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5e76 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u663e\u793a \u5b83\u4eec \u3002 \u8fd4\u56de \uff1a str carla . FloatColor \u5b9a\u4e49 \u6d6e\u70b9 RGBA \u989c\u8272 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf r ( float ) \u7ea2\u8272 \u3002 g ( float ) \u7eff\u8272 \u3002 b ( float ) \u84dd\u8272 \u3002 a ( float ) Alpha \u901a\u9053 \u3002 \u65b9\u6cd5 __ init __ ( self , r = 0 , g = 0 , b = 0 , a = 1.0 ) \u521d\u59cb \u521d\u59cb\u5316 \u989c\u8272 \uff0c \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 \u53c2\u6570 \uff1a r ( float ) g ( float ) b ( float ) a ( float ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . FloatColor ) __ ne __ ( self , other = carla . FloatColor ) carla . GBufferTextureID \u5b9a\u4e49 \u6bcf\u4e2a GBuffer \u7eb9\u7406 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 ( \u53c2\u89c1 \u65b9\u6cd5 [ carla . Sensor . listen _ to _ gbuffer ] ( # carla . Sensor . listen _ to _ gbuffer ) ) \u3002 \u5b9e\u4f8b \u53d8\u91cf SceneColor \u7eb9\u7406 \u201c SceneColor \u201d \u5305\u542b \u56fe\u50cf \u7684 \u6700\u7ec8 \u989c\u8272 \u3002 SceneDepth \u7eb9\u7406 \u201c SceneDepth \u201d \u5305\u542b \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a - \u4ee5 \u4e16\u754c \u5355\u4f4d \u4e3a \u7ebf\u6027 \u3002 SceneStencil \u7eb9\u7406 \u201c SceneStencil \u201d \u5305\u542b \u6a21\u677f \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 GBufferA \u7eb9\u7406 \u201c GBufferA \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u4e16\u754c \u7a7a\u95f4 \u6cd5\u7ebf \u5411\u91cf \u3002 Alpha \u901a\u9053 \u5305\u542b \u201c \u6bcf\u4e2a \u5bf9\u8c61 \u7684 \u6570\u636e \u201d \u3002 GBufferB \u7eb9\u7406 \u201c GBufferB \u201d \u5206\u522b \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u91d1\u5c5e \u3001 \u955c\u9762 \u548c \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Alpha \u901a\u9053 \u5305\u542b \u4e00\u4e2a \u63a9\u7801 \uff0c \u5176\u4e2d \u4f4e 4 \u4f4d \u8868\u793a \u7740\u8272 \u6a21\u578b \uff0c \u9ad8 4 \u4f4d \u5305\u542b \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 \u3002 GBufferC \u7eb9\u7406 \u201c GBufferC \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u989c\u8272 \uff0c \u4ee5\u53ca Alpha \u901a\u9053 \u4e2d \u7684 \u95f4\u63a5 \u8f90\u7167 \u7167\u5ea6 \u8f90\u7167\u5ea6 \u3002 \u5982\u679c \u4e0d \u5141\u8bb8 \u9759\u6001 \u95ea\u7535 \uff0c Alpha \u901a\u9053 \u5c06 \u5305\u542b \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u3002 GBufferD \u201c GBufferD \u201d \u7684 \u5185\u5bb9 \u6839\u636e \u6e32\u67d3 \u5bf9\u8c61 \u7684 \u6750\u8d28 \u7740\u8272 \u6a21\u578b ( GBufferB ) \u7684 \u4e0d\u540c \u800c \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \uff1a MSM _ Subsurface ( 2 ) , MSM _ PreintegratedSkin ( 3 ) , MSM _ TwoSidedFoliage ( 6 ) : RGB : \u6b21 \u8868\u9762 \u989c\u8272 \u3002 A : \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 MSM _ ClearCoat ( 4 ) : R : \u900f\u660e \u6d82\u5c42 \u3002 G : \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 MSM _ SubsurfaceProfile ( 5 ) : RGB : \u6b21 \u8868\u9762 \u8f6e\u5ed3 \u3002 MSM _ Hair ( 7 ) : RG : \u4e16\u754c \u6cd5\u7ebf \u3002 B : \u80cc\u5149 \u503c \u3002 MSM _ Cloth ( 8 ) : RGB : \u6b21 \u8868\u9762 \u989c\u8272 \u3002 A : Cloth value . MSM _ Eye ( 9 ) : RG : \u773c \u5207\u7ebf \u3002 B : \u8679\u819c \u63a9\u6a21 \u3002 A : \u8679\u819c \u8ddd\u79bb \u3002 GBufferE \u7eb9\u7406 \u201c GBufferE \u201d \u5305\u542b RGBA \u901a\u9053 \u4e2d \u9884\u5148 \u8ba1\u7b97 \u7684 \u9634\u5f71 \u56e0\u5b50 \u3002 \u5982\u679c \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 ( GBufferB ) \u6ca1\u6709 \u8bbe\u7f6e \u5176 \u7b2c 4 \u4f4d \uff0c \u5219 \u6b64 \u7eb9\u7406 \u4e0d\u53ef \u7528 \u3002 GBufferF \u7eb9\u7406 \u201c GBufferF \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u4e16\u754c \u7a7a\u95f4 \u5207\u7ebf \u548c Alpha \u901a\u9053 \u4e2d \u7684 \u5f02\u6027 \u5404\u5411\u5f02\u6027 \u3002 \u5982\u679c \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 ( GBufferB ) \u6ca1\u6709 \u8bbe\u7f6e \u5176 \u7b2c 5 \u4f4d \uff0c \u5219 \u6b64 \u7eb9\u7406 \u4e0d\u53ef \u7528 \u3002 Velocity \u7eb9\u7406 \u201c \u901f\u5ea6 \u201d \u5305\u542b \u573a\u666f \u5bf9\u8c61 \u7684 \u5c4f\u5e55 \u7a7a\u95f4 \u901f\u5ea6 \u3002 SSAO \u7eb9\u7406 \u201c SSAO \u201d \u5305\u542b \u5c4f\u5e55 \u7a7a\u95f4 \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u7eb9\u7406 \u3002 CustomDepth \u7eb9\u7406 \u201c CustomDepth \u201d \u5305\u542b \u865a\u5e7b \u5f15\u64ce \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6df1\u5ea6 \u6570\u636e \u3002 CustomStencil \u7eb9\u7406 \u201c CustomStencil \u201d \u5305\u542b \u865a\u5e7b \u5f15\u64ce \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6a21\u677f \u6570\u636e \u3002 carla . GearPhysicsControl \u901a\u8fc7 \u5b9a\u4e49 \u6863\u4f4d \u4ee5\u53ca \u4f55\u65f6 \u8fd0\u884c \u8be5 \u6863\u4f4d \u6765 \u63d0\u4f9b \u5bf9 \u8f66\u8f86 \u53d8\u901f \u53d8\u901f\u7bb1 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u7684 \u8bbf\u95ee \u7684 \u7c7b \u3002 carla . VehiclePhysicsControl \u7a0d\u540e \u5c06 \u4f7f\u7528 \u5b83 \u6765 \u5e2e\u52a9 \u4eff\u771f \u7269\u7406 \u3002 \u5b9e\u4f8b \u53d8\u91cf ratio ( float ) \u9f7f\u8f6e \u7684 \u4f20\u52a8 \u4f20\u52a8\u6bd4 \u3002 down _ ratio ( float ) \u5f53\u524d RPM \u4e0e \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u5e94\u964d \u6863 \u7684 MaxRPM \u4e4b\u95f4 \u7684 \u5546 \u3002 up _ ratio ( float ) \u5f53\u524d RPM \u4e0e \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u5e94 \u5347\u6863 \u7684 MaxRPM \u4e4b\u95f4 \u7684 \u5546 \u3002 \u65b9\u6cd5 __ init __ ( self , ratio = 1.0 , down _ ratio = 0.5 , up _ ratio = 0.65 ) \u53c2\u6570 \uff1a ratio ( float ) down _ ratio ( float ) up _ ratio ( float ) Dunder \u65b9\u6cd5 __ eq __ ( self , other = carla . GearPhysicsControl ) __ ne __ ( self , other = carla . GearPhysicsControl ) __ str __ ( self ) carla . GeoLocation \u5305\u542b \u5730\u7406 \u5750\u6807 \u5730\u7406\u5750\u6807 \u4eff\u771f \u6570\u636e \u7684 \u7c7b \u3002 carla . Map \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \u8f6c\u6362 \u4eff\u771f \u4f4d\u7f6e OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u6807\u8bb0 \u3002 \u5b9e\u4f8b \u53d8\u91cf latitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 altitude ( float - \u7c73 ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002 \u65b9\u6cd5 __ init __ ( self , latitude = 0.0 , longitude = 0.0 , altitude = 0.0 ) \u53c2\u6570 \uff1a latitude ( float - \u5ea6 ) longitude ( float - \u5ea6 ) altitude ( float - \u7c73 ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . GeoLocation ) __ ne __ ( self , other = carla . GeoLocation ) __ str __ ( self ) carla . GnssMeasurement \u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u7531 sensor . other . gnss \u6ce8\u518c \u7684 Gnss \u6570\u636e \u7684 \u7c7b \u3002 \u5b83 \u672c\u8d28 \u4e0a \u662f \u901a\u8fc7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f4d\u7f6e \u548c OpenDRIVE \u5730\u7406 \u53c2\u8003 \u6765 \u62a5\u544a \u5176 \u4f4d\u7f6e \u3002 \u5b9e\u4f8b \u53d8\u91cf altitude ( float - \u7c73 ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002 latitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . IMUMeasurement \u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u7531 sensor . other . imu \u6ce8\u518c \u7684 \u6570\u636e \u7c7b \uff0c \u6d89\u53ca \u6839\u636e \u5f53\u524d carla . World \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f6c\u6362 \u3002 \u5b83 \u672c\u8d28 \u4e0a \u5145\u5f53 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u5b9e\u4f8b \u53d8\u91cf accelerometer ( carla . Vector3D - m / s 2 ) \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 compass ( float - \u5f27\u5ea6 ) \u76f8\u5bf9 \u4e8e \u5317\u65b9 \u7684 \u65b9\u5411 \uff08 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d\u4e3a [ 0.0 , - 1.0 , 0.0 ] \uff09 \u3002 gyroscope ( carla . Vector3D - \u5f27\u5ea6 / \u79d2 ) \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . Image \u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 32 \u4f4d BGRA \u989c\u8272 \u56fe\u50cf \u7684 \u7c7b \uff0c \u8be5 \u56fe\u50cf \u5c06 \u7528\u4f5c \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u521d\u59cb \u6570\u636e \u3002 \u6709 \u4e0d\u540c \u7684 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u76ee\u524d \u6709 \u4e09\u79cd \uff0c RGB \u3001 \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 \uff09 \uff0c \u6bcf\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5bf9 \u56fe\u50cf \u90fd \u6709 \u4e0d\u540c \u7684 \u7528\u9014 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf fov ( float - \u5ea6 ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( bytes ) \u50cf\u7d20 \u6570\u636e \u7684 \u6241\u5e73 \u6570\u7ec4 \uff0c \u4f7f\u7528 reshape \u521b\u5efa \u56fe\u50cf \u6570\u7ec4 \u3002 \u65b9\u6cd5 convert ( self , color _ converter ) \u6309\u7167 color _ converter \u6a21\u5f0f \u8f6c\u6362 \u56fe\u50cf \u3002 \u53c2\u6570 \uff1a color _ converter ( carla . ColorConverter ) save _ to _ disk ( self , path , color _ converter = Raw ) \u4f7f\u7528 \u5982\u4e0b \u6240\u793a \u7684 \u8f6c\u6362 \u8f6c\u6362\u5668 \u6a21\u5f0f color _ converter \u5c06 \u56fe\u50cf \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u9ed8\u8ba4 \u8f6c\u6362 \u6a21\u5f0f \u662f Raw \uff0c \u4e0d\u4f1a \u5bf9 \u56fe\u50cf \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u3002 \u53c2\u6570 \uff1a path ( str ) - \u5c06 \u5305\u542b \u56fe\u50cf \u7684 \u8def\u5f84 \u3002 color _ converter ( carla . ColorConverter ) - \u9ed8\u8ba4 Raw \u4e0d\u4f1a \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u3002 \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u5f62\u6210 \u56fe\u50cf \u7684 carla . Color \u4e0a\u9762 \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self ) carla . Junction \u6839\u636e OpenDRIVE 1.4 \u6807\u51c6 \uff0c \u4f53\u73b0 OpenDRIVE \u6587\u4ef6 \u4e2d \u63cf\u8ff0 \u7684 \u9053\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( int ) OpenDRIVE \u6587\u4ef6 \u4e2d \u627e\u5230 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 bounding _ box ( carla . BoundingBox ) \u5c01\u88c5 \u8fde\u63a5 \u8f66\u9053 \u7684 \u8fb9\u754c \u6846 \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ waypoints ( self , lane _ type ) \u8fd4\u56de \u822a\u8def \u70b9 \u5bf9 \u7684 \u5217\u8868 \u3002 \u5217\u8868 \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7ec4 \u9996\u5148 \u5305\u542b \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u8fb9\u754c \u5185 \u7684 \u521d\u59cb \u8def\u5f84 \u70b9 \uff0c \u7136\u540e \u5305\u542b \u6700\u7ec8 \u8def\u5f84 \u70b9 \uff0c \u63cf\u8ff0 \u6cbf \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u7684 \u6240\u8ff0 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8f66\u9053 \u9075\u5faa \u5176 OpenDRIVE \u5b9a\u4e49 \uff0c \u56e0\u6b64 \u7531\u4e8e \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u53ef\u80fd \u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u5143\u7ec4 \u5177\u6709 \u76f8\u540c \u7684 \u8d77\u59cb \u822a\u8def \u70b9 \uff0c \u56e0\u4e3a \u8fd9 \u88ab \u89c6\u4e3a \u4e0d\u540c \u7684 \u8f66\u9053 \u3002 \u53c2\u6570 \uff1a lane _ type ( carla . LaneType ) - \u83b7\u53d6 \u8def\u70b9 \u7684 \u8f66\u9053 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a list ( tuple ( carla . Waypoint ) ) carla . LabelledPoint \u4f7f\u7528 \u8bed\u4e49 \u6807\u7b7e \u8868\u793a \u7a7a\u95f4 \u4f4d\u7f6e \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf location \u4e09\u7ef4 \u7a7a\u95f4 \u7ef4\u7a7a\u95f4 \u4e09\u7ef4\u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 label \u70b9 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 carla . Landmark \u5b9a\u4e49 \u5f71\u54cd \u9053\u8def \u7684 \u4efb\u4f55 \u7c7b\u578b \u7684 \u4ea4\u901a \u5730\u6807 \u6216 \u6807\u5fd7 \u7684 \u7c7b \u3002 \u8fd9\u4e9b \u7c7b \u5728 \u5730 \u6807\u7684 OpenDRIVE 1.4 standard \u6807\u51c6 \u5b9a\u4e49 \u53ca\u5176 \u5728 \u4eff\u771f \u4e2d \u7684 \u8868\u793a \u4e4b\u95f4 \u8fdb\u884c \u534f\u8c03 \u3002 \u6b64\u7c7b \u68c0\u7d22 \u5728 OpenDRIVE \u4e2d \u5b9a\u4e49 \u5730 \u6807\u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5e76 \u63d0\u4f9b \u6709\u5173 \u5176 \u5f71\u54cd \u54ea\u4e9b \u8f66\u9053 \u4ee5\u53ca \u4f55\u65f6 \u5f71\u54cd \u7684 \u4fe1\u606f \u3002 carla . Waypoint \u5bf9\u8c61 \u5c06 \u5c1d\u8bd5 \u68c0\u7d22 \u5176 \u8f66\u9053 \u89c4\u5219 \u6765 \u8bbf\u95ee \u5730\u6807 \u3002 \u56e0\u6b64 \uff0c \u67d0\u4e9b \u5c5e\u6027 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6b63\u5728 \u54a8\u8be2 \u5730 \u6807\u7684 \u822a\u8def \u70b9 \uff0c \u4ece\u800c \u521b\u5efa \u5bf9\u8c61 \u521b\u5efa\u5bf9\u8c61 \u3002 \u5b9e\u4f8b \u53d8\u91cf road _ id ( int ) \u5b9a\u4e49 \u6b64\u5730 \u6807\u7684 \u9053\u8def \u7684 OpenDRIVE ID \u3002 \u7531\u4e8e OpenDRIVE \u9053\u8def \u5b9a\u4e49 \uff0c \u8be5 \u9053\u8def \u53ef\u80fd \u4e0e \u5730\u6807 \u5f53\u524d \u5f71\u54cd \u7684 \u9053\u8def \u4e0d\u540c \u3002 \u8fd9\u79cd \u60c5\u51b5 \u4e3b\u8981 \u53d1\u751f \u5728 \u4e0d\u540c \u8def\u7ebf \u7684 \u9053\u8def \u5206\u53c9 \u5904 \u3002 \u793a\u4f8b \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u4e00\u6761 \u5206\u53c9 \u9053\u8def \u4e2d \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u4f46 \u5b83 \u4f1a \u5f71\u54cd \u6240\u6709 \u53ef\u80fd \u7684 \u8def\u7ebf \u3002 distance ( float - \u7c73 ) \u5730\u6807 \u4e0e \u521b\u5efa \u5bf9\u8c61 \u521b\u5efa\u5bf9\u8c61 \u7684 \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \uff08 \u67e5\u8be2 get _ landmarks \u6216 get _ landmarks _ of _ type \uff09 \u3002 s ( float - \u7c73 ) \u5730\u6807 \u6cbf \u9053\u8def \u51e0\u4f55 \u5f62\u72b6 \u5b9a\u4f4d \u7684 \u8ddd\u79bb road _ id \u3002 t ( float - \u7c73 ) \u5730\u6807 \u8ddd \u9053\u8def \u8fb9\u7f18 \u7684 \u6a2a\u5411 \u8ddd\u79bb road _ id \u3002 id ( str ) OpenDRIVE \u6587\u4ef6 \u4e2d \u5730 \u6807\u7684 \u552f\u4e00 ID \u3002 name ( str ) OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u5730\u6807 \u540d\u79f0 \u3002 is _ dynamic ( bool ) \u6307\u793a \u5730 \u6807\u7684 \u72b6\u6001 \u662f\u5426 \u968f \u65f6\u95f4 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \uff0c \u4f8b\u5982 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 orientation ( carla . LandmarkOrientation - \u7c73 ) \u6307\u793a \u5730\u6807 \u9762\u5411 \u7684 \u8f66\u9053 \u3002 z _ offset ( float - \u7c73 ) \u653e\u7f6e \u5730 \u6807\u7684 \u9ad8\u5ea6 \u3002 country ( str ) \u5b9a\u4e49 \u5730 \u6807\u7684 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \uff08 OpenDRIVE \u9ed8\u8ba4 \u4e3a \u5fb7\u56fd 2017 \uff09 \u3002 type ( str ) \u6839\u636e \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u8f93\u5165 \u8f93\u5165\u5730 \u6807\u7684 \u7c7b\u578b \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 sub _ type ( str ) \u6839\u636e \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u7684 \u5730\u6807 \u5b50 \u7c7b\u578b \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 value ( float ) \u4fe1\u53f7 \u4e2d \u6253\u5370 \u7684 \u503c \uff08 \u4f8b\u5982 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3001 \u6700\u5927 \u91cd\u91cf \u7b49 \uff09 \u3002 unit ( str ) \u5c5e\u6027 value \u7684 \u6d4b\u91cf \u5355\u4f4d \u3002 height ( float - \u7c73 ) \u4fe1\u53f7 \u7684 \u603b \u9ad8\u5ea6 \u3002 width ( float - \u7c73 ) \u4fe1\u53f7 \u7684 \u603b \u5bbd\u5ea6 \u3002 text ( str ) \u4fe1\u53f7 \u4e2d \u7684 \u9644\u52a0 \u6587\u672c \u3002 h _ offset ( float - \u7c73 ) \u4fe1\u53f7 \u76f8\u5bf9 \u4e8e OpenDRIVE \u4e2d s \u5904 road _ id \u5b9a\u4e49 \u7684 \u65b9\u5411 \u504f\u79fb \u3002 pitch ( float - \u7c73 ) \u4fe1\u53f7 \u7684 \u4fef\u4ef0 \u4ef0\u89d2 \u4fef\u4ef0\u89d2 ( Y - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . roll ( float ) \u4fe1\u53f7 \u7684 \u7ffb\u6eda \u89d2 ( X - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . waypoint ( carla . Waypoint ) \u653e\u7f6e \u5728 \u8fdb\u884c \u67e5\u8be2 \u7684 \u8f66\u9053 \u548c \u5730\u6807 s \u5904 \u7684 \u822a\u8def \u70b9 \u3002 \u8fd9\u662f \u5730\u6807 \u6709\u6548 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u822a\u8def \u70b9 \u3002 transform ( carla . Transform ) \u4eff\u771f \u4e2d \u5730 \u6807\u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ lane _ validities ( self ) \u8fd4\u56de \u5730\u6807 \u5f71\u54cd \u7684 \u8f66\u9053 \u3002 \u7531\u4e8e \u53ef\u80fd \u5b58\u5728 \u5730\u6807 \u65e0\u6548 \u7684 \u7279\u5b9a \u8f66\u9053 \uff0c \u56e0\u6b64 \u8fd4\u56de \u7684 \u662f \u5305\u542b \u53d7 \u5f71\u54cd \u7684 lane _ id \u8303\u56f4 \u7684 \u5bf9 \u5217\u8868 \uff1a \u793a\u4f8b \uff1a \u5728 \u6709 5 \u6761 \u8f66\u9053 \u7684 \u9053\u8def \u4e2d \uff0c \u5176\u4e2d 3 \u4e0d\u53d7 \u6761\u4e0d\u53d7 \u5f71\u54cd \uff1a [ ( from _ lane1 , to _ lane2 ) , ( from _ lane4 , to _ lane5 ) ] \u3002 \u8fd4\u56de \uff1a list ( tuple ( int ) ) carla . LandmarkOrientation \u7528\u4e8e \u5b9a\u4e49 \u9053\u8def \u4e2d \u5730\u6807 \u65b9\u5411 \u7684 \u8f85\u52a9 \u7c7b \u3002 \u8be5 \u5b9a\u4e49 \u5e76\u975e \u76f4\u63a5 \u4ece OpenDRIVE \u8f6c\u6362 \u800c \u6765 \uff0c \u800c\u662f \u4e3a\u4e86 \u4fbf\u4e8e \u7406\u89e3 \u800c \u8fdb\u884c \u4e86 \u8f6c\u6362 \u3002 \u5b9e\u4f8b \u53d8\u91cf Positive \u5730\u6807 \u671d\u5411 \u4e0e \u9053\u8def \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u5b9a\u4e49 \u65b9\u5411 \u76f8\u540c \u7684 \u8f66\u8f86 \uff08 OpenDRIVE \u4e2d \u7684 0 \u8f66\u9053 \u548c \u8d1f \u8f66\u9053 \uff09 \u3002 Negative \u5730\u6807 \u671d\u5411 \u4e0e \u9053\u8def \u51e0\u4f55 \u5b9a\u4e49 \u76f8\u53cd \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \uff08 OpenDRIVE \u4e2d \u7684 \u6b63 \u8f66\u9053 \uff09 \u3002 Both \u90fd \u4f1a \u5f71\u54cd \u6cbf \u9053\u8def \u4e24\u4e2a \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 carla . LandmarkType Helper \u7c7b \u5305\u542b OpenDRIVE \u6807\u51c6 \uff08 \u5fb7\u56fd 2017 \uff09 \u4e2d \u9ed8\u8ba4 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u5b9a\u4e49 \u7684 \u4e00\u7ec4 \u5e38\u7528 \u5730\u6807 \u7c7b\u578b \u3002 carla . Landmark \u4e0d \u5f15\u7528 \u6b64\u7c7b \u3002 \u5730\u6807 \u7c7b\u578b \u662f \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u6839\u636e \u6240 \u4f7f\u7528 \u7684 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u7684 \u4e0d\u540c \uff0c \u5176 \u53d8\u5316 \u5f88\u5927 \u53d8\u5316\u5f88\u5927 \u3002 \u6b64\u7c7b \u4ec5 \u901a\u8fc7 \u5c06 \u9ed8\u8ba4 \u96c6\u4e2d \u7684 \u4e00\u4e9b \u6700 \u5e38\u7528 \u7684 \u63cf\u8ff0 \u4e3a \u679a\u4e3e \u6765 \u4f7f \u7ba1\u7406 \u5b83\u4eec \u53d8\u5f97 \u66f4 \u5bb9\u6613 \u3002 \u5b9e\u4f8b \u53d8\u91cf Danger \u7c7b\u578b 101 \u3002 LanesMerging \u7c7b\u578b 121 \u3002 CautionPedestrian \u7c7b\u578b 133 \u3002 CautionBicycle \u7c7b\u578b 138 \u3002 LevelCrossing \u7c7b\u578b 150 \u3002 StopSign \u7c7b\u578b 206 \u3002 YieldSign \u7c7b\u578b 205 \u3002 MandatoryTurnDirection \u7c7b\u578b 209 \u3002 MandatoryLeftRightDirection \u7c7b\u578b 211 \u3002 TwoChoiceTurnDirection \u7c7b\u578b 214 \u3002 Roundabout \u7c7b\u578b 215 \u3002 PassRightLeft \u7c7b\u578b 222 \u3002 AccessForbidden \u7c7b\u578b 250 \u3002 AccessForbiddenMotorvehicles \u7c7b\u578b 251 \u3002 AccessForbiddenTrucks \u7c7b\u578b 253 \u3002 AccessForbiddenBicycle \u7c7b\u578b 254 \u3002 AccessForbiddenWeight \u7c7b\u578b 263 \u3002 AccessForbiddenWidth \u7c7b\u578b 264 \u3002 AccessForbiddenHeight \u7c7b\u578b 265 \u3002 AccessForbiddenWrongDirection \u7c7b\u578b 267 \u3002 ForbiddenUTurn \u7c7b\u578b 272 \u3002 MaximumSpeed \u7c7b\u578b 274 \u3002 ForbiddenOvertakingMotorvehicles \u7c7b\u578b 276 \u3002 ForbiddenOvertakingTrucks \u7c7b\u578b 277 \u3002 AbsoluteNoStop \u7c7b\u578b 283 \u3002 RestrictedStop \u7c7b\u578b 286 \u3002 HasWayNextIntersection \u7c7b\u578b 301 \u3002 PriorityWay \u7c7b\u578b 306 \u3002 PriorityWayEnd \u7c7b\u578b 307 \u3002 CityBegin \u7c7b\u578b 310 \u3002 CityEnd \u7c7b\u578b 311 \u3002 Highway \u7c7b\u578b 330 \u3002 DeadEnd \u7c7b\u578b 357 \u3002 RecomendedSpeed \u7c7b\u578b 380 \u3002 RecomendedSpeedEnd \u7c7b\u578b 381 \u3002 carla . LaneChange \u5b9a\u4e49 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u53cc\u8f6c \u6216 \u4e0d \u8f6c \u7684 \u6743\u9650 \u7684 \u7c7b \uff08 \u610f\u5473 \u610f\u5473\u7740 \u53ea \u5141\u8bb8 \u76f4\u884c \uff09 \u3002 \u6839\u636e OpenDRIVE \u6587\u4ef6 \u4e3a \u6bcf\u4e2a carla . Waypoint \u5b58\u50a8 \u6b64 \u4fe1\u606f \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u8def \u70b9\u6765 \u4e86\u89e3 \u5141\u8bb8 \u54ea\u4e9b \u8f6c\u5f2f \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u4e0d \u5141\u8bb8 \u53f3\u8f6c \u6216 \u5de6\u8f6c \uff0c \u53ea\u80fd \u76f4\u884c \u3002 Right \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5141\u8bb8 \u53f3\u8f6c \u3002 Left \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5141\u8bb8 \u5de6\u8f6c \u3002 Both \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u90fd \u5141\u8bb8 \u53f3\u8f6c \u6216 \u5de6\u8f6c \u3002 carla . LaneInvasionEvent \u4ece carla . SensorData \u7ee7\u627f \u4e3a sensor . other . lane _ invasion \u5b9a\u4e49 \u8f66\u9053 \u5165\u4fb5 \u7684 \u7c7b \u3002 \u5b83 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \uff0c \u5e76 \u4f9d\u8d56 OpenDRIVE \u6765 \u63d0\u4f9b \u53ef\u9760 \u7684 \u4fe1\u606f \u3002 \u6bcf\u6b21 \u53d1\u751f \u8f66\u9053 \u5165\u4fb5 \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u521b\u5efa \u4e00\u4e2a \u8fd9\u6837 \u7684 \u60c5\u51b5 \uff0c \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u53ef\u80fd \u4f1a \u53d1\u751f \u591a\u6b21 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf actor ( carla . Actor ) \u83b7\u53d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u8fde\u63a5 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5373 \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 crossed _ lane _ markings ( list ( carla . LaneMarking ) ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5df2 \u7a7f\u8fc7 \u5e76 \u68c0\u6d4b \u5230 \u7684 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . LaneMarking \u6839\u636e OpenDRIVE 1.4 \u6807\u51c6 \u6536\u96c6 \u6709\u5173 \u8f66\u9053 \u6807\u8bb0 \u7684 \u6240\u6709 \u4fe1\u606f \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf color ( carla . LaneMarkingColor ) \u6807\u8bb0 \u7684 \u5b9e\u9645 \u989c\u8272 \u3002 lane _ change ( carla . LaneChange ) \u8de8\u8d8a \u6240\u8ff0 \u8f66\u9053 \u6807\u8bb0 \u7684 \u6743\u9650 \u3002 type ( carla . LaneMarkingType ) \u8f66\u9053 \u6807\u8bb0 \u7c7b\u578b \u3002 width ( float ) \u6c34\u5e73 \u8f66\u9053 \u6807\u8bb0 \u539a\u5ea6 \u3002 carla . LaneMarkingColor \u6839\u636e OpenDRIVE 1.4 \u5b9a\u4e49 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf Standard \u9ed8\u8ba4 \u4e3a \u767d\u8272 \u3002 Blue Green Red White Yellow Other carla . LaneMarkingType \u5b9a\u4e49 OpenDRIVE 1.4 \u63a5\u53d7 \u7684 \u8f66\u9053 \u6807\u8bb0 \u7c7b\u578b \u7684 \u7c7b \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u70b9 \u6765 \u68c0\u7d22 \u6709\u5173 \u76f8\u90bb \u8f66\u9053 \u6807\u8bb0 \u7684 \u4fe1\u606f \u3002 \u5173\u4e8e \u53cc \u7cbe\u5ea6 \u7c7b\u578b \u7684 \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 \uff1a \u8f66\u9053 \u6807\u8bb0 \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \uff0c \u8be5 \u6807\u51c6 \u786e\u5b9a \u4e00\u6761 \u4e00\u6761\u7ebf \u5c06 \u88ab \u89c6\u4e3a \u201c BrokenSolid \u201d \u6216 \u201c SolidBroken \u201d \u3002 \u6bcf\u6761 \u9053\u8def \u90fd \u6709 \u4e00\u4e2a \u4e2d\u5fc3 \u8f66\u9053 \u6807\u8bb0 \uff0c \u6839\u636e \u8f66\u9053 \u65b9\u5411 \u4ece\u5de6\u5230\u53f3 \u5b9a\u4e49 \u3002 \u5176\u4f59 \u8f66\u9053 \u6807\u8bb0 \u6309 \u4ece \u4e2d\u5fc3 \u8f66\u9053 \u5230 \u6700\u8fd1 \u7684 \u9053\u8def \u5916\u4fa7 \u7684 \u987a\u5e8f \u5b9a\u4e49 \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE Other Broken Solid SolidSolid SolidBroken BrokenSolid BrokenBroken BottsDots Grass Curb carla . LaneType \u5b9a\u4e49 OpenDRIVE 1.4 \u63a5\u53d7 \u7684 \u53ef\u80fd \u901a\u9053 \u7c7b\u578b \u7684 \u7c7b \u3002 \u8be5 \u6807\u51c6 \u5b9a\u4e49 \u4e86 \u9053\u8def \u4fe1\u606f \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u5229\u7528 \u8def\u70b9 \u6765 \u83b7\u53d6 \u5f53\u524d \u548c \u76f8\u90bb \u8f66\u9053 \u7c7b\u578b \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE Driving Stop Shoulder Biking Sidewalk Border Restricted Parking Bidirectional Median Special1 Special2 Special3 RoadWorks Tram Rail Entry Exit OffRamp OnRamp Any \u9664 NONE \u4e4b\u5916 \u7684 \u6240\u6709 \u7c7b\u578b \u3002 carla . LidarDetection carla . LidarMeasurement \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u4ee3\u8868 \u4e91\u4e2d \u7684 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u53ca\u5176 \u4f4d\u7f6e \u548c \u76f8\u5173 \u5f3a\u5ea6 \u3002 \u5b9e\u4f8b \u53d8\u91cf point ( carla . Location - \u7c73 ) xyz \u5750\u6807 \u4e2d \u7684 \u70b9 \u3002 intensity ( float ) \u8ba1\u7b97 \u8be5\u70b9 \u7684 \u5f3a\u5ea6 \u4f5c\u4e3a [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . LidarMeasurement \u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u7531 sensor . lidar . ray _ cast \u68c0\u7d22 \u7684 LIDAR \u6570\u636e \u7684 \u7c7b \u3002 \u8fd9 \u672c\u8d28 \u4e0a \u662f \u4f7f\u7528 \u5149\u7ebf \u6295\u5c04 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf channels ( int ) \u53d1\u5c04 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 horizontal _ angle ( float - radians ) \u6d4b\u91cf \u65f6 LIDAR \u65cb\u8f6c \u7684 \u6c34\u5e73 \u89d2\u5ea6 \u3002 raw _ data ( bytes ) \u63a5\u6536 \u5230 \u7684 4D \u70b9 \u5217\u8868 \u3002 \u6bcf\u4e2a \u70b9 \u7531 [ x , y , z ] \u5750\u6807 \u52a0\u4e0a \u4e3a \u8be5\u70b9 \u8ba1\u7b97 \u7684 \u5f3a\u5ea6 \u7ec4\u6210 \u3002 \u65b9\u6cd5 save _ to _ disk ( self , path ) \u5c06 \u70b9\u4e91 \u4f5c\u4e3a \u63cf\u8ff0 \u6765\u81ea 3D \u626b\u63cf \u626b\u63cf\u4eea \u7684 \u6570\u636e \u7684 . ply \u6587\u4ef6 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u751f\u6210 \u7684 \u6587\u4ef6 \u53ef\u4ee5 \u5728 MeshLab \u4e2d \u4f7f\u7528 \uff0c MeshLab \u662f \u4e00\u4e2a \u7528\u4e8e \u5904\u7406 \u6240\u8ff0 \u6587\u4ef6 \u7684 \u5f00\u6e90 \u7cfb\u7edf \u3002 \u53ea \u9700 \u8003\u8651 \u5230 \u8be5 \u8f74 \u53ef\u80fd \u4e0e \u865a\u5e7b \u5f15\u64ce \u4e0d\u540c \uff0c \u56e0\u6b64 \u9700\u8981 \u91cd\u65b0 \u5206\u914d \u91cd\u65b0\u5206\u914d \u3002 \u53c2\u6570 \uff1a path ( str ) \u83b7\u53d6 \u5668 get _ point _ count ( self , channel ) \u68c0\u7d22 \u7531\u6b64 \u6d4b\u91cf \u751f\u6210 \u7684 \u6309 \u901a\u9053 \u6392\u5e8f \u7684 \u70b9\u6570 \u3002 \u6309 \u901a\u9053 \u6392\u5e8f \u53ef\u4ee5 \u8bc6\u522b \u6bcf\u4e2a \u70b9 \u7684 \u539f\u59cb \u901a\u9053 \u3002 \u53c2\u6570 \uff1a channel ( int ) \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 carla . LidarDetection \u83b7\u53d6 \u7684 \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . LidarDetection ) __ str __ ( self ) carla . Light \u6b64\u7c7b \u516c\u5f00 \u573a\u666f \u4e2d \u5b58\u5728 \u7684 \u706f\u5149 \uff08 \u8f66\u8f86 \u706f\u5149 \u9664\u5916 \uff09 \u3002 \u706f\u5149 \u7684 \u5c5e\u6027 \u53ef\u4ee5 \u968f\u610f \u67e5\u8be2 \u548c \u6539\u53d8 \u3002 \u5f53 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fdb\u5165 \u591c\u95f4 \u6a21\u5f0f \uff08 \u592a\u9633 \u9ad8\u5ea6 \u4f4e\u4e8e \u96f6 \uff09 \u65f6 \uff0c \u706f\u4f1a \u81ea\u52a8 \u6253\u5f00 \u3002 \u5b9e\u4f8b \u53d8\u91cf color ( carla . Color ) \u706f\u5149 \u7684 \u989c\u8272 \u3002 id ( int ) \u706f \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 intensity ( float - lumens ) \u5149 \u7684 \u5f3a\u5ea6 \u3002 is _ on ( bool ) \u706f \u7684 \u5f00\u5173 \u3002 \u5f53\u706f\u4eae \u65f6 \u8fd9 \u662f True \u3002 \u5f53 \u591c\u95f4 \u6a21\u5f0f \u542f\u52a8 \u65f6 \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a True \u3002 location ( carla . Location - \u7c73 ) \u706f\u5149 \u7684 \u4f4d\u7f6e \u3002 light _ group ( carla . LightGroup ) \u706f\u5149 \u6240\u5c5e \u7684 \u7ec4 \u3002 light _ state ( carla . LightState ) \u706f\u5149 \u7684 \u72b6\u6001 \u3002 \u603b\u7ed3 \u5176 \u5c5e\u6027 \u3001 \u7ec4 \u4ee5\u53ca \u662f\u5426 \u6253\u5f00 / \u5173\u95ed \u3002 \u65b9\u6cd5 turn _ off ( self ) \u5173\u95ed \u706f \u3002 turn _ on ( self ) \u6253\u5f00 \u706f \u3002 \u8bbe\u7f6e \u5668 set _ color ( self , color ) \u5c06 \u706f\u5149 \u7684 \u989c\u8272 \u66f4 \u6539\u4e3a color \u3002 \u53c2\u6570 \uff1a color ( carla . Color ) set _ intensity ( self , intensity ) \u5c06\u5149 \u7684 \u5f3a\u5ea6 \u66f4 \u6539\u4e3a intensity \u3002 \u53c2\u6570 \uff1a intensity ( float - lumens ) set _ light _ group ( self , light _ group ) \u5c06 \u706f\u5149 \u66f4 \u6539\u4e3a \u7ec4 light _ group \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) set _ light _ state ( self , light _ state ) \u5c06 \u706f\u5149 \u7684 \u72b6\u6001 \u66f4 \u6539\u4e3a light _ state \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u540c\u65f6 \u66f4\u6539 \u5c5e\u6027 \u3001 \u5206\u7ec4 \u4ee5\u53ca \u6253\u5f00 / \u5173\u95ed \u706f \u3002 \u53c2\u6570 \uff1a light _ state ( carla . LightState ) carla . LightGroup \u6b64\u7c7b \u5c06 \u573a\u666f \u4e2d \u7684 \u706f\u5149 \u5206\u4e3a \u4e0d\u540c \u7684 \u7ec4 \u3002 \u8fd9\u4e9b \u53ef\u7528 \u7ec4 \u4f5c\u4e3a \u53ef \u7528\u4f5c \u6807\u5fd7 \u7684 \u679a\u4e3e \u503c \u63d0\u4f9b \u3002 \u7b14\u8bb0 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u867d\u7136 \u6709 \u4e00\u4e2a vehicle \u7ec4 \uff0c \u4f46 \u8f66\u706f \u8fd8 \u4e0d\u80fd \u7528\u4f5c carla . Light \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u5fc5\u987b \u4f7f\u7528 carla . Vehicle \u548c carla . VehicleLightState \u8fdb\u884c \u7ba1\u7406 \u3002 \u5b9e\u4f8b \u53d8\u91cf None \u6240\u6709 \u706f \u3002 Vehicle Street Building Other carla . LightManager \u6b64\u7c7b \u5904\u7406 \u573a\u666f \u4e2d \u7684 \u706f\u5149 \u3002 \u5b83 \u7684 \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \u662f \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u83b7\u53d6 \u548c \u8bbe\u7f6e \u706f\u5149 \u7ec4 \u6216 \u706f\u5149 \u5217\u8868 \u7684 \u72b6\u6001 \u3002 \u6b64\u7c7b \u7684 \u5b9e\u4f8b \u53ef\u4ee5 \u901a\u8fc7 carla . World . get _ lightmanager ( ) \u68c0\u7d22 \u3002 \u7b14\u8bb0 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u867d\u7136 \u6709 \u4e00\u4e2a vehicle \u7ec4 \uff0c \u4f46 \u8f66\u706f \u8fd8 \u4e0d\u80fd \u7528\u4f5c carla . Light \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u5fc5\u987b \u4f7f\u7528 carla . Vehicle \u548c carla . VehicleLightState \u8fdb\u884c \u7ba1\u7406 \u3002 \u65b9\u6cd5 is _ active ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u5e03\u5c14 \u5e03\u5c14\u503c \uff0c \u8bf4\u660e \u5176\u4e2d \u7684 \u5143\u7d20 lights \u662f\u5426 \u6253\u5f00 / \u5173\u95ed \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( bool ) turn _ off ( self , lights ) \u5173\u95ed lights \u4e2d \u7684 \u6240\u6709 \u706f \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u5173\u95ed \u7684 \u706f \u5217\u8868 \u3002 turn _ on ( self , lights ) \u6253\u5f00 lights \u4e2d \u7684 \u6240\u6709 \u706f \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u6253\u5f00 \u7684 \u706f \u5217\u8868 \u3002 \u83b7\u53d6 \u5668 get _ all _ lights ( self , light _ group = carla . LightGroup . None ) \u8fd4\u56de \u5305\u542b \u7279\u5b9a \u7ec4\u4e2d \u7684 \u706f\u5149 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u7ec4 \u662f None \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) - \u7528\u4e8e \u8fc7\u6ee4 \u8fd4\u56de \u7684 \u706f\u5149 \u7684 \u7ec4 \u3002 \u9ed8\u8ba4 \u4e3a None \u3002 \u8fd4\u56de \uff1a list ( carla . Light ) get _ color ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u989c\u8272 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( carla . Color ) \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ color get _ intensity ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5f3a\u5ea6 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( float ) - lumens \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ intensity get _ light _ group ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u7ec4 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( carla . LightGroup ) \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ light _ group get _ light _ state ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u6240\u6709 \u5c5e\u6027 \u7684 \u72b6\u6001 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 * * \u8fd4\u56de \uff1a * * list ( carla . LightState ) \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ light _ state get _ turned _ off _ lights ( self , light _ group ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u573a\u666f \u4e2d \u5173\u95ed \u7684 \u706f\u5149 \uff08 \u6309\u7ec4 \u8fc7\u6ee4 \uff09 \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( carla . Light ) get _ turned _ on _ lights ( self , light _ group ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u573a\u666f \u4e2d \u6253\u5f00 \u7684 \u706f\u5149 \uff08 \u6309\u7ec4 \u8fc7\u6ee4 \uff09 \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) - List of lights to be queried . \u8fd4\u56de \uff1a list ( carla . Light ) \u8bbe\u7f6e \u5668 set _ active ( self , lights , active ) \u6253\u5f00 / \u5173\u95ed lights \u4e2d \u7684 \u5143\u7d20 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u6253\u5f00 / \u5173\u95ed \u7684 \u706f \u5217\u8868 \u3002 active ( list ( bool ) ) - \u8981 \u5e94\u7528 \u7684 \u5e03\u5c14 \u5e03\u5c14\u503c \u5217\u8868 \u3002 set _ color ( self , lights , color ) lights \u5230 color \u4e2d \u5143\u7d20 \u7684 \u989c\u8272 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 color ( carla . Color ) - \u8981 \u5e94\u7528 \u7684 \u989c\u8272 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ color set _ colors ( self , lights , colors ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u989c\u8272 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 colors \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 colors ( list ( carla . Color ) ) - \u8981 \u5e94\u7528 \u7684 \u989c\u8272 \u5217\u8868 \u3002 set _ day _ night _ cycle ( self , active ) \u6240\u6709 \u573a\u666f \u706f \u90fd \u6709 \u663c\u591c \u5faa\u73af \uff0c \u968f\u7740 \u592a\u9633 \u7684 \u9ad8\u5ea6 \u81ea\u52a8 \u6253\u5f00 \u548c \u5173\u95ed \u3002 \u8fd9\u4f1a \u5e72\u6270 \u9700\u8981 \u5b8c\u5168 \u63a7\u5236 \u573a\u666f \u706f\u5149 \u7684 \u60c5\u51b5 \uff0c \u56e0\u6b64 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a False \u4f1a \u505c\u7528 \u5b83 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a True \u6765 \u91cd\u65b0 \u6fc0\u6d3b \u5b83 \u3002 \u53c2\u6570 \uff1a active ( bool ) - ( \u53d6\u6d88 ) \u6fc0\u6d3b \u663c\u591c \u5faa\u73af \u3002 set _ intensities ( self , lights , intensities ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5f3a\u5ea6 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 intensities \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 intensities ( list ( float ) - lumens ) - \u8981 \u5e94\u7528 \u7684 \u5f3a\u5ea6 \u5217\u8868 \u3002 set _ intensity ( self , lights , intensity ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5f3a\u5ea6 \u6539\u4e3a intensity \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 intensity ( float - lumens ) - \u8981 \u5e94\u7528 \u7684 \u5f3a\u5ea6 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ intensity set _ light _ group ( self , lights , light _ group ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u7ec4 \u66f4 \u6539\u4e3a light _ group \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ group ( carla . LightGroup ) - \u8981 \u5e94\u7528 \u7684 \u7ec4 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ light _ group set _ light _ groups ( self , lights , light _ groups ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u7ec4 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 light _ groups \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ groups ( list ( carla . LightGroup ) ) - \u8981 \u5e94\u7528 \u7684 \u7ec4 \u5217\u8868 \u3002 set _ light _ state ( self , lights , light _ state ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5c5e\u6027 \u72b6\u6001 \u6539\u4e3a light _ state \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ state ( carla . LightState ) - \u8981 \u5e94\u7528 \u7684 \u5c5e\u6027 \u7684 \u72b6\u6001 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ light _ state set _ light _ states ( self , lights , light _ states ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5c5e\u6027 \u72b6\u6001 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 light _ states \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ states ( list ( carla . LightState ) ) - \u8981 \u5e94\u7528 \u7684 \u5c5e\u6027 \u7684 \u72b6\u6001 \u5217\u8868 \u3002 carla . LightState \u8fd9\u4e2a \u7c7b \u4ee3\u8868 \u9664\u4e86 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u4f4d\u7f6e \u4e4b\u5916 \u7684 \u6240\u6709 \u706f\u5149 \u53d8\u91cf \uff0c \u5b83\u4eec \u5e94\u8be5 \u662f \u9759\u6001 \u7684 \u3002 \u4f7f\u7528 \u6b64\u7c7b \u53ef\u4ee5 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u7ba1\u7406 \u706f\u5149 \u7684 \u6240\u6709 \u53c2\u6570 \u5316 \u3002 \u5b9e\u4f8b \u53d8\u91cf intensity ( float - lumens ) \u5149 \u7684 \u5f3a\u5ea6 \u3002 color ( carla . Color ) \u706f\u5149 \u7684 \u989c\u8272 \u3002 group ( carla . LightGroup ) \u706f\u5149 \u6240\u5c5e \u7684 \u7ec4 \u3002 active ( bool ) \u706f \u7684 \u5f00\u5173 \u3002 \u5f53\u706f\u4eae \u65f6 \u4e3a True \u3002 \u65b9\u6cd5 __ init __ ( self , intensity = 0.0 , color = carla . Color ( ) , group = carla . LightGroup . None , active = False ) \u53c2\u6570 \uff1a intensity ( float - lumens ) - \u5149 \u7684 \u5f3a\u5ea6 \u3002 \u9ed8\u8ba4 \u4e3a 0.0 \u3002 color ( carla . Color ) - \u5149 \u7684 \u989c\u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 group ( carla . LightGroup ) - \u706f\u5149 \u6240\u5c5e \u7684 \u7ec4 \u3002 \u9ed8\u8ba4 \u4e3a \u901a\u7528 \u7ec4 None \u3002 active ( bool ) - \u706f\u5149 \u5f00\u5173 \u3002 \u9ed8\u8ba4 \u4e3a False \uff0c \u706f \u5173\u95ed \u3002 carla . Location \u4ece carla . Vector3D \u7ee7\u627f \u4ee3\u8868 \u4e16\u754c \u4e0a \u7684 \u4e00\u4e2a \u5730\u65b9 \u3002 \u5b9e\u4f8b \u53d8\u91cf x ( float - \u7c73 ) X \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 y ( float - \u7c73 ) Y \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 z ( float - \u7c73 ) Z \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 \u65b9\u6cd5 __ init __ ( self , x = 0.0 , y = 0.0 , z = 0.0 ) \u53c2\u6570 \uff1a x ( float ) y ( float ) z ( float ) distance ( self , location ) \u8fd4\u56de \u4ece \u8be5 \u4f4d\u7f6e \u5230 \u53e6 \u4e00 \u4f4d\u7f6e \u7684 \u6b27\u51e0 \u51e0\u91cc \u6b27\u51e0\u91cc\u5f97 \u8ddd\u79bb \u3002 \u53c2\u6570 \uff1a location ( carla . Location ) - \u7528\u4e8e \u8ba1\u7b97 \u8ddd\u79bb \u7684 \u53e6 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u8fd4\u56de \uff1a float - \u7c73 \u9b54\u672f \u65b9\u6cd5 __ abs __ ( self ) \u8fd4\u56de \u5177\u6709 x \u3001 y \u548c z \u5206\u91cf \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u4f4d\u7f6e \u3002 \u8fd4\u56de \uff1a carla . Location __ eq __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u540c \u4e00\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u4e0d\u540c \u540c\u70b9 \u4e0d\u540c\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8f74 \u7684 \u503c \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str carla . Map \u5305\u542b \u9053\u8def \u4fe1\u606f \u548c \u822a\u70b9 \u7ba1\u7406 \u7684 \u7c7b \u3002 \u4ece \u63cf\u8ff0 \u9053\u8def \u7684 OpenDRIVE \u6587\u4ef6 \u4e2d \u68c0\u7d22 \u6570\u636e \u3002 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u67e5\u8be2 \u7cfb\u7edf \uff0c \u5b83 \u4e0e carla . Waypoint \u643a\u624b \u5408\u4f5c \uff0c \u5c06 \u51e0\u4f55 \u4fe1\u606f \u4ece . xodr \u8f6c\u6362 \u4e3a \u81ea\u7136 \u4e16\u754c \u70b9 \u3002 Carla \u76ee\u524d \u6b63\u5728 \u4f7f\u7528 OpenDRIVE 1.4 \u6807\u51c6 \u3002 \u5b9e\u4f8b \u53d8\u91cf name ( str ) \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u5b83 \u5bf9\u5e94 \u4e8e \u4ece Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u52a0\u8f7d \u7684 \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 . umap \uff0c \u7136\u540e \u5f15\u7528 . xodr \u9053\u8def \u63cf\u8ff0 \u3002 \u65b9\u6cd5 __ init __ ( self , name , xodr _ content ) \u6b64\u7c7b \u7684 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u3002 \u5c3d\u7ba1 \u5728 \u521d\u59cb \u521d\u59cb\u5316 \u4e16\u754c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u5730\u56fe \uff0c \u4f46 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5728 \u4e0d \u8fd0\u884c \u4efb\u4f55 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u60c5\u51b5 \u4e0b \u4f7f\u7528 . xodr \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5f53\u524d \u5730\u56fe \u7684 \u540d\u79f0 \u3002 xodr _ content ( str ) - \u5b57\u7b26 \u5b57\u7b26\u4e32 \u683c\u5f0f \u7684 . xodr \u5185\u5bb9 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) cook _ in _ memory _ map ( self , path ) \u4ece Carla \u6620\u5c04 \u751f\u6210 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4f7f\u7528 \u7684 \u4fe1\u606f \u3002 \u6b64 \u65b9\u6cd5 \u4ec5 \u5728 \u5730\u56fe \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f7f\u7528 \u3002 \u53c2\u6570 \uff1a path ( str ) - \u5b58\u50a8 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6620\u5c04 \u6587\u4ef6 \u7684 \u9884\u671f \u4f4d\u7f6e \u7684 \u8def\u5f84 \u3002 generate _ waypoints ( self , distance ) \u8fd4\u56de \u4e00\u4e2a \u8def\u70b9 \u5217\u8868 \uff0c \u6bcf\u4e2a \u8f66\u9053 \u7684 \u8def\u70b9 \u4e4b\u95f4 \u90fd \u6709 \u4e00\u5b9a \u7684 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u5176 \u4e3a \u4e2d\u5fc3 \u3002 \u8def\u70b9 \u4e0d \u6309 \u4efb\u4f55 \u7279\u5b9a \u987a\u5e8f \u5217\u51fa \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u540c\u4e00 \u9053\u8def \u3001 \u8def\u6bb5 \u548c \u8f66\u9053 \u5185 \u8ddd\u79bb \u8d85\u8fc7 2 \u5398\u7c73 \u7684 \u8def \u70b9\u5c06 \u5177\u6709 \u76f8\u540c \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u53c2\u6570 \uff1a distance ( float - \u7c73 ) - \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u8fd1\u4f3c \u8ddd\u79bb \u3002 \u8fd4\u56de \uff1a list ( carla . Waypoint ) save _ to _ disk ( self , path ) \u5c06 \u5f53\u524d \u6620\u5c04 \u7684 . xodr OpenDRIVE \u6587\u4ef6 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u53c2\u6570 \uff1a path - \u4fdd\u5b58 \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 to _ opendrive ( self ) \u4ee5 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \u8fd4\u56de \u5f53\u524d \u5730\u56fe \u7684 . xodr OpenDRIVe \u6587\u4ef6 \u3002 \u8fd4\u56de \uff1a str transform _ to _ geolocation ( self , location ) \u5c06 \u4eff\u771f \u4e2d \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u7684 \u7ed9\u5b9a \u4f4d\u7f6e location \u8f6c\u6362 \u4e3a carla . GeoLocation \uff0c \u4ed6 \u8868\u793a \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u5730\u56fe \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u5728 OpenDRIVE \u6807\u7b7e \u5185 \u5b9a\u4e49 \u3002 \u53c2\u6570 \uff1a location ( carla . Location ) \u8fd4\u56de \uff1a carla . GeoLocation \u83b7\u53d6 \u5668 get _ all _ landmarks ( self ) \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u5230 \u7684 \u5730\u6807 \u6709 \u4e00\u4e2a null \u822a\u8def \u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ from _ id ( self , opendrive _ id ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a OpenDRIVE ID \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a opendrive _ id ( string ) - \u5730 \u6807\u7684 OpenDRIVE ID \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ of _ type ( self , type ) \u8fd4\u56de \u7279\u5b9a \u7c7b\u578b \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a type ( string ) - \u5730 \u6807\u7684 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ crosswalks ( self ) \u4ee5 \u95ed\u5408 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u5f62\u5f0f \u8fd4\u56de \u5305\u542b \u6240\u6709 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u533a\u57df \u7684 \u4f4d\u7f6e \u5217\u8868 \u3002 \u91cd\u590d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u70b9 \uff0c \u8868\u793a \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ landmark _ group ( self , landmark ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u5730\u6807 \uff08 \u5305\u62ec \u5176 \u81ea\u8eab \uff09 \u4f4d\u4e8e \u540c \u4e00\u7ec4 \u4e2d \u7684 \u5730\u6807 \u3002 \u5982\u679c \u5730\u6807 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u7ec4 \uff0c \u5219 \u8fd4\u56de \u7a7a \u5217\u8868 \u3002 \u53c2\u6570 \uff1a landmark ( carla . Landmark ) - \u5c5e\u4e8e \u8be5\u7ec4 \u7684 \u5730\u6807 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ spawn _ points ( self ) \u8fd4\u56de \u5730\u56fe \u521b\u5efa \u521b\u5efa\u8005 \u63d0\u51fa \u7684 \u5efa\u8bae \u5217\u8868 \uff0c \u4ee5 \u7528\u4f5c \u8f66\u8f86 \u7684 \u751f\u6210 \u70b9 \u3002 \u8be5 \u5217\u8868 \u5305\u62ec \u5177\u6709 \u7279\u5b9a \u4f4d\u7f6e \u548c \u65b9\u5411 \u7684 carla . Transform \u5bf9\u8c61 \u3002 \u4e3a\u4e86 \u907f\u514d Z \u578b \u78b0\u649e \uff0c \u4e0a\u8ff0 \u5730\u70b9 \u4f1a \u7a0d\u5fae \u5728 \u7a7a\u4e2d \uff0c \u56e0\u6b64 \u8f66\u8f86 \u5728 \u51fa\u53d1 \u524d\u4f1a \u7a0d\u5fae \u4e0b\u5760 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) get _ topology ( self ) \u8fd4\u56de \u63cf\u8ff0 OpenDRIVE \u6587\u4ef6 \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \u7684 \u5143\u7ec4 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5143\u7ec4 \u5305\u542b \u4f4d\u4e8e \u9053\u8def \u8d77\u70b9 \u6216 \u7ec8\u70b9 \u7684 \u6210 \u5bf9 \u8def\u70b9 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u8d77\u70b9 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u4ee3\u8868 \u53e6 \u4e00\u4e2a \u53ef\u4ee5 \u5230\u8fbe \u7684 \u8def \u7ec8\u70b9 \u3002 \u8be5\u56fe \u53ef\u4ee5 \u52a0\u8f7d \u5230 NetworkX \u4e2d \u8fdb\u884c \u4f7f\u7528 \u3002 \u8f93\u51fa \u53ef\u80fd \u5982\u4e0b \u6240\u793a \uff1a [ ( w0 , w1 ) , ( w0 , w2 ) , ( w1 , w3 ) , ( w2 , w3 ) , ( w0 , w4 ) ] \u3002 \u8fd4\u56de \uff1a list ( tuple ( carla . Waypoint , carla . Waypoint ) ) get _ waypoint ( self , location , project _ to _ road = True , lane _ type = carla . LaneType . Driving ) snippet \u2192 \u8fd4\u56de \u53ef\u4ee5 \u4f4d\u4e8e \u7cbe\u786e \u4f4d\u7f6e \u6216 \u8f6c\u6362 \u5230 \u6700\u8fd1 \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u822a\u8def \u70b9 \u3002 \u6240\u8ff0 \u8f66\u9053 \u7c7b\u578b \u53ef\u4ee5 \u4f7f\u7528 \u8bf8\u5982 LaneType . Driving & LaneType . Shoulder \u7684 \u6807\u5fd7 \u6765 \u5b9a\u4e49 \u3002 \u5982\u679c \u627e\u5230 \u672a\u627e\u5230 \u822a\u8def \u70b9 \uff0c \u8be5 \u65b9\u6cd5 \u5c06 \u8fd4\u56de None \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4ec5 \u5728 \u5c1d\u8bd5 \u68c0\u7d22 \u786e\u5207 \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9\u65f6 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8fd9 \u53ef\u4ee5 \u8f7b\u677e \u68c0\u67e5 \u67d0\u4e2a \u70b9 \u662f\u5426 \u5728 \u67d0\u6761 \u9053\u8def \u5185 \uff0c \u5426\u5219 \uff0c \u5b83 \u5c06 \u8fd4\u56de \u76f8\u5e94 \u7684 \u8def\u5f84 \u70b9 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u7528\u4f5c carla . Waypoint \u53c2\u8003 \u7684 \u4efb\u52a1 \u3002 project _ to _ road ( bool ) - \u5982\u679c \u662f True \uff0c \u8def\u5f84 \u70b9\u5c06 \u4f4d\u4e8e \u6700\u8fd1 \u8f66\u9053 \u7684 \u4e2d\u5fc3 \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u5982\u679c \u4e3a False \uff0c \u8def\u5f84 \u70b9\u5c06 \u6070\u597d \u4f4d\u4e8e location \u3002 None \u8868\u793a \u8be5 \u4f4d\u7f6e \u4e0d \u5c5e\u4e8e \u9053\u8def \u3002 lane _ type ( carla . LaneType ) - \u5c06 \u5bf9 \u6700\u8fd1 \u8f66\u9053 \u7684 \u641c\u7d22 \u9650\u5236 \u4e3a \u53ef\u4ee5 \u6807\u8bb0 \u7684 \u4e00\u79cd \u6216 \u591a\u79cd \u8f66\u9053 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a carla . Waypoint get _ waypoint _ xodr ( self , road _ id , lane _ id , s ) \u5982\u679c \u4f20\u9012 \u7684 \u6240\u6709 \u53c2\u6570 \u90fd \u6b63\u786e \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5426\u5219 \uff0c \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a road _ id ( int ) - \u83b7\u53d6 \u8def\u70b9 \u7684 \u9053\u8def id \u3002 lane _ id ( int ) - \u83b7\u53d6 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 id \u3002 s ( float - \u7c73 ) - \u6307\u5b9a \u4ece \u9053\u8def \u8d77\u70b9 \u5f00\u59cb \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Waypoint \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . MapLayer \u8868\u793a \u5730\u56fe \u7684 \u6bcf\u4e2a \u53ef \u7ba1\u7406 \u7ba1\u7406\u5c42 \u7684 \u7c7b \u3002 \u53ef\u4ee5 \u7528\u4f5c \u6807\u5fd7 \u3002 \u8b66\u544a \uff1a \u53ea\u6709 \u201c Opt \u201d \u5730\u56fe \u624d\u80fd \u4f7f\u7528 \u5730\u56fe \u56fe\u5c42 \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE \u672a \u9009\u62e9 \u4efb\u4f55 \u56fe\u5c42 \u3002 Buildings Decals Foliage Ground ParkedVehicles Particles Props StreetLights Walls All \u9009\u5b9a \u6240\u6709 \u56fe\u5c42 \u3002 carla . MaterialParameter \u8868\u793a \u6750\u6599 \u53c2\u6570 \u7684 \u7c7b \u3002 \u5e76\u975e \u573a\u666f \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u90fd \u5305\u542b \u6240\u6709 \u53c2\u6570 \u3002 \u5b9e\u4f8b \u53d8\u91cf Normal \u5bf9\u8c61 \u7684 \u6cd5\u7ebf \u8d34\u56fe \u3002 \u5b58\u5728 \u4e8e \u4e00\u5207 \u7269\u4f53 \u4e2d \u3002 Diffuse \u7269\u4f53 \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7eb9\u7406 \u3002 \u5b58\u5728 \u4e8e \u4e00\u5207 \u7269\u4f53 \u4e2d \u3002 AO _ Roughness _ Metallic _ Emissive \u6bcf\u4e2a \u989c\u8272 \u901a\u9053 \u4ee3\u8868 \u6750\u8d28 \u5c5e\u6027 \u7684 \u7eb9\u7406 \uff08 R \uff1a \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \uff0c G \uff1a \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff0c B \uff1a \u91d1\u5c5e \uff0c A \uff1a \u67d0\u4e9b \u7269\u4f53 \u4e2d \u7684 \u53d1\u5c04 / \u9ad8\u5ea6 \u8d34\u56fe \uff09 \u3002 Emissive \u53d1\u5c04 \u7eb9\u7406 \u3002 \u5b58\u5728 \u4e8e \u4e00\u4e9b \u7269\u4f53 \u4e2d \u3002 carla . ObstacleDetectionEvent \u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 sensor . other . obstacle \u969c\u788d \u969c\u788d\u7269 \u6570\u636e \u7684 \u7c7b \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf actor ( carla . Actor ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u8fde\u63a5 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 other _ actor ( carla . Actor ) \u88ab \u89c6\u4e3a \u969c\u788d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u7269\u4f53 \u3002 distance ( float - \u7c73 ) \u53c2\u4e0e \u53c2\u4e0e\u8005 actor \u548c \u5176\u4ed6 \u4ed6\u4eba \u5176\u4ed6\u4eba other \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . OpendriveGenerationParameters \u6b64\u7c7b \u5b9a\u4e49 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u751f\u6210 \u4e16\u754c \u65f6 \u4f7f\u7528 \u7684 \u53c2\u6570 \u3002 \u5b9e\u4f8b \u53d8\u91cf vertex _ distance ( float ) \u751f\u6210 \u7684 \u7f51\u683c \u9876\u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2.0 \u3002 max _ road _ length ( float ) \u5355\u4e2a \u7f51\u683c \u90e8\u5206 \u7684 \u6700\u5927 \u9053\u8def \u957f\u5ea6 \u3002 \u5730\u56fe \u7684 \u7f51\u683c \u88ab \u5206\u4e3a \u591a\u4e2a \u90e8\u5206 \uff0c \u4ee5 \u907f\u514d \u4f20\u64ad \u95ee\u9898 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 50.0 \u3002 wall _ height ( float ) \u5728 \u9053\u8def \u8fb9\u754c \u4e0a \u521b\u5efa \u7684 \u5899\u58c1 \u7684 \u9ad8\u5ea6 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u4ece \u9053\u8def \u4e0a \u4e0b\u6765 \u6389\u4e0b\u6765 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 1.0 \u3002 additional _ width ( float ) \u53e6\u5916 \u8fd8\u6709 \u5e94\u7528 \u7684 \u8fde\u63a5 \u8f66\u9053 \u3002 \u590d\u6742 \u7684 \u60c5\u51b5 \u5f80\u5f80 \u53d1\u751f \u5728 \u8def\u53e3 \uff0c \u7a0d\u5fae \u589e\u52a0 \u4e00\u70b9 \u5c31 \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u5760\u843d \u8def\u9762 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.6 \u3002 smooth _ junctions ( bool ) \u5982\u679c \u4e3a True \uff0c \u4ea4\u53c9 \u4ea4\u53c9\u70b9 \u5904 \u7684 \u7f51\u683c \u5c06 \u88ab \u5e73\u6ed1 \uff0c \u4ee5 \u9632\u6b62 \u9053\u8def \u963b\u585e \u5176\u4ed6 \u9053\u8def \u7684 \u95ee\u9898 \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 enable _ mesh _ visibility ( bool ) \u5982\u679c \u4e3a True \uff0c \u5c06 \u6e32\u67d3 \u9053\u8def \u7f51\u683c \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a False \u5e94\u8be5 \u4f1a \u51cf\u5c11 \u6e32\u67d3 \u5f00\u9500 \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 enable _ pedestrian _ navigation ( bool ) \u5982\u679c \u4e3a True \uff0c \u5c06 \u4f7f\u7528 Recast \u5de5\u5177 \u542f\u7528 \u884c\u4eba \u5bfc\u822a \u3002 \u5bf9\u4e8e \u975e\u5e38 \u5927 \u7684 \u5730\u56fe \uff0c \u5efa\u8bae \u7981\u7528 \u6b64 \u9009\u9879 \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 carla . OpticalFlowImage \u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u8868\u793a \u89c6\u573a \u4e2d \u68c0\u6d4b \u5230 \u7684 \u5149\u6d41 \u7684 \u4e8c\u7ef4 \u6d6e\u70b9 \uff08 32 \u4f4d \uff09 \u5411\u91cf \u7684 \u5149\u6d41 \u56fe\u50cf \u7684 \u7c7b \u3002 \u77e2\u91cf \u7684 \u5206\u91cf \u8868\u793a \u7269\u4f53 \u5728 \u56fe\u50cf \u5e73\u9762 \u4e2d \u7684 \u4f4d\u79fb \u3002 \u6bcf\u4e2a \u7ec4\u4ef6 \u8f93\u51fa \u5f52\u4e00\u5316 \u8303\u56f4 [ - 2 , 2 ] \u5185 \u7684 \u503c \uff0c \u8be5 \u8303\u56f4 \u7f29\u653e \u4e3a [ - 2 size \uff0c 2 size ] \uff0c \u5927\u5c0f \u662f \u76f8\u5e94 \u7ec4\u4ef6 \u4e2d \u7684 \u603b \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u3002 \u5b9e\u4f8b \u53d8\u91cf fov ( float - \u5ea6 ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( bytes ) \u5c55\u5e73 \u50cf\u7d20 \u6570\u636e \u6570\u7ec4 \uff0c \u4f7f\u7528 reshape \u521b\u5efa \u56fe\u50cf \u6570\u7ec4 \u3002 \u65b9\u6cd5 \u83b7\u53d6 \u5668 get _ color _ coded _ flow ( self ) \u53ef\u89c6 \u53ef\u89c6\u5316 \u52a9\u624b \u3002 \u5c06 \u5149\u6d41 \u56fe\u50cf \u8f6c\u6362 \u4e3a RGB \u56fe\u50cf \u3002 \u8fd4\u56de \uff1a carla . Image \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) \u8fed\u4ee3 \u5f62\u6210 \u56fe\u50cf \u7684 carla . OpticalFlowPixel \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self ) carla . OpticalFlowPixel \u5b9a\u4e49 \u8868\u793a \u5149\u6d41 \u50cf\u7d20 \u7684 \u4e8c\u7ef4 \u5411\u91cf \u7684 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf x ( float ) x \u5206\u91cf \u4e2d \u7684 \u5149\u6d41 \u3002 y ( float ) y \u5206\u91cf \u4e2d \u7684 \u5149\u6d41 \u3002 \u65b9\u6cd5 __ init __ ( self , x = 0 , y = 0 ) \u521d\u59cb \u521d\u59cb\u5316 \u5149\u6d41 \u50cf\u7d20 \u3002 \u9ed8\u8ba4 \u4e3a \u96f6 \u3002 \u53c2\u6570 \uff1a x ( float ) y ( float ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . OpticalFlowPixel ) __ ne __ ( self , other = carla . OpticalFlowPixel ) __ str __ ( self ) carla . Osm2Odr \u5c06 OpenStreetMap \u5730\u56fe \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u7684 \u7c7b \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u4e2d \u52a0\u8f7d \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u65b9\u6cd5 convert ( osm _ file , settings ) \u83b7\u53d6 . osm \u6587\u4ef6 \uff08 OpenStreetMap \u683c\u5f0f \uff09 \u7684 \u5185\u5bb9 \u5e76 \u8fd4\u56de \u63cf\u8ff0 \u6240\u8ff0 \u5730\u56fe \u7684 . xodr \uff08 OpenDRIVE \u683c\u5f0f \uff09 \u7684 \u5185\u5bb9 \u3002 \u4f20\u9012 \u4e00\u4e9b \u53c2\u6570 \u5316\u6765 \u8fdb\u884c \u8f6c\u6362 \u3002 \u53c2\u6570 \uff1a osm _ file ( str ) - \u8f93\u5165 OpenStreetMap \u6587\u4ef6 \u7684 \u5185\u5bb9 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 settings ( carla . OSM2ODRSettings ) - \u8f6c\u6362 \u7684 \u53c2\u6570 \u5316 \u3002 \u8fd4\u56de \uff1a str carla . Osm2OdrSettings \u5305\u542b carla . Osm2Odr \u5c06 \u4f7f\u7528 \u7684 \u53c2\u6570 \u5316 \u7684 \u5e2e\u52a9 \u7a0b\u5e8f \u7c7b \uff0c \u7528\u4e8e \u5c06 OpenStreetMap \u5730\u56fe \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf use _ offsets ( bool ) \u5141\u8bb8 \u4f7f\u7528 \u504f\u79fb \u504f\u79fb\u91cf \u8fdb\u884c \u8f6c\u6362 \u3002 \u504f\u79fb \u504f\u79fb\u91cf \u5c06 \u79fb\u52a8 \u5730\u56fe \u7684 \u539f\u70b9 \u4f4d\u7f6e \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a False \u3002 offset _ x ( float - \u7c73 ) X \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 offset _ y ( float - \u7c73 ) Y \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 default _ lane _ width ( float - \u7c73 ) \u751f\u6210 \u7684 XODR \u5730\u56fe \u4e2d \u63cf\u8ff0 \u7684 \u8f66\u9053 \u5bbd\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 4.0 \u3002 elevation _ layer _ height ( float - \u7c73 ) \u5b9a\u4e49 \u5206\u9694 \u4e24\u4e2a \u4e0d\u540c OpenStreetMap \u56fe\u5c42 \u7684 \u9ad8\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 center _ map ( bool ) \u542f\u7528 \u6b64 \u9009\u9879 \u540e \uff0c \u5730\u56fe \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u5c06 \u53d1\u751f \u4f4d\u79fb \uff0c \u4ee5 \u4f7f \u5750\u6807 \u539f\u70b9 \u4e0e \u6574\u4e2a \u9053\u8def \u5730\u56fe \u7684 \u8fb9\u754c \u6846 \u4e2d\u5fc3 \u5339\u914d \u76f8\u5339\u914d \u3002 proj _ string ( str ) \u5b9a\u4e49 \u5c06 \u7528\u4e8e \u8ba1\u7b97 \u4ece \u5730\u7406 \u5750\u6807 \u5730\u7406\u5750\u6807 \u5230 \u5361\u5c14 \u7b1b\u5361\u5c14 \u5750\u6807 \u7684 \u6295\u5f71 \u7684 proj4 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8be5 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5c06 \u5199\u5165 \u751f\u6210 \u7684 OpenDRIVE \u4e2d \uff0c \u9664\u975e \u542f\u7528 \u4e86 use _ offsets \u6216 center _ map \u9009\u9879 \uff0c \u56e0\u4e3a \u8fd9\u4e9b \u9009\u9879 \u4f1a \u8986\u76d6 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u4e2d \u7684 \u67d0\u4e9b \u5b9a\u4e49 \u3002 generate _ traffic _ lights ( bool ) \u6307\u793a \u662f\u5426 \u5728 OpenDRIVE \u4e2d \u751f\u6210 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6570\u636e \u3002 set _ traffic _ light _ excluded _ way _ types ( way _ types ) \u5b9a\u4e49 \u7684 \u9053\u8def \u7c7b\u578b \u4e0d\u4f1a \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 all _ junctions _ with _ traffic _ lights ( bool ) \u7981\u7528 \u65f6 \uff0c \u8f6c\u6362 \u8f6c\u6362\u5668 \u5c06 \u4ec5 \u4ece OpenStreetMaps \u6570\u636e \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u3002 \u542f\u7528 \u540e \uff0c \u6240\u6709 \u8def\u53e3 \u90fd \u4f1a \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 \u65b9\u6cd5 \u8bbe\u7f6e \u5668 set _ osm _ way _ types ( self , way _ types ) \u5b9a\u4e49 \u5c06 \u5bfc\u5165 \u5bfc\u5165\u5230 OpenDRIVE \u7684 OpenStreetMaps \u9053\u8def \u7c7b\u578b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5bfc\u5165 \u7684 \u9053\u8def \u7c7b\u578b \u4e3a motorway , motorway _ link , trunk , trunk _ link , primary , primary _ link , secondary , secondary _ link , tertiary , tertiary _ link , unclassified , residential \u3002 \u6709\u5173 \u9053\u8def \u7c7b\u578b \u7684 \u5b8c\u6574 \u5217\u8868 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u53c2\u6570 \uff1a way _ types ( list ( str ) ) - \u9053\u8def \u7c7b\u578b \u5217\u8868 \u3002 set _ traffic _ light _ excluded _ way _ types ( self , way _ types ) \u5b9a\u4e49 \u5373\u4f7f \u542f\u7528 generate _ traffic _ lights \u4e5f \u4e0d\u4f1a \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 OpenStreetMaps \u9053\u8def \u7c7b\u578b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6392\u9664 \u7684 \u9053\u8def \u7c7b\u578b \u4e3a motorway _ link , primary _ link , secondary _ link , tertiary _ link \u3002 \u53c2\u6570 \uff1a way _ types ( list ( str ) ) - \u9053\u8def \u7c7b\u578b \u5217\u8868 \u3002 carla . RadarDetection carla . RadarMeasurement \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u4ee3\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 . sensor . other . radar \u8bb0\u5f55 \u7684 \u4e91\u4e2d \u7684 \u70b9 \u4e4b\u4e00 \uff0c \u5e76 \u5305\u542b \u4e0e \u96f7\u8fbe \u76f8\u5173 \u7684 \u8ddd\u79bb \u3001 \u89d2\u5ea6 \u548c \u901f\u5ea6 \u3002 \u5b9e\u4f8b \u53d8\u91cf altitude ( float - radians ) Altitude angle of the detection . azimuth ( float - radians ) Azimuth angle of the detection . depth ( float - \u7c73 ) Distance from the sensor to the detection position . velocity ( float - m / s ) The velocity of the detected object towards the sensor . \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . RadarMeasurement \u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u5e76 \u6536\u96c6 \u7531 sensor . other . radar \u6ce8\u518c \u7684 \u6d4b\u91cf \u503c \u7684 \u7c7b \uff0c \u4ee3\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u524d\u9762 \u7684 \u70b9 \u5899 \u4ee5\u53ca \u4e0e\u5176 \u76f8\u5173 \u7684 \u8ddd\u79bb \u3001 \u89d2\u5ea6 \u548c \u901f\u5ea6 \u3002 \u6570\u636e \u7531 carla . RadarDetection \u6570\u7ec4 \u7ec4\u6210 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf raw _ data ( bytes ) carla . RadarDetection \u96f7\u8fbe \u7684 \u5b8c\u6210 \u4fe1\u606f \u5df2\u7ecf \u88ab \u6ce8\u518c \u3002 \u65b9\u6cd5 \u8bbe\u7f6e \u5668 get _ detection _ count ( self ) \u68c0\u7d22 \u751f\u6210 \u7684 \u6761\u76ee \u6570 \uff0c \u4e0e __ str __ ( ) \u76f8\u540c \u3002 \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u83b7\u53d6 \u7684 \u6570\u636e carla . RadarDetection \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . RadarDetection ) __ str __ ( self ) carla . Rotation \u8868\u793a 3D \u65cb\u8f6c \u4ee5\u53ca \u7a7a\u95f4 \u65b9\u5411 \u7684 \u7c7b \u3002 Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u8fd9\u662f Z \u5411\u4e0a \u5de6\u624b \u7cfb\u7edf \u3002 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u65b9\u6cd5 \u9075\u5faa \u7279\u5b9a \u7684 \u58f0\u660e \u987a\u5e8f \uff1a ( pitch , yaw , roll ) \u5bf9\u5e94 \u4e8e ( Y - rotation , Z - rotation , X - rotation ) . \u865a\u5e7b \u5f15\u64ce \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u5b9e\u4f8b \u53d8\u91cf pitch ( float - \u5ea6 ) Y - \u8f74 \u65cb\u8f6c \u89d2\u5ea6 \u3002 yaw ( float - \u5ea6 ) Z - \u8f74 \u65cb\u8f6c \u89d2\u5ea6 \u3002 roll ( float - \u5ea6 ) X - \u8f74 \u65cb\u8f6c \u89d2\u5ea6 \u3002 \u65b9\u6cd5 __ init __ ( self , pitch = 0.0 , yaw = 0.0 , roll = 0.0 ) \u53c2\u6570 \uff1a pitch ( float - \u5ea6 ) - Y - axis rotation angle . yaw ( float - \u5ea6 ) - Z - axis rotation angle . roll ( float - \u5ea6 ) - X - axis rotation angle . \u8b66\u544a \uff1a CARLA ( pitch , yaw , roll ) \u548c \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u58f0\u660e \u987a\u5e8f \u4e0d\u540c \u3002 \u5f53 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u65f6 \uff0c \u4e0d\u8981 \u6df7\u6dc6 \u8f74 \u7684 \u65cb\u8f6c \u3002 \u8bbe\u7f6e \u5668 get _ forward _ vector ( self ) \u6839\u636e \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u6307\u5411 \u524d\u65b9 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D get _ right _ vector ( self ) \u6839\u636e \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u6307\u5411 \u53f3\u4fa7 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D get _ up _ vector ( self ) \u6839\u636e \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u6307\u5411 \u4e0a\u65b9 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . Rotation ) \u5982\u679c \u4e24\u4e2a \u65cb\u8f6c \u4ee3\u8868 \u6bcf\u4e2a \u8f74 \u7684 \u76f8\u540c \u65b9\u5411 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . Rotation ) \u5982\u679c \u4e24\u4e2a \u65cb\u8f6c \u4ee3\u8868 \u6bcf\u4e2a \u8f74 \u7684 \u76f8\u540c \u65b9\u5411 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8f74 \u7684 \u65b9\u5411 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 carla . RssActorConstellationData \u7531 RssSensor . register _ actor _ constellation _ callback ( ) \u6ce8\u518c \u7684 \u56de\u8c03 \u4e2d \u63d0\u4f9b \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u5b9e\u4f8b \u53d8\u91cf ego _ match _ object ( ad . map . match . Object ) \u81ea\u6211 \u6620\u5c04 \u5339\u914d \u4fe1\u606f \u3002 ego _ route ( ad . map . route . FullRoute ) \u81ea\u6211 \u8def\u7531 \u3002 ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u6001 \u3002 other _ match _ object ( ad . map . match . Object ) \u5176\u4ed6 \u5bf9\u8c61 \u7684 \u5730\u56fe \u5339\u914d \u4fe1\u606f \u3002 \u4ec5\u5f53 \u201c other _ actor \u201d \u4e0d\u662f \u201c None \u201d \u65f6 \u8fd9 \u624d \u6709\u6548 \u3002 other _ actor ( carla . Actor ) \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u67e5\u8be2 \u9ed8\u8ba4 \u53c2\u6570 \u6216 \u7c7b\u578b \u4e3a ad . rss . world . ObjectType . ArtificialObject \u4e14 \u6ca1\u6709 \u4e13\u7528 \u201c carla . Actor ' ( as e . g . for the road boundaries \u201d \u7684 \u4eba\u5de5 \u5bf9\u8c61 \uff08 \u4f8b\u5982 \u76ee\u524d \u7684 \u9053\u8def \u8fb9\u754c \uff09 \uff0c \u5219 \u4e3a \u201c None \u201d \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . RssActorConstellationResult \u5e94\u8be5 \u7531 RssSensor . register _ actor _ constellation _ callback ( ) \u6ce8\u518c \u7684 \u56de\u8c03 \u8fd4\u56de \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u5b9e\u4f8b \u53d8\u91cf rss _ calculation _ mode ( ad . rss . map . RssMode ) \u8981 \u5e94\u7528 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8ba1\u7b97 \u6a21\u5f0f \u3002 restrict _ speed _ limit _ mode ( ad . rss . map . RestrictSpeedLimitMode ) \u9650\u901f \u6a21\u5f0f \u3002 ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) \u5c06 RSS \u52a8\u6001 \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u3002 actor _ object _ type ( ad . rss . world . ObjectType ) \u8981 \u7528\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 RSS \u5bf9\u8c61 \u7c7b\u578b \u3002 actor _ dynamics ( ad . rss . world . RssDynamics ) \u8981 \u5e94\u7528 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 RSS \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . RssEgoDynamicsOnRoute \u63cf\u8ff0 \u8f66\u8f86 \u72b6\u6001 \u7684 carla . RssResponse \u4e2d \u5305\u542b \u7684 \u90e8\u5206 \u6570\u636e \u3002 \u53c2\u6570 \u5305\u62ec \u5b83 \u5f53\u524d \u7684 \u52a8\u6001 \uff0c \u4ee5\u53ca \u5b83 \u5982\u4f55 \u6839\u636e \u76ee\u6807 \u8def\u7ebf \u524d\u8fdb \u3002 \u5b9e\u4f8b \u53d8\u91cf ego _ speed ( ad . physics . Speed ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u3002 min _ stopping _ distance ( ad . physics . Distance ) \u5f53\u524d \u6700\u5c0f \u505c\u8f66 \u8ddd\u79bb \u3002 ego _ center ( ad . map . point . ENUPoint ) \u81ea\u6211 \u8f66\u8f86 \u88ab \u8003\u8651 \u7684 enu \u4f4d\u7f6e \u3002 ego _ heading ( ad . map . point . ENUHeading ) \u8003\u8651 \u7684 \u81ea\u6211 \u8f66\u8f86 \u7684 \u822a\u5411 \u3002 ego _ center _ within _ route ( bool ) \u8bf4\u660e \u81ea\u6211 \u8f66\u8f86 \u7684 \u4e2d\u5fc3 \u662f\u5426 \u5728 \u8def\u7ebf \u5185 \u3002 crossing _ border ( bool ) \u8bf4\u660e \u8f66\u8f86 \u662f\u5426 \u5df2\u7ecf \u8d8a\u8fc7 \u5176\u4e2d \u4e00\u4e2a \u8f66\u9053 \u8fb9\u754c \u3002 route _ heading ( ad . map . point . ENUHeading ) \u8def\u7ebf \u7684 \u8003\u8651 \u65b9\u5411 \u3002 route _ nominal _ center ( ad . map . point . ENUPoint ) \u5f53\u524d \u8def\u7ebf \u7684 \u540d\u4e49 \u4e2d\u5fc3 \u3002 heading _ diff ( ad . map . point . ENUHeading ) \u88ab \u8003\u8651 \u7684 \u65b9\u5411 \u504f\u79bb \u4e86 \u8def\u7ebf \u3002 route _ speed _ lat ( ad . physics . Speed ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u5206\u91cf lat \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 route _ speed _ lon ( ad . physics . Speed ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u5206\u91cf lon \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 route _ accel _ lat ( ad . physics . Acceleration ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lat \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 route _ accel _ lon ( ad . physics . Acceleration ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lon \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 avg _ route _ accel _ lat ( ad . physics . Acceleration ) \u81ea\u6211 \u8f66 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lat \u4e0e \u7ecf\u8fc7 \u5e73\u5747 \u6ee4\u6ce2 \u5e73\u6ed1 \u7684 \u8def\u7ebf \u6709\u5173 \u3002 The ego vehicle ' s acceleration component lat regarding the route smoothened by an average filter . avg _ route _ accel _ lon ( ad . physics . Acceleration ) \u5bf9 \u7ecf\u8fc7 \u5e73\u5747 \u6ee4\u6ce2 \u5e73\u6ed1 \u7684 \u8def\u7ebf \u8fdb\u884c \u81ea \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lon \u5206\u6790 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . RssLogLevel \u679a\u4e3e \u58f0\u660e \u4e2d \u4f7f\u7528 \u7684 carla . RssSensor \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 \u5b9e\u4f8b \u53d8\u91cf trace debug info warn err critical off carla . RssResponse \u4ece carla . SensorData \u7ee7\u627f \u5305\u542b c carla . RssSensor \u8f93\u51fa \u7684 \u7c7b \u3002 \u8fd9 \u662f \u5bf9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236 \u8f66\u8f86 \u6267\u884c \u7684 RSS \u8ba1\u7b97 \u7684 \u7ed3\u679c \u3002 carla . RssRestrictor \u5c06 \u4f7f\u7528 \u6570\u636e \u4fee\u6539 \u8f66\u8f86 \u7684 carla . VehicleControl \u3002 \u5b9e\u4f8b \u53d8\u91cf response _ valid ( bool ) \u8bf4\u660e \u54cd\u5e94 \u662f\u5426 \u6709\u6548 \u3002 \u5982\u679c \u8ba1\u7b97 \u5931\u8d25 \u6216 \u53d1\u751f \u5f02\u5e38 \uff0c \u5219 \u4e3a False \u3002 proper _ response ( ad . rss . state . ProperResponse ) RSS \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \u3002 rss _ state _ snapshot ( ad . rss . state . RssStateSnapshot ) \u8be6\u7ec6 \u7684 RSS \u5728 \u5f53\u524d \u65f6\u523b \u7684 \u72b6\u6001 \u3002 ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002 world _ model ( ad . rss . world . WorldModel ) \u7528\u4e8e \u8ba1\u7b97 \u7684 \u4e16\u754c \u6a21\u578b \u3002 situation _ snapshot ( ad . rss . situation . SituationSnapshot ) \u4ece \u4e16\u754c \u6a21\u578b \u4e2d \u63d0\u53d6 \u7684 \u8be6\u7ec6 RSS \u60c5\u51b5 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . RssRestrictor \u8fd9\u4e9b \u5bf9\u8c61 \u5c06 \u9650\u5236 \u5e94\u7528 \u4e8e carla . VehicleControl \u3002 \u5b83 \u662f \u8d1f\u8d23 \u654f\u611f \u5b89\u5168 \u7684 C++ \u5e93 \u7684 Carla \u5b9e\u73b0 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u6b64\u7c7b \u4e0e rss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u534f\u540c \u540c\u5de5 \u5de5\u4f5c \u534f\u540c\u5de5\u4f5c \uff0c rss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u8981 \u5e94\u7528 \u7684 \u9650\u5236 \u7684 \u6570\u636e \u3002 \u65b9\u6cd5 restrict _ vehicle _ control ( self , vehicle _ control , proper _ response , ego _ dynamics _ on _ route , vehicle _ physics ) \u5e94\u7528 carla . RssSensor \u5bf9 carla . VehicleControl \u7ed9\u51fa \u7684 \u5b89\u5168 \u9650\u5236 \u3002 \u53c2\u6570 \uff1a vehicle _ control ( carla . VehicleControl ) - \u8981 \u9650\u5236 \u7684 \u8f93\u5165 \u8f66\u8f86 \u63a7\u5236 \u3002 proper _ response ( ad . rss . state . ProperResponse ) - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ea7\u751f \u7684 \u90e8\u5206 \u54cd\u5e94 \u3002 \u5305\u542b \u9002\u7528 \u4e8e \u8f66\u8f86 \u52a0\u901f \u7684 \u9650\u5236 \u3002 ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ea7\u751f \u7684 \u90e8\u5206 \u54cd\u5e94 \u3002 \u5305\u542b \u6709\u5173 \u5176 \u8def\u7ebf \u7684 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u548c \u65b9\u5411 \u3002 vehicle _ physics ( carla . VehiclePhysicsControl ) - \u8f66\u8f86 \u7684 \u5f53\u524d \u7269\u7406 \u7279\u6027 \u3002 \u7528\u4e8e \u6b63\u786e \u5e94\u7528 \u9650\u5236 \u3002 \u8fd4\u56de : carla . VehicleControl \u8bbe\u7f6e \u5668 set _ log _ level ( self , log _ level ) \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 \u53c2\u6570 \uff1a log _ level ( carla . RssLogLevel ) - \u65b0 \u65e5\u5fd7 \u7ea7\u522b \u3002 carla . RssRoadBoundariesMode carla . RssSensor \u4e2d \u4f7f\u7528 \u7684 \u679a\u4e3e \u58f0\u660e \uff0c \u7528\u4e8e \u542f\u7528 \u6216 \u7981\u7528 \u516c\u8def \u505c\u7559 \u529f\u80fd \u3002 \u800c\u8a00 \u603b\u800c\u8a00\u4e4b \uff0c \u6b64 \u529f\u80fd \u5c06 \u9053\u8def \u8fb9\u754c \u89c6\u4e3a \u865a\u62df \u5bf9\u8c61 \u3002 \u6700\u5c0f \u5b89\u5168 \u8ddd\u79bb \u68c0\u67e5 \u5e94\u7528 \u4e8e \u8fd9\u4e9b \u865a\u62df \u5899 \uff0c \u4ee5 \u786e\u4fdd \u8f66\u8f86 \u4e0d\u4f1a \u9a76\u79bb \u9053\u8def \u3002 \u5b9e\u4f8b \u53d8\u91cf On \u542f\u7528 \u201c \u505c\u7559 \u5728 \u8def\u4e0a \uff08 stay on road \uff09 \u201d \u529f\u80fd \u3002 Off \u7981\u7528 \u201c \u505c\u7559 \u5728 \u8def\u4e0a \uff08 stay on road \uff09 \u201d \u529f\u80fd \u3002 carla . RssSensor \u4ece carla . Sensor \u7ee7\u627f \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u539f\u7406 \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \u3002 \u8bf7 \u67e5\u770b \u7279\u5b9a \u6587\u6863 \u548c rss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \uff0c \u4ee5 \u5145\u5206 \u4e86\u89e3 \u5b83 \u3002 RSS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4e16\u754c \u4fe1\u606f \u548c RSS \u5e93 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u5230 \u7684 \u8f93\u51fa \u662f carla . RssResponse \u3002 \u8fd9 \u5c06 \u7531 carla . RssRestrictor \u4f7f\u7528 \u3002 \u5728 \u5c06 \u5176 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u4e4b\u524d \u8fdb\u884c carla . VehicleControl \u3002 \u5b9e\u4f8b \u53d8\u91cf ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) \u8bf4\u660e \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u56de\u8c03 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8003\u8651 \u7684 \u81ea\u6211 \u8f66\u8f86 \u7684 RSS \u53c2\u6570 \u3002 other _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) \u8bf4\u660e \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u56de\u8c03 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4e3a \u5176\u4f59 \u8f66\u8f86 \u8003\u8651 \u7684 RSS \u53c2\u6570 \u3002 pedestrian _ dynamics ( ad . rss . world . RssDynamics ) \u8bf4\u660e \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u56de\u8c03 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4e3a \u884c\u4eba \u8003\u8651 \u7684 RSS \u53c2\u6570 \u3002 road _ boundaries _ mode ( carla . RssRoadBoundariesMode ) \u5207\u6362 \u505c\u7559 \u5728 \u9053\u8def \u4e0a stay on road \u7684 \u529f\u80fd \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5904\u4e8e \u7981\u7528 \uff08 Off \uff09 \u72b6\u6001 \u3002 routing _ targets ( vector < carla . Transform > ) \u5f53\u524d \u8003\u8651 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u8def\u7531 \u7684 \u76ee\u6807 \u5217\u8868 \u3002 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u8def\u7531 \u76ee\u6807 \uff0c \u5219 \u968f\u673a \u751f\u6210 \u8def\u7531 \u3002 \u65b9\u6cd5 append _ routing _ target ( self , routing _ target ) \u5c06 \u65b0 \u7684 \u76ee\u6807 \u4f4d\u7f6e \u9644\u52a0 \u5230 \u8f66\u8f86 \u7684 \u5f53\u524d \u8def\u7ebf \u3002 \u53c2\u6570 \uff1a routing _ target ( carla . Transform ) - \u4e3a \u8def\u7ebf \u65b0\u5efa \u76ee\u6807 \u70b9 \u3002 \u5728 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u540e \u9009\u62e9 \u8fd9\u4e9b \u9009\u9879 \uff0c \u4ee5 \u5f3a\u5236 \u8def\u7ebf \u8f6c\u5f2f \u3002 drop _ route ( self ) \u653e\u5f03 \u5f53\u524d \u8def\u7531 \u3002 \u5982\u679c routing _ targets \u4e2d \u8fd8\u6709 \u76ee\u6807 \uff0c \u5219 \u4f7f\u7528 \u8fd9\u4e9b \u76ee\u6807 \u521b\u5efa \u65b0\u8def \u7531 \u3002 \u5426\u5219 \uff0c \u5c06 \u968f\u673a \u521b\u5efa \u65b0\u8def \u7531 \u3002 register _ actor _ constellation _ callback ( self , callback ) \u6ce8\u518c \u56de\u8c03 \u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 carla . RssActorConstellationResult \u3002 \u901a\u8fc7 \u6b64 \u56de\u8c03 \uff0c RSS \u53c2\u6570 \u7684 \u8bbe\u7f6e \u662f \u6839\u636e \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u5b8c\u6210 \u7684 \uff0c \u5e76\u4e14 \u8bbe\u7f6e \uff08 ego _ vehicle _ dynamics , other _ vehicle _ dynamics and pedestrian _ dynamics \uff09 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 \uff1a callback - \u6bcf\u5f53 \u8981 \u8ba1\u7b97 RSS \u60c5\u51b5 \u65f6\u8981 \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 reset _ routing _ targets ( self ) \u5220\u9664 \u5df2 \u9644\u52a0 \u5230 \u8def\u7531 \u7684 \u76ee\u6807 \u3002 \u8bbe\u7f6e \u5668 set _ log _ level ( self , log _ level ) \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 \u53c2\u6570 \uff1a log _ level ( carla . RssLogLevel ) - \u65b0 \u7684 \u65e5\u5fd7 \u7ea7\u522b \u3002 set _ map _ log _ level ( self , log _ level ) \u8bbe\u7f6e \u65e5\u5fd7 \u65e5\u5fd7 \u7ea7\u522b \u3002 \u53c2\u6570 \uff1a log _ level ( carla . RssLogLevel ) - New map log level . \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . SemanticLidarDetection carla . SemanticLidarMeasurement \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u4ee3\u8868 \u4e91\u4e2d \u7684 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u53ca\u5176 \u4f4d\u7f6e \u3001 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3001 \u547d\u4e2d \u7269\u4f53 \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u8bb0 \u3002 \u5b9e\u4f8b \u53d8\u91cf point ( carla . Location - \u7c73 ) \u70b9 \u7684 [ x \uff0c y \uff0c z ] \u5750\u6807 \u3002 cos _ inc _ angle ( float ) \u5149\u7ebf \u4e0e \u88ab \u51fb\u4e2d \u7269\u4f53 \u6cd5\u7ebf \u4e4b\u95f4 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3002 object _ idx ( uint ) \u88ab \u5149\u7ebf \u51fb\u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 object _ tag ( uint ) \u88ab \u5149\u7ebf \u51fb\u4e2d \u90e8\u4ef6 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . SemanticLidarMeasurement \u4ece carla . SensorData \u7ee7\u627f \u8be5\u7c7b \u5b9a\u4e49 \u7531 sensor . lidar . ray _ cast _ semantic \u68c0\u7d22 \u7684 \u8bed\u4e49 LIDAR \u6570\u636e \u3002 \u8fd9 \u5b9e\u8d28 \u4e0a \u662f \u4f7f\u7528 \u5149\u7ebf \u6295\u5c04 \u6765 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5728 \u6b64 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf channels ( int ) \u6fc0\u5149 \u53d1\u5c04 \u6b21\u6570 \u3002 horizontal _ angle ( float - radians ) \u6c34\u5e73 \u89d2\u5ea6 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5728 \u6d4b\u91cf \u65f6 \u65cb\u8f6c \u3002 raw _ data ( bytes ) \u6536\u5230 \u539f\u59cb \u68c0\u6d4b \u6d4b\u70b9 \u68c0\u6d4b\u70b9 \u5217\u8868 \u3002 \u6bcf\u4e2a \u70b9 \u7531 [ x \uff0c y \uff0c z ] \u5750\u6807 \u52a0\u4e0a \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \uff0c \u547d\u4e2d \u89d2\u8272 \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u8bb0 \u7ec4\u6210 \u3002 \u65b9\u6cd5 save _ to _ disk ( self , path ) \u5c06 \u70b9\u4e91 \u4fdd\u5b58 \u4e3a \u63cf\u8ff0 \u4e09\u7ef4 \u626b\u63cf \u626b\u63cf\u4eea \u6570\u636e \u7684 . ply \u6587\u4ef6 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u751f\u6210 \u7684 \u6587\u4ef6 \u53ef\u4ee5 \u5728 MeshLab \u4e2d \u4f7f\u7528 \uff0c MeshLab \u662f \u4e00\u4e2a \u7528\u4e8e \u5904\u7406 \u4e0a\u8ff0 \u6587\u4ef6 \u7684 \u5f00\u6e90 \u7cfb\u7edf \u3002 \u53ea \u9700 \u8003\u8651 \u5230 \u8f74 \u53ef\u80fd \u4e0e \u4e0d \u771f\u5b9e \u7684 \u5f15\u64ce \u4e0d\u540c \uff0c \u56e0\u6b64 \u9700\u8981 \u91cd\u65b0 \u5206\u914d \u91cd\u65b0\u5206\u914d \u3002 \u53c2\u6570 \uff1a path ( str ) \u8bbe\u7f6e \u5668 get _ point _ count ( self , channel ) \u83b7\u53d6 \u6b64 \u5ea6\u91cf \u751f\u6210 \u7684 \u6309 \u901a\u9053 \u6392\u5e8f \u7684 \u70b9\u6570 \u3002 \u901a\u8fc7 \u901a\u9053 \u6392\u5e8f \u53ef\u4ee5 \u8bc6\u522b \u6bcf\u4e2a \u70b9 \u7684 \u539f\u59cb \u901a\u9053 \u3002 \u53c2\u6570 \uff1a channel ( int ) \u9b54\u672f \u65b9\u6cd5 __ getitem __ ( self , pos = int ) __ iter __ ( self ) Iterate over the carla . SemanticLidarDetection retrieved as data . __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . SemanticLidarDetection ) __ str __ ( self ) carla . Sensor \u4ece carla . Actor \u7ee7\u627f Sensors compound a specific family of actors quite diverse and unique . They are normally spawned as attachment / sons of a vehicle ( take a look at carla . World to learn about actor spawning ) . Sensors are thoroughly designed to retrieve different types of data that they are listening to . The data they receive is shaped as different subclasses inherited from carla . SensorData ( depending on the sensor ) . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary . All the information on their preferences and settlement can be found here , but the list of those available in CARLA so far goes as follow . Receive data on every tick . - depth camera . - Gnss sensor . - IMU sensor . - Lidar raycast . - SemanticLidar raycast . - Radar . - RGB camera . - RSS sensor . - Semantic Segmentation camera . Only receive data when triggered . - Collision detector . - Lane invasion detector . - Obstacle detector . \u5b9e\u4f8b \u53d8\u91cf is _ listening ( boolean ) When True the sensor will be waiting for data . \u65b9\u6cd5 is _ listening ( self ) Returns whether the sensor is in a listening state . is _ listening _ gbuffer ( self , gbuffer _ id ) Returns whether the sensor is in a listening state for a specific GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . listen _ to _ gbuffer ( self , gbuffer _ id , callback ) The function the sensor will be calling to every time the desired GBuffer texture is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . callback ( function ) - The called function with one argument containing the received GBuffer texture . stop ( self ) Commands the sensor to stop listening for data . stop _ gbuffer ( self , gbuffer _ id ) Commands the sensor to stop listening for the specified GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the Unreal Engine GBuffer texture . \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . SensorData Base class for all the objects containing data generated by a carla . Sensor . This objects should be the argument of the function said sensor is listening to , in order to work with them . Each of these sensors needs for a specific type of sensor data . Hereunder is a list of the sensors and their corresponding data . - Cameras ( RGB , depth and semantic segmentation ) : carla . Image . - Collision detector : carla . CollisionEvent . - GNSS sensor : carla . GnssMeasurement . - IMU sensor : carla . IMUMeasurement . - Lane invasion detector : carla . LaneInvasionEvent . - LIDAR sensor : carla . LidarMeasurement . - Obstacle detector : carla . ObstacleDetectionEvent . - Radar sensor : carla . RadarMeasurement . - RSS sensor : carla . RssResponse . - Semantic LIDAR sensor : carla . SemanticLidarMeasurement . \u5b9e\u4f8b \u53d8\u91cf frame ( int ) Frame count when the data was generated . timestamp ( float - seconds ) Simulation - time when the data was generated . transform ( carla . Transform ) Sensor ' s transform when the data was generated . carla . TextureColor Class representing a texture object to be uploaded to the server . Pixel format is RGBA , uint8 per channel . \u5b9e\u4f8b \u53d8\u91cf width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture . \u65b9\u6cd5 __ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) \u8fd4\u56de : carla . Color set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . Color ) \u8bbe\u7f6e \u5668 set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int ) carla . TextureFloatColor Class representing a texture object to be uploaded to the server . Pixel format is RGBA , float per channel . \u5b9e\u4f8b \u53d8\u91cf width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture . \u65b9\u6cd5 __ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) \u8fd4\u56de : carla . FloatColor set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . FloatColor ) \u8bbe\u7f6e \u5668 set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int ) carla . Timestamp Class that contains time information for simulated data . This information is automatically retrieved as part of the carla . WorldSnapshot the client gets on every frame , but might also be used in many other situations such as a carla . Sensor retrieveing data . \u5b9e\u4f8b \u53d8\u91cf frame ( int ) The number of frames elapsed since the simulator was launched . elapsed _ seconds ( float - seconds ) Simulated seconds elapsed since the beginning of the current episode . delta _ seconds ( float - seconds ) Simulated seconds elapsed since the previous frame . platform _ timestamp ( float - seconds ) Time register of the frame at which this measurement was taken given by the OS in seconds . \u65b9\u6cd5 __ init __ ( self , frame , elapsed _ seconds , delta _ seconds , platform _ timestamp ) Parameters : frame ( int ) elapsed _ seconds ( float - seconds ) delta _ seconds ( float - seconds ) platform _ timestamp ( float - seconds ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . Timestamp ) __ ne __ ( self , other = carla . Timestamp ) __ str __ ( self ) carla . TrafficLight \u4ece carla . TrafficSign \u7ee7\u627f A traffic light actor , considered a specific type of traffic sign . As traffic lights will mostly appear at junctions , they belong to a group which contains the different traffic lights in it . Inside the group , traffic lights are differenciated by their pole index . Within a group the state of traffic lights is changed in a cyclic pattern : one index is chosen and it spends a few seconds in green , yellow and eventually red . The rest of the traffic lights remain frozen in red this whole time , meaning that there is a gap in the last seconds of the cycle where all the traffic lights are red . However , the state of a traffic light can be changed manually . \u5b9e\u4f8b \u53d8\u91cf state ( carla . TrafficLightState ) Current state of the traffic light . \u65b9\u6cd5 freeze ( self , freeze ) Stops all the traffic lights in the scene at their current state . Parameters : freeze ( bool ) is _ frozen ( self ) The client returns True if a traffic light is frozen according to last tick . The method does not call the simulator . \u8fd4\u56de : bool reset _ group ( self ) Resets the state of the traffic lights of the group to the initial state at the start of the simulation . Note : This method calls the simulator . \u8bbe\u7f6e \u5668 get _ affected _ lane _ waypoints ( self ) Returns a list of waypoints indicating the positions and lanes where the traffic light is having an effect . \u8fd4\u56de : list ( carla . Waypoint ) get _ elapsed _ time ( self ) The client returns the time in seconds since current light state started according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds get _ green _ time ( self ) The client returns the time set for the traffic light to be green , according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds Setter : carla . TrafficLight . set _ green _ time get _ group _ traffic _ lights ( self ) Returns all traffic lights in the group this one belongs to . \u8fd4\u56de : list ( carla . TrafficLight ) Note : This method calls the simulator . get _ light _ boxes ( self ) Returns a list of the bounding boxes encapsulating each light box of the traffic light . \u8fd4\u56de : list ( carla . BoundingBox ) get _ opendrive _ id ( self ) Returns the OpenDRIVE id of this traffic light . \u8fd4\u56de : str get _ pole _ index ( self ) Returns the index of the pole that identifies it as part of the traffic light group of a junction . \u8fd4\u56de : int get _ red _ time ( self ) The client returns the time set for the traffic light to be red , according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds Setter : carla . TrafficLight . set _ red _ time get _ state ( self ) The client returns the state of the traffic light according to last tick . The method does not call the simulator . \u8fd4\u56de : carla . TrafficLightState Setter : carla . TrafficLight . set _ state get _ stop _ waypoints ( self ) Returns a list of waypoints indicating the stop position for the traffic light . These waypoints are computed from the trigger boxes of the traffic light that indicate where a vehicle should stop . \u8fd4\u56de : list ( carla . Waypoint ) get _ yellow _ time ( self ) The client returns the time set for the traffic light to be yellow , according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds Setter : carla . TrafficLight . set _ yellow _ time \u8bbe\u7f6e \u5668 set _ green _ time ( self , green _ time ) Parameters : green _ time ( float - seconds ) - Sets a given time for the green light to be active . \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ green _ time set _ red _ time ( self , red _ time ) Sets a given time for the red state to be active . Parameters : red _ time ( float - seconds ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ red _ time set _ state ( self , state ) snippet \u2192 Sets a given state to a traffic light actor . Parameters : state ( carla . TrafficLightState ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ state set _ yellow _ time ( self , yellow _ time ) Sets a given time for the yellow light to be active . Parameters : yellow _ time ( float - seconds ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ yellow _ time \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . TrafficLightState \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u6240\u6709 \u53ef\u80fd \u72b6\u6001 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u5728 \u7279\u5b9a \u65f6\u95f4 \u6b65\u957f \u66f4\u6539 \u6216 \u624b\u52a8 \u66f4\u6539 \u3002 carla . TrafficLight . set _ state \u4e2d \u7684 \u7247\u6bb5 \u4f1a \u52a8\u6001 \u66f4\u6539 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u5b9e\u4f8b \u53d8\u91cf Red Yellow Green Off Unknown carla . TrafficManager \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u662f \u4e00\u4e2a \u7528 C++ \u6784\u5efa \u5728 CARLA API \u4e4b\u4e0a \u7684 \u6a21\u5757 \u3002 \u5b83 \u53ef\u4ee5 \u5904\u7406 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u7684 \u4efb\u4f55 \u8f66\u8f86 \u7ec4 \uff0c \u4ee5 \u73b0\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u586b\u5145 \u4eff\u771f \uff0c \u5e76 \u4e3a \u7528\u6237 \u63d0\u4f9b \u5b9a\u5236 \u67d0\u4e9b \u884c\u4e3a \u7684 \u673a\u4f1a \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u67b6\u6784 \u5206\u4e3a \u4e94\u4e2a \u4e0d\u540c \u7684 \u9762\u5411 \u76ee\u6807 \u7684 \u9636\u6bb5 \u548c \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4fe1\u606f \u5728 \u5176\u4e2d \u6d41\u52a8 \uff0c \u76f4\u5230 \u6700\u7ec8 \u5c06 carla . VehicleControl \u5e94\u7528 \u4e8e \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \u6ce8\u518c \u7684 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8f86 \u3002 \u8981 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u8bbf\u95ee \u6709\u5173 \u6b64 \u6a21\u5757 \u7684 \u6587\u6863 \u3002 \u65b9\u6cd5 auto _ lane _ change ( self , actor , enable ) \u6253\u5f00 \u6216 \u5173\u95ed \u8f66\u8f86 \u7684 \u8f66\u9053 \u53d8\u6362 \u884c\u4e3a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u8bbe\u7f6e \u88ab \u66f4\u6539 \u7684 \u8f66\u8f86 \u3002 enable ( bool ) - True \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5e76 \u542f\u7528 \u8f66\u9053 \u53d8\u66f4 \u3002 False \u5c06 \u7981\u7528 \u5b83\u4eec \u3002 collision _ detection ( self , reference _ actor , other _ actor , detect _ collision ) \u8c03\u6574 \u8f66\u8f86 \u4e0e \u53e6 \u4e00\u4e2a \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u4e3a\u4e86 \u5ffd\u7565 \u6240\u6709 \u5176\u4ed6 \u8f66\u8f86 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6216 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u8bf7 \u4f7f\u7528 \u540c \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e2d \u63cf\u8ff0 \u7684 \u7279\u5b9a ignore \u65b9\u6cd5 \u3002 \u53c2\u6570 : reference _ actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u78b0\u649e \u7684 \u8f66\u8f86 \u3002 other _ actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u4e0e \u4e4b \u53d1\u751f \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 reference _ actor \u3002 detect _ collision ( bool ) - True \u662f \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5e76 \u542f\u7528 \u78b0\u649e \u3002 False \u5c06 \u7981\u7528 \u5b83\u4eec \u3002 distance _ to _ leading _ vehicle ( self , actor , distance ) \u8bbe\u7f6e \u8f66\u8f86 \u5fc5\u987b \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4fdd\u6301 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u4f1a \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 \u5b83 \u662f\u4ece \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u524d \u5230 \u540e \u8ba1\u7b97 \u7684 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u6b63\u5728 \u66f4\u6539 \u6700\u5c0f \u8ddd\u79bb \u7684 \u8f66\u8f86 \u3002 distance ( float - \u7c73 ) - \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u4e4b\u95f4 \u7684 \u7c73 \u3002 force _ lane _ change ( self , actor , direction ) \u5f3a\u5236 \u8f66\u8f86 \u6539\u53d8 \u5230 \u5176 \u5de6\u4fa7 \u6216 \u53f3\u4fa7 \u7684 \u8f66\u9053 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \uff0c \u5982 \u4e2d \u6240\u793a direction \u3002 \u65e0\u8bba \u53d1\u751f \u4ec0\u4e48 \u60c5\u51b5 \uff0c \u8be5 \u65b9\u6cd5 \u90fd \u4f1a \u5e94\u7528 \u8f66\u9053 \u53d8\u6362 \uff0c \u800c \u5ffd\u7565 \u53ef\u80fd \u53d1\u751f \u7684 \u78b0\u649e \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u8f66\u8f86 \u88ab\u8feb \u6539\u53d8 \u8f66\u9053 \u3002 direction ( bool ) - \u76ee\u6807 \u8f66\u9053 \u3002 True \u662f \u53f3\u8fb9 \u7684 \uff0c False \u662f \u5de6\u8fb9 \u7684 \u3002 global _ lane _ offset ( self , offset ) \u8bbe\u7f6e \u8ddd \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u5168\u5c40 \u8f66\u9053 \u504f\u79fb \u4f4d\u79fb \u3002 \u6b63\u503c \u8868\u793a \u5411 \u53f3 \u504f\u79fb \uff0c \u8d1f\u503c \u8868\u793a \u5411 \u5de6 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0 \u3002 \u6570\u5b57 \u9ad8\u5230 \u8db3\u4ee5 \u5bfc\u81f4 \u8f66\u8f86 \u9a76\u8fc7 \u5176\u4ed6 \u8f66\u9053 \u53ef\u80fd \u4f1a \u635f\u574f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u53c2\u6570 : offset ( float ) - \u8f66\u9053 \u8ddd \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u504f\u79fb \u4f4d\u79fb \u3002 global _ percentage _ speed _ difference ( self , percentage ) \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u9884\u671f \u901f\u5ea6 \u4e0e\u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 \u5dee\u503c \u3002 \u901a\u8fc7 \u5c06 perc \u8bbe \u4e3a \u8d1f\u503c \u53ef\u4ee5 \u8d85\u51fa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 30 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u8d1f \u767e\u5206 \u767e\u5206\u6bd4 \u6765 \u8d85\u8fc7 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 \u53c2\u6570 : percentage ( float ) - \u9884\u671f \u901f\u5ea6 \u548c \u5f53\u524d \u9650\u5236 \u4e4b\u95f4 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u5dee\u5f02 \u3002 ignore _ lights _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u5ffd\u7565 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 perc ( float ) - 0 \u5230 100 \u4e4b\u95f4 \u3002 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 ignore _ signs _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 perc ( float ) - 0 \u5230 100 \u4e4b\u95f4 \u3002 \u505c\u8f66 \u6807\u5fd7 \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 ignore _ vehicles _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u4e00\u4e2a \u8f66\u8f86 \u5ffd\u7565 \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u78b0\u649e \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u5176\u4ed6 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u3002 perc ( float ) - Between 0 and 100 . 0 \u5230 100 \u4e4b\u95f4 \u3002 \u78b0\u649e \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 ignore _ walkers _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u5ffd\u7565 \u4e0e \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u78b0\u649e \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u573a\u666f \u4e2d \u884c\u4eba \u7684 \u8f66\u8f86 \u3002 perc ( float ) - Between 0 and 100 . 0 \u5230 100 \u4e4b\u95f4 \u3002 \u78b0\u649e \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 keep _ right _ rule _ percentage ( self , actor , perc ) \u5728 \u5b9a\u4f4d \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u9075\u5faa \u9760\u53f3 \u89c4\u5219 \u5e76 \u7559\u5728 \u53f3\u4fa7 \u8f66\u9053 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u6b63\u5728 \u6539\u53d8 \u884c\u4e3a \u7684 \u8f66\u8f86 \u3002 perc ( float ) - Between 0 and 100 . 0 \u5230 100 \u4e4b\u95f4 \u3002 \u8f66\u8f86 \u9075\u5faa \u9760\u53f3 \u89c4\u5219 \u7684 \u6b21\u6570 \u3002 random _ left _ lanechange _ percentage ( self , actor , percentage ) \u8c03\u6574 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \u6267\u884c \u5de6\u53d8 \u9053 \u7684 \u6982\u7387 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u53d8\u9053 \u53ef\u7528 \u53ef\u7528\u6027 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 percentage ( float ) - \u6362\u9053 \u6982\u7387 \uff0c \u4ee5 \u767e\u5206 \u767e\u5206\u6bd4 \u4e3a \u5355\u4f4d \uff08 0 \u5230 100 \u4e4b\u95f4 \uff09 \u3002 random _ right _ lanechange _ percentage ( self , actor , percentage ) \u8c03\u6574 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65 \u6267\u884c \u53f3\u53d8 \u9053 \u7684 \u6982\u7387 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u53d8\u9053 \u53ef\u7528 \u53ef\u7528\u6027 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 percentage ( float ) - \u6362\u9053 \u6982\u7387 \uff0c \u4ee5 \u767e\u5206 \u767e\u5206\u6bd4 \u4e3a \u5355\u4f4d \uff08 0 \u5230 100 \u4e4b\u95f4 \uff09 \u3002 shut _ down ( self ) \u5173\u95ed \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 update _ vehicle _ lights ( self , actor , do _ update ) \u8bbe\u7f6e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u662f\u5426 \u8d1f\u8d23 \u66f4\u65b0 \u8f66\u706f \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4e0d\u4f1a \u66f4\u6539 \u8f66\u8f86 \u7684 \u8f66\u706f \u72b6\u6001 \uff0c \u9664\u975e \u5176 auto _ update _ status \u8bbe \u4e3a True \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5176 \u706f\u5149 \u72b6\u6001 \u6b63\u5728 \u66f4\u6539 \u7684 \u8f66\u8f86 \u3002 do _ update ( bool ) - \u5982\u679c \u4e3a True \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u7ba1\u7406 \u6307\u5b9a \u8f66\u8f86 \u7684 \u8f66\u706f \u3002 vehicle _ lane _ offset ( self , actor , offset ) \u8bbe\u7f6e \u76f8\u5bf9 \u4e8e \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u8f66\u9053 \u504f\u79fb \u4f4d\u79fb \u3002 \u6b63\u503c \u8868\u793a \u5411 \u53f3 \u504f\u79fb \uff0c \u8d1f\u503c \u8868\u793a \u5411 \u5de6 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0 \u3002 \u6570\u5b57 \u9ad8\u5230 \u8db3\u4ee5 \u5bfc\u81f4 \u8f66\u8f86 \u9a76\u8fc7 \u5176\u4ed6 \u8f66\u9053 \u53ef\u80fd \u4f1a \u635f\u574f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u8f66\u9053 \u504f\u79fb \u884c\u4e3a \u6b63\u5728 \u66f4\u6539 \u7684 \u8f66\u8f86 \u3002 offset ( float ) - \u8f66\u9053 \u8ddd \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u504f\u79fb \u4f4d\u79fb \u3002 vehicle _ percentage _ speed _ difference ( self , actor , percentage ) \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u9884\u671f \u901f\u5ea6 \u4e0e\u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 \u5dee\u503c \u3002 \u901a\u8fc7 \u5c06 perc \u8bbe \u4e3a \u8d1f\u503c \u53ef\u4ee5 \u8d85\u51fa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 30 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u8d1f \u767e\u5206 \u767e\u5206\u6bd4 \u6765 \u8d85\u8fc7 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u901f\u5ea6 \u884c\u4e3a \u6b63\u5728 \u6539\u53d8 \u7684 \u8f66\u8f86 \u3002 percentage ( float ) - \u9884\u671f \u901f\u5ea6 \u548c \u5f53\u524d \u9650\u5236 \u4e4b\u95f4 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u5dee\u5f02 \u3002 \u8bbe\u7f6e \u5668 get _ all _ actions ( self , actor ) \u8fd4\u56de \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5728 \u540e\u7eed \u6b65\u9aa4 \u4e2d \u6267\u884c \u7684 \u6240\u6709 \u5df2\u77e5 \u64cd\u4f5c \uff08 \u5373 \u9053\u8def \u9009\u9879 \u548c \u8def\u5f84 \u70b9 \uff09 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de : \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5217\u8868 \u5217\u8868 \u5982\u4e0b - [ \u9053\u8def \u9009\u9879 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 \u201c \u5de6 \u201d \u3001 \u201c \u53f3 \u201d \u3001 \u201c \u76f4 \u201d \uff09 \u3001 \u4e0b \u4e00\u4e2a \u822a\u70b9 ( carla . Waypoint ) ] get _ next _ action ( self , actor ) \u8fd4\u56de \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u9075\u5faa \u7684 \u4e0b \u4e00\u4e2a \u5df2\u77e5 \u9053\u8def \u9009\u9879 \u548c \u8def\u5f84 \u70b9 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de : \u4e24\u4e2a \u5143\u7d20 \u7684 \u5217\u8868 - [ \u9053\u8def \u9009\u9879 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 \u201c \u5de6 \u201d \u3001 \u201c \u53f3 \u201d \u3001 \u201c \u76f4 \u201d \uff09 \u3001 \u4e0b \u4e00\u4e2a \u822a\u70b9 ( carla . Waypoint ) ] get _ port ( self ) \u8fd4\u56de \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8fde\u63a5 \u7684 \u7aef\u53e3 \u3002 \u5982\u679c \u8be5 \u5bf9\u8c61 \u662f TM - Client \uff0c \u5b83 \u5c06 \u8fd4\u56de \u5176 TM - Server \u7684 \u7aef\u53e3 \u3002 \u9605\u8bfb \u6587\u6863 \u4ee5 \u4e86\u89e3 \u5176\u4e2d \u7684 \u5dee\u5f02 \u3002 \u8fd4\u56de : uint16 \u8bbe\u7f6e \u5668 set _ boundaries _ respawn _ dormant _ vehicles ( self , lower _ bound = 25.0 , upper _ bound = actor _ active _ distance ) \u8bbe\u7f6e \u8981 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u9644\u8fd1 \u91cd\u751f \u7684 \u4f11\u7720 \u89d2\u8272 \u7684 \u4e0a\u9650 \u548c \u4e0b\u9650 \u3002 \u53c2\u6570 : lower _ bound ( float ) - \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \u65f6\u8ddd \u82f1\u96c4 \u8f66\u8f86 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 upper _ bound ( float ) - \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \u65f6\u8ddd \u82f1\u96c4 \u8f66\u8f86 \u7684 \u6700\u5927 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8b66\u544a : upper _ bound \u4e0d\u80fd \u9ad8\u4e8e actor _ active _ distance \u3002 lower _ bound \u4e0d\u80fd \u5c0f\u4e8e 25 \u3002 set _ desired _ speed ( self , actor , speed ) \u5c06 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u8bbe\u7f6e \u4e3a \u6307\u5b9a \u503c \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u901f\u5ea6 \u6b63\u5728 \u6539\u53d8 \u7684 \u8f66\u8f86 \u3002 speed ( float ) - \u8f66\u8f86 \u79fb\u52a8 \u6240 \u9700 \u7684 \u901f\u5ea6 \u3002 set _ global _ distance _ to _ leading _ vehicle ( self , distance ) \u8bbe\u7f6e \u8f66\u8f86 \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u5fc5\u987b \u4fdd\u6301 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u4f1a \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 \u5b83 \u662f\u4ece \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u4e2d\u5fc3 \u5230 \u4e2d\u5fc3 \u8ba1\u7b97 \u7684 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u7c73\u6570 \u3002 set _ hybrid _ physics _ mode ( self , enabled = False ) \u542f\u7528 \u6216 \u7981\u7528 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u3002 \u5728 \u6b64 \u6a21\u5f0f \u4e0b \uff0c \u8ddd\u79bb \u81ea\u8eab \u8f66\u8f86 \u8d85\u8fc7 \u4e00\u5b9a \u534a\u5f84 \u7684 \u8f66\u8f86 \u5c06 \u7981\u7528 \u5176 \u7269\u7406 \u529f\u80fd \u3002 \u901a\u8fc7 \u4e0d \u8ba1\u7b97 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5c06 \u964d\u4f4e \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u3002 \u8f66\u8f86 \u5c06 \u88ab \u4f20\u9001 \u3002 \u53c2\u6570 : enabled ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u6df7\u5408 \u7269\u7406 \u3002 set _ hybrid _ physics _ radius ( self , r = 50.0 ) \u542f\u7528 \u6df7\u5408 \u7269\u7406 \u529f\u80fd \u540e \uff0c \u66f4\u6539 \u542f\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u5f71\u54cd \u533a\u57df \u7684 \u534a\u5f84 \u3002 \u53c2\u6570 : r ( float - \u7c73 ) - \u542f\u7528 \u7269\u7406 \u7684 \u65b0 \u534a\u5f84 \u3002 set _ osm _ mode ( self , mode _ switch = True ) \u542f\u7528 \u6216 \u7981\u7528 OSM \u6a21\u5f0f \u3002 \u8be5 \u6a21\u5f0f \u5141\u8bb8 \u7528\u6237 \u5728 \u4f7f\u7528 OSM \u529f\u80fd \u521b\u5efa \u7684 \u5730\u56fe \u4e2d \u8fd0\u884c TM \u3002 \u8fd9\u4e9b \u5730\u56fe \u5141\u8bb8 \u6709 \u80e1\u540c \u6b7b\u80e1\u540c \u3002 \u901a\u5e38 \uff0c \u5982\u679c \u8f66\u8f86 \u65e0\u6cd5 \u627e\u5230 \u4e0b \u4e00\u4e2a \u822a\u8def \u70b9 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c31 \u4f1a \u5d29\u6e83 \u3002 \u5982\u679c \u542f\u7528 OSM \u6a21\u5f0f \uff0c \u5b83 \u5c06 \u663e\u793a \u8b66\u544a \uff0c \u5e76 \u5728 \u5fc5\u8981 \u65f6 \u6467\u6bc1 \u8f66\u8f86 \u3002 \u53c2\u6570 : mode _ switch ( bool ) - \u5982\u679c True \uff0c \u5219 \u542f\u7528 OSM \u6a21\u5f0f \u3002 set _ path ( self , actor , path ) \u8bbe\u7f6e \u8f66\u8f86 \u5728 \u53d7 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u63a7\u5236 \u65f6\u8981 \u9075\u5faa \u7684 \u4f4d\u7f6e \u5217\u8868 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5fc5\u987b \u9075\u5faa \u7ed9\u5b9a \u8def\u5f84 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 path ( list ) - carla . Locations \u7684 \u5217\u8868 \uff0c \u4f9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8ddf\u968f \u3002 \u8b66\u544a : \u786e\u4fdd \u9053\u8def \u62d3\u6251 \u4e0d\u4f1a \u59a8\u788d \u7ed9\u5b9a \u8def\u5f84 \u3002 set _ random _ device _ seed ( self , value ) \u4e3a \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u968f\u673a \u79cd\u5b50 \uff0c \u4ece\u800c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \u3002 \u53c2\u6570 : value ( int ) - \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u7684 \u79cd\u5b50 \u503c \u3002 set _ respawn _ dormant _ vehicles ( self , mode _ switch = False ) \u5982\u679c \u4e3a True \uff0c \u5927 \u5730\u56fe \u4e2d \u7684 \u8f66\u8f86 \u5728 \u4f11\u7720 \u65f6\u4f1a \u5728 \u82f1\u96c4 \u8f66\u8f86 \u9644\u8fd1 \u91cd\u751f \u3002 \u5426\u5219 \uff0c \u5b83\u4eec \u5c06 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u76f4\u5230 actor _ active _ distance \u518d\u6b21 \u8fdb\u5165 \u82f1\u96c4 \u8f66\u8f86 \u3002 \u53c2\u6570 : mode _ switch ( bool ) set _ route ( self , actor , path ) \u8bbe\u7f6e \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u8f66\u8f86 \u8981 \u9075\u5faa \u7684 \u8def\u7ebf \u6307\u4ee4 \u5217\u8868 \u3002 \u53ef\u80fd \u7684 \u8def\u7ebf \u6307\u4ee4 \u662f ' Left ' , ' Right ' , ' Straight ' \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5fc5\u987b \u9075\u5faa \u7ed9\u5b9a \u8def\u7ebf \u6307\u793a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 path ( list ) - \u8f66\u8f86 \u8981 \u9075\u5faa \u7684 \u8def\u7ebf \u6307\u4ee4 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff09 \u5217\u8868 \u3002 \u8b66\u544a : \u786e\u4fdd \u8f66\u9053 \u62d3\u6251 \u4e0d\u4f1a \u59a8\u788d \u7ed9\u5b9a \u8def\u7ebf \u3002 set _ synchronous _ mode ( self , mode _ switch = True ) \u5c06 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 TM - Server \u53ef\u4ee5 \u8fd0\u884c \u3002 \u7c7b\u4f3c \u5730 \uff0c \u5728 \u591a TM \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 \u4e00\u4e2a TM - Server \u5fc5\u987b \u52fe\u9009 \u3002 \u5728 \u8fdb\u884c \u4e16\u754c \u52fe\u9009 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \uff0c \u5e76 \u5728 \u5c06 \u4e16\u754c \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u540e \u7acb\u5373 \u8bbe\u7f6e \u540c\u6b65 \u65f6 \u54ea\u4e2a TM \u5c06 \u6210\u4e3a \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53c2\u6570 : mode _ switch ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u540c\u6b65 \u6a21\u5f0f \u3002 \u8b66\u544a : \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u6267\u884c \u6807\u8bb0 \u7684 \u540c\u4e00 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u7684 TM \u4e5f \u5fc5\u987b \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 carla . TrafficSign \u4ece carla . Actor \u7ee7\u627f \u4eff\u771f \u4e2d \u51fa\u73b0 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff08 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u9664\u5916 \uff09 \u3002 \u8fd9\u4e9b \u5728 carla . TrafficLight \u4e2d\u6709 \u81ea\u5df1 \u7684 \u7c7b \u4ece \u8be5\u7c7b \u7ee7\u627f \u3002 \u76ee\u524d \uff0c \u4e3b\u8981 \u5b9e\u65bd \u7684 \u662f \u901f\u5ea6 \u6807\u5fd7 \u3001 \u505c\u9760 \u505c\u9760\u7ad9 \u548c \u8ba9 \u884c \u6807\u5fd7 \uff0c \u4f46 \u8fd8\u6709 \u8bb8\u591a \u5176\u4ed6 \u6807\u5fd7 \u4e5f \u88ab \u7262\u8bb0 \u7262\u8bb0\u5728\u5fc3 \u3002 \u5b9e\u4f8b \u53d8\u91cf trigger _ volume \u4f4d\u4e8e \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u9644\u8fd1 \u7684 carla . BoundingBox \uff0c \u91cc\u9762 \u7684 carla . Actor \u53ef\u4ee5 \u77e5\u9053 \u5b83 \u3002 carla . Transform \u8be5\u7c7b \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u53d8\u6362 \uff0c \u5373 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u7684 \u7ec4\u5408 \uff0c \u800c \u4e0d \u8fdb\u884c \u7f29\u653e \u3002 \u5b9e\u4f8b \u53d8\u91cf location ( carla . Location ) \u63cf\u8ff0 \u5750\u6807 \u7cfb\u7edf \u4e2d \u7684 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 rotation ( carla . Rotation - degrees ( pitch , yaw , roll ) ) \u63cf\u8ff0 \u6839\u636e \u865a\u5e7b \u5f15\u64ce \u7684 \u8f74 \u7cfb\u7edf \u8fdb\u884c \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u3002 \u65b9\u6cd5 __ init __ ( self , location , rotation ) \u53c2\u6570 : location ( carla . Location ) rotation ( carla . Rotation - \u5ea6\u6570 \uff08 \u4fef\u4ef0 \u3001 \u504f\u822a \u3001 \u7ffb\u6eda \uff09 ) transform ( self , in _ point ) \u4f7f\u7528 \u5f53\u524d \u53d8\u6362 \u4f5c\u4e3a \u53c2\u8003 \u53c2\u8003\u7cfb \u5c06 \u4e09\u7ef4 \u70b9 \u4ece \u5c40\u90e8 \u5750\u6807 \u8f6c\u6362 \u4e3a \u5168\u5c40 \u5750\u6807 \u3002 \u53c2\u6570 : in _ point ( carla . Location ) - \u5c06 \u5e94\u7528 \u53d8\u6362 \u7684 \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 transform _ vector ( self , in _ vector ) \u4f7f\u7528 \u5f53\u524d \u53d8\u6362 \u4f5c\u4e3a \u53c2\u8003 \u53c2\u8003\u7cfb \u6765 \u65cb\u8f6c \u5411\u91cf \uff0c \u800c \u4e0d \u5e94\u7528 \u5e73\u79fb \u3002 \u4f8b\u5982 \uff0c \u7528 \u5b83 \u6765 \u53d8\u6362 \u901f\u5ea6 \u3002 \u53c2\u6570 : in _ vector ( carla . Vector3D ) - \u5c06 \u5e94\u7528 \u8f6c\u6362 \u7684 \u5411\u91cf \u3002 \u8bbe\u7f6e \u5668 get _ forward _ vector ( self ) \u4f7f\u7528 \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u524d\u5411 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D get _ inverse _ matrix ( self ) \u8ba1\u7b97 \u9006\u53d8 \u53d8\u6362 \u9006\u53d8\u6362 \u7684 4 \u77e9\u9635 \u8868\u793a \u3002 \u8fd4\u56de : list ( list ( float ) ) get _ matrix ( self ) \u8ba1\u7b97 \u53d8\u6362 \u7684 4 \u77e9\u9635 \u8868\u793a \u3002 \u8fd4\u56de : list ( list ( float ) ) get _ right _ vector ( self ) \u4f7f\u7528 \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u53f3 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D get _ up _ vector ( self ) \u4f7f\u7528 \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u5411\u4e0a \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . Transform ) \u5982\u679c this \u548c other \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u90fd \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ ne __ ( self , other = carla . Transform ) \u5982\u679c this \u548c other \u7684 \u4efb\u4f55 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u4e0d \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u5c06 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de : str carla . Vector2D \u6267\u884c \u4e8c\u7ef4 \u64cd\u4f5c \u7684 \u8f85\u52a9 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf x ( float ) X - axis value . y ( float ) Y - axis value . \u65b9\u6cd5 __ init __ ( self , x = 0.0 , y = 0.0 ) \u53c2\u6570 : x ( float ) y ( float ) length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de : float make _ unit _ vector ( self ) \u8fd4\u56de \u5177\u6709 \u76f8\u540c \u65b9\u5411 \u548c \u5355\u4f4d \u957f\u5ea6 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D squared _ length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u5e73\u65b9 \u957f\u5ea6 \u3002 \u8fd4\u56de : float \u9b54\u672f \u65b9\u6cd5 __ add __ ( self , other = carla . Vector2D ) __ eq __ ( self , other = carla . Vector2D ) \u5982\u679c \u6bcf\u4e2a \u8f74 \u7684 \u503c \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ mul __ ( self , other = carla . Vector2D ) __ ne __ ( self , bool = carla . Vector2D ) \u5982\u679c \u4efb\u4f55 \u8f74 \u7684 \u503c \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u8fd4\u56de \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 \u5411\u91cf \u7684 \u8f74\u503c \u3002 \u8fd4\u56de : str __ sub __ ( self , other = carla . Vector2D ) __ truediv __ ( self , other = carla . Vector2D ) carla . Vector3D \u6267\u884c \u4e09\u7ef4 \u64cd\u4f5c \u7684 \u8f85\u52a9 \u7c7b \u3002 \u5b9e\u4f8b \u53d8\u91cf x ( float ) X - axis value . y ( float ) Y - axis value . z ( float ) Z - axis value . \u65b9\u6cd5 __ init __ ( self , x = 0.0 , y = 0.0 , z = 0.0 ) \u53c2\u6570 : x ( float ) y ( float ) z ( float ) cross ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u53c9\u79ef \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : carla . Vector3D distance ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float distance _ 2d ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u4e8c\u7ef4 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float distance _ squared ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u5e73\u65b9 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float distance _ squared _ 2d ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u4e8c\u7ef4 \u5e73\u65b9 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float dot ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u70b9\u79ef \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float dot _ 2d ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u4e8c\u7ef4 \u70b9\u79ef \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de : float make _ unit _ vector ( self ) \u8fd4\u56de \u5177\u6709 \u76f8\u540c \u65b9\u5411 \u548c \u5355\u4f4d \u957f\u5ea6 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D squared _ length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u5e73\u65b9 \u957f\u5ea6 \u3002 \u8fd4\u56de : float \u8bbe\u7f6e \u5668 get _ vector _ angle ( self , vector ) \u8ba1\u7b97 \u4e00\u5bf9 \u4e09\u7ef4 \u5411\u91cf \u4e4b\u95f4 \u7684 \u89d2\u5ea6 \uff08 \u4ee5 \u5f27\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float \u9b54\u672f \u65b9\u6cd5 __ abs __ ( self ) \u8fd4\u56de \u5177\u6709 x \u3001 y \u548c z \u5206\u91cf \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 Vector3D \u3002 \u8fd4\u56de : carla . Vector3D __ add __ ( self , other = carla . Vector3D ) __ eq __ ( self , other = carla . Vector3D ) \u5982\u679c \u6bcf\u4e2a \u8f74 \u7684 \u503c \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ mul __ ( self , other = carla . Vector3D ) __ ne __ ( self , other = carla . Vector3D ) \u5982\u679c \u4efb\u4f55 \u8f74 \u7684 \u503c \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u8fd4\u56de \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 \u5411\u91cf \u7684 \u8f74\u503c \u3002 \u8fd4\u56de : str __ sub __ ( self , other = carla . Vector3D ) __ truediv __ ( self , other = carla . Vector3D ) carla . Vehicle \u4ece carla . Actor \u7ee7\u627f CARLA \u4e2d \u6700 \u91cd\u8981 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7fa4\u4f53 \u4e4b\u4e00 \u3002 \u5176\u4e2d \u5305\u62ec \u4ece \u6c7d\u8f66 \u5230 \u5361\u8f66 \u3001 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3001 \u8d27\u8f66 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u4ee5\u53ca \u8b66\u8f66 \u7b49 \u5b98\u65b9 \u8f66\u8f86 \u3002 carla . BlueprintLibrary \u4e2d \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5e7f\u6cdb \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5 \u6ee1\u8db3 \u4e0d\u540c \u7684 \u9700\u6c42 \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u624b\u52a8 \u63a7\u5236 \uff0c \u4e5f \u53ef\u4ee5 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \uff0c \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fdb\u884c \u63a7\u5236 \u3002 \u5b9e\u4f8b \u53d8\u91cf bounding _ box ( carla . BoundingBox ) \u5305\u542b \u8f66\u8f86 \u51e0\u4f55 \u5f62\u72b6 \u7684 \u8fb9\u754c \u6846 \u3002 \u5b83 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u662f \u76f8\u5bf9 \u4e8e \u5b83 \u6240 \u9644\u7740 \u7684 \u8f66\u8f86 \u800c\u8a00 \u7684 \u3002 \u65b9\u6cd5 apply _ ackermann _ control ( self , control ) \u5728 \u4e0b \u4e00\u4e2a \u523b\u5ea6 \u5904 \u5e94\u7528 \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u5bf9\u8c61 \u3002 \u53c2\u6570 : control ( carla . VehicleAckermannControl ) apply _ ackermann _ controller _ settings ( self , settings ) \u5728 \u4e0b \u4e00\u4e2a tick \u4e2d\u5c06 \u65b0 \u7684 \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u8bbe\u7f6e \u5e94\u7528 \u4e8e \u6b64 \u8f66\u8f86 \u3002 \u53c2\u6570 : settings ( carla . AckermannControllerSettings ) \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 apply _ control ( self , control ) \u5728 \u4e0b \u4e00\u4e2a tick \u4e0a \u5e94\u7528 \u63a7\u5236 \u5bf9\u8c61 \uff0c \u5176\u4e2d \u5305\u542b \u6cb9\u95e8 \u3001 \u8f6c\u5411 \u6216 \u6362\u6863 \u7b49 \u9a7e\u9a76 \u53c2\u6570 \u3002 \u53c2\u6570 : control ( carla . VehicleControl ) apply _ physics _ control ( self , physics _ control ) \u5728 \u4e0b \u4e00\u4e2a tick \u4e2d \u5e94\u7528 \u7269\u7406 \u63a7\u5236 \u5bf9\u8c61 \uff0c \u5176\u4e2d \u5305\u542b \u5c06 \u8f66\u8f86 \u5b9a\u4e49 \u4e3a \u5b9e\u4f53 \u7684 \u53c2\u6570 \u3002 \u4f8b\u5982 \uff1a \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3001 \u8d28\u91cf \u3001 \u963b\u529b \u7cfb\u6570 \u7b49\u7b49 \u3002 \u53c2\u6570 : physics _ control ( carla . VehiclePhysicsControl ) close _ door ( self , door _ idx ) \u5982\u679c \u8f66\u8f86 \u6709 \u5b83 \uff0c \u5219 \u5173\u95ed \u8f66\u95e8 door _ idx \u3002 \u4f7f\u7528 carla . VehicleDoor . All \u5173\u95ed \u6240\u6709 \u53ef\u7528 \u7684 \u95e8 \u3002 \u53c2\u6570 : door _ idx ( carla . VehicleDoor ) - \u95e8 \u7d22\u5f15 \u3002 enable _ carsim ( self , simfile _ path ) \u4e3a \u8be5 \u7279\u5b9a \u8f66\u8f86 \u542f\u7528 CarSim \u7269 \u7406\u89e3 \u7b97\u5668 \u3002 \u4e3a\u4e86 \u4f7f\u6b64 \u529f\u80fd \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \uff0c \u9700\u8981 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u8fd0\u884c \u6709\u6548 \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u3002 \u63a7\u5236 \u8f93\u5165 \u88ab \u5b9a\u5411 \u91cd\u5b9a\u5411 \u5230 CarSim \uff0c \u5b83 \u5c06 \u63d0\u4f9b \u6bcf \u4e00\u5e27 \u7684 \u8f66\u8f86 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u53c2\u6570 : simfile _ path ( str ) - \u5305\u542b \u4eff\u771f \u53c2\u6570 \u7684 . simfile \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 enable _ chrono _ physics ( self , max _ substeps , max _ substep _ delta _ time , vehicle _ json , powertrain _ json , tire _ json , base _ json _ path ) \u5728 \u751f\u6210 \u7684 \u8f66\u8f86 \u4e0a \u542f\u7528 Chrono \u7269\u7406 \u3002 \u53c2\u6570 : max _ substeps ( int ) - Chrono \u5b50 \u6b65\u9aa4 \u7684 \u6700\u5927 \u6570\u91cf \u3002 max _ substep _ delta _ time ( int ) - \u5b50\u6b65 \u7684 \u6700\u5927 \u5927\u5c0f \u3002 vehicle _ json ( str ) - \u76f8\u5bf9 \u4e8e base _ json _ path \u7684 \u8f66\u8f86 json \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 powertrain _ json ( str ) - \u76f8\u5bf9 \u4e8e base _ json _ path \u7684 \u52a8\u529b \u603b\u6210 json \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 tire _ json ( str ) - \u76f8\u5bf9 \u4e8e base _ json _ path \u7684 \u8f6e\u80ce json \u6587\u4ef6 \u3002 base _ json _ path ( str ) - \u6307\u5411 chrono / data / vehicle \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u8def\u5f84 \u3002 \u4f8b\u5982 \uff0c / home / user / carla / Build / chrono - install / share / chrono / data / vehicle / ( \u6700\u540e \u4e00\u4e2a \u5b57\u7b26 \u9700\u8981 \u662f / ) \u3002 \u6ce8\u610f : \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u4f7f\u7528 \u8be5 \u6807\u5fd7 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 ARGS = \" -- chrono \" \u3002 \u5982\u679c \u6ca1\u6709 \u8bbe\u7f6e \u6b64 \u6807\u5fd7 \uff0c \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 Chrono \u7269\u7406 \u3002 \u8b66\u544a : \u4e0d \u652f\u6301 \u78b0\u649e \u3002 \u5f53 \u68c0\u6d4b \u5230 \u78b0\u649e \u65f6 \uff0c \u7269\u7406 \u7cfb\u7edf \u5c06 \u6062\u590d \u4e3a \u9ed8\u8ba4 \u7684 Carla \u7269\u7406 \u7cfb\u7edf \u3002 is _ at _ traffic _ light ( self ) \u5f53 \u4ea4\u901a \u4ea4\u901a\u706f \u4e3a \u7ea2\u8272 \u5e76\u4e14 \u8f66\u8f86 \u4f4d\u4e8e \u5176 \u8fb9\u754c \u6846\u5185 \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u53d7\u5230 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u523b\u5ea6 \u8fd4\u56de \u4ea4\u901a \u4ea4\u901a\u706f \u662f\u5426 \u5f71\u54cd \u8be5 \u8f66\u8f86 \uff08 \u5b83 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff09 \u3002 \u8fd4\u56de : bool open _ door ( self , door _ idx ) \u5982\u679c \u8f66\u8f86 \u6709 \u8f66\u95e8 \uff0c \u5219 \u6253\u5f00 \u8f66\u95e8 door _ idx \u3002 \u4f7f\u7528 carla . VehicleDoor . All \u6253\u5f00 \u6240\u6709 \u53ef\u7528 \u7684 \u95e8 \u3002 \u53c2\u6570 : door _ idx ( carla . VehicleDoor ) - \u95e8 \u7d22\u5f15 \u3002 show _ debug _ telemetry ( self , enabled = True ) \u542f\u7528 \u6216 \u7981\u7528 \u6b64 \u8f66\u8f86 \u4e0a \u7684 \u9065\u6d4b \u3002 \u8fd9\u4f1a \u5728 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7a97\u53e3 \u4e2d \u663e\u793a \u6709\u5173 \u8f66\u8f86 \u5f53\u524d \u72b6\u6001 \u548c \u65bd\u52a0 \u5230 \u5176 \u4e0a \u7684 \u529b \u7684 \u4fe1\u606f \u3002 \u53ea\u80fd \u663e\u793a \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u7684 \u4fe1\u606f \uff0c \u56e0\u6b64 \uff0c \u5982\u679c \u542f\u7528 \u7b2c\u4e8c \u4e8c\u8f86 \u7b2c\u4e8c\u8f86 \u8f66 \uff0c \u524d \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5c06 \u81ea\u52a8 \u7981\u7528 \u3002 \u53c2\u6570 : enabled ( bool ) use _ carsim _ road ( self , enabled ) \u542f\u7528 \u6216 \u7981\u7528 CarSim \u4e0e \u5730\u5f62 \u6587\u4ef6 . simfile \u4e2d \u6307\u5b9a \u7684 \u4f7f\u7528 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64 \u9009\u9879 \u5904\u4e8e \u7981\u7528 \u72b6\u6001 \uff0c CarSim \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u65b9\u6cd5 \u6765 \u5904\u7406 \u573a\u666f \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u3002 \u53c2\u6570 : enabled ( bool ) \u8bbe\u7f6e \u5668 get _ ackermann _ controller _ settings ( self ) \u8fd4\u56de \u5e94\u7528 \u4e8e \u8be5 \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u8bbe\u7f6e \u3002 \u8fd4\u56de : carla . AckermannControllerSettings \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6765 \u68c0\u7d22 \u503c \u3002 get _ control ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd4\u56de \u6700\u540e \u4e00\u4e2a tick \u4e2d \u5e94\u7528 \u7684 \u63a7\u5236 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . VehicleControl get _ failure _ state ( self ) \u8f66\u8f86 \u6709 \u6545\u969c \u72b6\u6001 \uff0c \u8868\u660e \u5b83 \u65e0\u6cd5 \u7ee7\u7eed \u5176 \u8def\u7ebf \u3002 \u8be5 \u51fd\u6570 \u8fd4\u56de \u8f66\u8f86 \u7684 \u5177\u4f53 \u6545\u969c \u72b6\u6001 \uff0c \u6216\u8005 \u6362\u53e5 \u6362\u53e5\u8bdd \u6362\u53e5\u8bdd\u8bf4 \uff0c \u8fd4\u56de \u5bfc\u81f4 \u6545\u969c \u7684 \u539f\u56e0 \u3002 \u8fd4\u56de : carla . VehicleFailureState get _ light _ state ( self ) \u8fd4\u56de \u8868\u793a \u8f66\u8f86 \u706f \u72b6\u6001 \u7684 \u6807\u5fd7 \uff0c \u8fd9 \u8868\u793a \u54ea\u4e9b \u706f \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u6216 \u4e0d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u3002 \u8fd4\u56de : carla . VehicleLightState Setter : carla . Vehicle . set _ light _ state get _ physics _ control ( self ) \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd4\u56de \u5e94\u7528 \u4e8e \u8be5 \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u7269\u7406 \u63a7\u5236 \u3002 \u8fd4\u56de : carla . VehiclePhysicsControl \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u6765 \u68c0\u7d22 \u503c \u3002 get _ speed _ limit ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a tick \u8fd4\u56de \u5f71\u54cd \u8be5 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \uff08 \u5b83 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \uff09 \u3002 \u5f53 \u7ecf\u8fc7 \u9650\u901f \u4fe1\u53f7 \u65f6 \uff0c \u9650\u901f \u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u8f66\u8f86 \u5728 \u751f\u6210 \u540e \u53ef\u80fd \u5c31 \u6ca1\u6709 \u9650\u901f \u4fe1\u53f7 \u3002 \u8fd4\u56de : float - km / h get _ traffic _ light ( self ) \u6839\u636e \u6700\u540e \u4e00\u4e2a \u523b\u5ea6 \u68c0\u7d22 \u5f71\u54cd \u6b64 \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u5982\u679c \u6709 \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . TrafficLight get _ traffic _ light _ state ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u4e0a \u4e00\u4e2a tick \u8fd4\u56de \u5f71\u54cd \u8be5 \u8f66\u8f86 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5982\u679c \u5f53\u524d \u6ca1\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u8f66\u8f86 \uff0c \u5219 \u8fd4\u56de green \u3002 \u8fd4\u56de : carla . TrafficLightState get _ wheel _ steer _ angle ( self , wheel _ location ) \u8fd4\u56de \u8f66\u8f86 \u8f66\u8f6e \u7684 \u7269\u7406 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 \u53c2\u6570 : wheel _ location ( carla . VehicleWheelLocation ) \u8fd4\u56de : float Note : \u8fd4\u56de \u57fa\u4e8e \u8f66\u8f6e \u7269\u7406 \u539f\u7406 \u7684 \u89d2\u5ea6 \uff0c \u800c \u4e0d\u662f \u89c6\u89d2 \u3002 \u8bbe\u7f6e \u5668 set _ autopilot ( self , enabled = True , port = 8000 ) \u5728 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u7684 \u5217\u8868 \u4e2d \u6ce8\u518c \u6216 \u5220\u9664 \u8f66\u8f86 \u3002 \u5f53 True \u65f6 \uff0c \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5c06 \u79fb\u52a8 \u8f66\u8f86 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u53d1\u751f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u53c2\u6570 : enabled ( bool ) port ( uint16 ) - \u8f66\u8f86 \u8981 \u5728 \u5176\u4e2d \u6ce8\u518c \u6216 \u4e0d \u5217\u51fa \u7684 TM - Server \u7aef\u53e3 \u3002 \u5982\u679c \u4f20\u9012 None \uff0c \u5b83 \u5c06 \u8003\u8651 \u9ed8\u8ba4 8000 \u7aef\u53e3 \u4e0a \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 set _ light _ state ( self , light _ state ) \u4f7f\u7528 \u8868\u793a \u706f\u5149 \u6253\u5f00 \u548c \u5173\u95ed \u7684 \u6807\u5fd7 \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u53c2\u6570 : light _ state ( carla . VehicleLightState ) \u83b7\u53d6 \u5668 : carla . Vehicle . get _ light _ state set _ wheel _ steer _ direction ( self , wheel _ location , angle _ in _ deg ) snippet \u2192 \u76f4\u89c2 \u5730 \u8bbe\u7f6e \u8f66\u8f6e \u7684 \u89d2\u5ea6 \u3002 \u53c2\u6570 : wheel _ location ( carla . VehicleWheelLocation ) angle _ in _ deg ( float ) \u8b66\u544a : \u4e0d \u5f71\u54cd \u8f66\u8f86 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . VehicleAckermannControl \u4f7f\u7528 \u963f\u514b \u963f\u514b\u66fc \u9a7e\u9a76 \u63a7\u5236 \u88c5\u7f6e \u7ba1\u7406 \u8f66\u8f86 \u7684 \u57fa\u672c \u8fd0\u52a8 \u3002 \u5b9e\u4f8b \u53d8\u91cf steer ( float ) \u6240 \u9700 \u8f6c\u5411 ( rad ) \u3002 \u6b63\u503c \u4f4d\u4e8e \u53f3\u4fa7 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 steer _ speed ( float ) \u8f6c\u5411 \u901f\u5ea6 ( rad / s ) \u3002 \u96f6 \u8f6c\u5411 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u610f\u5473 \u610f\u5473\u7740 \u5c3d\u5feb \u6539\u53d8 \u8f6c\u5411 \u89d2 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 speed ( float ) \u6240 \u9700 \u901f\u5ea6 ( m / s ) \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 acceleration ( float ) \u6240 \u9700 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 ( m / s2 ) \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 jerk ( float ) \u6240 \u9700 \u7684 jerk ( m / s3 ) \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 \u65b9\u6cd5 __ init __ ( self , steer = 0.0 , steer _ speed = 0.0 , speed = 0.0 , acceleration = 0.0 , jerk = 0.0 ) \u53c2\u6570 : steer ( float ) steer _ speed ( float ) speed ( float ) acceleration ( float ) jerk ( float ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . AckermannVehicleControl ) __ ne __ ( self , other = carla . AckermannVehicleControl ) __ str __ ( self ) carla . VehicleControl \u4f7f\u7528 \u5178\u578b \u7684 \u9a7e\u9a76 \u63a7\u5236 \u6765 \u7ba1\u7406 \u8f66\u8f86 \u7684 \u57fa\u672c \u8fd0\u52a8 \u3002 \u5b9e\u4f8b \u53d8\u91cf throttle ( float ) \u7528\u4e8e \u63a7\u5236 \u8f66\u8f86 \u6cb9\u95e8 \u7684 \u6807\u91cf \u503c [ 0.0 , 1.0 ] \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 steer ( float ) \u7528\u4e8e \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 \u7684 \u6807\u91cf \u503c [ - 1.0 , 1.0 ] \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 brake ( float ) \u7528\u4e8e \u63a7\u5236 \u8f66\u8f86 \u5236\u52a8 \u7684 \u6807\u91cf \u503c [ 0.0 , 1.0 ] \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 hand _ brake ( bool ) \u786e\u5b9a \u662f\u5426 \u4f7f\u7528 \u624b\u5239 \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 reverse ( bool ) \u786e\u5b9a \u8f66\u8f86 \u662f\u5426 \u5411 \u540e \u79fb\u52a8 \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 manual _ gear _ shift ( bool ) \u786e\u5b9a \u662f\u5426 \u901a\u8fc7 \u624b\u52a8 \u6362\u6863 \u6765 \u63a7\u5236 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 gear ( int ) \u6307\u793a \u8f66\u8f86 \u884c\u9a76 \u7684 \u6863\u4f4d \u3002 \u65b9\u6cd5 __ init __ ( self , throttle = 0.0 , steer = 0.0 , brake = 0.0 , hand _ brake = False , reverse = False , manual _ gear _ shift = False , gear = 0 ) \u53c2\u6570 : throttle ( float ) - [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002 steer ( float ) - [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002 brake ( float ) - [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002 hand _ brake ( bool ) reverse ( bool ) manual _ gear _ shift ( bool ) gear ( int ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . VehicleControl ) __ ne __ ( self , other = carla . VehicleControl ) __ str __ ( self ) carla . VehicleDoor \u53ef\u80fd \u7684 \u7d22\u5f15 \u8868\u793a \u53ef\u80fd \u6253\u5f00 \u7684 \u95e8 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u67d0\u4e9b \u8f66\u8f86 \u5e76\u975e \u6240\u6709 \u53ef\u80fd \u7684 \u8f66\u95e8 \u90fd \u80fd \u6253\u5f00 \u3002 \u5b9e\u4f8b \u53d8\u91cf FL \u5de6 \u524d\u95e8 \u3002 FR \u53f3 \u524d\u95e8 \u3002 RL \u5de6 \u540e\u95e8 \u3002 RR \u53f3 \u540e\u95e8 \u3002 All \u4ee3\u8868 \u6240\u6709 \u95e8 \u3002 carla . VehicleFailureState \u5305\u542b \u8f66\u8f86 \u65e0\u6cd5 \u6062\u590d \u7684 \u4e0d\u540c \u6545\u969c \u72b6\u6001 \u7684 \u679a\u4e3e \u3002 \u8fd9\u4e9b \u7531 get _ failure _ state ( ) \u8fd4\u56de \uff0c \u5f53\u524d \u4ec5 \u5b9e\u73b0 \u4e86 Rollover \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE Rollover Engine TirePuncture carla . VehicleLightState \u6982\u62ec \u8f66\u8f86 \u706f \u72b6\u6001 \u7684 \u7c7b \uff0c \u8fd9\u4e9b \u53ef\u4ee5 \u7528\u4f5c \u6807\u5fd7 \u3002 \u4f8b\u5982 \uff1a VehicleLightState . HighBeam & VehicleLightState . Brake \u5f53 \u4e24\u8005 \u90fd \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u65f6 \uff0c \u5c06 \u8fd4\u56de True \u3002 \u5728 \u4efb\u4f55 \u60c5\u51b5 \u4e0b \uff0c \u706f \u9ed8\u8ba4 \u90fd \u662f \u5173\u95ed \u7684 \uff0c \u5e76\u4e14 \u5e94\u8be5 \u7531 \u7528\u6237 \u901a\u8fc7 \u811a\u672c \u8fdb\u884c \u7ba1\u7406 \u3002 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u81ea\u52a8 \u95ea\u70c1 \u3002 \u8b66\u544a \uff1a \u76ee\u524d \uff0c \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u51c6\u5907 \u597d \u4f7f\u7528 \u6b64 \u529f\u80fd \uff0c \u8fd9 \u5c06 \u5728 \u4ee5\u540e \u7684 \u66f4\u65b0 \u4e2d \u6dfb\u52a0 \u5230 \u6240\u6709 \u8f66\u8f86 \u4e2d \u3002 \u5b9e\u4f8b \u53d8\u91cf NONE \u6240\u6709 \u706f\u5747 \u5173\u95ed \u3002 Position LowBeam HighBeam Brake RightBlinker LeftBlinker Reverse Fog Interior Special1 \u8fd9 \u662f \u4e3a \u67d0\u4e9b \u5177\u6709 \u7279\u6b8a \u706f \uff08 \u4f8b\u5982 \u8b66\u62a5 \u8b66\u62a5\u5668 \uff09 \u7684 \u8f66\u8f86 \u4fdd\u7559 \u7684 \u3002 Special2 \u8fd9 \u662f \u4e3a \u67d0\u4e9b \u5177\u6709 \u7279\u6b8a \u706f \uff08 \u4f8b\u5982 \u8b66\u62a5 \u8b66\u62a5\u5668 \uff09 \u7684 \u8f66\u8f86 \u4fdd\u7559 \u7684 \u3002 All \u6240\u6709 \u706f\u5747\u4eae \u8d77 \u3002 carla . VehiclePhysicsControl \u603b\u7ed3 \u5c06 \u7528\u4e8e \u5c06 carla . Vehicle \u4eff\u771f \u4e3a \u7269\u7406 \u5bf9\u8c61 \u7684 \u53c2\u6570 \u3002 \u4e0d\u8fc7 \uff0c \u8f66\u8f6e \u7684 \u5177\u4f53 \u8bbe\u7f6e \u662f \u4f7f\u7528 carla . WheelPhysicsControl \u89c4\u5b9a \u7684 \u3002 \u5b9e\u4f8b \u53d8\u91cf torque _ curve ( list ( carla . Vector2D ) ) \u66f2\u7ebf \uff0c \u6307\u793a \u5728 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u7279\u5b9a RPM \u4e0b \u6d4b\u91cf \u7684 \u626d\u77e9 \uff08 \u4ee5 Nm \u4e3a \u5355\u4f4d \uff09 \u3002 max _ rpm ( float ) \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u6700\u5927 \u8f6c\u901f \u3002 moi ( float - kg * m 2 ) \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3002 damping _ rate _ full _ throttle ( float ) \u6cb9\u95e8 \u6700\u5927 \u65f6 \u7684 \u963b\u5c3c \u963b\u5c3c\u6bd4 \u3002 damping _ rate _ zero _ throttle _ clutch _ engaged ( float ) \u79bb\u5408 \u79bb\u5408\u5668 \u63a5\u5408 \u65f6 \u6cb9\u95e8 \u4e3a \u96f6\u65f6 \u7684 \u963b\u5c3c \u963b\u5c3c\u6bd4 \u3002 damping _ rate _ zero _ throttle _ clutch _ disengaged ( float ) \u5f53 \u6cb9\u95e8 \u4e3a \u96f6\u4e14 \u79bb\u5408 \u79bb\u5408\u5668 \u5206\u79bb \u65f6 \u7684 \u963b\u5c3c \u963b\u5c3c\u6bd4 \u3002 use _ gear _ autobox ( bool ) \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u914d\u5907 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u3002 gear _ switch _ time ( float - seconds ) \u9f7f\u8f6e \u4e4b\u95f4 \u7684 \u5207\u6362 \u65f6\u95f4 \u3002 clutch _ strength ( float - kg * m 2 / s ) \u8f66\u8f86 \u7684 \u79bb\u5408 \u79bb\u5408\u5668 \u5f3a\u5ea6 \u3002 final _ ratio ( float ) \u4ece \u53d8\u901f \u53d8\u901f\u7bb1 \u5230 \u8f66\u8f6e \u7684 \u56fa\u5b9a \u6bd4\u7387 \u3002 forward _ gears ( list ( carla . GearPhysicsControl ) ) \u5b9a\u4e49 \u8f66\u8f86 \u9f7f\u8f6e \u7684 \u5bf9\u8c61 \u5217\u8868 \u3002 mass ( float - kilograms ) \u8f66\u8f86 \u7684 \u8d28\u91cf \u3002 drag _ coefficient ( float ) \u8f66\u8f86 \u5e95\u76d8 \u7684 \u963b\u529b \u7cfb\u6570 \u3002 center _ of _ mass ( carla . Vector3D - \u7c73 ) \u8f66\u8f86 \u7684 \u8d28\u5fc3 \u3002 steering _ curve ( list ( carla . Vector2D ) ) \u6307\u793a \u7279\u5b9a \u524d\u8fdb \u901f\u5ea6 \u7684 \u6700\u5927 \u8f6c\u5411 \u7684 \u66f2\u7ebf \u3002 use _ sweep _ wheel _ collision ( bool ) \u542f\u7528 \u8f66\u8f6e \u78b0\u649e \u626b\u63cf \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u662f \u7981\u7528 \u7684 \uff0c \u5e76\u4e14 \u5b83 \u4e3a \u6bcf\u4e2a \u8f6e\u5b50 \u4f7f\u7528 \u4ece\u8f74\u5230 \u5730\u677f \u7684 \u7b80\u5355 \u5149\u7ebf \u6295\u5c04 \u3002 \u6b64 \u9009\u9879 \u63d0\u4f9b \u4e86 \u66f4\u597d \u7684 \u78b0\u649e \u6a21\u578b \uff0c \u5176\u4e2d \u68c0\u67e5 \u8f66\u8f6e \u7684 \u6574\u4e2a \u4f53\u79ef \u662f\u5426 \u53d1\u751f \u78b0\u649e \u3002 wheels ( list ( carla . WheelPhysicsControl ) ) \u8f6e\u5b50 \u7269\u7406 \u5bf9\u8c61 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5e94\u8be5 \u6709 4 \u4e2a \u5143\u7d20 \uff0c \u5176\u4e2d \u7d22\u5f15 0 \u5bf9\u5e94 \u4e8e \u5de6 \u524d\u8f6e \uff0c \u7d22\u5f15 1 \u5bf9\u5e94 \u4e8e \u53f3 \u524d\u8f6e \uff0c \u7d22\u5f15 2 \u5bf9\u5e94 \u4e8e \u5de6 \u540e\u8f6e \uff0c \u7d22\u5f15 3 \u5bf9\u5e94 \u4e8e \u53f3 \u540e\u8f6e \u3002 \u5bf9\u4e8e \u4e24\u8f6e \u8f66\u8f86 \uff0c \u524d\u8f6e \u548c \u540e\u8f6e \u8bbe\u7f6e \u76f8\u540c \u7684 \u503c \u3002 \u65b9\u6cd5 __ init __ ( self , torque _ curve = [ [ 0.0 , 500.0 ] , [ 5000.0 , 500.0 ] ] , max _ rpm = 5000.0 , moi = 1.0 , damping _ rate _ full _ throttle = 0.15 , damping _ rate _ zero _ throttle _ clutch _ engaged = 2.0 , damping _ rate _ zero _ throttle _ clutch _ disengaged = 0.35 , use _ gear _ autobox = True , gear _ switch _ time = 0.5 , clutch _ strength = 10.0 , final _ ratio = 4.0 , forward _ gears = list ( ) , drag _ coefficient = 0.3 , center _ of _ mass = [ 0.0 , 0.0 , 0.0 ] , steering _ curve = [ [ 0.0 , 1.0 ] , [ 10.0 , 0.5 ] ] , wheels = list ( ) , use _ sweep _ wheel _ collision = False , mass = 1000.0 ) VehiclePhysicsControl \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u3002 \u53c2\u6570 : torque _ curve ( list ( carla . Vector2D ) ) max _ rpm ( float ) moi ( float - kg * m 2 ) damping _ rate _ full _ throttle ( float ) damping _ rate _ zero _ throttle _ clutch _ engaged ( float ) damping _ rate _ zero _ throttle _ clutch _ disengaged ( float ) use _ gear _ autobox ( bool ) gear _ switch _ time ( float - seconds ) clutch _ strength ( float - kg * m 2 / s ) final _ ratio ( float ) forward _ gears ( list ( carla . GearPhysicsControl ) ) drag _ coefficient ( float ) center _ of _ mass ( carla . Vector3D ) steering _ curve ( carla . Vector2D ) wheels ( list ( carla . WheelPhysicsControl ) ) use _ sweep _ wheel _ collision ( bool ) mass ( float - kilograms ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . VehiclePhysicsControl ) __ ne __ ( self , other = carla . VehiclePhysicsControl ) __ str __ ( self ) carla . VehicleWheelLocation enum \u4ee3\u8868 \u8f66\u8f86 \u4e0a \u6bcf\u4e2a \u8f66\u8f6e \u7684 \u4f4d\u7f6e \u3002 \u7528\u4e8e \u5728 carla . Vehicle . set _ wheel _ steer _ direction \u6216 carla . Vehicle . get _ wheel _ steer _ angle \u4e2d \u8bbe\u7f6e \u89d2\u5ea6 \u65f6 \u8bc6\u522b \u76ee\u6807 \u8f66\u8f6e \u3002 \u5b9e\u4f8b \u53d8\u91cf FL _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u5de6 \u524d\u8f6e \u3002 FR _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u53f3 \u524d\u8f6e \u3002 BL _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u5de6 \u540e\u8f6e \u3002 BR _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u53f3 \u540e\u8f6e \u3002 Front _ Wheel \u4e24\u8f6e \u8f66\u8f86 \u7684 \u524d\u8f6e \u3002 Back _ Wheel \u4e24\u8f6e \u8f66\u8f86 \u7684 \u540e\u8f6e \u3002 carla . Walker \u4ece carla . Actor \u7ee7\u627f \u8be5\u7c7b \u4ece carla . Actor \u7ee7\u627f \u5e76 \u5b9a\u4e49 \u4eff\u771f \u4e2d \u7684 \u884c\u4eba \u3002 Walkers \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 actor \uff0c \u53ef\u4ee5 \u7531 AI ( carla . WalkerAIController ) \u63a7\u5236 \uff0c \u4e5f \u53ef\u4ee5 \u901a\u8fc7 \u811a\u672c \u624b\u52a8 \u63a7\u5236 \uff0c \u4f7f\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . WalkerControl \u6765 \u79fb\u52a8 \u5b83\u4eec \u53ca\u5176 \u9aa8\u9abc \u3002 \u65b9\u6cd5 apply _ control ( self , control ) \u5728 \u4e0b \u4e00\u4e2a \u523b\u5ea6 \u4e0a \uff0c \u63a7\u4ef6 \u5c06 \u4ee5 \u7279\u5b9a \u901f\u5ea6 \u5411 \u7279\u5b9a \u65b9\u5411 \u79fb\u52a8 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u4e5f \u53ef\u4ee5 \u547d\u4ee4 \u8df3\u8dc3 \u3002 \u53c2\u6570 : control ( carla . WalkerControl ) blend _ pose ( self , blend _ value ) \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u4e0e \u52a8\u753b \u7684 \u6df7\u5408 \u503c \u3002 \u8fd9\u4e9b \u503c \u53ef\u4ee5 \u662f \uff1a 0 : \u4ec5 \u663e\u793a \u52a8\u753b 1 : \u4ec5 \u663e\u793a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \uff08 \u7531 \u7528\u6237 \u4f7f\u7528 set _ bones ( ) \u8bbe\u7f6e \uff09 any other : \u5c06 \u5728 \u52a8\u753b \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u4e4b\u95f4 \u63d2\u5165 \u6240\u6709 \u9aa8\u9abc \u4f4d\u7f6e \u3002 \u53c2\u6570 : blend _ value ( float - value from 0 to 1 with the blend percentage ) hide _ pose ( self ) \u9690\u85cf \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u5e76 \u663e\u793a \u52a8\u753b \uff08 \u4e0e \u8c03\u7528 blend _ pose ( 0 ) \u76f8\u540c \uff09 \u3002 show _ pose ( self ) \u663e\u793a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u5e76 \u9690\u85cf \u52a8\u753b \uff08 \u4e0e \u8c03\u7528 blend _ pose ( 1 ) \u76f8\u540c \uff09 \u3002 \u8bbe\u7f6e \u5668 get _ bones ( self ) \u8fd4\u56de \u5305\u542b \u6765\u81ea \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6240\u6709 \u9aa8\u9abc \u53d8\u6362 \u7684 \u7ed3\u6784 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u6211\u4eec \u5728 \u4e09\u4e2a \u4e0d\u540c \u7684 \u7a7a\u95f4 \u4e2d \u83b7\u53d6 \u540d\u79f0 \u53ca\u5176 \u53d8\u6362 \uff1a name : \u9aa8\u9abc \u540d\u79f0 world : \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u53d8\u6362 component : \u57fa\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u67a2\u8f74 \u8fdb\u884c \u53d8\u6362 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002 \u8fd4\u56de : carla . WalkerBoneControlOut Setter : carla . Walker . set _ bones get _ control ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd4\u56de \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u5e94\u7528 \u4e8e \u6b64\u884c \u4eba \u7684 \u63a7\u5236 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . WalkerControl get _ pose _ from _ animation ( self ) \u590d\u5236 \u5f53\u524d \u52a8\u753b \u5e27 \u4f5c\u4e3a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u3002 \u6700\u521d \uff0c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u662f \u4e2d\u6027 \u884c\u4eba \u59ff\u52bf \u3002 \u8bbe\u7f6e \u5668 set _ bones ( self , bones ) \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u9aa8\u9abc \u3002 \u5bf9\u4e8e \u6211\u4eec \u60f3\u8981 \u8bbe\u7f6e \u7684 \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u5bf9 \u53d8\u6362 \u3002 \u4ec5\u4f1a \u8bbe\u7f6e \u6b64 \u5217\u8868 \u4e2d \u7684 \u9aa8\u9abc \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u60a8 \u9700\u8981 \u8bbe\u7f6e \u4ee5\u4e0b \u4fe1\u606f \uff1a name : \u9aa8\u9abc \u540d\u79f0 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002 \u53c2\u6570 : bones ( carla . WalkerBoneControlIn - \u6211\u4eec \u60f3\u8981 \u8bbe\u7f6e \u7684 \u9aa8\u9abc \u5bf9 \uff08 bone _ name \uff0c transform \uff09 \u7684 \u5217\u8868 ) \u83b7\u53d6 \u5668 : carla . Walker . get _ bones \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . WalkerAIController \u4ece carla . Actor \u7ee7\u627f \u5bf9 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8fdb\u884c AI \u63a7\u5236 \u7684 \u7c7b \u3002 \u63a7\u5236 \u63a7\u5236\u5668 \u88ab \u5b9a\u4e49 \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5b83\u4eec \u4e0e \u5176\u4ed6 \u63a7\u5236 \u63a7\u5236\u5668 \u6709 \u5f88\u5927 \u4e0d\u540c \u3002 \u5b83\u4eec \u5728 \u521b\u5efa \u8fc7\u7a0b \u4e2d \u9700\u8981 \u9644\u52a0 \u5230\u7236 Actor \uff0c \u8fd9\u662f \u5b83\u4eec \u5c06 \u63a7\u5236 \u7684 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff08 \u5982\u679c \u60a8 \u5c1a\u672a \u4e86\u89e3 \u5982\u4f55 \u751f\u6210 Actor \uff0c \u8bf7 \u67e5\u770b carla . World \uff09 \u3002 \u4ed6\u4eec \u8fd8 \u9700\u8981 \u4e00\u4e2a \u7279\u6b8a \u7684 \u84dd\u56fe \uff08 \u5df2 \u5728 carla . BlueprintLibrary \u4e2d \u5b9a\u4e49 \u4e3a \u201c controller . ai . walker \u201d \uff09 \u3002 \u8fd9\u662f \u4e00\u4e2a \u7a7a \u7684 \u84dd\u56fe \uff0c \u56e0\u4e3a \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u5728 \u6a21\u62df \u4e2d\u662f \u4e0d \u53ef\u89c1 \u7684 \uff0c \u4f46\u4f1a \u8ddf\u968f \u5176\u7236 \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u6307\u793a \u6bcf \u4e00\u6b65 \u3002 \u65b9\u6cd5 go _ to _ location ( self , destination ) \u8bbe\u7f6e \u884c\u4eba \u5c06 \u5230\u8fbe \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u53c2\u6570 : destination ( carla . Location - \u7c73 ) start ( self ) \u4e3a \u5176\u7236 \u884c\u4eba \u542f\u7528 AI \u63a7\u5236 \u3002 stop ( self ) snippet \u2192 \u7981\u7528 \u5176\u7236 \u884c\u4eba \u7684 AI \u63a7\u5236 \u3002 \u8bbe\u7f6e \u5668 set _ max _ speed ( self , speed = 1.4 ) \u8bbe\u7f6e \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u901f\u5ea6 \uff08 \u4ee5\u7c73 \u6bcf\u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u53c2\u6570 : speed ( float - m / s ) - \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u8f7b\u677e \u6b65\u884c \u901f\u5ea6 \u3002 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . WalkerBoneControlIn \u8be5\u7c7b \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u63d0\u4f9b \u9aa8\u9abc \u7279\u5b9a \u7684 \u64cd\u4f5c \u3002 \u4e3a\u4e86 \u6e05\u6670 \u8d77 \u89c1 \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u9aa8\u9abc \u5df2\u7ecf \u7edf\u4e00 \uff0c \u5e76\u4e14 \u5e94\u7528 \u4e8e \u6bcf\u4e2a \u9aa8\u9abc \u7684 \u53d8\u6362 \u59cb\u7ec8 \u76f8\u5bf9 \u4e8e \u5176\u7236 \u9aa8\u9abc \u3002 \u8bf7 \u67e5\u770b \u6b64\u5904 \uff0c \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u521b\u5efa \u52a9\u884c\u5668 \u5e76 \u5b9a\u4e49 \u5176 \u8fd0\u52a8 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5b9e\u4f8b \u53d8\u91cf bone _ transforms ( list ( [ name , transform ] ) ) \u5217\u51fa \u6211\u4eec \u8981 \u8bbe\u7f6e \u7684 \u6bcf\u4e2a \u9aa8\u9abc \u7684 \u6570\u636e \uff1a name : \u9aa8\u9abc \u540d\u79f0 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002 \u65b9\u6cd5 __ init __ ( self , list ( name , transform ) ) \u521d\u59cb \u521d\u59cb\u5316 \u4e00\u4e2a \u5305\u542b \u8981 \u5728 \u523b\u5ea6 \u4e0a \u5e94\u7528 \u7684 \u79fb\u52a8 \u7684 \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u4e0e \u9aa8\u9abc \u7684 \u540d\u79f0 \u548c \u5c06 \u5e94\u7528 \u4e8e \u5b83 \u7684 \u53d8\u6362 \u4e00\u8d77 \u5217\u51fa \u3002 \u53c2\u6570 : list ( name , transform ) ( tuple ) \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . WalkerBoneControlOut \u8be5\u7c7b \u7528\u4e8e \u8fd4\u56de \u884c\u4eba \u7684 \u6240\u6709 \u9aa8\u9abc \u4f4d\u7f6e \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u6211\u4eec \u5f97\u5230 \u5b83 \u7684 \u540d\u79f0 \u53ca\u5176 \u5728 \u4e09\u4e2a \u4e0d\u540c \u7a7a\u95f4 \uff08 \u4e16\u754c \u3001 \u6f14\u5458 \u548c \u76f8\u5bf9 \uff09 \u4e2d \u7684 \u53d8\u6362 \u3002 \u5b9e\u4f8b \u53d8\u91cf bone _ transforms ( list ( [ name , world , actor , relative ] ) ) \u6bcf\u4e2a \u9aa8\u9abc \u7684 \u4e00\u4e2a \u6761\u76ee \u5217\u8868 \uff0c \u5305\u542b \u4ee5\u4e0b \u4fe1\u606f \uff1a name : \u9aa8\u9abc \u540d\u79f0 world : \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u53d8\u6362 component : \u57fa\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u67a2\u8f74 \u8fdb\u884c \u53d8\u6362 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002 \u65b9\u6cd5 \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . WalkerControl \u6b64\u7c7b \u5b9a\u4e49 \u4e86 \u53ef\u4ee5 \u5411 carla . Walker \u547d\u4ee4 \u901a\u8fc7 \u811a\u672c \u63a7\u5236 \u5b83 \u7684 \u7279\u5b9a \u65b9\u5411 \u3002 \u53ef\u4ee5 \u4e3a \u884c\u4eba \u89e3\u51b3 AI \u63a7\u5236 \uff0c \u4f46 \u7528\u4e8e \u6b64 \u76ee\u7684 \u7684 \u63a7\u4ef6 \u662f carla . WalkerAIController \u3002 \u5b9e\u4f8b \u53d8\u91cf direction ( carla . Vector3D ) \u4f7f\u7528 \u4e0e \u884c\u4eba \u65b9\u5411 \u76f8\u5bf9 \u5e94 \u7684 \u5168\u5c40 \u5750\u6807 \u7684 \u5411\u91cf \u3002 speed ( float - m / s ) \u63a7\u5236 \u884c\u4eba \u901f\u5ea6 \u7684 \u6807\u91cf \u503c \u3002 jump ( bool ) \u5982\u679c \u4e3a True \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5c06 \u6267\u884c \u8df3\u8dc3 \u3002 \u65b9\u6cd5 __ init __ ( self , direction = [ 1.0 , 0.0 , 0.0 ] , speed = 0.0 , jump = False ) \u53c2\u6570 : direction ( carla . Vector3D ) speed ( float - m / s ) jump ( bool ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . WalkerControl ) \u548c other \u6bd4\u8f83 \u6bcf\u4e2a \u53d8\u91cf \uff0c \u5982\u679c \u5b83\u4eec \u90fd \u76f8\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 __ ne __ ( self , other = carla . WalkerControl ) \u548c other \u6bd4\u8f83 \u6bcf\u4e2a \u53d8\u91cf \uff0c \u5982\u679c \u5176\u4e2d \u4efb\u4f55 \u4e00\u4e2a \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 __ str __ ( self ) carla . Waypoint CARLA \u4e2d \u7684 \u822a\u8def \u70b9 \u88ab \u63cf\u8ff0 \u4e3a 3D \u5b9a\u5411 \u70b9 \u3002 \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u53ef\u4ee5 \u5b9a\u4f4d \u9053\u8def \u4e2d \u7684 \u8def\u70b9 \u5e76 \u6839\u636e \u8f66\u9053 \u786e\u5b9a \u5176 \u65b9\u5411 \u3002 \u4ed6\u4eec \u8fd8 \u5b58\u50a8 \u5c5e\u4e8e \u8be5\u70b9 \u7684 \u6709\u5173 \u5176 \u8f66\u9053 \u548c \u8f66\u9053 \u6807\u8bb0 \u7684 \u9053\u8def \u4fe1\u606f \u3002 \u6709\u5173 \u822a\u8def \u70b9 \u548c \u8def\u7ebf API \u7684 \u6240\u6709 \u4fe1\u606f \u5747 \u6309 OpenDRIVE \u6587\u4ef6 \u63d0\u4f9b \u7684 \u65b9\u5f0f \u68c0\u7d22 \u3002 \u4e00\u65e6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bf7\u6c42 \u5730\u56fe \u5bf9\u8c61 \uff0c \u5c31 \u4e0d\u518d \u9700\u8981 \u901a\u4fe1 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( int ) \u6807\u8bc6 \u6807\u8bc6\u7b26 \u662f \u4f7f\u7528 \u4e0e OpenDRIVE \u51e0\u4f55 \u4e2d \u7684 \u6240\u8ff0 \u70b9 \u76f8\u5bf9 \u5e94 \u7684 road , section , lane \u548c s \u503c \u7684 \u54c8\u5e0c \u7ec4\u5408 \u751f\u6210 \u7684 \u3002 s \u7cbe\u5ea6 \u8bbe\u7f6e \u4e3a 2 \u5398\u7c73 \uff0c \u56e0\u6b64 \u5728 \u540c\u4e00 \u9053\u8def \u3001 \u8def\u6bb5 \u548c \u8f66\u9053 \u8ddd\u79bb \u4e2d\u8ddd\u79bb \u5c0f\u4e8e 2 \u5398\u7c73 \u7684 2 \u4e2a \u822a\u8def \u70b9\u5c06 \u5177\u6709 \u76f8\u540c \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 transform ( carla . Transform ) \u6839\u636e \u5f53\u524d \u8f66\u9053 \u4fe1\u606f \u786e\u5b9a \u8def\u70b9 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u8be5 \u6570\u636e \u662f \u5728 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u8bbf\u95ee \u65f6 \u8ba1\u7b97 \u7684 \u3002 \u5f53 \u521b\u5efa \u5927\u91cf \u822a\u8def \u70b9 \u4f46 \u4e0d \u9700\u8981 \u5b83\u4eec \u7684 \u7279\u5b9a \u8f6c\u6362 \u65f6 \uff0c \u5b83 \u4e0d\u4f1a \u7acb\u5373 \u521b\u5efa \uff0c \u4ee5 \u51cf\u8f7b \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u3002 road _ id ( int ) OpenDRIVE \u9053\u8def \u7684 id \u3002 section _ id ( int ) OpenDRIVE \u90e8\u5206 \u7684 id \uff0c \u57fa\u4e8e \u5b83\u4eec \u6700\u521d \u5b9a\u4e49 \u7684 \u987a\u5e8f \u3002 is _ junction ( bool ) \u5982\u679c \u5f53\u524d \u8def\u70b9 \u4f4d\u4e8e OpenDRIVE \u5b9a\u4e49 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \uff0c \u5219 \u4e3a True \u3002 junction _ id ( int ) OpenDRIVE \u7ed3\u70b9 \u7684 id \u3002 \u6709\u5173 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 OpenDRIVE \u6587\u6863 \u3002 lane _ id ( int ) OpenDRIVE \u8f66\u9053 \u7684 id \uff0c \u8be5\u503c \u53ef\u4ee5 \u662f \u6b63\u6570 \u6216 \u8d1f\u6570 \uff0c \u8868\u793a \u5f53\u524d \u8f66\u9053 \u76f8\u5bf9 \u4e8e \u9053\u8def \u7684 \u65b9\u5411 \u3002 \u6709\u5173 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 OpenDRIVE \u6587\u6863 \u3002 s ( float ) OpenDRIVE \u5f53\u524d \u4f4d\u7f6e \u7684 s \u503c \u3002 lane _ width ( float ) \u5f53\u524d s \u5904 \u9053\u8def \u7684 \u6c34\u5e73 \u5c3a\u5bf8 \u3002 lane _ change ( carla . LaneChange ) \u5f53\u524d \u8def\u70b9 \u4f4d\u7f6e \u7684 \u8f66\u9053 \u53d8\u66f4 \u5b9a\u4e49 \uff0c \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u7684 \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u3002 \u5b83 \u8bf4\u660e \u662f\u5426 \u53ef\u4ee5 \u53d8\u9053 \u4ee5\u53ca \u671d \u54ea\u4e2a \u65b9\u5411 \u53d8\u9053 \u3002 lane _ type ( carla . LaneType ) \u5f53\u524d Waypoint \u7684 \u8f66\u9053 \u7c7b\u578b \uff0c \u57fa\u4e8e OpenDRIVE 1.4 \u6807\u51c6 \u3002 right _ lane _ marking ( carla . LaneMarking ) \u57fa\u4e8e Waypoint \u65b9\u5411 \u7684 \u53f3 \u8f66\u9053 \u6807\u8bb0 \u4fe1\u606f \u3002 left _ lane _ marking ( carla . LaneMarking ) \u57fa\u4e8e Waypoint \u65b9\u5411 \u7684 \u5de6 \u8f66\u9053 \u6807\u8bb0 \u4fe1\u606f \u3002 \u65b9\u6cd5 next ( self , distance ) \u5f53\u524d \u70b9 \u67d0\u4e2a \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u7684 \u822a\u8def \u70b9 \u5217\u8868 distance \u5b83\u4f1a \u8003\u8651 \u9053\u8def \u53ca\u5176 \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u800c \u4e0d \u6267\u884c \u4efb\u4f55 \u8f66\u9053 \u53d8\u66f4 \uff0c \u5e76 \u4e3a \u6bcf\u4e2a \u9009\u9879 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5982\u679c \u8f66\u9053 \u5728 \u6307\u5b9a \u8ddd\u79bb \u8ddd\u79bb\u5904 \u672a \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u8f66\u9053 \u76f8\u8fde \uff0c \u5219 \u5217\u8868 \u53ef\u80fd \u4e3a\u7a7a \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u83b7\u53d6 \u4e0b \u4e00\u4e2a \u822a\u8def \u70b9 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint ) next _ until _ lane _ end ( self , distance ) \u8fd4\u56de \u4ece \u8fd9\u91cc \u5230 \u8f66\u9053 \u672b\u7aef \u7684 \u8def\u70b9 \u5217\u8868 \uff0c \u8fd9\u4e9b \u8def\u70b9 \u4e4b\u95f4 \u4ee5 \u4e00\u5b9a \u8ddd\u79bb distance \u5206\u9694 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u822a\u8def \u70b9 \u4e4b\u95f4 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint ) previous ( self , distance ) \u4f46 \u4e0e \u8f66\u9053 \u76f8\u53cd \u65b9\u5411 \u7684 \u8def\u70b9 \u5217\u8868 distance \u4e0e next ( ) \u7c7b\u4f3c \uff0c \u5b83\u4f1a \u8003\u8651 \u9053\u8def \u53ca\u5176 \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u800c \u4e0d \u6267\u884c \u4efb\u4f55 \u8f66\u9053 \u53d8\u66f4 \uff0c \u5e76 \u4e3a \u6bcf\u4e2a \u9009\u9879 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5982\u679c \u8f66\u9053 \u5728 \u6307\u5b9a \u8ddd\u79bb \u8ddd\u79bb\u5904 \u672a \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u8f66\u9053 \u76f8\u8fde \uff0c \u5219 \u5217\u8868 \u53ef\u80fd \u4e3a\u7a7a \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u83b7\u53d6 \u5148\u524d \u822a\u8def \u70b9 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint ) previous _ until _ lane _ start ( self , distance ) \u8fd4\u56de \u4ece \u8fd9\u91cc \u5230 \u8f66\u9053 \u8d77\u70b9 \u7684 \u8def\u70b9 \u5217\u8868 \uff0c \u4ee5 \u4e00\u5b9a \u7684 \u8ddd\u79bb distance \u5206\u9694 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u822a\u8def \u70b9 \u4e4b\u95f4 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint ) \u8bbe\u7f6e \u5668 get _ junction ( self ) \u5982\u679c \u8def\u5f84 \u70b9 \u5c5e\u4e8e \u8def\u53e3 \uff0c \u5219 \u6b64 \u65b9\u6cd5 \u8fd4\u56de \u5173\u8054 \u7684 \u8def\u53e3 \u5bf9\u8c61 \u3002 \u5426\u5219 \u8fd4\u56de null \u3002 \u8fd4\u56de : carla . Junction get _ landmarks ( self , distance , stop _ at _ junction = False ) \u8fd4\u56de \u4ece \u5f53\u524d \u822a\u8def \u70b9\u5230 \u6307\u5b9a \u8ddd\u79bb \u7684 \u9053\u8def \u4e0a \u7684 \u5730\u6807 \u5217\u8868 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u4ece \u5f53\u524d \u822a\u8def \u70b9 \u641c\u7d22 \u5730 \u6807\u7684 \u6700\u5927 \u8ddd\u79bb \u3002 stop _ at _ junction ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u901a\u8fc7 \u8def\u53e3 \u7684 \u5730\u6807 \u641c\u7d22 \u3002 \u8fd4\u56de : list ( carla . Landmark ) get _ landmarks _ of _ type ( self , distance , type , stop _ at _ junction = False ) \u8fd4\u56de \u4ece \u5f53\u524d \u8def\u5f84 \u70b9\u5230 \u6307\u5b9a \u8ddd\u79bb \u7684 \u6307\u5b9a \u7c7b\u578b \u9053\u8def \u4e2d \u7684 \u5730\u6807 \u5217\u8868 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u4ece \u5f53\u524d \u822a\u8def \u70b9 \u641c\u7d22 \u5730 \u6807\u7684 \u6700\u5927 \u8ddd\u79bb \u3002 type ( str ) - \u8981 \u641c\u7d22 \u7684 \u5730\u6807 \u7c7b\u578b \u3002 stop _ at _ junction ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u901a\u8fc7 \u8def\u53e3 \u7684 \u5730\u6807 \u641c\u7d22 \u3002 \u8fd4\u56de : list ( carla . Landmark ) get _ left _ lane ( self ) \u6839\u636e \u5f53\u524d \u8def\u70b9 \u7684 \u65b9\u5411 \u5728 \u5de6 \u8f66\u9053 \u4e2d\u5fc3 \u751f\u6210 \u8def\u70b9 \uff0c \u540c\u65f6 \u8003\u8651 \u8be5 \u4f4d\u7f6e \u662f\u5426 \u5141\u8bb8 \u53d8\u9053 \u3002 \u5982\u679c \u8f66\u9053 \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 \u8fd4\u56de : carla . Waypoint get _ right _ lane ( self ) \u6839\u636e \u5f53\u524d \u8def\u70b9 \u7684 \u65b9\u5411 \u5728 \u53f3 \u8f66\u9053 \u4e2d\u5fc3 \u751f\u6210 \u8def\u70b9 \uff0c \u5e76 \u8003\u8651 \u8be5 \u4f4d\u7f6e \u662f\u5426 \u5141\u8bb8 \u53d8\u9053 \u3002 \u5982\u679c \u8f66\u9053 \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 \u8fd4\u56de : carla . Waypoint \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) carla . WeatherParameters \u6b64\u7c7b \u5b9a\u4e49 \u4e86 \u5305\u542b \u5149\u7167 \u548c \u5929\u6c14 \u89c4\u8303 \u7684 \u5bf9\u8c61 \uff0c \u8fd9\u4e9b \u89c4\u8303 \u7a0d\u540e \u53ef\u4ee5 \u5e94\u7528 \u5728 carla . World \u4e2d \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9\u4e9b \u6761\u4ef6 \u4ec5 \u5f71\u54cd sensor . camera . rgb \u3002 \u5b83\u4eec \u65e2 \u4e0d \u5f71\u54cd \u6f14\u5458 \u7684 \u7269\u7406 \u7279\u6027 \uff0c \u4e5f \u4e0d \u5f71\u54cd \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8fd9\u4e9b \u53c2\u6570 \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u72ec\u7acb \u4e8e \u5176\u4ed6 \u53c2\u6570 \u8d77 \u4f5c\u7528 \u3002 \u589e\u52a0 \u964d\u96e8 \u96e8\u91cf \u964d\u96e8\u91cf \u4e0d\u4f1a \u81ea\u52a8 \u5f62\u6210 \u6c34\u5751 \uff0c \u4e5f \u4e0d\u4f1a \u6539\u53d8 \u9053\u8def \u7684 \u6e7f\u5ea6 \u3002 \u8fd9 \u53ef\u4ee5 \u5b9e\u73b0 \u66f4\u597d \u7684 \u5b9a\u5236 \uff0c \u4f46 \u4e5f \u610f\u5473 \u610f\u5473\u7740 \u9700\u8981 \u7f16\u5199 \u73b0\u5b9e \u6761\u4ef6 \u7684 \u811a\u672c \u3002 \u7136\u800c \uff0c \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u5b9e\u9645 \u8fd0\u884c \u7684 \u52a8\u6001 \u5929\u6c14 \u6761\u4ef6 \u7684 \u793a\u4f8b \u3002 \u5b9e\u4f8b \u53d8\u91cf cloudiness ( float ) \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \uff0c 0 \u8868\u793a \u6674\u6717 \u7684 \u5929\u7a7a \uff0c 100 \u8868\u793a \u5b8c\u5168 \u88ab \u4e91 \u8986\u76d6 \u3002 precipitation ( float ) \u964d\u96e8 \u5f3a\u5ea6 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \uff0c 0 \u8868\u793a \u65e0\u96e8 \uff0c 100 \u8868\u793a \u5927\u96e8 \u3002 precipitation _ deposits ( float ) \u786e\u5b9a \u6c34\u5751 \u7684 \u521b\u5efa \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \uff0c 0 \u8868\u793a \u5b8c\u5168 \u6ca1\u6709 \u6c34 \uff0c 100 \u8868\u793a \u9053\u8def \u5b8c\u5168 \u88ab \u6c34 \u8986\u76d6 \u3002 \u6c34\u5751 \u662f \u7528 \u9759\u6001 \u566a\u97f3 \u521b\u5efa \u7684 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83\u4eec \u603b\u662f \u51fa\u73b0 \u5728 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 wind _ intensity ( float ) \u63a7\u5236 \u98ce \u7684 \u5f3a\u5ea6 \uff0c \u503c \u4ece 0 \uff08 \u65e0 \u98ce \uff09 \u5230 100 \uff08 \u5f3a\u98ce \uff09 \u3002 \u98ce \u786e\u5b9e \u4f1a \u5f71\u54cd \u964d\u96e8 \u65b9\u5411 \u548c \u6811\u53f6 \uff0c \u56e0\u6b64 \u9650\u5236 \u8be5\u503c \u4ee5 \u907f\u514d \u52a8\u753b \u95ee\u9898 \u3002 sun _ azimuth _ angle ( float - \u5ea6 ) \u592a\u9633 \u7684 \u65b9\u4f4d \u65b9\u4f4d\u89d2 \u3002 \u503c \u8303\u56f4 \u4e3a 0 \u5230 360 \u3002 \u96f6\u662f \u7531 \u865a\u5e7b \u5f15\u64ce \u786e\u5b9a \u7684 \u7403\u4f53 \u4e2d \u7684 \u539f\u70b9 \u3002 sun _ altitude _ angle ( float - \u5ea6 ) \u592a\u9633 \u7684 \u9ad8\u5ea6 \u89d2 \u3002 \u503c \u8303\u56f4 \u4ece - 90 \u5230 90 \uff0c \u5206\u522b \u5bf9\u5e94 \u4e8e \u5348\u591c \u548c \u4e2d\u5348 \u3002 fog _ density ( float ) \u96fe \u6d53\u5ea6 \u6216 \u539a\u5ea6 \u3002 \u5b83 \u4ec5 \u5f71\u54cd RGB \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \u3002 fog _ distance ( float - \u7c73 ) \u96fe \u5f00\u59cb \u8ddd\u79bb \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 \u65e0\u7a77 \u65e0\u7a77\u5927 \u3002 wetness ( float ) \u6e7f\u5ea6 \u5f3a\u5ea6 \u3002 \u5b83 \u4ec5 \u5f71\u54cd RGB \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \u3002 fog _ falloff ( float ) \u96fe \u7684 \u5bc6\u5ea6 \uff08 \u4ee5 \u7279\u5b9a \u8d28\u91cf \u8ba1 \uff09 \u4ece 0 \u5230 \u65e0\u7a77 \u65e0\u7a77\u5927 \u3002 \u503c\u8d8a \u5927 \uff0c \u96fe\u6c14 \u8d8a \u6d53\u91cd \uff0c \u96fe\u6c14 \u8fbe\u5230 \u7684 \u9ad8\u5ea6 \u4e5f \u8d8a \u5c0f \u3002 \u5bf9\u5e94 \u4e8e UE \u6587\u6863 \u4e2d \u7684 \u96fe \u9ad8\u5ea6 \u8870\u51cf \u3002 \u5982\u679c \u503c\u4e3a 0 \uff0c \u96fe \u5c06 \u6bd4 \u7a7a\u6c14 \u4eae \uff0c \u5e76 \u8986\u76d6 \u6574\u4e2a \u573a\u666f \u3002 \u503c\u4e3a 1 \u65f6 \uff0c \u5bc6\u5ea6 \u5927\u7ea6 \u4e0e \u7a7a\u6c14 \u4e00\u6837 \uff0c \u53ef \u5230\u8fbe \u6b63\u5e38 \u5927\u5c0f \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u5bf9\u4e8e \u5927\u4e8e 5 \u7684 \u503c \uff0c \u7a7a\u6c14 \u5c06 \u975e\u5e38 \u7a20\u5bc6 \uff0c \u4ee5\u81f3 \u81f3\u4e8e \u4ee5\u81f3\u4e8e \u5728 \u5730\u9762 \u4e0a\u4f1a \u88ab \u538b\u7f29 \u3002 scattering _ intensity ( float ) \u63a7\u5236 \u5149\u5bf9 \u4f53\u79ef \u96fe \u7684 \u8d21\u732e \u7a0b\u5ea6 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 mie _ scattering _ scale ( float ) \u63a7\u5236 \u5149 \u4e0e \u5927 \u9897\u7c92 \uff08 \u5982 \u82b1\u7c89 \u6216 \u7a7a\u6c14 \u6c61\u67d3 \u7a7a\u6c14\u6c61\u67d3 \uff09 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \uff0c \u5bfc\u81f4 \u5929\u7a7a \u6726\u80e7 \uff0c \u5149\u6e90 \u5468\u56f4 \u6709 \u5149\u6655 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 rayleigh _ scattering _ scale ( float ) \u63a7\u5236 \u5149 \u4e0e \u7a7a\u6c14 \u5206\u5b50 \u7b49 \u5c0f \u7c92\u5b50 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5149 \u7684 \u6ce2\u957f \uff0c \u5bfc\u81f4 \u767d\u5929 \u7684 \u5929\u7a7a \u4e3a \u84dd\u8272 \uff0c \u665a\u4e0a \u7684 \u5929\u7a7a \u4e3a \u7ea2\u8272 \u3002 dust _ storm ( float ) \u786e\u5b9a \u6c99\u5c18 \u5c18\u66b4 \u6c99\u5c18\u66b4 \u5929\u6c14 \u7684 \u5f3a\u5ea6 \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \u3002 \u65b9\u6cd5 __ init __ ( self , cloudiness = 0.0 , precipitation = 0.0 , precipitation _ deposits = 0.0 , wind _ intensity = 0.0 , sun _ azimuth _ angle = 0.0 , sun _ altitude _ angle = 0.0 , fog _ density = 0.0 , fog _ distance = 0.0 , wetness = 0.0 , fog _ falloff = 0.0 , scattering _ intensity = 0.0 , mie _ scattering _ scale = 0.0 , rayleigh _ scattering _ scale = 0.0331 ) \u521d\u59cb \u521d\u59cb\u5316 \u5b9a\u4e49 \u5929\u6c14 \u6761\u4ef6 \u7684 \u5bf9\u8c61 \u7684 \u65b9\u6cd5 \u3002 \u8be5\u7c7b \u6709 \u4e00\u4e9b \u9488\u5bf9 \u4e0d\u540c \u4e2d\u5348 \u548c \u65e5\u843d \u6761\u4ef6 \u7684 \u9884\u8bbe \uff0c \u5982 \u4e0b\u9762 \u7684 \u6ce8\u91ca \u6240\u793a \u3002 \u53c2\u6570 : cloudiness ( float ) - 0 \u4e3a \u6674\u5929 \uff0c 100 \u4e3a \u9634\u5929 \u3002 precipitation ( float ) - 0 \u8868\u793a \u5b8c\u5168 \u6ca1\u6709 \u4e0b\u96e8 \uff0c 100 \u8868\u793a \u5927\u96e8 \u3002 precipitation _ deposits ( float ) - 0 \u8868\u793a \u9053\u8def \u4e0a \u6ca1\u6709 \u6c34\u5751 \uff0c 100 \u8868\u793a \u9053\u8def \u5b8c\u5168 \u88ab \u96e8\u6c34 \u8986\u76d6 \u3002 wind _ intensity ( float ) - 0 \u8868\u793a \u5e73\u6d6a \u98ce\u5e73\u6d6a\u9759 \uff0c 100 \u8868\u793a \u5f3a\u98ce \u3002 sun _ azimuth _ angle ( float - \u5ea6 ) - 0 \u662f \u4efb\u610f \u5317 \uff0c 180 \u662f \u5176 \u5bf9\u5e94 \u7684 \u5357 \u3002 sun _ altitude _ angle ( float - \u5ea6 ) - 90 \u662f \u4e2d\u5348 \uff0c - 90 \u662f \u5348\u591c \u3002 fog _ density ( float ) - \u96fe \u7684 \u6d53\u5ea6 \u6216 \u539a\u5ea6 \uff0c \u4ece 0 \u5230 100 \u3002 fog _ distance ( float - \u7c73 ) - \u96fe \u5f00\u59cb \u7684 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 wetness ( float ) - \u9053\u8def \u7684 \u6e7f\u5ea6 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u4ece 0 \u5230 100 \u3002 fog _ falloff ( float ) - \u96fe \u7684 \u5bc6\u5ea6 \uff08 \u7279\u5b9a \u8d28\u91cf \uff09 \uff0c \u4ece 0 \u5230 \u65e0\u7a77 \u65e0\u7a77\u5927 \u3002 scattering _ intensity ( float ) - \u63a7\u5236 \u5149\u7ebf \u5bf9 \u4f53\u79ef \u96fe \u7684 \u8d21\u732e \u7a0b\u5ea6 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 mie _ scattering _ scale ( float ) - \u63a7\u5236 \u5149 \u4e0e \u5927 \u9897\u7c92 \uff08 \u5982 \u82b1\u7c89 \u6216 \u7a7a\u6c14 \u6c61\u67d3 \u7a7a\u6c14\u6c61\u67d3 \uff09 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \uff0c \u5bfc\u81f4 \u5929\u7a7a \u6726\u80e7 \uff0c \u5149\u6e90 \u5468\u56f4 \u6709 \u5149\u6655 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 rayleigh _ scattering _ scale ( float ) - \u63a7\u5236 \u5149 \u4e0e \u7a7a\u6c14 \u5206\u5b50 \u7b49 \u5c0f \u9897\u7c92 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5149 \u7684 \u6ce2\u957f \uff0c \u5bfc\u81f4 \u767d\u5929 \u7684 \u5929\u7a7a \u4e3a \u84dd\u8272 \uff0c \u665a\u4e0a \u7684 \u5929\u7a7a \u4e3a \u7ea2\u8272 \u3002 \u7b14\u8bb0 : ClearNoon , CloudyNoon , WetNoon , WetCloudyNoon , SoftRainNoon , MidRainyNoon , HardRainNoon , ClearSunset , CloudySunset , WetSunset , WetCloudySunset , SoftRainSunset , MidRainSunset , HardRainSunset . \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other ) \u5982\u679c \u4e24\u4e2a \u5bf9\u8c61 \u7684 \u53d8\u91cf \u76f8\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ ne __ ( self , other ) \u5982\u679c \u4e24\u4e2a \u5bf9\u8c61 \u7684 \u53d8\u91cf \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) carla . WheelPhysicsControl \u4e3a \u8f66\u8f6e \u5bf9\u8c61 \u5b9a\u4e49 \u7279\u5b9a \u7269\u7406 \u53c2\u6570 \u7684 \u7c7b \uff0c \u8fd9\u4e9b \u8f66\u8f6e \u5bf9\u8c61 \u5c06 \u6210\u4e3a carla . VehiclePhysicsControl \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u4ee5 \u5c06 \u8f66\u8f86 \u4eff\u771f \u4e3a \u6750\u8d28 \u5bf9\u8c61 \u3002 \u5b9e\u4f8b \u53d8\u91cf tire _ friction ( float ) \u6307\u793a \u8f66\u8f6e \u6469\u64e6 \u6469\u64e6\u529b \u7684 \u6807\u91cf \u503c \u3002 damping _ rate ( float ) \u8f66\u8f6e \u7684 \u963b\u5c3c \u7387 \u3002 max _ steer _ angle ( float - \u5ea6 ) \u8f66\u8f6e \u53ef\u4ee5 \u8f6c\u5411 \u7684 \u6700\u5927 \u89d2\u5ea6 \u3002 radius ( float - centimeters ) \u8f6e\u5b50 \u7684 \u534a\u5f84 \u3002 max _ brake _ torque ( float - N * m ) \u6700\u5927 \u5236\u52a8 \u626d\u77e9 \u3002 max _ handbrake _ torque ( float - N * m ) \u6700\u5927 \u624b\u5239 \u626d\u77e9 \u3002 position ( carla . Vector3D ) \u8f66\u8f6e \u7684 \u4e16\u754c \u4f4d\u7f6e \u3002 \u8fd9\u662f \u4e00\u4e2a \u53ea\u8bfb \u53c2\u6570 \u3002 long _ stiff _ value ( float - kg per radian ) \u6bcf \u5355\u4f4d \u91cd\u529b \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u8f6e\u80ce \u7eb5\u5411 \u521a\u5ea6 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u4e2a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \u3002 lat _ stiff _ max _ load ( float ) \u6700\u5927 \u6807\u51c6 \u6807\u51c6\u5316 \u8f6e\u80ce \u8d1f\u8f7d \uff0c \u5728 \u8be5 \u8d1f\u8f7d \u4e0b \uff0c \u65e0\u8bba \u5411 \u8f6e\u80ce \u65bd\u52a0 \u591a\u5c11 \u989d\u5916 \u8d1f\u8f7d \uff0c \u8f6e\u80ce \u90fd \u4e0d\u518d \u63d0\u4f9b \u4fa7\u5411 \u521a\u5ea6 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u4e2a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \u3002 lat _ stiff _ value ( float ) \u6bcf \u5355\u4f4d \u6a2a\u5411 \u6ed1\u79fb \u7684 \u6700\u5927 \u521a\u5ea6 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u4e2a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \u3002 \u65b9\u6cd5 __ init __ ( self , tire _ friction = 2.0 , damping _ rate = 0.25 , max _ steer _ angle = 70.0 , radius = 30.0 , max _ brake _ torque = 1500.0 , max _ handbrake _ torque = 3000.0 , position = ( 0.0 , 0.0 , 0.0 ) ) \u53c2\u6570 : tire _ friction ( float ) damping _ rate ( float ) max _ steer _ angle ( float - \u5ea6 ) radius ( float - \u5398\u7c73 ) max _ brake _ torque ( float - N * m ) max _ handbrake _ torque ( float - N * m ) position ( carla . Vector3D - \u7c73 ) \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . WheelPhysicsControl ) __ ne __ ( self , other = carla . WheelPhysicsControl ) __ str __ ( self ) carla . World \u4e16\u754c \u5bf9\u8c61 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \uff0c \u4ee5\u4fbf \u4e3a \u4eff\u771f \u63d0\u4f9b \u4e00\u4e2a \u53d1\u751f \u7684 \u5730\u65b9 \u3002 \u4e16\u754c \u5305\u542b \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u7684 \u5730\u56fe \uff0c \u5373 \u8d44\u4ea7 \uff0c \u800c \u4e0d\u662f \u5bfc\u822a \u5730\u56fe \u3002 \u5bfc\u822a \u5730\u56fe \u662f carla . Map \u7c7b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b83 \u8fd8 \u7ba1\u7406 \u5176\u4e2d \u7684 \u5929\u6c14 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6bcf\u4e2a \u4eff\u771f \u53ea\u80fd \u6709 \u4e00\u4e2a \u4e16\u754c \uff0c \u4f46 \u53ef\u4ee5 \u968f\u65f6 \u66f4\u6539 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( int ) \u4e0e \u8fd9\u4e2a \u4e16\u754c \u76f8\u5173 \u7684 \u5267\u96c6 \u7684 ID \u3002 \u5267\u96c6 \u662f \u4eff\u771f \u7684 \u4e0d\u540c \u9636\u6bb5 \u3002 \u6bcf\u5f53 \u4e16\u754c \u88ab \u7981\u7528 \u6216 \u91cd\u65b0 \u52a0\u8f7d \u65f6 \uff0c \u8fd9\u4e9b \u90fd \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u8ddf\u8e2a \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u907f\u514d \u53ef\u80fd \u51fa\u73b0 \u7684 \u95ee\u9898 \u3002 debug ( carla . DebugHelper ) \u8d1f\u8d23 \u521b\u5efa \u4e0d\u540c \u7684 \u5f62\u72b6 \u4ee5 \u8fdb\u884c \u8c03\u8bd5 \u3002 \u67e5\u770b \u5b83 \u7684 \u7c7b \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u65b9\u6cd5 apply _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter ( normal , diffuse , etc ) \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u5bf9\u5e94 \u4e8e object _ name \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter ( normal , diffuse , etc ) \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u5bf9\u5e94 \u4e8e objects _ name _ list \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ float _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter \uff08 \u6cd5\u7ebf \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7b49 \uff09 \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u4e0e object _ name \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u5bf9\u5e94 \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ float _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter \uff08 \u6cd5\u7ebf \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7b49 \uff09 \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u4e0e objects _ name _ list \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u5bf9\u5e94 \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ settings ( self , world _ settings ) \u6b64 \u65b9\u6cd5 \u5c06 \u5bf9\u8c61 \u4e2d \u5305\u542b \u7684 \u8bbe\u7f6e \u5e94\u7528 \u4e8e \u8fd0\u884c \u7684 \u4eff\u771f \uff0c \u5e76 \u8fd4\u56de \u5b83\u4eec \u6240 \u5b9e\u73b0 \u7684 \u5e27 \u7684 ID \u3002 \u53c2\u6570 : world _ settings ( carla . WorldSettings ) \u8fd4\u56de : int \u8b66\u544a : \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u672c\u6587 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 apply _ textures _ to _ object ( self , object _ name , diffuse _ texture , emissive _ texture , normal _ texture , ao _ roughness _ metallic _ emissive _ texture ) \u5c06 carla . MaterialParameter \u4e2d \u7684 \u6240\u6709 \u7eb9\u7406 \u5b57 \u6bb5 \u5e94\u7528 \u5230 \u5bf9\u8c61 object _ name \u3002 \u8fd9\u91cc \u4e0d\u4f1a \u5e94\u7528 \u7a7a \u7eb9\u7406 \u3002 \u53c2\u6570 : object _ name ( str ) diffuse _ texture ( TextureColor ) emissive _ texture ( TextureFloatColor ) normal _ texture ( TextureFloatColor ) ao _ roughness _ metallic _ emissive _ texture ( TextureFloatColor ) apply _ textures _ to _ objects ( self , objects _ name _ list , diffuse _ texture , emissive _ texture , normal _ texture , ao _ roughness _ metallic _ emissive _ texture ) \u5c06 carla . MaterialParameter \u4e2d \u7684 \u6240\u6709 \u7eb9\u7406 \u5b57 \u6bb5 \u5e94\u7528 \u4e8e objects _ name _ list \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u3002 \u8fd9\u91cc \u4e0d\u4f1a \u5e94\u7528 \u7a7a \u7eb9\u7406 \u3002 \u53c2\u6570 : objects _ name _ list ( list ( str ) ) diffuse _ texture ( TextureColor ) emissive _ texture ( TextureFloatColor ) normal _ texture ( TextureFloatColor ) ao _ roughness _ metallic _ emissive _ texture ( TextureFloatColor ) cast _ ray ( self , initial _ location , final _ location ) \u5c06 \u5149\u7ebf \u4ece \u6307\u5b9a \u7684 initial _ location \u6295\u5c04 \u5230 final _ location \u3002 \u7136\u540e \uff0c \u8be5 \u51fd\u6570 \u68c0\u6d4b \u4e0e \u5c04\u7ebf \u76f8\u4ea4 \u7684 \u6240\u6709 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \uff0c \u5e76 \u6309 \u987a\u5e8f \u8fd4\u56de carla . LabelledPoint \u5217\u8868 \u3002 \u53c2\u6570 : initial _ location ( carla . Location ) - The initial position of the ray . final _ location ( carla . Location ) - The final position of the ray . \u8fd4\u56de : list ( carla . LabelledPoint ) enable _ environment _ objects ( self , env _ objects _ ids , enable ) snippet \u2192 \u542f\u7528 \u6216 \u7981\u7528 \u4e00\u7ec4 \u7531 \u5176 id \u6807\u8bc6 \u7684 \u73af\u5883 \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u5c06 \u4ece \u5173\u5361 \u4e2d \u51fa\u73b0 \u6216 \u6d88\u5931 \u3002 \u53c2\u6570 : env _ objects _ ids ( set ( int ) ) - \u8981 \u66f4\u6539 \u7684 \u73af\u5883 \u5bf9\u8c61 ID \u96c6 \u3002 enable ( bool ) - \u5e94\u7528 \u4e8e \u96c6\u5408 \u4e2d \u6240\u6709 \u73af\u5883 \u5bf9\u8c61 \u7684 \u72b6\u6001 \u3002 freeze _ all _ traffic _ lights ( self , frozen ) \u51bb\u7ed3 \u6216 \u89e3\u51bb \u573a\u666f \u4e2d \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u51bb\u7ed3 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u4f46 \u65f6\u95f4 \u4e0d\u4f1a \u66f4\u65b0 \u5b83\u4eec \uff0c \u76f4\u5230 \u89e3\u51bb \u3002 \u53c2\u6570 : frozen ( bool ) ground _ projection ( self , location , search _ distance ) \u5728 \u573a\u666f \u4e2d \u5411\u4e0b \u6295\u5f71 \u6307\u5b9a \u70b9 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u4ece \u4f4d\u7f6e ( 0 , 0 , - 1 ) \uff08 \u5411\u4e0b \uff09 \u6295\u5c04 \u4e00\u6761 \u5c04\u7ebf \uff0c \u5e76 \u8fd4\u56de \u4e00\u4e2a carla . LabelledPoint \u5bf9\u8c61 \uff0c \u8be5 \u5bf9\u8c61 \u5177\u6709 \u8be5 \u5c04\u7ebf \u76f8\u4ea4 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u51e0\u4f55 \u51e0\u4f55\u4f53 \uff08 \u901a\u5e38 \u662f \u5730\u9762 \uff09 \u3002 \u5982\u679c \u5728 search _ distance \u8303\u56f4 \u5185 \u627e\u5230 \u672a\u627e\u5230 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \uff0c \u5219 \u51fd\u6570 \u8fd4\u56de None \u3002 \u53c2\u6570 : location ( carla . Location ) - \u8981 \u6295\u5f71 \u7684 \u70b9 \u3002 search _ distance ( float ) - \u6267\u884c \u6295\u5f71 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 \u8fd4\u56de : carla . LabelledPoint load _ map _ layer ( self , map _ layers ) snippet \u2192 \u52a0\u8f7d \u56fe\u5c42 \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u8be5 \u5c42\u6b21 \u5df2\u7ecf \u52a0\u8f7d \u5219 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 \uff1a map _ layers ( carla . MapLayer ) - \u52a0\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u7684 \u63a9\u819c \u3002 \u8b66\u544a \uff1a \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 on _ tick ( self , callback ) \u6b64 \u65b9\u6cd5 \u7528\u4e8e \u5f02\u6b65 \u6a21\u5f0f \u3002 \u5b83 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9a\u4e49 \u7684 callback \u51fd\u6570 \u542f\u52a8 \u56de\u8c03 \uff0c \u5e76 \u8fd4\u56de \u56de\u8c03 \u7684 ID \u3002 \u6bcf\u5f53 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u65f6 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \uff0c \u5c31 \u4f1a \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 \u5b83 \u9700\u8981 \u4e00\u4e2a carla . WorldSnapshot \u4f5c\u4e3a \u53c2\u6570 \uff0c \u8fd9 \u53ef\u4ee5 \u4ece wait _ for _ tick ( ) \u83b7\u5f97 \u3002 \u4f7f\u7528 remove _ on _ tick ( ) \u6765 \u505c\u6b62 \u56de\u8c03 \u3002 \u53c2\u6570 \uff1a callback ( carla . WorldSnapshot ) - \u5c06 \u5feb\u7167 \u4f5c\u4e3a \u5f3a\u5236 \u53c2\u6570 \u7684 \u51fd\u6570 \uff0c \u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u5c06 \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 \u8fd4\u56de : int project _ point ( self , location , direction , search _ distance ) \u5c06 \u6307\u5b9a \u70b9 \u6295\u5f71 \u5230 \u573a\u666f \u4e2d \u7684 \u6240 \u9700 \u65b9\u5411 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u4ece \u67d0\u4e2a \u65b9\u5411 \u7684 \u67d0\u4e2a \u4f4d\u7f6e \u6295\u5c04 \u4e00\u6761 \u5c04\u7ebf \uff0c \u5e76 \u8fd4\u56de \u4e00\u4e2a \u5e26\u6709 \u8be5 \u5c04\u7ebf \u76f8\u4ea4 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 carla . Labelled \u5bf9\u8c61 \u3002 \u5982\u679c \u5728 search _ distance \u8303\u56f4 \u5185 \u627e\u5230 \u672a\u627e\u5230 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \uff0c \u5219 \u51fd\u6570 \u8fd4\u56de None \u3002 \u53c2\u6570 : location ( carla . Location ) - \u8981 \u6295\u5f71 \u7684 \u70b9 \u3002 direction ( carla . Vector3D ) - \u6295\u5f71 \u65b9\u5411 \u3002 search _ distance ( float ) - \u6267\u884c \u6295\u5f71 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 \u8fd4\u56de : carla . LabelledPoint remove _ on _ tick ( self , callback _ id ) \u505c\u6b62 \u4ee5 on _ tick ( ) \u542f\u52a8 \u7684 \u56de\u8c03 callback _ id \u3002 \u53c2\u6570 : callback _ id ( callback ) - \u8981 \u5220\u9664 \u7684 \u56de\u8c03 \u3002 \u521b\u5efa \u56de\u8c03 \u65f6 \u8fd4\u56de ID \u3002 reset _ all _ traffic _ lights ( self ) \u5c06 \u5730\u56fe \u4e2d \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5468\u671f \u91cd\u7f6e \u4e3a \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \u3002 spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) snippet \u2192 \u8be5 \u65b9\u6cd5 \u5c06 \u521b\u5efa \u3001 \u8fd4\u56de \u5e76 \u751f\u6210 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5230 \u4e16\u754c \u4e2d \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u9700\u8981 \u521b\u5efa \u53ef\u7528 \u7684 \u84dd\u56fe \u548c \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u5b83 \u8fd8 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u5177\u6709 \u7279\u5b9a \u9644\u4ef6 \u7c7b\u578b \u7684 \u7236\u7ea7 \u3002 \u53c2\u6570 : blueprint ( carla . ActorBlueprint ) - \u5c06 \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5f15\u7528 \u3002 transform ( carla . Transform ) - \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u6210 \u65f6 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 attach _ to ( carla . Actor ) - \u751f\u6210 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8ddf\u968f \u7684 \u7236 \u5bf9\u8c61 \u3002 attachment ( carla . AttachmentType ) - \u6839\u636e \u5176\u7236 \u5bf9\u8c61 \u786e\u5b9a \u4f4d\u7f6e \u53d8\u5316 \u7684 \u56fa\u5b9a \u548c \u4e25\u5bc6 \u7a0b\u5ea6 \u3002 \u8fd4\u56de : carla . Actor tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5373 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u8ba1\u7b97 \u4e0b \u4e00\u5e27 \u4e4b\u524d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u8fd9\u4e2a \u65b9\u6cd5 \u5c06 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5e76 \u8ba9 \u4f4d\u4e8e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5b83 \u8fd4\u56de \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u7684 \u65b0 \u5e27 ID \u3002 \u53c2\u6570 \uff1a seconds ( float - \u79d2 ) - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e94\u8be5 \u7b49\u5f85 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u6700\u5927 \u65f6\u95f4 \u3002 \u5b83 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 10.0 \u3002 \u8fd4\u56de \uff1a int \u6ce8\u610f \uff1a \u5982\u679c \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u6ca1\u6709 \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4eff\u771f \u5c06 \u51bb\u7ed3 \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u4ece \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a5\u6536 \u5230 \u8bb8\u591a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5219 \u53ef\u80fd \u5b58\u5728 \u540c\u6b65 \u95ee\u9898 \u3002 \u8bf7 \u9605\u8bfb \u6709\u5173 __ \u540c\u6b65 \u6a21\u5f0f __ \u7684 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 try _ spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) \u548c spawn _ actor ( ) \u4e00\u6837 \uff0c \u4f46\u662f \u5355 \u5931\u8d25 \u65f6\u5019 \u8fd4\u56de None \u800c \u4e0d\u662f \u629b\u51fa \u5f02\u5e38 \u3002 \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) - \u5c06 \u4ece\u4e2d \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5f15\u7528 \u3002 transform ( carla . Transform ) - \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u4f7f\u7528 \u7684 \u4f4d\u7f6e \u548c \u671d\u5411 \u3002 attach _ to ( carla . Actor ) - \u6d3e\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8ddf\u968f \u7684 \u7236 \u5bf9\u8c61 \u3002 attachment ( carla . AttachmentType ) - \u6839\u636e \u5176\u7236 \u5bf9\u8c61 \u786e\u5b9a \u4f4d\u7f6e \u66f4\u6539 \u7684 \u56fa\u5b9a \u548c \u4e25\u683c \u7a0b\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Actor unload _ map _ layer ( self , map _ layers ) snippet \u2192 \u5c06 \u9009\u5b9a \u7684 \u56fe\u5c42 \u5378\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u5c42 \u5df2\u7ecf \u5378\u8f7d \uff0c \u5219 \u8c03\u7528 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 : map _ layers ( carla . MapLayer ) - \u8981 \u5378\u8f7d \u56fe\u5c42 \u7684 \u63a9\u819c \u3002 \u8b66\u544a : \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 wait _ for _ tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u4f7f\u7528 \u5f02\u6b65 \u6a21\u5f0f \u3002 \u5b83 \u4f7f \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u5f53 \u8ba1\u7b97 \u4e0b \u4e00\u5e27 \u65f6 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u52fe\u9009 \u5e76 \u8fd4\u56de \u63cf\u8ff0 \u4e16\u754c \u65b0 \u72b6\u6001 \u7684 \u5feb\u7167 \u3002 \u53c2\u6570 : seconds ( float - seconds ) - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u6ef4\u7b54 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 10.0 \u3002 \u8fd4\u56de : carla . WorldSnapshot \u8bbe\u7f6e \u5668 get _ actor ( self , actor _ id ) \u901a\u8fc7 ID \u67e5\u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5982\u679c \u627e\u5230 \u672a\u627e\u5230 \u5219 \u8fd4\u56de None \u3002 \u53c2\u6570 : actor _ id ( int ) \u8fd4\u56de : carla . Actor get _ actors ( self , actor _ ids = None ) \u68c0\u7d22 carla . Actor \u5143\u7d20 \u5217\u8868 \uff0c \u4f7f\u7528 \u63d0\u4f9b \u7684 ID \u5217\u8868 \u6216\u4ec5 \u5217\u51fa \u821e\u53f0 \u4e0a \u7684 \u6bcf\u4e2a \u4eba \u3002 \u5982\u679c \u4e00\u4e2a ID \u4e0d \u4e0e \u4efb\u4f55 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u5bf9 \u5e94 \uff0c \u5b83 \u5c06 \u88ab \u6392\u9664 \u5728 \u8fd4\u56de \u7684 \u5217\u8868 \u4e4b\u5916 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 ID \u5217\u8868 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u53ef\u80fd \u5177\u6709 \u4e0d\u540c \u7684 \u957f\u5ea6 \u3002 \u53c2\u6570 : actor _ ids ( list ) - \u6b63\u5728 \u641c\u7d22 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u8bbe\u7f6e \u4e3a None \u5e76 \u8fd4\u56de \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de : carla . ActorList get _ blueprint _ library ( self ) \u8fd4\u56de \u53ef\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u5217\u8868 \uff0c \u4ee5 \u65b9\u4fbf \u5b83\u4eec \u5728 \u4e16\u754c \u4e2d \u7684 \u751f\u6210 \u3002 \u8fd4\u56de : carla . BlueprintLibrary get _ environment _ objects ( self , object _ type = Any ) \u8fd4\u56de \u5177\u6709 \u8bf7\u6c42 \u7684 \u8bed\u4e49 \u6807\u8bb0 \u7684 EnvironmentObject \u5217\u8868 \u3002 \u8be5 \u65b9\u6cd5 \u9ed8\u8ba4 \u8fd4\u56de \u5173\u5361 \u4e2d \u7684 \u6240\u6709 \u73af\u5883 \u5bf9\u8c61 \uff0c \u4f46 \u53ef\u4ee5 \u4f7f\u7528 object _ type \u53c2\u6570 \u901a\u8fc7 \u8bed\u4e49 \u6807\u7b7e \u8fc7\u6ee4 \u67e5\u8be2 \u3002 \u53c2\u6570 : object _ type ( carla . CityObjectLabel ) - Semantic tag of the \u8fd4\u56de \u7684 EnvironmentObjects \u3002 \u8fd4\u56de : array ( carla . EnvironmentObject ) get _ level _ bbs ( self , actor _ type = Any ) \u8fd4\u56de \u4e00\u4e2a \u8fb9\u754c \u6846 \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8be5 \u65b9\u6cd5 \u9ed8\u8ba4 \u8fd4\u56de \u8be5 \u7ea7\u522b \u4e2d \u7684 \u6240\u6709 \u8fb9\u754c \u6846 \uff0c \u4f46 \u53ef\u4ee5 \u4f7f\u7528 actor _ type \u53c2\u6570 \u901a\u8fc7 \u8bed\u4e49 \u6807\u7b7e \u8fc7\u6ee4 \u67e5\u8be2 \u3002 \u53c2\u6570 : actor _ type ( carla . CityObjectLabel ) - \u8fd4\u56de \u7684 \u8fb9\u754c \u6846\u4e2d \u5305\u542b \u7684 \u5143\u7d20 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8fd4\u56de : array ( carla . BoundingBox ) get _ lightmanager ( self ) \u8fd4\u56de carla . LightManager \u7684 \u5b9e\u4f8b \uff0c \u53ef \u7528\u4e8e \u5904\u7406 \u573a\u666f \u4e2d \u7684 \u706f\u5149 \u3002 \u8fd4\u56de : carla . LightManager get _ map ( self ) \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bf7\u6c42 \u5305\u542b \u6620\u5c04 \u6587\u4ef6 \u7684 XODR \uff0c \u5e76 \u5c06 \u5176 \u89e3\u6790 \u4e3a carla . Map \u8fd4\u56de \u3002 \u8fd4\u56de : carla . Map \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u4eff\u771f \u3002 \u5b83 \u4ee3\u4ef7 \u5f88 \u9ad8 \uff0c \u5e76\u4e14 \u53ea\u80fd \u8c03\u7528 \u4e00\u6b21 \u3002 get _ names _ of _ all _ objects ( self ) \u8fd4\u56de \u573a\u666f \u4e2d \u53ef\u4ee5 \u4f7f\u7528 \u5e94\u7528 \u7eb9\u7406 \u51fd\u6570 \u7ed8\u5236 \u7684 \u6240\u6709 \u5bf9\u8c61 \u7684 \u540d\u79f0 \u5217\u8868 \u3002 \u8fd4\u56de : list ( str ) get _ random _ location _ from _ navigation ( self ) \u8fd9 \u53ea\u80fd \u4e0e \u884c\u4eba \u4e00\u8d77 \u4f7f\u7528 \u3002 \u5b83 \u4f7f\u7528 carla . WalkerAIController \u4e2d \u7684 go _ to _ location ( ) \u65b9\u6cd5 \u68c0\u7d22 \u8981 \u7528\u4f5c \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u968f\u673a \u4f4d\u7f6e \u3002 \u8be5 \u4f4d\u7f6e \u5c06 \u662f \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u9053\u8def \u3001 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u548c \u8349\u5730 \u533a\u57df \u4e0d \u5305\u62ec \u5728\u5185 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8003\u8651 \u73b0\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \uff0c \u56e0\u6b64 \u5982\u679c \u5728 \u5c1d\u8bd5 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u53d1\u751f \u78b0\u649e \uff0c \u5b83 \u5c06 \u8fd4\u56de \u9519\u8bef \u3002 \u770b \u4e00\u4e0b \u4f8b\u5b50 generate _ traffic . py \u3002 \u8fd4\u56de : carla . Location get _ settings ( self ) \u8fd4\u56de \u4e00\u4e2a \u5bf9\u8c61 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u4eff\u771f \u7684 \u4e00\u4e9b \u6570\u636e \uff0c \u4f8b\u5982 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u6216 \u6e32\u67d3 \u6a21\u5f0f \u3002 \u8fd4\u56de : carla . WorldSettings get _ snapshot ( self ) \u8fd4\u56de \u67d0\u4e2a \u65f6\u523b \u7684 \u4e16\u754c \u5feb\u7167 \uff0c \u5305\u542b \u6709\u5173 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u8fd4\u56de : carla . WorldSnapshot get _ spectator ( self ) snippet \u2192 \u8fd4\u56de \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u662f \u865a\u5e7b \u5f15\u64ce \u521b\u5efa \u7684 \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u901a\u5e38 ID = 0 \uff0c \u5145\u5f53 \u6444\u50cf \u6444\u50cf\u673a \u5e76 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \u4e2d \u7684 \u89c6\u56fe \u3002 \u8fd4\u56de : carla . Actor get _ traffic _ light ( self , landmark ) \u63d0\u4f9b \u4e00\u4e2a \u5730\u6807 \uff0c \u8fd4\u56de \u5b83 \u63cf\u8ff0 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u5bf9\u8c61 \u3002 \u53c2\u6570 : landmark ( carla . Landmark ) - \u63cf\u8ff0 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u8fd4\u56de : carla . TrafficLight get _ traffic _ light _ from _ opendrive _ id ( self , traffic _ light _ id ) \u8fd4\u56de \u4e0e \u6307\u793a \u7684 OpenDRIVE id \u5bf9\u5e94 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53c2\u6570 : traffic _ light _ id ( str ) - The OpenDRIVE id . \u8fd4\u56de : carla . TrafficLight get _ traffic _ lights _ from _ waypoint ( self , waypoint , distance ) \u6b64 \u51fd\u6570 \u6cbf\u7740 \u6307\u5b9a \u8def\u70b9 \u524d\u9762 \u7684 \u9053\u8def \u6267\u884c \u641c\u7d22 \uff0c \u5e76 \u8fd4\u56de \u5728 \u6307\u5b9a \u641c\u7d22 \u8ddd\u79bb \u5185 \u627e\u5230 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u3002 \u53c2\u6570 : waypoint ( carla . Waypoint ) - \u8f93\u5165 \u8def\u5f84 \u70b9 \u3002 distance ( float ) - \u641c\u7d22 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . TrafficLight ) get _ traffic _ lights _ in _ junction ( self , junction _ id ) \u8fd4\u56de \u5f71\u54cd junction _ id \u4e2d \u6307\u793a \u7684 \u8def\u53e3 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u3002 \u53c2\u6570 : junction _ id ( int ) - \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u7684 id \u3002 \u8fd4\u56de : list ( carla . TrafficLight ) get _ traffic _ sign ( self , landmark ) \u63d0\u4f9b \u4e00\u4e2a \u5730\u6807 \uff0c \u8fd4\u56de \u5b83 \u63cf\u8ff0 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u5bf9\u8c61 \u3002 \u53c2\u6570 : landmark ( carla . Landmark ) - \u63cf\u8ff0 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u8fd4\u56de : carla . TrafficSign get _ vehicles _ light _ states ( self ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f carla . Actor ID \uff0c \u503c \u662f \u8be5 \u8f66\u8f86 \u7684 carla . VehicleLightState \u3002 \u8fd4\u56de : dict get _ weather ( self ) \u68c0\u7d22 \u5305\u542b \u4eff\u771f \u4e2d \u5f53\u524d \u6d3b\u52a8 \u7684 \u5929\u6c14 \u53c2\u6570 \u7684 \u5bf9\u8c61 \uff0c \u4e3b\u8981 \u662f \u4e91\u91cf \u3001 \u964d\u6c34 \u6c34\u91cf \u964d\u6c34\u91cf \u3001 \u98ce \u548c \u592a\u9633 \u4f4d\u7f6e \u3002 \u8fd4\u56de : carla . WeatherParameters Setter : carla . World . set _ weather \u8bbe\u7f6e \u5668 set _ pedestrians _ cross _ factor ( self , percentage ) \u53c2\u6570 : percentage ( float ) - \u8bbe\u7f6e \u53ef\u4ee5 \u5728 \u9053\u8def \u4e0a \u884c\u8d70 \u6216 \u5728 \u9053\u8def \u4e0a \u7684 \u4efb\u4f55 \u70b9 \u7a7f\u8d8a \u7684 \u884c\u4eba \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u503c\u5e94 \u4ecb\u4e8e 0.0 \u548c \u4e4b\u95f4 1.0 \u3002 \u4f8b\u5982 \uff0c \u503c 0.1 \u8868\u793a \u5141\u8bb8 10% \u7684 \u884c\u4eba \u5728 \u9053\u8def \u4e0a \u884c\u8d70 \u3002 \u9ed8\u8ba4 \u4e3a 0.0 \u3002 \u7b14\u8bb0 : \u5e94 \u5728 \u884c\u4eba \u751f\u6210 \u4e4b\u524d \u8bbe\u7f6e \u3002 set _ pedestrians _ seed ( self , seed ) \u53c2\u6570 : seed ( int ) - \u8bbe\u7f6e \u7528\u4e8e \u751f\u6210 \u4e0e \u884c\u4eba \u76f8\u5173 \u7684 \u4efb\u4f55 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u7684 \u79cd\u5b50 \u3002 \u7b14\u8bb0 : \u5e94 \u5728 \u884c\u4eba \u751f\u6210 \u4e4b\u524d \u8bbe\u7f6e \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u6bcf\u4e2a \u884c\u4eba \u91cd\u590d \u76f8\u540c \u7684 \u8eab\u4f53 \uff08 \u84dd\u56fe \uff09 \uff0c \u8bf7 \u5728 Python \u4ee3\u7801 \uff08 \u968f\u673a \u9009\u62e9 \u84dd\u56fe \uff09 \u548c \u6b64\u5904 \u4f7f\u7528 \u76f8\u540c \u7684 \u79cd\u5b50 \uff0c \u5426\u5219 \u884c\u4eba \u5c06 \u91cd\u590d \u76f8\u540c \u7684 \u8def\u5f84 \uff0c \u4f46 \u8eab\u4f53 \u4f1a \u4e0d\u540c \u3002 set _ weather ( self , weather ) \u5c06 \u6a21\u62df \u7684 \u5929\u6c14 \u53c2\u6570 \u66f4 \u6539\u4e3a \u5bf9\u8c61 \u4e2d \u5b9a\u4e49 \u7684 \u5176\u4ed6 \u53c2\u6570 \u3002 \u53c2\u6570 : weather ( carla . WeatherParameters ) - \u8981 \u5e94\u7528 \u7684 \u65b0 \u6761\u4ef6 \u3002 \u83b7\u53d6 \u5668 : carla . World . get _ weather \u9b54\u672f \u65b9\u6cd5 __ str __ ( self ) \u4e16\u754c \u7684 \u5185\u5bb9 \u88ab \u89e3\u6790 \u6253\u5370 \u5e76\u6253\u5370 \u4e3a \u5f53\u524d \u72b6\u6001 \u7684 \u7b80\u77ed \u62a5\u544a \u3002 \u8fd4\u56de : string carla . WorldSettings \u8be5 \u4eff\u771f \u5177\u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u914d\u7f6e \u9009\u9879 \uff0c \u8fd9\u4e9b \u9009\u9879 \u5305\u542b \u5728 \u6b64\u7c7b \u4e2d \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u4f7f\u7528 carla . World \u53ca\u5176 \u65b9\u6cd5 \u8fdb\u884c \u7ba1\u7406 \u3002 \u8fd9\u4e9b \u5141\u8bb8 \u7528\u6237 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 / \u5f02\u6b65 \u3001 \u6fc0\u6d3b \u201c \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u201d \u4ee5\u53ca \u4eff\u771f \u662f\u5426 \u5e94 \u4ee5 \u56fa\u5b9a \u6216 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \u3002 \u5982\u679c \u60a8 \u60f3 \u4e86\u89e3 \u7684\u8bdd \u8bf7 \u67e5\u770b \u6b64 \u5185\u5bb9 \u3002 \u5b9e\u4f8b \u53d8\u91cf synchronous _ mode ( bool ) \u8868\u793a \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a true \u65f6 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4ee5\u4fbf \u7ee7\u7eed \u524d\u8fdb \u7ee7\u7eed\u524d\u8fdb \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a false \u3002 no _ rendering _ mode ( bool ) \u542f\u7528 \u540e \uff0c \u4eff\u771f \u5c06 \u6839\u672c \u4e0d \u8fd0\u884c \u6e32\u67d3 \u3002 \u8fd9 \u4e3b\u8981 \u7528\u4e8e \u907f\u514d \u7e41\u5fd9 \u4ea4\u901a \u4eff\u771f \u671f\u95f4 \u7684 \u5f00\u9500 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a false \u3002 fixed _ delta _ seconds ( float ) \u786e\u4fdd \u4eff\u771f \u7684 \u4e24\u4e2a \u6b65\u9aa4 \u4e4b\u95f4 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u662f \u56fa\u5b9a \u7684 \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0.0 \u4ee5 \u4f7f\u7528 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \uff0c \u5c31 \u50cf \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u53d1\u751f \u7684 \u90a3\u6837 \u3002 substepping ( bool ) \u542f\u7528 \u7269\u7406 \u5b50 \u6b65\u8fdb \u3002 \u6b64 \u9009\u9879 \u5141\u8bb8 \u8ba1\u7b97 \u4e24\u4e2a \u6e32\u67d3 \u5e27 \u4e4b\u95f4 \u7684 \u4e00\u4e9b \u7269\u7406 \u5b50 \u6b65\u9aa4 \u3002 \u5982\u679c \u8bbe\u7f6e \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u5b50 \u6b65\u9aa4 \u7684 \u6570\u91cf \u53ca\u5176 \u65f6\u95f4 \u95f4\u9694 \u662f \u56fa\u5b9a \u7684 \u5e76 \u8fdb\u884c \u8ba1\u7b97 \uff0c \u4ee5\u4fbf \u6ee1\u8db3 carla . WorldSettings . max _ substep \u548c carla . WorldSettings . max _ substep _ delta _ time \u7684 \u8981\u6c42 \u3002 \u6700\u540e \u4e24\u4e2a \u53c2\u6570 \u9700\u8981 \u4e0e carla . WorldSettings . fixed _ delta _ seconds \u517c\u5bb9 \u3002 \u9ed8\u8ba4 \u542f\u7528 \u3002 max _ substep _ delta _ time ( float ) \u5b50 \u6b65\u9aa4 \u7684 \u6700\u5927 \u589e\u91cf \u65f6\u95f4 \u3002 \u5982\u679c carla . WorldSettingsmax _ substep \u8db3\u591f \u9ad8 \uff0c \u5219 \u5b50\u6b65 \u589e\u91cf \u65f6\u95f4 \u5c06 \u59cb\u7ec8 \u4f4e\u4e8e \u6216 \u7b49\u4e8e \u8be5\u503c \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a 0.01 \u3002 max _ substeps ( int ) \u5141\u8bb8 \u7684 \u6700\u5927 \u7269\u7406 \u5b50 \u6b65\u6570 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a 10 \u3002 max _ culling _ distance ( float ) \u914d\u7f6e \u5173\u5361 \u4e2d \u6bcf\u4e2a \u7f51\u683c \u7684 \u6700\u5927 \u7ed8\u5236 \u8ddd\u79bb \u3002 deterministic _ ragdolls ( bool ) \u5b9a\u4e49 \u662f\u5426 \u5bf9 \u884c\u4eba \u6b7b\u4ea1 \u52a8\u753b \u6216 \u7269\u7406 \u5a03\u5a03 \u5e03\u5a03\u5a03 \u4eff\u771f \u4f7f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7269\u7406 \u3002 \u542f\u7528 \u540e \uff0c \u884c\u4eba \u7684 \u6b7b\u4ea1 \u52a8\u753b \u4e0d\u592a \u771f\u5b9e \uff0c \u4f46 \u786e\u4fdd \u4e86 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 \u7981\u7528 \u540e \uff0c \u884c\u4eba \u5c06 \u88ab \u4eff\u771f \u4e3a \u5a03\u5a03 \u5e03\u5a03\u5a03 \uff0c \u5177\u6709 \u66f4 \u771f\u5b9e \u7684 \u4eff\u771f \u548c \u78b0\u649e \uff0c \u4f46 \u65e0\u6cd5 \u786e\u4fdd \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 tile _ stream _ distance ( float ) \u4ec5 \u7528\u4e8e \u5927\u578b \u5730\u56fe \u3002 \u914d\u7f6e \u4ece \u82f1\u96c4 \u8f66\u8f86 \u4f20\u8f93 \u74e6\u7247 \u5730\u56fe \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 \u6b64 \u8303\u56f4 \u5185 \u7684 \u5730\u56fe \u533a\u57df \u5c06 \u53ef\u89c1 \uff08 \u5e76\u4e14 \u80fd\u591f \u4eff\u771f \u7269\u7406 \uff09 \u3002 \u8be5 \u533a\u57df \u4e4b\u5916 \u7684 \u533a\u57df \u5c06 \u4e0d\u4f1a \u88ab \u52a0\u8f7d \u3002 actor _ active _ distance ( float ) \u4ec5 \u7528\u4e8e \u5927\u578b \u5730\u56fe \u3002 \u914d\u7f6e \u4e0e \u82f1\u96c4 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u4ee5 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8f6c\u6362 \u4e3a \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u5728 \u6b64 \u8303\u56f4 \u5185 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5904\u4e8e \u6d3b\u8dc3 \u72b6\u6001 \uff0c \u800c \u5728 \u8be5 \u8303\u56f4 \u4e4b\u5916 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 spectator _ as _ ego ( bool ) \u4ec5 \u7528\u4e8e \u5927\u578b \u5730\u56fe \u3002 \u5b9a\u4e49 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bf9\u5927 \u5730\u56fe \u4e2d \u56fe\u5757 \u52a0\u8f7d \u7684 \u5f71\u54cd \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5728 \u6ca1\u6709 \u81ea\u6211 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5c06 \u5f15\u53d1 \u76f8\u90bb \u56fe\u5757 \u7684 \u52a0\u8f7d \u3002 \u5bf9\u4e8e \u7acb\u5373 \u4ea7\u751f \u81ea\u6211 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6765\u8bf4 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5e26\u6765 \u4e0d\u4fbf \u3002 \u65b9\u6cd5 __ init __ ( self , synchronous _ mode = False , no _ rendering _ mode = False , fixed _ delta _ seconds = 0.0 , max _ culling _ distance = 0.0 , deterministic _ ragdolls = False , tile _ stream _ distance = 3000 , actor _ active _ distance = 2000 , spectator _ as _ ego = True ) \u521b\u5efa \u4e00\u4e2a \u5305\u542b \u6240 \u9700 \u8bbe\u7f6e \u7684 \u5bf9\u8c61 \uff0c \u8fd9\u4e9b \u8bbe\u7f6e \u7a0d\u540e \u53ef\u4ee5 \u901a\u8fc7 carla . World \u53ca\u5176 \u65b9\u6cd5 apply _ settings ( ) \u5e94\u7528 \u3002 \u53c2\u6570 : synchronous _ mode ( bool ) - \u542f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5219 \u8bbe\u7f6e \u4e3a true \u3002 no _ rendering _ mode ( bool ) - \u5728 \u4eff\u771f \u4e2d \u5b8c\u5168 \u7981\u7528 \u6e32\u67d3 \u5219 \u8bbe\u7f6e \u4e3a true \u3002 fixed _ delta _ seconds ( float - seconds ) - \u5728 \u5e27 \u4e4b\u95f4 \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u7684 \u6b65\u957f \u3002 0.0 \u610f\u5473 \u610f\u5473\u7740 \u53d8 \u6b65\u957f \u4e14 \u4e3a \u6a21\u5f0f \u6a21\u5f0f \u3002 max _ culling _ distance ( float - \u7c73 ) - \u5bf9\u4e8e \u5173\u5361 \u7684 \u6bcf \u4e00\u4e2a \u7f51\u683c \u914d\u7f6e \u6700\u5927 \u7684 \u7ed8\u5236 \u8ddd\u79bb \u3002 deterministic _ ragdolls ( bool ) - \u5bf9\u4e8e \u884c\u4eba \u6b7b\u4ea1 \u4f7f\u7528 \u786e\u5b9a \u7684 \u7269\u7406 \u6216 \u5a03\u5a03 \u5e03\u5a03\u5a03 \u4eff\u771f \u5b9a\u4e49 wether \u3002 tile _ stream _ distance ( float - \u7c73 ) - \u4ec5 \u7528\u4e8e \u5927 \u5730\u56fe \u3002 \u4ece \u82f1\u96c4 \u8f66\u8f86 \u5230\u6d41 \u74e6\u7247 \u5730\u56fe \u914d\u7f6e \u6700\u5927 \u8ddd\u79bb \u3002 actor _ active _ distance ( float - \u7c73 ) - \u4ec5 \u7528\u4e8e \u5927 \u5730\u56fe \u3002 \u914d\u7f6e \u4e0e \u82f1\u96c4 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u4ee5 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8f6c\u6362 \u4e3a \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 spectator _ as _ ego ( bool ) - \u4ec5 \u7528\u4e8e \u5927 \u5730\u56fe \u3002 \u5728 \u5927\u578b \u8d34\u56fe \u4e2d \u5b9a\u4e49 \u89c2\u4f17 \u5bf9 \u5e73\u94fa \u52a0\u8f7d \u7684 \u5f71\u54cd \u3002 \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . WorldSettings ) \u5982\u679c \u5bf9\u8c61 \u7684 \u53d8\u91cf \u76f8\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ ne __ ( self , other = carla . WorldSettings ) \u5982\u679c \u5bf9\u8c61 \u7684 \u53d8\u91cf \u4e0d\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u5bf9\u4e8e \u5b57\u7b26 \u5b57\u7b26\u4e32 \u89e3\u6790 \u5df2 \u5efa\u7acb \u7684 \u8bbe\u7f6e \u5e76 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u663e\u793a \u51fa\u6765 \u3002 \u8fd4\u56de : str carla . WorldSnapshot \u5feb\u7167 \u5305\u62ec \u67d0\u4e00 \u65f6\u523b \u573a\u666f \u4e2d \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5b83 \u521b\u5efa \u5e76 \u7ed9\u51fa \u4e00\u4e9b \u5217 \u5305\u542b carla . ActorSnapshot \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6bcf \u4e00\u4e2a \u4e0d\u80fd \u5b58\u50a8 \u7684 \u6ef4\u7b54 \u4fe1\u53f7 \u4e2d \u83b7\u53d6 \u4e00\u4e2a \u65b0 \u7684 \u5feb\u7167 \u3002 \u5b9e\u4f8b \u53d8\u91cf id ( int ) \u4e3a\u4e86 \u5206\u8fa8 \u6bcf \u4e00\u4e2a \u5feb\u7167 \u7684 \u552f\u4e00 \u503c \u3002 frame ( int ) \u83b7\u53d6 \u5feb\u7167 \u65f6 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 timestamp ( carla . Timestamp - seconds ) \u83b7\u53d6 \u5feb\u7167 \u65f6\u5019 \u7684 \u7cbe\u786e \u65f6\u523b \u3002 \u7531 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7ed9\u51fa \u7684 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u7684 \u7c7b \u3002 \u65b9\u6cd5 find ( self , actor _ id ) \u7ed9\u51fa \u67d0\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \uff0c \u8fd4\u56de \u5bf9\u5e94 \u7684 \u5feb\u7167 \uff0c \u5982\u679c \u6ca1\u6709 \u627e\u5230 \u5219 \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a actor _ id ( int ) \u8fd4\u56de : carla . ActorSnapshot has _ actor ( self , actor _ id ) \u7ed9\u51fa \u67d0\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \uff0c \u5982\u679c \u6709 \u5bf9\u5e94 \u7684 \u5feb\u7167 \u5219 \u68c0\u67e5 \uff0c \u5982\u679c \u5728 \u8fd9\u4e2a \u65f6\u523b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u51fa\u73b0 \u3002 \u53c2\u6570 \uff1a actor _ id ( int ) \u8fd4\u56de \uff1a bool \u9b54\u672f \u65b9\u6cd5 __ eq __ ( self , other = carla . WorldSnapshot ) \u5982\u679c \u65f6\u95f4 \u6233 timestamp \u76f8\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ iter __ ( self ) \u5728 \u5b58\u50a8 \u7684 \u5feb\u7167 \u4e0a \u8fdb\u884c \u8fed\u4ee3 carla . ActorSnapshot \u3002 __ len __ ( self ) \u8fd4\u56de \u5728 \u8be5 \u5feb\u7167 \u4e0a \u5448\u73b0 \u7684 carla . ActorSnapshot \u7684 \u6570\u91cf \u3002 \u8fd4\u56de : int __ ne __ ( self , other = carla . WorldSnapshot ) \u5982\u679c \u65f6\u95f4 \u6233 timestamp \u90fd \u4e0d\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool command . ApplyAngularImpulse carla . Actor \u4e2d add _ angular _ impulse ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f7f\u7528 angular impulse \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) Actor affected by the command . impulse ( carla . Vector3D - degrees * s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u7684 \u89d2 \u51b2\u91cf \u3002 \u65b9\u6cd5 __ init __ ( self , actor , impulse ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 impulse ( carla . Vector3D - degrees * s ) command . ApplyForce carla . Actor \u4e2d add _ force ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65bd\u52a0 \u4e00\u4e2a \u529b \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u88ab \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 force ( carla . Vector3D - N ) \u5728 \u65f6\u95f4 \u4e0a \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65bd\u52a0 \u529b \u3002 \u65b9\u6cd5 __ init __ ( self , actor , force ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u65bd\u52a0 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 force ( carla . Vector3D - N ) command . ApplyImpulse carla . Actor \u4e2d add _ impulse ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u6700 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65bd\u52a0 \u7684 impulse \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 impulse ( carla . Vector3D - N * s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 Impulse \u3002 \u65b9\u6cd5 __ init __ ( self , actor , impulse ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 impulse ( carla . Vector3D - N * s ) command . ApplyTargetAngularVelocity carla . Actor \u4e2d set _ target _ angular _ velocity ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u88ab \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 angular _ velocity ( carla . Vector3D - deg / s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e09\u7ef4 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , angular _ velocity ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5c06\u8981 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 angular _ velocity ( carla . Vector3D - deg / s ) - \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 command . ApplyTargetVelocity carla . Actor \u4e2d set _ target _ velocity ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u88ab \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 velocity ( carla . Vector3D - m / s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e09\u7ef4 \u901f\u5ea6 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , velocity ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 velocity ( carla . Vector3D - m / s ) - \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 command . ApplyTorque carla . Actor \u4e2d add _ torque ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e94\u7528 torque \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 torque ( carla . Vector3D - \u5ea6 ) \u5728 \u65f6\u95f4 \u4e0a \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e94\u7528 \u529b\u77e9 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , torque ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u5b83 \u7684 ID \u3002 torque ( carla . Vector3D - \u5ea6 ) command . ApplyTransform carla . Actor \u4e2d set _ transform ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbe\u7f6e \u65b0 \u7684 \u53d8\u6362 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 transform ( carla . Transform ) \u6240 \u4f7f\u7528 \u7684 \u53d8\u6362 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , transform ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 transform ( carla . Transform ) command . ApplyVehicleAckermannControl carla . Vehicle \u4e2d apply _ ackermann _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u67d0\u4e2a \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 control ( carla . AckermannVehicleControl ) \u5e94\u7528 \u7684 \u8f66\u8f86 \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 control ( carla . AckermannVehicleControl ) command . ApplyVehicleControl in carla . Vehicle \u4e2d apply _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u67d0\u4e2a \u63a7\u5236 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 control ( carla . VehicleControl ) \u5e94\u7528 \u7684 \u8f66\u8f86 \u63a7\u5236 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u5e94\u7528 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 control ( carla . VehicleControl ) command . ApplyVehiclePhysicsControl carla . Vehicle \u4e2d apply _ physics _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u4e00\u4e2a \u65b0 \u7684 \u7269\u7406 \u63a7\u5236 \uff0c \u4fee\u6539 \u5b83 \u7684 \u7269\u7406 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 physics _ control ( carla . VehiclePhysicsControl ) \u5e94\u7528 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , physics _ control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 physics _ control ( carla . VehiclePhysicsControl ) command . ApplyWalkerControl carla . Walker \u4e2d apply _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u884c\u4eba \u5e94\u7528 \u63a7\u5236 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 control ( carla . WalkerControl ) \u5e94\u7528 \u7684 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u5e94\u7528 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 control ( carla . WalkerControl ) command . ApplyWalkerState \u5bf9 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e94\u7528 \u72b6\u6001 \u3002 \u5bf9 \u521d\u59cb \u521d\u59cb\u5316 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3001 \u671d\u5411 \u548c \u901f\u5ea6 \u7279\u522b \u6709\u7528 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 transform ( carla . Transform ) \u5e94\u7528 \u7684 \u8f6c\u6362 \u3002 speed ( float - m / s ) \u5e94\u7528 \u7684 \u901f\u5ea6 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , transform , speed ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5f15\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 transform ( carla . Transform ) speed ( float - m / s ) command . DestroyActor carla . Actor \u4e2d destroy ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \uff0c \u5c06 \u544a\u8bc9 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6467\u6bc1 \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5df2\u7ecf \u88ab \u6467\u6bc1 \u5219 \u6ca1\u6709 \u5f71\u54cd \u3002 \u5f53 \u5728 carla . Client \u4e2d \u6267\u884c apply _ batch _ sync ( ) \u5c06\u4f1a \u8fd4\u56de \u4e00\u4e2a \u5e03\u5c14 \u5e03\u5c14\u503c \u72b6\u6001 \u8868\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u88ab \u6210\u529f \u6467\u6bc1 \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u65b9\u6cd5 __ init __ ( self , actor ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 command . Response \u58f0\u660e \u547d\u4ee4 \u6267\u884c \u7684 \u7ed3\u679c \uff0c \u4e0d\u662f \u547d\u4ee4 \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \uff08 \u5f53 \u6210\u529f \u65f6 \uff09 \uff0c \u5c31\u662f \u9519\u8bef \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff08 \u5f53 \u5931\u8d25 \u65f6 \uff09 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u53d6\u51b3 \u53d6\u51b3\u4e8e \u547d\u4ee4 \u662f\u5426 \u6267\u884c \u6210\u529f \u3002 carla . Client \u4e2d \u7684 \u65b9\u6cd5 apply _ batch _ sync ( ) \u8fd4\u56de \u8fd9\u4e9b \u7684 \u5217\u8868 \u6765 \u603b\u7ed3 \u6279\u91cf \u7684 \u6267\u884c \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u58f0\u660e \u8be5 \u547d\u4ee4 \u6210\u529f \u4e86 \u3002 error ( str ) \u58f0\u660e \u547d\u4ee4 \u5931\u8d25 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u65b9\u6cd5 has _ error ( self ) \u5982\u679c \u547d\u4ee4 \u6267\u884c \u5931\u8d25 \u5219 \u8fd4\u56de True \uff0c \u5982\u679c \u6210\u529f \u5219 \u8fd4\u56de False \u3002 \u8fd4\u56de : bool command . SetAutopilot carla . Vehicle \u4e2d set _ autopilot ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u6253\u5f00 / \u5173\u95ed \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool ) \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u5c06 \u88ab \u6fc0\u6d3b \u6216\u8005 \u5931\u6d3b \u3002 port ( uint16 ) \u6ce8\u518c \u6216 unlisted \u8f66\u8f86 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7aef\u53e3 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , enabled , port = 8000 ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5e94\u7528 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 enabled ( bool ) port ( uint16 ) - \u6ce8\u518c \u6216 unlisted \u8f66\u8f86 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7aef\u53e3 \u3002 \u5982\u679c \u4f20\u9012 \u7684 \u662f None \uff0c \u4f1a \u8003\u8651 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u9ed8\u8ba4 \u7aef\u53e3 8000 \u3002 command . SetEnableGravity carla . Actor \u4e2d set _ enable _ gravity ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u7981\u7528 \u6216 \u542f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cd\u529b \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( carla . Actor or int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool ) \u65b9\u6cd5 __ init __ ( self , actor , enabled ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u3002 enabled ( bool ) command . SetSimulatePhysics carla . Actor \u4e2d set _ simulate _ physics ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u786e\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u4f1a \u88ab \u7269\u7406 \u5f71\u54cd \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool ) \u662f\u5426 \u6fc0\u6d3b \u7269\u7406 \u3002 \u65b9\u6cd5 __ init __ ( self , actor , enabled ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 ID \u3002 enabled ( bool ) command . SetVehicleLightState carla . Vehicle \u4e2d set _ light _ state ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 light _ state ( carla . VehicleLightState ) \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u65b9\u6cd5 __ init __ ( self , actor , light _ state ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 light _ state ( carla . VehicleLightState ) - Recaps \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \uff0c \u8fd9\u4e9b \u80fd \u88ab \u7528\u4f5c \u4e00\u4e2a \u6807\u5fd7 \u3002 command . ShowDebugTelemetry carla . Actor \u4e2d show _ debug _ telemetry ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u663e\u793a \u8f66\u8f86 \u7684 telemetry \u6570\u636e \u3002 \u5b9e\u4f8b \u53d8\u91cf actor _ id ( carla . Actor or int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool ) \u65b9\u6cd5 __ init __ ( self , actor , enabled ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u3002 enabled ( bool ) command . SpawnActor carla . World \u4e2d spawn _ actor ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u57fa\u4e8e \u63d0\u4f9b \u7684 \u84dd\u56fe \u548c \u53d8\u6362 \u5728 \u4e16\u754c \u4e2d \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u63d0\u4f9b \u4e86 \u7236\u7c7b \uff0c \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06\u4f1a \u9644 \u5728 \u4e0a\u9762 \u3002 \u5b9e\u4f8b \u53d8\u91cf transform ( carla . Transform ) \u5e94\u7528 \u7684 \u53d8\u6362 \u3002 parent _ id ( int ) \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6807\u5fd7 \u3002 \u65b9\u6cd5 __ init __ ( self ) __ init __ ( self , blueprint , transform ) \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) __ init __ ( self , blueprint , transform , parent ) \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) parent ( carla . Actor or int ) then ( self , command ) \u94fe\u63a5 \u4e00\u4e2a \u5176\u4ed6 \u5c06\u8981 \u7acb\u523b \u6267\u884c \u7684 \u547d\u4ee4 \u3002 \u5b83 \u5141\u8bb8 ease \u975e\u5e38 \u5e38\u89c1 \u7684 \u6d41 \uff0c \u6bd4\u5982 \u901a\u8fc7 \u547d\u4ee4 \u751f\u6210 \u4e00\u7ec4 \u8f66\u8f86 \uff0c \u5e76 \u4f7f\u7528 \u8be5 \u65b9\u6cd5 \u8bbe\u7f6e \u81ea\u52a8 \u9a7e\u9a76 \u3002 \u53c2\u6570 \uff1a command ( any carla Command ) - \u4e00\u4e2a Carla \u547d\u4ee4 \u3002 function CopyToClipboard ( containerid ) { if ( document . selection ) { var range = document . body . createTextRange ( ) ; range . moveToElementText ( document . getElementById ( containerid ) ) ; range . select ( ) . createTextRange ( ) ; document . execCommand ( \" copy \" ) ; } else if ( window . getSelection ) { var range = document . createRange ( ) ; range . selectNode ( document . getElementById ( containerid ) ) ; window . getSelection ( ) . addRange ( range ) ; document . execCommand ( \" copy \" ) ; } } function CloseSnipet ( ) { document . getElementById ( \" snipets - container \" ) . innerHTML = null ; } carla . World . enable _ environment _ objects \u4ee3\u7801 \u7247\u6bb5 # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u5728 \u5730\u56fe \u4e0a \u663e\u793a \u6216 \u9690\u85cf \u7279\u5b9a \u5efa\u7b51 \u3002 # Get the buildings in the world world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # \u8bbf\u95ee \u5355\u4e2a \u5efa\u7b51 IDs \u5e76 \u4fdd\u5b58 \u5230 \u4e00\u4e2a \u96c6\u5408 \u4e2d building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # \u9690\u85cf \u5efa\u7b51 world . enable _ environment _ objects ( objects _ to _ toggle , False ) # \u663e\u793a \u5efa\u7b51 world . enable _ environment _ objects ( objects _ to _ toggle , True ) Copy snippet Close snippet carla . DebugHelper . draw _ string \u4ee3\u7801 \u7247\u6bb5 # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u662f lane _ explorer . py \u793a\u4f8b \u7684 \u4fee\u6539 # \u5b83 \u5728 \u76f4\u63a5 \u4e2d \u7ed8\u5236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8def\u5f84 \uff0c \u6253\u5370 \u6bcf\u4e2a \u8def\u5f84 \u70b9 \u7684 \u4fe1\u606f \u3002 # ... current _ w = map . get _ waypoint ( vehicle . get _ location ( ) ) while True : next _ w = map . get _ waypoint ( vehicle . get _ location ( ) , lane _ type = carla . LaneType . Driving | carla . LaneType . Shoulder | carla . LaneType . Sidewalk ) # \u68c0\u67e5 \u8f66\u8f86 \u662f\u5426 \u5728 \u79fb\u52a8 if next _ w . id ! = current _ w . id : vector = vehicle . get _ velocity ( ) # Check if the vehicle is on a sidewalk if current _ w . lane _ type = = carla . LaneType . Sidewalk : draw _ waypoint _ union ( debug , current _ w , next _ w , cyan if current _ w . is _ junction else red , 60 ) else : draw _ waypoint _ union ( debug , current _ w , next _ w , cyan if current _ w . is _ junction else green , 60 ) debug . draw _ string ( current _ w . transform . location , str ( ' % 15.0 f km / h ' % ( 3.6 * math . sqrt ( vector . x * * 2 + vector . y * * 2 + vector . z * * 2 ) ) ) , False , orange , 60 ) draw _ transform ( debug , current _ w . transform , white , 60 ) # \u66f4\u65b0 \u5f53\u524d \u8def\u5f84 \u70b9 \u5e76 \u4f11\u7720 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 current _ w = next _ w time . sleep ( args . tick _ time ) # ... Copy snippet Close snippet Snippet for carla . World . unload _ map _ layer # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u5728 \u5206\u5c42 \u5730\u56fe \" _ Opt \" \u4e0a \u5173\u95ed \u51e0\u5c42 # \u4ee5 \u6700\u5c0f \u5e03\u5c40 \uff08 \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff09 \u52a0\u8f7d \u57ce\u9547 \uff0c \u8fd8 \u5305\u62ec \u5efa\u7b51 \u548c \u505c\u9760 \u7684 \u8f66\u8f86 world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # \u9690\u85cf \u5efa\u7b51 world . unload _ map _ layer ( carla . MapLayer . Buildings ) # \u9690\u85cf \u505c\u9760 \u7684 \u8f66\u8f86 world . unload _ map _ layer ( carla . MapLayer . ParkedVehicles ) Copy snippet Close snippet Snippet for carla . Vehicle . set _ wheel _ steer _ direction # \u8bbe\u7f6e \u524d \u8f6e\u8f6c 40 \u00b0 \u8f66\u8f86 \u7684 \u5916\u89c2 \u3002 \u4e0d\u4f1a \u5f71\u54cd \u8f66\u8f86 \u7684 \u7269\u7406 \u3002 vehicle . set _ wheel _ steer _ direction ( carla . VehicleWheelLocation . FR _ Wheel , 40.0 ) vehicle . set _ wheel _ steer _ direction ( carla . VehicleWheelLocation . FL _ Wheel , 40.0 ) Copy snippet Close snippet Snippet for carla . Client .__ init __ # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u5728 PythonAPI / Examples \u4e2d \u7684 \u6bcf\u4e2a \u811a\u672c \u4e2d \u90fd \u6709 \uff0c \u8fd0\u884c \u811a\u672c \u65f6\u5019 \u7528\u4e8e \u89e3\u6790 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u53c2\u6570 \u3002 argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) argparser . add _ argument ( ' - s ' , ' -- speed ' , metavar = ' FACTOR ' , default = 1.0 , type = float , help = ' rate at which the weather changes ( default : 1.0 ) ' ) args = argparser . parse _ args ( ) speed _ factor = args . speed update _ freq = 0.1 / speed _ factor client = carla . Client ( args . host , args . port ) Copy snippet Close snippet carla . Map . get _ waypoint \u4ee3\u7801 \u7247\u6bb5 # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u663e\u793a \u5f53\u524d \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5f71\u54cd \u7684 \u8f66\u8f86 \u3002 # \u663e\u793a \u5f53\u524d \u8f66\u8f86 \u7c7b\u578b \uff0c \u5728 \u5b9e\u9645 \u7684 \u8f66\u9053 \u6216 \u5468\u56f4 \u7684 \u7269\u4f53 \u4e2d \u8f66\u9053 \u7ebf \u662f\u5426 \u6539\u53d8 \u3002 # ... waypoint = world . get _ map ( ) . get _ waypoint ( vehicle . get _ location ( ) , project _ to _ road = True , lane _ type = ( carla . LaneType . Driving | carla . LaneType . Shoulder | carla . LaneType . Sidewalk ) ) print ( \" Current lane type : \" + str ( waypoint . lane _ type ) ) # Check current lane change allowed print ( \" Current Lane change : \" + str ( waypoint . lane _ change ) ) # Left and Right lane markings print ( \" L lane marking type : \" + str ( waypoint . left _ lane _ marking . type ) ) print ( \" L lane marking change : \" + str ( waypoint . left _ lane _ marking . lane _ change ) ) print ( \" R lane marking type : \" + str ( waypoint . right _ lane _ marking . type ) ) print ( \" R lane marking change : \" + str ( waypoint . right _ lane _ marking . lane _ change ) ) # ... Copy snippet Close snippet Snippet for carla . World . spawn _ actor # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u4f7f\u7528 \u4e0d\u540c \u7684 \u9644\u7740 \u5c06 \u4e0d\u540c \u7684 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216\u4f20\u611f\u5668 \u9644\u7740 \u5230 \u8f66\u8f86 \u4e2d \u3002 # ... camera = world . spawn _ actor ( rgb _ camera _ bp , transform , attach _ to = vehicle , attachment _ type = Attachment . Rigid ) # \u9ed8\u8ba4 \u9644\u7740 \uff1a Attachment . Rigid gnss _ sensor = world . spawn _ actor ( sensor _ gnss _ bp , transform , attach _ to = vehicle ) collision _ sensor = world . spawn _ actor ( sensor _ collision _ bp , transform , attach _ to = vehicle ) lane _ invasion _ sensor = world . spawn _ actor ( sensor _ lane _ invasion _ bp , transform , attach _ to = vehicle ) # ... Copy snippet Close snippet carla . WalkerAIController . stop \u4ee3\u7801 \u7247\u6bb5 # To destroy the pedestrians , stop them from the navigation , and then destroy the objects ( actor and controller ) . # stop pedestrians ( list is [ controller , actor , controller , actor ... ] ) for i in range ( 0 , len ( all _ id ) , 2 ) : all _ actors [ i ] . stop ( ) # destroy pedestrian ( actor and controller ) client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in all _ id ] ) Copy snippet Close snippet Snippet for carla . DebugHelper . draw _ box # This recipe shows how to draw traffic light actor bounding boxes from a world snapshot . # .... debug = world . debug world _ snapshot = world . get _ snapshot ( ) for actor _ snapshot in world _ snapshot : actual _ actor = world . get _ actor ( actor _ snapshot . id ) if actual _ actor . type _ id = = ' traffic . traffic _ light ' : debug . draw _ box ( carla . BoundingBox ( actor _ snapshot . get _ transform ( ) . location , carla . Vector3D ( 0.5 , 0.5 , 2 ) ) , actor _ snapshot . get _ transform ( ) . rotation , 0.05 , carla . Color ( 255 , 0 , 0 , 0 ) , 0 ) # ... Copy snippet Close snippet Snippet for carla . World . get _ spectator # This recipe spawns an actor and the spectator camera at the actor ' s location . # ... world = client . get _ world ( ) spectator = world . get _ spectator ( ) vehicle _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) ) transform = random . choice ( world . get _ map ( ) . get _ spawn _ points ( ) ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , transform ) # Wait for world to get the vehicle actor world . tick ( ) world _ snapshot = world . wait _ for _ tick ( ) actor _ snapshot = world _ snapshot . find ( vehicle . id ) # Set spectator at given transform ( vehicle transform ) spectator . set _ transform ( actor _ snapshot . get _ transform ( ) ) # ... Copy snippet Close snippet Snippet for carla . Sensor . listen # This recipe applies a color conversion to the image taken by a camera sensor , # so it is converted to a semantic segmentation image . # ... camera _ bp = world . get _ blueprint _ library ( ) . filter ( ' sensor . camera . semantic _ segmentation ' ) # ... cc = carla . ColorConverter . CityScapesPalette camera . listen ( lambda image : image . save _ to _ disk ( ' output / % 06d . png ' % image . frame , cc ) ) # ... Copy snippet Close snippet Snippet for carla . TrafficLight . set _ state # This recipe changes from red to green the traffic light that affects the vehicle . # This is done by detecting if the vehicle actor is at a traffic light . # ... world = client . get _ world ( ) spectator = world . get _ spectator ( ) vehicle _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) ) transform = random . choice ( world . get _ map ( ) . get _ spawn _ points ( ) ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , transform ) # Wait for world to get the vehicle actor world . tick ( ) world _ snapshot = world . wait _ for _ tick ( ) actor _ snapshot = world _ snapshot . find ( vehicle . id ) # Set spectator at given transform ( vehicle transform ) spectator . set _ transform ( actor _ snapshot . get _ transform ( ) ) # ...# ... if vehicle _ actor . is _ at _ traffic _ light ( ) : traffic _ light = vehicle _ actor . get _ traffic _ light ( ) if traffic _ light . get _ state ( ) = = carla . TrafficLightState . Red : # world . hud . notification ( \" Traffic light changed ! Good to go ! \" ) traffic _ light . set _ state ( carla . TrafficLightState . Green ) # ... Copy snippet Close snippet Snippet for carla . ActorBlueprint . set _ attribute # This recipe changes attributes of different type of blueprint actors . # ... walker _ bp = world . get _ blueprint _ library ( ) . filter ( ' walker . pedestrian.0002 ' ) walker _ bp . set _ attribute ( ' is _ invincible ' , True ) # ... # Changes attribute randomly by the recommended value vehicle _ bp = wolrd . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) color = random . choice ( vehicle _ bp . get _ attribute ( ' color ' ) . recommended _ values ) vehicle _ bp . set _ attribute ( ' color ' , color ) # ... camera _ bp = world . get _ blueprint _ library ( ) . filter ( ' sensor . camera . rgb ' ) camera _ bp . set _ attribute ( ' image _ size _ x ' , 600 ) camera _ bp . set _ attribute ( ' image _ size _ y ' , 600 ) # ... Copy snippet Close snippet Snippet for carla . Client . apply _ batch _ sync # 0 . Choose a blueprint fo the walkers world = client . get _ world ( ) blueprintsWalkers = world . get _ blueprint _ library ( ) . filter ( \" walker . pedestrian . * \" ) walker _ bp = random . choice ( blueprintsWalkers ) # 1 . Take all the random locations to spawn spawn _ points = [ ] for i in range ( 50 ) : spawn _ point = carla . Transform ( ) spawn _ point . location = world . get _ random _ location _ from _ navigation ( ) if ( spawn _ point . location ! = None ) : spawn _ points . append ( spawn _ point ) # 2 . Build the batch of commands to spawn the pedestrians batch = [ ] for spawn _ point in spawn _ points : walker _ bp = random . choice ( blueprintsWalkers ) batch . append ( carla . command . SpawnActor ( walker _ bp , spawn _ point ) ) # 2.1 apply the batch results = client . apply _ batch _ sync ( batch , True ) for i in range ( len ( results ) ) : if results [ i ] . error : logging . error ( results [ i ] . error ) else : walkers _ list . append ( { \" id \" : results [ i ] . actor _ id } ) # 3 . Spawn walker AI controllers for each walker batch = [ ] walker _ controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) for i in range ( len ( walkers _ list ) ) : batch . append ( carla . command . SpawnActor ( walker _ controller _ bp , carla . Transform ( ) , walkers _ list [ i ] [ \" id \" ] ) ) # 3.1 apply the batch results = client . apply _ batch _ sync ( batch , True ) for i in range ( len ( results ) ) : if results [ i ] . error : logging . error ( results [ i ] . error ) else : walkers _ list [ i ] [ \" con \" ] = results [ i ] . actor _ id # 4 . Put altogether the walker and controller ids for i in range ( len ( walkers _ list ) ) : all _ id . append ( walkers _ list [ i ] [ \" con \" ] ) all _ id . append ( walkers _ list [ i ] [ \" id \" ] ) all _ actors = world . get _ actors ( all _ id ) # wait for a tick to ensure client receives the last transform of the walkers we have just created world . wait _ for _ tick ( ) # 5 . initialize each controller and set target to walk to ( list is [ controller , actor , controller , actor ... ] ) for i in range ( 0 , len ( all _ actors ) , 2 ) : # start walker all _ actors [ i ] . start ( ) # set walk to random point all _ actors [ i ] . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) # random max speed all _ actors [ i ] . set _ max _ speed ( 1 + random . random ( ) ) # max speed between 1 and 2 ( default is 1.4 m / s ) Copy snippet Close snippet Snippet for carla . World . load _ map _ layer # This recipe toggles on several layers in our \" _ Opt \" maps # Load town one with only minimum layout ( roads , sidewalks , traffic lights and traffic signs ) world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . None ) # Toggle all buildings on world . load _ map _ layer ( carla . MapLayer . Buildings ) # Toggle all foliage on world . load _ map _ layer ( carla . MapLayer . Foliage ) # Toggle all parked vehicles on world . load _ map _ layer ( carla . MapLayer . ParkedVehicles ) Copy snippet Close snippet function ButtonAction ( container _ name ) { if ( window _ big ) { snipet _ name = container _ name . replace ( ' - snipet _ button ' , ' - snipet ' ) ; document . getElementById ( \" snipets - container \" ) . innerHTML = document . getElementById ( snipet _ name ) . innerHTML ; } else { document . getElementById ( \" snipets - container \" ) . innerHTML = null ; code _ name = container _ name . replace ( ' - snipet _ button ' , ' - code ' ) ; var range = document . createRange ( ) ; range . selectNode ( document . getElementById ( code _ name ) ) ; alert ( range ) ; } } function WindowResize ( ) { if ( window . innerWidth > 1200 ) { window _ big = true ; } else { window _ big = false ; } } var window _ big ; if ( window . innerWidth > 1200 ) { window _ big = true ; } else { window _ big = false ; } buttons = document . getElementsByClassName ( ' SnipetButton ' ) for ( let i = 0 ; i < buttons . length ; i ++ ) { buttons [ i ] . addEventListener ( \" click \" , function ( ) { ButtonAction ( buttons [ i ] . id ) ; } , true ) ; } window . onresize = WindowResize ;","title":"Python API \u53c2\u8003"},{"location":"python_api/#python-api","text":"\u6b64 \u53c2\u8003 \u5305\u542b Python API \u7684 \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u8981 \u67e5\u9605 \u7279\u5b9a Carla \u7248\u672c \u7684 \u5148\u524d \u53c2\u8003 \uff0c \u8bf7 \u4f7f\u7528 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4\u6539 \u6587\u6863 \u7248\u672c \u3002 \u8fd9\u4f1a \u5c06 \u6574\u4e2a \u6587\u6863 \u66f4 \u6539\u4e3a \u4e4b\u524d \u7684 \u72b6\u6001 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6700\u65b0 \u7248\u672c \u662f dev \u5206\u652f \uff0c \u53ef\u80fd \u4f1a \u663e\u793a \u4efb\u4f55 Carla \u6253\u5305 \u7248\u672c \u4e2d \u4e0d\u53ef \u7528 \u7684 \u529f\u80fd \u3002","title":"Python API \u53c2\u8003"},{"location":"python_api/#carlaackermanncontrollersettings","text":"\u7ba1\u7406 Ackermann PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u8bbe\u7f6e \u3002","title":"carla . AckermannControllerSettings"},{"location":"python_api/#_1","text":"speed _ kp ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 speed _ ki ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 speed _ kd ( float ) \u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002 accel _ kp ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u6bd4\u4f8b \u9879 \u3002 accel _ ki ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u79ef\u5206 \u9879 \u3002 accel _ kd ( float ) \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 PID \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5fae\u5206 \u9879 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_2","text":"__ init __ ( self , speed _ kp = 0.15 , speed _ ki = 0.0 , speed _ kd = 0.25 , accel _ kp = 0.01 , accel _ ki = 0.0 , accel _ kd = 0.01 ) Parameters : speed _ kp ( float ) speed _ ki ( float ) speed _ kd ( float ) accel _ kp ( float ) accel _ ki ( float ) accel _ kd ( float )","title":"\u65b9\u6cd5"},{"location":"python_api/#_3","text":"__ eq __ ( self , other = carla . AckermannControllerSettings ) __ ne __ ( self , other = carla . AckermannControllerSettings ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaactor","text":"Carla \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5b9a\u4e49 \u4e3a \u5728 \u4eff\u771f \u4e2d \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \u6216 \u53ef\u4ee5 \u79fb\u52a8 \u7684 \u4efb\u4f55 \u7269\u4f53 \u3002 \u5176\u4e2d \u5305\u62ec \uff1a \u884c\u4eba \u3001 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff08 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u89c6\u4e3a \u5176\u4e2d \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u4eff\u771f \u4e2d \u7531 carla . World \u751f\u6210 \uff0c \u5e76\u4e14 \u9700\u8981 \u521b\u5efa carla . ActorBlueprint \u3002 \u8fd9\u4e9b \u84dd\u56fe \u5c5e\u4e8e Carla \u63d0\u4f9b \u7684 \u5e93 \uff0c \u8bf7 \u5728 \u6b64\u5904 \u627e\u5230 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"carla . Actor"},{"location":"python_api/#_4","text":"attributes ( dict ) \u5305\u542b \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u84dd\u56fe \u5c5e\u6027 \u7684 \u5b57\u5178 \u3002 id ( int ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u5728 \u7ed9\u5b9a \u7684 \u60c5\u8282 \u4e2d\u662f \u552f\u4e00 \u7684 \u3002 type _ id ( str ) \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \uff0c \u4f8b\u5982 vehicle . ford . mustang \u3002 is _ alive ( bool ) \u8fd4\u56de \u6b64 \u5bf9\u8c61 \u662f\u5426 \u662f\u5426\u662f \u4f7f\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53e5\u67c4 \u9500\u6bc1 \u7684 \u3002 is _ active ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( True ) \u6216\u975e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 ( False ) \u3002 is _ dormant ( bool ) \u8fd4\u56de \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( True ) \u6216\u975e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 ( False ) - \u4e0e is _ active \u76f8\u53cd \u3002 parent ( carla . Actor ) \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u4ed6\u4eec \u5c06 \u8ddf\u968f \u7684 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u5c31\u662f \u6240\u8bf4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 semantic _ tags ( list ( int ) ) \u84dd\u56fe \u5217\u8868 \u7ec4\u4ef6 \u4e3a\u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u7684 \u8bed\u4e49 \u6807\u7b7e \u5217\u8868 \u3002 \u4f8b\u5982 \uff0c \u4ea4\u901a \u4ea4\u901a\u706f \u53ef\u4ee5 \u7528 Pole \u548c TrafficLight . \u3002 \u8fd9\u4e9b \u6807\u7b7e \u7531 \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u3002 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 actor _ state ( carla . ActorState ) \u8fd4\u56de carla . ActorState \uff0c \u5b83 \u53ef\u4ee5 \u8bc6\u522b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u3001 \u4f11\u7720 \u6216 \u65e0\u6548 \u72b6\u6001 \u3002 bounding _ box ( carla . BoundingBox ) \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u51e0\u4f55 \u5f62\u72b6 \u7684 \u8fb9\u754c \u6846 \u3002 \u5b83 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u662f \u76f8\u5bf9 \u4e8e \u5b83 \u6240 \u9644\u7740 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_5","text":"add _ angular _ impulse ( self , angular _ impulse ) \u5728 \u89d2\u8272 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u89d2 \u51b2\u91cf \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u626d\u77e9 \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ torque ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u65cb\u8f6c \u529b \u3002 \u53c2\u6570 : angular _ impulse ( carla . Vector3D - degrees * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u89d2 \u8109\u51b2 \u77e2\u91cf \u3002 add _ force ( self , force ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u529b \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u529b \u3002 \u4f7f\u7528 add _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u8109\u51b2 \u3002 \u53c2\u6570 : force ( carla . Vector3D - N ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u529b \u77e2\u91cf \u3002 add _ impulse ( self , impulse ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u65bd\u52a0 \u8109\u51b2 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u77ac\u65f6 \u529b \uff0c \u901a\u5e38 \u5e94\u7528 \u4e00\u6b21 \u3002 \u4f7f\u7528 add _ force ( ) \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u65bd\u52a0 \u529b \u3002 \u53c2\u6570 : impulse ( carla . Vector3D - N * s ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u8109\u51b2 \u77e2\u91cf \u3002 add _ torque ( self , torque ) \u5728 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8d28\u5fc3 \u5904 \u5e94\u7528 \u626d\u77e9 \u3002 \u6b64 \u65b9\u6cd5 \u9002\u7528 \u4e8e \u5728 \u4e00\u5b9a \u65f6\u95f4 \u5185 \u65bd\u52a0 \u7684 \u626d\u77e9 \u3002 \u4f7f\u7528 add _ angular _ impulse ( ) \u65bd\u52a0 \u4ec5 \u6301\u7eed \u77ac\u95f4 \u7684 \u626d\u77e9 \u3002 \u53c2\u6570 : torque ( carla . Vector3D - \u5ea6 ) - \u5168\u5c40 \u5750\u6807 \u4e2d \u7684 \u626d\u77e9 \u77e2\u91cf \u3002 destroy ( self ) \u544a\u8bc9 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u9500\u6bc1 \u8fd9\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5982\u679c \u6210\u529f \u5219 True \u3002 \u5982\u679c \u5df2\u7ecf \u88ab \u7834\u574f \u5219 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u8fd4\u56de : bool \u8b66\u544a : T \u6b64 \u65b9\u6cd5 \u4f1a \u963b\u6b62 \u811a\u672c \uff0c \u76f4\u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b8c\u6210 \u9500\u6bc1 \u4e3a\u6b62 \u3002 disable _ constant _ velocity ( self ) \u7981\u7528 \u4e4b\u524d \u4e3a carla . Vehicle \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbe\u7f6e \u7684 \u4efb\u4f55 \u6052\u5b9a \u901f\u5ea6 \u3002 enable _ constant _ velocity ( self , velocity ) \u5c06 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u77e2\u91cf \u8bbe\u7f6e \u4e3a \u968f \u65f6\u95f4 \u53d8\u5316 \u7684 \u6052\u5b9a \u503c \u3002 \u6240 \u5f97\u5230 \u7684 \u901f\u5ea6 \u5c06 \u8fd1\u4f3c \u8fd1\u4f3c\u4e8e velocity \u6240 \u8bbe\u7f6e \u7684 \u901f\u5ea6 \uff0c \u4e0e set _ target _ velocity ( ) \u4e00\u6837 \u3002 \u53c2\u6570 : velocity ( carla . Vector3D - m / s ) - Velocity vector in local space . \u6ce8\u610f : \u53ea\u6709 carla . Vehicle \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u4ee5 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u3002 \u8b66\u544a : \u4e3a \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u542f\u7528 \u6052\u5b9a \u901f\u5ea6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 \u6b64 \u65b9\u6cd5 \u4f1a \u8986\u76d6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5bf9 \u901f\u5ea6 \u7684 \u4efb\u4f55 \u66f4\u6539 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_6","text":"get _ acceleration ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u6536\u5230 \u7684 \u89d2\u8272 \u7684 \u4e09\u7ef4 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Vector3D - m / s 2 get _ angular _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - deg / s get _ location ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u4e0a \u4e00\u6b21 tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Location - \u7c73 \u8bbe\u7f6e \u5668 : carla . Actor . set _ location get _ transform ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . Transform \u8bbe\u7f6e \u5668 : carla . Actor . set _ transform get _ velocity ( self ) \u8fd4\u56de \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u63a5\u6536 \u5230 \u7684 \u89d2\u8272 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s get _ world ( self ) \u8fd4\u56de \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240\u5c5e \u7684 \u4e16\u754c \u3002 \u8fd4\u56de : carla . World","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_7","text":"set _ enable _ gravity ( self , enabled ) \u542f\u7528 \u6216 \u7981\u7528 \u6f14\u5458 \u7684 \u91cd\u529b \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 \u53c2\u6570 \uff1a enabled ( bool ) set _ location ( self , location ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ location set _ simulate _ physics ( self , enabled = True ) \u542f\u7528 \u6216 \u7981\u7528 \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u7684 \u7269\u7406 \u4eff\u771f \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1a enabled ( bool ) set _ target _ angular _ velocity ( self , angular _ velocity ) \u8bbe\u7f6e \u89d2\u8272 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u77e2\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a angular _ velocity ( carla . Vector3D - deg / s ) set _ target _ velocity ( self , velocity ) \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8fd9 \u662f \u5728 \u7269\u7406 \u6b65\u9aa4 \u4e4b\u524d \u5e94\u7528 \u7684 \uff0c \u56e0\u6b64 \u6700\u7ec8 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5c06 \u53d7\u5230 \u6469\u64e6 \u7b49 \u5916\u529b \u7684 \u5f71\u54cd \u3002 \u53c2\u6570 \uff1a velocity ( carla . Vector3D ) set _ transform ( self , transform ) \u5c06 \u89d2\u8272 \u4f20\u9001 \u5230 \u7ed9\u5b9a \u7684 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) \u83b7\u53d6 \u5668 \uff1a carla . Actor . get _ transform","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_8","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaactorattribute","text":"Carla \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . BlueprintLibrary \u8fdb\u884c \u8bbf\u95ee \u3002 \u6bcf\u4e2a \u84dd\u56fe \u90fd \u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5185\u90e8 \u5b9a\u4e49 \u7684 \u5c5e\u6027 \u3002 \u5176\u4e2d \u4e00\u4e9b \u662f \u53ef\u4ee5 \u4fee\u6539 \u7684 \uff0c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u662f \u4e0d\u53ef \u4fee\u6539 \u7684 \u3002 \u4e3a \u53ef \u8bbe\u7f6e \u7684 \u503c \u63d0\u4f9b \u4e86 \u63a8\u8350 \u63a8\u8350\u503c \u5217\u8868 \u3002","title":"carla . ActorAttribute"},{"location":"python_api/#_9","text":"id ( str ) \u5e93\u4e2d \u5c5e\u6027 \u7684 \u540d\u79f0 \u548c \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 is _ modifiable ( bool ) \u5982\u679c \u5c5e\u6027 \u7684 \u503c \u53ef\u4ee5 \u4fee\u6539 \uff0c \u5219 \u4e3a True \u3002 recommended _ values ( list ( str ) ) \u8bbe\u8ba1 \u84dd\u56fe \u7684 \u4eba\u5458 \u5efa\u8bae \u7684 \u503c \u5217\u8868 \u3002 type ( carla . ActorAttributeType ) \u5c5e\u6027 \u7684 \u53c2\u6570 \u7c7b\u578b \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_10","text":"as _ bool ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a \u5e03\u5c14 \u5e03\u5c14\u503c \u3002 as _ color ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a carla . Color \u3002 as _ float ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a \u6d6e\u70b9 \u578b \u3002 as _ int ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a int \u3002 as _ str ( self ) \u5c06 \u5c5e\u6027 \u8bfb\u53d6 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_11","text":"__ bool __ ( self ) __ eq __ ( self , other = bool / int / float / str / carla . Color / carla . ActorAttribute ) \u5982\u679c \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5c5e\u6027 \u548c other \u76f8\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ float __ ( self ) __ int __ ( self ) __ ne __ ( self , other = bool / int / float / str / carla . Color / carla . ActorAttribute ) \u5982\u679c \u6b64 actor \u7684 \u5c5e\u6027 \u548c other \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ nonzero __ ( self ) \u5982\u679c \u6b64 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5c5e\u6027 \u4e0d\u4e3a \u96f6 \u6216 null \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de : bool __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaactorattributetype","text":"Carla \u5728 carla . BlueprintLibrary \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u6bcf\u4e2a \u84dd\u56fe \u5177\u6709 \u4e0d\u540c \u7684 \u5c5e\u6027 \u3002 \u6b64\u7c7b \u5c06 carla . ActorAttribute \u4e2d \u7684 \u7c7b\u578b \u5b9a\u4e49 \u7c7b\u578b\u5b9a\u4e49 \u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u679a\u4e3e \u3002 \u6240\u6709 \u8fd9\u4e9b \u4fe1\u606f \u5747 \u5728 \u5185\u90e8 \u7ba1\u7406 \uff0c \u5e76 \u5728 \u6b64\u5904 \u5217\u51fa \uff0c \u4ee5\u4fbf \u66f4\u597d \u5730 \u7406\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u3002","title":"carla . ActorAttributeType"},{"location":"python_api/#_12","text":"Bool Int Float String RGBColor","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlaactorblueprint","text":"Carla \u4e3a Actor \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u84dd \u56fe\u5e93 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . BlueprintLibrary \u8fdb\u884c \u67e5\u9605 \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u5305\u542b \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u53ef\u4ee5 \u4fee\u6539 \u6216 \u4e0d\u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u3002 \u8be5\u7c7b \u662f \u5e93 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u521b\u5efa \u4e4b\u95f4 \u7684 \u4e2d\u95f4 \u6b65\u9aa4 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9700\u8981 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u624d\u80fd \u4ea7\u751f \u3002 \u8fd9\u4e9b \u5c06 \u6240\u8ff0 \u84dd\u56fe \u7684 \u4fe1\u606f \u53ca\u5176 \u5c5e\u6027 \u548c \u4e00\u4e9b \u6807\u7b7e \u5b58\u50a8 \u5728 \u5bf9\u8c61 \u4e2d\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u5206\u7c7b \u3002 \u7136\u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4e00\u4e9b \u5c5e\u6027 \u5e76 \u6700\u7ec8 \u901a\u8fc7 carla . World \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"carla . ActorBlueprint"},{"location":"python_api/#_13","text":"id ( str ) \u5e93\u5185 \u6240\u8ff0 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u4f8b\u5982 walker . pedestrian.0001 \u3002 tags ( list ( str ) ) \u6bcf\u4e2a \u84dd\u56fe \u5177\u6709 \u7684 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63cf\u8ff0 \u5b83\u4eec \u7684 \u6807\u7b7e \u5217\u8868 \u3002 \u4f8b\u5982 [ ' 0001 ' , ' pedestrian ' , ' walker ' ] \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_14","text":"has _ attribute ( self , id ) \u5982\u679c \u84dd\u56fe \u5305\u542b \u8be5 id \u5c5e\u6027 \uff0c \u5219 \u8fd4\u56de True \u3002 \u53c2\u6570 \uff1a id ( str ) - \u4f8b\u5982 gender \u5c06 \u4e3a \u884c\u4eba \u7684 \u84dd\u56fe \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool has _ tag ( self , tag ) \u5982\u679c \u84dd\u56fe \u5df2 \u5217\u51fa \u6307\u5b9a tag \u7684 \u5185\u5bb9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u53c2\u6570 \uff1a tag ( str ) - \u4f8b\u5982 \uff1a ' walker ' \u3002 \u8fd4\u56de \uff1a bool match _ tags ( self , wildcard _ pattern ) \u5982\u679c \u4e3a\u6b64 \u84dd\u56fe \u5217\u51fa \u7684 \u4efb\u4f55 \u6807\u8bb0 \u5339\u914d wildcard _ pattern \uff0c \u5219 \u8fd4\u56de True \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a bool","title":"\u65b9\u6cd5"},{"location":"python_api/#_15","text":"get _ attribute ( self , id ) \u8fd4\u56de \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5c5e\u6027 \u4ee5\u53ca id \u6807\u8bc6 \u6807\u8bc6\u7b26 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff1a id ( str ) \u8fd4\u56de \uff1a carla . ActorAttribute \u8bbe\u7f6e \u5668 \uff1a carla . ActorBlueprint . set _ attribute","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_16","text":"set _ attribute ( self , id , value ) snippet \u2192 \u5982\u679c id \u5c5e\u6027 \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u5c06 \u5176\u503c \u6539\u4e3a value \u3002 \u53c2\u6570 \uff1a id ( str ) - \u8981 \u66f4\u6539 \u5c5e\u6027 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 value ( str ) - \u6240\u8ff0 \u5c5e\u6027 \u7684 \u65b0\u503c \u3002 \u83b7\u53d6 \u5668 \uff1a carla . ActorBlueprint . get _ attribute","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#dunder","text":"__ iter __ ( self ) \u5728 \u84dd\u56fe \u6709 \u7684 carla . ActorAttribute \u4e4b\u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u6b64 \u84dd\u56fe \u7684 \u5c5e\u6027 \u6570\u91cf \u3002 __ str __ ( self )","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlaactorlist","text":"\u4e00\u4e2a \u7c7b \uff0c \u5b83 \u5305\u542b \u73b0\u573a \u51fa\u73b0 \u7684 \u6bcf\u4e2a \u6f14\u5458 \u5e76 \u63d0\u4f9b \u5bf9 \u4ed6\u4eec \u7684 \u8bbf\u95ee \u3002 \u8be5 \u5217\u8868 \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81ea\u52a8 \u521b\u5efa \u548c \u66f4\u65b0 \uff0c \u53ef\u4ee5 \u4f7f\u7528 carla . World \u8fd4\u56de \u3002","title":"carla . ActorList"},{"location":"python_api/#_17","text":"filter ( self , wildcard _ pattern ) \u7b5b\u9009 \u5339\u914d wildcard _ pattern \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \uff0c \u4ee5 \u5bf9\u6297 \u53d8\u91cf type _ id ( \u5b83 \u6807\u8bc6 \u7528\u4e8e \u751f\u6210 \u5b83\u4eec \u7684 \u84dd\u56fe ) \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a list find ( self , actor _ id ) \u4f7f\u7528 \u5176 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u67e5\u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u8fd4\u56de \u5b83 \uff0c \u5982\u679c \u4e0d \u5b58\u5728 \u5219 \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a actor _ id ( int ) \u8fd4\u56de \uff1a carla . Actor","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_1","text":"__ getitem __ ( self , pos = int ) \u8fd4\u56de \u4e0e \u5217\u8868 \u4e2d pos \u4f4d\u7f6e \u76f8\u5bf9 \u5e94 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de \uff1a carla . Actor __ iter __ ( self ) \u5728 \u5305\u542b carla . Actor \u7684 \u5217\u8868 \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u5217\u51fa \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int __ str __ ( self ) \u5728 \u5217\u51fa \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u89e3\u6790 ID \u3002 \u8fd4\u56de \uff1a str","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlaactorsnapshot","text":"\u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u7279\u5b9a \u65f6\u523b \u7684 \u6240\u6709 \u4fe1\u606f \u7684 \u7c7b \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u5305\u542b \u5728 carla . WorldSnapshot \u4e2d \uff0c \u5e76 \u5728 \u6bcf\u4e2a \u65f6\u949f \u5468\u671f \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u6b21 \u3002","title":"carla . ActorSnapshot"},{"location":"python_api/#_18","text":"id ( int ) \u5feb\u7167 \u672c\u8eab \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_19","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_20","text":"get _ acceleration ( self ) \u8fd4\u56de \u5728 \u8be5 tick \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s 2 get _ angular _ velocity ( self ) \u8fd4\u56de \u4e3a \u8be5 tick \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - rad / s get _ transform ( self ) \u8fd4\u56de \u8be5 tick \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u8fd4\u56de \uff1a carla . Transform get _ velocity ( self ) \u8fd4\u56de \u5728 \u8be5 tick \u4e2d\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ce8\u518c \u7684 \u901f\u5ea6 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D - m / s","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#carlaactorstate","text":"\u5b9a\u4e49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u72b6\u6001 \u7684 \u7c7b \u3002","title":"carla . ActorState"},{"location":"python_api/#_21","text":"Invalid \u5982\u679c \u51fa\u73b0 \u95ee\u9898 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c31\u662f \u65e0\u6548 \u7684 \u3002 Active \u5f53 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5e76\u4e14 \u53ef\u4ee5 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u5b83 \u5c31\u662f \u6d3b\u8dc3 \u7684 \u3002 Dormant \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0d \u88ab \u53ef\u89c6 \u53ef\u89c6\u5316 \u5e76\u4e14 \u4e0d\u4f1a \u901a\u8fc7 \u7269\u7406 \u5f71\u54cd \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c31 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u4e8e \u5927 \u5730\u56fe \u4e2d \u5df2 \u5378\u8f7d \u7684 \u56fe\u5757 \u4e0a \uff0c \u5219 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlaattachmenttype","text":"\u5b9a\u4e49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0e \u5176\u7236 \u7ea7 \u4e4b\u95f4 \u7684 \u9644\u4ef6 \u9009\u9879 \u7684 \u7c7b \u3002 \u5f53 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u5b83\u4eec \u53ef\u4ee5 \u9644\u52a0 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \uff0c \u8fd9\u6837 \u5b83\u4eec \u7684 \u4f4d\u7f6e \u5c31 \u4f1a \u76f8\u5e94 \u6539\u53d8 \u3002 \u8fd9 \u5bf9\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7279\u522b \u6709\u7528 \u3002 carla . World . spawn _ actor \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u751f\u6210 \u65f6 \u8fde\u63a5 \u5230 \u6c7d\u8f66 \u4e0a \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9644\u4ef6 \u7c7b\u578b \u5728 \u7c7b \u4e2d \u58f0\u660e \u4e3a \u679a\u4e3e \u3002","title":"carla . AttachmentType"},{"location":"python_api/#_22","text":"Rigid \u901a\u8fc7 \u6b64 \u56fa\u5b9a \u9644\u4ef6 \uff0c \u5bf9\u8c61 \u4e25\u683c \u9075\u5faa \u5176\u7236 \u4f4d\u7f6e \u3002 \u8fd9\u662f \u63a8\u8350 \u7684 \u9644\u4ef6 \uff0c \u7528\u4e8e \u4ece \u4eff\u771f \u4e2d \u68c0\u7d22 \u7cbe\u786e \u6570\u636e \u3002 SpringArm \u4e00\u79cd \u9644\u4ef6 \uff0c \u53ef \u6839\u636e \u5176\u7236 \u7ea7 \u6269\u5c55 \u6216 \u7f29\u56de \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 \u4ec5 \u5efa\u8bae \u5728 \u9700\u8981 \u5e73\u6ed1 \u8fd0\u52a8 \u7684 \u4eff\u771f \u4e2d \u5f55\u5236 \u89c6\u9891 \u65f6 \u4f7f\u7528 \u6b64 \u9644\u4ef6 \u3002 SpringArms \u662f \u4e00\u4e2a \u865a\u5e7b \u5f15\u64ce \u7ec4\u4ef6 \uff0c \u56e0\u6b64 check the UE \u6587\u6863 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8b66\u544a \uff1a \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 Z \u8f74\u4e0a \u4ea7\u751f \u76f8\u5bf9 \u5e73\u79fb \u65f6 \uff0c SpringArm \u9644\u4ef6 \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u5947\u602a \u7684 \u884c\u4e3a \u3002 \uff08 \u6bd4\u5982 \uff1a child _ location = Location ( 0 , 0 , 2 ) \uff09 \u3002 SpringArmGhost \u4e00\u4e2a \u4e0e \u524d \u4e00\u4e2a \u7c7b\u4f3c \u7684 \u9644\u4ef6 \uff0c \u4f46 \u5b83 \u4e0d\u4f1a \u8fdb\u884c \u78b0\u649e \u6d4b\u8bd5 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83 \u4e0d\u4f1a \u6269\u5c55 \u6216 \u6536\u7f29 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3002 ghost \u4e00\u8bcd \u56e0\u4e3a \u662f\u56e0\u4e3a \u8fd9\u6837 \u76f8\u673a \u5c31 \u53ef\u4ee5 \u7a7f\u8fc7 \u5899\u58c1 \u548c \u5176\u4ed6 \u51e0\u4f55 \u5f62\u72b6 \u3002 \u6b64 \u9644\u4ef6 \u4ec5 \u5efa\u8bae \u7528\u4e8e \u5f55\u5236 \u9700\u8981 \u5e73\u6ed1 \u79fb\u52a8 \u7684 \u4eff\u771f \u89c6\u9891 \u3002 SpringArms \u662f \u4e00\u4e2a \u865a\u5e7b \u5f15\u64ce \u7ec4\u4ef6 \uff0c \u8bf7 \u67e5\u770b \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8b66\u544a \uff1a \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 Z \u8f74\u4e0a \u4ea7\u751f \u76f8\u5bf9 \u5e73\u79fb \u65f6 \uff0c SpringArm \u9644\u4ef6 \u4f1a \u51fa\u73b0 \u5947\u602a \u7684 \u884c\u4e3a \uff08 \u6bd4\u5982 child _ location = Location ( 0 , 0 , 2 ) \uff09 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlablueprintlibrary","text":"\u5305\u542b \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u6210 \u63d0\u4f9b \u7684 \u84dd\u56fe \u7684 \u7c7b \u3002 \u5b83 \u7684 \u4e3b\u8981 \u5e94\u7528 \u662f \u8fd4\u56de \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u9700 \u7684 carla . ActorBlueprint \u5bf9\u8c61 \u3002 \u6bcf\u4e2a \u84dd\u56fe \u90fd \u6709 \u4e00\u4e2a \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u53ef\u80fd \u662f \u53ef \u4fee\u6539 \u7684 \uff0c \u4e5f \u53ef\u80fd \u662f \u4e0d\u53ef \u4fee\u6539 \u7684 \u3002 \u8be5\u5e93 \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81ea\u52a8 \u521b\u5efa \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . World \u8bbf\u95ee \u3002 \u8fd9 \u662f \u5305\u542b \u6bcf\u4e2a \u53ef\u7528 \u84dd\u56fe \u53ca\u5176 \u7ec6\u8282 \u7684 \u53c2\u8003 \u3002","title":"carla . BlueprintLibrary"},{"location":"python_api/#_23","text":"filter ( self , wildcard _ pattern ) \u6839\u636e \u6b64\u5e93 \u4e2d \u5305\u542b \u7684 \u6bcf\u4e2a \u84dd\u56fe \u7684 id \u548c \u6807\u8bb0 \u8fc7\u6ee4 \u4e0e \u901a\u914d\u7b26 \u6a21\u5f0f wildcard _ pattern \u5339\u914d \u7684 \u84dd\u56fe \u5217\u8868 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u4f5c\u4e3a \u65b0 \u7684 \u7ed3\u679c \u8fd4\u56de \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a wildcard _ pattern ( str ) \u8fd4\u56de \uff1a carla . BlueprintLibrary filter _ by _ attribute ( self , name , value ) \u6839\u636e \u6b64\u5e93 \u4e2d \u5305\u542b \u7684 \u6bcf\u4e2a \u84dd\u56fe \uff0c \u7b5b\u9009 \u5177\u6709 \u4e0e\u503c value \u5339\u914d \u7684 \u7ed9\u5b9a \u5c5e\u6027 \u7684 \u84dd\u56fe \u5217\u8868 \uff0c \u5e76 \u5c06 \u7ed3\u679c \u4f5c\u4e3a \u65b0 \u7684 \u7ed3\u679c \u8fd4\u56de \u3002 \u5339\u914d \u9075\u5faa fnmatch \u6807\u51c6 \u3002 \u53c2\u6570 \uff1a name ( str ) value ( str ) \u8fd4\u56de \uff1a carla . BlueprintLibrary find ( self , id ) \u8fd4\u56de \u4e0e \u8be5 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u5bf9\u5e94 \u7684 \u84dd\u56fe \u3002 \u53c2\u6570 \uff1a id ( str ) \u8fd4\u56de \uff1a carla . ActorBlueprint","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_2","text":"__ getitem __ ( self , pos = int ) \u8fd4\u56de \u5b58\u50a8 \u5728 \u5305\u542b \u84dd\u56fe \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u5185 pos \u4f4d\u7f6e \u7684 \u84dd\u56fe \u3002 \u8fd4\u56de : carla . ActorBlueprint __ iter __ ( self ) \u5728 \u5b58\u50a8 \u5e93 carla . ActorBlueprint \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) \u8fd4\u56de \u6784\u6210 \u5e93 \u7684 \u84dd\u56fe \u6570\u91cf \u3002 \u8fd4\u56de \uff1a int __ str __ ( self ) \u89e3\u6790 \u8981 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5316 \u7684 \u6bcf\u4e2a \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u8fd4\u56de \uff1a string","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlaboundingbox","text":"\u8fb9\u754c \u6846 \u5305\u542b \u573a\u666f \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5143\u7d20 \u7684 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u88ab carla . DebugHelper \u6216 carla . Client \u7528\u4e8e \u7ed8\u5236 \u5b83\u4eec \u7684 \u5f62\u72b6 \u4ee5 \u8fdb\u884c \u8c03\u8bd5 \u3002 \u770b\u770b carla . DebugHelper . draw _ box \uff0c \u5176\u4e2d \u4f7f\u7528 \u4e16\u754c \u5feb\u7167 \u7ed8\u5236 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u8fb9\u754c \u6846 \u3002","title":"carla . BoundingBox"},{"location":"python_api/#_24","text":"extent ( carla . Vector3D - \u7c73 ) \u4ece \u957f\u65b9 \u957f\u65b9\u4f53 \u4e2d\u5fc3 \u5230 \u4e00\u4e2a \u9876\u70b9 \u7684 \u77e2\u91cf \u3002 \u6bcf\u4e2a \u8f74\u4e2d \u7684 \u503c \u7b49\u4e8e \u8be5\u8f74\u6846 \u5927\u5c0f \u7684 \u4e00\u534a \u3002 extent . x * 2 \u5c06 \u8fd4\u56de \u6846\u5728 x \u8f74\u4e0a \u7684 \u5927\u5c0f \u3002 location ( carla . Location - \u7c73 ) \u8fb9\u754c \u6846 \u7684 \u4e2d\u5fc3 \u3002 rotation ( carla . Rotation ) \u8fb9\u754c \u6846 \u7684 \u671d\u5411 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_25","text":"__ init __ ( self , location , extent ) \u53c2\u6570 \uff1a location ( carla . Location ) - \u76f8\u5bf9 \u4e8e \u5176\u7236 \u6846 \u7684 \u4e2d\u5fc3 \u3002 extent ( carla . Vector3D - \u7c73 ) - \u5305\u542b \u6bcf\u4e2a \u8f74 \u7684 \u957f\u65b9 \u957f\u65b9\u4f53 \u5927\u5c0f \u7684 \u4e00\u534a \u7684 \u77e2\u91cf \u3002 contains ( self , world _ point , transform ) \u5982\u679c \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u4f20\u9012 \u7684 \u70b9 \u5728 \u6b64 \u8fb9\u754c \u6846\u5185 \uff0c \u5219 \u8fd4\u56de True \u3002 Parameters : world _ point ( carla . Location - \u7c73 ) - \u8981 \u68c0\u67e5 \u7684 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u70b9 \u3002 transform ( carla . Transform ) - \u5305\u542b \u5c06 \u6b64 \u5bf9\u8c61 \u7684 \u5c40\u90e8 \u7a7a\u95f4 \u8f6c\u6362 \u4e3a \u4e16\u754c \u7a7a\u95f4 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8fd4\u56de \uff1a bool","title":"\u65b9\u6cd5"},{"location":"python_api/#_26","text":"get _ local _ vertices ( self ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u5c40\u90e8 \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ world _ vertices ( self , transform ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u8be5 \u5bf9\u8c61 \u7684 \u9876\u70b9 \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 \u53c2\u6570 \uff1a transform ( carla . Transform ) - \u5305\u542b \u5c06 \u6b64 \u5bf9\u8c61 \u7684 \u672c\u5730 \u7a7a\u95f4 \u8f6c\u6362 \u4e3a \u4e16\u754c \u7a7a\u95f4 \u6240 \u9700 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8fd4\u56de \uff1a list ( carla . Location )","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#dunder_3","text":"__ eq __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u53e6 \u4e00\u4e2a other \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . BoundingBox ) \u5982\u679c \u6b64 \u548c \u5176\u4ed6 other \u7684 \u4f4d\u7f6e \u6216 \u8303\u56f4 \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de true \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u548c \u8303\u56f4 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlacityobjectlabel","text":"\u5305\u542b \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World . get _ level _ bbs ( ) \u8fd4\u56de \u7684 \u8fb9\u754c \u6846 \u7684 \u4e0d\u540c \u6807\u7b7e \u7684 \u679a\u4e3e \u58f0\u660e \u3002 \u8fd9\u4e9b \u503c \u5bf9\u5e94 \u4e8e \u573a\u666f \u4e2d \u5143\u7d20 \u6240 \u5177\u6709 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"carla . CityObjectLabel"},{"location":"python_api/#_27","text":"None Buildings Fences Other Pedestrians Poles RoadLines Roads Sidewalks TrafficSigns Vegetation Vehicles Walls Sky Ground Bridge RailTrack GuardRail TrafficLight Static Dynamic Water Terrain Any","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlaclient","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 Carla \u8fde\u63a5 \u5230 \u8fd0\u884c \u4eff\u771f \u7684 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u5305\u542b Carla \u5e93 ( libcarla ) \uff0c \u4f46 \u5b58\u5728 \u4e00\u4e9b \u5dee\u5f02 \uff0c \u5141\u8bb8 \u5b83\u4eec \u4e4b\u95f4 \u8fdb\u884c \u901a\u4fe1 \u3002 \u53ef\u4ee5 \u521b\u5efa \u8bb8\u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u90fd \u4f1a \u8fde\u63a5 \u5230 \u4eff\u771f \u5185 \u7684 RPC \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ee5 \u53d1\u9001 \u547d\u4ee4 \u3002 \u4eff\u771f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u8fd0\u884c \u3002 \u4e00\u65e6 \u5efa\u7acb \u8fde\u63a5 \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u4ec5 \u63a5\u6536 \u4ece \u4eff\u771f \u68c0\u7d22 \u7684 \u6570\u636e \u3002 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u662f \u4f8b\u5916 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8d1f\u8d23 \u7ba1\u7406 \u8d1f\u8d23\u7ba1\u7406 \u884c\u4eba \uff0c \u56e0\u6b64 \uff0c \u5982\u679c \u60a8 \u4e0e \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e00\u8d77 \u8fd0\u884c \u4eff\u771f \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u95ee\u9898 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u60a8 \u901a\u8fc7 \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u751f\u6210 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \uff0c \u56e0\u4e3a \u6bcf\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ea \u77e5\u9053 \u5b83 \u8d1f\u8d23 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd8 \u5177\u6709 \u8bb0\u5f55 \u529f\u80fd \uff0c \u53ef\u4ee5 \u5728 \u8fd0\u884c \u4eff\u771f \u65f6 \u4fdd\u5b58 \u4eff\u771f \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u8fd9 \u4f7f\u5f97 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u968f\u610f \u91cd\u653e \u91cd\u653e\u4ee5 \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u5e76 \u8fdb\u884c \u5b9e\u9a8c \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u6b64 \u5f55\u97f3 \u5f55\u97f3\u673a \u7684 \u4e00\u4e9b \u4fe1\u606f \u3002","title":"carla . Client"},{"location":"python_api/#_28","text":"__ init __ ( self , host = 127.0 . 0.1 , port = 2000 , worker _ threads = 0 ) snippet \u2192 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6784\u9020 \u5668 \u3002 \u53c2\u6570 \uff1a host ( str ) - \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b9e\u4f8b \u7684 \u5730\u5740 IP\u5730\u5740 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a localhost \uff08 127.0 . 0.1 \uff09 \u3002 port ( int ) - \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5b9e\u4f8b \u7684 TCP \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u548c \u968f\u540e \u7684 2001 \u3002 worker _ threads ( int ) - \u7528\u4e8e \u540e\u53f0 \u66f4\u65b0 \u7684 \u5de5\u4f5c \u7ebf\u7a0b \u6570 \u3002 \u5982\u679c \u4e3a 0 \uff0c \u5219 \u4f7f\u7528 \u6240\u6709 \u53ef\u7528 \u7684 \u5e76\u53d1 \u6027 \u3002 apply _ batch ( self , commands ) \u5728 \u5355\u4e2a \u4eff\u771f \u6b65\u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u4e0d \u68c0\u7d22 \u4efb\u4f55 \u4fe1\u606f \u3002 \u5982\u679c \u9700\u8981 \u6709\u5173 \u6bcf\u4e2a \u547d\u4ee4 \u7684 \u54cd\u5e94 \u7684 \u4fe1\u606f \uff0c \u8bf7 \u4f7f\u7528 apply _ batch _ sync ( ) \u65b9\u6cd5 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u5220\u9664 \u5361\u62c9 \u4e2d \u51fa\u73b0 \u7684 \u6f14\u5458 \u7684 \u793a\u4f8b \u3002 \u4e00\u6b21 \u5217\u51fa \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 carla . ActorList \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u6bcf\u4e2a \u547d\u4ee4 \u90fd \u4e0d\u540c \uff0c \u5e76\u4e14 \u6709 \u81ea\u5df1 \u7684 \u53c2\u6570 \u3002 \u5b83\u4eec \u663e\u793a \u5728 \u6b64 \u9875\u9762 \u5e95\u90e8 \u5217\u51fa \u3002 apply _ batch _ sync ( self , commands , due _ tick _ cue = False ) snippet \u2192 \u5728 \u5355\u4e2a \u4eff\u771f \u6b65\u4e0a \u6267\u884c \u547d\u4ee4 \u6267\u884c\u547d\u4ee4 \u5217\u8868 \uff0c \u963b\u6b62 \u76f4\u5230 \u547d\u4ee4 \u94fe\u63a5 \uff0c \u5e76 \u8fd4\u56de command . Response \u5217\u8868 \u3002 \u53ef \u7528\u4e8e \u786e\u5b9a \u5355\u4e2a \u547d\u4ee4 \u662f\u5426 \u6210\u529f \u7684 \u54cd\u5e94 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e2a \u7528\u6765 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f8b\u5b50 \u3002 \u53c2\u6570 \uff1a commands ( list ) - \u8981 \u6279\u91cf \u6267\u884c \u7684 \u547d\u4ee4 \u5217\u8868 \u3002 \u53ef\u7528 \u7684 \u547d\u4ee4 \u5217 \u5728 \u65b9\u6cd5 apply _ batch ( ) \u7684 \u6b63\u4e0a \u4e0a\u65b9 \u6b63\u4e0a\u65b9 \u3002 due _ tick _ cue ( bool ) - \u4e00\u4e2a \u5e03\u5c14 \u53c2\u6570 \uff0c \u7528\u4e8e \u6307\u5b9a \u662f\u5426 \u6267\u884c Carla \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u5e94\u7528 \u5904\u7406 \u6279\u5904\u7406 \u540e \u8fdb\u884c carla . World . tick \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a False \u3002 \u8fd4\u56de \uff1a list ( command . Response ) generate _ opendrive _ world ( self , opendrive , parameters = ( 2.0 , 50.0 , 1.0 , 0.6 , true , true ) , reset _ settings = True ) \u4f7f\u7528 \u4ece OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u57fa\u672c \u4e09\u7ef4 \u62d3\u6251 \u52a0\u8f7d \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u6b64 \u5185\u5bb9 \u4f5c\u4e3a string \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u3002 \u5b83 \u7c7b\u4f3c \u4e8e client . load _ world ( map _ name ) \uff0c \u4f46 \u5141\u8bb8 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 OpenDRIVE \u6620\u5c04 \u3002 \u6c7d\u8f66 \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u4f46 \u9664\u4e86 \u9053\u8def \u548c \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e4b\u5916 \uff0c \u6ca1\u6709 \u4efb\u4f55 \u56fe\u5f62 \u3002 \u53c2\u6570 \uff1a opendrive ( str ) - OpenDRIVE \u6587\u4ef6 \u7684 \u5185\u5bb9 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 string \uff0c \u800c \u4e0d\u662f . xodr \u7684 \u8def\u5f84 \u3002 parameters ( carla . OpendriveGenerationParameters ) - \u7f51\u683c \u751f\u6210 \u7684 \u5176\u4ed6 \u8bbe\u7f6e \u3002 \u5982\u679c \u6ca1\u6709 \u63d0\u4f9b \uff0c \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u5267\u96c6 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 load _ world ( self , map _ name , reset _ settings = True , map _ layers = carla . MapLayer . All ) Creates a new world with default settings using map _ name map . All actors in the current world will be destroyed . \u53c2\u6570 \uff1a map _ name ( str ) - \u8981 \u5728 \u8fd9\u4e2a \u4e16\u754c \u4e0a \u4f7f\u7528 \u7684 \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u63a5\u53d7 \u5b8c\u6574 \u8def\u5f84 \u548c \u5730\u56fe \u540d\u79f0 \uff0c \u4f8b\u5982 \u201c / Game / Calla / Maps / Town01 \u201d \u6216 \u201c Town01 \u201d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \u3002 reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 map _ layers ( carla . MapLayer ) - \u5c06 \u52a0\u8f7d \u7684 \u5730\u56fe \u7684 \u56fe\u5c42 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5c06 \u52a0\u8f7d \u6240\u6709 \u56fe\u5c42 \u3002 \u53c2\u6570 \u6b64\u53c2\u6570 \u7684 \u4f5c\u7528 \u7c7b\u4f3c \u4e8e \u6807\u5fd7 \u63a9\u7801 \u3002 \u8b66\u544a \uff1a map _ layers \u4ec5 \u5bf9 \" Opt \" \u5730\u56fe \u53ef\u7528 \u3002 reload _ world ( self , reset _ settings = True ) \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u4e16\u754c \uff0c \u8bf7 \u6ce8\u610f \uff0c \u5c06 \u4f7f\u7528 \u540c\u4e00 \u5730\u56fe \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u521b\u5efa \u4e00\u4e2a \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u4e16\u754c \u4e0a \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a reset _ settings ( bool ) - \u9009\u9879 \u53ef \u5c06 \u60c5\u8282 \u8bbe\u7f6e \u91cd\u7f6e \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u8bbe\u7f6e \u4e3a false \u53ef \u4fdd\u7559 \u5f53\u524d \u8bbe\u7f6e \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u66f4\u6539 \u6620\u5c04 \u65f6 \u4fdd\u6301 \u540c\u6b65 \u6a21\u5f0f \u548c \u4fdd\u6301 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u573a\u666f \u975e\u5e38 \u6709\u7528 \u3002 Raises : \u5bf9\u5e94 \u7684 \u8fd0\u884c \u65f6 \u9519\u8bef RuntimeError \u3002 replay _ file ( self , name , start , duration , follow _ id , replay _ sensors ) \u4f7f\u7528 map _ name \u52a0\u8f7d \u5177\u6709 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4e16\u754c \u65b0\u4e16\u754c \u3002 \u5f53\u524d \u4e16\u754c \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u5c06 \u88ab \u6467\u6bc1 \uff0c \u4f46 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u5c06 \u7ee7\u7eed \u5b58\u5728 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5305\u542b \u4eff\u771f \u4fe1\u606f \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 start ( float - seconds ) - \u5f00\u59cb \u64ad\u653e \u4eff\u771f \u7684 \u65f6\u95f4 \u3002 \u8d1f\u6570 \u8868\u793a \u4ece \u7ed3\u5c3e \u5f00\u59cb \u8bfb\u53d6 \uff0c \u5728 \u5f55\u5236 \u7ed3\u675f \u524d 10 \u79d2 \u4e3a - 10 \u3002 duration ( float - seconds ) - \u5c06 \u4f7f\u7528 \u4fe1\u606f name \u6587\u4ef6 \u91cd\u65b0 \u6267\u884c \u7684 \u65f6\u95f4 \u3002 \u5982\u679c \u5230\u8fbe \u7ec8\u70b9 \uff0c \u4eff\u771f \u5c06 \u7ee7\u7eed \u3002 follow _ id ( int ) - \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6b64\u503c \u4e3a 0 \uff0c \u5219 \u7981\u7528 \u76f8\u673a \u3002 replay _ sensors ( bool ) - \u7528\u4e8e \u5728 \u64ad\u653e \u671f\u95f4 \u542f\u7528 \u6216 \u7981\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6807\u5fd7 \u3002 request _ file ( self , name ) \u7531 carla . Client . get _ required _ files \u8fd4\u56de \u9700\u8981 \u6587\u4ef6 \u7684 \u4e00\u4e2a \u8bf7\u6c42 \u3002 \u53c2\u6570 \uff1a name ( str ) - \u60a8 \u8bf7\u6c42 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 show _ recorder _ actors _ blocked ( self , filename , min _ time , min _ distance ) \u7ec8\u7aef \u5c06 \u663e\u793a \u88ab \u89c6\u4e3a \u88ab \u5c4f\u853d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6ce8\u518c \u4fe1\u606f \u3002 \u5f53 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u5185 \u6ca1\u6709 \u79fb\u52a8 \u6700\u5c0f \u8ddd\u79bb \u65f6 \uff0c \u5373 min _ distance \u548c min _ time \uff0c \u5219 \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8981 \u52a0\u8f7d \u7684 \u5f55\u5236 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 min _ time ( float - seconds ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u88ab \u8ba4\u4e3a \u88ab \u963b\u6321 \u4e4b\u524d \u5fc5\u987b \u79fb\u52a8 \u6700 \u77ed\u8ddd \u8ddd\u79bb \u77ed\u8ddd\u79bb \u7684 \u6700 \u77ed\u65f6 \u65f6\u95f4 \u77ed\u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 60 \u79d2 \u3002 min _ distance ( float - centimeters ) - \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5fc5\u987b \u79fb\u52a8 \u7684 \u6700\u5c0f \u8ddd\u79bb \u624d\u80fd \u4e0d \u88ab \u89c6\u4e3a \u88ab \u963b\u6321 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 100 \u5398\u7c73 \u3002 \u8fd4\u56de \uff1a string show _ recorder _ collisions ( self , filename , category1 , category2 ) \u7ec8\u7aef \u5c06 \u663e\u793a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8bb0\u5f55 \u7684 \u78b0\u649e \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u6307\u5b9a \u6240 \u6d89\u53ca \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u6765 \u8fc7\u6ee4 \u8fd9\u4e9b \u5185\u5bb9 \u3002 \u7c7b\u522b \u5c06 \u5728 category1 \u548c category1 \u4e2d \u6307\u5b9a \u5982\u4e0b \uff1a \u201c h \u201d = \u82f1\u96c4 \uff0c \u4e00\u79cd \u53ef\u4ee5 \u624b\u52a8 \u63a7\u5236 \u6216 \u7531 \u7528\u6237 \u7ba1\u7406 \u7684 \u8f66\u8f86 \u3002 \u201d v ' = \u8f66\u8f86 ' w ' = \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 ' t ' = \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f ' o ' = \u5176\u4ed6 ' a ' = \u4efb\u4f55 \u5982\u679c \u60a8 \u53ea \u60f3 \u770b\u5230 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \uff0c \u8bf7 \u5c06 category1 \u7528\u4f5c ' v ' \uff0c \u5c06 category2 \u7528\u4f5c ' w ' \uff0c \u53cd\u4e4b \u4ea6\u7136 \u53cd\u4e4b\u4ea6\u7136 \u3002 \u5982\u679c \u8981 \u67e5\u770b \u6240\u6709 \u78b0\u649e \uff08 \u8fc7\u6ee4 \u6389 \uff09 \uff0c \u53ef\u4ee5 \u5bf9 \u4e24\u4e2a \u53c2\u6570 \u90fd \u4f7f\u7528 \u201c a \u201d \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 category1 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e00 \u4e00\u7c7b \u7b2c\u4e00\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 category2 ( single char ) - \u6307\u5b9a \u51b2\u7a81 \u4e2d \u6d89\u53ca \u7684 \u7b2c\u4e8c \u4e8c\u7c7b \u7b2c\u4e8c\u7c7b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b57\u7b26 \u53d8\u91cf \u3002 \u8fd4\u56de \uff1a string show _ recorder _ file _ info ( self , filename , show _ all ) \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4fdd\u5b58 \u7684 \u4fe1\u606f \u5c06 \u88ab \u89e3\u6790 \u5e76 \u4ee5 \u6587\u672c \u5f62\u5f0f \u663e\u793a \u5728 \u60a8 \u7684 \u7ec8\u7aef \u4e2d \uff08 \u5e27 \u3001 \u65f6\u95f4 \u3001 \u4e8b\u4ef6 \u3001 \u72b6\u6001 \u3001 \u4f4d\u7f6e \u2026 \uff09 \u3002 \u53ef\u4ee5 \u4f7f\u7528 show _ all \u53c2\u6570 \u6307\u5b9a \u663e\u793a \u7684 \u4fe1\u606f \u3002 \u4ee5\u4e0b \u662f \u6709\u5173 \u5982\u4f55 \u8bfb\u53d6 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u8bb0\u5f55 \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u6216 \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4e4b\u524d \u7684 \u9009\u62e9 \u3002 show _ all ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u8fd4\u56de \u4e3a \u6bcf \u5e27 \u5b58\u50a8 \u7684 \u6240\u6709 \u4fe1\u606f \uff08 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3001 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3001 \u65b9\u5411 \u548c \u52a8\u753b \u6570\u636e \u2026 \uff09 \u3002 \u5982\u679c \u4e3a False \uff0c \u5219 \u8fd4\u56de \u5173\u952e \u4e8b\u4ef6 \u548c \u5e27 \u7684 \u6458\u8981 \u3002 \u8fd4\u56de \uff1a string start _ recorder ( self , filename , additional _ data = False ) \u542f\u7528 \u5f55\u5236 \u529f\u80fd \uff0c \u8be5 \u529f\u80fd \u5c06 \u5f00\u59cb \u4fdd\u5b58 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u91cd\u64ad \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u53c2\u6570 \uff1a filename ( str ) - \u7528\u4e8e \u5199\u5165 \u8bb0\u5f55 \u6570\u636e \u7684 \u6587\u4ef6 \u7684 \u540d\u79f0 \u3002 \u4e00\u4e2a \u7b80\u5355 \u7684 \u540d\u79f0 \u4f1a \u5c06 \u5f55\u5236 \u4fdd\u5b58 \u5728 \u201c CarlaUE4 / Saved / recording . log \u201d \u4e2d \u3002 \u5426\u5219 \uff0c \u5982\u679c \u540d\u79f0 \u4e2d \u51fa\u73b0 \u67d0\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5219 \u4f1a \u5c06 \u5176 \u89c6\u4e3a \u7edd\u5bf9 \u8def\u5f84 \u7edd\u5bf9\u8def\u5f84 \u3002 additional _ data ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u8bb0\u5f55 \u7528\u4e8e \u518d\u73b0 \u4eff\u771f \u7684 \u5fc5\u8981 \u975e\u5fc5\u8981 \u6570\u636e \uff08 \u8fb9\u754c \u6846 \u4f4d\u7f6e \u3001 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 \u7b49 \uff09 \u3002 stop _ recorder ( self ) \u505c\u6b62 \u6b63\u5728 \u8fdb\u884c \u7684 \u5f55\u5236 \u3002 \u5982\u679c \u60a8 \u5728 \u6587\u4ef6 \u6587\u4ef6\u540d \u4e2d \u6307\u5b9a \u4e86 \u4e00\u4e2a \u8def\u5f84 \uff0c \u5219 \u5f55\u5236 \u6587\u4ef6 \u5c06 \u5728 \u90a3\u91cc \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u8bf7 \u67e5\u770b CarlaUE4 / Saved / \u5185\u90e8 \u3002 stop _ replayer ( self , keep _ actors ) \u505c\u6b62 \u5f53\u524d \u91cd\u64ad \u3002 \u53c2\u6570 \uff1a keep _ actors ( bool ) - \u5982\u679c \u4f60 \u60f3 \u81ea\u52a8 \u5220\u9664 \u91cd\u64ad \u4e2d \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5219 \u4e3a True \uff0c \u5982\u679c \u4f60 \u60f3 \u4fdd\u7559 \u4ed6\u4eec \uff0c \u5219 \u4e3a False \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_29","text":"get _ available _ maps ( self ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u53ef\u7528 \u6620\u5c04 \u7684 \u8def\u5f84 \u3002 \u8fd9\u4e9b \u8def\u5f84 \u662f \u52a8\u6001 \u7684 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u521b\u5efa \uff0c \u56e0\u6b64 \u5728 \u6587\u4ef6 \u4e2d \u67e5\u627e \u65f6 \u627e \u4e0d\u5230 \u5b83\u4eec \u3002 \u6b64 \u65b9\u6cd5 \u53ef\u80fd \u7684 \u8fd4\u56de \u7ed3\u679c \u4e4b\u4e00 \u662f \uff1a [ ' / Game / Carla / Maps / Town01 ' , ' / Game / Carla / Maps / Town02 ' , ' / Game / Carla / Maps / Town03 ' , ' / Game / Carla / Maps / Town04 ' , ' / Game / Carla / Maps / Town05 ' , ' / Game / Carla / Maps / Town06 ' , ' / Game / Carla / Maps / Town07 ' ] . \u8fd4\u56de \uff1a list ( str ) get _ client _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u5ba2\u6237 \u5ba2\u6237\u7aef libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 libcarla \u7248\u672c \uff0c \u4f46 \u53ef\u80fd \u4f1a \u51fa\u73b0 \u4e00\u4e9b \u4e0e \u610f\u5916 \u4e0d \u517c\u5bb9 \u6709\u5173 \u7684 \u95ee\u9898 \u3002 \u8fd4\u56de \uff1a str get _ required _ files ( self , folder , download = True ) \u8be2\u95ee \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5ba2\u6237 \u5ba2\u6237\u7aef \u9700\u8981 \u54ea\u4e9b \u6587\u4ef6 \u624d\u80fd \u4f7f\u7528 \u5f53\u524d \u5730\u56fe \u3002 \u9009\u9879 \uff0c \u5982\u679c \u6587\u4ef6 \u4e0d \u5728 \u7f13\u5b58 \u4e2d \uff0c \u5219 \u81ea\u52a8 \u4e0b\u8f7d \u6587\u4ef6 \u3002 \u53c2\u6570 \uff1a folder ( str ) - \u5c06 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6240 \u9700 \u6587\u4ef6 \u4e0b\u8f7d \u5230 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 download ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u4e0b\u8f7d \u5c1a\u672a \u5728 \u7f13\u5b58 \u4e2d \u7684 \u6587\u4ef6 \u3002 get _ server _ version ( self ) \u901a\u8fc7 \u5728 \u201c version . h \u201d \u6587\u4ef6 \u4e2d \u67e5\u9605 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 libcarla \u7248\u672c \uff0c \u8fd4\u56de \u8be5 \u7248\u672c \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u90fd \u5e94\u8be5 \u4f7f\u7528 \u76f8\u540c \u7684 libcarla \u7248\u672c \u3002 \u8fd4\u56de \uff1a str get _ trafficmanager ( self , client _ connection = 8000 ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u7aef\u53e3 \u76f8\u5173 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5b9e\u4f8b \u3002 \u5982\u679c \u8be5 \u5b9e\u4f8b \u4e0d \u5b58\u5728 \uff0c \u5219 \u4f1a \u521b\u5efa \u8be5 \u5b9e\u4f8b \u3002 \u53c2\u6570 \uff1a client _ connection ( int ) - \u5c06 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 8000 \u3002 \u8fd4\u56de \uff1a carla . TrafficManager get _ world ( self ) \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 \u8fd4\u56de \uff1a carla . World","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_30","text":"set _ files _ base _ folder ( self , path ) \u53c2\u6570 \uff1a path ( str ) - \u8fd4\u56de \u4eff\u771f \u4e2d \u5f53\u524d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u4e16\u754c \u5bf9\u8c61 \u3002 \u8be5 \u4e16\u754c \u7a0d\u540e \u5c06 \u7528\u4e8e \u4f8b\u5982 \u52a0\u8f7d \u5730\u56fe \u3002 set _ replayer _ ignore _ hero ( self , ignore _ hero ) \u53c2\u6570 \uff1a ignore _ hero ( bool ) - \u5728 \u64ad\u653e \u5f55\u5236 \u7684 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u542f\u7528 \u6216 \u7981\u7528 \u82f1\u96c4 \u8f66\u8f86 \u7684 \u64ad\u653e \u3002 set _ replayer _ ignore _ spectator ( self , ignore _ spectator ) \u53c2\u6570 \uff1a ignore _ spectator ( bool ) - \u786e\u5b9a \u56de\u653e \u7a0b\u5e8f \u662f\u5426 \u4f1a \u590d\u5236 \u8bb0\u5f55 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u52a8\u4f5c \u3002 set _ replayer _ time _ factor ( self , time _ factor = 1.0 ) \u4f7f\u7528 \u65f6 \uff0c \u4f1a \u968f\u610f \u4fee\u6539 \u91cd\u65b0 \u4eff\u771f \u7684 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5f53 \u64ad\u653e \u65f6 \uff0c \u5b83 \u53ef\u4ee5 \u4f7f\u7528 \u591a\u6b21 \u3002 \u53c2\u6570 \uff1a time _ factor ( float ) - 1.0 \u8868\u793a \u6b63\u5e38 \u65f6\u95f4 \u901f\u5ea6 \u3002 \u5927\u4e8e 1.0 \u8868\u793a \u5feb\u901f \u8fd0\u52a8 \uff08 2.0 \u8868\u793a \u53cc\u500d \u901f\u5ea6 \uff09 \uff0c \u5c0f\u4e8e 1.0 \u8868\u793a \u6162\u901f \u8fd0\u52a8 \uff08 0.5 \u8868\u793a \u4e00\u534a \u901f\u5ea6 \uff09 \u3002 set _ timeout ( self , seconds ) \u8bbe\u7f6e \u5728 \u963b\u6b62 \u7f51\u7edc \u8c03\u7528 \u5e76 \u5f15\u53d1 \u8d85\u65f6 \u8d85\u65f6 \u9519\u8bef \u4e4b\u524d \u5141\u8bb8 \u7f51\u7edc \u8c03\u7528 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 \u53c2\u6570 \uff1a seconds ( float - seconds ) - \u65b0 \u7684 \u8d85 \u65f6\u503c \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 5 \u79d2 \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlacollisionevent","text":"\u4ece carla . SensorData \u7ee7\u627f \u4e3a sensor . other . collision \u5b9a\u4e49 \u78b0\u649e \u6570\u636e \u7684 \u7c7b \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3a \u68c0\u6d4b \u5230 \u7684 \u6bcf\u4e2a \u78b0\u649e \u521b\u5efa \u4e00\u4e2a \u78b0\u649e \u6570\u636e \u3002 \u6bcf\u4e2a \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u5e27 \u6bcf\u4e2a \u78b0\u649e \u4ea7\u751f \u4e00\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u901a\u8fc7 \u4e0e \u591a\u4e2a \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \uff0c \u53ef\u4ee5 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u4ea7\u751f \u591a\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"carla . CollisionEvent"},{"location":"python_api/#_31","text":"actor ( carla . Actor ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4e5f \u5c31\u662f \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 other _ actor ( carla . Actor ) \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u53c2\u4e0e \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse ( carla . Vector3D - N * s ) \u78b0\u649e \u4ea7\u751f \u7684 \u6b63\u5e38 \u8109\u51b2 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlacolor","text":"\u5b9a\u4e49 32 \u4f4d RGBA \u989c\u8272 \u7684 \u7c7b \u3002","title":"carla . Color"},{"location":"python_api/#_32","text":"r ( int ) \u7ea2\u8272 ( 0 - 255 ) \u3002 g ( int ) \u7eff\u8272 ( 0 - 255 ) \u3002 b ( int ) \u84dd\u8272 ( 0 - 255 ) \u3002 a ( int ) Alpha \u901a\u9053 ( 0 - 255 ) . \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_33","text":"__ init __ ( self , r = 0 , g = 0 , b = 0 , a = 255 ) \u521d\u59cb \u521d\u59cb\u5316 \u989c\u8272 \uff0c \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 \u53c2\u6570 \uff1a r ( int ) g ( int ) b ( int ) a ( int )","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_4","text":"__ eq __ ( self , other = carla . Color ) __ ne __ ( self , other = carla . Color ) __ str __ ( self )","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlacolorconverter","text":"\u5b9a\u4e49 \u53ef \u5e94\u7528 \u4e8e carla . Image \u7684 \u8f6c\u6362 \u6a21\u5f0f \u7684 \u7c7b \uff0c \u4ee5 \u663e\u793a carla . Sensor \u63d0\u4f9b \u7684 \u4fe1\u606f \u3002 \u6df1\u5ea6 \u8f6c\u6362 \u4f1a \u5bfc\u81f4 \u7cbe\u5ea6 \u635f\u5931 \uff0c \u56e0\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u6df1\u5ea6 \u68c0\u6d4b \u4e3a \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a 0 \u5230 255 \u4e4b\u95f4 \u7684 \u7070\u5ea6 \u503c \u3002 \u67e5\u770b carla . Sensor . listen \u4e2d \u7684 \u7247\u6bb5 \uff0c \u4e86\u89e3 \u5982\u4f55 \u521b\u5efa \u548c \u4fdd\u5b58 \u56fe\u50cf \u7684 \u793a\u4f8b sensor . camera . semantic _ segmentation \u7684 \u6570\u636e \u3002","title":"carla . ColorConverter"},{"location":"python_api/#_34","text":"CityScapesPalette \u4f7f\u7528 \u84dd \u56fe\u5e93 \u63d0\u4f9b \u7684 \u6807\u7b7e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u5206\u6bb5 \u5730\u56fe \u3002 \u7531 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4f7f\u7528 \u3002 Depth \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u7ebf\u6027 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u7531 \u6df1\u5ea6 \u76f8\u673a \u4f7f\u7528 \u3002 LogarithmicDepth \u4f7f\u7528 \u5bf9\u6570 \u523b\u5ea6 \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u6df1\u5ea6 \u6df1\u5ea6\u56fe \uff0c \u4ece\u800c \u5728 \u5c0f \u8ddd\u79bb \u4e0a \u83b7\u5f97 \u66f4\u597d \u7684 \u7cbe\u5ea6 \uff0c \u4f46 \u5728 \u8ddd\u79bb \u8f83 \u8fdc \u65f6\u4f1a \u4e22\u5931 \u7cbe\u5ea6 \u3002 Raw \u672a \u5bf9 \u56fe\u50cf \u5e94\u7528 \u4efb\u4f55 \u66f4\u6539 \u3002 \u7531 RGB \u76f8\u673a \u4f7f\u7528 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carladvsevent","text":"\u5b9a\u4e49 DVS \u4e8b\u4ef6 \u7684 \u7c7b \u3002 \u4e8b\u4ef6 \u662f \u4e00\u4e2a \u56db\u5143 \u5143\u7ec4 \u56db\u5143\u7ec4 \uff0c \u56e0\u6b64 \u662f \u4e00\u4e2a \u7531 4 \u4e2a \u5143\u7d20 \u7ec4\u6210 \u7684 \u5143\u7ec4 \uff0c \u5176\u4e2d x \u3001 \u50cf\u7d20 y \u5750\u6807 \u4f4d\u7f6e \u3001 \u65f6\u95f4 \u6233 t \u548c \u4e8b\u4ef6 \u6781\u6027 pol \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002","title":"carla . DVSEvent"},{"location":"python_api/#_35","text":"x ( int ) X \u50cf\u7d20 \u5750\u6807 \u3002 y ( int ) Y \u50cf\u7d20 \u5750\u6807 \u3002 t ( int ) \u4e8b\u4ef6 \u53d1\u751f \u65f6\u523b \u7684 \u65f6\u95f4 \u6233 \u3002 pol ( bool ) \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 True \u8868\u793a \u6b63\u6570 \uff0c False \u8868\u793a \u8d1f\u6570 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_36","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_5","text":"__ str __ ( self )","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carladvseventarray","text":"\u5728 carla . DVSEvent \u4e2d \u5b9a\u4e49 \u4e8b\u4ef6 \u6d41 \u7684 \u7c7b \u3002 \u6b64\u7c7b \u6d41\u662f \u4efb\u610f \u5927\u5c0f \u7684 \u6570\u7ec4 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4e8b\u4ef6 \u7684 \u6570\u91cf \u3002 \u4e3a\u4e86 \u65b9\u4fbf \u8d77 \u89c1 \uff0c \u8be5\u7c7b \u8fd8 \u5b58\u50a8 \u89c6\u91ce \u3001 \u56fe\u50cf \u7684 \u9ad8\u5ea6 \u548c \u5bbd\u5ea6 \u4ee5\u53ca \u65f6\u95f4 \u6233 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002","title":"carla . DVSEventArray"},{"location":"python_api/#_37","text":"fov ( float - \u5ea6 ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( \u5b57\u8282 )","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_38","text":"to _ array ( self ) \u6309 \u4ee5\u4e0b \u987a\u5e8f \u5c06 \u4e8b\u4ef6 \u6d41 \u8f6c\u6362 \u4e3a int \u503c \u6570\u7ec4 [ x , y , t , pol ] \u3002 to _ array _ pol ( self ) \u8fd4\u56de \u4e00\u4e2a \u6570\u7ec4 \uff0c \u8be5 \u6570\u7ec4 \u5177\u6709 \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 to _ array _ t ( self ) \u8fd4\u56de \u4e00\u4e2a \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 \u65f6\u95f4 \u6233 \u3002 to _ array _ x ( self ) \u8fd4\u56de \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 X \u50cf\u7d20 \u5750\u6807 \u7684 \u6570\u7ec4 \u3002 to _ array _ y ( self ) \u8fd4\u56de \u6d41\u4e2d \u6240\u6709 \u4e8b\u4ef6 \u7684 Y \u50cf\u7d20 \u5750\u6807 \u6570\u7ec4 \u3002 to _ image ( self ) \u6309\u7167 \u4ee5\u4e0b \u6a21\u5f0f \u8f6c\u6362 \u56fe\u50cf \uff1a \u84dd\u8272 \u8868\u793a \u6b63 \u4e8b\u4ef6 \uff0c \u7ea2\u8272 \u8868\u793a \u8d1f \u4e8b\u4ef6 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_39","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 carla . DVSEvent \u4f5c\u4e3a \u68c0\u7d22 \u7684 \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carladebughelper","text":"carla . World \u7684 \u8f85\u52a9 \u7c7b \u90e8\u5206 \uff0c \u5b9a\u4e49 \u521b\u5efa \u8c03\u8bd5 \u5f62\u72b6 \u7684 \u65b9\u6cd5 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f62\u72b6 \u6301\u7eed \u4e00\u79d2 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u662f \u6c38\u4e45 \u6c38\u4e45\u6027 \u7684 \uff0c \u4f46 \u8981 \u8003\u8651 \u5230 \u8fd9\u6837 \u505a \u6240 \u9700 \u7684 \u8d44\u6e90 \u3002 \u67e5\u770b \u6b64\u7c7b \u7684 \u53ef\u7528 \u7247\u6bb5 \uff0c \u4e86\u89e3 \u5982\u4f55 \u5728 Carla \u4e2d \u8f7b\u677e \u8c03\u8bd5 \u3002","title":"carla . DebugHelper"},{"location":"python_api/#_40","text":"draw _ arrow ( self , begin , end , thickness = 0.1 , arrow _ size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u4ece \u5f00\u59cb begin \u5230 \u7ed3\u675f end \u7ed8\u5236 \u4e00\u4e2a \u6307\u5411 \u8be5 \u65b9\u5411 \u7684 \u7bad\u5934 \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u5f00\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u7bad\u5934 \u7ed3\u675f \u5e76 \u6307\u5411 \u7684 \u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 arrow _ size ( float - \u7c73 ) - \u7bad\u5934 \u5c16\u7aef \u7684 \u5927\u5c0f \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ box ( self , box , rotation , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) snippet \u2192 \u7ed8\u5236 \u4e00\u4e2a \u6846 \uff0c \u901a\u5e38 \u7528\u4e8e \u5bf9\u8c61 \u78b0\u649e \u5668 \u3002 \u53c2\u6570 \uff1a box ( carla . BoundingBox ) - \u5305\u542b \u6bcf\u4e2a \u8f74 \u7684 \u4f4d\u7f6e \u548c \u6846 \u957f\u5ea6 \u7684 \u5bf9\u8c61 \u3002 rotation ( carla . Rotation - \u5ea6 ( pitch , yaw , roll ) ) - \u6839\u636e \u865a\u5e7b \u5f15\u64ce \u8f74\u7cfb \u7684 \u8fb9\u754c \u6846 \u65b9\u5411 \u3002 thickness ( float - \u7c73 ) - \u5b9a\u4e49 \u8fb9\u754c \u6846 \u7684 \u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - \u79d2 ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ hud _ arrow ( self , begin , end , thickness = 0.1 , arrow _ size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u4e0a \u4ece\u5934 begin \u5230 \u5c3e end \u753b \u4e00\u4e2a \u7bad\u5934 \uff0c \u8fd9\u4e2a \u7bad\u5934 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u7bad\u5934 \u8d77\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u7bad\u5934 \u7ed3\u675f \u5e76 \u6307\u5411 \u7684 \u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 arrow _ size ( float - \u7c73 ) - \u7bad\u5c16 \u7684 \u5927\u5c0f \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ hud _ box ( self , box , rotation , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u4e0a \u7ed8\u5236 \u4e00\u4e2a \u6846 \uff0c \u901a\u5e38 \u7528\u4e8e \u5bf9\u8c61 \u78b0\u649e \u5668 \u3002 \u8be5\u6846 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 Parameters : box ( carla . BoundingBox ) - \u5305\u542b \u6bcf\u4e2a \u8f74 \u7684 \u6846 \u7684 \u4f4d\u7f6e \u548c \u957f\u5ea6 \u7684 \u5bf9\u8c61 \u3002 rotation ( carla . Rotation - degrees ( pitch , yaw , roll ) ) - \u6839\u636e \u865a\u5e7b \u5f15\u64ce \u7684 \u8f74 \u7cfb\u7edf \u786e\u5b9a \u8fb9\u754c \u6846 \u7684 \u65b9\u5411 \u3002 thickness ( float - \u7c73 ) - \u5b9a\u4e49 \u8fb9\u754c \u6846\u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ hud _ line ( self , begin , end , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u4e0a \u5f00\u59cb begin \u548c \u7ed3\u675f end \u4e4b\u95f4 \u753b \u4e00\u6761 \u4e00\u6761\u7ebf \u3002 \u8fd9\u6761 \u8fd9\u6761\u7ebf \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u76f4\u7ebf \u5f00\u59cb \u7684 \u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u7cfb\u7edf \u4e2d \u76f4\u7ebf \u7ed3\u675f \u7684 \u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - \u79d2 ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ hud _ point ( self , location , size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 HUD \u7684 \u4f4d\u7f6e location \u4e0a \u7ed8\u5236 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u8fd9\u4e2a \u70b9 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u70b9 \u5728 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d\u4f7f \u7269\u4f53 \u5c45\u4e2d \u3002 size ( float - \u7c73 ) - \u70b9 \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - RGB \u7f16\u7801 \u4e3a \u5bf9\u8c61 \u4e0a \u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5bf9\u4e8e \u6c38\u4e45 \u5f62\u72b6 \uff0c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0 \u3002 draw _ line ( self , begin , end , thickness = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u5728 \u5f00\u59cb begin \u548c \u7ed3\u675f end \u4e4b\u95f4 \u7ed8\u5236 \u4e00\u6761 \u4e00\u6761\u7ebf \u3002 \u53c2\u6570 \uff1a begin ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u76f4\u7ebf \u8d77\u70b9 \u3002 end ( carla . Location - \u7c73 ) - \u5750\u6807 \u5750\u6807\u7cfb \u4e2d \u76f4\u7ebf \u7ec8\u70b9 \u3002 thickness ( float - \u7c73 ) - \u7ebf \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - \u79d2 ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ point ( self , location , size = 0.1 , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) \u7ed8\u5236 \u4e00\u4e2a \u4e00\u4e2a\u70b9 location \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u5728 \u5750\u6807 \u5750\u6807\u7cfb \u4e2d\u70b9 \u4ee5 \u5c06 \u5bf9\u8c61 \u5c45\u4e2d \u3002 size ( float - \u7c73 ) - \u70b9 \u7684 \u5bc6\u5ea6 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5bf9\u8c61 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002 draw _ string ( self , location , text , draw _ shadow = False , color = ( 255 , 0 , 0 ) , life _ time = - 1.0 ) snippet \u2192 \u5728 \u4eff\u771f \u7684 \u7ed9\u5b9a \u4f4d\u7f6e \u7ed8\u5236 \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u8be5 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u53ea\u80fd \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u770b\u5230 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u4eff\u771f \u4e2d \u6587\u672c \u5c45\u4e2d \u7684 \u4f4d\u7f6e \u3002 text ( str ) - \u65e8\u5728 \u5411 \u4e16\u754c \u5c55\u793a \u7684 \u6587\u672c \u3002 draw _ shadow ( bool ) - \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u6295\u5c04 \u9634\u5f71 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u662f \u7981\u7528 \u7684 \u3002 color ( carla . Color ) - \u7528\u4e8e \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7740\u8272 \u7684 RGB \u4ee3\u7801 \u3002 \u9ed8\u8ba4 \u4e3a \u7ea2\u8272 \u3002 life _ time ( float - seconds ) - \u5f62\u72b6 \u7684 \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83 \u53ea \u6301\u7eed \u4e00\u5e27 \u3002 \u5c06 \u5176 \u8bbe\u7f6e 0 \u4e3a \u6c38\u4e45 \u5f62\u72b6 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#carlaenvironmentobject","text":"\u8868\u793a \u5173\u5361 \u4e2d \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u7684 \u7c7b \uff0c \u8be5 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u53ef\u4ee5 \u662f \u4e0e \u5176\u4ed6 \u73af\u5883 \u5bf9\u8c61 \uff08 \u5373 \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \uff09 \u5f62\u6210 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002","title":"carla . EnvironmentObject"},{"location":"python_api/#_41","text":"transform ( carla . Transform ) \u5305\u542b \u73af\u5883 \u5bf9\u8c61 \u5728 \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 bounding _ box ( carla . BoundingBox ) \u5305\u542b \u4e16\u754c \u7a7a\u95f4 \u4e2d \u6bcf\u4e2a \u8f74 \u7684 \u4f4d\u7f6e \u3001 \u65cb\u8f6c \u548c \u8fb9\u754c \u6846 \u957f\u5ea6 \u7684 \u5bf9\u8c61 \u3002 id ( int ) \u7528\u4e8e \u6807\u8bc6 \u5173\u5361 \u4e2d \u5bf9\u8c61 \u7684 \u552f\u4e00 ID \u3002 name ( string ) \u73af\u5883 \u5bf9\u8c61 EnvironmentObject \u7684 \u540d\u79f0 \u3002 type ( carla . CityObjectLabel ) Semantic tag .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_42","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_6","text":"__ str __ ( self ) \u5c06 \u73af\u5883 \u5bf9\u8c61 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5e76 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u663e\u793a \u5b83\u4eec \u3002 \u8fd4\u56de \uff1a str","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlafloatcolor","text":"\u5b9a\u4e49 \u6d6e\u70b9 RGBA \u989c\u8272 \u7684 \u7c7b \u3002","title":"carla . FloatColor"},{"location":"python_api/#_43","text":"r ( float ) \u7ea2\u8272 \u3002 g ( float ) \u7eff\u8272 \u3002 b ( float ) \u84dd\u8272 \u3002 a ( float ) Alpha \u901a\u9053 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_44","text":"__ init __ ( self , r = 0 , g = 0 , b = 0 , a = 1.0 ) \u521d\u59cb \u521d\u59cb\u5316 \u989c\u8272 \uff0c \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 \u53c2\u6570 \uff1a r ( float ) g ( float ) b ( float ) a ( float )","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_7","text":"__ eq __ ( self , other = carla . FloatColor ) __ ne __ ( self , other = carla . FloatColor )","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlagbuffertextureid","text":"\u5b9a\u4e49 \u6bcf\u4e2a GBuffer \u7eb9\u7406 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 ( \u53c2\u89c1 \u65b9\u6cd5 [ carla . Sensor . listen _ to _ gbuffer ] ( # carla . Sensor . listen _ to _ gbuffer ) ) \u3002","title":"carla . GBufferTextureID"},{"location":"python_api/#_45","text":"SceneColor \u7eb9\u7406 \u201c SceneColor \u201d \u5305\u542b \u56fe\u50cf \u7684 \u6700\u7ec8 \u989c\u8272 \u3002 SceneDepth \u7eb9\u7406 \u201c SceneDepth \u201d \u5305\u542b \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a - \u4ee5 \u4e16\u754c \u5355\u4f4d \u4e3a \u7ebf\u6027 \u3002 SceneStencil \u7eb9\u7406 \u201c SceneStencil \u201d \u5305\u542b \u6a21\u677f \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 GBufferA \u7eb9\u7406 \u201c GBufferA \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u4e16\u754c \u7a7a\u95f4 \u6cd5\u7ebf \u5411\u91cf \u3002 Alpha \u901a\u9053 \u5305\u542b \u201c \u6bcf\u4e2a \u5bf9\u8c61 \u7684 \u6570\u636e \u201d \u3002 GBufferB \u7eb9\u7406 \u201c GBufferB \u201d \u5206\u522b \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u91d1\u5c5e \u3001 \u955c\u9762 \u548c \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Alpha \u901a\u9053 \u5305\u542b \u4e00\u4e2a \u63a9\u7801 \uff0c \u5176\u4e2d \u4f4e 4 \u4f4d \u8868\u793a \u7740\u8272 \u6a21\u578b \uff0c \u9ad8 4 \u4f4d \u5305\u542b \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 \u3002 GBufferC \u7eb9\u7406 \u201c GBufferC \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u989c\u8272 \uff0c \u4ee5\u53ca Alpha \u901a\u9053 \u4e2d \u7684 \u95f4\u63a5 \u8f90\u7167 \u7167\u5ea6 \u8f90\u7167\u5ea6 \u3002 \u5982\u679c \u4e0d \u5141\u8bb8 \u9759\u6001 \u95ea\u7535 \uff0c Alpha \u901a\u9053 \u5c06 \u5305\u542b \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u3002 GBufferD \u201c GBufferD \u201d \u7684 \u5185\u5bb9 \u6839\u636e \u6e32\u67d3 \u5bf9\u8c61 \u7684 \u6750\u8d28 \u7740\u8272 \u6a21\u578b ( GBufferB ) \u7684 \u4e0d\u540c \u800c \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \uff1a MSM _ Subsurface ( 2 ) , MSM _ PreintegratedSkin ( 3 ) , MSM _ TwoSidedFoliage ( 6 ) : RGB : \u6b21 \u8868\u9762 \u989c\u8272 \u3002 A : \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 MSM _ ClearCoat ( 4 ) : R : \u900f\u660e \u6d82\u5c42 \u3002 G : \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 MSM _ SubsurfaceProfile ( 5 ) : RGB : \u6b21 \u8868\u9762 \u8f6e\u5ed3 \u3002 MSM _ Hair ( 7 ) : RG : \u4e16\u754c \u6cd5\u7ebf \u3002 B : \u80cc\u5149 \u503c \u3002 MSM _ Cloth ( 8 ) : RGB : \u6b21 \u8868\u9762 \u989c\u8272 \u3002 A : Cloth value . MSM _ Eye ( 9 ) : RG : \u773c \u5207\u7ebf \u3002 B : \u8679\u819c \u63a9\u6a21 \u3002 A : \u8679\u819c \u8ddd\u79bb \u3002 GBufferE \u7eb9\u7406 \u201c GBufferE \u201d \u5305\u542b RGBA \u901a\u9053 \u4e2d \u9884\u5148 \u8ba1\u7b97 \u7684 \u9634\u5f71 \u56e0\u5b50 \u3002 \u5982\u679c \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 ( GBufferB ) \u6ca1\u6709 \u8bbe\u7f6e \u5176 \u7b2c 4 \u4f4d \uff0c \u5219 \u6b64 \u7eb9\u7406 \u4e0d\u53ef \u7528 \u3002 GBufferF \u7eb9\u7406 \u201c GBufferF \u201d \u5305\u542b RGB \u901a\u9053 \u4e2d \u7684 \u4e16\u754c \u7a7a\u95f4 \u5207\u7ebf \u548c Alpha \u901a\u9053 \u4e2d \u7684 \u5f02\u6027 \u5404\u5411\u5f02\u6027 \u3002 \u5982\u679c \u9009\u62e9 \u9009\u62e9\u6027 \u8f93\u51fa \u63a9\u7801 ( GBufferB ) \u6ca1\u6709 \u8bbe\u7f6e \u5176 \u7b2c 5 \u4f4d \uff0c \u5219 \u6b64 \u7eb9\u7406 \u4e0d\u53ef \u7528 \u3002 Velocity \u7eb9\u7406 \u201c \u901f\u5ea6 \u201d \u5305\u542b \u573a\u666f \u5bf9\u8c61 \u7684 \u5c4f\u5e55 \u7a7a\u95f4 \u901f\u5ea6 \u3002 SSAO \u7eb9\u7406 \u201c SSAO \u201d \u5305\u542b \u5c4f\u5e55 \u7a7a\u95f4 \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u7eb9\u7406 \u3002 CustomDepth \u7eb9\u7406 \u201c CustomDepth \u201d \u5305\u542b \u865a\u5e7b \u5f15\u64ce \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6df1\u5ea6 \u6570\u636e \u3002 CustomStencil \u7eb9\u7406 \u201c CustomStencil \u201d \u5305\u542b \u865a\u5e7b \u5f15\u64ce \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6a21\u677f \u6570\u636e \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlagearphysicscontrol","text":"\u901a\u8fc7 \u5b9a\u4e49 \u6863\u4f4d \u4ee5\u53ca \u4f55\u65f6 \u8fd0\u884c \u8be5 \u6863\u4f4d \u6765 \u63d0\u4f9b \u5bf9 \u8f66\u8f86 \u53d8\u901f \u53d8\u901f\u7bb1 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u7684 \u8bbf\u95ee \u7684 \u7c7b \u3002 carla . VehiclePhysicsControl \u7a0d\u540e \u5c06 \u4f7f\u7528 \u5b83 \u6765 \u5e2e\u52a9 \u4eff\u771f \u7269\u7406 \u3002","title":"carla . GearPhysicsControl"},{"location":"python_api/#_46","text":"ratio ( float ) \u9f7f\u8f6e \u7684 \u4f20\u52a8 \u4f20\u52a8\u6bd4 \u3002 down _ ratio ( float ) \u5f53\u524d RPM \u4e0e \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u5e94\u964d \u6863 \u7684 MaxRPM \u4e4b\u95f4 \u7684 \u5546 \u3002 up _ ratio ( float ) \u5f53\u524d RPM \u4e0e \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u5e94 \u5347\u6863 \u7684 MaxRPM \u4e4b\u95f4 \u7684 \u5546 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_47","text":"__ init __ ( self , ratio = 1.0 , down _ ratio = 0.5 , up _ ratio = 0.65 ) \u53c2\u6570 \uff1a ratio ( float ) down _ ratio ( float ) up _ ratio ( float )","title":"\u65b9\u6cd5"},{"location":"python_api/#dunder_8","text":"__ eq __ ( self , other = carla . GearPhysicsControl ) __ ne __ ( self , other = carla . GearPhysicsControl ) __ str __ ( self )","title":"Dunder \u65b9\u6cd5"},{"location":"python_api/#carlageolocation","text":"\u5305\u542b \u5730\u7406 \u5750\u6807 \u5730\u7406\u5750\u6807 \u4eff\u771f \u6570\u636e \u7684 \u7c7b \u3002 carla . Map \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u65b9\u6cd5 \u8f6c\u6362 \u4eff\u771f \u4f4d\u7f6e OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u6807\u8bb0 \u3002","title":"carla . GeoLocation"},{"location":"python_api/#_48","text":"latitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 altitude ( float - \u7c73 ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_49","text":"__ init __ ( self , latitude = 0.0 , longitude = 0.0 , altitude = 0.0 ) \u53c2\u6570 \uff1a latitude ( float - \u5ea6 ) longitude ( float - \u5ea6 ) altitude ( float - \u7c73 )","title":"\u65b9\u6cd5"},{"location":"python_api/#_50","text":"__ eq __ ( self , other = carla . GeoLocation ) __ ne __ ( self , other = carla . GeoLocation ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlagnssmeasurement","text":"\u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u7531 sensor . other . gnss \u6ce8\u518c \u7684 Gnss \u6570\u636e \u7684 \u7c7b \u3002 \u5b83 \u672c\u8d28 \u4e0a \u662f \u901a\u8fc7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4f4d\u7f6e \u548c OpenDRIVE \u5730\u7406 \u53c2\u8003 \u6765 \u62a5\u544a \u5176 \u4f4d\u7f6e \u3002","title":"carla . GnssMeasurement"},{"location":"python_api/#_51","text":"altitude ( float - \u7c73 ) \u76f8\u5bf9 \u4e8e \u5730\u9762 \u7684 \u9ad8\u5ea6 \u3002 latitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002 longitude ( float - \u5ea6 ) \u5730\u56fe \u4e0a \u67d0\u4e2a \u70b9 \u7684 \u5317 / \u5357\u503c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_52","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_53","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaimumeasurement","text":"\u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u7531 sensor . other . imu \u6ce8\u518c \u7684 \u6570\u636e \u7c7b \uff0c \u6d89\u53ca \u6839\u636e \u5f53\u524d carla . World \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f6c\u6362 \u3002 \u5b83 \u672c\u8d28 \u4e0a \u5145\u5f53 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002","title":"carla . IMUMeasurement"},{"location":"python_api/#_54","text":"accelerometer ( carla . Vector3D - m / s 2 ) \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 compass ( float - \u5f27\u5ea6 ) \u76f8\u5bf9 \u4e8e \u5317\u65b9 \u7684 \u65b9\u5411 \uff08 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d\u4e3a [ 0.0 , - 1.0 , 0.0 ] \uff09 \u3002 gyroscope ( carla . Vector3D - \u5f27\u5ea6 / \u79d2 ) \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_55","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_56","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaimage","text":"\u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 32 \u4f4d BGRA \u989c\u8272 \u56fe\u50cf \u7684 \u7c7b \uff0c \u8be5 \u56fe\u50cf \u5c06 \u7528\u4f5c \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u7684 \u521d\u59cb \u6570\u636e \u3002 \u6709 \u4e0d\u540c \u7684 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u76ee\u524d \u6709 \u4e09\u79cd \uff0c RGB \u3001 \u6df1\u5ea6 \u548c \u8bed\u4e49 \u5206\u5272 \uff09 \uff0c \u6bcf\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5bf9 \u56fe\u50cf \u90fd \u6709 \u4e0d\u540c \u7684 \u7528\u9014 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u5173\u4e8e \u5b83\u4eec \u7684 \u4fe1\u606f \u3002","title":"carla . Image"},{"location":"python_api/#_57","text":"fov ( float - \u5ea6 ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( bytes ) \u50cf\u7d20 \u6570\u636e \u7684 \u6241\u5e73 \u6570\u7ec4 \uff0c \u4f7f\u7528 reshape \u521b\u5efa \u56fe\u50cf \u6570\u7ec4 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_58","text":"convert ( self , color _ converter ) \u6309\u7167 color _ converter \u6a21\u5f0f \u8f6c\u6362 \u56fe\u50cf \u3002 \u53c2\u6570 \uff1a color _ converter ( carla . ColorConverter ) save _ to _ disk ( self , path , color _ converter = Raw ) \u4f7f\u7528 \u5982\u4e0b \u6240\u793a \u7684 \u8f6c\u6362 \u8f6c\u6362\u5668 \u6a21\u5f0f color _ converter \u5c06 \u56fe\u50cf \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u9ed8\u8ba4 \u8f6c\u6362 \u6a21\u5f0f \u662f Raw \uff0c \u4e0d\u4f1a \u5bf9 \u56fe\u50cf \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u3002 \u53c2\u6570 \uff1a path ( str ) - \u5c06 \u5305\u542b \u56fe\u50cf \u7684 \u8def\u5f84 \u3002 color _ converter ( carla . ColorConverter ) - \u9ed8\u8ba4 Raw \u4e0d\u4f1a \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_59","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u5f62\u6210 \u56fe\u50cf \u7684 carla . Color \u4e0a\u9762 \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlajunction","text":"\u6839\u636e OpenDRIVE 1.4 \u6807\u51c6 \uff0c \u4f53\u73b0 OpenDRIVE \u6587\u4ef6 \u4e2d \u63cf\u8ff0 \u7684 \u9053\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u7684 \u7c7b \u3002","title":"carla . Junction"},{"location":"python_api/#_60","text":"id ( int ) OpenDRIVE \u6587\u4ef6 \u4e2d \u627e\u5230 \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 bounding _ box ( carla . BoundingBox ) \u5c01\u88c5 \u8fde\u63a5 \u8f66\u9053 \u7684 \u8fb9\u754c \u6846 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_61","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_62","text":"get _ waypoints ( self , lane _ type ) \u8fd4\u56de \u822a\u8def \u70b9 \u5bf9 \u7684 \u5217\u8868 \u3002 \u5217\u8868 \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7ec4 \u9996\u5148 \u5305\u542b \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u8fb9\u754c \u5185 \u7684 \u521d\u59cb \u8def\u5f84 \u70b9 \uff0c \u7136\u540e \u5305\u542b \u6700\u7ec8 \u8def\u5f84 \u70b9 \uff0c \u63cf\u8ff0 \u6cbf \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u7684 \u6240\u8ff0 \u8f66\u9053 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8f66\u9053 \u9075\u5faa \u5176 OpenDRIVE \u5b9a\u4e49 \uff0c \u56e0\u6b64 \u7531\u4e8e \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u53ef\u80fd \u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u5143\u7ec4 \u5177\u6709 \u76f8\u540c \u7684 \u8d77\u59cb \u822a\u8def \u70b9 \uff0c \u56e0\u4e3a \u8fd9 \u88ab \u89c6\u4e3a \u4e0d\u540c \u7684 \u8f66\u9053 \u3002 \u53c2\u6570 \uff1a lane _ type ( carla . LaneType ) - \u83b7\u53d6 \u8def\u70b9 \u7684 \u8f66\u9053 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a list ( tuple ( carla . Waypoint ) )","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#carlalabelledpoint","text":"\u4f7f\u7528 \u8bed\u4e49 \u6807\u7b7e \u8868\u793a \u7a7a\u95f4 \u4f4d\u7f6e \u7684 \u7c7b \u3002","title":"carla . LabelledPoint"},{"location":"python_api/#_63","text":"location \u4e09\u7ef4 \u7a7a\u95f4 \u7ef4\u7a7a\u95f4 \u4e09\u7ef4\u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 label \u70b9 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalandmark","text":"\u5b9a\u4e49 \u5f71\u54cd \u9053\u8def \u7684 \u4efb\u4f55 \u7c7b\u578b \u7684 \u4ea4\u901a \u5730\u6807 \u6216 \u6807\u5fd7 \u7684 \u7c7b \u3002 \u8fd9\u4e9b \u7c7b \u5728 \u5730 \u6807\u7684 OpenDRIVE 1.4 standard \u6807\u51c6 \u5b9a\u4e49 \u53ca\u5176 \u5728 \u4eff\u771f \u4e2d \u7684 \u8868\u793a \u4e4b\u95f4 \u8fdb\u884c \u534f\u8c03 \u3002 \u6b64\u7c7b \u68c0\u7d22 \u5728 OpenDRIVE \u4e2d \u5b9a\u4e49 \u5730 \u6807\u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u5e76 \u63d0\u4f9b \u6709\u5173 \u5176 \u5f71\u54cd \u54ea\u4e9b \u8f66\u9053 \u4ee5\u53ca \u4f55\u65f6 \u5f71\u54cd \u7684 \u4fe1\u606f \u3002 carla . Waypoint \u5bf9\u8c61 \u5c06 \u5c1d\u8bd5 \u68c0\u7d22 \u5176 \u8f66\u9053 \u89c4\u5219 \u6765 \u8bbf\u95ee \u5730\u6807 \u3002 \u56e0\u6b64 \uff0c \u67d0\u4e9b \u5c5e\u6027 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6b63\u5728 \u54a8\u8be2 \u5730 \u6807\u7684 \u822a\u8def \u70b9 \uff0c \u4ece\u800c \u521b\u5efa \u5bf9\u8c61 \u521b\u5efa\u5bf9\u8c61 \u3002","title":"carla . Landmark"},{"location":"python_api/#_64","text":"road _ id ( int ) \u5b9a\u4e49 \u6b64\u5730 \u6807\u7684 \u9053\u8def \u7684 OpenDRIVE ID \u3002 \u7531\u4e8e OpenDRIVE \u9053\u8def \u5b9a\u4e49 \uff0c \u8be5 \u9053\u8def \u53ef\u80fd \u4e0e \u5730\u6807 \u5f53\u524d \u5f71\u54cd \u7684 \u9053\u8def \u4e0d\u540c \u3002 \u8fd9\u79cd \u60c5\u51b5 \u4e3b\u8981 \u53d1\u751f \u5728 \u4e0d\u540c \u8def\u7ebf \u7684 \u9053\u8def \u5206\u53c9 \u5904 \u3002 \u793a\u4f8b \uff1a \u5728 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u4e00\u6761 \u5206\u53c9 \u9053\u8def \u4e2d \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u4f46 \u5b83 \u4f1a \u5f71\u54cd \u6240\u6709 \u53ef\u80fd \u7684 \u8def\u7ebf \u3002 distance ( float - \u7c73 ) \u5730\u6807 \u4e0e \u521b\u5efa \u5bf9\u8c61 \u521b\u5efa\u5bf9\u8c61 \u7684 \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \uff08 \u67e5\u8be2 get _ landmarks \u6216 get _ landmarks _ of _ type \uff09 \u3002 s ( float - \u7c73 ) \u5730\u6807 \u6cbf \u9053\u8def \u51e0\u4f55 \u5f62\u72b6 \u5b9a\u4f4d \u7684 \u8ddd\u79bb road _ id \u3002 t ( float - \u7c73 ) \u5730\u6807 \u8ddd \u9053\u8def \u8fb9\u7f18 \u7684 \u6a2a\u5411 \u8ddd\u79bb road _ id \u3002 id ( str ) OpenDRIVE \u6587\u4ef6 \u4e2d \u5730 \u6807\u7684 \u552f\u4e00 ID \u3002 name ( str ) OpenDRIVE \u6587\u4ef6 \u4e2d \u7684 \u5730\u6807 \u540d\u79f0 \u3002 is _ dynamic ( bool ) \u6307\u793a \u5730 \u6807\u7684 \u72b6\u6001 \u662f\u5426 \u968f \u65f6\u95f4 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \uff0c \u4f8b\u5982 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 orientation ( carla . LandmarkOrientation - \u7c73 ) \u6307\u793a \u5730\u6807 \u9762\u5411 \u7684 \u8f66\u9053 \u3002 z _ offset ( float - \u7c73 ) \u653e\u7f6e \u5730 \u6807\u7684 \u9ad8\u5ea6 \u3002 country ( str ) \u5b9a\u4e49 \u5730 \u6807\u7684 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \uff08 OpenDRIVE \u9ed8\u8ba4 \u4e3a \u5fb7\u56fd 2017 \uff09 \u3002 type ( str ) \u6839\u636e \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u8f93\u5165 \u8f93\u5165\u5730 \u6807\u7684 \u7c7b\u578b \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 sub _ type ( str ) \u6839\u636e \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u7684 \u5730\u6807 \u5b50 \u7c7b\u578b \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 value ( float ) \u4fe1\u53f7 \u4e2d \u6253\u5370 \u7684 \u503c \uff08 \u4f8b\u5982 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3001 \u6700\u5927 \u91cd\u91cf \u7b49 \uff09 \u3002 unit ( str ) \u5c5e\u6027 value \u7684 \u6d4b\u91cf \u5355\u4f4d \u3002 height ( float - \u7c73 ) \u4fe1\u53f7 \u7684 \u603b \u9ad8\u5ea6 \u3002 width ( float - \u7c73 ) \u4fe1\u53f7 \u7684 \u603b \u5bbd\u5ea6 \u3002 text ( str ) \u4fe1\u53f7 \u4e2d \u7684 \u9644\u52a0 \u6587\u672c \u3002 h _ offset ( float - \u7c73 ) \u4fe1\u53f7 \u76f8\u5bf9 \u4e8e OpenDRIVE \u4e2d s \u5904 road _ id \u5b9a\u4e49 \u7684 \u65b9\u5411 \u504f\u79fb \u3002 pitch ( float - \u7c73 ) \u4fe1\u53f7 \u7684 \u4fef\u4ef0 \u4ef0\u89d2 \u4fef\u4ef0\u89d2 ( Y - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . roll ( float ) \u4fe1\u53f7 \u7684 \u7ffb\u6eda \u89d2 ( X - \u8f74 \u5728 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u7cfb\u7edf ) . waypoint ( carla . Waypoint ) \u653e\u7f6e \u5728 \u8fdb\u884c \u67e5\u8be2 \u7684 \u8f66\u9053 \u548c \u5730\u6807 s \u5904 \u7684 \u822a\u8def \u70b9 \u3002 \u8fd9\u662f \u5730\u6807 \u6709\u6548 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u822a\u8def \u70b9 \u3002 transform ( carla . Transform ) \u4eff\u771f \u4e2d \u5730 \u6807\u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_65","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_66","text":"get _ lane _ validities ( self ) \u8fd4\u56de \u5730\u6807 \u5f71\u54cd \u7684 \u8f66\u9053 \u3002 \u7531\u4e8e \u53ef\u80fd \u5b58\u5728 \u5730\u6807 \u65e0\u6548 \u7684 \u7279\u5b9a \u8f66\u9053 \uff0c \u56e0\u6b64 \u8fd4\u56de \u7684 \u662f \u5305\u542b \u53d7 \u5f71\u54cd \u7684 lane _ id \u8303\u56f4 \u7684 \u5bf9 \u5217\u8868 \uff1a \u793a\u4f8b \uff1a \u5728 \u6709 5 \u6761 \u8f66\u9053 \u7684 \u9053\u8def \u4e2d \uff0c \u5176\u4e2d 3 \u4e0d\u53d7 \u6761\u4e0d\u53d7 \u5f71\u54cd \uff1a [ ( from _ lane1 , to _ lane2 ) , ( from _ lane4 , to _ lane5 ) ] \u3002 \u8fd4\u56de \uff1a list ( tuple ( int ) )","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#carlalandmarkorientation","text":"\u7528\u4e8e \u5b9a\u4e49 \u9053\u8def \u4e2d \u5730\u6807 \u65b9\u5411 \u7684 \u8f85\u52a9 \u7c7b \u3002 \u8be5 \u5b9a\u4e49 \u5e76\u975e \u76f4\u63a5 \u4ece OpenDRIVE \u8f6c\u6362 \u800c \u6765 \uff0c \u800c\u662f \u4e3a\u4e86 \u4fbf\u4e8e \u7406\u89e3 \u800c \u8fdb\u884c \u4e86 \u8f6c\u6362 \u3002","title":"carla . LandmarkOrientation"},{"location":"python_api/#_67","text":"Positive \u5730\u6807 \u671d\u5411 \u4e0e \u9053\u8def \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u5b9a\u4e49 \u65b9\u5411 \u76f8\u540c \u7684 \u8f66\u8f86 \uff08 OpenDRIVE \u4e2d \u7684 0 \u8f66\u9053 \u548c \u8d1f \u8f66\u9053 \uff09 \u3002 Negative \u5730\u6807 \u671d\u5411 \u4e0e \u9053\u8def \u51e0\u4f55 \u5b9a\u4e49 \u76f8\u53cd \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \uff08 OpenDRIVE \u4e2d \u7684 \u6b63 \u8f66\u9053 \uff09 \u3002 Both \u90fd \u4f1a \u5f71\u54cd \u6cbf \u9053\u8def \u4e24\u4e2a \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalandmarktype","text":"Helper \u7c7b \u5305\u542b OpenDRIVE \u6807\u51c6 \uff08 \u5fb7\u56fd 2017 \uff09 \u4e2d \u9ed8\u8ba4 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u5b9a\u4e49 \u7684 \u4e00\u7ec4 \u5e38\u7528 \u5730\u6807 \u7c7b\u578b \u3002 carla . Landmark \u4e0d \u5f15\u7528 \u6b64\u7c7b \u3002 \u5730\u6807 \u7c7b\u578b \u662f \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u6839\u636e \u6240 \u4f7f\u7528 \u7684 \u56fd\u5bb6 / \u5730\u533a \u4ee3\u7801 \u7684 \u4e0d\u540c \uff0c \u5176 \u53d8\u5316 \u5f88\u5927 \u53d8\u5316\u5f88\u5927 \u3002 \u6b64\u7c7b \u4ec5 \u901a\u8fc7 \u5c06 \u9ed8\u8ba4 \u96c6\u4e2d \u7684 \u4e00\u4e9b \u6700 \u5e38\u7528 \u7684 \u63cf\u8ff0 \u4e3a \u679a\u4e3e \u6765 \u4f7f \u7ba1\u7406 \u5b83\u4eec \u53d8\u5f97 \u66f4 \u5bb9\u6613 \u3002","title":"carla . LandmarkType"},{"location":"python_api/#_68","text":"Danger \u7c7b\u578b 101 \u3002 LanesMerging \u7c7b\u578b 121 \u3002 CautionPedestrian \u7c7b\u578b 133 \u3002 CautionBicycle \u7c7b\u578b 138 \u3002 LevelCrossing \u7c7b\u578b 150 \u3002 StopSign \u7c7b\u578b 206 \u3002 YieldSign \u7c7b\u578b 205 \u3002 MandatoryTurnDirection \u7c7b\u578b 209 \u3002 MandatoryLeftRightDirection \u7c7b\u578b 211 \u3002 TwoChoiceTurnDirection \u7c7b\u578b 214 \u3002 Roundabout \u7c7b\u578b 215 \u3002 PassRightLeft \u7c7b\u578b 222 \u3002 AccessForbidden \u7c7b\u578b 250 \u3002 AccessForbiddenMotorvehicles \u7c7b\u578b 251 \u3002 AccessForbiddenTrucks \u7c7b\u578b 253 \u3002 AccessForbiddenBicycle \u7c7b\u578b 254 \u3002 AccessForbiddenWeight \u7c7b\u578b 263 \u3002 AccessForbiddenWidth \u7c7b\u578b 264 \u3002 AccessForbiddenHeight \u7c7b\u578b 265 \u3002 AccessForbiddenWrongDirection \u7c7b\u578b 267 \u3002 ForbiddenUTurn \u7c7b\u578b 272 \u3002 MaximumSpeed \u7c7b\u578b 274 \u3002 ForbiddenOvertakingMotorvehicles \u7c7b\u578b 276 \u3002 ForbiddenOvertakingTrucks \u7c7b\u578b 277 \u3002 AbsoluteNoStop \u7c7b\u578b 283 \u3002 RestrictedStop \u7c7b\u578b 286 \u3002 HasWayNextIntersection \u7c7b\u578b 301 \u3002 PriorityWay \u7c7b\u578b 306 \u3002 PriorityWayEnd \u7c7b\u578b 307 \u3002 CityBegin \u7c7b\u578b 310 \u3002 CityEnd \u7c7b\u578b 311 \u3002 Highway \u7c7b\u578b 330 \u3002 DeadEnd \u7c7b\u578b 357 \u3002 RecomendedSpeed \u7c7b\u578b 380 \u3002 RecomendedSpeedEnd \u7c7b\u578b 381 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalanechange","text":"\u5b9a\u4e49 \u5de6\u8f6c \u3001 \u53f3\u8f6c \u3001 \u53cc\u8f6c \u6216 \u4e0d \u8f6c \u7684 \u6743\u9650 \u7684 \u7c7b \uff08 \u610f\u5473 \u610f\u5473\u7740 \u53ea \u5141\u8bb8 \u76f4\u884c \uff09 \u3002 \u6839\u636e OpenDRIVE \u6587\u4ef6 \u4e3a \u6bcf\u4e2a carla . Waypoint \u5b58\u50a8 \u6b64 \u4fe1\u606f \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u8def \u70b9\u6765 \u4e86\u89e3 \u5141\u8bb8 \u54ea\u4e9b \u8f6c\u5f2f \u3002","title":"carla . LaneChange"},{"location":"python_api/#_69","text":"NONE \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u4e0d \u5141\u8bb8 \u53f3\u8f6c \u6216 \u5de6\u8f6c \uff0c \u53ea\u80fd \u76f4\u884c \u3002 Right \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5141\u8bb8 \u53f3\u8f6c \u3002 Left \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5141\u8bb8 \u5de6\u8f6c \u3002 Both \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u90fd \u5141\u8bb8 \u53f3\u8f6c \u6216 \u5de6\u8f6c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalaneinvasionevent","text":"\u4ece carla . SensorData \u7ee7\u627f \u4e3a sensor . other . lane _ invasion \u5b9a\u4e49 \u8f66\u9053 \u5165\u4fb5 \u7684 \u7c7b \u3002 \u5b83 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \uff0c \u5e76 \u4f9d\u8d56 OpenDRIVE \u6765 \u63d0\u4f9b \u53ef\u9760 \u7684 \u4fe1\u606f \u3002 \u6bcf\u6b21 \u53d1\u751f \u8f66\u9053 \u5165\u4fb5 \u65f6 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u521b\u5efa \u4e00\u4e2a \u8fd9\u6837 \u7684 \u60c5\u51b5 \uff0c \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u53ef\u80fd \u4f1a \u53d1\u751f \u591a\u6b21 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002","title":"carla . LaneInvasionEvent"},{"location":"python_api/#_70","text":"actor ( carla . Actor ) \u83b7\u53d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u8fde\u63a5 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5373 \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 crossed _ lane _ markings ( list ( carla . LaneMarking ) ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5df2 \u7a7f\u8fc7 \u5e76 \u68c0\u6d4b \u5230 \u7684 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_71","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_72","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlalanemarking","text":"\u6839\u636e OpenDRIVE 1.4 \u6807\u51c6 \u6536\u96c6 \u6709\u5173 \u8f66\u9053 \u6807\u8bb0 \u7684 \u6240\u6709 \u4fe1\u606f \u7684 \u7c7b \u3002","title":"carla . LaneMarking"},{"location":"python_api/#_73","text":"color ( carla . LaneMarkingColor ) \u6807\u8bb0 \u7684 \u5b9e\u9645 \u989c\u8272 \u3002 lane _ change ( carla . LaneChange ) \u8de8\u8d8a \u6240\u8ff0 \u8f66\u9053 \u6807\u8bb0 \u7684 \u6743\u9650 \u3002 type ( carla . LaneMarkingType ) \u8f66\u9053 \u6807\u8bb0 \u7c7b\u578b \u3002 width ( float ) \u6c34\u5e73 \u8f66\u9053 \u6807\u8bb0 \u539a\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalanemarkingcolor","text":"\u6839\u636e OpenDRIVE 1.4 \u5b9a\u4e49 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u7684 \u7c7b \u3002","title":"carla . LaneMarkingColor"},{"location":"python_api/#_74","text":"Standard \u9ed8\u8ba4 \u4e3a \u767d\u8272 \u3002 Blue Green Red White Yellow Other","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalanemarkingtype","text":"\u5b9a\u4e49 OpenDRIVE 1.4 \u63a5\u53d7 \u7684 \u8f66\u9053 \u6807\u8bb0 \u7c7b\u578b \u7684 \u7c7b \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u663e\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u822a\u70b9 \u6765 \u68c0\u7d22 \u6709\u5173 \u76f8\u90bb \u8f66\u9053 \u6807\u8bb0 \u7684 \u4fe1\u606f \u3002 \u5173\u4e8e \u53cc \u7cbe\u5ea6 \u7c7b\u578b \u7684 \u6ce8\u610f \u4e8b\u9879 \u6ce8\u610f\u4e8b\u9879 \uff1a \u8f66\u9053 \u6807\u8bb0 \u662f \u6839\u636e OpenDRIVE \u6807\u51c6 \u5b9a\u4e49 \u7684 \uff0c \u8be5 \u6807\u51c6 \u786e\u5b9a \u4e00\u6761 \u4e00\u6761\u7ebf \u5c06 \u88ab \u89c6\u4e3a \u201c BrokenSolid \u201d \u6216 \u201c SolidBroken \u201d \u3002 \u6bcf\u6761 \u9053\u8def \u90fd \u6709 \u4e00\u4e2a \u4e2d\u5fc3 \u8f66\u9053 \u6807\u8bb0 \uff0c \u6839\u636e \u8f66\u9053 \u65b9\u5411 \u4ece\u5de6\u5230\u53f3 \u5b9a\u4e49 \u3002 \u5176\u4f59 \u8f66\u9053 \u6807\u8bb0 \u6309 \u4ece \u4e2d\u5fc3 \u8f66\u9053 \u5230 \u6700\u8fd1 \u7684 \u9053\u8def \u5916\u4fa7 \u7684 \u987a\u5e8f \u5b9a\u4e49 \u3002","title":"carla . LaneMarkingType"},{"location":"python_api/#_75","text":"NONE Other Broken Solid SolidSolid SolidBroken BrokenSolid BrokenBroken BottsDots Grass Curb","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalanetype","text":"\u5b9a\u4e49 OpenDRIVE 1.4 \u63a5\u53d7 \u7684 \u53ef\u80fd \u901a\u9053 \u7c7b\u578b \u7684 \u7c7b \u3002 \u8be5 \u6807\u51c6 \u5b9a\u4e49 \u4e86 \u9053\u8def \u4fe1\u606f \u3002 carla . Map . get _ waypoint \u4e2d \u7684 \u7247\u6bb5 \u5229\u7528 \u8def\u70b9 \u6765 \u83b7\u53d6 \u5f53\u524d \u548c \u76f8\u90bb \u8f66\u9053 \u7c7b\u578b \u3002","title":"carla . LaneType"},{"location":"python_api/#_76","text":"NONE Driving Stop Shoulder Biking Sidewalk Border Restricted Parking Bidirectional Median Special1 Special2 Special3 RoadWorks Tram Rail Entry Exit OffRamp OnRamp Any \u9664 NONE \u4e4b\u5916 \u7684 \u6240\u6709 \u7c7b\u578b \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalidardetection","text":"carla . LidarMeasurement \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u4ee3\u8868 \u4e91\u4e2d \u7684 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u53ca\u5176 \u4f4d\u7f6e \u548c \u76f8\u5173 \u5f3a\u5ea6 \u3002","title":"carla . LidarDetection"},{"location":"python_api/#_77","text":"point ( carla . Location - \u7c73 ) xyz \u5750\u6807 \u4e2d \u7684 \u70b9 \u3002 intensity ( float ) \u8ba1\u7b97 \u8be5\u70b9 \u7684 \u5f3a\u5ea6 \u4f5c\u4e3a [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_78","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_79","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlalidarmeasurement","text":"\u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u7531 sensor . lidar . ray _ cast \u68c0\u7d22 \u7684 LIDAR \u6570\u636e \u7684 \u7c7b \u3002 \u8fd9 \u672c\u8d28 \u4e0a \u662f \u4f7f\u7528 \u5149\u7ebf \u6295\u5c04 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002","title":"carla . LidarMeasurement"},{"location":"python_api/#_80","text":"channels ( int ) \u53d1\u5c04 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 horizontal _ angle ( float - radians ) \u6d4b\u91cf \u65f6 LIDAR \u65cb\u8f6c \u7684 \u6c34\u5e73 \u89d2\u5ea6 \u3002 raw _ data ( bytes ) \u63a5\u6536 \u5230 \u7684 4D \u70b9 \u5217\u8868 \u3002 \u6bcf\u4e2a \u70b9 \u7531 [ x , y , z ] \u5750\u6807 \u52a0\u4e0a \u4e3a \u8be5\u70b9 \u8ba1\u7b97 \u7684 \u5f3a\u5ea6 \u7ec4\u6210 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_81","text":"save _ to _ disk ( self , path ) \u5c06 \u70b9\u4e91 \u4f5c\u4e3a \u63cf\u8ff0 \u6765\u81ea 3D \u626b\u63cf \u626b\u63cf\u4eea \u7684 \u6570\u636e \u7684 . ply \u6587\u4ef6 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u751f\u6210 \u7684 \u6587\u4ef6 \u53ef\u4ee5 \u5728 MeshLab \u4e2d \u4f7f\u7528 \uff0c MeshLab \u662f \u4e00\u4e2a \u7528\u4e8e \u5904\u7406 \u6240\u8ff0 \u6587\u4ef6 \u7684 \u5f00\u6e90 \u7cfb\u7edf \u3002 \u53ea \u9700 \u8003\u8651 \u5230 \u8be5 \u8f74 \u53ef\u80fd \u4e0e \u865a\u5e7b \u5f15\u64ce \u4e0d\u540c \uff0c \u56e0\u6b64 \u9700\u8981 \u91cd\u65b0 \u5206\u914d \u91cd\u65b0\u5206\u914d \u3002 \u53c2\u6570 \uff1a path ( str )","title":"\u65b9\u6cd5"},{"location":"python_api/#_82","text":"get _ point _ count ( self , channel ) \u68c0\u7d22 \u7531\u6b64 \u6d4b\u91cf \u751f\u6210 \u7684 \u6309 \u901a\u9053 \u6392\u5e8f \u7684 \u70b9\u6570 \u3002 \u6309 \u901a\u9053 \u6392\u5e8f \u53ef\u4ee5 \u8bc6\u522b \u6bcf\u4e2a \u70b9 \u7684 \u539f\u59cb \u901a\u9053 \u3002 \u53c2\u6570 \uff1a channel ( int )","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_83","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 carla . LidarDetection \u83b7\u53d6 \u7684 \u6570\u636e \u4e0a \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . LidarDetection ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlalight","text":"\u6b64\u7c7b \u516c\u5f00 \u573a\u666f \u4e2d \u5b58\u5728 \u7684 \u706f\u5149 \uff08 \u8f66\u8f86 \u706f\u5149 \u9664\u5916 \uff09 \u3002 \u706f\u5149 \u7684 \u5c5e\u6027 \u53ef\u4ee5 \u968f\u610f \u67e5\u8be2 \u548c \u6539\u53d8 \u3002 \u5f53 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fdb\u5165 \u591c\u95f4 \u6a21\u5f0f \uff08 \u592a\u9633 \u9ad8\u5ea6 \u4f4e\u4e8e \u96f6 \uff09 \u65f6 \uff0c \u706f\u4f1a \u81ea\u52a8 \u6253\u5f00 \u3002","title":"carla . Light"},{"location":"python_api/#_84","text":"color ( carla . Color ) \u706f\u5149 \u7684 \u989c\u8272 \u3002 id ( int ) \u706f \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 intensity ( float - lumens ) \u5149 \u7684 \u5f3a\u5ea6 \u3002 is _ on ( bool ) \u706f \u7684 \u5f00\u5173 \u3002 \u5f53\u706f\u4eae \u65f6 \u8fd9 \u662f True \u3002 \u5f53 \u591c\u95f4 \u6a21\u5f0f \u542f\u52a8 \u65f6 \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a True \u3002 location ( carla . Location - \u7c73 ) \u706f\u5149 \u7684 \u4f4d\u7f6e \u3002 light _ group ( carla . LightGroup ) \u706f\u5149 \u6240\u5c5e \u7684 \u7ec4 \u3002 light _ state ( carla . LightState ) \u706f\u5149 \u7684 \u72b6\u6001 \u3002 \u603b\u7ed3 \u5176 \u5c5e\u6027 \u3001 \u7ec4 \u4ee5\u53ca \u662f\u5426 \u6253\u5f00 / \u5173\u95ed \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_85","text":"turn _ off ( self ) \u5173\u95ed \u706f \u3002 turn _ on ( self ) \u6253\u5f00 \u706f \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_86","text":"set _ color ( self , color ) \u5c06 \u706f\u5149 \u7684 \u989c\u8272 \u66f4 \u6539\u4e3a color \u3002 \u53c2\u6570 \uff1a color ( carla . Color ) set _ intensity ( self , intensity ) \u5c06\u5149 \u7684 \u5f3a\u5ea6 \u66f4 \u6539\u4e3a intensity \u3002 \u53c2\u6570 \uff1a intensity ( float - lumens ) set _ light _ group ( self , light _ group ) \u5c06 \u706f\u5149 \u66f4 \u6539\u4e3a \u7ec4 light _ group \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) set _ light _ state ( self , light _ state ) \u5c06 \u706f\u5149 \u7684 \u72b6\u6001 \u66f4 \u6539\u4e3a light _ state \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u540c\u65f6 \u66f4\u6539 \u5c5e\u6027 \u3001 \u5206\u7ec4 \u4ee5\u53ca \u6253\u5f00 / \u5173\u95ed \u706f \u3002 \u53c2\u6570 \uff1a light _ state ( carla . LightState )","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlalightgroup","text":"\u6b64\u7c7b \u5c06 \u573a\u666f \u4e2d \u7684 \u706f\u5149 \u5206\u4e3a \u4e0d\u540c \u7684 \u7ec4 \u3002 \u8fd9\u4e9b \u53ef\u7528 \u7ec4 \u4f5c\u4e3a \u53ef \u7528\u4f5c \u6807\u5fd7 \u7684 \u679a\u4e3e \u503c \u63d0\u4f9b \u3002 \u7b14\u8bb0 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u867d\u7136 \u6709 \u4e00\u4e2a vehicle \u7ec4 \uff0c \u4f46 \u8f66\u706f \u8fd8 \u4e0d\u80fd \u7528\u4f5c carla . Light \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u5fc5\u987b \u4f7f\u7528 carla . Vehicle \u548c carla . VehicleLightState \u8fdb\u884c \u7ba1\u7406 \u3002","title":"carla . LightGroup"},{"location":"python_api/#_87","text":"None \u6240\u6709 \u706f \u3002 Vehicle Street Building Other","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlalightmanager","text":"\u6b64\u7c7b \u5904\u7406 \u573a\u666f \u4e2d \u7684 \u706f\u5149 \u3002 \u5b83 \u7684 \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \u662f \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u83b7\u53d6 \u548c \u8bbe\u7f6e \u706f\u5149 \u7ec4 \u6216 \u706f\u5149 \u5217\u8868 \u7684 \u72b6\u6001 \u3002 \u6b64\u7c7b \u7684 \u5b9e\u4f8b \u53ef\u4ee5 \u901a\u8fc7 carla . World . get _ lightmanager ( ) \u68c0\u7d22 \u3002 \u7b14\u8bb0 \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u867d\u7136 \u6709 \u4e00\u4e2a vehicle \u7ec4 \uff0c \u4f46 \u8f66\u706f \u8fd8 \u4e0d\u80fd \u7528\u4f5c carla . Light \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u5fc5\u987b \u4f7f\u7528 carla . Vehicle \u548c carla . VehicleLightState \u8fdb\u884c \u7ba1\u7406 \u3002","title":"carla . LightManager"},{"location":"python_api/#_88","text":"is _ active ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u5e03\u5c14 \u5e03\u5c14\u503c \uff0c \u8bf4\u660e \u5176\u4e2d \u7684 \u5143\u7d20 lights \u662f\u5426 \u6253\u5f00 / \u5173\u95ed \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( bool ) turn _ off ( self , lights ) \u5173\u95ed lights \u4e2d \u7684 \u6240\u6709 \u706f \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u5173\u95ed \u7684 \u706f \u5217\u8868 \u3002 turn _ on ( self , lights ) \u6253\u5f00 lights \u4e2d \u7684 \u6240\u6709 \u706f \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u6253\u5f00 \u7684 \u706f \u5217\u8868 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_89","text":"get _ all _ lights ( self , light _ group = carla . LightGroup . None ) \u8fd4\u56de \u5305\u542b \u7279\u5b9a \u7ec4\u4e2d \u7684 \u706f\u5149 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u7ec4 \u662f None \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) - \u7528\u4e8e \u8fc7\u6ee4 \u8fd4\u56de \u7684 \u706f\u5149 \u7684 \u7ec4 \u3002 \u9ed8\u8ba4 \u4e3a None \u3002 \u8fd4\u56de \uff1a list ( carla . Light ) get _ color ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u989c\u8272 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( carla . Color ) \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ color get _ intensity ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5f3a\u5ea6 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( float ) - lumens \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ intensity get _ light _ group ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u7ec4 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( carla . LightGroup ) \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ light _ group get _ light _ state ( self , lights ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u6240\u6709 \u5c5e\u6027 \u7684 \u72b6\u6001 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 * * \u8fd4\u56de \uff1a * * list ( carla . LightState ) \u8bbe\u7f6e \u5668 \uff1a carla . LightManager . set _ light _ state get _ turned _ off _ lights ( self , light _ group ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u573a\u666f \u4e2d \u5173\u95ed \u7684 \u706f\u5149 \uff08 \u6309\u7ec4 \u8fc7\u6ee4 \uff09 \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) - \u8981 \u67e5\u8be2 \u7684 \u706f\u5149 \u5217\u8868 \u3002 \u8fd4\u56de \uff1a list ( carla . Light ) get _ turned _ on _ lights ( self , light _ group ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u573a\u666f \u4e2d \u6253\u5f00 \u7684 \u706f\u5149 \uff08 \u6309\u7ec4 \u8fc7\u6ee4 \uff09 \u3002 \u53c2\u6570 \uff1a light _ group ( carla . LightGroup ) - List of lights to be queried . \u8fd4\u56de \uff1a list ( carla . Light )","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_90","text":"set _ active ( self , lights , active ) \u6253\u5f00 / \u5173\u95ed lights \u4e2d \u7684 \u5143\u7d20 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u6253\u5f00 / \u5173\u95ed \u7684 \u706f \u5217\u8868 \u3002 active ( list ( bool ) ) - \u8981 \u5e94\u7528 \u7684 \u5e03\u5c14 \u5e03\u5c14\u503c \u5217\u8868 \u3002 set _ color ( self , lights , color ) lights \u5230 color \u4e2d \u5143\u7d20 \u7684 \u989c\u8272 \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 color ( carla . Color ) - \u8981 \u5e94\u7528 \u7684 \u989c\u8272 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ color set _ colors ( self , lights , colors ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u989c\u8272 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 colors \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 colors ( list ( carla . Color ) ) - \u8981 \u5e94\u7528 \u7684 \u989c\u8272 \u5217\u8868 \u3002 set _ day _ night _ cycle ( self , active ) \u6240\u6709 \u573a\u666f \u706f \u90fd \u6709 \u663c\u591c \u5faa\u73af \uff0c \u968f\u7740 \u592a\u9633 \u7684 \u9ad8\u5ea6 \u81ea\u52a8 \u6253\u5f00 \u548c \u5173\u95ed \u3002 \u8fd9\u4f1a \u5e72\u6270 \u9700\u8981 \u5b8c\u5168 \u63a7\u5236 \u573a\u666f \u706f\u5149 \u7684 \u60c5\u51b5 \uff0c \u56e0\u6b64 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a False \u4f1a \u505c\u7528 \u5b83 \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a True \u6765 \u91cd\u65b0 \u6fc0\u6d3b \u5b83 \u3002 \u53c2\u6570 \uff1a active ( bool ) - ( \u53d6\u6d88 ) \u6fc0\u6d3b \u663c\u591c \u5faa\u73af \u3002 set _ intensities ( self , lights , intensities ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5f3a\u5ea6 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 intensities \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 intensities ( list ( float ) - lumens ) - \u8981 \u5e94\u7528 \u7684 \u5f3a\u5ea6 \u5217\u8868 \u3002 set _ intensity ( self , lights , intensity ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5f3a\u5ea6 \u6539\u4e3a intensity \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 intensity ( float - lumens ) - \u8981 \u5e94\u7528 \u7684 \u5f3a\u5ea6 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ intensity set _ light _ group ( self , lights , light _ group ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u7ec4 \u66f4 \u6539\u4e3a light _ group \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ group ( carla . LightGroup ) - \u8981 \u5e94\u7528 \u7684 \u7ec4 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ light _ group set _ light _ groups ( self , lights , light _ groups ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u7ec4 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 light _ groups \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ groups ( list ( carla . LightGroup ) ) - \u8981 \u5e94\u7528 \u7684 \u7ec4 \u5217\u8868 \u3002 set _ light _ state ( self , lights , light _ state ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5c5e\u6027 \u72b6\u6001 \u6539\u4e3a light _ state \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ state ( carla . LightState ) - \u8981 \u5e94\u7528 \u7684 \u5c5e\u6027 \u7684 \u72b6\u6001 \u3002 \u83b7\u53d6 \u5668 \uff1a carla . LightManager . get _ light _ state set _ light _ states ( self , lights , light _ states ) \u5c06 lights \u4e2d \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5c5e\u6027 \u72b6\u6001 \u66f4 \u6539\u4e3a \u76f8\u5e94 \u7684 light _ states \u3002 \u53c2\u6570 \uff1a lights ( list ( carla . Light ) ) - \u8981 \u66f4\u6539 \u7684 \u706f\u5149 \u5217\u8868 \u3002 light _ states ( list ( carla . LightState ) ) - \u8981 \u5e94\u7528 \u7684 \u5c5e\u6027 \u7684 \u72b6\u6001 \u5217\u8868 \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlalightstate","text":"\u8fd9\u4e2a \u7c7b \u4ee3\u8868 \u9664\u4e86 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u548c \u4f4d\u7f6e \u4e4b\u5916 \u7684 \u6240\u6709 \u706f\u5149 \u53d8\u91cf \uff0c \u5b83\u4eec \u5e94\u8be5 \u662f \u9759\u6001 \u7684 \u3002 \u4f7f\u7528 \u6b64\u7c7b \u53ef\u4ee5 \u5728 \u4e00\u6b21 \u8c03\u7528 \u4e2d \u7ba1\u7406 \u706f\u5149 \u7684 \u6240\u6709 \u53c2\u6570 \u5316 \u3002","title":"carla . LightState"},{"location":"python_api/#_91","text":"intensity ( float - lumens ) \u5149 \u7684 \u5f3a\u5ea6 \u3002 color ( carla . Color ) \u706f\u5149 \u7684 \u989c\u8272 \u3002 group ( carla . LightGroup ) \u706f\u5149 \u6240\u5c5e \u7684 \u7ec4 \u3002 active ( bool ) \u706f \u7684 \u5f00\u5173 \u3002 \u5f53\u706f\u4eae \u65f6 \u4e3a True \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_92","text":"__ init __ ( self , intensity = 0.0 , color = carla . Color ( ) , group = carla . LightGroup . None , active = False ) \u53c2\u6570 \uff1a intensity ( float - lumens ) - \u5149 \u7684 \u5f3a\u5ea6 \u3002 \u9ed8\u8ba4 \u4e3a 0.0 \u3002 color ( carla . Color ) - \u5149 \u7684 \u989c\u8272 \u3002 \u9ed8\u8ba4 \u4e3a \u9ed1\u8272 \u3002 group ( carla . LightGroup ) - \u706f\u5149 \u6240\u5c5e \u7684 \u7ec4 \u3002 \u9ed8\u8ba4 \u4e3a \u901a\u7528 \u7ec4 None \u3002 active ( bool ) - \u706f\u5149 \u5f00\u5173 \u3002 \u9ed8\u8ba4 \u4e3a False \uff0c \u706f \u5173\u95ed \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#carlalocation","text":"\u4ece carla . Vector3D \u7ee7\u627f \u4ee3\u8868 \u4e16\u754c \u4e0a \u7684 \u4e00\u4e2a \u5730\u65b9 \u3002","title":"carla . Location"},{"location":"python_api/#_93","text":"x ( float - \u7c73 ) X \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 y ( float - \u7c73 ) Y \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002 z ( float - \u7c73 ) Z \u8f74\u4e0a \u4ece \u539f \u70b9\u5230\u70b9 \u7684 \u8ddd\u79bb \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_94","text":"__ init __ ( self , x = 0.0 , y = 0.0 , z = 0.0 ) \u53c2\u6570 \uff1a x ( float ) y ( float ) z ( float ) distance ( self , location ) \u8fd4\u56de \u4ece \u8be5 \u4f4d\u7f6e \u5230 \u53e6 \u4e00 \u4f4d\u7f6e \u7684 \u6b27\u51e0 \u51e0\u91cc \u6b27\u51e0\u91cc\u5f97 \u8ddd\u79bb \u3002 \u53c2\u6570 \uff1a location ( carla . Location ) - \u7528\u4e8e \u8ba1\u7b97 \u8ddd\u79bb \u7684 \u53e6 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u8fd4\u56de \uff1a float - \u7c73","title":"\u65b9\u6cd5"},{"location":"python_api/#_95","text":"__ abs __ ( self ) \u8fd4\u56de \u5177\u6709 x \u3001 y \u548c z \u5206\u91cf \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u4f4d\u7f6e \u3002 \u8fd4\u56de \uff1a carla . Location __ eq __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u540c \u4e00\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . Location ) \u5982\u679c \u4e24\u4e2a \u4f4d\u7f6e \u662f \u7a7a\u95f4 \u4e2d \u7684 \u4e0d\u540c \u540c\u70b9 \u4e0d\u540c\u70b9 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8f74 \u7684 \u503c \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de \uff1a str","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlamap","text":"\u5305\u542b \u9053\u8def \u4fe1\u606f \u548c \u822a\u70b9 \u7ba1\u7406 \u7684 \u7c7b \u3002 \u4ece \u63cf\u8ff0 \u9053\u8def \u7684 OpenDRIVE \u6587\u4ef6 \u4e2d \u68c0\u7d22 \u6570\u636e \u3002 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u67e5\u8be2 \u7cfb\u7edf \uff0c \u5b83 \u4e0e carla . Waypoint \u643a\u624b \u5408\u4f5c \uff0c \u5c06 \u51e0\u4f55 \u4fe1\u606f \u4ece . xodr \u8f6c\u6362 \u4e3a \u81ea\u7136 \u4e16\u754c \u70b9 \u3002 Carla \u76ee\u524d \u6b63\u5728 \u4f7f\u7528 OpenDRIVE 1.4 \u6807\u51c6 \u3002","title":"carla . Map"},{"location":"python_api/#_96","text":"name ( str ) \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u5b83 \u5bf9\u5e94 \u4e8e \u4ece Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u52a0\u8f7d \u7684 \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 . umap \uff0c \u7136\u540e \u5f15\u7528 . xodr \u9053\u8def \u63cf\u8ff0 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_97","text":"__ init __ ( self , name , xodr _ content ) \u6b64\u7c7b \u7684 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u3002 \u5c3d\u7ba1 \u5728 \u521d\u59cb \u521d\u59cb\u5316 \u4e16\u754c \u65f6\u4f1a \u81ea\u52a8 \u751f\u6210 \u5730\u56fe \uff0c \u4f46 \u5728 \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u4e0b \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5728 \u4e0d \u8fd0\u884c \u4efb\u4f55 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u60c5\u51b5 \u4e0b \u4f7f\u7528 . xodr \u3002 \u53c2\u6570 \uff1a name ( str ) - \u5f53\u524d \u5730\u56fe \u7684 \u540d\u79f0 \u3002 xodr _ content ( str ) - \u5b57\u7b26 \u5b57\u7b26\u4e32 \u683c\u5f0f \u7684 . xodr \u5185\u5bb9 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) cook _ in _ memory _ map ( self , path ) \u4ece Carla \u6620\u5c04 \u751f\u6210 \u4e00\u4e2a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4f7f\u7528 \u7684 \u4fe1\u606f \u3002 \u6b64 \u65b9\u6cd5 \u4ec5 \u5728 \u5730\u56fe \u5bfc\u5165 \u8fc7\u7a0b \u4e2d \u4f7f\u7528 \u3002 \u53c2\u6570 \uff1a path ( str ) - \u5b58\u50a8 \u7684 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6620\u5c04 \u6587\u4ef6 \u7684 \u9884\u671f \u4f4d\u7f6e \u7684 \u8def\u5f84 \u3002 generate _ waypoints ( self , distance ) \u8fd4\u56de \u4e00\u4e2a \u8def\u70b9 \u5217\u8868 \uff0c \u6bcf\u4e2a \u8f66\u9053 \u7684 \u8def\u70b9 \u4e4b\u95f4 \u90fd \u6709 \u4e00\u5b9a \u7684 \u8ddd\u79bb \uff0c \u5e76 \u4ee5 \u5176 \u4e3a \u4e2d\u5fc3 \u3002 \u8def\u70b9 \u4e0d \u6309 \u4efb\u4f55 \u7279\u5b9a \u987a\u5e8f \u5217\u51fa \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u540c\u4e00 \u9053\u8def \u3001 \u8def\u6bb5 \u548c \u8f66\u9053 \u5185 \u8ddd\u79bb \u8d85\u8fc7 2 \u5398\u7c73 \u7684 \u8def \u70b9\u5c06 \u5177\u6709 \u76f8\u540c \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 \u53c2\u6570 \uff1a distance ( float - \u7c73 ) - \u8def\u5f84 \u70b9 \u4e4b\u95f4 \u7684 \u8fd1\u4f3c \u8ddd\u79bb \u3002 \u8fd4\u56de \uff1a list ( carla . Waypoint ) save _ to _ disk ( self , path ) \u5c06 \u5f53\u524d \u6620\u5c04 \u7684 . xodr OpenDRIVE \u6587\u4ef6 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u53c2\u6570 \uff1a path - \u4fdd\u5b58 \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 to _ opendrive ( self ) \u4ee5 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \u8fd4\u56de \u5f53\u524d \u5730\u56fe \u7684 . xodr OpenDRIVe \u6587\u4ef6 \u3002 \u8fd4\u56de \uff1a str transform _ to _ geolocation ( self , location ) \u5c06 \u4eff\u771f \u4e2d \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u7684 \u7ed9\u5b9a \u4f4d\u7f6e location \u8f6c\u6362 \u4e3a carla . GeoLocation \uff0c \u4ed6 \u8868\u793a \u4e16\u754c \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u5730\u56fe \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u5728 OpenDRIVE \u6807\u7b7e \u5185 \u5b9a\u4e49 \u3002 \u53c2\u6570 \uff1a location ( carla . Location ) \u8fd4\u56de \uff1a carla . GeoLocation","title":"\u65b9\u6cd5"},{"location":"python_api/#_98","text":"get _ all _ landmarks ( self ) \u8fd4\u56de \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u5230 \u7684 \u5730\u6807 \u6709 \u4e00\u4e2a null \u822a\u8def \u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ from _ id ( self , opendrive _ id ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a OpenDRIVE ID \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a opendrive _ id ( string ) - \u5730 \u6807\u7684 OpenDRIVE ID \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ all _ landmarks _ of _ type ( self , type ) \u8fd4\u56de \u7279\u5b9a \u7c7b\u578b \u7684 \u5730\u6807 \u3002 \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \u68c0\u7d22 \u7684 \u5730\u6807 \u5177\u6709 null \u822a\u8def \u70b9 \u3002 \u53c2\u6570 \uff1a type ( string ) - \u5730 \u6807\u7684 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ crosswalks ( self ) \u4ee5 \u95ed\u5408 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u5f62\u5f0f \u8fd4\u56de \u5305\u542b \u6240\u6709 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u533a\u57df \u7684 \u4f4d\u7f6e \u5217\u8868 \u3002 \u91cd\u590d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u70b9 \uff0c \u8868\u793a \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7684 \u8d77\u70b9 \u548c \u7ec8\u70b9 \u3002 \u8fd4\u56de \uff1a list ( carla . Location ) get _ landmark _ group ( self , landmark ) \u8fd4\u56de \u4e0e \u6307\u5b9a \u5730\u6807 \uff08 \u5305\u62ec \u5176 \u81ea\u8eab \uff09 \u4f4d\u4e8e \u540c \u4e00\u7ec4 \u4e2d \u7684 \u5730\u6807 \u3002 \u5982\u679c \u5730\u6807 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u7ec4 \uff0c \u5219 \u8fd4\u56de \u7a7a \u5217\u8868 \u3002 \u53c2\u6570 \uff1a landmark ( carla . Landmark ) - \u5c5e\u4e8e \u8be5\u7ec4 \u7684 \u5730\u6807 \u3002 \u8fd4\u56de \uff1a list ( carla . Landmark ) get _ spawn _ points ( self ) \u8fd4\u56de \u5730\u56fe \u521b\u5efa \u521b\u5efa\u8005 \u63d0\u51fa \u7684 \u5efa\u8bae \u5217\u8868 \uff0c \u4ee5 \u7528\u4f5c \u8f66\u8f86 \u7684 \u751f\u6210 \u70b9 \u3002 \u8be5 \u5217\u8868 \u5305\u62ec \u5177\u6709 \u7279\u5b9a \u4f4d\u7f6e \u548c \u65b9\u5411 \u7684 carla . Transform \u5bf9\u8c61 \u3002 \u4e3a\u4e86 \u907f\u514d Z \u578b \u78b0\u649e \uff0c \u4e0a\u8ff0 \u5730\u70b9 \u4f1a \u7a0d\u5fae \u5728 \u7a7a\u4e2d \uff0c \u56e0\u6b64 \u8f66\u8f86 \u5728 \u51fa\u53d1 \u524d\u4f1a \u7a0d\u5fae \u4e0b\u5760 \u3002 \u8fd4\u56de \uff1a list ( carla . Transform ) get _ topology ( self ) \u8fd4\u56de \u63cf\u8ff0 OpenDRIVE \u6587\u4ef6 \u62d3\u6251 \u7684 \u6700\u5c0f \u56fe \u7684 \u5143\u7ec4 \u5217\u8868 \u3002 \u8fd9\u4e9b \u5143\u7ec4 \u5305\u542b \u4f4d\u4e8e \u9053\u8def \u8d77\u70b9 \u6216 \u7ec8\u70b9 \u7684 \u6210 \u5bf9 \u8def\u70b9 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u8d77\u70b9 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u4ee3\u8868 \u53e6 \u4e00\u4e2a \u53ef\u4ee5 \u5230\u8fbe \u7684 \u8def \u7ec8\u70b9 \u3002 \u8be5\u56fe \u53ef\u4ee5 \u52a0\u8f7d \u5230 NetworkX \u4e2d \u8fdb\u884c \u4f7f\u7528 \u3002 \u8f93\u51fa \u53ef\u80fd \u5982\u4e0b \u6240\u793a \uff1a [ ( w0 , w1 ) , ( w0 , w2 ) , ( w1 , w3 ) , ( w2 , w3 ) , ( w0 , w4 ) ] \u3002 \u8fd4\u56de \uff1a list ( tuple ( carla . Waypoint , carla . Waypoint ) ) get _ waypoint ( self , location , project _ to _ road = True , lane _ type = carla . LaneType . Driving ) snippet \u2192 \u8fd4\u56de \u53ef\u4ee5 \u4f4d\u4e8e \u7cbe\u786e \u4f4d\u7f6e \u6216 \u8f6c\u6362 \u5230 \u6700\u8fd1 \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u822a\u8def \u70b9 \u3002 \u6240\u8ff0 \u8f66\u9053 \u7c7b\u578b \u53ef\u4ee5 \u4f7f\u7528 \u8bf8\u5982 LaneType . Driving & LaneType . Shoulder \u7684 \u6807\u5fd7 \u6765 \u5b9a\u4e49 \u3002 \u5982\u679c \u627e\u5230 \u672a\u627e\u5230 \u822a\u8def \u70b9 \uff0c \u8be5 \u65b9\u6cd5 \u5c06 \u8fd4\u56de None \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4ec5 \u5728 \u5c1d\u8bd5 \u68c0\u7d22 \u786e\u5207 \u4f4d\u7f6e \u7684 \u822a\u8def \u70b9\u65f6 \u53ef\u80fd \u4f1a \u53d1\u751f \u3002 \u8fd9 \u53ef\u4ee5 \u8f7b\u677e \u68c0\u67e5 \u67d0\u4e2a \u70b9 \u662f\u5426 \u5728 \u67d0\u6761 \u9053\u8def \u5185 \uff0c \u5426\u5219 \uff0c \u5b83 \u5c06 \u8fd4\u56de \u76f8\u5e94 \u7684 \u8def\u5f84 \u70b9 \u3002 \u53c2\u6570 \uff1a location ( carla . Location - \u7c73 ) - \u7528\u4f5c carla . Waypoint \u53c2\u8003 \u7684 \u4efb\u52a1 \u3002 project _ to _ road ( bool ) - \u5982\u679c \u662f True \uff0c \u8def\u5f84 \u70b9\u5c06 \u4f4d\u4e8e \u6700\u8fd1 \u8f66\u9053 \u7684 \u4e2d\u5fc3 \u3002 \u8fd9\u662f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u5982\u679c \u4e3a False \uff0c \u8def\u5f84 \u70b9\u5c06 \u6070\u597d \u4f4d\u4e8e location \u3002 None \u8868\u793a \u8be5 \u4f4d\u7f6e \u4e0d \u5c5e\u4e8e \u9053\u8def \u3002 lane _ type ( carla . LaneType ) - \u5c06 \u5bf9 \u6700\u8fd1 \u8f66\u9053 \u7684 \u641c\u7d22 \u9650\u5236 \u4e3a \u53ef\u4ee5 \u6807\u8bb0 \u7684 \u4e00\u79cd \u6216 \u591a\u79cd \u8f66\u9053 \u7c7b\u578b \u3002 \u8fd4\u56de \uff1a carla . Waypoint get _ waypoint _ xodr ( self , road _ id , lane _ id , s ) \u5982\u679c \u4f20\u9012 \u7684 \u6240\u6709 \u53c2\u6570 \u90fd \u6b63\u786e \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5426\u5219 \uff0c \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a road _ id ( int ) - \u83b7\u53d6 \u8def\u70b9 \u7684 \u9053\u8def id \u3002 lane _ id ( int ) - \u83b7\u53d6 \u822a\u8def \u70b9 \u7684 \u8f66\u9053 id \u3002 s ( float - \u7c73 ) - \u6307\u5b9a \u4ece \u9053\u8def \u8d77\u70b9 \u5f00\u59cb \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Waypoint","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_99","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlamaplayer","text":"\u8868\u793a \u5730\u56fe \u7684 \u6bcf\u4e2a \u53ef \u7ba1\u7406 \u7ba1\u7406\u5c42 \u7684 \u7c7b \u3002 \u53ef\u4ee5 \u7528\u4f5c \u6807\u5fd7 \u3002 \u8b66\u544a \uff1a \u53ea\u6709 \u201c Opt \u201d \u5730\u56fe \u624d\u80fd \u4f7f\u7528 \u5730\u56fe \u56fe\u5c42 \u3002","title":"carla . MapLayer"},{"location":"python_api/#_100","text":"NONE \u672a \u9009\u62e9 \u4efb\u4f55 \u56fe\u5c42 \u3002 Buildings Decals Foliage Ground ParkedVehicles Particles Props StreetLights Walls All \u9009\u5b9a \u6240\u6709 \u56fe\u5c42 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlamaterialparameter","text":"\u8868\u793a \u6750\u6599 \u53c2\u6570 \u7684 \u7c7b \u3002 \u5e76\u975e \u573a\u666f \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u90fd \u5305\u542b \u6240\u6709 \u53c2\u6570 \u3002","title":"carla . MaterialParameter"},{"location":"python_api/#_101","text":"Normal \u5bf9\u8c61 \u7684 \u6cd5\u7ebf \u8d34\u56fe \u3002 \u5b58\u5728 \u4e8e \u4e00\u5207 \u7269\u4f53 \u4e2d \u3002 Diffuse \u7269\u4f53 \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7eb9\u7406 \u3002 \u5b58\u5728 \u4e8e \u4e00\u5207 \u7269\u4f53 \u4e2d \u3002 AO _ Roughness _ Metallic _ Emissive \u6bcf\u4e2a \u989c\u8272 \u901a\u9053 \u4ee3\u8868 \u6750\u8d28 \u5c5e\u6027 \u7684 \u7eb9\u7406 \uff08 R \uff1a \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \uff0c G \uff1a \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff0c B \uff1a \u91d1\u5c5e \uff0c A \uff1a \u67d0\u4e9b \u7269\u4f53 \u4e2d \u7684 \u53d1\u5c04 / \u9ad8\u5ea6 \u8d34\u56fe \uff09 \u3002 Emissive \u53d1\u5c04 \u7eb9\u7406 \u3002 \u5b58\u5728 \u4e8e \u4e00\u4e9b \u7269\u4f53 \u4e2d \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlaobstacledetectionevent","text":"\u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 sensor . other . obstacle \u969c\u788d \u969c\u788d\u7269 \u6570\u636e \u7684 \u7c7b \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002","title":"carla . ObstacleDetectionEvent"},{"location":"python_api/#_102","text":"actor ( carla . Actor ) \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6240 \u8fde\u63a5 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 other _ actor ( carla . Actor ) \u88ab \u89c6\u4e3a \u969c\u788d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u7269\u4f53 \u3002 distance ( float - \u7c73 ) \u53c2\u4e0e \u53c2\u4e0e\u8005 actor \u548c \u5176\u4ed6 \u4ed6\u4eba \u5176\u4ed6\u4eba other \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_103","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_104","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaopendrivegenerationparameters","text":"\u6b64\u7c7b \u5b9a\u4e49 \u4f7f\u7528 OpenDRIVE \u6587\u4ef6 \u751f\u6210 \u4e16\u754c \u65f6 \u4f7f\u7528 \u7684 \u53c2\u6570 \u3002","title":"carla . OpendriveGenerationParameters"},{"location":"python_api/#_105","text":"vertex _ distance ( float ) \u751f\u6210 \u7684 \u7f51\u683c \u9876\u70b9 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2.0 \u3002 max _ road _ length ( float ) \u5355\u4e2a \u7f51\u683c \u90e8\u5206 \u7684 \u6700\u5927 \u9053\u8def \u957f\u5ea6 \u3002 \u5730\u56fe \u7684 \u7f51\u683c \u88ab \u5206\u4e3a \u591a\u4e2a \u90e8\u5206 \uff0c \u4ee5 \u907f\u514d \u4f20\u64ad \u95ee\u9898 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 50.0 \u3002 wall _ height ( float ) \u5728 \u9053\u8def \u8fb9\u754c \u4e0a \u521b\u5efa \u7684 \u5899\u58c1 \u7684 \u9ad8\u5ea6 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u4ece \u9053\u8def \u4e0a \u4e0b\u6765 \u6389\u4e0b\u6765 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 1.0 \u3002 additional _ width ( float ) \u53e6\u5916 \u8fd8\u6709 \u5e94\u7528 \u7684 \u8fde\u63a5 \u8f66\u9053 \u3002 \u590d\u6742 \u7684 \u60c5\u51b5 \u5f80\u5f80 \u53d1\u751f \u5728 \u8def\u53e3 \uff0c \u7a0d\u5fae \u589e\u52a0 \u4e00\u70b9 \u5c31 \u53ef\u4ee5 \u9632\u6b62 \u8f66\u8f86 \u5760\u843d \u8def\u9762 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.6 \u3002 smooth _ junctions ( bool ) \u5982\u679c \u4e3a True \uff0c \u4ea4\u53c9 \u4ea4\u53c9\u70b9 \u5904 \u7684 \u7f51\u683c \u5c06 \u88ab \u5e73\u6ed1 \uff0c \u4ee5 \u9632\u6b62 \u9053\u8def \u963b\u585e \u5176\u4ed6 \u9053\u8def \u7684 \u95ee\u9898 \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 enable _ mesh _ visibility ( bool ) \u5982\u679c \u4e3a True \uff0c \u5c06 \u6e32\u67d3 \u9053\u8def \u7f51\u683c \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a False \u5e94\u8be5 \u4f1a \u51cf\u5c11 \u6e32\u67d3 \u5f00\u9500 \u3002 \u9ed8\u8ba4 \u4e3a True \u3002 enable _ pedestrian _ navigation ( bool ) \u5982\u679c \u4e3a True \uff0c \u5c06 \u4f7f\u7528 Recast \u5de5\u5177 \u542f\u7528 \u884c\u4eba \u5bfc\u822a \u3002 \u5bf9\u4e8e \u975e\u5e38 \u5927 \u7684 \u5730\u56fe \uff0c \u5efa\u8bae \u7981\u7528 \u6b64 \u9009\u9879 \u3002 \u9ed8\u8ba4 \u4e3a True \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlaopticalflowimage","text":"\u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u8868\u793a \u89c6\u573a \u4e2d \u68c0\u6d4b \u5230 \u7684 \u5149\u6d41 \u7684 \u4e8c\u7ef4 \u6d6e\u70b9 \uff08 32 \u4f4d \uff09 \u5411\u91cf \u7684 \u5149\u6d41 \u56fe\u50cf \u7684 \u7c7b \u3002 \u77e2\u91cf \u7684 \u5206\u91cf \u8868\u793a \u7269\u4f53 \u5728 \u56fe\u50cf \u5e73\u9762 \u4e2d \u7684 \u4f4d\u79fb \u3002 \u6bcf\u4e2a \u7ec4\u4ef6 \u8f93\u51fa \u5f52\u4e00\u5316 \u8303\u56f4 [ - 2 , 2 ] \u5185 \u7684 \u503c \uff0c \u8be5 \u8303\u56f4 \u7f29\u653e \u4e3a [ - 2 size \uff0c 2 size ] \uff0c \u5927\u5c0f \u662f \u76f8\u5e94 \u7ec4\u4ef6 \u4e2d \u7684 \u603b \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u3002","title":"carla . OpticalFlowImage"},{"location":"python_api/#_106","text":"fov ( float - \u5ea6 ) \u56fe\u50cf \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 height ( int ) \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 width ( int ) \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data ( bytes ) \u5c55\u5e73 \u50cf\u7d20 \u6570\u636e \u6570\u7ec4 \uff0c \u4f7f\u7528 reshape \u521b\u5efa \u56fe\u50cf \u6570\u7ec4 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_107","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_108","text":"get _ color _ coded _ flow ( self ) \u53ef\u89c6 \u53ef\u89c6\u5316 \u52a9\u624b \u3002 \u5c06 \u5149\u6d41 \u56fe\u50cf \u8f6c\u6362 \u4e3a RGB \u56fe\u50cf \u3002 \u8fd4\u56de \uff1a carla . Image","title":"\u83b7\u53d6 \u5668"},{"location":"python_api/#_109","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) \u8fed\u4ee3 \u5f62\u6210 \u56fe\u50cf \u7684 carla . OpticalFlowPixel \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , color = carla . Color ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaopticalflowpixel","text":"\u5b9a\u4e49 \u8868\u793a \u5149\u6d41 \u50cf\u7d20 \u7684 \u4e8c\u7ef4 \u5411\u91cf \u7684 \u7c7b \u3002","title":"carla . OpticalFlowPixel"},{"location":"python_api/#_110","text":"x ( float ) x \u5206\u91cf \u4e2d \u7684 \u5149\u6d41 \u3002 y ( float ) y \u5206\u91cf \u4e2d \u7684 \u5149\u6d41 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_111","text":"__ init __ ( self , x = 0 , y = 0 ) \u521d\u59cb \u521d\u59cb\u5316 \u5149\u6d41 \u50cf\u7d20 \u3002 \u9ed8\u8ba4 \u4e3a \u96f6 \u3002 \u53c2\u6570 \uff1a x ( float ) y ( float )","title":"\u65b9\u6cd5"},{"location":"python_api/#_112","text":"__ eq __ ( self , other = carla . OpticalFlowPixel ) __ ne __ ( self , other = carla . OpticalFlowPixel ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaosm2odr","text":"\u5c06 OpenStreetMap \u5730\u56fe \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u7684 \u7c7b \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u4e2d \u52a0\u8f7d \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"carla . Osm2Odr"},{"location":"python_api/#_113","text":"convert ( osm _ file , settings ) \u83b7\u53d6 . osm \u6587\u4ef6 \uff08 OpenStreetMap \u683c\u5f0f \uff09 \u7684 \u5185\u5bb9 \u5e76 \u8fd4\u56de \u63cf\u8ff0 \u6240\u8ff0 \u5730\u56fe \u7684 . xodr \uff08 OpenDRIVE \u683c\u5f0f \uff09 \u7684 \u5185\u5bb9 \u3002 \u4f20\u9012 \u4e00\u4e9b \u53c2\u6570 \u5316\u6765 \u8fdb\u884c \u8f6c\u6362 \u3002 \u53c2\u6570 \uff1a osm _ file ( str ) - \u8f93\u5165 OpenStreetMap \u6587\u4ef6 \u7684 \u5185\u5bb9 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 settings ( carla . OSM2ODRSettings ) - \u8f6c\u6362 \u7684 \u53c2\u6570 \u5316 \u3002 \u8fd4\u56de \uff1a str","title":"\u65b9\u6cd5"},{"location":"python_api/#carlaosm2odrsettings","text":"\u5305\u542b carla . Osm2Odr \u5c06 \u4f7f\u7528 \u7684 \u53c2\u6570 \u5316 \u7684 \u5e2e\u52a9 \u7a0b\u5e8f \u7c7b \uff0c \u7528\u4e8e \u5c06 OpenStreetMap \u5730\u56fe \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"carla . Osm2OdrSettings"},{"location":"python_api/#_114","text":"use _ offsets ( bool ) \u5141\u8bb8 \u4f7f\u7528 \u504f\u79fb \u504f\u79fb\u91cf \u8fdb\u884c \u8f6c\u6362 \u3002 \u504f\u79fb \u504f\u79fb\u91cf \u5c06 \u79fb\u52a8 \u5730\u56fe \u7684 \u539f\u70b9 \u4f4d\u7f6e \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a False \u3002 offset _ x ( float - \u7c73 ) X \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 offset _ y ( float - \u7c73 ) Y \u8f74 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 default _ lane _ width ( float - \u7c73 ) \u751f\u6210 \u7684 XODR \u5730\u56fe \u4e2d \u63cf\u8ff0 \u7684 \u8f66\u9053 \u5bbd\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 4.0 \u3002 elevation _ layer _ height ( float - \u7c73 ) \u5b9a\u4e49 \u5206\u9694 \u4e24\u4e2a \u4e0d\u540c OpenStreetMap \u56fe\u5c42 \u7684 \u9ad8\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 center _ map ( bool ) \u542f\u7528 \u6b64 \u9009\u9879 \u540e \uff0c \u5730\u56fe \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u5c06 \u53d1\u751f \u4f4d\u79fb \uff0c \u4ee5 \u4f7f \u5750\u6807 \u539f\u70b9 \u4e0e \u6574\u4e2a \u9053\u8def \u5730\u56fe \u7684 \u8fb9\u754c \u6846 \u4e2d\u5fc3 \u5339\u914d \u76f8\u5339\u914d \u3002 proj _ string ( str ) \u5b9a\u4e49 \u5c06 \u7528\u4e8e \u8ba1\u7b97 \u4ece \u5730\u7406 \u5750\u6807 \u5730\u7406\u5750\u6807 \u5230 \u5361\u5c14 \u7b1b\u5361\u5c14 \u5750\u6807 \u7684 \u6295\u5f71 \u7684 proj4 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8be5 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5c06 \u5199\u5165 \u751f\u6210 \u7684 OpenDRIVE \u4e2d \uff0c \u9664\u975e \u542f\u7528 \u4e86 use _ offsets \u6216 center _ map \u9009\u9879 \uff0c \u56e0\u4e3a \u8fd9\u4e9b \u9009\u9879 \u4f1a \u8986\u76d6 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u4e2d \u7684 \u67d0\u4e9b \u5b9a\u4e49 \u3002 generate _ traffic _ lights ( bool ) \u6307\u793a \u662f\u5426 \u5728 OpenDRIVE \u4e2d \u751f\u6210 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6570\u636e \u3002 set _ traffic _ light _ excluded _ way _ types ( way _ types ) \u5b9a\u4e49 \u7684 \u9053\u8def \u7c7b\u578b \u4e0d\u4f1a \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002 all _ junctions _ with _ traffic _ lights ( bool ) \u7981\u7528 \u65f6 \uff0c \u8f6c\u6362 \u8f6c\u6362\u5668 \u5c06 \u4ec5 \u4ece OpenStreetMaps \u6570\u636e \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u3002 \u542f\u7528 \u540e \uff0c \u6240\u6709 \u8def\u53e3 \u90fd \u4f1a \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_115","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_116","text":"set _ osm _ way _ types ( self , way _ types ) \u5b9a\u4e49 \u5c06 \u5bfc\u5165 \u5bfc\u5165\u5230 OpenDRIVE \u7684 OpenStreetMaps \u9053\u8def \u7c7b\u578b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5bfc\u5165 \u7684 \u9053\u8def \u7c7b\u578b \u4e3a motorway , motorway _ link , trunk , trunk _ link , primary , primary _ link , secondary , secondary _ link , tertiary , tertiary _ link , unclassified , residential \u3002 \u6709\u5173 \u9053\u8def \u7c7b\u578b \u7684 \u5b8c\u6574 \u5217\u8868 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u53c2\u6570 \uff1a way _ types ( list ( str ) ) - \u9053\u8def \u7c7b\u578b \u5217\u8868 \u3002 set _ traffic _ light _ excluded _ way _ types ( self , way _ types ) \u5b9a\u4e49 \u5373\u4f7f \u542f\u7528 generate _ traffic _ lights \u4e5f \u4e0d\u4f1a \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 OpenStreetMaps \u9053\u8def \u7c7b\u578b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6392\u9664 \u7684 \u9053\u8def \u7c7b\u578b \u4e3a motorway _ link , primary _ link , secondary _ link , tertiary _ link \u3002 \u53c2\u6570 \uff1a way _ types ( list ( str ) ) - \u9053\u8def \u7c7b\u578b \u5217\u8868 \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlaradardetection","text":"carla . RadarMeasurement \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u4ee3\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 . sensor . other . radar \u8bb0\u5f55 \u7684 \u4e91\u4e2d \u7684 \u70b9 \u4e4b\u4e00 \uff0c \u5e76 \u5305\u542b \u4e0e \u96f7\u8fbe \u76f8\u5173 \u7684 \u8ddd\u79bb \u3001 \u89d2\u5ea6 \u548c \u901f\u5ea6 \u3002","title":"carla . RadarDetection"},{"location":"python_api/#_117","text":"altitude ( float - radians ) Altitude angle of the detection . azimuth ( float - radians ) Azimuth angle of the detection . depth ( float - \u7c73 ) Distance from the sensor to the detection position . velocity ( float - m / s ) The velocity of the detected object towards the sensor .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_118","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_119","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaradarmeasurement","text":"\u4ece carla . SensorData \u7ee7\u627f \u5b9a\u4e49 \u5e76 \u6536\u96c6 \u7531 sensor . other . radar \u6ce8\u518c \u7684 \u6d4b\u91cf \u503c \u7684 \u7c7b \uff0c \u4ee3\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u524d\u9762 \u7684 \u70b9 \u5899 \u4ee5\u53ca \u4e0e\u5176 \u76f8\u5173 \u7684 \u8ddd\u79bb \u3001 \u89d2\u5ea6 \u548c \u901f\u5ea6 \u3002 \u6570\u636e \u7531 carla . RadarDetection \u6570\u7ec4 \u7ec4\u6210 \u3002 \u5728 \u8fd9\u91cc \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002","title":"carla . RadarMeasurement"},{"location":"python_api/#_120","text":"raw _ data ( bytes ) carla . RadarDetection \u96f7\u8fbe \u7684 \u5b8c\u6210 \u4fe1\u606f \u5df2\u7ecf \u88ab \u6ce8\u518c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_121","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_122","text":"get _ detection _ count ( self ) \u68c0\u7d22 \u751f\u6210 \u7684 \u6761\u76ee \u6570 \uff0c \u4e0e __ str __ ( ) \u76f8\u540c \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_123","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) \u5728 \u83b7\u53d6 \u7684 \u6570\u636e carla . RadarDetection \u4e0a \u8fdb\u884c \u8fed\u4ee3 \u3002 __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . RadarDetection ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlarotation","text":"\u8868\u793a 3D \u65cb\u8f6c \u4ee5\u53ca \u7a7a\u95f4 \u65b9\u5411 \u7684 \u7c7b \u3002 Carla \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u8fd9\u662f Z \u5411\u4e0a \u5de6\u624b \u7cfb\u7edf \u3002 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u65b9\u6cd5 \u9075\u5faa \u7279\u5b9a \u7684 \u58f0\u660e \u987a\u5e8f \uff1a ( pitch , yaw , roll ) \u5bf9\u5e94 \u4e8e ( Y - rotation , Z - rotation , X - rotation ) . \u865a\u5e7b \u5f15\u64ce \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u3002","title":"carla . Rotation"},{"location":"python_api/#_124","text":"pitch ( float - \u5ea6 ) Y - \u8f74 \u65cb\u8f6c \u89d2\u5ea6 \u3002 yaw ( float - \u5ea6 ) Z - \u8f74 \u65cb\u8f6c \u89d2\u5ea6 \u3002 roll ( float - \u5ea6 ) X - \u8f74 \u65cb\u8f6c \u89d2\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_125","text":"__ init __ ( self , pitch = 0.0 , yaw = 0.0 , roll = 0.0 ) \u53c2\u6570 \uff1a pitch ( float - \u5ea6 ) - Y - axis rotation angle . yaw ( float - \u5ea6 ) - Z - axis rotation angle . roll ( float - \u5ea6 ) - X - axis rotation angle . \u8b66\u544a \uff1a CARLA ( pitch , yaw , roll ) \u548c \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u58f0\u660e \u987a\u5e8f \u4e0d\u540c \u3002 \u5f53 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u65f6 \uff0c \u4e0d\u8981 \u6df7\u6dc6 \u8f74 \u7684 \u65cb\u8f6c \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_126","text":"get _ forward _ vector ( self ) \u6839\u636e \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u6307\u5411 \u524d\u65b9 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D get _ right _ vector ( self ) \u6839\u636e \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u6307\u5411 \u53f3\u4fa7 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D get _ up _ vector ( self ) \u6839\u636e \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u6307\u5411 \u4e0a\u65b9 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de \uff1a carla . Vector3D","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_127","text":"__ eq __ ( self , other = carla . Rotation ) \u5982\u679c \u4e24\u4e2a \u65cb\u8f6c \u4ee3\u8868 \u6bcf\u4e2a \u8f74 \u7684 \u76f8\u540c \u65b9\u5411 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ ne __ ( self , other = carla . Rotation ) \u5982\u679c \u4e24\u4e2a \u65cb\u8f6c \u4ee3\u8868 \u6bcf\u4e2a \u8f74 \u7684 \u76f8\u540c \u65b9\u5411 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de \uff1a bool __ str __ ( self ) \u5c06 \u8f74 \u7684 \u65b9\u5411 \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlarssactorconstellationdata","text":"\u7531 RssSensor . register _ actor _ constellation _ callback ( ) \u6ce8\u518c \u7684 \u56de\u8c03 \u4e2d \u63d0\u4f9b \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002","title":"carla . RssActorConstellationData"},{"location":"python_api/#_128","text":"ego _ match _ object ( ad . map . match . Object ) \u81ea\u6211 \u6620\u5c04 \u5339\u914d \u4fe1\u606f \u3002 ego _ route ( ad . map . route . FullRoute ) \u81ea\u6211 \u8def\u7531 \u3002 ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u6001 \u3002 other _ match _ object ( ad . map . match . Object ) \u5176\u4ed6 \u5bf9\u8c61 \u7684 \u5730\u56fe \u5339\u914d \u4fe1\u606f \u3002 \u4ec5\u5f53 \u201c other _ actor \u201d \u4e0d\u662f \u201c None \u201d \u65f6 \u8fd9 \u624d \u6709\u6548 \u3002 other _ actor ( carla . Actor ) \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u67e5\u8be2 \u9ed8\u8ba4 \u53c2\u6570 \u6216 \u7c7b\u578b \u4e3a ad . rss . world . ObjectType . ArtificialObject \u4e14 \u6ca1\u6709 \u4e13\u7528 \u201c carla . Actor ' ( as e . g . for the road boundaries \u201d \u7684 \u4eba\u5de5 \u5bf9\u8c61 \uff08 \u4f8b\u5982 \u76ee\u524d \u7684 \u9053\u8def \u8fb9\u754c \uff09 \uff0c \u5219 \u4e3a \u201c None \u201d \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_129","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_130","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlarssactorconstellationresult","text":"\u5e94\u8be5 \u7531 RssSensor . register _ actor _ constellation _ callback ( ) \u6ce8\u518c \u7684 \u56de\u8c03 \u8fd4\u56de \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002","title":"carla . RssActorConstellationResult"},{"location":"python_api/#_131","text":"rss _ calculation _ mode ( ad . rss . map . RssMode ) \u8981 \u5e94\u7528 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8ba1\u7b97 \u6a21\u5f0f \u3002 restrict _ speed _ limit _ mode ( ad . rss . map . RestrictSpeedLimitMode ) \u9650\u901f \u6a21\u5f0f \u3002 ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) \u5c06 RSS \u52a8\u6001 \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u3002 actor _ object _ type ( ad . rss . world . ObjectType ) \u8981 \u7528\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 RSS \u5bf9\u8c61 \u7c7b\u578b \u3002 actor _ dynamics ( ad . rss . world . RssDynamics ) \u8981 \u5e94\u7528 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 RSS \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_132","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_133","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlarssegodynamicsonroute","text":"\u63cf\u8ff0 \u8f66\u8f86 \u72b6\u6001 \u7684 carla . RssResponse \u4e2d \u5305\u542b \u7684 \u90e8\u5206 \u6570\u636e \u3002 \u53c2\u6570 \u5305\u62ec \u5b83 \u5f53\u524d \u7684 \u52a8\u6001 \uff0c \u4ee5\u53ca \u5b83 \u5982\u4f55 \u6839\u636e \u76ee\u6807 \u8def\u7ebf \u524d\u8fdb \u3002","title":"carla . RssEgoDynamicsOnRoute"},{"location":"python_api/#_134","text":"ego _ speed ( ad . physics . Speed ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u3002 min _ stopping _ distance ( ad . physics . Distance ) \u5f53\u524d \u6700\u5c0f \u505c\u8f66 \u8ddd\u79bb \u3002 ego _ center ( ad . map . point . ENUPoint ) \u81ea\u6211 \u8f66\u8f86 \u88ab \u8003\u8651 \u7684 enu \u4f4d\u7f6e \u3002 ego _ heading ( ad . map . point . ENUHeading ) \u8003\u8651 \u7684 \u81ea\u6211 \u8f66\u8f86 \u7684 \u822a\u5411 \u3002 ego _ center _ within _ route ( bool ) \u8bf4\u660e \u81ea\u6211 \u8f66\u8f86 \u7684 \u4e2d\u5fc3 \u662f\u5426 \u5728 \u8def\u7ebf \u5185 \u3002 crossing _ border ( bool ) \u8bf4\u660e \u8f66\u8f86 \u662f\u5426 \u5df2\u7ecf \u8d8a\u8fc7 \u5176\u4e2d \u4e00\u4e2a \u8f66\u9053 \u8fb9\u754c \u3002 route _ heading ( ad . map . point . ENUHeading ) \u8def\u7ebf \u7684 \u8003\u8651 \u65b9\u5411 \u3002 route _ nominal _ center ( ad . map . point . ENUPoint ) \u5f53\u524d \u8def\u7ebf \u7684 \u540d\u4e49 \u4e2d\u5fc3 \u3002 heading _ diff ( ad . map . point . ENUHeading ) \u88ab \u8003\u8651 \u7684 \u65b9\u5411 \u504f\u79bb \u4e86 \u8def\u7ebf \u3002 route _ speed _ lat ( ad . physics . Speed ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u5206\u91cf lat \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 route _ speed _ lon ( ad . physics . Speed ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u5206\u91cf lon \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 route _ accel _ lat ( ad . physics . Acceleration ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lat \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 route _ accel _ lon ( ad . physics . Acceleration ) \u81ea\u6211 \u8f66\u8f86 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lon \u4e0e \u8def\u7ebf \u6709\u5173 \u3002 avg _ route _ accel _ lat ( ad . physics . Acceleration ) \u81ea\u6211 \u8f66 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lat \u4e0e \u7ecf\u8fc7 \u5e73\u5747 \u6ee4\u6ce2 \u5e73\u6ed1 \u7684 \u8def\u7ebf \u6709\u5173 \u3002 The ego vehicle ' s acceleration component lat regarding the route smoothened by an average filter . avg _ route _ accel _ lon ( ad . physics . Acceleration ) \u5bf9 \u7ecf\u8fc7 \u5e73\u5747 \u6ee4\u6ce2 \u5e73\u6ed1 \u7684 \u8def\u7ebf \u8fdb\u884c \u81ea \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u5206\u91cf lon \u5206\u6790 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_135","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_136","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlarssloglevel","text":"\u679a\u4e3e \u58f0\u660e \u4e2d \u4f7f\u7528 \u7684 carla . RssSensor \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002","title":"carla . RssLogLevel"},{"location":"python_api/#_137","text":"trace debug info warn err critical off","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlarssresponse","text":"\u4ece carla . SensorData \u7ee7\u627f \u5305\u542b c carla . RssSensor \u8f93\u51fa \u7684 \u7c7b \u3002 \u8fd9 \u662f \u5bf9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236 \u8f66\u8f86 \u6267\u884c \u7684 RSS \u8ba1\u7b97 \u7684 \u7ed3\u679c \u3002 carla . RssRestrictor \u5c06 \u4f7f\u7528 \u6570\u636e \u4fee\u6539 \u8f66\u8f86 \u7684 carla . VehicleControl \u3002","title":"carla . RssResponse"},{"location":"python_api/#_138","text":"response _ valid ( bool ) \u8bf4\u660e \u54cd\u5e94 \u662f\u5426 \u6709\u6548 \u3002 \u5982\u679c \u8ba1\u7b97 \u5931\u8d25 \u6216 \u53d1\u751f \u5f02\u5e38 \uff0c \u5219 \u4e3a False \u3002 proper _ response ( ad . rss . state . ProperResponse ) RSS \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \u3002 rss _ state _ snapshot ( ad . rss . state . RssStateSnapshot ) \u8be6\u7ec6 \u7684 RSS \u5728 \u5f53\u524d \u65f6\u523b \u7684 \u72b6\u6001 \u3002 ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002 world _ model ( ad . rss . world . WorldModel ) \u7528\u4e8e \u8ba1\u7b97 \u7684 \u4e16\u754c \u6a21\u578b \u3002 situation _ snapshot ( ad . rss . situation . SituationSnapshot ) \u4ece \u4e16\u754c \u6a21\u578b \u4e2d \u63d0\u53d6 \u7684 \u8be6\u7ec6 RSS \u60c5\u51b5 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_139","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_140","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlarssrestrictor","text":"\u8fd9\u4e9b \u5bf9\u8c61 \u5c06 \u9650\u5236 \u5e94\u7528 \u4e8e carla . VehicleControl \u3002 \u5b83 \u662f \u8d1f\u8d23 \u654f\u611f \u5b89\u5168 \u7684 C++ \u5e93 \u7684 Carla \u5b9e\u73b0 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u6b64\u7c7b \u4e0e rss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u534f\u540c \u540c\u5de5 \u5de5\u4f5c \u534f\u540c\u5de5\u4f5c \uff0c rss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u8981 \u5e94\u7528 \u7684 \u9650\u5236 \u7684 \u6570\u636e \u3002","title":"carla . RssRestrictor"},{"location":"python_api/#_141","text":"restrict _ vehicle _ control ( self , vehicle _ control , proper _ response , ego _ dynamics _ on _ route , vehicle _ physics ) \u5e94\u7528 carla . RssSensor \u5bf9 carla . VehicleControl \u7ed9\u51fa \u7684 \u5b89\u5168 \u9650\u5236 \u3002 \u53c2\u6570 \uff1a vehicle _ control ( carla . VehicleControl ) - \u8981 \u9650\u5236 \u7684 \u8f93\u5165 \u8f66\u8f86 \u63a7\u5236 \u3002 proper _ response ( ad . rss . state . ProperResponse ) - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ea7\u751f \u7684 \u90e8\u5206 \u54cd\u5e94 \u3002 \u5305\u542b \u9002\u7528 \u4e8e \u8f66\u8f86 \u52a0\u901f \u7684 \u9650\u5236 \u3002 ego _ dynamics _ on _ route ( carla . RssEgoDynamicsOnRoute ) - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ea7\u751f \u7684 \u90e8\u5206 \u54cd\u5e94 \u3002 \u5305\u542b \u6709\u5173 \u5176 \u8def\u7ebf \u7684 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u548c \u65b9\u5411 \u3002 vehicle _ physics ( carla . VehiclePhysicsControl ) - \u8f66\u8f86 \u7684 \u5f53\u524d \u7269\u7406 \u7279\u6027 \u3002 \u7528\u4e8e \u6b63\u786e \u5e94\u7528 \u9650\u5236 \u3002 \u8fd4\u56de : carla . VehicleControl","title":"\u65b9\u6cd5"},{"location":"python_api/#_142","text":"set _ log _ level ( self , log _ level ) \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 \u53c2\u6570 \uff1a log _ level ( carla . RssLogLevel ) - \u65b0 \u65e5\u5fd7 \u7ea7\u522b \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlarssroadboundariesmode","text":"carla . RssSensor \u4e2d \u4f7f\u7528 \u7684 \u679a\u4e3e \u58f0\u660e \uff0c \u7528\u4e8e \u542f\u7528 \u6216 \u7981\u7528 \u516c\u8def \u505c\u7559 \u529f\u80fd \u3002 \u800c\u8a00 \u603b\u800c\u8a00\u4e4b \uff0c \u6b64 \u529f\u80fd \u5c06 \u9053\u8def \u8fb9\u754c \u89c6\u4e3a \u865a\u62df \u5bf9\u8c61 \u3002 \u6700\u5c0f \u5b89\u5168 \u8ddd\u79bb \u68c0\u67e5 \u5e94\u7528 \u4e8e \u8fd9\u4e9b \u865a\u62df \u5899 \uff0c \u4ee5 \u786e\u4fdd \u8f66\u8f86 \u4e0d\u4f1a \u9a76\u79bb \u9053\u8def \u3002","title":"carla . RssRoadBoundariesMode"},{"location":"python_api/#_143","text":"On \u542f\u7528 \u201c \u505c\u7559 \u5728 \u8def\u4e0a \uff08 stay on road \uff09 \u201d \u529f\u80fd \u3002 Off \u7981\u7528 \u201c \u505c\u7559 \u5728 \u8def\u4e0a \uff08 stay on road \uff09 \u201d \u529f\u80fd \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlarsssensor","text":"\u4ece carla . Sensor \u7ee7\u627f \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5de5\u4f5c \u539f\u7406 \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \u3002 \u8bf7 \u67e5\u770b \u7279\u5b9a \u6587\u6863 \u548c rss \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \uff0c \u4ee5 \u5145\u5206 \u4e86\u89e3 \u5b83 \u3002 RSS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4e16\u754c \u4fe1\u606f \u548c RSS \u5e93 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u5b89\u5168 \u68c0\u67e5 \u5b89\u5168\u68c0\u67e5 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u7d22 \u5230 \u7684 \u8f93\u51fa \u662f carla . RssResponse \u3002 \u8fd9 \u5c06 \u7531 carla . RssRestrictor \u4f7f\u7528 \u3002 \u5728 \u5c06 \u5176 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u4e4b\u524d \u8fdb\u884c carla . VehicleControl \u3002","title":"carla . RssSensor"},{"location":"python_api/#_144","text":"ego _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) \u8bf4\u660e \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u56de\u8c03 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u8003\u8651 \u7684 \u81ea\u6211 \u8f66\u8f86 \u7684 RSS \u53c2\u6570 \u3002 other _ vehicle _ dynamics ( ad . rss . world . RssDynamics ) \u8bf4\u660e \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u56de\u8c03 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4e3a \u5176\u4f59 \u8f66\u8f86 \u8003\u8651 \u7684 RSS \u53c2\u6570 \u3002 pedestrian _ dynamics ( ad . rss . world . RssDynamics ) \u8bf4\u660e \u5982\u679c \u6ca1\u6709 \u6ce8\u518c \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u56de\u8c03 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u4e3a \u884c\u4eba \u8003\u8651 \u7684 RSS \u53c2\u6570 \u3002 road _ boundaries _ mode ( carla . RssRoadBoundariesMode ) \u5207\u6362 \u505c\u7559 \u5728 \u9053\u8def \u4e0a stay on road \u7684 \u529f\u80fd \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5904\u4e8e \u7981\u7528 \uff08 Off \uff09 \u72b6\u6001 \u3002 routing _ targets ( vector < carla . Transform > ) \u5f53\u524d \u8003\u8651 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u8def\u7531 \u7684 \u76ee\u6807 \u5217\u8868 \u3002 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u8def\u7531 \u76ee\u6807 \uff0c \u5219 \u968f\u673a \u751f\u6210 \u8def\u7531 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_145","text":"append _ routing _ target ( self , routing _ target ) \u5c06 \u65b0 \u7684 \u76ee\u6807 \u4f4d\u7f6e \u9644\u52a0 \u5230 \u8f66\u8f86 \u7684 \u5f53\u524d \u8def\u7ebf \u3002 \u53c2\u6570 \uff1a routing _ target ( carla . Transform ) - \u4e3a \u8def\u7ebf \u65b0\u5efa \u76ee\u6807 \u70b9 \u3002 \u5728 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u540e \u9009\u62e9 \u8fd9\u4e9b \u9009\u9879 \uff0c \u4ee5 \u5f3a\u5236 \u8def\u7ebf \u8f6c\u5f2f \u3002 drop _ route ( self ) \u653e\u5f03 \u5f53\u524d \u8def\u7531 \u3002 \u5982\u679c routing _ targets \u4e2d \u8fd8\u6709 \u76ee\u6807 \uff0c \u5219 \u4f7f\u7528 \u8fd9\u4e9b \u76ee\u6807 \u521b\u5efa \u65b0\u8def \u7531 \u3002 \u5426\u5219 \uff0c \u5c06 \u968f\u673a \u521b\u5efa \u65b0\u8def \u7531 \u3002 register _ actor _ constellation _ callback ( self , callback ) \u6ce8\u518c \u56de\u8c03 \u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 carla . RssActorConstellationResult \u3002 \u901a\u8fc7 \u6b64 \u56de\u8c03 \uff0c RSS \u53c2\u6570 \u7684 \u8bbe\u7f6e \u662f \u6839\u636e \u53c2\u4e0e \u53c2\u4e0e\u8005 constellation \u5b8c\u6210 \u7684 \uff0c \u5e76\u4e14 \u8bbe\u7f6e \uff08 ego _ vehicle _ dynamics , other _ vehicle _ dynamics and pedestrian _ dynamics \uff09 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 \uff1a callback - \u6bcf\u5f53 \u8981 \u8ba1\u7b97 RSS \u60c5\u51b5 \u65f6\u8981 \u8c03\u7528 \u7684 \u51fd\u6570 \u3002 reset _ routing _ targets ( self ) \u5220\u9664 \u5df2 \u9644\u52a0 \u5230 \u8def\u7531 \u7684 \u76ee\u6807 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_146","text":"set _ log _ level ( self , log _ level ) \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 \u53c2\u6570 \uff1a log _ level ( carla . RssLogLevel ) - \u65b0 \u7684 \u65e5\u5fd7 \u7ea7\u522b \u3002 set _ map _ log _ level ( self , log _ level ) \u8bbe\u7f6e \u65e5\u5fd7 \u65e5\u5fd7 \u7ea7\u522b \u3002 \u53c2\u6570 \uff1a log _ level ( carla . RssLogLevel ) - New map log level .","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_147","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlasemanticlidardetection","text":"carla . SemanticLidarMeasurement \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5176\u4e2d \u6bcf \u4e00\u4e2a \u90fd \u4ee3\u8868 \u4e91\u4e2d \u7684 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u53ca\u5176 \u4f4d\u7f6e \u3001 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3001 \u547d\u4e2d \u7269\u4f53 \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u8bb0 \u3002","title":"carla . SemanticLidarDetection"},{"location":"python_api/#_148","text":"point ( carla . Location - \u7c73 ) \u70b9 \u7684 [ x \uff0c y \uff0c z ] \u5750\u6807 \u3002 cos _ inc _ angle ( float ) \u5149\u7ebf \u4e0e \u88ab \u51fb\u4e2d \u7269\u4f53 \u6cd5\u7ebf \u4e4b\u95f4 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3002 object _ idx ( uint ) \u88ab \u5149\u7ebf \u51fb\u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 object _ tag ( uint ) \u88ab \u5149\u7ebf \u51fb\u4e2d \u90e8\u4ef6 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_149","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_150","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlasemanticlidarmeasurement","text":"\u4ece carla . SensorData \u7ee7\u627f \u8be5\u7c7b \u5b9a\u4e49 \u7531 sensor . lidar . ray _ cast _ semantic \u68c0\u7d22 \u7684 \u8bed\u4e49 LIDAR \u6570\u636e \u3002 \u8fd9 \u5b9e\u8d28 \u4e0a \u662f \u4f7f\u7528 \u5149\u7ebf \u6295\u5c04 \u6765 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5728 \u6b64 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"carla . SemanticLidarMeasurement"},{"location":"python_api/#_151","text":"channels ( int ) \u6fc0\u5149 \u53d1\u5c04 \u6b21\u6570 \u3002 horizontal _ angle ( float - radians ) \u6c34\u5e73 \u89d2\u5ea6 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5728 \u6d4b\u91cf \u65f6 \u65cb\u8f6c \u3002 raw _ data ( bytes ) \u6536\u5230 \u539f\u59cb \u68c0\u6d4b \u6d4b\u70b9 \u68c0\u6d4b\u70b9 \u5217\u8868 \u3002 \u6bcf\u4e2a \u70b9 \u7531 [ x \uff0c y \uff0c z ] \u5750\u6807 \u52a0\u4e0a \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \uff0c \u547d\u4e2d \u89d2\u8272 \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u8bb0 \u7ec4\u6210 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_152","text":"save _ to _ disk ( self , path ) \u5c06 \u70b9\u4e91 \u4fdd\u5b58 \u4e3a \u63cf\u8ff0 \u4e09\u7ef4 \u626b\u63cf \u626b\u63cf\u4eea \u6570\u636e \u7684 . ply \u6587\u4ef6 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u751f\u6210 \u7684 \u6587\u4ef6 \u53ef\u4ee5 \u5728 MeshLab \u4e2d \u4f7f\u7528 \uff0c MeshLab \u662f \u4e00\u4e2a \u7528\u4e8e \u5904\u7406 \u4e0a\u8ff0 \u6587\u4ef6 \u7684 \u5f00\u6e90 \u7cfb\u7edf \u3002 \u53ea \u9700 \u8003\u8651 \u5230 \u8f74 \u53ef\u80fd \u4e0e \u4e0d \u771f\u5b9e \u7684 \u5f15\u64ce \u4e0d\u540c \uff0c \u56e0\u6b64 \u9700\u8981 \u91cd\u65b0 \u5206\u914d \u91cd\u65b0\u5206\u914d \u3002 \u53c2\u6570 \uff1a path ( str )","title":"\u65b9\u6cd5"},{"location":"python_api/#_153","text":"get _ point _ count ( self , channel ) \u83b7\u53d6 \u6b64 \u5ea6\u91cf \u751f\u6210 \u7684 \u6309 \u901a\u9053 \u6392\u5e8f \u7684 \u70b9\u6570 \u3002 \u901a\u8fc7 \u901a\u9053 \u6392\u5e8f \u53ef\u4ee5 \u8bc6\u522b \u6bcf\u4e2a \u70b9 \u7684 \u539f\u59cb \u901a\u9053 \u3002 \u53c2\u6570 \uff1a channel ( int )","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_154","text":"__ getitem __ ( self , pos = int ) __ iter __ ( self ) Iterate over the carla . SemanticLidarDetection retrieved as data . __ len __ ( self ) __ setitem __ ( self , pos = int , detection = carla . SemanticLidarDetection ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlasensor","text":"\u4ece carla . Actor \u7ee7\u627f Sensors compound a specific family of actors quite diverse and unique . They are normally spawned as attachment / sons of a vehicle ( take a look at carla . World to learn about actor spawning ) . Sensors are thoroughly designed to retrieve different types of data that they are listening to . The data they receive is shaped as different subclasses inherited from carla . SensorData ( depending on the sensor ) . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary . All the information on their preferences and settlement can be found here , but the list of those available in CARLA so far goes as follow . Receive data on every tick . - depth camera . - Gnss sensor . - IMU sensor . - Lidar raycast . - SemanticLidar raycast . - Radar . - RGB camera . - RSS sensor . - Semantic Segmentation camera . Only receive data when triggered . - Collision detector . - Lane invasion detector . - Obstacle detector .","title":"carla . Sensor"},{"location":"python_api/#_155","text":"is _ listening ( boolean ) When True the sensor will be waiting for data .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_156","text":"is _ listening ( self ) Returns whether the sensor is in a listening state . is _ listening _ gbuffer ( self , gbuffer _ id ) Returns whether the sensor is in a listening state for a specific GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . listen _ to _ gbuffer ( self , gbuffer _ id , callback ) The function the sensor will be calling to every time the desired GBuffer texture is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the target Unreal Engine GBuffer texture . callback ( function ) - The called function with one argument containing the received GBuffer texture . stop ( self ) Commands the sensor to stop listening for data . stop _ gbuffer ( self , gbuffer _ id ) Commands the sensor to stop listening for the specified GBuffer texture . Parameters : gbuffer _ id ( carla . GBufferTextureID ) - The ID of the Unreal Engine GBuffer texture .","title":"\u65b9\u6cd5"},{"location":"python_api/#_157","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlasensordata","text":"Base class for all the objects containing data generated by a carla . Sensor . This objects should be the argument of the function said sensor is listening to , in order to work with them . Each of these sensors needs for a specific type of sensor data . Hereunder is a list of the sensors and their corresponding data . - Cameras ( RGB , depth and semantic segmentation ) : carla . Image . - Collision detector : carla . CollisionEvent . - GNSS sensor : carla . GnssMeasurement . - IMU sensor : carla . IMUMeasurement . - Lane invasion detector : carla . LaneInvasionEvent . - LIDAR sensor : carla . LidarMeasurement . - Obstacle detector : carla . ObstacleDetectionEvent . - Radar sensor : carla . RadarMeasurement . - RSS sensor : carla . RssResponse . - Semantic LIDAR sensor : carla . SemanticLidarMeasurement .","title":"carla . SensorData"},{"location":"python_api/#_158","text":"frame ( int ) Frame count when the data was generated . timestamp ( float - seconds ) Simulation - time when the data was generated . transform ( carla . Transform ) Sensor ' s transform when the data was generated .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlatexturecolor","text":"Class representing a texture object to be uploaded to the server . Pixel format is RGBA , uint8 per channel .","title":"carla . TextureColor"},{"location":"python_api/#_159","text":"width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_160","text":"__ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) \u8fd4\u56de : carla . Color set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . Color )","title":"\u65b9\u6cd5"},{"location":"python_api/#_161","text":"set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int )","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlatexturefloatcolor","text":"Class representing a texture object to be uploaded to the server . Pixel format is RGBA , float per channel .","title":"carla . TextureFloatColor"},{"location":"python_api/#_162","text":"width ( int ) X - coordinate size of the texture . height ( int ) Y - coordinate size of the texture .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_163","text":"__ init __ ( self , width , height ) Initializes a the texture with a ( width , height ) size . Parameters : width ( int ) height ( int ) get ( self , x , y ) Get the ( x , y ) pixel data . Parameters : x ( int ) y ( int ) \u8fd4\u56de : carla . FloatColor set ( self , x , y , value ) Sets the ( x , y ) pixel data with value . Parameters : x ( int ) y ( int ) value ( carla . FloatColor )","title":"\u65b9\u6cd5"},{"location":"python_api/#_164","text":"set _ dimensions ( self , width , height ) Resizes the texture to te specified dimensions . Parameters : width ( int ) height ( int )","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlatimestamp","text":"Class that contains time information for simulated data . This information is automatically retrieved as part of the carla . WorldSnapshot the client gets on every frame , but might also be used in many other situations such as a carla . Sensor retrieveing data .","title":"carla . Timestamp"},{"location":"python_api/#_165","text":"frame ( int ) The number of frames elapsed since the simulator was launched . elapsed _ seconds ( float - seconds ) Simulated seconds elapsed since the beginning of the current episode . delta _ seconds ( float - seconds ) Simulated seconds elapsed since the previous frame . platform _ timestamp ( float - seconds ) Time register of the frame at which this measurement was taken given by the OS in seconds .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_166","text":"__ init __ ( self , frame , elapsed _ seconds , delta _ seconds , platform _ timestamp ) Parameters : frame ( int ) elapsed _ seconds ( float - seconds ) delta _ seconds ( float - seconds ) platform _ timestamp ( float - seconds )","title":"\u65b9\u6cd5"},{"location":"python_api/#_167","text":"__ eq __ ( self , other = carla . Timestamp ) __ ne __ ( self , other = carla . Timestamp ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlatrafficlight","text":"\u4ece carla . TrafficSign \u7ee7\u627f A traffic light actor , considered a specific type of traffic sign . As traffic lights will mostly appear at junctions , they belong to a group which contains the different traffic lights in it . Inside the group , traffic lights are differenciated by their pole index . Within a group the state of traffic lights is changed in a cyclic pattern : one index is chosen and it spends a few seconds in green , yellow and eventually red . The rest of the traffic lights remain frozen in red this whole time , meaning that there is a gap in the last seconds of the cycle where all the traffic lights are red . However , the state of a traffic light can be changed manually .","title":"carla . TrafficLight"},{"location":"python_api/#_168","text":"state ( carla . TrafficLightState ) Current state of the traffic light .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_169","text":"freeze ( self , freeze ) Stops all the traffic lights in the scene at their current state . Parameters : freeze ( bool ) is _ frozen ( self ) The client returns True if a traffic light is frozen according to last tick . The method does not call the simulator . \u8fd4\u56de : bool reset _ group ( self ) Resets the state of the traffic lights of the group to the initial state at the start of the simulation . Note : This method calls the simulator .","title":"\u65b9\u6cd5"},{"location":"python_api/#_170","text":"get _ affected _ lane _ waypoints ( self ) Returns a list of waypoints indicating the positions and lanes where the traffic light is having an effect . \u8fd4\u56de : list ( carla . Waypoint ) get _ elapsed _ time ( self ) The client returns the time in seconds since current light state started according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds get _ green _ time ( self ) The client returns the time set for the traffic light to be green , according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds Setter : carla . TrafficLight . set _ green _ time get _ group _ traffic _ lights ( self ) Returns all traffic lights in the group this one belongs to . \u8fd4\u56de : list ( carla . TrafficLight ) Note : This method calls the simulator . get _ light _ boxes ( self ) Returns a list of the bounding boxes encapsulating each light box of the traffic light . \u8fd4\u56de : list ( carla . BoundingBox ) get _ opendrive _ id ( self ) Returns the OpenDRIVE id of this traffic light . \u8fd4\u56de : str get _ pole _ index ( self ) Returns the index of the pole that identifies it as part of the traffic light group of a junction . \u8fd4\u56de : int get _ red _ time ( self ) The client returns the time set for the traffic light to be red , according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds Setter : carla . TrafficLight . set _ red _ time get _ state ( self ) The client returns the state of the traffic light according to last tick . The method does not call the simulator . \u8fd4\u56de : carla . TrafficLightState Setter : carla . TrafficLight . set _ state get _ stop _ waypoints ( self ) Returns a list of waypoints indicating the stop position for the traffic light . These waypoints are computed from the trigger boxes of the traffic light that indicate where a vehicle should stop . \u8fd4\u56de : list ( carla . Waypoint ) get _ yellow _ time ( self ) The client returns the time set for the traffic light to be yellow , according to last tick . The method does not call the simulator . \u8fd4\u56de : float - seconds Setter : carla . TrafficLight . set _ yellow _ time","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_171","text":"set _ green _ time ( self , green _ time ) Parameters : green _ time ( float - seconds ) - Sets a given time for the green light to be active . \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ green _ time set _ red _ time ( self , red _ time ) Sets a given time for the red state to be active . Parameters : red _ time ( float - seconds ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ red _ time set _ state ( self , state ) snippet \u2192 Sets a given state to a traffic light actor . Parameters : state ( carla . TrafficLightState ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ state set _ yellow _ time ( self , yellow _ time ) Sets a given time for the yellow light to be active . Parameters : yellow _ time ( float - seconds ) \u83b7\u53d6 \u5668 : carla . TrafficLight . get _ yellow _ time","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_172","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlatrafficlightstate","text":"\u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u6240\u6709 \u53ef\u80fd \u72b6\u6001 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u5728 \u7279\u5b9a \u65f6\u95f4 \u6b65\u957f \u66f4\u6539 \u6216 \u624b\u52a8 \u66f4\u6539 \u3002 carla . TrafficLight . set _ state \u4e2d \u7684 \u7247\u6bb5 \u4f1a \u52a8\u6001 \u66f4\u6539 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002","title":"carla . TrafficLightState"},{"location":"python_api/#_173","text":"Red Yellow Green Off Unknown","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlatrafficmanager","text":"\u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u662f \u4e00\u4e2a \u7528 C++ \u6784\u5efa \u5728 CARLA API \u4e4b\u4e0a \u7684 \u6a21\u5757 \u3002 \u5b83 \u53ef\u4ee5 \u5904\u7406 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u7684 \u4efb\u4f55 \u8f66\u8f86 \u7ec4 \uff0c \u4ee5 \u73b0\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u586b\u5145 \u4eff\u771f \uff0c \u5e76 \u4e3a \u7528\u6237 \u63d0\u4f9b \u5b9a\u5236 \u67d0\u4e9b \u884c\u4e3a \u7684 \u673a\u4f1a \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u67b6\u6784 \u5206\u4e3a \u4e94\u4e2a \u4e0d\u540c \u7684 \u9762\u5411 \u76ee\u6807 \u7684 \u9636\u6bb5 \u548c \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4fe1\u606f \u5728 \u5176\u4e2d \u6d41\u52a8 \uff0c \u76f4\u5230 \u6700\u7ec8 \u5c06 carla . VehicleControl \u5e94\u7528 \u4e8e \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u4e2d \u6ce8\u518c \u7684 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8f86 \u3002 \u8981 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u8bbf\u95ee \u6709\u5173 \u6b64 \u6a21\u5757 \u7684 \u6587\u6863 \u3002","title":"carla . TrafficManager"},{"location":"python_api/#_174","text":"auto _ lane _ change ( self , actor , enable ) \u6253\u5f00 \u6216 \u5173\u95ed \u8f66\u8f86 \u7684 \u8f66\u9053 \u53d8\u6362 \u884c\u4e3a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u8bbe\u7f6e \u88ab \u66f4\u6539 \u7684 \u8f66\u8f86 \u3002 enable ( bool ) - True \u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5e76 \u542f\u7528 \u8f66\u9053 \u53d8\u66f4 \u3002 False \u5c06 \u7981\u7528 \u5b83\u4eec \u3002 collision _ detection ( self , reference _ actor , other _ actor , detect _ collision ) \u8c03\u6574 \u8f66\u8f86 \u4e0e \u53e6 \u4e00\u4e2a \u7279\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u4e3a\u4e86 \u5ffd\u7565 \u6240\u6709 \u5176\u4ed6 \u8f66\u8f86 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6216 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff0c \u8bf7 \u4f7f\u7528 \u540c \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e2d \u63cf\u8ff0 \u7684 \u7279\u5b9a ignore \u65b9\u6cd5 \u3002 \u53c2\u6570 : reference _ actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u78b0\u649e \u7684 \u8f66\u8f86 \u3002 other _ actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u4e0e \u4e4b \u53d1\u751f \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 reference _ actor \u3002 detect _ collision ( bool ) - True \u662f \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5e76 \u542f\u7528 \u78b0\u649e \u3002 False \u5c06 \u7981\u7528 \u5b83\u4eec \u3002 distance _ to _ leading _ vehicle ( self , actor , distance ) \u8bbe\u7f6e \u8f66\u8f86 \u5fc5\u987b \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u4fdd\u6301 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u4f1a \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 \u5b83 \u662f\u4ece \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u524d \u5230 \u540e \u8ba1\u7b97 \u7684 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u6b63\u5728 \u66f4\u6539 \u6700\u5c0f \u8ddd\u79bb \u7684 \u8f66\u8f86 \u3002 distance ( float - \u7c73 ) - \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u4e4b\u95f4 \u7684 \u7c73 \u3002 force _ lane _ change ( self , actor , direction ) \u5f3a\u5236 \u8f66\u8f86 \u6539\u53d8 \u5230 \u5176 \u5de6\u4fa7 \u6216 \u53f3\u4fa7 \u7684 \u8f66\u9053 \uff08 \u5982\u679c \u5b58\u5728 \uff09 \uff0c \u5982 \u4e2d \u6240\u793a direction \u3002 \u65e0\u8bba \u53d1\u751f \u4ec0\u4e48 \u60c5\u51b5 \uff0c \u8be5 \u65b9\u6cd5 \u90fd \u4f1a \u5e94\u7528 \u8f66\u9053 \u53d8\u6362 \uff0c \u800c \u5ffd\u7565 \u53ef\u80fd \u53d1\u751f \u7684 \u78b0\u649e \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u8f66\u8f86 \u88ab\u8feb \u6539\u53d8 \u8f66\u9053 \u3002 direction ( bool ) - \u76ee\u6807 \u8f66\u9053 \u3002 True \u662f \u53f3\u8fb9 \u7684 \uff0c False \u662f \u5de6\u8fb9 \u7684 \u3002 global _ lane _ offset ( self , offset ) \u8bbe\u7f6e \u8ddd \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u5168\u5c40 \u8f66\u9053 \u504f\u79fb \u4f4d\u79fb \u3002 \u6b63\u503c \u8868\u793a \u5411 \u53f3 \u504f\u79fb \uff0c \u8d1f\u503c \u8868\u793a \u5411 \u5de6 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0 \u3002 \u6570\u5b57 \u9ad8\u5230 \u8db3\u4ee5 \u5bfc\u81f4 \u8f66\u8f86 \u9a76\u8fc7 \u5176\u4ed6 \u8f66\u9053 \u53ef\u80fd \u4f1a \u635f\u574f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u53c2\u6570 : offset ( float ) - \u8f66\u9053 \u8ddd \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u504f\u79fb \u4f4d\u79fb \u3002 global _ percentage _ speed _ difference ( self , percentage ) \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u9884\u671f \u901f\u5ea6 \u4e0e\u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 \u5dee\u503c \u3002 \u901a\u8fc7 \u5c06 perc \u8bbe \u4e3a \u8d1f\u503c \u53ef\u4ee5 \u8d85\u51fa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 30 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u8d1f \u767e\u5206 \u767e\u5206\u6bd4 \u6765 \u8d85\u8fc7 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 \u53c2\u6570 : percentage ( float ) - \u9884\u671f \u901f\u5ea6 \u548c \u5f53\u524d \u9650\u5236 \u4e4b\u95f4 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u5dee\u5f02 \u3002 ignore _ lights _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u5ffd\u7565 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 perc ( float ) - 0 \u5230 100 \u4e4b\u95f4 \u3002 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 ignore _ signs _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u505c\u8f66 \u6807\u5fd7 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 perc ( float ) - 0 \u5230 100 \u4e4b\u95f4 \u3002 \u505c\u8f66 \u6807\u5fd7 \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 ignore _ vehicles _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u4e00\u4e2a \u8f66\u8f86 \u5ffd\u7565 \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u78b0\u649e \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u5176\u4ed6 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u3002 perc ( float ) - Between 0 and 100 . 0 \u5230 100 \u4e4b\u95f4 \u3002 \u78b0\u649e \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 ignore _ walkers _ percentage ( self , actor , perc ) \u5728 \u6bcf \u5e27 \u8fd0\u884c \u7684 \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u5ffd\u7565 \u4e0e \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u78b0\u649e \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5c06 \u5ffd\u7565 \u573a\u666f \u4e2d \u884c\u4eba \u7684 \u8f66\u8f86 \u3002 perc ( float ) - Between 0 and 100 . 0 \u5230 100 \u4e4b\u95f4 \u3002 \u78b0\u649e \u88ab \u5ffd\u7565 \u7684 \u6b21\u6570 \u3002 keep _ right _ rule _ percentage ( self , actor , perc ) \u5728 \u5b9a\u4f4d \u9636\u6bb5 \uff0c \u6b64 \u65b9\u6cd5 \u8bbe\u7f6e \u8f66\u8f86 \u9075\u5faa \u9760\u53f3 \u89c4\u5219 \u5e76 \u7559\u5728 \u53f3\u4fa7 \u8f66\u9053 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u673a\u4f1a \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u6b63\u5728 \u6539\u53d8 \u884c\u4e3a \u7684 \u8f66\u8f86 \u3002 perc ( float ) - Between 0 and 100 . 0 \u5230 100 \u4e4b\u95f4 \u3002 \u8f66\u8f86 \u9075\u5faa \u9760\u53f3 \u89c4\u5219 \u7684 \u6b21\u6570 \u3002 random _ left _ lanechange _ percentage ( self , actor , percentage ) \u8c03\u6574 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \u6267\u884c \u5de6\u53d8 \u9053 \u7684 \u6982\u7387 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u53d8\u9053 \u53ef\u7528 \u53ef\u7528\u6027 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 percentage ( float ) - \u6362\u9053 \u6982\u7387 \uff0c \u4ee5 \u767e\u5206 \u767e\u5206\u6bd4 \u4e3a \u5355\u4f4d \uff08 0 \u5230 100 \u4e4b\u95f4 \uff09 \u3002 random _ right _ lanechange _ percentage ( self , actor , percentage ) \u8c03\u6574 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65 \u6267\u884c \u53f3\u53d8 \u9053 \u7684 \u6982\u7387 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u53d8\u9053 \u53ef\u7528 \u53ef\u7528\u6027 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 percentage ( float ) - \u6362\u9053 \u6982\u7387 \uff0c \u4ee5 \u767e\u5206 \u767e\u5206\u6bd4 \u4e3a \u5355\u4f4d \uff08 0 \u5230 100 \u4e4b\u95f4 \uff09 \u3002 shut _ down ( self ) \u5173\u95ed \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 update _ vehicle _ lights ( self , actor , do _ update ) \u8bbe\u7f6e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u662f\u5426 \u8d1f\u8d23 \u66f4\u65b0 \u8f66\u706f \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4e0d\u4f1a \u66f4\u6539 \u8f66\u8f86 \u7684 \u8f66\u706f \u72b6\u6001 \uff0c \u9664\u975e \u5176 auto _ update _ status \u8bbe \u4e3a True \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5176 \u706f\u5149 \u72b6\u6001 \u6b63\u5728 \u66f4\u6539 \u7684 \u8f66\u8f86 \u3002 do _ update ( bool ) - \u5982\u679c \u4e3a True \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u7ba1\u7406 \u6307\u5b9a \u8f66\u8f86 \u7684 \u8f66\u706f \u3002 vehicle _ lane _ offset ( self , actor , offset ) \u8bbe\u7f6e \u76f8\u5bf9 \u4e8e \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u8f66\u9053 \u504f\u79fb \u4f4d\u79fb \u3002 \u6b63\u503c \u8868\u793a \u5411 \u53f3 \u504f\u79fb \uff0c \u8d1f\u503c \u8868\u793a \u5411 \u5de6 \u504f\u79fb \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0 \u3002 \u6570\u5b57 \u9ad8\u5230 \u8db3\u4ee5 \u5bfc\u81f4 \u8f66\u8f86 \u9a76\u8fc7 \u5176\u4ed6 \u8f66\u9053 \u53ef\u80fd \u4f1a \u635f\u574f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u8f66\u9053 \u504f\u79fb \u884c\u4e3a \u6b63\u5728 \u66f4\u6539 \u7684 \u8f66\u8f86 \u3002 offset ( float ) - \u8f66\u9053 \u8ddd \u4e2d\u5fc3 \u4e2d\u5fc3\u7ebf \u7684 \u504f\u79fb \u4f4d\u79fb \u3002 vehicle _ percentage _ speed _ difference ( self , actor , percentage ) \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u9884\u671f \u901f\u5ea6 \u4e0e\u5176 \u5f53\u524d \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u7684 \u5dee\u503c \u3002 \u901a\u8fc7 \u5c06 perc \u8bbe \u4e3a \u8d1f\u503c \u53ef\u4ee5 \u8d85\u51fa \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 30 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u8d1f \u767e\u5206 \u767e\u5206\u6bd4 \u6765 \u8d85\u8fc7 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u901f\u5ea6 \u884c\u4e3a \u6b63\u5728 \u6539\u53d8 \u7684 \u8f66\u8f86 \u3002 percentage ( float ) - \u9884\u671f \u901f\u5ea6 \u548c \u5f53\u524d \u9650\u5236 \u4e4b\u95f4 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u5dee\u5f02 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_175","text":"get _ all _ actions ( self , actor ) \u8fd4\u56de \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5728 \u540e\u7eed \u6b65\u9aa4 \u4e2d \u6267\u884c \u7684 \u6240\u6709 \u5df2\u77e5 \u64cd\u4f5c \uff08 \u5373 \u9053\u8def \u9009\u9879 \u548c \u8def\u5f84 \u70b9 \uff09 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de : \u6bcf\u4e2a \u5143\u7d20 \u7684 \u5217\u8868 \u5217\u8868 \u5982\u4e0b - [ \u9053\u8def \u9009\u9879 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 \u201c \u5de6 \u201d \u3001 \u201c \u53f3 \u201d \u3001 \u201c \u76f4 \u201d \uff09 \u3001 \u4e0b \u4e00\u4e2a \u822a\u70b9 ( carla . Waypoint ) ] get _ next _ action ( self , actor ) \u8fd4\u56de \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u9075\u5faa \u7684 \u4e0b \u4e00\u4e2a \u5df2\u77e5 \u9053\u8def \u9009\u9879 \u548c \u8def\u5f84 \u70b9 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u60a8 \u8981 \u67e5\u8be2 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de : \u4e24\u4e2a \u5143\u7d20 \u7684 \u5217\u8868 - [ \u9053\u8def \u9009\u9879 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u4f8b\u5982 \u201c \u5de6 \u201d \u3001 \u201c \u53f3 \u201d \u3001 \u201c \u76f4 \u201d \uff09 \u3001 \u4e0b \u4e00\u4e2a \u822a\u70b9 ( carla . Waypoint ) ] get _ port ( self ) \u8fd4\u56de \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8fde\u63a5 \u7684 \u7aef\u53e3 \u3002 \u5982\u679c \u8be5 \u5bf9\u8c61 \u662f TM - Client \uff0c \u5b83 \u5c06 \u8fd4\u56de \u5176 TM - Server \u7684 \u7aef\u53e3 \u3002 \u9605\u8bfb \u6587\u6863 \u4ee5 \u4e86\u89e3 \u5176\u4e2d \u7684 \u5dee\u5f02 \u3002 \u8fd4\u56de : uint16","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_176","text":"set _ boundaries _ respawn _ dormant _ vehicles ( self , lower _ bound = 25.0 , upper _ bound = actor _ active _ distance ) \u8bbe\u7f6e \u8981 \u5728 \u82f1\u96c4 \u8f66\u8f86 \u9644\u8fd1 \u91cd\u751f \u7684 \u4f11\u7720 \u89d2\u8272 \u7684 \u4e0a\u9650 \u548c \u4e0b\u9650 \u3002 \u53c2\u6570 : lower _ bound ( float ) - \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \u65f6\u8ddd \u82f1\u96c4 \u8f66\u8f86 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 upper _ bound ( float ) - \u4f11\u7720 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u91cd\u751f \u65f6\u8ddd \u82f1\u96c4 \u8f66\u8f86 \u7684 \u6700\u5927 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8b66\u544a : upper _ bound \u4e0d\u80fd \u9ad8\u4e8e actor _ active _ distance \u3002 lower _ bound \u4e0d\u80fd \u5c0f\u4e8e 25 \u3002 set _ desired _ speed ( self , actor , speed ) \u5c06 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u8bbe\u7f6e \u4e3a \u6307\u5b9a \u503c \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u901f\u5ea6 \u6b63\u5728 \u6539\u53d8 \u7684 \u8f66\u8f86 \u3002 speed ( float ) - \u8f66\u8f86 \u79fb\u52a8 \u6240 \u9700 \u7684 \u901f\u5ea6 \u3002 set _ global _ distance _ to _ leading _ vehicle ( self , distance ) \u8bbe\u7f6e \u8f66\u8f86 \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u5fc5\u987b \u4fdd\u6301 \u7684 \u6700\u5c0f \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u4f1a \u5f71\u54cd \u6700\u5c0f \u79fb\u52a8 \u8ddd\u79bb \u3002 \u5b83 \u662f\u4ece \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u4e2d\u5fc3 \u5230 \u4e2d\u5fc3 \u8ba1\u7b97 \u7684 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u8f66\u8f86 \u4e4b\u95f4 \u7684 \u7c73\u6570 \u3002 set _ hybrid _ physics _ mode ( self , enabled = False ) \u542f\u7528 \u6216 \u7981\u7528 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u3002 \u5728 \u6b64 \u6a21\u5f0f \u4e0b \uff0c \u8ddd\u79bb \u81ea\u8eab \u8f66\u8f86 \u8d85\u8fc7 \u4e00\u5b9a \u534a\u5f84 \u7684 \u8f66\u8f86 \u5c06 \u7981\u7528 \u5176 \u7269\u7406 \u529f\u80fd \u3002 \u901a\u8fc7 \u4e0d \u8ba1\u7b97 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5c06 \u964d\u4f4e \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u3002 \u8f66\u8f86 \u5c06 \u88ab \u4f20\u9001 \u3002 \u53c2\u6570 : enabled ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u6df7\u5408 \u7269\u7406 \u3002 set _ hybrid _ physics _ radius ( self , r = 50.0 ) \u542f\u7528 \u6df7\u5408 \u7269\u7406 \u529f\u80fd \u540e \uff0c \u66f4\u6539 \u542f\u7528 \u7269\u7406 \u529f\u80fd \u7684 \u5f71\u54cd \u533a\u57df \u7684 \u534a\u5f84 \u3002 \u53c2\u6570 : r ( float - \u7c73 ) - \u542f\u7528 \u7269\u7406 \u7684 \u65b0 \u534a\u5f84 \u3002 set _ osm _ mode ( self , mode _ switch = True ) \u542f\u7528 \u6216 \u7981\u7528 OSM \u6a21\u5f0f \u3002 \u8be5 \u6a21\u5f0f \u5141\u8bb8 \u7528\u6237 \u5728 \u4f7f\u7528 OSM \u529f\u80fd \u521b\u5efa \u7684 \u5730\u56fe \u4e2d \u8fd0\u884c TM \u3002 \u8fd9\u4e9b \u5730\u56fe \u5141\u8bb8 \u6709 \u80e1\u540c \u6b7b\u80e1\u540c \u3002 \u901a\u5e38 \uff0c \u5982\u679c \u8f66\u8f86 \u65e0\u6cd5 \u627e\u5230 \u4e0b \u4e00\u4e2a \u822a\u8def \u70b9 \uff0c \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c31 \u4f1a \u5d29\u6e83 \u3002 \u5982\u679c \u542f\u7528 OSM \u6a21\u5f0f \uff0c \u5b83 \u5c06 \u663e\u793a \u8b66\u544a \uff0c \u5e76 \u5728 \u5fc5\u8981 \u65f6 \u6467\u6bc1 \u8f66\u8f86 \u3002 \u53c2\u6570 : mode _ switch ( bool ) - \u5982\u679c True \uff0c \u5219 \u542f\u7528 OSM \u6a21\u5f0f \u3002 set _ path ( self , actor , path ) \u8bbe\u7f6e \u8f66\u8f86 \u5728 \u53d7 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u63a7\u5236 \u65f6\u8981 \u9075\u5faa \u7684 \u4f4d\u7f6e \u5217\u8868 \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5fc5\u987b \u9075\u5faa \u7ed9\u5b9a \u8def\u5f84 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 path ( list ) - carla . Locations \u7684 \u5217\u8868 \uff0c \u4f9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8ddf\u968f \u3002 \u8b66\u544a : \u786e\u4fdd \u9053\u8def \u62d3\u6251 \u4e0d\u4f1a \u59a8\u788d \u7ed9\u5b9a \u8def\u5f84 \u3002 set _ random _ device _ seed ( self , value ) \u4e3a \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u968f\u673a \u79cd\u5b50 \uff0c \u4ece\u800c \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \u3002 \u53c2\u6570 : value ( int ) - \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u7684 \u79cd\u5b50 \u503c \u3002 set _ respawn _ dormant _ vehicles ( self , mode _ switch = False ) \u5982\u679c \u4e3a True \uff0c \u5927 \u5730\u56fe \u4e2d \u7684 \u8f66\u8f86 \u5728 \u4f11\u7720 \u65f6\u4f1a \u5728 \u82f1\u96c4 \u8f66\u8f86 \u9644\u8fd1 \u91cd\u751f \u3002 \u5426\u5219 \uff0c \u5b83\u4eec \u5c06 \u4fdd\u6301 \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u76f4\u5230 actor _ active _ distance \u518d\u6b21 \u8fdb\u5165 \u82f1\u96c4 \u8f66\u8f86 \u3002 \u53c2\u6570 : mode _ switch ( bool ) set _ route ( self , actor , path ) \u8bbe\u7f6e \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u8f66\u8f86 \u8981 \u9075\u5faa \u7684 \u8def\u7ebf \u6307\u4ee4 \u5217\u8868 \u3002 \u53ef\u80fd \u7684 \u8def\u7ebf \u6307\u4ee4 \u662f ' Left ' , ' Right ' , ' Straight ' \u3002 \u53c2\u6570 : actor ( carla . Actor ) - \u5fc5\u987b \u9075\u5faa \u7ed9\u5b9a \u8def\u7ebf \u6307\u793a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 path ( list ) - \u8f66\u8f86 \u8981 \u9075\u5faa \u7684 \u8def\u7ebf \u6307\u4ee4 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff09 \u5217\u8868 \u3002 \u8b66\u544a : \u786e\u4fdd \u8f66\u9053 \u62d3\u6251 \u4e0d\u4f1a \u59a8\u788d \u7ed9\u5b9a \u8def\u7ebf \u3002 set _ synchronous _ mode ( self , mode _ switch = True ) \u5c06 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u5728 \u591a \u5ba2\u6237 \u5ba2\u6237\u7aef \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 TM - Server \u53ef\u4ee5 \u8fd0\u884c \u3002 \u7c7b\u4f3c \u5730 \uff0c \u5728 \u591a TM \u60c5\u51b5 \u4e0b \uff0c \u53ea\u6709 \u4e00\u4e2a TM - Server \u5fc5\u987b \u52fe\u9009 \u3002 \u5728 \u8fdb\u884c \u4e16\u754c \u52fe\u9009 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u4f7f\u7528 \u6b64 \u65b9\u6cd5 \uff0c \u5e76 \u5728 \u5c06 \u4e16\u754c \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u540e \u7acb\u5373 \u8bbe\u7f6e \u540c\u6b65 \u65f6 \u54ea\u4e2a TM \u5c06 \u6210\u4e3a \u4e3b \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u53c2\u6570 : mode _ switch ( bool ) - \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u540c\u6b65 \u6a21\u5f0f \u3002 \u8b66\u544a : \u5982\u679c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u6267\u884c \u6807\u8bb0 \u7684 \u540c\u4e00 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u7684 TM \u4e5f \u5fc5\u987b \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#carlatrafficsign","text":"\u4ece carla . Actor \u7ee7\u627f \u4eff\u771f \u4e2d \u51fa\u73b0 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff08 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u9664\u5916 \uff09 \u3002 \u8fd9\u4e9b \u5728 carla . TrafficLight \u4e2d\u6709 \u81ea\u5df1 \u7684 \u7c7b \u4ece \u8be5\u7c7b \u7ee7\u627f \u3002 \u76ee\u524d \uff0c \u4e3b\u8981 \u5b9e\u65bd \u7684 \u662f \u901f\u5ea6 \u6807\u5fd7 \u3001 \u505c\u9760 \u505c\u9760\u7ad9 \u548c \u8ba9 \u884c \u6807\u5fd7 \uff0c \u4f46 \u8fd8\u6709 \u8bb8\u591a \u5176\u4ed6 \u6807\u5fd7 \u4e5f \u88ab \u7262\u8bb0 \u7262\u8bb0\u5728\u5fc3 \u3002","title":"carla . TrafficSign"},{"location":"python_api/#_177","text":"trigger _ volume \u4f4d\u4e8e \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u9644\u8fd1 \u7684 carla . BoundingBox \uff0c \u91cc\u9762 \u7684 carla . Actor \u53ef\u4ee5 \u77e5\u9053 \u5b83 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlatransform","text":"\u8be5\u7c7b \u5b9a\u4e49 \u4e86 \u4e00\u4e2a \u53d8\u6362 \uff0c \u5373 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u7684 \u7ec4\u5408 \uff0c \u800c \u4e0d \u8fdb\u884c \u7f29\u653e \u3002","title":"carla . Transform"},{"location":"python_api/#_178","text":"location ( carla . Location ) \u63cf\u8ff0 \u5750\u6807 \u7cfb\u7edf \u4e2d \u7684 \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 rotation ( carla . Rotation - degrees ( pitch , yaw , roll ) ) \u63cf\u8ff0 \u6839\u636e \u865a\u5e7b \u5f15\u64ce \u7684 \u8f74 \u7cfb\u7edf \u8fdb\u884c \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_179","text":"__ init __ ( self , location , rotation ) \u53c2\u6570 : location ( carla . Location ) rotation ( carla . Rotation - \u5ea6\u6570 \uff08 \u4fef\u4ef0 \u3001 \u504f\u822a \u3001 \u7ffb\u6eda \uff09 ) transform ( self , in _ point ) \u4f7f\u7528 \u5f53\u524d \u53d8\u6362 \u4f5c\u4e3a \u53c2\u8003 \u53c2\u8003\u7cfb \u5c06 \u4e09\u7ef4 \u70b9 \u4ece \u5c40\u90e8 \u5750\u6807 \u8f6c\u6362 \u4e3a \u5168\u5c40 \u5750\u6807 \u3002 \u53c2\u6570 : in _ point ( carla . Location ) - \u5c06 \u5e94\u7528 \u53d8\u6362 \u7684 \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u3002 transform _ vector ( self , in _ vector ) \u4f7f\u7528 \u5f53\u524d \u53d8\u6362 \u4f5c\u4e3a \u53c2\u8003 \u53c2\u8003\u7cfb \u6765 \u65cb\u8f6c \u5411\u91cf \uff0c \u800c \u4e0d \u5e94\u7528 \u5e73\u79fb \u3002 \u4f8b\u5982 \uff0c \u7528 \u5b83 \u6765 \u53d8\u6362 \u901f\u5ea6 \u3002 \u53c2\u6570 : in _ vector ( carla . Vector3D ) - \u5c06 \u5e94\u7528 \u8f6c\u6362 \u7684 \u5411\u91cf \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_180","text":"get _ forward _ vector ( self ) \u4f7f\u7528 \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u524d\u5411 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D get _ inverse _ matrix ( self ) \u8ba1\u7b97 \u9006\u53d8 \u53d8\u6362 \u9006\u53d8\u6362 \u7684 4 \u77e9\u9635 \u8868\u793a \u3002 \u8fd4\u56de : list ( list ( float ) ) get _ matrix ( self ) \u8ba1\u7b97 \u53d8\u6362 \u7684 4 \u77e9\u9635 \u8868\u793a \u3002 \u8fd4\u56de : list ( list ( float ) ) get _ right _ vector ( self ) \u4f7f\u7528 \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u53f3 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D get _ up _ vector ( self ) \u4f7f\u7528 \u5bf9\u8c61 \u7684 \u65cb\u8f6c \u8ba1\u7b97 \u5411\u4e0a \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_181","text":"__ eq __ ( self , other = carla . Transform ) \u5982\u679c this \u548c other \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u90fd \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ ne __ ( self , other = carla . Transform ) \u5982\u679c this \u548c other \u7684 \u4efb\u4f55 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u4e0d \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u5c06 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002 \u8fd4\u56de : str","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlavector2d","text":"\u6267\u884c \u4e8c\u7ef4 \u64cd\u4f5c \u7684 \u8f85\u52a9 \u7c7b \u3002","title":"carla . Vector2D"},{"location":"python_api/#_182","text":"x ( float ) X - axis value . y ( float ) Y - axis value .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_183","text":"__ init __ ( self , x = 0.0 , y = 0.0 ) \u53c2\u6570 : x ( float ) y ( float ) length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de : float make _ unit _ vector ( self ) \u8fd4\u56de \u5177\u6709 \u76f8\u540c \u65b9\u5411 \u548c \u5355\u4f4d \u957f\u5ea6 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D squared _ length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u5e73\u65b9 \u957f\u5ea6 \u3002 \u8fd4\u56de : float","title":"\u65b9\u6cd5"},{"location":"python_api/#_184","text":"__ add __ ( self , other = carla . Vector2D ) __ eq __ ( self , other = carla . Vector2D ) \u5982\u679c \u6bcf\u4e2a \u8f74 \u7684 \u503c \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ mul __ ( self , other = carla . Vector2D ) __ ne __ ( self , bool = carla . Vector2D ) \u5982\u679c \u4efb\u4f55 \u8f74 \u7684 \u503c \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u8fd4\u56de \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 \u5411\u91cf \u7684 \u8f74\u503c \u3002 \u8fd4\u56de : str __ sub __ ( self , other = carla . Vector2D ) __ truediv __ ( self , other = carla . Vector2D )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlavector3d","text":"\u6267\u884c \u4e09\u7ef4 \u64cd\u4f5c \u7684 \u8f85\u52a9 \u7c7b \u3002","title":"carla . Vector3D"},{"location":"python_api/#_185","text":"x ( float ) X - axis value . y ( float ) Y - axis value . z ( float ) Z - axis value .","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_186","text":"__ init __ ( self , x = 0.0 , y = 0.0 , z = 0.0 ) \u53c2\u6570 : x ( float ) y ( float ) z ( float ) cross ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u53c9\u79ef \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : carla . Vector3D distance ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float distance _ 2d ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u4e8c\u7ef4 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float distance _ squared ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u5e73\u65b9 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float distance _ squared _ 2d ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u4e8c\u7ef4 \u5e73\u65b9 \u8ddd\u79bb \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float dot ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u70b9\u79ef \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float dot _ 2d ( self , vector ) \u8ba1\u7b97 \u4e24\u4e2a \u5411\u91cf \u4e4b\u95f4 \u7684 \u4e8c\u7ef4 \u70b9\u79ef \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u957f\u5ea6 \u3002 \u8fd4\u56de : float make _ unit _ vector ( self ) \u8fd4\u56de \u5177\u6709 \u76f8\u540c \u65b9\u5411 \u548c \u5355\u4f4d \u957f\u5ea6 \u7684 \u5411\u91cf \u3002 \u8fd4\u56de : carla . Vector3D squared _ length ( self ) \u8ba1\u7b97 \u5411\u91cf \u7684 \u5e73\u65b9 \u957f\u5ea6 \u3002 \u8fd4\u56de : float","title":"\u65b9\u6cd5"},{"location":"python_api/#_187","text":"get _ vector _ angle ( self , vector ) \u8ba1\u7b97 \u4e00\u5bf9 \u4e09\u7ef4 \u5411\u91cf \u4e4b\u95f4 \u7684 \u89d2\u5ea6 \uff08 \u4ee5 \u5f27\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 \u53c2\u6570 : vector ( carla . Vector3D ) \u8fd4\u56de : float","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_188","text":"__ abs __ ( self ) \u8fd4\u56de \u5177\u6709 x \u3001 y \u548c z \u5206\u91cf \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 Vector3D \u3002 \u8fd4\u56de : carla . Vector3D __ add __ ( self , other = carla . Vector3D ) __ eq __ ( self , other = carla . Vector3D ) \u5982\u679c \u6bcf\u4e2a \u8f74 \u7684 \u503c \u76f8\u7b49 \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ mul __ ( self , other = carla . Vector3D ) __ ne __ ( self , other = carla . Vector3D ) \u5982\u679c \u4efb\u4f55 \u8f74 \u7684 \u503c \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u8fd4\u56de \u89e3\u6790 \u4e3a \u5b57\u7b26 \u5b57\u7b26\u4e32 \u7684 \u5411\u91cf \u7684 \u8f74\u503c \u3002 \u8fd4\u56de : str __ sub __ ( self , other = carla . Vector3D ) __ truediv __ ( self , other = carla . Vector3D )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlavehicle","text":"\u4ece carla . Actor \u7ee7\u627f CARLA \u4e2d \u6700 \u91cd\u8981 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7fa4\u4f53 \u4e4b\u4e00 \u3002 \u5176\u4e2d \u5305\u62ec \u4ece \u6c7d\u8f66 \u5230 \u5361\u8f66 \u3001 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3001 \u8d27\u8f66 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u4ee5\u53ca \u8b66\u8f66 \u7b49 \u5b98\u65b9 \u8f66\u8f86 \u3002 carla . BlueprintLibrary \u4e2d \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5e7f\u6cdb \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5 \u6ee1\u8db3 \u4e0d\u540c \u7684 \u9700\u6c42 \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u624b\u52a8 \u63a7\u5236 \uff0c \u4e5f \u53ef\u4ee5 \u8bbe\u7f6e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \uff0c \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fdb\u884c \u63a7\u5236 \u3002","title":"carla . Vehicle"},{"location":"python_api/#_189","text":"bounding _ box ( carla . BoundingBox ) \u5305\u542b \u8f66\u8f86 \u51e0\u4f55 \u5f62\u72b6 \u7684 \u8fb9\u754c \u6846 \u3002 \u5b83 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u662f \u76f8\u5bf9 \u4e8e \u5b83 \u6240 \u9644\u7740 \u7684 \u8f66\u8f86 \u800c\u8a00 \u7684 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_190","text":"apply _ ackermann _ control ( self , control ) \u5728 \u4e0b \u4e00\u4e2a \u523b\u5ea6 \u5904 \u5e94\u7528 \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u5bf9\u8c61 \u3002 \u53c2\u6570 : control ( carla . VehicleAckermannControl ) apply _ ackermann _ controller _ settings ( self , settings ) \u5728 \u4e0b \u4e00\u4e2a tick \u4e2d\u5c06 \u65b0 \u7684 \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u8bbe\u7f6e \u5e94\u7528 \u4e8e \u6b64 \u8f66\u8f86 \u3002 \u53c2\u6570 : settings ( carla . AckermannControllerSettings ) \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 apply _ control ( self , control ) \u5728 \u4e0b \u4e00\u4e2a tick \u4e0a \u5e94\u7528 \u63a7\u5236 \u5bf9\u8c61 \uff0c \u5176\u4e2d \u5305\u542b \u6cb9\u95e8 \u3001 \u8f6c\u5411 \u6216 \u6362\u6863 \u7b49 \u9a7e\u9a76 \u53c2\u6570 \u3002 \u53c2\u6570 : control ( carla . VehicleControl ) apply _ physics _ control ( self , physics _ control ) \u5728 \u4e0b \u4e00\u4e2a tick \u4e2d \u5e94\u7528 \u7269\u7406 \u63a7\u5236 \u5bf9\u8c61 \uff0c \u5176\u4e2d \u5305\u542b \u5c06 \u8f66\u8f86 \u5b9a\u4e49 \u4e3a \u5b9e\u4f53 \u7684 \u53c2\u6570 \u3002 \u4f8b\u5982 \uff1a \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3001 \u8d28\u91cf \u3001 \u963b\u529b \u7cfb\u6570 \u7b49\u7b49 \u3002 \u53c2\u6570 : physics _ control ( carla . VehiclePhysicsControl ) close _ door ( self , door _ idx ) \u5982\u679c \u8f66\u8f86 \u6709 \u5b83 \uff0c \u5219 \u5173\u95ed \u8f66\u95e8 door _ idx \u3002 \u4f7f\u7528 carla . VehicleDoor . All \u5173\u95ed \u6240\u6709 \u53ef\u7528 \u7684 \u95e8 \u3002 \u53c2\u6570 : door _ idx ( carla . VehicleDoor ) - \u95e8 \u7d22\u5f15 \u3002 enable _ carsim ( self , simfile _ path ) \u4e3a \u8be5 \u7279\u5b9a \u8f66\u8f86 \u542f\u7528 CarSim \u7269 \u7406\u89e3 \u7b97\u5668 \u3002 \u4e3a\u4e86 \u4f7f\u6b64 \u529f\u80fd \u53d1\u6325 \u4f5c\u7528 \u53d1\u6325\u4f5c\u7528 \uff0c \u9700\u8981 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u8fd0\u884c \u6709\u6548 \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u3002 \u63a7\u5236 \u8f93\u5165 \u88ab \u5b9a\u5411 \u91cd\u5b9a\u5411 \u5230 CarSim \uff0c \u5b83 \u5c06 \u63d0\u4f9b \u6bcf \u4e00\u5e27 \u7684 \u8f66\u8f86 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u53c2\u6570 : simfile _ path ( str ) - \u5305\u542b \u4eff\u771f \u53c2\u6570 \u7684 . simfile \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 enable _ chrono _ physics ( self , max _ substeps , max _ substep _ delta _ time , vehicle _ json , powertrain _ json , tire _ json , base _ json _ path ) \u5728 \u751f\u6210 \u7684 \u8f66\u8f86 \u4e0a \u542f\u7528 Chrono \u7269\u7406 \u3002 \u53c2\u6570 : max _ substeps ( int ) - Chrono \u5b50 \u6b65\u9aa4 \u7684 \u6700\u5927 \u6570\u91cf \u3002 max _ substep _ delta _ time ( int ) - \u5b50\u6b65 \u7684 \u6700\u5927 \u5927\u5c0f \u3002 vehicle _ json ( str ) - \u76f8\u5bf9 \u4e8e base _ json _ path \u7684 \u8f66\u8f86 json \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 powertrain _ json ( str ) - \u76f8\u5bf9 \u4e8e base _ json _ path \u7684 \u52a8\u529b \u603b\u6210 json \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 tire _ json ( str ) - \u76f8\u5bf9 \u4e8e base _ json _ path \u7684 \u8f6e\u80ce json \u6587\u4ef6 \u3002 base _ json _ path ( str ) - \u6307\u5411 chrono / data / vehicle \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u8def\u5f84 \u3002 \u4f8b\u5982 \uff0c / home / user / carla / Build / chrono - install / share / chrono / data / vehicle / ( \u6700\u540e \u4e00\u4e2a \u5b57\u7b26 \u9700\u8981 \u662f / ) \u3002 \u6ce8\u610f : \u786e\u4fdd \u786e\u4fdd\u60a8 \u5df2 \u4f7f\u7528 \u8be5 \u6807\u5fd7 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 ARGS = \" -- chrono \" \u3002 \u5982\u679c \u6ca1\u6709 \u8bbe\u7f6e \u6b64 \u6807\u5fd7 \uff0c \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 Chrono \u7269\u7406 \u3002 \u8b66\u544a : \u4e0d \u652f\u6301 \u78b0\u649e \u3002 \u5f53 \u68c0\u6d4b \u5230 \u78b0\u649e \u65f6 \uff0c \u7269\u7406 \u7cfb\u7edf \u5c06 \u6062\u590d \u4e3a \u9ed8\u8ba4 \u7684 Carla \u7269\u7406 \u7cfb\u7edf \u3002 is _ at _ traffic _ light ( self ) \u5f53 \u4ea4\u901a \u4ea4\u901a\u706f \u4e3a \u7ea2\u8272 \u5e76\u4e14 \u8f66\u8f86 \u4f4d\u4e8e \u5176 \u8fb9\u754c \u6846\u5185 \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u53d7\u5230 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a \u523b\u5ea6 \u8fd4\u56de \u4ea4\u901a \u4ea4\u901a\u706f \u662f\u5426 \u5f71\u54cd \u8be5 \u8f66\u8f86 \uff08 \u5b83 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff09 \u3002 \u8fd4\u56de : bool open _ door ( self , door _ idx ) \u5982\u679c \u8f66\u8f86 \u6709 \u8f66\u95e8 \uff0c \u5219 \u6253\u5f00 \u8f66\u95e8 door _ idx \u3002 \u4f7f\u7528 carla . VehicleDoor . All \u6253\u5f00 \u6240\u6709 \u53ef\u7528 \u7684 \u95e8 \u3002 \u53c2\u6570 : door _ idx ( carla . VehicleDoor ) - \u95e8 \u7d22\u5f15 \u3002 show _ debug _ telemetry ( self , enabled = True ) \u542f\u7528 \u6216 \u7981\u7528 \u6b64 \u8f66\u8f86 \u4e0a \u7684 \u9065\u6d4b \u3002 \u8fd9\u4f1a \u5728 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7a97\u53e3 \u4e2d \u663e\u793a \u6709\u5173 \u8f66\u8f86 \u5f53\u524d \u72b6\u6001 \u548c \u65bd\u52a0 \u5230 \u5176 \u4e0a \u7684 \u529b \u7684 \u4fe1\u606f \u3002 \u53ea\u80fd \u663e\u793a \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u7684 \u4fe1\u606f \uff0c \u56e0\u6b64 \uff0c \u5982\u679c \u542f\u7528 \u7b2c\u4e8c \u4e8c\u8f86 \u7b2c\u4e8c\u8f86 \u8f66 \uff0c \u524d \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5c06 \u81ea\u52a8 \u7981\u7528 \u3002 \u53c2\u6570 : enabled ( bool ) use _ carsim _ road ( self , enabled ) \u542f\u7528 \u6216 \u7981\u7528 CarSim \u4e0e \u5730\u5f62 \u6587\u4ef6 . simfile \u4e2d \u6307\u5b9a \u7684 \u4f7f\u7528 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64 \u9009\u9879 \u5904\u4e8e \u7981\u7528 \u72b6\u6001 \uff0c CarSim \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u65b9\u6cd5 \u6765 \u5904\u7406 \u573a\u666f \u7684 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \u3002 \u53c2\u6570 : enabled ( bool )","title":"\u65b9\u6cd5"},{"location":"python_api/#_191","text":"get _ ackermann _ controller _ settings ( self ) \u8fd4\u56de \u5e94\u7528 \u4e8e \u8be5 \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u8bbe\u7f6e \u3002 \u8fd4\u56de : carla . AckermannControllerSettings \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6765 \u68c0\u7d22 \u503c \u3002 get _ control ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd4\u56de \u6700\u540e \u4e00\u4e2a tick \u4e2d \u5e94\u7528 \u7684 \u63a7\u5236 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . VehicleControl get _ failure _ state ( self ) \u8f66\u8f86 \u6709 \u6545\u969c \u72b6\u6001 \uff0c \u8868\u660e \u5b83 \u65e0\u6cd5 \u7ee7\u7eed \u5176 \u8def\u7ebf \u3002 \u8be5 \u51fd\u6570 \u8fd4\u56de \u8f66\u8f86 \u7684 \u5177\u4f53 \u6545\u969c \u72b6\u6001 \uff0c \u6216\u8005 \u6362\u53e5 \u6362\u53e5\u8bdd \u6362\u53e5\u8bdd\u8bf4 \uff0c \u8fd4\u56de \u5bfc\u81f4 \u6545\u969c \u7684 \u539f\u56e0 \u3002 \u8fd4\u56de : carla . VehicleFailureState get _ light _ state ( self ) \u8fd4\u56de \u8868\u793a \u8f66\u8f86 \u706f \u72b6\u6001 \u7684 \u6807\u5fd7 \uff0c \u8fd9 \u8868\u793a \u54ea\u4e9b \u706f \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u6216 \u4e0d \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u3002 \u8fd4\u56de : carla . VehicleLightState Setter : carla . Vehicle . set _ light _ state get _ physics _ control ( self ) \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd4\u56de \u5e94\u7528 \u4e8e \u8be5 \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u7269\u7406 \u63a7\u5236 \u3002 \u8fd4\u56de : carla . VehiclePhysicsControl \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \u6765 \u68c0\u7d22 \u503c \u3002 get _ speed _ limit ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u6700\u540e \u4e00\u4e2a tick \u8fd4\u56de \u5f71\u54cd \u8be5 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u9650\u5236 \u901f\u5ea6\u9650\u5236 \uff08 \u5b83 \u4e0d \u8c03\u7528 \u6a21\u62df \u6a21\u62df\u5668 \uff09 \u3002 \u5f53 \u7ecf\u8fc7 \u9650\u901f \u4fe1\u53f7 \u65f6 \uff0c \u9650\u901f \u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u8f66\u8f86 \u5728 \u751f\u6210 \u540e \u53ef\u80fd \u5c31 \u6ca1\u6709 \u9650\u901f \u4fe1\u53f7 \u3002 \u8fd4\u56de : float - km / h get _ traffic _ light ( self ) \u6839\u636e \u6700\u540e \u4e00\u4e2a \u523b\u5ea6 \u68c0\u7d22 \u5f71\u54cd \u6b64 \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u5982\u679c \u6709 \uff09 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . TrafficLight get _ traffic _ light _ state ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u6839\u636e \u4e0a \u4e00\u4e2a tick \u8fd4\u56de \u5f71\u54cd \u8be5 \u8f66\u8f86 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u7684 \u72b6\u6001 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5982\u679c \u5f53\u524d \u6ca1\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u5f71\u54cd \u8f66\u8f86 \uff0c \u5219 \u8fd4\u56de green \u3002 \u8fd4\u56de : carla . TrafficLightState get _ wheel _ steer _ angle ( self , wheel _ location ) \u8fd4\u56de \u8f66\u8f86 \u8f66\u8f6e \u7684 \u7269\u7406 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 \u53c2\u6570 : wheel _ location ( carla . VehicleWheelLocation ) \u8fd4\u56de : float Note : \u8fd4\u56de \u57fa\u4e8e \u8f66\u8f6e \u7269\u7406 \u539f\u7406 \u7684 \u89d2\u5ea6 \uff0c \u800c \u4e0d\u662f \u89c6\u89d2 \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_192","text":"set _ autopilot ( self , enabled = True , port = 8000 ) \u5728 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u7684 \u5217\u8868 \u4e2d \u6ce8\u518c \u6216 \u5220\u9664 \u8f66\u8f86 \u3002 \u5f53 True \u65f6 \uff0c \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7684 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5c06 \u79fb\u52a8 \u8f66\u8f86 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u53d1\u751f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u53c2\u6570 : enabled ( bool ) port ( uint16 ) - \u8f66\u8f86 \u8981 \u5728 \u5176\u4e2d \u6ce8\u518c \u6216 \u4e0d \u5217\u51fa \u7684 TM - Server \u7aef\u53e3 \u3002 \u5982\u679c \u4f20\u9012 None \uff0c \u5b83 \u5c06 \u8003\u8651 \u9ed8\u8ba4 8000 \u7aef\u53e3 \u4e0a \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 set _ light _ state ( self , light _ state ) \u4f7f\u7528 \u8868\u793a \u706f\u5149 \u6253\u5f00 \u548c \u5173\u95ed \u7684 \u6807\u5fd7 \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 \u53c2\u6570 : light _ state ( carla . VehicleLightState ) \u83b7\u53d6 \u5668 : carla . Vehicle . get _ light _ state set _ wheel _ steer _ direction ( self , wheel _ location , angle _ in _ deg ) snippet \u2192 \u76f4\u89c2 \u5730 \u8bbe\u7f6e \u8f66\u8f6e \u7684 \u89d2\u5ea6 \u3002 \u53c2\u6570 : wheel _ location ( carla . VehicleWheelLocation ) angle _ in _ deg ( float ) \u8b66\u544a : \u4e0d \u5f71\u54cd \u8f66\u8f86 \u7684 \u7269\u7406 \u7279\u6027 \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_193","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlavehicleackermanncontrol","text":"\u4f7f\u7528 \u963f\u514b \u963f\u514b\u66fc \u9a7e\u9a76 \u63a7\u5236 \u88c5\u7f6e \u7ba1\u7406 \u8f66\u8f86 \u7684 \u57fa\u672c \u8fd0\u52a8 \u3002","title":"carla . VehicleAckermannControl"},{"location":"python_api/#_194","text":"steer ( float ) \u6240 \u9700 \u8f6c\u5411 ( rad ) \u3002 \u6b63\u503c \u4f4d\u4e8e \u53f3\u4fa7 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 steer _ speed ( float ) \u8f6c\u5411 \u901f\u5ea6 ( rad / s ) \u3002 \u96f6 \u8f6c\u5411 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u610f\u5473 \u610f\u5473\u7740 \u5c3d\u5feb \u6539\u53d8 \u8f6c\u5411 \u89d2 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 speed ( float ) \u6240 \u9700 \u901f\u5ea6 ( m / s ) \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 acceleration ( float ) \u6240 \u9700 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 ( m / s2 ) \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 jerk ( float ) \u6240 \u9700 \u7684 jerk ( m / s3 ) \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_195","text":"__ init __ ( self , steer = 0.0 , steer _ speed = 0.0 , speed = 0.0 , acceleration = 0.0 , jerk = 0.0 ) \u53c2\u6570 : steer ( float ) steer _ speed ( float ) speed ( float ) acceleration ( float ) jerk ( float )","title":"\u65b9\u6cd5"},{"location":"python_api/#_196","text":"__ eq __ ( self , other = carla . AckermannVehicleControl ) __ ne __ ( self , other = carla . AckermannVehicleControl ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlavehiclecontrol","text":"\u4f7f\u7528 \u5178\u578b \u7684 \u9a7e\u9a76 \u63a7\u5236 \u6765 \u7ba1\u7406 \u8f66\u8f86 \u7684 \u57fa\u672c \u8fd0\u52a8 \u3002","title":"carla . VehicleControl"},{"location":"python_api/#_197","text":"throttle ( float ) \u7528\u4e8e \u63a7\u5236 \u8f66\u8f86 \u6cb9\u95e8 \u7684 \u6807\u91cf \u503c [ 0.0 , 1.0 ] \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 steer ( float ) \u7528\u4e8e \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 \u7684 \u6807\u91cf \u503c [ - 1.0 , 1.0 ] \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 brake ( float ) \u7528\u4e8e \u63a7\u5236 \u8f66\u8f86 \u5236\u52a8 \u7684 \u6807\u91cf \u503c [ 0.0 , 1.0 ] \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.0 \u3002 hand _ brake ( bool ) \u786e\u5b9a \u662f\u5426 \u4f7f\u7528 \u624b\u5239 \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 reverse ( bool ) \u786e\u5b9a \u8f66\u8f86 \u662f\u5426 \u5411 \u540e \u79fb\u52a8 \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 manual _ gear _ shift ( bool ) \u786e\u5b9a \u662f\u5426 \u901a\u8fc7 \u624b\u52a8 \u6362\u6863 \u6765 \u63a7\u5236 \u8f66\u8f86 \u3002 \u9ed8\u8ba4 \u4e3a False \u3002 gear ( int ) \u6307\u793a \u8f66\u8f86 \u884c\u9a76 \u7684 \u6863\u4f4d \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_198","text":"__ init __ ( self , throttle = 0.0 , steer = 0.0 , brake = 0.0 , hand _ brake = False , reverse = False , manual _ gear _ shift = False , gear = 0 ) \u53c2\u6570 : throttle ( float ) - [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002 steer ( float ) - [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002 brake ( float ) - [ 0.0 , 1.0 ] \u4e4b\u95f4 \u7684 \u6807\u91cf \u503c \u3002 hand _ brake ( bool ) reverse ( bool ) manual _ gear _ shift ( bool ) gear ( int )","title":"\u65b9\u6cd5"},{"location":"python_api/#_199","text":"__ eq __ ( self , other = carla . VehicleControl ) __ ne __ ( self , other = carla . VehicleControl ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlavehicledoor","text":"\u53ef\u80fd \u7684 \u7d22\u5f15 \u8868\u793a \u53ef\u80fd \u6253\u5f00 \u7684 \u95e8 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u67d0\u4e9b \u8f66\u8f86 \u5e76\u975e \u6240\u6709 \u53ef\u80fd \u7684 \u8f66\u95e8 \u90fd \u80fd \u6253\u5f00 \u3002","title":"carla . VehicleDoor"},{"location":"python_api/#_200","text":"FL \u5de6 \u524d\u95e8 \u3002 FR \u53f3 \u524d\u95e8 \u3002 RL \u5de6 \u540e\u95e8 \u3002 RR \u53f3 \u540e\u95e8 \u3002 All \u4ee3\u8868 \u6240\u6709 \u95e8 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlavehiclefailurestate","text":"\u5305\u542b \u8f66\u8f86 \u65e0\u6cd5 \u6062\u590d \u7684 \u4e0d\u540c \u6545\u969c \u72b6\u6001 \u7684 \u679a\u4e3e \u3002 \u8fd9\u4e9b \u7531 get _ failure _ state ( ) \u8fd4\u56de \uff0c \u5f53\u524d \u4ec5 \u5b9e\u73b0 \u4e86 Rollover \u3002","title":"carla . VehicleFailureState"},{"location":"python_api/#_201","text":"NONE Rollover Engine TirePuncture","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlavehiclelightstate","text":"\u6982\u62ec \u8f66\u8f86 \u706f \u72b6\u6001 \u7684 \u7c7b \uff0c \u8fd9\u4e9b \u53ef\u4ee5 \u7528\u4f5c \u6807\u5fd7 \u3002 \u4f8b\u5982 \uff1a VehicleLightState . HighBeam & VehicleLightState . Brake \u5f53 \u4e24\u8005 \u90fd \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u65f6 \uff0c \u5c06 \u8fd4\u56de True \u3002 \u5728 \u4efb\u4f55 \u60c5\u51b5 \u4e0b \uff0c \u706f \u9ed8\u8ba4 \u90fd \u662f \u5173\u95ed \u7684 \uff0c \u5e76\u4e14 \u5e94\u8be5 \u7531 \u7528\u6237 \u901a\u8fc7 \u811a\u672c \u8fdb\u884c \u7ba1\u7406 \u3002 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u81ea\u52a8 \u95ea\u70c1 \u3002 \u8b66\u544a \uff1a \u76ee\u524d \uff0c \u5e76\u975e \u6240\u6709 \u8f66\u8f86 \u90fd \u51c6\u5907 \u597d \u4f7f\u7528 \u6b64 \u529f\u80fd \uff0c \u8fd9 \u5c06 \u5728 \u4ee5\u540e \u7684 \u66f4\u65b0 \u4e2d \u6dfb\u52a0 \u5230 \u6240\u6709 \u8f66\u8f86 \u4e2d \u3002","title":"carla . VehicleLightState"},{"location":"python_api/#_202","text":"NONE \u6240\u6709 \u706f\u5747 \u5173\u95ed \u3002 Position LowBeam HighBeam Brake RightBlinker LeftBlinker Reverse Fog Interior Special1 \u8fd9 \u662f \u4e3a \u67d0\u4e9b \u5177\u6709 \u7279\u6b8a \u706f \uff08 \u4f8b\u5982 \u8b66\u62a5 \u8b66\u62a5\u5668 \uff09 \u7684 \u8f66\u8f86 \u4fdd\u7559 \u7684 \u3002 Special2 \u8fd9 \u662f \u4e3a \u67d0\u4e9b \u5177\u6709 \u7279\u6b8a \u706f \uff08 \u4f8b\u5982 \u8b66\u62a5 \u8b66\u62a5\u5668 \uff09 \u7684 \u8f66\u8f86 \u4fdd\u7559 \u7684 \u3002 All \u6240\u6709 \u706f\u5747\u4eae \u8d77 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlavehiclephysicscontrol","text":"\u603b\u7ed3 \u5c06 \u7528\u4e8e \u5c06 carla . Vehicle \u4eff\u771f \u4e3a \u7269\u7406 \u5bf9\u8c61 \u7684 \u53c2\u6570 \u3002 \u4e0d\u8fc7 \uff0c \u8f66\u8f6e \u7684 \u5177\u4f53 \u8bbe\u7f6e \u662f \u4f7f\u7528 carla . WheelPhysicsControl \u89c4\u5b9a \u7684 \u3002","title":"carla . VehiclePhysicsControl"},{"location":"python_api/#_203","text":"torque _ curve ( list ( carla . Vector2D ) ) \u66f2\u7ebf \uff0c \u6307\u793a \u5728 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u7279\u5b9a RPM \u4e0b \u6d4b\u91cf \u7684 \u626d\u77e9 \uff08 \u4ee5 Nm \u4e3a \u5355\u4f4d \uff09 \u3002 max _ rpm ( float ) \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u6700\u5927 \u8f6c\u901f \u3002 moi ( float - kg * m 2 ) \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3002 damping _ rate _ full _ throttle ( float ) \u6cb9\u95e8 \u6700\u5927 \u65f6 \u7684 \u963b\u5c3c \u963b\u5c3c\u6bd4 \u3002 damping _ rate _ zero _ throttle _ clutch _ engaged ( float ) \u79bb\u5408 \u79bb\u5408\u5668 \u63a5\u5408 \u65f6 \u6cb9\u95e8 \u4e3a \u96f6\u65f6 \u7684 \u963b\u5c3c \u963b\u5c3c\u6bd4 \u3002 damping _ rate _ zero _ throttle _ clutch _ disengaged ( float ) \u5f53 \u6cb9\u95e8 \u4e3a \u96f6\u4e14 \u79bb\u5408 \u79bb\u5408\u5668 \u5206\u79bb \u65f6 \u7684 \u963b\u5c3c \u963b\u5c3c\u6bd4 \u3002 use _ gear _ autobox ( bool ) \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u914d\u5907 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u3002 gear _ switch _ time ( float - seconds ) \u9f7f\u8f6e \u4e4b\u95f4 \u7684 \u5207\u6362 \u65f6\u95f4 \u3002 clutch _ strength ( float - kg * m 2 / s ) \u8f66\u8f86 \u7684 \u79bb\u5408 \u79bb\u5408\u5668 \u5f3a\u5ea6 \u3002 final _ ratio ( float ) \u4ece \u53d8\u901f \u53d8\u901f\u7bb1 \u5230 \u8f66\u8f6e \u7684 \u56fa\u5b9a \u6bd4\u7387 \u3002 forward _ gears ( list ( carla . GearPhysicsControl ) ) \u5b9a\u4e49 \u8f66\u8f86 \u9f7f\u8f6e \u7684 \u5bf9\u8c61 \u5217\u8868 \u3002 mass ( float - kilograms ) \u8f66\u8f86 \u7684 \u8d28\u91cf \u3002 drag _ coefficient ( float ) \u8f66\u8f86 \u5e95\u76d8 \u7684 \u963b\u529b \u7cfb\u6570 \u3002 center _ of _ mass ( carla . Vector3D - \u7c73 ) \u8f66\u8f86 \u7684 \u8d28\u5fc3 \u3002 steering _ curve ( list ( carla . Vector2D ) ) \u6307\u793a \u7279\u5b9a \u524d\u8fdb \u901f\u5ea6 \u7684 \u6700\u5927 \u8f6c\u5411 \u7684 \u66f2\u7ebf \u3002 use _ sweep _ wheel _ collision ( bool ) \u542f\u7528 \u8f66\u8f6e \u78b0\u649e \u626b\u63cf \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u662f \u7981\u7528 \u7684 \uff0c \u5e76\u4e14 \u5b83 \u4e3a \u6bcf\u4e2a \u8f6e\u5b50 \u4f7f\u7528 \u4ece\u8f74\u5230 \u5730\u677f \u7684 \u7b80\u5355 \u5149\u7ebf \u6295\u5c04 \u3002 \u6b64 \u9009\u9879 \u63d0\u4f9b \u4e86 \u66f4\u597d \u7684 \u78b0\u649e \u6a21\u578b \uff0c \u5176\u4e2d \u68c0\u67e5 \u8f66\u8f6e \u7684 \u6574\u4e2a \u4f53\u79ef \u662f\u5426 \u53d1\u751f \u78b0\u649e \u3002 wheels ( list ( carla . WheelPhysicsControl ) ) \u8f6e\u5b50 \u7269\u7406 \u5bf9\u8c61 \u5217\u8868 \u3002 \u8be5 \u5217\u8868 \u5e94\u8be5 \u6709 4 \u4e2a \u5143\u7d20 \uff0c \u5176\u4e2d \u7d22\u5f15 0 \u5bf9\u5e94 \u4e8e \u5de6 \u524d\u8f6e \uff0c \u7d22\u5f15 1 \u5bf9\u5e94 \u4e8e \u53f3 \u524d\u8f6e \uff0c \u7d22\u5f15 2 \u5bf9\u5e94 \u4e8e \u5de6 \u540e\u8f6e \uff0c \u7d22\u5f15 3 \u5bf9\u5e94 \u4e8e \u53f3 \u540e\u8f6e \u3002 \u5bf9\u4e8e \u4e24\u8f6e \u8f66\u8f86 \uff0c \u524d\u8f6e \u548c \u540e\u8f6e \u8bbe\u7f6e \u76f8\u540c \u7684 \u503c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_204","text":"__ init __ ( self , torque _ curve = [ [ 0.0 , 500.0 ] , [ 5000.0 , 500.0 ] ] , max _ rpm = 5000.0 , moi = 1.0 , damping _ rate _ full _ throttle = 0.15 , damping _ rate _ zero _ throttle _ clutch _ engaged = 2.0 , damping _ rate _ zero _ throttle _ clutch _ disengaged = 0.35 , use _ gear _ autobox = True , gear _ switch _ time = 0.5 , clutch _ strength = 10.0 , final _ ratio = 4.0 , forward _ gears = list ( ) , drag _ coefficient = 0.3 , center _ of _ mass = [ 0.0 , 0.0 , 0.0 ] , steering _ curve = [ [ 0.0 , 1.0 ] , [ 10.0 , 0.5 ] ] , wheels = list ( ) , use _ sweep _ wheel _ collision = False , mass = 1000.0 ) VehiclePhysicsControl \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u3002 \u53c2\u6570 : torque _ curve ( list ( carla . Vector2D ) ) max _ rpm ( float ) moi ( float - kg * m 2 ) damping _ rate _ full _ throttle ( float ) damping _ rate _ zero _ throttle _ clutch _ engaged ( float ) damping _ rate _ zero _ throttle _ clutch _ disengaged ( float ) use _ gear _ autobox ( bool ) gear _ switch _ time ( float - seconds ) clutch _ strength ( float - kg * m 2 / s ) final _ ratio ( float ) forward _ gears ( list ( carla . GearPhysicsControl ) ) drag _ coefficient ( float ) center _ of _ mass ( carla . Vector3D ) steering _ curve ( carla . Vector2D ) wheels ( list ( carla . WheelPhysicsControl ) ) use _ sweep _ wheel _ collision ( bool ) mass ( float - kilograms )","title":"\u65b9\u6cd5"},{"location":"python_api/#_205","text":"__ eq __ ( self , other = carla . VehiclePhysicsControl ) __ ne __ ( self , other = carla . VehiclePhysicsControl ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlavehiclewheellocation","text":"enum \u4ee3\u8868 \u8f66\u8f86 \u4e0a \u6bcf\u4e2a \u8f66\u8f6e \u7684 \u4f4d\u7f6e \u3002 \u7528\u4e8e \u5728 carla . Vehicle . set _ wheel _ steer _ direction \u6216 carla . Vehicle . get _ wheel _ steer _ angle \u4e2d \u8bbe\u7f6e \u89d2\u5ea6 \u65f6 \u8bc6\u522b \u76ee\u6807 \u8f66\u8f6e \u3002","title":"carla . VehicleWheelLocation"},{"location":"python_api/#_206","text":"FL _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u5de6 \u524d\u8f6e \u3002 FR _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u53f3 \u524d\u8f6e \u3002 BL _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u5de6 \u540e\u8f6e \u3002 BR _ Wheel \u56db\u8f6e \u8f66\u8f86 \u7684 \u53f3 \u540e\u8f6e \u3002 Front _ Wheel \u4e24\u8f6e \u8f66\u8f86 \u7684 \u524d\u8f6e \u3002 Back _ Wheel \u4e24\u8f6e \u8f66\u8f86 \u7684 \u540e\u8f6e \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#carlawalker","text":"\u4ece carla . Actor \u7ee7\u627f \u8be5\u7c7b \u4ece carla . Actor \u7ee7\u627f \u5e76 \u5b9a\u4e49 \u4eff\u771f \u4e2d \u7684 \u884c\u4eba \u3002 Walkers \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 actor \uff0c \u53ef\u4ee5 \u7531 AI ( carla . WalkerAIController ) \u63a7\u5236 \uff0c \u4e5f \u53ef\u4ee5 \u901a\u8fc7 \u811a\u672c \u624b\u52a8 \u63a7\u5236 \uff0c \u4f7f\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 carla . WalkerControl \u6765 \u79fb\u52a8 \u5b83\u4eec \u53ca\u5176 \u9aa8\u9abc \u3002","title":"carla . Walker"},{"location":"python_api/#_207","text":"apply _ control ( self , control ) \u5728 \u4e0b \u4e00\u4e2a \u523b\u5ea6 \u4e0a \uff0c \u63a7\u4ef6 \u5c06 \u4ee5 \u7279\u5b9a \u901f\u5ea6 \u5411 \u7279\u5b9a \u65b9\u5411 \u79fb\u52a8 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u4e5f \u53ef\u4ee5 \u547d\u4ee4 \u8df3\u8dc3 \u3002 \u53c2\u6570 : control ( carla . WalkerControl ) blend _ pose ( self , blend _ value ) \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u4e0e \u52a8\u753b \u7684 \u6df7\u5408 \u503c \u3002 \u8fd9\u4e9b \u503c \u53ef\u4ee5 \u662f \uff1a 0 : \u4ec5 \u663e\u793a \u52a8\u753b 1 : \u4ec5 \u663e\u793a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \uff08 \u7531 \u7528\u6237 \u4f7f\u7528 set _ bones ( ) \u8bbe\u7f6e \uff09 any other : \u5c06 \u5728 \u52a8\u753b \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u4e4b\u95f4 \u63d2\u5165 \u6240\u6709 \u9aa8\u9abc \u4f4d\u7f6e \u3002 \u53c2\u6570 : blend _ value ( float - value from 0 to 1 with the blend percentage ) hide _ pose ( self ) \u9690\u85cf \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u5e76 \u663e\u793a \u52a8\u753b \uff08 \u4e0e \u8c03\u7528 blend _ pose ( 0 ) \u76f8\u540c \uff09 \u3002 show _ pose ( self ) \u663e\u793a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u5e76 \u9690\u85cf \u52a8\u753b \uff08 \u4e0e \u8c03\u7528 blend _ pose ( 1 ) \u76f8\u540c \uff09 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_208","text":"get _ bones ( self ) \u8fd4\u56de \u5305\u542b \u6765\u81ea \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6240\u6709 \u9aa8\u9abc \u53d8\u6362 \u7684 \u7ed3\u6784 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u6211\u4eec \u5728 \u4e09\u4e2a \u4e0d\u540c \u7684 \u7a7a\u95f4 \u4e2d \u83b7\u53d6 \u540d\u79f0 \u53ca\u5176 \u53d8\u6362 \uff1a name : \u9aa8\u9abc \u540d\u79f0 world : \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u53d8\u6362 component : \u57fa\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u67a2\u8f74 \u8fdb\u884c \u53d8\u6362 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002 \u8fd4\u56de : carla . WalkerBoneControlOut Setter : carla . Walker . set _ bones get _ control ( self ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd4\u56de \u5728 \u6700\u540e \u4e00\u4e2a tick \u671f\u95f4 \u5e94\u7528 \u4e8e \u6b64\u884c \u4eba \u7684 \u63a7\u5236 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8c03\u7528 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u8fd4\u56de : carla . WalkerControl get _ pose _ from _ animation ( self ) \u590d\u5236 \u5f53\u524d \u52a8\u753b \u5e27 \u4f5c\u4e3a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u3002 \u6700\u521d \uff0c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u59ff\u52bf \u662f \u4e2d\u6027 \u884c\u4eba \u59ff\u52bf \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_209","text":"set _ bones ( self , bones ) \u8bbe\u7f6e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u9aa8\u9abc \u3002 \u5bf9\u4e8e \u6211\u4eec \u60f3\u8981 \u8bbe\u7f6e \u7684 \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u5bf9 \u53d8\u6362 \u3002 \u4ec5\u4f1a \u8bbe\u7f6e \u6b64 \u5217\u8868 \u4e2d \u7684 \u9aa8\u9abc \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u60a8 \u9700\u8981 \u8bbe\u7f6e \u4ee5\u4e0b \u4fe1\u606f \uff1a name : \u9aa8\u9abc \u540d\u79f0 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002 \u53c2\u6570 : bones ( carla . WalkerBoneControlIn - \u6211\u4eec \u60f3\u8981 \u8bbe\u7f6e \u7684 \u9aa8\u9abc \u5bf9 \uff08 bone _ name \uff0c transform \uff09 \u7684 \u5217\u8868 ) \u83b7\u53d6 \u5668 : carla . Walker . get _ bones","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_210","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawalkeraicontroller","text":"\u4ece carla . Actor \u7ee7\u627f \u5bf9 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u8fdb\u884c AI \u63a7\u5236 \u7684 \u7c7b \u3002 \u63a7\u5236 \u63a7\u5236\u5668 \u88ab \u5b9a\u4e49 \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5b83\u4eec \u4e0e \u5176\u4ed6 \u63a7\u5236 \u63a7\u5236\u5668 \u6709 \u5f88\u5927 \u4e0d\u540c \u3002 \u5b83\u4eec \u5728 \u521b\u5efa \u8fc7\u7a0b \u4e2d \u9700\u8981 \u9644\u52a0 \u5230\u7236 Actor \uff0c \u8fd9\u662f \u5b83\u4eec \u5c06 \u63a7\u5236 \u7684 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \uff08 \u5982\u679c \u60a8 \u5c1a\u672a \u4e86\u89e3 \u5982\u4f55 \u751f\u6210 Actor \uff0c \u8bf7 \u67e5\u770b carla . World \uff09 \u3002 \u4ed6\u4eec \u8fd8 \u9700\u8981 \u4e00\u4e2a \u7279\u6b8a \u7684 \u84dd\u56fe \uff08 \u5df2 \u5728 carla . BlueprintLibrary \u4e2d \u5b9a\u4e49 \u4e3a \u201c controller . ai . walker \u201d \uff09 \u3002 \u8fd9\u662f \u4e00\u4e2a \u7a7a \u7684 \u84dd\u56fe \uff0c \u56e0\u4e3a \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u63a7\u5236\u5668 \u5728 \u6a21\u62df \u4e2d\u662f \u4e0d \u53ef\u89c1 \u7684 \uff0c \u4f46\u4f1a \u8ddf\u968f \u5176\u7236 \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u6307\u793a \u6bcf \u4e00\u6b65 \u3002","title":"carla . WalkerAIController"},{"location":"python_api/#_211","text":"go _ to _ location ( self , destination ) \u8bbe\u7f6e \u884c\u4eba \u5c06 \u5230\u8fbe \u7684 \u76ee\u7684 \u76ee\u7684\u5730 \u3002 \u53c2\u6570 : destination ( carla . Location - \u7c73 ) start ( self ) \u4e3a \u5176\u7236 \u884c\u4eba \u542f\u7528 AI \u63a7\u5236 \u3002 stop ( self ) snippet \u2192 \u7981\u7528 \u5176\u7236 \u884c\u4eba \u7684 AI \u63a7\u5236 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_212","text":"set _ max _ speed ( self , speed = 1.4 ) \u8bbe\u7f6e \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u901f\u5ea6 \uff08 \u4ee5\u7c73 \u6bcf\u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u53c2\u6570 : speed ( float - m / s ) - \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u8f7b\u677e \u6b65\u884c \u901f\u5ea6 \u3002","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_213","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawalkerbonecontrolin","text":"\u8be5\u7c7b \u4e3a \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u63d0\u4f9b \u9aa8\u9abc \u7279\u5b9a \u7684 \u64cd\u4f5c \u3002 \u4e3a\u4e86 \u6e05\u6670 \u8d77 \u89c1 \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u9aa8\u9abc \u5df2\u7ecf \u7edf\u4e00 \uff0c \u5e76\u4e14 \u5e94\u7528 \u4e8e \u6bcf\u4e2a \u9aa8\u9abc \u7684 \u53d8\u6362 \u59cb\u7ec8 \u76f8\u5bf9 \u4e8e \u5176\u7236 \u9aa8\u9abc \u3002 \u8bf7 \u67e5\u770b \u6b64\u5904 \uff0c \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u521b\u5efa \u52a9\u884c\u5668 \u5e76 \u5b9a\u4e49 \u5176 \u8fd0\u52a8 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"carla . WalkerBoneControlIn"},{"location":"python_api/#_214","text":"bone _ transforms ( list ( [ name , transform ] ) ) \u5217\u51fa \u6211\u4eec \u8981 \u8bbe\u7f6e \u7684 \u6bcf\u4e2a \u9aa8\u9abc \u7684 \u6570\u636e \uff1a name : \u9aa8\u9abc \u540d\u79f0 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_215","text":"__ init __ ( self , list ( name , transform ) ) \u521d\u59cb \u521d\u59cb\u5316 \u4e00\u4e2a \u5305\u542b \u8981 \u5728 \u523b\u5ea6 \u4e0a \u5e94\u7528 \u7684 \u79fb\u52a8 \u7684 \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u4e0e \u9aa8\u9abc \u7684 \u540d\u79f0 \u548c \u5c06 \u5e94\u7528 \u4e8e \u5b83 \u7684 \u53d8\u6362 \u4e00\u8d77 \u5217\u51fa \u3002 \u53c2\u6570 : list ( name , transform ) ( tuple )","title":"\u65b9\u6cd5"},{"location":"python_api/#_216","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawalkerbonecontrolout","text":"\u8be5\u7c7b \u7528\u4e8e \u8fd4\u56de \u884c\u4eba \u7684 \u6240\u6709 \u9aa8\u9abc \u4f4d\u7f6e \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u6211\u4eec \u5f97\u5230 \u5b83 \u7684 \u540d\u79f0 \u53ca\u5176 \u5728 \u4e09\u4e2a \u4e0d\u540c \u7a7a\u95f4 \uff08 \u4e16\u754c \u3001 \u6f14\u5458 \u548c \u76f8\u5bf9 \uff09 \u4e2d \u7684 \u53d8\u6362 \u3002","title":"carla . WalkerBoneControlOut"},{"location":"python_api/#_217","text":"bone _ transforms ( list ( [ name , world , actor , relative ] ) ) \u6bcf\u4e2a \u9aa8\u9abc \u7684 \u4e00\u4e2a \u6761\u76ee \u5217\u8868 \uff0c \u5305\u542b \u4ee5\u4e0b \u4fe1\u606f \uff1a name : \u9aa8\u9abc \u540d\u79f0 world : \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u53d8\u6362 component : \u57fa\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u67a2\u8f74 \u8fdb\u884c \u53d8\u6362 relative : \u57fa\u4e8e \u9aa8\u9abc \u7236\u7ea7 \u8fdb\u884c \u53d8\u6362 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_218","text":"","title":"\u65b9\u6cd5"},{"location":"python_api/#_219","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawalkercontrol","text":"\u6b64\u7c7b \u5b9a\u4e49 \u4e86 \u53ef\u4ee5 \u5411 carla . Walker \u547d\u4ee4 \u901a\u8fc7 \u811a\u672c \u63a7\u5236 \u5b83 \u7684 \u7279\u5b9a \u65b9\u5411 \u3002 \u53ef\u4ee5 \u4e3a \u884c\u4eba \u89e3\u51b3 AI \u63a7\u5236 \uff0c \u4f46 \u7528\u4e8e \u6b64 \u76ee\u7684 \u7684 \u63a7\u4ef6 \u662f carla . WalkerAIController \u3002","title":"carla . WalkerControl"},{"location":"python_api/#_220","text":"direction ( carla . Vector3D ) \u4f7f\u7528 \u4e0e \u884c\u4eba \u65b9\u5411 \u76f8\u5bf9 \u5e94 \u7684 \u5168\u5c40 \u5750\u6807 \u7684 \u5411\u91cf \u3002 speed ( float - m / s ) \u63a7\u5236 \u884c\u4eba \u901f\u5ea6 \u7684 \u6807\u91cf \u503c \u3002 jump ( bool ) \u5982\u679c \u4e3a True \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u5c06 \u6267\u884c \u8df3\u8dc3 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_221","text":"__ init __ ( self , direction = [ 1.0 , 0.0 , 0.0 ] , speed = 0.0 , jump = False ) \u53c2\u6570 : direction ( carla . Vector3D ) speed ( float - m / s ) jump ( bool )","title":"\u65b9\u6cd5"},{"location":"python_api/#_222","text":"__ eq __ ( self , other = carla . WalkerControl ) \u548c other \u6bd4\u8f83 \u6bcf\u4e2a \u53d8\u91cf \uff0c \u5982\u679c \u5b83\u4eec \u90fd \u76f8\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 __ ne __ ( self , other = carla . WalkerControl ) \u548c other \u6bd4\u8f83 \u6bcf\u4e2a \u53d8\u91cf \uff0c \u5982\u679c \u5176\u4e2d \u4efb\u4f55 \u4e00\u4e2a \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawaypoint","text":"CARLA \u4e2d \u7684 \u822a\u8def \u70b9 \u88ab \u63cf\u8ff0 \u4e3a 3D \u5b9a\u5411 \u70b9 \u3002 \u4ed6\u4eec \u6709 \u4e00\u4e2a carla . Transform \uff0c \u5b83 \u53ef\u4ee5 \u5b9a\u4f4d \u9053\u8def \u4e2d \u7684 \u8def\u70b9 \u5e76 \u6839\u636e \u8f66\u9053 \u786e\u5b9a \u5176 \u65b9\u5411 \u3002 \u4ed6\u4eec \u8fd8 \u5b58\u50a8 \u5c5e\u4e8e \u8be5\u70b9 \u7684 \u6709\u5173 \u5176 \u8f66\u9053 \u548c \u8f66\u9053 \u6807\u8bb0 \u7684 \u9053\u8def \u4fe1\u606f \u3002 \u6709\u5173 \u822a\u8def \u70b9 \u548c \u8def\u7ebf API \u7684 \u6240\u6709 \u4fe1\u606f \u5747 \u6309 OpenDRIVE \u6587\u4ef6 \u63d0\u4f9b \u7684 \u65b9\u5f0f \u68c0\u7d22 \u3002 \u4e00\u65e6 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bf7\u6c42 \u5730\u56fe \u5bf9\u8c61 \uff0c \u5c31 \u4e0d\u518d \u9700\u8981 \u901a\u4fe1 \u3002","title":"carla . Waypoint"},{"location":"python_api/#_223","text":"id ( int ) \u6807\u8bc6 \u6807\u8bc6\u7b26 \u662f \u4f7f\u7528 \u4e0e OpenDRIVE \u51e0\u4f55 \u4e2d \u7684 \u6240\u8ff0 \u70b9 \u76f8\u5bf9 \u5e94 \u7684 road , section , lane \u548c s \u503c \u7684 \u54c8\u5e0c \u7ec4\u5408 \u751f\u6210 \u7684 \u3002 s \u7cbe\u5ea6 \u8bbe\u7f6e \u4e3a 2 \u5398\u7c73 \uff0c \u56e0\u6b64 \u5728 \u540c\u4e00 \u9053\u8def \u3001 \u8def\u6bb5 \u548c \u8f66\u9053 \u8ddd\u79bb \u4e2d\u8ddd\u79bb \u5c0f\u4e8e 2 \u5398\u7c73 \u7684 2 \u4e2a \u822a\u8def \u70b9\u5c06 \u5177\u6709 \u76f8\u540c \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 transform ( carla . Transform ) \u6839\u636e \u5f53\u524d \u8f66\u9053 \u4fe1\u606f \u786e\u5b9a \u8def\u70b9 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u8be5 \u6570\u636e \u662f \u5728 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u8bbf\u95ee \u65f6 \u8ba1\u7b97 \u7684 \u3002 \u5f53 \u521b\u5efa \u5927\u91cf \u822a\u8def \u70b9 \u4f46 \u4e0d \u9700\u8981 \u5b83\u4eec \u7684 \u7279\u5b9a \u8f6c\u6362 \u65f6 \uff0c \u5b83 \u4e0d\u4f1a \u7acb\u5373 \u521b\u5efa \uff0c \u4ee5 \u51cf\u8f7b \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u3002 road _ id ( int ) OpenDRIVE \u9053\u8def \u7684 id \u3002 section _ id ( int ) OpenDRIVE \u90e8\u5206 \u7684 id \uff0c \u57fa\u4e8e \u5b83\u4eec \u6700\u521d \u5b9a\u4e49 \u7684 \u987a\u5e8f \u3002 is _ junction ( bool ) \u5982\u679c \u5f53\u524d \u8def\u70b9 \u4f4d\u4e8e OpenDRIVE \u5b9a\u4e49 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \uff0c \u5219 \u4e3a True \u3002 junction _ id ( int ) OpenDRIVE \u7ed3\u70b9 \u7684 id \u3002 \u6709\u5173 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 OpenDRIVE \u6587\u6863 \u3002 lane _ id ( int ) OpenDRIVE \u8f66\u9053 \u7684 id \uff0c \u8be5\u503c \u53ef\u4ee5 \u662f \u6b63\u6570 \u6216 \u8d1f\u6570 \uff0c \u8868\u793a \u5f53\u524d \u8f66\u9053 \u76f8\u5bf9 \u4e8e \u9053\u8def \u7684 \u65b9\u5411 \u3002 \u6709\u5173 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 OpenDRIVE \u6587\u6863 \u3002 s ( float ) OpenDRIVE \u5f53\u524d \u4f4d\u7f6e \u7684 s \u503c \u3002 lane _ width ( float ) \u5f53\u524d s \u5904 \u9053\u8def \u7684 \u6c34\u5e73 \u5c3a\u5bf8 \u3002 lane _ change ( carla . LaneChange ) \u5f53\u524d \u8def\u70b9 \u4f4d\u7f6e \u7684 \u8f66\u9053 \u53d8\u66f4 \u5b9a\u4e49 \uff0c \u57fa\u4e8e OpenDRIVE \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u7684 \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u3002 \u5b83 \u8bf4\u660e \u662f\u5426 \u53ef\u4ee5 \u53d8\u9053 \u4ee5\u53ca \u671d \u54ea\u4e2a \u65b9\u5411 \u53d8\u9053 \u3002 lane _ type ( carla . LaneType ) \u5f53\u524d Waypoint \u7684 \u8f66\u9053 \u7c7b\u578b \uff0c \u57fa\u4e8e OpenDRIVE 1.4 \u6807\u51c6 \u3002 right _ lane _ marking ( carla . LaneMarking ) \u57fa\u4e8e Waypoint \u65b9\u5411 \u7684 \u53f3 \u8f66\u9053 \u6807\u8bb0 \u4fe1\u606f \u3002 left _ lane _ marking ( carla . LaneMarking ) \u57fa\u4e8e Waypoint \u65b9\u5411 \u7684 \u5de6 \u8f66\u9053 \u6807\u8bb0 \u4fe1\u606f \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_224","text":"next ( self , distance ) \u5f53\u524d \u70b9 \u67d0\u4e2a \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u7684 \u822a\u8def \u70b9 \u5217\u8868 distance \u5b83\u4f1a \u8003\u8651 \u9053\u8def \u53ca\u5176 \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u800c \u4e0d \u6267\u884c \u4efb\u4f55 \u8f66\u9053 \u53d8\u66f4 \uff0c \u5e76 \u4e3a \u6bcf\u4e2a \u9009\u9879 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5982\u679c \u8f66\u9053 \u5728 \u6307\u5b9a \u8ddd\u79bb \u8ddd\u79bb\u5904 \u672a \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u8f66\u9053 \u76f8\u8fde \uff0c \u5219 \u5217\u8868 \u53ef\u80fd \u4e3a\u7a7a \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u83b7\u53d6 \u4e0b \u4e00\u4e2a \u822a\u8def \u70b9 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint ) next _ until _ lane _ end ( self , distance ) \u8fd4\u56de \u4ece \u8fd9\u91cc \u5230 \u8f66\u9053 \u672b\u7aef \u7684 \u8def\u70b9 \u5217\u8868 \uff0c \u8fd9\u4e9b \u8def\u70b9 \u4e4b\u95f4 \u4ee5 \u4e00\u5b9a \u8ddd\u79bb distance \u5206\u9694 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u822a\u8def \u70b9 \u4e4b\u95f4 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint ) previous ( self , distance ) \u4f46 \u4e0e \u8f66\u9053 \u76f8\u53cd \u65b9\u5411 \u7684 \u8def\u70b9 \u5217\u8868 distance \u4e0e next ( ) \u7c7b\u4f3c \uff0c \u5b83\u4f1a \u8003\u8651 \u9053\u8def \u53ca\u5176 \u53ef\u80fd \u7684 \u504f\u5dee \uff0c \u800c \u4e0d \u6267\u884c \u4efb\u4f55 \u8f66\u9053 \u53d8\u66f4 \uff0c \u5e76 \u4e3a \u6bcf\u4e2a \u9009\u9879 \u8fd4\u56de \u4e00\u4e2a \u822a\u8def \u70b9 \u3002 \u5982\u679c \u8f66\u9053 \u5728 \u6307\u5b9a \u8ddd\u79bb \u8ddd\u79bb\u5904 \u672a \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u8f66\u9053 \u76f8\u8fde \uff0c \u5219 \u5217\u8868 \u53ef\u80fd \u4e3a\u7a7a \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u83b7\u53d6 \u5148\u524d \u822a\u8def \u70b9 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint ) previous _ until _ lane _ start ( self , distance ) \u8fd4\u56de \u4ece \u8fd9\u91cc \u5230 \u8f66\u9053 \u8d77\u70b9 \u7684 \u8def\u70b9 \u5217\u8868 \uff0c \u4ee5 \u4e00\u5b9a \u7684 \u8ddd\u79bb distance \u5206\u9694 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u822a\u8def \u70b9 \u4e4b\u95f4 \u7684 \u5927\u81f4 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . Waypoint )","title":"\u65b9\u6cd5"},{"location":"python_api/#_225","text":"get _ junction ( self ) \u5982\u679c \u8def\u5f84 \u70b9 \u5c5e\u4e8e \u8def\u53e3 \uff0c \u5219 \u6b64 \u65b9\u6cd5 \u8fd4\u56de \u5173\u8054 \u7684 \u8def\u53e3 \u5bf9\u8c61 \u3002 \u5426\u5219 \u8fd4\u56de null \u3002 \u8fd4\u56de : carla . Junction get _ landmarks ( self , distance , stop _ at _ junction = False ) \u8fd4\u56de \u4ece \u5f53\u524d \u822a\u8def \u70b9\u5230 \u6307\u5b9a \u8ddd\u79bb \u7684 \u9053\u8def \u4e0a \u7684 \u5730\u6807 \u5217\u8868 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u4ece \u5f53\u524d \u822a\u8def \u70b9 \u641c\u7d22 \u5730 \u6807\u7684 \u6700\u5927 \u8ddd\u79bb \u3002 stop _ at _ junction ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u901a\u8fc7 \u8def\u53e3 \u7684 \u5730\u6807 \u641c\u7d22 \u3002 \u8fd4\u56de : list ( carla . Landmark ) get _ landmarks _ of _ type ( self , distance , type , stop _ at _ junction = False ) \u8fd4\u56de \u4ece \u5f53\u524d \u8def\u5f84 \u70b9\u5230 \u6307\u5b9a \u8ddd\u79bb \u7684 \u6307\u5b9a \u7c7b\u578b \u9053\u8def \u4e2d \u7684 \u5730\u6807 \u5217\u8868 \u3002 \u53c2\u6570 : distance ( float - \u7c73 ) - \u4ece \u5f53\u524d \u822a\u8def \u70b9 \u641c\u7d22 \u5730 \u6807\u7684 \u6700\u5927 \u8ddd\u79bb \u3002 type ( str ) - \u8981 \u641c\u7d22 \u7684 \u5730\u6807 \u7c7b\u578b \u3002 stop _ at _ junction ( bool ) - \u542f\u7528 \u6216 \u7981\u7528 \u901a\u8fc7 \u8def\u53e3 \u7684 \u5730\u6807 \u641c\u7d22 \u3002 \u8fd4\u56de : list ( carla . Landmark ) get _ left _ lane ( self ) \u6839\u636e \u5f53\u524d \u8def\u70b9 \u7684 \u65b9\u5411 \u5728 \u5de6 \u8f66\u9053 \u4e2d\u5fc3 \u751f\u6210 \u8def\u70b9 \uff0c \u540c\u65f6 \u8003\u8651 \u8be5 \u4f4d\u7f6e \u662f\u5426 \u5141\u8bb8 \u53d8\u9053 \u3002 \u5982\u679c \u8f66\u9053 \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 \u8fd4\u56de : carla . Waypoint get _ right _ lane ( self ) \u6839\u636e \u5f53\u524d \u8def\u70b9 \u7684 \u65b9\u5411 \u5728 \u53f3 \u8f66\u9053 \u4e2d\u5fc3 \u751f\u6210 \u8def\u70b9 \uff0c \u5e76 \u8003\u8651 \u8be5 \u4f4d\u7f6e \u662f\u5426 \u5141\u8bb8 \u53d8\u9053 \u3002 \u5982\u679c \u8f66\u9053 \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 \u8fd4\u56de : carla . Waypoint","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_226","text":"__ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaweatherparameters","text":"\u6b64\u7c7b \u5b9a\u4e49 \u4e86 \u5305\u542b \u5149\u7167 \u548c \u5929\u6c14 \u89c4\u8303 \u7684 \u5bf9\u8c61 \uff0c \u8fd9\u4e9b \u89c4\u8303 \u7a0d\u540e \u53ef\u4ee5 \u5e94\u7528 \u5728 carla . World \u4e2d \u3002 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u8fd9\u4e9b \u6761\u4ef6 \u4ec5 \u5f71\u54cd sensor . camera . rgb \u3002 \u5b83\u4eec \u65e2 \u4e0d \u5f71\u54cd \u6f14\u5458 \u7684 \u7269\u7406 \u7279\u6027 \uff0c \u4e5f \u4e0d \u5f71\u54cd \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8fd9\u4e9b \u53c2\u6570 \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u72ec\u7acb \u4e8e \u5176\u4ed6 \u53c2\u6570 \u8d77 \u4f5c\u7528 \u3002 \u589e\u52a0 \u964d\u96e8 \u96e8\u91cf \u964d\u96e8\u91cf \u4e0d\u4f1a \u81ea\u52a8 \u5f62\u6210 \u6c34\u5751 \uff0c \u4e5f \u4e0d\u4f1a \u6539\u53d8 \u9053\u8def \u7684 \u6e7f\u5ea6 \u3002 \u8fd9 \u53ef\u4ee5 \u5b9e\u73b0 \u66f4\u597d \u7684 \u5b9a\u5236 \uff0c \u4f46 \u4e5f \u610f\u5473 \u610f\u5473\u7740 \u9700\u8981 \u7f16\u5199 \u73b0\u5b9e \u6761\u4ef6 \u7684 \u811a\u672c \u3002 \u7136\u800c \uff0c \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u5b9e\u9645 \u8fd0\u884c \u7684 \u52a8\u6001 \u5929\u6c14 \u6761\u4ef6 \u7684 \u793a\u4f8b \u3002","title":"carla . WeatherParameters"},{"location":"python_api/#_227","text":"cloudiness ( float ) \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \uff0c 0 \u8868\u793a \u6674\u6717 \u7684 \u5929\u7a7a \uff0c 100 \u8868\u793a \u5b8c\u5168 \u88ab \u4e91 \u8986\u76d6 \u3002 precipitation ( float ) \u964d\u96e8 \u5f3a\u5ea6 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \uff0c 0 \u8868\u793a \u65e0\u96e8 \uff0c 100 \u8868\u793a \u5927\u96e8 \u3002 precipitation _ deposits ( float ) \u786e\u5b9a \u6c34\u5751 \u7684 \u521b\u5efa \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \uff0c 0 \u8868\u793a \u5b8c\u5168 \u6ca1\u6709 \u6c34 \uff0c 100 \u8868\u793a \u9053\u8def \u5b8c\u5168 \u88ab \u6c34 \u8986\u76d6 \u3002 \u6c34\u5751 \u662f \u7528 \u9759\u6001 \u566a\u97f3 \u521b\u5efa \u7684 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83\u4eec \u603b\u662f \u51fa\u73b0 \u5728 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 wind _ intensity ( float ) \u63a7\u5236 \u98ce \u7684 \u5f3a\u5ea6 \uff0c \u503c \u4ece 0 \uff08 \u65e0 \u98ce \uff09 \u5230 100 \uff08 \u5f3a\u98ce \uff09 \u3002 \u98ce \u786e\u5b9e \u4f1a \u5f71\u54cd \u964d\u96e8 \u65b9\u5411 \u548c \u6811\u53f6 \uff0c \u56e0\u6b64 \u9650\u5236 \u8be5\u503c \u4ee5 \u907f\u514d \u52a8\u753b \u95ee\u9898 \u3002 sun _ azimuth _ angle ( float - \u5ea6 ) \u592a\u9633 \u7684 \u65b9\u4f4d \u65b9\u4f4d\u89d2 \u3002 \u503c \u8303\u56f4 \u4e3a 0 \u5230 360 \u3002 \u96f6\u662f \u7531 \u865a\u5e7b \u5f15\u64ce \u786e\u5b9a \u7684 \u7403\u4f53 \u4e2d \u7684 \u539f\u70b9 \u3002 sun _ altitude _ angle ( float - \u5ea6 ) \u592a\u9633 \u7684 \u9ad8\u5ea6 \u89d2 \u3002 \u503c \u8303\u56f4 \u4ece - 90 \u5230 90 \uff0c \u5206\u522b \u5bf9\u5e94 \u4e8e \u5348\u591c \u548c \u4e2d\u5348 \u3002 fog _ density ( float ) \u96fe \u6d53\u5ea6 \u6216 \u539a\u5ea6 \u3002 \u5b83 \u4ec5 \u5f71\u54cd RGB \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \u3002 fog _ distance ( float - \u7c73 ) \u96fe \u5f00\u59cb \u8ddd\u79bb \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 \u65e0\u7a77 \u65e0\u7a77\u5927 \u3002 wetness ( float ) \u6e7f\u5ea6 \u5f3a\u5ea6 \u3002 \u5b83 \u4ec5 \u5f71\u54cd RGB \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \u3002 fog _ falloff ( float ) \u96fe \u7684 \u5bc6\u5ea6 \uff08 \u4ee5 \u7279\u5b9a \u8d28\u91cf \u8ba1 \uff09 \u4ece 0 \u5230 \u65e0\u7a77 \u65e0\u7a77\u5927 \u3002 \u503c\u8d8a \u5927 \uff0c \u96fe\u6c14 \u8d8a \u6d53\u91cd \uff0c \u96fe\u6c14 \u8fbe\u5230 \u7684 \u9ad8\u5ea6 \u4e5f \u8d8a \u5c0f \u3002 \u5bf9\u5e94 \u4e8e UE \u6587\u6863 \u4e2d \u7684 \u96fe \u9ad8\u5ea6 \u8870\u51cf \u3002 \u5982\u679c \u503c\u4e3a 0 \uff0c \u96fe \u5c06 \u6bd4 \u7a7a\u6c14 \u4eae \uff0c \u5e76 \u8986\u76d6 \u6574\u4e2a \u573a\u666f \u3002 \u503c\u4e3a 1 \u65f6 \uff0c \u5bc6\u5ea6 \u5927\u7ea6 \u4e0e \u7a7a\u6c14 \u4e00\u6837 \uff0c \u53ef \u5230\u8fbe \u6b63\u5e38 \u5927\u5c0f \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u5bf9\u4e8e \u5927\u4e8e 5 \u7684 \u503c \uff0c \u7a7a\u6c14 \u5c06 \u975e\u5e38 \u7a20\u5bc6 \uff0c \u4ee5\u81f3 \u81f3\u4e8e \u4ee5\u81f3\u4e8e \u5728 \u5730\u9762 \u4e0a\u4f1a \u88ab \u538b\u7f29 \u3002 scattering _ intensity ( float ) \u63a7\u5236 \u5149\u5bf9 \u4f53\u79ef \u96fe \u7684 \u8d21\u732e \u7a0b\u5ea6 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 mie _ scattering _ scale ( float ) \u63a7\u5236 \u5149 \u4e0e \u5927 \u9897\u7c92 \uff08 \u5982 \u82b1\u7c89 \u6216 \u7a7a\u6c14 \u6c61\u67d3 \u7a7a\u6c14\u6c61\u67d3 \uff09 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \uff0c \u5bfc\u81f4 \u5929\u7a7a \u6726\u80e7 \uff0c \u5149\u6e90 \u5468\u56f4 \u6709 \u5149\u6655 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 rayleigh _ scattering _ scale ( float ) \u63a7\u5236 \u5149 \u4e0e \u7a7a\u6c14 \u5206\u5b50 \u7b49 \u5c0f \u7c92\u5b50 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5149 \u7684 \u6ce2\u957f \uff0c \u5bfc\u81f4 \u767d\u5929 \u7684 \u5929\u7a7a \u4e3a \u84dd\u8272 \uff0c \u665a\u4e0a \u7684 \u5929\u7a7a \u4e3a \u7ea2\u8272 \u3002 dust _ storm ( float ) \u786e\u5b9a \u6c99\u5c18 \u5c18\u66b4 \u6c99\u5c18\u66b4 \u5929\u6c14 \u7684 \u5f3a\u5ea6 \u3002 \u503c \u8303\u56f4 \u4ece 0 \u5230 100 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_228","text":"__ init __ ( self , cloudiness = 0.0 , precipitation = 0.0 , precipitation _ deposits = 0.0 , wind _ intensity = 0.0 , sun _ azimuth _ angle = 0.0 , sun _ altitude _ angle = 0.0 , fog _ density = 0.0 , fog _ distance = 0.0 , wetness = 0.0 , fog _ falloff = 0.0 , scattering _ intensity = 0.0 , mie _ scattering _ scale = 0.0 , rayleigh _ scattering _ scale = 0.0331 ) \u521d\u59cb \u521d\u59cb\u5316 \u5b9a\u4e49 \u5929\u6c14 \u6761\u4ef6 \u7684 \u5bf9\u8c61 \u7684 \u65b9\u6cd5 \u3002 \u8be5\u7c7b \u6709 \u4e00\u4e9b \u9488\u5bf9 \u4e0d\u540c \u4e2d\u5348 \u548c \u65e5\u843d \u6761\u4ef6 \u7684 \u9884\u8bbe \uff0c \u5982 \u4e0b\u9762 \u7684 \u6ce8\u91ca \u6240\u793a \u3002 \u53c2\u6570 : cloudiness ( float ) - 0 \u4e3a \u6674\u5929 \uff0c 100 \u4e3a \u9634\u5929 \u3002 precipitation ( float ) - 0 \u8868\u793a \u5b8c\u5168 \u6ca1\u6709 \u4e0b\u96e8 \uff0c 100 \u8868\u793a \u5927\u96e8 \u3002 precipitation _ deposits ( float ) - 0 \u8868\u793a \u9053\u8def \u4e0a \u6ca1\u6709 \u6c34\u5751 \uff0c 100 \u8868\u793a \u9053\u8def \u5b8c\u5168 \u88ab \u96e8\u6c34 \u8986\u76d6 \u3002 wind _ intensity ( float ) - 0 \u8868\u793a \u5e73\u6d6a \u98ce\u5e73\u6d6a\u9759 \uff0c 100 \u8868\u793a \u5f3a\u98ce \u3002 sun _ azimuth _ angle ( float - \u5ea6 ) - 0 \u662f \u4efb\u610f \u5317 \uff0c 180 \u662f \u5176 \u5bf9\u5e94 \u7684 \u5357 \u3002 sun _ altitude _ angle ( float - \u5ea6 ) - 90 \u662f \u4e2d\u5348 \uff0c - 90 \u662f \u5348\u591c \u3002 fog _ density ( float ) - \u96fe \u7684 \u6d53\u5ea6 \u6216 \u539a\u5ea6 \uff0c \u4ece 0 \u5230 100 \u3002 fog _ distance ( float - \u7c73 ) - \u96fe \u5f00\u59cb \u7684 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 wetness ( float ) - \u9053\u8def \u7684 \u6e7f\u5ea6 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u4ece 0 \u5230 100 \u3002 fog _ falloff ( float ) - \u96fe \u7684 \u5bc6\u5ea6 \uff08 \u7279\u5b9a \u8d28\u91cf \uff09 \uff0c \u4ece 0 \u5230 \u65e0\u7a77 \u65e0\u7a77\u5927 \u3002 scattering _ intensity ( float ) - \u63a7\u5236 \u5149\u7ebf \u5bf9 \u4f53\u79ef \u96fe \u7684 \u8d21\u732e \u7a0b\u5ea6 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 mie _ scattering _ scale ( float ) - \u63a7\u5236 \u5149 \u4e0e \u5927 \u9897\u7c92 \uff08 \u5982 \u82b1\u7c89 \u6216 \u7a7a\u6c14 \u6c61\u67d3 \u7a7a\u6c14\u6c61\u67d3 \uff09 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \uff0c \u5bfc\u81f4 \u5929\u7a7a \u6726\u80e7 \uff0c \u5149\u6e90 \u5468\u56f4 \u6709 \u5149\u6655 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a 0 \u65f6 \uff0c \u6ca1\u6709 \u8d21\u732e \u3002 rayleigh _ scattering _ scale ( float ) - \u63a7\u5236 \u5149 \u4e0e \u7a7a\u6c14 \u5206\u5b50 \u7b49 \u5c0f \u9897\u7c92 \u7684 \u76f8\u4e92 \u4f5c\u7528 \u76f8\u4e92\u4f5c\u7528 \u3002 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5149 \u7684 \u6ce2\u957f \uff0c \u5bfc\u81f4 \u767d\u5929 \u7684 \u5929\u7a7a \u4e3a \u84dd\u8272 \uff0c \u665a\u4e0a \u7684 \u5929\u7a7a \u4e3a \u7ea2\u8272 \u3002 \u7b14\u8bb0 : ClearNoon , CloudyNoon , WetNoon , WetCloudyNoon , SoftRainNoon , MidRainyNoon , HardRainNoon , ClearSunset , CloudySunset , WetSunset , WetCloudySunset , SoftRainSunset , MidRainSunset , HardRainSunset .","title":"\u65b9\u6cd5"},{"location":"python_api/#_229","text":"__ eq __ ( self , other ) \u5982\u679c \u4e24\u4e2a \u5bf9\u8c61 \u7684 \u53d8\u91cf \u76f8\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ ne __ ( self , other ) \u5982\u679c \u4e24\u4e2a \u5bf9\u8c61 \u7684 \u53d8\u91cf \u4e0d\u540c \uff0c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlawheelphysicscontrol","text":"\u4e3a \u8f66\u8f6e \u5bf9\u8c61 \u5b9a\u4e49 \u7279\u5b9a \u7269\u7406 \u53c2\u6570 \u7684 \u7c7b \uff0c \u8fd9\u4e9b \u8f66\u8f6e \u5bf9\u8c61 \u5c06 \u6210\u4e3a carla . VehiclePhysicsControl \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u4ee5 \u5c06 \u8f66\u8f86 \u4eff\u771f \u4e3a \u6750\u8d28 \u5bf9\u8c61 \u3002","title":"carla . WheelPhysicsControl"},{"location":"python_api/#_230","text":"tire _ friction ( float ) \u6307\u793a \u8f66\u8f6e \u6469\u64e6 \u6469\u64e6\u529b \u7684 \u6807\u91cf \u503c \u3002 damping _ rate ( float ) \u8f66\u8f6e \u7684 \u963b\u5c3c \u7387 \u3002 max _ steer _ angle ( float - \u5ea6 ) \u8f66\u8f6e \u53ef\u4ee5 \u8f6c\u5411 \u7684 \u6700\u5927 \u89d2\u5ea6 \u3002 radius ( float - centimeters ) \u8f6e\u5b50 \u7684 \u534a\u5f84 \u3002 max _ brake _ torque ( float - N * m ) \u6700\u5927 \u5236\u52a8 \u626d\u77e9 \u3002 max _ handbrake _ torque ( float - N * m ) \u6700\u5927 \u624b\u5239 \u626d\u77e9 \u3002 position ( carla . Vector3D ) \u8f66\u8f6e \u7684 \u4e16\u754c \u4f4d\u7f6e \u3002 \u8fd9\u662f \u4e00\u4e2a \u53ea\u8bfb \u53c2\u6570 \u3002 long _ stiff _ value ( float - kg per radian ) \u6bcf \u5355\u4f4d \u91cd\u529b \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u8f6e\u80ce \u7eb5\u5411 \u521a\u5ea6 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u4e2a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \u3002 lat _ stiff _ max _ load ( float ) \u6700\u5927 \u6807\u51c6 \u6807\u51c6\u5316 \u8f6e\u80ce \u8d1f\u8f7d \uff0c \u5728 \u8be5 \u8d1f\u8f7d \u4e0b \uff0c \u65e0\u8bba \u5411 \u8f6e\u80ce \u65bd\u52a0 \u591a\u5c11 \u989d\u5916 \u8d1f\u8f7d \uff0c \u8f6e\u80ce \u90fd \u4e0d\u518d \u63d0\u4f9b \u4fa7\u5411 \u521a\u5ea6 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u4e2a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \u3002 lat _ stiff _ value ( float ) \u6bcf \u5355\u4f4d \u6a2a\u5411 \u6ed1\u79fb \u7684 \u6700\u5927 \u521a\u5ea6 \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u6709 \u4e00\u4e2a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u503c \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_231","text":"__ init __ ( self , tire _ friction = 2.0 , damping _ rate = 0.25 , max _ steer _ angle = 70.0 , radius = 30.0 , max _ brake _ torque = 1500.0 , max _ handbrake _ torque = 3000.0 , position = ( 0.0 , 0.0 , 0.0 ) ) \u53c2\u6570 : tire _ friction ( float ) damping _ rate ( float ) max _ steer _ angle ( float - \u5ea6 ) radius ( float - \u5398\u7c73 ) max _ brake _ torque ( float - N * m ) max _ handbrake _ torque ( float - N * m ) position ( carla . Vector3D - \u7c73 )","title":"\u65b9\u6cd5"},{"location":"python_api/#_232","text":"__ eq __ ( self , other = carla . WheelPhysicsControl ) __ ne __ ( self , other = carla . WheelPhysicsControl ) __ str __ ( self )","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaworld","text":"\u4e16\u754c \u5bf9\u8c61 \u7531 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \uff0c \u4ee5\u4fbf \u4e3a \u4eff\u771f \u63d0\u4f9b \u4e00\u4e2a \u53d1\u751f \u7684 \u5730\u65b9 \u3002 \u4e16\u754c \u5305\u542b \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u7684 \u5730\u56fe \uff0c \u5373 \u8d44\u4ea7 \uff0c \u800c \u4e0d\u662f \u5bfc\u822a \u5730\u56fe \u3002 \u5bfc\u822a \u5730\u56fe \u662f carla . Map \u7c7b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b83 \u8fd8 \u7ba1\u7406 \u5176\u4e2d \u7684 \u5929\u6c14 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6bcf\u4e2a \u4eff\u771f \u53ea\u80fd \u6709 \u4e00\u4e2a \u4e16\u754c \uff0c \u4f46 \u53ef\u4ee5 \u968f\u65f6 \u66f4\u6539 \u3002","title":"carla . World"},{"location":"python_api/#_233","text":"id ( int ) \u4e0e \u8fd9\u4e2a \u4e16\u754c \u76f8\u5173 \u7684 \u5267\u96c6 \u7684 ID \u3002 \u5267\u96c6 \u662f \u4eff\u771f \u7684 \u4e0d\u540c \u9636\u6bb5 \u3002 \u6bcf\u5f53 \u4e16\u754c \u88ab \u7981\u7528 \u6216 \u91cd\u65b0 \u52a0\u8f7d \u65f6 \uff0c \u8fd9\u4e9b \u90fd \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u8ddf\u8e2a \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u907f\u514d \u53ef\u80fd \u51fa\u73b0 \u7684 \u95ee\u9898 \u3002 debug ( carla . DebugHelper ) \u8d1f\u8d23 \u521b\u5efa \u4e0d\u540c \u7684 \u5f62\u72b6 \u4ee5 \u8fdb\u884c \u8c03\u8bd5 \u3002 \u67e5\u770b \u5b83 \u7684 \u7c7b \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_234","text":"apply _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter ( normal , diffuse , etc ) \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u5bf9\u5e94 \u4e8e object _ name \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter ( normal , diffuse , etc ) \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u5bf9\u5e94 \u4e8e objects _ name _ list \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureColor ) apply _ float _ color _ texture _ to _ object ( self , object _ name , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter \uff08 \u6cd5\u7ebf \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7b49 \uff09 \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u4e0e object _ name \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u5bf9\u5e94 \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : object _ name ( str ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ float _ color _ texture _ to _ objects ( self , objects _ name _ list , material _ parameter , texture ) \u5bf9\u5e94 \u4e8e material _ parameter \uff08 \u6cd5\u7ebf \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7b49 \uff09 \u7684 \u5b57 \u6bb5 \u4e2d \u7684 \u5bf9\u8c61 \u5e94\u7528 \u5230 \u4e0e objects _ name _ list \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u5bf9\u5e94 \u7684 \u573a\u666f \u4e2d \u7684 texture \u5bf9\u8c61 \u3002 \u53c2\u6570 : objects _ name _ list ( list ( str ) ) material _ parameter ( carla . MaterialParameter ) texture ( TextureFloatColor ) apply _ settings ( self , world _ settings ) \u6b64 \u65b9\u6cd5 \u5c06 \u5bf9\u8c61 \u4e2d \u5305\u542b \u7684 \u8bbe\u7f6e \u5e94\u7528 \u4e8e \u8fd0\u884c \u7684 \u4eff\u771f \uff0c \u5e76 \u8fd4\u56de \u5b83\u4eec \u6240 \u5b9e\u73b0 \u7684 \u5e27 \u7684 ID \u3002 \u53c2\u6570 : world _ settings ( carla . WorldSettings ) \u8fd4\u56de : int \u8b66\u544a : \u5982\u679c \u542f\u7528 \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76\u4e14 \u6b63\u5728 \u8fd0\u884c \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \uff0c \u5219 \u4e5f \u5fc5\u987b \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u672c\u6587 \u4ee5 \u4e86\u89e3 \u5982\u4f55 \u64cd\u4f5c \u3002 apply _ textures _ to _ object ( self , object _ name , diffuse _ texture , emissive _ texture , normal _ texture , ao _ roughness _ metallic _ emissive _ texture ) \u5c06 carla . MaterialParameter \u4e2d \u7684 \u6240\u6709 \u7eb9\u7406 \u5b57 \u6bb5 \u5e94\u7528 \u5230 \u5bf9\u8c61 object _ name \u3002 \u8fd9\u91cc \u4e0d\u4f1a \u5e94\u7528 \u7a7a \u7eb9\u7406 \u3002 \u53c2\u6570 : object _ name ( str ) diffuse _ texture ( TextureColor ) emissive _ texture ( TextureFloatColor ) normal _ texture ( TextureFloatColor ) ao _ roughness _ metallic _ emissive _ texture ( TextureFloatColor ) apply _ textures _ to _ objects ( self , objects _ name _ list , diffuse _ texture , emissive _ texture , normal _ texture , ao _ roughness _ metallic _ emissive _ texture ) \u5c06 carla . MaterialParameter \u4e2d \u7684 \u6240\u6709 \u7eb9\u7406 \u5b57 \u6bb5 \u5e94\u7528 \u4e8e objects _ name _ list \u4e2d \u7684 \u6240\u6709 \u5bf9\u8c61 \u3002 \u8fd9\u91cc \u4e0d\u4f1a \u5e94\u7528 \u7a7a \u7eb9\u7406 \u3002 \u53c2\u6570 : objects _ name _ list ( list ( str ) ) diffuse _ texture ( TextureColor ) emissive _ texture ( TextureFloatColor ) normal _ texture ( TextureFloatColor ) ao _ roughness _ metallic _ emissive _ texture ( TextureFloatColor ) cast _ ray ( self , initial _ location , final _ location ) \u5c06 \u5149\u7ebf \u4ece \u6307\u5b9a \u7684 initial _ location \u6295\u5c04 \u5230 final _ location \u3002 \u7136\u540e \uff0c \u8be5 \u51fd\u6570 \u68c0\u6d4b \u4e0e \u5c04\u7ebf \u76f8\u4ea4 \u7684 \u6240\u6709 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \uff0c \u5e76 \u6309 \u987a\u5e8f \u8fd4\u56de carla . LabelledPoint \u5217\u8868 \u3002 \u53c2\u6570 : initial _ location ( carla . Location ) - The initial position of the ray . final _ location ( carla . Location ) - The final position of the ray . \u8fd4\u56de : list ( carla . LabelledPoint ) enable _ environment _ objects ( self , env _ objects _ ids , enable ) snippet \u2192 \u542f\u7528 \u6216 \u7981\u7528 \u4e00\u7ec4 \u7531 \u5176 id \u6807\u8bc6 \u7684 \u73af\u5883 \u5bf9\u8c61 \u3002 \u8fd9\u4e9b \u5bf9\u8c61 \u5c06 \u4ece \u5173\u5361 \u4e2d \u51fa\u73b0 \u6216 \u6d88\u5931 \u3002 \u53c2\u6570 : env _ objects _ ids ( set ( int ) ) - \u8981 \u66f4\u6539 \u7684 \u73af\u5883 \u5bf9\u8c61 ID \u96c6 \u3002 enable ( bool ) - \u5e94\u7528 \u4e8e \u96c6\u5408 \u4e2d \u6240\u6709 \u73af\u5883 \u5bf9\u8c61 \u7684 \u72b6\u6001 \u3002 freeze _ all _ traffic _ lights ( self , frozen ) \u51bb\u7ed3 \u6216 \u89e3\u51bb \u573a\u666f \u4e2d \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u51bb\u7ed3 \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff0c \u4f46 \u65f6\u95f4 \u4e0d\u4f1a \u66f4\u65b0 \u5b83\u4eec \uff0c \u76f4\u5230 \u89e3\u51bb \u3002 \u53c2\u6570 : frozen ( bool ) ground _ projection ( self , location , search _ distance ) \u5728 \u573a\u666f \u4e2d \u5411\u4e0b \u6295\u5f71 \u6307\u5b9a \u70b9 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u4ece \u4f4d\u7f6e ( 0 , 0 , - 1 ) \uff08 \u5411\u4e0b \uff09 \u6295\u5c04 \u4e00\u6761 \u5c04\u7ebf \uff0c \u5e76 \u8fd4\u56de \u4e00\u4e2a carla . LabelledPoint \u5bf9\u8c61 \uff0c \u8be5 \u5bf9\u8c61 \u5177\u6709 \u8be5 \u5c04\u7ebf \u76f8\u4ea4 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u51e0\u4f55 \u51e0\u4f55\u4f53 \uff08 \u901a\u5e38 \u662f \u5730\u9762 \uff09 \u3002 \u5982\u679c \u5728 search _ distance \u8303\u56f4 \u5185 \u627e\u5230 \u672a\u627e\u5230 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \uff0c \u5219 \u51fd\u6570 \u8fd4\u56de None \u3002 \u53c2\u6570 : location ( carla . Location ) - \u8981 \u6295\u5f71 \u7684 \u70b9 \u3002 search _ distance ( float ) - \u6267\u884c \u6295\u5f71 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 \u8fd4\u56de : carla . LabelledPoint load _ map _ layer ( self , map _ layers ) snippet \u2192 \u52a0\u8f7d \u56fe\u5c42 \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u8be5 \u5c42\u6b21 \u5df2\u7ecf \u52a0\u8f7d \u5219 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 \uff1a map _ layers ( carla . MapLayer ) - \u52a0\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u7684 \u63a9\u819c \u3002 \u8b66\u544a \uff1a \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 on _ tick ( self , callback ) \u6b64 \u65b9\u6cd5 \u7528\u4e8e \u5f02\u6b65 \u6a21\u5f0f \u3002 \u5b83 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b9a\u4e49 \u7684 callback \u51fd\u6570 \u542f\u52a8 \u56de\u8c03 \uff0c \u5e76 \u8fd4\u56de \u56de\u8c03 \u7684 ID \u3002 \u6bcf\u5f53 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53d1\u51fa \u65f6 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \uff0c \u5c31 \u4f1a \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 \u5b83 \u9700\u8981 \u4e00\u4e2a carla . WorldSnapshot \u4f5c\u4e3a \u53c2\u6570 \uff0c \u8fd9 \u53ef\u4ee5 \u4ece wait _ for _ tick ( ) \u83b7\u5f97 \u3002 \u4f7f\u7528 remove _ on _ tick ( ) \u6765 \u505c\u6b62 \u56de\u8c03 \u3002 \u53c2\u6570 \uff1a callback ( carla . WorldSnapshot ) - \u5c06 \u5feb\u7167 \u4f5c\u4e3a \u5f3a\u5236 \u53c2\u6570 \u7684 \u51fd\u6570 \uff0c \u5f53 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \u65f6 \u5c06 \u8c03\u7528 \u8be5 \u51fd\u6570 \u3002 \u8fd4\u56de : int project _ point ( self , location , direction , search _ distance ) \u5c06 \u6307\u5b9a \u70b9 \u6295\u5f71 \u5230 \u573a\u666f \u4e2d \u7684 \u6240 \u9700 \u65b9\u5411 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u4ece \u67d0\u4e2a \u65b9\u5411 \u7684 \u67d0\u4e2a \u4f4d\u7f6e \u6295\u5c04 \u4e00\u6761 \u5c04\u7ebf \uff0c \u5e76 \u8fd4\u56de \u4e00\u4e2a \u5e26\u6709 \u8be5 \u5c04\u7ebf \u76f8\u4ea4 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 carla . Labelled \u5bf9\u8c61 \u3002 \u5982\u679c \u5728 search _ distance \u8303\u56f4 \u5185 \u627e\u5230 \u672a\u627e\u5230 \u51e0\u4f55 \u56fe\u5f62 \u51e0\u4f55\u56fe\u5f62 \uff0c \u5219 \u51fd\u6570 \u8fd4\u56de None \u3002 \u53c2\u6570 : location ( carla . Location ) - \u8981 \u6295\u5f71 \u7684 \u70b9 \u3002 direction ( carla . Vector3D ) - \u6295\u5f71 \u65b9\u5411 \u3002 search _ distance ( float ) - \u6267\u884c \u6295\u5f71 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 \u8fd4\u56de : carla . LabelledPoint remove _ on _ tick ( self , callback _ id ) \u505c\u6b62 \u4ee5 on _ tick ( ) \u542f\u52a8 \u7684 \u56de\u8c03 callback _ id \u3002 \u53c2\u6570 : callback _ id ( callback ) - \u8981 \u5220\u9664 \u7684 \u56de\u8c03 \u3002 \u521b\u5efa \u56de\u8c03 \u65f6 \u8fd4\u56de ID \u3002 reset _ all _ traffic _ lights ( self ) \u5c06 \u5730\u56fe \u4e2d \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5468\u671f \u91cd\u7f6e \u4e3a \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \u3002 spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) snippet \u2192 \u8be5 \u65b9\u6cd5 \u5c06 \u521b\u5efa \u3001 \u8fd4\u56de \u5e76 \u751f\u6210 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5230 \u4e16\u754c \u4e2d \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u9700\u8981 \u521b\u5efa \u53ef\u7528 \u7684 \u84dd\u56fe \u548c \u53d8\u6362 \uff08 \u4f4d\u7f6e \u548c \u65cb\u8f6c \uff09 \u3002 \u5b83 \u8fd8 \u53ef\u4ee5 \u9644\u52a0 \u5230 \u5177\u6709 \u7279\u5b9a \u9644\u4ef6 \u7c7b\u578b \u7684 \u7236\u7ea7 \u3002 \u53c2\u6570 : blueprint ( carla . ActorBlueprint ) - \u5c06 \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5f15\u7528 \u3002 transform ( carla . Transform ) - \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u751f\u6210 \u65f6 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 attach _ to ( carla . Actor ) - \u751f\u6210 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8ddf\u968f \u7684 \u7236 \u5bf9\u8c61 \u3002 attachment ( carla . AttachmentType ) - \u6839\u636e \u5176\u7236 \u5bf9\u8c61 \u786e\u5b9a \u4f4d\u7f6e \u53d8\u5316 \u7684 \u56fa\u5b9a \u548c \u4e25\u5bc6 \u7a0b\u5ea6 \u3002 \u8fd4\u56de : carla . Actor tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \uff0c \u5373 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5728 \u8ba1\u7b97 \u4e0b \u4e00\u5e27 \u4e4b\u524d \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u8fd9\u4e2a \u65b9\u6cd5 \u5c06 \u53d1\u9001 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5e76 \u8ba9 \u4f4d\u4e8e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5b83 \u8fd4\u56de \u7531 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8ba1\u7b97 \u7684 \u65b0 \u5e27 ID \u3002 \u53c2\u6570 \uff1a seconds ( float - \u79d2 ) - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e94\u8be5 \u7b49\u5f85 \u6ef4\u7b54 \u4fe1\u53f7 \u7684 \u6700\u5927 \u65f6\u95f4 \u3002 \u5b83 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 10.0 \u3002 \u8fd4\u56de \uff1a int \u6ce8\u610f \uff1a \u5982\u679c \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u6ca1\u6709 \u6536\u5230 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4eff\u771f \u5c06 \u51bb\u7ed3 \u3002 \u6b64\u5916 \uff0c \u5982\u679c \u4ece \u4e0d\u540c \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a5\u6536 \u5230 \u8bb8\u591a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5219 \u53ef\u80fd \u5b58\u5728 \u540c\u6b65 \u95ee\u9898 \u3002 \u8bf7 \u9605\u8bfb \u6709\u5173 __ \u540c\u6b65 \u6a21\u5f0f __ \u7684 \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 try _ spawn _ actor ( self , blueprint , transform , attach _ to = None , attachment = Rigid ) \u548c spawn _ actor ( ) \u4e00\u6837 \uff0c \u4f46\u662f \u5355 \u5931\u8d25 \u65f6\u5019 \u8fd4\u56de None \u800c \u4e0d\u662f \u629b\u51fa \u5f02\u5e38 \u3002 \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) - \u5c06 \u4ece\u4e2d \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5f15\u7528 \u3002 transform ( carla . Transform ) - \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u4f7f\u7528 \u7684 \u4f4d\u7f6e \u548c \u671d\u5411 \u3002 attach _ to ( carla . Actor ) - \u6d3e\u751f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u8ddf\u968f \u7684 \u7236 \u5bf9\u8c61 \u3002 attachment ( carla . AttachmentType ) - \u6839\u636e \u5176\u7236 \u5bf9\u8c61 \u786e\u5b9a \u4f4d\u7f6e \u66f4\u6539 \u7684 \u56fa\u5b9a \u548c \u4e25\u683c \u7a0b\u5ea6 \u3002 \u8fd4\u56de \uff1a carla . Actor unload _ map _ layer ( self , map _ layers ) snippet \u2192 \u5c06 \u9009\u5b9a \u7684 \u56fe\u5c42 \u5378\u8f7d \u5230 \u6307\u5b9a \u5c42\u6b21 \u3002 \u5982\u679c \u5c42 \u5df2\u7ecf \u5378\u8f7d \uff0c \u5219 \u8c03\u7528 \u6ca1\u6709 \u4efb\u4f55 \u6548\u679c \u3002 \u53c2\u6570 : map _ layers ( carla . MapLayer ) - \u8981 \u5378\u8f7d \u56fe\u5c42 \u7684 \u63a9\u819c \u3002 \u8b66\u544a : \u8fd9 \u4ec5\u4ec5 \u5f71\u54cd \u5206\u5c42 \uff08 Opt \uff09 \u5730\u56fe \u3002 \u6700\u5c0f \u5e03\u5c40 \u5305\u62ec \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3002 wait _ for _ tick ( self , seconds = 10.0 ) \u8be5 \u65b9\u6cd5 \u4f7f\u7528 \u5f02\u6b65 \u6a21\u5f0f \u3002 \u5b83 \u4f7f \u5ba2\u6237 \u5ba2\u6237\u7aef \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u5f53 \u8ba1\u7b97 \u4e0b \u4e00\u5e27 \u65f6 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u52fe\u9009 \u5e76 \u8fd4\u56de \u63cf\u8ff0 \u4e16\u754c \u65b0 \u72b6\u6001 \u7684 \u5feb\u7167 \u3002 \u53c2\u6570 : seconds ( float - seconds ) - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7b49\u5f85 \u6ef4\u7b54 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 10.0 \u3002 \u8fd4\u56de : carla . WorldSnapshot","title":"\u65b9\u6cd5"},{"location":"python_api/#_235","text":"get _ actor ( self , actor _ id ) \u901a\u8fc7 ID \u67e5\u627e \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u5982\u679c \u627e\u5230 \u672a\u627e\u5230 \u5219 \u8fd4\u56de None \u3002 \u53c2\u6570 : actor _ id ( int ) \u8fd4\u56de : carla . Actor get _ actors ( self , actor _ ids = None ) \u68c0\u7d22 carla . Actor \u5143\u7d20 \u5217\u8868 \uff0c \u4f7f\u7528 \u63d0\u4f9b \u7684 ID \u5217\u8868 \u6216\u4ec5 \u5217\u51fa \u821e\u53f0 \u4e0a \u7684 \u6bcf\u4e2a \u4eba \u3002 \u5982\u679c \u4e00\u4e2a ID \u4e0d \u4e0e \u4efb\u4f55 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u76f8\u5bf9 \u5e94 \uff0c \u5b83 \u5c06 \u88ab \u6392\u9664 \u5728 \u8fd4\u56de \u7684 \u5217\u8868 \u4e4b\u5916 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 ID \u5217\u8868 \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u53ef\u80fd \u5177\u6709 \u4e0d\u540c \u7684 \u957f\u5ea6 \u3002 \u53c2\u6570 : actor _ ids ( list ) - \u6b63\u5728 \u641c\u7d22 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u8bbe\u7f6e \u4e3a None \u5e76 \u8fd4\u56de \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd4\u56de : carla . ActorList get _ blueprint _ library ( self ) \u8fd4\u56de \u53ef\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u84dd\u56fe \u5217\u8868 \uff0c \u4ee5 \u65b9\u4fbf \u5b83\u4eec \u5728 \u4e16\u754c \u4e2d \u7684 \u751f\u6210 \u3002 \u8fd4\u56de : carla . BlueprintLibrary get _ environment _ objects ( self , object _ type = Any ) \u8fd4\u56de \u5177\u6709 \u8bf7\u6c42 \u7684 \u8bed\u4e49 \u6807\u8bb0 \u7684 EnvironmentObject \u5217\u8868 \u3002 \u8be5 \u65b9\u6cd5 \u9ed8\u8ba4 \u8fd4\u56de \u5173\u5361 \u4e2d \u7684 \u6240\u6709 \u73af\u5883 \u5bf9\u8c61 \uff0c \u4f46 \u53ef\u4ee5 \u4f7f\u7528 object _ type \u53c2\u6570 \u901a\u8fc7 \u8bed\u4e49 \u6807\u7b7e \u8fc7\u6ee4 \u67e5\u8be2 \u3002 \u53c2\u6570 : object _ type ( carla . CityObjectLabel ) - Semantic tag of the \u8fd4\u56de \u7684 EnvironmentObjects \u3002 \u8fd4\u56de : array ( carla . EnvironmentObject ) get _ level _ bbs ( self , actor _ type = Any ) \u8fd4\u56de \u4e00\u4e2a \u8fb9\u754c \u6846 \u6570\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u4e16\u754c \u7a7a\u95f4 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u8be5 \u65b9\u6cd5 \u9ed8\u8ba4 \u8fd4\u56de \u8be5 \u7ea7\u522b \u4e2d \u7684 \u6240\u6709 \u8fb9\u754c \u6846 \uff0c \u4f46 \u53ef\u4ee5 \u4f7f\u7528 actor _ type \u53c2\u6570 \u901a\u8fc7 \u8bed\u4e49 \u6807\u7b7e \u8fc7\u6ee4 \u67e5\u8be2 \u3002 \u53c2\u6570 : actor _ type ( carla . CityObjectLabel ) - \u8fd4\u56de \u7684 \u8fb9\u754c \u6846\u4e2d \u5305\u542b \u7684 \u5143\u7d20 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8fd4\u56de : array ( carla . BoundingBox ) get _ lightmanager ( self ) \u8fd4\u56de carla . LightManager \u7684 \u5b9e\u4f8b \uff0c \u53ef \u7528\u4e8e \u5904\u7406 \u573a\u666f \u4e2d \u7684 \u706f\u5149 \u3002 \u8fd4\u56de : carla . LightManager get _ map ( self ) \u5411 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8bf7\u6c42 \u5305\u542b \u6620\u5c04 \u6587\u4ef6 \u7684 XODR \uff0c \u5e76 \u5c06 \u5176 \u89e3\u6790 \u4e3a carla . Map \u8fd4\u56de \u3002 \u8fd4\u56de : carla . Map \u8b66\u544a : \u6b64 \u65b9\u6cd5 \u786e\u5b9e \u8c03\u7528 \u4eff\u771f \u3002 \u5b83 \u4ee3\u4ef7 \u5f88 \u9ad8 \uff0c \u5e76\u4e14 \u53ea\u80fd \u8c03\u7528 \u4e00\u6b21 \u3002 get _ names _ of _ all _ objects ( self ) \u8fd4\u56de \u573a\u666f \u4e2d \u53ef\u4ee5 \u4f7f\u7528 \u5e94\u7528 \u7eb9\u7406 \u51fd\u6570 \u7ed8\u5236 \u7684 \u6240\u6709 \u5bf9\u8c61 \u7684 \u540d\u79f0 \u5217\u8868 \u3002 \u8fd4\u56de : list ( str ) get _ random _ location _ from _ navigation ( self ) \u8fd9 \u53ea\u80fd \u4e0e \u884c\u4eba \u4e00\u8d77 \u4f7f\u7528 \u3002 \u5b83 \u4f7f\u7528 carla . WalkerAIController \u4e2d \u7684 go _ to _ location ( ) \u65b9\u6cd5 \u68c0\u7d22 \u8981 \u7528\u4f5c \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u968f\u673a \u4f4d\u7f6e \u3002 \u8be5 \u4f4d\u7f6e \u5c06 \u662f \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u9053\u8def \u3001 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u548c \u8349\u5730 \u533a\u57df \u4e0d \u5305\u62ec \u5728\u5185 \u3002 \u8be5 \u65b9\u6cd5 \u4e0d \u8003\u8651 \u73b0\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \uff0c \u56e0\u6b64 \u5982\u679c \u5728 \u5c1d\u8bd5 \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \u53d1\u751f \u78b0\u649e \uff0c \u5b83 \u5c06 \u8fd4\u56de \u9519\u8bef \u3002 \u770b \u4e00\u4e0b \u4f8b\u5b50 generate _ traffic . py \u3002 \u8fd4\u56de : carla . Location get _ settings ( self ) \u8fd4\u56de \u4e00\u4e2a \u5bf9\u8c61 \uff0c \u5176\u4e2d \u5305\u542b \u6709\u5173 \u4eff\u771f \u7684 \u4e00\u4e9b \u6570\u636e \uff0c \u4f8b\u5982 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u6216 \u6e32\u67d3 \u6a21\u5f0f \u3002 \u8fd4\u56de : carla . WorldSettings get _ snapshot ( self ) \u8fd4\u56de \u67d0\u4e2a \u65f6\u523b \u7684 \u4e16\u754c \u5feb\u7167 \uff0c \u5305\u542b \u6709\u5173 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u8fd4\u56de : carla . WorldSnapshot get _ spectator ( self ) snippet \u2192 \u8fd4\u56de \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u662f \u865a\u5e7b \u5f15\u64ce \u521b\u5efa \u7684 \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u901a\u5e38 ID = 0 \uff0c \u5145\u5f53 \u6444\u50cf \u6444\u50cf\u673a \u5e76 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \u4e2d \u7684 \u89c6\u56fe \u3002 \u8fd4\u56de : carla . Actor get _ traffic _ light ( self , landmark ) \u63d0\u4f9b \u4e00\u4e2a \u5730\u6807 \uff0c \u8fd4\u56de \u5b83 \u63cf\u8ff0 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u5bf9\u8c61 \u3002 \u53c2\u6570 : landmark ( carla . Landmark ) - \u63cf\u8ff0 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u8fd4\u56de : carla . TrafficLight get _ traffic _ light _ from _ opendrive _ id ( self , traffic _ light _ id ) \u8fd4\u56de \u4e0e \u6307\u793a \u7684 OpenDRIVE id \u5bf9\u5e94 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u53c2\u6570 : traffic _ light _ id ( str ) - The OpenDRIVE id . \u8fd4\u56de : carla . TrafficLight get _ traffic _ lights _ from _ waypoint ( self , waypoint , distance ) \u6b64 \u51fd\u6570 \u6cbf\u7740 \u6307\u5b9a \u8def\u70b9 \u524d\u9762 \u7684 \u9053\u8def \u6267\u884c \u641c\u7d22 \uff0c \u5e76 \u8fd4\u56de \u5728 \u6307\u5b9a \u641c\u7d22 \u8ddd\u79bb \u5185 \u627e\u5230 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u3002 \u53c2\u6570 : waypoint ( carla . Waypoint ) - \u8f93\u5165 \u8def\u5f84 \u70b9 \u3002 distance ( float ) - \u641c\u7d22 \u8ddd\u79bb \u3002 \u8fd4\u56de : list ( carla . TrafficLight ) get _ traffic _ lights _ in _ junction ( self , junction _ id ) \u8fd4\u56de \u5f71\u54cd junction _ id \u4e2d \u6307\u793a \u7684 \u8def\u53e3 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u3002 \u53c2\u6570 : junction _ id ( int ) - \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u7684 id \u3002 \u8fd4\u56de : list ( carla . TrafficLight ) get _ traffic _ sign ( self , landmark ) \u63d0\u4f9b \u4e00\u4e2a \u5730\u6807 \uff0c \u8fd4\u56de \u5b83 \u63cf\u8ff0 \u7684 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u5bf9\u8c61 \u3002 \u53c2\u6570 : landmark ( carla . Landmark ) - \u63cf\u8ff0 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 \u5730\u6807 \u5bf9\u8c61 \u3002 \u8fd4\u56de : carla . TrafficSign get _ vehicles _ light _ states ( self ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f carla . Actor ID \uff0c \u503c \u662f \u8be5 \u8f66\u8f86 \u7684 carla . VehicleLightState \u3002 \u8fd4\u56de : dict get _ weather ( self ) \u68c0\u7d22 \u5305\u542b \u4eff\u771f \u4e2d \u5f53\u524d \u6d3b\u52a8 \u7684 \u5929\u6c14 \u53c2\u6570 \u7684 \u5bf9\u8c61 \uff0c \u4e3b\u8981 \u662f \u4e91\u91cf \u3001 \u964d\u6c34 \u6c34\u91cf \u964d\u6c34\u91cf \u3001 \u98ce \u548c \u592a\u9633 \u4f4d\u7f6e \u3002 \u8fd4\u56de : carla . WeatherParameters Setter : carla . World . set _ weather","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_236","text":"set _ pedestrians _ cross _ factor ( self , percentage ) \u53c2\u6570 : percentage ( float ) - \u8bbe\u7f6e \u53ef\u4ee5 \u5728 \u9053\u8def \u4e0a \u884c\u8d70 \u6216 \u5728 \u9053\u8def \u4e0a \u7684 \u4efb\u4f55 \u70b9 \u7a7f\u8d8a \u7684 \u884c\u4eba \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 \u503c\u5e94 \u4ecb\u4e8e 0.0 \u548c \u4e4b\u95f4 1.0 \u3002 \u4f8b\u5982 \uff0c \u503c 0.1 \u8868\u793a \u5141\u8bb8 10% \u7684 \u884c\u4eba \u5728 \u9053\u8def \u4e0a \u884c\u8d70 \u3002 \u9ed8\u8ba4 \u4e3a 0.0 \u3002 \u7b14\u8bb0 : \u5e94 \u5728 \u884c\u4eba \u751f\u6210 \u4e4b\u524d \u8bbe\u7f6e \u3002 set _ pedestrians _ seed ( self , seed ) \u53c2\u6570 : seed ( int ) - \u8bbe\u7f6e \u7528\u4e8e \u751f\u6210 \u4e0e \u884c\u4eba \u76f8\u5173 \u7684 \u4efb\u4f55 \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u7684 \u79cd\u5b50 \u3002 \u7b14\u8bb0 : \u5e94 \u5728 \u884c\u4eba \u751f\u6210 \u4e4b\u524d \u8bbe\u7f6e \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u6bcf\u4e2a \u884c\u4eba \u91cd\u590d \u76f8\u540c \u7684 \u8eab\u4f53 \uff08 \u84dd\u56fe \uff09 \uff0c \u8bf7 \u5728 Python \u4ee3\u7801 \uff08 \u968f\u673a \u9009\u62e9 \u84dd\u56fe \uff09 \u548c \u6b64\u5904 \u4f7f\u7528 \u76f8\u540c \u7684 \u79cd\u5b50 \uff0c \u5426\u5219 \u884c\u4eba \u5c06 \u91cd\u590d \u76f8\u540c \u7684 \u8def\u5f84 \uff0c \u4f46 \u8eab\u4f53 \u4f1a \u4e0d\u540c \u3002 set _ weather ( self , weather ) \u5c06 \u6a21\u62df \u7684 \u5929\u6c14 \u53c2\u6570 \u66f4 \u6539\u4e3a \u5bf9\u8c61 \u4e2d \u5b9a\u4e49 \u7684 \u5176\u4ed6 \u53c2\u6570 \u3002 \u53c2\u6570 : weather ( carla . WeatherParameters ) - \u8981 \u5e94\u7528 \u7684 \u65b0 \u6761\u4ef6 \u3002 \u83b7\u53d6 \u5668 : carla . World . get _ weather","title":"\u8bbe\u7f6e \u5668"},{"location":"python_api/#_237","text":"__ str __ ( self ) \u4e16\u754c \u7684 \u5185\u5bb9 \u88ab \u89e3\u6790 \u6253\u5370 \u5e76\u6253\u5370 \u4e3a \u5f53\u524d \u72b6\u6001 \u7684 \u7b80\u77ed \u62a5\u544a \u3002 \u8fd4\u56de : string","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaworldsettings","text":"\u8be5 \u4eff\u771f \u5177\u6709 \u4e00\u4e9b \u9ad8\u7ea7 \u914d\u7f6e \u9009\u9879 \uff0c \u8fd9\u4e9b \u9009\u9879 \u5305\u542b \u5728 \u6b64\u7c7b \u4e2d \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u4f7f\u7528 carla . World \u53ca\u5176 \u65b9\u6cd5 \u8fdb\u884c \u7ba1\u7406 \u3002 \u8fd9\u4e9b \u5141\u8bb8 \u7528\u6237 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540c\u6b65 / \u5f02\u6b65 \u3001 \u6fc0\u6d3b \u201c \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u201d \u4ee5\u53ca \u4eff\u771f \u662f\u5426 \u5e94 \u4ee5 \u56fa\u5b9a \u6216 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u4e4b\u95f4 \u8fdb\u884c \u9009\u62e9 \u3002 \u5982\u679c \u60a8 \u60f3 \u4e86\u89e3 \u7684\u8bdd \u8bf7 \u67e5\u770b \u6b64 \u5185\u5bb9 \u3002","title":"carla . WorldSettings"},{"location":"python_api/#_238","text":"synchronous _ mode ( bool ) \u8868\u793a \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u670d\u52a1 \u52a1\u5668 \u4e4b\u95f4 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u4e4b\u95f4 \u7684 \u540c\u6b65 \u3002 \u5f53 \u8bbe\u7f6e \u4e3a true \u65f6 \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5c06 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6ef4\u7b54 \u4ee5\u4fbf \u7ee7\u7eed \u524d\u8fdb \u7ee7\u7eed\u524d\u8fdb \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a false \u3002 no _ rendering _ mode ( bool ) \u542f\u7528 \u540e \uff0c \u4eff\u771f \u5c06 \u6839\u672c \u4e0d \u8fd0\u884c \u6e32\u67d3 \u3002 \u8fd9 \u4e3b\u8981 \u7528\u4e8e \u907f\u514d \u7e41\u5fd9 \u4ea4\u901a \u4eff\u771f \u671f\u95f4 \u7684 \u5f00\u9500 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u4e3a false \u3002 fixed _ delta _ seconds ( float ) \u786e\u4fdd \u4eff\u771f \u7684 \u4e24\u4e2a \u6b65\u9aa4 \u4e4b\u95f4 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u662f \u56fa\u5b9a \u7684 \u3002 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a 0.0 \u4ee5 \u4f7f\u7528 \u53ef\u53d8 \u65f6\u95f4 \u6b65\u957f \uff0c \u5c31 \u50cf \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u53d1\u751f \u7684 \u90a3\u6837 \u3002 substepping ( bool ) \u542f\u7528 \u7269\u7406 \u5b50 \u6b65\u8fdb \u3002 \u6b64 \u9009\u9879 \u5141\u8bb8 \u8ba1\u7b97 \u4e24\u4e2a \u6e32\u67d3 \u5e27 \u4e4b\u95f4 \u7684 \u4e00\u4e9b \u7269\u7406 \u5b50 \u6b65\u9aa4 \u3002 \u5982\u679c \u8bbe\u7f6e \u4e86 \u540c\u6b65 \u6a21\u5f0f \uff0c \u5219 \u5b50 \u6b65\u9aa4 \u7684 \u6570\u91cf \u53ca\u5176 \u65f6\u95f4 \u95f4\u9694 \u662f \u56fa\u5b9a \u7684 \u5e76 \u8fdb\u884c \u8ba1\u7b97 \uff0c \u4ee5\u4fbf \u6ee1\u8db3 carla . WorldSettings . max _ substep \u548c carla . WorldSettings . max _ substep _ delta _ time \u7684 \u8981\u6c42 \u3002 \u6700\u540e \u4e24\u4e2a \u53c2\u6570 \u9700\u8981 \u4e0e carla . WorldSettings . fixed _ delta _ seconds \u517c\u5bb9 \u3002 \u9ed8\u8ba4 \u542f\u7528 \u3002 max _ substep _ delta _ time ( float ) \u5b50 \u6b65\u9aa4 \u7684 \u6700\u5927 \u589e\u91cf \u65f6\u95f4 \u3002 \u5982\u679c carla . WorldSettingsmax _ substep \u8db3\u591f \u9ad8 \uff0c \u5219 \u5b50\u6b65 \u589e\u91cf \u65f6\u95f4 \u5c06 \u59cb\u7ec8 \u4f4e\u4e8e \u6216 \u7b49\u4e8e \u8be5\u503c \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a 0.01 \u3002 max _ substeps ( int ) \u5141\u8bb8 \u7684 \u6700\u5927 \u7269\u7406 \u5b50 \u6b65\u6570 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8be5\u503c \u8bbe\u7f6e \u4e3a 10 \u3002 max _ culling _ distance ( float ) \u914d\u7f6e \u5173\u5361 \u4e2d \u6bcf\u4e2a \u7f51\u683c \u7684 \u6700\u5927 \u7ed8\u5236 \u8ddd\u79bb \u3002 deterministic _ ragdolls ( bool ) \u5b9a\u4e49 \u662f\u5426 \u5bf9 \u884c\u4eba \u6b7b\u4ea1 \u52a8\u753b \u6216 \u7269\u7406 \u5a03\u5a03 \u5e03\u5a03\u5a03 \u4eff\u771f \u4f7f\u7528 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7269\u7406 \u3002 \u542f\u7528 \u540e \uff0c \u884c\u4eba \u7684 \u6b7b\u4ea1 \u52a8\u753b \u4e0d\u592a \u771f\u5b9e \uff0c \u4f46 \u786e\u4fdd \u4e86 \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 \u7981\u7528 \u540e \uff0c \u884c\u4eba \u5c06 \u88ab \u4eff\u771f \u4e3a \u5a03\u5a03 \u5e03\u5a03\u5a03 \uff0c \u5177\u6709 \u66f4 \u771f\u5b9e \u7684 \u4eff\u771f \u548c \u78b0\u649e \uff0c \u4f46 \u65e0\u6cd5 \u786e\u4fdd \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u3002 tile _ stream _ distance ( float ) \u4ec5 \u7528\u4e8e \u5927\u578b \u5730\u56fe \u3002 \u914d\u7f6e \u4ece \u82f1\u96c4 \u8f66\u8f86 \u4f20\u8f93 \u74e6\u7247 \u5730\u56fe \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 \u6b64 \u8303\u56f4 \u5185 \u7684 \u5730\u56fe \u533a\u57df \u5c06 \u53ef\u89c1 \uff08 \u5e76\u4e14 \u80fd\u591f \u4eff\u771f \u7269\u7406 \uff09 \u3002 \u8be5 \u533a\u57df \u4e4b\u5916 \u7684 \u533a\u57df \u5c06 \u4e0d\u4f1a \u88ab \u52a0\u8f7d \u3002 actor _ active _ distance ( float ) \u4ec5 \u7528\u4e8e \u5927\u578b \u5730\u56fe \u3002 \u914d\u7f6e \u4e0e \u82f1\u96c4 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u4ee5 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8f6c\u6362 \u4e3a \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 \u5728 \u6b64 \u8303\u56f4 \u5185 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5904\u4e8e \u6d3b\u8dc3 \u72b6\u6001 \uff0c \u800c \u5728 \u8be5 \u8303\u56f4 \u4e4b\u5916 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 spectator _ as _ ego ( bool ) \u4ec5 \u7528\u4e8e \u5927\u578b \u5730\u56fe \u3002 \u5b9a\u4e49 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bf9\u5927 \u5730\u56fe \u4e2d \u56fe\u5757 \u52a0\u8f7d \u7684 \u5f71\u54cd \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5728 \u6ca1\u6709 \u81ea\u6211 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5c06 \u5f15\u53d1 \u76f8\u90bb \u56fe\u5757 \u7684 \u52a0\u8f7d \u3002 \u5bf9\u4e8e \u7acb\u5373 \u4ea7\u751f \u81ea\u6211 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6765\u8bf4 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5e26\u6765 \u4e0d\u4fbf \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_239","text":"__ init __ ( self , synchronous _ mode = False , no _ rendering _ mode = False , fixed _ delta _ seconds = 0.0 , max _ culling _ distance = 0.0 , deterministic _ ragdolls = False , tile _ stream _ distance = 3000 , actor _ active _ distance = 2000 , spectator _ as _ ego = True ) \u521b\u5efa \u4e00\u4e2a \u5305\u542b \u6240 \u9700 \u8bbe\u7f6e \u7684 \u5bf9\u8c61 \uff0c \u8fd9\u4e9b \u8bbe\u7f6e \u7a0d\u540e \u53ef\u4ee5 \u901a\u8fc7 carla . World \u53ca\u5176 \u65b9\u6cd5 apply _ settings ( ) \u5e94\u7528 \u3002 \u53c2\u6570 : synchronous _ mode ( bool ) - \u542f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5219 \u8bbe\u7f6e \u4e3a true \u3002 no _ rendering _ mode ( bool ) - \u5728 \u4eff\u771f \u4e2d \u5b8c\u5168 \u7981\u7528 \u6e32\u67d3 \u5219 \u8bbe\u7f6e \u4e3a true \u3002 fixed _ delta _ seconds ( float - seconds ) - \u5728 \u5e27 \u4e4b\u95f4 \u8bbe\u7f6e \u4e3a \u56fa\u5b9a \u7684 \u6b65\u957f \u3002 0.0 \u610f\u5473 \u610f\u5473\u7740 \u53d8 \u6b65\u957f \u4e14 \u4e3a \u6a21\u5f0f \u6a21\u5f0f \u3002 max _ culling _ distance ( float - \u7c73 ) - \u5bf9\u4e8e \u5173\u5361 \u7684 \u6bcf \u4e00\u4e2a \u7f51\u683c \u914d\u7f6e \u6700\u5927 \u7684 \u7ed8\u5236 \u8ddd\u79bb \u3002 deterministic _ ragdolls ( bool ) - \u5bf9\u4e8e \u884c\u4eba \u6b7b\u4ea1 \u4f7f\u7528 \u786e\u5b9a \u7684 \u7269\u7406 \u6216 \u5a03\u5a03 \u5e03\u5a03\u5a03 \u4eff\u771f \u5b9a\u4e49 wether \u3002 tile _ stream _ distance ( float - \u7c73 ) - \u4ec5 \u7528\u4e8e \u5927 \u5730\u56fe \u3002 \u4ece \u82f1\u96c4 \u8f66\u8f86 \u5230\u6d41 \u74e6\u7247 \u5730\u56fe \u914d\u7f6e \u6700\u5927 \u8ddd\u79bb \u3002 actor _ active _ distance ( float - \u7c73 ) - \u4ec5 \u7528\u4e8e \u5927 \u5730\u56fe \u3002 \u914d\u7f6e \u4e0e \u82f1\u96c4 \u8f66\u8f86 \u7684 \u8ddd\u79bb \u4ee5 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8f6c\u6362 \u4e3a \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \u3002 spectator _ as _ ego ( bool ) - \u4ec5 \u7528\u4e8e \u5927 \u5730\u56fe \u3002 \u5728 \u5927\u578b \u8d34\u56fe \u4e2d \u5b9a\u4e49 \u89c2\u4f17 \u5bf9 \u5e73\u94fa \u52a0\u8f7d \u7684 \u5f71\u54cd \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#_240","text":"__ eq __ ( self , other = carla . WorldSettings ) \u5982\u679c \u5bf9\u8c61 \u7684 \u53d8\u91cf \u76f8\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ ne __ ( self , other = carla . WorldSettings ) \u5982\u679c \u5bf9\u8c61 \u7684 \u53d8\u91cf \u4e0d\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ str __ ( self ) \u5bf9\u4e8e \u5b57\u7b26 \u5b57\u7b26\u4e32 \u89e3\u6790 \u5df2 \u5efa\u7acb \u7684 \u8bbe\u7f6e \u5e76 \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u4e2d \u663e\u793a \u51fa\u6765 \u3002 \u8fd4\u56de : str","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#carlaworldsnapshot","text":"\u5feb\u7167 \u5305\u62ec \u67d0\u4e00 \u65f6\u523b \u573a\u666f \u4e2d \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5b83 \u521b\u5efa \u5e76 \u7ed9\u51fa \u4e00\u4e9b \u5217 \u5305\u542b carla . ActorSnapshot \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5728 \u6bcf \u4e00\u4e2a \u4e0d\u80fd \u5b58\u50a8 \u7684 \u6ef4\u7b54 \u4fe1\u53f7 \u4e2d \u83b7\u53d6 \u4e00\u4e2a \u65b0 \u7684 \u5feb\u7167 \u3002","title":"carla . WorldSnapshot"},{"location":"python_api/#_241","text":"id ( int ) \u4e3a\u4e86 \u5206\u8fa8 \u6bcf \u4e00\u4e2a \u5feb\u7167 \u7684 \u552f\u4e00 \u503c \u3002 frame ( int ) \u83b7\u53d6 \u5feb\u7167 \u65f6 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 timestamp ( carla . Timestamp - seconds ) \u83b7\u53d6 \u5feb\u7167 \u65f6\u5019 \u7684 \u7cbe\u786e \u65f6\u523b \u3002 \u7531 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7ed9\u51fa \u7684 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u7684 \u7c7b \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_242","text":"find ( self , actor _ id ) \u7ed9\u51fa \u67d0\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \uff0c \u8fd4\u56de \u5bf9\u5e94 \u7684 \u5feb\u7167 \uff0c \u5982\u679c \u6ca1\u6709 \u627e\u5230 \u5219 \u8fd4\u56de None \u3002 \u53c2\u6570 \uff1a actor _ id ( int ) \u8fd4\u56de : carla . ActorSnapshot has _ actor ( self , actor _ id ) \u7ed9\u51fa \u67d0\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \uff0c \u5982\u679c \u6709 \u5bf9\u5e94 \u7684 \u5feb\u7167 \u5219 \u68c0\u67e5 \uff0c \u5982\u679c \u5728 \u8fd9\u4e2a \u65f6\u523b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u51fa\u73b0 \u3002 \u53c2\u6570 \uff1a actor _ id ( int ) \u8fd4\u56de \uff1a bool","title":"\u65b9\u6cd5"},{"location":"python_api/#_243","text":"__ eq __ ( self , other = carla . WorldSnapshot ) \u5982\u679c \u65f6\u95f4 \u6233 timestamp \u76f8\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool __ iter __ ( self ) \u5728 \u5b58\u50a8 \u7684 \u5feb\u7167 \u4e0a \u8fdb\u884c \u8fed\u4ee3 carla . ActorSnapshot \u3002 __ len __ ( self ) \u8fd4\u56de \u5728 \u8be5 \u5feb\u7167 \u4e0a \u5448\u73b0 \u7684 carla . ActorSnapshot \u7684 \u6570\u91cf \u3002 \u8fd4\u56de : int __ ne __ ( self , other = carla . WorldSnapshot ) \u5982\u679c \u65f6\u95f4 \u6233 timestamp \u90fd \u4e0d\u540c \u5219 \u8fd4\u56de True \u3002 \u8fd4\u56de : bool","title":"\u9b54\u672f \u65b9\u6cd5"},{"location":"python_api/#commandapplyangularimpulse","text":"carla . Actor \u4e2d add _ angular _ impulse ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f7f\u7528 angular impulse \u3002","title":"command . ApplyAngularImpulse"},{"location":"python_api/#_244","text":"actor _ id ( int ) Actor affected by the command . impulse ( carla . Vector3D - degrees * s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0a \u7684 \u89d2 \u51b2\u91cf \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_245","text":"__ init __ ( self , actor , impulse ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 impulse ( carla . Vector3D - degrees * s )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplyforce","text":"carla . Actor \u4e2d add _ force ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65bd\u52a0 \u4e00\u4e2a \u529b \u3002","title":"command . ApplyForce"},{"location":"python_api/#_246","text":"actor _ id ( int ) \u88ab \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 force ( carla . Vector3D - N ) \u5728 \u65f6\u95f4 \u4e0a \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65bd\u52a0 \u529b \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_247","text":"__ init __ ( self , actor , force ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u65bd\u52a0 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 force ( carla . Vector3D - N )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplyimpulse","text":"carla . Actor \u4e2d add _ impulse ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u6700 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65bd\u52a0 \u7684 impulse \u3002","title":"command . ApplyImpulse"},{"location":"python_api/#_248","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 impulse ( carla . Vector3D - N * s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 Impulse \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_249","text":"__ init __ ( self , actor , impulse ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 impulse ( carla . Vector3D - N * s )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplytargetangularvelocity","text":"carla . Actor \u4e2d set _ target _ angular _ velocity ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002","title":"command . ApplyTargetAngularVelocity"},{"location":"python_api/#_250","text":"actor _ id ( int ) \u88ab \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 angular _ velocity ( carla . Vector3D - deg / s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4e09\u7ef4 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_251","text":"__ init __ ( self , actor , angular _ velocity ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5c06\u8981 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 angular _ velocity ( carla . Vector3D - deg / s ) - \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u5411\u91cf \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplytargetvelocity","text":"carla . Actor \u4e2d set _ target _ velocity ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002","title":"command . ApplyTargetVelocity"},{"location":"python_api/#_252","text":"actor _ id ( int ) \u88ab \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 velocity ( carla . Vector3D - m / s ) \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e09\u7ef4 \u901f\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_253","text":"__ init __ ( self , actor , velocity ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 velocity ( carla . Vector3D - m / s ) - \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u5411\u91cf \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplytorque","text":"carla . Actor \u4e2d add _ torque ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e94\u7528 torque \u3002","title":"command . ApplyTorque"},{"location":"python_api/#_254","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 torque ( carla . Vector3D - \u5ea6 ) \u5728 \u65f6\u95f4 \u4e0a \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e94\u7528 \u529b\u77e9 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_255","text":"__ init __ ( self , actor , torque ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u5b83 \u7684 ID \u3002 torque ( carla . Vector3D - \u5ea6 )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplytransform","text":"carla . Actor \u4e2d set _ transform ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbe\u7f6e \u65b0 \u7684 \u53d8\u6362 \u3002","title":"command . ApplyTransform"},{"location":"python_api/#_256","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 transform ( carla . Transform ) \u6240 \u4f7f\u7528 \u7684 \u53d8\u6362 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_257","text":"__ init __ ( self , actor , transform ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 transform ( carla . Transform )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplyvehicleackermanncontrol","text":"carla . Vehicle \u4e2d apply _ ackermann _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u67d0\u4e2a \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u63a7\u5236\u5668 \u3002","title":"command . ApplyVehicleAckermannControl"},{"location":"python_api/#_258","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 control ( carla . AckermannVehicleControl ) \u5e94\u7528 \u7684 \u8f66\u8f86 \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_259","text":"__ init __ ( self , actor , control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 control ( carla . AckermannVehicleControl )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplyvehiclecontrol","text":"in carla . Vehicle \u4e2d apply _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u67d0\u4e2a \u63a7\u5236 \u3002","title":"command . ApplyVehicleControl"},{"location":"python_api/#_260","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 control ( carla . VehicleControl ) \u5e94\u7528 \u7684 \u8f66\u8f86 \u63a7\u5236 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_261","text":"__ init __ ( self , actor , control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u5e94\u7528 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 control ( carla . VehicleControl )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplyvehiclephysicscontrol","text":"carla . Vehicle \u4e2d apply _ physics _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u4e00\u4e2a \u65b0 \u7684 \u7269\u7406 \u63a7\u5236 \uff0c \u4fee\u6539 \u5b83 \u7684 \u7269\u7406 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"command . ApplyVehiclePhysicsControl"},{"location":"python_api/#_262","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 physics _ control ( carla . VehiclePhysicsControl ) \u5e94\u7528 \u7684 \u7269\u7406 \u63a7\u5236 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_263","text":"__ init __ ( self , actor , physics _ control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 physics _ control ( carla . VehiclePhysicsControl )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplywalkercontrol","text":"carla . Walker \u4e2d apply _ control ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u5bf9 \u884c\u4eba \u5e94\u7528 \u63a7\u5236 \u3002","title":"command . ApplyWalkerControl"},{"location":"python_api/#_264","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 control ( carla . WalkerControl ) \u5e94\u7528 \u7684 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_265","text":"__ init __ ( self , actor , control ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5c06\u8981 \u5e94\u7528 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 control ( carla . WalkerControl )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandapplywalkerstate","text":"\u5bf9 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e94\u7528 \u72b6\u6001 \u3002 \u5bf9 \u521d\u59cb \u521d\u59cb\u5316 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u3001 \u671d\u5411 \u548c \u901f\u5ea6 \u7279\u522b \u6709\u7528 \u3002","title":"command . ApplyWalkerState"},{"location":"python_api/#_266","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u884c\u4eba \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 transform ( carla . Transform ) \u5e94\u7528 \u7684 \u8f6c\u6362 \u3002 speed ( float - m / s ) \u5e94\u7528 \u7684 \u901f\u5ea6 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_267","text":"__ init __ ( self , actor , transform , speed ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5f15\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 transform ( carla . Transform ) speed ( float - m / s )","title":"\u65b9\u6cd5"},{"location":"python_api/#commanddestroyactor","text":"carla . Actor \u4e2d destroy ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \uff0c \u5c06 \u544a\u8bc9 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6467\u6bc1 \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5df2\u7ecf \u88ab \u6467\u6bc1 \u5219 \u6ca1\u6709 \u5f71\u54cd \u3002 \u5f53 \u5728 carla . Client \u4e2d \u6267\u884c apply _ batch _ sync ( ) \u5c06\u4f1a \u8fd4\u56de \u4e00\u4e2a \u5e03\u5c14 \u5e03\u5c14\u503c \u72b6\u6001 \u8868\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u88ab \u6210\u529f \u6467\u6bc1 \u3002","title":"command . DestroyActor"},{"location":"python_api/#_268","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_269","text":"__ init __ ( self , actor ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#commandresponse","text":"\u58f0\u660e \u547d\u4ee4 \u6267\u884c \u7684 \u7ed3\u679c \uff0c \u4e0d\u662f \u547d\u4ee4 \u5e94\u7528 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \uff08 \u5f53 \u6210\u529f \u65f6 \uff09 \uff0c \u5c31\u662f \u9519\u8bef \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff08 \u5f53 \u5931\u8d25 \u65f6 \uff09 \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u53d6\u51b3 \u53d6\u51b3\u4e8e \u547d\u4ee4 \u662f\u5426 \u6267\u884c \u6210\u529f \u3002 carla . Client \u4e2d \u7684 \u65b9\u6cd5 apply _ batch _ sync ( ) \u8fd4\u56de \u8fd9\u4e9b \u7684 \u5217\u8868 \u6765 \u603b\u7ed3 \u6279\u91cf \u7684 \u6267\u884c \u3002","title":"command . Response"},{"location":"python_api/#_270","text":"actor _ id ( int ) \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u58f0\u660e \u8be5 \u547d\u4ee4 \u6210\u529f \u4e86 \u3002 error ( str ) \u58f0\u660e \u547d\u4ee4 \u5931\u8d25 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_271","text":"has _ error ( self ) \u5982\u679c \u547d\u4ee4 \u6267\u884c \u5931\u8d25 \u5219 \u8fd4\u56de True \uff0c \u5982\u679c \u6210\u529f \u5219 \u8fd4\u56de False \u3002 \u8fd4\u56de : bool","title":"\u65b9\u6cd5"},{"location":"python_api/#commandsetautopilot","text":"carla . Vehicle \u4e2d set _ autopilot ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u6253\u5f00 / \u5173\u95ed \u8f66\u8f86 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u3002","title":"command . SetAutopilot"},{"location":"python_api/#_272","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool ) \u81ea\u52a8 \u9a7e\u9a76 \u6a21\u5f0f \u5c06 \u88ab \u6fc0\u6d3b \u6216\u8005 \u5931\u6d3b \u3002 port ( uint16 ) \u6ce8\u518c \u6216 unlisted \u8f66\u8f86 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7aef\u53e3 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_273","text":"__ init __ ( self , actor , enabled , port = 8000 ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u5e94\u7528 \u547d\u4ee4 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u5b83 \u7684 ID \u3002 enabled ( bool ) port ( uint16 ) - \u6ce8\u518c \u6216 unlisted \u8f66\u8f86 \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7aef\u53e3 \u3002 \u5982\u679c \u4f20\u9012 \u7684 \u662f None \uff0c \u4f1a \u8003\u8651 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u9ed8\u8ba4 \u7aef\u53e3 8000 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#commandsetenablegravity","text":"carla . Actor \u4e2d set _ enable _ gravity ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u7981\u7528 \u6216 \u542f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cd\u529b \u3002","title":"command . SetEnableGravity"},{"location":"python_api/#_274","text":"actor _ id ( carla . Actor or int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool )","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_275","text":"__ init __ ( self , actor , enabled ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u3002 enabled ( bool )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandsetsimulatephysics","text":"carla . Actor \u4e2d set _ simulate _ physics ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u786e\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f\u5426 \u4f1a \u88ab \u7269\u7406 \u5f71\u54cd \u3002","title":"command . SetSimulatePhysics"},{"location":"python_api/#_276","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool ) \u662f\u5426 \u6fc0\u6d3b \u7269\u7406 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_277","text":"__ init __ ( self , actor , enabled ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 ID \u3002 enabled ( bool )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandsetvehiclelightstate","text":"carla . Vehicle \u4e2d set _ light _ state ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002","title":"command . SetVehicleLightState"},{"location":"python_api/#_278","text":"actor _ id ( int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 light _ state ( carla . VehicleLightState ) \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_279","text":"__ init __ ( self , actor , light _ state ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216\u8005 \u5b83 \u7684 ID \u3002 light _ state ( carla . VehicleLightState ) - Recaps \u8f66\u8f86 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \uff0c \u8fd9\u4e9b \u80fd \u88ab \u7528\u4f5c \u4e00\u4e2a \u6807\u5fd7 \u3002","title":"\u65b9\u6cd5"},{"location":"python_api/#commandshowdebugtelemetry","text":"carla . Actor \u4e2d show _ debug _ telemetry ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u663e\u793a \u8f66\u8f86 \u7684 telemetry \u6570\u636e \u3002","title":"command . ShowDebugTelemetry"},{"location":"python_api/#_280","text":"actor _ id ( carla . Actor or int ) \u547d\u4ee4 \u5f71\u54cd \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 enabled ( bool )","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_281","text":"__ init __ ( self , actor , enabled ) \u53c2\u6570 \uff1a actor ( carla . Actor or int ) - \u547d\u4ee4 \u5e94\u7528 \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6216 \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u3002 enabled ( bool )","title":"\u65b9\u6cd5"},{"location":"python_api/#commandspawnactor","text":"carla . World \u4e2d spawn _ actor ( ) \u7684 \u547d\u4ee4 \u9002\u5e94 \u3002 \u57fa\u4e8e \u63d0\u4f9b \u7684 \u84dd\u56fe \u548c \u53d8\u6362 \u5728 \u4e16\u754c \u4e2d \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5982\u679c \u63d0\u4f9b \u4e86 \u7236\u7c7b \uff0c \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5c06\u4f1a \u9644 \u5728 \u4e0a\u9762 \u3002","title":"command . SpawnActor"},{"location":"python_api/#_282","text":"transform ( carla . Transform ) \u5e94\u7528 \u7684 \u53d8\u6362 \u3002 parent _ id ( int ) \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6807\u5fd7 \u3002","title":"\u5b9e\u4f8b \u53d8\u91cf"},{"location":"python_api/#_283","text":"__ init __ ( self ) __ init __ ( self , blueprint , transform ) \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) __ init __ ( self , blueprint , transform , parent ) \u53c2\u6570 \uff1a blueprint ( carla . ActorBlueprint ) transform ( carla . Transform ) parent ( carla . Actor or int ) then ( self , command ) \u94fe\u63a5 \u4e00\u4e2a \u5176\u4ed6 \u5c06\u8981 \u7acb\u523b \u6267\u884c \u7684 \u547d\u4ee4 \u3002 \u5b83 \u5141\u8bb8 ease \u975e\u5e38 \u5e38\u89c1 \u7684 \u6d41 \uff0c \u6bd4\u5982 \u901a\u8fc7 \u547d\u4ee4 \u751f\u6210 \u4e00\u7ec4 \u8f66\u8f86 \uff0c \u5e76 \u4f7f\u7528 \u8be5 \u65b9\u6cd5 \u8bbe\u7f6e \u81ea\u52a8 \u9a7e\u9a76 \u3002 \u53c2\u6570 \uff1a command ( any carla Command ) - \u4e00\u4e2a Carla \u547d\u4ee4 \u3002 function CopyToClipboard ( containerid ) { if ( document . selection ) { var range = document . body . createTextRange ( ) ; range . moveToElementText ( document . getElementById ( containerid ) ) ; range . select ( ) . createTextRange ( ) ; document . execCommand ( \" copy \" ) ; } else if ( window . getSelection ) { var range = document . createRange ( ) ; range . selectNode ( document . getElementById ( containerid ) ) ; window . getSelection ( ) . addRange ( range ) ; document . execCommand ( \" copy \" ) ; } } function CloseSnipet ( ) { document . getElementById ( \" snipets - container \" ) . innerHTML = null ; } carla . World . enable _ environment _ objects \u4ee3\u7801 \u7247\u6bb5 # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u5728 \u5730\u56fe \u4e0a \u663e\u793a \u6216 \u9690\u85cf \u7279\u5b9a \u5efa\u7b51 \u3002 # Get the buildings in the world world = client . get _ world ( ) env _ objs = world . get _ environment _ objects ( carla . CityObjectLabel . Buildings ) # \u8bbf\u95ee \u5355\u4e2a \u5efa\u7b51 IDs \u5e76 \u4fdd\u5b58 \u5230 \u4e00\u4e2a \u96c6\u5408 \u4e2d building _ 01 = env _ objs [ 0 ] building _ 02 = env _ objs [ 1 ] objects _ to _ toggle = { building _ 01 . id , building _ 02 . id } # \u9690\u85cf \u5efa\u7b51 world . enable _ environment _ objects ( objects _ to _ toggle , False ) # \u663e\u793a \u5efa\u7b51 world . enable _ environment _ objects ( objects _ to _ toggle , True ) Copy snippet Close snippet carla . DebugHelper . draw _ string \u4ee3\u7801 \u7247\u6bb5 # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u662f lane _ explorer . py \u793a\u4f8b \u7684 \u4fee\u6539 # \u5b83 \u5728 \u76f4\u63a5 \u4e2d \u7ed8\u5236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8def\u5f84 \uff0c \u6253\u5370 \u6bcf\u4e2a \u8def\u5f84 \u70b9 \u7684 \u4fe1\u606f \u3002 # ... current _ w = map . get _ waypoint ( vehicle . get _ location ( ) ) while True : next _ w = map . get _ waypoint ( vehicle . get _ location ( ) , lane _ type = carla . LaneType . Driving | carla . LaneType . Shoulder | carla . LaneType . Sidewalk ) # \u68c0\u67e5 \u8f66\u8f86 \u662f\u5426 \u5728 \u79fb\u52a8 if next _ w . id ! = current _ w . id : vector = vehicle . get _ velocity ( ) # Check if the vehicle is on a sidewalk if current _ w . lane _ type = = carla . LaneType . Sidewalk : draw _ waypoint _ union ( debug , current _ w , next _ w , cyan if current _ w . is _ junction else red , 60 ) else : draw _ waypoint _ union ( debug , current _ w , next _ w , cyan if current _ w . is _ junction else green , 60 ) debug . draw _ string ( current _ w . transform . location , str ( ' % 15.0 f km / h ' % ( 3.6 * math . sqrt ( vector . x * * 2 + vector . y * * 2 + vector . z * * 2 ) ) ) , False , orange , 60 ) draw _ transform ( debug , current _ w . transform , white , 60 ) # \u66f4\u65b0 \u5f53\u524d \u8def\u5f84 \u70b9 \u5e76 \u4f11\u7720 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 current _ w = next _ w time . sleep ( args . tick _ time ) # ... Copy snippet Close snippet Snippet for carla . World . unload _ map _ layer # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u5728 \u5206\u5c42 \u5730\u56fe \" _ Opt \" \u4e0a \u5173\u95ed \u51e0\u5c42 # \u4ee5 \u6700\u5c0f \u5e03\u5c40 \uff08 \u9053\u8def \u3001 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff09 \u52a0\u8f7d \u57ce\u9547 \uff0c \u8fd8 \u5305\u62ec \u5efa\u7b51 \u548c \u505c\u9760 \u7684 \u8f66\u8f86 world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . Buildings | carla . MapLayer . ParkedVehicles ) # \u9690\u85cf \u5efa\u7b51 world . unload _ map _ layer ( carla . MapLayer . Buildings ) # \u9690\u85cf \u505c\u9760 \u7684 \u8f66\u8f86 world . unload _ map _ layer ( carla . MapLayer . ParkedVehicles ) Copy snippet Close snippet Snippet for carla . Vehicle . set _ wheel _ steer _ direction # \u8bbe\u7f6e \u524d \u8f6e\u8f6c 40 \u00b0 \u8f66\u8f86 \u7684 \u5916\u89c2 \u3002 \u4e0d\u4f1a \u5f71\u54cd \u8f66\u8f86 \u7684 \u7269\u7406 \u3002 vehicle . set _ wheel _ steer _ direction ( carla . VehicleWheelLocation . FR _ Wheel , 40.0 ) vehicle . set _ wheel _ steer _ direction ( carla . VehicleWheelLocation . FL _ Wheel , 40.0 ) Copy snippet Close snippet Snippet for carla . Client .__ init __ # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u5728 PythonAPI / Examples \u4e2d \u7684 \u6bcf\u4e2a \u811a\u672c \u4e2d \u90fd \u6709 \uff0c \u8fd0\u884c \u811a\u672c \u65f6\u5019 \u7528\u4e8e \u89e3\u6790 \u5ba2\u6237 \u5ba2\u6237\u7aef \u521b\u5efa \u53c2\u6570 \u3002 argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) argparser . add _ argument ( ' - s ' , ' -- speed ' , metavar = ' FACTOR ' , default = 1.0 , type = float , help = ' rate at which the weather changes ( default : 1.0 ) ' ) args = argparser . parse _ args ( ) speed _ factor = args . speed update _ freq = 0.1 / speed _ factor client = carla . Client ( args . host , args . port ) Copy snippet Close snippet carla . Map . get _ waypoint \u4ee3\u7801 \u7247\u6bb5 # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u663e\u793a \u5f53\u524d \u4ea4\u901a \u89c4\u5219 \u4ea4\u901a\u89c4\u5219 \u5f71\u54cd \u7684 \u8f66\u8f86 \u3002 # \u663e\u793a \u5f53\u524d \u8f66\u8f86 \u7c7b\u578b \uff0c \u5728 \u5b9e\u9645 \u7684 \u8f66\u9053 \u6216 \u5468\u56f4 \u7684 \u7269\u4f53 \u4e2d \u8f66\u9053 \u7ebf \u662f\u5426 \u6539\u53d8 \u3002 # ... waypoint = world . get _ map ( ) . get _ waypoint ( vehicle . get _ location ( ) , project _ to _ road = True , lane _ type = ( carla . LaneType . Driving | carla . LaneType . Shoulder | carla . LaneType . Sidewalk ) ) print ( \" Current lane type : \" + str ( waypoint . lane _ type ) ) # Check current lane change allowed print ( \" Current Lane change : \" + str ( waypoint . lane _ change ) ) # Left and Right lane markings print ( \" L lane marking type : \" + str ( waypoint . left _ lane _ marking . type ) ) print ( \" L lane marking change : \" + str ( waypoint . left _ lane _ marking . lane _ change ) ) print ( \" R lane marking type : \" + str ( waypoint . right _ lane _ marking . type ) ) print ( \" R lane marking change : \" + str ( waypoint . right _ lane _ marking . lane _ change ) ) # ... Copy snippet Close snippet Snippet for carla . World . spawn _ actor # \u8be5 \u4ee3\u7801 \u7247\u6bb5 \u4f7f\u7528 \u4e0d\u540c \u7684 \u9644\u7740 \u5c06 \u4e0d\u540c \u7684 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216\u4f20\u611f\u5668 \u9644\u7740 \u5230 \u8f66\u8f86 \u4e2d \u3002 # ... camera = world . spawn _ actor ( rgb _ camera _ bp , transform , attach _ to = vehicle , attachment _ type = Attachment . Rigid ) # \u9ed8\u8ba4 \u9644\u7740 \uff1a Attachment . Rigid gnss _ sensor = world . spawn _ actor ( sensor _ gnss _ bp , transform , attach _ to = vehicle ) collision _ sensor = world . spawn _ actor ( sensor _ collision _ bp , transform , attach _ to = vehicle ) lane _ invasion _ sensor = world . spawn _ actor ( sensor _ lane _ invasion _ bp , transform , attach _ to = vehicle ) # ... Copy snippet Close snippet carla . WalkerAIController . stop \u4ee3\u7801 \u7247\u6bb5 # To destroy the pedestrians , stop them from the navigation , and then destroy the objects ( actor and controller ) . # stop pedestrians ( list is [ controller , actor , controller , actor ... ] ) for i in range ( 0 , len ( all _ id ) , 2 ) : all _ actors [ i ] . stop ( ) # destroy pedestrian ( actor and controller ) client . apply _ batch ( [ carla . command . DestroyActor ( x ) for x in all _ id ] ) Copy snippet Close snippet Snippet for carla . DebugHelper . draw _ box # This recipe shows how to draw traffic light actor bounding boxes from a world snapshot . # .... debug = world . debug world _ snapshot = world . get _ snapshot ( ) for actor _ snapshot in world _ snapshot : actual _ actor = world . get _ actor ( actor _ snapshot . id ) if actual _ actor . type _ id = = ' traffic . traffic _ light ' : debug . draw _ box ( carla . BoundingBox ( actor _ snapshot . get _ transform ( ) . location , carla . Vector3D ( 0.5 , 0.5 , 2 ) ) , actor _ snapshot . get _ transform ( ) . rotation , 0.05 , carla . Color ( 255 , 0 , 0 , 0 ) , 0 ) # ... Copy snippet Close snippet Snippet for carla . World . get _ spectator # This recipe spawns an actor and the spectator camera at the actor ' s location . # ... world = client . get _ world ( ) spectator = world . get _ spectator ( ) vehicle _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) ) transform = random . choice ( world . get _ map ( ) . get _ spawn _ points ( ) ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , transform ) # Wait for world to get the vehicle actor world . tick ( ) world _ snapshot = world . wait _ for _ tick ( ) actor _ snapshot = world _ snapshot . find ( vehicle . id ) # Set spectator at given transform ( vehicle transform ) spectator . set _ transform ( actor _ snapshot . get _ transform ( ) ) # ... Copy snippet Close snippet Snippet for carla . Sensor . listen # This recipe applies a color conversion to the image taken by a camera sensor , # so it is converted to a semantic segmentation image . # ... camera _ bp = world . get _ blueprint _ library ( ) . filter ( ' sensor . camera . semantic _ segmentation ' ) # ... cc = carla . ColorConverter . CityScapesPalette camera . listen ( lambda image : image . save _ to _ disk ( ' output / % 06d . png ' % image . frame , cc ) ) # ... Copy snippet Close snippet Snippet for carla . TrafficLight . set _ state # This recipe changes from red to green the traffic light that affects the vehicle . # This is done by detecting if the vehicle actor is at a traffic light . # ... world = client . get _ world ( ) spectator = world . get _ spectator ( ) vehicle _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) ) transform = random . choice ( world . get _ map ( ) . get _ spawn _ points ( ) ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , transform ) # Wait for world to get the vehicle actor world . tick ( ) world _ snapshot = world . wait _ for _ tick ( ) actor _ snapshot = world _ snapshot . find ( vehicle . id ) # Set spectator at given transform ( vehicle transform ) spectator . set _ transform ( actor _ snapshot . get _ transform ( ) ) # ...# ... if vehicle _ actor . is _ at _ traffic _ light ( ) : traffic _ light = vehicle _ actor . get _ traffic _ light ( ) if traffic _ light . get _ state ( ) = = carla . TrafficLightState . Red : # world . hud . notification ( \" Traffic light changed ! Good to go ! \" ) traffic _ light . set _ state ( carla . TrafficLightState . Green ) # ... Copy snippet Close snippet Snippet for carla . ActorBlueprint . set _ attribute # This recipe changes attributes of different type of blueprint actors . # ... walker _ bp = world . get _ blueprint _ library ( ) . filter ( ' walker . pedestrian.0002 ' ) walker _ bp . set _ attribute ( ' is _ invincible ' , True ) # ... # Changes attribute randomly by the recommended value vehicle _ bp = wolrd . get _ blueprint _ library ( ) . filter ( ' vehicle . bmw . * ' ) color = random . choice ( vehicle _ bp . get _ attribute ( ' color ' ) . recommended _ values ) vehicle _ bp . set _ attribute ( ' color ' , color ) # ... camera _ bp = world . get _ blueprint _ library ( ) . filter ( ' sensor . camera . rgb ' ) camera _ bp . set _ attribute ( ' image _ size _ x ' , 600 ) camera _ bp . set _ attribute ( ' image _ size _ y ' , 600 ) # ... Copy snippet Close snippet Snippet for carla . Client . apply _ batch _ sync # 0 . Choose a blueprint fo the walkers world = client . get _ world ( ) blueprintsWalkers = world . get _ blueprint _ library ( ) . filter ( \" walker . pedestrian . * \" ) walker _ bp = random . choice ( blueprintsWalkers ) # 1 . Take all the random locations to spawn spawn _ points = [ ] for i in range ( 50 ) : spawn _ point = carla . Transform ( ) spawn _ point . location = world . get _ random _ location _ from _ navigation ( ) if ( spawn _ point . location ! = None ) : spawn _ points . append ( spawn _ point ) # 2 . Build the batch of commands to spawn the pedestrians batch = [ ] for spawn _ point in spawn _ points : walker _ bp = random . choice ( blueprintsWalkers ) batch . append ( carla . command . SpawnActor ( walker _ bp , spawn _ point ) ) # 2.1 apply the batch results = client . apply _ batch _ sync ( batch , True ) for i in range ( len ( results ) ) : if results [ i ] . error : logging . error ( results [ i ] . error ) else : walkers _ list . append ( { \" id \" : results [ i ] . actor _ id } ) # 3 . Spawn walker AI controllers for each walker batch = [ ] walker _ controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) for i in range ( len ( walkers _ list ) ) : batch . append ( carla . command . SpawnActor ( walker _ controller _ bp , carla . Transform ( ) , walkers _ list [ i ] [ \" id \" ] ) ) # 3.1 apply the batch results = client . apply _ batch _ sync ( batch , True ) for i in range ( len ( results ) ) : if results [ i ] . error : logging . error ( results [ i ] . error ) else : walkers _ list [ i ] [ \" con \" ] = results [ i ] . actor _ id # 4 . Put altogether the walker and controller ids for i in range ( len ( walkers _ list ) ) : all _ id . append ( walkers _ list [ i ] [ \" con \" ] ) all _ id . append ( walkers _ list [ i ] [ \" id \" ] ) all _ actors = world . get _ actors ( all _ id ) # wait for a tick to ensure client receives the last transform of the walkers we have just created world . wait _ for _ tick ( ) # 5 . initialize each controller and set target to walk to ( list is [ controller , actor , controller , actor ... ] ) for i in range ( 0 , len ( all _ actors ) , 2 ) : # start walker all _ actors [ i ] . start ( ) # set walk to random point all _ actors [ i ] . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) # random max speed all _ actors [ i ] . set _ max _ speed ( 1 + random . random ( ) ) # max speed between 1 and 2 ( default is 1.4 m / s ) Copy snippet Close snippet Snippet for carla . World . load _ map _ layer # This recipe toggles on several layers in our \" _ Opt \" maps # Load town one with only minimum layout ( roads , sidewalks , traffic lights and traffic signs ) world = client . load _ world ( ' Town01 _ Opt ' , carla . MapLayer . None ) # Toggle all buildings on world . load _ map _ layer ( carla . MapLayer . Buildings ) # Toggle all foliage on world . load _ map _ layer ( carla . MapLayer . Foliage ) # Toggle all parked vehicles on world . load _ map _ layer ( carla . MapLayer . ParkedVehicles ) Copy snippet Close snippet function ButtonAction ( container _ name ) { if ( window _ big ) { snipet _ name = container _ name . replace ( ' - snipet _ button ' , ' - snipet ' ) ; document . getElementById ( \" snipets - container \" ) . innerHTML = document . getElementById ( snipet _ name ) . innerHTML ; } else { document . getElementById ( \" snipets - container \" ) . innerHTML = null ; code _ name = container _ name . replace ( ' - snipet _ button ' , ' - code ' ) ; var range = document . createRange ( ) ; range . selectNode ( document . getElementById ( code _ name ) ) ; alert ( range ) ; } } function WindowResize ( ) { if ( window . innerWidth > 1200 ) { window _ big = true ; } else { window _ big = false ; } } var window _ big ; if ( window . innerWidth > 1200 ) { window _ big = true ; } else { window _ big = false ; } buttons = document . getElementsByClassName ( ' SnipetButton ' ) for ( let i = 0 ; i < buttons . length ; i ++ ) { buttons [ i ] . addEventListener ( \" click \" , function ( ) { ButtonAction ( buttons [ i ] . id ) ; } , true ) ; } window . onresize = WindowResize ;","title":"\u65b9\u6cd5"},{"location":"ref_cpp/","text":"C++ \u53c2\u8003 \u6211\u4eec \u4f7f\u7528 Doxygen \u751f\u6210 C++ \u4ee3\u7801 \u7684 \u6587\u6863 \uff1a Libcarla / source Unreal / CarlaUE4 / Source Unreal / CarlaUE4 / Plugins \u751f\u6210 \u7684 \u6587\u6863 \u53ef \u901a\u8fc7 \u6b64 \u94fe\u63a5 \u83b7\u53d6 \uff1a http : / / carla . org / Doxygen / html / index . html \u7b14\u8bb0 \u6587\u6863 \u66f4\u65b0 \u7531 GitHub \u81ea\u52a8 \u5b8c\u6210 \u3002 \u521b\u5efa doxygen \u6587\u6863 \u91cd\u8981 \u9700\u8981 Doxygen \u6765 \u751f\u6210 \u6587\u6863 \uff0c \u9700\u8981 Graphviz \u4f5c\u4e3a \u56fe\u5f62 \u7ed8\u5236 \u5de5\u5177 \u5de5\u5177\u5305 \u3002 1 - \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 doxygen \u548c graphviz \uff1a # linux > sudo apt - get install doxygen graphviz 2 - \u5b89\u88c5 \u540e \uff0c \u8f6c \u5230 Doxyfile \u6587\u4ef6 \u6240\u5728 \u7684 \u9879\u76ee \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a > doxygen \u5b83 \u5c06 \u5f00\u59cb \u6784\u5efa \u6587\u6863 \u7f51\u9875 \u3002 \u751f\u6210 \u7684 \u7f51\u9875 \u53ef\u4ee5 \u5728 Doxygen / html / \u4e2d \u627e\u5230 3 - \u5728 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 index . html \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u6709 \u4e86 \u672c\u5730 cpp \u6587\u6863 \uff01","title":"C++ \u53c2\u8003"},{"location":"ref_cpp/#c","text":"\u6211\u4eec \u4f7f\u7528 Doxygen \u751f\u6210 C++ \u4ee3\u7801 \u7684 \u6587\u6863 \uff1a Libcarla / source Unreal / CarlaUE4 / Source Unreal / CarlaUE4 / Plugins \u751f\u6210 \u7684 \u6587\u6863 \u53ef \u901a\u8fc7 \u6b64 \u94fe\u63a5 \u83b7\u53d6 \uff1a http : / / carla . org / Doxygen / html / index . html \u7b14\u8bb0 \u6587\u6863 \u66f4\u65b0 \u7531 GitHub \u81ea\u52a8 \u5b8c\u6210 \u3002","title":"C++ \u53c2\u8003"},{"location":"ref_cpp/#doxygen","text":"\u91cd\u8981 \u9700\u8981 Doxygen \u6765 \u751f\u6210 \u6587\u6863 \uff0c \u9700\u8981 Graphviz \u4f5c\u4e3a \u56fe\u5f62 \u7ed8\u5236 \u5de5\u5177 \u5de5\u5177\u5305 \u3002 1 - \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5b89\u88c5 doxygen \u548c graphviz \uff1a # linux > sudo apt - get install doxygen graphviz 2 - \u5b89\u88c5 \u540e \uff0c \u8f6c \u5230 Doxyfile \u6587\u4ef6 \u6240\u5728 \u7684 \u9879\u76ee \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a > doxygen \u5b83 \u5c06 \u5f00\u59cb \u6784\u5efa \u6587\u6863 \u7f51\u9875 \u3002 \u751f\u6210 \u7684 \u7f51\u9875 \u53ef\u4ee5 \u5728 Doxygen / html / \u4e2d \u627e\u5230 3 - \u5728 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 index . html \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u6709 \u4e86 \u672c\u5730 cpp \u6587\u6863 \uff01","title":"\u521b\u5efa doxygen \u6587\u6863"},{"location":"ref_recorder_binary_file_format/","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7cfb\u7edf \u5c06 \u91cd\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u4fdd\u5b58 \u5728 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c \u5bf9 \u591a \u5b57\u8282 \u503c \u4f7f\u7528 \u5c0f\u7aef \u5b57\u8282 \u987a\u5e8f \u3002 1 - \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u5b57\u7b26 \u5b57\u7b26\u4e32 2 - \u4fe1\u606f \u5934 3 - \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0 \u6570\u636e \u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664 \u6570\u636e \u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7 \u6570\u636e \u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e \u6570\u636e \u6570\u636e\u5305 6 - \u4f4d\u7f6e \u6570\u636e \u6570\u636e\u5305 7 - \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b \u6570\u636e \u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b 4 - \u5e27 \u5e03\u5c40 5 - \u6587\u4ef6 \u5e03\u5c40 \u5728 \u4e0b \u4e00\u5f20 \u4ee3\u8868 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u56fe\u50cf \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u5feb\u901f \u67e5\u770b \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u56fe\u50cf \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u5c06 \u5728 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8fdb\u884c \u89e3\u91ca \uff1a \u603b\u4e4b \uff0c \u8be5 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u6709 \u4e00\u4e2a \u5c0f \u5934 \uff0c \u5176\u4e2d \u5305\u542b \u4e00\u822c \u4fe1\u606f \uff08 \u7248\u672c \u3001 \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3001 \u65e5\u671f \u548c \u4f7f\u7528 \u7684 \u5730\u56fe \uff09 \u548c \u4e0d\u540c \u7c7b\u578b \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \uff08 \u76ee\u524d \u6211\u4eec \u4f7f\u7528 10 \u79cd \u7c7b\u578b \uff0c \u4f46 \u5c06\u6765 \u4f1a \u7ee7\u7eed \u589e\u957f \uff09 \u3002 1 - \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u9996\u5148 \u4f7f\u7528 \u5176 \u957f\u5ea6 \u8fdb\u884c \u7f16\u7801 \uff0c \u7136\u540e \u662f \u5176 \u5b57\u7b26 \uff08 \u4e0d \u4ee5 \u5b57\u7b26 \u7a7a\u5b57\u7b26 \u7ed3\u5c3e \uff09 \u3002 \u4f8b\u5982 \uff0c \u5b57\u7b26 \u5b57\u7b26\u4e32 \u201c Town06 \u201d \u5c06 \u4fdd\u5b58 \u4e3a \u5341\u516d \u8fdb\u5236 \u5341\u516d\u8fdb\u5236 \u503c \uff1a 06 00 54 6f 77 6e 30 36 2 - \u4fe1\u606f \u5934 \u4fe1\u606f \u6807\u5934 \u5305\u542b \u6709\u5173 \u5f55\u5236 \u6587\u4ef6 \u7684 \u4e00\u822c \u4fe1\u606f \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u5b83 \u5305\u542b \u7248\u672c \u548c \u4e00\u4e2a \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u7528\u4e8e \u5c06 \u8be5 \u6587\u4ef6 \u6807\u8bc6 \u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u3002 \u5982\u679c \u6807\u9898 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \uff0c \u90a3\u4e48 \u7248\u672c \u4e5f \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8 \u5305\u542b \u4e00\u4e2a \u65e5\u671f \u65f6\u95f4 \u6233 \uff0c \u4ee5\u53ca \u4ece 1900 \u5e74 \u5f00\u59cb \u7684 \u79d2\u6570 \uff0c \u5e76\u4e14 \u8fd8 \u5305\u542b \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u5176\u4e2d \u5305\u542b \u7528\u4e8e \u8bb0\u5f55 \u7684 \u5730\u56fe \u540d\u79f0 \u3002 \u793a\u4f8b \u4fe1\u606f \u5934 \u662f \uff1a 3 - \u6570\u636e \u6570\u636e\u5305 \u6bcf\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u4e24\u4e2a \u5b57 \u6bb5 \uff08 5 \u4e2a \u5b57\u8282 \uff09 \u7684 \u5c0f \u6807\u5934 \u5f00\u5934 \uff1a id : \u6570\u636e \u6570\u636e\u5305 \u7c7b\u578b size : \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \u5934 \u4fe1\u606f \u540e\u9762 \u8ddf\u7740 \u6570\u636e \u3002 \u6570\u636e \u662f \u53ef\u9009 \u7684 \uff0c \u5927\u5c0f \u4e3a 0 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u6ca1\u6709 \u6570\u636e \u3002 \u5982\u679c \u5927\u5c0f \u5927\u4e8e 0 \uff0c \u5219 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u6709 \u6570\u636e \u5b57\u8282 \u3002 \u56e0\u6b64 \uff0c \u9700\u8981 \u6839\u636e \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u91cd\u65b0 \u89e3\u91ca \u6570\u636e \u3002 \u6570\u636e \u6570\u636e\u5305 \u7684 \u5934 \u5f88 \u6709\u7528 \uff0c \u56e0\u4e3a \u6211\u4eec \u53ef\u4ee5 \u5728 \u64ad\u653e \u65f6 \u5ffd\u7565 \u90a3\u4e9b \u6211\u4eec \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u4e0d\u611f\u5174\u8da3 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u5305 \u7684 \u5934 \uff08 \u524d 5 \u4e2a \u5b57\u8282 \uff09 \u5e76 \u8df3 \u8fc7 \u6570\u636e \u6570\u636e\u5305 \u7684 \u6570\u636e \u8df3\u8f6c \u5230 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff1a \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u6709 \uff1a \u6211\u4eec \u5efa\u8bae \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6570\u636e \u6570\u636e\u5305 \u4f7f\u7528 \u8d85\u8fc7 100 \u7684 id \uff0c \u56e0\u4e3a \u8fd9\u4e2a \u5217\u8868 \u5c06\u6765 \u4f1a \u4e0d\u65ad \u589e\u957f \u3002 \u6570\u636e \u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb \u8be5 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bb0 \u65b0\u5e27 \u7684 \u5f00\u59cb \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u662f \u5f00\u59cb \u6bcf\u4e2a \u5e27 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u3002 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u9700\u8981 \u653e\u7f6e \u5728 Frame Start \u548c Frame End \u4e4b\u95f4 \u3002 \u56e0\u6b64 \uff0c \u7ecf\u8fc7 \u65f6\u95f4 + \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 = \u4e0b \u4e00\u5e27 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002 \u6570\u636e \u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f \u8be5 \u5e27 \u6ca1\u6709 \u6570\u636e \uff0c \u4ec5 \u6807\u8bb0 \u5f53\u524d \u5e27 \u7684 \u7ed3\u675f \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u91cd\u653e \u91cd\u653e\u5668 \u5728 \u65b0 \u4e00\u5e27 \u5f00\u59cb \u4e4b\u524d \u77e5\u9053 \u6bcf \u4e00\u5e27 \u7684 \u7ed3\u675f \u3002 \u901a\u5e38 \uff0c \u4e0b \u4e00\u5e27 \u5e94\u8be5 \u662f \u5e27 \u8d77\u59cb \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u5f00\u59cb \u65b0\u5e27 \u3002 \u6570\u636e \u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u6211\u4eec \u9700\u8981 \u5728 \u5f53\u524d \u5e27 \u521b\u5efa \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b57 \u6bb5 \u603b\u8ba1 \u8868\u793a \u540e\u9762 \u6709 \u591a\u5c11 \u6761 \u8bb0\u5f55 \u3002 \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u4ee5 id \u5b57 \u6bb5 \u5f00\u5934 \uff0c \u5373 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5f55\u5236 \u65f6\u6240 \u62e5\u6709 \u7684 id \uff08 \u5728 \u64ad\u653e \u65f6 \uff0c \u8be5 id \u53ef\u4ee5 \u5728 \u5185\u90e8 \u66f4\u6539 \uff0c \u4f46 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u6b64 id \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u53ef\u4ee5 \u6709 \u4ee5\u4e0b \u53ef\u80fd \u7684 \u503c \uff1a 0 = \u5176\u4ed6 1 = \u8f66\u8f86 2 = \u884c\u4eba 3 = \u4ea4\u901a \u4ea4\u901a\u706f 4 = \u65e0\u6548 \u4e4b\u540e \uff0c \u7ee7\u7eed \u6211\u4eec \u60f3\u8981 \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u5728 \u6211\u4eec \u5f97\u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u63cf\u8ff0 \u4e4b\u540e \u3002 \u63cf\u8ff0 uid \u662f \u63cf\u8ff0 \u7684 \u6570\u5b57 ID \uff0c \u800c id \u662f \u6587\u672c ID \uff0c \u4f8b\u5982 \" vehicle . seat . leon \" \u3002 \u7136\u540e \u662f \u5176 \u5c5e\u6027 \u7684 \u96c6\u5408 \uff0c \u4f8b\u5982 \u989c\u8272 \u3001 \u8f6e\u5b50 \u6570\u91cf \u3001 \u89d2\u8272 \u7b49 \u3002 \u5c5e\u6027 \u7684 \u6570\u91cf \u662f \u53ef\u53d8 \u7684 \uff0c \u5e94\u8be5 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a number _ of _ wheels = 4 sticky _ control = true color = 79 , 33 , 85 role _ name = autopilot \u6570\u636e \u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u8fd9 \u4e00\u5e27 \u9700\u8981 \u9500\u6bc1 \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u6709 \u8bb0\u5f55 \u603b\u6570 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u6709 \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u4f8b\u5982 \uff0c \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u53ef\u80fd \u662f \u8fd9\u6837 \u7684 \uff1a \u6570\u5b57 3 \u5c06 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bc6 \u4e3a \u4e8b\u4ef6 \u5220\u9664 \u3002 \u6570\u5b57 16 \u662f \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \uff08 4 \u4e2a \u5b57 \u6bb5 \uff0c \u6bcf\u4e2a \u5b57 \u6bb5 4 \u5b57\u8282 \uff09 \u3002 \u56e0\u6b64 \uff0c \u5982\u679c \u6211\u4eec \u4e0d\u60f3 \u5904\u7406 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8df3\u8fc7 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 16 \u4e2a \u5b57\u8282 \uff0c \u76f4\u63a5 \u8fdb\u5165 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7684 \u5f00\u5934 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 3 \u8868\u793a \u540e\u9762 \u7684 \u603b \u8bb0\u5f55 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u662f \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u8fd9 \u4e00\u5e27 \u4e2d \u5220\u9664 \u53c2\u4e0e \u53c2\u4e0e\u8005 100 \u3001 101 \u548c 120 \u3002 \u6570\u636e \u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7 \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u54ea\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u6bcd \uff09 \u7684 \u5b69\u5b50 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a id \u662f\u5b50 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a id \u662f \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6570\u636e \u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e \u5982\u679c \u4e24\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u53d1\u751f \u78b0\u649e \uff0c \u5b83 \u5c06 \u88ab \u6ce8\u518c \u5230 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u3002 \u76ee\u524d \uff0c \u53ea\u6709 \u5177\u6709 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u624d \u4f1a \u62a5\u544a \u78b0\u649e \uff0c \u56e0\u6b64 \u76ee\u524d \u53ea\u6709 \u82f1\u96c4 \u8f66\u8f86 \u4f1a \u81ea\u52a8 \u8fde\u63a5 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 id \u53ea\u662f \u4e00\u4e2a \u7528\u4e8e \u5728 \u5185\u90e8 \u6807\u8bc6 \u6bcf\u6b21 \u78b0\u649e \u7684 \u5e8f\u5217 \u3002 \u540c\u4e00 \u5e27 \u4e2d \u53ef\u80fd \u4f1a \u53d1\u751f \u540c\u4e00 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u591a\u6b21 \u78b0\u649e \uff0c \u56e0\u4e3a \u7269\u7406 \u5e27 \u901f\u7387 \u662f \u56fa\u5b9a \u7684 \uff0c \u5e76\u4e14 \u540c\u4e00 \u6e32\u67d3 \u5e27 \u4e2d \u901a\u5e38 \u5b58\u5728 \u591a\u4e2a \u7269\u7406 \u5b50 \u6b65\u9aa4 \u3002 \u6570\u636e \u6570\u636e\u5305 6 - \u4f4d\u7f6e \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u573a\u666f \u4e2d \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u6570\u636e \u6570\u636e\u5305 7 - \u4ea4\u901a \u4ea4\u901a\u706f \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u573a\u666f \u4e2d \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83 \u5b58\u50a8 \u72b6\u6001 \u5b58\u50a8\u72b6\u6001 \uff08 \u7ea2\u8272 \u3001 \u6a59\u8272 \u6216 \u7eff\u8272 \uff09 \u4ee5\u53ca \u7b49\u5f85 \u66f4 \u6539\u4e3a \u65b0 \u72b6\u6001 \u7684 \u65f6\u95f4 \u3002 \u6570\u636e \u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u8f66\u8f86 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u548c \u5c71\u5730 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u52a8\u753b \u3002 \u8be5 \u6570\u636e \u6570\u636e\u5305 \u5b58\u50a8 \u4e86 \u6cb9\u95e8 \u3001 \u65b9\u5411 \u65b9\u5411\u76d8 \u3001 \u5220\u8f66 \u3001 \u624b\u5239 \u548c \u6392\u6321 \u8f93\u5165 \uff0c \u7136\u540e \u5728 \u64ad\u653e \u65f6 \u8bbe\u7f6e \u5b83\u4eec \u3002 \u6570\u636e \u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b \u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u884c\u4eba \u7684 \u52a8\u753b \u3002 \u5b83 \u53ea\u662f \u4fdd\u5b58 \u52a8\u753b \u4e2d \u4f7f\u7528 \u7684 \u884c\u4eba \u7684 \u901f\u5ea6 \u3002 4 - \u5e27 \u5e03\u5c40 \u4e00\u4e2a \u5e27 \u7531 \u591a\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7ec4\u6210 \uff0c \u5176\u4e2d \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u662f \u53ef\u9009 \u7684 \uff0c \u9664\u4e86 \u90a3\u4e9b \u5728 \u8be5 \u5e27 \u4e2d \u5177\u6709 \u5f00\u59cb \u548c \u7ed3\u675f \u7684 \u6570\u636e \u6570\u636e\u5305 \u4e4b\u5916 \uff0c \u5b83\u4eec \u5fc5\u987b \u59cb\u7ec8 \u5b58\u5728 \u3002 \u4e8b\u4ef6 \u6570\u636e \u6570\u636e\u5305 \u4ec5 \u5b58\u5728 \u4e8e \u5b83\u4eec \u53d1\u751f \u7684 \u5e27 \u4e2d \u3002 \u4f4d\u7f6e \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 \u5e94\u8be5 \u5b58\u5728 \u4e8e \u6240\u6709 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u5b83\u4eec \u9700\u8981 \u79fb\u52a8 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u4e3a \u5176 \u72b6\u6001 \u3002 \u5b83\u4eec \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5982\u679c \u5b83\u4eec \u4e0d \u5b58\u5728 \uff0c \u90a3\u4e48 \u91cd\u653e \u91cd\u653e\u5668 \u5c06 \u65e0\u6cd5 \u79fb\u52a8 \u6216 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u52a8\u753b \u5305 \u4e5f \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83\u4eec \u4f1a \u88ab \u8bb0\u5f55 \u3002 \u8fd9\u6837 \u884c\u4eba \u5c31 \u4f1a \u88ab \u52a8\u753b \u5316 \uff0c \u5e76\u4e14 \u8f66\u8f6e \u4e5f \u4f1a \u8ddf\u968f \u8f66\u8f86 \u7684 \u65b9\u5411 \u3002 5 - \u6587\u4ef6 \u5e03\u5c40 \u6587\u4ef6 \u7684 \u5e03\u5c40 \u4ee5 \u4fe1\u606f \u5934 \u5f00\u59cb \uff0c \u7136\u540e \u662f \u5206\u7ec4 \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \u3002 \u6bcf\u7ec4 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 \u3002 \u5728 \u8fd9 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \uff0c \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u627e\u5230 \u5176\u4f59 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u901a\u5e38 \uff0c \u6700\u597d \u9996\u5148 \u62e5\u6709 \u6709\u5173 \u4e8b\u4ef6 \u7684 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \uff0c \u7136\u540e \u518d \u62e5\u6709 \u6709\u5173 \u4f4d\u7f6e \u548c \u72b6\u6001 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u4e8b\u4ef6 \u5305\u662f \u53ef\u9009 \u7684 \uff0c \u56e0\u4e3a \u5b83\u4eec \u5728 \u53d1\u751f \u65f6 \u51fa\u73b0 \uff0c \u6240\u4ee5 \u6211\u4eec \u53ef\u4ee5 \u6709 \u8fd9\u6837 \u7684 \u5e03\u5c40 \uff1a \u5728 \u7b2c 1 \u5e27 \u4e2d \uff0c \u521b\u5efa \u4e86 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u91cd\u65b0 \u8bbe\u7f6e \u4e86 \u7236\u7ea7 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ef\u4ee5 \u5728 \u56fe\u50cf \u4e2d \u89c2\u5bdf \u5176 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 2 \u5e27 \u4e2d \u6ca1\u6709 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 3 \u5e27 \u4e2d \uff0c \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u751f \u4e86 \u78b0\u649e \uff0c \u56e0\u6b64 \u78b0\u649e \u4e8b\u4ef6 \u4f1a \u968f\u8be5 \u4fe1\u606f \u4e00\u8d77 \u51fa\u73b0 \u3002 \u5728 \u7b2c 4 \u5e27 \u4e2d \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u6467\u6bc1 \u3002","title":"\u8bb0\u5f55\u5668 \u4e8c\u8fdb\u5236 \u6587\u4ef6\u683c\u5f0f"},{"location":"ref_recorder_binary_file_format/#_1","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u7cfb\u7edf \u5c06 \u91cd\u653e \u4eff\u771f \u6240 \u9700 \u7684 \u6240\u6709 \u4fe1\u606f \u4fdd\u5b58 \u5728 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u6587\u4ef6 \u4e2d \uff0c \u5bf9 \u591a \u5b57\u8282 \u503c \u4f7f\u7528 \u5c0f\u7aef \u5b57\u8282 \u987a\u5e8f \u3002 1 - \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u5b57\u7b26 \u5b57\u7b26\u4e32 2 - \u4fe1\u606f \u5934 3 - \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0 \u6570\u636e \u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664 \u6570\u636e \u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7 \u6570\u636e \u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e \u6570\u636e \u6570\u636e\u5305 6 - \u4f4d\u7f6e \u6570\u636e \u6570\u636e\u5305 7 - \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b \u6570\u636e \u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b 4 - \u5e27 \u5e03\u5c40 5 - \u6587\u4ef6 \u5e03\u5c40 \u5728 \u4e0b \u4e00\u5f20 \u4ee3\u8868 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u7684 \u56fe\u50cf \u4e2d \uff0c \u6211\u4eec \u53ef\u4ee5 \u5feb\u901f \u67e5\u770b \u6240\u6709 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u56fe\u50cf \u4e2d \u53ef\u89c6 \u53ef\u89c6\u5316 \u7684 \u6bcf\u4e2a \u90e8\u5206 \u5c06 \u5728 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8fdb\u884c \u89e3\u91ca \uff1a \u603b\u4e4b \uff0c \u8be5 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u6709 \u4e00\u4e2a \u5c0f \u5934 \uff0c \u5176\u4e2d \u5305\u542b \u4e00\u822c \u4fe1\u606f \uff08 \u7248\u672c \u3001 \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \u3001 \u65e5\u671f \u548c \u4f7f\u7528 \u7684 \u5730\u56fe \uff09 \u548c \u4e0d\u540c \u7c7b\u578b \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \uff08 \u76ee\u524d \u6211\u4eec \u4f7f\u7528 10 \u79cd \u7c7b\u578b \uff0c \u4f46 \u5c06\u6765 \u4f1a \u7ee7\u7eed \u589e\u957f \uff09 \u3002","title":"\u8bb0\u5f55\u5668 \u4e8c\u8fdb\u5236 \u6587\u4ef6\u683c\u5f0f"},{"location":"ref_recorder_binary_file_format/#1-","text":"\u5b57\u7b26 \u5b57\u7b26\u4e32 \u9996\u5148 \u4f7f\u7528 \u5176 \u957f\u5ea6 \u8fdb\u884c \u7f16\u7801 \uff0c \u7136\u540e \u662f \u5176 \u5b57\u7b26 \uff08 \u4e0d \u4ee5 \u5b57\u7b26 \u7a7a\u5b57\u7b26 \u7ed3\u5c3e \uff09 \u3002 \u4f8b\u5982 \uff0c \u5b57\u7b26 \u5b57\u7b26\u4e32 \u201c Town06 \u201d \u5c06 \u4fdd\u5b58 \u4e3a \u5341\u516d \u8fdb\u5236 \u5341\u516d\u8fdb\u5236 \u503c \uff1a 06 00 54 6f 77 6e 30 36","title":"1 - \u4e8c\u8fdb\u5236 \u5b57\u7b26\u4e32"},{"location":"ref_recorder_binary_file_format/#2-","text":"\u4fe1\u606f \u6807\u5934 \u5305\u542b \u6709\u5173 \u5f55\u5236 \u6587\u4ef6 \u7684 \u4e00\u822c \u4fe1\u606f \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \uff0c \u5b83 \u5305\u542b \u7248\u672c \u548c \u4e00\u4e2a \u9b54\u672f \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u7528\u4e8e \u5c06 \u8be5 \u6587\u4ef6 \u6807\u8bc6 \u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u4ef6 \u3002 \u5982\u679c \u6807\u9898 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \uff0c \u90a3\u4e48 \u7248\u672c \u4e5f \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8 \u5305\u542b \u4e00\u4e2a \u65e5\u671f \u65f6\u95f4 \u6233 \uff0c \u4ee5\u53ca \u4ece 1900 \u5e74 \u5f00\u59cb \u7684 \u79d2\u6570 \uff0c \u5e76\u4e14 \u8fd8 \u5305\u542b \u4e00\u4e2a \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff0c \u5176\u4e2d \u5305\u542b \u7528\u4e8e \u8bb0\u5f55 \u7684 \u5730\u56fe \u540d\u79f0 \u3002 \u793a\u4f8b \u4fe1\u606f \u5934 \u662f \uff1a","title":"2 - \u4fe1\u606f \u5934"},{"location":"ref_recorder_binary_file_format/#3-","text":"\u6bcf\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u4e24\u4e2a \u5b57 \u6bb5 \uff08 5 \u4e2a \u5b57\u8282 \uff09 \u7684 \u5c0f \u6807\u5934 \u5f00\u5934 \uff1a id : \u6570\u636e \u6570\u636e\u5305 \u7c7b\u578b size : \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \u5934 \u4fe1\u606f \u540e\u9762 \u8ddf\u7740 \u6570\u636e \u3002 \u6570\u636e \u662f \u53ef\u9009 \u7684 \uff0c \u5927\u5c0f \u4e3a 0 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u6ca1\u6709 \u6570\u636e \u3002 \u5982\u679c \u5927\u5c0f \u5927\u4e8e 0 \uff0c \u5219 \u8868\u793a \u6570\u636e \u6570\u636e\u5305 \u6709 \u6570\u636e \u5b57\u8282 \u3002 \u56e0\u6b64 \uff0c \u9700\u8981 \u6839\u636e \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u91cd\u65b0 \u89e3\u91ca \u6570\u636e \u3002 \u6570\u636e \u6570\u636e\u5305 \u7684 \u5934 \u5f88 \u6709\u7528 \uff0c \u56e0\u4e3a \u6211\u4eec \u53ef\u4ee5 \u5728 \u64ad\u653e \u65f6 \u5ffd\u7565 \u90a3\u4e9b \u6211\u4eec \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u4e0d\u611f\u5174\u8da3 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u5305 \u7684 \u5934 \uff08 \u524d 5 \u4e2a \u5b57\u8282 \uff09 \u5e76 \u8df3 \u8fc7 \u6570\u636e \u6570\u636e\u5305 \u7684 \u6570\u636e \u8df3\u8f6c \u5230 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff1a \u6570\u636e \u6570\u636e\u5305 \u7684 \u7c7b\u578b \u6709 \uff1a \u6211\u4eec \u5efa\u8bae \u7528\u6237 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6570\u636e \u6570\u636e\u5305 \u4f7f\u7528 \u8d85\u8fc7 100 \u7684 id \uff0c \u56e0\u4e3a \u8fd9\u4e2a \u5217\u8868 \u5c06\u6765 \u4f1a \u4e0d\u65ad \u589e\u957f \u3002","title":"3 - \u6570\u636e\u5305"},{"location":"ref_recorder_binary_file_format/#0-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bb0 \u65b0\u5e27 \u7684 \u5f00\u59cb \uff0c \u5e76\u4e14 \u5b83 \u5c06 \u662f \u5f00\u59cb \u6bcf\u4e2a \u5e27 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u3002 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u9700\u8981 \u653e\u7f6e \u5728 Frame Start \u548c Frame End \u4e4b\u95f4 \u3002 \u56e0\u6b64 \uff0c \u7ecf\u8fc7 \u65f6\u95f4 + \u6301\u7eed \u65f6\u95f4 \u6301\u7eed\u65f6\u95f4 = \u4e0b \u4e00\u5e27 \u7ecf\u8fc7 \u7684 \u65f6\u95f4 \u3002","title":"\u6570\u636e\u5305 0 - \u5e27 \u5f00\u59cb"},{"location":"ref_recorder_binary_file_format/#1-_1","text":"\u8be5 \u5e27 \u6ca1\u6709 \u6570\u636e \uff0c \u4ec5 \u6807\u8bb0 \u5f53\u524d \u5e27 \u7684 \u7ed3\u675f \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u91cd\u653e \u91cd\u653e\u5668 \u5728 \u65b0 \u4e00\u5e27 \u5f00\u59cb \u4e4b\u524d \u77e5\u9053 \u6bcf \u4e00\u5e27 \u7684 \u7ed3\u675f \u3002 \u901a\u5e38 \uff0c \u4e0b \u4e00\u5e27 \u5e94\u8be5 \u662f \u5e27 \u8d77\u59cb \u6570\u636e \u6570\u636e\u5305 \u4ee5 \u5f00\u59cb \u65b0\u5e27 \u3002","title":"\u6570\u636e\u5305 1 - \u5e27 \u7ed3\u675f"},{"location":"ref_recorder_binary_file_format/#2-_1","text":"\u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u6211\u4eec \u9700\u8981 \u5728 \u5f53\u524d \u5e27 \u521b\u5efa \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b57 \u6bb5 \u603b\u8ba1 \u8868\u793a \u540e\u9762 \u6709 \u591a\u5c11 \u6761 \u8bb0\u5f55 \u3002 \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u4ee5 id \u5b57 \u6bb5 \u5f00\u5934 \uff0c \u5373 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5f55\u5236 \u65f6\u6240 \u62e5\u6709 \u7684 id \uff08 \u5728 \u64ad\u653e \u65f6 \uff0c \u8be5 id \u53ef\u4ee5 \u5728 \u5185\u90e8 \u66f4\u6539 \uff0c \u4f46 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u6b64 id \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7c7b\u578b \u53ef\u4ee5 \u6709 \u4ee5\u4e0b \u53ef\u80fd \u7684 \u503c \uff1a 0 = \u5176\u4ed6 1 = \u8f66\u8f86 2 = \u884c\u4eba 3 = \u4ea4\u901a \u4ea4\u901a\u706f 4 = \u65e0\u6548 \u4e4b\u540e \uff0c \u7ee7\u7eed \u6211\u4eec \u60f3\u8981 \u521b\u5efa \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 \u5728 \u6211\u4eec \u5f97\u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u63cf\u8ff0 \u4e4b\u540e \u3002 \u63cf\u8ff0 uid \u662f \u63cf\u8ff0 \u7684 \u6570\u5b57 ID \uff0c \u800c id \u662f \u6587\u672c ID \uff0c \u4f8b\u5982 \" vehicle . seat . leon \" \u3002 \u7136\u540e \u662f \u5176 \u5c5e\u6027 \u7684 \u96c6\u5408 \uff0c \u4f8b\u5982 \u989c\u8272 \u3001 \u8f6e\u5b50 \u6570\u91cf \u3001 \u89d2\u8272 \u7b49 \u3002 \u5c5e\u6027 \u7684 \u6570\u91cf \u662f \u53ef\u53d8 \u7684 \uff0c \u5e94\u8be5 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a number _ of _ wheels = 4 sticky _ control = true color = 79 , 33 , 85 role _ name = autopilot","title":"\u6570\u636e\u5305 2 - \u4e8b\u4ef6 \u6dfb\u52a0"},{"location":"ref_recorder_binary_file_format/#3-_1","text":"\u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u4e86 \u8fd9 \u4e00\u5e27 \u9700\u8981 \u9500\u6bc1 \u591a\u5c11 \u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5b83 \u6709 \u8bb0\u5f55 \u603b\u6570 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u6709 \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u4f8b\u5982 \uff0c \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u53ef\u80fd \u662f \u8fd9\u6837 \u7684 \uff1a \u6570\u5b57 3 \u5c06 \u6570\u636e \u6570\u636e\u5305 \u6807\u8bc6 \u4e3a \u4e8b\u4ef6 \u5220\u9664 \u3002 \u6570\u5b57 16 \u662f \u6570\u636e \u6570\u636e\u5305 \u6570\u636e \u7684 \u5927\u5c0f \uff08 4 \u4e2a \u5b57 \u6bb5 \uff0c \u6bcf\u4e2a \u5b57 \u6bb5 4 \u5b57\u8282 \uff09 \u3002 \u56e0\u6b64 \uff0c \u5982\u679c \u6211\u4eec \u4e0d\u60f3 \u5904\u7406 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8df3\u8fc7 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 16 \u4e2a \u5b57\u8282 \uff0c \u76f4\u63a5 \u8fdb\u5165 \u4e0b \u4e00\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7684 \u5f00\u5934 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 3 \u8868\u793a \u540e\u9762 \u7684 \u603b \u8bb0\u5f55 \uff0c \u6bcf\u6761 \u8bb0\u5f55 \u90fd \u662f \u8981 \u5220\u9664 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u8fd9 \u4e00\u5e27 \u4e2d \u5220\u9664 \u53c2\u4e0e \u53c2\u4e0e\u8005 100 \u3001 101 \u548c 120 \u3002","title":"\u6570\u636e\u5305 3 - \u4e8b\u4ef6 \u5220\u9664"},{"location":"ref_recorder_binary_file_format/#4-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bf4\u660e \u54ea\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u662f \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u6bcd \uff09 \u7684 \u5b69\u5b50 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a id \u662f\u5b50 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a id \u662f \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u6570\u636e\u5305 4 - \u4e8b\u4ef6 \u7236\u7ea7"},{"location":"ref_recorder_binary_file_format/#5-","text":"\u5982\u679c \u4e24\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u53d1\u751f \u78b0\u649e \uff0c \u5b83 \u5c06 \u88ab \u6ce8\u518c \u5230 \u8fd9\u4e2a \u6570\u636e \u6570\u636e\u5305 \u4e2d \u3002 \u76ee\u524d \uff0c \u53ea\u6709 \u5177\u6709 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u624d \u4f1a \u62a5\u544a \u78b0\u649e \uff0c \u56e0\u6b64 \u76ee\u524d \u53ea\u6709 \u82f1\u96c4 \u8f66\u8f86 \u4f1a \u81ea\u52a8 \u8fde\u63a5 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 id \u53ea\u662f \u4e00\u4e2a \u7528\u4e8e \u5728 \u5185\u90e8 \u6807\u8bc6 \u6bcf\u6b21 \u78b0\u649e \u7684 \u5e8f\u5217 \u3002 \u540c\u4e00 \u5e27 \u4e2d \u53ef\u80fd \u4f1a \u53d1\u751f \u540c\u4e00 \u5bf9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u591a\u6b21 \u78b0\u649e \uff0c \u56e0\u4e3a \u7269\u7406 \u5e27 \u901f\u7387 \u662f \u56fa\u5b9a \u7684 \uff0c \u5e76\u4e14 \u540c\u4e00 \u6e32\u67d3 \u5e27 \u4e2d \u901a\u5e38 \u5b58\u5728 \u591a\u4e2a \u7269\u7406 \u5b50 \u6b65\u9aa4 \u3002","title":"\u6570\u636e\u5305 5 - \u4e8b\u4ef6 \u78b0\u649e"},{"location":"ref_recorder_binary_file_format/#6-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u573a\u666f \u4e2d \u5b58\u5728 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u7c7b\u578b \u7684 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002","title":"\u6570\u636e\u5305 6 - \u4f4d\u7f6e"},{"location":"ref_recorder_binary_file_format/#7-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u573a\u666f \u4e2d \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5b83 \u5b58\u50a8 \u72b6\u6001 \u5b58\u50a8\u72b6\u6001 \uff08 \u7ea2\u8272 \u3001 \u6a59\u8272 \u6216 \u7eff\u8272 \uff09 \u4ee5\u53ca \u7b49\u5f85 \u66f4 \u6539\u4e3a \u65b0 \u72b6\u6001 \u7684 \u65f6\u95f4 \u3002","title":"\u6570\u636e\u5305 7 - \u4ea4\u901a\u706f"},{"location":"ref_recorder_binary_file_format/#8-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u8f66\u8f86 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u548c \u5c71\u5730 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u52a8\u753b \u3002 \u8be5 \u6570\u636e \u6570\u636e\u5305 \u5b58\u50a8 \u4e86 \u6cb9\u95e8 \u3001 \u65b9\u5411 \u65b9\u5411\u76d8 \u3001 \u5220\u8f66 \u3001 \u624b\u5239 \u548c \u6392\u6321 \u8f93\u5165 \uff0c \u7136\u540e \u5728 \u64ad\u653e \u65f6 \u8bbe\u7f6e \u5b83\u4eec \u3002","title":"\u6570\u636e\u5305 8 - \u8f66\u8f86 \u52a8\u753b"},{"location":"ref_recorder_binary_file_format/#9-","text":"\u8be5 \u6570\u636e \u6570\u636e\u5305 \u8bb0\u5f55 \u4e86 \u884c\u4eba \u7684 \u52a8\u753b \u3002 \u5b83 \u53ea\u662f \u4fdd\u5b58 \u52a8\u753b \u4e2d \u4f7f\u7528 \u7684 \u884c\u4eba \u7684 \u901f\u5ea6 \u3002","title":"\u6570\u636e\u5305 9 - \u884c\u4eba \u52a8\u753b"},{"location":"ref_recorder_binary_file_format/#4-_1","text":"\u4e00\u4e2a \u5e27 \u7531 \u591a\u4e2a \u6570\u636e \u6570\u636e\u5305 \u7ec4\u6210 \uff0c \u5176\u4e2d \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \u90fd \u662f \u53ef\u9009 \u7684 \uff0c \u9664\u4e86 \u90a3\u4e9b \u5728 \u8be5 \u5e27 \u4e2d \u5177\u6709 \u5f00\u59cb \u548c \u7ed3\u675f \u7684 \u6570\u636e \u6570\u636e\u5305 \u4e4b\u5916 \uff0c \u5b83\u4eec \u5fc5\u987b \u59cb\u7ec8 \u5b58\u5728 \u3002 \u4e8b\u4ef6 \u6570\u636e \u6570\u636e\u5305 \u4ec5 \u5b58\u5728 \u4e8e \u5b83\u4eec \u53d1\u751f \u7684 \u5e27 \u4e2d \u3002 \u4f4d\u7f6e \u548c \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u6570\u636e\u5305 \u5e94\u8be5 \u5b58\u5728 \u4e8e \u6240\u6709 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u5b83\u4eec \u9700\u8981 \u79fb\u52a8 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u4e3a \u5176 \u72b6\u6001 \u3002 \u5b83\u4eec \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5982\u679c \u5b83\u4eec \u4e0d \u5b58\u5728 \uff0c \u90a3\u4e48 \u91cd\u653e \u91cd\u653e\u5668 \u5c06 \u65e0\u6cd5 \u79fb\u52a8 \u6216 \u8bbe\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u72b6\u6001 \u3002 \u52a8\u753b \u5305 \u4e5f \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \u5b83\u4eec \u4f1a \u88ab \u8bb0\u5f55 \u3002 \u8fd9\u6837 \u884c\u4eba \u5c31 \u4f1a \u88ab \u52a8\u753b \u5316 \uff0c \u5e76\u4e14 \u8f66\u8f6e \u4e5f \u4f1a \u8ddf\u968f \u8f66\u8f86 \u7684 \u65b9\u5411 \u3002","title":"4 - \u5e27 \u5e03\u5c40"},{"location":"ref_recorder_binary_file_format/#5-_1","text":"\u6587\u4ef6 \u7684 \u5e03\u5c40 \u4ee5 \u4fe1\u606f \u5934 \u5f00\u59cb \uff0c \u7136\u540e \u662f \u5206\u7ec4 \u7684 \u6570\u636e \u6570\u636e\u5305 \u96c6\u5408 \u3002 \u6bcf\u7ec4 \u4e2d \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u5e27 \u5f00\u59cb \u6570\u636e \u6570\u636e\u5305 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u5e27 \u7ed3\u675f \u6570\u636e \u6570\u636e\u5305 \u3002 \u5728 \u8fd9 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \uff0c \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u627e\u5230 \u5176\u4f59 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u901a\u5e38 \uff0c \u6700\u597d \u9996\u5148 \u62e5\u6709 \u6709\u5173 \u4e8b\u4ef6 \u7684 \u6240\u6709 \u6570\u636e \u6570\u636e\u5305 \uff0c \u7136\u540e \u518d \u62e5\u6709 \u6709\u5173 \u4f4d\u7f6e \u548c \u72b6\u6001 \u7684 \u6570\u636e \u6570\u636e\u5305 \u3002 \u4e8b\u4ef6 \u5305\u662f \u53ef\u9009 \u7684 \uff0c \u56e0\u4e3a \u5b83\u4eec \u5728 \u53d1\u751f \u65f6 \u51fa\u73b0 \uff0c \u6240\u4ee5 \u6211\u4eec \u53ef\u4ee5 \u6709 \u8fd9\u6837 \u7684 \u5e03\u5c40 \uff1a \u5728 \u7b2c 1 \u5e27 \u4e2d \uff0c \u521b\u5efa \u4e86 \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5e76 \u91cd\u65b0 \u8bbe\u7f6e \u4e86 \u7236\u7ea7 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ef\u4ee5 \u5728 \u56fe\u50cf \u4e2d \u89c2\u5bdf \u5176 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 2 \u5e27 \u4e2d \u6ca1\u6709 \u4e8b\u4ef6 \u3002 \u5728 \u7b2c 3 \u5e27 \u4e2d \uff0c \u4e00\u4e9b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d1\u751f \u4e86 \u78b0\u649e \uff0c \u56e0\u6b64 \u78b0\u649e \u4e8b\u4ef6 \u4f1a \u968f\u8be5 \u4fe1\u606f \u4e00\u8d77 \u51fa\u73b0 \u3002 \u5728 \u7b2c 4 \u5e27 \u4e2d \uff0c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u6467\u6bc1 \u3002","title":"5 - \u6587\u4ef6 \u5e03\u5c40"},{"location":"ref_sensors/","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6df1\u5ea6 \u76f8\u673a \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76f8\u673a \u5149\u6d41 \u76f8\u673a \u91cd\u8981 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \uff08 x - \u5411\u524d \uff0c y - \u5411 \u53f3 \uff0c z - \u5411\u4e0a \uff09 \uff0c \u5e76 \u8fd4\u56de \u672c\u5730 \u7a7a\u95f4 \u4e2d \u7684 \u5750\u6807 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f6f\u4ef6 \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u5176 \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u8bb8\u591a \u53cd\u8f6c Y \u8f74 \uff0c \u56e0\u6b64 \u76f4\u63a5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u955c\u50cf \u8f93\u51fa \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \uff1a sensor . other . collision \u8f93\u51fa \uff1a \u6bcf\u6b21 \u78b0\u649e \u7684 carla . CollisionEvent \u3002 \u6bcf\u5f53 \u5176\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0e \u4e16\u754c \u4e0a \u7684 \u67d0\u4e9b \u7269\u4f53 \u53d1\u751f \u78b0\u649e \u65f6 \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u8bb0\u5f55 \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u6bcf\u4e2a \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u5e27 \u6bcf\u6b21 \u78b0\u649e \u90fd \u4f1a \u4ea7\u751f \u4e00\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u901a\u8fc7 \u4e0e \u591a\u4e2a \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \uff0c \u53ef\u4ee5 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u4ea7\u751f \u591a\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u7684 \u5c5e\u6027 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \uff09 \u3002 other _ actor carla . Actor \u4e0e \u7236\u7ea7 \u76f8\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse carla . Vector3D \u78b0\u649e \u7684 \u6b63\u5e38 \u8109\u51b2 \u7ed3\u679c \u3002 \u6df1\u5ea6 \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . depth \u8f93\u51fa \uff1a \u6bcf\u6b65 \u7684 \u56fe\u50cf carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u76f8\u673a \u63d0\u4f9b \u573a\u666f \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u7f16\u7801 \u6bcf\u4e2a \u50cf\u7d20 \u5230 \u76f8\u673a \u7684 \u8ddd\u79bb \uff08 \u4e5f \u79f0\u4e3a \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u6216 z \u7f13\u51b2 \u7f13\u51b2\u533a \uff09 \u4ee5 \u521b\u5efa \u5143\u7d20 \u7684 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u8be5 \u56fe\u50cf \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u7684 3 \u4e2a \u901a\u9053 \uff08 \u4ece \u5b57\u8282 \u4f4e\u5b57\u8282 \u5230 \u5b57\u8282 \u9ad8\u5b57\u8282 \uff09 \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u6df1\u5ea6 \u503c \u8fdb\u884c \u7f16\u7801 \uff1a R - > G - > B \u3002 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u7684 \u5b9e\u9645 \u8ddd\u79bb \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u65b9\u5f0f \u89e3\u7801 \uff1a normalized = ( R + G * 256 + B * 256 * 256 ) / ( 256 * 256 * 256 - 1 ) in _ meters = 1000 * normalized \u7136\u540e \uff0c \u5e94 \u4f7f\u7528 carla . colorConverter \u5c06 \u8f93\u51fa carla . Image \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff0c \u8be5 carla . colorConverter \u4f1a \u5c06 \u5b58\u50a8 \u5728 RGB \u901a\u9053 \u4e2d \u7684 \u8ddd\u79bb \u8f6c\u6362 \u4e3a \u5305\u542b \u8be5 \u8ddd\u79bb \u7684 [ 0 , 1 ] \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u3002 carla . colorConverter \u4e2d\u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u83b7\u53d6 \u6df1\u5ea6 \u89c6\u56fe \uff1a Depth \u548c Logaritmic depth \u3002 \u4e24\u8005 \u7684 \u7cbe\u5ea6 \u90fd \u662f \u6beb\u7c73 \u7ea7 \u7684 \uff0c \u4f46 \u5bf9\u6570 \u65b9\u6cd5 \u53ef\u4ee5 \u4e3a \u66f4 \u8fd1 \u7684 \u7269\u4f53 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . Depth ) \u76f8\u673a \u57fa\u672c \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . gnss Output : \u6bcf \u4e00\u6b65 \u7684 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u7684 \u6d4b\u91cf carla . GNSSMeasurement \uff08 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u62a5\u544a \u5176\u7236 \u5bf9\u8c61 \u7684 \u5f53\u524d gnss \u4f4d\u7f6e \u3002 \u8fd9\u662f \u901a\u8fc7 \u5c06 \u5ea6\u91cf \u4f4d\u7f6e \u6dfb\u52a0 \u5230 OpenDRIVE \u5730\u56fe \u5b9a\u4e49 \u4e2d \u5b9a\u4e49 \u7684 \u521d\u59cb \u5730\u7406 \u53c2\u8003 \u4f4d\u7f6e \u6765 \u8ba1\u7b97 \u7684 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ alt _ bias float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ alt _ stddev float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lat _ bias float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lat _ stddev float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lon _ bias float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lon _ stddev float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 latitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7eac\u5ea6 \u3002 longitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7ecf\u5ea6 \u3002 altitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . imu \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 \u7684 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u6d4b\u91cf \u503c carla . IMUMeasurement \uff08 \u9664\u975e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ef4\u7b54 \u4fe1\u53f7 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u63d0\u4f9b \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u5c06 \u4e3a \u7236 \u5bf9\u8c61 \u68c0\u7d22 \u7684 \u6d4b\u91cf \u503c \u3002 \u6570\u636e \u662f\u4ece \u5bf9\u8c61 \u7684 \u5f53\u524d \u72b6\u6001 \u6536\u96c6 \u7684 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ accel _ stddev _ x float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 X \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ y float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Y \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ z float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Z \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ gyro _ bias _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ bias _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ bias _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 accelerometer carla . Vector3D \u6d4b\u91cf \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 \u4ee5 m / s ^ 2 \u4e3a \u5355\u4f4d \uff09 \u3002 gyroscope carla . Vector3D \u6d4b\u91cf \u901f\u5ea6 \u89d2\u901f\u5ea6 \uff08 \u4ee5 rad / sec \u4e3a \u5355\u4f4d \uff09 \u3002 compass float \u4ee5 \u5f27\u5ea6 \u4e3a \u5355\u4f4d \u7684 \u65b9\u5411 \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d\u5317 \u662f ( 0.0 , - 1.0 , 0.0 ) \u3002 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u8ba1\u7b97 \u65b9\u6cd5 \u8ba1\u7b97\u65b9\u6cd5 \uff1a $ $ d _ 2 ( i ) = - 2.0 \\ times [ { y _ 1 \\ over { h _ 1 \\ times h _ 2 } } - { y _ 2 \\ over { h _ 2 \\ times ( h _ 1 + h _ 2 ) } } - { y _ 0 \\ over { h _ 1 \\ times ( h _ 1 + h _ 2 ) } } ] . $ $ \u5176\u4e2d \uff0c ( h _ 1 ) \u4e3a \u5f53\u524d \u65f6\u95f4 \u589e\u91cf \uff0c ( h _ 2 ) \u4e3a \u524d \u4e00\u4e2a \u65f6\u95f4 \u589e\u91cf \u3002 \u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \uff1a sensor . other . lane _ invasion \u8f93\u51fa \uff1a \u6bcf\u6b21 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 carla . LaneInvasionEvent \u3002 \u6bcf\u6b21 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u5730\u56fe \u7684 OpenDRIVE \u63cf\u8ff0 \u63d0\u4f9b \u7684 \u9053\u8def \u6570\u636e \uff0c \u901a\u8fc7 \u8003\u8651 \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \u6765 \u786e\u5b9a \u4e3b \u8f66\u8f86 \u662f\u5426 \u6b63\u5728 \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u3002 \u7136\u800c \uff0c \u6709 \u4e00\u4e9b \u4e8b\u60c5 \u9700\u8981 \u8003\u8651 \uff1a OpenDRIVE \u6587\u4ef6 \u548c \u5730\u56fe \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u5c06 \u5bfc\u81f4 \u89c4\u5219 \u4e0d\u89c4\u5219 \u73b0\u8c61 \uff0c \u4f8b\u5982 \u5728 \u5730\u56fe \u4e2d \u4e0d \u53ef\u89c1 \u7684 \u4ea4\u53c9 \u8f66\u9053 \u3002 \u8f93\u51fa \u68c0\u7d22 \u4ea4\u53c9 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \uff1a \u8ba1\u7b97 \u5728 OpenDRIVE \u4e2d \u5b8c\u6210 \uff0c \u5e76 \u5c06 \u56db\u4e2a \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u6574\u4e2a \u7a7a\u95f4 \u89c6\u4e3a \u4e00\u4e2a \u6574\u4f53 \u3002 \u56e0\u6b64 \uff0c \u53ef\u80fd \u6709 \u4e0d\u6b62 \u4e00\u6761 \u8f66\u9053 \u540c\u65f6 \u7a7f\u8fc7 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u5c5e\u6027 \u3002 \u91cd\u8981 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u7684 \u8f66\u8f86 \uff08 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 crossed _ lane _ markings list ( carla . LaneMarking ) \u5df2 \u7a7f\u8d8a \u7684 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . lidar . ray _ cast \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . LidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 1 / FPS \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6b64 \u8f93\u51fa \u5305\u542b \u4eff\u771f \u70b9\u4e91 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5b83\u4eec \u7684 \u5217\u8868 carla . Location \uff1a for location in lidar _ measurement : print ( location ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u7684 \u4fe1\u606f \u88ab \u7f16\u7801 \u4e3a 4D \u70b9 \u3002 \u524d \u4e09\u4e2a \u662f xyz \u5750\u6807 \u4e2d \u7684 \u7a7a\u95f4 \u70b9 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u65c5\u884c \u8fc7\u7a0b \u4e2d \u7684 \u5f3a\u5ea6 \u635f\u5931 \u3002 \u8be5 \u5f3a\u5ea6 \u901a\u8fc7 \u4ee5\u4e0b \u516c\u5f0f \u8ba1\u7b97 \u3002 a \u2014 \u8870\u51cf \u7cfb\u6570 \u8870\u51cf\u7cfb\u6570 \u3002 \u8fd9 \u53ef\u80fd \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6ce2\u957f \u548c \u5927\u6c14 \u6761\u4ef6 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 atmosphere _ attenuation _ rate \u3002 d \u2014 \u4ece \u51fb\u4e2d \u70b9\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8ddd\u79bb \u4e3a\u4e86 \u83b7\u5f97 \u66f4\u597d \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u53ef\u4ee5 \u5220\u9664 \u4e91\u4e2d \u7684 \u70b9 \u3002 \u8fd9\u662f \u4eff\u771f \u5916\u90e8 \u6270\u52a8 \u9020\u6210 \u7684 \u635f\u5931 \u7684 \u7b80\u5355 \u65b9\u6cd5 \u3002 \u8fd9 \u53ef\u4ee5 \u7ed3\u5408 \u4e24\u4e2a \u4e0d\u540c \u7684 \u6765 \u5b8c\u6210 \u3002 General drop - off \u2014 \u968f\u673a \u6389\u843d \u7684 \u5206\u6570 \u6bd4\u4f8b \u3002 \u8fd9 \u662f \u5728 \u8ddf\u8e2a \u4e4b\u524d \u5b8c\u6210 \u7684 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u4e0d\u4f1a \u8ba1\u7b97 \u88ab \u4e22\u5f03 \u7684 \u70b9 \uff0c \u4ece\u800c \u63d0\u9ad8 \u6027\u80fd \u3002 \u5982\u679c \u662f dropoff _ general _ rate = 0.5 \uff0c \u5219 \u6263\u6389 \u4e00\u534a \u7684 \u5206\u6570 \u3002 Instensity - based drop - off \u2014 \u5bf9\u4e8e \u68c0\u6d4b \u5230 \u7684 \u6bcf\u4e2a \u70b9 \uff0c \u6839\u636e \u8ba1\u7b97 \u7684 \u5f3a\u5ea6 \u7684 \u6982\u7387 \u6267\u884c \u989d\u5916 \u7684 \u4e0b\u964d \u3002 \u8be5 \u6982\u7387 \u7531 \u4e24\u4e2a \u53c2\u6570 \u786e\u5b9a \u3002 dropoff _ zero _ intensity \u662f \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u3002 dropoff _ intensity _ limit \u662f \u9608\u503c \u5f3a\u5ea6 \uff0c \u8d85\u8fc7 \u8be5 \u9608\u503c \u5c06 \u4e0d\u4f1a \u6389\u843d \u4efb\u4f55 \u5206\u6570 \u3002 \u8303\u56f4 \u5185 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u662f \u57fa\u4e8e \u8fd9 \u4e24\u4e2a \u53c2\u6570 \u7684 \u7ebf\u6027 \u6bd4\u4f8b \u3002 \u6b64\u5916 \uff0c \u8be5 noise _ stddev \u5c5e\u6027 \u8fd8 \u4f7f \u566a\u58f0 \u6a21\u578b \u80fd\u591f \u4eff\u771f \u73b0\u5b9e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u51fa\u73b0 \u7684 \u610f\u5916 \u504f\u5dee \u3002 \u5bf9\u4e8e \u6b63\u503c \uff0c \u6bcf\u4e2a \u70b9 \u90fd \u4f1a \u6cbf\u7740 \u6fc0\u5149 \u5c04\u7ebf \u7684 \u77e2\u91cf \u968f\u673a \u6270\u52a8 \u3002 \u7ed3\u679c \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5177\u6709 \u5b8c\u7f8e \u7684 \u89d2\u5ea6 \u5b9a\u4f4d \uff0c \u4f46 \u8ddd\u79bb \u6d4b\u91cf \u5b58\u5728 \u566a\u97f3 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 atmosphere _ attenuation _ rate float 0.004 \u6d4b\u91cf \u6bcf\u7c73 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5f3a\u5ea6 \u635f\u5931 \u7684 \u7cfb\u6570 \u3002 \u68c0\u67e5 \u4e0a\u9762 \u7684 \u5f3a\u5ea6 \u8ba1\u7b97 \u3002 dropoff _ general _ rate float 0.45 \u968f\u673a \u4e22\u5f03 \u7684 \u70b9 \u7684 \u4e00\u822c \u6bd4\u4f8b \u3002 dropoff _ intensity _ limit float 0.8 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u5f3a\u5ea6 \u9608\u503c \uff0c \u9ad8\u4e8e \u8be5\u503c \u5219 \u4e0d\u4f1a \u4e0b\u964d \u4efb\u4f55 \u70b9 \u3002 dropoff _ zero _ intensity float 0.4 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u6bcf\u4e2a \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e0b\u964d \u7684 \u6982\u7387 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 noise _ stddev float 0.0 \u566a\u58f0 \u6a21\u578b \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \uff0c \u7528\u4e8e \u5e72\u6270 \u6cbf\u5176 \u5149\u7ebf \u6295\u5c04 \u77e2\u91cf \u7684 \u6bcf\u4e2a \u70b9 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u6bcf\u4e2a \u901a\u9053 \u6355\u83b7 \u6b64\u5e27 \u7684 \u70b9\u6570 \u3002 raw _ data bytes 32 \u4f4d \u6d6e\u70b9 \u6570\u7ec4 \uff08 \u6bcf\u4e2a \u70b9 \u7684 XYZI \uff09 \u3002 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \uff1a sensor . other . obstacle \u8f93\u51fa \uff1a \u6bcf\u4e2a \u969c\u788d \u969c\u788d\u7269 \u7684 carla . ObstacleDetectionEvent \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6bcf\u5f53 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u524d\u65b9 \u6709 \u969c\u788d \u65f6 \uff0c \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u9884\u6d4b \u969c\u788d \u969c\u788d\u7269 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6bcd\u8f66 \u524d\u65b9 \u521b\u5efa \u4e00\u4e2a \u80f6\u56ca \u5f62\u72b6 \uff0c \u5e76\u7528 \u5b83 \u6765 \u68c0\u67e5 \u78b0\u649e \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 distance float 5 \u8f68\u8ff9 \u8ddd\u79bb \u3002 hit _ radius float 0.5 \u8f68\u8ff9 \u7684 \u534a\u5f84 \u3002 only _ dynamics bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 debug _ linetrace bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u53ef\u89c1 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u8f66 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u68c0\u6d4b \u5230 \u969c\u788d \u969c\u788d\u7269 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 other _ actor carla . Actor \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u68c0\u6d4b \u4e3a \u969c\u788d \u969c\u788d\u7269 \u3002 distance float \u4ece \u53c2\u4e0e \u53c2\u4e0e\u8005 actor \u5230 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 other _ actor \u7684 \u8ddd\u79bb \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . radar \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RadarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u8be5 \u89c6\u56fe \u88ab \u8f6c\u6362 \u4e3a \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u7684 \u4e8c\u7ef4 \u70b9\u56fe \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5851\u9020 \u5143\u7d20 \u5e76 \u8bc4\u4f30 \u5b83\u4eec \u7684 \u8fd0\u52a8 \u548c \u65b9\u5411 \u3002 \u7531\u4e8e \u4f7f\u7528 \u5750\u6807 \u6781\u5750\u6807 \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u96c6\u4e2d \u5728 \u89c6\u56fe \u4e2d\u5fc3 \u5468\u56f4 \u3002 \u6d4b\u91cf \u7684 \u70b9 \u4f5c\u4e3a carla . RadarDetection \u6570\u7ec4 \u5305\u542b \u5728 carla . RadarMeasurement \u4e2d \uff0c \u8be5 \u6570\u7ec4 \u6307\u5b9a \u5b83\u4eec \u7684 \u5750\u6807 \u6781\u5750\u6807 \u3001 \u8ddd\u79bb \u548c \u901f\u5ea6 \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u53ef\u4ee5 \u8f7b\u677e \u8f6c\u6362 \u4e3a numpy \u53ef \u7ba1\u7406 \u7684 \u683c\u5f0f \uff1a # To get a numpy [ [ vel , azimuth , altitude , depth ] , ... [ , , , ] ] : points = np . frombuffer ( radar _ data . raw _ data , dtype = np . dtype ( ' f4 ' ) ) points = np . reshape ( points , ( len ( radar _ data ) , 4 ) ) \u63d0\u4f9b \u7684 \u811a\u672c manual _ control . py \u4f7f\u7528 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u663e\u793a \u6b63\u5728 \u68c0\u6d4b \u7684 \u70b9 \uff0c \u5e76 \u5728 \u9759\u6001 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u767d\u8272 \uff0c \u5728 \u5411 \u7269\u4f53 \u79fb\u52a8 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u7ea2\u8272 \uff0c \u5728 \u8fdc\u79bb \u7269\u4f53 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u84dd\u8272 \uff1a \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 horizontal _ fov float 30.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 points _ per _ second int 1500 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 range float 100 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 vertical _ fov float 30.0 \u5782\u76f4 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 raw _ data carla . RadarDetection \u68c0\u6d4b \u5230 \u7684 \u70b9 \u5217\u8868 \u3002 RadarDetection \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 altitude float \u4ee5 \u5f27\u5ea6 \u8868\u793a \u7684 \u9ad8\u5ea6 \u89d2 \u3002 azimuth float \u65b9\u4f4d \u65b9\u4f4d\u89d2 \uff08 \u4ee5 \u5f27\u5ea6 \u8868\u793a \uff09 \u3002 depth float \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u3002 velocity float \u671d\u5411 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u3002 RGB \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . rgb \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u201c RGB \u201d \u76f8\u673a \u5145\u5f53 \u6355\u83b7 \u573a\u666f \u56fe\u50cf \u7684 \u5e38\u89c4 \u76f8\u673a \u3002 carla . colorConverter \u5982\u679c enable _ postprocess _ effects \u542f\u7528 \uff0c \u4e3a\u4e86 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4e00\u7ec4 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u5c06 \u5e94\u7528 \u4e8e \u56fe\u50cf \uff1a Vignette : \u4f7f \u5c4f\u5e55 \u8fb9\u6846 \u53d8\u6697 \u3002 Grain jitter : \u4e3a \u6e32\u67d3 \u6dfb\u52a0 \u4e00\u4e9b \u566a\u70b9 \u3002 Bloom : \u5f3a\u70c8 \u7684 \u5149\u7ebf \u4f1a \u707c\u70e7 \u5b83\u4eec \u5468\u56f4 \u7684 \u533a\u57df \u3002 Auto exposure : \u4fee\u6539 \u56fe\u50cf \u4f3d\u739b\u4ee5 \u4eff\u771f \u773c\u775b \u5bf9 \u8f83 \u6697 \u6216 \u8f83\u4eae \u533a\u57df \u7684 \u9002\u5e94 \u3002 Lens flares : \u4eff\u771f \u660e\u4eae \u7269\u4f53 \u5728 \u955c\u5934 \u4e0a \u7684 \u53cd\u5c04 \u3002 Depth of field : \u6a21\u7cca \u9760\u8fd1 \u6216 \u8fdc\u79bb \u76f8\u673a \u7684 \u7269\u4f53 \u3002 sensor _ tick \u544a\u8bc9 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u6570\u636e \u7684 \u901f\u5ea6 \u6709 \u591a \u5feb \u3002 \u503c\u4e3a 1.5 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf \u534a\u79d2 \u6355\u83b7 \u4e00\u6b21 \u6570\u636e \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u503c 0.0 \u8868\u793a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u3002 \u76f8\u673a \u57fa\u672c \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 bloom _ intensity float 0.675 \u5149\u6655 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 fstop float 1.4 \u76f8\u673a \u955c\u5934 \u7684 \u6253\u5f00 \u3002 \u5178\u578b \u955c\u5934 \u7684 \u5149\u5708 1 / fstop \u4e3a f / 1.2 \uff08 \u66f4\u5927 \u7684 \u5149\u5708 \uff09 \u3002 \u8f83\u5927 \u7684 \u6570\u5b57 \u5c06 \u51cf\u5c11 \u666f\u6df1 \u6548\u679c \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 iso float 100.0 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \u3002 gamma float 2.2 \u76f8\u673a \u7684 \u76ee\u6807 \u4f3d\u739b\u503c \u3002 lens _ flare _ intensity float 0.1 \u955c\u5934 \u7729\u5149 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 shutter _ speed float 200.0 \u76f8\u673a \u5feb\u95e8 \u901f\u5ea6 \u5feb\u95e8\u901f\u5ea6 \uff0c \u4ee5 \u79d2 \u4e3a \u5355\u4f4d ( 1.0 / s ) \u3002 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u9ad8\u7ea7 \u76f8\u673a \u5c5e\u6027 \u7531\u4e8e \u8fd9\u4e9b \u6548\u679c \u662f \u7531 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u7684 \uff0c \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u4ed6\u4eec \u7684 \u6587\u6863 \uff1a \u81ea\u52a8 \u66dd\u5149 \u5f71\u89c6 \u7ea7 \u666f\u6df1 \u65b9\u6848 \u989c\u8272 \u5206\u7ea7 \u548c \u7535\u5f71 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 min _ fstop float 1.2 \u6700\u5927 \u5149\u5708 \u3002 blade _ count int 5 \u6784\u6210 \u9694\u819c \u673a\u6784 \u7684 \u53f6\u7247 \u6570\u91cf \u3002 exposure _ mode str histogram \u53ef\u4ee5 \u662f manual \u6216 or histogram \u3002 \u66f4 \u591a \u5185\u5bb9 \u8bf7 \u53c2\u89c1 UE4 \u6587\u6863 \u3002 exposure _ compensation float Linux : + 0.75 Windows : 0.0 \u66dd\u5149 \u7684 \u5bf9\u6570 \u8c03\u6574 \u3002 0 \uff1a \u65e0 \u8c03\u6574 \uff0c - 1 \uff1a 2 \u500d \u66f4 \u6697 \uff0c - 2 \uff1a 4 \u66f4\u6697 \uff0c 1 \uff1a 2 \u500d \u66f4\u4eae \uff0c 2 \uff1a 4 \u500d \u66f4\u4eae \u3002 exposure _ min _ bright float 10.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u4f4e \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u4f4e \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5c0f\u4e8e \u6216 \u7b49\u4e8e exposure _ max _ bright \u3002 exposure _ max _ bright float 12.0 \u5728 ` exposure _ mode : \" histogram \" ` \u4e2d \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u5927 \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u9ad8 \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5927\u4e8e \u6216 \u7b49\u4e8e ` exposure _ min _ bright ` \u3002 exposure _ speed _ up float 3.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u3002 \u4ece \u9ed1\u6697 \u73af\u5883 \u5230 \u660e\u4eae \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 exposure _ speed _ down float 1.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u4ece \u660e\u4eae \u73af\u5883 \u5230 \u9ed1\u6697 \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 calibration _ constant float 16.0 18% \u53cd\u7167 \u53cd\u7167\u7387 \u7684 \u6821\u51c6 \u5e38\u6570 \u3002 focal _ distance float 1000.0 \u666f\u6df1 \u6548\u679c \u5e94 \u6e05\u6670 \u7684 \u8ddd\u79bb \u3002 \u4ee5 \u5398\u7c73 \uff08 \u865a\u5e7b \u5f15\u64ce \u5355\u4f4d \uff09 \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 blur _ amount float 1.0 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 / \u5f3a\u5ea6 \u3002 blur _ radius float 0.0 1080p \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e0b \u7684 \u534a\u5f84 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \uff0c \u6839\u636e \u8ddd \u76f8\u673a \u7684 \u8ddd\u79bb \u4eff\u771f \u5927\u6c14 \u6563\u5c04 \u3002 motion _ blur _ intensity float 0.45 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 [ 0 , 1 ] \u3002 motion _ blur _ max _ distortion float 0.35 \u8fd0\u52a8 \u6a21\u7cca \u5f15\u8d77 \u7684 \u6700\u5927 \u5931\u771f \u3002 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 motion _ blur _ min _ object _ screen _ size float 0.1 \u5bf9\u4e8e \u8fd0\u52a8 \u6a21\u7cca \uff0c \u5bf9\u8c61 \u5fc5\u987b \u5177\u6709 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u8f83 \u4f4e \u7684 \u503c \u610f\u5473 \u610f\u5473\u7740 \u8f83\u5c11 \u7684 \u7ed8\u5236 \u8c03\u7528 \u3002 slope float 0.88 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 S \u66f2\u7ebf \u7684 \u9661\u5ea6 \u3002 \u503c\u8d8a \u5927 \uff0c \u659c\u7387 \u8d8a \u9661 \uff08 \u8d8a\u6697 \uff09 [ 0.0 , 1.0 ] \u3002 toe float 0.55 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u6df1\u8272 [ 0.0 , 1.0 ] \u3002 shoulder float 0.26 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u660e\u4eae \u989c\u8272 [ 0.0 , 1.0 ] \u3002 black _ clip float 0.0 \u4e0d \u5e94 \u8c03\u6574 \u6b64\u503c \u3002 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u548c \u9ed1\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u7684 \u4f4d\u7f6e [ 0.0 , 1.0 ] \u3002 white _ clip float 0.04 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u7684 \u4f4d\u7f6e \uff0c \u5e76\u4e14 \u767d\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b\u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 [ 0.0 , 1.0 ] \u3002 temp float 6500.0 \u5e73\u8861 \u767d\u5e73\u8861 \u4e0e \u573a\u666f \u4e2d \u5149\u7ebf \u7684 \u6e29\u5ea6 \u6709\u5173 \u3002 \u767d\u5149 \uff1a \u5f53 \u4e0e \u5149\u6e29 \u5339\u914d \u65f6 \u3002 \u6696\u5149 \uff1a \u5f53 \u9ad8\u4e8e \u573a\u666f \u4e2d \u7684 \u5149\u7ebf \u65f6 \uff0c \u5448 \u6de1\u9ec4 \u9ec4\u8272 \u6de1\u9ec4\u8272 \u3002 \u51b7\u5149 \uff1a \u4f4e\u4e8e \u5149\u7ebf \u65f6 \u3002 \u84dd\u8272 \u3002 tint float 0.0 \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u8272\u8c03 \u3002 \u8c03\u6574 \u9752\u8272 \u548c \u6d0b\u7ea2 \u7ea2\u8272 \u6d0b\u7ea2\u8272 \u7684 \u989c\u8272 \u8303\u56f4 \u3002 \u8fd9 \u5e94\u8be5 \u4e0e \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u5c5e\u6027 \u4e00\u8d77 \u4f7f\u7528 \u4ee5 \u83b7\u5f97 \u51c6\u786e \u7684 \u989c\u8272 \u3002 \u5728 \u67d0\u4e9b \u5149\u6e29 \u4e0b \uff0c \u989c\u8272 \u53ef\u80fd \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u9ec4 \u6216 \u66f4 \u84dd \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5e73\u8861 \u6700\u7ec8 \u7684 \u989c\u8272 \uff0c \u4f7f \u5176 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u81ea\u7136 \u3002 chromatic _ aberration _ intensity float 0.0 \u7528\u4e8e \u63a7\u5236 \u8272\u5f69 \u504f\u79fb \u7684 \u7f29\u653e \u56e0\u5b50 \uff0c \u5728 \u5c4f\u5e55 \u8fb9\u6846 \u4e0a \u66f4 \u660e\u663e \u3002 chromatic _ aberration _ offset float 0.0 \u5230 \u53d1\u751f \u6548\u679c \u7684 \u56fe\u50cf \u4e2d\u5fc3 \u7684 \u6b63\u5219 \u5316 \u8ddd\u79bb \u3002 enable _ postprocess _ effects bool True \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u6fc0\u6d3b \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . other . rss \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RssResponse \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u91cd\u8981 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u9605\u8bfb \u672c\u6587 \u4e4b\u524d \u5148 \u9605\u8bfb \u5177\u4f53 \u7684 \u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6\u6210 \u4e86 Carla \u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 C++ \u5e93 \u3002 \u5b83 \u5728 Carla \u4e2d \u9ed8\u8ba4 \u88ab \u7981\u7528 \uff0c \u5e76\u4e14 \u5fc5\u987b \u663e\u5f0f \u6784\u5efa \u624d\u80fd \u4f7f\u7528 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u72b6\u6001 \u5e76 \u68c0\u7d22 \u5f53\u524d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u54cd\u5e94 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 carla . RssRestrictor \u5c06 \u4f7f\u7528 \u6b64 \u6570\u636e \u6765 \u8c03\u6574 carla . VehicleControl \uff0c \u7136\u540e \u518d \u5c06 \u5176 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u53ef\u4ee5 \u901a\u8fc7 \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u6216 \u7528\u6237 \u8f93\u5165 \u751f\u6210 \u3002 \u4f8b\u5982 \uff0c \u4e0b\u9762 \u6709 \u4e00\u6bb5 \u6765\u81ea \u7684 \u4ee3\u7801 \u7247\u6bb5 PythonAPI / examples / rss / manual _ control _ rss . py \uff0c \u5176\u4e2d \u5728 \u5fc5\u8981 \u65f6 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4fee\u6539 \u7528\u6237 \u8f93\u5165 \u3002 1 . \u68c0\u67e5 RssSensor \u662f\u5426 \u751f\u6210 \u5305\u542b \u9650\u5236 \u7684 \u6709\u6548 \u54cd\u5e94 \u3002 2 . \u6536\u96c6 \u8f66\u8f86 \u7684 \u5f53\u524d \u52a8\u6001 \u548c \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u3002 3 . \u4f7f\u7528 RssSensor \u7684 \u54cd\u5e94 \u4ee5\u53ca \u8f66\u8f86 \u5f53\u524d \u7684 \u52a8\u6001 \u548c \u7269\u7406 \u7279\u6027 \u5bf9 \u8f66\u8f86 \u63a7\u5236 \u65bd\u52a0 \u9650\u5236 \u3002 rss _ proper _ response = self ._ world . rss _ sensor . proper _ response if self ._ world . rss _ sensor and self ._ world . rss _ sensor . response _ valid else None if rss _ proper _ response : ... vehicle _ control = self ._ restrictor . restrict _ vehicle _ control ( vehicle _ control , rss _ proper _ response , self ._ world . rss _ sensor . ego _ dynamics _ on _ route , self ._ vehicle _ physics ) carla . RssSensor \u7c7b \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u84dd\u56fe \u6ca1\u6709 \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u3002 \u4f46\u662f \uff0c \u5b83 \u5b9e\u4f8b \u5316 \u7684 carla . RssSensor \u5bf9\u8c61 \u5177\u6709 Python API \u53c2\u8003 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u3002 \u4ee5\u4e0b \u662f \u5b83\u4eec \u7684 \u6458\u8981 \u3002 carla . RssSensor \u53d8\u91cf \u7c7b\u578b \u63cf\u8ff0 ego _ vehicle _ dynamics ad . rss . world . RssDynamics \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 other _ vehicle _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u5176\u4ed6 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 pedestrian _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u884c\u4eba \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 road _ boundaries _ mode carla . RssRoadBoundariesMode \u542f\u7528 / \u7981\u7528 \u7559\u5728 \u9053\u8def \u4e0a \u529f\u80fd \u3002 \u9ed8\u8ba4 \u4e3a \u5173\u95ed \u3002 # Fragment of rss _ sensor . py # The carla . RssSensor is updated when listening for a new carla . RssResponse def _ on _ rss _ response ( weak _ self , response ) : ... self . timestamp = response . timestamp self . response _ valid = response . response _ valid self . proper _ response = response . proper _ response self . ego _ dynamics _ on _ route = response . ego _ dynamics _ on _ route self . rss _ state _ snapshot = response . rss _ state _ snapshot self . situation _ snapshot = response . situation _ snapshot self . world _ model = response . world _ model \u8b66\u544a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b8c\u5168 \u5de5\u4f5c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u6ca1\u6709 \u84dd\u56fe \u3002 \u5bf9 \u5c5e\u6027 \u7684 \u66f4\u6539 \u5c06 \u5728 \u8c03\u7528 listen ( ) \u540e \u751f\u6548 \u3002 \u6b64\u7c7b \u4e2d \u53ef\u7528 \u7684 \u65b9\u6cd5 \u4e0e \u8f66\u8f86 \u7684 \u8def\u7ebf \u6709\u5173 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8ba1\u7b97 \u59cb\u7ec8 \u57fa\u4e8e \u672c\u8f66 \u901a\u8fc7 \u9053\u8def \u7f51\u7edc \u7684 \u8def\u7ebf \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u63d0\u4f9b \u4e00\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u6765 \u63a7\u5236 \u6240 \u8003\u8651 \u7684 \u8def\u7ebf \uff0c \u8fd9\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u53ef\u80fd \u662f carla . Transform \u4e2d \u7684 carla . Waypoint \u3002 \u6700\u597d \u5728 \u4ea4\u53c9 \u4ea4\u53c9\u70b9 \u4e4b\u540e \u9009\u62e9 \u8fd9\u4e9b \u70b9 \uff0c \u4ee5 \u5f3a\u5236 \u8def\u7ebf \u91c7\u53d6 \u6240 \u9700 \u7684 \u8f6c\u5f2f \u3002 carla . RssSensor \u65b9\u6cd5 \u63cf\u8ff0 routing _ targets \u83b7\u53d6 \u7528\u4e8e \u8def\u7531 \u7684 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u5217\u8868 \u3002 append _ routing _ target \u5c06 \u9644\u52a0 \u4f4d\u7f6e \u9644\u52a0 \u5230 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u3002 reset _ routing _ targets \u5220\u9664 \u9644\u52a0 \u7684 \u8def\u7531 \u76ee\u6807 \u3002 drop _ route \u653e\u5f03 \u5f53\u524d \u8def\u7531 \u5e76 \u521b\u5efa \u4e00\u6761 \u65b0\u8def \u7531 \u3002 register _ actor _ constellation _ callback \u6ce8\u518c \u56de\u8c03 \u6765\u81ea \u5b9a\u4e49 \u8ba1\u7b97 \u3002 set _ log _ level \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 set _ map _ log _ level \u8bbe\u7f6e \u7528\u4e8e \u5730\u56fe \u76f8\u5173 \u65e5\u5fd7 \u7684 \u65e5\u5fd7 \u7ea7\u522b \u3002 # Update the current route self . sensor . reset _ routing _ targets ( ) if routing _ targets : for target in routing _ targets : self . sensor . append _ routing _ target ( target ) \u7b14\u8bb0 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u8def\u7531 \u76ee\u6807 \uff0c \u5219 \u4f1a \u521b\u5efa \u968f\u673a \u8def\u7531 \u3002 \u8f93\u51fa \u5c5e\u6027 carla . RssResponse \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 response _ valid bool \u54cd\u5e94 \u6570\u636e \u7684 \u6709\u6548 \u6709\u6548\u6027 \u3002 proper _ response ad . rss . state . ProperResponse RSS \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \uff0c \u5305\u62ec \u52a0\u901f \u9650\u5236 \u3002 rss _ state _ snapshot ad . rss . state . RssStateSnapshot RSS \u72b6\u6001 \u4e3a \u5f53\u524d \u65f6\u95f4 \u70b9 \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8be6\u7ec6 \u7684 \u5355\u72ec \u8f93\u51fa \u3002 situation _ snapshot ad . rss . situation . SituationSnapshot \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u60c5\u51b5 \u3002 \u8fd9\u662f \u7528\u4e8e RSS \u8ba1\u7b97 \u7684 \u7ecf\u8fc7 \u5904\u7406 \u7684 \u8f93\u5165 \u6570\u636e \u3002 world _ model ad . rss . world . WorldModel \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u4e16\u754c \u6a21\u578b \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8f93\u5165 \u6570\u636e \u3002 ego _ dynamics _ on _ route carla . RssEgoDynamicsOnRoute \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u6001 \u3002 \u5982\u679c \u6ce8\u518c \u4e86 actor _ constellation _ callback \uff0c \u5219 \u4f1a \u89e6\u53d1 \u4ee5\u4e0b \u8c03\u7528 \uff1a \u9ed8\u8ba4 \u8ba1\u7b97 ( actor _ constellation _ data . other _ actor = None ) \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8ba1\u7b97 # Fragment of rss _ sensor . py # The function is registered as actor _ constellation _ callback def _ on _ actor _ constellation _ request ( self , actor _ constellation _ data ) : actor _ constellation _ result = carla . RssActorConstellationResult ( ) actor _ constellation _ result . rss _ calculation _ mode = ad . rss . map . RssMode . NotRelevant actor _ constellation _ result . restrict _ speed _ limit _ mode = ad . rss . map . RssSceneCreation . RestrictSpeedLimitMode . IncreasedSpeedLimit10 actor _ constellation _ result . ego _ vehicle _ dynamics = self . current _ vehicle _ parameters actor _ constellation _ result . actor _ object _ type = ad . rss . world . ObjectType . Invalid actor _ constellation _ result . actor _ dynamics = self . current _ vehicle _ parameters actor _ id = - 1 actor _ type _ id = \" none \" if actor _ constellation _ data . other _ actor ! = None : # customize actor _ constellation _ result for specific actor ... else : # default ... return actor _ constellation _ result \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \uff1a sensor . lidar . ray _ cast _ semantic \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . SemanticLidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u4f7f\u7528 \u5c04\u7ebf \u6295\u5c04 \u5b9e\u73b0 \u7684 \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff0c \u516c\u5f00 \u6709\u5173 \u5c04\u7ebf \u6295\u5c04 \u547d\u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5b83 \u7684 \u884c\u4e3a \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e\u5e38 \u76f8\u4f3c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u6709 \u4e24\u4e2a \u4e3b\u8981 \u533a\u522b \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u68c0\u7d22 \u5230 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u6bcf\u4e2a \u70b9 \u5305\u542b \u66f4 \u591a \u6570\u636e \u3002 \u8be5\u70b9 \u7684 \u5750\u6807 \uff08 \u4e0e \u666e\u901a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e00\u6837 \uff09 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u4e0e \u8868\u9762 \u6cd5\u7ebf \u4e4b\u95f4 \u7684 \u4f59\u5f26 \u503c \u3002 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u57fa\u7840 \u4e8b\u5b9e \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f Carla \u5bf9\u8c61 \u547d\u4e2d \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65e2 \u4e0d \u5305\u542b \u5f3a\u5ea6 \u3001 \u8870\u51cf \u4e5f \u4e0d \u5305\u542b \u566a\u58f0 \u6a21\u578b \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u70b9 \u662f \u901a\u8fc7 \u4e3a \u5782\u76f4 FOV \u4e2d \u5206\u5e03 \u7684 \u6bcf\u4e2a \u901a\u9053 \u6dfb\u52a0 \u6fc0\u5149 \u6765 \u8ba1\u7b97 \u7684 \u3002 \u65cb\u8f6c \u662f \u901a\u8fc7 \u8ba1\u7b97 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5728 \u4e00\u5e27 \u4e2d \u65cb\u8f6c \u7684 \u6c34\u5e73 \u89d2\u5ea6 \u6765 \u4eff\u771f \u7684 \u3002 \u70b9\u4e91 \u662f \u901a\u8fc7 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \u5bf9 \u6bcf\u4e2a \u6fc0\u5149 \u8fdb\u884c \u5149\u7ebf \u6295\u5c04 \u6765 \u8ba1\u7b97 \u7684 \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 1 / FPS \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 \u6b64 \u8f93\u51fa \u5305\u542b \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8bed\u4e49 \u68c0\u6d4b \u4e91 \uff0c \u56e0\u6b64 \uff0c \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5176 \u5217\u8868 carla . SemanticLidarDetection \uff1a for detection in semantic _ lidar _ measurement : print ( detection ) \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) \u3002 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d LIDAR \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int LIDAR \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u5f53\u524d \u5e27 \u4e2d \u6355\u83b7 \u7684 \u6bcf\u4e2a \u901a\u9053 \u7684 \u70b9\u6570 \u3002 raw _ data bytes \u5305\u542b \u5177\u6709 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u4fe1\u606f \u7684 \u70b9\u4e91 \u7684 \u6570\u7ec4 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u70b9 \uff0c \u5b58\u50a8 \u56db\u4e2a 32 \u4f4d \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 XYZ \u5750\u6807 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3002 Unsigned int \u5305\u542b \u547d\u4e2d \u5bf9\u8c61 \u7684 \u7d22\u5f15 \u3002 Unsigned int \u5305\u542b \u5bf9\u8c61 it \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . semantic _ segmentation \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u6444\u50cf \u6444\u50cf\u673a \u6839\u636e \u5176 \u6807\u7b7e \u4ee5 \u4e0d\u540c \u7684 \u989c\u8272 \u663e\u793a \u5b83 \uff0c \u4ece\u800c \u5bf9 \u53ef\u89c1 \u7684 \u6bcf\u4e2a \u7269\u4f53 \u8fdb\u884c \u5206\u7c7b \uff08 \u4f8b\u5982 \uff0c \u884c\u4eba \u4e0e \u8f66\u8f86 \u7684 \u989c\u8272 \u4e0d\u540c \uff09 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u65f6 \uff0c \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7d20 \u90fd \u4f1a \u4f7f\u7528 \u6807\u7b7e \u521b\u5efa \u3002 \u6240\u4ee5 \u5f53 \u6f14\u5458 \u4ea7\u751f \u65f6 \u5c31 \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u5bf9\u8c61 \u6309 \u5176 \u5728 \u9879\u76ee \u4e2d \u7684 \u76f8\u5bf9 \u6587\u4ef6 \u8def\u5f84 \u8fdb\u884c \u5206\u7c7b \u3002 \u4f8b\u5982 \uff0c \u5b58\u50a8 \u5728 \u4e2d \u7684 \u7f51\u683c Unreal / CarlaUE4 / Content / Static / Pedestrians \u88ab \u6807\u8bb0 \u4e3a Pedestrian \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63d0\u4f9b \u7684 \u56fe\u50cf \u7684 \u6807\u7b7e \u4fe1\u606f \u7f16\u7801 \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \uff1a \u7ea2\u8272 \u503c\u4e3a \u7684 \u50cf\u7d20 x \u5c5e\u4e8e \u5e26\u6709 \u6807\u7b7e \u7684 \u5bf9\u8c61 x \u3002 \u8fd9\u4e2a \u539f\u59cb \u7684 carla . Image \u53ef\u4ee5 \u5728 carla . ColorConverter \u4e2d \u7684 CityScapesPalette \u7684 \u5e2e\u52a9 \u4e0b \u5b58\u50a8 \u548c \u8f6c\u6362 \uff0c \u4ee5 \u5e94\u7528 \u6807\u7b7e \u4fe1\u606f \u5e76 \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u663e\u793a \u56fe\u7247 \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . cityScapesPalette ) \u76ee\u524d \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u6807\u7b7e \uff1a \u503c \u6807\u7b7e \u8f6c\u6362 \u540e \u7684 \u989c\u8272 \u63cf\u8ff0 0 Unlabeled ( 0 , 0 , 0 ) \u8003\u8651 \u5c1a\u672a \u5206\u7c7b \u7684 \u5143\u7d20 Unlabeled \u3002 \u8be5 \u7c7b\u522b \u5e94\u8be5 \u662f \u7a7a \u7684 \u6216 \u81f3\u5c11 \u5305\u542b \u6ca1\u6709 \u51b2\u7a81 \u7684 \u5143\u7d20 \u3002 1 Building ( 70 , 70 , 70 ) \u623f\u5c4b \u3001 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u7b49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4ee5\u53ca \u9644\u7740 \u5728 \u5176 \u4e0a \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u7a7a\u8c03 \u3001 \u811a\u624b \u811a\u624b\u67b6 \u3001 \u906e\u9633 \u906e\u9633\u7bf7 \u6216 \u68af\u5b50 \u7b49\u7b49 \u3002 2 Fence ( 100 , 40 , 40 ) \u969c\u788d \u969c\u788d\u7269 \u3001 \u680f\u6746 \u6216 \u5176\u4ed6 \u76f4\u7acb \u7ed3\u6784 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u5305\u56f4 \u5730\u9762 \u533a\u57df \u7684 \u6728\u6750 \u6216 \u7535\u7ebf \u7ec4\u4ef6 \u3002 3 Other ( 55 , 90 , 80 ) \u4e00\u5207 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u7684 \u4e1c\u897f \u3002 4 Pedestrian ( 220 , 20 , 60 ) \u6b65\u884c \u6216 \u4e58\u5750 / \u9a7e\u9a76 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u6216 \u79fb\u52a8 \u7cfb\u7edf \u7684 \u4eba \u3002 \u4f8b\u5982 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6216 \u8e0f\u677f \u677f\u8f66 \u8e0f\u677f\u8f66 \u3001 \u6ed1\u677f \u3001 \u9a6c \u3001 \u65f1\u51b0 \u51b0\u978b \u65f1\u51b0\u978b \u3001 \u8f6e\u6905 \u7b49 \u3002 5 Pole ( 153 , 153 , 153 ) \u4e3b\u8981 \u4e3a \u5782\u76f4 \u65b9\u5411 \u7684 \u5c0f\u578b \u6746 \u3002 \u5982\u679c \u6746\u6709 \u6c34\u5e73 \u90e8\u5206 \uff08 \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \uff09 \uff0c \u5219 \u4e5f \u88ab \u89c6\u4e3a \u6746 \u3002 \u4f8b\u5982 \u6807\u5fd7 \u6746 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \u3002 6 RoadLine ( 157 , 234 , 50 ) \u9053\u8def \u4e0a \u7684 \u6807\u8bb0 \u3002 7 Road ( 128 , 64 , 128 ) \u6c7d\u8f66 \u901a\u5e38 \u884c\u9a76 \u7684 \u90e8\u5206 \u5730\u9762 \u3002 \u4f8b\u5982 \u4efb\u4f55 \u65b9\u5411 \u7684 \u8f66\u9053 \u548c \u8857\u9053 \u3002 8 SideWalk ( 244 , 35 , 232 ) \u6307\u5b9a \u4f9b \u884c\u4eba \u6216 \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8005 \u4f7f\u7528 \u7684 \u5730\u9762 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e0d\u4ec5 \u901a\u8fc7 \u6807\u8bb0 \uff0c \u8fd8 \u901a\u8fc7 \u4e00\u4e9b \u969c\u788d \u969c\u788d\u7269 \uff08 \u4f8b\u5982 \u8def\u7f18 \u77f3 \u6216 \u6746\u5b50 \uff09 \u5c06 \u9053\u8def \u4e0e \u9053\u8def \u5206 \u9694\u5f00 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u5212\u5b9a \u7684 \u8def\u8fb9 \u3001 \u4ea4\u901a \u4ea4\u901a\u5c9b \uff08 \u6b65\u884c \u90e8\u5206 \uff09 \u548c \u6b65\u884c \u533a \u3002 9 Vegetation ( 107 , 142 , 35 ) \u6811\u6728 \u3001 \u6811\u7bf1 \u3001 \u5404\u79cd \u5782\u76f4 \u690d\u88ab \u3002 \u8003\u8651 \u5730\u9762 \u690d\u88ab Terrain \u3002 10 Vehicles ( 0 , 0 , 142 ) \u6c7d\u8f66 \u3001 \u8d27\u8f66 \u3001 \u5361\u8f66 \u3001 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3001 \u516c\u5171 \u6c7d\u8f66 \u516c\u5171\u6c7d\u8f66 \u3001 \u706b\u8f66 \u3002 11 Wall ( 102 , 102 , 156 ) \u72ec\u7acb \u7684 \u7acb\u5899 \u3002 \u4e0d\u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 12 TrafficSign ( 220 , 220 , 0 ) \u7531\u5dde / \u5e02 \u5f53\u5c40 \u5b89\u88c5 \u7684 \u6807\u5fd7 \uff0c \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u3002 \u6b64 \u7c7b\u522b \u4e0d \u5305\u62ec \u9644\u6709 \u6807\u5fd7 \u7684 \u6746 \u3002 \u4f8b\u5982 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u3001 \u65b9\u5411 \u6807\u5fd7 ... 13 Sky ( 70 , 130 , 180 ) \u5f00\u9614 \u7684 \u5929\u7a7a \u3002 \u5305\u62ec \u4e91 \u548c \u592a\u9633 \u3002 14 Ground ( 81 , 0 , 81 ) \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u4e0d \u5339\u914d \u7684 \u4efb\u4f55 \u6c34\u5e73 \u5730\u9762 \u7ed3\u6784 \u3002 \u4f8b\u5982 \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u5171\u4eab \u7684 \u533a\u57df \uff0c \u6216 \u901a\u8fc7 \u8def\u7f18 \u4e0e \u9053\u8def \u5206\u9694 \u7684 \u5e73\u5766 \u73af\u5c9b \u3002 15 Bridge ( 150 , 100 , 100 ) \u53ea\u6709 \u6865 \u7684 \u7ed3\u6784 \u3002 \u6805\u680f \u3001 \u4eba \u3001 \u8f66\u8f86 \u4ee5\u53ca \u5176\u4e0a \u7684 \u5176\u4ed6 \u5143\u7d20 \u90fd \u88ab \u5355\u72ec \u6807\u8bb0 \u3002 16 RailTrack ( 230 , 150 , 140 ) \u5404\u79cd \u975e \u6c7d\u8f66 \u884c\u9a76 \u7684 \u94c1\u8f68 \u3002 \u4f8b\u5982 \u5730\u94c1 \u548c \u706b\u8f66 \u94c1\u8f68 \u3002 17 GuardRail ( 180 , 165 , 180 ) \u6240\u6709 \u7c7b\u578b \u7684 \u62a4\u680f / \u9632\u649e \u680f \u3002 18 TrafficLight ( 250 , 170 , 30 ) \u6ca1\u6709 \u706f\u6746 \u7684 \u4ea4\u901a \u706f\u7bb1 \u3002 19 Static ( 110 , 190 , 160 ) \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u548c \u9053\u5177 \u662f \u4e0d\u53ef \u79fb\u52a8 \u7684 \u3002 \u4f8b\u5982 \u6d88\u9632 \u6d88\u9632\u6813 \u3001 \u56fa\u5b9a \u957f\u51f3 \u3001 \u55b7\u6cc9 \u3001 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u3002 20 Dynamic ( 170 , 120 , 50 ) \u4f4d\u7f6e \u5bb9\u6613 \u968f \u65f6\u95f4 \u53d8\u5316 \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u53ef \u79fb\u52a8 \u5783\u573e \u5783\u573e\u6876 \u3001 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u3001 \u888b\u5b50 \u3001 \u8f6e\u6905 \u3001 \u52a8\u7269 \u7b49 \u3002 21 Water ( 45 , 60 , 150 ) \u6c34\u5e73 \u6c34\u9762 \u3002 \u4f8b\u5982 \u6e56\u6cca \u3001 \u6d77\u6d0b \u3001 \u6cb3\u6d41 \u3002 22 Terrain ( 145 , 170 , 100 ) \u8349 \u3001 \u5730\u9762 \u690d\u88ab \u3001 \u571f\u58e4 \u6216 \u6c99\u5b50 \u3002 \u8fd9\u4e9b \u533a\u57df \u4e0d \u9002\u5408 \u884c\u9a76 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u7684 \u9650\u5236 \u9650\u5236\u6027 \u8def\u7f18\u77f3 \u3002 \u7b14\u8bb0 \u9605\u8bfb \u672c \u6559\u7a0b \u4ee5 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002 \u76f8\u673a \u57fa\u672c \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u6ef4\u7b54\u58f0 \uff09 \u3002 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 DVS \u76f8\u673a \u84dd\u56fe \uff1a sensor . camera . dvs \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . DVSEventArray \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216 \u4e8b\u4ef6 \u76f8\u673a \u662f \u4e00\u79cd \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u5b8c\u5168 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e8b\u4ef6 \u76f8\u673a \u4e0d\u662f \u4ee5 \u56fa\u5b9a \u901f\u7387 \u6355\u83b7 \u5f3a\u5ea6 \u56fe\u50cf \uff0c \u800c\u662f \u4ee5 \u4e8b\u4ef6 \u6d41 \u7684 \u5f62\u5f0f \u5f02\u6b65 \u6d4b\u91cf \u5f3a\u5ea6 \u53d8\u5316 \uff0c \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u4eae\u5ea6 \u53d8\u5316 \u8fdb\u884c \u7f16\u7801 \u3002 \u4e0e \u6807\u51c6 \u6444\u50cf \u6444\u50cf\u673a \u76f8\u6bd4 \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u5177\u6709 \u72ec\u7279 \u7684 \u5c5e\u6027 \u3002 \u5b83\u4eec \u5177\u6709 \u975e\u5e38 \u9ad8 \u7684 \u52a8\u6001 \u8303\u56f4 \uff08 140 dB \u4e0e 60 dB \uff09 \u3001 \u65e0 \u8fd0\u52a8 \u6a21\u7cca \u548c \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \u3002 \u56e0\u6b64 \uff0c \u4e8b\u4ef6 \u76f8\u673a \u662f \u5373\u4f7f \u5728 \u5177\u6709 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u9ad8\u901f \u573a\u666f \u548c \u9ad8 \u52a8\u6001 \u8303\u56f4 \u73af\u5883 \u4e0b \u4e5f \u80fd \u63d0\u4f9b \u9ad8\u8d28 \u8d28\u91cf \u9ad8\u8d28\u91cf \u89c6\u89c9 \u4fe1\u606f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4e3a \u57fa\u4e8e \u89c6\u89c9 \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u4e86 \u65b0 \u7684 \u5e94\u7528 \u9886\u57df \u5e94\u7528\u9886\u57df \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u8f93\u51fa \u4e8b\u4ef6 \u6d41 \u3002 \u5f53 \u5bf9\u6570 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u8fbe\u5230 \u9884\u5b9a \u4e49 \u7684 \u6052\u5b9a \u9608\u503c \uff08 \u901a\u5e38 \u5728 15% \u5230 30% \u4e4b\u95f4 \uff09 \u65f6 \uff0c \u5728 \u65f6\u95f4 \u6233 \u5904 \u7684 \u50cf\u7d20 \u5904 e = ( x , y , t , pol ) \u89e6\u53d1 \u4e8b\u4ef6 \u3002 L ( x , y , t ) - L ( x , y , t - \\ delta t ) = pol C t - \\ delta t \u662f \u8be5 \u50cf\u7d20 \u4e0a \u6700\u540e \u4e00\u4e2a \u4e8b\u4ef6 \u88ab \u89e6\u53d1 \u7684 \u65f6\u95f4 \uff0c \u5e76\u4e14 pol \u662f \u6839\u636e \u4eae\u5ea6 \u53d8\u5316 \u7684 \u7b26\u53f7 \u7684 \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 + 1 \u5f53 \u4eae\u5ea6 \u589e\u52a0 \u65f6 \u6781\u6027 \u4e3a \u6b63 \uff0c - 1 \u5f53 \u4eae\u5ea6 \u51cf\u5c11 \u65f6 \u6781\u6027 \u4e3a \u8d1f \u3002 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \u56fe \u6240\u793a \u3002 \u6807\u51c6 \u76f8\u673a \u4ee5 \u56fa\u5b9a \u901f\u7387 \u8f93\u51fa \u5e27 \uff0c \u4ece\u800c \u5728 \u573a\u666f \u4e2d \u4e0d \u5b58\u5728 \u8fd0\u52a8 \u65f6 \u53d1\u9001 \u5197\u4f59 \u4fe1\u606f \u3002 \u76f8\u6bd4 \u4e4b\u4e0b \u76f8\u6bd4\u4e4b\u4e0b \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u662f \u6570\u636e \u9a71\u52a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u80fd\u591f \u4ee5 \u5fae\u79d2 \u5ef6\u8fdf \u54cd\u5e94 \u4eae\u5ea6 \u53d8\u5316 \u3002 \u5728 \u7ed8\u56fe \u4e2d \uff0c \u53ea\u8981 \uff08 \u7b26\u53f7 \u5e26\u7b26\u53f7 \u7684 \uff09 \u4eae\u5ea6 \u53d8\u5316 \u968f \u65f6\u95f4 \u8d85\u8fc7 C \u4e00\u7ef4 \u7684 \u5bf9\u6bd4 \u5bf9\u6bd4\u5ea6 \u9608\u503c \uff0c \u5c31 \u4f1a \u751f\u6210 \u6b63 \uff08 \u6216\u8d1f \uff09 \u4e8b\u4ef6 \uff08 \u84dd\u70b9 \u3001 \u7ea2 \u70b9 \uff09 \u3002 \u89c2\u5bdf \u4fe1\u53f7 \u5feb\u901f \u53d8\u5316 \u65f6 \u4e8b\u4ef6 \u7387 \u5982\u4f55 \u589e\u957f \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5f53\u524d \u5b9e\u73b0 \u5728 \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u4ee5 \u7edf\u4e00 \u91c7\u6837 \u65b9\u5f0f \u5de5\u4f5c \u3002 \u56e0\u6b64 \uff0c \u4e3a\u4e86 \u4eff\u771f \u771f\u5b9e \u4e8b\u4ef6 \u76f8\u673a \u7684 \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u4ee5 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u6267\u884c \uff08 \u6bd4 \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u7684 \u9891\u7387 \u9ad8\u5f97 \u591a \uff09 \u3002 \u5b9e\u9645 \u5b9e\u9645\u4e0a \uff0c Carla \u6c7d\u8f66 \u884c\u9a76 \u901f\u5ea6 \u8d8a \u5feb \uff0c \u4e8b\u4ef6 \u6570\u91cf \u5c31 \u4f1a \u589e\u52a0 \u3002 \u56e0\u6b64 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9891\u7387 \u5e94 \u968f\u7740 \u573a\u666f \u7684 \u52a8\u6001 \u800c \u76f8\u5e94 \u589e\u52a0 \u3002 \u7528\u6237 \u5e94\u8be5 \u5728 \u65f6\u95f4 \u7cbe\u5ea6 \u548c \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u4e4b\u95f4 \u627e\u5230 \u5e73\u8861 \u3002 \u63d0\u4f9b \u7684 \u811a\u672c [ manual _ control . py ] \u4f7f\u7528 DVS \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u5c55\u793a \u5982\u4f55 \u914d\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5982\u4f55 \u83b7\u53d6 \u4e8b\u4ef6 \u6d41 \u4ee5\u53ca \u5982\u4f55 \u4ee5 \u56fe\u50cf \u683c\u5f0f \u56fe\u50cf\u683c\u5f0f \uff08 \u901a\u5e38 \u79f0\u4e3a \u4e8b\u4ef6 \u6846\u67b6 \uff09 \u63cf\u8ff0 \u6b64\u7c7b \u4e8b\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u7531\u4e8e DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u91c7\u6837 \u65b9\u6cd5 \uff0c \u5982\u679c \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u50cf\u7d20 \u5dee\u5f02 \uff0c \u6444\u50cf \u6444\u50cf\u673a \u5c06 \u4e0d\u4f1a \u8fd4\u56de \u56fe\u50cf \u3002 \u8fd9 \u603b\u662f \u53d1\u751f \u5728 \u7b2c\u4e00 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u6ca1\u6709 \u524d \u4e00\u5e27 \u53ef \u4f9b \u6bd4\u8f83 \uff0c \u5e76\u4e14 \u5728 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u79fb\u52a8 \u7684 \u60c5\u51b5 \u4e0b \u4e5f \u662f \u5982\u6b64 \u3002 DVS \u662f \u4e00\u4e2a \u76f8\u673a \uff0c \u56e0\u6b64 \u5177\u6709 RGB \u76f8\u673a \u4e2d \u53ef\u7528 \u7684 \u6240\u6709 \u5c5e\u6027 \u3002 \u7136\u800c \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5de5\u4f5c \u539f\u7406 \u51e0\u4e4e \u6ca1\u6709 \u4ec0\u4e48 \u72ec\u6709 \u7684 \u5c5e\u6027 \u3002 DVS \u76f8\u673a \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 positive _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u589e\u91cf \u76f8\u5173 \u7684 \u6b63 \u9608\u503c C ( 0 - 1 ) \u3002 negative _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u51cf\u5c11 \u76f8\u5173 \u7684 \u8d1f \u9608\u503c C ( 0 - 1 ) \u3002 sigma _ positive _ threshold float 0 \u79ef\u6781 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 sigma _ negative _ threshold float 0 \u8d1f\u9762 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 refractory _ period _ ns int 0.0 \u4e0d\u5e94 \u4e0d\u5e94\u671f \uff08 \u50cf\u7d20 \u5728 \u89e6\u53d1 \u4e8b\u4ef6 \u540e \u65e0\u6cd5 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u65f6\u95f4 \uff09 \uff0c \u4ee5 \u7eb3\u79d2 \u4e3a \u5355\u4f4d \u3002 \u5b83 \u9650\u5236 \u4e86 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u6700\u9ad8 \u9891\u7387 \u3002 use _ log bool true \u662f\u5426 \u4ee5 \u5bf9\u6570 \u5f3a\u5ea6 \u6807\u5ea6 \u5de5\u4f5c \u3002 log _ eps float 0.001 \u7528\u4e8e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u65e5\u5fd7 \u7684 Epsilon \u503c \uff1a L = log ( eps + I / 255.0 ) . \u5176\u4e2d I \u662f RGB \u56fe\u50cf \u7684 \u7070\u5ea6 \u503c \uff1a I = 0.2989 * R + 0.5870 * G + 0.1140 * B . \u5149\u6d41 \u76f8\u673a \u5149\u6d41 \u76f8\u673a \u6355\u6349 \u4ece \u76f8\u673a \u7684 \u89d2\u5ea6 \u611f\u77e5 \u7684 \u8fd0\u52a8 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bb0\u5f55 \u7684 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5bf9 \u6295\u5f71 \u5230 \u56fe\u50cf \u5e73\u9762 \u7684 \u8be5 \u70b9 \u7684 \u901f\u5ea6 \u8fdb\u884c \u7f16\u7801 \u3002 \u50cf\u7d20 \u7684 \u901f\u5ea6 \u5728 [ - 2 , 2 ] \u8303\u56f4 \u5185 \u7f16\u7801 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \u7684 \u8fd0\u52a8 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u4fe1\u606f \u4e0e \u56fe\u50cf \u5927\u5c0f \u4e00\u8d77 \u7f29\u653e \u81f3 [ - 2 * image _ size , 2 * image _ size ] \u3002 \u5149\u6d41 \u76f8\u673a \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 \u5149\u6d41 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] \u8f93\u51fa \u5c5e\u6027 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes \u5305\u542b \u4e24\u4e2a \u6d6e\u70b9 \u503c \u7684 BGRA 64 \u4f4d \u50cf\u7d20 \u6570\u7ec4 \u3002","title":"\u4f20\u611f\u5668 \u53c2\u8003"},{"location":"ref_sensors/#_1","text":"\u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6df1\u5ea6 \u76f8\u673a \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u76f8\u673a \u5149\u6d41 \u76f8\u673a \u91cd\u8981 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u5750\u6807 \u5750\u6807\u7cfb \uff08 x - \u5411\u524d \uff0c y - \u5411 \u53f3 \uff0c z - \u5411\u4e0a \uff09 \uff0c \u5e76 \u8fd4\u56de \u672c\u5730 \u7a7a\u95f4 \u4e2d \u7684 \u5750\u6807 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f6f\u4ef6 \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u5176 \u5750\u6807 \u5750\u6807\u7cfb \u3002 \u8bb8\u591a \u53cd\u8f6c Y \u8f74 \uff0c \u56e0\u6b64 \u76f4\u63a5 \u53ef\u89c6 \u53ef\u89c6\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u955c\u50cf \u8f93\u51fa \u3002","title":"\u4f20\u611f\u5668 \u53c2\u8003"},{"location":"ref_sensors/#_2","text":"\u84dd\u56fe \uff1a sensor . other . collision \u8f93\u51fa \uff1a \u6bcf\u6b21 \u78b0\u649e \u7684 carla . CollisionEvent \u3002 \u6bcf\u5f53 \u5176\u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e0e \u4e16\u754c \u4e0a \u7684 \u67d0\u4e9b \u7269\u4f53 \u53d1\u751f \u78b0\u649e \u65f6 \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u8bb0\u5f55 \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u6bcf\u4e2a \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u5e27 \u6bcf\u6b21 \u78b0\u649e \u90fd \u4f1a \u4ea7\u751f \u4e00\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u901a\u8fc7 \u4e0e \u591a\u4e2a \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \uff0c \u53ef\u4ee5 \u5728 \u5355\u4e2a \u5e27 \u4e2d \u4ea7\u751f \u591a\u4e2a \u78b0\u649e \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u7684 \u5c5e\u6027 \u3002","title":"\u78b0\u649e \u68c0\u6d4b\u5668"},{"location":"ref_sensors/#_3","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u6d4b\u91cf \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \uff09 \u3002 other _ actor carla . Actor \u4e0e \u7236\u7ea7 \u76f8\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 normal _ impulse carla . Vector3D \u78b0\u649e \u7684 \u6b63\u5e38 \u8109\u51b2 \u7ed3\u679c \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_4","text":"\u84dd\u56fe \uff1a sensor . camera . depth \u8f93\u51fa \uff1a \u6bcf\u6b65 \u7684 \u56fe\u50cf carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u76f8\u673a \u63d0\u4f9b \u573a\u666f \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u7f16\u7801 \u6bcf\u4e2a \u50cf\u7d20 \u5230 \u76f8\u673a \u7684 \u8ddd\u79bb \uff08 \u4e5f \u79f0\u4e3a \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u6216 z \u7f13\u51b2 \u7f13\u51b2\u533a \uff09 \u4ee5 \u521b\u5efa \u5143\u7d20 \u7684 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u3002 \u8be5 \u56fe\u50cf \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u7684 3 \u4e2a \u901a\u9053 \uff08 \u4ece \u5b57\u8282 \u4f4e\u5b57\u8282 \u5230 \u5b57\u8282 \u9ad8\u5b57\u8282 \uff09 \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u6df1\u5ea6 \u503c \u8fdb\u884c \u7f16\u7801 \uff1a R - > G - > B \u3002 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u7684 \u5b9e\u9645 \u8ddd\u79bb \u53ef\u4ee5 \u901a\u8fc7 \u4ee5\u4e0b \u65b9\u5f0f \u89e3\u7801 \uff1a normalized = ( R + G * 256 + B * 256 * 256 ) / ( 256 * 256 * 256 - 1 ) in _ meters = 1000 * normalized \u7136\u540e \uff0c \u5e94 \u4f7f\u7528 carla . colorConverter \u5c06 \u8f93\u51fa carla . Image \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff0c \u8be5 carla . colorConverter \u4f1a \u5c06 \u5b58\u50a8 \u5728 RGB \u901a\u9053 \u4e2d \u7684 \u8ddd\u79bb \u8f6c\u6362 \u4e3a \u5305\u542b \u8be5 \u8ddd\u79bb \u7684 [ 0 , 1 ] \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \uff0c \u7136\u540e \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u3002 carla . colorConverter \u4e2d\u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u83b7\u53d6 \u6df1\u5ea6 \u89c6\u56fe \uff1a Depth \u548c Logaritmic depth \u3002 \u4e24\u8005 \u7684 \u7cbe\u5ea6 \u90fd \u662f \u6beb\u7c73 \u7ea7 \u7684 \uff0c \u4f46 \u5bf9\u6570 \u65b9\u6cd5 \u53ef\u4ee5 \u4e3a \u66f4 \u8fd1 \u7684 \u7269\u4f53 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . Depth )","title":"\u6df1\u5ea6 \u76f8\u673a"},{"location":"ref_sensors/#_5","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u76f8\u673a \u57fa\u672c \u5c5e\u6027"},{"location":"ref_sensors/#_6","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_7","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_8","text":"\u84dd\u56fe \uff1a sensor . other . gnss Output : \u6bcf \u4e00\u6b65 \u7684 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u7684 \u6d4b\u91cf carla . GNSSMeasurement \uff08 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u62a5\u544a \u5176\u7236 \u5bf9\u8c61 \u7684 \u5f53\u524d gnss \u4f4d\u7f6e \u3002 \u8fd9\u662f \u901a\u8fc7 \u5c06 \u5ea6\u91cf \u4f4d\u7f6e \u6dfb\u52a0 \u5230 OpenDRIVE \u5730\u56fe \u5b9a\u4e49 \u4e2d \u5b9a\u4e49 \u7684 \u521d\u59cb \u5730\u7406 \u53c2\u8003 \u4f4d\u7f6e \u6765 \u8ba1\u7b97 \u7684 \u3002","title":"\u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f\u5668"},{"location":"ref_sensors/#_9","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ alt _ bias float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ alt _ stddev float 0.0 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lat _ bias float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lat _ stddev float 0.0 \u7eac\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ lon _ bias float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \u3002 noise _ lon _ stddev float 0.0 \u7ecf\u5ea6 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u5c5e\u6027"},{"location":"ref_sensors/#_10","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 latitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7eac\u5ea6 \u3002 longitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u7ecf\u5ea6 \u3002 altitude double \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6d77\u62d4 \u62d4\u9ad8 \u9ad8\u5ea6 \u6d77\u62d4\u9ad8\u5ea6 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_11","text":"\u84dd\u56fe \uff1a sensor . other . imu \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 \u7684 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u6d4b\u91cf \u503c carla . IMUMeasurement \uff08 \u9664\u975e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ef4\u7b54 \u4fe1\u53f7 sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u63d0\u4f9b \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u5c06 \u4e3a \u7236 \u5bf9\u8c61 \u68c0\u7d22 \u7684 \u6d4b\u91cf \u503c \u3002 \u6570\u636e \u662f\u4ece \u5bf9\u8c61 \u7684 \u5f53\u524d \u72b6\u6001 \u6536\u96c6 \u7684 \u3002","title":"\u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4f20\u611f\u5668"},{"location":"ref_sensors/#_12","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 noise _ accel _ stddev _ x float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 X \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ y float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Y \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ accel _ stddev _ z float 0.0 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 Z \u8f74 \uff09 \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 noise _ gyro _ bias _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ bias _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ bias _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ x float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 X \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ y float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Y \u8f74 \uff09 \u3002 noise _ gyro _ stddev _ z float 0.0 \u9640\u87ba \u9640\u87ba\u4eea \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \uff08 Z \u8f74 \uff09 \u3002 noise _ seed int 0 \u4f2a \u968f\u673a \u673a\u6570 \u968f\u673a\u6570 \u751f\u6210 \u6210\u5668 \u751f\u6210\u5668 \u7684 \u521d\u59cb \u521d\u59cb\u5316 \u7a0b\u5e8f \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u5c5e\u6027"},{"location":"ref_sensors/#_13","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 accelerometer carla . Vector3D \u6d4b\u91cf \u7ebf\u6027 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff08 \u4ee5 m / s ^ 2 \u4e3a \u5355\u4f4d \uff09 \u3002 gyroscope carla . Vector3D \u6d4b\u91cf \u901f\u5ea6 \u89d2\u901f\u5ea6 \uff08 \u4ee5 rad / sec \u4e3a \u5355\u4f4d \uff09 \u3002 compass float \u4ee5 \u5f27\u5ea6 \u4e3a \u5355\u4f4d \u7684 \u65b9\u5411 \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d\u5317 \u662f ( 0.0 , - 1.0 , 0.0 ) \u3002 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u8ba1\u7b97 \u65b9\u6cd5 \u8ba1\u7b97\u65b9\u6cd5 \uff1a $ $ d _ 2 ( i ) = - 2.0 \\ times [ { y _ 1 \\ over { h _ 1 \\ times h _ 2 } } - { y _ 2 \\ over { h _ 2 \\ times ( h _ 1 + h _ 2 ) } } - { y _ 0 \\ over { h _ 1 \\ times ( h _ 1 + h _ 2 ) } } ] . $ $ \u5176\u4e2d \uff0c ( h _ 1 ) \u4e3a \u5f53\u524d \u65f6\u95f4 \u589e\u91cf \uff0c ( h _ 2 ) \u4e3a \u524d \u4e00\u4e2a \u65f6\u95f4 \u589e\u91cf \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_14","text":"\u84dd\u56fe \uff1a sensor . other . lane _ invasion \u8f93\u51fa \uff1a \u6bcf\u6b21 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 carla . LaneInvasionEvent \u3002 \u6bcf\u6b21 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u5730\u56fe \u7684 OpenDRIVE \u63cf\u8ff0 \u63d0\u4f9b \u7684 \u9053\u8def \u6570\u636e \uff0c \u901a\u8fc7 \u8003\u8651 \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u7a7a\u95f4 \u6765 \u786e\u5b9a \u4e3b \u8f66\u8f86 \u662f\u5426 \u6b63\u5728 \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u3002 \u7136\u800c \uff0c \u6709 \u4e00\u4e9b \u4e8b\u60c5 \u9700\u8981 \u8003\u8651 \uff1a OpenDRIVE \u6587\u4ef6 \u548c \u5730\u56fe \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u5c06 \u5bfc\u81f4 \u89c4\u5219 \u4e0d\u89c4\u5219 \u73b0\u8c61 \uff0c \u4f8b\u5982 \u5728 \u5730\u56fe \u4e2d \u4e0d \u53ef\u89c1 \u7684 \u4ea4\u53c9 \u8f66\u9053 \u3002 \u8f93\u51fa \u68c0\u7d22 \u4ea4\u53c9 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \uff1a \u8ba1\u7b97 \u5728 OpenDRIVE \u4e2d \u5b8c\u6210 \uff0c \u5e76 \u5c06 \u56db\u4e2a \u8f66\u8f6e \u4e4b\u95f4 \u7684 \u6574\u4e2a \u7a7a\u95f4 \u89c6\u4e3a \u4e00\u4e2a \u6574\u4f53 \u3002 \u56e0\u6b64 \uff0c \u53ef\u80fd \u6709 \u4e0d\u6b62 \u4e00\u6761 \u8f66\u9053 \u540c\u65f6 \u7a7f\u8fc7 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4efb\u4f55 \u53ef \u914d\u7f6e \u5c5e\u6027 \u3002 \u91cd\u8981 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5de5\u4f5c \u3002","title":"\u8f66\u9053 \u4fb5\u5165 \u68c0\u6d4b\u5668"},{"location":"ref_sensors/#_15","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u4fb5\u5165 \u53e6 \u4e00 \u8f66\u9053 \u7684 \u8f66\u8f86 \uff08 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 crossed _ lane _ markings list ( carla . LaneMarking ) \u5df2 \u7a7f\u8d8a \u7684 \u8f66\u9053 \u6807\u8bb0 \u5217\u8868 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_16","text":"\u84dd\u56fe \uff1a sensor . lidar . ray _ cast \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . LidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 1 / FPS \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6b64 \u8f93\u51fa \u5305\u542b \u4eff\u771f \u70b9\u4e91 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5b83\u4eec \u7684 \u5217\u8868 carla . Location \uff1a for location in lidar _ measurement : print ( location ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u7684 \u4fe1\u606f \u88ab \u7f16\u7801 \u4e3a 4D \u70b9 \u3002 \u524d \u4e09\u4e2a \u662f xyz \u5750\u6807 \u4e2d \u7684 \u7a7a\u95f4 \u70b9 \uff0c \u6700\u540e \u4e00\u4e2a \u662f \u65c5\u884c \u8fc7\u7a0b \u4e2d \u7684 \u5f3a\u5ea6 \u635f\u5931 \u3002 \u8be5 \u5f3a\u5ea6 \u901a\u8fc7 \u4ee5\u4e0b \u516c\u5f0f \u8ba1\u7b97 \u3002 a \u2014 \u8870\u51cf \u7cfb\u6570 \u8870\u51cf\u7cfb\u6570 \u3002 \u8fd9 \u53ef\u80fd \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6ce2\u957f \u548c \u5927\u6c14 \u6761\u4ef6 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 atmosphere _ attenuation _ rate \u3002 d \u2014 \u4ece \u51fb\u4e2d \u70b9\u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8ddd\u79bb \u4e3a\u4e86 \u83b7\u5f97 \u66f4\u597d \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u53ef\u4ee5 \u5220\u9664 \u4e91\u4e2d \u7684 \u70b9 \u3002 \u8fd9\u662f \u4eff\u771f \u5916\u90e8 \u6270\u52a8 \u9020\u6210 \u7684 \u635f\u5931 \u7684 \u7b80\u5355 \u65b9\u6cd5 \u3002 \u8fd9 \u53ef\u4ee5 \u7ed3\u5408 \u4e24\u4e2a \u4e0d\u540c \u7684 \u6765 \u5b8c\u6210 \u3002 General drop - off \u2014 \u968f\u673a \u6389\u843d \u7684 \u5206\u6570 \u6bd4\u4f8b \u3002 \u8fd9 \u662f \u5728 \u8ddf\u8e2a \u4e4b\u524d \u5b8c\u6210 \u7684 \uff0c \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u4e0d\u4f1a \u8ba1\u7b97 \u88ab \u4e22\u5f03 \u7684 \u70b9 \uff0c \u4ece\u800c \u63d0\u9ad8 \u6027\u80fd \u3002 \u5982\u679c \u662f dropoff _ general _ rate = 0.5 \uff0c \u5219 \u6263\u6389 \u4e00\u534a \u7684 \u5206\u6570 \u3002 Instensity - based drop - off \u2014 \u5bf9\u4e8e \u68c0\u6d4b \u5230 \u7684 \u6bcf\u4e2a \u70b9 \uff0c \u6839\u636e \u8ba1\u7b97 \u7684 \u5f3a\u5ea6 \u7684 \u6982\u7387 \u6267\u884c \u989d\u5916 \u7684 \u4e0b\u964d \u3002 \u8be5 \u6982\u7387 \u7531 \u4e24\u4e2a \u53c2\u6570 \u786e\u5b9a \u3002 dropoff _ zero _ intensity \u662f \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u3002 dropoff _ intensity _ limit \u662f \u9608\u503c \u5f3a\u5ea6 \uff0c \u8d85\u8fc7 \u8be5 \u9608\u503c \u5c06 \u4e0d\u4f1a \u6389\u843d \u4efb\u4f55 \u5206\u6570 \u3002 \u8303\u56f4 \u5185 \u7684 \u70b9 \u88ab \u4e22\u5f03 \u7684 \u6982\u7387 \u662f \u57fa\u4e8e \u8fd9 \u4e24\u4e2a \u53c2\u6570 \u7684 \u7ebf\u6027 \u6bd4\u4f8b \u3002 \u6b64\u5916 \uff0c \u8be5 noise _ stddev \u5c5e\u6027 \u8fd8 \u4f7f \u566a\u58f0 \u6a21\u578b \u80fd\u591f \u4eff\u771f \u73b0\u5b9e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u51fa\u73b0 \u7684 \u610f\u5916 \u504f\u5dee \u3002 \u5bf9\u4e8e \u6b63\u503c \uff0c \u6bcf\u4e2a \u70b9 \u90fd \u4f1a \u6cbf\u7740 \u6fc0\u5149 \u5c04\u7ebf \u7684 \u77e2\u91cf \u968f\u673a \u6270\u52a8 \u3002 \u7ed3\u679c \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5177\u6709 \u5b8c\u7f8e \u7684 \u89d2\u5ea6 \u5b9a\u4f4d \uff0c \u4f46 \u8ddd\u79bb \u6d4b\u91cf \u5b58\u5728 \u566a\u97f3 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002","title":"\u6fc0\u5149\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"ref_sensors/#_17","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 atmosphere _ attenuation _ rate float 0.004 \u6d4b\u91cf \u6bcf\u7c73 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5f3a\u5ea6 \u635f\u5931 \u7684 \u7cfb\u6570 \u3002 \u68c0\u67e5 \u4e0a\u9762 \u7684 \u5f3a\u5ea6 \u8ba1\u7b97 \u3002 dropoff _ general _ rate float 0.45 \u968f\u673a \u4e22\u5f03 \u7684 \u70b9 \u7684 \u4e00\u822c \u6bd4\u4f8b \u3002 dropoff _ intensity _ limit float 0.8 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u5f3a\u5ea6 \u9608\u503c \uff0c \u9ad8\u4e8e \u8be5\u503c \u5219 \u4e0d\u4f1a \u4e0b\u964d \u4efb\u4f55 \u70b9 \u3002 dropoff _ zero _ intensity float 0.4 \u5bf9\u4e8e \u57fa\u4e8e \u5f3a\u5ea6 \u7684 \u4e0b\u964d \uff0c \u6bcf\u4e2a \u5f3a\u5ea6 \u4e3a \u96f6 \u7684 \u70b9 \u88ab \u4e0b\u964d \u7684 \u6982\u7387 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 noise _ stddev float 0.0 \u566a\u58f0 \u6a21\u578b \u7684 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \uff0c \u7528\u4e8e \u5e72\u6270 \u6cbf\u5176 \u5149\u7ebf \u6295\u5c04 \u77e2\u91cf \u7684 \u6bcf\u4e2a \u70b9 \u3002","title":"\u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027"},{"location":"ref_sensors/#_18","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u6bcf\u4e2a \u901a\u9053 \u6355\u83b7 \u6b64\u5e27 \u7684 \u70b9\u6570 \u3002 raw _ data bytes 32 \u4f4d \u6d6e\u70b9 \u6570\u7ec4 \uff08 \u6bcf\u4e2a \u70b9 \u7684 XYZI \uff09 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_19","text":"\u84dd\u56fe \uff1a sensor . other . obstacle \u8f93\u51fa \uff1a \u6bcf\u4e2a \u969c\u788d \u969c\u788d\u7269 \u7684 carla . ObstacleDetectionEvent \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u6bcf\u5f53 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u524d\u65b9 \u6709 \u969c\u788d \u65f6 \uff0c \u90fd \u4f1a \u6ce8\u518c \u4e00\u4e2a \u4e8b\u4ef6 \u3002 \u4e3a\u4e86 \u9884\u6d4b \u969c\u788d \u969c\u788d\u7269 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6bcd\u8f66 \u524d\u65b9 \u521b\u5efa \u4e00\u4e2a \u80f6\u56ca \u5f62\u72b6 \uff0c \u5e76\u7528 \u5b83 \u6765 \u68c0\u67e5 \u78b0\u649e \u3002 \u4e3a\u4e86 \u786e\u4fdd \u68c0\u6d4b \u5230 \u4e0e \u4efb\u4f55 \u7c7b\u578b \u7684 \u5bf9\u8c61 \u7684 \u78b0\u649e \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e3a \u5efa\u7b51 \u5efa\u7b51\u7269 \u6216 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7b49 \u5143\u7d20 \u521b\u5efa \u201c \u5047 \u201d \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u68c0\u7d22 \u8bed\u4e49 \u6807\u7b7e \u6765 \u8bc6\u522b \u5b83 \u3002 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 distance float 5 \u8f68\u8ff9 \u8ddd\u79bb \u3002 hit _ radius float 0.5 \u8f68\u8ff9 \u7684 \u534a\u5f84 \u3002 only _ dynamics bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 debug _ linetrace bool False \u5982\u679c \u4e3a true \uff0c \u5219 \u8f68\u8ff9 \u5c06 \u53ef\u89c1 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u969c\u788d\u7269 \u68c0\u6d4b\u5668"},{"location":"ref_sensors/#_20","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u8f66 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 actor carla . Actor \u68c0\u6d4b \u5230 \u969c\u788d \u969c\u788d\u7269 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff08 \u7236\u7ea7 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u3002 other _ actor carla . Actor \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u68c0\u6d4b \u4e3a \u969c\u788d \u969c\u788d\u7269 \u3002 distance float \u4ece \u53c2\u4e0e \u53c2\u4e0e\u8005 actor \u5230 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 other _ actor \u7684 \u8ddd\u79bb \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_21","text":"\u84dd\u56fe \uff1a sensor . other . radar \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RadarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u8be5 \u89c6\u56fe \u88ab \u8f6c\u6362 \u4e3a \u89c6\u91ce \u4e2d \u7684 \u5143\u7d20 \u53ca\u5176 \u76f8\u5bf9 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u7684 \u4e8c\u7ef4 \u70b9\u56fe \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5851\u9020 \u5143\u7d20 \u5e76 \u8bc4\u4f30 \u5b83\u4eec \u7684 \u8fd0\u52a8 \u548c \u65b9\u5411 \u3002 \u7531\u4e8e \u4f7f\u7528 \u5750\u6807 \u6781\u5750\u6807 \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u96c6\u4e2d \u5728 \u89c6\u56fe \u4e2d\u5fc3 \u5468\u56f4 \u3002 \u6d4b\u91cf \u7684 \u70b9 \u4f5c\u4e3a carla . RadarDetection \u6570\u7ec4 \u5305\u542b \u5728 carla . RadarMeasurement \u4e2d \uff0c \u8be5 \u6570\u7ec4 \u6307\u5b9a \u5b83\u4eec \u7684 \u5750\u6807 \u6781\u5750\u6807 \u3001 \u8ddd\u79bb \u548c \u901f\u5ea6 \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u53ef\u4ee5 \u8f7b\u677e \u8f6c\u6362 \u4e3a numpy \u53ef \u7ba1\u7406 \u7684 \u683c\u5f0f \uff1a # To get a numpy [ [ vel , azimuth , altitude , depth ] , ... [ , , , ] ] : points = np . frombuffer ( radar _ data . raw _ data , dtype = np . dtype ( ' f4 ' ) ) points = np . reshape ( points , ( len ( radar _ data ) , 4 ) ) \u63d0\u4f9b \u7684 \u811a\u672c manual _ control . py \u4f7f\u7528 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u663e\u793a \u6b63\u5728 \u68c0\u6d4b \u7684 \u70b9 \uff0c \u5e76 \u5728 \u9759\u6001 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u767d\u8272 \uff0c \u5728 \u5411 \u7269\u4f53 \u79fb\u52a8 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u7ea2\u8272 \uff0c \u5728 \u8fdc\u79bb \u7269\u4f53 \u65f6 \u5c06 \u5176 \u7ed8\u5236 \u4e3a \u84dd\u8272 \uff1a \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 horizontal _ fov float 30.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 points _ per _ second int 1500 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 range float 100 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \uff08 \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 vertical _ fov float 30.0 \u5782\u76f4 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002","title":"\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"ref_sensors/#_22","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 raw _ data carla . RadarDetection \u68c0\u6d4b \u5230 \u7684 \u70b9 \u5217\u8868 \u3002 RadarDetection \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 altitude float \u4ee5 \u5f27\u5ea6 \u8868\u793a \u7684 \u9ad8\u5ea6 \u89d2 \u3002 azimuth float \u65b9\u4f4d \u65b9\u4f4d\u89d2 \uff08 \u4ee5 \u5f27\u5ea6 \u8868\u793a \uff09 \u3002 depth float \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \u3002 velocity float \u671d\u5411 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u901f\u5ea6 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#rgb","text":"\u84dd\u56fe \uff1a sensor . camera . rgb \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u201c RGB \u201d \u76f8\u673a \u5145\u5f53 \u6355\u83b7 \u573a\u666f \u56fe\u50cf \u7684 \u5e38\u89c4 \u76f8\u673a \u3002 carla . colorConverter \u5982\u679c enable _ postprocess _ effects \u542f\u7528 \uff0c \u4e3a\u4e86 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4e00\u7ec4 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u5c06 \u5e94\u7528 \u4e8e \u56fe\u50cf \uff1a Vignette : \u4f7f \u5c4f\u5e55 \u8fb9\u6846 \u53d8\u6697 \u3002 Grain jitter : \u4e3a \u6e32\u67d3 \u6dfb\u52a0 \u4e00\u4e9b \u566a\u70b9 \u3002 Bloom : \u5f3a\u70c8 \u7684 \u5149\u7ebf \u4f1a \u707c\u70e7 \u5b83\u4eec \u5468\u56f4 \u7684 \u533a\u57df \u3002 Auto exposure : \u4fee\u6539 \u56fe\u50cf \u4f3d\u739b\u4ee5 \u4eff\u771f \u773c\u775b \u5bf9 \u8f83 \u6697 \u6216 \u8f83\u4eae \u533a\u57df \u7684 \u9002\u5e94 \u3002 Lens flares : \u4eff\u771f \u660e\u4eae \u7269\u4f53 \u5728 \u955c\u5934 \u4e0a \u7684 \u53cd\u5c04 \u3002 Depth of field : \u6a21\u7cca \u9760\u8fd1 \u6216 \u8fdc\u79bb \u76f8\u673a \u7684 \u7269\u4f53 \u3002 sensor _ tick \u544a\u8bc9 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u6570\u636e \u7684 \u901f\u5ea6 \u6709 \u591a \u5feb \u3002 \u503c\u4e3a 1.5 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u5e0c\u671b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf \u534a\u79d2 \u6355\u83b7 \u4e00\u6b21 \u6570\u636e \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u503c 0.0 \u8868\u793a \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5feb \u3002","title":"RGB \u76f8\u673a"},{"location":"ref_sensors/#_23","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 bloom _ intensity float 0.675 \u5149\u6655 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 fstop float 1.4 \u76f8\u673a \u955c\u5934 \u7684 \u6253\u5f00 \u3002 \u5178\u578b \u955c\u5934 \u7684 \u5149\u5708 1 / fstop \u4e3a f / 1.2 \uff08 \u66f4\u5927 \u7684 \u5149\u5708 \uff09 \u3002 \u8f83\u5927 \u7684 \u6570\u5b57 \u5c06 \u51cf\u5c11 \u666f\u6df1 \u6548\u679c \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 iso float 100.0 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7075\u654f \u654f\u5ea6 \u7075\u654f\u5ea6 \u3002 gamma float 2.2 \u76f8\u673a \u7684 \u76ee\u6807 \u4f3d\u739b\u503c \u3002 lens _ flare _ intensity float 0.1 \u955c\u5934 \u7729\u5149 \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u7684 \u5f3a\u5ea6 \uff0c 0.0 \u7528\u4e8e \u7981\u7528 \u5b83 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002 shutter _ speed float 200.0 \u76f8\u673a \u5feb\u95e8 \u901f\u5ea6 \u5feb\u95e8\u901f\u5ea6 \uff0c \u4ee5 \u79d2 \u4e3a \u5355\u4f4d ( 1.0 / s ) \u3002","title":"\u76f8\u673a \u57fa\u672c \u5c5e\u6027"},{"location":"ref_sensors/#_24","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_25","text":"\u7531\u4e8e \u8fd9\u4e9b \u6548\u679c \u662f \u7531 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u7684 \uff0c \u8bf7 \u52a1\u5fc5 \u68c0\u67e5 \u4ed6\u4eec \u7684 \u6587\u6863 \uff1a \u81ea\u52a8 \u66dd\u5149 \u5f71\u89c6 \u7ea7 \u666f\u6df1 \u65b9\u6848 \u989c\u8272 \u5206\u7ea7 \u548c \u7535\u5f71 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 min _ fstop float 1.2 \u6700\u5927 \u5149\u5708 \u3002 blade _ count int 5 \u6784\u6210 \u9694\u819c \u673a\u6784 \u7684 \u53f6\u7247 \u6570\u91cf \u3002 exposure _ mode str histogram \u53ef\u4ee5 \u662f manual \u6216 or histogram \u3002 \u66f4 \u591a \u5185\u5bb9 \u8bf7 \u53c2\u89c1 UE4 \u6587\u6863 \u3002 exposure _ compensation float Linux : + 0.75 Windows : 0.0 \u66dd\u5149 \u7684 \u5bf9\u6570 \u8c03\u6574 \u3002 0 \uff1a \u65e0 \u8c03\u6574 \uff0c - 1 \uff1a 2 \u500d \u66f4 \u6697 \uff0c - 2 \uff1a 4 \u66f4\u6697 \uff0c 1 \uff1a 2 \u500d \u66f4\u4eae \uff0c 2 \uff1a 4 \u500d \u66f4\u4eae \u3002 exposure _ min _ bright float 10.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u4f4e \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u4f4e \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5c0f\u4e8e \u6216 \u7b49\u4e8e exposure _ max _ bright \u3002 exposure _ max _ bright float 12.0 \u5728 ` exposure _ mode : \" histogram \" ` \u4e2d \u3002 \u81ea\u52a8 \u66dd\u5149 \u7684 \u6700\u5927 \u4eae\u5ea6 \u3002 \u773c\u775b \u80fd \u9002\u5e94 \u7684 \u6700\u9ad8 \u9650\u5ea6 \u3002 \u5fc5\u987b \u5927\u4e8e 0 \u4e14 \u5927\u4e8e \u6216 \u7b49\u4e8e ` exposure _ min _ bright ` \u3002 exposure _ speed _ up float 3.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u3002 \u4ece \u9ed1\u6697 \u73af\u5883 \u5230 \u660e\u4eae \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 exposure _ speed _ down float 1.0 \u5728 exposure _ mode : \" histogram \" \u3002 \u4ece \u660e\u4eae \u73af\u5883 \u5230 \u9ed1\u6697 \u73af\u5883 \u7684 \u9002\u5e94 \u901f\u5ea6 \u3002 calibration _ constant float 16.0 18% \u53cd\u7167 \u53cd\u7167\u7387 \u7684 \u6821\u51c6 \u5e38\u6570 \u3002 focal _ distance float 1000.0 \u666f\u6df1 \u6548\u679c \u5e94 \u6e05\u6670 \u7684 \u8ddd\u79bb \u3002 \u4ee5 \u5398\u7c73 \uff08 \u865a\u5e7b \u5f15\u64ce \u5355\u4f4d \uff09 \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 blur _ amount float 1.0 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 / \u5f3a\u5ea6 \u3002 blur _ radius float 0.0 1080p \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u4e0b \u7684 \u534a\u5f84 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \uff0c \u6839\u636e \u8ddd \u76f8\u673a \u7684 \u8ddd\u79bb \u4eff\u771f \u5927\u6c14 \u6563\u5c04 \u3002 motion _ blur _ intensity float 0.45 \u8fd0\u52a8 \u6a21\u7cca \u7684 \u5f3a\u5ea6 [ 0 , 1 ] \u3002 motion _ blur _ max _ distortion float 0.35 \u8fd0\u52a8 \u6a21\u7cca \u5f15\u8d77 \u7684 \u6700\u5927 \u5931\u771f \u3002 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \u3002 motion _ blur _ min _ object _ screen _ size float 0.1 \u5bf9\u4e8e \u8fd0\u52a8 \u6a21\u7cca \uff0c \u5bf9\u8c61 \u5fc5\u987b \u5177\u6709 \u5c4f\u5e55 \u5bbd\u5ea6 \u7684 \u767e\u5206 \u767e\u5206\u6bd4 \uff0c \u8f83 \u4f4e \u7684 \u503c \u610f\u5473 \u610f\u5473\u7740 \u8f83\u5c11 \u7684 \u7ed8\u5236 \u8c03\u7528 \u3002 slope float 0.88 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 S \u66f2\u7ebf \u7684 \u9661\u5ea6 \u3002 \u503c\u8d8a \u5927 \uff0c \u659c\u7387 \u8d8a \u9661 \uff08 \u8d8a\u6697 \uff09 [ 0.0 , 1.0 ] \u3002 toe float 0.55 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u6df1\u8272 [ 0.0 , 1.0 ] \u3002 shoulder float 0.26 \u8c03\u6574 \u8272\u8c03 \u6620\u5c04 \u5c04\u5668 \u6620\u5c04\u5668 \u4e2d \u7684 \u660e\u4eae \u989c\u8272 [ 0.0 , 1.0 ] \u3002 black _ clip float 0.0 \u4e0d \u5e94 \u8c03\u6574 \u6b64\u503c \u3002 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u548c \u9ed1\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u7684 \u4f4d\u7f6e [ 0.0 , 1.0 ] \u3002 white _ clip float 0.04 \u8bbe\u7f6e \u4ea4\u53c9 \u53d1\u751f \u7684 \u4f4d\u7f6e \uff0c \u5e76\u4e14 \u767d\u8272 \u8272\u8c03 \u5f00\u59cb \u5207\u65ad \u5176\u503c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b\u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 [ 0.0 , 1.0 ] \u3002 temp float 6500.0 \u5e73\u8861 \u767d\u5e73\u8861 \u4e0e \u573a\u666f \u4e2d \u5149\u7ebf \u7684 \u6e29\u5ea6 \u6709\u5173 \u3002 \u767d\u5149 \uff1a \u5f53 \u4e0e \u5149\u6e29 \u5339\u914d \u65f6 \u3002 \u6696\u5149 \uff1a \u5f53 \u9ad8\u4e8e \u573a\u666f \u4e2d \u7684 \u5149\u7ebf \u65f6 \uff0c \u5448 \u6de1\u9ec4 \u9ec4\u8272 \u6de1\u9ec4\u8272 \u3002 \u51b7\u5149 \uff1a \u4f4e\u4e8e \u5149\u7ebf \u65f6 \u3002 \u84dd\u8272 \u3002 tint float 0.0 \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u8272\u8c03 \u3002 \u8c03\u6574 \u9752\u8272 \u548c \u6d0b\u7ea2 \u7ea2\u8272 \u6d0b\u7ea2\u8272 \u7684 \u989c\u8272 \u8303\u56f4 \u3002 \u8fd9 \u5e94\u8be5 \u4e0e \u5e73\u8861 \u767d\u5e73\u8861 \u6e29\u5ea6 \u5c5e\u6027 \u4e00\u8d77 \u4f7f\u7528 \u4ee5 \u83b7\u5f97 \u51c6\u786e \u7684 \u989c\u8272 \u3002 \u5728 \u67d0\u4e9b \u5149\u6e29 \u4e0b \uff0c \u989c\u8272 \u53ef\u80fd \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u9ec4 \u6216 \u66f4 \u84dd \u3002 \u8fd9 \u53ef \u7528\u4e8e \u5e73\u8861 \u6700\u7ec8 \u7684 \u989c\u8272 \uff0c \u4f7f \u5176 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u81ea\u7136 \u3002 chromatic _ aberration _ intensity float 0.0 \u7528\u4e8e \u63a7\u5236 \u8272\u5f69 \u504f\u79fb \u7684 \u7f29\u653e \u56e0\u5b50 \uff0c \u5728 \u5c4f\u5e55 \u8fb9\u6846 \u4e0a \u66f4 \u660e\u663e \u3002 chromatic _ aberration _ offset float 0.0 \u5230 \u53d1\u751f \u6548\u679c \u7684 \u56fe\u50cf \u4e2d\u5fc3 \u7684 \u6b63\u5219 \u5316 \u8ddd\u79bb \u3002 enable _ postprocess _ effects bool True \u5904\u7406 \u540e\u5904\u7406 \u6548\u679c \u6fc0\u6d3b \u3002","title":"\u9ad8\u7ea7 \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_26","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_27","text":"\u84dd\u56fe \uff1a sensor . other . rss \u8f93\u51fa \uff1a \u6bcf \u4e00\u6b65 carla . RssResponse \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u91cd\u8981 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u5728 \u9605\u8bfb \u672c\u6587 \u4e4b\u524d \u5148 \u9605\u8bfb \u5177\u4f53 \u7684 \u4efb \u654f\u611f \u5b89\u5168 \u6587\u6863 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96c6\u6210 \u4e86 Carla \u4e2d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 C++ \u5e93 \u3002 \u5b83 \u5728 Carla \u4e2d \u9ed8\u8ba4 \u88ab \u7981\u7528 \uff0c \u5e76\u4e14 \u5fc5\u987b \u663e\u5f0f \u6784\u5efa \u624d\u80fd \u4f7f\u7528 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u72b6\u6001 \u5e76 \u68c0\u7d22 \u5f53\u524d \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u54cd\u5e94 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 carla . RssRestrictor \u5c06 \u4f7f\u7528 \u6b64 \u6570\u636e \u6765 \u8c03\u6574 carla . VehicleControl \uff0c \u7136\u540e \u518d \u5c06 \u5176 \u5e94\u7528 \u4e8e \u8f66\u8f86 \u3002 \u8fd9\u4e9b \u63a7\u5236 \u63a7\u5236\u5668 \u53ef\u4ee5 \u901a\u8fc7 \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u6216 \u7528\u6237 \u8f93\u5165 \u751f\u6210 \u3002 \u4f8b\u5982 \uff0c \u4e0b\u9762 \u6709 \u4e00\u6bb5 \u6765\u81ea \u7684 \u4ee3\u7801 \u7247\u6bb5 PythonAPI / examples / rss / manual _ control _ rss . py \uff0c \u5176\u4e2d \u5728 \u5fc5\u8981 \u65f6 \u4f7f\u7528 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4fee\u6539 \u7528\u6237 \u8f93\u5165 \u3002 1 . \u68c0\u67e5 RssSensor \u662f\u5426 \u751f\u6210 \u5305\u542b \u9650\u5236 \u7684 \u6709\u6548 \u54cd\u5e94 \u3002 2 . \u6536\u96c6 \u8f66\u8f86 \u7684 \u5f53\u524d \u52a8\u6001 \u548c \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u3002 3 . \u4f7f\u7528 RssSensor \u7684 \u54cd\u5e94 \u4ee5\u53ca \u8f66\u8f86 \u5f53\u524d \u7684 \u52a8\u6001 \u548c \u7269\u7406 \u7279\u6027 \u5bf9 \u8f66\u8f86 \u63a7\u5236 \u65bd\u52a0 \u9650\u5236 \u3002 rss _ proper _ response = self ._ world . rss _ sensor . proper _ response if self ._ world . rss _ sensor and self ._ world . rss _ sensor . response _ valid else None if rss _ proper _ response : ... vehicle _ control = self ._ restrictor . restrict _ vehicle _ control ( vehicle _ control , rss _ proper _ response , self ._ world . rss _ sensor . ego _ dynamics _ on _ route , self ._ vehicle _ physics )","title":"\u8d23\u4efb \u654f\u611f \u5b89\u5168 \u4f20\u611f\u5668"},{"location":"ref_sensors/#carlarsssensor","text":"\u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u84dd\u56fe \u6ca1\u6709 \u53ef \u4fee\u6539 \u7684 \u5c5e\u6027 \u3002 \u4f46\u662f \uff0c \u5b83 \u5b9e\u4f8b \u5316 \u7684 carla . RssSensor \u5bf9\u8c61 \u5177\u6709 Python API \u53c2\u8003 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u5c5e\u6027 \u548c \u65b9\u6cd5 \u3002 \u4ee5\u4e0b \u662f \u5b83\u4eec \u7684 \u6458\u8981 \u3002 carla . RssSensor \u53d8\u91cf \u7c7b\u578b \u63cf\u8ff0 ego _ vehicle _ dynamics ad . rss . world . RssDynamics \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 other _ vehicle _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u5176\u4ed6 \u8f66\u8f86 \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 pedestrian _ dynamics ad . rss . world . RssDynamics \u9002\u7528 \u4e8e \u884c\u4eba \u7684 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u53c2\u6570 road _ boundaries _ mode carla . RssRoadBoundariesMode \u542f\u7528 / \u7981\u7528 \u7559\u5728 \u9053\u8def \u4e0a \u529f\u80fd \u3002 \u9ed8\u8ba4 \u4e3a \u5173\u95ed \u3002 # Fragment of rss _ sensor . py # The carla . RssSensor is updated when listening for a new carla . RssResponse def _ on _ rss _ response ( weak _ self , response ) : ... self . timestamp = response . timestamp self . response _ valid = response . response _ valid self . proper _ response = response . proper _ response self . ego _ dynamics _ on _ route = response . ego _ dynamics _ on _ route self . rss _ state _ snapshot = response . rss _ state _ snapshot self . situation _ snapshot = response . situation _ snapshot self . world _ model = response . world _ model \u8b66\u544a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5b8c\u5168 \u5de5\u4f5c \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e2d \u6ca1\u6709 \u84dd\u56fe \u3002 \u5bf9 \u5c5e\u6027 \u7684 \u66f4\u6539 \u5c06 \u5728 \u8c03\u7528 listen ( ) \u540e \u751f\u6548 \u3002 \u6b64\u7c7b \u4e2d \u53ef\u7528 \u7684 \u65b9\u6cd5 \u4e0e \u8f66\u8f86 \u7684 \u8def\u7ebf \u6709\u5173 \u3002 \u8d23\u4efb \u654f\u611f \u5b89\u5168 \u8ba1\u7b97 \u59cb\u7ec8 \u57fa\u4e8e \u672c\u8f66 \u901a\u8fc7 \u9053\u8def \u7f51\u7edc \u7684 \u8def\u7ebf \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u63d0\u4f9b \u4e00\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u6765 \u63a7\u5236 \u6240 \u8003\u8651 \u7684 \u8def\u7ebf \uff0c \u8fd9\u4e9b \u5173\u952e \u5173\u952e\u70b9 \u53ef\u80fd \u662f carla . Transform \u4e2d \u7684 carla . Waypoint \u3002 \u6700\u597d \u5728 \u4ea4\u53c9 \u4ea4\u53c9\u70b9 \u4e4b\u540e \u9009\u62e9 \u8fd9\u4e9b \u70b9 \uff0c \u4ee5 \u5f3a\u5236 \u8def\u7ebf \u91c7\u53d6 \u6240 \u9700 \u7684 \u8f6c\u5f2f \u3002 carla . RssSensor \u65b9\u6cd5 \u63cf\u8ff0 routing _ targets \u83b7\u53d6 \u7528\u4e8e \u8def\u7531 \u7684 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u5217\u8868 \u3002 append _ routing _ target \u5c06 \u9644\u52a0 \u4f4d\u7f6e \u9644\u52a0 \u5230 \u5f53\u524d \u8def\u7531 \u76ee\u6807 \u3002 reset _ routing _ targets \u5220\u9664 \u9644\u52a0 \u7684 \u8def\u7531 \u76ee\u6807 \u3002 drop _ route \u653e\u5f03 \u5f53\u524d \u8def\u7531 \u5e76 \u521b\u5efa \u4e00\u6761 \u65b0\u8def \u7531 \u3002 register _ actor _ constellation _ callback \u6ce8\u518c \u56de\u8c03 \u6765\u81ea \u5b9a\u4e49 \u8ba1\u7b97 \u3002 set _ log _ level \u8bbe\u7f6e \u65e5\u5fd7 \u7ea7\u522b \u3002 set _ map _ log _ level \u8bbe\u7f6e \u7528\u4e8e \u5730\u56fe \u76f8\u5173 \u65e5\u5fd7 \u7684 \u65e5\u5fd7 \u7ea7\u522b \u3002 # Update the current route self . sensor . reset _ routing _ targets ( ) if routing _ targets : for target in routing _ targets : self . sensor . append _ routing _ target ( target ) \u7b14\u8bb0 \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \u8def\u7531 \u76ee\u6807 \uff0c \u5219 \u4f1a \u521b\u5efa \u968f\u673a \u8def\u7531 \u3002","title":"carla . RssSensor \u7c7b"},{"location":"ref_sensors/#_28","text":"carla . RssResponse \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 response _ valid bool \u54cd\u5e94 \u6570\u636e \u7684 \u6709\u6548 \u6709\u6548\u6027 \u3002 proper _ response ad . rss . state . ProperResponse RSS \u4e3a \u8f66\u8f86 \u8ba1\u7b97 \u7684 \u6b63\u786e \u54cd\u5e94 \uff0c \u5305\u62ec \u52a0\u901f \u9650\u5236 \u3002 rss _ state _ snapshot ad . rss . state . RssStateSnapshot RSS \u72b6\u6001 \u4e3a \u5f53\u524d \u65f6\u95f4 \u70b9 \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8be6\u7ec6 \u7684 \u5355\u72ec \u8f93\u51fa \u3002 situation _ snapshot ad . rss . situation . SituationSnapshot \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u60c5\u51b5 \u3002 \u8fd9\u662f \u7528\u4e8e RSS \u8ba1\u7b97 \u7684 \u7ecf\u8fc7 \u5904\u7406 \u7684 \u8f93\u5165 \u6570\u636e \u3002 world _ model ad . rss . world . WorldModel \u5f53\u524d \u65f6\u95f4 \u70b9 \u7684 RSS \u4e16\u754c \u6a21\u578b \u3002 \u8fd9\u662f RSS \u8ba1\u7b97 \u7684 \u8f93\u5165 \u6570\u636e \u3002 ego _ dynamics _ on _ route carla . RssEgoDynamicsOnRoute \u5173\u4e8e \u8def\u7ebf \u7684 \u5f53\u524d \u81ea\u6211 \u8f66\u8f86 \u52a8\u6001 \u3002 \u5982\u679c \u6ce8\u518c \u4e86 actor _ constellation _ callback \uff0c \u5219 \u4f1a \u89e6\u53d1 \u4ee5\u4e0b \u8c03\u7528 \uff1a \u9ed8\u8ba4 \u8ba1\u7b97 ( actor _ constellation _ data . other _ actor = None ) \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8ba1\u7b97 # Fragment of rss _ sensor . py # The function is registered as actor _ constellation _ callback def _ on _ actor _ constellation _ request ( self , actor _ constellation _ data ) : actor _ constellation _ result = carla . RssActorConstellationResult ( ) actor _ constellation _ result . rss _ calculation _ mode = ad . rss . map . RssMode . NotRelevant actor _ constellation _ result . restrict _ speed _ limit _ mode = ad . rss . map . RssSceneCreation . RestrictSpeedLimitMode . IncreasedSpeedLimit10 actor _ constellation _ result . ego _ vehicle _ dynamics = self . current _ vehicle _ parameters actor _ constellation _ result . actor _ object _ type = ad . rss . world . ObjectType . Invalid actor _ constellation _ result . actor _ dynamics = self . current _ vehicle _ parameters actor _ id = - 1 actor _ type _ id = \" none \" if actor _ constellation _ data . other _ actor ! = None : # customize actor _ constellation _ result for specific actor ... else : # default ... return actor _ constellation _ result","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_29","text":"\u84dd\u56fe \uff1a sensor . lidar . ray _ cast _ semantic \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . SemanticLidarMeasurement \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u4f7f\u7528 \u5c04\u7ebf \u6295\u5c04 \u5b9e\u73b0 \u7684 \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff0c \u516c\u5f00 \u6709\u5173 \u5c04\u7ebf \u6295\u5c04 \u547d\u4e2d \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u5b83 \u7684 \u884c\u4e3a \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e\u5e38 \u76f8\u4f3c \uff0c \u4f46 \u5b83\u4eec \u4e4b\u95f4 \u6709 \u4e24\u4e2a \u4e3b\u8981 \u533a\u522b \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u68c0\u7d22 \u5230 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u6bcf\u4e2a \u70b9 \u5305\u542b \u66f4 \u591a \u6570\u636e \u3002 \u8be5\u70b9 \u7684 \u5750\u6807 \uff08 \u4e0e \u666e\u901a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e00\u6837 \uff09 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u4e0e \u8868\u9762 \u6cd5\u7ebf \u4e4b\u95f4 \u7684 \u4f59\u5f26 \u503c \u3002 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u57fa\u7840 \u4e8b\u5b9e \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f Carla \u5bf9\u8c61 \u547d\u4e2d \u7684 \u7d22\u5f15 \u53ca\u5176 \u8bed\u4e49 \u6807\u7b7e \u3002 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65e2 \u4e0d \u5305\u542b \u5f3a\u5ea6 \u3001 \u8870\u51cf \u4e5f \u4e0d \u5305\u542b \u566a\u58f0 \u6a21\u578b \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u70b9 \u662f \u901a\u8fc7 \u4e3a \u5782\u76f4 FOV \u4e2d \u5206\u5e03 \u7684 \u6bcf\u4e2a \u901a\u9053 \u6dfb\u52a0 \u6fc0\u5149 \u6765 \u8ba1\u7b97 \u7684 \u3002 \u65cb\u8f6c \u662f \u901a\u8fc7 \u8ba1\u7b97 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5728 \u4e00\u5e27 \u4e2d \u65cb\u8f6c \u7684 \u6c34\u5e73 \u89d2\u5ea6 \u6765 \u4eff\u771f \u7684 \u3002 \u70b9\u4e91 \u662f \u901a\u8fc7 \u5728 \u6bcf\u4e2a \u6b65\u9aa4 \u4e2d \u5bf9 \u6bcf\u4e2a \u6fc0\u5149 \u8fdb\u884c \u5149\u7ebf \u6295\u5c04 \u6765 \u8ba1\u7b97 \u7684 \u3002 points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6d4b\u91cf \u5305\u542b \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5728 \u67d0\u4e2a \u65f6\u95f4 1 / FPS \u95f4\u9694 \u5185 \u751f\u6210 \u7684 \u6240\u6709 \u70b9 \u3002 \u5728 \u6b64 \u95f4\u9694 \u671f\u95f4 \uff0c \u7269\u7406 \u4e0d\u4f1a \u66f4\u65b0 \uff0c \u56e0\u6b64 \u6d4b\u91cf \u4e2d \u7684 \u6240\u6709 \u70b9 \u90fd \u53cd\u6620 \u573a\u666f \u7684 \u76f8\u540c \u201c \u9759\u6001 \u56fe\u7247 \u201d \u3002 \u6b64 \u8f93\u51fa \u5305\u542b \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8bed\u4e49 \u68c0\u6d4b \u4e91 \uff0c \u56e0\u6b64 \uff0c \u53ef\u4ee5 \u5bf9 \u5176 \u8fdb\u884c \u8fed\u4ee3 \u4ee5 \u68c0\u7d22 \u5176 \u5217\u8868 carla . SemanticLidarDetection \uff1a for detection in semantic _ lidar _ measurement : print ( detection ) \u53ef\u4ee5 \u8c03\u6574 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7684 \u65cb\u8f6c \u4ee5 \u8986\u76d6 \u6bcf\u4e2a \u4eff\u771f \u6b65\u9aa4 \u7684 \u7279\u5b9a \u89d2\u5ea6 \uff08 \u4f7f\u7528 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \uff09 \u3002 \u4f8b\u5982 \uff0c \u6bcf\u6b65 \u65cb\u8f6c \u4e00\u6b21 \uff08 \u6574\u5708 \u8f93\u51fa \uff0c \u5982\u4e0b \u56fe \uff09 \uff0c \u65cb\u8f6c \u9891\u7387 \u548c \u4eff\u771f \u7684 FPS \u5e94\u8be5 \u76f8\u7b49 \u3002 1 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9891\u7387 sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) \u3002 2 . \u4f7f\u7528 python3 config . py -- fps = 10 \u8fd0\u884c \u4eff\u771f \u3002","title":"\u8bed\u4e49 \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"ref_sensors/#_30","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 channels int 32 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6570\u91cf \u3002 range float 10.0 \u6d4b\u91cf / \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff08 Carla 0.9 . 6 \u6216 \u66f4 \u4f4e\u7248 \u7248\u672c \u4f4e\u7248\u672c \u4e3a \u5398\u7c73 \uff09 \u3002 points _ per _ second int 56000 \u6240\u6709 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf\u79d2 \u751f\u6210 \u7684 \u70b9 \u3002 rotation _ frequency float 10.0 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u65cb\u8f6c \u9891\u7387 \u3002 upper _ fov float 10.0 \u6700\u9ad8 \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 lower _ fov float - 30.0 \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 horizontal _ fov float 360.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \uff0c 0 - 360 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u8bed\u4e49 \u6fc0\u5149\u96f7\u8fbe \u5c5e\u6027"},{"location":"ref_sensors/#_31","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 horizontal _ angle float \u5f53\u524d \u5e27 \u4e2d LIDAR \u7684 XY \u5e73\u9762 \u4e2d \u7684 \u89d2\u5ea6 \uff08 \u5f27\u5ea6 \uff09 \u3002 channels int LIDAR \u7684 \u901a\u9053 \uff08 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \uff09 \u6570\u91cf \u3002 get _ point _ count ( channel ) int \u5f53\u524d \u5e27 \u4e2d \u6355\u83b7 \u7684 \u6bcf\u4e2a \u901a\u9053 \u7684 \u70b9\u6570 \u3002 raw _ data bytes \u5305\u542b \u5177\u6709 \u5b9e\u4f8b \u548c \u8bed\u4e49 \u4fe1\u606f \u7684 \u70b9\u4e91 \u7684 \u6570\u7ec4 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u70b9 \uff0c \u5b58\u50a8 \u56db\u4e2a 32 \u4f4d \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 XYZ \u5750\u6807 \u3002 \u5165\u5c04 \u5c04\u89d2 \u5165\u5c04\u89d2 \u7684 \u4f59\u5f26 \u3002 Unsigned int \u5305\u542b \u547d\u4e2d \u5bf9\u8c61 \u7684 \u7d22\u5f15 \u3002 Unsigned int \u5305\u542b \u5bf9\u8c61 it \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#_32","text":"\u84dd\u56fe \uff1a sensor . camera . semantic _ segmentation \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . Image \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u8be5 \u6444\u50cf \u6444\u50cf\u673a \u6839\u636e \u5176 \u6807\u7b7e \u4ee5 \u4e0d\u540c \u7684 \u989c\u8272 \u663e\u793a \u5b83 \uff0c \u4ece\u800c \u5bf9 \u53ef\u89c1 \u7684 \u6bcf\u4e2a \u7269\u4f53 \u8fdb\u884c \u5206\u7c7b \uff08 \u4f8b\u5982 \uff0c \u884c\u4eba \u4e0e \u8f66\u8f86 \u7684 \u989c\u8272 \u4e0d\u540c \uff09 \u3002 \u5f53 \u4eff\u771f \u5f00\u59cb \u65f6 \uff0c \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5143\u7d20 \u90fd \u4f1a \u4f7f\u7528 \u6807\u7b7e \u521b\u5efa \u3002 \u6240\u4ee5 \u5f53 \u6f14\u5458 \u4ea7\u751f \u65f6 \u5c31 \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u5bf9\u8c61 \u6309 \u5176 \u5728 \u9879\u76ee \u4e2d \u7684 \u76f8\u5bf9 \u6587\u4ef6 \u8def\u5f84 \u8fdb\u884c \u5206\u7c7b \u3002 \u4f8b\u5982 \uff0c \u5b58\u50a8 \u5728 \u4e2d \u7684 \u7f51\u683c Unreal / CarlaUE4 / Content / Static / Pedestrians \u88ab \u6807\u8bb0 \u4e3a Pedestrian \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u63d0\u4f9b \u7684 \u56fe\u50cf \u7684 \u6807\u7b7e \u4fe1\u606f \u7f16\u7801 \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \uff1a \u7ea2\u8272 \u503c\u4e3a \u7684 \u50cf\u7d20 x \u5c5e\u4e8e \u5e26\u6709 \u6807\u7b7e \u7684 \u5bf9\u8c61 x \u3002 \u8fd9\u4e2a \u539f\u59cb \u7684 carla . Image \u53ef\u4ee5 \u5728 carla . ColorConverter \u4e2d \u7684 CityScapesPalette \u7684 \u5e2e\u52a9 \u4e0b \u5b58\u50a8 \u548c \u8f6c\u6362 \uff0c \u4ee5 \u5e94\u7528 \u6807\u7b7e \u4fe1\u606f \u5e76 \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u663e\u793a \u56fe\u7247 \u3002 ... raw _ image . save _ to _ disk ( \" path / to / save / converted / image \" , carla . cityScapesPalette ) \u76ee\u524d \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u6807\u7b7e \uff1a \u503c \u6807\u7b7e \u8f6c\u6362 \u540e \u7684 \u989c\u8272 \u63cf\u8ff0 0 Unlabeled ( 0 , 0 , 0 ) \u8003\u8651 \u5c1a\u672a \u5206\u7c7b \u7684 \u5143\u7d20 Unlabeled \u3002 \u8be5 \u7c7b\u522b \u5e94\u8be5 \u662f \u7a7a \u7684 \u6216 \u81f3\u5c11 \u5305\u542b \u6ca1\u6709 \u51b2\u7a81 \u7684 \u5143\u7d20 \u3002 1 Building ( 70 , 70 , 70 ) \u623f\u5c4b \u3001 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u7b49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4ee5\u53ca \u9644\u7740 \u5728 \u5176 \u4e0a \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u7a7a\u8c03 \u3001 \u811a\u624b \u811a\u624b\u67b6 \u3001 \u906e\u9633 \u906e\u9633\u7bf7 \u6216 \u68af\u5b50 \u7b49\u7b49 \u3002 2 Fence ( 100 , 40 , 40 ) \u969c\u788d \u969c\u788d\u7269 \u3001 \u680f\u6746 \u6216 \u5176\u4ed6 \u76f4\u7acb \u7ed3\u6784 \u3002 \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u5305\u56f4 \u5730\u9762 \u533a\u57df \u7684 \u6728\u6750 \u6216 \u7535\u7ebf \u7ec4\u4ef6 \u3002 3 Other ( 55 , 90 , 80 ) \u4e00\u5207 \u4e0d \u5c5e\u4e8e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u7684 \u4e1c\u897f \u3002 4 Pedestrian ( 220 , 20 , 60 ) \u6b65\u884c \u6216 \u4e58\u5750 / \u9a7e\u9a76 \u4efb\u4f55 \u7c7b\u578b \u7684 \u8f66\u8f86 \u6216 \u79fb\u52a8 \u7cfb\u7edf \u7684 \u4eba \u3002 \u4f8b\u5982 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6216 \u8e0f\u677f \u677f\u8f66 \u8e0f\u677f\u8f66 \u3001 \u6ed1\u677f \u3001 \u9a6c \u3001 \u65f1\u51b0 \u51b0\u978b \u65f1\u51b0\u978b \u3001 \u8f6e\u6905 \u7b49 \u3002 5 Pole ( 153 , 153 , 153 ) \u4e3b\u8981 \u4e3a \u5782\u76f4 \u65b9\u5411 \u7684 \u5c0f\u578b \u6746 \u3002 \u5982\u679c \u6746\u6709 \u6c34\u5e73 \u90e8\u5206 \uff08 \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \uff09 \uff0c \u5219 \u4e5f \u88ab \u89c6\u4e3a \u6746 \u3002 \u4f8b\u5982 \u6807\u5fd7 \u6746 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u6746 \u3002 6 RoadLine ( 157 , 234 , 50 ) \u9053\u8def \u4e0a \u7684 \u6807\u8bb0 \u3002 7 Road ( 128 , 64 , 128 ) \u6c7d\u8f66 \u901a\u5e38 \u884c\u9a76 \u7684 \u90e8\u5206 \u5730\u9762 \u3002 \u4f8b\u5982 \u4efb\u4f55 \u65b9\u5411 \u7684 \u8f66\u9053 \u548c \u8857\u9053 \u3002 8 SideWalk ( 244 , 35 , 232 ) \u6307\u5b9a \u4f9b \u884c\u4eba \u6216 \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8005 \u4f7f\u7528 \u7684 \u5730\u9762 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e0d\u4ec5 \u901a\u8fc7 \u6807\u8bb0 \uff0c \u8fd8 \u901a\u8fc7 \u4e00\u4e9b \u969c\u788d \u969c\u788d\u7269 \uff08 \u4f8b\u5982 \u8def\u7f18 \u77f3 \u6216 \u6746\u5b50 \uff09 \u5c06 \u9053\u8def \u4e0e \u9053\u8def \u5206 \u9694\u5f00 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u5212\u5b9a \u7684 \u8def\u8fb9 \u3001 \u4ea4\u901a \u4ea4\u901a\u5c9b \uff08 \u6b65\u884c \u90e8\u5206 \uff09 \u548c \u6b65\u884c \u533a \u3002 9 Vegetation ( 107 , 142 , 35 ) \u6811\u6728 \u3001 \u6811\u7bf1 \u3001 \u5404\u79cd \u5782\u76f4 \u690d\u88ab \u3002 \u8003\u8651 \u5730\u9762 \u690d\u88ab Terrain \u3002 10 Vehicles ( 0 , 0 , 142 ) \u6c7d\u8f66 \u3001 \u8d27\u8f66 \u3001 \u5361\u8f66 \u3001 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u3001 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u3001 \u516c\u5171 \u6c7d\u8f66 \u516c\u5171\u6c7d\u8f66 \u3001 \u706b\u8f66 \u3002 11 Wall ( 102 , 102 , 156 ) \u72ec\u7acb \u7684 \u7acb\u5899 \u3002 \u4e0d\u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 12 TrafficSign ( 220 , 220 , 0 ) \u7531\u5dde / \u5e02 \u5f53\u5c40 \u5b89\u88c5 \u7684 \u6807\u5fd7 \uff0c \u901a\u5e38 \u7528\u4e8e \u4ea4\u901a \u7ba1\u5236 \u4ea4\u901a\u7ba1\u5236 \u3002 \u6b64 \u7c7b\u522b \u4e0d \u5305\u62ec \u9644\u6709 \u6807\u5fd7 \u7684 \u6746 \u3002 \u4f8b\u5982 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u3001 \u65b9\u5411 \u6807\u5fd7 ... 13 Sky ( 70 , 130 , 180 ) \u5f00\u9614 \u7684 \u5929\u7a7a \u3002 \u5305\u62ec \u4e91 \u548c \u592a\u9633 \u3002 14 Ground ( 81 , 0 , 81 ) \u4e0e \u4efb\u4f55 \u5176\u4ed6 \u7c7b\u522b \u4e0d \u5339\u914d \u7684 \u4efb\u4f55 \u6c34\u5e73 \u5730\u9762 \u7ed3\u6784 \u3002 \u4f8b\u5982 \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u5171\u4eab \u7684 \u533a\u57df \uff0c \u6216 \u901a\u8fc7 \u8def\u7f18 \u4e0e \u9053\u8def \u5206\u9694 \u7684 \u5e73\u5766 \u73af\u5c9b \u3002 15 Bridge ( 150 , 100 , 100 ) \u53ea\u6709 \u6865 \u7684 \u7ed3\u6784 \u3002 \u6805\u680f \u3001 \u4eba \u3001 \u8f66\u8f86 \u4ee5\u53ca \u5176\u4e0a \u7684 \u5176\u4ed6 \u5143\u7d20 \u90fd \u88ab \u5355\u72ec \u6807\u8bb0 \u3002 16 RailTrack ( 230 , 150 , 140 ) \u5404\u79cd \u975e \u6c7d\u8f66 \u884c\u9a76 \u7684 \u94c1\u8f68 \u3002 \u4f8b\u5982 \u5730\u94c1 \u548c \u706b\u8f66 \u94c1\u8f68 \u3002 17 GuardRail ( 180 , 165 , 180 ) \u6240\u6709 \u7c7b\u578b \u7684 \u62a4\u680f / \u9632\u649e \u680f \u3002 18 TrafficLight ( 250 , 170 , 30 ) \u6ca1\u6709 \u706f\u6746 \u7684 \u4ea4\u901a \u706f\u7bb1 \u3002 19 Static ( 110 , 190 , 160 ) \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u548c \u9053\u5177 \u662f \u4e0d\u53ef \u79fb\u52a8 \u7684 \u3002 \u4f8b\u5982 \u6d88\u9632 \u6d88\u9632\u6813 \u3001 \u56fa\u5b9a \u957f\u51f3 \u3001 \u55b7\u6cc9 \u3001 \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u3002 20 Dynamic ( 170 , 120 , 50 ) \u4f4d\u7f6e \u5bb9\u6613 \u968f \u65f6\u95f4 \u53d8\u5316 \u7684 \u5143\u7d20 \u3002 \u4f8b\u5982 \u53ef \u79fb\u52a8 \u5783\u573e \u5783\u573e\u6876 \u3001 \u624b\u63a8 \u63a8\u8f66 \u624b\u63a8\u8f66 \u3001 \u888b\u5b50 \u3001 \u8f6e\u6905 \u3001 \u52a8\u7269 \u7b49 \u3002 21 Water ( 45 , 60 , 150 ) \u6c34\u5e73 \u6c34\u9762 \u3002 \u4f8b\u5982 \u6e56\u6cca \u3001 \u6d77\u6d0b \u3001 \u6cb3\u6d41 \u3002 22 Terrain ( 145 , 170 , 100 ) \u8349 \u3001 \u5730\u9762 \u690d\u88ab \u3001 \u571f\u58e4 \u6216 \u6c99\u5b50 \u3002 \u8fd9\u4e9b \u533a\u57df \u4e0d \u9002\u5408 \u884c\u9a76 \u3002 \u8be5 \u6807\u7b7e \u5305\u62ec \u53ef\u80fd \u7684 \u9650\u5236 \u9650\u5236\u6027 \u8def\u7f18\u77f3 \u3002 \u7b14\u8bb0 \u9605\u8bfb \u672c \u6559\u7a0b \u4ee5 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u3002","title":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a"},{"location":"ref_sensors/#_33","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u6ef4\u7b54\u58f0 \uff09 \u3002","title":"\u76f8\u673a \u57fa\u672c \u5c5e\u6027"},{"location":"ref_sensors/#_34","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_35","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes BGRA 32 \u4f4d \u50cf\u7d20 \u9635\u5217 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"ref_sensors/#dvs","text":"\u84dd\u56fe \uff1a sensor . camera . dvs \u8f93\u51fa \uff1a \u6bcf\u6b65 carla . DVSEventArray \uff08 \u9664\u975e sensor _ tick \u53e6\u6709 \u8bf4\u660e \uff09 \u3002 \u52a8\u6001 \u89c6\u89c9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6216 \u4e8b\u4ef6 \u76f8\u673a \u662f \u4e00\u79cd \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u5b8c\u5168 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e8b\u4ef6 \u76f8\u673a \u4e0d\u662f \u4ee5 \u56fa\u5b9a \u901f\u7387 \u6355\u83b7 \u5f3a\u5ea6 \u56fe\u50cf \uff0c \u800c\u662f \u4ee5 \u4e8b\u4ef6 \u6d41 \u7684 \u5f62\u5f0f \u5f02\u6b65 \u6d4b\u91cf \u5f3a\u5ea6 \u53d8\u5316 \uff0c \u5bf9 \u6bcf\u4e2a \u50cf\u7d20 \u7684 \u4eae\u5ea6 \u53d8\u5316 \u8fdb\u884c \u7f16\u7801 \u3002 \u4e0e \u6807\u51c6 \u6444\u50cf \u6444\u50cf\u673a \u76f8\u6bd4 \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u5177\u6709 \u72ec\u7279 \u7684 \u5c5e\u6027 \u3002 \u5b83\u4eec \u5177\u6709 \u975e\u5e38 \u9ad8 \u7684 \u52a8\u6001 \u8303\u56f4 \uff08 140 dB \u4e0e 60 dB \uff09 \u3001 \u65e0 \u8fd0\u52a8 \u6a21\u7cca \u548c \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \u3002 \u56e0\u6b64 \uff0c \u4e8b\u4ef6 \u76f8\u673a \u662f \u5373\u4f7f \u5728 \u5177\u6709 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u9ad8\u901f \u573a\u666f \u548c \u9ad8 \u52a8\u6001 \u8303\u56f4 \u73af\u5883 \u4e0b \u4e5f \u80fd \u63d0\u4f9b \u9ad8\u8d28 \u8d28\u91cf \u9ad8\u8d28\u91cf \u89c6\u89c9 \u4fe1\u606f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4e3a \u57fa\u4e8e \u89c6\u89c9 \u7684 \u7b97\u6cd5 \u63d0\u4f9b \u4e86 \u65b0 \u7684 \u5e94\u7528 \u9886\u57df \u5e94\u7528\u9886\u57df \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u8f93\u51fa \u4e8b\u4ef6 \u6d41 \u3002 \u5f53 \u5bf9\u6570 \u5f3a\u5ea6 \u7684 \u53d8\u5316 \u8fbe\u5230 \u9884\u5b9a \u4e49 \u7684 \u6052\u5b9a \u9608\u503c \uff08 \u901a\u5e38 \u5728 15% \u5230 30% \u4e4b\u95f4 \uff09 \u65f6 \uff0c \u5728 \u65f6\u95f4 \u6233 \u5904 \u7684 \u50cf\u7d20 \u5904 e = ( x , y , t , pol ) \u89e6\u53d1 \u4e8b\u4ef6 \u3002 L ( x , y , t ) - L ( x , y , t - \\ delta t ) = pol C t - \\ delta t \u662f \u8be5 \u50cf\u7d20 \u4e0a \u6700\u540e \u4e00\u4e2a \u4e8b\u4ef6 \u88ab \u89e6\u53d1 \u7684 \u65f6\u95f4 \uff0c \u5e76\u4e14 pol \u662f \u6839\u636e \u4eae\u5ea6 \u53d8\u5316 \u7684 \u7b26\u53f7 \u7684 \u4e8b\u4ef6 \u7684 \u6781\u6027 \u3002 + 1 \u5f53 \u4eae\u5ea6 \u589e\u52a0 \u65f6 \u6781\u6027 \u4e3a \u6b63 \uff0c - 1 \u5f53 \u4eae\u5ea6 \u51cf\u5c11 \u65f6 \u6781\u6027 \u4e3a \u8d1f \u3002 \u5de5\u4f5c \u539f\u7406 \u5982\u4e0b \u56fe \u6240\u793a \u3002 \u6807\u51c6 \u76f8\u673a \u4ee5 \u56fa\u5b9a \u901f\u7387 \u8f93\u51fa \u5e27 \uff0c \u4ece\u800c \u5728 \u573a\u666f \u4e2d \u4e0d \u5b58\u5728 \u8fd0\u52a8 \u65f6 \u53d1\u9001 \u5197\u4f59 \u4fe1\u606f \u3002 \u76f8\u6bd4 \u4e4b\u4e0b \u76f8\u6bd4\u4e4b\u4e0b \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u662f \u6570\u636e \u9a71\u52a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u80fd\u591f \u4ee5 \u5fae\u79d2 \u5ef6\u8fdf \u54cd\u5e94 \u4eae\u5ea6 \u53d8\u5316 \u3002 \u5728 \u7ed8\u56fe \u4e2d \uff0c \u53ea\u8981 \uff08 \u7b26\u53f7 \u5e26\u7b26\u53f7 \u7684 \uff09 \u4eae\u5ea6 \u53d8\u5316 \u968f \u65f6\u95f4 \u8d85\u8fc7 C \u4e00\u7ef4 \u7684 \u5bf9\u6bd4 \u5bf9\u6bd4\u5ea6 \u9608\u503c \uff0c \u5c31 \u4f1a \u751f\u6210 \u6b63 \uff08 \u6216\u8d1f \uff09 \u4e8b\u4ef6 \uff08 \u84dd\u70b9 \u3001 \u7ea2 \u70b9 \uff09 \u3002 \u89c2\u5bdf \u4fe1\u53f7 \u5feb\u901f \u53d8\u5316 \u65f6 \u4e8b\u4ef6 \u7387 \u5982\u4f55 \u589e\u957f \u3002 DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5f53\u524d \u5b9e\u73b0 \u5728 \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u4ee5 \u7edf\u4e00 \u91c7\u6837 \u65b9\u5f0f \u5de5\u4f5c \u3002 \u56e0\u6b64 \uff0c \u4e3a\u4e86 \u4eff\u771f \u771f\u5b9e \u4e8b\u4ef6 \u76f8\u673a \u7684 \u9ad8 \u65f6\u95f4 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \uff08 \u5fae\u79d2 \u7ea7 \uff09 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u4ee5 \u9ad8\u9891 \u9891\u7387 \u9ad8\u9891\u7387 \u6267\u884c \uff08 \u6bd4 \u4f20\u7edf \u76f8\u673a \u4f20\u7edf\u76f8\u673a \u7684 \u9891\u7387 \u9ad8\u5f97 \u591a \uff09 \u3002 \u5b9e\u9645 \u5b9e\u9645\u4e0a \uff0c Carla \u6c7d\u8f66 \u884c\u9a76 \u901f\u5ea6 \u8d8a \u5feb \uff0c \u4e8b\u4ef6 \u6570\u91cf \u5c31 \u4f1a \u589e\u52a0 \u3002 \u56e0\u6b64 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9891\u7387 \u5e94 \u968f\u7740 \u573a\u666f \u7684 \u52a8\u6001 \u800c \u76f8\u5e94 \u589e\u52a0 \u3002 \u7528\u6237 \u5e94\u8be5 \u5728 \u65f6\u95f4 \u7cbe\u5ea6 \u548c \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \u4e4b\u95f4 \u627e\u5230 \u5e73\u8861 \u3002 \u63d0\u4f9b \u7684 \u811a\u672c [ manual _ control . py ] \u4f7f\u7528 DVS \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u5c55\u793a \u5982\u4f55 \u914d\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5982\u4f55 \u83b7\u53d6 \u4e8b\u4ef6 \u6d41 \u4ee5\u53ca \u5982\u4f55 \u4ee5 \u56fe\u50cf \u683c\u5f0f \u56fe\u50cf\u683c\u5f0f \uff08 \u901a\u5e38 \u79f0\u4e3a \u4e8b\u4ef6 \u6846\u67b6 \uff09 \u63cf\u8ff0 \u6b64\u7c7b \u4e8b\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u7531\u4e8e DVS \u6444\u50cf \u6444\u50cf\u673a \u7684 \u91c7\u6837 \u65b9\u6cd5 \uff0c \u5982\u679c \u4e24\u4e2a \u8fde\u7eed \u540c\u6b65 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u50cf\u7d20 \u5dee\u5f02 \uff0c \u6444\u50cf \u6444\u50cf\u673a \u5c06 \u4e0d\u4f1a \u8fd4\u56de \u56fe\u50cf \u3002 \u8fd9 \u603b\u662f \u53d1\u751f \u5728 \u7b2c\u4e00 \u5e27 \u4e2d \uff0c \u56e0\u4e3a \u6ca1\u6709 \u524d \u4e00\u5e27 \u53ef \u4f9b \u6bd4\u8f83 \uff0c \u5e76\u4e14 \u5728 \u5e27 \u4e4b\u95f4 \u6ca1\u6709 \u79fb\u52a8 \u7684 \u60c5\u51b5 \u4e0b \u4e5f \u662f \u5982\u6b64 \u3002 DVS \u662f \u4e00\u4e2a \u76f8\u673a \uff0c \u56e0\u6b64 \u5177\u6709 RGB \u76f8\u673a \u4e2d \u53ef\u7528 \u7684 \u6240\u6709 \u5c5e\u6027 \u3002 \u7136\u800c \uff0c \u4e8b\u4ef6 \u6444\u50cf \u6444\u50cf\u673a \u7684 \u5de5\u4f5c \u539f\u7406 \u51e0\u4e4e \u6ca1\u6709 \u4ec0\u4e48 \u72ec\u6709 \u7684 \u5c5e\u6027 \u3002","title":"DVS \u76f8\u673a"},{"location":"ref_sensors/#dvs_1","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 positive _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u589e\u91cf \u76f8\u5173 \u7684 \u6b63 \u9608\u503c C ( 0 - 1 ) \u3002 negative _ threshold float 0.3 \u4e0e \u4eae\u5ea6 \u53d8\u5316 \u51cf\u5c11 \u76f8\u5173 \u7684 \u8d1f \u9608\u503c C ( 0 - 1 ) \u3002 sigma _ positive _ threshold float 0 \u79ef\u6781 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 sigma _ negative _ threshold float 0 \u8d1f\u9762 \u4e8b\u4ef6 \u7684 \u767d \u566a\u58f0 \u6807\u51c6 \u6807\u51c6\u5dee ( 0 - 1 ) \u3002 refractory _ period _ ns int 0.0 \u4e0d\u5e94 \u4e0d\u5e94\u671f \uff08 \u50cf\u7d20 \u5728 \u89e6\u53d1 \u4e8b\u4ef6 \u540e \u65e0\u6cd5 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u65f6\u95f4 \uff09 \uff0c \u4ee5 \u7eb3\u79d2 \u4e3a \u5355\u4f4d \u3002 \u5b83 \u9650\u5236 \u4e86 \u89e6\u53d1 \u4e8b\u4ef6 \u7684 \u6700\u9ad8 \u9891\u7387 \u3002 use _ log bool true \u662f\u5426 \u4ee5 \u5bf9\u6570 \u5f3a\u5ea6 \u6807\u5ea6 \u5de5\u4f5c \u3002 log _ eps float 0.001 \u7528\u4e8e \u5c06 \u56fe\u50cf \u8f6c\u6362 \u4e3a \u65e5\u5fd7 \u7684 Epsilon \u503c \uff1a L = log ( eps + I / 255.0 ) . \u5176\u4e2d I \u662f RGB \u56fe\u50cf \u7684 \u7070\u5ea6 \u503c \uff1a I = 0.2989 * R + 0.5870 * G + 0.1140 * B .","title":"DVS \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_36","text":"\u5149\u6d41 \u76f8\u673a \u6355\u6349 \u4ece \u76f8\u673a \u7684 \u89d2\u5ea6 \u611f\u77e5 \u7684 \u8fd0\u52a8 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bb0\u5f55 \u7684 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5bf9 \u6295\u5f71 \u5230 \u56fe\u50cf \u5e73\u9762 \u7684 \u8be5 \u70b9 \u7684 \u901f\u5ea6 \u8fdb\u884c \u7f16\u7801 \u3002 \u50cf\u7d20 \u7684 \u901f\u5ea6 \u5728 [ - 2 , 2 ] \u8303\u56f4 \u5185 \u7f16\u7801 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \u7684 \u8fd0\u52a8 \uff0c \u53ef\u4ee5 \u5c06 \u8be5 \u4fe1\u606f \u4e0e \u56fe\u50cf \u5927\u5c0f \u4e00\u8d77 \u7f29\u653e \u81f3 [ - 2 * image _ size , 2 * image _ size ] \u3002","title":"\u5149\u6d41 \u76f8\u673a"},{"location":"ref_sensors/#_37","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 image _ size _ x int 800 \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 image _ size _ y int 600 \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float 90.0 \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 sensor _ tick float 0.0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u4e4b\u95f4 \u7684 \u4eff\u771f \u79d2\u6570 \uff08 \u6ef4\u7b54 \u4fe1\u53f7 \uff09 \u3002","title":"\u5149\u6d41 \u76f8\u673a \u5c5e\u6027"},{"location":"ref_sensors/#_38","text":"\u84dd\u56fe \u5c5e\u6027 \u7c7b\u578b \u9ed8\u8ba4 \u63cf\u8ff0 lens _ circle _ falloff float 5.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ circle _ multiplier float 0.0 \u8303\u56f4 \uff1a [ 0.0 , 10.0 ] lens _ k float - 1.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ kcube float 0.0 \u8303\u56f4 \uff1a [ - inf , inf ] lens _ x _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ] lens _ y _ size float 0.08 \u8303\u56f4 \uff1a [ 0.0 , 1.0 ]","title":"\u5149\u6d41 \u76f8\u673a \u955c\u5934 \u7578\u53d8 \u5c5e\u6027"},{"location":"ref_sensors/#_39","text":"\u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5c5e\u6027 \u7c7b\u578b \u63cf\u8ff0 frame int \u8fdb\u884c \u6d4b\u91cf \u65f6 \u7684 \u5e27 \u7f16\u53f7 \u3002 timestamp double \u81ea \u56de\u5408 \u5f00\u59cb \u4ee5\u6765 \u6d4b\u91cf \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 transform carla . Transform \u6d4b\u91cf \u65f6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u3002 width int \u56fe\u50cf \u5bbd\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 height int \u56fe\u50cf \u9ad8\u5ea6 \uff08 \u4ee5 \u50cf\u7d20 \u4e3a \u5355\u4f4d \uff09 \u3002 fov float \u6c34\u5e73 \u89c6\u91ce \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 raw _ data bytes \u5305\u542b \u4e24\u4e2a \u6d6e\u70b9 \u503c \u7684 BGRA 64 \u4f4d \u50cf\u7d20 \u6570\u7ec4 \u3002","title":"\u8f93\u51fa \u5c5e\u6027"},{"location":"release_readme/","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u611f\u8c22 \u611f\u8c22\u60a8 \u4e0b\u8f7d Carla \uff01 http : / / carla . org / \u5982\u4f55 \u8fd0\u884c Carla \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u542f\u52a8 \u7ec8\u7aef \u5e76 \u901a\u8fc7 \u8fd0\u884c \u6765 \u6267\u884c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh \u8fd9 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u53ef\u4ee5 \u770b\u5230 \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u201c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u201d \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u952e \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u4f46 \u65e0\u6cd5 \u4e0e \u6b64 \u89c6\u56fe \u4e2d \u7684 \u4e16\u754c \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u73b0\u5728 \u4f5c\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \uff0c \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u8ba9 \u6211\u4eec \u9996\u5148 \u5411 \u57ce\u5e02 \u6dfb\u52a0 \u4e00\u4e9b \u5b9e\u65f6 \u5185\u5bb9 \uff0c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7684 \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / generate _ traffic . py - n 80 \u8fd9 \u4f7f\u5f97 \u5168\u7403 \u589e\u52a0 \u4e86 80 \u8f86 \u4ee5 \u201c \u81ea\u52a8 \u9a7e\u9a76 \u201d \u6a21\u5f0f \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u56de\u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \uff0c \u6211\u4eec \u5e94\u8be5 \u770b\u5230 \u8fd9\u4e9b \u8f66\u8f86 \u5728 \u57ce\u5e02 \u4e2d \u884c\u9a76 \u3002 \u4ed6\u4eec \u5c06 \u7ee7\u7eed \u968f\u673a \u9a7e\u9a76 \uff0c \u76f4\u5230 \u6211\u4eec \u505c\u6b62 \u811a\u672c \u3002 \u6211\u4eec \u6682\u65f6 \u628a \u5b83\u4eec \u7559\u5728 \u90a3\u91cc \u5427 \u3002 \u73b0\u5728 \uff0c \u5361\u62c9 \u5929\u6c14 \u6674\u6717 \u5929\u6c14\u6674\u6717 \uff0c \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \uff0c \u4f46 \u8fd9 \u5e76 \u4e0d\u662f \u4e00\u4e2a \u975e\u5e38 \u6709\u8da3 \u7684 \u9a7e\u9a76 \u6761\u4ef6 \u3002 Carla \u7684 \u4e00\u9879 \u5f88\u9177 \u7684 \u529f\u80fd \u662f \u60a8 \u53ef\u4ee5 \u63a7\u5236 \u4e16\u754c \u7684 \u5929\u6c14 \u548c \u7167\u660e \u6761\u4ef6 \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u52a8\u6001 \u63a7\u5236 \u52a8\u6001\u63a7\u5236 \u4e00\u5929 \u4e2d \u7684 \u5929\u6c14 \u548c \u65f6\u95f4 \u7684 \u811a\u672c \uff0c \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / dynamic _ weather . py \u8fd9\u5ea7 \u57ce\u5e02 \u73b0\u5728 \u5df2\u7ecf \u51c6\u5907 \u597d \u8ba9 \u6211\u4eec \u5f00\u8f66 \u4e86 \uff0c \u6211\u4eec \u7ec8\u4e8e \u53ef\u4ee5 \u8fd0\u884c \u4e86 . / manual _ control . py \u8fd9 \u5e94\u8be5 \u4f1a \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u5176\u4e2d \u5305\u542b \u6c7d\u8f66 \u7684 \u7b2c\u4e09 \u4eba\u79f0 \u7b2c\u4e09\u4eba\u79f0 \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 WASD / \u7bad\u5934 \u7bad\u5934\u952e \u9a7e\u9a76 \u8fd9\u8f86 \u8f66 \u3002 \u6309 \u201c h \u201d \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u9009\u9879 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u548c \u8fd0\u884c \u9009\u9879 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 \u5728\u7ebf \u6587\u6863 \u3002","title":"Carla \u4eff\u771f\u5668"},{"location":"release_readme/#carla","text":"\u611f\u8c22 \u611f\u8c22\u60a8 \u4e0b\u8f7d Carla \uff01 http : / / carla . org /","title":"Carla \u4eff\u771f\u5668"},{"location":"release_readme/#carla_1","text":"\u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u542f\u52a8 \u7ec8\u7aef \u5e76 \u901a\u8fc7 \u8fd0\u884c \u6765 \u6267\u884c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh \u8fd9 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u53ef\u4ee5 \u770b\u5230 \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u201c \u89c2\u5bdf \u89c2\u5bdf\u8005 \u201d \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u952e \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u4f46 \u65e0\u6cd5 \u4e0e \u6b64 \u89c6\u56fe \u4e2d \u7684 \u4e16\u754c \u8fdb\u884c \u4ea4\u4e92 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u73b0\u5728 \u4f5c\u4e3a \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8fd0\u884c \uff0c \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u8ba9 \u6211\u4eec \u9996\u5148 \u5411 \u57ce\u5e02 \u6dfb\u52a0 \u4e00\u4e9b \u5b9e\u65f6 \u5185\u5bb9 \uff0c \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7684 \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / generate _ traffic . py - n 80 \u8fd9 \u4f7f\u5f97 \u5168\u7403 \u589e\u52a0 \u4e86 80 \u8f86 \u4ee5 \u201c \u81ea\u52a8 \u9a7e\u9a76 \u201d \u6a21\u5f0f \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u56de\u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7a97\u53e3 \uff0c \u6211\u4eec \u5e94\u8be5 \u770b\u5230 \u8fd9\u4e9b \u8f66\u8f86 \u5728 \u57ce\u5e02 \u4e2d \u884c\u9a76 \u3002 \u4ed6\u4eec \u5c06 \u7ee7\u7eed \u968f\u673a \u9a7e\u9a76 \uff0c \u76f4\u5230 \u6211\u4eec \u505c\u6b62 \u811a\u672c \u3002 \u6211\u4eec \u6682\u65f6 \u628a \u5b83\u4eec \u7559\u5728 \u90a3\u91cc \u5427 \u3002 \u73b0\u5728 \uff0c \u5361\u62c9 \u5929\u6c14 \u6674\u6717 \u5929\u6c14\u6674\u6717 \uff0c \u9633\u5149 \u5149\u660e \u660e\u5a9a \u9633\u5149\u660e\u5a9a \uff0c \u4f46 \u8fd9 \u5e76 \u4e0d\u662f \u4e00\u4e2a \u975e\u5e38 \u6709\u8da3 \u7684 \u9a7e\u9a76 \u6761\u4ef6 \u3002 Carla \u7684 \u4e00\u9879 \u5f88\u9177 \u7684 \u529f\u80fd \u662f \u60a8 \u53ef\u4ee5 \u63a7\u5236 \u4e16\u754c \u7684 \u5929\u6c14 \u548c \u7167\u660e \u6761\u4ef6 \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u542f\u52a8 \u4e00\u4e2a \u52a8\u6001 \u63a7\u5236 \u52a8\u6001\u63a7\u5236 \u4e00\u5929 \u4e2d \u7684 \u5929\u6c14 \u548c \u65f6\u95f4 \u7684 \u811a\u672c \uff0c \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u7a97\u53e3 \u5e76 \u6267\u884c . / dynamic _ weather . py \u8fd9\u5ea7 \u57ce\u5e02 \u73b0\u5728 \u5df2\u7ecf \u51c6\u5907 \u597d \u8ba9 \u6211\u4eec \u5f00\u8f66 \u4e86 \uff0c \u6211\u4eec \u7ec8\u4e8e \u53ef\u4ee5 \u8fd0\u884c \u4e86 . / manual _ control . py \u8fd9 \u5e94\u8be5 \u4f1a \u6253\u5f00 \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u5176\u4e2d \u5305\u542b \u6c7d\u8f66 \u7684 \u7b2c\u4e09 \u4eba\u79f0 \u7b2c\u4e09\u4eba\u79f0 \u89c6\u56fe \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 WASD / \u7bad\u5934 \u7bad\u5934\u952e \u9a7e\u9a76 \u8fd9\u8f86 \u8f66 \u3002 \u6309 \u201c h \u201d \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u9009\u9879 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u548c \u8fd0\u884c \u9009\u9879 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u6211\u4eec \u7684 \u5728\u7ebf \u6587\u6863 \u3002","title":"\u5982\u4f55 \u8fd0\u884c Carla"},{"location":"ros_compatibility/","text":"ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 \u662f \u4e00\u4e2a \u63a5\u53e3 \uff0c \u5141\u8bb8 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e0e ROS 1 \u548c ROS 2 \u65e0\u7f1d \u4f7f\u7528 \u3002 \u6839\u636e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf ROS _ VERSION \uff0c \u76f8\u540c \u7684 API \u5c06 \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u3002 \u5b83 \u901a\u8fc7 \u521b\u5efa \u7ee7\u627f CompatibleNode \u521b\u5efa \u7c7b \u3002 ROS \u53c2\u6570 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5728 ROS 2 \u4e2d \u8bbe\u7f6e \u6216 \u8bbf\u95ee \u53c2\u6570 \u4e4b\u524d \u9700\u8981 \u58f0\u660e \u53c2\u6570 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u4e3a\u4e86 \u4fdd\u6301 ROS 1 \u548c ROS 2 \u6a21\u5f0f \u4ee5 \u76f8\u4f3c \u7684 \u65b9\u5f0f \u5de5\u4f5c \uff0c \u5728 ROS 2 \u7684 CompatibleNode \u7248\u672c \u4e2d\u5c06 \u53c2\u6570 allow _ undeclared _ parameters \u8bbe\u7f6e \u4e3a True \uff0c \u5141\u8bb8 \u4f7f\u7528 \u53c2\u6570 \u800c \u65e0\u9700 \u4e8b\u5148 \u58f0\u660e \u3002 TrueCompatibleNode \u670d\u52a1 \u5728 ROS 2 \u4e2d \uff0c \u670d\u52a1 \u53ef\u4ee5 \u5f02\u6b65 \u8c03\u7528 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u56e0\u6b64 \uff0c ROS 2 \u7248\u672c \u7684 call _ service ( ) \u65b9\u6cd5 \u5728 \u5f02\u6b65 \u8c03\u7528 \u540e \u4f1a \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u54cd\u5e94 \uff0c \u4ee5 \u6a21\u4eff ROS 1 \u7684 \u540c\u6b65 \u884c\u4e3a \u3002 \u7b14\u8bb0 \u5728 \u7b49\u5f85 \u54cd\u5e94 \u65f6 \uff0c ROS 2 \u7684 call _ service ( ) \u65b9\u6cd5 \u4f1a \u65cb\u8f6c \u8282\u70b9 \u3002 \u5982\u679c \u53e6 \u4e00\u4e2a \u7ebf\u7a0b \u5e76\u884c \u65cb\u8f6c \u540c\u4e00 \u8282\u70b9 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u95ee\u9898 \uff08 \u9519\u8bef \u6216 \u6b7b\u9501 \uff09 \u3002","title":"ROS \u517c\u5bb9\u6027 \u8282\u70b9"},{"location":"ros_compatibility/#ros","text":"ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 \u662f \u4e00\u4e2a \u63a5\u53e3 \uff0c \u5141\u8bb8 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e0e ROS 1 \u548c ROS 2 \u65e0\u7f1d \u4f7f\u7528 \u3002 \u6839\u636e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf ROS _ VERSION \uff0c \u76f8\u540c \u7684 API \u5c06 \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u3002 \u5b83 \u901a\u8fc7 \u521b\u5efa \u7ee7\u627f CompatibleNode \u521b\u5efa \u7c7b \u3002","title":"ROS \u517c\u5bb9\u6027 \u8282\u70b9"},{"location":"ros_compatibility/#ros_1","text":"\u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5728 ROS 2 \u4e2d \u8bbe\u7f6e \u6216 \u8bbf\u95ee \u53c2\u6570 \u4e4b\u524d \u9700\u8981 \u58f0\u660e \u53c2\u6570 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u4e3a\u4e86 \u4fdd\u6301 ROS 1 \u548c ROS 2 \u6a21\u5f0f \u4ee5 \u76f8\u4f3c \u7684 \u65b9\u5f0f \u5de5\u4f5c \uff0c \u5728 ROS 2 \u7684 CompatibleNode \u7248\u672c \u4e2d\u5c06 \u53c2\u6570 allow _ undeclared _ parameters \u8bbe\u7f6e \u4e3a True \uff0c \u5141\u8bb8 \u4f7f\u7528 \u53c2\u6570 \u800c \u65e0\u9700 \u4e8b\u5148 \u58f0\u660e \u3002 TrueCompatibleNode","title":"ROS \u53c2\u6570"},{"location":"ros_compatibility/#_1","text":"\u5728 ROS 2 \u4e2d \uff0c \u670d\u52a1 \u53ef\u4ee5 \u5f02\u6b65 \u8c03\u7528 \u3002 ROS 1 \u4e2d \u5e76\u975e \u5982\u6b64 \u5e76\u975e\u5982\u6b64 \u3002 \u56e0\u6b64 \uff0c ROS 2 \u7248\u672c \u7684 call _ service ( ) \u65b9\u6cd5 \u5728 \u5f02\u6b65 \u8c03\u7528 \u540e \u4f1a \u7b49\u5f85 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u54cd\u5e94 \uff0c \u4ee5 \u6a21\u4eff ROS 1 \u7684 \u540c\u6b65 \u884c\u4e3a \u3002 \u7b14\u8bb0 \u5728 \u7b49\u5f85 \u54cd\u5e94 \u65f6 \uff0c ROS 2 \u7684 call _ service ( ) \u65b9\u6cd5 \u4f1a \u65cb\u8f6c \u8282\u70b9 \u3002 \u5982\u679c \u53e6 \u4e00\u4e2a \u7ebf\u7a0b \u5e76\u884c \u65cb\u8f6c \u540c\u4e00 \u8282\u70b9 \uff0c \u8fd9 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u95ee\u9898 \uff08 \u9519\u8bef \u6216 \u6b7b\u9501 \uff09 \u3002","title":"\u670d\u52a1"},{"location":"ros_documentation/","text":"ROS \u6865 ROS \u6865 \u53ef \u5b9e\u73b0 ROS \u548c Carla \u4e4b\u95f4 \u7684 \u53cc\u5411 \u901a\u4fe1 \u53cc\u5411\u901a\u4fe1 \u3002 \u6765\u81ea Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4fe1\u606f \u88ab \u8f6c\u6362 \u4e3a ROS \u4e3b\u9898 \u3002 \u4ee5 \u540c\u6837 \u7684 \u65b9\u5f0f \uff0c ROS \u4e2d \u7684 \u8282\u70b9 \u4e4b\u95f4 \u53d1\u9001 \u7684 \u6d88\u606f \u88ab \u8f6c\u6362 \u4e3a \u8981 \u5728 Carla \u4e2d \u5e94\u7528 \u7684 \u547d\u4ee4 \u3002 ROS \u6865 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 ROS \u6865 \u5177\u6709 \u4ee5\u4e0b \u7279\u70b9 \uff1a \u4e3a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u76f8\u673a \uff08 \u6df1\u5ea6 \u3001 \u5206\u5272 \u3001 rgb \u3001 dvs \uff09 \u3001 GNSS \u3001 \u96f7\u8fbe \u548c \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u63d0\u4f9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u63d0\u4f9b \u5bf9\u8c61 \u6570\u636e \uff0c \u4f8b\u5982 \u53d8\u6362 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u3001 \u53ef\u89c6 \u53ef\u89c6\u5316 \u6807\u8bb0 \u3001 \u78b0\u649e \u548c \u8f66\u9053 \u5165\u4fb5 \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u3002 \u63a7\u5236 Carla \u4eff\u771f \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u4f8b\u5982 \u540c\u6b65 \u6a21\u5f0f \u3001 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u4ee5\u53ca \u8bbe\u7f6e \u4eff\u771f \u53c2\u6570 \u3002 \u5f00\u59cb \u4f7f\u7528 \u4e3a ROS 1 \u5b89\u88c5 ROS \u6865 \u4e3a ROS 2 \u5b89\u88c5 ROS \u6865 \u4e86\u89e3 \u4e3b\u8981 \u7684 ROS \u6865\u63a5 \u5305 Carla \u7684 ROS \u6865 - \u8fd0\u884c ROS \u6865 \u6240 \u9700 \u7684 \u4e3b\u5305 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 - \u5141\u8bb8 \u76f8\u540c API \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u7684 \u63a5\u53e3 \u4e86\u89e3 \u989d\u5916 \u7684 ROS \u6865\u63a5 \u5305 Carla \u751f\u6210 \u5bf9\u8c61 - \u63d0\u4f9b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901a\u7528 \u65b9\u6cd5 Carla \u624b\u52a8 \u63a7\u5236 - \u7528\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u57fa\u4e8e ROS \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u548c \u63a7\u5236 \u5de5\u5177 \uff08 \u7c7b\u4f3c \u4e8e Carla \u63d0\u4f9b \u7684 carla _ manual _ control . py \uff09 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 - \u4e00\u4e2a \u5c06 \u963f\u514b \u963f\u514b\u66fc \u547d\u4ee4 \u8f6c\u4e3a \u8f6c\u5411 / \u6cb9\u95e8 / \u5239\u8f66 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 Carla \u822a\u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u822a\u70b9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 - \u9075\u5faa \u8def\u7ebf \u3001 \u907f\u514d \u78b0\u649e \u5e76 \u9075\u5b88 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u793a\u4f8b \u4ee3\u7406 Carla \u81ea\u52a8 \u9a7e\u9a76 \u793a\u4f8b - \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 Carla ROS Scenario Runner - \u901a\u8fc7 ROS \u4f7f\u7528 Carla Scenario Runner \u6267\u884c OpenScenarios \u7684 \u5305\u88c5 \u5668 Carla \u626d\u8f6c \u63a7\u5236 - \u5c06 \u626d\u8f6c \u63a7\u5236 \u8f6c\u6362 \u4e3a Carla \u8f66\u8f86 \u63a7\u5236 RVIZ \u63d2\u4ef6 - \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 / \u63a7\u5236 Carla \u7684 RVIZ \u63d2\u4ef6 RQT \u63d2\u4ef6 - \u7528\u4e8e \u63a7\u5236 Carla \u7684 RQT \u63d2\u4ef6 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 - \u6839\u636e \u4eff\u771f \u6355\u83b7 \u7684 \u6570\u636e \u521b\u5efa \u70b9\u4e91 \u5730\u56fe \u63a2\u7d22 \u53c2\u8003 \u8d44\u6599 \u53c2\u8003\u8d44\u6599 ROS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u4e0d\u540c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef\u7528 \u7684 \u53c2\u8003 \u4e3b\u9898 ROS \u6d88\u606f - Carla ROS \u6d88\u606f \u4e2d \u63d0\u4f9b \u7684 \u53c2\u8003 \u53c2\u6570","title":"ROS"},{"location":"ros_documentation/#ros","text":"ROS \u6865 \u53ef \u5b9e\u73b0 ROS \u548c Carla \u4e4b\u95f4 \u7684 \u53cc\u5411 \u901a\u4fe1 \u53cc\u5411\u901a\u4fe1 \u3002 \u6765\u81ea Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u4fe1\u606f \u88ab \u8f6c\u6362 \u4e3a ROS \u4e3b\u9898 \u3002 \u4ee5 \u540c\u6837 \u7684 \u65b9\u5f0f \uff0c ROS \u4e2d \u7684 \u8282\u70b9 \u4e4b\u95f4 \u53d1\u9001 \u7684 \u6d88\u606f \u88ab \u8f6c\u6362 \u4e3a \u8981 \u5728 Carla \u4e2d \u5e94\u7528 \u7684 \u547d\u4ee4 \u3002 ROS \u6865 \u4e0e ROS 1 \u548c ROS 2 \u517c\u5bb9 \u3002 ROS \u6865 \u5177\u6709 \u4ee5\u4e0b \u7279\u70b9 \uff1a \u4e3a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u76f8\u673a \uff08 \u6df1\u5ea6 \u3001 \u5206\u5272 \u3001 rgb \u3001 dvs \uff09 \u3001 GNSS \u3001 \u96f7\u8fbe \u548c \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u63d0\u4f9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u63d0\u4f9b \u5bf9\u8c61 \u6570\u636e \uff0c \u4f8b\u5982 \u53d8\u6362 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u3001 \u53ef\u89c6 \u53ef\u89c6\u5316 \u6807\u8bb0 \u3001 \u78b0\u649e \u548c \u8f66\u9053 \u5165\u4fb5 \u3002 \u901a\u8fc7 \u8f6c\u5411 \u3001 \u6cb9\u95e8 \u548c \u5236\u52a8 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u3002 \u63a7\u5236 Carla \u4eff\u771f \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u4f8b\u5982 \u540c\u6b65 \u6a21\u5f0f \u3001 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u4ee5\u53ca \u8bbe\u7f6e \u4eff\u771f \u53c2\u6570 \u3002","title":"ROS \u6865"},{"location":"ros_documentation/#_1","text":"\u4e3a ROS 1 \u5b89\u88c5 ROS \u6865 \u4e3a ROS 2 \u5b89\u88c5 ROS \u6865","title":"\u5f00\u59cb \u4f7f\u7528"},{"location":"ros_documentation/#ros_1","text":"Carla \u7684 ROS \u6865 - \u8fd0\u884c ROS \u6865 \u6240 \u9700 \u7684 \u4e3b\u5305 ROS \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u8282\u70b9 - \u5141\u8bb8 \u76f8\u540c API \u8c03\u7528 ROS 1 \u6216 ROS 2 \u51fd\u6570 \u7684 \u63a5\u53e3","title":"\u4e86\u89e3 \u4e3b\u8981 \u7684 ROS \u6865\u63a5 \u5305"},{"location":"ros_documentation/#ros_2","text":"Carla \u751f\u6210 \u5bf9\u8c61 - \u63d0\u4f9b \u751f\u6210 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901a\u7528 \u65b9\u6cd5 Carla \u624b\u52a8 \u63a7\u5236 - \u7528\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u57fa\u4e8e ROS \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u548c \u63a7\u5236 \u5de5\u5177 \uff08 \u7c7b\u4f3c \u4e8e Carla \u63d0\u4f9b \u7684 carla _ manual _ control . py \uff09 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 - \u4e00\u4e2a \u5c06 \u963f\u514b \u963f\u514b\u66fc \u547d\u4ee4 \u8f6c\u4e3a \u8f6c\u5411 / \u6cb9\u95e8 / \u5239\u8f66 \u7684 \u63a7\u5236 \u63a7\u5236\u5668 Carla \u822a\u70b9 \u53d1\u5e03 \u5668 - \u53d1\u5e03 \u548c \u67e5\u8be2 Carla \u822a\u70b9 Carla \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 - \u9075\u5faa \u8def\u7ebf \u3001 \u907f\u514d \u78b0\u649e \u5e76 \u9075\u5b88 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u793a\u4f8b \u4ee3\u7406 Carla \u81ea\u52a8 \u9a7e\u9a76 \u793a\u4f8b - \u4e00\u4e2a \u793a\u4f8b \u5305 \uff0c \u63d0\u4f9b \u4f7f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u542f\u52a8 Carla ROS \u73af\u5883 \u6240 \u9700 \u7684 \u4e00\u5207 Carla ROS Scenario Runner - \u901a\u8fc7 ROS \u4f7f\u7528 Carla Scenario Runner \u6267\u884c OpenScenarios \u7684 \u5305\u88c5 \u5668 Carla \u626d\u8f6c \u63a7\u5236 - \u5c06 \u626d\u8f6c \u63a7\u5236 \u8f6c\u6362 \u4e3a Carla \u8f66\u8f86 \u63a7\u5236 RVIZ \u63d2\u4ef6 - \u7528\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 / \u63a7\u5236 Carla \u7684 RVIZ \u63d2\u4ef6 RQT \u63d2\u4ef6 - \u7528\u4e8e \u63a7\u5236 Carla \u7684 RQT \u63d2\u4ef6 PCL \u8bb0\u5f55 \u8bb0\u5f55\u5668 - \u6839\u636e \u4eff\u771f \u6355\u83b7 \u7684 \u6570\u636e \u521b\u5efa \u70b9\u4e91 \u5730\u56fe","title":"\u4e86\u89e3 \u989d\u5916 \u7684 ROS \u6865\u63a5 \u5305"},{"location":"ros_documentation/#_2","text":"ROS \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 - \u4e0d\u540c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef\u7528 \u7684 \u53c2\u8003 \u4e3b\u9898 ROS \u6d88\u606f - Carla ROS \u6d88\u606f \u4e2d \u63d0\u4f9b \u7684 \u53c2\u8003 \u53c2\u6570","title":"\u63a2\u7d22 \u53c2\u8003\u8d44\u6599"},{"location":"ros_index/","text":"ROS Bridge Documentation This is the documentation for the ROS bridge which enables two - way communication between ROS and CARLA . The information from the CARLA server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in CARLA . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the CARLA simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters . Get started Installing ROS bridge for ROS 1 Installing ROS bridge for ROS 2 Learn about the main ROS bridge package CARLA ROS bridge - The main package required to run the ROS bridge ROS Compatiblity Node - The interface that allows the same API to call either ROS 1 or ROS 2 functions Learn about the additional ROS bridge packages CARLA Spawn Objects - Provides a generic way to spawn actors CARLA Manual Control - A ROS - based visualization and control tool for an ego vehicle ( similar to carla _ manual _ control . py provided by CARLA ) CARLA Ackerman Control - A controller to convert ackermann commands to steer / throttle / brake CARLA Waypoint Publisher - Publish and query CARLA waypoints CARLA AD Agent - An example agent that follows a route , avoids collisions and respects traffic lights CARLA AD Demo - An example package that provides everything needed to launch a CARLA ROS environment with an AD vehicle CARLA ROS Scenario Runner - A wrapper to execute OpenScenarios with the CARLA Scenario Runner via ROS CARLA Twist to Control - Convert twist controls to CARLA vehicle controls RVIZ plugin - An RVIZ plugin to visualize / control CARLA RQT Plugin - A RQT plugin to control CARLA PCL Recorder - Create point cloud maps from data captured from simulations Explore the reference material ROS Sensors - Reference topics available in the different sensors ROS messages - Reference parameters available in CARLA ROS messages","title":"ROS Bridge Documentation"},{"location":"ros_index/#ros-bridge-documentation","text":"This is the documentation for the ROS bridge which enables two - way communication between ROS and CARLA . The information from the CARLA server is translated to ROS topics . In the same way , the messages sent between nodes in ROS get translated to commands to be applied in CARLA . The ROS bridge is compatible with both ROS 1 and ROS 2 . The ROS bridge boasts the following features : Provides sensor data for LIDAR , Semantic LIDAR , Cameras ( depth , segmentation , rgb , dvs ) , GNSS , Radar and IMU . Provides object data such as transforms , traffic light status , visualisation markers , collision and lane invasion . Control of AD agents through steering , throttle and brake . Control of aspects of the CARLA simulation like synchronous mode , playing and pausing the simulation and setting simulation parameters .","title":"ROS Bridge Documentation"},{"location":"ros_index/#get-started","text":"Installing ROS bridge for ROS 1 Installing ROS bridge for ROS 2","title":"Get started"},{"location":"ros_index/#learn-about-the-main-ros-bridge-package","text":"CARLA ROS bridge - The main package required to run the ROS bridge ROS Compatiblity Node - The interface that allows the same API to call either ROS 1 or ROS 2 functions","title":"Learn about the main ROS bridge package"},{"location":"ros_index/#learn-about-the-additional-ros-bridge-packages","text":"CARLA Spawn Objects - Provides a generic way to spawn actors CARLA Manual Control - A ROS - based visualization and control tool for an ego vehicle ( similar to carla _ manual _ control . py provided by CARLA ) CARLA Ackerman Control - A controller to convert ackermann commands to steer / throttle / brake CARLA Waypoint Publisher - Publish and query CARLA waypoints CARLA AD Agent - An example agent that follows a route , avoids collisions and respects traffic lights CARLA AD Demo - An example package that provides everything needed to launch a CARLA ROS environment with an AD vehicle CARLA ROS Scenario Runner - A wrapper to execute OpenScenarios with the CARLA Scenario Runner via ROS CARLA Twist to Control - Convert twist controls to CARLA vehicle controls RVIZ plugin - An RVIZ plugin to visualize / control CARLA RQT Plugin - A RQT plugin to control CARLA PCL Recorder - Create point cloud maps from data captured from simulations","title":"Learn about the additional ROS bridge packages"},{"location":"ros_index/#explore-the-reference-material","text":"ROS Sensors - Reference topics available in the different sensors ROS messages - Reference parameters available in CARLA ROS messages","title":"Explore the reference material"},{"location":"ros_installation_ros1/","text":"ROS 1 \u7684 ROS \u6865\u63a5 \u5b89\u88c5 \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 Linux \u4e0a \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4ee5 \u4e0e ROS 1 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u60a8 \u5c06 \u627e\u5230 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3001 \u5b89\u88c5 \u6b65\u9aa4 \u3001 \u5982\u4f55 \u8fd0\u884c \u57fa\u672c \u5305\u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u8fd0\u884c \u4ee5\u53ca \u8fd0\u884c \u6d4b\u8bd5 \u7684 \u547d\u4ee4 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d ROS \u6865 \u5b89\u88c5 A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93 B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u8fd0\u884c ROS \u6865 \u6d4b\u8bd5 \u91cd\u8981 ROS \u6865 \u5c1a\u672a \u5728 Windows \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u4f7f\u7528 ROS \u6865 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8f6f\u4ef6 \u8981\u6c42 \uff1a \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 ROS \uff1a ROS Melodic \u2014 \u9002\u7528 \u4e8e Ubuntu 18.04 ( Bionic ) ROS Noetic \u2014 \u9002\u7528 \u4e8e 20.04 ( Focal ) \u6839\u636e \u60a8 \u7684 \u9700\u8981 \uff0c \u53ef\u80fd \u9700\u8981 \u989d\u5916 \u7684 ROS \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 rviz \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 ROS \u6570\u636e \u3002 Carla 0.9 . 7 \u6216 \u66f4 \u9ad8 \u7248\u672c \u2014 \u4ee5\u524d \u7684 \u7248\u672c \u4e0e ROS \u6865 \u4e0d \u517c\u5bb9 \u3002 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6216 \u9488\u5bf9 Linux \u8fdb\u884c \u6784\u5efa \u3002 \u5efa\u8bae \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5c06 ROS \u6865\u63a5 \u7248\u672c \u4e0e Carla \u7248\u672c \u5339\u914d \u3002 ROS \u6865 \u5b89\u88c5 \u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a \u901a\u8fc7 Debian \u5b58\u50a8 \u5e93\u4e2d \u7684 apt \u5de5\u5177 \u8fdb\u884c \u5b89\u88c5 \u3002 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u4ece GitHub \u4e0a \u7684 \u6e90 \u5b58\u50a8 \u5e93 \u514b\u9686 \u3002 \u4e0b\u9762 \u8be6\u7ec6 \u4ecb\u7ecd \u8fd9 \u4e24\u79cd \u65b9\u6cd5 \u3002 \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7248\u672c \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u65e7\u7248 \u7248\u672c \u65e7\u7248\u672c \u7684 Carla \u6587\u6863 \u4e2d \u7684 \u8bf4\u660e \u3002 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u9002\u5f53 \u7248\u672c \u7684 \u6587\u6863 \u3002 A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93 \u7b14\u8bb0 \u6b64 \u5b89\u88c5 \u65b9\u6cd5 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u5bf9\u4e8e \u5176\u4ed6 \u652f\u6301 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 B \u90e8\u5206 \uff1a \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u3002 1 . \u5728 \u60a8 \u7684 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 ROS \u6865 \uff1a \u6700\u65b0 \u7248\u672c \uff1a sudo apt - get update # \u66f4\u65b0 Debian \u5305 \u7d22\u5f15 sudo apt - get install carla - ros - bridge # \u5b89\u88c5 \u6700\u65b0 \u7684 ROS \u6865\u63a5 \u7248\u672c \uff0c \u6216 \u66f4\u65b0 \u5f53\u524d \u7684 \u5b89\u88c5 \u901a\u8fc7 \u5411 \u547d\u4ee4 \u6dfb\u52a0 \u7248\u672c \u6807\u7b7e \u6765 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff1a apt - cache madison carla - ros - bridge # \u5217\u51fa ROS \u6865\u63a5 \u7684 \u53ef\u7528 \u7248\u672c sudo apt - get install carla - ros - bridge = 0.9 . 10 - 1 # \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u201c 0.9 . 10 \u201d \u6307 \u7684 \u662f ROS \u6865\u63a5 \u7248\u672c \uff0c \u201c 1 \u201d \u6307 \u7684 \u662f Debian \u7248\u672c 3 . \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d ROS \u6865 \u662f\u5426 \u5df2 \u5b89\u88c5 \u6210\u529f \u3002 B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 1 . \u521b\u5efa catkin \u5de5\u4f5c \u533a \uff1a mkdir - p ~ / carla - ros - bridge / catkin _ ws / src 2 . \u514b\u9686 ROS \u6865 \u5b58\u50a8 \u5e93\u548c\u5b50 \u6a21\u5757 \uff1a cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git catkin _ ws / src / ros - bridge 5 . \u6839\u636e \u60a8 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a source / opt / ros / < melodic / noetic > / setup . bash 6 . \u5b89\u88c5 \u6240 \u9700 \u7684 ros \u4f9d\u8d56 \u9879 \uff1a cd catkin _ ws rosdep update rosdep install -- from - paths src -- ignore - src - r 7 . \u6784\u5efa ROS \u6865 \uff1a catkin build # alternatively catkin _ make \u8fd0\u884c ROS \u6865 1 . \u6309\u7167 \u5b89\u88c5 Carla \u65f6 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a # \u5305 \u7248\u672c \u5728 carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . / CarlaUE4 . sh # Debian \u5b89\u88c5 \u5728 ` opt / carla - simulator / ` . / CarlaUE4 . sh # \u4ece carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u7684 \u6e90 \u7248\u672c \u6784\u5efa make launch 2 . \u5c06 \u6b63\u786e \u7684 Carla \u6a21\u5757 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \uff1a export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . \u6839\u636e ROS \u6865 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u6dfb\u52a0 ROS \u6865 \u5de5\u4f5c \u7a7a\u95f4 \u7684 \u6e90 \u8def\u5f84 \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u90fd \u5e94\u8be5 \u5728 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u5b8c\u6210 \u6b64 \u64cd\u4f5c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash \u91cd\u8981 \u6e90 \u8def\u5f84 \u53ef\u4ee5 \u6c38\u4e45 \u8bbe\u7f6e \uff0c \u4f46 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u5de5\u4f5c \u533a\u65f6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 4 . \u542f\u52a8 ROS \u6865 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u7528 \u7684 \u4e0d\u540c \u542f\u52a8 \u6587\u4ef6 \u6765 \u68c0\u67e5 \u5b89\u88c5 \uff1a # \u9009\u9879 1 : \u542f\u52a8 ros \u6865 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # \u9009\u9879 2 : \u542f\u52a8 ros \u6865 \u548c \u4e00\u4e2a \u793a\u4f8b \u81ea\u6211 \u8f66\u8f86 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch \u7b14\u8bb0 \u5982\u679c \u60a8 \u6536\u5230 \u9519\u8bef \uff1a ImportError : no module named CARLA \u5219 \u7f3a\u5c11 CARLA Python API \u7684 \u8def\u5f84 \u3002 apt \u5b89\u88c5 \u4f1a \u81ea\u52a8 \u8bbe\u7f6e \u8def\u5f84 \uff0c \u4f46 \u5176\u4ed6 \u5b89\u88c5 \u53ef\u80fd \u4f1a \u4e22\u5931 \u8be5 \u8def\u5f84 \u3002 \u60a8 \u9700\u8981 \u5c06 \u9002\u5f53 \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \u4e2d \u3002 \u60a8 \u5c06 \u5728 / PythonAPI / \u6216 / PythonAPI / dist / \u4e2d \u627e\u5230 \u8be5 \u6587\u4ef6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u5b89\u88c5 \u3002 \u4f7f\u7528 \u4e0e \u60a8 \u5b89\u88c5 \u7684 Python \u7248\u672c \u76f8\u5bf9 \u5e94 \u7684 . egg \u6587\u4ef6 \uff0c \u4f7f\u7528 \u6587\u4ef6 \u7684 \u5b8c\u6574 \u8def\u5f84 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > \u5efa\u8bae \u901a\u8fc7 \u5c06 \u524d \u4e00\u884c \u6dfb\u52a0 \u5230 . bashrc \u6587\u4ef6 \u4e2d\u6765 \u6c38\u4e45 \u8bbe\u7f6e \u6b64 \u53d8\u91cf \u3002 \u8981 \u68c0\u67e5 Carla \u5e93 \u662f\u5426 \u53ef\u4ee5 \u6b63\u786e \u5bfc\u5165 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u7b49\u5f85 \u6210\u529f \u6d88\u606f \uff1a python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2 \u6d4b\u8bd5 \u4f7f\u7528 catkin \u6267\u884c \u6d4b\u8bd5 \uff1a 1 . \u6784\u5efa \u5305 \uff1a catkin _ make - DCATKIN _ ENABLE _ TESTING = 0 2 . \u8fd0\u884c \u6d4b\u8bd5 \uff1a rostest carla _ ros _ bridge ros _ bridge _ client . test","title":"ROS 1 \u7684 ROS \u6865\u63a5 \u5b89\u88c5"},{"location":"ros_installation_ros1/#ros-1-ros","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 Linux \u4e0a \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4ee5 \u4e0e ROS 1 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u60a8 \u5c06 \u627e\u5230 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u3001 \u5b89\u88c5 \u6b65\u9aa4 \u3001 \u5982\u4f55 \u8fd0\u884c \u57fa\u672c \u5305\u4ee5 \u786e\u4fdd \u4e00\u5207 \u6b63\u5e38 \u4e00\u5207\u6b63\u5e38 \u8fd0\u884c \u4ee5\u53ca \u8fd0\u884c \u6d4b\u8bd5 \u7684 \u547d\u4ee4 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d ROS \u6865 \u5b89\u88c5 A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93 B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u8fd0\u884c ROS \u6865 \u6d4b\u8bd5 \u91cd\u8981 ROS \u6865 \u5c1a\u672a \u5728 Windows \u4e2d \u8fdb\u884c \u6d4b\u8bd5 \u3002","title":"ROS 1 \u7684 ROS \u6865\u63a5 \u5b89\u88c5"},{"location":"ros_installation_ros1/#_1","text":"\u5728 \u4f7f\u7528 ROS \u6865 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8f6f\u4ef6 \u8981\u6c42 \uff1a \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 ROS \uff1a ROS Melodic \u2014 \u9002\u7528 \u4e8e Ubuntu 18.04 ( Bionic ) ROS Noetic \u2014 \u9002\u7528 \u4e8e 20.04 ( Focal ) \u6839\u636e \u60a8 \u7684 \u9700\u8981 \uff0c \u53ef\u80fd \u9700\u8981 \u989d\u5916 \u7684 ROS \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 rviz \u6765 \u53ef\u89c6 \u53ef\u89c6\u5316 ROS \u6570\u636e \u3002 Carla 0.9 . 7 \u6216 \u66f4 \u9ad8 \u7248\u672c \u2014 \u4ee5\u524d \u7684 \u7248\u672c \u4e0e ROS \u6865 \u4e0d \u517c\u5bb9 \u3002 \u6309\u7167 \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u6216 \u9488\u5bf9 Linux \u8fdb\u884c \u6784\u5efa \u3002 \u5efa\u8bae \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5c06 ROS \u6865\u63a5 \u7248\u672c \u4e0e Carla \u7248\u672c \u5339\u914d \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"ros_installation_ros1/#ros","text":"\u6709 \u4e24\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a \u901a\u8fc7 Debian \u5b58\u50a8 \u5e93\u4e2d \u7684 apt \u5de5\u5177 \u8fdb\u884c \u5b89\u88c5 \u3002 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u4ece GitHub \u4e0a \u7684 \u6e90 \u5b58\u50a8 \u5e93 \u514b\u9686 \u3002 \u4e0b\u9762 \u8be6\u7ec6 \u4ecb\u7ecd \u8fd9 \u4e24\u79cd \u65b9\u6cd5 \u3002 \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u7248\u672c \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u65e7\u7248 \u7248\u672c \u65e7\u7248\u672c \u7684 Carla \u6587\u6863 \u4e2d \u7684 \u8bf4\u660e \u3002 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u9002\u5f53 \u7248\u672c \u7684 \u6587\u6863 \u3002","title":"ROS \u6865 \u5b89\u88c5"},{"location":"ros_installation_ros1/#a-debian","text":"\u7b14\u8bb0 \u6b64 \u5b89\u88c5 \u65b9\u6cd5 \u4ec5 \u9002\u7528 \u4e8e Ubuntu 18.04 \u3002 \u5bf9\u4e8e \u5176\u4ed6 \u652f\u6301 \u7684 \u53d1\u884c \u53d1\u884c\u7248 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 B \u90e8\u5206 \uff1a \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93 \u3002 1 . \u5728 \u60a8 \u7684 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 ROS \u6865 \uff1a \u6700\u65b0 \u7248\u672c \uff1a sudo apt - get update # \u66f4\u65b0 Debian \u5305 \u7d22\u5f15 sudo apt - get install carla - ros - bridge # \u5b89\u88c5 \u6700\u65b0 \u7684 ROS \u6865\u63a5 \u7248\u672c \uff0c \u6216 \u66f4\u65b0 \u5f53\u524d \u7684 \u5b89\u88c5 \u901a\u8fc7 \u5411 \u547d\u4ee4 \u6dfb\u52a0 \u7248\u672c \u6807\u7b7e \u6765 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff1a apt - cache madison carla - ros - bridge # \u5217\u51fa ROS \u6865\u63a5 \u7684 \u53ef\u7528 \u7248\u672c sudo apt - get install carla - ros - bridge = 0.9 . 10 - 1 # \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u201c 0.9 . 10 \u201d \u6307 \u7684 \u662f ROS \u6865\u63a5 \u7248\u672c \uff0c \u201c 1 \u201d \u6307 \u7684 \u662f Debian \u7248\u672c 3 . \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d ROS \u6865 \u662f\u5426 \u5df2 \u5b89\u88c5 \u6210\u529f \u3002","title":"A . \u4f7f\u7528 Debian \u5b58\u50a8 \u5e93"},{"location":"ros_installation_ros1/#b","text":"1 . \u521b\u5efa catkin \u5de5\u4f5c \u533a \uff1a mkdir - p ~ / carla - ros - bridge / catkin _ ws / src 2 . \u514b\u9686 ROS \u6865 \u5b58\u50a8 \u5e93\u548c\u5b50 \u6a21\u5757 \uff1a cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git catkin _ ws / src / ros - bridge 5 . \u6839\u636e \u60a8 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a source / opt / ros / < melodic / noetic > / setup . bash 6 . \u5b89\u88c5 \u6240 \u9700 \u7684 ros \u4f9d\u8d56 \u9879 \uff1a cd catkin _ ws rosdep update rosdep install -- from - paths src -- ignore - src - r 7 . \u6784\u5efa ROS \u6865 \uff1a catkin build # alternatively catkin _ make","title":"B . \u4f7f\u7528 \u6e90 \u5b58\u50a8 \u5e93"},{"location":"ros_installation_ros1/#ros_1","text":"1 . \u6309\u7167 \u5b89\u88c5 Carla \u65f6 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a # \u5305 \u7248\u672c \u5728 carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . / CarlaUE4 . sh # Debian \u5b89\u88c5 \u5728 ` opt / carla - simulator / ` . / CarlaUE4 . sh # \u4ece carla \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u7684 \u6e90 \u7248\u672c \u6784\u5efa make launch 2 . \u5c06 \u6b63\u786e \u7684 Carla \u6a21\u5757 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \uff1a export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . \u6839\u636e ROS \u6865 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u6dfb\u52a0 ROS \u6865 \u5de5\u4f5c \u7a7a\u95f4 \u7684 \u6e90 \u8def\u5f84 \u3002 \u6bcf\u6b21 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u90fd \u5e94\u8be5 \u5728 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u5b8c\u6210 \u6b64 \u64cd\u4f5c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash \u91cd\u8981 \u6e90 \u8def\u5f84 \u53ef\u4ee5 \u6c38\u4e45 \u8bbe\u7f6e \uff0c \u4f46 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u5de5\u4f5c \u533a\u65f6 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u51b2\u7a81 \u3002 4 . \u542f\u52a8 ROS \u6865 \u3002 \u4f7f\u7528 \u4efb\u4f55 \u53ef\u7528 \u7684 \u4e0d\u540c \u542f\u52a8 \u6587\u4ef6 \u6765 \u68c0\u67e5 \u5b89\u88c5 \uff1a # \u9009\u9879 1 : \u542f\u52a8 ros \u6865 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # \u9009\u9879 2 : \u542f\u52a8 ros \u6865 \u548c \u4e00\u4e2a \u793a\u4f8b \u81ea\u6211 \u8f66\u8f86 roslaunch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch \u7b14\u8bb0 \u5982\u679c \u60a8 \u6536\u5230 \u9519\u8bef \uff1a ImportError : no module named CARLA \u5219 \u7f3a\u5c11 CARLA Python API \u7684 \u8def\u5f84 \u3002 apt \u5b89\u88c5 \u4f1a \u81ea\u52a8 \u8bbe\u7f6e \u8def\u5f84 \uff0c \u4f46 \u5176\u4ed6 \u5b89\u88c5 \u53ef\u80fd \u4f1a \u4e22\u5931 \u8be5 \u8def\u5f84 \u3002 \u60a8 \u9700\u8981 \u5c06 \u9002\u5f53 \u7684 . egg \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 Python \u8def\u5f84 \u4e2d \u3002 \u60a8 \u5c06 \u5728 / PythonAPI / \u6216 / PythonAPI / dist / \u4e2d \u627e\u5230 \u8be5 \u6587\u4ef6 \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e Carla \u5b89\u88c5 \u3002 \u4f7f\u7528 \u4e0e \u60a8 \u5b89\u88c5 \u7684 Python \u7248\u672c \u76f8\u5bf9 \u5e94 \u7684 . egg \u6587\u4ef6 \uff0c \u4f7f\u7528 \u6587\u4ef6 \u7684 \u5b8c\u6574 \u8def\u5f84 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > \u5efa\u8bae \u901a\u8fc7 \u5c06 \u524d \u4e00\u884c \u6dfb\u52a0 \u5230 . bashrc \u6587\u4ef6 \u4e2d\u6765 \u6c38\u4e45 \u8bbe\u7f6e \u6b64 \u53d8\u91cf \u3002 \u8981 \u68c0\u67e5 Carla \u5e93 \u662f\u5426 \u53ef\u4ee5 \u6b63\u786e \u5bfc\u5165 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5e76 \u7b49\u5f85 \u6210\u529f \u6d88\u606f \uff1a python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2","title":"\u8fd0\u884c ROS \u6865"},{"location":"ros_installation_ros1/#_2","text":"\u4f7f\u7528 catkin \u6267\u884c \u6d4b\u8bd5 \uff1a 1 . \u6784\u5efa \u5305 \uff1a catkin _ make - DCATKIN _ ENABLE _ TESTING = 0 2 . \u8fd0\u884c \u6d4b\u8bd5 \uff1a rostest carla _ ros _ bridge ros _ bridge _ client . test","title":"\u6d4b\u8bd5"},{"location":"ros_installation_ros2/","text":"ROS bridge installation for ROS 2 This section is a guide on how to install the ROS bridge on Linux for use with ROS 2 . You will find the prerequisites , installation steps , how to run a basic package to make sure everything is working well and commands to run tests . Before you begin __ ROS bridge installation __ Run the ROS bridge Testing Important ROS is still experimental for Windows . It has only been tested for Linux systems . Before you begin You will need to fulfill the following software requirements before using the ROS bridge : Install ROS : ROS 2 Foxy \u2014 For Ubuntu 20.04 ( Focal ) Additional ROS packages may be required depending on your needs . rviz is highly recommended to visualize ROS data . CARLA 0.9 . 11 or later \u2014 Previous versions are not compatible with the ROS bridge . Follow the quick start installation or make the build for Linux . It is recommended to match the ROS bridge version to the CARLA version when possible . ROS bridge installation Note The Debian package installation is not yet available for ROS 2 . 1 . Set up the project directory and clone the ROS bridge repository and submodules : mkdir - p ~ / carla - ros - bridge && cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git src / ros - bridge 2 . Set up the ROS environment : source / opt / ros / foxy / setup . bash 3 . Install the ROS dependencies : rosdep update rosdep install -- from - paths src -- ignore - src - r 4 . Build the ROS bridge workspace using colcon : colcon build Run the ROS bridge 1 . Start a CARLA server according to the installation method used to install CARLA : # Package version in carla root folder . / CarlaUE4 . sh # Debian installation in ` opt / carla - simulator / ` . / CarlaUE4 . sh # Build from source version in carla root folder make launch 2 . Add the correct CARLA modules to your Python path : export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . Add the source path for the ROS bridge workspace : source . / install / setup . bash 4 . In another terminal , start the ROS 2 bridge . You can run one of the two options below : # Option 1 , start the basic ROS bridge package ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py # Option 2 , start the ROS bridge with an example ego vehicle ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py Note If you receive the error : ImportError : no module named CARLA then the path to the CARLA Python API is missing . The apt installation sets the path automatically , but it may be missing for other installations . You will need to add the appropriate . egg file to your Python path . You will find the file in either / PythonAPI / or / PythonAPI / dist / depending on the CARLA installation . Execute the following command with the complete path to the . egg file , using the file that corresponds to your installed version of Python : export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > It is recommended to set this variable permanently by adding the previous line to your . bashrc file . To check the CARLA library can be imported correctly , run the following command and wait for a success message : python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2 Testing To execute tests using colcon : 1 . Build the package : colcon build -- packages - up - to carla _ ros _ bridge 2 . Run the tests : launch _ test carla _ ros _ bridge / test / ros _ bridge _ client _ ros2 _ test . py","title":"ROS bridge installation for ROS 2"},{"location":"ros_installation_ros2/#ros-bridge-installation-for-ros-2","text":"This section is a guide on how to install the ROS bridge on Linux for use with ROS 2 . You will find the prerequisites , installation steps , how to run a basic package to make sure everything is working well and commands to run tests . Before you begin __ ROS bridge installation __ Run the ROS bridge Testing Important ROS is still experimental for Windows . It has only been tested for Linux systems .","title":"ROS bridge installation for ROS 2"},{"location":"ros_installation_ros2/#before-you-begin","text":"You will need to fulfill the following software requirements before using the ROS bridge : Install ROS : ROS 2 Foxy \u2014 For Ubuntu 20.04 ( Focal ) Additional ROS packages may be required depending on your needs . rviz is highly recommended to visualize ROS data . CARLA 0.9 . 11 or later \u2014 Previous versions are not compatible with the ROS bridge . Follow the quick start installation or make the build for Linux . It is recommended to match the ROS bridge version to the CARLA version when possible .","title":"Before you begin"},{"location":"ros_installation_ros2/#ros-bridge-installation","text":"Note The Debian package installation is not yet available for ROS 2 . 1 . Set up the project directory and clone the ROS bridge repository and submodules : mkdir - p ~ / carla - ros - bridge && cd ~ / carla - ros - bridge git clone -- recurse - submodules https : / / github . com / carla - simulator / ros - bridge . git src / ros - bridge 2 . Set up the ROS environment : source / opt / ros / foxy / setup . bash 3 . Install the ROS dependencies : rosdep update rosdep install -- from - paths src -- ignore - src - r 4 . Build the ROS bridge workspace using colcon : colcon build","title":"ROS bridge installation"},{"location":"ros_installation_ros2/#run-the-ros-bridge","text":"1 . Start a CARLA server according to the installation method used to install CARLA : # Package version in carla root folder . / CarlaUE4 . sh # Debian installation in ` opt / carla - simulator / ` . / CarlaUE4 . sh # Build from source version in carla root folder make launch 2 . Add the correct CARLA modules to your Python path : export CARLA _ ROOT = < path - to - carla > export PYTHONPATH = $ PYTHONPATH : $ CARLA _ ROOT / PythonAPI / carla / dist / carla - < carla _ version _ and _ arch > . egg : $ CARLA _ ROOT / PythonAPI / carla 3 . Add the source path for the ROS bridge workspace : source . / install / setup . bash 4 . In another terminal , start the ROS 2 bridge . You can run one of the two options below : # Option 1 , start the basic ROS bridge package ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py # Option 2 , start the ROS bridge with an example ego vehicle ros2 launch carla _ ros _ bridge carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py Note If you receive the error : ImportError : no module named CARLA then the path to the CARLA Python API is missing . The apt installation sets the path automatically , but it may be missing for other installations . You will need to add the appropriate . egg file to your Python path . You will find the file in either / PythonAPI / or / PythonAPI / dist / depending on the CARLA installation . Execute the following command with the complete path to the . egg file , using the file that corresponds to your installed version of Python : export PYTHONPATH = $ PYTHONPATH : path / to / carla / PythonAPI / < your _ egg _ file > It is recommended to set this variable permanently by adding the previous line to your . bashrc file . To check the CARLA library can be imported correctly , run the following command and wait for a success message : python3 - c ' import carla ; print ( \" Success \" ) ' # python3 or python - c ' import carla ; print ( \" Success \" ) ' # python2","title":"Run the ROS bridge"},{"location":"ros_installation_ros2/#testing","text":"To execute tests using colcon : 1 . Build the package : colcon build -- packages - up - to carla _ ros _ bridge 2 . Run the tests : launch _ test carla _ ros _ bridge / test / ros _ bridge _ client _ ros2 _ test . py","title":"Testing"},{"location":"ros_msgs/","text":"Carla \u6d88\u606f \u53c2\u8003 \u4ee5\u4e0b \u53c2\u8003 \u5217\u51fa \u4e86 ROS \u6865\u4e2d \u53ef\u7528 \u7684 \u6240\u6709 Carla \u6d88\u606f \u3002 \u5bf9 \u8fd9\u4e9b \u6d88\u606f \u6216 Carla - ROS \u6865 \u7684 \u4efb\u4f55 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u89e3\u51b3 \u3002 Carla \u8bba\u575b CarlaActorInfo . msg ROS \u548c Carla \u4e4b\u95f4 \u5171\u4eab \u6709\u5173 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 parent _ id uint32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6ca1\u6709 \u53ef\u7528 \u7684 \u7236\u7ea7 \uff0c \u5219 \u4e3a ` 0 ` \u3002 type string \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u751f\u6210 \u65f6 \u5206\u914d \u7ed9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89d2\u8272 \u3002 CarlaActorList . msg \u5305\u542b Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 actors CarlaActorInfo \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 CarlaCollisionEvent . msg \u68c0\u7d22 \u7531 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u78b0\u649e \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 other _ actor _ id uint32 \u68c0\u6d4b \u5230 \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 normal _ impulse geometry _ msgs / Vector3 \u8868\u793a \u78b0\u649e \u4ea7\u751f \u7684 \u8109\u51b2 \u7684 \u77e2\u91cf \u3002 CarlaControl . msg \u8fd9\u4e9b \u6d88\u606f \u5728 \u540c\u6b65 \u3001 \u975e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u4e0b \u63a7\u5236 \u4eff\u771f \u3002 \u5b9a\u4e49 \u7684 \u5e38\u91cf \u88ab \u7ffb\u8bd1 \u4e3a \u6b65\u8fdb \u547d\u4ee4 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 command int8 \u64ad\u653e = 0 \u6682\u505c = 1 STEP _ ONCE = 2 CarlaEgoVehicleControl . msg \u53d1\u9001 \u6d88\u606f \u4ee5 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u548c \u624b\u52a8 \u4e24\u79cd \u6a21\u5f0f \u4e0b \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u63a7\u5236 \u3002 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u5806\u6808 \u5f62\u5f0f \u53d1\u5e03 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 throttle float32 \u63a7\u5236 \u8f66\u8f86 \u6cb9\u95e8 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] steer float32 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 \u65b9\u5411 \u7684 \u6807\u91cf \u503c \uff1a [ - 1.0 , 1.0 ] \u6765 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 brake float32 \u63a7\u5236 \u8f66\u8f86 \u5239\u8f66 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] hand _ brake bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u624b\u5239 \u3002 reverse bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u5411 \u540e \u79fb\u52a8 \u3002 gear int32 \u8f66\u8f86 \u4e2d \u53ef\u7528 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u53d8\u5316 \u3002 manual _ gear _ shift bool \u5982\u679c \u4e3a True \uff0c \u5219 \u5c06 \u4f7f\u7528 gear \u8fdb\u884c \u6362\u6863 \u3002 CarlaEgoVehicleInfo . msg \u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \uff0c \u4e3b\u8981 \u662f \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u5c5e\u6027 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u5206\u914d \u7ed9 \u8f66\u8f86 \u7684 \u89d2\u8272 \u3002 wheels CarlaEgoVehicleInfoWheel \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 max _ rpm float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u6700\u5927 \u8f6c\u901f \u3002 moi float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3002 damping _ rate _ full _ throttle float32 \u6cb9\u95e8 \u6700\u5927 \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ engaged float32 \u5f53 \u79bb\u5408 \u79bb\u5408\u5668 \u63a5\u5408 \u4e14 \u6cb9\u95e8 \u4e3a \u96f6\u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ disengaged float32 \u5f53 \u6cb9\u95e8 \u4e3a \u96f6\u4e14 \u79bb\u5408 \u79bb\u5408\u5668 \u5206\u79bb \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 use _ gear _ autobox bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u914d\u5907 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u3002 gear _ switch _ time float32 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u5207\u6362 \u65f6\u95f4 \u3002 clutch _ strength float32 \u8f66\u8f86 \u7684 \u79bb\u5408 \u79bb\u5408\u5668 \u5f3a\u5ea6 \u3002 \u4ee5 Kgm ^ 2 / s \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 mass float32 \u8f66\u8f86 \u7684 \u8d28\u91cf \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 drag _ coefficient float32 \u8f66\u8f86 \u5e95\u76d8 \u7684 \u963b\u529b \u7cfb\u6570 \u3002 center _ of _ mass geometry _ msgs / Vector3 \u8f66\u8f86 \u7684 \u8d28\u5fc3 \u3002 CarlaEgoVehicleInfoWheel . msg \u6709\u5173 \u8f66\u8f6e \u7684 \u9759\u6001 \u4fe1\u606f \u5c06 \u6210\u4e3a CarlaEgoVehicleInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 tire _ friction float32 \u8868\u793a \u8f66\u8f6e \u6469\u64e6 \u6469\u64e6\u529b \u7684 \u6807\u91cf \u503c \u3002 damping _ rate float32 \u8f66\u8f6e \u7684 \u963b\u5c3c \u7387 \u3002 max _ steer _ angle float32 \u8f66\u8f6e \u53ef\u4ee5 \u8f6c\u5411 \u7684 \u6700\u5927 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 radius float32 \u8f6e\u5b50 \u7684 \u534a\u5f84 \uff0c \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 max _ brake _ torque float32 \u6700\u5927 \u5236\u52a8 \u626d\u77e9 \uff08 Nm \uff09 \u3002 max _ handbrake _ torque float32 \u6700\u5927 \u624b\u5239 \u626d\u77e9 \uff08 Nm \uff09 \u3002 position geometry _ msgs / Vector3 \u8f66\u8f6e \u7684 \u4e16\u754c \u4f4d\u7f6e \u3002 CarlaEgoVehicleStatus . msg \u8f66\u8f86 \u4f5c\u4e3a \u4e16\u754c \u4e0a \u7269\u4f53 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 velocity float32 \u8f66\u8f86 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 acceleration geometry _ msgs / Accel \u8f66\u8f86 \u5f53\u524d \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 orientation geometry _ msgs / Quaternion \u8f66\u8f86 \u7684 \u5f53\u524d \u671d\u5411 \u3002 control CarlaEgoVehicleControl Carla \u62a5\u544a \u7684 \u5f53\u524d \u63a7\u5236 \u503c \u3002 CarlaLaneInvasionEvent . msg \u8fd9\u4e9b \u6d88\u606f \u53d1\u5e03 \u7531 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u8f66\u9053 \u5165\u4fb5 \u3002 \u6700\u540e \u4e00\u6b65 \u4e2d \u68c0\u6d4b \u5230 \u7684 \u5165\u4fb5 \u5c06 \u4f5c\u4e3a \u5177\u6709 \u5e38\u91cf \u5b9a\u4e49 \u7684 \u5217\u8868 \u4f20\u9012 \uff0c \u4ee5 \u8bc6\u522b \u7a7f\u8fc7 \u7684 \u8f66\u9053 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 crossed _ lane _ markings int32 [ ] LANE _ MARKING _ OTHER = 0 LANE _ MARKING _ BROKEN = 1 LANE _ MARKING _ SOLID = 2 CarlaScenario . msg \u6d4b\u8bd5 \u573a\u666f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 name string \u573a\u666f \u540d\u79f0 \u3002 scenario _ file string \u8be5 \u573a\u666f \u7684 \u6d4b\u8bd5 \u6587\u4ef6 \u3002 destination geometry _ msgs / Pose \u573a\u666f \u7684 \u76ee\u6807 \u4f4d\u7f6e \u3002 target _ speed float64 \u573a\u666f \u671f\u95f4 \u671f\u671b \u7684 \u901f\u5ea6 \u3002 CarlaScenarioList . msg \u8981 \u5728 ScenarioRunner \u4e2d \u8fd0\u884c \u7684 \u6d4b\u8bd5 \u573a\u666f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaScenario [ ] \u573a\u666f \u5217\u8868 \u3002 CarlaScenarioRunnerStatus . msg ScenarioRunner \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f \u4f7f\u7528 \u5e38\u91cf \u6765 \u7ba1\u7406 \u7684 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status uint8 \u573a\u666f \u7684 \u5f53\u524d \u72b6\u6001 \u4f5c\u4e3a \u679a\u4e3e \uff1a STOPPED = 0 STARTING = 1 RUNNING = 2 SHUTTINGDOWN = 3 ERROR = 4 CarlaStatus . msg \u5f53\u524d \u4e16\u754c \u7684 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 frame uint64 \u5f53\u524d \u5e27 \u53f7 \u3002 fixed _ delta _ seconds float32 \u6700\u540e \u4e00\u6b65 \u548c \u5f53\u524d \u6b65 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 synchronous _ mode bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 synchronous _ mode _ running bool \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002 CarlaTrafficLightStatus . msg \u5173\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7684 \u6052\u5b9a \u5b9a\u4e49 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 state uint8 RED = 0 YELLOW = 1 GREEN = 2 OFF = 3 UNKNOWN = 4 CarlaTrafficLightStatusList . msg \u4ea4\u901a \u4ea4\u901a\u706f \u5217\u8868 \u53ca\u5176 \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaTrafficLightStatus [ ] \u6c47\u603b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u6d88\u606f \u5217\u8868 \u3002 CarlaWalkerControl . msg \u5c06 \u8fd0\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u4e8e \u884c\u4eba \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 direction geometry _ msgs / Vector3 \u63a7\u5236 \u884c\u4eba \u65b9\u5411 \u7684 \u5411\u91cf \u3002 speed float32 \u7528\u4e8e \u63a7\u5236 \u884c\u4eba \u901f\u5ea6 \u7684 \u6807\u91cf \u503c \u3002 jump bool \u5982\u679c \u4e3a True \uff0c \u884c\u4eba \u4f1a \u8df3\u8dc3 \u3002 CarlaWaypoint . msg \u822a\u70b9 \u5bf9\u8c61 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 road _ id int32 OpenDRIVE \u9053\u8def \u7684 id \u3002 section _ id int32 OpenDRIVE \u90e8\u5206 \u7684 id \uff0c \u57fa\u4e8e \u5b83\u4eec \u6700\u521d \u5b9a\u4e49 \u7684 \u987a\u5e8f \u3002 lane _ id int32 OpenDRIVE \u8f66\u9053 \u7684 id \uff0c \u8be5\u503c \u53ef\u4ee5 \u662f \u6b63\u6570 \u6216 \u8d1f\u6570 \uff0c \u8868\u793a \u5f53\u524d \u8f66\u9053 \u76f8\u5bf9 \u4e8e \u9053\u8def \u7684 \u65b9\u5411 \u3002 is _ junction bool \u5982\u679c \u5f53\u524d \u8def\u70b9 \u4f4d\u4e8e OpenDRIVE \u5b9a\u4e49 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u4e0a \uff0c \u5219 \u4e3a True \u3002 is _ junction geometry _ msgs / Pose \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002 CarlaWorldInfo . msg \u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 map _ name string \u5f53\u524d \u4e16\u754c \u4e2d \u52a0\u8f7d \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 opendrive string \u5f53\u524d \u5730\u56fe \u7684 . xodr OpenDRIVE \u6587\u4ef6 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \uff09 \u3002 EgoVehicleControlCurrent . msg \u8f66\u8f86 \u7684 \u5f53\u524d \u65f6\u95f4 \u3001 \u901f\u5ea6 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u503c \u3002 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u4f7f\u7528 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 time _ sec float32 \u5e94\u7528 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u65f6\u95f4 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 EgoVehicleControlInfo . msg \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u7684 \u5f53\u524d \u503c \u3002 \u8fd9\u4e9b \u6d88\u606f \u5bf9\u4e8e \u8c03\u8bd5 \u5f88 \u6709\u7528 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 restrictions EgoVehicleControlMaxima \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 target EgoVehicleControlTarget \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 current EgoVehicleControlCurrent \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 status EgoVehicleControlStatus \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 output CarlaEgoVehicleControl \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 EgoVehicleControlMaxima . msg \u63a7\u5236 \u63a7\u5236\u5668 \u9650\u5236 \uff08 \u6781\u9650 \u9650\u503c \u6781\u9650\u503c \uff09 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 max _ steering _ angle float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u8f6c\u5411 \u89d2 \u3002 max _ speed float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u901f\u5ea6 \u3002 max _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 max _ decel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u51cf \u901f\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8m / s ^ 2 min _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5c0f \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u5f53 \u963f\u514b \u963f\u514b\u66fc \u76ee\u6807 \u52a0\u901f \u65f6 \u3002 \u8d85\u8fc7 \u6b64\u503c \uff0c \u8f93\u5165 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u88ab \u63a7\u5236 \u3002 max _ pedal float32 \u6700\u5c0f \u8e0f\u677f \u3002 EgoVehicleControlStatus . msg \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status string \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \u3002 speed _ control _ activation _ count uint8 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ delta float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ target float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ delta float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ target float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 brake _ upper _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002 throttle _ lower _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002 EgoVehicleControlTarget . msg \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 steering _ angle float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u8f6c\u5411 \u89d2 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 jerk float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6296\u52a8 \u3002","title":"Carla \u6d88\u606f \u53c2\u8003"},{"location":"ros_msgs/#carla","text":"\u4ee5\u4e0b \u53c2\u8003 \u5217\u51fa \u4e86 ROS \u6865\u4e2d \u53ef\u7528 \u7684 \u6240\u6709 Carla \u6d88\u606f \u3002 \u5bf9 \u8fd9\u4e9b \u6d88\u606f \u6216 Carla - ROS \u6865 \u7684 \u4efb\u4f55 \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u89e3\u51b3 \u3002 Carla \u8bba\u575b","title":"Carla \u6d88\u606f \u53c2\u8003"},{"location":"ros_msgs/#carlaactorinfomsg","text":"ROS \u548c Carla \u4e4b\u95f4 \u5171\u4eab \u6709\u5173 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 parent _ id uint32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 \u5982\u679c \u6ca1\u6709 \u53ef\u7528 \u7684 \u7236\u7ea7 \uff0c \u5219 \u4e3a ` 0 ` \u3002 type string \u8be5 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u751f\u6210 \u65f6 \u5206\u914d \u7ed9 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u89d2\u8272 \u3002","title":"CarlaActorInfo . msg"},{"location":"ros_msgs/#carlaactorlistmsg","text":"\u5305\u542b Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e00\u4e9b \u57fa\u672c \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 actors CarlaActorInfo \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002","title":"CarlaActorList . msg"},{"location":"ros_msgs/#carlacollisioneventmsg","text":"\u68c0\u7d22 \u7531 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u78b0\u649e \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 other _ actor _ id uint32 \u68c0\u6d4b \u5230 \u78b0\u649e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 normal _ impulse geometry _ msgs / Vector3 \u8868\u793a \u78b0\u649e \u4ea7\u751f \u7684 \u8109\u51b2 \u7684 \u77e2\u91cf \u3002","title":"CarlaCollisionEvent . msg"},{"location":"ros_msgs/#carlacontrolmsg","text":"\u8fd9\u4e9b \u6d88\u606f \u5728 \u540c\u6b65 \u3001 \u975e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u4e0b \u63a7\u5236 \u4eff\u771f \u3002 \u5b9a\u4e49 \u7684 \u5e38\u91cf \u88ab \u7ffb\u8bd1 \u4e3a \u6b65\u8fdb \u547d\u4ee4 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 command int8 \u64ad\u653e = 0 \u6682\u505c = 1 STEP _ ONCE = 2","title":"CarlaControl . msg"},{"location":"ros_msgs/#carlaegovehiclecontrolmsg","text":"\u53d1\u9001 \u6d88\u606f \u4ee5 \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u548c \u624b\u52a8 \u4e24\u79cd \u6a21\u5f0f \u4e0b \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u63a7\u5236 \u3002 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u5806\u6808 \u5f62\u5f0f \u53d1\u5e03 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 throttle float32 \u63a7\u5236 \u8f66\u8f86 \u6cb9\u95e8 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] steer float32 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 \u65b9\u5411 \u7684 \u6807\u91cf \u503c \uff1a [ - 1.0 , 1.0 ] \u6765 \u63a7\u5236 \u8f66\u8f86 \u8f6c\u5411 brake float32 \u63a7\u5236 \u8f66\u8f86 \u5239\u8f66 \u7684 \u6807\u91cf \u503c \uff1a [ 0.0 , 1.0 ] hand _ brake bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u624b\u5239 \u3002 reverse bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u5411 \u540e \u79fb\u52a8 \u3002 gear int32 \u8f66\u8f86 \u4e2d \u53ef\u7528 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u53d8\u5316 \u3002 manual _ gear _ shift bool \u5982\u679c \u4e3a True \uff0c \u5219 \u5c06 \u4f7f\u7528 gear \u8fdb\u884c \u6362\u6863 \u3002","title":"CarlaEgoVehicleControl . msg"},{"location":"ros_msgs/#carlaegovehicleinfomsg","text":"\u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \uff0c \u4e3b\u8981 \u662f \u7528\u4e8e \u5b9a\u4e49 \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u7684 \u5c5e\u6027 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u8f66\u8f86 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 type string \u8be5 \u8f66\u8f86 \u6240 \u57fa\u4e8e \u7684 \u84dd\u56fe \u7684 \u6807\u8bc6 \u6807\u8bc6\u7b26 \u3002 rolename string \u5206\u914d \u7ed9 \u8f66\u8f86 \u7684 \u89d2\u8272 \u3002 wheels CarlaEgoVehicleInfoWheel \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u4fe1\u606f \u7684 \u6d88\u606f \u5217\u8868 \u3002 max _ rpm float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u6700\u5927 \u8f6c\u901f \u3002 moi float32 \u8f66\u8f86 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u7684 \u8f6c\u52a8 \u60ef\u91cf \u8f6c\u52a8\u60ef\u91cf \u3002 damping _ rate _ full _ throttle float32 \u6cb9\u95e8 \u6700\u5927 \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ engaged float32 \u5f53 \u79bb\u5408 \u79bb\u5408\u5668 \u63a5\u5408 \u4e14 \u6cb9\u95e8 \u4e3a \u96f6\u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 damping _ rate _ zero _ throttle _ clutch _ disengaged float32 \u5f53 \u6cb9\u95e8 \u4e3a \u96f6\u4e14 \u79bb\u5408 \u79bb\u5408\u5668 \u5206\u79bb \u65f6 \u7684 \u963b\u5c3c \u7387 \u3002 use _ gear _ autobox bool \u5982\u679c \u4e3a True \uff0c \u8f66\u8f86 \u5c06 \u914d\u5907 \u81ea\u52a8 \u53d8\u901f \u53d8\u901f\u7bb1 \u3002 gear _ switch _ time float32 \u6863\u4f4d \u4e4b\u95f4 \u7684 \u5207\u6362 \u65f6\u95f4 \u3002 clutch _ strength float32 \u8f66\u8f86 \u7684 \u79bb\u5408 \u79bb\u5408\u5668 \u5f3a\u5ea6 \u3002 \u4ee5 Kgm ^ 2 / s \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 mass float32 \u8f66\u8f86 \u7684 \u8d28\u91cf \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \u6d4b\u91cf \u3002 drag _ coefficient float32 \u8f66\u8f86 \u5e95\u76d8 \u7684 \u963b\u529b \u7cfb\u6570 \u3002 center _ of _ mass geometry _ msgs / Vector3 \u8f66\u8f86 \u7684 \u8d28\u5fc3 \u3002","title":"CarlaEgoVehicleInfo . msg"},{"location":"ros_msgs/#carlaegovehicleinfowheelmsg","text":"\u6709\u5173 \u8f66\u8f6e \u7684 \u9759\u6001 \u4fe1\u606f \u5c06 \u6210\u4e3a CarlaEgoVehicleInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 tire _ friction float32 \u8868\u793a \u8f66\u8f6e \u6469\u64e6 \u6469\u64e6\u529b \u7684 \u6807\u91cf \u503c \u3002 damping _ rate float32 \u8f66\u8f6e \u7684 \u963b\u5c3c \u7387 \u3002 max _ steer _ angle float32 \u8f66\u8f6e \u53ef\u4ee5 \u8f6c\u5411 \u7684 \u6700\u5927 \u89d2\u5ea6 \uff08 \u4ee5\u5ea6 \u4e3a \u5355\u4f4d \uff09 \u3002 radius float32 \u8f6e\u5b50 \u7684 \u534a\u5f84 \uff0c \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 max _ brake _ torque float32 \u6700\u5927 \u5236\u52a8 \u626d\u77e9 \uff08 Nm \uff09 \u3002 max _ handbrake _ torque float32 \u6700\u5927 \u624b\u5239 \u626d\u77e9 \uff08 Nm \uff09 \u3002 position geometry _ msgs / Vector3 \u8f66\u8f6e \u7684 \u4e16\u754c \u4f4d\u7f6e \u3002","title":"CarlaEgoVehicleInfoWheel . msg"},{"location":"ros_msgs/#carlaegovehiclestatusmsg","text":"\u8f66\u8f86 \u4f5c\u4e3a \u4e16\u754c \u4e0a \u7269\u4f53 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header Header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 velocity float32 \u8f66\u8f86 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 acceleration geometry _ msgs / Accel \u8f66\u8f86 \u5f53\u524d \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 orientation geometry _ msgs / Quaternion \u8f66\u8f86 \u7684 \u5f53\u524d \u671d\u5411 \u3002 control CarlaEgoVehicleControl Carla \u62a5\u544a \u7684 \u5f53\u524d \u63a7\u5236 \u503c \u3002","title":"CarlaEgoVehicleStatus . msg"},{"location":"ros_msgs/#carlalaneinvasioneventmsg","text":"\u8fd9\u4e9b \u6d88\u606f \u53d1\u5e03 \u7531 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u7684 \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \u5230 \u7684 \u8f66\u9053 \u5165\u4fb5 \u3002 \u6700\u540e \u4e00\u6b65 \u4e2d \u68c0\u6d4b \u5230 \u7684 \u5165\u4fb5 \u5c06 \u4f5c\u4e3a \u5177\u6709 \u5e38\u91cf \u5b9a\u4e49 \u7684 \u5217\u8868 \u4f20\u9012 \uff0c \u4ee5 \u8bc6\u522b \u7a7f\u8fc7 \u7684 \u8f66\u9053 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 crossed _ lane _ markings int32 [ ] LANE _ MARKING _ OTHER = 0 LANE _ MARKING _ BROKEN = 1 LANE _ MARKING _ SOLID = 2","title":"CarlaLaneInvasionEvent . msg"},{"location":"ros_msgs/#carlascenariomsg","text":"\u6d4b\u8bd5 \u573a\u666f \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 name string \u573a\u666f \u540d\u79f0 \u3002 scenario _ file string \u8be5 \u573a\u666f \u7684 \u6d4b\u8bd5 \u6587\u4ef6 \u3002 destination geometry _ msgs / Pose \u573a\u666f \u7684 \u76ee\u6807 \u4f4d\u7f6e \u3002 target _ speed float64 \u573a\u666f \u671f\u95f4 \u671f\u671b \u7684 \u901f\u5ea6 \u3002","title":"CarlaScenario . msg"},{"location":"ros_msgs/#carlascenariolistmsg","text":"\u8981 \u5728 ScenarioRunner \u4e2d \u8fd0\u884c \u7684 \u6d4b\u8bd5 \u573a\u666f \u5217\u8868 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaScenario [ ] \u573a\u666f \u5217\u8868 \u3002","title":"CarlaScenarioList . msg"},{"location":"ros_msgs/#carlascenariorunnerstatusmsg","text":"ScenarioRunner \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f \u4f7f\u7528 \u5e38\u91cf \u6765 \u7ba1\u7406 \u7684 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status uint8 \u573a\u666f \u7684 \u5f53\u524d \u72b6\u6001 \u4f5c\u4e3a \u679a\u4e3e \uff1a STOPPED = 0 STARTING = 1 RUNNING = 2 SHUTTINGDOWN = 3 ERROR = 4","title":"CarlaScenarioRunnerStatus . msg"},{"location":"ros_msgs/#carlastatusmsg","text":"\u5f53\u524d \u4e16\u754c \u7684 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 frame uint64 \u5f53\u524d \u5e27 \u53f7 \u3002 fixed _ delta _ seconds float32 \u6700\u540e \u4e00\u6b65 \u548c \u5f53\u524d \u6b65 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \u3002 synchronous _ mode bool \u5982\u679c \u4e3a True \uff0c \u5219 \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 synchronous _ mode _ running bool \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002","title":"CarlaStatus . msg"},{"location":"ros_msgs/#carlatrafficlightstatusmsg","text":"\u5173\u4e8e \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u7684 \u6052\u5b9a \u5b9a\u4e49 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 id uint32 \u4ea4\u901a \u4ea4\u901a\u706f \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ID \u3002 state uint8 RED = 0 YELLOW = 1 GREEN = 2 OFF = 3 UNKNOWN = 4","title":"CarlaTrafficLightStatus . msg"},{"location":"ros_msgs/#carlatrafficlightstatuslistmsg","text":"\u4ea4\u901a \u4ea4\u901a\u706f \u5217\u8868 \u53ca\u5176 \u72b6\u6001 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 scenarios CarlaTrafficLightStatus [ ] \u6c47\u603b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u72b6\u6001 \u6d88\u606f \u5217\u8868 \u3002","title":"CarlaTrafficLightStatusList . msg"},{"location":"ros_msgs/#carlawalkercontrolmsg","text":"\u5c06 \u8fd0\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u4e8e \u884c\u4eba \u6240 \u9700 \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 direction geometry _ msgs / Vector3 \u63a7\u5236 \u884c\u4eba \u65b9\u5411 \u7684 \u5411\u91cf \u3002 speed float32 \u7528\u4e8e \u63a7\u5236 \u884c\u4eba \u901f\u5ea6 \u7684 \u6807\u91cf \u503c \u3002 jump bool \u5982\u679c \u4e3a True \uff0c \u884c\u4eba \u4f1a \u8df3\u8dc3 \u3002","title":"CarlaWalkerControl . msg"},{"location":"ros_msgs/#carlawaypointmsg","text":"\u822a\u70b9 \u5bf9\u8c61 \u4e2d \u5305\u542b \u7684 \u6570\u636e \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 road _ id int32 OpenDRIVE \u9053\u8def \u7684 id \u3002 section _ id int32 OpenDRIVE \u90e8\u5206 \u7684 id \uff0c \u57fa\u4e8e \u5b83\u4eec \u6700\u521d \u5b9a\u4e49 \u7684 \u987a\u5e8f \u3002 lane _ id int32 OpenDRIVE \u8f66\u9053 \u7684 id \uff0c \u8be5\u503c \u53ef\u4ee5 \u662f \u6b63\u6570 \u6216 \u8d1f\u6570 \uff0c \u8868\u793a \u5f53\u524d \u8f66\u9053 \u76f8\u5bf9 \u4e8e \u9053\u8def \u7684 \u65b9\u5411 \u3002 is _ junction bool \u5982\u679c \u5f53\u524d \u8def\u70b9 \u4f4d\u4e8e OpenDRIVE \u5b9a\u4e49 \u7684 \u4ea4\u6c47 \u4ea4\u6c47\u70b9 \u4e0a \uff0c \u5219 \u4e3a True \u3002 is _ junction geometry _ msgs / Pose \u5f53 \u4eff\u771f \u8fd0\u884c \u65f6\u4e3a True \u3002 \u6682\u505c \u65f6\u4e3a False \u3002","title":"CarlaWaypoint . msg"},{"location":"ros_msgs/#carlaworldinfomsg","text":"\u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 map _ name string \u5f53\u524d \u4e16\u754c \u4e2d \u52a0\u8f7d \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 opendrive string \u5f53\u524d \u5730\u56fe \u7684 . xodr OpenDRIVE \u6587\u4ef6 \uff08 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \uff09 \u3002","title":"CarlaWorldInfo . msg"},{"location":"ros_msgs/#egovehiclecontrolcurrentmsg","text":"\u8f66\u8f86 \u7684 \u5f53\u524d \u65f6\u95f4 \u3001 \u901f\u5ea6 \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u503c \u3002 \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u4f7f\u7528 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 time _ sec float32 \u5e94\u7528 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u65f6\u95f4 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u5e94\u7528 \u7684 \u5f53\u524d \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002","title":"EgoVehicleControlCurrent . msg"},{"location":"ros_msgs/#egovehiclecontrolinfomsg","text":"\u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u63a7\u5236\u5668 \u5185 \u7684 \u5f53\u524d \u503c \u3002 \u8fd9\u4e9b \u6d88\u606f \u5bf9\u4e8e \u8c03\u8bd5 \u5f88 \u6709\u7528 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 header header \u6d88\u606f \u53d1\u5e03 \u65f6 \u7684 \u65f6\u95f4 \u6233 \u548c \u5e27 ID \u3002 restrictions EgoVehicleControlMaxima \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 target EgoVehicleControlTarget \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 current EgoVehicleControlCurrent \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 status EgoVehicleControlStatus \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002 output CarlaEgoVehicleControl \u63a7\u5236 \u63a7\u5236\u5668 \u503c \u7684 \u9650\u5236 \u3002","title":"EgoVehicleControlInfo . msg"},{"location":"ros_msgs/#egovehiclecontrolmaximamsg","text":"\u63a7\u5236 \u63a7\u5236\u5668 \u9650\u5236 \uff08 \u6781\u9650 \u9650\u503c \u6781\u9650\u503c \uff09 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 max _ steering _ angle float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u8f6c\u5411 \u89d2 \u3002 max _ speed float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u901f\u5ea6 \u3002 max _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 max _ decel float32 \u8f66\u8f86 \u7684 \u6700\u5927 \u51cf \u901f\u5ea6 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff1a 8m / s ^ 2 min _ accel float32 \u8f66\u8f86 \u7684 \u6700\u5c0f \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u5f53 \u963f\u514b \u963f\u514b\u66fc \u76ee\u6807 \u52a0\u901f \u65f6 \u3002 \u8d85\u8fc7 \u6b64\u503c \uff0c \u8f93\u5165 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u88ab \u63a7\u5236 \u3002 max _ pedal float32 \u6700\u5c0f \u8e0f\u677f \u3002","title":"EgoVehicleControlMaxima . msg"},{"location":"ros_msgs/#egovehiclecontrolstatusmsg","text":"\u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u5f53\u524d \u72b6\u6001 \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 status string \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \u3002 speed _ control _ activation _ count uint8 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ delta float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 speed _ control _ accel _ target float32 \u901f\u5ea6 \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ delta float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 accel _ control _ pedal _ target float32 \u52a0\u901f \u63a7\u5236 \u63a7\u5236\u5668 \u3002 brake _ upper _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002 throttle _ lower _ border float32 \u6401\u7f6e \u8e0f\u677f \u7684 \u8fb9\u6846 \u3002","title":"EgoVehicleControlStatus . msg"},{"location":"ros_msgs/#egovehiclecontroltargetmsg","text":"\u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c \u3002 \u5b83 \u662f Carla _ Ackermann _ Control . EgoVehicleControlInfo . msg \u6d88\u606f \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b57 \u6bb5 \u7c7b\u578b \u63cf\u8ff0 steering _ angle float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u8f6c\u5411 \u89d2 \u3002 speed float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u901f\u5ea6 \u3002 speed _ abs float32 \u4e3a \u7edd\u5bf9 \u7edd\u5bf9\u503c \u7684 \u901f\u5ea6 \u3002 accel float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 jerk float32 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u76ee\u6807 \u6296\u52a8 \u3002","title":"EgoVehicleControlTarget . msg"},{"location":"ros_sensors/","text":"ROS \u6865 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo \u6df1\u5ea6 \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo DVS \u76f8\u673a \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / events sensor _ msgs / PointCloud2 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2 \u8bed\u4e49 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2 \u96f7\u8fbe \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / Imu \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / NavSatFix \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaCollisionEvent \u8f66\u9053 \u5165\u4fb5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaLaneInvasionEvent \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 TF \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f53 \u751f\u6210 \u6b64\u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u5c06 \u53d1\u5e03 \u81ea\u6211 \u8f66\u8f86 \u7684 tf \u6570\u636e \u3002 \u6ce8\u610f \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6d4b\u91cf \u5b8c\u6210 \u540e \u53d1\u5e03 tf \u6570\u636e \u3002 child _ frame _ id \u4e0e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7684 \u524d\u7f00 \u76f8\u5bf9 \u5e94 \u3002 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > nav _ msgs / Odometry \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u3002 \u8f66\u901f \u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > std _ msgs / Float32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u3002 \u5355\u4f4d \uff1a \u7c73 / \u79d2 \u3002 \u5730\u56fe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > std _ msgs / String \u4ee5 \u9501\u5b9a \u4e3b\u9898 \u4e0a \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \u63d0\u4f9b OpenDRIVE \u6620\u5c04 \u3002 \u76ee\u6807 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > derived _ object _ msgs / ObjectArray \u53d1\u5e03 \u6240\u6709 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u5982\u679c \u9644\u52a0 \u5230 \u7236\u7ea7 \uff0c \u5219 \u4e0d \u5305\u542b \u7236\u7ea7 \u3002 \u6807\u8bb0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > visualization _ msgs / Marker \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u4ea4\u901a \u4ea4\u901a\u706f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / status carla _ msgs / CarlaTrafficLightStatusList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u53ca\u5176 \u72b6\u6001 \u7684 \u5217\u8868 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / info carla _ msgs / CarlaTrafficLightInfoList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u9759\u6001 \u4fe1\u606f \uff08 \u4f8b\u5982 \u4f4d\u7f6e \uff09 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaActorList \u6240\u6709 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8be5 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u5728 Pose \u548c Twist \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u4e2d \u53d1\u5e03 \u59ff\u52bf \u548c \u901f\u5ea6 \u6765 \u63a7\u5236 \u5176\u6240 \u8fde\u63a5 \u7684 actor \uff08 \u4f8b\u5982 ego _ vehicle \uff09 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u6ce8\u610f \uff1a \u6b64 \u63a7\u5236 \u65b9\u6cd5 \u4e0d \u8003\u8651 \u8f66\u8f86 \u9650\u5236 \u3002 \u5b83 \u5141\u8bb8 \u73b0\u5b9e \u4e16\u754c \u4e2d \u4e0d \u53ef\u80fd \u7684 \u8fd0\u52a8 \uff0c \u4f8b\u5982 \u98de\u884c \u6216 \u65cb\u8f6c \u3002 \u76ee\u524d \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u7528 \u5b8c\u6574 \u7684 \u7ebf\u6027 \u77e2\u91cf \uff0c \u4f46\u4ec5 \u5e94\u7528 \u89d2\u5ea6 \u77e2\u91cf \u7684 \u504f\u822a \u3002 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ transform geometry _ msgs / Pose \u8f6c\u6362 \u4ee5 \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ target _ velocity geometry _ msgs / Twist \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7236\u7ea7 \u7684 \u901f\u5ea6 \uff08 \u89d2\u5ea6 \u548c \u7ebf\u6027 \uff09 \u3002","title":"ROS \u6865 \u4f20\u611f\u5668"},{"location":"ros_sensors/#ros","text":"","title":"ROS \u6865 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_1","text":"","title":"\u53ef\u7528 \u4f20\u611f\u5668"},{"location":"ros_sensors/#rgb","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"RGB \u76f8\u673a"},{"location":"ros_sensors/#_2","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"\u6df1\u5ea6 \u76f8\u673a"},{"location":"ros_sensors/#_3","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a"},{"location":"ros_sensors/#dvs","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / events sensor _ msgs / PointCloud2 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / image sensor _ msgs / Image / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / camera _ info sensor _ msgs / CameraInfo","title":"DVS \u76f8\u673a"},{"location":"ros_sensors/#_4","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2","title":"\u6fc0\u5149\u96f7\u8fbe"},{"location":"ros_sensors/#_5","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2","title":"\u8bed\u4e49 \u6fc0\u5149\u96f7\u8fbe"},{"location":"ros_sensors/#_6","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / PointCloud2","title":"\u96f7\u8fbe"},{"location":"ros_sensors/#_7","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / Imu","title":"\u60ef\u6027 \u6d4b\u91cf \u5355\u5143"},{"location":"ros_sensors/#_8","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > sensor _ msgs / NavSatFix","title":"\u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf"},{"location":"ros_sensors/#_9","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaCollisionEvent","title":"\u78b0\u649e \u4f20\u611f\u5668"},{"location":"ros_sensors/#_10","text":"\u4e3b\u9898 \u7c7b\u578b / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaLaneInvasionEvent \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668","title":"\u8f66\u9053 \u5165\u4fb5 \u4f20\u611f\u5668"},{"location":"ros_sensors/#tf","text":"\u5f53 \u751f\u6210 \u6b64\u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u65f6 \uff0c \u5c06 \u53d1\u5e03 \u81ea\u6211 \u8f66\u8f86 \u7684 tf \u6570\u636e \u3002 \u6ce8\u610f \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u6d4b\u91cf \u5b8c\u6210 \u540e \u53d1\u5e03 tf \u6570\u636e \u3002 child _ frame _ id \u4e0e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3b\u9898 \u7684 \u524d\u7f00 \u76f8\u5bf9 \u5e94 \u3002","title":"TF \u4f20\u611f\u5668"},{"location":"ros_sensors/#_11","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > nav _ msgs / Odometry \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u91cc\u7a0b \u91cc\u7a0b\u8ba1 \u3002","title":"\u91cc\u7a0b\u8ba1 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_12","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / < PARENT ROLE NAME > / < SENSOR ROLE NAME > std _ msgs / Float32 \u7236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u3002 \u5355\u4f4d \uff1a \u7c73 / \u79d2 \u3002","title":"\u8f66\u901f \u8868 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_13","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > std _ msgs / String \u4ee5 \u9501\u5b9a \u4e3b\u9898 \u4e0a \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u5f62\u5f0f \u63d0\u4f9b OpenDRIVE \u6620\u5c04 \u3002","title":"\u5730\u56fe \u4f20\u611f\u5668"},{"location":"ros_sensors/#_14","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > derived _ object _ msgs / ObjectArray \u53d1\u5e03 \u6240\u6709 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u5982\u679c \u9644\u52a0 \u5230 \u7236\u7ea7 \uff0c \u5219 \u4e0d \u5305\u542b \u7236\u7ea7 \u3002","title":"\u76ee\u6807 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_15","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > visualization _ msgs / Marker \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316","title":"\u6807\u8bb0 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_16","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / status carla _ msgs / CarlaTrafficLightStatusList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u53ca\u5176 \u72b6\u6001 \u7684 \u5217\u8868 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / info carla _ msgs / CarlaTrafficLightInfoList \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u9759\u6001 \u4fe1\u606f \uff08 \u4f8b\u5982 \u4f4d\u7f6e \uff09 \u3002","title":"\u4ea4\u901a\u706f \u4f20\u611f\u5668"},{"location":"ros_sensors/#_17","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > carla _ msgs / CarlaActorList \u6240\u6709 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5217\u8868 \u3002","title":"\u53c2\u4e0e\u8005 \u5217\u8868 \u4f20\u611f\u5668"},{"location":"ros_sensors/#_18","text":"\u8be5 \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5141\u8bb8 \u901a\u8fc7 \u5728 Pose \u548c Twist \u6570\u636e \u7c7b\u578b \u6570\u636e\u7c7b\u578b \u4e2d \u53d1\u5e03 \u59ff\u52bf \u548c \u901f\u5ea6 \u6765 \u63a7\u5236 \u5176\u6240 \u8fde\u63a5 \u7684 actor \uff08 \u4f8b\u5982 ego _ vehicle \uff09 \u7684 \u4f4d\u7f6e \u548c \u901f\u5ea6 \u3002 \u6ce8\u610f \uff1a \u6b64 \u63a7\u5236 \u65b9\u6cd5 \u4e0d \u8003\u8651 \u8f66\u8f86 \u9650\u5236 \u3002 \u5b83 \u5141\u8bb8 \u73b0\u5b9e \u4e16\u754c \u4e2d \u4e0d \u53ef\u80fd \u7684 \u8fd0\u52a8 \uff0c \u4f8b\u5982 \u98de\u884c \u6216 \u65cb\u8f6c \u3002 \u76ee\u524d \uff0c \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u7528 \u5b8c\u6574 \u7684 \u7ebf\u6027 \u77e2\u91cf \uff0c \u4f46\u4ec5 \u5e94\u7528 \u89d2\u5ea6 \u77e2\u91cf \u7684 \u504f\u822a \u3002 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ transform geometry _ msgs / Pose \u8f6c\u6362 \u4ee5 \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7236\u7ea7 \u3002 / carla / [ < PARENT ROLE NAME > ] / < SENSOR ROLE NAME > / set _ target _ velocity geometry _ msgs / Twist \u5e94\u7528 \u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7236\u7ea7 \u7684 \u901f\u5ea6 \uff08 \u89d2\u5ea6 \u548c \u7ebf\u6027 \uff09 \u3002","title":"\u53c2\u4e0e\u8005 \u63a7\u5236 \u4f20\u611f\u5668"},{"location":"rqt_plugin/","text":"RQT Carla \u63d2\u4ef6 RQT \u63d2\u4ef6 \u662f \u4e00\u4e2a \u7b80\u5355 \u7684 \u754c\u9762 \uff0c \u7528\u4e8e \u6682\u505c \u3001 \u64ad\u653e \u548c \u63a7\u5236 \u4eff\u771f \u7684 \u6b65\u9aa4 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 ROS \u6865\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control \u60a8 \u5c06 \u80fd\u591f \u901a\u8fc7 GUI \u63a7\u5236 \u6b65\u9aa4 \uff1a","title":"RQT Carla \u63d2\u4ef6"},{"location":"rqt_plugin/#rqt-carla","text":"RQT \u63d2\u4ef6 \u662f \u4e00\u4e2a \u7b80\u5355 \u7684 \u754c\u9762 \uff0c \u7528\u4e8e \u6682\u505c \u3001 \u64ad\u653e \u548c \u63a7\u5236 \u4eff\u771f \u7684 \u6b65\u9aa4 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 ROS \u6865\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u7684 \u60c5\u51b5 \u4e0b \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control \u60a8 \u5c06 \u80fd\u591f \u901a\u8fc7 GUI \u63a7\u5236 \u6b65\u9aa4 \uff1a","title":"RQT Carla \u63d2\u4ef6"},{"location":"run_ros/","text":"ROS \u6865\u5305 carla _ ros _ bridge \u5305\u662f \u8fd0\u884c \u57fa\u672c ROS \u6865\u63a5 \u529f\u80fd \u6240 \u9700 \u7684 \u4e3b\u5305 \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \u5982\u4f55 \u51c6\u5907 ROS \u73af\u5883 \u3001 \u8fd0\u884c ROS \u6865 \u3001 \u5982\u4f55 \u914d\u7f6e \u8bbe\u7f6e \u3001 \u540c\u6b65 \u6a21\u5f0f \u7684 \u4f7f\u7528 \u3001 \u63a7\u5236 \u81ea\u4e3b \u8f66\u8f86 \u4ee5\u53ca \u53ef\u7528 \u7684 \u8ba2\u9605 \u3001 \u51fa\u7248 \u51fa\u7248\u7269 \u548c \u670d\u52a1 \u7684 \u6458\u8981 \u3002 \u8bbe\u7f6e ROS \u73af\u5883 \u51c6\u5907 ROS 1 \u73af\u5883 \u51c6\u5907 ROS 2 \u73af\u5883 \u8fd0\u884c ROS \u6865 \u914d\u7f6e Carla \u8bbe\u7f6e \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS \u6865 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1 \u8bbe\u7f6e ROS \u73af\u5883 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4f7f\u7528 \u5177\u6709 \u901a\u7528 \u63a5\u53e3 \u7684 \u5355\u72ec \u5b9e\u73b0 \u6765 \u652f\u6301 ROS 1 \u548c ROS 2 \u3002 \u5f53 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u60a8 \u5fc5\u987b \u6839\u636e \u60a8 \u4f7f\u7528 \u7684 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a \u51c6\u5907 ROS 1 \u73af\u5883 \uff1a \u8981 \u8fd0\u884c \u7684 \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u901a\u8fc7 Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u8fd8\u662f \u901a\u8fc7 \u6e90 \u6784\u5efa \u5b89\u88c5 ROS \u6865 \u3002 \u60a8 \u8fd8 \u9700\u8981 \u66f4\u6539 Debian \u9009\u9879 \u8def\u5f84 \u4e2d \u7684 ROS \u7248\u672c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash \u51c6\u5907 ROS 2 \u73af\u5883 \uff1a source . / install / setup . bash \u8fd0\u884c ROS \u6865 \u8bbe\u7f6e ROS \u73af\u5883 \u5e76 \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u60a8 \u9700\u8981 \u5148 \u542f\u52a8 carla _ ros _ bridge \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u7136\u540e \u624d\u80fd \u4f7f\u7528 \u4efb\u4f55 \u5176\u4ed6 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py \u8fd8\u6709 \u5176\u4ed6 \u542f\u52a8 \u6587\u4ef6 \u7ed3\u5408 \u4e86 \u4e0a\u8ff0 \u529f\u80fd \uff0c \u5728 \u542f\u52a8 \u5176\u4ed6 \u5305 \u6216 \u63d2\u4ef6 \u7684 \u540c\u65f6 \u542f\u52a8 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch ( ROS 1 ) \u548c carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py ( ROS 2 ) \u6cbf\u7740 carla _ spawn _ objects \u548c carla _ manual _ control \u5305 \u4e00\u8d77 \u542f\u52a8 ROS \u6865 \u3002 \u914d\u7f6e Carla \u8bbe\u7f6e \u914d\u7f6e \u5e94\u8be5 \u5728 \u542f\u52a8 \u6587\u4ef6 \u4e2d \u8bbe\u7f6e \uff0c \u6216\u8005 \u5728 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u6587\u4ef6 \u65f6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \uff0c \u4f8b\u5982 \uff1a roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch passive : = True \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \uff1a use _ sim _ time : \u5e94 \u8bbe\u7f6e \u4e3a True \u4ee5 \u786e\u4fdd ROS \u4f7f\u7528 \u4eff\u771f \u65f6\u95f4 \u800c \u4e0d\u662f \u7cfb\u7edf \u65f6\u95f4 \u3002 \u8be5 \u53c2\u6570 \u5c06 \u4f7f ROS / clock \u4e3b\u9898 \u4e0e Carla \u4eff\u771f \u65f6\u95f4 \u540c\u6b65 \u3002 host and port : \u4f7f\u7528 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 Carla \u7684 \u7f51\u7edc \u8bbe\u7f6e \u3002 timeout : \u7b49\u5f85 \u6210\u529f \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u3002 passive : \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u542f\u7528 \u540e \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u9000\u5c45 \u6b21\u8981 \u5730\u4f4d \uff0c \u800c \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u4e0e \u4e16\u754c \u4ea4\u9053 \u6253\u4ea4\u9053 \u3002 ROS \u6865 \u5c06 \u7b49\u5f85 \u63a5\u6536 \u6765\u81ea \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6240\u6709 \u9884\u671f \u6570\u636e \u3002 synchronous _ mode : \u5982\u679c \u662f false : \u6570\u636e \u5728 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 world . on _ tick ( ) \u548c \u6bcf\u4e2a sensor . listen ( ) \u56de\u8c03 \u65f6 \u8fdb\u884c \u53d1\u5e03 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : ROS \u6865 \u5728 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u4e4b\u524d \u7b49\u5f85 \u6240\u6709 \u9884\u671f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6d88\u606f \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u51cf\u6162 \u6574\u4e2a \u4eff\u771f \u7684 \u901f\u5ea6 \uff0c \u4f46 \u53ef\u4ee5 \u786e\u4fdd \u7ed3\u679c \u7684 \u91cd\u590d \u590d\u6027 \u91cd\u590d\u6027 \u53ef\u91cd\u590d\u6027 \u3002 synchronous _ mode _ wait _ for _ vehicle _ control _ command : \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6682\u505c \u8ba1\u65f6 \u76f4\u5230 \u8f66\u8f86 \u63a7\u5236 \u5b8c\u6210 \u3002 fixed _ delta _ seconds : \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u589e\u91cf \u79d2 \uff09 \u3002 \u5b83 \u5fc5\u987b \u4f4e\u4e8e 0.1 \u3002 \u67e5\u770b \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 ego _ vehicle : \u7528\u4e8e \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 \u89d2\u8272 \u540d\u79f0 \u3002 \u5c06 \u521b\u5efa \u76f8\u5173 \u4e3b\u9898 \uff0c \u4ee5\u4fbf \u80fd\u591f \u901a\u8fc7 ROS \u63a7\u5236 \u8fd9\u4e9b \u8f66\u8f86 \u3002 town : \u4f7f\u7528 \u53ef\u7528 \u7684 Carla \u57ce\u9547 \uff08 \u4f8b\u5982 \u201c town01 \u201d \uff09 \u6216 OpenDRIVE \u6587\u4ef6 \uff08 \u4ee5 . xodr \u7ed3\u5c3e \uff09 \u3002 register _ all _ sensors : \u5982\u679c \u662f false : \u4ec5 \u6ce8\u518c \u6865 \u751f\u6210 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : \u4eff\u771f \u4e2d \u5b58\u5728 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5747 \u5df2 \u6ce8\u518c \u3002 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS ROS \u6865 \u9ed8\u8ba4 \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u5b83 \u5c06 \u7b49\u5f85 \u5f53\u524d \u5e27 \u5185 \u9884\u671f \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u4ee5 \u786e\u4fdd \u53ef \u91cd\u73b0 \u7684 \u7ed3\u679c \u3002 \u5f53\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6 \uff0c \u53ea \u5141\u8bb8 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u9664\u975e \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff0c \u5426\u5219 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u662f \u552f\u4e00 \u5141\u8bb8 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 ros - bridge / carla _ ros _ bridge / config / settings . yaml \u4e2d \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u5c06 \u4f7f ROS \u6865 \u540e\u9000 \u4e00\u6b65 \uff0c \u5e76 \u5141\u8bb8 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u6765 \u64cd\u4f5c \u4e16\u754c \u3002 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5fc5\u987b \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5426\u5219 Carla \u5c06 \u51bb\u7ed3 \u3002 \u5982\u679c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4e0d \u5904\u4e8e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff08 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u662f \u552f\u4e00 \u7684 \uff09 \uff0c \u5219 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u5c06 \u6b65\u8fdb \u63a7\u5236 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u7528 \u6d88\u606f \u5411 \u4e3b\u9898 / carla / control \u53d1\u9001 carla _ msgs . CarlaControl \u3002 \u4f7f\u7528 \u63a7\u5236 rqt \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u542f\u52a8 \u4e00\u4e2a \u5177\u6709 \u7b80\u5355 \u754c\u9762 \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 \u7136\u540e \u5b83 \u7528\u4e8e \u7ba1\u7406 \u6b65\u9aa4 \u5e76 \u5728 / carla / control \u4e3b\u9898 \u4e2d \u53d1\u5e03 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 Carla \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 \u6709 \u4e24\u79cd \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u7684 \u6a21\u5f0f \uff1a \u6b63\u5e38 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd \u8bfb\u53d6 \u547d\u4ee4 \u624b\u52a8 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd _ manual \u8bfb\u53d6 \u547d\u4ee4 \u3002 \u8fd9 \u5141\u8bb8 \u624b\u52a8 \u8986\u76d6 \u8f6f\u4ef6 \u5806\u6808 \u53d1\u5e03 \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / < ROLE NAME > / vehicle _ control _ manual _ override \u6765 \u5728 \u4e24\u79cd \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u3002 \u6709\u5173 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u624b\u52a8 \u63a7\u5236 \u3002 \u8981 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u6d4b\u8bd5 \u8f6c\u5411 \uff1a 1 . \u4f7f\u7528 ego \u8f66\u8f86 \u542f\u52a8 ROS \u6865 \uff1a # 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 2 . \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \uff0c \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ control _ cmd # \u6700\u5927 \u5411\u524d \u6cb9\u95e8 \uff0c \u6700\u5927 \u53f3\u8f6c \u5411\u53f3\u8f6c \u5411 # for ros1 rostopic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 # for ros2 ros2 topic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 \u5f53\u524d \u8f66\u8f86 \u7684 \u72b6\u6001 \u53ef\u4ee5 \u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ status \u83b7\u5f97 \u3002 \u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \u53ef\u4ee5 \u901a\u8fc7 / carla / < ROLE NAME > / vehicle _ info \u63a5\u6536 . \u53ef\u4ee5 \u4f7f\u7528 AckermannDrive \u6d88\u606f \u6765 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u5305\u6765 \u5b9e\u73b0 \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u4e3b\u9898 \u7c7b\u522b \u63cf\u8ff0 / carla / debug _ marker \u53ef\u89c6 \u53ef\u89c6\u5316 _ msgs / MarkerArray \u5728 Carla \u4e16\u754c \u4e2d \u7ed8\u5236 \u6807\u8bb0 \u3002 / carla / weather _ control carla _ msgs / CarlaWeatherParameters \u8bbe\u7f6e Carla \u5929\u6c14 \u53c2\u6570 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 \u7b14\u8bb0 \u4f7f\u7528 debug _ marker \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u6807\u8bb0 \u53ef\u80fd \u4f1a \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u5e03 \u7684 \u6570\u636e \u3002 \u652f\u6301 \u7684 \u6807\u8bb0 \u5305\u62ec \uff1a \u7bad\u5934 \uff08 \u7531 \u4e24\u4e2a \u70b9 \u6307\u5b9a \uff09 \u3001 \u70b9 \u3001 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u548c \u7ebf\u6761 \u3002 \u53d1\u5e03 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / world _ info carla _ msgs / CarlaWorldInfo \u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 / rosout rosgraph _ msgs / Log ROS \u65e5\u5fd7 \u8bb0\u5f55 \u3002 \u670d\u52a1 \u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / destroy _ object carla _ msgs / DestroyObject . srv \u6467\u6bc1 \u4e00\u4e2a \u7269\u4f53 / carla / get _ blueprints carla _ msgs / GetBlueprints . srv \u83b7\u53d6 \u84dd\u56fe / carla / spawn _ object carla _ msgs / SpawnObject . srv \u751f\u6210 \u4e00\u4e2a \u5bf9\u8c61","title":"ROS \u6865\u5305"},{"location":"run_ros/#ros","text":"carla _ ros _ bridge \u5305\u662f \u8fd0\u884c \u57fa\u672c ROS \u6865\u63a5 \u529f\u80fd \u6240 \u9700 \u7684 \u4e3b\u5305 \u3002 \u5728 \u672c\u8282 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \u5982\u4f55 \u51c6\u5907 ROS \u73af\u5883 \u3001 \u8fd0\u884c ROS \u6865 \u3001 \u5982\u4f55 \u914d\u7f6e \u8bbe\u7f6e \u3001 \u540c\u6b65 \u6a21\u5f0f \u7684 \u4f7f\u7528 \u3001 \u63a7\u5236 \u81ea\u4e3b \u8f66\u8f86 \u4ee5\u53ca \u53ef\u7528 \u7684 \u8ba2\u9605 \u3001 \u51fa\u7248 \u51fa\u7248\u7269 \u548c \u670d\u52a1 \u7684 \u6458\u8981 \u3002 \u8bbe\u7f6e ROS \u73af\u5883 \u51c6\u5907 ROS 1 \u73af\u5883 \u51c6\u5907 ROS 2 \u73af\u5883 \u8fd0\u884c ROS \u6865 \u914d\u7f6e Carla \u8bbe\u7f6e \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS \u6865 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1","title":"ROS \u6865\u5305"},{"location":"run_ros/#ros_1","text":"ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4f7f\u7528 \u5177\u6709 \u901a\u7528 \u63a5\u53e3 \u7684 \u5355\u72ec \u5b9e\u73b0 \u6765 \u652f\u6301 ROS 1 \u548c ROS 2 \u3002 \u5f53 \u60a8 \u60f3\u8981 \u8fd0\u884c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u65f6 \uff0c \u60a8 \u5fc5\u987b \u6839\u636e \u60a8 \u4f7f\u7528 \u7684 \u6bcf\u4e2a \u7ec8\u7aef \u4e2d \u7684 ROS \u7248\u672c \u8bbe\u7f6e ROS \u73af\u5883 \uff1a","title":"\u8bbe\u7f6e ROS \u73af\u5883"},{"location":"run_ros/#ros-1","text":"\u8981 \u8fd0\u884c \u7684 \u547d\u4ee4 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u901a\u8fc7 Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u8fd8\u662f \u901a\u8fc7 \u6e90 \u6784\u5efa \u5b89\u88c5 ROS \u6865 \u3002 \u60a8 \u8fd8 \u9700\u8981 \u66f4\u6539 Debian \u9009\u9879 \u8def\u5f84 \u4e2d \u7684 ROS \u7248\u672c \uff1a # \u7528\u4e8e debian \u5b89\u88c5 ROS \u6865 \u3002 \u6839\u636e \u5df2 \u5b89\u88c5 \u7684 ROS \u7248\u672c \u66f4\u6539 \u547d\u4ee4 \u3002 source / opt / carla - ros - bridge / < melodic / noetic > / setup . bash # \u4e3a GitHub \u5e93 \u5b89\u88c5 ROS \u6865 source ~ / carla - ros - bridge / catkin _ ws / devel / setup . bash","title":"\u51c6\u5907 ROS 1 \u73af\u5883 \uff1a"},{"location":"run_ros/#ros-2","text":"source . / install / setup . bash","title":"\u51c6\u5907 ROS 2 \u73af\u5883 \uff1a"},{"location":"run_ros/#ros_2","text":"\u8bbe\u7f6e ROS \u73af\u5883 \u5e76 \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u60a8 \u9700\u8981 \u5148 \u542f\u52a8 carla _ ros _ bridge \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff0c \u7136\u540e \u624d\u80fd \u4f7f\u7528 \u4efb\u4f55 \u5176\u4ed6 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 \u4e3a\u6b64 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py \u8fd8\u6709 \u5176\u4ed6 \u542f\u52a8 \u6587\u4ef6 \u7ed3\u5408 \u4e86 \u4e0a\u8ff0 \u529f\u80fd \uff0c \u5728 \u542f\u52a8 \u5176\u4ed6 \u5305 \u6216 \u63d2\u4ef6 \u7684 \u540c\u65f6 \u542f\u52a8 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \uff1a carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch ( ROS 1 ) \u548c carla _ ros _ bridge _ with _ example _ ego _ vehicle . launch . py ( ROS 2 ) \u6cbf\u7740 carla _ spawn _ objects \u548c carla _ manual _ control \u5305 \u4e00\u8d77 \u542f\u52a8 ROS \u6865 \u3002","title":"\u8fd0\u884c ROS \u6865"},{"location":"run_ros/#carla","text":"\u914d\u7f6e \u5e94\u8be5 \u5728 \u542f\u52a8 \u6587\u4ef6 \u4e2d \u8bbe\u7f6e \uff0c \u6216\u8005 \u5728 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u6587\u4ef6 \u65f6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \uff0c \u4f8b\u5982 \uff1a roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch passive : = True \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u8bbe\u7f6e \uff1a use _ sim _ time : \u5e94 \u8bbe\u7f6e \u4e3a True \u4ee5 \u786e\u4fdd ROS \u4f7f\u7528 \u4eff\u771f \u65f6\u95f4 \u800c \u4e0d\u662f \u7cfb\u7edf \u65f6\u95f4 \u3002 \u8be5 \u53c2\u6570 \u5c06 \u4f7f ROS / clock \u4e3b\u9898 \u4e0e Carla \u4eff\u771f \u65f6\u95f4 \u540c\u6b65 \u3002 host and port : \u4f7f\u7528 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 Carla \u7684 \u7f51\u7edc \u8bbe\u7f6e \u3002 timeout : \u7b49\u5f85 \u6210\u529f \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65f6\u95f4 \u3002 passive : \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u7528\u4e8e \u540c\u6b65 \u6a21\u5f0f \u3002 \u542f\u7528 \u540e \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u9000\u5c45 \u6b21\u8981 \u5730\u4f4d \uff0c \u800c \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5fc5\u987b \u4e0e \u4e16\u754c \u4ea4\u9053 \u6253\u4ea4\u9053 \u3002 ROS \u6865 \u5c06 \u7b49\u5f85 \u63a5\u6536 \u6765\u81ea \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6240\u6709 \u9884\u671f \u6570\u636e \u3002 synchronous _ mode : \u5982\u679c \u662f false : \u6570\u636e \u5728 \u6bcf\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 world . on _ tick ( ) \u548c \u6bcf\u4e2a sensor . listen ( ) \u56de\u8c03 \u65f6 \u8fdb\u884c \u53d1\u5e03 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : ROS \u6865 \u5728 \u4e0b \u4e00\u4e2a \u6ef4\u7b54 \u4fe1\u53f7 \u4e4b\u524d \u7b49\u5f85 \u6240\u6709 \u9884\u671f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6d88\u606f \u3002 \u8fd9 \u53ef\u80fd \u4f1a \u51cf\u6162 \u6574\u4e2a \u4eff\u771f \u7684 \u901f\u5ea6 \uff0c \u4f46 \u53ef\u4ee5 \u786e\u4fdd \u7ed3\u679c \u7684 \u91cd\u590d \u590d\u6027 \u91cd\u590d\u6027 \u53ef\u91cd\u590d\u6027 \u3002 synchronous _ mode _ wait _ for _ vehicle _ control _ command : \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6682\u505c \u8ba1\u65f6 \u76f4\u5230 \u8f66\u8f86 \u63a7\u5236 \u5b8c\u6210 \u3002 fixed _ delta _ seconds : \u4eff\u771f \u6b65\u9aa4 \u4e4b\u95f4 \u7684 \u4eff\u771f \u65f6\u95f4 \uff08 \u589e\u91cf \u79d2 \uff09 \u3002 \u5b83 \u5fc5\u987b \u4f4e\u4e8e 0.1 \u3002 \u67e5\u770b \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 ego _ vehicle : \u7528\u4e8e \u8bc6\u522b \u81ea\u6211 \u8f66\u8f86 \u7684 \u89d2\u8272 \u540d\u79f0 \u3002 \u5c06 \u521b\u5efa \u76f8\u5173 \u4e3b\u9898 \uff0c \u4ee5\u4fbf \u80fd\u591f \u901a\u8fc7 ROS \u63a7\u5236 \u8fd9\u4e9b \u8f66\u8f86 \u3002 town : \u4f7f\u7528 \u53ef\u7528 \u7684 Carla \u57ce\u9547 \uff08 \u4f8b\u5982 \u201c town01 \u201d \uff09 \u6216 OpenDRIVE \u6587\u4ef6 \uff08 \u4ee5 . xodr \u7ed3\u5c3e \uff09 \u3002 register _ all _ sensors : \u5982\u679c \u662f false : \u4ec5 \u6ce8\u518c \u6865 \u751f\u6210 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5982\u679c \u662f true \uff08 \u9ed8\u8ba4 \uff09 : \u4eff\u771f \u4e2d \u5b58\u5728 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5747 \u5df2 \u6ce8\u518c \u3002","title":"\u914d\u7f6e Carla \u8bbe\u7f6e"},{"location":"run_ros/#ros_3","text":"ROS \u6865 \u9ed8\u8ba4 \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u3002 \u5b83 \u5c06 \u7b49\u5f85 \u5f53\u524d \u5e27 \u5185 \u9884\u671f \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u4ee5 \u786e\u4fdd \u53ef \u91cd\u73b0 \u7684 \u7ed3\u679c \u3002 \u5f53\u4ee5 \u540c\u6b65 \u6a21\u5f0f \u8fd0\u884c \u591a\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u65f6 \uff0c \u53ea \u5141\u8bb8 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \u3002 \u9664\u975e \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff0c \u5426\u5219 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u5c06 \u662f \u552f\u4e00 \u5141\u8bb8 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u5728 ros - bridge / carla _ ros _ bridge / config / settings . yaml \u4e2d \u542f\u7528 \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \u5c06 \u4f7f ROS \u6865 \u540e\u9000 \u4e00\u6b65 \uff0c \u5e76 \u5141\u8bb8 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u6765 \u64cd\u4f5c \u4e16\u754c \u3002 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5fc5\u987b \u5411 \u4e16\u754c \u53d1 \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u5426\u5219 Carla \u5c06 \u51bb\u7ed3 \u3002 \u5982\u679c ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u4e0d \u5904\u4e8e \u88ab\u52a8 \u6a21\u5f0f \u88ab\u52a8\u6a21\u5f0f \uff08 ROS \u6865\u63a5 \u63a5\u5668 \u6865\u63a5\u5668 \u662f \u552f\u4e00 \u7684 \uff09 \uff0c \u5219 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u5c06 \u6b65\u8fdb \u63a7\u5236 \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a \u7528 \u6d88\u606f \u5411 \u4e3b\u9898 / carla / control \u53d1\u9001 carla _ msgs . CarlaControl \u3002 \u4f7f\u7528 \u63a7\u5236 rqt \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u542f\u52a8 \u4e00\u4e2a \u5177\u6709 \u7b80\u5355 \u754c\u9762 \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 \u7136\u540e \u5b83 \u7528\u4e8e \u7ba1\u7406 \u6b65\u9aa4 \u5e76 \u5728 / carla / control \u4e3b\u9898 \u4e2d \u53d1\u5e03 \u3002 \u8981 \u4f7f\u7528 \u5b83 \uff0c \u8bf7 \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 Carla \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a rqt -- standalone rqt _ carla _ control","title":"\u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \u4f7f\u7528 ROS"},{"location":"run_ros/#_1","text":"\u6709 \u4e24\u79cd \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u7684 \u6a21\u5f0f \uff1a \u6b63\u5e38 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd \u8bfb\u53d6 \u547d\u4ee4 \u624b\u52a8 \u6a21\u5f0f - \u4ece / carla / < ROLE NAME > / vehicle _ control _ cmd _ manual \u8bfb\u53d6 \u547d\u4ee4 \u3002 \u8fd9 \u5141\u8bb8 \u624b\u52a8 \u8986\u76d6 \u8f6f\u4ef6 \u5806\u6808 \u53d1\u5e03 \u7684 \u8f66\u8f86 \u63a7\u5236 \u547d\u4ee4 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u53d1\u5e03 \u5230 / carla / < ROLE NAME > / vehicle _ control _ manual _ override \u6765 \u5728 \u4e24\u79cd \u6a21\u5f0f \u4e4b\u95f4 \u5207\u6362 \u3002 \u6709\u5173 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Carla \u624b\u52a8 \u63a7\u5236 \u3002 \u8981 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u6d4b\u8bd5 \u8f6c\u5411 \uff1a 1 . \u4f7f\u7528 ego \u8f66\u8f86 \u542f\u52a8 ROS \u6865 \uff1a # 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 2 . \u5728 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u4e2d \uff0c \u53d1\u5e03 \u5230 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ control _ cmd # \u6700\u5927 \u5411\u524d \u6cb9\u95e8 \uff0c \u6700\u5927 \u53f3\u8f6c \u5411\u53f3\u8f6c \u5411 # for ros1 rostopic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 # for ros2 ros2 topic pub / carla / ego _ vehicle / vehicle _ control _ cmd carla _ msgs / CarlaEgoVehicleControl \" { throttle : 1.0 , steer : 1.0 } \" - r 10 \u5f53\u524d \u8f66\u8f86 \u7684 \u72b6\u6001 \u53ef\u4ee5 \u901a\u8fc7 \u4e3b\u9898 / carla / < ROLE NAME > / vehicle _ status \u83b7\u5f97 \u3002 \u6709\u5173 \u8f66\u8f86 \u7684 \u9759\u6001 \u4fe1\u606f \u53ef\u4ee5 \u901a\u8fc7 / carla / < ROLE NAME > / vehicle _ info \u63a5\u6536 . \u53ef\u4ee5 \u4f7f\u7528 AckermannDrive \u6d88\u606f \u6765 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 Carla \u963f\u514b \u963f\u514b\u66fc \u63a7\u5236 \u5305\u6765 \u5b9e\u73b0 \u3002","title":"\u81ea\u6211 \u8f66\u8f86 \u63a7\u5236"},{"location":"run_ros/#ros_4","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"run_ros/#_2","text":"\u4e3b\u9898 \u7c7b\u522b \u63cf\u8ff0 / carla / debug _ marker \u53ef\u89c6 \u53ef\u89c6\u5316 _ msgs / MarkerArray \u5728 Carla \u4e16\u754c \u4e2d \u7ed8\u5236 \u6807\u8bb0 \u3002 / carla / weather _ control carla _ msgs / CarlaWeatherParameters \u8bbe\u7f6e Carla \u5929\u6c14 \u53c2\u6570 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 \u7b14\u8bb0 \u4f7f\u7528 debug _ marker \u65f6 \uff0c \u8bf7 \u6ce8\u610f \u6807\u8bb0 \u53ef\u80fd \u4f1a \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u5e03 \u7684 \u6570\u636e \u3002 \u652f\u6301 \u7684 \u6807\u8bb0 \u5305\u62ec \uff1a \u7bad\u5934 \uff08 \u7531 \u4e24\u4e2a \u70b9 \u6307\u5b9a \uff09 \u3001 \u70b9 \u3001 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u548c \u7ebf\u6761 \u3002","title":"\u8ba2\u9605"},{"location":"run_ros/#_3","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / world _ info carla _ msgs / CarlaWorldInfo \u6709\u5173 \u5f53\u524d Carla \u5730\u56fe \u7684 \u4fe1\u606f \u3002 / clock rosgraph _ msgs / Clock \u5728 ROS \u4e2d \u53d1\u5e03 \u4eff\u771f \u65f6\u95f4 \u3002 / rosout rosgraph _ msgs / Log ROS \u65e5\u5fd7 \u8bb0\u5f55 \u3002","title":"\u53d1\u5e03"},{"location":"run_ros/#_4","text":"\u4e3b\u9898 \u7c7b\u578b \u63cf\u8ff0 / carla / destroy _ object carla _ msgs / DestroyObject . srv \u6467\u6bc1 \u4e00\u4e2a \u7269\u4f53 / carla / get _ blueprints carla _ msgs / GetBlueprints . srv \u83b7\u53d6 \u84dd\u56fe / carla / spawn _ object carla _ msgs / SpawnObject . srv \u751f\u6210 \u4e00\u4e2a \u5bf9\u8c61","title":"\u670d\u52a1"},{"location":"rviz_plugin/","text":"RVIZ Carla \u63d2\u4ef6 RVIZ \u63d2\u4ef6 \u63d0\u4f9b \u4e86 \u57fa\u4e8e RVIZ ROS \u5305 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 \u3002 \u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865 RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1 \u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865 RVIZ \u63d2\u4ef6 \u9700\u8981 \u4e00\u4e2a \u540d\u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8981 \u67e5\u770b ROS \u6865 \u4e0e RVIZ \u914d\u5408 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u8bf7 \u5728 \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a 1 . \u5728 \u542f\u7528 RVIZ \u7684 \u60c5\u51b5 \u4e0b \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u542f\u52a8 RVIZ \uff1a # ROS 1 rosrun rviz rviz # ROS 2 ros2 run rviz2 rviz2 2 . \u4f7f\u7528 carla _ spawn _ objects \u5305 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u4f7f\u7528 carla _ manual _ control \u5305 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6309\u4e0b B \u53ef \u542f\u7528 \u624b\u52a8 \u8f6c\u5411 \uff09 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd \u81ea\u6211 \u8f66\u8f86 \u72b6\u6001 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f66\u8f86 \u4f4d\u7f6e \u548c \u63a7\u5236 \u3002 \u5411 \u5176\u4ed6 \u8282\u70b9 \u63d0\u4f9b RVIZ \u89c6\u56fe \u59ff\u52bf - \u8fde\u63a5 actor . pseudo . control \u5230 \u76f8\u673a \u540e \uff0c \u901a\u8fc7 \u53d1\u5e03 \u59ff\u52bf \u6d88\u606f \u5728 Carla \u4e16\u754c \u4e2d \u79fb\u52a8 \u76f8\u673a \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 RGB \u3001 LIDAR \u3001 \u6df1\u5ea6 \u3001 DVS \u548c \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4fe1\u606f \u3002 \u6267\u884c \u573a\u666f - \u4f7f\u7528 carla _ ros _ scenario _ runner \u5305 \u89e6\u53d1 \u573a\u666f \u3002 \u64ad\u653e / \u6682\u505c \u4eff\u771f - \u5982\u679c \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \uff0c \u60a8 \u53ef\u4ee5 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u3002 \u624b\u52a8 \u8986\u76d6 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 - \u4f7f\u7528 RVIZ Visualization Tutorials \u53ef\u89c6 \u53ef\u89c6\u5316 \u6559\u7a0b \u4e2d \u7684 \u9a71\u52a8 \u5c0f \u90e8\u4ef6 \u548c \u4ece \u626d\u66f2 \u8f6c\u6362 \u4e3a \u8f66\u8f86 \u63a7\u5236 \u7684 \u8282\u70b9 \uff0c \u901a\u8fc7 \u9f20\u6807 \u9a7e\u9a76 \u8f66\u8f86 \u3002 ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 Topic Type Description / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / vehicle _ status carla _ msgs / CarlaEgoVehicleStatus \u663e\u793a \u672c\u8f66 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / odometry nav _ msgs / Odometry \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5f53\u524d \u59ff\u6001 / scenario _ runner / status carla _ ros _ scenario _ runner _ types / CarlaScenarioRunnerStatus \u53ef\u89c6 \u53ef\u89c6\u5316 \u573a\u666f \u8fd0\u884c \u72b6\u6001 / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList \u63d0\u4f9b \u8981 \u6267\u884c \u7684 \u573a\u666f \u5217\u8868 \uff08 \u5728 \u7ec4\u5408 \u6846\u4e2d \u7981\u7528 \uff09 \u53d1\u5e03 Topic Type Description / carla / control carla _ msgs / CarlaControl \u64ad\u653e / \u6682\u505c / \u6b65\u8fdb Carla / carla / ego _ vehicle / spectator _ pose geometry _ msgs / PoseStamped \u53d1\u5e03 RVIZ \u76f8\u673a \u89c6\u56fe \u7684 \u5f53\u524d \u59ff\u6001 / carla / ego _ vehicle / vehicle _ control _ manual _ override std _ msgs / Bool \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u63a7\u5236 \u8986\u76d6 / carla / ego _ vehicle / twist geometry _ msgs / Twist \u901a\u8fc7 \u9f20\u6807 \u521b\u5efa \u7684 \u626d\u66f2 \u547d\u4ee4 \u670d\u52a1 Topic Type Description / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / ExecuteScenario \u6267\u884c \u9009\u5b9a \u7684 \u573a\u666f","title":"RVIZ Carla \u63d2\u4ef6"},{"location":"rviz_plugin/#rviz-carla","text":"RVIZ \u63d2\u4ef6 \u63d0\u4f9b \u4e86 \u57fa\u4e8e RVIZ ROS \u5305 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 \u3002 \u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865 RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd ROS \u5e94\u7528 \u7a0b\u5e8f \u63a5\u53e3 \u7a0b\u5e8f\u63a5\u53e3 \u8ba2\u9605 \u53d1\u5e03 \u670d\u52a1","title":"RVIZ Carla \u63d2\u4ef6"},{"location":"rviz_plugin/#rviz-ros","text":"RVIZ \u63d2\u4ef6 \u9700\u8981 \u4e00\u4e2a \u540d\u4e3a ego _ vehicle \u7684 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8981 \u67e5\u770b ROS \u6865 \u4e0e RVIZ \u914d\u5408 \u4f7f\u7528 \u7684 \u793a\u4f8b \uff0c \u8bf7 \u5728 \u8fd0\u884c \u7684 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a 1 . \u5728 \u542f\u7528 RVIZ \u7684 \u60c5\u51b5 \u4e0b \u542f\u52a8 ROS \u6865 \uff1a # ROS 1 roslaunch carla _ ros _ bridge carla _ ros _ bridge . launch # ROS 2 ros2 launch carla _ ros _ bridge carla _ ros _ bridge . launch . py 2 . \u542f\u52a8 RVIZ \uff1a # ROS 1 rosrun rviz rviz # ROS 2 ros2 run rviz2 rviz2 2 . \u4f7f\u7528 carla _ spawn _ objects \u5305 \u751f\u6210 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \uff1a # ROS 1 roslaunch carla _ spawn _ objects carla _ spawn _ objects . launch # ROS 2 ros2 launch carla _ spawn _ objects carla _ spawn _ objects . launch . py 3 . \u4f7f\u7528 carla _ manual _ control \u5305 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \uff08 \u6309\u4e0b B \u53ef \u542f\u7528 \u624b\u52a8 \u8f6c\u5411 \uff09 \uff1a # ROS 1 roslaunch carla _ manual _ control carla _ manual _ control . launch # ROS 2 ros2 launch carla _ manual _ control carla _ manual _ control . launch . py","title":"\u4f7f\u7528 RVIZ \u8fd0\u884c ROS \u6865"},{"location":"rviz_plugin/#rviz","text":"\u81ea\u6211 \u8f66\u8f86 \u72b6\u6001 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 \u8f66\u8f86 \u4f4d\u7f6e \u548c \u63a7\u5236 \u3002 \u5411 \u5176\u4ed6 \u8282\u70b9 \u63d0\u4f9b RVIZ \u89c6\u56fe \u59ff\u52bf - \u8fde\u63a5 actor . pseudo . control \u5230 \u76f8\u673a \u540e \uff0c \u901a\u8fc7 \u53d1\u5e03 \u59ff\u52bf \u6d88\u606f \u5728 Carla \u4e16\u754c \u4e2d \u79fb\u52a8 \u76f8\u673a \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u89c6 \u53ef\u89c6\u5316 - \u53ef\u89c6 \u53ef\u89c6\u5316 RGB \u3001 LIDAR \u3001 \u6df1\u5ea6 \u3001 DVS \u548c \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u4fe1\u606f \u3002 \u6267\u884c \u573a\u666f - \u4f7f\u7528 carla _ ros _ scenario _ runner \u5305 \u89e6\u53d1 \u573a\u666f \u3002 \u64ad\u653e / \u6682\u505c \u4eff\u771f - \u5982\u679c \u4ee5 \u540c\u6b65 \u6a21\u5f0f \u542f\u52a8 \uff0c \u60a8 \u53ef\u4ee5 \u64ad\u653e \u548c \u6682\u505c \u4eff\u771f \u3002 \u624b\u52a8 \u8986\u76d6 \u81ea\u6211 \u8f66\u8f86 \u63a7\u5236 - \u4f7f\u7528 RVIZ Visualization Tutorials \u53ef\u89c6 \u53ef\u89c6\u5316 \u6559\u7a0b \u4e2d \u7684 \u9a71\u52a8 \u5c0f \u90e8\u4ef6 \u548c \u4ece \u626d\u66f2 \u8f6c\u6362 \u4e3a \u8f66\u8f86 \u63a7\u5236 \u7684 \u8282\u70b9 \uff0c \u901a\u8fc7 \u9f20\u6807 \u9a7e\u9a76 \u8f66\u8f86 \u3002","title":"RVIZ \u63d2\u4ef6 \u7684 \u529f\u80fd"},{"location":"rviz_plugin/#ros","text":"","title":"ROS \u5e94\u7528 \u7a0b\u5e8f\u63a5\u53e3"},{"location":"rviz_plugin/#_1","text":"Topic Type Description / carla / status carla _ msgs / CarlaStatus \u8bfb\u53d6 Carla \u7684 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / vehicle _ status carla _ msgs / CarlaEgoVehicleStatus \u663e\u793a \u672c\u8f66 \u5f53\u524d \u72b6\u6001 / carla / ego _ vehicle / odometry nav _ msgs / Odometry \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u7684 \u5f53\u524d \u59ff\u6001 / scenario _ runner / status carla _ ros _ scenario _ runner _ types / CarlaScenarioRunnerStatus \u53ef\u89c6 \u53ef\u89c6\u5316 \u573a\u666f \u8fd0\u884c \u72b6\u6001 / carla / available _ scenarios carla _ ros _ scenario _ runner _ types / CarlaScenarioList \u63d0\u4f9b \u8981 \u6267\u884c \u7684 \u573a\u666f \u5217\u8868 \uff08 \u5728 \u7ec4\u5408 \u6846\u4e2d \u7981\u7528 \uff09","title":"\u8ba2\u9605"},{"location":"rviz_plugin/#_2","text":"Topic Type Description / carla / control carla _ msgs / CarlaControl \u64ad\u653e / \u6682\u505c / \u6b65\u8fdb Carla / carla / ego _ vehicle / spectator _ pose geometry _ msgs / PoseStamped \u53d1\u5e03 RVIZ \u76f8\u673a \u89c6\u56fe \u7684 \u5f53\u524d \u59ff\u6001 / carla / ego _ vehicle / vehicle _ control _ manual _ override std _ msgs / Bool \u542f\u7528 / \u7981\u7528 \u8f66\u8f86 \u63a7\u5236 \u8986\u76d6 / carla / ego _ vehicle / twist geometry _ msgs / Twist \u901a\u8fc7 \u9f20\u6807 \u521b\u5efa \u7684 \u626d\u66f2 \u547d\u4ee4","title":"\u53d1\u5e03"},{"location":"rviz_plugin/#_3","text":"Topic Type Description / scenario _ runner / execute _ scenario carla _ ros _ scenario _ runner _ types / ExecuteScenario \u6267\u884c \u9009\u5b9a \u7684 \u573a\u666f","title":"\u670d\u52a1"},{"location":"scenario_runner/","text":"Carla \u7684 \u573a\u666f \u8fd0\u884c \u5668 ScenarioRunner \u662f \u4e00\u4e2a \u5141\u8bb8 Carla \u6a21\u62df \u6a21\u62df\u5668 \u5b9a\u4e49 \u548c \u6267\u884c \u4ea4\u901a \u573a\u666f \u7684 \u6a21\u5757 \u3002 \u53ef\u4ee5 \u901a\u8fc7 Python \u63a5\u53e3 \u6216 \u4f7f\u7528 OpenSCENARIO \u6807\u51c6 \u6765 \u5b9a\u4e49 \u573a\u666f \u3002 \u6700\u65b0 \u7248\u672c \u7684 scenario _ runner \u8fd8 \u652f\u6301 \u5373\u5c06 \u63a8\u51fa \u7684 OpenSCENARIO \u6807\u51c6 \u548c OpenSCENARIO 2.0 \u6807\u51c6 \u3002 ScenarioRunner \u8fd8 \u53ef \u7528\u4e8e \u901a\u8fc7 \u8f7b\u677e \u521b\u5efa \u590d\u6742 \u7684 \u4ea4\u901a \u573a\u666f \u548c \u4f9b \u4ee3\u7406 \u5bfc\u822a \u7684 \u8def\u7ebf \u6765 \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u7684 \u8bc4\u4f30 \u505a\u597d \u51c6\u5907 \u3002 \u8fd9\u4e9b \u7ed3\u679c \u53ef\u4ee5 \u5728 Carla \u6392\u884c \u6392\u884c\u699c \u4e0a \u8fdb\u884c \u9a8c\u8bc1 \u548c \u5171\u4eab \uff0c Carla \u6392\u884c \u6392\u884c\u699c \u662f \u4e00\u4e2a \u5f00\u653e \u5e73\u53f0 \u5f00\u653e\u5e73\u53f0 \uff0c \u4f9b \u793e\u533a \u516c\u5e73 \u5730 \u6bd4\u8f83 \u4ed6\u4eec \u7684 \u8fdb\u5ea6 \uff0c \u5728 \u73b0\u5b9e \u7684 \u4ea4\u901a \u60c5\u51b5 \u4e0b \u8bc4\u4f30 \u4ee3\u7406 \u3002 Carla \u8bba\u575b \u6709 \u4e00\u4e2a \u5173\u4e8e ScenarioRunner \u7684 \u4e13\u95e8 \u7248\u5757 \uff0c \u4f9b \u7528\u6237 \u53d1\u8868 \u5728 \u9605\u8bfb \u672c \u6587\u6863 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u51fa\u73b0 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u5feb\u901f \u5f00\u59cb \u5165\u95e8 \u6587\u6863 - \u6709\u5173 \u5982\u4f55 \u4e0b\u8f7d \u548c \u542f\u52a8 ScenarioRunner \u7684 \u6559\u7a0b \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u6709\u5173 \u5982\u4f55 \u8fd0\u884c \u4e0d\u540c \u7c7b\u578b \u573a\u666f \u7684 \u7b80\u8981 \u6559\u7a0b \u3002 \u521b\u5efa \u65b0 \u573a\u666f \u2014 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 ScenarioRunner \u521b\u5efa \u65b0 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u6307\u6807 \u6a21\u5757 \u2014 \u6307\u6807 \u6a21\u5757 \u7684 \u8bf4\u660e \u3002 \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898 \u3002 \u53d1\u884c \u8bf4\u660e \u2014 \u6bcf\u4e2a \u7248\u672c \u5217\u51fa \u7684 \u529f\u80fd \u3001 \u4fee\u590d \u548c \u5176\u4ed6 \u66f4\u6539 \u3002 \u53c2\u8003 \u573a\u666f \u5217\u8868 \u2014 ScenarioRunner \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u573a\u666f \u3002 OpenScenario \u652f\u6301 \u2014 OpenSCENARIO \u529f\u80fd \u7684 \u652f\u6301 \u72b6\u6001 \u3002 \u8d21\u732e \u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u3002 \u8d21\u732e \u6307\u5357 \u2014 \u4e3a ScenarioRunner \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u3002","title":"Scenario runner"},{"location":"scenario_runner/#carla","text":"ScenarioRunner \u662f \u4e00\u4e2a \u5141\u8bb8 Carla \u6a21\u62df \u6a21\u62df\u5668 \u5b9a\u4e49 \u548c \u6267\u884c \u4ea4\u901a \u573a\u666f \u7684 \u6a21\u5757 \u3002 \u53ef\u4ee5 \u901a\u8fc7 Python \u63a5\u53e3 \u6216 \u4f7f\u7528 OpenSCENARIO \u6807\u51c6 \u6765 \u5b9a\u4e49 \u573a\u666f \u3002 \u6700\u65b0 \u7248\u672c \u7684 scenario _ runner \u8fd8 \u652f\u6301 \u5373\u5c06 \u63a8\u51fa \u7684 OpenSCENARIO \u6807\u51c6 \u548c OpenSCENARIO 2.0 \u6807\u51c6 \u3002 ScenarioRunner \u8fd8 \u53ef \u7528\u4e8e \u901a\u8fc7 \u8f7b\u677e \u521b\u5efa \u590d\u6742 \u7684 \u4ea4\u901a \u573a\u666f \u548c \u4f9b \u4ee3\u7406 \u5bfc\u822a \u7684 \u8def\u7ebf \u6765 \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u7684 \u8bc4\u4f30 \u505a\u597d \u51c6\u5907 \u3002 \u8fd9\u4e9b \u7ed3\u679c \u53ef\u4ee5 \u5728 Carla \u6392\u884c \u6392\u884c\u699c \u4e0a \u8fdb\u884c \u9a8c\u8bc1 \u548c \u5171\u4eab \uff0c Carla \u6392\u884c \u6392\u884c\u699c \u662f \u4e00\u4e2a \u5f00\u653e \u5e73\u53f0 \u5f00\u653e\u5e73\u53f0 \uff0c \u4f9b \u793e\u533a \u516c\u5e73 \u5730 \u6bd4\u8f83 \u4ed6\u4eec \u7684 \u8fdb\u5ea6 \uff0c \u5728 \u73b0\u5b9e \u7684 \u4ea4\u901a \u60c5\u51b5 \u4e0b \u8bc4\u4f30 \u4ee3\u7406 \u3002 Carla \u8bba\u575b \u6709 \u4e00\u4e2a \u5173\u4e8e ScenarioRunner \u7684 \u4e13\u95e8 \u7248\u5757 \uff0c \u4f9b \u7528\u6237 \u53d1\u8868 \u5728 \u9605\u8bfb \u672c \u6587\u6863 \u8fc7\u7a0b \u4e2d \u53ef\u80fd \u51fa\u73b0 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"Carla \u7684 \u573a\u666f \u8fd0\u884c \u5668"},{"location":"scenario_runner/#_1","text":"\u5165\u95e8 \u6587\u6863 - \u6709\u5173 \u5982\u4f55 \u4e0b\u8f7d \u548c \u542f\u52a8 ScenarioRunner \u7684 \u6559\u7a0b \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u2014 \u6709\u5173 \u5982\u4f55 \u8fd0\u884c \u4e0d\u540c \u7c7b\u578b \u573a\u666f \u7684 \u7b80\u8981 \u6559\u7a0b \u3002 \u521b\u5efa \u65b0 \u573a\u666f \u2014 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 ScenarioRunner \u521b\u5efa \u65b0 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u6307\u6807 \u6a21\u5757 \u2014 \u6307\u6807 \u6a21\u5757 \u7684 \u8bf4\u660e \u3002 \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u2014 \u4e00\u4e9b \u6700 \u5e38\u89c1 \u7684 \u5b89\u88c5 \u95ee\u9898 \u3002 \u53d1\u884c \u8bf4\u660e \u2014 \u6bcf\u4e2a \u7248\u672c \u5217\u51fa \u7684 \u529f\u80fd \u3001 \u4fee\u590d \u548c \u5176\u4ed6 \u66f4\u6539 \u3002","title":"\u5feb\u901f \u5f00\u59cb"},{"location":"scenario_runner/#_2","text":"\u573a\u666f \u5217\u8868 \u2014 ScenarioRunner \u4e2d \u63d0\u4f9b \u7684 \u793a\u4f8b \u573a\u666f \u3002 OpenScenario \u652f\u6301 \u2014 OpenSCENARIO \u529f\u80fd \u7684 \u652f\u6301 \u72b6\u6001 \u3002","title":"\u53c2\u8003"},{"location":"scenario_runner/#_3","text":"\u884c\u4e3a \u4e3a\u51c6 \u51c6\u5219 \u884c\u4e3a\u51c6\u5219 \u2014 \u8d21\u732e \u8d21\u732e\u8005 \u7684 \u6807\u51c6 \u6743\u5229 \u548c \u4e49\u52a1 \u3002 \u7f16\u7801 \u6807\u51c6 \u7f16\u7801\u6807\u51c6 \u2014 \u7f16\u5199 \u6b63\u786e \u4ee3\u7801 \u7684 \u6307\u5357 \u3002 \u8d21\u732e \u6307\u5357 \u2014 \u4e3a ScenarioRunner \u505a\u51fa \u8d21\u732e \u7684 \u4e0d\u540c \u65b9\u5f0f \u3002","title":"\u8d21\u732e"},{"location":"start_introduction/","text":"Carla \u91cd\u8981 \u672c \u6587\u6863 \u53c2\u8003 \u6700\u65b0 \u7248\u672c \u7684 Carla \u3002 \u6709\u5173 \u4ee5\u524d \u7248\u672c \u7684 \u6587\u6863 \uff0c \u8bf7 \u5728 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u770b\u5230 \u6b64 \u6309\u94ae \u7684 \u4f4d\u7f6e \u9009\u62e9 \u6240 \u9700 \u7684 \u7248\u672c \uff1a Carla \u662f \u4e00\u6b3e \u5f00\u6e90 \u81ea\u52a8 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5b83 \u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u6784\u5efa \u7684 \uff0c \u4f5c\u4e3a \u4e00\u4e2a \u6a21\u5757 \u6a21\u5757\u5316 \u4e14 \u7075\u6d3b \u7684 API \uff0c \u53ef\u4ee5 \u89e3\u51b3 \u81ea\u52a8 \u9a7e\u9a76 \u95ee\u9898 \u4e2d \u6d89\u53ca \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u4efb\u52a1 \u3002 Carla \u7684 \u4e3b\u8981 \u76ee\u6807 \u4e4b\u4e00 \u662f \u5e2e\u52a9 \u81ea\u52a8 \u9a7e\u9a76 \u7814\u53d1 \u6c11\u4e3b \u6c11\u4e3b\u5316 \uff0c \u6210\u4e3a \u7528\u6237 \u53ef\u4ee5 \u8f7b\u677e \u8bbf\u95ee \u548c \u5b9a\u5236 \u7684 \u5de5\u5177 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5fc5\u987b \u6ee1\u8db3 \u4e00\u822c \u9a7e\u9a76 \u95ee\u9898 \u4e2d \u4e0d\u540c \u7528\u4f8b \u7684 \u8981\u6c42 \uff08 \u4f8b\u5982 \u5b66\u4e60 \u9a7e\u9a76 \u7b56\u7565 \u3001 \u8bad\u7ec3 \u611f\u77e5 \u7b97\u6cd5 \u7b49 \uff09 \u3002 Carla \u57fa\u4e8e \u865a\u5e7b \u5f15\u64ce \u6765 \u8fd0\u884c \u4eff\u771f \uff0c \u5e76 \u4f7f\u7528 OpenDRIVE \u6807\u51c6 \uff08 \u76ee\u524d \u4e3a 1.4 \uff09 \u6765 \u5b9a\u4e49 \u9053\u8def \u548c \u57ce\u5e02 \u8bbe\u7f6e \u3002 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u662f \u901a\u8fc7 Python \u548c C++ \u5904\u7406 \u7684 API \u6388\u4e88 \u7684 \uff0c \u8be5 API \u968f\u7740 \u9879\u76ee \u7684 \u53d1\u5c55 \u800c \u4e0d\u65ad \u589e\u957f \u3002 \u4e3a\u4e86 \u987a\u5229 \u5f00\u53d1 \u3001 \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u8fc7\u7a0b \uff0c Carla \u53d1\u5c55 \u6210\u4e3a \u4e00\u4e2a \u7531 \u793e\u533a \u56f4\u7ed5 \u4e3b \u5e73\u53f0 \u6784\u5efa \u7684 \u9879\u76ee \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u4e86\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u975e\u5e38 \u91cd\u8981 \uff0c \u8fd9\u6837 \u624d\u80fd \u5145\u5206 \u7406\u89e3 \u5176 \u529f\u80fd \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7531 \u53ef \u6269\u5c55 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u7ec4\u6210 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8d1f\u8d23 \u4e0e \u4eff\u771f \u672c\u8eab \u76f8\u5173 \u7684 \u6240\u6709 \u4e8b\u60c5 \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6e32\u67d3 \u3001 \u7269\u7406 \u8ba1\u7b97 \u3001 \u4e16\u754c \u72b6\u6001 \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u66f4\u65b0 \u7b49 \u3002 \u5305\u62ec \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \u3001 [ Libcarla \u670d\u52a1 \u670d\u52a1\u7aef ] \u3001 \u8fdc\u7a0b \u8fc7\u7a0b \u8c03\u7528 \u670d\u52a1 \u3002 \u7531\u4e8e \u5b83 \u7684 \u76ee\u6807 \u662f \u5b9e\u9645 \u7ed3\u679c \uff0c \u56e0\u6b64 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u9009\u62e9 \u662f \u4f7f\u7528 \u4e13\u7528 GPU \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u673a\u5668 \u5b66\u4e60 \u65f6 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7531 \u4e00\u7ec4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6a21\u5757 \u7ec4\u6210 \uff0c \u63a7\u5236 \u573a\u666f \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u903b\u8f91 \u5e76 \u8bbe\u7f6e \u4e16\u754c \u6761\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5229\u7528 Carla API \uff08 Python \u6216 C++ \u8bed\u8a00 \uff09 \u6765 \u5b9e\u73b0 \u7684 \uff0c Carla API \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u7684 \u4e2d\u4ecb \u5c42 \uff0c \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u65b0 \u529f\u80fd \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 Carla \u7684 \u610f\u4e49 \u4e0d\u6b62 \u8fdc\u4e0d\u6b62 \u4e8e \u6b64 \uff0c \u56e0\u4e3a \u5b83 \u5171\u5b58 \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u529f\u80fd \u548c \u5143\u7d20 \u3002 \u4e0b\u9762 \u5217\u51fa \u4e86 \u5176\u4e2d \u4e00\u4e9b \uff0c \u4ee5\u4fbf \u4e86\u89e3 Carla \u53ef\u4ee5 \u5b9e\u73b0 \u7684 \u529f\u80fd \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e00\u79cd \u5185\u7f6e \u7cfb\u7edf \uff0c \u9664\u4e86 \u7528\u4e8e \u5b66\u4e60 \u7684 \u8f66\u8f86 \u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u63a7\u5236 \u8f66\u8f86 \u3002 \u5b83 \u5145\u5f53 Carla \u63d0\u4f9b \u7684 \u6307\u6325 \uff0c \u4ee5 \u73b0\u5b9e \u7684 \u884c\u4e3a \u91cd\u5efa \u7c7b\u4f3c \u57ce\u5e02 \u7684 \u73af\u5883 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8f66\u8f86 \u4f9d\u9760 \u5b83\u4eec \u6765 \u5206\u53d1 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u5728 Carla \u4e2d \uff0c \u5b83\u4eec \u662f \u9644\u7740 \u5728 \u8f66\u8f86 \u4e0a \u7684 \u7279\u5b9a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u548c \u5b58\u50a8 \u5b83\u4eec \u63a5\u6536 \u5230 \u7684 \u6570\u636e \u4ee5 \u7b80\u5316 \u6d41\u7a0b \u3002 \u76ee\u524d \u8be5 \u9879\u76ee \u652f\u6301 \u4e0d\u540c \u7c7b\u578b \u7684 \u6280\u672f \uff0c \u4ece \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u5230 \u96f7\u8fbe \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7b49\u7b49 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6b64 \u529f\u80fd \u7528\u4e8e \u4e3a \u4e16\u754c \u4e0a \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9010\u6b65 \u91cd\u6f14 \u4eff\u771f \u3002 \u5b83 \u5141\u8bb8 \u8bbf\u95ee \u4e16\u754c \u4e0a \u4efb\u4f55 \u5730\u65b9 \u7684 \u65f6\u95f4 \u7ebf\u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \uff0c \u8fd9\u662f \u4e00\u4e2a \u5f88\u68d2 \u7684 \u8ffd\u8e2a \u5de5\u5177 \u3002 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u548c Autoware \u5b9e\u73b0 \u3002 \u4f5c\u4e3a \u666e\u904d \u666e\u904d\u5316 \u7684 \u95ee\u9898 \uff0c Carla \u9879\u76ee \u81f4\u529b \u81f4\u529b\u4e8e \u5c06 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u96c6\u6210 \u5230 \u5176\u4ed6 \u5b66\u4e60 \u73af\u5883 \u4e2d \u3002 \u5f00\u653e \u8d44\u4ea7 \u3002 Carla \u4e3a \u57ce\u5e02 \u73af\u5883 \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u5730\u56fe \uff0c \u53ef\u4ee5 \u63a7\u5236 \u5929\u6c14 \u6761\u4ef6 \uff0c \u5e76 \u63d0\u4f9b \u4e00\u4e2a \u5305\u542b \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd \u56fe\u5e93 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u5143\u7d20 \u53ef\u4ee5 \u5b9a\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u6309\u7167 \u7b80\u5355 \u7684 \u6307\u5bfc \u539f\u5219 \u751f\u6210 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 Scenario runner . \u4e3a\u4e86 \u7b80\u5316 \u8f66\u8f86 \u7684 \u5b66\u4e60 \u8fc7\u7a0b \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u63cf\u8ff0 \u4e0d\u540c \u60c5\u51b5 \u7684 \u8fed\u4ee3 \u8def\u7ebf \u3002 \u8fd9\u4e9b \u4e5f \u4e3a Carla \u6311\u6218 \u5960\u5b9a \u4e86 \u57fa\u7840 \uff0c \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u6d4b\u8bd5 \u4ed6\u4eec \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u5e76 \u8dfb\u8eab \u6392\u884c \u6392\u884c\u699c \u3002 \u8be5 \u9879\u76ee Carla \u5feb\u901f \u7a33\u5b9a \u5730 \u53d1\u5c55 \uff0c \u6269\u5927 \u4e86 \u63d0\u4f9b \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8303\u56f4 \uff0c \u5e76 \u4e3a \u4e0d\u540c \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u65b9\u6cd5 \u5f00\u8f9f \u4e86 \u9053\u8def \u3002 \u5b83 \u5728 \u8fd9\u6837 \u505a \u7684 \u540c\u65f6 \u6c38\u8fdc \u4e0d\u4f1a \u5fd8\u8bb0 \u5176 \u5f00\u6e90 \u6027\u8d28 \u3002 \u8be5 \u9879\u76ee \u662f \u900f\u660e \u7684 \uff0c \u5145\u5f53 \u4e00\u4e2a \u767d\u76d2 \uff0c \u4efb\u4f55 \u4f55\u4eba \u4efb\u4f55\u4eba \u90fd \u53ef\u4ee5 \u8bbf\u95ee \u5de5\u5177 \u548c \u5f00\u53d1 \u793e\u533a \u3002 Carla \u6b63\u662f \u5728 \u6c11\u4e3b \u6c11\u4e3b\u5316 \u4e2d \u627e\u5230 \u4e86 \u81ea\u5df1 \u7684 \u4ef7\u503c \u3002 \u8c08\u8bba Carla \u5982\u4f55 \u6210\u957f \u610f\u5473 \u610f\u5473\u7740 \u8c08\u8bba \u4e00\u4e2a \u5171\u540c \u6df1\u5165 \u7814\u7a76 \u6df1\u5165\u7814\u7a76 \u81ea\u52a8 \u9a7e\u9a76 \u5f7b\u5e95 \u95ee\u9898 \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u793e\u533a \u3002 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u81ea\u7531 \u5730 \u4e0e Carla \u4e00\u8d77 \u63a2\u7d22 \uff0c \u627e\u5230 \u81ea\u5df1 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7136\u540e \u4e0e \u793e\u533a \u5176\u4ed6 \u6210\u5458 \u5206\u4eab \u4ed6\u4eec \u7684 \u6210\u5c31 \u3002 \u672c \u6587\u6863 \u5c06 \u6210\u4e3a \u60a8 \u4e00\u8def \u8def\u4e0a \u4e00\u8def\u4e0a \u7684 \u4f34\u4fa3 \u3002 \u4e0b \u4e00\u9875 \u5305\u542b \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \uff0c \u4f9b \u90a3\u4e9b \u6e34\u671b \u5b89\u88c5 Carla \u7248\u672c \u7684 \u4eba \u4f7f\u7528 \u3002 \u8fd8\u6709 \u9002\u7528 \u4e8e Linux \u548c Windows \u7684 \u6784\u5efa \u6307\u5357 \u3002 \u8fd9 \u5c06 \u4f7f Carla \u4ece \u5b58\u50a8 \u5e93\u4e2d \u51fa\u6765 \uff0c \u5e76 \u5141\u8bb8 \u6df1\u5165 \u4e86\u89e3 \u5176 \u529f\u80fd \u3002 \u6b22\u8fce \u6765\u5230 Carla \u3002 Linux \u6784\u5efa Windows \u6784\u5efa","title":"\u4ecb\u7ecd"},{"location":"start_introduction/#carla","text":"\u91cd\u8981 \u672c \u6587\u6863 \u53c2\u8003 \u6700\u65b0 \u7248\u672c \u7684 Carla \u3002 \u6709\u5173 \u4ee5\u524d \u7248\u672c \u7684 \u6587\u6863 \uff0c \u8bf7 \u5728 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u770b\u5230 \u6b64 \u6309\u94ae \u7684 \u4f4d\u7f6e \u9009\u62e9 \u6240 \u9700 \u7684 \u7248\u672c \uff1a Carla \u662f \u4e00\u6b3e \u5f00\u6e90 \u81ea\u52a8 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u5b83 \u662f \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u6784\u5efa \u7684 \uff0c \u4f5c\u4e3a \u4e00\u4e2a \u6a21\u5757 \u6a21\u5757\u5316 \u4e14 \u7075\u6d3b \u7684 API \uff0c \u53ef\u4ee5 \u89e3\u51b3 \u81ea\u52a8 \u9a7e\u9a76 \u95ee\u9898 \u4e2d \u6d89\u53ca \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u4efb\u52a1 \u3002 Carla \u7684 \u4e3b\u8981 \u76ee\u6807 \u4e4b\u4e00 \u662f \u5e2e\u52a9 \u81ea\u52a8 \u9a7e\u9a76 \u7814\u53d1 \u6c11\u4e3b \u6c11\u4e3b\u5316 \uff0c \u6210\u4e3a \u7528\u6237 \u53ef\u4ee5 \u8f7b\u677e \u8bbf\u95ee \u548c \u5b9a\u5236 \u7684 \u5de5\u5177 \u3002 \u4e3a\u6b64 \uff0c \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5fc5\u987b \u6ee1\u8db3 \u4e00\u822c \u9a7e\u9a76 \u95ee\u9898 \u4e2d \u4e0d\u540c \u7528\u4f8b \u7684 \u8981\u6c42 \uff08 \u4f8b\u5982 \u5b66\u4e60 \u9a7e\u9a76 \u7b56\u7565 \u3001 \u8bad\u7ec3 \u611f\u77e5 \u7b97\u6cd5 \u7b49 \uff09 \u3002 Carla \u57fa\u4e8e \u865a\u5e7b \u5f15\u64ce \u6765 \u8fd0\u884c \u4eff\u771f \uff0c \u5e76 \u4f7f\u7528 OpenDRIVE \u6807\u51c6 \uff08 \u76ee\u524d \u4e3a 1.4 \uff09 \u6765 \u5b9a\u4e49 \u9053\u8def \u548c \u57ce\u5e02 \u8bbe\u7f6e \u3002 \u5bf9 \u4eff\u771f \u7684 \u63a7\u5236 \u662f \u901a\u8fc7 Python \u548c C++ \u5904\u7406 \u7684 API \u6388\u4e88 \u7684 \uff0c \u8be5 API \u968f\u7740 \u9879\u76ee \u7684 \u53d1\u5c55 \u800c \u4e0d\u65ad \u589e\u957f \u3002 \u4e3a\u4e86 \u987a\u5229 \u5f00\u53d1 \u3001 \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \u9a7e\u9a76 \u7cfb\u7edf \u7684 \u8fc7\u7a0b \uff0c Carla \u53d1\u5c55 \u6210\u4e3a \u4e00\u4e2a \u7531 \u793e\u533a \u56f4\u7ed5 \u4e3b \u5e73\u53f0 \u6784\u5efa \u7684 \u9879\u76ee \u751f\u6001 \u7cfb\u7edf \u751f\u6001\u7cfb \u751f\u6001\u7cfb\u7edf \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u4e86\u89e3 Carla \u7684 \u5de5\u4f5c \u539f\u7406 \u975e\u5e38 \u91cd\u8981 \uff0c \u8fd9\u6837 \u624d\u80fd \u5145\u5206 \u7406\u89e3 \u5176 \u529f\u80fd \u3002","title":"Carla"},{"location":"start_introduction/#_1","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7531 \u53ef \u6269\u5c55 \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef - \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u67b6\u6784 \u7ec4\u6210 \u3002 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u8d1f\u8d23 \u4e0e \u4eff\u771f \u672c\u8eab \u76f8\u5173 \u7684 \u6240\u6709 \u4e8b\u60c5 \uff1a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6e32\u67d3 \u3001 \u7269\u7406 \u8ba1\u7b97 \u3001 \u4e16\u754c \u72b6\u6001 \u53ca\u5176 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u66f4\u65b0 \u7b49 \u3002 \u5305\u62ec \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \u3001 [ Libcarla \u670d\u52a1 \u670d\u52a1\u7aef ] \u3001 \u8fdc\u7a0b \u8fc7\u7a0b \u8c03\u7528 \u670d\u52a1 \u3002 \u7531\u4e8e \u5b83 \u7684 \u76ee\u6807 \u662f \u5b9e\u9645 \u7ed3\u679c \uff0c \u56e0\u6b64 \u5408\u9002 \u6700\u5408\u9002 \u7684 \u9009\u62e9 \u662f \u4f7f\u7528 \u4e13\u7528 GPU \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u5c24\u5176 \u662f \u5728 \u5904\u7406 \u673a\u5668 \u5b66\u4e60 \u65f6 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7531 \u4e00\u7ec4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6a21\u5757 \u7ec4\u6210 \uff0c \u63a7\u5236 \u573a\u666f \u4e2d \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u903b\u8f91 \u5e76 \u8bbe\u7f6e \u4e16\u754c \u6761\u4ef6 \u3002 \u8fd9\u662f \u901a\u8fc7 \u5229\u7528 Carla API \uff08 Python \u6216 C++ \u8bed\u8a00 \uff09 \u6765 \u5b9e\u73b0 \u7684 \uff0c Carla API \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e4b\u95f4 \u7684 \u4e2d\u4ecb \u5c42 \uff0c \u4e0d\u65ad \u53d1\u5c55 \u4ee5 \u63d0\u4f9b \u65b0 \u529f\u80fd \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 Carla \u7684 \u610f\u4e49 \u4e0d\u6b62 \u8fdc\u4e0d\u6b62 \u4e8e \u6b64 \uff0c \u56e0\u4e3a \u5b83 \u5171\u5b58 \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u529f\u80fd \u548c \u5143\u7d20 \u3002 \u4e0b\u9762 \u5217\u51fa \u4e86 \u5176\u4e2d \u4e00\u4e9b \uff0c \u4ee5\u4fbf \u4e86\u89e3 Carla \u53ef\u4ee5 \u5b9e\u73b0 \u7684 \u529f\u80fd \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u4e00\u79cd \u5185\u7f6e \u7cfb\u7edf \uff0c \u9664\u4e86 \u7528\u4e8e \u5b66\u4e60 \u7684 \u8f66\u8f86 \u5916 \uff0c \u8fd8 \u53ef\u4ee5 \u63a7\u5236 \u8f66\u8f86 \u3002 \u5b83 \u5145\u5f53 Carla \u63d0\u4f9b \u7684 \u6307\u6325 \uff0c \u4ee5 \u73b0\u5b9e \u7684 \u884c\u4e3a \u91cd\u5efa \u7c7b\u4f3c \u57ce\u5e02 \u7684 \u73af\u5883 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8f66\u8f86 \u4f9d\u9760 \u5b83\u4eec \u6765 \u5206\u53d1 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u4fe1\u606f \u3002 \u5728 Carla \u4e2d \uff0c \u5b83\u4eec \u662f \u9644\u7740 \u5728 \u8f66\u8f86 \u4e0a \u7684 \u7279\u5b9a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u68c0\u7d22 \u548c \u5b58\u50a8 \u5b83\u4eec \u63a5\u6536 \u5230 \u7684 \u6570\u636e \u4ee5 \u7b80\u5316 \u6d41\u7a0b \u3002 \u76ee\u524d \u8be5 \u9879\u76ee \u652f\u6301 \u4e0d\u540c \u7c7b\u578b \u7684 \u6280\u672f \uff0c \u4ece \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u5230 \u96f7\u8fbe \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7b49\u7b49 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u6b64 \u529f\u80fd \u7528\u4e8e \u4e3a \u4e16\u754c \u4e0a \u7684 \u6bcf\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u9010\u6b65 \u91cd\u6f14 \u4eff\u771f \u3002 \u5b83 \u5141\u8bb8 \u8bbf\u95ee \u4e16\u754c \u4e0a \u4efb\u4f55 \u5730\u65b9 \u7684 \u65f6\u95f4 \u7ebf\u4e2d \u7684 \u4efb\u4f55 \u4f55\u65f6 \u65f6\u523b \u4efb\u4f55\u65f6\u523b \uff0c \u8fd9\u662f \u4e00\u4e2a \u5f88\u68d2 \u7684 \u8ffd\u8e2a \u5de5\u5177 \u3002 \u673a\u5668 \u673a\u5668\u4eba \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6865\u63a5 \u548c Autoware \u5b9e\u73b0 \u3002 \u4f5c\u4e3a \u666e\u904d \u666e\u904d\u5316 \u7684 \u95ee\u9898 \uff0c Carla \u9879\u76ee \u81f4\u529b \u81f4\u529b\u4e8e \u5c06 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u96c6\u6210 \u5230 \u5176\u4ed6 \u5b66\u4e60 \u73af\u5883 \u4e2d \u3002 \u5f00\u653e \u8d44\u4ea7 \u3002 Carla \u4e3a \u57ce\u5e02 \u73af\u5883 \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u5730\u56fe \uff0c \u53ef\u4ee5 \u63a7\u5236 \u5929\u6c14 \u6761\u4ef6 \uff0c \u5e76 \u63d0\u4f9b \u4e00\u4e2a \u5305\u542b \u5927\u91cf \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u84dd \u56fe\u5e93 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u5143\u7d20 \u53ef\u4ee5 \u5b9a\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u6309\u7167 \u7b80\u5355 \u7684 \u6307\u5bfc \u539f\u5219 \u751f\u6210 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 Scenario runner . \u4e3a\u4e86 \u7b80\u5316 \u8f66\u8f86 \u7684 \u5b66\u4e60 \u8fc7\u7a0b \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u63cf\u8ff0 \u4e0d\u540c \u60c5\u51b5 \u7684 \u8fed\u4ee3 \u8def\u7ebf \u3002 \u8fd9\u4e9b \u4e5f \u4e3a Carla \u6311\u6218 \u5960\u5b9a \u4e86 \u57fa\u7840 \uff0c \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u6d4b\u8bd5 \u4ed6\u4eec \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u5e76 \u8dfb\u8eab \u6392\u884c \u6392\u884c\u699c \u3002","title":"\u4eff\u771f\u5668"},{"location":"start_introduction/#_2","text":"Carla \u5feb\u901f \u7a33\u5b9a \u5730 \u53d1\u5c55 \uff0c \u6269\u5927 \u4e86 \u63d0\u4f9b \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8303\u56f4 \uff0c \u5e76 \u4e3a \u4e0d\u540c \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u65b9\u6cd5 \u5f00\u8f9f \u4e86 \u9053\u8def \u3002 \u5b83 \u5728 \u8fd9\u6837 \u505a \u7684 \u540c\u65f6 \u6c38\u8fdc \u4e0d\u4f1a \u5fd8\u8bb0 \u5176 \u5f00\u6e90 \u6027\u8d28 \u3002 \u8be5 \u9879\u76ee \u662f \u900f\u660e \u7684 \uff0c \u5145\u5f53 \u4e00\u4e2a \u767d\u76d2 \uff0c \u4efb\u4f55 \u4f55\u4eba \u4efb\u4f55\u4eba \u90fd \u53ef\u4ee5 \u8bbf\u95ee \u5de5\u5177 \u548c \u5f00\u53d1 \u793e\u533a \u3002 Carla \u6b63\u662f \u5728 \u6c11\u4e3b \u6c11\u4e3b\u5316 \u4e2d \u627e\u5230 \u4e86 \u81ea\u5df1 \u7684 \u4ef7\u503c \u3002 \u8c08\u8bba Carla \u5982\u4f55 \u6210\u957f \u610f\u5473 \u610f\u5473\u7740 \u8c08\u8bba \u4e00\u4e2a \u5171\u540c \u6df1\u5165 \u7814\u7a76 \u6df1\u5165\u7814\u7a76 \u81ea\u52a8 \u9a7e\u9a76 \u5f7b\u5e95 \u95ee\u9898 \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u793e\u533a \u3002 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u81ea\u7531 \u5730 \u4e0e Carla \u4e00\u8d77 \u63a2\u7d22 \uff0c \u627e\u5230 \u81ea\u5df1 \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7136\u540e \u4e0e \u793e\u533a \u5176\u4ed6 \u6210\u5458 \u5206\u4eab \u4ed6\u4eec \u7684 \u6210\u5c31 \u3002 \u672c \u6587\u6863 \u5c06 \u6210\u4e3a \u60a8 \u4e00\u8def \u8def\u4e0a \u4e00\u8def\u4e0a \u7684 \u4f34\u4fa3 \u3002 \u4e0b \u4e00\u9875 \u5305\u542b \u5feb\u901f \u5165\u95e8 \u8bf4\u660e \uff0c \u4f9b \u90a3\u4e9b \u6e34\u671b \u5b89\u88c5 Carla \u7248\u672c \u7684 \u4eba \u4f7f\u7528 \u3002 \u8fd8\u6709 \u9002\u7528 \u4e8e Linux \u548c Windows \u7684 \u6784\u5efa \u6307\u5357 \u3002 \u8fd9 \u5c06 \u4f7f Carla \u4ece \u5b58\u50a8 \u5e93\u4e2d \u51fa\u6765 \uff0c \u5e76 \u5141\u8bb8 \u6df1\u5165 \u4e86\u89e3 \u5176 \u529f\u80fd \u3002 \u6b22\u8fce \u6765\u5230 Carla \u3002 Linux \u6784\u5efa Windows \u6784\u5efa","title":"\u8be5 \u9879\u76ee"},{"location":"start_quickstart/","text":"\u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5 \u672c \u6307\u5357 \u4ecb\u7ecd \u5982\u4f55 \u4e0b\u8f7d \u548c \u5b89\u88c5 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5305\u62ec Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4e24\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u9009\u9879 \u3002 \u8fd8 \u53ef\u4ee5 \u4e0b\u8f7d \u5176\u4ed6 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u5bfc\u5165 \u5bfc\u5165\u5230 \u5305\u4e2d \u3002 \u9700\u8981 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u9ad8\u7ea7 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u5f00\u53d1 \u9009\u9879 \u4e0d\u53ef \u7528 \uff0c \u4f46 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u9002\u7528 \u4e8e Windows \u6216 Linux \u7684 Carla \u6784\u5efa \u7248\u672c \u6765 \u8bbf\u95ee \u8fd9\u4e9b \u9009\u9879 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5b89\u88c5 A . Debian Carla \u5b89\u88c5 B . \u5305 \u5b89\u88c5 \u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7 \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c Carla 0.9 . 12 + \u8fd0\u884c Carla \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u66f4\u65b0 Carla \u8ddf\u8fdb \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5b89\u88c5 Carla \u4e4b\u524d \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u662f \u4e3a Windows \u548c Linux \u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u4f7f\u7528 \u5927\u7ea6 20 GB \u7684 \u7a7a\u95f4 \u3002 Python . Python \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 Carla \u5728 Linux \u4e0a \u652f\u6301 Python 2.7 \u548c Python 3 \uff0c \u5728 Windows \u4e0a \u652f\u6301 Python 3 \u3002 Pip . Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u67d0\u4e9b \u5b89\u88c5 \u65b9\u6cd5 \u9700\u8981 pip \u6216 pip3 \uff08 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Python \u7248\u672c \uff09 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 pip \u7248\u672c \uff1a # For Python 3 pip3 - V # For Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # For Python 3 pip3 install -- upgrade pip # For Python 2 pip install -- upgrade pip \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u5176\u4ed6 \u9700\u6c42 \u3002 Carla \u9700\u8981 \u4e00\u4e9b Python \u4f9d\u8d56 \u9879 \u3002 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 \u4f9d\u8d56 \u9879 \uff1a Windows pip3 install -- user pygame numpy Linux pip install -- user pygame numpy && pip3 install -- user pygame numpy Carla \u5b89\u88c5 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4e0b\u8f7d \u5e76 \u5b89\u88c5 Carla \u4f5c\u4e3a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff1a A ) \u4e0b\u8f7d Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 B ) \u4ece GitHub \u4e0b\u8f7d \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 A . Debian Carla \u5b89\u88c5 Debain \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u9002\u7528 \u4e8e Ubuntu 18.04 \u548c Ubuntu 20.04 \uff0c \u4f46 \u5b98\u65b9 \u652f\u6301 \u7684 \u5e73\u53f0 \u662f Ubuntu 18.04 \u3002 1 . \u5728 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 Carla \u5e76 \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u662f\u5426 \u6709 \u5b89\u88c5 \uff1a sudo apt - get update # Update the Debian package index sudo apt - get install carla - simulator # Install the latest Carla version , or update the current installation cd / opt / carla - simulator # Open the folder where Carla is installed \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b Carla 0.9 . 10 \u53ca \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff0c \u8bf7 \u5c06 \u7248\u672c \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5b89\u88c5 \u547d\u4ee4 \u4e2d \uff1a apt - cache madison carla - simulator # List the available versions of Carla sudo apt - get install carla - simulator = 0.9 . 10 - 1 # In this case , \" 0.9 . 10 \" refers to a CARLA version , and \" 1 \" to the Debian revision \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u6587\u6863 \u7684 \u65e9\u671f \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u65e7 \u7684 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002 B . \u5305 \u5b89\u88c5 Carla \u4ed3\u5e93 \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b \u4e0d\u540c \u7248\u672c \u7684 Carla \u3002 \u60a8 \u5c06 \u627e\u5230 \u4e0b\u8f7d \u5305\u542b \u6240\u6709 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u5f53\u524d \u7248\u672c \u3001 \u4ee5\u524d \u7684 \u7248\u672c \u4ee5\u53ca \u5305\u542b \u6240\u6709 \u5f00\u53d1 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u591c\u95f4 \u6784\u5efa \uff08 \u591c\u95f4 \u6784\u5efa \u662f Carla \u6700 \u4e0d \u7a33\u5b9a \u7684 \u7248\u672c \uff09 \u7684 \u9009\u9879 \u3002 \u8be5 \u5305\u662f \u4e00\u4e2a \u540d\u4e3a CARLA _ version . number \u7684 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u3002 \u4e0b\u8f7d \u5e76 \u89e3\u538b \u53d1\u5e03 \u6587\u4ef6 \u3002 \u5b83 \u5305\u542b \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u9884 \u7f16\u8bd1 \u7248\u672c \u3001 Python API \u6a21\u5757 \u548c \u4e00\u4e9b \u7528\u4f5c \u793a\u4f8b \u7684 \u811a\u672c \u3002 \u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7 \u6bcf\u4e2a \u7248\u672c \u90fd \u6709 \u5176 \u81ea\u5df1 \u7684 \u9644\u52a0 \u8d44\u4ea7 \u548c \u5730\u56fe \u5730\u56fe\u5305 \u3002 \u6b64 \u9644\u52a0 \u5305 \u5305\u62ec \u5730\u56fe Town06 \u3001 Town07 \u548c Town10 \u3002 \u5b83\u4eec \u5355\u72ec \u5b58\u50a8 \u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \uff0c \u56e0\u6b64 \u53ea\u80fd \u5728 \u5b89\u88c5 \u4e3b\u5305 \u540e \u624d\u80fd \u5bfc\u5165 \u5b83\u4eec \u3002 1 . \u4e0b\u8f7d \u9002\u5408 \u60a8 \u6240 \u9700 \u7248\u672c \u7684 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 2 . \u89e3\u538b \u89e3\u538b\u5305 \uff1a \u5728 Linux \u4e0a : \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u4ee5 \u63d0\u53d6 \u5185\u5bb9 \uff1a cd path / to / carla / root . / ImportAssets . sh \u5728 Windows \u4e0a : \u76f4\u63a5 \u5c06 \u5185\u5bb9 \u63d0\u53d6 \u5230 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c \u4ee5\u524d \u7248\u672c \u7684 Carla \u4e0d \u9700\u8981 \u5b89\u88c5 Python \u5e93 \uff0c \u5b83\u4eec \u9644\u5e26 \u4e86 \u4e00\u4e2a . egg \u5f00\u7bb1 \u5373\u7528 \u7684 \u6587\u4ef6 \u3002 Carla \u7248\u672c 0.9 . 12 + \u663e \u7740 \u6539\u53d8 \u4e86 \u8fd9\u79cd \u884c\u4e3a \uff1b \u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u8be5 \u7248\u672c \u4ee5 \u67e5\u770b \u76f8\u5173 \u6587\u6863 \u3002 \u5426\u5219 \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 Carla 0.9 . 12 + \u4e2d \u53ef\u7528 \u9009\u9879 \u7684 \u4fe1\u606f \u3002 Carla 0.9 . 12 + \u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u548c \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a . egg \u6587\u4ef6 . whl \u6587\u4ef6 \u53ef \u4e0b\u8f7d \u7684 Python \u5305 \u5728 \u51b3\u5b9a \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 \u6bcf\u79cd \u65b9\u6cd5 \u7684 \u8981\u6c42 \u548c \u9650\u5236 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u6ce8\u610f \uff0c \u6df7\u5408 \u4f7f\u7528 \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u4e0d \u517c\u5bb9 \uff0c \u56e0\u6b64 \u8bf7 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u6216\u8005 \u5728 \u4f7f\u7528 \u65b0\u5e93 \u4e4b\u524d \u5378\u8f7d \u4ee5\u524d \u5b89\u88c5 \u7684 \u5e93 \u3002 A . . egg \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u5728 PythonAPI / carla / dist / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \u4e0d\u540c Python \u7248\u672c . egg \u6587\u4ef6 \uff0c \u53ef\u4ee5 \u5f00\u7bb1 \u5373\u7528 \u3002 PythonAPI / examples \u4e2d \u7684 \u6bcf\u4e2a \u793a\u4f8b \u811a\u672c \u90fd \u5305\u542b \u4e00\u4e2a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 PYTHONPATH \u3002 . \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 Carla \u4e2d . egg \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5df2\u7ecf \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 pip \uff0c \u5219 \u8be5\u5e93 \u5c06 \u4f18\u5148 \u4e8e \u8be5 . egg \u6587\u4ef6 \u3002 \u60a8 \u9700\u8981 \u5148 \u5378\u8f7d \u4ee5\u524d \u7684 \u5e93 \u3002 B . . whl \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u4e0d\u540c Python \u7248\u672c \u7684 . whl \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 \u5b89\u88c5 \u8be5 . whl \u6587\u4ef6 \u3002 \u8be5 . whl \u6587\u4ef6 \u4f4d\u4e8e PythonAPI / carla / dist / \u3002 \u6bcf\u4e2a \u53d7 \u652f\u6301 \u7684 Python \u7248\u672c \u90fd \u6709 \u4e00\u4e2a \u6587\u4ef6 \uff0c \u7531 \u6587\u4ef6 \u6587\u4ef6\u540d \u6307\u793a \uff08 \u4f8b\u5982 \uff0c carla - 0.9 . 12 - cp36 - cp36m - manylinux _ 2 _ 27 _ x86 _ 64 . whl \u8868\u793a Python 3.6 \uff09 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u9009\u62e9 \u9002\u5408 \u60a8 \u6240 \u9700 Python \u7248\u672c \u7684 \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \uff1a # Python 3 pip3 install < wheel - file - name > . whl # Python 2 pip install < wheel - file - name > . whl \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94\u5148 \u5378\u8f7d \u65e7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u7136\u540e \u518d \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 C . \u53ef \u4e0b\u8f7d \u7684 Python \u5305 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u53ef\u4ee5 \u4ece PyPi \u4e0b\u8f7d \u3002 \u8be5\u5e93 \u4e0e Python \u7248\u672c 2.7 \u3001 3.6 \u3001 3.7 \u548c 3.8 \u517c\u5bb9 \u3002 \u8981 \u5b89\u88c5 \u5b83 \uff0c \u60a8 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u4ece PyPi \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # Python 3 pip3 install carla # Python 2 pip install carla PyPi \u4e0b\u8f7d \u4ec5 \u9002\u5408 \u4e0e Carla \u5305 \u4e00\u8d77 \u4f7f\u7528 \uff08 \u5373 \u4e0d\u9002 \u7528\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \uff09 \u3002 \u7531\u4e8e PyPi \u4e0b\u8f7d \u4ec5 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u56e0\u6b64 \u5728 \u60a8 \u5c06 \u4e0e \u8fdc\u7a0b Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e14 \u4e0d \u9700\u8981 \u4e0b\u8f7d \u5b8c\u6574 \u7684 Carla \u5305 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u975e\u5e38 \u6709\u7528 \u3002 \u8fd0\u884c Carla \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u548c \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff1a Debian \u5b89\u88c5 : cd / opt / carla - simulator / bin / . / CarlaUE4 . sh Linux \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root . / CarlaUE4 . sh Windows \u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root CarlaUE4 . exe \u5c06 \u5f39\u51fa \u4e00\u4e2a \u5305\u542b \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u770b\u6cd5 \u3002 \u8981 \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u8bf7 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u6309\u952e \uff0c \u6309\u4f4f \u9f20\u6807 \u53f3\u952e \u63a7\u5236 \u65b9\u5411 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u5b83 \u73b0\u5728 \u6b63\u5728 \u8fd0\u884c \u5e76 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u5728 \u57ce\u5e02 \u4e2d \u4ea7\u751f \u751f\u547d \u5e76 \u9a7e\u9a76 \u6c7d\u8f66 \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples python3 - m pip install - r requirements . txt # Support for Python2 is provided in the CARLA release packages python3 generate _ traffic . py # Terminal B cd PythonAPI \\ examples python3 manual _ control . py \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u542f\u52a8 Carla \u65f6\u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u914d\u7f6e \u9009\u9879 \uff0c \u53ef\u4ee5 \u6309 \u5982\u4e0b \u65b9\u5f0f \u4f7f\u7528 \u5b83\u4eec \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - rpc - port = N \u4fa6\u542c \u7aef\u53e3 N \u4e0a \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u3002 \u5a92\u4f53 \u6d41\u5a92\u4f53 \u7aef\u53e3 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a N + 1 \u3002 - carla - streaming - port = N \u6307\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6570\u636e\u6d41 \u7684 \u7aef\u53e3 \u3002 \u4f7f\u7528 0 \u83b7\u53d6 \u968f\u673a \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a N + 1 \u3002 - quality - level = { Low , Epic } \u66f4\u6539 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 \u5728 \u6e32\u67d3 \u9009\u9879 \u4e2d \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u865a\u5e7b \u5f15\u64ce 4 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5217\u8868 \u3002 \u3002 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u4e86 \u5f88\u591a \u9009\u9879 \uff0c \u4f46 \u5e76\u975e \u6240\u6709 \u8fd9\u4e9b \u9009\u9879 \u5728 Carla \u4e2d \u90fd \u53ef\u7528 \u3002 \u8be5 \u811a\u672c PythonAPI / util / config . py \u63d0\u4f9b \u4e86 \u66f4 \u591a \u914d\u7f6e \u9009\u9879 \uff0c \u5e94 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u542f\u52a8 \u65f6 \u8fd0\u884c \uff1a . / config . py -- no - rendering # Disable rendering . / config . py -- map Town05 # Change map . / config . py -- weather ClearNoon # Change weather . / config . py -- help # Check all the available configuration options \u66f4\u65b0 Carla \u65e0\u6cd5 \u66f4\u65b0 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5f53\u65b0 \u7248\u672c \u53d1\u5e03 \u65f6 \uff0c \u5b58\u50a8 \u5e93\u4f1a \u66f4\u65b0 \uff0c \u60a8 \u9700\u8981 \u5220\u9664 \u4ee5\u524d \u7684 \u7248\u672c \u5e76 \u5b89\u88c5 \u65b0 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla \u8ddf\u8fdb \u73b0\u5728 \u60a8 \u5e94\u8be5 \u5df2\u7ecf \u542f\u52a8 \u5e76 \u8fd0\u884c \u4e86 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u5728 \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u9047\u5230 \u4efb\u4f55 \u56f0\u96be \uff0c \u8bf7 \u968f\u65f6 \u5728 Carla \u8bba\u575b \u6216 Discord \u9891\u9053 \u4e2d \u53d1\u5e16 \u3002 \u4e0b \u4e00\u6b65 \u662f \u8be6\u7ec6 \u4e86\u89e3 Carla \u7684 \u6838\u5fc3 \u6982\u5ff5 \u3002 \u9605\u8bfb \u201c \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u201d \u90e8\u5206 \u5f00\u59cb \u5b66\u4e60 \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u6709\u5173 Python API \u7c7b \u548c \u65b9\u6cd5 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u524d\u5f80 \uff1a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"\u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5"},{"location":"start_quickstart/#_1","text":"\u672c \u6307\u5357 \u4ecb\u7ecd \u5982\u4f55 \u4e0b\u8f7d \u548c \u5b89\u88c5 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u8be5 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5305\u62ec Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u4e24\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u9009\u9879 \u3002 \u8fd8 \u53ef\u4ee5 \u4e0b\u8f7d \u5176\u4ed6 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u5bfc\u5165 \u5bfc\u5165\u5230 \u5305\u4e2d \u3002 \u9700\u8981 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u9ad8\u7ea7 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u5f00\u53d1 \u9009\u9879 \u4e0d\u53ef \u7528 \uff0c \u4f46 \u53ef\u4ee5 \u901a\u8fc7 \u4f7f\u7528 \u9002\u7528 \u4e8e Windows \u6216 Linux \u7684 Carla \u6784\u5efa \u7248\u672c \u6765 \u8bbf\u95ee \u8fd9\u4e9b \u9009\u9879 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5b89\u88c5 A . Debian Carla \u5b89\u88c5 B . \u5305 \u5b89\u88c5 \u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7 \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c Carla 0.9 . 12 + \u8fd0\u884c Carla \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u66f4\u65b0 Carla \u8ddf\u8fdb","title":"\u5feb\u901f \u542f\u52a8 \u5305 \u5b89\u88c5"},{"location":"start_quickstart/#_2","text":"\u5b89\u88c5 Carla \u4e4b\u524d \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u7cfb\u7edf \u8981\u6c42 \u3002 Carla \u662f \u4e3a Windows \u548c Linux \u7cfb\u7edf \u6784\u5efa \u7684 \u3002 \u8db3\u591f \u7684 GPU \u3002 Carla \u65e8\u5728 \u5b9e\u73b0 \u771f\u5b9e \u4eff\u771f \uff0c \u56e0\u6b64 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u81f3\u5c11 \u9700\u8981 6 GB GPU \uff0c \u4f46 \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 8 GB \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u4f7f\u7528 \u4e13\u7528 GPU \u8fdb\u884c \u673a\u5668 \u5b66\u4e60 \u3002 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 \u3002 Carla \u5c06 \u4f7f\u7528 \u5927\u7ea6 20 GB \u7684 \u7a7a\u95f4 \u3002 Python . Python \u662f Carla \u4e2d \u7684 \u4e3b\u8981 \u811a\u672c \u8bed\u8a00 \u811a\u672c\u8bed\u8a00 \u3002 Carla \u5728 Linux \u4e0a \u652f\u6301 Python 2.7 \u548c Python 3 \uff0c \u5728 Windows \u4e0a \u652f\u6301 Python 3 \u3002 Pip . Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u7684 \u67d0\u4e9b \u5b89\u88c5 \u65b9\u6cd5 \u9700\u8981 pip \u6216 pip3 \uff08 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 Python \u7248\u672c \uff09 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u68c0\u67e5 \u60a8 \u7684 pip \u7248\u672c \uff1a # For Python 3 pip3 - V # For Python 2 pip - V \u5982\u679c \u60a8 \u9700\u8981 \u5347\u7ea7 \uff1a # For Python 3 pip3 install -- upgrade pip # For Python 2 pip install -- upgrade pip \u4e24\u4e2a TCP \u7aef\u53e3 \u548c \u826f\u597d \u7684 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u8fde\u63a5 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u5e74 \u548c 2001 \u5e74 \u3002 \u786e\u4fdd \u8fd9\u4e9b \u7aef\u53e3 \u672a \u88ab \u9632\u706b \u706b\u5899 \u9632\u706b\u5899 \u6216 \u4efb\u4f55 \u5176\u4ed6 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u963b\u6b62 \u3002 \u5176\u4ed6 \u9700\u6c42 \u3002 Carla \u9700\u8981 \u4e00\u4e9b Python \u4f9d\u8d56 \u9879 \u3002 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u5b89\u88c5 \u4f9d\u8d56 \u9879 \uff1a","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"start_quickstart/#windows","text":"pip3 install -- user pygame numpy","title":"Windows"},{"location":"start_quickstart/#linux","text":"pip install -- user pygame numpy && pip3 install -- user pygame numpy","title":"Linux"},{"location":"start_quickstart/#carla","text":"\u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u4e0b\u8f7d \u5e76 \u5b89\u88c5 Carla \u4f5c\u4e3a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff1a A ) \u4e0b\u8f7d Debian \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 B ) \u4ece GitHub \u4e0b\u8f7d \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002","title":"Carla \u5b89\u88c5"},{"location":"start_quickstart/#a-debian-carla","text":"Debain \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u9002\u7528 \u4e8e Ubuntu 18.04 \u548c Ubuntu 20.04 \uff0c \u4f46 \u5b98\u65b9 \u652f\u6301 \u7684 \u5e73\u53f0 \u662f Ubuntu 18.04 \u3002 1 . \u5728 \u7cfb\u7edf \u4e2d \u8bbe\u7f6e Debian \u5b58\u50a8 \u5e93 \uff1a sudo apt - key adv -- keyserver keyserver . ubuntu . com -- recv - keys 1AF1527DE64CB8D9 sudo add - apt - repository \" deb [ arch = amd64 ] http : / / dist . carla . org / carla $ ( lsb _ release - sc ) main \" 2 . \u5b89\u88c5 Carla \u5e76 \u68c0\u67e5 / opt / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u662f\u5426 \u6709 \u5b89\u88c5 \uff1a sudo apt - get update # Update the Debian package index sudo apt - get install carla - simulator # Install the latest Carla version , or update the current installation cd / opt / carla - simulator # Open the folder where Carla is installed \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b Carla 0.9 . 10 \u53ca \u66f4 \u9ad8 \u7248\u672c \u3002 \u8981 \u5b89\u88c5 \u7279\u5b9a \u7248\u672c \uff0c \u8bf7 \u5c06 \u7248\u672c \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5b89\u88c5 \u547d\u4ee4 \u4e2d \uff1a apt - cache madison carla - simulator # List the available versions of Carla sudo apt - get install carla - simulator = 0.9 . 10 - 1 # In this case , \" 0.9 . 10 \" refers to a CARLA version , and \" 1 \" to the Debian revision \u91cd\u8981 \u8981 \u5b89\u88c5 0.9 . 10 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u4f7f\u7528 \u7a97\u53e3 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u7684 \u9762\u677f \u66f4 \u6539\u4e3a \u6587\u6863 \u7684 \u65e9\u671f \u7248\u672c \uff0c \u7136\u540e \u6309\u7167 \u65e7 \u7684 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \u3002","title":"A . Debian Carla \u5b89\u88c5"},{"location":"start_quickstart/#b","text":"Carla \u4ed3\u5e93 \u8be5 \u5b58\u50a8 \u5e93 \u5305\u542b \u4e0d\u540c \u7248\u672c \u7684 Carla \u3002 \u60a8 \u5c06 \u627e\u5230 \u4e0b\u8f7d \u5305\u542b \u6240\u6709 \u6700\u65b0 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u5f53\u524d \u7248\u672c \u3001 \u4ee5\u524d \u7684 \u7248\u672c \u4ee5\u53ca \u5305\u542b \u6240\u6709 \u5f00\u53d1 \u4fee\u590d \u548c \u529f\u80fd \u7684 \u591c\u95f4 \u6784\u5efa \uff08 \u591c\u95f4 \u6784\u5efa \u662f Carla \u6700 \u4e0d \u7a33\u5b9a \u7684 \u7248\u672c \uff09 \u7684 \u9009\u9879 \u3002 \u8be5 \u5305\u662f \u4e00\u4e2a \u540d\u4e3a CARLA _ version . number \u7684 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u3002 \u4e0b\u8f7d \u5e76 \u89e3\u538b \u53d1\u5e03 \u6587\u4ef6 \u3002 \u5b83 \u5305\u542b \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u9884 \u7f16\u8bd1 \u7248\u672c \u3001 Python API \u6a21\u5757 \u548c \u4e00\u4e9b \u7528\u4f5c \u793a\u4f8b \u7684 \u811a\u672c \u3002","title":"B . \u5305 \u5b89\u88c5"},{"location":"start_quickstart/#_3","text":"\u6bcf\u4e2a \u7248\u672c \u90fd \u6709 \u5176 \u81ea\u5df1 \u7684 \u9644\u52a0 \u8d44\u4ea7 \u548c \u5730\u56fe \u5730\u56fe\u5305 \u3002 \u6b64 \u9644\u52a0 \u5305 \u5305\u62ec \u5730\u56fe Town06 \u3001 Town07 \u548c Town10 \u3002 \u5b83\u4eec \u5355\u72ec \u5b58\u50a8 \u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \uff0c \u56e0\u6b64 \u53ea\u80fd \u5728 \u5b89\u88c5 \u4e3b\u5305 \u540e \u624d\u80fd \u5bfc\u5165 \u5b83\u4eec \u3002 1 . \u4e0b\u8f7d \u9002\u5408 \u60a8 \u6240 \u9700 \u7248\u672c \u7684 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u3002 2 . \u89e3\u538b \u89e3\u538b\u5305 \uff1a \u5728 Linux \u4e0a : \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u4ee5 \u63d0\u53d6 \u5185\u5bb9 \uff1a cd path / to / carla / root . / ImportAssets . sh \u5728 Windows \u4e0a : \u76f4\u63a5 \u5c06 \u5185\u5bb9 \u63d0\u53d6 \u5230 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002","title":"\u5bfc\u5165 \u989d\u5916 \u8d44\u4ea7"},{"location":"start_quickstart/#_4","text":"","title":"\u5b89\u88c5 \u5ba2\u6237\u7aef \u5e93"},{"location":"start_quickstart/#0912-carla","text":"\u4ee5\u524d \u7248\u672c \u7684 Carla \u4e0d \u9700\u8981 \u5b89\u88c5 Python \u5e93 \uff0c \u5b83\u4eec \u9644\u5e26 \u4e86 \u4e00\u4e2a . egg \u5f00\u7bb1 \u5373\u7528 \u7684 \u6587\u4ef6 \u3002 Carla \u7248\u672c 0.9 . 12 + \u663e \u7740 \u6539\u53d8 \u4e86 \u8fd9\u79cd \u884c\u4e3a \uff1b \u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f 0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c \uff0c \u8bf7 \u5728 \u5c4f\u5e55 \u53f3\u4e0b \u4e0b\u89d2 \u53f3\u4e0b\u89d2 \u9009\u62e9 \u8be5 \u7248\u672c \u4ee5 \u67e5\u770b \u76f8\u5173 \u6587\u6863 \u3002 \u5426\u5219 \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 Carla 0.9 . 12 + \u4e2d \u53ef\u7528 \u9009\u9879 \u7684 \u4fe1\u606f \u3002","title":"0.9 . 12 \u4e4b\u524d \u7684 Carla \u7248\u672c"},{"location":"start_quickstart/#carla-0912","text":"\u6709 \u591a\u4e2a \u9009\u9879 \u53ef \u7528\u4e8e \u5b89\u88c5 \u548c \u4f7f\u7528 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff1a . egg \u6587\u4ef6 . whl \u6587\u4ef6 \u53ef \u4e0b\u8f7d \u7684 Python \u5305 \u5728 \u51b3\u5b9a \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \u4e4b\u524d \uff0c \u8bf7 \u9605\u8bfb \u4e0b\u9762 \u6709\u5173 \u6bcf\u79cd \u65b9\u6cd5 \u7684 \u8981\u6c42 \u548c \u9650\u5236 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8bf7 \u6ce8\u610f \uff0c \u6df7\u5408 \u4f7f\u7528 \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u4e0d \u517c\u5bb9 \uff0c \u56e0\u6b64 \u8bf7 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u4f7f\u7528 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \uff0c \u6216\u8005 \u5728 \u4f7f\u7528 \u65b0\u5e93 \u4e4b\u524d \u5378\u8f7d \u4ee5\u524d \u5b89\u88c5 \u7684 \u5e93 \u3002 A . . egg \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u5728 PythonAPI / carla / dist / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \u4e0d\u540c Python \u7248\u672c . egg \u6587\u4ef6 \uff0c \u53ef\u4ee5 \u5f00\u7bb1 \u5373\u7528 \u3002 PythonAPI / examples \u4e2d \u7684 \u6bcf\u4e2a \u793a\u4f8b \u811a\u672c \u90fd \u5305\u542b \u4e00\u4e2a \u81ea\u52a8 \u67e5\u627e \u6b64 \u6587\u4ef6 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u5728 Linux \u4e2d \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 \u60a8 \u7684 PYTHONPATH \u3002 . \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 Carla \u4e2d . egg \u6587\u4ef6 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u4e4b\u524d \u5df2\u7ecf \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 pip \uff0c \u5219 \u8be5\u5e93 \u5c06 \u4f18\u5148 \u4e8e \u8be5 . egg \u6587\u4ef6 \u3002 \u60a8 \u9700\u8981 \u5148 \u5378\u8f7d \u4ee5\u524d \u7684 \u5e93 \u3002 B . . whl \u6587\u4ef6 Carla \u63d0\u4f9b \u4e86 \u4e0d\u540c Python \u7248\u672c \u7684 . whl \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 \u5b89\u88c5 \u8be5 . whl \u6587\u4ef6 \u3002 \u8be5 . whl \u6587\u4ef6 \u4f4d\u4e8e PythonAPI / carla / dist / \u3002 \u6bcf\u4e2a \u53d7 \u652f\u6301 \u7684 Python \u7248\u672c \u90fd \u6709 \u4e00\u4e2a \u6587\u4ef6 \uff0c \u7531 \u6587\u4ef6 \u6587\u4ef6\u540d \u6307\u793a \uff08 \u4f8b\u5982 \uff0c carla - 0.9 . 12 - cp36 - cp36m - manylinux _ 2 _ 27 _ x86 _ 64 . whl \u8868\u793a Python 3.6 \uff09 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff0c \u9009\u62e9 \u9002\u5408 \u60a8 \u6240 \u9700 Python \u7248\u672c \u7684 \u6587\u4ef6 \u3002 \u60a8 \u5c06 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \uff1a # Python 3 pip3 install < wheel - file - name > . whl # Python 2 pip install < wheel - file - name > . whl \u5982\u679c \u60a8 \u4e4b\u524d \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94\u5148 \u5378\u8f7d \u65e7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u7136\u540e \u518d \u5b89\u88c5 \u65b0 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u3002 C . \u53ef \u4e0b\u8f7d \u7684 Python \u5305 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \u53ef\u4ee5 \u4ece PyPi \u4e0b\u8f7d \u3002 \u8be5\u5e93 \u4e0e Python \u7248\u672c 2.7 \u3001 3.6 \u3001 3.7 \u548c 3.8 \u517c\u5bb9 \u3002 \u8981 \u5b89\u88c5 \u5b83 \uff0c \u60a8 \u9700\u8981 pip / pip3 \u7248\u672c 20.3 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u6709\u5173 \u5982\u4f55 \u68c0\u67e5 \u7248\u672c \u548c \u5347\u7ea7 pip / pip3 \u7684 \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u5f00\u59cb \u4e4b\u524d \u90e8\u5206 \u3002 \u5efa\u8bae \u5728 \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 \u4e2d \u5b89\u88c5 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u4ee5 \u907f\u514d \u5728 \u4f7f\u7528 \u591a\u4e2a \u7248\u672c \u65f6 \u53d1\u751f \u51b2\u7a81 \u53d1\u751f\u51b2\u7a81 \u3002 \u8981 \u4ece PyPi \u5b89\u88c5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u8bf7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a # Python 3 pip3 install carla # Python 2 pip install carla PyPi \u4e0b\u8f7d \u4ec5 \u9002\u5408 \u4e0e Carla \u5305 \u4e00\u8d77 \u4f7f\u7528 \uff08 \u5373 \u4e0d\u9002 \u7528\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \uff09 \u3002 \u7531\u4e8e PyPi \u4e0b\u8f7d \u4ec5 \u5305\u542b \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u56e0\u6b64 \u5728 \u60a8 \u5c06 \u4e0e \u8fdc\u7a0b Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u4fe1 \u4e14 \u4e0d \u9700\u8981 \u4e0b\u8f7d \u5b8c\u6574 \u7684 Carla \u5305 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u975e\u5e38 \u6709\u7528 \u3002","title":"Carla 0.9 . 12 +"},{"location":"start_quickstart/#carla_1","text":"\u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u5b89\u88c5 \u65b9\u6cd5 \u548c \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff1a Debian \u5b89\u88c5 : cd / opt / carla - simulator / bin / . / CarlaUE4 . sh Linux \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root . / CarlaUE4 . sh Windows \u5305 \u5b89\u88c5 \uff1a cd path / to / carla / root CarlaUE4 . exe \u5c06 \u5f39\u51fa \u4e00\u4e2a \u5305\u542b \u57ce\u5e02 \u666f\u89c2 \u7684 \u7a97\u53e3 \u3002 \u8fd9\u662f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u770b\u6cd5 \u3002 \u8981 \u5728 \u57ce\u5e02 \u4e2d \u98de\u884c \uff0c \u8bf7 \u4f7f\u7528 \u9f20\u6807 \u548c WASD \u6309\u952e \uff0c \u6309\u4f4f \u9f20\u6807 \u53f3\u952e \u63a7\u5236 \u65b9\u5411 \u3002 \u8fd9\u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u5b83 \u73b0\u5728 \u6b63\u5728 \u8fd0\u884c \u5e76 \u7b49\u5f85 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5e76 \u4e0e \u4e16\u754c \u4ea4\u4e92 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u5728 \u57ce\u5e02 \u4e2d \u4ea7\u751f \u751f\u547d \u5e76 \u9a7e\u9a76 \u6c7d\u8f66 \uff1a # \u7ec8\u7aef A cd PythonAPI \\ examples python3 - m pip install - r requirements . txt # Support for Python2 is provided in the CARLA release packages python3 generate _ traffic . py # Terminal B cd PythonAPI \\ examples python3 manual _ control . py","title":"\u8fd0\u884c Carla"},{"location":"start_quickstart/#_5","text":"\u542f\u52a8 Carla \u65f6\u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u914d\u7f6e \u9009\u9879 \uff0c \u53ef\u4ee5 \u6309 \u5982\u4e0b \u65b9\u5f0f \u4f7f\u7528 \u5b83\u4eec \uff1a . / CarlaUE4 . sh - carla - rpc - port = 3000 - carla - rpc - port = N \u4fa6\u542c \u7aef\u53e3 N \u4e0a \u7684 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u3002 \u5a92\u4f53 \u6d41\u5a92\u4f53 \u7aef\u53e3 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a N + 1 \u3002 - carla - streaming - port = N \u6307\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u6570\u636e\u6d41 \u7684 \u7aef\u53e3 \u3002 \u4f7f\u7528 0 \u83b7\u53d6 \u968f\u673a \u672a \u4f7f\u7528 \u7684 \u7aef\u53e3 \u3002 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u7aef\u53e3 \u5c06 \u81ea\u52a8 \u8bbe\u7f6e \u4e3a N + 1 \u3002 - quality - level = { Low , Epic } \u66f4\u6539 \u56fe\u5f62 \u8d28\u91cf \u7ea7\u522b \u3002 \u5728 \u6e32\u67d3 \u9009\u9879 \u4e2d \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u865a\u5e7b \u5f15\u64ce 4 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u5217\u8868 \u3002 \u3002 \u865a\u5e7b \u5f15\u64ce \u63d0\u4f9b \u4e86 \u5f88\u591a \u9009\u9879 \uff0c \u4f46 \u5e76\u975e \u6240\u6709 \u8fd9\u4e9b \u9009\u9879 \u5728 Carla \u4e2d \u90fd \u53ef\u7528 \u3002 \u8be5 \u811a\u672c PythonAPI / util / config . py \u63d0\u4f9b \u4e86 \u66f4 \u591a \u914d\u7f6e \u9009\u9879 \uff0c \u5e94 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u542f\u52a8 \u65f6 \u8fd0\u884c \uff1a . / config . py -- no - rendering # Disable rendering . / config . py -- map Town05 # Change map . / config . py -- weather ClearNoon # Change weather . / config . py -- help # Check all the available configuration options","title":"\u547d\u4ee4\u884c \u9009\u9879"},{"location":"start_quickstart/#carla_2","text":"\u65e0\u6cd5 \u66f4\u65b0 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5f53\u65b0 \u7248\u672c \u53d1\u5e03 \u65f6 \uff0c \u5b58\u50a8 \u5e93\u4f1a \u66f4\u65b0 \uff0c \u60a8 \u9700\u8981 \u5220\u9664 \u4ee5\u524d \u7684 \u7248\u672c \u5e76 \u5b89\u88c5 \u65b0 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 pip / pip3 \u5b89\u88c5 \u4e86 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e93 \uff0c \u5219 \u5e94 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5c06 \u5176 \u5378\u8f7d \uff1a # Python 3 pip3 uninstall carla # Python 2 pip uninstall carla","title":"\u66f4\u65b0 Carla"},{"location":"start_quickstart/#_6","text":"\u73b0\u5728 \u60a8 \u5e94\u8be5 \u5df2\u7ecf \u542f\u52a8 \u5e76 \u8fd0\u884c \u4e86 Carla \u7684 \u6253\u5305 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u5728 \u5b89\u88c5 \u8fc7\u7a0b \u4e2d \u9047\u5230 \u4efb\u4f55 \u56f0\u96be \uff0c \u8bf7 \u968f\u65f6 \u5728 Carla \u8bba\u575b \u6216 Discord \u9891\u9053 \u4e2d \u53d1\u5e16 \u3002 \u4e0b \u4e00\u6b65 \u662f \u8be6\u7ec6 \u4e86\u89e3 Carla \u7684 \u6838\u5fc3 \u6982\u5ff5 \u3002 \u9605\u8bfb \u201c \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u201d \u90e8\u5206 \u5f00\u59cb \u5b66\u4e60 \u3002 \u60a8 \u8fd8 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u6709\u5173 Python API \u7c7b \u548c \u65b9\u6cd5 \u7684 \u6240\u6709 \u4fe1\u606f \u3002 \u524d\u5f80 \uff1a \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65","title":"\u8ddf\u8fdb"},{"location":"todo/","text":"\u5f85 \u505a \u6280\u672f \u6587\u6863 \u68c0\u67e5 \u6587\u6863 \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \u3001 \u524d\u540e \u4e0d \u4e00\u81f4 \u7b49 \uff1b \u5b8c\u5584 \u5bf9\u5e94 \u6587\u6863 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff08 \u505a\u597d \u914d\u7f6e \u8bf4\u660e \uff09 \uff1b \u6574\u7406 Carla \u793e\u533a \u7684 \u6587\u6863 \u3001 \u4ee3\u7801 \uff0c \u6bd4\u5982 carla \u3001 awesome \uff1b \u6574\u7406 \u795e\u7ecf \u79d1\u5b66 \u795e\u7ecf\u79d1 \u795e\u7ecf\u79d1\u5b66 \u539f\u7406 \u3001 \u524d\u989d \u53f6 \u76ae\u5c42 \u3001 \u5f3a\u5316 \u5b66\u4e60 \u5bfc\u8bba \u5fc3\u7406 \u7406\u5b66 \u5fc3\u7406\u5b66 \u7ae0\u8282 \uff1b \u5b66\u672f \u7814\u7a76 \u5b66\u672f\u7814\u7a76 \u611f\u77e5 \u76ee\u6807 \u8ddf\u8e2a \u3001 \u518d \u8bc6\u522b \u3001 \u8bed\u4e49 \u5206\u5272 \u3001 \u9aa8\u67b6 \u8bc6\u522b \u7b49 \u3002 \u89c4\u5212 \u5b9a\u4f4d \u3001 \u60ef\u89c6 \u878d\u5408 \u3001 \u5efa\u56fe \u3001 \u89c4\u5212 \u3001 \u51b3\u7b56 \u3002 \u63a7\u5236 PID \u3001 \u57fa\u4e8e \u6a21\u578b \u7684 \u63a7\u5236 \u3002 \u573a\u666f \u667a\u80fd \u4f53 \u3001 \u667a\u80fd \u9a7e\u9a76 \u3001 \u673a\u5668 \u673a\u5668\u4eba \u3001 \u65e0\u4eba \u4eba\u673a \u65e0\u4eba\u673a \u7b49 \u3002 \u63d0\u4f9b \u6570\u636e \u63d0\u4f9b\u6570\u636e \u5b6a\u751f \u5efa\u7b51 \u751f\u6210 \u7684 Python \u63a5\u53e3 \u3002 \u827a\u672f \u6539\u8fdb \u573a\u666f \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u5efa\u6a21 \uff08 \u5220\u9664 \uff09 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u7b49 \uff1b \u8d44\u4ea7 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u3001 \u884c\u4eba \u3001 \u8f66\u8f86 \u3001 \u6811\u6728 \u7b49 \uff1b \u865a\u5e7b \u5f15\u64ce \u5f15\u64ce \u4f18\u5316 \uff1a \u53ef \u53d8\u5f62 \u8d44\u4ea7 \u3001 \u8f66\u8f86 \u78b0\u649e \u3001 \u6587\u6863 \u672c\u5730 \u672c\u5730\u5316 \u6574\u7406 \u3002 \u52a0\u8f7d \u8fdb\u5ea6 \uff1b \u6709\u9650 \u6709\u9650\u5143 \u5f00\u6e90 \u591a \u7269\u7406 \u573a \u4eff\u771f \u5f15\u64ce Chrono \u3002 \u7b2c\u4e09 \u4e09\u65b9 \u7b2c\u4e09\u65b9 \u5de5\u5177 Carla \u8c03\u8bd5 \u5de5\u5177","title":"\u5f85 \u505a \u5217\u8868"},{"location":"todo/#_1","text":"","title":"\u5f85 \u505a"},{"location":"todo/#_2","text":"\u68c0\u67e5 \u6587\u6863 \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \u3001 \u524d\u540e \u4e0d \u4e00\u81f4 \u7b49 \uff1b \u5b8c\u5584 \u5bf9\u5e94 \u6587\u6863 \u7684 \u793a\u4f8b \u4ee3\u7801 \uff08 \u505a\u597d \u914d\u7f6e \u8bf4\u660e \uff09 \uff1b \u6574\u7406 Carla \u793e\u533a \u7684 \u6587\u6863 \u3001 \u4ee3\u7801 \uff0c \u6bd4\u5982 carla \u3001 awesome \uff1b \u6574\u7406 \u795e\u7ecf \u79d1\u5b66 \u795e\u7ecf\u79d1 \u795e\u7ecf\u79d1\u5b66 \u539f\u7406 \u3001 \u524d\u989d \u53f6 \u76ae\u5c42 \u3001 \u5f3a\u5316 \u5b66\u4e60 \u5bfc\u8bba \u5fc3\u7406 \u7406\u5b66 \u5fc3\u7406\u5b66 \u7ae0\u8282 \uff1b","title":"\u6280\u672f \u6587\u6863"},{"location":"todo/#_3","text":"","title":"\u5b66\u672f\u7814\u7a76"},{"location":"todo/#_4","text":"\u76ee\u6807 \u8ddf\u8e2a \u3001 \u518d \u8bc6\u522b \u3001 \u8bed\u4e49 \u5206\u5272 \u3001 \u9aa8\u67b6 \u8bc6\u522b \u7b49 \u3002","title":"\u611f\u77e5"},{"location":"todo/#_5","text":"\u5b9a\u4f4d \u3001 \u60ef\u89c6 \u878d\u5408 \u3001 \u5efa\u56fe \u3001 \u89c4\u5212 \u3001 \u51b3\u7b56 \u3002","title":"\u89c4\u5212"},{"location":"todo/#_6","text":"PID \u3001 \u57fa\u4e8e \u6a21\u578b \u7684 \u63a7\u5236 \u3002","title":"\u63a7\u5236"},{"location":"todo/#_7","text":"\u667a\u80fd \u4f53 \u3001 \u667a\u80fd \u9a7e\u9a76 \u3001 \u673a\u5668 \u673a\u5668\u4eba \u3001 \u65e0\u4eba \u4eba\u673a \u65e0\u4eba\u673a \u7b49 \u3002 \u63d0\u4f9b \u6570\u636e \u63d0\u4f9b\u6570\u636e \u5b6a\u751f \u5efa\u7b51 \u751f\u6210 \u7684 Python \u63a5\u53e3 \u3002","title":"\u573a\u666f"},{"location":"todo/#_8","text":"\u573a\u666f \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u5efa\u6a21 \uff08 \u5220\u9664 \uff09 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u7b49 \uff1b \u8d44\u4ea7 \uff1a \u9053\u8def \u3001 \u5efa\u7b51 \u3001 \u884c\u4eba \u3001 \u8f66\u8f86 \u3001 \u6811\u6728 \u7b49 \uff1b","title":"\u827a\u672f \u6539\u8fdb"},{"location":"todo/#_9","text":"\u5f15\u64ce \u4f18\u5316 \uff1a \u53ef \u53d8\u5f62 \u8d44\u4ea7 \u3001 \u8f66\u8f86 \u78b0\u649e \u3001 \u6587\u6863 \u672c\u5730 \u672c\u5730\u5316 \u6574\u7406 \u3002 \u52a0\u8f7d \u8fdb\u5ea6 \uff1b","title":"\u865a\u5e7b \u5f15\u64ce"},{"location":"todo/#_10","text":"\u5f00\u6e90 \u591a \u7269\u7406 \u573a \u4eff\u771f \u5f15\u64ce Chrono \u3002","title":"\u6709\u9650\u5143"},{"location":"todo/#_11","text":"Carla \u8c03\u8bd5 \u5de5\u5177","title":"\u7b2c\u4e09\u65b9 \u5de5\u5177"},{"location":"todo_list/","text":"\u8ba1\u5212 VS \u786c\u76d8 \u786c\u76d8\u7248 \u5236\u4f5c \u53d1\u5e03 \u6267\u884c \u884c\u7a0b \u7a0b\u5e8f \u53ef\u6267\u884c\u7a0b\u5e8f make launch \u65f6\u62a5 \u9519 \uff1a could not find any instance of Visual Studio . \u7ec8\u6b62 BuildLibCarla . bat \u7684 \u6267\u884c \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8bd1 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6ce8\u91ca \u6389 Util \\ BuildTools \\ BuildCarlaUE4 . bat \u4e2d \u201c \u6784\u5efa Carla \u7f16\u8f91 \u7f16\u8f91\u5668 \u201d \u7684 \u90e8\u5206 \u3002 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6\u62a5 \u9519 \uff1a \u7531\u4e8e \u627e \u4e0d\u5230 XINPUT1 _ 3 . dll \uff0c \u65e0\u6cd5 \u7ee7\u7eed \u6267\u884c \u7ee7\u7eed\u6267\u884c \u4ee3\u7801 \u3002 \u8be5 \u52a8\u6001 \u5e93 \u6587\u4ef6 \u4f4d\u4e8e engine \\ Engine \\ Binaries \\ ThirdParty \\ AppLocalDependencies \\ Win64 \\ DirectX \u76ee\u5f55 \u4e0b \uff0c \u5e94\u8be5 \u662f \u865a\u5e7b \u5f15\u64ce \u7f16\u8bd1 \u65f6\u5411 \u7cfb\u7edf \u6ce8\u5165 \u4e86 \u4e00\u4e9b \u52a8\u6001 \u5e93 \u6587\u4ef6 \u3002 \u4f7f\u7528 \u547d\u4ee4 \u547d\u4ee4\u884c \u7f16\u8bd1 \u5de5\u7a0b sln \" C : \\ \\ Program Files ( x86 ) \\ \\ Microsoft Visual Studio \\ \\ 2019 \\ \\ Enterprise \\ \\ Common7 \\ \\ IDE \\ \\ \\ devenv . com \" UE4 . sln / Build","title":"\u8ba1\u5212"},{"location":"todo_list/#_1","text":"VS \u786c\u76d8 \u786c\u76d8\u7248 \u5236\u4f5c","title":"\u8ba1\u5212"},{"location":"todo_list/#_2","text":"make launch \u65f6\u62a5 \u9519 \uff1a could not find any instance of Visual Studio . \u7ec8\u6b62 BuildLibCarla . bat \u7684 \u6267\u884c \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8bd1 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6ce8\u91ca \u6389 Util \\ BuildTools \\ BuildCarlaUE4 . bat \u4e2d \u201c \u6784\u5efa Carla \u7f16\u8f91 \u7f16\u8f91\u5668 \u201d \u7684 \u90e8\u5206 \u3002 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u65f6\u62a5 \u9519 \uff1a \u7531\u4e8e \u627e \u4e0d\u5230 XINPUT1 _ 3 . dll \uff0c \u65e0\u6cd5 \u7ee7\u7eed \u6267\u884c \u7ee7\u7eed\u6267\u884c \u4ee3\u7801 \u3002 \u8be5 \u52a8\u6001 \u5e93 \u6587\u4ef6 \u4f4d\u4e8e engine \\ Engine \\ Binaries \\ ThirdParty \\ AppLocalDependencies \\ Win64 \\ DirectX \u76ee\u5f55 \u4e0b \uff0c \u5e94\u8be5 \u662f \u865a\u5e7b \u5f15\u64ce \u7f16\u8bd1 \u65f6\u5411 \u7cfb\u7edf \u6ce8\u5165 \u4e86 \u4e00\u4e9b \u52a8\u6001 \u5e93 \u6587\u4ef6 \u3002 \u4f7f\u7528 \u547d\u4ee4 \u547d\u4ee4\u884c \u7f16\u8bd1 \u5de5\u7a0b sln \" C : \\ \\ Program Files ( x86 ) \\ \\ Microsoft Visual Studio \\ \\ 2019 \\ \\ Enterprise \\ \\ Common7 \\ \\ IDE \\ \\ \\ devenv . com \" UE4 . sln / Build","title":"\u53d1\u5e03 \u53ef\u6267\u884c\u7a0b\u5e8f"},{"location":"ts_traffic_simulation_overview/","text":"Carla \u4e2d \u7684 \u4ea4\u901a \u4eff\u771f \u4ea4\u901a \u4eff\u771f \u662f \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u51c6\u786e \u9ad8\u6548 \u7684 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u9009\u9879 \u6765 \u4eff\u771f \u4ea4\u901a \u548c \u7279\u5b9a \u7684 \u4ea4\u901a \u573a\u666f \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u53ef\u7528 \u9009\u9879 \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u786e\u5b9a \u6700 \u9002\u5408 \u60a8 \u7684 \u7528\u4f8b \u7684 \u9009\u9879 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 Scenario Runner \u548c OpenScenario Scenic SUMO \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u662f Carla \u4e2d \u7684 \u4e00\u4e2a \u6a21\u5757 \uff0c \u7528\u4e8e \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u4e2d \u7684 \u67d0\u4e9b \u8f66\u8f86 \u3002 carla . Vehicle . set _ autopilot \u8f66\u8f86 \u901a\u8fc7 \u65b9\u6cd5 \u6216 \u6ce8\u518c \u5230 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 command . SetAutopilot \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u63a7\u5236 \u662f \u901a\u8fc7 \u4e0d\u540c \u9636\u6bb5 \u7684 \u5faa\u73af \u6765 \u7ba1\u7406 \u7684 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u7528\u4e8e \uff1a \u7528 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u586b\u5145 \u4eff\u771f \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ea4\u901a \u884c\u4e3a \u4ee5 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002 \u5f00\u53d1 \u4e0e \u9636\u6bb5 \u76f8\u5173 \u7684 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u8f6c \u81f3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 Scenario Runner \u548c OpenScenario Scenario Runner \u63d0\u4f9b \u5f00\u7bb1 \u5373\u7528 \u7684 \u9884\u5b9a \u4e49 \u4ea4\u901a \u573a\u666f \uff0c \u8fd8 \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 Python \u6216 OpenSCENARIO 1.0 \u6807\u51c6 \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u573a\u666f \u3002 OpenSCENARIO \u7684 \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \u662f \u63cf\u8ff0 \u6d89\u53ca \u591a\u8f86 \u8f66 \u7684 \u590d\u6742 \u64cd\u4f5c \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u67e5\u770b Scenario Runner \u652f\u6301 OpenSCENARIO \u7684 \u54ea\u4e9b \u529f\u80fd \u3002 \u8fd9\u4e9b \u529f\u80fd \u5305\u62ec \u6f14\u4e60 \u3001 \u52a8\u4f5c \u3001 \u6761\u4ef6 \u3001 \u6545\u4e8b \u548c \u6545\u4e8b \u677f \u3002 Scenario Runner \u5fc5\u987b \u4e0e \u4e3b Carla \u5305 \u5206\u5f00 \u5b89\u88c5 \u3002 \u7528\u4e8e \uff1a \u521b\u5efa \u590d\u6742 \u7684 \u4ea4\u901a \u573a\u666f \u548c \u8def\u7ebf \uff0c \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u505a\u597d \u51c6\u5907 \uff0c \u4ee5\u4fbf \u5728 Carla \u6392\u884c \u6392\u884c\u699c \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u3002 \u5b9a\u4e49 \u53ef \u9488\u5bf9 \u573a\u666f \u4eff\u771f \u7684 \u8bb0\u5f55 \u8fd0\u884c \u7684 \u5b9a\u5236 \u6307\u6807 \uff0c \u4ece\u800c \u65e0\u9700 \u91cd\u590d \u8fd0\u884c \u4eff\u771f \u3002 \u8f6c \u5230 Scenario Runner Scenic Scenic \u662f \u4e00\u79cd \u7279\u5b9a \u9886\u57df \u7684 \u6982\u7387 \u7f16\u7a0b \u8bed\u8a00 \u7f16\u7a0b\u8bed\u8a00 \uff0c \u7528\u4e8e \u5bf9 \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u7b49 \u7f51\u7edc \u7269\u7406 \u7cfb\u7edf \u7684 \u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 Scenic \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u4e13\u95e8 \u9886\u57df \u6765 \u4fc3\u8fdb Scenic \u811a\u672c \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u7684 \u6267\u884c \u3002 Scenic \u573a\u666f \u5b9a\u4e49 \u6613\u4e8e \u9605\u8bfb \u548c \u6784\u5efa \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u521b\u5efa \u7b80\u5355 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u7528\u4e8e \uff1a \u4f7f\u7528 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u4e3a \u52a8\u6001 \u667a\u80fd \u4f53 \u5b9a\u4e49 \u6982\u7387 \u7b56\u7565 \uff0c \u4ee5\u4fbf \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \u91c7\u53d6 \u884c\u52a8 \u91c7\u53d6\u884c\u52a8 \u4ee5 \u54cd\u5e94 \u4e16\u754c \u72b6\u51b5 \u3002 \u8f6c \u81f3 Scenic \u6559\u7a0b SUMO SUMO \u662f \u4e00\u79cd \u5f00\u6e90 \u3001 \u5fae\u89c2 \u3001 \u591a \u6a21\u5f0f \u4ea4\u901a \u4eff\u771f \u3002 \u5728 SUMO \u4e2d \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u7ecf\u8fc7 \u660e\u786e \u5efa\u6a21 \uff0c \u6709 \u81ea\u5df1 \u7684 \u8def\u7ebf \uff0c \u5e76 \u901a\u8fc7 \u7f51\u7edc \u5355\u72ec \u79fb\u52a8 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \uff0c \u4f46 \u6709 \u591a\u79cd \u9009\u9879 \u53ef\u4ee5 \u5f15\u5165 \u968f\u673a \u968f\u673a\u6027 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u529f\u80fd \uff0c \u5141\u8bb8 \u5728 \u4e24\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u4ea7\u751f \uff0c \u5e76 \u7531 SUMO \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6240 \u505a \u7684 \u90a3\u6837 \u3002 \u7528\u4e8e \uff1a \u5728 \u4e00\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e2d \u5229\u7528 Carla \u548c SUMO \u7684 \u529f\u80fd \u3002 \u8f6c \u81f3 SUMO \u534f\u540c \u4eff\u771f \u5982\u679c \u60a8 \u5bf9 Carla \u4e2d \u4eff\u771f \u4ea4\u901a \u7684 \u4e0d\u540c \u9009\u9879 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u6216 Discord \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u4ea4\u901a"},{"location":"ts_traffic_simulation_overview/#carla","text":"\u4ea4\u901a \u4eff\u771f \u662f \u81ea\u52a8 \u9a7e\u9a76 \u5806\u6808 \u51c6\u786e \u9ad8\u6548 \u7684 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u4e0d\u53ef \u6216\u7f3a \u4e0d\u53ef\u6216\u7f3a \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 Carla \u63d0\u4f9b \u4e86 \u8bb8\u591a \u4e0d\u540c \u7684 \u9009\u9879 \u6765 \u4eff\u771f \u4ea4\u901a \u548c \u7279\u5b9a \u7684 \u4ea4\u901a \u573a\u666f \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u53ef\u7528 \u9009\u9879 \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u786e\u5b9a \u6700 \u9002\u5408 \u60a8 \u7684 \u7528\u4f8b \u7684 \u9009\u9879 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 Scenario Runner \u548c OpenScenario Scenic SUMO","title":"Carla \u4e2d \u7684 \u4ea4\u901a \u4eff\u771f"},{"location":"ts_traffic_simulation_overview/#_1","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u662f Carla \u4e2d \u7684 \u4e00\u4e2a \u6a21\u5757 \uff0c \u7528\u4e8e \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u4e2d \u7684 \u67d0\u4e9b \u8f66\u8f86 \u3002 carla . Vehicle . set _ autopilot \u8f66\u8f86 \u901a\u8fc7 \u65b9\u6cd5 \u6216 \u6ce8\u518c \u5230 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 command . SetAutopilot \u3002 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u63a7\u5236 \u662f \u901a\u8fc7 \u4e0d\u540c \u9636\u6bb5 \u7684 \u5faa\u73af \u6765 \u7ba1\u7406 \u7684 \uff0c \u6bcf\u4e2a \u9636\u6bb5 \u90fd \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \u3002 \u7528\u4e8e \uff1a \u7528 \u771f\u5b9e \u7684 \u57ce\u5e02 \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \u586b\u5145 \u4eff\u771f \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u4ea4\u901a \u884c\u4e3a \u4ee5 \u8bbe\u7f6e \u7279\u5b9a \u7684 \u5b66\u4e60 \u73af\u5883 \u3002 \u5f00\u53d1 \u4e0e \u9636\u6bb5 \u76f8\u5173 \u7684 \u529f\u80fd \u548c \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u540c\u65f6 \u63d0\u9ad8 \u8ba1\u7b97 \u6548\u7387 \u3002 \u8f6c \u81f3 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"ts_traffic_simulation_overview/#scenario-runner-openscenario","text":"Scenario Runner \u63d0\u4f9b \u5f00\u7bb1 \u5373\u7528 \u7684 \u9884\u5b9a \u4e49 \u4ea4\u901a \u573a\u666f \uff0c \u8fd8 \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 Python \u6216 OpenSCENARIO 1.0 \u6807\u51c6 \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u573a\u666f \u3002 OpenSCENARIO \u7684 \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \u662f \u63cf\u8ff0 \u6d89\u53ca \u591a\u8f86 \u8f66 \u7684 \u590d\u6742 \u64cd\u4f5c \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 \u8fd9\u91cc \u67e5\u770b Scenario Runner \u652f\u6301 OpenSCENARIO \u7684 \u54ea\u4e9b \u529f\u80fd \u3002 \u8fd9\u4e9b \u529f\u80fd \u5305\u62ec \u6f14\u4e60 \u3001 \u52a8\u4f5c \u3001 \u6761\u4ef6 \u3001 \u6545\u4e8b \u548c \u6545\u4e8b \u677f \u3002 Scenario Runner \u5fc5\u987b \u4e0e \u4e3b Carla \u5305 \u5206\u5f00 \u5b89\u88c5 \u3002 \u7528\u4e8e \uff1a \u521b\u5efa \u590d\u6742 \u7684 \u4ea4\u901a \u573a\u666f \u548c \u8def\u7ebf \uff0c \u4e3a \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u505a\u597d \u51c6\u5907 \uff0c \u4ee5\u4fbf \u5728 Carla \u6392\u884c \u6392\u884c\u699c \u4e0a \u8fdb\u884c \u8bc4\u4f30 \u3002 \u5b9a\u4e49 \u53ef \u9488\u5bf9 \u573a\u666f \u4eff\u771f \u7684 \u8bb0\u5f55 \u8fd0\u884c \u7684 \u5b9a\u5236 \u6307\u6807 \uff0c \u4ece\u800c \u65e0\u9700 \u91cd\u590d \u8fd0\u884c \u4eff\u771f \u3002 \u8f6c \u5230 Scenario Runner","title":"Scenario Runner \u548c OpenScenario"},{"location":"ts_traffic_simulation_overview/#scenic","text":"Scenic \u662f \u4e00\u79cd \u7279\u5b9a \u9886\u57df \u7684 \u6982\u7387 \u7f16\u7a0b \u8bed\u8a00 \u7f16\u7a0b\u8bed\u8a00 \uff0c \u7528\u4e8e \u5bf9 \u673a\u5668 \u673a\u5668\u4eba \u548c \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u7b49 \u7f51\u7edc \u7269\u7406 \u7cfb\u7edf \u7684 \u73af\u5883 \u8fdb\u884c \u5efa\u6a21 \u3002 Scenic \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u4e13\u95e8 \u9886\u57df \u6765 \u4fc3\u8fdb Scenic \u811a\u672c \u5728 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u7684 \u6267\u884c \u3002 Scenic \u573a\u666f \u5b9a\u4e49 \u6613\u4e8e \u9605\u8bfb \u548c \u6784\u5efa \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u521b\u5efa \u7b80\u5355 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u7528\u4e8e \uff1a \u4f7f\u7528 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u4e3a \u52a8\u6001 \u667a\u80fd \u4f53 \u5b9a\u4e49 \u6982\u7387 \u7b56\u7565 \uff0c \u4ee5\u4fbf \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \u91c7\u53d6 \u884c\u52a8 \u91c7\u53d6\u884c\u52a8 \u4ee5 \u54cd\u5e94 \u4e16\u754c \u72b6\u51b5 \u3002 \u8f6c \u81f3 Scenic \u6559\u7a0b","title":"Scenic"},{"location":"ts_traffic_simulation_overview/#sumo","text":"SUMO \u662f \u4e00\u79cd \u5f00\u6e90 \u3001 \u5fae\u89c2 \u3001 \u591a \u6a21\u5f0f \u4ea4\u901a \u4eff\u771f \u3002 \u5728 SUMO \u4e2d \uff0c \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u90fd \u7ecf\u8fc7 \u660e\u786e \u5efa\u6a21 \uff0c \u6709 \u81ea\u5df1 \u7684 \u8def\u7ebf \uff0c \u5e76 \u901a\u8fc7 \u7f51\u7edc \u5355\u72ec \u79fb\u52a8 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u662f \u786e\u5b9a \u5b9a\u6027 \u786e\u5b9a\u6027 \u7684 \uff0c \u4f46 \u6709 \u591a\u79cd \u9009\u9879 \u53ef\u4ee5 \u5f15\u5165 \u968f\u673a \u968f\u673a\u6027 \u3002 Carla \u63d0\u4f9b \u4e86 \u4e0e SUMO \u7684 \u8054\u5408 \u4eff\u771f \u529f\u80fd \uff0c \u5141\u8bb8 \u5728 \u4e24\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e4b\u95f4 \u5206\u914d \u4efb\u52a1 \u5206\u914d\u4efb\u52a1 \u3002 \u8f66\u8f86 \u53ef\u4ee5 \u901a\u8fc7 SUMO \u5728 Carla \u4e2d \u4ea7\u751f \uff0c \u5e76 \u7531 SUMO \u8fdb\u884c \u7ba1\u7406 \uff0c \u5c31 \u50cf \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6240 \u505a \u7684 \u90a3\u6837 \u3002 \u7528\u4e8e \uff1a \u5728 \u4e00\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u4e2d \u5229\u7528 Carla \u548c SUMO \u7684 \u529f\u80fd \u3002 \u8f6c \u81f3 SUMO \u534f\u540c \u4eff\u771f \u5982\u679c \u60a8 \u5bf9 Carla \u4e2d \u4eff\u771f \u4ea4\u901a \u7684 \u4e0d\u540c \u9009\u9879 \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u6216 Discord \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"SUMO"},{"location":"tuto_A_add_props/","text":"\u6dfb\u52a0 \u65b0 \u9053\u5177 \u9664\u4e86 \u5730\u56fe \u548c \u8f66\u8f86 \u4e4b\u5916 \uff0c \u9053\u5177 \u662f \u573a\u666f \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u51c6\u5907 \u5305 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u521b\u5efa JSON \u63cf\u8ff0 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u51c6\u5907 \u5305 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 1 . \u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u4e0d \u76f8\u5173 \u3002 2 . \u521b\u5efa \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u901a\u7528 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u653e \u6240\u6709 \u9053\u5177 \uff0c \u5e76\u4e14 \u5728 \u5176\u4e2d \u5305\u542b \u4e0e \u8981 \u5bfc\u5165 \u7684 \u9053\u5177 \u4e00\u6837 \u591a \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 3 . \u5c06 \u5404\u4e2a \u9053\u5177 \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u9053\u5177 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b . fbx \u7f51\u683c \u7269\u4f53 \uff0c \u4ee5\u53ca \u5b83 \u6240 \u9700 \u7684 \u7eb9\u7406 \uff08 \u53ef \u9009 \uff09 \u3002 \u4f8b\u5982 \uff0c \u5305\u542b \u4e24\u4e2a \u72ec\u7acb \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u251c \u2500 \u2500 Package01 \u2502 \u251c \u2500 \u2500 Package01 . json \u2502 \u2514 \u2500 \u2500 Props \u2502 \u251c \u2500 \u2500 Prop01 \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Diff . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Norm . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Spec . png \u2502 \u2502 \u2514 \u2500 \u2500 Prop01 . fbx \u2502 \u2514 \u2500 \u2500 Prop02 \u2502 \u2514 \u2500 \u2500 Prop02 . fbx \u2514 \u2500 \u2500 Package02 \u251c \u2500 \u2500 Packag02 . json \u2514 \u2500 \u2500 Props \u2514 \u2500 \u2500 Prop03 \u2514 \u2500 \u2500 Prop03 . fbx \u521b\u5efa JSON \u63cf\u8ff0 \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe maps \u548c \u9053\u5177 props \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u4e0d\u662f \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8be5 \u5b9a\u4e49 \u5c06 \u4e3a \u7a7a \u3002 \u6709 \u4e00\u4e2a \u5177\u4f53 \u7684 \u6559\u7a0b \u6765 \u6dfb\u52a0 \u65b0 \u5730\u56fe \u3002 Props \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \u3002 \u9053\u5177 \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u76f8\u540c \u3002 . fbx \u7684 source \u8def\u5f84 \u3002 \u9053\u5177 \u7684 size \u4f30\u8ba1 \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u53ef\u80fd \u7684 \u503c \u3002 tiny small medium big huge \u8bed\u4e49 \u5206\u5272 \u7684 tag \u3002 \u5982\u679c \u6807\u7b7e \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \uff0c \u5b83 \u5c06 \u88ab \u8bfb\u53d6 \u4e3a Unlabeled . Bridge Building Dynamic Fence Ground GuardRail Other Pedestrian Pole RailTrack Road RoadLine SideWalk Sky Static Terrain TrafficLight TrafficSign Unlabeled Vegetation Vehicles Wall Water \u6700\u540e \uff0c . json \u5e94\u8be5 \u4e0e \u4e0b\u9762 \u7684 \u7c7b\u4f3c \u3002 { \" maps \" : [ ] , \" props \" : [ { \" name \" : \" MyProp01 \" , \" size \" : \" medium \" , \" source \" : \" . / Props / Prop01 / Prop01 . fbx \" , \" tag \" : \" SemanticSegmentationTag01 \" } , { \" name \" : \" MyProp02 \" , \" size \" : \" small \" , \" source \" : \" . / Props / Prop02 / Prop02 . fbx \" , \" tag \" : \" SemanticSegmentationTag02 \" } ] } \u8b66\u544a \u5177\u6709 \u76f8\u540c \u540d\u79f0 \u7684 \u5305 \u5c06 \u4ea7\u751f \u9519\u8bef \u3002 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u8fd9\u662f \u7528\u4e8e \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305 \uff08 \u4f8b\u5982 Carla 0.9 . 8 \uff09 \u4e2d \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u9ed1\u76d2 \u76d2\u5b50 \u9ed1\u76d2\u5b50 \uff0c \u81ea\u52a8 \u5c06 \u5305 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u955c\u50cf \u4e2d \uff0c \u5e76 \u751f\u6210 \u5206\u53d1 \u5305 \u3002 Docker \u955c\u50cf \u9700\u8981 4 \u5c0f\u65f6 \u548c 400GB \u624d\u80fd \u6784\u5efa \u3002 \u7136\u800c \uff0c \u8fd9\u4ec5 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u9700\u8981 \u3002 1 . \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u955c\u50cf \u3002 \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u6784\u5efa \u6620\u50cf \u3002 2 . \u8fd0\u884c \u811a\u672c \u6765 \u70d8\u57f9 \u9053\u5177 \u3002 ~ / carla / Util / Docker \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d\u6709 \u4e00\u4e2a \u811a\u672c \uff0c \u5b83 \u4e0e \u4e4b\u524d \u521b\u5efa \u7684 Docker \u6620\u50cf \u8fde\u63a5 \uff0c \u5e76 \u81ea\u52a8 \u8fdb\u884c \u5bfc\u5165 \u3002 \u5b83 \u53ea \u9700\u8981 \u8f93\u5165 \u548c \u8f93\u51fa \u6587\u4ef6 \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u7684 \u5305 \u7684 \u540d\u79f0 \u3002 python3 docker _ tools . py -- input ~ / path _ to _ package -- output ~ / path _ for _ output _ assets -- package = Package01 3 . \u5b9a\u4f4d \u5305 \u3002 Docker \u5e94\u8be5 \u5df2\u7ecf \u5728 \u8f93\u51fa \u8def\u5f84 \u4e2d \u751f\u6210 \u4e86 \u5305 Package01 . tar . gz \u3002 \u8fd9\u662f \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 4 . \u5c06 \u5305 \u5bfc\u5165 Carla \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u5305 \u89e3\u538b \u5230 WindowsNoEditor \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u8fd0\u884c \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \u3002 cd Util . / ImportAssets . sh \u7b14\u8bb0 Linux \u4e0a \u6709 \u4e00\u4e2a \u66ff\u4ee3 \u65b9\u6848 \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u8fd0\u884c \u811a\u672c Util / ImportAssets . sh \u4ee5 \u63d0\u53d6 \u5305 \u3002 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165 \u8fd9 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u8bfb\u53d6 JSON \u6587\u4ef6 \u4ee5 \u5c06 \u9053\u5177 \u653e\u5165 \u865a\u5e7b \u5f15\u64ce Content \u4e2d \u3002 \u6b64\u5916 \uff0c \u5b83 \u5c06 \u5728 \u5305 \u7684 Config \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a Package1 . Package . json \u6587\u4ef6 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5b9a\u4e49 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u9053\u5177 \uff0c \u5e76 \u5728 Python API \u4e2d \u516c\u5f00 \u5b83\u4eec \u3002 \u5982\u679c \u5305 \u4f5c\u4e3a \u72ec\u7acb \u5305 \u5bfc\u51fa \uff0c \u4e5f \u5c06 \u4f7f\u7528 \u5b83 \u3002 \u4e00\u5207 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u8fd0\u884c \u547d\u4ee4 \u3002 make import \u8b66\u544a \u786e\u4fdd \u8be5\u5305 \u4f4d\u4e8e Carla \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u5c06 \u65b0 \u9053\u5177 \u5bfc\u5165 Carla \u7684 \u4e0d\u540c \u65b9\u6cd5 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u6dfb\u52a0 \u65b0 \u9053\u5177"},{"location":"tuto_A_add_props/#_1","text":"\u9664\u4e86 \u5730\u56fe \u548c \u8f66\u8f86 \u4e4b\u5916 \uff0c \u9053\u5177 \u662f \u573a\u666f \u4e2d \u7684 \u8d44\u4ea7 \u3002 \u5176\u4e2d \u5305\u62ec \u8def\u706f \u3001 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49\u7b49 \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u53ef\u4ee5 \u968f\u65f6 \u901a\u8fc7 \u7b80\u5355 \u7684 \u8fc7\u7a0b \u5bfc\u5165 \u65b0 \u9053\u5177 \u3002 \u8fd9 \u5bf9\u4e8e \u5728 \u5730\u56fe \u4e2d \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u73af\u5883 \u975e\u5e38 \u6709\u7528 \u3002 \u51c6\u5907 \u5305 \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u521b\u5efa JSON \u63cf\u8ff0 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165","title":"\u6dfb\u52a0 \u65b0 \u9053\u5177"},{"location":"tuto_A_add_props/#_2","text":"","title":"\u51c6\u5907 \u5305"},{"location":"tuto_A_add_props/#_3","text":"1 . \u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 . \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u4e0d \u76f8\u5173 \u3002 2 . \u521b\u5efa \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5e94\u8be5 \u6709 \u4e00\u4e2a \u901a\u7528 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u653e \u6240\u6709 \u9053\u5177 \uff0c \u5e76\u4e14 \u5728 \u5176\u4e2d \u5305\u542b \u4e0e \u8981 \u5bfc\u5165 \u7684 \u9053\u5177 \u4e00\u6837 \u591a \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 3 . \u5c06 \u5404\u4e2a \u9053\u5177 \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u9053\u5177 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b . fbx \u7f51\u683c \u7269\u4f53 \uff0c \u4ee5\u53ca \u5b83 \u6240 \u9700 \u7684 \u7eb9\u7406 \uff08 \u53ef \u9009 \uff09 \u3002 \u4f8b\u5982 \uff0c \u5305\u542b \u4e24\u4e2a \u72ec\u7acb \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u251c \u2500 \u2500 Package01 \u2502 \u251c \u2500 \u2500 Package01 . json \u2502 \u2514 \u2500 \u2500 Props \u2502 \u251c \u2500 \u2500 Prop01 \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Diff . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Norm . png \u2502 \u2502 \u251c \u2500 \u2500 Prop01 _ Spec . png \u2502 \u2502 \u2514 \u2500 \u2500 Prop01 . fbx \u2502 \u2514 \u2500 \u2500 Prop02 \u2502 \u2514 \u2500 \u2500 Prop02 . fbx \u2514 \u2500 \u2500 Package02 \u251c \u2500 \u2500 Packag02 . json \u2514 \u2500 \u2500 Props \u2514 \u2500 \u2500 Prop03 \u2514 \u2500 \u2500 Prop03 . fbx","title":"\u521b\u5efa \u6587\u4ef6\u5939 \u7ed3\u6784"},{"location":"tuto_A_add_props/#json","text":"\u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe maps \u548c \u9053\u5177 props \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 Maps \u4e0d\u662f \u672c \u6559\u7a0b \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8be5 \u5b9a\u4e49 \u5c06 \u4e3a \u7a7a \u3002 \u6709 \u4e00\u4e2a \u5177\u4f53 \u7684 \u6559\u7a0b \u6765 \u6dfb\u52a0 \u65b0 \u5730\u56fe \u3002 Props \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \u3002 \u9053\u5177 \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u4e0e . fbx \u76f8\u540c \u3002 . fbx \u7684 source \u8def\u5f84 \u3002 \u9053\u5177 \u7684 size \u4f30\u8ba1 \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u53ef\u80fd \u7684 \u503c \u3002 tiny small medium big huge \u8bed\u4e49 \u5206\u5272 \u7684 tag \u3002 \u5982\u679c \u6807\u7b7e \u62fc\u5199 \u5199\u9519 \u9519\u8bef \u62fc\u5199\u9519\u8bef \uff0c \u5b83 \u5c06 \u88ab \u8bfb\u53d6 \u4e3a Unlabeled . Bridge Building Dynamic Fence Ground GuardRail Other Pedestrian Pole RailTrack Road RoadLine SideWalk Sky Static Terrain TrafficLight TrafficSign Unlabeled Vegetation Vehicles Wall Water \u6700\u540e \uff0c . json \u5e94\u8be5 \u4e0e \u4e0b\u9762 \u7684 \u7c7b\u4f3c \u3002 { \" maps \" : [ ] , \" props \" : [ { \" name \" : \" MyProp01 \" , \" size \" : \" medium \" , \" source \" : \" . / Props / Prop01 / Prop01 . fbx \" , \" tag \" : \" SemanticSegmentationTag01 \" } , { \" name \" : \" MyProp02 \" , \" size \" : \" small \" , \" source \" : \" . / Props / Prop02 / Prop02 . fbx \" , \" tag \" : \" SemanticSegmentationTag02 \" } ] } \u8b66\u544a \u5177\u6709 \u76f8\u540c \u540d\u79f0 \u7684 \u5305 \u5c06 \u4ea7\u751f \u9519\u8bef \u3002","title":"\u521b\u5efa JSON \u63cf\u8ff0"},{"location":"tuto_A_add_props/#carla","text":"\u8fd9\u662f \u7528\u4e8e \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305 \uff08 \u4f8b\u5982 Carla 0.9 . 8 \uff09 \u4e2d \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 \u5b83 \u5145\u5f53 \u4e00\u4e2a \u9ed1\u76d2 \u76d2\u5b50 \u9ed1\u76d2\u5b50 \uff0c \u81ea\u52a8 \u5c06 \u5305 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u955c\u50cf \u4e2d \uff0c \u5e76 \u751f\u6210 \u5206\u53d1 \u5305 \u3002 Docker \u955c\u50cf \u9700\u8981 4 \u5c0f\u65f6 \u548c 400GB \u624d\u80fd \u6784\u5efa \u3002 \u7136\u800c \uff0c \u8fd9\u4ec5 \u662f \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u9700\u8981 \u3002 1 . \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u955c\u50cf \u3002 \u8bf7 \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u6784\u5efa \u6620\u50cf \u3002 2 . \u8fd0\u884c \u811a\u672c \u6765 \u70d8\u57f9 \u9053\u5177 \u3002 ~ / carla / Util / Docker \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d\u6709 \u4e00\u4e2a \u811a\u672c \uff0c \u5b83 \u4e0e \u4e4b\u524d \u521b\u5efa \u7684 Docker \u6620\u50cf \u8fde\u63a5 \uff0c \u5e76 \u81ea\u52a8 \u8fdb\u884c \u5bfc\u5165 \u3002 \u5b83 \u53ea \u9700\u8981 \u8f93\u5165 \u548c \u8f93\u51fa \u6587\u4ef6 \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u7684 \u5305 \u7684 \u540d\u79f0 \u3002 python3 docker _ tools . py -- input ~ / path _ to _ package -- output ~ / path _ for _ output _ assets -- package = Package01 3 . \u5b9a\u4f4d \u5305 \u3002 Docker \u5e94\u8be5 \u5df2\u7ecf \u5728 \u8f93\u51fa \u8def\u5f84 \u4e2d \u751f\u6210 \u4e86 \u5305 Package01 . tar . gz \u3002 \u8fd9\u662f \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 4 . \u5c06 \u5305 \u5bfc\u5165 Carla \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u5305 \u89e3\u538b \u5230 WindowsNoEditor \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u8fd0\u884c \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \u3002 cd Util . / ImportAssets . sh \u7b14\u8bb0 Linux \u4e0a \u6709 \u4e00\u4e2a \u66ff\u4ee3 \u65b9\u6848 \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u8fd0\u884c \u811a\u672c Util / ImportAssets . sh \u4ee5 \u63d0\u53d6 \u5305 \u3002","title":"\u5bfc\u5165\u5230 Carla \u5305\u4e2d"},{"location":"tuto_A_add_props/#_4","text":"\u8fd9 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5c06 \u9053\u5177 \u5bfc\u5165 \u5bfc\u5165\u5230 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u65b9\u6cd5 \u3002 \u5c06 \u8bfb\u53d6 JSON \u6587\u4ef6 \u4ee5 \u5c06 \u9053\u5177 \u653e\u5165 \u865a\u5e7b \u5f15\u64ce Content \u4e2d \u3002 \u6b64\u5916 \uff0c \u5b83 \u5c06 \u5728 \u5305 \u7684 Config \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a Package1 . Package . json \u6587\u4ef6 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5b9a\u4e49 \u84dd \u56fe\u5e93 \u4e2d \u7684 \u9053\u5177 \uff0c \u5e76 \u5728 Python API \u4e2d \u516c\u5f00 \u5b83\u4eec \u3002 \u5982\u679c \u5305 \u4f5c\u4e3a \u72ec\u7acb \u5305 \u5bfc\u51fa \uff0c \u4e5f \u5c06 \u4f7f\u7528 \u5b83 \u3002 \u4e00\u5207 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u8fd0\u884c \u547d\u4ee4 \u3002 make import \u8b66\u544a \u786e\u4fdd \u8be5\u5305 \u4f4d\u4e8e Carla \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u3002 \u8fd9 \u5c31\u662f \u5173\u4e8e \u5c06 \u65b0 \u9053\u5177 \u5bfc\u5165 Carla \u7684 \u4e0d\u540c \u65b9\u6cd5 \u7684 \u5168\u90e8 \u4fe1\u606f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u5728 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \u5bfc\u5165"},{"location":"tuto_A_add_vehicle/","text":"\u6dfb\u52a0 \u65b0\u8f66 \u8fd9\u4e2a \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5411 Carla \u6dfb\u52a0 \u65b0 \u7684 \u8f66\u8f86 \u3002 \u6559\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u4e00\u4e2a \u7528\u4e8e \u56db\u8f6e \u8f66\u8f86 \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u4e24\u8f6e \u8f66\u8f86 \u3002 \u6559\u7a0b \u6982\u8ff0 \u4e86 \u5efa\u6a21 \u8f66\u8f86 \u65f6 \u5fc5\u987b \u6ee1\u8db3 \u7684 \u57fa\u672c \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u8f66\u8f86 \u5728 Carla \u4e2d \u8fd0\u884c \u826f\u597d \uff0c \u5e76 \u63d0\u4f9b \u4e86 \u5728 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u540e \u6240 \u9700 \u7684 \u914d\u7f6e \u8bf4\u660e \u3002 \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86 \u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86 \u6dfb\u52a0 2 \u8f6e \u8f66\u8f86 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u6dfb\u52a0 \u5230 Carla \u7684 \u8f66\u8f86 \u9700\u8981 \u4f7f\u7528 \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \u7684 \u901a\u7528 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u6b64 \u94fe\u63a5 \u5c06 \u4e0b\u8f7d \u4e00\u4e2a \u540d\u4e3a VehicleSkeleton . rar \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5176\u4e2d \u5305\u542b \u4e24\u79cd \u4e0d\u540c \u683c\u5f0f \u7684 \u57fa\u672c \u6846\u67b6 \uff0c \u4e00\u79cd \u4e3a ASCII \uff0c \u53e6 \u4e00\u79cd \u4e3a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u683c\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 3D \u5efa\u6a21 \u8f6f\u4ef6 \u8981\u6c42 \u3002 \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u4f4d\u7f6e \u53ef\u4ee5 \u66f4\u6539 \uff0c \u4f46 \u4efb\u4f55 \u5176\u4ed6 \u64cd\u4f5c \uff08 \u4f8b\u5982 \u65cb\u8f6c \u3001 \u6dfb\u52a0 \u65b0 \u9aa8\u9abc \u6216 \u66f4\u6539 \u5f53\u524d \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff09 \u90fd \u4f1a \u5bfc\u81f4 \u9519\u8bef \u3002 \u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86 \u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8f66\u8f86 \u5efa\u6a21 \u9636\u6bb5 \u7684 \u6700\u4f4e \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u5176 \u53ef\u4ee5 \u5728 Carla \u4e2d \u6210\u529f \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u5305\u62ec \u5c06 \u9aa8\u67b6 \u6b63\u786e \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7684 \u5e95\u5ea7 \u548c \u8f66\u8f6e \u3001 \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u548c \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \uff0c \u4ee5\u53ca \u5bfc\u51fa \u4e3a \u6b63\u786e \u7684 \u683c\u5f0f \u3002 1 . \u5bfc\u5165 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u5c06 \u57fa\u7840 \u9aa8\u67b6 \u5bfc\u5165 \u60a8 \u9996\u9009 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u4e2d \u3002 \u5e38\u89c1 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5305\u62ec Maya \u548c Blender \u3002 2 . \u7ed1\u5b9a \u9aa8\u9abc \u3002 \u6839\u636e \u4e0b\u9762 \u7684 \u547d\u540d \u6cd5\u5c06 \u9aa8\u9abc \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7f51\u683c \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u786e\u4fdd \u8f6e\u5b50 \u7684 \u9aa8\u9abc \u5728 \u7f51\u683c \u5185 \u5c45\u4e2d \u3002 \u5de6 \u524d\u8f6e \uff1a Wheel _ Front _ Left \u53f3 \u524d\u8f6e \uff1a Wheel _ Front _ Right \u5de6 \u540e\u8f6e \uff1a Wheel _ Rear _ Left \u53f3 \u540e\u8f6e \uff1a Wheel _ Rear _ Right \u7f51\u683c \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \uff1a VehicleBase \u8b66\u544a \u4e0d\u8981 \u5bf9 \u9aa8\u9abc \u540d\u79f0 \u6216 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \uff0c \u4e5f \u4e0d\u8981 \u6dfb\u52a0 \u4efb\u4f55 \u65b0 \u9aa8\u9abc \u3002 3 . \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u5efa\u6a21 \u3002 \u8f66\u8f86 \u5e94 \u62e5\u6709 \u5927\u7ea6 50 , 000 - 100 , 000 \u4e2a tris \u3002 \u6211\u4eec \u4f7f\u7528 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u6765 \u5efa\u6a21 \u8f66\u8f86 \u3002 \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u6750\u8d28 \uff1a Bodywork : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 \u3002 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 . fbx \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 Interior : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 . \u6750\u6599 \uff08 Material \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \uff08 Textures \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f T _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 T _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002 \u865a\u5e7b \u5f15\u64ce \u4f1a \u81ea\u52a8 \u521b\u5efa ( Level of Details , LOD ) \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u5728 3D \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u624b\u52a8 \u521b\u5efa \u5b83\u4eec \u3002 Tri \u8ba1\u6570 \u5982\u4e0b \uff1a LOD 0 : 100 , 000 tris LOD 1 : 80 , 000 tris LOD 2 : 60 , 000 tris LOD 3 : 30 , 000 tris 4 . \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u662f \u4e00\u4e2a \u9644\u52a0 \u7f51\u683c \uff0c \u5141\u8bb8 \u865a\u5e7b \u5f15\u64ce \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u5e94\u8be5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u7b80\u5355 \uff0c \u51cf\u5c11 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u5e76\u4e14 \u5e94\u8be5 \u8986\u76d6 \u9664 \u8f66\u8f6e \u4e4b\u5916 \u7684 \u6574\u4e2a \u8f66\u8f86 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u56fe \u7684 \u793a\u4f8b \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u5e94 \u5bfc\u51fa \u4e3a \u5355\u72ec \u7684 . fbx \u6587\u4ef6 \u3002 \u6700\u7ec8 \u6587\u4ef6 \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u6709 \u4e00\u4e2a \u57fa\u7840 \u7f51\u683c \u3002 \u8fd9 \u5e94\u8be5 \u662f \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u7684 \u526f\u672c \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u539f\u59cb \u8f66\u8f86 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u4f53 \u5fc5\u987b \u4f7f\u7528 \u683c\u5f0f UCX _ < vehicle _ name > _ < number _ of _ mesh > \u547d\u540d \uff0c \u5426\u5219 \u865a\u5e7b \u5f15\u64ce \u5c06 \u65e0\u6cd5 \u8bc6\u522b \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94 \u4e0e \u539f\u59cb \u6a21\u578b \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 . fbx \u7f51\u683c \u5bfc\u51fa \u4e3a \u540d\u4e3a SMC _ < vehicle _ name > . fbx \u7684 \u6587\u4ef6 \u3002 5 . \u4e3a \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u7f51\u683c \u3002 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u8bbe\u7f6e \u5c06 \u7531 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 RADAR \u3001 LiDAR \u548c Semantic LiDAR \uff09 \u68c0\u6d4b \u5230 \u7684 \u8f66\u8f86 \u5f62\u72b6 \u3002 \u8be5 \u7f51\u683c \u5e94\u8be5 \u5177\u6709 \u6bd4 \u7269\u7406 \u8d44\u4ea7 \u7f51\u683c \u7a0d\u5fae \u66f4 \u660e\u786e \u7684 \u51e0\u4f55 \u5f62\u72b6 \uff0c \u4ee5 \u63d0\u9ad8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4f46 \u51fa\u4e8e \u6027\u80fd \u539f\u56e0 \uff0c \u4e0d\u5982 \u6c7d\u8f66 \u7f51\u683c \u90a3\u4e48 \u8be6\u7ec6 \u3002 \u521b\u5efa \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u65f6\u8bf7 \u8003\u8651 \u4ee5\u4e0b \u51e0\u70b9 \u4ee5\u4e0b\u51e0\u70b9 \uff1a \u7f51\u683c \u5e94 \u8986\u76d6 \u8f66\u8f86 \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u5305\u62ec \u8f66\u8f6e \u3001 \u540e\u89c6 \u540e\u89c6\u955c \u548c \u683c\u6805 \u3002 \u8f6e\u5b50 \u5e94\u4e3a \u4e0d \u8d85\u8fc7 16 \u5708 \u7684 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u5c06 \u5404\u79cd \u7f51\u683c \u8fde\u63a5 \u5728 \u4e00\u8d77 \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94\u8be5 \u4e0e \u539f\u59cb \u7f51\u683c \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 \u7f51\u683c \u5bfc\u51fa \u540d\u4e3a SM _ sc _ < vehicle _ name > . fbx \u7684 . fbx \u6587\u4ef6 \u3002 5 . \u5bfc\u51fa \u8f66\u8f86 \u7f51\u683c \u3002 \u9009\u62e9 \u6240\u6709 \u4e3b\u8981 \u8f66\u8f86 \u7f51\u683c \u548c \u9aa8\u67b6 \u5e95\u5ea7 \u5e76 \u5bfc\u51fa \u4e3a . fbx \u3002 \u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86 \u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8fc7\u7a0b \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6267\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u3002 1 . \u521b\u5efa \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 Content / Carla / Static / Vehicles / 4Wheeled \u91cc \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a < vehicle _ name > \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 2 . \u5bfc\u5165 . fbx \u3002 \u5728 \u65b0 \u7684 \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u901a\u8fc7 \u5728 Content Browser \u4e2d \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u5bfc\u5165 \u5bfc\u5165\u5230 Game / Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > \u6765 \u5bfc\u5165 \u4e3b \u8f66\u8f86 \u9aa8\u67b6 . fbx \u3002 \u5728 \u5f39\u51fa \u7684 \u5bf9\u8bdd \u5bf9\u8bdd\u6846 \u4e2d \uff1a \u5c06 \u5bfc\u5165 \u5185\u5bb9 \u7c7b\u578b Import Content Type \u8bbe\u7f6e \u4e3a Geometry and Skinning Weights \u3002 \u5c06 Normal Import Method \u8bbe\u7f6e \u4e3a Import Normals \u3002 \uff08 \u53ef \u9009 \uff09 \u5c06 Material Import Method \u8bbe\u7f6e \u4e3a Do not create materials \u3002 \u53d6\u6d88 \u9009\u4e2d Import Textures \u4ee5 \u907f\u514d \u865a\u5e7b \u5f15\u64ce \u521b\u5efa \u9ed8\u8ba4 \u6750\u8d28 \u3002 \u9aa8\u67b6 \u7f51\u683c \u4f53\u5c06 \u4e0e \u4e24\u4e2a \u65b0 \u6587\u4ef6 < vehicle _ name > _ PhysicsAssets and < vehicle _ name > _ Skeleton \u4e00\u8d77 \u51fa\u73b0 \u3002 \u5c06 \u5176\u4f59 . fbx \u6587\u4ef6 \u4e0e \u4e3b \u8f66\u8f86 \u9aa8\u67b6 . fbx \u6587\u4ef6 \u5206\u5f00 \u5bfc\u5165 \u3002 3 . \u8bbe\u7f6e \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser < vehicle _ name > _ PhysicsAssets \u3002 Skeleton Tree \u9762\u677f \u4e2d \u53f3\u952e \u5355\u51fb Vehicle _ Base \u7684 \u7f51\u683c \u4f53 \uff0c \u7136\u540e \u8f6c \u5230 Copy Collision from StaticMesh \u3002 \u641c\u7d22 \u5e76 \u9009\u62e9 \u60a8 \u7684 SMC _ < vehicle _ name > \u6587\u4ef6 \u3002 \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u7684 \u8f6e\u5ed3 \u51fa\u73b0 \u5728 \u89c6 \u53e3\u4e2d \u3002 \u4ece Vehicle _ Base \u4e2d \u5220\u9664 \u9ed8\u8ba4 \u7684 \u80f6\u56ca \u5f62\u72b6 \u3002 \u9009\u62e9 \u6240\u6709 \u8f6e\u5b50 \uff1a \u8f6c \u5230 Tools \u9762\u677f \u5e76 \u5c06 \u201c \u57fa\u5143 \u7c7b\u578b Primitive Type \u201d \u66f4 \u6539\u4e3a Sphere \u3002 \u8f6c \u5230 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f Details \u9762\u677f \u5e76 \u5c06 \u7269\u7406 \u7c7b\u578b Physics Type \u66f4 \u6539\u4e3a Kinematic \u3002 \u5c06 \u7ebf\u6027 \u963b\u5c3c Linear Damping \u8bbe\u7f6e \u4e3a 0 \u3002 \u8fd9 \u5c06 \u6d88\u9664 \u8f66\u8f6e \u4e0a \u7684 \u4efb\u4f55 \u989d\u5916 \u6469\u64e6 \u3002 \u4e3a \u6240\u6709 \u7f51\u683c \u542f\u7528 Simulation Generates Hit Event \u3002 \u5355\u51fb Re - generate Bodies \u3002 \u5c06 \u8f66\u8f6e \u7403\u4f53 \u8c03\u6574 \u81f3 \u8f66\u8f6e \u5c3a\u5bf8 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 4 . \u521b\u5efa \u52a8\u753b \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u9009\u62e9 Animation - > Animation Blueprint \u3002 \u5728 \u7236\u7c7b Parent Class \u4e2d \u641c\u7d22 \u5e76 \u9009\u62e9 VehicleAnimInstance \u3002 \u5728 \u76ee\u6807 \u9aa8\u67b6 Target Skeleton \u4e2d \u641c\u7d22 \u5e76 \u9009\u62e9 < vehicle _ name > _ Skeleton \u3002 \u6309 OK \u5e76 \u5c06 \u84dd\u56fe \u547d\u540d \u91cd\u547d\u540d \u4e3a AnimBP _ < vehicle _ name > \u3002 5 . \u914d\u7f6e \u52a8\u753b \u84dd\u56fe \u3002 \u4e3a\u4e86 \u7b80\u5316 \u914d\u7f6e \u52a8\u753b \u84dd\u56fe \u7684 \u8fc7\u7a0b \uff0c \u6211\u4eec \u5c06 \u4ece \u672c\u5730 Carla \u8f66\u8f86 \u590d\u5236 \u73b0\u6709 \u7684 \u52a8\u753b \u84dd\u56fe \uff1a \u8f6c \u5230 Content / Carla / Static / Vehicle \u5e76 \u9009\u62e9 \u4efb\u4f55 Carla \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u6253\u5f00 \u5176 \u52a8\u753b \u84dd\u56fe \u3002 \u5728 My Blueprint \u9762\u677f \u4e2d \uff0c \u53cc\u51fb AnimGraph \u3002 \u60a8 \u5c06 \u770b\u5230 \u56fe\u8868 \u51fa\u73b0 \u5728 \u89c6 \u53e3\u4e2d \u3002 \u5355\u51fb \u5e76 \u62d6\u52a8 \u4ee5 \u9009\u62e9 Mesh Space Ref Pose \u3001 Wheel Handler \u548c Component To Local \u7ec4\u4ef6 \u3002 \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u590d\u5236 \u3002 \u8fd4\u56de \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u52a8\u753b \u84dd\u56fe \u5e76 \u5c06 \u590d\u5236 \u7684 \u5185\u5bb9 \u7c98\u8d34 \u5230 \u56fe\u5f62 \u533a\u57df \u4e2d \u3002 \u5355\u51fb Component To Local \u7ec4\u4ef6 \u4e2d \u7684 \u7ad9\u7acb \u4eba\u7269 \u5e76 \u5c06 \u5176 \u62d6\u52a8 \u5230 Output Pose \u4e2d \u7684 \u4eba\u7269 \uff0c \u4ee5 \u5c06 \u7ec4\u4ef6 \u8fde\u63a5 \u5728 \u4e00\u8d77 \u3002 \u5355\u51fb \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 Compile \u3002 \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u4e00\u6761 \u8109\u52a8 \u7684 \u7ebf \u6d41\u8fc7 \u6574\u4e2a \u5e8f\u5217 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 6 . \u51c6\u5907 \u8f66\u8f86 \u548c \u8f66\u8f6e \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u8f6c \u5230 Content / Carla / Blueprints / Vehicles \u5e76 \u521b\u5efa \u4e00\u4e2a \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 < vehicle _ name > \u3002 \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u8f6c\u5230 Blueprint Class \u3002 \u5728 \u5f39\u51fa \u7a97\u53e3 \u4e2d \u6253\u5f00 All Classes \u90e8\u5206 \u3002 \u641c\u7d22 BaseVehiclePawn \u5e76 \u6309 Select \u3002 \u5c06 \u6587\u4ef6 \u547d\u540d \u91cd\u547d\u540d \u4e3a BP _ < vehicle _ name > \u3002 \u8f6c \u5230 Carla / Blueprints / Vehicles \u4e2d \u4efb\u4f55 \u672c\u5730 Carla \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u5c06 \u56db\u8f6e \u84dd\u56fe \u590d\u5236 \u590d\u5236\u5230 \u60a8 \u81ea\u5df1 \u8f66\u8f86 \u7684 \u84dd\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u547d\u540d \u91cd\u547d\u540d \u6587\u4ef6 \u4ee5 \u5c06 \u65e7 \u8f66\u8f86 \u540d\u79f0 \u66ff\u6362 \u4e3a \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u540d\u79f0 \u3002 7 . \u914d\u7f6e \u8f6e\u5b50 \u84dd\u56fe \u3002 \u5728 \u8f66\u8f86 \u84dd\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u6253\u5f00 \u6240\u6709 \u56db\u4e2a \u8f66\u8f6e \u84dd\u56fe \u3002 \u5728 Class Defaults \u9762\u677f \u4e2d \uff0c \u5c06 Collision Mesh \u8bbe\u7f6e \u4e3a Wheel _ Shape \u3002 \u7701\u7565 \u6b64 \u6b65\u9aa4 \u5c06 \u5bfc\u81f4 \u8f66\u8f86 \u8f66\u8f6e \u9677\u5165 \u5730\u9762 \u3002 \u6839\u636e \u60a8 \u7684 \u8f66\u8f86 \u89c4\u683c \u8c03\u6574 \u8f66\u8f6e \u5f62\u72b6 \u534a\u5f84 \u3001 \u5bbd\u5ea6 \u3001 \u8d28\u91cf \u548c \u963b\u5c3c \u7387 \u7684 \u503c \u3002 \u5c06 \u8f6e\u80ce \u914d\u7f6e Tire Config \u8bbe\u7f6e \u4e3a CommonTireConfig \u3002 \u5728 \u524d\u8f6e \u4e0a \u6839\u636e \u60a8 \u7684 \u559c\u597d \u8bbe\u7f6e \u8f6c\u5411 \u89d2\u5ea6 Steer Angle \uff08 \u9ed8\u8ba4 \u4e3a 70 \uff09 \u3002 \u53d6\u6d88 \u9009\u4e2d Affected by Handbrake \u3002 \u5728 \u540e\u8f6e \u4e0a\u5c06 \u8f6c\u5411 \u89d2\u5ea6 Steer Angle \u8bbe\u7f6e \u4e3a 0 \u3002 \u68c0\u67e5 Affected by Handbrake \u3002 \u8bbe\u7f6e \u60ac\u67b6 \u503c\u65f6 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u6b64\u5904 \u7684 \u503c \u4f5c\u4e3a \u6307\u5bfc \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 8 . \u914d\u7f6e \u8f66\u8f86 \u84dd\u56fe \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u6253\u5f00 \u60a8 \u7684 BP _ < vehicle _ name > \u3002 \u5728 Components \u9762\u677f \u4e2d \uff0c \u9009\u62e9 Mesh ( VehicleMesh ) ( Inherited ) \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Skeletal Mesh \u5e76 \u641c\u7d22 \u5e76 \u9009\u62e9 \u8f66\u8f86 \u7684 \u57fa\u7840 \u9aa8\u67b6 \u6587\u4ef6 \uff08 \u4f4d\u4e8e Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff09 \u3002 \u8f6c \u5230 Details \u9762\u677f \u4e2d \u7684 Anim Class \u3002 \u641c\u7d22 \u5e76 \u9009\u62e9 \u60a8 \u7684 AnimBP _ < vehicle _ name > \u6587\u4ef6 \u3002 \u5728 Components \u9762\u677f \u4e2d \uff0c \u9009\u62e9 Custom Collision ( Inherited ) \u3002 \u5728 Details \u9762\u677f \u4e2d \u9009\u62e9 Static Mesh \u5e76 \u641c\u7d22 \u60a8 \u7684 SM _ sc _ < vehicle _ name > \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u4f53 \u3002 \u5728 Components \u9762\u677f \u4e2d \uff0c \u9009\u62e9 VehicleMovement ( MovementComp ) ( Inherited ) \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u641c\u7d22 wheel \u3002 \u60a8 \u5c06 \u627e\u5230 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u8bbe\u7f6e \u3002 \u5bf9\u4e8e \u6bcf \u4e00\u4e2a \uff0c \u5355\u51fb Wheel Class \u5e76 \u641c\u7d22 \u4e0e \u6b63\u786e \u8f66\u8f6e \u4f4d\u7f6e \u76f8\u5bf9 \u5e94 \u7684 BP _ < vehicle _ name > _ < wheel _ name > \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u6709 \u4efb\u4f55 \u4e0e \u57fa\u7840 \u7f51\u683c \u5206\u5f00 \u7684 \u9644\u52a0 \u7f51\u683c \uff08 \u95e8 \u3001 \u706f \u7b49 \uff09 \uff1a \u5c06 \u5b83\u4eec \u62d6 \u5230 Components \u9762\u677f \u4e2d \u7684 Mesh ( VehicleMesh ) ( Inherited ) \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u989d\u5916 \u7f51\u683c \u5e76 \u5728 Details \u9762\u677f \u4e2d \u641c\u7d22 Collision \u3002 \u5c06 \u78b0\u649e \u9884\u8bbe Collision Presets \u8bbe\u7f6e \u4e3a NoCollision \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u4efb\u4f55 \u706f\u5149 \u7f51\u683c \u3002 \u5728 Details \u9762\u677f \u4e2d \u641c\u7d22 Tag \u5e76 \u6dfb\u52a0 \u6807\u7b7e emissive \u3002 \u5355\u51fb Save \u5e76 Compile \u3002 \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u8f66\u724c \u3002 9 . \u5c06 \u8f66\u8f86 \u6dfb\u52a0 \u5230 \u84dd \u56fe\u5e93 \u4e2d \u3002 . \u5728 Content / Carla / Blueprint / Vehicle \u4e2d \uff0c \u6253\u5f00 VehicleFactory \u6587\u4ef6 \u3002 \u5728 Generate Definitions \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u53cc\u51fb Vehicles \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u5c55\u5f00 Default Value \u90e8\u5206 \u5e76 \u5411 \u8f66\u8f86 \u6570\u7ec4 \u6dfb\u52a0 \u4e00\u4e2a \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 \u586b\u5199 \u60a8 \u8f66\u8f86 \u7684 Make \u548c Model \u3002 \u4f7f\u7528 \u60a8 \u7684 BP _ < vehicle _ name > \u6587\u4ef6 \u586b\u5199 Class \u503c \u3002 \uff08 \u53ef \u9009 \uff09 \u4e3a \u8f66\u8f86 \u63d0\u4f9b \u4e00\u7ec4 \u63a8\u8350 \u989c\u8272 \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 10 . \u6d4b\u8bd5 \u8f66\u8f86 \u3002 \u542f\u52a8 Carla \uff0c \u6253\u5f00 \u7ec8\u7aef PythonAPI / examples \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a python3 manual _ control . py -- filter < model _ name > # The make or model defined in step 9 \u7b14\u8bb0 \u5373\u4f7f \u60a8 \u5728 \u54c1\u724c \u548c \u578b\u53f7 \u4e2d \u4f7f\u7528 \u4e86 \u5927\u5199 \u5b57\u7b26 \uff0c \u5b83\u4eec \u5728 \u4f20\u9012 \u7ed9 \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 \u65f6 \u4e5f \u9700\u8981 \u8f6c\u6362 \u4e3a \u5c0f\u5199 \u5b57\u7b26 \u3002 \u6dfb\u52a0 N \u8f6e \u8f66\u8f86 \u6dfb\u52a0 N \u8f6e \u8f66\u8f86 \u9075\u5faa \u4e0e \u4e0a\u8ff0 4 \u8f6e \u8f66\u8f86 \u76f8\u540c \u7684 \u5bfc\u5165 \u7ba1\u9053 \uff0c \u4f46 \u6709 \u51e0\u4e2a \u6b65\u9aa4 \u4e0d\u540c \u3002 5 . \u914d\u7f6e N \u8f6e \u8f66\u8f86 \u7684 \u52a8\u753b \u84dd\u56fe \u641c\u7d22 BaseVehiclePawnNW \u5e76 \u6309 Select \u3002 6 . \u51c6\u5907 \u8f66\u8f86 \u548c \u8f66\u8f6e \u84dd\u56fe \u8f6c \u5230 Carla / Blueprints / Vehicles \u4e2d \u6240\u6709 \u672c\u5730 Carla \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5c06 \u56db\u8f6e \u84dd\u56fe \u590d\u5236 \u590d\u5236\u5230 \u60a8 \u81ea\u5df1 \u8f66\u8f86 \u7684 \u84dd\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u547d\u540d \u91cd\u547d\u540d \u6587\u4ef6 \u4ee5 \u5c06 \u65e7 \u8f66\u8f86 \u540d\u79f0 \u66ff\u6362 \u4e3a \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u540d\u79f0 \u3002 \u590d\u5236 \u56db\u4e2a \u8f6e\u5b50 \uff0c \u7136\u540e \u518d\u6b21 \u590d\u5236 \u5176\u4ed6 \u8f6e\u5b50 \u3002 \u5982\u679c \u662f 6 \u8f6e \u8f66\u8f86 \uff0c \u60a8 \u5c06 \u9700\u8981 6 \u4e2a \u4e0d\u540c \u7684 \u8f66\u8f6e \uff1a FLW \u3001 FRW \u3001 MLW \u3001 MRW \u3001 RLW \u3001 RRW \u3002 7 . \u914d\u7f6e \u8f6e\u5b50 \u84dd\u56fe \u5bf9\u4e8e 4 \u8f6e \u8f66\u8f86 \uff0c \u8bf7 \u9075\u5faa \u4e0a\u8ff0 \u7b2c 7 \u8282 \u3002 N \u8f6e \u8f66\u8f86 \u7684 \u4e3b\u8981 \u533a\u522b \u5728\u4e8e \u624b\u5239 \u548c \u8f6c\u5411 \u53c2\u6570 \u7684 \u5f71\u54cd \u3002 \u5728 \u67d0\u4e9b \u8f66\u8f86 \uff08 \u4f8b\u5982 \u957f\u8f74 \u8f74\u8ddd \u957f\u8f74\u8ddd \u5361\u8f66 \uff09 \u4e2d \uff0c \u524d 2 \u5bf9 \u8f66\u8f6e \u5c06 \u8fdb\u884c \u8f6c\u5411 \uff0c \u5176\u4e2d \u4e00\u7ec4 \u53ef\u80fd \u6bd4 \u5176\u4ed6 \u8f66\u8f6e \u8f6c\u5411 \u66f4 \u591a \u3002 \u6700\u540e \u9762 \u7684 \u4e00\u5bf9 \u53ef\u80fd \u4f1a \u53d7\u5230 \u624b\u5239 \u7684 \u5f71\u54cd \uff0c \u5177\u4f53 \u60c5\u51b5 \u5177\u4f53\u60c5\u51b5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u6b63\u5728 \u5efa\u6a21 \u7684 \u8f66\u8f86 \u3002 8 . \u914d\u7f6e \u8f66\u8f86 \u84dd\u56fe \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \uff0c \u641c\u7d22 wheel \u3002 \u60a8 \u5c06 \u627e\u5230 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u8bbe\u7f6e \u3002 \u5bf9\u4e8e \u6bcf \u4e00\u4e2a \uff0c \u5355\u51fb \u8f66\u8f6e \u7c7b\u522b \u5e76 \u641c\u7d22 BP _ _ \u5bf9\u5e94 \u4e8e \u6b63\u786e \u8f66\u8f6e \u4f4d\u7f6e \u7684 \u6587\u4ef6 \u3002 \u8fd9\u662f \u6b63\u786e \u7684 \uff0c \u4f46 \u53ea\u662f \u4e3a\u4e86 \u6307\u5b9a \uff0c \u5728 N \u8f6e \u8f66\u8f86 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u9700\u8981 \u8bbe\u7f6e \u6240\u6709 \u8f66\u8f6e \u3002 \u8fd9\u662f 6 \u8f6e \u8f66\u8f86 \u7684 \u793a\u4f8b \uff1a \u6700\u540e \uff0c \u4e00\u4e2a \u989d\u5916 \u7684 \u8003\u8651 \u56e0\u7d20 \u662f \u8bbe\u7f6e \u5dee\u901f \u5dee\u901f\u5668 \u3002 \u5bf9\u4e8e 4 \u8f6e \u8f66\u8f86 \uff0c \u6211\u4eec \u6709 \u4e0d\u540c \u7684 \u5dee\u901f \u5dee\u901f\u5668 \u9884\u8bbe \uff08 \u9650\u6ed1 \u3001 \u5f00\u653e 4W \u7b49 \uff09 \uff0c \u4f46 \u5bf9\u4e8e N \u8f6e \u8f66\u8f86 \uff0c \u60a8 \u9700\u8981 \u9009\u62e9 \u8981 \u5728 \u54ea\u4e9b \u8f66\u8f6e \u4e0a \u5e94\u7528 \u626d\u77e9 \u3002 \u672c\u4f8b \u4e2d \u6211\u4eec \u9009\u62e9 \u53ea\u6709 \u4e2d \u540e\u8f6e \u6709 \u626d\u77e9 \uff0c \u524d\u8f6e \u6ca1\u6709 \u626d\u77e9 \uff0c \u60a8 \u53ef\u4ee5 \u6307\u5b9a \u5176\u4ed6 \u914d\u7f6e \u3002 \u8fd9\u4e9b \u6570\u5b57 \u5c06 \u4e0e \u672c\u6587 \u4e0a\u65b9 \u7684 \u56fe\u50cf \u76f8\u540c \uff08 \u4f8b\u5982 \uff0c 0 \u5c06 \u662f \u5de6 \u524d\u8f6e \uff0c \u5982\u4e0a \u6240\u8ff0 \u5982\u4e0a\u6240\u8ff0 \uff09 \u3002 \u6240\u6709 \u5176\u4ed6 \u53c2\u6570 \uff0c \u5982 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u3001 \u53d8\u901f \u53d8\u901f\u7bb1 \u3001 \u8f6c\u5411 \u66f2\u7ebf \uff0c \u5747 \u4e0e \u56db\u8f6e \u8f66\u8f86 \u76f8\u540c \u3002 \u6dfb\u52a0 2 \u8f6e \u8f66\u8f86 \u6dfb\u52a0 2 \u8f6e \u8f66\u8f86 \u4e0e \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u7c7b\u4f3c \uff0c \u4f46 \u7531\u4e8e \u52a8\u753b \u7684 \u590d\u6742 \u590d\u6742\u6027 \uff0c \u60a8 \u9700\u8981 \u8bbe\u7f6e \u989d\u5916 \u7684 \u9aa8\u9abc \u6765 \u5f15\u5bfc \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u52a8\u753b \u3002 \u8fd9 \u662f \u4e24\u8f6e \u8f66\u8f86 \u53c2\u8003 \u9aa8\u67b6 \u7684 \u94fe\u63a5 \u3002 \u4e0e 4 \u8f6e \u8f66\u8f86 \u4e00\u6837 \uff0c \u5c06 \u6a21\u578b \u671d\u5411 \u6b63 \u201c x \u201d \uff0c \u6bcf\u4e2a \u9aa8\u9abc \u8f74 \u671d\u5411 \u6b63 x \uff0c z \u8f74\u671d \u4e0a \u3002 Bone Setup : - Bike _ Rig : # The origin point of the mesh . Place it in the point 0 of the scenecomment - BikeBody : # The model ' s body centre . - Pedals : # If the vehicle is a bike bind the pedalier to this bone , will rotate with the bike acceleration . - RightPedal : # Sets the driver ' s feet position and rotates with the pedalier if the vehicle is a bike . - LeftPedal : # ^ - RearWheel : # Rear Wheel of the vehicle - Handler : # Rotates with the frontal wheel of the vehicle bind the vehicle handler to it . - HandlerMidBone : # Positioned over the front wheel bone to orient the handler with the wheel - HandlerRight : # Sets the position of the driver ' s hand , no need to bind it to anything . - HandlerLeft : # ^ - Frontwheel : # Frontal wheel of the vehicle . - RightHelperRotator : # This four additional bones are here for an obsolete system of making the bike stable by using aditional invisible wheels - RightHelprWheel : # ^ - LeftHelperRotator : # ^ - LeftHelperWheel : # ^ - Seat : # Sets the position of the drivers hip bone . No need to bind it to anything but place it carefully . 1 . \u5c06 fbx \u4f5c\u4e3a Skelletal Mesh \u5bfc\u5165 \u5bfc\u5165\u5230 \u5176 \u81ea\u5df1 \u7684 Content / Carla / Static / Vehicles / 2Wheeled \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5bfc\u5165 \u65f6 \uff0c \u9009\u62e9 \u201c General2WheeledVehicleSkeleton \u201d \u4f5c\u4e3a \u9aa8\u67b6 \uff0c \u5e94 \u81ea\u52a8 \u521b\u5efa \u5e76 \u94fe\u63a5 \u7269\u7406 \u8d44\u6e90 \u3002 2 . \u8c03\u6574 \u7269\u7406 \u8d44\u6e90 \u3002 \u5220\u9664 \u81ea\u52a8 \u521b\u5efa \u7684 \u6846 \u5e76 \u5411 BikeBody \u9aa8\u9abc \u6dfb\u52a0 \u6846 \uff0c \u5c1d\u8bd5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5339\u914d \u5f62\u72b6 \uff0c \u786e\u4fdd \u542f\u7528 \u751f\u6210 \u547d\u4e2d \u4e8b\u4ef6 \u3002 \u4e3a \u6bcf\u4e2a \u8f6e\u5b50 \u6dfb\u52a0 \u4e00\u4e2a \u7403\u4f53 \u5e76 \u5c06 \u5176 \u201c \u7269\u7406 \u7c7b\u578b \u201d \u8bbe\u7f6e \u4e3a \u201c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u201d \u3002 3 . \u521b\u5efa Content / Blueprints / Vehicles / < vehicle - model > \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 4 . \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u521b\u5efa \u4e24\u4e2a \u6d3e\u751f \u81ea \u201c VehicleWheel \u201d \u7c7b \u7684 \u84dd\u56fe \u7c7b \u3002 \u8c03\u7528 < vehicle - model > _ FrontWheel \u548c < vehicle - model > _ RearWheel \u3002 \u5c06 \u5176 \" Shape Radius \" \u8bbe\u7f6e \u4e3a \u4e0e \u7f51\u683c \u8f6e \u534a\u5f84 \u5b8c\u5168 \u5339\u914d \uff08 \u5c0f\u5fc3 \uff0c \u534a\u5f84 \u4e0d\u662f \u76f4\u5f84 \uff09 \u3002 \u5c06 \u5176 \u201c \u8f6e\u80ce \u914d\u7f6e \u201d \u8bbe\u7f6e \u4e3a \u201c CommonTireConfig \u201d \u3002 \u5728 \u524d\u8f6e \u4e0a \u53d6\u6d88 \u9009\u4e2d \u201c \u53d7 \u624b\u5239 \u5f71\u54cd \u201d \uff0c \u5728 \u540e\u8f6e \u4e0a\u5c06 \u201c \u8f6c\u5411 \u89d2 \u201d \u8bbe\u7f6e \u4e3a \u96f6 \u3002 5 . \u5728 \u540c\u4e00 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u521b\u5efa \u4e00\u4e2a \u6d3e\u751f Base2WheeledVehicle \u7684 \u84dd\u56fe \u7c7b \uff0c \u5e76 \u8c03\u7528 \u5b83 < vehicle - model > \u3002 \u6253\u5f00 \u5b83 \u8fdb\u884c \u7f16\u8f91 \uff0c \u9009\u62e9 \u7ec4\u4ef6 \u201c Mesh \u201d \uff0c \u5c06 \u201c Skeletal Mesh \u201d \u548c \u201c Anim Class \u201d \u8bbe\u7f6e \u4e3a \u76f8\u5e94 \u7684 \u3002 \u7136\u540e \u9009\u62e9 VehicleBounds \u7ec4\u4ef6 \u5e76 \u8bbe\u7f6e \u5927\u5c0f \u4ee5 \u8986\u76d6 \u8f66\u8f86 \u533a\u57df \uff08 \u5982\u4e0a \u4e0a\u56fe \u5982\u4e0a\u56fe \u6240\u793a \uff09 \u3002 6 . \u9009\u62e9 \u7ec4\u4ef6 \u201c VehicleMovement \u201d \uff0c \u5728 \u201c Vehicle Setup \u201d \u4e0b \u5c55\u5f00 \u201c Wheel Setups \u201d \uff0c \u8bbe\u7f6e \u5404\u4e2a \u8f66\u8f6e \u3002 0 : \u8f6e\u7c7b = < vehicle - model > _ FrontWheel , \u9aa8\u9abc \u540d\u79f0 = FrontWheel 1 : \u8f6e\u7c7b = < vehicle - model > _ FrontWheel , \u9aa8\u9abc \u540d\u79f0 = FrontWheel 2 : \u8f6e\u7c7b = < vehicle - model > _ RearWheel , \u9aa8\u9abc \u540d\u79f0 = RearWheel 3 : \u8f6e\u7c7b = < vehicle - model > _ RearWheel , \u9aa8\u9abc \u540d\u79f0 = RearWheel \uff08 \u60a8 \u4f1a \u6ce8\u610f \u5230 \uff0c \u6211\u4eec \u57fa\u672c \u57fa\u672c\u4e0a \u5728 \u6bcf\u4e2a \u9aa8\u9abc \u4e2d \u653e\u7f6e \u4e86 \u4e24\u4e2a \u8f6e\u5b50 \u3002 unreal \u63d0\u4f9b \u7684 \u8f66\u8f86 \u7c7b\u522b \u4e0d \u652f\u6301 \u8f66\u8f6e \u7f16\u53f7 \u4e0d\u540c \u540c\u4e8e \u4e0d\u540c\u4e8e 4 \u7684 \u8f66\u8f86 \uff0c \u56e0\u6b64 \u6211\u4eec \u5fc5\u987b \u8ba9 \u5b83 \u76f8\u4fe1 \u8f66\u8f86 \u5177\u6709 4 \u4e2a \u8f6e\u5b50 \uff09 7 . \u9009\u62e9 \u53d8\u91cf \" is bike \" \uff0c \u5982\u679c \u60a8 \u7684 \u578b\u53f7 \u662f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff0c \u5219 \u52fe\u9009 \u5b83 \u3002 \u8fd9 \u5c06 \u6fc0\u6d3b \u8e0f\u677f \u65cb\u8f6c \u3002 \u5982\u679c \u60a8 \u8981 \u5b89\u88c5 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \uff0c \u8bf7 \u4e0d\u8981 \u6807\u8bb0 \u3002 8 . \u627e\u5230 \u53d8\u91cf back Rotation \u5e76 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u66f4 \u5408\u9002 \u7684 \u4f4d\u7f6e \uff0c \u66f4\u597d \u5730 \u9009\u62e9 \u7ec4\u4ef6 SkeletalMesh \uff08 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \uff09 \u5e76 \u5c06 \u5176 \u6cbf x \u8f74 \u79fb\u52a8 \uff0c \u76f4\u5230 \u5176 \u4f4d\u4e8e \u5ea7\u6905 \u4f4d\u7f6e \u3002 9 . \u6d4b\u8bd5 \u4e00\u4e0b \uff0c \u8fdb\u5165 CarlaGameMode \u84dd\u56fe \u5e76 \u5c06 \u201c Default Pawn Class \u201d \u66f4 \u6539\u4e3a \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u84dd\u56fe \u3002","title":"\u6dfb\u52a0 \u65b0 \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#_1","text":"\u8fd9\u4e2a \u6559\u7a0b \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5411 Carla \u6dfb\u52a0 \u65b0 \u7684 \u8f66\u8f86 \u3002 \u6559\u7a0b \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \uff0c \u4e00\u4e2a \u7528\u4e8e \u56db\u8f6e \u8f66\u8f86 \uff0c \u53e6 \u4e00\u4e2a \u7528\u4e8e \u4e24\u8f6e \u8f66\u8f86 \u3002 \u6559\u7a0b \u6982\u8ff0 \u4e86 \u5efa\u6a21 \u8f66\u8f86 \u65f6 \u5fc5\u987b \u6ee1\u8db3 \u7684 \u57fa\u672c \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u8f66\u8f86 \u5728 Carla \u4e2d \u8fd0\u884c \u826f\u597d \uff0c \u5e76 \u63d0\u4f9b \u4e86 \u5728 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u540e \u6240 \u9700 \u7684 \u914d\u7f6e \u8bf4\u660e \u3002 \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86 \u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86 \u6dfb\u52a0 2 \u8f6e \u8f66\u8f86 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002","title":"\u6dfb\u52a0 \u65b0\u8f66"},{"location":"tuto_A_add_vehicle/#4","text":"\u6dfb\u52a0 \u5230 Carla \u7684 \u8f66\u8f86 \u9700\u8981 \u4f7f\u7528 \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \u7684 \u901a\u7528 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u6b64 \u94fe\u63a5 \u5c06 \u4e0b\u8f7d \u4e00\u4e2a \u540d\u4e3a VehicleSkeleton . rar \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5176\u4e2d \u5305\u542b \u4e24\u79cd \u4e0d\u540c \u683c\u5f0f \u7684 \u57fa\u672c \u6846\u67b6 \uff0c \u4e00\u79cd \u4e3a ASCII \uff0c \u53e6 \u4e00\u79cd \u4e3a \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u683c\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 3D \u5efa\u6a21 \u8f6f\u4ef6 \u8981\u6c42 \u3002 \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u4f4d\u7f6e \u53ef\u4ee5 \u66f4\u6539 \uff0c \u4f46 \u4efb\u4f55 \u5176\u4ed6 \u64cd\u4f5c \uff08 \u4f8b\u5982 \u65cb\u8f6c \u3001 \u6dfb\u52a0 \u65b0 \u9aa8\u9abc \u6216 \u66f4\u6539 \u5f53\u524d \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff09 \u90fd \u4f1a \u5bfc\u81f4 \u9519\u8bef \u3002","title":"\u6dfb\u52a0 4 \u8f6e \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#_2","text":"\u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8f66\u8f86 \u5efa\u6a21 \u9636\u6bb5 \u7684 \u6700\u4f4e \u8981\u6c42 \uff0c \u4ee5 \u786e\u4fdd \u5176 \u53ef\u4ee5 \u5728 Carla \u4e2d \u6210\u529f \u4f7f\u7528 \u3002 \u8be5 \u8fc7\u7a0b \u5305\u62ec \u5c06 \u9aa8\u67b6 \u6b63\u786e \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7684 \u5e95\u5ea7 \u548c \u8f66\u8f6e \u3001 \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u548c \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \uff0c \u4ee5\u53ca \u5bfc\u51fa \u4e3a \u6b63\u786e \u7684 \u683c\u5f0f \u3002 1 . \u5bfc\u5165 \u57fa\u7840 \u9aa8\u67b6 \u3002 \u5c06 \u57fa\u7840 \u9aa8\u67b6 \u5bfc\u5165 \u60a8 \u9996\u9009 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \u4e2d \u3002 \u5e38\u89c1 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \u5305\u62ec Maya \u548c Blender \u3002 2 . \u7ed1\u5b9a \u9aa8\u9abc \u3002 \u6839\u636e \u4e0b\u9762 \u7684 \u547d\u540d \u6cd5\u5c06 \u9aa8\u9abc \u7ed1\u5b9a \u5230 \u8f66\u8f86 \u7f51\u683c \u7684 \u76f8\u5e94 \u90e8\u5206 \u3002 \u786e\u4fdd \u8f6e\u5b50 \u7684 \u9aa8\u9abc \u5728 \u7f51\u683c \u5185 \u5c45\u4e2d \u3002 \u5de6 \u524d\u8f6e \uff1a Wheel _ Front _ Left \u53f3 \u524d\u8f6e \uff1a Wheel _ Front _ Right \u5de6 \u540e\u8f6e \uff1a Wheel _ Rear _ Left \u53f3 \u540e\u8f6e \uff1a Wheel _ Rear _ Right \u7f51\u683c \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \uff1a VehicleBase \u8b66\u544a \u4e0d\u8981 \u5bf9 \u9aa8\u9abc \u540d\u79f0 \u6216 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u8fdb\u884c \u4efb\u4f55 \u66f4\u6539 \uff0c \u4e5f \u4e0d\u8981 \u6dfb\u52a0 \u4efb\u4f55 \u65b0 \u9aa8\u9abc \u3002 3 . \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u5efa\u6a21 \u3002 \u8f66\u8f86 \u5e94 \u62e5\u6709 \u5927\u7ea6 50 , 000 - 100 , 000 \u4e2a tris \u3002 \u6211\u4eec \u4f7f\u7528 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u6765 \u5efa\u6a21 \u8f66\u8f86 \u3002 \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u6750\u8d28 \uff1a Bodywork : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 \u3002 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 . fbx \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 Interior : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 . \u6750\u6599 \uff08 Material \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \uff08 Textures \uff09 \u5e94 \u4f7f\u7528 \u683c\u5f0f T _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 T _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002 \u865a\u5e7b \u5f15\u64ce \u4f1a \u81ea\u52a8 \u521b\u5efa ( Level of Details , LOD ) \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u5728 3D \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u624b\u52a8 \u521b\u5efa \u5b83\u4eec \u3002 Tri \u8ba1\u6570 \u5982\u4e0b \uff1a LOD 0 : 100 , 000 tris LOD 1 : 80 , 000 tris LOD 2 : 60 , 000 tris LOD 3 : 30 , 000 tris 4 . \u521b\u5efa \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u662f \u4e00\u4e2a \u9644\u52a0 \u7f51\u683c \uff0c \u5141\u8bb8 \u865a\u5e7b \u5f15\u64ce \u8ba1\u7b97 \u8f66\u8f86 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5b83 \u5e94\u8be5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u7b80\u5355 \uff0c \u51cf\u5c11 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u5e76\u4e14 \u5e94\u8be5 \u8986\u76d6 \u9664 \u8f66\u8f6e \u4e4b\u5916 \u7684 \u6574\u4e2a \u8f66\u8f86 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u56fe \u7684 \u793a\u4f8b \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u5e94 \u5bfc\u51fa \u4e3a \u5355\u72ec \u7684 . fbx \u6587\u4ef6 \u3002 \u6700\u7ec8 \u6587\u4ef6 \u5e94 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u6709 \u4e00\u4e2a \u57fa\u7840 \u7f51\u683c \u3002 \u8fd9 \u5e94\u8be5 \u662f \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u7684 \u526f\u672c \u3002 \u5b83 \u5e94\u8be5 \u4e0e \u539f\u59cb \u8f66\u8f86 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u4f53 \u5fc5\u987b \u4f7f\u7528 \u683c\u5f0f UCX _ < vehicle _ name > _ < number _ of _ mesh > \u547d\u540d \uff0c \u5426\u5219 \u865a\u5e7b \u5f15\u64ce \u5c06 \u65e0\u6cd5 \u8bc6\u522b \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94 \u4e0e \u539f\u59cb \u6a21\u578b \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 . fbx \u7f51\u683c \u5bfc\u51fa \u4e3a \u540d\u4e3a SMC _ < vehicle _ name > . fbx \u7684 \u6587\u4ef6 \u3002 5 . \u4e3a \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u7f51\u683c \u3002 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u8bbe\u7f6e \u5c06 \u7531 \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 RADAR \u3001 LiDAR \u548c Semantic LiDAR \uff09 \u68c0\u6d4b \u5230 \u7684 \u8f66\u8f86 \u5f62\u72b6 \u3002 \u8be5 \u7f51\u683c \u5e94\u8be5 \u5177\u6709 \u6bd4 \u7269\u7406 \u8d44\u4ea7 \u7f51\u683c \u7a0d\u5fae \u66f4 \u660e\u786e \u7684 \u51e0\u4f55 \u5f62\u72b6 \uff0c \u4ee5 \u63d0\u9ad8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \uff0c \u4f46 \u51fa\u4e8e \u6027\u80fd \u539f\u56e0 \uff0c \u4e0d\u5982 \u6c7d\u8f66 \u7f51\u683c \u90a3\u4e48 \u8be6\u7ec6 \u3002 \u521b\u5efa \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u65f6\u8bf7 \u8003\u8651 \u4ee5\u4e0b \u51e0\u70b9 \u4ee5\u4e0b\u51e0\u70b9 \uff1a \u7f51\u683c \u5e94 \u8986\u76d6 \u8f66\u8f86 \u7684 \u5404\u4e2a \u65b9\u9762 \u5404\u4e2a\u65b9\u9762 \uff0c \u5305\u62ec \u8f66\u8f6e \u3001 \u540e\u89c6 \u540e\u89c6\u955c \u548c \u683c\u6805 \u3002 \u8f6e\u5b50 \u5e94\u4e3a \u4e0d \u8d85\u8fc7 16 \u5708 \u7684 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u3002 \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u5c06 \u5404\u79cd \u7f51\u683c \u8fde\u63a5 \u5728 \u4e00\u8d77 \u3002 \u7f51\u683c \u4e0d\u5f97 \u8d85\u51fa \u539f\u59cb \u6a21\u578b \u7684 \u8fb9\u754c \u3002 \u7f51\u683c \u5e94\u8be5 \u4e0e \u539f\u59cb \u7f51\u683c \u5177\u6709 \u76f8\u540c \u7684 \u4f4d\u7f6e \u3002 \u5c06 \u6700\u7ec8 \u7f51\u683c \u5bfc\u51fa \u540d\u4e3a SM _ sc _ < vehicle _ name > . fbx \u7684 . fbx \u6587\u4ef6 \u3002 5 . \u5bfc\u51fa \u8f66\u8f86 \u7f51\u683c \u3002 \u9009\u62e9 \u6240\u6709 \u4e3b\u8981 \u8f66\u8f86 \u7f51\u683c \u548c \u9aa8\u67b6 \u5e95\u5ea7 \u5e76 \u5bfc\u51fa \u4e3a . fbx \u3002","title":"\u7ed1\u5b9a \u5e76 \u5efa\u6a21 \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#_3","text":"\u672c \u8282 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5c06 \u8f66\u8f86 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8fc7\u7a0b \u3002 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6267\u884c \u8fd9\u4e9b \u6b65\u9aa4 \u3002 1 . \u521b\u5efa \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 Content / Carla / Static / Vehicles / 4Wheeled \u91cc \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a < vehicle _ name > \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 2 . \u5bfc\u5165 . fbx \u3002 \u5728 \u65b0 \u7684 \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u901a\u8fc7 \u5728 Content Browser \u4e2d \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u5bfc\u5165 \u5bfc\u5165\u5230 Game / Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > \u6765 \u5bfc\u5165 \u4e3b \u8f66\u8f86 \u9aa8\u67b6 . fbx \u3002 \u5728 \u5f39\u51fa \u7684 \u5bf9\u8bdd \u5bf9\u8bdd\u6846 \u4e2d \uff1a \u5c06 \u5bfc\u5165 \u5185\u5bb9 \u7c7b\u578b Import Content Type \u8bbe\u7f6e \u4e3a Geometry and Skinning Weights \u3002 \u5c06 Normal Import Method \u8bbe\u7f6e \u4e3a Import Normals \u3002 \uff08 \u53ef \u9009 \uff09 \u5c06 Material Import Method \u8bbe\u7f6e \u4e3a Do not create materials \u3002 \u53d6\u6d88 \u9009\u4e2d Import Textures \u4ee5 \u907f\u514d \u865a\u5e7b \u5f15\u64ce \u521b\u5efa \u9ed8\u8ba4 \u6750\u8d28 \u3002 \u9aa8\u67b6 \u7f51\u683c \u4f53\u5c06 \u4e0e \u4e24\u4e2a \u65b0 \u6587\u4ef6 < vehicle _ name > _ PhysicsAssets and < vehicle _ name > _ Skeleton \u4e00\u8d77 \u51fa\u73b0 \u3002 \u5c06 \u5176\u4f59 . fbx \u6587\u4ef6 \u4e0e \u4e3b \u8f66\u8f86 \u9aa8\u67b6 . fbx \u6587\u4ef6 \u5206\u5f00 \u5bfc\u5165 \u3002 3 . \u8bbe\u7f6e \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser < vehicle _ name > _ PhysicsAssets \u3002 Skeleton Tree \u9762\u677f \u4e2d \u53f3\u952e \u5355\u51fb Vehicle _ Base \u7684 \u7f51\u683c \u4f53 \uff0c \u7136\u540e \u8f6c \u5230 Copy Collision from StaticMesh \u3002 \u641c\u7d22 \u5e76 \u9009\u62e9 \u60a8 \u7684 SMC _ < vehicle _ name > \u6587\u4ef6 \u3002 \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u7269\u7406 \u8d44\u6e90 \u7f51\u683c \u7684 \u8f6e\u5ed3 \u51fa\u73b0 \u5728 \u89c6 \u53e3\u4e2d \u3002 \u4ece Vehicle _ Base \u4e2d \u5220\u9664 \u9ed8\u8ba4 \u7684 \u80f6\u56ca \u5f62\u72b6 \u3002 \u9009\u62e9 \u6240\u6709 \u8f6e\u5b50 \uff1a \u8f6c \u5230 Tools \u9762\u677f \u5e76 \u5c06 \u201c \u57fa\u5143 \u7c7b\u578b Primitive Type \u201d \u66f4 \u6539\u4e3a Sphere \u3002 \u8f6c \u5230 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f Details \u9762\u677f \u5e76 \u5c06 \u7269\u7406 \u7c7b\u578b Physics Type \u66f4 \u6539\u4e3a Kinematic \u3002 \u5c06 \u7ebf\u6027 \u963b\u5c3c Linear Damping \u8bbe\u7f6e \u4e3a 0 \u3002 \u8fd9 \u5c06 \u6d88\u9664 \u8f66\u8f6e \u4e0a \u7684 \u4efb\u4f55 \u989d\u5916 \u6469\u64e6 \u3002 \u4e3a \u6240\u6709 \u7f51\u683c \u542f\u7528 Simulation Generates Hit Event \u3002 \u5355\u51fb Re - generate Bodies \u3002 \u5c06 \u8f66\u8f6e \u7403\u4f53 \u8c03\u6574 \u81f3 \u8f66\u8f6e \u5c3a\u5bf8 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 4 . \u521b\u5efa \u52a8\u753b \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u9009\u62e9 Animation - > Animation Blueprint \u3002 \u5728 \u7236\u7c7b Parent Class \u4e2d \u641c\u7d22 \u5e76 \u9009\u62e9 VehicleAnimInstance \u3002 \u5728 \u76ee\u6807 \u9aa8\u67b6 Target Skeleton \u4e2d \u641c\u7d22 \u5e76 \u9009\u62e9 < vehicle _ name > _ Skeleton \u3002 \u6309 OK \u5e76 \u5c06 \u84dd\u56fe \u547d\u540d \u91cd\u547d\u540d \u4e3a AnimBP _ < vehicle _ name > \u3002 5 . \u914d\u7f6e \u52a8\u753b \u84dd\u56fe \u3002 \u4e3a\u4e86 \u7b80\u5316 \u914d\u7f6e \u52a8\u753b \u84dd\u56fe \u7684 \u8fc7\u7a0b \uff0c \u6211\u4eec \u5c06 \u4ece \u672c\u5730 Carla \u8f66\u8f86 \u590d\u5236 \u73b0\u6709 \u7684 \u52a8\u753b \u84dd\u56fe \uff1a \u8f6c \u5230 Content / Carla / Static / Vehicle \u5e76 \u9009\u62e9 \u4efb\u4f55 Carla \u8f66\u8f86 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u6253\u5f00 \u5176 \u52a8\u753b \u84dd\u56fe \u3002 \u5728 My Blueprint \u9762\u677f \u4e2d \uff0c \u53cc\u51fb AnimGraph \u3002 \u60a8 \u5c06 \u770b\u5230 \u56fe\u8868 \u51fa\u73b0 \u5728 \u89c6 \u53e3\u4e2d \u3002 \u5355\u51fb \u5e76 \u62d6\u52a8 \u4ee5 \u9009\u62e9 Mesh Space Ref Pose \u3001 Wheel Handler \u548c Component To Local \u7ec4\u4ef6 \u3002 \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u590d\u5236 \u3002 \u8fd4\u56de \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u52a8\u753b \u84dd\u56fe \u5e76 \u5c06 \u590d\u5236 \u7684 \u5185\u5bb9 \u7c98\u8d34 \u5230 \u56fe\u5f62 \u533a\u57df \u4e2d \u3002 \u5355\u51fb Component To Local \u7ec4\u4ef6 \u4e2d \u7684 \u7ad9\u7acb \u4eba\u7269 \u5e76 \u5c06 \u5176 \u62d6\u52a8 \u5230 Output Pose \u4e2d \u7684 \u4eba\u7269 \uff0c \u4ee5 \u5c06 \u7ec4\u4ef6 \u8fde\u63a5 \u5728 \u4e00\u8d77 \u3002 \u5355\u51fb \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 Compile \u3002 \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u4e00\u6761 \u8109\u52a8 \u7684 \u7ebf \u6d41\u8fc7 \u6574\u4e2a \u5e8f\u5217 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 6 . \u51c6\u5907 \u8f66\u8f86 \u548c \u8f66\u8f6e \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u8f6c \u5230 Content / Carla / Blueprints / Vehicles \u5e76 \u521b\u5efa \u4e00\u4e2a \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 < vehicle _ name > \u3002 \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u8f6c\u5230 Blueprint Class \u3002 \u5728 \u5f39\u51fa \u7a97\u53e3 \u4e2d \u6253\u5f00 All Classes \u90e8\u5206 \u3002 \u641c\u7d22 BaseVehiclePawn \u5e76 \u6309 Select \u3002 \u5c06 \u6587\u4ef6 \u547d\u540d \u91cd\u547d\u540d \u4e3a BP _ < vehicle _ name > \u3002 \u8f6c \u5230 Carla / Blueprints / Vehicles \u4e2d \u4efb\u4f55 \u672c\u5730 Carla \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u5c06 \u56db\u8f6e \u84dd\u56fe \u590d\u5236 \u590d\u5236\u5230 \u60a8 \u81ea\u5df1 \u8f66\u8f86 \u7684 \u84dd\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u547d\u540d \u91cd\u547d\u540d \u6587\u4ef6 \u4ee5 \u5c06 \u65e7 \u8f66\u8f86 \u540d\u79f0 \u66ff\u6362 \u4e3a \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u540d\u79f0 \u3002 7 . \u914d\u7f6e \u8f6e\u5b50 \u84dd\u56fe \u3002 \u5728 \u8f66\u8f86 \u84dd\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u6253\u5f00 \u6240\u6709 \u56db\u4e2a \u8f66\u8f6e \u84dd\u56fe \u3002 \u5728 Class Defaults \u9762\u677f \u4e2d \uff0c \u5c06 Collision Mesh \u8bbe\u7f6e \u4e3a Wheel _ Shape \u3002 \u7701\u7565 \u6b64 \u6b65\u9aa4 \u5c06 \u5bfc\u81f4 \u8f66\u8f86 \u8f66\u8f6e \u9677\u5165 \u5730\u9762 \u3002 \u6839\u636e \u60a8 \u7684 \u8f66\u8f86 \u89c4\u683c \u8c03\u6574 \u8f66\u8f6e \u5f62\u72b6 \u534a\u5f84 \u3001 \u5bbd\u5ea6 \u3001 \u8d28\u91cf \u548c \u963b\u5c3c \u7387 \u7684 \u503c \u3002 \u5c06 \u8f6e\u80ce \u914d\u7f6e Tire Config \u8bbe\u7f6e \u4e3a CommonTireConfig \u3002 \u5728 \u524d\u8f6e \u4e0a \u6839\u636e \u60a8 \u7684 \u559c\u597d \u8bbe\u7f6e \u8f6c\u5411 \u89d2\u5ea6 Steer Angle \uff08 \u9ed8\u8ba4 \u4e3a 70 \uff09 \u3002 \u53d6\u6d88 \u9009\u4e2d Affected by Handbrake \u3002 \u5728 \u540e\u8f6e \u4e0a\u5c06 \u8f6c\u5411 \u89d2\u5ea6 Steer Angle \u8bbe\u7f6e \u4e3a 0 \u3002 \u68c0\u67e5 Affected by Handbrake \u3002 \u8bbe\u7f6e \u60ac\u67b6 \u503c\u65f6 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u6b64\u5904 \u7684 \u503c \u4f5c\u4e3a \u6307\u5bfc \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 8 . \u914d\u7f6e \u8f66\u8f86 \u84dd\u56fe \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 Content Browser \u4e2d \uff0c \u6253\u5f00 \u60a8 \u7684 BP _ < vehicle _ name > \u3002 \u5728 Components \u9762\u677f \u4e2d \uff0c \u9009\u62e9 Mesh ( VehicleMesh ) ( Inherited ) \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Skeletal Mesh \u5e76 \u641c\u7d22 \u5e76 \u9009\u62e9 \u8f66\u8f86 \u7684 \u57fa\u7840 \u9aa8\u67b6 \u6587\u4ef6 \uff08 \u4f4d\u4e8e Carla / Static / Vehicles / 4Wheeled / < vehicle _ name > \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff09 \u3002 \u8f6c \u5230 Details \u9762\u677f \u4e2d \u7684 Anim Class \u3002 \u641c\u7d22 \u5e76 \u9009\u62e9 \u60a8 \u7684 AnimBP _ < vehicle _ name > \u6587\u4ef6 \u3002 \u5728 Components \u9762\u677f \u4e2d \uff0c \u9009\u62e9 Custom Collision ( Inherited ) \u3002 \u5728 Details \u9762\u677f \u4e2d \u9009\u62e9 Static Mesh \u5e76 \u641c\u7d22 \u60a8 \u7684 SM _ sc _ < vehicle _ name > \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7f51\u683c \u4f53 \u3002 \u5728 Components \u9762\u677f \u4e2d \uff0c \u9009\u62e9 VehicleMovement ( MovementComp ) ( Inherited ) \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u641c\u7d22 wheel \u3002 \u60a8 \u5c06 \u627e\u5230 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u8bbe\u7f6e \u3002 \u5bf9\u4e8e \u6bcf \u4e00\u4e2a \uff0c \u5355\u51fb Wheel Class \u5e76 \u641c\u7d22 \u4e0e \u6b63\u786e \u8f66\u8f6e \u4f4d\u7f6e \u76f8\u5bf9 \u5e94 \u7684 BP _ < vehicle _ name > _ < wheel _ name > \u6587\u4ef6 \u3002 \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u6709 \u4efb\u4f55 \u4e0e \u57fa\u7840 \u7f51\u683c \u5206\u5f00 \u7684 \u9644\u52a0 \u7f51\u683c \uff08 \u95e8 \u3001 \u706f \u7b49 \uff09 \uff1a \u5c06 \u5b83\u4eec \u62d6 \u5230 Components \u9762\u677f \u4e2d \u7684 Mesh ( VehicleMesh ) ( Inherited ) \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u989d\u5916 \u7f51\u683c \u5e76 \u5728 Details \u9762\u677f \u4e2d \u641c\u7d22 Collision \u3002 \u5c06 \u78b0\u649e \u9884\u8bbe Collision Presets \u8bbe\u7f6e \u4e3a NoCollision \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u4efb\u4f55 \u706f\u5149 \u7f51\u683c \u3002 \u5728 Details \u9762\u677f \u4e2d \u641c\u7d22 Tag \u5e76 \u6dfb\u52a0 \u6807\u7b7e emissive \u3002 \u5355\u51fb Save \u5e76 Compile \u3002 \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f66\u8f86 \u7684 \u8f66\u724c \u3002 9 . \u5c06 \u8f66\u8f86 \u6dfb\u52a0 \u5230 \u84dd \u56fe\u5e93 \u4e2d \u3002 . \u5728 Content / Carla / Blueprint / Vehicle \u4e2d \uff0c \u6253\u5f00 VehicleFactory \u6587\u4ef6 \u3002 \u5728 Generate Definitions \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u53cc\u51fb Vehicles \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u5c55\u5f00 Default Value \u90e8\u5206 \u5e76 \u5411 \u8f66\u8f86 \u6570\u7ec4 \u6dfb\u52a0 \u4e00\u4e2a \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 \u586b\u5199 \u60a8 \u8f66\u8f86 \u7684 Make \u548c Model \u3002 \u4f7f\u7528 \u60a8 \u7684 BP _ < vehicle _ name > \u6587\u4ef6 \u586b\u5199 Class \u503c \u3002 \uff08 \u53ef \u9009 \uff09 \u4e3a \u8f66\u8f86 \u63d0\u4f9b \u4e00\u7ec4 \u63a8\u8350 \u989c\u8272 \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 10 . \u6d4b\u8bd5 \u8f66\u8f86 \u3002 \u542f\u52a8 Carla \uff0c \u6253\u5f00 \u7ec8\u7aef PythonAPI / examples \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a python3 manual _ control . py -- filter < model _ name > # The make or model defined in step 9 \u7b14\u8bb0 \u5373\u4f7f \u60a8 \u5728 \u54c1\u724c \u548c \u578b\u53f7 \u4e2d \u4f7f\u7528 \u4e86 \u5927\u5199 \u5b57\u7b26 \uff0c \u5b83\u4eec \u5728 \u4f20\u9012 \u7ed9 \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 \u65f6 \u4e5f \u9700\u8981 \u8f6c\u6362 \u4e3a \u5c0f\u5199 \u5b57\u7b26 \u3002","title":"\u5bfc\u5165 \u5e76 \u914d\u7f6e \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#n","text":"\u6dfb\u52a0 N \u8f6e \u8f66\u8f86 \u9075\u5faa \u4e0e \u4e0a\u8ff0 4 \u8f6e \u8f66\u8f86 \u76f8\u540c \u7684 \u5bfc\u5165 \u7ba1\u9053 \uff0c \u4f46 \u6709 \u51e0\u4e2a \u6b65\u9aa4 \u4e0d\u540c \u3002 5 . \u914d\u7f6e N \u8f6e \u8f66\u8f86 \u7684 \u52a8\u753b \u84dd\u56fe \u641c\u7d22 BaseVehiclePawnNW \u5e76 \u6309 Select \u3002 6 . \u51c6\u5907 \u8f66\u8f86 \u548c \u8f66\u8f6e \u84dd\u56fe \u8f6c \u5230 Carla / Blueprints / Vehicles \u4e2d \u6240\u6709 \u672c\u5730 Carla \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5c06 \u56db\u8f6e \u84dd\u56fe \u590d\u5236 \u590d\u5236\u5230 \u60a8 \u81ea\u5df1 \u8f66\u8f86 \u7684 \u84dd\u56fe \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u547d\u540d \u91cd\u547d\u540d \u6587\u4ef6 \u4ee5 \u5c06 \u65e7 \u8f66\u8f86 \u540d\u79f0 \u66ff\u6362 \u4e3a \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u540d\u79f0 \u3002 \u590d\u5236 \u56db\u4e2a \u8f6e\u5b50 \uff0c \u7136\u540e \u518d\u6b21 \u590d\u5236 \u5176\u4ed6 \u8f6e\u5b50 \u3002 \u5982\u679c \u662f 6 \u8f6e \u8f66\u8f86 \uff0c \u60a8 \u5c06 \u9700\u8981 6 \u4e2a \u4e0d\u540c \u7684 \u8f66\u8f6e \uff1a FLW \u3001 FRW \u3001 MLW \u3001 MRW \u3001 RLW \u3001 RRW \u3002 7 . \u914d\u7f6e \u8f6e\u5b50 \u84dd\u56fe \u5bf9\u4e8e 4 \u8f6e \u8f66\u8f86 \uff0c \u8bf7 \u9075\u5faa \u4e0a\u8ff0 \u7b2c 7 \u8282 \u3002 N \u8f6e \u8f66\u8f86 \u7684 \u4e3b\u8981 \u533a\u522b \u5728\u4e8e \u624b\u5239 \u548c \u8f6c\u5411 \u53c2\u6570 \u7684 \u5f71\u54cd \u3002 \u5728 \u67d0\u4e9b \u8f66\u8f86 \uff08 \u4f8b\u5982 \u957f\u8f74 \u8f74\u8ddd \u957f\u8f74\u8ddd \u5361\u8f66 \uff09 \u4e2d \uff0c \u524d 2 \u5bf9 \u8f66\u8f6e \u5c06 \u8fdb\u884c \u8f6c\u5411 \uff0c \u5176\u4e2d \u4e00\u7ec4 \u53ef\u80fd \u6bd4 \u5176\u4ed6 \u8f66\u8f6e \u8f6c\u5411 \u66f4 \u591a \u3002 \u6700\u540e \u9762 \u7684 \u4e00\u5bf9 \u53ef\u80fd \u4f1a \u53d7\u5230 \u624b\u5239 \u7684 \u5f71\u54cd \uff0c \u5177\u4f53 \u60c5\u51b5 \u5177\u4f53\u60c5\u51b5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u6b63\u5728 \u5efa\u6a21 \u7684 \u8f66\u8f86 \u3002 8 . \u914d\u7f6e \u8f66\u8f86 \u84dd\u56fe \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \uff0c \u641c\u7d22 wheel \u3002 \u60a8 \u5c06 \u627e\u5230 \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u8bbe\u7f6e \u3002 \u5bf9\u4e8e \u6bcf \u4e00\u4e2a \uff0c \u5355\u51fb \u8f66\u8f6e \u7c7b\u522b \u5e76 \u641c\u7d22 BP _ _ \u5bf9\u5e94 \u4e8e \u6b63\u786e \u8f66\u8f6e \u4f4d\u7f6e \u7684 \u6587\u4ef6 \u3002 \u8fd9\u662f \u6b63\u786e \u7684 \uff0c \u4f46 \u53ea\u662f \u4e3a\u4e86 \u6307\u5b9a \uff0c \u5728 N \u8f6e \u8f66\u8f86 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u9700\u8981 \u8bbe\u7f6e \u6240\u6709 \u8f66\u8f6e \u3002 \u8fd9\u662f 6 \u8f6e \u8f66\u8f86 \u7684 \u793a\u4f8b \uff1a \u6700\u540e \uff0c \u4e00\u4e2a \u989d\u5916 \u7684 \u8003\u8651 \u56e0\u7d20 \u662f \u8bbe\u7f6e \u5dee\u901f \u5dee\u901f\u5668 \u3002 \u5bf9\u4e8e 4 \u8f6e \u8f66\u8f86 \uff0c \u6211\u4eec \u6709 \u4e0d\u540c \u7684 \u5dee\u901f \u5dee\u901f\u5668 \u9884\u8bbe \uff08 \u9650\u6ed1 \u3001 \u5f00\u653e 4W \u7b49 \uff09 \uff0c \u4f46 \u5bf9\u4e8e N \u8f6e \u8f66\u8f86 \uff0c \u60a8 \u9700\u8981 \u9009\u62e9 \u8981 \u5728 \u54ea\u4e9b \u8f66\u8f6e \u4e0a \u5e94\u7528 \u626d\u77e9 \u3002 \u672c\u4f8b \u4e2d \u6211\u4eec \u9009\u62e9 \u53ea\u6709 \u4e2d \u540e\u8f6e \u6709 \u626d\u77e9 \uff0c \u524d\u8f6e \u6ca1\u6709 \u626d\u77e9 \uff0c \u60a8 \u53ef\u4ee5 \u6307\u5b9a \u5176\u4ed6 \u914d\u7f6e \u3002 \u8fd9\u4e9b \u6570\u5b57 \u5c06 \u4e0e \u672c\u6587 \u4e0a\u65b9 \u7684 \u56fe\u50cf \u76f8\u540c \uff08 \u4f8b\u5982 \uff0c 0 \u5c06 \u662f \u5de6 \u524d\u8f6e \uff0c \u5982\u4e0a \u6240\u8ff0 \u5982\u4e0a\u6240\u8ff0 \uff09 \u3002 \u6240\u6709 \u5176\u4ed6 \u53c2\u6570 \uff0c \u5982 \u53d1\u52a8 \u52a8\u673a \u53d1\u52a8\u673a \u3001 \u53d8\u901f \u53d8\u901f\u7bb1 \u3001 \u8f6c\u5411 \u66f2\u7ebf \uff0c \u5747 \u4e0e \u56db\u8f6e \u8f66\u8f86 \u76f8\u540c \u3002","title":"\u6dfb\u52a0 N \u8f6e \u8f66\u8f86"},{"location":"tuto_A_add_vehicle/#2","text":"\u6dfb\u52a0 2 \u8f6e \u8f66\u8f86 \u4e0e \u6dfb\u52a0 4 \u8f6e \u8f66\u8f86 \u7c7b\u4f3c \uff0c \u4f46 \u7531\u4e8e \u52a8\u753b \u7684 \u590d\u6742 \u590d\u6742\u6027 \uff0c \u60a8 \u9700\u8981 \u8bbe\u7f6e \u989d\u5916 \u7684 \u9aa8\u9abc \u6765 \u5f15\u5bfc \u9a7e\u9a76 \u9a7e\u9a76\u5458 \u7684 \u52a8\u753b \u3002 \u8fd9 \u662f \u4e24\u8f6e \u8f66\u8f86 \u53c2\u8003 \u9aa8\u67b6 \u7684 \u94fe\u63a5 \u3002 \u4e0e 4 \u8f6e \u8f66\u8f86 \u4e00\u6837 \uff0c \u5c06 \u6a21\u578b \u671d\u5411 \u6b63 \u201c x \u201d \uff0c \u6bcf\u4e2a \u9aa8\u9abc \u8f74 \u671d\u5411 \u6b63 x \uff0c z \u8f74\u671d \u4e0a \u3002 Bone Setup : - Bike _ Rig : # The origin point of the mesh . Place it in the point 0 of the scenecomment - BikeBody : # The model ' s body centre . - Pedals : # If the vehicle is a bike bind the pedalier to this bone , will rotate with the bike acceleration . - RightPedal : # Sets the driver ' s feet position and rotates with the pedalier if the vehicle is a bike . - LeftPedal : # ^ - RearWheel : # Rear Wheel of the vehicle - Handler : # Rotates with the frontal wheel of the vehicle bind the vehicle handler to it . - HandlerMidBone : # Positioned over the front wheel bone to orient the handler with the wheel - HandlerRight : # Sets the position of the driver ' s hand , no need to bind it to anything . - HandlerLeft : # ^ - Frontwheel : # Frontal wheel of the vehicle . - RightHelperRotator : # This four additional bones are here for an obsolete system of making the bike stable by using aditional invisible wheels - RightHelprWheel : # ^ - LeftHelperRotator : # ^ - LeftHelperWheel : # ^ - Seat : # Sets the position of the drivers hip bone . No need to bind it to anything but place it carefully . 1 . \u5c06 fbx \u4f5c\u4e3a Skelletal Mesh \u5bfc\u5165 \u5bfc\u5165\u5230 \u5176 \u81ea\u5df1 \u7684 Content / Carla / Static / Vehicles / 2Wheeled \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5bfc\u5165 \u65f6 \uff0c \u9009\u62e9 \u201c General2WheeledVehicleSkeleton \u201d \u4f5c\u4e3a \u9aa8\u67b6 \uff0c \u5e94 \u81ea\u52a8 \u521b\u5efa \u5e76 \u94fe\u63a5 \u7269\u7406 \u8d44\u6e90 \u3002 2 . \u8c03\u6574 \u7269\u7406 \u8d44\u6e90 \u3002 \u5220\u9664 \u81ea\u52a8 \u521b\u5efa \u7684 \u6846 \u5e76 \u5411 BikeBody \u9aa8\u9abc \u6dfb\u52a0 \u6846 \uff0c \u5c1d\u8bd5 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u5339\u914d \u5f62\u72b6 \uff0c \u786e\u4fdd \u542f\u7528 \u751f\u6210 \u547d\u4e2d \u4e8b\u4ef6 \u3002 \u4e3a \u6bcf\u4e2a \u8f6e\u5b50 \u6dfb\u52a0 \u4e00\u4e2a \u7403\u4f53 \u5e76 \u5c06 \u5176 \u201c \u7269\u7406 \u7c7b\u578b \u201d \u8bbe\u7f6e \u4e3a \u201c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u201d \u3002 3 . \u521b\u5efa Content / Blueprints / Vehicles / < vehicle - model > \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 4 . \u5728 \u8be5 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u521b\u5efa \u4e24\u4e2a \u6d3e\u751f \u81ea \u201c VehicleWheel \u201d \u7c7b \u7684 \u84dd\u56fe \u7c7b \u3002 \u8c03\u7528 < vehicle - model > _ FrontWheel \u548c < vehicle - model > _ RearWheel \u3002 \u5c06 \u5176 \" Shape Radius \" \u8bbe\u7f6e \u4e3a \u4e0e \u7f51\u683c \u8f6e \u534a\u5f84 \u5b8c\u5168 \u5339\u914d \uff08 \u5c0f\u5fc3 \uff0c \u534a\u5f84 \u4e0d\u662f \u76f4\u5f84 \uff09 \u3002 \u5c06 \u5176 \u201c \u8f6e\u80ce \u914d\u7f6e \u201d \u8bbe\u7f6e \u4e3a \u201c CommonTireConfig \u201d \u3002 \u5728 \u524d\u8f6e \u4e0a \u53d6\u6d88 \u9009\u4e2d \u201c \u53d7 \u624b\u5239 \u5f71\u54cd \u201d \uff0c \u5728 \u540e\u8f6e \u4e0a\u5c06 \u201c \u8f6c\u5411 \u89d2 \u201d \u8bbe\u7f6e \u4e3a \u96f6 \u3002 5 . \u5728 \u540c\u4e00 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u521b\u5efa \u4e00\u4e2a \u6d3e\u751f Base2WheeledVehicle \u7684 \u84dd\u56fe \u7c7b \uff0c \u5e76 \u8c03\u7528 \u5b83 < vehicle - model > \u3002 \u6253\u5f00 \u5b83 \u8fdb\u884c \u7f16\u8f91 \uff0c \u9009\u62e9 \u7ec4\u4ef6 \u201c Mesh \u201d \uff0c \u5c06 \u201c Skeletal Mesh \u201d \u548c \u201c Anim Class \u201d \u8bbe\u7f6e \u4e3a \u76f8\u5e94 \u7684 \u3002 \u7136\u540e \u9009\u62e9 VehicleBounds \u7ec4\u4ef6 \u5e76 \u8bbe\u7f6e \u5927\u5c0f \u4ee5 \u8986\u76d6 \u8f66\u8f86 \u533a\u57df \uff08 \u5982\u4e0a \u4e0a\u56fe \u5982\u4e0a\u56fe \u6240\u793a \uff09 \u3002 6 . \u9009\u62e9 \u7ec4\u4ef6 \u201c VehicleMovement \u201d \uff0c \u5728 \u201c Vehicle Setup \u201d \u4e0b \u5c55\u5f00 \u201c Wheel Setups \u201d \uff0c \u8bbe\u7f6e \u5404\u4e2a \u8f66\u8f6e \u3002 0 : \u8f6e\u7c7b = < vehicle - model > _ FrontWheel , \u9aa8\u9abc \u540d\u79f0 = FrontWheel 1 : \u8f6e\u7c7b = < vehicle - model > _ FrontWheel , \u9aa8\u9abc \u540d\u79f0 = FrontWheel 2 : \u8f6e\u7c7b = < vehicle - model > _ RearWheel , \u9aa8\u9abc \u540d\u79f0 = RearWheel 3 : \u8f6e\u7c7b = < vehicle - model > _ RearWheel , \u9aa8\u9abc \u540d\u79f0 = RearWheel \uff08 \u60a8 \u4f1a \u6ce8\u610f \u5230 \uff0c \u6211\u4eec \u57fa\u672c \u57fa\u672c\u4e0a \u5728 \u6bcf\u4e2a \u9aa8\u9abc \u4e2d \u653e\u7f6e \u4e86 \u4e24\u4e2a \u8f6e\u5b50 \u3002 unreal \u63d0\u4f9b \u7684 \u8f66\u8f86 \u7c7b\u522b \u4e0d \u652f\u6301 \u8f66\u8f6e \u7f16\u53f7 \u4e0d\u540c \u540c\u4e8e \u4e0d\u540c\u4e8e 4 \u7684 \u8f66\u8f86 \uff0c \u56e0\u6b64 \u6211\u4eec \u5fc5\u987b \u8ba9 \u5b83 \u76f8\u4fe1 \u8f66\u8f86 \u5177\u6709 4 \u4e2a \u8f6e\u5b50 \uff09 7 . \u9009\u62e9 \u53d8\u91cf \" is bike \" \uff0c \u5982\u679c \u60a8 \u7684 \u578b\u53f7 \u662f \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \uff0c \u5219 \u52fe\u9009 \u5b83 \u3002 \u8fd9 \u5c06 \u6fc0\u6d3b \u8e0f\u677f \u65cb\u8f6c \u3002 \u5982\u679c \u60a8 \u8981 \u5b89\u88c5 \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \uff0c \u8bf7 \u4e0d\u8981 \u6807\u8bb0 \u3002 8 . \u627e\u5230 \u53d8\u91cf back Rotation \u5e76 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u66f4 \u5408\u9002 \u7684 \u4f4d\u7f6e \uff0c \u66f4\u597d \u5730 \u9009\u62e9 \u7ec4\u4ef6 SkeletalMesh \uff08 \u9a71\u52a8 \u7a0b\u5e8f \u9a71\u52a8\u7a0b\u5e8f \uff09 \u5e76 \u5c06 \u5176 \u6cbf x \u8f74 \u79fb\u52a8 \uff0c \u76f4\u5230 \u5176 \u4f4d\u4e8e \u5ea7\u6905 \u4f4d\u7f6e \u3002 9 . \u6d4b\u8bd5 \u4e00\u4e0b \uff0c \u8fdb\u5165 CarlaGameMode \u84dd\u56fe \u5e76 \u5c06 \u201c Default Pawn Class \u201d \u66f4 \u6539\u4e3a \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u84dd\u56fe \u3002","title":"\u6dfb\u52a0 2 \u8f6e \u8f66\u8f86"},{"location":"tuto_A_create_standalone/","text":"\u521b\u5efa \u8d44\u4ea7 \u53d1\u884c \u5305 \u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305 \u4f7f\u7528 Docker \u5bfc\u51fa \u5305 \u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305 \u5c06 \u8d44\u4ea7 \u5bfc\u5165 \u865a\u5e7b \u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5176 \u751f\u6210 \u72ec\u7acb \u7684 \u5305 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5c06 \u5185\u5bb9 \u5206\u53d1 \u5230 Carla \u5305 \uff0c \u4f8b\u5982 0.9 . 8 \u3002 \u8981 \u5bfc\u51fa \u5305 \uff0c \u53ea \u9700 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5373\u53ef \u3002 make package ARGS = \" -- packages = Package1 , Package2 \" \u8fd9 \u5c06 \u4e3a \u5217\u51fa \u7684 \u6bcf\u4e2a \u5305 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e0a \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \uff0c \u5728 Windows \u4e0a \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u3002 \u4f7f\u7528 Docker \u5bfc\u51fa \u5305 \u865a\u5e7b \u5f15\u64ce \u548c Carla \u53ef\u4ee5 \u6784\u5efa \u5728 Docker \u6620\u50cf \u4e2d \uff0c \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 \u8be5 \u6620\u50cf \u521b\u5efa \u5305 \u6216 \u5bfc\u51fa \u8d44\u6e90 \u4ee5 \u5728 \u5305\u4e2d \u4f7f\u7528 \u3002 \u8981 \u521b\u5efa Docker \u6620\u50cf \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u51c6\u5907 \u597d \u955c\u50cf \u540e \uff1a \u5bfc\u822a \u81f3 Util / Docker \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \uff1a # \u521b\u5efa \u72ec\u7acb \u7684 \u5305 . / docker _ tools . py -- output / output / path # \u70d8\u57f9 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u4ea7 . / docker _ tools . py -- input / assets / to / import / path -- output / output / path -- packages PkgeName1 , PkgeName2 \u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305 \u72ec\u7acb \u5305 \u5305\u542b \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u3002 \u63d0\u53d6 \u65b9\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5e73\u53f0 \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u89e3\u538b \u5230 \u4e3b\u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u79fb\u81f3 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u3002 cd Import . / ImportAssets . sh \u7b14\u8bb0 \u72ec\u7acb \u5305 \u65e0\u6cd5 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u6784\u5efa \u4e2d \u3002 \u6309\u7167 \u6559\u7a0b \u5bfc\u5165 \u9053\u5177 \u3001 \u5730\u56fe \u6216 \u8f66\u8f86 \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u5982\u4f55 \u5728 Carla \u4e2d \u521b\u5efa \u548c \u4f7f\u7528 \u72ec\u7acb \u5305 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u610f\u5916 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u521b\u5efa \u72ec\u7acb \u5305"},{"location":"tuto_A_create_standalone/#_1","text":"\u4f7f\u7528 \u72ec\u7acb \u5305 \u7ba1\u7406 \u8d44\u4ea7 \u662f Carla \u7684 \u5e38\u89c1 \u505a\u6cd5 \u3002 \u5c06 \u5b83\u4eec \u653e\u5728 \u4e00\u8fb9 \u53ef\u4ee5 \u51cf\u5c11 \u6784\u5efa \u7684 \u5927\u5c0f \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u5305 \u53ef\u4ee5 \u968f\u65f6 \u8f7b\u677e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u5305\u4e2d \u3002 \u5b83\u4eec \u5bf9\u4e8e \u4ee5\u6709 \u7ec4\u7ec7 \u7684 \u65b9\u5f0f \u8f7b\u677e \u5206\u914d \u8d44\u4ea7 \u4e5f \u975e\u5e38 \u6709\u7528 \u3002 \u5728 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305 \u4f7f\u7528 Docker \u5bfc\u51fa \u5305 \u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305","title":"\u521b\u5efa \u8d44\u4ea7 \u53d1\u884c \u5305"},{"location":"tuto_A_create_standalone/#carla","text":"\u5c06 \u8d44\u4ea7 \u5bfc\u5165 \u865a\u5e7b \u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u4e3a \u5176 \u751f\u6210 \u72ec\u7acb \u7684 \u5305 \u3002 \u8fd9 \u5c06 \u7528\u4e8e \u5c06 \u5185\u5bb9 \u5206\u53d1 \u5230 Carla \u5305 \uff0c \u4f8b\u5982 0.9 . 8 \u3002 \u8981 \u5bfc\u51fa \u5305 \uff0c \u53ea \u9700 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u5373\u53ef \u3002 make package ARGS = \" -- packages = Package1 , Package2 \" \u8fd9 \u5c06 \u4e3a \u5217\u51fa \u7684 \u6bcf\u4e2a \u5305 \u521b\u5efa \u4e00\u4e2a \u538b\u7f29 \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u7684 \u72ec\u7acb \u5305 \u3002 \u5728 Linux \u4e0a \u6587\u4ef6 \u5c06 \u4fdd\u5b58 \u5728 Dist \uff0c \u5728 Windows \u4e0a \u6587\u4ef6 \u4fdd\u5b58 \u5728 / Build / UE4Carla / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u3002","title":"\u5728 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u51fa \u5305"},{"location":"tuto_A_create_standalone/#docker","text":"\u865a\u5e7b \u5f15\u64ce \u548c Carla \u53ef\u4ee5 \u6784\u5efa \u5728 Docker \u6620\u50cf \u4e2d \uff0c \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 \u8be5 \u6620\u50cf \u521b\u5efa \u5305 \u6216 \u5bfc\u51fa \u8d44\u6e90 \u4ee5 \u5728 \u5305\u4e2d \u4f7f\u7528 \u3002 \u8981 \u521b\u5efa Docker \u6620\u50cf \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u51c6\u5907 \u597d \u955c\u50cf \u540e \uff1a \u5bfc\u822a \u81f3 Util / Docker \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4e4b\u4e00 \u521b\u5efa Carla \u5305 \u6216 \u51c6\u5907 \u5728 \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u6e90 \uff1a # \u521b\u5efa \u72ec\u7acb \u7684 \u5305 . / docker _ tools . py -- output / output / path # \u70d8\u57f9 \u5728 Carla \u5305\u4e2d \u4f7f\u7528 \u7684 \u8d44\u4ea7 . / docker _ tools . py -- input / assets / to / import / path -- output / output / path -- packages PkgeName1 , PkgeName2","title":"\u4f7f\u7528 Docker \u5bfc\u51fa \u5305"},{"location":"tuto_A_create_standalone/#carla_1","text":"\u72ec\u7acb \u5305 \u5305\u542b \u5728 . tar . gz \u6587\u4ef6 \u4e2d \u3002 \u63d0\u53d6 \u65b9\u5f0f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5e73\u53f0 \u3002 \u5728 Windows \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u89e3\u538b \u5230 \u4e3b\u6839 Carla \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 Linux \u4e0a \uff0c \u5c06 \u538b\u7f29 \u6587\u4ef6 \u538b\u7f29\u6587\u4ef6 \u79fb\u81f3 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u3002 cd Import . / ImportAssets . sh \u7b14\u8bb0 \u72ec\u7acb \u5305 \u65e0\u6cd5 \u76f4\u63a5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u6784\u5efa \u4e2d \u3002 \u6309\u7167 \u6559\u7a0b \u5bfc\u5165 \u9053\u5177 \u3001 \u5730\u56fe \u6216 \u8f66\u8f86 \u3002 \u8fd9 \u603b\u7ed3 \u4e86 \u5982\u4f55 \u5728 Carla \u4e2d \u521b\u5efa \u548c \u4f7f\u7528 \u72ec\u7acb \u5305 \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u610f\u5916 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 Carla \u8bba\u575b","title":"\u5c06 \u8d44\u6e90 \u5bfc\u5165 Carla \u5305"},{"location":"tuto_A_material_customization/","text":"\u6750\u8d28 \u5b9a\u5236 Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28 \u5916\u89c2 \u7279\u6027 \u5efa\u7b51 \u6750\u8d28 \u5b9a\u5236 \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u5728 Carla \u4e2d \uff0c \u6709 \u4e00\u7ec4 \u4e3b \u6750\u6599 \u7528\u4f5c \u8f66\u8f86 \u4e0d\u540c \u90e8\u4ef6 \u7684 \u6a21\u677f \u3002 \u4e3a \u6bcf\u4e2a \u8f66\u8f86 \u6a21\u578b \u521b\u5efa \u4e00\u4e2a \u5b9e\u4f8b \uff0c \u7136\u540e \u66f4 \u6539\u4e3a \u6240 \u9700 \u7684 \u7ed3\u679c \u3002 \u4e3b\u8981 \u6750\u8d28 \u53ef\u4ee5 \u5728 Content / Carla / Static / GenericMaterials / Vehicles \uff08 \u4f4d\u4e8e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7684 Unreal / CarlaUE4 \u76ee\u5f55 \u4e2d \uff09 \u4e2d \u627e\u5230 \uff0c \u5982\u4e0b \u6240\u793a \u3002 \u9002\u7528 \u4e8e \u6c7d\u8f66 \u7684 \u4e3b \u6750\u6599 \u3002 M _ CarExterior _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u8eab \u7684 \u6750\u8d28 \u3002 M _ CarInterior _ Master \u2014 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u5185\u90e8 \u7684 \u6750\u8d28 \u3002 M _ CarLightsGlass _ Master \u2014 \u5e94\u7528 \u4e8e \u8986\u76d6 \u8f66\u706f \u7684 \u73bb\u7483 \u7684 \u6750\u8d28 \u3002 M _ CarWindows _ Master \u2014 \u5e94\u7528 \u4e8e \u7a97\u6237 \u7684 \u6750\u8d28 \u3002 M _ CarLicensePlate _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u724c \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Master \u2014 \u4f5c\u4e3a \u53d1\u5c04 \u7eb9\u7406 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u8f66\u706f \u6c7d\u8f66\u706f \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Sirens _ Master \u2014 \u5e94\u7528 \u4e8e \u8b66\u62a5 \u8b66\u62a5\u5668 \u7684 \u6750\u8d28 \uff08 \u5982\u679c \u9002\u7528 \uff09 \u3002 \u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28 \u521b\u5efa \u4e3b \u6750\u6599 \u7684 \u5b9e\u4f8b \u5e76 \u5c06 \u5b83\u4eec \u5b58\u50a8 \u5728 \u65b0 \u6a21\u578b \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u4ee5\u4e0b \u662f \u84dd \u56fe\u5e93 \u4e2d\u4e3a \u8b66\u8f66 \u521b\u5efa \u7684 \u5b9e\u4f8b \uff0c vehicle . dodge _ charger . police \u3002 \u8b66\u8f66 \u84dd\u56fe \u7684 \u5b9e\u4f8b \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u901a\u7528 \u6587\u6863 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u4e2d \u627e\u5230 \u3002 \u6240\u6709 \u6750\u6599 \u90fd \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7a0b\u5ea6 \u7684 \u4fee\u6539 \uff0c \u4f46 \u53ea\u6709 \u5916\u89c2 \u6750\u6599 \u7684 \u6027\u80fd \u503c\u5f97 \u503c\u5f97\u4e00\u63d0 \u3002 \u5176\u4ed6 \u6750\u6599 \u5177\u6709 \u67d0\u4e9b \u53ef\u4ee5 \u66f4\u6539 \u7684 \u5c5e\u6027 \uff0c \u4f8b\u5982 \u73bb\u7483 \u6750\u6599 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u548c \u989c\u8272 \uff0c \u4f46 \u4e0d \u5efa\u8bae \u8fd9\u6837 \u505a \uff0c \u9664\u975e \u6709 \u7279\u5b9a \u7528\u9014 \u3002 \u5916\u89c2 \u7279\u6027 \u5916\u89c2 \u6750\u6599 \u5e94\u7528 \u4e8e \u8f66\u8eab \uff0c \u662f \u6700 \u53ef \u5b9a\u5236 \u7684 \u4e00\u79cd \uff08 \u53cc\u51fb M _ CarExterior _ Master \uff0c \u8fdb\u5165 \u53c2\u6570 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u9009\u9879 \u9009\u9879\u5361 \uff09 \u3002 Base color \u2014 \u8f66\u8eab \u7684 \u57fa\u8272 \u3002 Tint shade \u2014 \u8272\u8c03 \u7684 \u53ef\u89c1 \u53ef\u89c1\u5ea6 \u6839\u636e \u53ef\u89c6 \u89d2\u5ea6 \u800c \u53d8\u5316 \u3002 \u5e26\u6709 \u7c89\u7ea2 \u7ea2\u8272 \u7c89\u7ea2\u8272 \u8c03 \u7684 \u7ea2\u8272 \u6c7d\u8f66 \u3002 \u5de6\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u7981\u7528 \uff0c \u53f3\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u542f\u7528 \u3002 Global Dust \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6c61\u57a2 \u7eb9\u7406 \u3002 \u7070\u5c18 \u4f1a \u5806\u79ef \u5728 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 \u9876\u90e8 \uff0c \u800c \u5728 \u5e95\u90e8 \u51e0\u4e4e \u4e0d\u4f1a \u88ab \u6ce8\u610f \u5230 \u3002 \u5982\u679c \u65cb\u8f6c \u51e0\u4f55 \u51e0\u4f55\u4f53 \uff0c \u7070\u5c18 \u5c06 \u51fa\u73b0 \u5728 \u8f66\u8f86 \u9876\u90e8 \u7684 \u90e8\u4ef6 \u4e0a \u3002 Dust _ Amount \u2014 \u7eb9\u7406 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 DustColor \u2014 \u7070\u5c18 \u7eb9\u7406 \u7684 \u57fa\u8272 \u3002 Tiling \u2014 \u7070\u5c18 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Thickness \u2014 \u7070\u5c18 \u7684 \u5bc6\u5ea6 \u3002 Roughness \u2014 \u7531\u4e8e \u7070\u5c18 \u800c \u51cf\u5c11 \u6c7d\u8f66 \u7684 \u91d1\u5c5e \u53cd\u5c04 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u7070\u5c18 \u7279\u6027 \u3002 Global Flakes \u2014 \u6c7d\u8f66 \u91d1\u5c5e \u91d1\u5c5e\u6f06 \u4e0a \u95ea\u95ea \u53d1\u5149 \u95ea\u95ea\u53d1\u5149 \u7684 \u8584\u7247 \u3002 Flakes On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Flake Scale \u2014 \u8584\u7247 \u7684 \u5927\u5c0f \u3002 Flake Brightness \u2014 \u95ea\u5149 \u7684 \u5f3a\u5ea6 \u3002 Flakes Color \u2014 \u7c92\u5b50 \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u8584\u7247 \u7279\u6027 \u3002 Global Gain \u2014 \u6c7d\u8f66 \u5e95\u6f06 \u7684 \u566a\u97f3 \u3002 Gain On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Scale \u2014 \u589e\u76ca \u7684 \u5927\u5c0f \u3002 Color \u2014 \u589e\u76ca \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u589e\u76ca \u5c5e\u6027 \u3002 Global Mud \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6ce5\u6d46 \u7eb9\u7406 \u3002 \u6ce5\u6d46 \u4ece\u8f66 \u7684 \u5e95\u90e8 \u5230 \u9876\u90e8 \u51fa\u73b0 \u3002 Height \u2014 \u6c7d\u8f66 \u51fa\u73b0 \u6ce5\u6d46 \u7684 \u90e8\u5206 \u3002 Mud _ Color \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u7684 \u5e95\u8272 \u3002 Mud _ Tiling \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Mud _ Thickness \u2014 \u6ce5\u6d46 \u7684 \u5bc6\u5ea6 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u6ce5\u6d46 \u7279\u6027 \u3002 Global Noise \u2014 \u5e94\u7528 \u4e8e \u6750\u8d28 \u6cd5\u7ebf \u7684 \u566a\u58f0 \u3002 \u6253\u9020 \u6a59\u76ae \u6548\u679c \u3002 Noise On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Noise Scale \u2014 \u901a\u8fc7 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u521b\u5efa \u7684 \u51f9\u51f8 \u5927\u5c0f \u3002 \u6c7d\u8f66 \u6750\u8d28 \u7684 \u566a\u58f0 \u7279\u6027 \u3002 Global Surface \u2014 \u6d82 \u5728 \u8f66\u8f86 \u6cb9\u6f06 \u4e0a \u7684 \u5149\u6cfd \u548c \u900f\u660e \u6d82\u5c42 \u3002 \u8fd9\u662f \u6c7d\u8f66 \u55b7\u6f06 \u7684 \u6700\u540e \u4e00\u6b65 \u3002 Clear Coat \u2014 \u6d82\u5c42 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 Clear Coat Roughness \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff08 \u5149\u6cfd \u5149\u6cfd\u5ea6 \uff09 \u3002 Metallic \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u53cd\u5c04 \u3002 \u5e94\u7528 \u4e8e \u6750\u8d28 \u8868\u9762 \u6d82\u5c42 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5efa\u7b51 \u6750\u8d28 \u5e94\u7528 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6750\u8d28 \u7531 \u56db\u79cd \u57fa\u672c \u7eb9\u7406 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u7eb9\u7406 \u7ec4\u5408 \u5728 \u4e00\u8d77 \u786e\u5b9a \u6750\u8d28 \u7684 \u57fa\u672c \u5c5e\u6027 \uff08 \u4f8b\u5982 \u6253\u5f00 Content / Carla / Static / Building / SM _ Apartment01 _ 1 \uff09 \u3002 Diffuse \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u57fa\u672c \u7ed8\u753b \u3002 RGB \u2014 \u5e26\u6709 \u57fa\u8272 \u7684 \u901a\u9053 \u3002 Alpha \u2014 \u6b64 \u901a\u9053 \u5b9a\u4e49 \u4e00\u4e2a \u63a9\u819c \uff0c \u5141\u8bb8 \u4fee\u6539 \u767d\u8272 \u90e8\u5206 \u7684 \u989c\u8272 \u3002 \u8fd9 \u5bf9\u4e8e \u4ece \u76f8\u540c \u6750\u6599 \u521b\u5efa \u4e00\u4e9b \u53d8\u4f53 \u975e\u5e38 \u6709\u7528 \u3002 ORME \u2014 \u4f7f\u7528 \u7279\u5b9a \u901a\u9053 \u6620\u5c04 \u6750\u8d28 \u7684 \u4e0d\u540c \u5c5e\u6027 \u3002 Ambient occlusion \u2014 \u5305\u542b \u5728 R \u901a\u9053 \u4e2d \u3002 Roughness \u2014 \u5305\u542b \u5728 G \u901a\u9053 \u4e2d \u3002 Metallic map \u2014 \u5305\u542b \u5728 B \u901a\u9053 \u4e2d \u3002 Emissive mask \u2014 \u5305\u542b \u5728 Alpha \u901a\u9053 \u4e2d \u3002 \u8be5 \u63a9\u6a21 \u5141\u8bb8 \u6539\u53d8 \u767d\u8272 \u90e8\u5206 \u7684 \u53d1\u5c04 \u989c\u8272 \u548c \u5f3a\u5ea6 \u3002 Normal \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u6cd5\u7ebf \u8d34\u56fe \u3002 RGB \u2014 \u6cd5\u7ebf \u8d34\u56fe \u4fe1\u606f \u3002 Emissive \u2014 \u5982\u679c \u9002\u7528 \uff0c \u6b64 \u7eb9\u7406 \u7528\u4e8e \u8bbe\u7f6e \u7eb9\u7406 \u7684 \u81ea \u53d1\u5149 \u57fa\u8272 \u3002 RGB \u2014 \u7eb9\u7406 \u4e2d \u53d1\u5c04 \u5143\u7d20 \u7684 \u989c\u8272 \u4fe1\u606f \u3002 \u5b9a\u5236 \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u4e0e \u6c7d\u8f66 \u6750\u6599 \u7c7b\u4f3c \uff0c \u5982\u679c \u9700\u8981 \uff0c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7684 \u6539\u53d8 \uff0c \u4f46 \u4ec5 \u5f53 \u7528\u6237 \u5177\u6709 \u865a\u5e7b \u5f15\u64ce \u65b9\u9762 \u7684 \u4e00\u4e9b \u4e13\u4e1a \u77e5\u8bc6 \u4e13\u4e1a\u77e5\u8bc6 \u65f6\u624d \u5efa\u8bae \u8fd9\u6837 \u505a \u3002 \u4f46\u662f \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u4f7f\u7528 \u7684 \u4e24\u4e2a \u4e3b\u8981 \u7740\u8272 \u7740\u8272\u5668 \u53ef\u4ee5 \u8fdb\u884c \u4e00\u4e9b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff08 \u4f8b\u5982 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 Content / Carla / Static / GenericMaterials / 00 _ MasterOpt / M _ GlassMaster \uff09 \u3002 \u73bb\u7483 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ GlassMaster . Opacity \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 \u5efa\u7b51 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ MaterialMaster Global 2 . Color Variation / Change Color \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 ( Diffuse ) \u7684 Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Global 2 . Color Variation / Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive Texture \u2014 \u542f\u7528 \u81ea \u53d1\u5149 ( Emissive ) \u7eb9\u7406 \u7684 \u4f7f\u7528 \u3002 Global 3 . Emissive / EmissiveColor \u2014 \u57fa\u4e8e ORME Emissive mask \u7684 \u767d\u8272 \u533a\u57df \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive attenuance \u2014 BP _ Lights \u4e2d \u9664\u4ee5 \u5f3a\u5ea6 \u56e0\u5b50 \u4ee5 \u83b7\u5f97 \u9002\u5f53 \u7684 \u53d1\u5c04 \u503c \u3002 Global 4 . Corrections / RoughnessCorrection \u2014 \u66f4\u6539 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 Global 4 . Corrections / MetallicCorrection \u2014 \u66f4\u6539 \u91d1\u5c5e \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 NormalFlatness \u2014 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 \u8fd9\u662f \u7528\u6237 \u5b9a\u5236 \u8f66\u8f86 \u548c \u5efa\u7b51 \u5efa\u7b51\u7269 \u6750\u6599 \u7684 \u6700\u663e \u7740 \u65b9\u5f0f \u7684 \u603b\u7ed3 \u3002 \u4efb\u4f55 \u53ef\u80fd \u51fa\u73b0 \u7684 \u7591\u95ee \u90fd \u975e\u5e38 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u6750\u8d28 \u5b9a\u5236"},{"location":"tuto_A_material_customization/#_1","text":"Carla \u56e2\u961f \u51c6\u5907 \u6bcf\u4e2a \u8d44\u4ea7 \u5728 \u67d0\u4e9b \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e0b \u8fd0\u884c \u3002 \u4f46\u662f \uff0c \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7528\u6237 \u53ef\u4ee5 \u4fee\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u4ee5 \u6700 \u9002\u5408 \u4ed6\u4eec \u7684 \u9700\u6c42 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28 \u5916\u89c2 \u7279\u6027 \u5efa\u7b51 \u6750\u8d28 \u5b9a\u5236 \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002","title":"\u6750\u8d28 \u5b9a\u5236"},{"location":"tuto_A_material_customization/#_2","text":"\u5728 Carla \u4e2d \uff0c \u6709 \u4e00\u7ec4 \u4e3b \u6750\u6599 \u7528\u4f5c \u8f66\u8f86 \u4e0d\u540c \u90e8\u4ef6 \u7684 \u6a21\u677f \u3002 \u4e3a \u6bcf\u4e2a \u8f66\u8f86 \u6a21\u578b \u521b\u5efa \u4e00\u4e2a \u5b9e\u4f8b \uff0c \u7136\u540e \u66f4 \u6539\u4e3a \u6240 \u9700 \u7684 \u7ed3\u679c \u3002 \u4e3b\u8981 \u6750\u8d28 \u53ef\u4ee5 \u5728 Content / Carla / Static / GenericMaterials / Vehicles \uff08 \u4f4d\u4e8e \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7684 Unreal / CarlaUE4 \u76ee\u5f55 \u4e2d \uff09 \u4e2d \u627e\u5230 \uff0c \u5982\u4e0b \u6240\u793a \u3002 \u9002\u7528 \u4e8e \u6c7d\u8f66 \u7684 \u4e3b \u6750\u6599 \u3002 M _ CarExterior _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u8eab \u7684 \u6750\u8d28 \u3002 M _ CarInterior _ Master \u2014 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u5185\u90e8 \u7684 \u6750\u8d28 \u3002 M _ CarLightsGlass _ Master \u2014 \u5e94\u7528 \u4e8e \u8986\u76d6 \u8f66\u706f \u7684 \u73bb\u7483 \u7684 \u6750\u8d28 \u3002 M _ CarWindows _ Master \u2014 \u5e94\u7528 \u4e8e \u7a97\u6237 \u7684 \u6750\u8d28 \u3002 M _ CarLicensePlate _ Master \u2014 \u5e94\u7528 \u4e8e \u8f66\u724c \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Master \u2014 \u4f5c\u4e3a \u53d1\u5c04 \u7eb9\u7406 \u5e94\u7528 \u4e8e \u6c7d\u8f66 \u8f66\u706f \u6c7d\u8f66\u706f \u7684 \u6750\u8d28 \u3002 M _ VehicleLights _ Sirens _ Master \u2014 \u5e94\u7528 \u4e8e \u8b66\u62a5 \u8b66\u62a5\u5668 \u7684 \u6750\u8d28 \uff08 \u5982\u679c \u9002\u7528 \uff09 \u3002","title":"\u6c7d\u8f66 \u6750\u8d28"},{"location":"tuto_A_material_customization/#_3","text":"\u521b\u5efa \u4e3b \u6750\u6599 \u7684 \u5b9e\u4f8b \u5e76 \u5c06 \u5b83\u4eec \u5b58\u50a8 \u5728 \u65b0 \u6a21\u578b \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u4ee5\u4e0b \u662f \u84dd \u56fe\u5e93 \u4e2d\u4e3a \u8b66\u8f66 \u521b\u5efa \u7684 \u5b9e\u4f8b \uff0c vehicle . dodge _ charger . police \u3002 \u8b66\u8f66 \u84dd\u56fe \u7684 \u5b9e\u4f8b \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u901a\u7528 \u6587\u6863 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u6587\u6863 \u4e2d \u627e\u5230 \u3002 \u6240\u6709 \u6750\u6599 \u90fd \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7a0b\u5ea6 \u7684 \u4fee\u6539 \uff0c \u4f46 \u53ea\u6709 \u5916\u89c2 \u6750\u6599 \u7684 \u6027\u80fd \u503c\u5f97 \u503c\u5f97\u4e00\u63d0 \u3002 \u5176\u4ed6 \u6750\u6599 \u5177\u6709 \u67d0\u4e9b \u53ef\u4ee5 \u66f4\u6539 \u7684 \u5c5e\u6027 \uff0c \u4f8b\u5982 \u73bb\u7483 \u6750\u6599 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u548c \u989c\u8272 \uff0c \u4f46 \u4e0d \u5efa\u8bae \u8fd9\u6837 \u505a \uff0c \u9664\u975e \u6709 \u7279\u5b9a \u7528\u9014 \u3002","title":"\u5b9a\u5236 \u6c7d\u8f66 \u6750\u8d28"},{"location":"tuto_A_material_customization/#_4","text":"\u5916\u89c2 \u6750\u6599 \u5e94\u7528 \u4e8e \u8f66\u8eab \uff0c \u662f \u6700 \u53ef \u5b9a\u5236 \u7684 \u4e00\u79cd \uff08 \u53cc\u51fb M _ CarExterior _ Master \uff0c \u8fdb\u5165 \u53c2\u6570 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u9009\u9879 \u9009\u9879\u5361 \uff09 \u3002 Base color \u2014 \u8f66\u8eab \u7684 \u57fa\u8272 \u3002 Tint shade \u2014 \u8272\u8c03 \u7684 \u53ef\u89c1 \u53ef\u89c1\u5ea6 \u6839\u636e \u53ef\u89c6 \u89d2\u5ea6 \u800c \u53d8\u5316 \u3002 \u5e26\u6709 \u7c89\u7ea2 \u7ea2\u8272 \u7c89\u7ea2\u8272 \u8c03 \u7684 \u7ea2\u8272 \u6c7d\u8f66 \u3002 \u5de6\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u7981\u7528 \uff0c \u53f3\u4fa7 \uff0c \u8272\u8c03 \u5df2 \u542f\u7528 \u3002 Global Dust \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6c61\u57a2 \u7eb9\u7406 \u3002 \u7070\u5c18 \u4f1a \u5806\u79ef \u5728 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 \u9876\u90e8 \uff0c \u800c \u5728 \u5e95\u90e8 \u51e0\u4e4e \u4e0d\u4f1a \u88ab \u6ce8\u610f \u5230 \u3002 \u5982\u679c \u65cb\u8f6c \u51e0\u4f55 \u51e0\u4f55\u4f53 \uff0c \u7070\u5c18 \u5c06 \u51fa\u73b0 \u5728 \u8f66\u8f86 \u9876\u90e8 \u7684 \u90e8\u4ef6 \u4e0a \u3002 Dust _ Amount \u2014 \u7eb9\u7406 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 DustColor \u2014 \u7070\u5c18 \u7eb9\u7406 \u7684 \u57fa\u8272 \u3002 Tiling \u2014 \u7070\u5c18 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Thickness \u2014 \u7070\u5c18 \u7684 \u5bc6\u5ea6 \u3002 Roughness \u2014 \u7531\u4e8e \u7070\u5c18 \u800c \u51cf\u5c11 \u6c7d\u8f66 \u7684 \u91d1\u5c5e \u53cd\u5c04 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u7070\u5c18 \u7279\u6027 \u3002 Global Flakes \u2014 \u6c7d\u8f66 \u91d1\u5c5e \u91d1\u5c5e\u6f06 \u4e0a \u95ea\u95ea \u53d1\u5149 \u95ea\u95ea\u53d1\u5149 \u7684 \u8584\u7247 \u3002 Flakes On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Flake Scale \u2014 \u8584\u7247 \u7684 \u5927\u5c0f \u3002 Flake Brightness \u2014 \u95ea\u5149 \u7684 \u5f3a\u5ea6 \u3002 Flakes Color \u2014 \u7c92\u5b50 \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u6599 \u4e2d \u7684 \u8584\u7247 \u7279\u6027 \u3002 Global Gain \u2014 \u6c7d\u8f66 \u5e95\u6f06 \u7684 \u566a\u97f3 \u3002 Gain On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Scale \u2014 \u589e\u76ca \u7684 \u5927\u5c0f \u3002 Color \u2014 \u589e\u76ca \u7684 \u57fa\u8272 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u589e\u76ca \u5c5e\u6027 \u3002 Global Mud \u2014 \u6d82 \u5728 \u6c7d\u8f66 \u4e0a \u7684 \u6ce5\u6d46 \u7eb9\u7406 \u3002 \u6ce5\u6d46 \u4ece\u8f66 \u7684 \u5e95\u90e8 \u5230 \u9876\u90e8 \u51fa\u73b0 \u3002 Height \u2014 \u6c7d\u8f66 \u51fa\u73b0 \u6ce5\u6d46 \u7684 \u90e8\u5206 \u3002 Mud _ Color \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u7684 \u5e95\u8272 \u3002 Mud _ Tiling \u2014 \u6ce5\u6d46 \u7eb9\u7406 \u56fe\u6848 \u7684 \u5927\u5c0f \u548c \u91cd\u590d \u3002 Mud _ Thickness \u2014 \u6ce5\u6d46 \u7684 \u5bc6\u5ea6 \u3002 \u6c7d\u8f66 \u6750\u8d28 \u4e2d \u7684 \u6ce5\u6d46 \u7279\u6027 \u3002 Global Noise \u2014 \u5e94\u7528 \u4e8e \u6750\u8d28 \u6cd5\u7ebf \u7684 \u566a\u58f0 \u3002 \u6253\u9020 \u6a59\u76ae \u6548\u679c \u3002 Noise On / Off \u2014 \u542f\u7528 \u6216 \u7981\u7528 \u8be5 \u529f\u80fd \u3002 Noise Scale \u2014 \u901a\u8fc7 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u521b\u5efa \u7684 \u51f9\u51f8 \u5927\u5c0f \u3002 \u6c7d\u8f66 \u6750\u8d28 \u7684 \u566a\u58f0 \u7279\u6027 \u3002 Global Surface \u2014 \u6d82 \u5728 \u8f66\u8f86 \u6cb9\u6f06 \u4e0a \u7684 \u5149\u6cfd \u548c \u900f\u660e \u6d82\u5c42 \u3002 \u8fd9\u662f \u6c7d\u8f66 \u55b7\u6f06 \u7684 \u6700\u540e \u4e00\u6b65 \u3002 Clear Coat \u2014 \u6d82\u5c42 \u7684 \u4e0d \u900f\u660e \u660e\u5ea6 \u900f\u660e\u5ea6 \u3002 Clear Coat Roughness \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff08 \u5149\u6cfd \u5149\u6cfd\u5ea6 \uff09 \u3002 Metallic \u2014 \u6240\u5f97 \u6750\u8d28 \u7684 \u53cd\u5c04 \u3002 \u5e94\u7528 \u4e8e \u6750\u8d28 \u8868\u9762 \u6d82\u5c42 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002","title":"\u5916\u89c2 \u7279\u6027"},{"location":"tuto_A_material_customization/#_5","text":"\u5e94\u7528 \u4e8e \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6750\u8d28 \u7531 \u56db\u79cd \u57fa\u672c \u7eb9\u7406 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u7eb9\u7406 \u7ec4\u5408 \u5728 \u4e00\u8d77 \u786e\u5b9a \u6750\u8d28 \u7684 \u57fa\u672c \u5c5e\u6027 \uff08 \u4f8b\u5982 \u6253\u5f00 Content / Carla / Static / Building / SM _ Apartment01 _ 1 \uff09 \u3002 Diffuse \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u57fa\u672c \u7ed8\u753b \u3002 RGB \u2014 \u5e26\u6709 \u57fa\u8272 \u7684 \u901a\u9053 \u3002 Alpha \u2014 \u6b64 \u901a\u9053 \u5b9a\u4e49 \u4e00\u4e2a \u63a9\u819c \uff0c \u5141\u8bb8 \u4fee\u6539 \u767d\u8272 \u90e8\u5206 \u7684 \u989c\u8272 \u3002 \u8fd9 \u5bf9\u4e8e \u4ece \u76f8\u540c \u6750\u6599 \u521b\u5efa \u4e00\u4e9b \u53d8\u4f53 \u975e\u5e38 \u6709\u7528 \u3002 ORME \u2014 \u4f7f\u7528 \u7279\u5b9a \u901a\u9053 \u6620\u5c04 \u6750\u8d28 \u7684 \u4e0d\u540c \u5c5e\u6027 \u3002 Ambient occlusion \u2014 \u5305\u542b \u5728 R \u901a\u9053 \u4e2d \u3002 Roughness \u2014 \u5305\u542b \u5728 G \u901a\u9053 \u4e2d \u3002 Metallic map \u2014 \u5305\u542b \u5728 B \u901a\u9053 \u4e2d \u3002 Emissive mask \u2014 \u5305\u542b \u5728 Alpha \u901a\u9053 \u4e2d \u3002 \u8be5 \u63a9\u6a21 \u5141\u8bb8 \u6539\u53d8 \u767d\u8272 \u90e8\u5206 \u7684 \u53d1\u5c04 \u989c\u8272 \u548c \u5f3a\u5ea6 \u3002 Normal \u2014 \u5305\u542b \u6750\u8d28 \u7684 \u6cd5\u7ebf \u8d34\u56fe \u3002 RGB \u2014 \u6cd5\u7ebf \u8d34\u56fe \u4fe1\u606f \u3002 Emissive \u2014 \u5982\u679c \u9002\u7528 \uff0c \u6b64 \u7eb9\u7406 \u7528\u4e8e \u8bbe\u7f6e \u7eb9\u7406 \u7684 \u81ea \u53d1\u5149 \u57fa\u8272 \u3002 RGB \u2014 \u7eb9\u7406 \u4e2d \u53d1\u5c04 \u5143\u7d20 \u7684 \u989c\u8272 \u4fe1\u606f \u3002","title":"\u5efa\u7b51 \u6750\u8d28"},{"location":"tuto_A_material_customization/#_6","text":"\u4e0e \u6c7d\u8f66 \u6750\u6599 \u7c7b\u4f3c \uff0c \u5982\u679c \u9700\u8981 \uff0c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u53ef\u4ee5 \u8fdb\u884c \u5f88\u5927 \u7684 \u6539\u53d8 \uff0c \u4f46 \u4ec5 \u5f53 \u7528\u6237 \u5177\u6709 \u865a\u5e7b \u5f15\u64ce \u65b9\u9762 \u7684 \u4e00\u4e9b \u4e13\u4e1a \u77e5\u8bc6 \u4e13\u4e1a\u77e5\u8bc6 \u65f6\u624d \u5efa\u8bae \u8fd9\u6837 \u505a \u3002 \u4f46\u662f \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u4f7f\u7528 \u7684 \u4e24\u4e2a \u4e3b\u8981 \u7740\u8272 \u7740\u8272\u5668 \u53ef\u4ee5 \u8fdb\u884c \u4e00\u4e9b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff08 \u4f8b\u5982 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u6253\u5f00 Content / Carla / Static / GenericMaterials / 00 _ MasterOpt / M _ GlassMaster \uff09 \u3002 \u73bb\u7483 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ GlassMaster . Opacity \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 \u5efa\u7b51 \u7740\u8272 \u7740\u8272\u5668 \u2014 M _ MaterialMaster Global 2 . Color Variation / Change Color \u2014 \u5728 \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 ( Diffuse ) \u7684 Alpha \u7eb9\u7406 \u4e0a \u542f\u7528 \u989c\u8272 \u6539\u53d8 \u3002 Global 2 . Color Variation / Color \u2014 \u57fa\u4e8e \u767d\u8272 \u533a\u57df \u53cd\u5c04 \u6f2b\u53cd\u5c04 Diffuse Alpha \u7eb9\u7406 \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive Texture \u2014 \u542f\u7528 \u81ea \u53d1\u5149 ( Emissive ) \u7eb9\u7406 \u7684 \u4f7f\u7528 \u3002 Global 3 . Emissive / EmissiveColor \u2014 \u57fa\u4e8e ORME Emissive mask \u7684 \u767d\u8272 \u533a\u57df \u5e94\u7528 \u8272\u8c03 \u3002 Global 3 . Emissive / Emissive attenuance \u2014 BP _ Lights \u4e2d \u9664\u4ee5 \u5f3a\u5ea6 \u56e0\u5b50 \u4ee5 \u83b7\u5f97 \u9002\u5f53 \u7684 \u53d1\u5c04 \u503c \u3002 Global 4 . Corrections / RoughnessCorrection \u2014 \u66f4\u6539 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 Global 4 . Corrections / MetallicCorrection \u2014 \u66f4\u6539 \u91d1\u5c5e \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 NormalFlatness \u2014 \u66f4\u6539 \u6cd5\u7ebf \u8d34\u56fe \u7684 \u5f3a\u5ea6 \u3002 \u8fd9\u662f \u7528\u6237 \u5b9a\u5236 \u8f66\u8f86 \u548c \u5efa\u7b51 \u5efa\u7b51\u7269 \u6750\u6599 \u7684 \u6700\u663e \u7740 \u65b9\u5f0f \u7684 \u603b\u7ed3 \u3002 \u4efb\u4f55 \u53ef\u80fd \u51fa\u73b0 \u7684 \u7591\u95ee \u90fd \u975e\u5e38 \u6b22\u8fce \u5728 \u8bba\u575b \u4e2d \u63d0\u51fa \u3002 Carla \u8bba\u575b","title":"\u5b9a\u5236 \u5efa\u7b51\u6750\u6599"},{"location":"tuto_D_contribute_assets/","text":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u4ed3\u5e93 \u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u4ed3\u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u672c \u6587\u6863 \u5305\u542b \u5c06 \u6b64 \u94fe\u63a5 \u66f4\u65b0 \u5230 \u6700\u65b0 \u7248\u672c \u6240 \u9700 \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u590d\u5236 \u60a8 \u8981 \u94fe\u63a5 \u7684 \u5185\u5bb9 \u5305 \u7684 \u6807\u7b7e \u3002 T \u53ef\u4ee5 \u901a\u8fc7 \u67e5\u770b \u6700\u65b0 Jenkins \u6784\u5efa \u7684 \u5de5\u4ef6 \u90e8\u5206 \u4e2d \u751f\u6210 \u7684 \u5305 \u540d\u79f0 \u6765 \u627e\u5230 \u6b64 \u6807\u7b7e \uff0c \u4f8b\u5982 20190617 _ 086f97f . tar . gz \u3002 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 ContentVersions . txt \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 \u6587\u4ef6 \u672b\u5c3e \u6765 \u7f16\u8f91 Edit ContentVersions . txt \uff0c \u4f8b\u5982 Latest : 20190617 _ 086f97f ( \u4e0d \u5305\u62ec . tar . gz \u90e8\u5206 \uff09 \u3002 \u6253\u5f00 \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6253\u5f00 \u65b0 \u7684 \u62c9\u53d6 \u8bf7\u6c42 \u3002","title":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9"},{"location":"tuto_D_contribute_assets/#_1","text":"\u6211\u4eec \u7684 \u5185\u5bb9 \u9a7b\u7559 \u5728 \u5355\u72ec \u7684 Git LFS \u4ed3\u5e93 \u4e2d \u3002 \u4f5c\u4e3a \u6784\u5efa \u7cfb\u7edf \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u6211\u4eec \u751f\u6210 \u5e76 \u4e0a\u4f20 \u4e00\u4e2a \u4e00\u4e2a\u5305 \uff0c \u5176\u4e2d \u5305\u542b \u5e26\u6709 \u5f53\u524d \u65e5\u671f \u548c \u63d0\u4ea4 \u6807\u8bb0 \u7684 \u8be5 \u5185\u5bb9 \u7684 \u6700\u65b0 \u7248\u672c \u3002 \u6211\u4eec \u5b9a\u671f \u5347\u7ea7 Carla \u4ed3\u5e93 \uff0c \u5e76 \u63d0\u4f9b \u6700\u65b0 \u7248\u672c \u5185\u5bb9 \u5305 \u7684 \u94fe\u63a5 \u3002 \u672c \u6587\u6863 \u5305\u542b \u5c06 \u6b64 \u94fe\u63a5 \u66f4\u65b0 \u5230 \u6700\u65b0 \u7248\u672c \u6240 \u9700 \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u590d\u5236 \u60a8 \u8981 \u94fe\u63a5 \u7684 \u5185\u5bb9 \u5305 \u7684 \u6807\u7b7e \u3002 T \u53ef\u4ee5 \u901a\u8fc7 \u67e5\u770b \u6700\u65b0 Jenkins \u6784\u5efa \u7684 \u5de5\u4ef6 \u90e8\u5206 \u4e2d \u751f\u6210 \u7684 \u5305 \u540d\u79f0 \u6765 \u627e\u5230 \u6b64 \u6807\u7b7e \uff0c \u4f8b\u5982 20190617 _ 086f97f . tar . gz \u3002 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 ContentVersions . txt \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u6807\u8bb0 \u7c98\u8d34 \u5230 \u6587\u4ef6 \u672b\u5c3e \u6765 \u7f16\u8f91 Edit ContentVersions . txt \uff0c \u4f8b\u5982 Latest : 20190617 _ 086f97f ( \u4e0d \u5305\u62ec . tar . gz \u90e8\u5206 \uff09 \u3002 \u6253\u5f00 \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6253\u5f00 \u65b0 \u7684 \u62c9\u53d6 \u8bf7\u6c42 \u3002","title":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9"},{"location":"tuto_D_create_semantic_tags/","text":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u4e86\u89e3 \u5982\u4f55 \u5b9a\u4e49 \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u8fd8 \u53ef\u4ee5 \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u4ee5 \u8fc7\u6ee4 carla . World \u68c0\u7d22 \u7684 \u8fb9\u754c \u6846 \u3002 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e 1 . \u521b\u5efa \u6807\u7b7e ID 2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb 4 . \u5b9a\u4e49 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 5 . \u6dfb\u52a0 \u6807\u8bb0 \u5143\u7d20 \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e 1 . \u521b\u5efa \u6807\u7b7e ID \u6253\u5f00 LibCarla / source / carla / rpc \u4e2d \u7684 ObjectLabel . h \u3002 \u4f7f\u7528 \u4e0e \u5176\u4f59 \u6807\u7b7e \u76f8\u540c \u7684 \u683c\u5f0f \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u7b14\u8bb0 \u6807\u7b7e \u4e0d\u5fc5 \u6309 \u987a\u5e8f \u51fa\u73b0 \u3002 \u4f46\u662f \uff0c \u6309 \u987a\u5e8f \u5217\u51fa \u5b83\u4eec \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002 2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u8f6c\u5230 Carla / Static \u3002 \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a \u60a8 \u7684 \u6807\u7b7e \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u548c \u6807\u7b7e \u4e0d\u5fc5 \u547d\u540d \u76f8\u540c \u3002 \u7136\u800c \uff0c \u8fd9\u6837 \u505a \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002 3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb 3.1 . \u6253\u5f00 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Game \u4e2d \u7684 Tagger . cpp \u3002 \u8f6c \u5230 GetLabelByFolderName \u5217\u8868 \u672b\u5c3e \u6dfb\u52a0 \u60a8 \u7684 \u6807\u7b7e \u3002 \u88ab \u6bd4\u8f83 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u662f 2 . \u4e2d \u4f7f\u7528 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u8fd9\u91cc \u4f7f\u7528 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u540d\u79f0 \u3002 3.2 . \u5728 \u76f8\u540c \u7684 Tagger . cpp \u8f6c \u5230 GetTagAsString \u3002 \u5728 \u5f00\u5173 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 4 . \u5b9a\u4e49 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 \u5728 LibCarla / source / carla / image \u4e2d \u6253\u5f00 CityScapesPalette . h \u3002 \u5728 \u6570\u7ec4 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u7684 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 \u3002 \u7b14\u8bb0 \u6570\u7ec4 \u4e2d \u7684 \u4f4d\u7f6e \u5fc5\u987b \u4e0e \u6807\u7b7e ID \u76f8\u5bf9 \u5e94 \uff0c \u5728 \u672c\u4f8b \u4e2d\u4e3a 23u . 5 . \u6dfb\u52a0 \u6807\u8bb0 \u7f51\u683c \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u5df2 \u53ef\u4f9b \u4f7f\u7528 \u53ef\u4f9b\u4f7f\u7528 \u3002 \u53ea\u6709 \u5b58\u50a8 \u5728 \u6807\u7b7e \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7f51\u683c \u624d \u4f1a \u88ab \u6807\u8bb0 \u4e3a \u6b64\u7c7b \u3002 \u5c06 \u76f8\u5e94 \u7684 \u7f51\u683c \u79fb\u52a8 \u6216 \u5bfc\u5165 \u5bfc\u5165\u5230 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u4ee5\u4fbf \u6b63\u786e \u6807\u8bb0 \u3002 \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u8fd9 \u4e00\u6b65 \u4e0e \u8bed\u4e49 \u5206\u5272 \u6ca1\u6709 \u76f4\u63a5 \u5173\u7cfb \u3002 \u4f46\u662f \uff0c \u8fd9\u4e9b \u6807\u7b7e \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World \u4e2d \u7684 \u8fb9\u754c \u6846 \u67e5\u8be2 \u3002 \u4e3a\u6b64 \uff0c \u5fc5\u987b \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 PythonAPI \u4e2d \u7684 carla . CityObjectLabel \u679a\u4e3e \u4e2d \u3002 \u5728 carla / PythonAPI / carla / source / libcarla \u4e2d \u6253\u5f00 World . cpp \u5e76 \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u6dfb\u52a0 \u65b0 \u9053\u5177","title":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e"},{"location":"tuto_D_create_semantic_tags/#_1","text":"\u4e86\u89e3 \u5982\u4f55 \u5b9a\u4e49 \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u8fd9\u4e9b \u8fd8 \u53ef\u4ee5 \u6dfb\u52a0 \u5230 carla . CityObjectLabel \u4ee5 \u8fc7\u6ee4 carla . World \u68c0\u7d22 \u7684 \u8fb9\u754c \u6846 \u3002 \u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e 1 . \u521b\u5efa \u6807\u7b7e ID 2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb 4 . \u5b9a\u4e49 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 5 . \u6dfb\u52a0 \u6807\u8bb0 \u5143\u7d20 \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel","title":"\u521b\u5efa \u8bed\u4e49 \u6807\u7b7e"},{"location":"tuto_D_create_semantic_tags/#_2","text":"","title":"\u521b\u5efa \u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e"},{"location":"tuto_D_create_semantic_tags/#1-id","text":"\u6253\u5f00 LibCarla / source / carla / rpc \u4e2d \u7684 ObjectLabel . h \u3002 \u4f7f\u7528 \u4e0e \u5176\u4f59 \u6807\u7b7e \u76f8\u540c \u7684 \u683c\u5f0f \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u7b14\u8bb0 \u6807\u7b7e \u4e0d\u5fc5 \u6309 \u987a\u5e8f \u51fa\u73b0 \u3002 \u4f46\u662f \uff0c \u6309 \u987a\u5e8f \u5217\u51fa \u5b83\u4eec \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002","title":"1 . \u521b\u5efa \u6807\u7b7e ID"},{"location":"tuto_D_create_semantic_tags/#2","text":"\u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u8f6c\u5230 Carla / Static \u3002 \u521b\u5efa \u4e00\u4e2a \u540d\u4e3a \u60a8 \u7684 \u6807\u7b7e \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u548c \u6807\u7b7e \u4e0d\u5fc5 \u547d\u540d \u76f8\u540c \u3002 \u7136\u800c \uff0c \u8fd9\u6837 \u505a \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 \u505a\u6cd5 \u3002","title":"2 . \u521b\u5efa \u8d44\u4ea7 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6\u5939"},{"location":"tuto_D_create_semantic_tags/#3","text":"3.1 . \u6253\u5f00 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Game \u4e2d \u7684 Tagger . cpp \u3002 \u8f6c \u5230 GetLabelByFolderName \u5217\u8868 \u672b\u5c3e \u6dfb\u52a0 \u60a8 \u7684 \u6807\u7b7e \u3002 \u88ab \u6bd4\u8f83 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u662f 2 . \u4e2d \u4f7f\u7528 \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u8fd9\u91cc \u4f7f\u7528 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u540d\u79f0 \u3002 3.2 . \u5728 \u76f8\u540c \u7684 Tagger . cpp \u8f6c \u5230 GetTagAsString \u3002 \u5728 \u5f00\u5173 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002","title":"3 . \u521b\u5efa \u865a\u5e7b \u5f15\u64ce \u4e0e \u4ee3\u7801 \u6807\u7b7e \u7684 \u53cc\u5411 \u5bf9\u5e94 \u5173\u7cfb"},{"location":"tuto_D_create_semantic_tags/#4","text":"\u5728 LibCarla / source / carla / image \u4e2d \u6253\u5f00 CityScapesPalette . h \u3002 \u5728 \u6570\u7ec4 \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u7684 \u989c\u8272 \u4ee3\u7801 \u989c\u8272\u4ee3\u7801 \u3002 \u7b14\u8bb0 \u6570\u7ec4 \u4e2d \u7684 \u4f4d\u7f6e \u5fc5\u987b \u4e0e \u6807\u7b7e ID \u76f8\u5bf9 \u5e94 \uff0c \u5728 \u672c\u4f8b \u4e2d\u4e3a 23u .","title":"4 . \u5b9a\u4e49 \u989c\u8272\u4ee3\u7801"},{"location":"tuto_D_create_semantic_tags/#5","text":"\u65b0 \u7684 \u8bed\u4e49 \u6807\u7b7e \u5df2 \u53ef\u4f9b \u4f7f\u7528 \u53ef\u4f9b\u4f7f\u7528 \u3002 \u53ea\u6709 \u5b58\u50a8 \u5728 \u6807\u7b7e \u7684 \u865a\u5e7b \u5f15\u64ce \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5185 \u7684 \u7f51\u683c \u624d \u4f1a \u88ab \u6807\u8bb0 \u4e3a \u6b64\u7c7b \u3002 \u5c06 \u76f8\u5e94 \u7684 \u7f51\u683c \u79fb\u52a8 \u6216 \u5bfc\u5165 \u5bfc\u5165\u5230 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u4ee5\u4fbf \u6b63\u786e \u6807\u8bb0 \u3002","title":"5 . \u6dfb\u52a0 \u6807\u8bb0 \u7f51\u683c"},{"location":"tuto_D_create_semantic_tags/#carlacityobjectlabel","text":"\u8fd9 \u4e00\u6b65 \u4e0e \u8bed\u4e49 \u5206\u5272 \u6ca1\u6709 \u76f4\u63a5 \u5173\u7cfb \u3002 \u4f46\u662f \uff0c \u8fd9\u4e9b \u6807\u7b7e \u53ef \u7528\u4e8e \u8fc7\u6ee4 carla . World \u4e2d \u7684 \u8fb9\u754c \u6846 \u67e5\u8be2 \u3002 \u4e3a\u6b64 \uff0c \u5fc5\u987b \u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 PythonAPI \u4e2d \u7684 carla . CityObjectLabel \u679a\u4e3e \u4e2d \u3002 \u5728 carla / PythonAPI / carla / source / libcarla \u4e2d \u6253\u5f00 World . cpp \u5e76 \u5728 \u679a\u4e3e \u672b\u5c3e \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u95ee\u9898 \u3001 \u7591\u95ee \u6216 \u5efa\u8bae \uff0c \u8bf7 \u9605\u8bfb \u5e38\u89c1 \u95ee\u9898 \u9898\u89e3 \u89e3\u7b54 \u95ee\u9898\u89e3\u7b54 \u9875\u9762 \u6216 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u8003 \u6dfb\u52a0 \u65b0 \u9053\u5177","title":"\u5c06 \u6807\u7b7e \u6dfb\u52a0 \u5230 carla . CityObjectLabel"},{"location":"tuto_D_create_sensor/","text":"\u5982\u4f55 \u6dfb\u52a0 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u5411 Carla \u6dfb\u52a0 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e2d \u5b9e\u73b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u901a\u8fc7 Carla \u7684 Python API \u516c\u5f00 \u5176 \u6570\u636e \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6211\u4eec \u5c06 \u901a\u8fc7 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f5c\u4e3a \u793a\u4f8b \u6765 \u9075\u5faa \u6240\u6709 \u6b65\u9aa4 \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4ecb\u7ecd \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 1 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 2 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668 3 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 5 - \u4f7f\u7528 \u793a\u4f8b \u9644\u5f55 \u91cd\u7528 \u7f13\u51b2 \u7f13\u51b2\u533a \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4e3a\u4e86 \u5b9e\u73b0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u60a8 \u9700\u8981 \u7f16\u8bd1 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \uff0c \u6709\u5173 \u5982\u4f55 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \u7684 \u8be6\u7ec6 \u8bf4\u660e \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 \u672c \u6559\u7a0b \u8fd8 \u5047\u8bbe \u8bfb\u8005 \u7cbe\u901a C++ \u7f16\u7a0b \u3002 \u4ecb\u7ecd Carla \u4e2d \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u3002 \u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u8fde\u7eed \u4ea7\u751f \u6570\u636e \uff0c \u800c \u53e6 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u67d0\u4e9b \u4e8b\u4ef6 \u53d1\u751f \u540e \u624d \u4ea7\u751f \u6570\u636e \u3002 \u4f8b\u5982 \uff0c \u76f8\u673a \u5728 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u751f\u6210 \u56fe\u50cf \uff0c \u4f46 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u53d1\u751f \u78b0\u649e \u65f6\u624d \u4f1a \u89e6\u53d1 \u3002 \u5c3d\u7ba1 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \uff08 \u865a\u5e7b \u5f15\u64ce 4 \uff09 \u4e2d \u8ba1\u7b97 \u6d4b\u91cf \u7ed3\u679c \uff0c \u4f46 \u503c\u5f97 \u6ce8\u610f \u503c\u5f97\u6ce8\u610f \u7684 \u662f \uff0c \u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e00\u4e2a \u4f8b\u5b50 \u662f LaneInvasion \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u5b83 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u9644\u5f55 \uff1a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u91cd\u70b9 \u5173\u6ce8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u8ba9 \u865a\u5e7b \u5f15\u64ce 4 \u5185 \u8fd0\u884c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u6570\u636e \u4e00\u8def \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6211\u4eec \u9700\u8981 \u8986\u76d6 \u6574\u4e2a \u901a\u4fe1 \u7ba1\u9053 \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u7c7b\u6765 \u6db5\u76d6 \u7ba1\u9053 \u7684 \u4e0d\u540c \u6b65\u9aa4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8d1f\u8d23 \u6d4b\u91cf \u548c / \u6216 \u4eff\u771f \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u6846\u67b6 \u5728 Carla \u63d2\u4ef6 \u4e2d \u8fd0\u884c \u3002 \u7528\u6237 \u53ef\u4ee5 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u3002 \u4e32\u884c \u5668 \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u5e8f\u5217 \u5e8f\u5217\u5316 \u548c \u53cd \u5e8f\u5217 \u5e8f\u5217\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u65b9\u6cd5 \u3002 \u5728 LibCarla \u4e2d \u8fd0\u884c \uff0c \u5305\u62ec \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u8868\u793a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u5bf9\u8c61 \u3002 \u8fd9 \u662f \u5c06 \u5728 C++ \u548c Python API \u4e2d \u4f20\u9012 \u7ed9 \u6700\u7ec8 \u7528\u6237 \u6700\u7ec8\u7528\u6237 \u7684 \u5bf9\u8c61 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u786e\u4fdd \u6700\u4f73 \u6027\u80fd \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u57fa\u4e8e \u6a21\u677f \u5143 \u7f16\u7a0b \u7684 \u201c \u7f16\u8bd1 \u65f6 \u63d2\u4ef6 \u7cfb\u7edf \u201d \u8fdb\u884c \u6ce8\u518c \u548c \u8c03\u5ea6 \u3002 \u6700\u6709 \u53ef\u80fd \u7684 \u662f \uff0c \u5728 \u6240\u6709 \u90e8\u5206 \u90fd \u5b58\u5728 \u4e4b\u524d \uff0c \u4ee3\u7801 \u4e0d\u4f1a \u7f16\u8bd1 \u3002 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b8c\u6574 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5728 \u8fd9\u91cc \u3002 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u6d4b \u8f66\u8f86 \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u5176\u4e2d \u7684 \u7269\u4f53 \uff0c \u5e76\u4e14 \u6bcf\u6b21 \u8f66\u8f86 \u8fdb\u5165 \u89e6\u53d1 \u76d2\u65f6 \u6211\u4eec \u90fd \u4f1a \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u62a5\u544a \u72b6\u6001 \u3002 \u6211\u4eec \u4e4b\u4e3a \u79f0\u4e4b\u4e3a \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u6211\u4eec \u4e0d\u4f1a \u8003\u8651 \u6240\u6709 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \uff0c \u4e5f \u4e0d\u4f1a \u4ee5 \u6700 \u6709\u6548 \u7684 \u65b9\u5f0f \u5b9e\u73b0 \u3002 \u8fd9 \u53ea\u662f \u4e00\u4e2a \u8bf4\u660e \u660e\u6027 \u8bf4\u660e\u6027 \u793a\u4f8b \u3002 1 - \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd9\u662f \u6211\u4eec \u8981 \u521b\u5efa \u7684 \u6700 \u590d\u6742 \u7684 \u7c7b \u3002 \u8fd9\u91cc \u6211\u4eec \u5728 \u865a\u5e7b \u5f15\u64ce \u6846\u67b6 \u5185 \u8fd0\u884c \uff0c \u865a\u5e7b \u5f15\u64ce 4 API \u7684 \u77e5\u8bc6 \u5c06 \u975e\u5e38 \u6709 \u5e2e\u52a9 \uff0c \u4f46 \u4e0d\u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \uff0c \u6211\u4eec \u5047\u8bbe \u8bfb\u8005 \u4ee5\u524d \u4ece\u672a \u4f7f\u7528 \u8fc7 \u865a\u5e7b \u5f15\u64ce 4 \u3002 \u5728 UE4 \u5185\u90e8 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u4e0e \u5ba2\u6237 \u5ba2\u6237\u7aef \u7c7b\u4f3c \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff0c ASensor \u6d3e\u751f \u81ea AActor \uff0c \u800c Actor \u5927\u81f4 \u662f \u53ef\u4ee5 \u653e\u5165 \u4e16\u754c \u4e2d \u7684 \u4efb\u4f55 \u5bf9\u8c61 \u3002 AActor \u6709 \u4e00\u4e2a \u540d\u4e3a \u7684 \u865a\u62df \u51fd\u6570 Tick \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5b83 \u5728 \u6bcf\u6b21 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u66f4\u65b0 \u65f6 \u66f4\u65b0 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u66f4 \u9ad8 \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d UObject \uff0c \u6211\u4eec \u6709 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u7684 \u57fa\u7c7b \u3002 \u91cd\u8981 \u7684 \u662f \u8981 \u77e5\u9053 \u6d3e\u751f \u7684 \u5bf9\u8c61 UObject \u662f \u901a\u8fc7 \u6307\u9488 \u8fdb\u884c \u5904\u7406 \u7684 \uff0c \u5e76\u4e14 \u5f53 \u5b83\u4eec \u4e0d\u518d \u88ab \u5f15\u7528 \u65f6\u4f1a \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u6307\u5411 UObjects \u7684 \u7c7b \u6210\u5458 \u9700\u8981 \u7528\u5b8f UPROPERTY \u8fdb\u884c \u6807\u8bb0 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u5f00\u59cb \u5427 \u3002 \u8be5\u7c7b \u5fc5\u987b \u4f4d\u4e8e Carla \u63d2\u4ef6 \u5185 \uff0c \u6211\u4eec \u5c06 \u4e3a \u65b0 \u7684 C++ \u7c7b \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . h Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . cpp \u8d77\u7801 \u6700\u8d77\u7801 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u7ee7\u627f ASensor \uff0c \u5e76 \u63d0\u4f9b \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 GetSensorDefinition \uff1b \u4f46 \u6211\u4eec \u8fd8 \u5c06 \u91cd\u5199 Set \u3001 SetOwner \u3001 \u548c Tick \u65b9\u6cd5 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd8 \u9700\u8981 \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u6211\u4eec \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6709 \u4e86 \u8fd9\u4e2a \u548c \u4e00\u4e9b \u5fc5\u9700 \u7684 \u865a\u5e7b \u5f15\u64ce 4 \u6837\u677f \u4ee3\u7801 \uff0c \u6587\u4ef6 \u5934\u6587\u4ef6 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf # pragma once # include \" Carla / Sensor / Sensor . h \" # include \" Carla / Actor / ActorDefinition . h \" # include \" Carla / Actor / ActorDescription . h \" # include \" Components / BoxComponent . h \" # include \" SafeDistanceSensor . generated . h \" UCLASS ( ) class CARLA _ API ASafeDistanceSensor : public ASensor { GENERATED _ BODY ( ) public : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) ; static FActorDefinition GetSensorDefinition ( ) ; void Set ( const FActorDescription & ActorDescription ) override ; void SetOwner ( AActor * Owner ) override ; void Tick ( float DeltaSeconds ) override ; private : UPROPERTY ( ) UBoxComponent * Box = nullptr ; } ; \u5728 cpp \u6587\u4ef6 \u4e2d \uff0c \u9996\u5148 \u6211\u4eec \u9700\u8981 \u4e00\u4e9b \u5305\u542b # include \" Carla . h \" # include \" Carla / Sensor / SafeDistanceSensor . h \" # include \" Carla / Actor / ActorBlueprintFunctionLibrary . h \" # include \" Carla / Game / CarlaEpisode . h \" # include \" Carla / Util / BoundingBoxCalculator . h \" # include \" Carla / Vehicle / CarlaWheeledVehicle . h \" \u7136\u540e \u6211\u4eec \u5c31 \u53ef\u4ee5 \u7ee7\u7eed \u5b9e\u73b0 \u8be5 \u529f\u80fd \u4e86 \u3002 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5c06 \u521b\u5efa \u89e6\u53d1 \u6846 \uff0c \u5e76 \u544a\u8bc9 \u865a\u5e7b \u5f15\u64ce 4 \u6211\u4eec \u5e0c\u671b \u8c03\u7528 \u6211\u4eec \u7684 \u52fe\u9009 \u51fd\u6570 \u3002 \u5982\u679c \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4f7f\u7528 \u523b\u5ea6 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7981\u7528 \u5b83 \u4ee5 \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u523b\u5ea6 ASafeDistanceSensor : : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) : Super ( ObjectInitializer ) { Box = CreateDefaultSubobject < UBoxComponent > ( TEXT ( \" BoxOverlap \" ) ) ; Box - > SetupAttachment ( RootComponent ) ; Box - > SetHiddenInGame ( true ) ; / / Disable for debugging . Box - > SetCollisionProfileName ( FName ( \" OverlapAll \" ) ) ; PrimaryActorTick . bCanEverTick = true ; } \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u544a\u8bc9 Carla \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709 \u4ec0\u4e48 \u5c5e\u6027 \uff0c \u8fd9 \u5c06 \u7528\u4e8e \u5728 \u6211\u4eec \u7684 \u84dd \u56fe\u5e93 \u4e2d \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \uff0c \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e2a \u84dd\u56fe \u6765 \u914d\u7f6e \u548c \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5c06 \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u89e6\u53d1 \u6846 \u7684 \u5c5e\u6027 \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u5c06 \u4ec5 \u516c\u5f00 X \u548c Y \u5b89\u5168 \u8ddd\u79bb FActorDefinition ASafeDistanceSensor : : GetSensorDefinition ( ) { auto Definition = UActorBlueprintFunctionLibrary : : MakeGenericSensorDefinition ( TEXT ( \" other \" ) , TEXT ( \" safe _ distance \" ) ) ; FActorVariation Front ; Front . Id = TEXT ( \" safe _ distance _ front \" ) ; Front . Type = EActorAttributeType : : Float ; Front . RecommendedValues = { TEXT ( \" 1.0 \" ) } ; Front . bRestrictToRecommended = false ; FActorVariation Back ; Back . Id = TEXT ( \" safe _ distance _ back \" ) ; Back . Type = EActorAttributeType : : Float ; Back . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Back . bRestrictToRecommended = false ; FActorVariation Lateral ; Lateral . Id = TEXT ( \" safe _ distance _ lateral \" ) ; Lateral . Type = EActorAttributeType : : Float ; Lateral . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Lateral . bRestrictToRecommended = false ; Definition . Variations . Append ( { Front , Back , Lateral } ) ; return Definition ; } \u8fd9\u6837 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5c31 \u80fd\u591f \u6839\u636e \u7528\u6237 \u9700\u6c42 \u521b\u5efa \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u540e \uff0c \u7acb\u5373 \u4f7f\u7528 \u7528\u6237 \u8bf7\u6c42 \u7684 \u53c2\u6570 \u8c03\u7528 \u8be5 Set \u51fd\u6570 void ASafeDistanceSensor : : Set ( const FActorDescription & Description ) { Super : : Set ( Description ) ; float Front = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ front \" , Description . Variations , 1.0 f ) ; float Back = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ back \" , Description . Variations , 0.5 f ) ; float Lateral = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ lateral \" , Description . Variations , 0.5 f ) ; constexpr float M _ TO _ CM = 100.0 f ; / / Unit conversion . float LocationX = M _ TO _ CM * ( Front - Back ) / 2.0 f ; float ExtentX = M _ TO _ CM * ( Front + Back ) / 2.0 f ; float ExtentY = M _ TO _ CM * Lateral ; Box - > SetRelativeLocation ( FVector { LocationX , 0.0 f , 0.0 f } ) ; Box - > SetBoxExtent ( FVector { ExtentX , ExtentY , 0.0 f } ) ; } \u8bf7 \u6ce8\u610f \uff0c set \u51fd\u6570 \u662f \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e4b\u524d \u8c03\u7528 \u7684 BeginPlay \uff0c \u6211\u4eec \u8fd9\u91cc \u4e0d\u4f1a \u4f7f\u7528 \u8fd9\u4e2a \u865a\u62df \u51fd\u6570 \uff0c \u4f46 \u5b83 \u5bf9\u4e8e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f88 \u91cd\u8981 \u3002 \u73b0\u5728 \u6211\u4eec \u5c06 \u6839\u636e \u6211\u4eec \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846\u6765 \u6269\u5c55 \u76d2\u5b50 \u4f53\u79ef \u3002 \u4e3a\u6b64 \uff0c \u6700 \u65b9\u4fbf \u7684 \u65b9\u6cd5 \u662f \u4f7f\u7528 SetOwner \u865a \u51fd\u6570 \u3002 \u5f53 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 void ASafeDistanceSensor : : SetOwner ( AActor * Owner ) { Super : : SetOwner ( Owner ) ; auto BoundingBox = UBoundingBoxCalculator : : GetActorBoundingBox ( Owner ) ; Box - > SetBoxExtent ( BoundingBox . Extent + Box - > GetUnscaledBoxExtent ( ) ) ; } \u552f\u4e00 \u8981 \u505a \u7684 \u5c31\u662f \u5b9e\u9645 \u6d4b\u91cf \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u4f7f\u7528 \u8be5 Tick \u51fd\u6570 \u3002 \u6211\u4eec \u5c06 \u67e5\u627e \u5f53\u524d \u4e0e \u6211\u4eec \u7684 \u76d2\u5b50 \u91cd\u53e0 \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5e76 \u5c06 \u6b64 \u5217\u8868 \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 void ASafeDistanceSensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; TSet < AActor * > DetectedActors ; Box - > GetOverlappingActors ( DetectedActors , ACarlaWheeledVehicle : : StaticClass ( ) ) ; DetectedActors . Remove ( GetOwner ( ) ) ; if ( DetectedActors . Num ( ) > 0 ) { auto Stream = GetDataStream ( * this ) ; Stream . Send ( * this , GetEpisode ( ) , DetectedActors ) ; } } \u7b14\u8bb0 \u5728 \u53ef \u6295\u5165 \u751f\u4ea7 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \uff0c \u8be5 Tick \u51fd\u6570 \u5e94\u8be5 \u975e\u5e38 \u4f18\u5316 \uff0c \u7279\u522b \u662f \u5f53 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u5927\u91cf \u6570\u636e \u65f6 \u3002 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \uff0c \u56e0\u6b64 \u4f1a\u663e \u7740 \u5f71\u54cd \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6027\u80fd \u3002 \u597d \u5427 \uff0c \u8fd9\u91cc \u53d1\u751f \u4e86 \u4e00\u4e9b \u6211\u4eec \u8fd8 \u6ca1\u6709 \u63d0\u5230 \u7684 \u4e8b\u60c5 \uff0c \u8fd9\u4e2a \u6d41\u662f \u4ec0\u4e48 \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6570\u636e \u6570\u636e\u6d41 \u3002 \u8be5\u6d41 \u7528\u4e8e \u5c06 \u6570\u636e \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8fd9 \u662f \u60a8 \u5728 Python API \u4e2d \u4f7f\u7528 sensor . listen ( callback ) \u65b9\u6cd5 \u65f6 \u8ba2\u9605 \u7684 \u6d41 \u3002 \u6bcf\u6b21 \u5411 \u8fd9\u91cc \u53d1\u9001 \u4e00\u4e9b \u6570\u636e \u65f6 \uff0c \u90fd \u4f1a \u89e6\u53d1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u56de\u8c03 \u3002 \u4f46 \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \uff0c \u6570\u636e \u5c06 \u7ecf\u8fc7 \u591a\u4e2a \u5c42 \u3002 \u9996\u5148 \u662f \u6211\u4eec \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8981 \u521b\u5efa \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u4e00\u65e6 \u6211\u4eec \u5b8c\u6210 \u4e86 \u4e0b \u4e00\u8282 \u7684 Serialize \u529f\u80fd \uff0c \u6211\u4eec \u5c31 \u4f1a \u5b8c\u5168 \u7406\u89e3 \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 2 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668 \u8fd9\u4e2a \u7c7b \u5176\u5b9e \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 \uff0c \u53ea \u9700\u8981 \u6709 \u4e24\u4e2a \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 \uff0c Serialize \u548c Deserialize \u3002 \u6211\u4eec \u5c06 \u4e3a \u5b83 \u6dfb\u52a0 \u4e24\u4e2a \u6587\u4ef6 \uff0c \u8fd9\u6b21 \u662f LibCarla LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . h LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . cpp \u8ba9 \u6211\u4eec \u4ece Serialize \u51fd\u6570 \u5f00\u59cb \u3002 \u8be5 \u51fd\u6570 \u5c06 \u63a5\u6536 \u6211\u4eec \u4f20\u9012 \u7ed9 Stream . Send ( ... ) \u51fd\u6570 \u7684 \u4efb\u4f55 \u5185\u5bb9 \u4f5c\u4e3a \u53c2\u6570 \uff0c \u552f\u4e00 \u7684 \u6761\u4ef6 \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u53c2\u6570 \u5fc5\u987b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76\u4e14 \u5b83 \u5fc5\u987b \u8fd4\u56de \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 static Buffer Serialize ( const Sensor & , ... ) ; carla : : Buffer \u53ea\u662f \u4e00\u5757 \u52a8\u6001 \u5206\u914d \u52a8\u6001\u5206\u914d \u7684 \u539f\u59cb \u5185\u5b58 \uff0c \u5177\u6709 \u4e00\u4e9b \u65b9\u4fbf \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u5b83 \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u3002 \u5728 \u6b64 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6709 \u610f\u4e49 \u7684 \u65b9\u5f0f \u5c06 \u68c0\u6d4b \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u5199\u5165 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u8fd9 \u5c31\u662f \u6211\u4eec \u5c06 \u5267\u96c6 \u5bf9\u8c61 \u4f20\u9012 \u7ed9 \u6b64 \u51fd\u6570 \u7684 \u539f\u56e0 \u3002 UCarlaEpisode \u7c7b \u8868\u793a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u8fd0\u884c \u7684 \u5f53\u524d \u60c5\u8282 \uff0c \u5373 \u81ea \u4e0a\u6b21 \u52a0\u8f7d \u5730\u56fe \u4ee5\u6765 \u7684 \u4eff\u771f \u72b6\u6001 \u3002 \u5b83 \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u9664 \u5176\u4ed6 \u5916 \uff0c \u5b83 \u8fd8 \u5141\u8bb8 \u641c\u7d22 \u6f14\u5458 ID \u3002 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b ID \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u80fd\u591f \u5c06 \u8fd9\u4e9b ID \u8bc6\u522b \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 template < typename SensorT , typename EpisodeT , typename ActorListT > static Buffer Serialize ( const SensorT & , const EpisodeT & episode , const ActorListT & detected _ actors ) { const uint32 _ t size _ in _ bytes = sizeof ( ActorId ) * detected _ actors . Num ( ) ; Buffer buffer { size _ in _ bytes } ; unsigned char * it = buffer . data ( ) ; for ( auto * actor : detected _ actors ) { ActorId id = episode . FindActor ( actor ) . GetActorId ( ) ; std : : memcpy ( it , & id , sizeof ( ActorId ) ) ; it + = sizeof ( ActorId ) ; } return buffer ; } \u6ce8\u610f \uff1a \u6211\u4eec \u5bf9 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u8fdb\u884c \u6a21\u677f \u5316\u4ee5 \u907f\u514d \u5728 LibCarla \u4e2d \u5305\u542b \u8fd9\u4e9b \u6587\u4ef6 \u3002 \u6211\u4eec \u8981 \u8fd4\u56de \u7684 \u8fd9\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5c06\u4f1a \u8fd4\u56de \u7ed9 \u6211\u4eec \uff0c \u4e0d\u8fc7 \u53ea\u4e0d\u8fc7 \u8fd9\u6b21 \u662f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5728 \u5c01\u88c5 \u5728 RawData \u5bf9\u8c61 \u4e2d \u7684 Deserialize \u51fd\u6570 \u4e2d static SharedPtr < SensorData > Deserialize ( RawData && data ) ; \u6211\u4eec \u5728 cpp \u6587\u4ef6 \u4e2d \u5b9e\u73b0 \u8fd9\u4e2a \u65b9\u6cd5 \uff0c \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 SharedPtr < SensorData > SafeDistanceSerializer : : Deserialize ( RawData && data ) { return SharedPtr < SensorData > ( new data : : SafeDistanceEvent ( std : : move ( data ) ) ) ; } \u9664\u4e86 \u6211\u4eec \u8fd8 \u6ca1\u6709 \u5b9a\u4e49 \u4ec0\u4e48 \u662f SafeDistanceEvent \u3002 3 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 \u6211\u4eec \u9700\u8981 \u4e3a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7528\u6237 \u521b\u5efa \u4e00\u4e2a \u6570\u636e \u5bf9\u8c61 \uff0c \u8868\u793a \u5b89\u5168 \u8ddd\u79bb \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u6211\u4eec \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 LibCarla / source / carla / sensor / data / SafeDistanceEvent . h \u8be5 \u5bf9\u8c61 \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u5217\u8868 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4ece Array \u6a21\u677f \u6d3e\u751f # pragma once # include \" carla / rpc / ActorId . h \" # include \" carla / sensor / data / Array . h \" namespace carla { namespace sensor { namespace data { class SafeDistanceEvent : public Array < rpc : : ActorId > { public : explicit SafeDistanceEvent ( RawData && data ) : Array < rpc : : ActorId > ( std : : move ( data ) ) { } } ; } / / namespace data } / / namespace sensor } / / namespace carla \u6570\u7ec4 \u6a21\u677f \u5c06 \u628a \u6211\u4eec \u5728 Serialize \u65b9\u6cd5 \u4e2d \u521b\u5efa \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u91cd\u65b0 \u89e3\u91ca \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u6570\u7ec4 \uff0c \u5e76\u4e14 \u5b83 \u80fd\u591f \u76f4\u63a5 \u4ece \u6211\u4eec \u6536\u5230 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u4e2d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u800c \u65e0\u9700 \u5206\u914d \u4efb\u4f55 \u65b0 \u5185\u5b58 \u3002 \u867d\u7136 \u5bf9\u4e8e \u8fd9\u4e2a \u5c0f \u4f8b\u5b50 \u6765\u8bf4 \u53ef\u80fd \u6709\u70b9 \u5927\u6750\u5c0f\u7528 \uff0c \u4f46 \u8fd9\u79cd \u673a\u5236 \u4e5f \u9002\u7528 \u4e8e \u5927 \u6570\u636e \u5757 \uff1b \u60f3\u8c61 \u4e00\u4e0b \u6211\u4eec \u6b63\u5728 \u53d1\u9001 \u9ad8\u6e05 \u56fe\u50cf \uff0c \u6211\u4eec \u901a\u8fc7 \u91cd\u7528 \u539f\u59cb \u5185\u5b58 \u8282\u7701 \u4e86 \u5f88\u591a \u3002 \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u5c06 \u6b64\u7c7b \u516c\u5f00 \u7ed9 Python \u3002 \u5728 \u6211\u4eec \u7684 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u6ca1\u6709 \u6dfb\u52a0 \u4efb\u4f55 \u989d\u5916 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ea \u516c\u5f00 \u4e0e Array \u76f8\u5173 \u7684 \u65b9\u6cd5 \u3002 \u6211\u4eec \u901a\u8fc7 \u4f7f\u7528 Boost . Python \u7ed1\u5b9a \u6765 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \uff0c \u5c06 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u6dfb\u52a0 \u5230 PythonAPI / carla / source / libcarla / SensorData . cpp \u3002 class _ < csd : : SafeDistanceEvent , / / actual type . bases < cs : : SensorData > , / / parent type . boost : : noncopyable , / / disable copy . boost : : shared _ ptr < csd : : SafeDistanceEvent > / / use as shared _ ptr . > ( \" SafeDistanceEvent \" , no _ init ) / / name , and disable construction . . def ( \" __ len __ \" , & csd : : SafeDistanceEvent : : size ) . def ( \" __ iter __ \" , iterator < csd : : SafeDistanceEvent > ( ) ) . def ( \" __ getitem __ \" , + [ ] ( const csd : : SafeDistanceEvent & self , size _ t pos ) - > cr : : ActorId { return self . at ( pos ) ; } ) ; \u6ce8\u610f \uff1a csd \u662f \u540d\u79f0 \u7a7a\u95f4 carla : : sensor : : data \u7684 \u522b\u540d \u3002 \u6211\u4eec \u5728 \u8fd9\u91cc \u6240 \u505a \u7684 \u662f \u5728 Python \u4e2d \u516c\u5f00 \u4e00\u4e9b C++ \u65b9\u6cd5 \u3002 \u8fd9\u6837 \uff0c Python API \u5c06 \u80fd\u591f \u8bc6\u522b \u6211\u4eec \u7684 \u65b0 \u4e8b\u4ef6 \uff0c \u5e76\u4e14 \u5176 \u884c\u4e3a \u7c7b\u4f3c \u4e8e Python \u4e2d \u7684 \u6570\u7ec4 \uff0c \u53ea\u662f \u4e0d\u80fd \u4fee\u6539 \u3002 4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u73b0\u5728 \u7ba1\u9053 \u5df2 \u5b8c\u6210 \uff0c \u6211\u4eec \u5df2 \u51c6\u5907 \u597d \u6ce8\u518c \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5728 LibCarla / source / carla / sensor / SensorRegistry . h \u4e2d \u8fd9\u6837 \u505a \u3002 \u6309\u7167 \u6b64 \u6587\u4ef6 \u5934\u6587\u4ef6 \u4e2d \u7684 \u8bf4\u660e \u6dfb\u52a0 \u4e0d\u540c \u7684 \u5305\u542b \u548c \u524d \u5411 \u58f0\u660e \uff0c \u5e76 \u5c06 \u4ee5\u4e0b \u5bf9 \u6dfb\u52a0 \u5230 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d std : : pair < ASafeDistanceSensor * , s11n : : SafeDistanceSerializer > \u6709 \u4e86 \u8fd9\u4e2a \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ce8\u518c \u6ce8\u518c\u8868 \u73b0\u5728 \u53ef\u4ee5 \u53d1\u6325 \u5176 \u9b54\u529b \uff0c \u5c06 \u6b63\u786e \u7684 \u6570\u636e \u5206\u6d3e \u5230 \u6b63\u786e \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u73b0\u5728 \u91cd\u65b0 \u7f16\u8bd1 Carla \uff0c \u5e0c\u671b \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \u5e76\u4e14 \u6ca1\u6709 \u9519\u8bef \u3002 \u4e0d\u5e78 \u7684 \u662f \uff0c \u8fd9\u91cc \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u9519\u8bef \u90fd \u4e0e \u6a21\u677f \u6709\u5173 \uff0c \u5e76\u4e14 \u9519\u8bef \u6d88\u606f \u53ef\u80fd \u6709\u70b9 \u795e\u79d8 \u3002 make rebuild 5 - \u4f7f\u7528 \u793a\u4f8b \u6700\u540e \uff0c \u6211\u4eec \u5df2\u7ecf \u5305\u542b \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76\u4e14 \u5df2\u7ecf \u5b8c\u6210 \u4e86 \u91cd\u65b0 \u7f16\u8bd1 \uff0c \u73b0\u5728 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u8be5 \u53ef\u4ee5 \u5728 Python \u4e2d \u4f7f\u7528 \u3002 \u8981 \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u6211\u4eec \u53ea \u9700 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \u5b83 \uff0c \u5982\u679c \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5e94\u8be5 \u5df2 \u5c06 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6dfb\u52a0 \u5230\u5e93 \u4e2d blueprint = blueprint _ library . find ( ' sensor . other . safe _ distance ' ) sensor = world . spawn _ actor ( blueprint , carla . Transform ( ) , attach _ to = vehicle ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u6ce8\u518c \u56de\u8c03 \u51fd\u6570 \u6765 \u5f00\u59cb \u76d1\u542c \u4e8b\u4ef6 world _ ref = weakref . ref ( world ) def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor . listen ( callback ) \u6b64 \u56de\u8c03 \u5c06 \u6267\u884c \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5728 \u6211\u4eec \u7684 \u5b89\u5168 \u8ddd\u79bb \u6846\u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \uff0c \u4f8b\u5982 Vehicle too close : vehicle . audi . a2 Vehicle too close : vehicle . mercedes - benz . coupe \u5c31\u662f \u8fd9\u6837 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6b63\u5728 \u5de5\u4f5c \uff01 \u9644\u5f55 \u91cd\u7528 \u7f13\u51b2 \u7f13\u51b2\u533a \u4e3a\u4e86 \u4f18\u5316 \u5185\u5b58 \u4f7f\u7528 \uff0c \u6211\u4eec \u53ef\u4ee5 \u5229\u7528 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u76f8\u4f3c \u5927\u5c0f \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u4e8b\u5b9e \uff1b \u7279\u522b \u662f \uff0c \u5728 \u76f8\u673a \u7684 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u50cf \u7684 \u5927\u5c0f \u5728 \u6267\u884c \u671f\u95f4 \u662f \u6052\u5b9a \u7684 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u91cd\u7528 \u5e27 \u4e4b\u95f4 \u5206\u914d \u7684 \u5185\u5b58 \u6765 \u8282\u7701 \u5927\u91cf \u8d44\u6e90 \u3002 \u6bcf\u4e2a \u6d41\u90fd \u5305\u542b \u4e00\u4e2a \u7f13\u51b2 \u6c60 \uff0c \u53ef \u7528\u4e8e \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u5185\u5b58 \u5206\u914d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6d41 \uff0c \u56e0\u6b64 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u81ea\u5df1 \u7684 \u7f13\u51b2 \u6c60 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a auto Buffer = Stream . PopBufferFromPool ( ) ; \u5982\u679c \u6c60\u4e3a \u7a7a \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u7a7a \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5373 \u6ca1\u6709 \u5206\u914d \u5185\u5b58 \u5206\u914d\u5185\u5b58 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u8c03\u6574 \u7f13\u51b2 \u7f13\u51b2\u533a \u5927 \u5c0f\u65f6 \uff0c \u5c06 \u5206\u914d \u65b0 \u7684 \u5185\u5b58 \u3002 \u5728 \u7b2c\u4e00 \u5e27 \u671f\u95f4 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4f1a \u53d1\u751f \u51e0\u6b21 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5219 \u4e00\u65e6 \u7f13\u51b2 \u7f13\u51b2\u533a \u8d85\u51fa \u8303\u56f4 \u8d85\u51fa\u8303\u56f4 \uff0c \u5176 \u5185\u5b58 \u5c06 \u8fd4\u56de \u5230 \u6c60\u4e2d \u3002 \u4e0b\u6b21 \u4ece\u6c60 \u4e2d \u83b7\u53d6 \u53e6 \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u65f6 \uff0c \u5b83 \u5c06 \u5305\u542b \u4ece\u524d \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5206\u914d \u7684 \u5185\u5b58 \u3002 \u6b63\u5982 \u60a8 \u6240 \u770b\u5230 \u7684 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5bf9\u8c61 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5145\u5f53 \u6307\u5411 \u8fde\u7eed \u539f\u59cb \u5185\u5b58 \u7684 \u667a\u80fd \u6307\u9488 \u3002 \u53ea\u8981 \u60a8 \u8bf7\u6c42 \u7684 \u5185\u5b58 \u4e0d \u8d85\u8fc7 \u5f53\u524d \u5206\u914d \u7684 \u5185\u5b58 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5c31 \u4f1a \u91cd\u7528 \u8be5 \u5185\u5b58 \u3002 \u5982\u679c \u60a8 \u8bf7\u6c42 \u66f4 \u591a \uff0c \u5219 \u5fc5\u987b \u5220\u9664 \u5f53\u524d \u5185\u5b58 \u5e76 \u5206\u914d \u66f4\u5927 \u7684 \u5757 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u8bf4\u660e \u4e86 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u5de5\u4f5c \u539f\u7406 Buffer buffer ; buffer . reset ( 1024u ) ; / / ( size 1024 bytes , capacity 1024 bytes ) - > allocates buffer . reset ( 512u ) ; / / ( size 512 bytes , capacity 1024 bytes ) buffer . reset ( 2048u ) ; / / ( size 2048 bytes , capacity 2048 bytes ) - > allocates \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u9700\u8981 \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \uff0c \u8981\u4e48 \u662f \u4e3a\u4e86 \u6027\u80fd \uff0c \u8981\u4e48 \u56e0\u4e3a \u662f\u56e0\u4e3a \u6570\u636e \u662f \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e2d \u751f\u6210 \u7684 \uff0c \u4f8b\u5982 \uff0c \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ece \u6e32\u67d3 \u7ebf\u7a0b \u53d1\u9001 \u56fe\u50cf \u3002 \u5f02\u6b65 \u4f7f\u7528 \u6570\u636e \u6570\u636e\u6d41 \u662f \u5b8c\u5168 \u53ef\u4ee5 \u7684 \uff0c \u53ea\u8981 \u6570\u636e \u6570\u636e\u6d41 \u672c\u8eab \u662f \u5728 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u521b\u5efa \u7684 \u3002 \u4f8b\u5982 void MySensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; auto Stream = GetDataStream ( * this ) ; std : : async ( std : : launch : : async , [ Stream = std : : move ( Stream ) ] ( ) { auto Data = ComputeData ( ) ; Stream . Send ( * this , Data ) ; } ) ; } \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d \u9700\u8981 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fdb\u884c \u6d4b\u91cf \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd0\u884c \uff0c \u4ece\u800c \u4f7f \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u514d\u4e8e \u989d\u5916 \u7684 \u8ba1\u7b97 \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u662f LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u901a\u5e38 \u7684 \u65b9\u6cd5 \u662f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u521b\u5efa \u4e00\u4e2a \u201c \u865a\u62df \u201d \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4ee5\u4fbf \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u77e5\u9053 \u8fd9\u6837 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b58\u5728 \u3002 \u7136\u800c \uff0c \u8fd9\u4e2a \u865a\u62df \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u4f1a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4e5f \u4e0d\u4f1a \u53d1\u9001 \u4efb\u4f55 \u7c7b\u578b \u7684 \u6570\u636e \u3002 \u7136\u800c \uff0c \u5b83 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u5bf9\u5e94 \u90e8\u5206 \u6ce8\u518c \u4e86 \u4e00\u4e2a \u201c on tick \u201d \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u65b0 \u66f4\u65b0 \u65f6 \u6267\u884c \u4e00\u4e9b \u4ee3\u7801 \u3002 \u4f8b\u5982 \uff0c LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u8003\u8651 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u201c on tick \u201d \u56de\u8c03 \u662f \u5e76\u53d1 \u6267\u884c \u7684 \uff0c \u5373 \u76f8\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u7531 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u540c\u65f6 \u6267\u884c \uff0c \u8fd9 \u4e00\u70b9 \u975e\u5e38 \u91cd\u8981 \u3002 \u8bbf\u95ee \u7684 \u4efb\u4f55 \u6570\u636e \u90fd \u5fc5\u987b \u6b63\u786e \u540c\u6b65 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e92\u65a5 \u4f53 \u3001 \u4f7f\u7528 \u539f\u5b50 \uff0c \u6216\u8005 \u66f4\u597d \u5730 \u786e\u4fdd \u6240\u6709 \u8bbf\u95ee \u7684 \u6210\u5458 \u4fdd\u6301 \u4e0d\u53d8 \u3002","title":"\u521b\u5efa \u4e00\u4e2a \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#_1","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 \u5411 Carla \u6dfb\u52a0 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e2d \u5b9e\u73b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u901a\u8fc7 Carla \u7684 Python API \u516c\u5f00 \u5176 \u6570\u636e \u7684 \u5fc5\u8981 \u6b65\u9aa4 \u3002 \u6211\u4eec \u5c06 \u901a\u8fc7 \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f5c\u4e3a \u793a\u4f8b \u6765 \u9075\u5faa \u6240\u6709 \u6b65\u9aa4 \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u4ecb\u7ecd \u521b\u5efa \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 1 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 2 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668 3 - \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61 4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 5 - \u4f7f\u7528 \u793a\u4f8b \u9644\u5f55 \u91cd\u7528 \u7f13\u51b2 \u7f13\u51b2\u533a \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668","title":"\u5982\u4f55 \u6dfb\u52a0 \u65b0 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#_2","text":"\u4e3a\u4e86 \u5b9e\u73b0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u60a8 \u9700\u8981 \u7f16\u8bd1 Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \uff0c \u6709\u5173 \u5982\u4f55 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \u7684 \u8be6\u7ec6 \u8bf4\u660e \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u3002 \u672c \u6559\u7a0b \u8fd8 \u5047\u8bbe \u8bfb\u8005 \u7cbe\u901a C++ \u7f16\u7a0b \u3002","title":"\u5148\u51b3\u6761\u4ef6"},{"location":"tuto_D_create_sensor/#_3","text":"Carla \u4e2d \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u662f \u4e00\u79cd \u7279\u6b8a \u7c7b\u578b \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u53ef\u4ee5 \u4ea7\u751f \u6570\u636e \u6570\u636e\u6d41 \u3002 \u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u8fde\u7eed \u4ea7\u751f \u6570\u636e \uff0c \u800c \u53e6 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u67d0\u4e9b \u4e8b\u4ef6 \u53d1\u751f \u540e \u624d \u4ea7\u751f \u6570\u636e \u3002 \u4f8b\u5982 \uff0c \u76f8\u673a \u5728 \u6bcf\u6b21 \u66f4\u65b0 \u65f6 \u90fd \u4f1a \u751f\u6210 \u56fe\u50cf \uff0c \u4f46 \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u53d1\u751f \u78b0\u649e \u65f6\u624d \u4f1a \u89e6\u53d1 \u3002 \u5c3d\u7ba1 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \uff08 \u865a\u5e7b \u5f15\u64ce 4 \uff09 \u4e2d \u8ba1\u7b97 \u6d4b\u91cf \u7ed3\u679c \uff0c \u4f46 \u503c\u5f97 \u6ce8\u610f \u503c\u5f97\u6ce8\u610f \u7684 \u662f \uff0c \u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e00\u4e2a \u4f8b\u5b50 \u662f LaneInvasion \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u5b83 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u6709\u5173 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u9644\u5f55 \uff1a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u91cd\u70b9 \u5173\u6ce8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u8ba9 \u865a\u5e7b \u5f15\u64ce 4 \u5185 \u8fd0\u884c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u6570\u636e \u4e00\u8def \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u6211\u4eec \u9700\u8981 \u8986\u76d6 \u6574\u4e2a \u901a\u4fe1 \u7ba1\u9053 \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u7c7b\u6765 \u6db5\u76d6 \u7ba1\u9053 \u7684 \u4e0d\u540c \u6b65\u9aa4 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8d1f\u8d23 \u6d4b\u91cf \u548c / \u6216 \u4eff\u771f \u6570\u636e \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce 4 \u6846\u67b6 \u5728 Carla \u63d2\u4ef6 \u4e2d \u8fd0\u884c \u3002 \u7528\u6237 \u53ef\u4ee5 \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u8bbf\u95ee \u3002 \u4e32\u884c \u5668 \u5bf9\u8c61 \u5305\u542b \u7528\u4e8e \u5e8f\u5217 \u5e8f\u5217\u5316 \u548c \u53cd \u5e8f\u5217 \u5e8f\u5217\u5316 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u65b9\u6cd5 \u3002 \u5728 LibCarla \u4e2d \u8fd0\u884c \uff0c \u5305\u62ec \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u8868\u793a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u7684 \u6570\u636e \u7684 \u5bf9\u8c61 \u3002 \u8fd9 \u662f \u5c06 \u5728 C++ \u548c Python API \u4e2d \u4f20\u9012 \u7ed9 \u6700\u7ec8 \u7528\u6237 \u6700\u7ec8\u7528\u6237 \u7684 \u5bf9\u8c61 \u3002 \u7b14\u8bb0 \u4e3a\u4e86 \u786e\u4fdd \u6700\u4f73 \u6027\u80fd \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u57fa\u4e8e \u6a21\u677f \u5143 \u7f16\u7a0b \u7684 \u201c \u7f16\u8bd1 \u65f6 \u63d2\u4ef6 \u7cfb\u7edf \u201d \u8fdb\u884c \u6ce8\u518c \u548c \u8c03\u5ea6 \u3002 \u6700\u6709 \u53ef\u80fd \u7684 \u662f \uff0c \u5728 \u6240\u6709 \u90e8\u5206 \u90fd \u5b58\u5728 \u4e4b\u524d \uff0c \u4ee3\u7801 \u4e0d\u4f1a \u7f16\u8bd1 \u3002","title":"\u4ecb\u7ecd"},{"location":"tuto_D_create_sensor/#_4","text":"\u5b8c\u6574 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5728 \u8fd9\u91cc \u3002 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u6d4b \u8f66\u8f86 \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u5176\u4e2d \u7684 \u7269\u4f53 \uff0c \u5e76\u4e14 \u6bcf\u6b21 \u8f66\u8f86 \u8fdb\u5165 \u89e6\u53d1 \u76d2\u65f6 \u6211\u4eec \u90fd \u4f1a \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u62a5\u544a \u72b6\u6001 \u3002 \u6211\u4eec \u4e4b\u4e3a \u79f0\u4e4b\u4e3a \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u6211\u4eec \u4e0d\u4f1a \u8003\u8651 \u6240\u6709 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \uff0c \u4e5f \u4e0d\u4f1a \u4ee5 \u6700 \u6709\u6548 \u7684 \u65b9\u5f0f \u5b9e\u73b0 \u3002 \u8fd9 \u53ea\u662f \u4e00\u4e2a \u8bf4\u660e \u660e\u6027 \u8bf4\u660e\u6027 \u793a\u4f8b \u3002","title":"\u521b\u5efa \u65b0 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#1-","text":"\u8fd9\u662f \u6211\u4eec \u8981 \u521b\u5efa \u7684 \u6700 \u590d\u6742 \u7684 \u7c7b \u3002 \u8fd9\u91cc \u6211\u4eec \u5728 \u865a\u5e7b \u5f15\u64ce \u6846\u67b6 \u5185 \u8fd0\u884c \uff0c \u865a\u5e7b \u5f15\u64ce 4 API \u7684 \u77e5\u8bc6 \u5c06 \u975e\u5e38 \u6709 \u5e2e\u52a9 \uff0c \u4f46 \u4e0d\u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \uff0c \u6211\u4eec \u5047\u8bbe \u8bfb\u8005 \u4ee5\u524d \u4ece\u672a \u4f7f\u7528 \u8fc7 \u865a\u5e7b \u5f15\u64ce 4 \u3002 \u5728 UE4 \u5185\u90e8 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u4e0e \u5ba2\u6237 \u5ba2\u6237\u7aef \u7c7b\u4f3c \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \uff0c ASensor \u6d3e\u751f \u81ea AActor \uff0c \u800c Actor \u5927\u81f4 \u662f \u53ef\u4ee5 \u653e\u5165 \u4e16\u754c \u4e2d \u7684 \u4efb\u4f55 \u5bf9\u8c61 \u3002 AActor \u6709 \u4e00\u4e2a \u540d\u4e3a \u7684 \u865a\u62df \u51fd\u6570 Tick \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5b83 \u5728 \u6bcf\u6b21 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u66f4\u65b0 \u65f6 \u66f4\u65b0 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5728 \u66f4 \u9ad8 \u7684 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d UObject \uff0c \u6211\u4eec \u6709 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u7684 \u57fa\u7c7b \u3002 \u91cd\u8981 \u7684 \u662f \u8981 \u77e5\u9053 \u6d3e\u751f \u7684 \u5bf9\u8c61 UObject \u662f \u901a\u8fc7 \u6307\u9488 \u8fdb\u884c \u5904\u7406 \u7684 \uff0c \u5e76\u4e14 \u5f53 \u5b83\u4eec \u4e0d\u518d \u88ab \u5f15\u7528 \u65f6\u4f1a \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u6307\u5411 UObjects \u7684 \u7c7b \u6210\u5458 \u9700\u8981 \u7528\u5b8f UPROPERTY \u8fdb\u884c \u6807\u8bb0 \uff0c \u5426\u5219 \u5b83\u4eec \u5c06 \u88ab \u5783\u573e \u6536\u96c6 \u3002 \u5f00\u59cb \u5427 \u3002 \u8be5\u7c7b \u5fc5\u987b \u4f4d\u4e8e Carla \u63d2\u4ef6 \u5185 \uff0c \u6211\u4eec \u5c06 \u4e3a \u65b0 \u7684 C++ \u7c7b \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . h Unreal / CarlaUE4 / Plugins / Carla / Source / Carla / Sensor / SafeDistanceSensor . cpp \u8d77\u7801 \u6700\u8d77\u7801 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9700\u8981 \u7ee7\u627f ASensor \uff0c \u5e76 \u63d0\u4f9b \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 GetSensorDefinition \uff1b \u4f46 \u6211\u4eec \u8fd8 \u5c06 \u91cd\u5199 Set \u3001 SetOwner \u3001 \u548c Tick \u65b9\u6cd5 \u3002 \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fd8 \u9700\u8981 \u4e00\u4e2a \u89e6\u53d1 \u76d2\u6765 \u68c0\u6d4b \u6211\u4eec \u5468\u56f4 \u7684 \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u6709 \u4e86 \u8fd9\u4e2a \u548c \u4e00\u4e9b \u5fc5\u9700 \u7684 \u865a\u5e7b \u5f15\u64ce 4 \u6837\u677f \u4ee3\u7801 \uff0c \u6587\u4ef6 \u5934\u6587\u4ef6 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf # pragma once # include \" Carla / Sensor / Sensor . h \" # include \" Carla / Actor / ActorDefinition . h \" # include \" Carla / Actor / ActorDescription . h \" # include \" Components / BoxComponent . h \" # include \" SafeDistanceSensor . generated . h \" UCLASS ( ) class CARLA _ API ASafeDistanceSensor : public ASensor { GENERATED _ BODY ( ) public : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) ; static FActorDefinition GetSensorDefinition ( ) ; void Set ( const FActorDescription & ActorDescription ) override ; void SetOwner ( AActor * Owner ) override ; void Tick ( float DeltaSeconds ) override ; private : UPROPERTY ( ) UBoxComponent * Box = nullptr ; } ; \u5728 cpp \u6587\u4ef6 \u4e2d \uff0c \u9996\u5148 \u6211\u4eec \u9700\u8981 \u4e00\u4e9b \u5305\u542b # include \" Carla . h \" # include \" Carla / Sensor / SafeDistanceSensor . h \" # include \" Carla / Actor / ActorBlueprintFunctionLibrary . h \" # include \" Carla / Game / CarlaEpisode . h \" # include \" Carla / Util / BoundingBoxCalculator . h \" # include \" Carla / Vehicle / CarlaWheeledVehicle . h \" \u7136\u540e \u6211\u4eec \u5c31 \u53ef\u4ee5 \u7ee7\u7eed \u5b9e\u73b0 \u8be5 \u529f\u80fd \u4e86 \u3002 \u6784\u9020 \u51fd\u6570 \u6784\u9020\u51fd\u6570 \u5c06 \u521b\u5efa \u89e6\u53d1 \u6846 \uff0c \u5e76 \u544a\u8bc9 \u865a\u5e7b \u5f15\u64ce 4 \u6211\u4eec \u5e0c\u671b \u8c03\u7528 \u6211\u4eec \u7684 \u52fe\u9009 \u51fd\u6570 \u3002 \u5982\u679c \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ca1\u6709 \u4f7f\u7528 \u523b\u5ea6 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u5728 \u6b64\u5904 \u7981\u7528 \u5b83 \u4ee5 \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u523b\u5ea6 ASafeDistanceSensor : : ASafeDistanceSensor ( const FObjectInitializer & ObjectInitializer ) : Super ( ObjectInitializer ) { Box = CreateDefaultSubobject < UBoxComponent > ( TEXT ( \" BoxOverlap \" ) ) ; Box - > SetupAttachment ( RootComponent ) ; Box - > SetHiddenInGame ( true ) ; / / Disable for debugging . Box - > SetCollisionProfileName ( FName ( \" OverlapAll \" ) ) ; PrimaryActorTick . bCanEverTick = true ; } \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u544a\u8bc9 Carla \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6709 \u4ec0\u4e48 \u5c5e\u6027 \uff0c \u8fd9 \u5c06 \u7528\u4e8e \u5728 \u6211\u4eec \u7684 \u84dd \u56fe\u5e93 \u4e2d \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \uff0c \u7528\u6237 \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e2a \u84dd\u56fe \u6765 \u914d\u7f6e \u548c \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5c06 \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u89e6\u53d1 \u6846 \u7684 \u5c5e\u6027 \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u5c06 \u4ec5 \u516c\u5f00 X \u548c Y \u5b89\u5168 \u8ddd\u79bb FActorDefinition ASafeDistanceSensor : : GetSensorDefinition ( ) { auto Definition = UActorBlueprintFunctionLibrary : : MakeGenericSensorDefinition ( TEXT ( \" other \" ) , TEXT ( \" safe _ distance \" ) ) ; FActorVariation Front ; Front . Id = TEXT ( \" safe _ distance _ front \" ) ; Front . Type = EActorAttributeType : : Float ; Front . RecommendedValues = { TEXT ( \" 1.0 \" ) } ; Front . bRestrictToRecommended = false ; FActorVariation Back ; Back . Id = TEXT ( \" safe _ distance _ back \" ) ; Back . Type = EActorAttributeType : : Float ; Back . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Back . bRestrictToRecommended = false ; FActorVariation Lateral ; Lateral . Id = TEXT ( \" safe _ distance _ lateral \" ) ; Lateral . Type = EActorAttributeType : : Float ; Lateral . RecommendedValues = { TEXT ( \" 0.5 \" ) } ; Lateral . bRestrictToRecommended = false ; Definition . Variations . Append ( { Front , Back , Lateral } ) ; return Definition ; } \u8fd9\u6837 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5c31 \u80fd\u591f \u6839\u636e \u7528\u6237 \u9700\u6c42 \u521b\u5efa \u5b89\u5168 \u8ddd\u79bb \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u540e \uff0c \u7acb\u5373 \u4f7f\u7528 \u7528\u6237 \u8bf7\u6c42 \u7684 \u53c2\u6570 \u8c03\u7528 \u8be5 Set \u51fd\u6570 void ASafeDistanceSensor : : Set ( const FActorDescription & Description ) { Super : : Set ( Description ) ; float Front = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ front \" , Description . Variations , 1.0 f ) ; float Back = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ back \" , Description . Variations , 0.5 f ) ; float Lateral = UActorBlueprintFunctionLibrary : : RetrieveActorAttributeToFloat ( \" safe _ distance _ lateral \" , Description . Variations , 0.5 f ) ; constexpr float M _ TO _ CM = 100.0 f ; / / Unit conversion . float LocationX = M _ TO _ CM * ( Front - Back ) / 2.0 f ; float ExtentX = M _ TO _ CM * ( Front + Back ) / 2.0 f ; float ExtentY = M _ TO _ CM * Lateral ; Box - > SetRelativeLocation ( FVector { LocationX , 0.0 f , 0.0 f } ) ; Box - > SetBoxExtent ( FVector { ExtentX , ExtentY , 0.0 f } ) ; } \u8bf7 \u6ce8\u610f \uff0c set \u51fd\u6570 \u662f \u5728 \u865a\u5e7b \u5f15\u64ce 4 \u4e4b\u524d \u8c03\u7528 \u7684 BeginPlay \uff0c \u6211\u4eec \u8fd9\u91cc \u4e0d\u4f1a \u4f7f\u7528 \u8fd9\u4e2a \u865a\u62df \u51fd\u6570 \uff0c \u4f46 \u5b83 \u5bf9\u4e8e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f88 \u91cd\u8981 \u3002 \u73b0\u5728 \u6211\u4eec \u5c06 \u6839\u636e \u6211\u4eec \u6240 \u9644\u52a0 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846\u6765 \u6269\u5c55 \u76d2\u5b50 \u4f53\u79ef \u3002 \u4e3a\u6b64 \uff0c \u6700 \u65b9\u4fbf \u7684 \u65b9\u6cd5 \u662f \u4f7f\u7528 SetOwner \u865a \u51fd\u6570 \u3002 \u5f53 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u5230 \u53e6 \u4e00\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u65f6 \uff0c \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \u3002 void ASafeDistanceSensor : : SetOwner ( AActor * Owner ) { Super : : SetOwner ( Owner ) ; auto BoundingBox = UBoundingBoxCalculator : : GetActorBoundingBox ( Owner ) ; Box - > SetBoxExtent ( BoundingBox . Extent + Box - > GetUnscaledBoxExtent ( ) ) ; } \u552f\u4e00 \u8981 \u505a \u7684 \u5c31\u662f \u5b9e\u9645 \u6d4b\u91cf \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u4f7f\u7528 \u8be5 Tick \u51fd\u6570 \u3002 \u6211\u4eec \u5c06 \u67e5\u627e \u5f53\u524d \u4e0e \u6211\u4eec \u7684 \u76d2\u5b50 \u91cd\u53e0 \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5e76 \u5c06 \u6b64 \u5217\u8868 \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 void ASafeDistanceSensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; TSet < AActor * > DetectedActors ; Box - > GetOverlappingActors ( DetectedActors , ACarlaWheeledVehicle : : StaticClass ( ) ) ; DetectedActors . Remove ( GetOwner ( ) ) ; if ( DetectedActors . Num ( ) > 0 ) { auto Stream = GetDataStream ( * this ) ; Stream . Send ( * this , GetEpisode ( ) , DetectedActors ) ; } } \u7b14\u8bb0 \u5728 \u53ef \u6295\u5165 \u751f\u4ea7 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \uff0c \u8be5 Tick \u51fd\u6570 \u5e94\u8be5 \u975e\u5e38 \u4f18\u5316 \uff0c \u7279\u522b \u662f \u5f53 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u5927\u91cf \u6570\u636e \u65f6 \u3002 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \uff0c \u56e0\u6b64 \u4f1a\u663e \u7740 \u5f71\u54cd \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6027\u80fd \u3002 \u597d \u5427 \uff0c \u8fd9\u91cc \u53d1\u751f \u4e86 \u4e00\u4e9b \u6211\u4eec \u8fd8 \u6ca1\u6709 \u63d0\u5230 \u7684 \u4e8b\u60c5 \uff0c \u8fd9\u4e2a \u6d41\u662f \u4ec0\u4e48 \uff1f \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6570\u636e \u6570\u636e\u6d41 \u3002 \u8be5\u6d41 \u7528\u4e8e \u5c06 \u6570\u636e \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u8fd9 \u662f \u60a8 \u5728 Python API \u4e2d \u4f7f\u7528 sensor . listen ( callback ) \u65b9\u6cd5 \u65f6 \u8ba2\u9605 \u7684 \u6d41 \u3002 \u6bcf\u6b21 \u5411 \u8fd9\u91cc \u53d1\u9001 \u4e00\u4e9b \u6570\u636e \u65f6 \uff0c \u90fd \u4f1a \u89e6\u53d1 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u56de\u8c03 \u3002 \u4f46 \u4e4b\u524d \u5728\u6b64\u4e4b\u524d \uff0c \u6570\u636e \u5c06 \u7ecf\u8fc7 \u591a\u4e2a \u5c42 \u3002 \u9996\u5148 \u662f \u6211\u4eec \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8981 \u521b\u5efa \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u4e00\u65e6 \u6211\u4eec \u5b8c\u6210 \u4e86 \u4e0b \u4e00\u8282 \u7684 Serialize \u529f\u80fd \uff0c \u6211\u4eec \u5c31 \u4f1a \u5b8c\u5168 \u7406\u89e3 \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002","title":"1 - \u521b\u5efa \u65b0 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#2-","text":"\u8fd9\u4e2a \u7c7b \u5176\u5b9e \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 \uff0c \u53ea \u9700\u8981 \u6709 \u4e24\u4e2a \u9759\u6001 \u65b9\u6cd5 \u9759\u6001\u65b9\u6cd5 \uff0c Serialize \u548c Deserialize \u3002 \u6211\u4eec \u5c06 \u4e3a \u5b83 \u6dfb\u52a0 \u4e24\u4e2a \u6587\u4ef6 \uff0c \u8fd9\u6b21 \u662f LibCarla LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . h LibCarla / source / carla / sensor / s11n / SafeDistanceSerializer . cpp \u8ba9 \u6211\u4eec \u4ece Serialize \u51fd\u6570 \u5f00\u59cb \u3002 \u8be5 \u51fd\u6570 \u5c06 \u63a5\u6536 \u6211\u4eec \u4f20\u9012 \u7ed9 Stream . Send ( ... ) \u51fd\u6570 \u7684 \u4efb\u4f55 \u5185\u5bb9 \u4f5c\u4e3a \u53c2\u6570 \uff0c \u552f\u4e00 \u7684 \u6761\u4ef6 \u662f \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u53c2\u6570 \u5fc5\u987b \u662f \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76\u4e14 \u5b83 \u5fc5\u987b \u8fd4\u56de \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 static Buffer Serialize ( const Sensor & , ... ) ; carla : : Buffer \u53ea\u662f \u4e00\u5757 \u52a8\u6001 \u5206\u914d \u52a8\u6001\u5206\u914d \u7684 \u539f\u59cb \u5185\u5b58 \uff0c \u5177\u6709 \u4e00\u4e9b \u65b9\u4fbf \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u5b83 \u5411 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53d1\u9001 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u3002 \u5728 \u6b64 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u6709 \u610f\u4e49 \u7684 \u65b9\u5f0f \u5c06 \u68c0\u6d4b \u5230 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5217\u8868 \u5199\u5165 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u8fd9 \u5c31\u662f \u6211\u4eec \u5c06 \u5267\u96c6 \u5bf9\u8c61 \u4f20\u9012 \u7ed9 \u6b64 \u51fd\u6570 \u7684 \u539f\u56e0 \u3002 UCarlaEpisode \u7c7b \u8868\u793a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u8fd0\u884c \u7684 \u5f53\u524d \u60c5\u8282 \uff0c \u5373 \u81ea \u4e0a\u6b21 \u52a0\u8f7d \u5730\u56fe \u4ee5\u6765 \u7684 \u4eff\u771f \u72b6\u6001 \u3002 \u5b83 \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u4fe1\u606f \uff0c \u9664 \u5176\u4ed6 \u5916 \uff0c \u5b83 \u8fd8 \u5141\u8bb8 \u641c\u7d22 \u6f14\u5458 ID \u3002 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b ID \u53d1\u9001 \u9001\u7ed9 \u53d1\u9001\u7ed9 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5ba2\u6237 \u5ba2\u6237\u7aef \u5c06 \u80fd\u591f \u5c06 \u8fd9\u4e9b ID \u8bc6\u522b \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 template < typename SensorT , typename EpisodeT , typename ActorListT > static Buffer Serialize ( const SensorT & , const EpisodeT & episode , const ActorListT & detected _ actors ) { const uint32 _ t size _ in _ bytes = sizeof ( ActorId ) * detected _ actors . Num ( ) ; Buffer buffer { size _ in _ bytes } ; unsigned char * it = buffer . data ( ) ; for ( auto * actor : detected _ actors ) { ActorId id = episode . FindActor ( actor ) . GetActorId ( ) ; std : : memcpy ( it , & id , sizeof ( ActorId ) ) ; it + = sizeof ( ActorId ) ; } return buffer ; } \u6ce8\u610f \uff1a \u6211\u4eec \u5bf9 \u865a\u5e7b \u5f15\u64ce 4 \u7c7b \u8fdb\u884c \u6a21\u677f \u5316\u4ee5 \u907f\u514d \u5728 LibCarla \u4e2d \u5305\u542b \u8fd9\u4e9b \u6587\u4ef6 \u3002 \u6211\u4eec \u8981 \u8fd4\u56de \u7684 \u8fd9\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5c06\u4f1a \u8fd4\u56de \u7ed9 \u6211\u4eec \uff0c \u4e0d\u8fc7 \u53ea\u4e0d\u8fc7 \u8fd9\u6b21 \u662f \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5728 \u5c01\u88c5 \u5728 RawData \u5bf9\u8c61 \u4e2d \u7684 Deserialize \u51fd\u6570 \u4e2d static SharedPtr < SensorData > Deserialize ( RawData && data ) ; \u6211\u4eec \u5728 cpp \u6587\u4ef6 \u4e2d \u5b9e\u73b0 \u8fd9\u4e2a \u65b9\u6cd5 \uff0c \u6bd4\u8f83 \u7b80\u5355 \u6bd4\u8f83\u7b80\u5355 SharedPtr < SensorData > SafeDistanceSerializer : : Deserialize ( RawData && data ) { return SharedPtr < SensorData > ( new data : : SafeDistanceEvent ( std : : move ( data ) ) ) ; } \u9664\u4e86 \u6211\u4eec \u8fd8 \u6ca1\u6709 \u5b9a\u4e49 \u4ec0\u4e48 \u662f SafeDistanceEvent \u3002","title":"2 - \u4f20\u611f\u5668 \u6570\u636e \u4e32\u884c \u5668"},{"location":"tuto_D_create_sensor/#3-","text":"\u6211\u4eec \u9700\u8981 \u4e3a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7528\u6237 \u521b\u5efa \u4e00\u4e2a \u6570\u636e \u5bf9\u8c61 \uff0c \u8868\u793a \u5b89\u5168 \u8ddd\u79bb \u4e8b\u4ef6 \u7684 \u6570\u636e \u3002 \u6211\u4eec \u5c06 \u6b64 \u6587\u4ef6 \u6dfb\u52a0 \u5230 LibCarla / source / carla / sensor / data / SafeDistanceEvent . h \u8be5 \u5bf9\u8c61 \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u5217\u8868 \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4ece Array \u6a21\u677f \u6d3e\u751f # pragma once # include \" carla / rpc / ActorId . h \" # include \" carla / sensor / data / Array . h \" namespace carla { namespace sensor { namespace data { class SafeDistanceEvent : public Array < rpc : : ActorId > { public : explicit SafeDistanceEvent ( RawData && data ) : Array < rpc : : ActorId > ( std : : move ( data ) ) { } } ; } / / namespace data } / / namespace sensor } / / namespace carla \u6570\u7ec4 \u6a21\u677f \u5c06 \u628a \u6211\u4eec \u5728 Serialize \u65b9\u6cd5 \u4e2d \u521b\u5efa \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u91cd\u65b0 \u89e3\u91ca \u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 ID \u6570\u7ec4 \uff0c \u5e76\u4e14 \u5b83 \u80fd\u591f \u76f4\u63a5 \u4ece \u6211\u4eec \u6536\u5230 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u4e2d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u800c \u65e0\u9700 \u5206\u914d \u4efb\u4f55 \u65b0 \u5185\u5b58 \u3002 \u867d\u7136 \u5bf9\u4e8e \u8fd9\u4e2a \u5c0f \u4f8b\u5b50 \u6765\u8bf4 \u53ef\u80fd \u6709\u70b9 \u5927\u6750\u5c0f\u7528 \uff0c \u4f46 \u8fd9\u79cd \u673a\u5236 \u4e5f \u9002\u7528 \u4e8e \u5927 \u6570\u636e \u5757 \uff1b \u60f3\u8c61 \u4e00\u4e0b \u6211\u4eec \u6b63\u5728 \u53d1\u9001 \u9ad8\u6e05 \u56fe\u50cf \uff0c \u6211\u4eec \u901a\u8fc7 \u91cd\u7528 \u539f\u59cb \u5185\u5b58 \u8282\u7701 \u4e86 \u5f88\u591a \u3002 \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u5c06 \u6b64\u7c7b \u516c\u5f00 \u7ed9 Python \u3002 \u5728 \u6211\u4eec \u7684 \u793a\u4f8b \u4e2d \uff0c \u6211\u4eec \u6ca1\u6709 \u6dfb\u52a0 \u4efb\u4f55 \u989d\u5916 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u6b64 \u6211\u4eec \u53ea \u516c\u5f00 \u4e0e Array \u76f8\u5173 \u7684 \u65b9\u6cd5 \u3002 \u6211\u4eec \u901a\u8fc7 \u4f7f\u7528 Boost . Python \u7ed1\u5b9a \u6765 \u5b9e\u73b0 \u6b64 \u76ee\u7684 \uff0c \u5c06 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u6dfb\u52a0 \u5230 PythonAPI / carla / source / libcarla / SensorData . cpp \u3002 class _ < csd : : SafeDistanceEvent , / / actual type . bases < cs : : SensorData > , / / parent type . boost : : noncopyable , / / disable copy . boost : : shared _ ptr < csd : : SafeDistanceEvent > / / use as shared _ ptr . > ( \" SafeDistanceEvent \" , no _ init ) / / name , and disable construction . . def ( \" __ len __ \" , & csd : : SafeDistanceEvent : : size ) . def ( \" __ iter __ \" , iterator < csd : : SafeDistanceEvent > ( ) ) . def ( \" __ getitem __ \" , + [ ] ( const csd : : SafeDistanceEvent & self , size _ t pos ) - > cr : : ActorId { return self . at ( pos ) ; } ) ; \u6ce8\u610f \uff1a csd \u662f \u540d\u79f0 \u7a7a\u95f4 carla : : sensor : : data \u7684 \u522b\u540d \u3002 \u6211\u4eec \u5728 \u8fd9\u91cc \u6240 \u505a \u7684 \u662f \u5728 Python \u4e2d \u516c\u5f00 \u4e00\u4e9b C++ \u65b9\u6cd5 \u3002 \u8fd9\u6837 \uff0c Python API \u5c06 \u80fd\u591f \u8bc6\u522b \u6211\u4eec \u7684 \u65b0 \u4e8b\u4ef6 \uff0c \u5e76\u4e14 \u5176 \u884c\u4e3a \u7c7b\u4f3c \u4e8e Python \u4e2d \u7684 \u6570\u7ec4 \uff0c \u53ea\u662f \u4e0d\u80fd \u4fee\u6539 \u3002","title":"3 - \u4f20\u611f\u5668 \u6570\u636e \u5bf9\u8c61"},{"location":"tuto_D_create_sensor/#4-","text":"\u73b0\u5728 \u7ba1\u9053 \u5df2 \u5b8c\u6210 \uff0c \u6211\u4eec \u5df2 \u51c6\u5907 \u597d \u6ce8\u518c \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6211\u4eec \u5728 LibCarla / source / carla / sensor / SensorRegistry . h \u4e2d \u8fd9\u6837 \u505a \u3002 \u6309\u7167 \u6b64 \u6587\u4ef6 \u5934\u6587\u4ef6 \u4e2d \u7684 \u8bf4\u660e \u6dfb\u52a0 \u4e0d\u540c \u7684 \u5305\u542b \u548c \u524d \u5411 \u58f0\u660e \uff0c \u5e76 \u5c06 \u4ee5\u4e0b \u5bf9 \u6dfb\u52a0 \u5230 \u6ce8\u518c \u6ce8\u518c\u8868 \u4e2d std : : pair < ASafeDistanceSensor * , s11n : : SafeDistanceSerializer > \u6709 \u4e86 \u8fd9\u4e2a \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6ce8\u518c \u6ce8\u518c\u8868 \u73b0\u5728 \u53ef\u4ee5 \u53d1\u6325 \u5176 \u9b54\u529b \uff0c \u5c06 \u6b63\u786e \u7684 \u6570\u636e \u5206\u6d3e \u5230 \u6b63\u786e \u7684 \u5e8f\u5217 \u5e8f\u5217\u5316 \u5668 \u3002 \u73b0\u5728 \u91cd\u65b0 \u7f16\u8bd1 Carla \uff0c \u5e0c\u671b \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \u5e76\u4e14 \u6ca1\u6709 \u9519\u8bef \u3002 \u4e0d\u5e78 \u7684 \u662f \uff0c \u8fd9\u91cc \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u9519\u8bef \u90fd \u4e0e \u6a21\u677f \u6709\u5173 \uff0c \u5e76\u4e14 \u9519\u8bef \u6d88\u606f \u53ef\u80fd \u6709\u70b9 \u795e\u79d8 \u3002 make rebuild","title":"4 - \u6ce8\u518c \u60a8 \u7684 \u4f20\u611f\u5668"},{"location":"tuto_D_create_sensor/#5-","text":"\u6700\u540e \uff0c \u6211\u4eec \u5df2\u7ecf \u5305\u542b \u4e86 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76\u4e14 \u5df2\u7ecf \u5b8c\u6210 \u4e86 \u91cd\u65b0 \u7f16\u8bd1 \uff0c \u73b0\u5728 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e94\u8be5 \u53ef\u4ee5 \u5728 Python \u4e2d \u4f7f\u7528 \u3002 \u8981 \u751f\u6210 \u8fd9\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u6211\u4eec \u53ea \u9700 \u5728 \u84dd \u56fe\u5e93 \u4e2d \u627e\u5230 \u5b83 \uff0c \u5982\u679c \u4e00\u5207 \u987a\u5229 \u4e00\u5207\u987a\u5229 \uff0c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5de5\u5382 \u5e94\u8be5 \u5df2 \u5c06 \u6211\u4eec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6dfb\u52a0 \u5230\u5e93 \u4e2d blueprint = blueprint _ library . find ( ' sensor . other . safe _ distance ' ) sensor = world . spawn _ actor ( blueprint , carla . Transform ( ) , attach _ to = vehicle ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u6ce8\u518c \u56de\u8c03 \u51fd\u6570 \u6765 \u5f00\u59cb \u76d1\u542c \u4e8b\u4ef6 world _ ref = weakref . ref ( world ) def callback ( event ) : for actor _ id in event : vehicle = world _ ref ( ) . get _ actor ( actor _ id ) print ( ' Vehicle too close : % s ' % vehicle . type _ id ) sensor . listen ( callback ) \u6b64 \u56de\u8c03 \u5c06 \u6267\u884c \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5728 \u6211\u4eec \u7684 \u5b89\u5168 \u8ddd\u79bb \u6846\u4e2d \u7684 \u6bcf\u6b21 \u66f4\u65b0 \uff0c \u4f8b\u5982 Vehicle too close : vehicle . audi . a2 Vehicle too close : vehicle . mercedes - benz . coupe \u5c31\u662f \u8fd9\u6837 \uff0c \u6211\u4eec \u6709 \u4e00\u4e2a \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6b63\u5728 \u5de5\u4f5c \uff01","title":"5 - \u4f7f\u7528 \u793a\u4f8b"},{"location":"tuto_D_create_sensor/#_5","text":"","title":"\u9644\u5f55"},{"location":"tuto_D_create_sensor/#_6","text":"\u4e3a\u4e86 \u4f18\u5316 \u5185\u5b58 \u4f7f\u7528 \uff0c \u6211\u4eec \u53ef\u4ee5 \u5229\u7528 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53d1\u9001 \u76f8\u4f3c \u5927\u5c0f \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u4e8b\u5b9e \uff1b \u7279\u522b \u662f \uff0c \u5728 \u76f8\u673a \u7684 \u60c5\u51b5 \u4e0b \uff0c \u56fe\u50cf \u7684 \u5927\u5c0f \u5728 \u6267\u884c \u671f\u95f4 \u662f \u6052\u5b9a \u7684 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u53ef\u4ee5 \u901a\u8fc7 \u91cd\u7528 \u5e27 \u4e4b\u95f4 \u5206\u914d \u7684 \u5185\u5b58 \u6765 \u8282\u7701 \u5927\u91cf \u8d44\u6e90 \u3002 \u6bcf\u4e2a \u6d41\u90fd \u5305\u542b \u4e00\u4e2a \u7f13\u51b2 \u6c60 \uff0c \u53ef \u7528\u4e8e \u907f\u514d \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u5185\u5b58 \u5206\u914d \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u6d41 \uff0c \u56e0\u6b64 \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u6709 \u81ea\u5df1 \u7684 \u7f13\u51b2 \u6c60 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a auto Buffer = Stream . PopBufferFromPool ( ) ; \u5982\u679c \u6c60\u4e3a \u7a7a \uff0c \u5219 \u8fd4\u56de \u4e00\u4e2a \u7a7a \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5373 \u6ca1\u6709 \u5206\u914d \u5185\u5b58 \u5206\u914d\u5185\u5b58 \u7684 \u7f13\u51b2 \u7f13\u51b2\u533a \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u8c03\u6574 \u7f13\u51b2 \u7f13\u51b2\u533a \u5927 \u5c0f\u65f6 \uff0c \u5c06 \u5206\u914d \u65b0 \u7684 \u5185\u5b58 \u3002 \u5728 \u7b2c\u4e00 \u5e27 \u671f\u95f4 \uff0c \u8fd9\u79cd \u60c5\u51b5 \u4f1a \u53d1\u751f \u51e0\u6b21 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u4ece\u6c60 \u4e2d \u68c0\u7d22 \u7f13\u51b2 \u7f13\u51b2\u533a \uff0c \u5219 \u4e00\u65e6 \u7f13\u51b2 \u7f13\u51b2\u533a \u8d85\u51fa \u8303\u56f4 \u8d85\u51fa\u8303\u56f4 \uff0c \u5176 \u5185\u5b58 \u5c06 \u8fd4\u56de \u5230 \u6c60\u4e2d \u3002 \u4e0b\u6b21 \u4ece\u6c60 \u4e2d \u83b7\u53d6 \u53e6 \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u65f6 \uff0c \u5b83 \u5c06 \u5305\u542b \u4ece\u524d \u4e00\u4e2a \u7f13\u51b2 \u7f13\u51b2\u533a \u5206\u914d \u7684 \u5185\u5b58 \u3002 \u6b63\u5982 \u60a8 \u6240 \u770b\u5230 \u7684 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5bf9\u8c61 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u5145\u5f53 \u6307\u5411 \u8fde\u7eed \u539f\u59cb \u5185\u5b58 \u7684 \u667a\u80fd \u6307\u9488 \u3002 \u53ea\u8981 \u60a8 \u8bf7\u6c42 \u7684 \u5185\u5b58 \u4e0d \u8d85\u8fc7 \u5f53\u524d \u5206\u914d \u7684 \u5185\u5b58 \uff0c \u7f13\u51b2 \u7f13\u51b2\u533a \u5c31 \u4f1a \u91cd\u7528 \u8be5 \u5185\u5b58 \u3002 \u5982\u679c \u60a8 \u8bf7\u6c42 \u66f4 \u591a \uff0c \u5219 \u5fc5\u987b \u5220\u9664 \u5f53\u524d \u5185\u5b58 \u5e76 \u5206\u914d \u66f4\u5927 \u7684 \u5757 \u3002 \u4ee5\u4e0b \u4ee3\u7801 \u7247\u6bb5 \u8bf4\u660e \u4e86 \u7f13\u51b2 \u7f13\u51b2\u533a \u7684 \u5de5\u4f5c \u539f\u7406 Buffer buffer ; buffer . reset ( 1024u ) ; / / ( size 1024 bytes , capacity 1024 bytes ) - > allocates buffer . reset ( 512u ) ; / / ( size 512 bytes , capacity 1024 bytes ) buffer . reset ( 2048u ) ; / / ( size 2048 bytes , capacity 2048 bytes ) - > allocates","title":"\u91cd\u7528 \u7f13\u51b2\u533a"},{"location":"tuto_D_create_sensor/#_7","text":"\u67d0\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u9700\u8981 \u5f02\u6b65 \u53d1\u9001 \u6570\u636e \u53d1\u9001\u6570\u636e \uff0c \u8981\u4e48 \u662f \u4e3a\u4e86 \u6027\u80fd \uff0c \u8981\u4e48 \u56e0\u4e3a \u662f\u56e0\u4e3a \u6570\u636e \u662f \u5728 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u4e2d \u751f\u6210 \u7684 \uff0c \u4f8b\u5982 \uff0c \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ece \u6e32\u67d3 \u7ebf\u7a0b \u53d1\u9001 \u56fe\u50cf \u3002 \u5f02\u6b65 \u4f7f\u7528 \u6570\u636e \u6570\u636e\u6d41 \u662f \u5b8c\u5168 \u53ef\u4ee5 \u7684 \uff0c \u53ea\u8981 \u6570\u636e \u6570\u636e\u6d41 \u672c\u8eab \u662f \u5728 \u6e38\u620f \u7ebf\u7a0b \u4e2d \u521b\u5efa \u7684 \u3002 \u4f8b\u5982 void MySensor : : Tick ( float DeltaSeconds ) { Super : : Tick ( DeltaSeconds ) ; auto Stream = GetDataStream ( * this ) ; std : : async ( std : : launch : : async , [ Stream = std : : move ( Stream ) ] ( ) { auto Data = ComputeData ( ) ; Stream . Send ( * this , Data ) ; } ) ; }","title":"\u5f02\u6b65 \u53d1\u9001\u6570\u636e"},{"location":"tuto_D_create_sensor/#_8","text":"\u6709\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d \u9700\u8981 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fdb\u884c \u6d4b\u91cf \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u5b8c\u5168 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fd0\u884c \uff0c \u4ece\u800c \u4f7f \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u514d\u4e8e \u989d\u5916 \u7684 \u8ba1\u7b97 \u3002 \u6b64\u7c7b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u662f LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u901a\u5e38 \u7684 \u65b9\u6cd5 \u662f \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u7aef \u521b\u5efa \u4e00\u4e2a \u201c \u865a\u62df \u201d \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4ee5\u4fbf \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u77e5\u9053 \u8fd9\u6837 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5b58\u5728 \u3002 \u7136\u800c \uff0c \u8fd9\u4e2a \u865a\u62df \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0d\u4f1a \u6ef4\u7b54 \u4fe1\u53f7 \uff0c \u4e5f \u4e0d\u4f1a \u53d1\u9001 \u4efb\u4f55 \u7c7b\u578b \u7684 \u6570\u636e \u3002 \u7136\u800c \uff0c \u5b83 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u5bf9\u5e94 \u90e8\u5206 \u6ce8\u518c \u4e86 \u4e00\u4e2a \u201c on tick \u201d \u56de\u8c03 \uff0c \u4ee5\u4fbf \u5728 \u6bcf\u6b21 \u65b0 \u66f4\u65b0 \u65f6 \u6267\u884c \u4e00\u4e9b \u4ee3\u7801 \u3002 \u4f8b\u5982 \uff0c LaneInvasion \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u6ce8\u518c \u4e00\u4e2a \u56de\u8c03 \uff0c \u6bcf\u6b21 \u8d8a\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u90fd \u4f1a \u53d1\u51fa \u901a\u77e5 \u53d1\u51fa\u901a\u77e5 \u3002 \u8003\u8651 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u7684 \u201c on tick \u201d \u56de\u8c03 \u662f \u5e76\u53d1 \u6267\u884c \u7684 \uff0c \u5373 \u76f8\u540c \u7684 \u65b9\u6cd5 \u53ef\u80fd \u7531 \u4e0d\u540c \u7684 \u7ebf\u7a0b \u540c\u65f6 \u6267\u884c \uff0c \u8fd9 \u4e00\u70b9 \u975e\u5e38 \u91cd\u8981 \u3002 \u8bbf\u95ee \u7684 \u4efb\u4f55 \u6570\u636e \u90fd \u5fc5\u987b \u6b63\u786e \u540c\u6b65 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e92\u65a5 \u4f53 \u3001 \u4f7f\u7528 \u539f\u5b50 \uff0c \u6216\u8005 \u66f4\u597d \u5730 \u786e\u4fdd \u6240\u6709 \u8bbf\u95ee \u7684 \u6210\u5458 \u4fdd\u6301 \u4e0d\u53d8 \u3002","title":"\u5ba2\u6237\u7aef \u4f20\u611f\u5668"},{"location":"tuto_D_customize_vehicle_suspension/","text":"\u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6 \u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 Carla \u8f66\u8f86 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \uff0c \u4ee5\u53ca \u5982\u4f55 \u9488\u5bf9 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f66\u8f86 \u5b9e\u65bd \u8fd9\u4e9b \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u4f7f\u7528 \u6b64 \u4fe1\u606f \u53ef\u4ee5 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u4e2d \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53c2\u6570 \uff0c \u5e76 \u968f\u610f \u5bf9 \u5176 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u3002 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u60ac\u67b6 \u7ec4 \u8f7f \u8dd1\u8f66 \u8d8a\u91ce \u5361\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u7531 \u6240\u8ff0 \u8f66\u8f86 \u7684 \u8f66\u8f6e \u9650\u5b9a \u3002 \u6bcf\u4e2a \u8f66\u8f6e \u90fd \u6709 \u4e00\u4e2a \u5e26\u6709 \u4e00\u4e9b \u53c2\u6570 \u5316 \u7684 \u72ec\u7acb \u84dd\u56fe \uff0c \u5176\u4e2d \u5305\u62ec \u60ac\u67b6 \u7cfb\u7edf \u3002 \u8fd9\u4e9b \u84dd\u56fe \u53ef\u4ee5 \u5728 Content / Carla / Blueprints / Vehicles / < vehicle _ name > \u4e2d \u627e\u5230 \u3002 \u5b83\u4eec \u7684 \u540d\u79f0 \u5982\u4e0b \uff1a BP _ < vehicle _ name > _ < F / R > < R / L > W \u3002 F \u6216 R \u76f8\u5e94 \u5730 \u7528\u4e8e \u524d\u8f6e \u6216 \u540e\u8f6e \u3002 R \u6216 L \u5e94\u5730 \u7528\u4e8e \u53f3\u8f6e \u6216 \u5de6\u8f6e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5965\u8fea A2 \u5de6 \u524d\u8f6e \u7684 \u84dd\u56fe \u547d\u540d \u4e3a BP _ AudiA2 _ FLW . shape _ radius \u8ba9 \u8f66\u8f6e \u505c \u5728 \u8def\u9762 \u4e0a \uff0c \u65e2 \u4e0d \u60ac\u505c \u4e5f \u4e0d \u5728 \u8def\u9762 \u5185\u90e8 \u3002 \u5728 \u84dd\u56fe \u4e2d \uff0c \u6709 \u4e00\u4e2a \u90e8\u5206 \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u60ac\u67b6 \u7684 \u4e00\u4e9b \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u662f \u865a\u5e7b \u5f15\u64ce \u4e2d \u63cf\u8ff0 \u7684 \u5b83\u4eec \u7684 \u5b9a\u4e49 \u3002 Suspension Force Offset \u2014 \u8ddd \u65bd\u52a0 \u60ac\u6302 \u529b \u7684 \u4f4d\u7f6e \u7684 \u5782\u76f4 \u504f\u79fb \uff08 \u6cbf Z \u8f74 \uff09 \u3002 Suspension Max Raise \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u8d85\u51fa \u9759\u6b62 \u4f4d\u7f6e \u591a\u8fdc \u3002 Suspension Max Drop \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u4e0b\u964d \u5230 \u9759\u6b62 \u4f4d\u7f6e \u4ee5\u4e0b \u591a\u8fdc \u3002 Suspension Natural Frequency \u2014 \u60ac\u67b6 \u7684 \u632f\u8361 \u9891\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 5 \u548c \u4e4b\u95f4 10 \u3002 Suspension Damping Ratio \u2014 \u80fd\u91cf \u4ece \u5f39\u7c27 \u8017\u6563 \u7684 \u901f\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 0.8 \u548c 1.2 \u4e4b\u95f4 \u3002 \u503c < 1 \u66f4\u52a0 \u8fdf\u7f13 \uff0c \u503c > 1 \u66f4\u52a0 \u52a8\u8361 \u3002 Sweep Type \u2014 \u8f66\u8f6e \u60ac\u67b6 \u662f\u5426 \u8003\u8651 \u7b80\u5355 \u3001 \u590d\u6742 \u6216 \u4e24\u8005 \u800c\u6709 \u517c\u800c\u6709\u4e4b \u3002 \u8f66\u8f6e \u84dd\u56fe \u4e2d \u7684 \u60ac\u67b6 \u9762\u677f \u3002 \u7b14\u8bb0 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8f66\u8f86 \u7684 \u6240\u6709 \u8f66\u8f6e \u5728 Carla \u4e2d \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u89e3\u91ca \u5c06 \u6309 \u8f66\u8f86 \u800c \u4e0d\u662f \u6309 \u8f66\u8f6e \u8fdb\u884c \u4ecb\u7ecd \u3002 \u60ac\u67b6 \u7ec4 \u6839\u636e \u5176 \u7cfb\u7edf \u60ac\u67b6 \uff0c Carla \u4e2d \u7684 \u8f66\u8f86 \u53ef \u5206\u4e3a \u4e94\u7ec4 \u3002 \u7ec4\u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \uff0c \u56e0\u4e3a \u5b83\u4eec \u9884\u8ba1 \u5728 \u9053\u8def \u4e0a \u5177\u6709 \u76f8\u4f3c \u7684 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53ef\u4ee5 \u968f\u610f \u4fee\u6539 \uff0c \u4e0d\u53d7 \u8fd9 \u4e94\u7ec4 \u7684 \u9650\u5236 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 \u8fd9\u4e9b \u5e76 \u89c2\u5bdf \u5b83\u4eec \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u5bf9\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60ac\u67b6 \u975e\u5e38 \u6709\u7528 \u3002 \u8fd9 \u4e94\u4e2a \u7ec4\u662f \uff1a \u8f7f \u8dd1\u8f66 \u3001 \u8d8a\u91ce \u8d8a\u91ce\u8f66 \u3001 \u5361\u8f66 \u3001 \u57ce\u5e02 \u8f66 \u548c \u8d27\u8f66 \u3002 \u901a\u8fc7 \u4ed4\u7ec6 \u7ec6\u89c2 \u89c2\u5bdf \u4ed4\u7ec6\u89c2\u5bdf \uff0c \u8fd9\u4e9b \u7ec4 \u7684 \u53c2\u6570 \u5316 \u9075\u5faa \u7279\u5b9a \u7684 \u6a21\u5f0f \u3002 \u521a\u6027 \u60ac\u67b6 \u8f7f \u8dd1\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66 \u8d8a\u91ce \u5361\u8f66 \u8f6f \u60ac\u67b6 \u5f53 \u4ece \u8f6f \u60ac\u67b6 \u8f6c\u5411 \u786c \u60ac\u67b6 \u65f6 \uff0c \u53c2\u6570 \u5316\u6709 \u4e00\u4e9b \u660e\u663e \u7684 \u8d8b\u52bf \u3002 Suspension Max Raise \u548c Suspension Max Drop \u7684 __ \u51cf\u5c11 \u2014 \u521a\u6027 \u8f66\u8f86 \u5e94 \u5728 \u5e73\u5766 \u7684 \u9053\u8def \u4e0a \u884c\u9a76 \u4e14 \u6ca1\u6709 \u98a0\u7c38 \u3002 \u51fa\u4e8e \u7a7a\u6c14 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u8003\u8651 \uff0c \u5e95\u76d8 \u4e0d \u5e94 \u5927\u5e45 \u79fb\u52a8 \uff0c \u800c\u5e94 \u59cb\u7ec8 \u4fdd\u6301 \u59cb\u7ec8\u4fdd\u6301 \u9760\u8fd1 \u5730\u9762 \u3002 Suspension Damping Ratio \u7684 \u589e\u52a0 \u2014 \u5bf9\u4e8e \u521a\u6027 \u8f66\u8f86 \u6765\u8bf4 \uff0c \u51cf\u9707 \u51cf\u9707\u5668 \u5438\u6536 \u7684 \u5f39\u8df3 \u66f4\u5927 \u3002 \u8f7f \u8dd1\u8f66 \u5177\u6709 \u6700 \u786c \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 7.5 Suspension Max Drop \u2014 7.5 Suspension Natural Frequency \u2014 9.5 Suspension Damping Ratio \u2014 1.0 Sweep Type \u2014 SimpleAndComplex vehicle . audi . tt vehicle . lincoln . mkz2017 vehicle . mercedes - benz . coupe vehicle . seat . leon vehicle . tesla . model3 \u8d8a\u91ce \u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 15.0 Suspension Max Drop \u2014 15.0 Suspension Natural Frequency \u2014 7.0 Suspension Damping Ratio \u2014 0.5 Sweep Type \u2014 SimpleAndComplex vehicle . audi . etron vehicle . jeep . wrangler _ rubicon vehicle . nissan . patrol vehicle . tesla . cybertruck \u5361\u8f66 \u5177\u6709 \u6700\u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 17.0 Suspension Max Drop \u2014 17.0 Suspension Natural Frequency \u2014 6.0 Suspension Damping Ratio \u2014 0.4 Sweep Type \u2014 SimpleAndComplex vehicle . carlamotors . carlacola \u57ce\u5e02 \u8f66 \u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 8.0 Suspension Max Drop \u2014 8.0 Suspension Natural Frequency \u2014 9.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . audi . a2 vehicle . bmw . grandtourer vehicle . chevrolet . impala vehicle . citroen . c3 vehicle . dodge _ charger . police vehicle . mini . cooperst vehicle . mustang . mustang vehicle . nissan . micra vehicle . toyota . prius \u8d27\u8f66 \u5177\u6709 \u4e2d \u5730 \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 9.0 Suspension Max Drop \u2014 9.0 Suspension Natural Frequency \u2014 8.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . volkswagen . t2 \u4f7f\u7528 \u8bba\u575b \u53d1\u5e03 \u6709\u5173 \u6b64 \u4e3b\u9898 \u7684 \u4efb\u4f55 \u7591\u95ee \u3001 \u95ee\u9898 \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u4ee5\u4e0b \u662f \u672c\u6587 \u4e4b\u540e \u7684 \u4e00\u4e9b \u5efa\u8bae \u8bfb\u7269 \u3002 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e","title":"\u81ea\u5b9a\u4e49 \u8f66\u8f86 \u60ac\u67b6"},{"location":"tuto_D_customize_vehicle_suspension/#_1","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u4e86 Carla \u8f66\u8f86 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \uff0c \u4ee5\u53ca \u5982\u4f55 \u9488\u5bf9 \u4e0d\u540c \u7684 \u53ef\u7528 \u8f66\u8f86 \u5b9e\u65bd \u8fd9\u4e9b \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u3002 \u4f7f\u7528 \u6b64 \u4fe1\u606f \u53ef\u4ee5 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u4e2d \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53c2\u6570 \uff0c \u5e76 \u968f\u610f \u5bf9 \u5176 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u3002 \u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u60ac\u67b6 \u7ec4 \u8f7f \u8dd1\u8f66 \u8d8a\u91ce \u5361\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66","title":"\u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6"},{"location":"tuto_D_customize_vehicle_suspension/#_2","text":"\u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u7531 \u6240\u8ff0 \u8f66\u8f86 \u7684 \u8f66\u8f6e \u9650\u5b9a \u3002 \u6bcf\u4e2a \u8f66\u8f6e \u90fd \u6709 \u4e00\u4e2a \u5e26\u6709 \u4e00\u4e9b \u53c2\u6570 \u5316 \u7684 \u72ec\u7acb \u84dd\u56fe \uff0c \u5176\u4e2d \u5305\u62ec \u60ac\u67b6 \u7cfb\u7edf \u3002 \u8fd9\u4e9b \u84dd\u56fe \u53ef\u4ee5 \u5728 Content / Carla / Blueprints / Vehicles / < vehicle _ name > \u4e2d \u627e\u5230 \u3002 \u5b83\u4eec \u7684 \u540d\u79f0 \u5982\u4e0b \uff1a BP _ < vehicle _ name > _ < F / R > < R / L > W \u3002 F \u6216 R \u76f8\u5e94 \u5730 \u7528\u4e8e \u524d\u8f6e \u6216 \u540e\u8f6e \u3002 R \u6216 L \u5e94\u5730 \u7528\u4e8e \u53f3\u8f6e \u6216 \u5de6\u8f6e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5965\u8fea A2 \u5de6 \u524d\u8f6e \u7684 \u84dd\u56fe \u547d\u540d \u4e3a BP _ AudiA2 _ FLW . shape _ radius \u8ba9 \u8f66\u8f6e \u505c \u5728 \u8def\u9762 \u4e0a \uff0c \u65e2 \u4e0d \u60ac\u505c \u4e5f \u4e0d \u5728 \u8def\u9762 \u5185\u90e8 \u3002 \u5728 \u84dd\u56fe \u4e2d \uff0c \u6709 \u4e00\u4e2a \u90e8\u5206 \u5305\u542b \u6709\u5173 \u8f66\u8f6e \u60ac\u67b6 \u7684 \u4e00\u4e9b \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u662f \u865a\u5e7b \u5f15\u64ce \u4e2d \u63cf\u8ff0 \u7684 \u5b83\u4eec \u7684 \u5b9a\u4e49 \u3002 Suspension Force Offset \u2014 \u8ddd \u65bd\u52a0 \u60ac\u6302 \u529b \u7684 \u4f4d\u7f6e \u7684 \u5782\u76f4 \u504f\u79fb \uff08 \u6cbf Z \u8f74 \uff09 \u3002 Suspension Max Raise \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u8d85\u51fa \u9759\u6b62 \u4f4d\u7f6e \u591a\u8fdc \u3002 Suspension Max Drop \u2014 \u8f66\u8f6e \u53ef\u4ee5 \u4e0b\u964d \u5230 \u9759\u6b62 \u4f4d\u7f6e \u4ee5\u4e0b \u591a\u8fdc \u3002 Suspension Natural Frequency \u2014 \u60ac\u67b6 \u7684 \u632f\u8361 \u9891\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 5 \u548c \u4e4b\u95f4 10 \u3002 Suspension Damping Ratio \u2014 \u80fd\u91cf \u4ece \u5f39\u7c27 \u8017\u6563 \u7684 \u901f\u7387 \u3002 \u6807\u51c6 \u6c7d\u8f66 \u7684 \u503c \u4ecb\u4e8e 0.8 \u548c 1.2 \u4e4b\u95f4 \u3002 \u503c < 1 \u66f4\u52a0 \u8fdf\u7f13 \uff0c \u503c > 1 \u66f4\u52a0 \u52a8\u8361 \u3002 Sweep Type \u2014 \u8f66\u8f6e \u60ac\u67b6 \u662f\u5426 \u8003\u8651 \u7b80\u5355 \u3001 \u590d\u6742 \u6216 \u4e24\u8005 \u800c\u6709 \u517c\u800c\u6709\u4e4b \u3002 \u8f66\u8f6e \u84dd\u56fe \u4e2d \u7684 \u60ac\u67b6 \u9762\u677f \u3002 \u7b14\u8bb0 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8f66\u8f86 \u7684 \u6240\u6709 \u8f66\u8f6e \u5728 Carla \u4e2d \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u89e3\u91ca \u5c06 \u6309 \u8f66\u8f86 \u800c \u4e0d\u662f \u6309 \u8f66\u8f6e \u8fdb\u884c \u4ecb\u7ecd \u3002","title":"\u60ac\u67b6 \u7cfb\u7edf \u7684 \u57fa\u7840\u77e5\u8bc6"},{"location":"tuto_D_customize_vehicle_suspension/#_3","text":"\u6839\u636e \u5176 \u7cfb\u7edf \u60ac\u67b6 \uff0c Carla \u4e2d \u7684 \u8f66\u8f86 \u53ef \u5206\u4e3a \u4e94\u7ec4 \u3002 \u7ec4\u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u53c2\u6570 \u5316 \uff0c \u56e0\u4e3a \u5b83\u4eec \u9884\u8ba1 \u5728 \u9053\u8def \u4e0a \u5177\u6709 \u76f8\u4f3c \u7684 \u884c\u4e3a \u3002 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u53ef\u4ee5 \u968f\u610f \u4fee\u6539 \uff0c \u4e0d\u53d7 \u8fd9 \u4e94\u7ec4 \u7684 \u9650\u5236 \u3002 \u7136\u800c \uff0c \u4e86\u89e3 \u8fd9\u4e9b \u5e76 \u89c2\u5bdf \u5b83\u4eec \u5728 \u4eff\u771f \u4e2d \u7684 \u884c\u4e3a \u5bf9\u4e8e \u5b9a\u4e49 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60ac\u67b6 \u975e\u5e38 \u6709\u7528 \u3002 \u8fd9 \u4e94\u4e2a \u7ec4\u662f \uff1a \u8f7f \u8dd1\u8f66 \u3001 \u8d8a\u91ce \u8d8a\u91ce\u8f66 \u3001 \u5361\u8f66 \u3001 \u57ce\u5e02 \u8f66 \u548c \u8d27\u8f66 \u3002 \u901a\u8fc7 \u4ed4\u7ec6 \u7ec6\u89c2 \u89c2\u5bdf \u4ed4\u7ec6\u89c2\u5bdf \uff0c \u8fd9\u4e9b \u7ec4 \u7684 \u53c2\u6570 \u5316 \u9075\u5faa \u7279\u5b9a \u7684 \u6a21\u5f0f \u3002 \u521a\u6027 \u60ac\u67b6 \u8f7f \u8dd1\u8f66 \u57ce\u5e02 \u8f66 \u8d27\u8f66 \u8d8a\u91ce \u5361\u8f66 \u8f6f \u60ac\u67b6 \u5f53 \u4ece \u8f6f \u60ac\u67b6 \u8f6c\u5411 \u786c \u60ac\u67b6 \u65f6 \uff0c \u53c2\u6570 \u5316\u6709 \u4e00\u4e9b \u660e\u663e \u7684 \u8d8b\u52bf \u3002 Suspension Max Raise \u548c Suspension Max Drop \u7684 __ \u51cf\u5c11 \u2014 \u521a\u6027 \u8f66\u8f86 \u5e94 \u5728 \u5e73\u5766 \u7684 \u9053\u8def \u4e0a \u884c\u9a76 \u4e14 \u6ca1\u6709 \u98a0\u7c38 \u3002 \u51fa\u4e8e \u7a7a\u6c14 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u8003\u8651 \uff0c \u5e95\u76d8 \u4e0d \u5e94 \u5927\u5e45 \u79fb\u52a8 \uff0c \u800c\u5e94 \u59cb\u7ec8 \u4fdd\u6301 \u59cb\u7ec8\u4fdd\u6301 \u9760\u8fd1 \u5730\u9762 \u3002 Suspension Damping Ratio \u7684 \u589e\u52a0 \u2014 \u5bf9\u4e8e \u521a\u6027 \u8f66\u8f86 \u6765\u8bf4 \uff0c \u51cf\u9707 \u51cf\u9707\u5668 \u5438\u6536 \u7684 \u5f39\u8df3 \u66f4\u5927 \u3002","title":"\u60ac\u67b6 \u7ec4"},{"location":"tuto_D_customize_vehicle_suspension/#_4","text":"\u5177\u6709 \u6700 \u786c \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 7.5 Suspension Max Drop \u2014 7.5 Suspension Natural Frequency \u2014 9.5 Suspension Damping Ratio \u2014 1.0 Sweep Type \u2014 SimpleAndComplex vehicle . audi . tt vehicle . lincoln . mkz2017 vehicle . mercedes - benz . coupe vehicle . seat . leon vehicle . tesla . model3","title":"\u8f7f \u8dd1\u8f66"},{"location":"tuto_D_customize_vehicle_suspension/#_5","text":"\u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 15.0 Suspension Max Drop \u2014 15.0 Suspension Natural Frequency \u2014 7.0 Suspension Damping Ratio \u2014 0.5 Sweep Type \u2014 SimpleAndComplex vehicle . audi . etron vehicle . jeep . wrangler _ rubicon vehicle . nissan . patrol vehicle . tesla . cybertruck","title":"\u8d8a\u91ce"},{"location":"tuto_D_customize_vehicle_suspension/#_6","text":"\u5177\u6709 \u6700\u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 17.0 Suspension Max Drop \u2014 17.0 Suspension Natural Frequency \u2014 6.0 Suspension Damping Ratio \u2014 0.4 Sweep Type \u2014 SimpleAndComplex vehicle . carlamotors . carlacola","title":"\u5361\u8f66"},{"location":"tuto_D_customize_vehicle_suspension/#_7","text":"\u914d\u5907 \u8f6f \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 8.0 Suspension Max Drop \u2014 8.0 Suspension Natural Frequency \u2014 9.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . audi . a2 vehicle . bmw . grandtourer vehicle . chevrolet . impala vehicle . citroen . c3 vehicle . dodge _ charger . police vehicle . mini . cooperst vehicle . mustang . mustang vehicle . nissan . micra vehicle . toyota . prius","title":"\u57ce\u5e02 \u8f66"},{"location":"tuto_D_customize_vehicle_suspension/#_8","text":"\u5177\u6709 \u4e2d \u5730 \u60ac\u67b6 \u7684 \u8f66\u8f86 \u3002 \u53c2\u6570 \u5316 \u6c7d\u8f66 Suspension Force Offset \u2014 0.0 Suspension Max Raise \u2014 9.0 Suspension Max Drop \u2014 9.0 Suspension Natural Frequency \u2014 8.0 Suspension Damping Ratio \u2014 0.8 Sweep Type \u2014 SimpleAndComplex vehicle . volkswagen . t2 \u4f7f\u7528 \u8bba\u575b \u53d1\u5e03 \u6709\u5173 \u6b64 \u4e3b\u9898 \u7684 \u4efb\u4f55 \u7591\u95ee \u3001 \u95ee\u9898 \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b \u4ee5\u4e0b \u662f \u672c\u6587 \u4e4b\u540e \u7684 \u4e00\u4e9b \u5efa\u8bae \u8bfb\u7269 \u3002 \u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e","title":"\u8d27\u8f66"},{"location":"tuto_D_generate_colliders/","text":"\u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u4f53 \u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4e3a \u8f66\u8f86 \u521b\u5efa \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u76f8\u5bf9 \u4e8e \u5bf9\u8c61 \u7684 \u539f\u59cb \u5f62\u72b6 \uff09 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u7528\u4f5c \u7269\u7406 \u78b0\u649e \u5668 \uff0c \u4e0e \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u517c\u5bb9 \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4f5c \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u7684 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5 \u68c0\u7d22 \u66f4 \u51c6\u786e \u7684 \u6570\u636e \u3002 \u65b0 \u7684 \u78b0\u649e \u673a \u53ef\u4ee5 \u96c6\u6210 \u5230 Carla \u4e2d \uff0c \u4ee5\u4fbf \u6240\u6709 \u793e\u533a \u90fd \u80fd \u4ece\u4e2d \u53d7\u76ca \u3002 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u4e3a \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u505a\u51fa \u8d21\u732e \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u7684 \u78b0\u649e \u5668 \uff0c \u4f46 \u5b83\u4eec \u5e76 \u4e0d \u5b8c\u5168 \u7b49\u6548 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9700\u8981 \u4e00\u4e9b \u57fa\u672c \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u6280\u80fd \u3002 \u8f66\u8f86 \u4e2d \u6dfb\u52a0 \u4e86 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5\u4fbf \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u68c0\u7d22 \u66f4 \u7cbe\u786e \u7684 \u6570\u636e \u3002 \u7269\u7406 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9075\u5faa \u8d21\u732e \u8d21\u732e\u8005 Yan Kaganovsky / yankagan \u521b\u5efa \u7684 \u6559\u7a0b \uff0c \u65e0\u9700 \u624b\u52a8 \u5efa\u6a21 \u5373\u53ef \u521b\u5efa \u7f51\u683c \u3002 \u7136\u540e \uff0c \u8be5 \u7f51\u683c \u7528\u4f5c \u8f66\u8f86 \u7684 \u4e3b \u78b0\u649e \u5668 \uff0c \u7528\u4e8e \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \uff08 \u9664\u975e \u6dfb\u52a0 \u8f85\u52a9 \u78b0\u649e \u5668 \uff09 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 1 - \u5bfc\u51fa \u8f66\u8f86 FBX 2 - \u751f\u6210 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c 3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce 4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53 \u7269\u7406 \u78b0\u649e \u4f53 0 - \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 1 - \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e 2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX 3 \u5230 4 - \u5bfc\u5165 \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fb9\u754c 5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX 6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53 1 - \u5bfc\u51fa \u8f66\u8f86 FBX \u9996\u5148 \u9700\u8981 \u4ee5 \u8f66\u8f86 \u7684 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \u3002 \u51fa\u4e8e \u5b66\u4e60 \u76ee\u7684 \uff0c \u672c \u6559\u7a0b \u5bfc\u51fa Carla \u8f66\u8f86 \u7684 \u7f51\u683c \u3002 1.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 1.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002 2 - \u751f\u6210 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c 2.1 \u6253\u5f00 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \uff0c \u5efa\u6a21 \u4e00\u4e2a \u4e0e \u539f\u59cb \u7f51\u683c \u4fdd\u6301 \u53ef\u9760 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c \u3002 2.2 \u5c06 \u65b0 \u7f51\u683c \u4fdd\u5b58 \u4e3a FBX \u3002 \u5c06 \u7f51\u683c \u547d\u540d \u4e3a sm _ sc _ < model _ of _ vehicle > . fbx \u3002 \u4f8b\u5982 sm _ sc _ audiTT . fbx . \u7b14\u8bb0 \u81f3\u4e8e \u8f66\u8f6e \u548c \u9644\u52a0 \u5143\u4ef6 \uff08 \u4f8b\u5982 \u8f66\u9876 \u3001 \u6321\u6ce5 \u6ce5\u677f \u6321\u6ce5\u677f \u7b49 \uff09 \uff0c \u65b0 \u7f51\u683c \u5e94\u8be5 \u975e\u5e38 \u51c6\u786e \u5730 \u9075\u5faa \u51e0\u4f55 \u5f62\u72b6 \u3002 \u653e\u7f6e \u7b80\u5355 \u7684 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u662f \u4e0d\u884c \u7684 \u3002 3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce 3.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > . 3.2 \u70b9\u51fb right - click \u5bfc\u5165 \u65b0 \u7f51\u683c SM _ sc _ < model _ of _ vehicle > . fbx \u3002 4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53 4.1 \u8fdb\u5165 Content / Carla / Blueprints / Vehicles / < model _ of _ vehicle > \u5e76 \u6253\u5f00 \u540d\u4e3a BP _ < model _ of _ vehicle > \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 4.2 \u9009\u62e9 CustomCollision \u5143\u7d20 \u5e76 \u5728 Static mesh \u5c5e\u6027 \u4e2d \u6dfb\u52a0 SM _ sc _ < model _ of _ vehicle > . fbx \u3002 4.3 \u70b9\u51fb \u4e0a\u65b9 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 Compile \u5e76 \u4fdd\u5b58 \u66f4\u6539 \u3002 \u7b14\u8bb0 \u5bf9\u4e8e \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7b49 \u8f66\u8f86 \uff0c \u4f7f\u7528 \u76f8\u540c \u7684 \u7ec4\u4ef6 CustomCollision \u66f4\u6539 \u8f66\u8f86 \u672c\u8eab \u7684 \u78b0\u649e \u5668 \u7f51\u683c \u3002 \u7269\u7406 \u78b0\u649e \u4f53 \u91cd\u8981 \u672c \u6559\u7a0b \u57fa\u4e8e yankagan \u7684 \u8d21\u732e \uff01 \u8d21\u732e \u8d21\u732e\u8005 \u8fd8 \u5e0c\u671b \u611f\u8c22 Francisco E \u5173\u4e8e \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u7684 \u6559\u7a0b \u3002 \u8be5 \u89c6\u9891 \u5c55\u793a \u4e86 \u9075\u5faa \u672c \u6559\u7a0b \u540e \u6240 \u53d6\u5f97 \u7684 \u7ed3\u679c \u3002 0 - \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5728 Linux \u6216 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u53ef \u4ece \u5b98\u65b9 \u7f51\u7ad9 \u5b98\u65b9\u7f51 \u5b98\u65b9\u7f51\u7ad9 \u514d\u8d39 \u83b7\u53d6 Blender 2.80 \u6216 \u66f4\u65b0 \u7248\u672c \uff08 \u5f00\u6e90 3D \u5efa\u6a21 \u8f6f\u4ef6 \uff09 \u3002 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u4f7f\u7528 Blender \u7684 VHACD \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u4f7f\u7528 \u51f8\u5305 \u96c6\u5408 \u81ea\u52a8 \u521b\u5efa \u9009\u5b9a \u5bf9\u8c61 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 \u9605\u8bfb \u66f4 \u591a \u3002 \u7b14\u8bb0 \u8fd9\u4e2a \u7cfb\u5217 \u548c Udemy \u8bfe\u7a0b \u5bf9\u4e8e \u65b0\u624b \u6765\u8bf4 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 Blender \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u3002 1 - \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u7b2c 1 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u6dfb\u52a0 \u8f66\u8f6e \u7684 \u78b0\u649e \u8fb9\u754c \u3002 \u4ee5\u4e0b \u89c6\u9891 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd9\u4e9b \u6b65\u9aa4 \u3002 2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX \u7b2c 2 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u3002 2.1 \u8f6c \u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 2.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \uff0c \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002 3 \u5230 4 - \u5bfc\u5165 \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fb9\u754c \u7b2c 3 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 FBX \u6587\u4ef6 \u5bfc\u5165 Blender \u3002 \u7b2c 4 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u6dfb\u52a0 \u51f8\u5305 \u7f51\u683c \u4ee5 \u5f62\u6210 \u65b0 \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u865a\u5e7b \u5f15\u64ce \u5bf9 \u8ba1\u7b97 \u6548\u7387 \u7684 \u8981\u6c42 \uff09 \u3002 \u8fd9\u662f \u6700\u96be \u7684 \u4e00\u6b65 \u3002 \u5982\u679c \u9009\u62e9 \u6574\u8f86 \u8f66 \uff0c VHACD \u521b\u5efa \u7684 \u78b0\u649e \u8fb9\u754c \u5c06 \u4e0d \u7cbe\u786e \u4e14 \u6df7\u4e71 \u3002 \u5b83 \u5c06 \u5305\u542b \u950b\u5229 \u7684 \u8fb9\u7f18 \uff0c \u8fd9\u4f1a \u6270\u4e71 \u9053\u8def \u4e0a \u7684 \u884c\u9a76 \u3002 \u8f6e\u5b50 \u5468\u56f4 \u8981 \u6709 \u5149\u6ed1 \u7684 \u8fb9\u754c \uff0c \u8fd9 \u4e00\u70b9 \u5f88 \u91cd\u8981 \u3002 \u5728 \u8f66 \u8eab\u4e0a \u4f7f\u7528 \u51f8 \u5206\u89e3 \uff0c \u540e\u89c6 \u540e\u89c6\u955c \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u4ecd\u7136 \u4e0d \u6b63\u786e \u3002 \u5bf9\u4e8e \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u6765\u8bf4 \uff0c \u8f66\u8f86 \u7684 \u7ec6\u8282 \u975e\u5e38 \u91cd\u8981 \u3002 \u7531\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8fd9\u4e9b \u6b65\u9aa4 \u88ab \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \u3002 4.1 \u4f7f\u7528 VHACD \u5de5\u5177 \u5207 \u51fa \u8f66\u8f6e \u7684 \u5e95\u90e8 \u3001 \u4fa7\u89c6 \u955c \u548c \u8f66\u8eab \u7684 \u9876\u90e8 \uff0c \u4ee5 \u521b\u5efa \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fb9\u754c \u3002 \u4f7f\u7528 VHACD \u5de5\u5177 \u526a\u6389 \u6c7d\u8f66 \u7684 \u4e0b \u534a \u90e8\u5206 \u4ee5 \u521b\u5efa \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u8fb9\u754c \uff08 \u6c7d\u8f66 \u7684 \u9876\u90e8 \uff09 \u3002 4.2 \u4f7f\u7528 VHACD \u5de5\u5177 \u4e3a \u540e\u89c6 \u540e\u89c6\u955c \u521b\u5efa \u5355\u72ec \u7684 \u8fb9\u754c \u3002 \u8b66\u544a \u547d\u540d \u5bf9\u8c61 \u65f6\u8981 \u975e\u5e38 \u5c0f\u5fc3 \u3002 \u6bcf\u4e2a \u8fb9\u754c \u5e94 \u4ee5 UCX _ \u5f00\u5934 \uff0c \u5176\u4f59 \u540d\u79f0 \u5fc5\u987b \u4e0e \u539f\u59cb \u7f51\u683c \u5b8c\u5168 \u76f8\u540c \u3002 5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX \u7b2c 5 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u8fb9\u754c \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u4e2d \u3002 5.1 \u4ec5 \u9009\u62e9 \u539f\u59cb \u8f66\u8f86 \u548c \u6240\u6709 \u65b0 \u6dfb\u52a0 \u7684 \u7269\u4f53 \u8fdb\u884c \u78b0\u649e \u3002 5.2 \u5728 \u5bfc\u51fa \u83dc\u5355 \u4e2d \uff0c \u9009\u4e2d selected objects \u5e76 \u4ec5 \u9009\u62e9 \u201c Mesh \u201d \u3002 6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406 \u7b2c 6 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u65b0 FBX \u4f5c\u4e3a \u865a\u5e7b \u8d44\u6e90 \u6587\u4ef6 \uff08 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \uff09 \u5bfc\u5165 Carla \u3002 \u7b2c 7 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u5668 \u5bfc\u5165 \u5bfc\u5165\u5230 \u7279\u5b9a \u8f66\u8f86 \u7684 \u7269\u7406 \u8d44\u6e90 \u4e2d \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u7528\u4e8e \u8ba1\u7b97 \u3002 \u7b2c 8 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u521b\u5efa \u8fde\u63a5 \u4e0d\u540c \u5173\u8282 \u7684 \u7ea6\u675f \u5e76 \u5b9a\u4e49 \u6240\u6709 \u90e8\u4ef6 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u66f4\u6539 Carla \u4e2d \u8f66\u8f86 \u7684 \u9ed8\u8ba4 \u78b0\u649e \u5668 \u7684 \u603b\u7ed3 \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u8be6\u7ec6 \u78b0\u649e"},{"location":"tuto_D_generate_colliders/#_1","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4e3a \u8f66\u8f86 \u521b\u5efa \u66f4 \u51c6\u786e \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u76f8\u5bf9 \u4e8e \u5bf9\u8c61 \u7684 \u539f\u59cb \u5f62\u72b6 \uff09 \u3002 \u5b83\u4eec \u53ef\u4ee5 \u7528\u4f5c \u7269\u7406 \u78b0\u649e \u5668 \uff0c \u4e0e \u78b0\u649e \u68c0\u6d4b \u78b0\u649e\u68c0\u6d4b \u517c\u5bb9 \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4f5c \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u7684 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5 \u68c0\u7d22 \u66f4 \u51c6\u786e \u7684 \u6570\u636e \u3002 \u65b0 \u7684 \u78b0\u649e \u673a \u53ef\u4ee5 \u96c6\u6210 \u5230 Carla \u4e2d \uff0c \u4ee5\u4fbf \u6240\u6709 \u793e\u533a \u90fd \u80fd \u4ece\u4e2d \u53d7\u76ca \u3002 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5982\u4f55 \u4e3a \u5185\u5bb9 \u5b58\u50a8 \u5e93 \u505a\u51fa \u8d21\u732e \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6709 \u4e24\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u7684 \u78b0\u649e \u5668 \uff0c \u4f46 \u5b83\u4eec \u5e76 \u4e0d \u5b8c\u5168 \u7b49\u6548 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9700\u8981 \u4e00\u4e9b \u57fa\u672c \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u6280\u80fd \u3002 \u8f66\u8f86 \u4e2d \u6dfb\u52a0 \u4e86 \u8f85\u52a9 \u78b0\u649e \u5668 \uff0c \u4ee5\u4fbf \u57fa\u4e8e \u5149\u7ebf \u6295\u5c04 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff08 \u4f8b\u5982 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff09 \u68c0\u7d22 \u66f4 \u7cbe\u786e \u7684 \u6570\u636e \u3002 \u7269\u7406 \u78b0\u649e \u5668 \u2014 \u8fd9\u79cd \u65b9\u6cd5 \u9075\u5faa \u8d21\u732e \u8d21\u732e\u8005 Yan Kaganovsky / yankagan \u521b\u5efa \u7684 \u6559\u7a0b \uff0c \u65e0\u9700 \u624b\u52a8 \u5efa\u6a21 \u5373\u53ef \u521b\u5efa \u7f51\u683c \u3002 \u7136\u540e \uff0c \u8be5 \u7f51\u683c \u7528\u4f5c \u8f66\u8f86 \u7684 \u4e3b \u78b0\u649e \u5668 \uff0c \u7528\u4e8e \u7269\u7406 \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u68c0\u6d4b \uff08 \u9664\u975e \u6dfb\u52a0 \u8f85\u52a9 \u78b0\u649e \u5668 \uff09 \u3002 \u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u5668 1 - \u5bfc\u51fa \u8f66\u8f86 FBX 2 - \u751f\u6210 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c 3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce 4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53 \u7269\u7406 \u78b0\u649e \u4f53 0 - \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 1 - \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e 2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX 3 \u5230 4 - \u5bfc\u5165 \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fb9\u754c 5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX 6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406","title":"\u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#_2","text":"","title":"\u5149\u7ebf \u6295\u5c04 \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#1-fbx","text":"\u9996\u5148 \u9700\u8981 \u4ee5 \u8f66\u8f86 \u7684 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \u3002 \u51fa\u4e8e \u5b66\u4e60 \u76ee\u7684 \uff0c \u672c \u6559\u7a0b \u5bfc\u51fa Carla \u8f66\u8f86 \u7684 \u7f51\u683c \u3002 1.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 1.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002","title":"1 - \u5bfc\u51fa \u8f66\u8f86 FBX"},{"location":"tuto_D_generate_colliders/#2-","text":"2.1 \u6253\u5f00 \u4e09\u7ef4 \u5efa\u6a21 \u8f6f\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u539f\u59cb \u7f51\u683c \u4f5c\u4e3a \u53c2\u8003 \uff0c \u5efa\u6a21 \u4e00\u4e2a \u4e0e \u539f\u59cb \u7f51\u683c \u4fdd\u6301 \u53ef\u9760 \u7684 \u5bc6\u5ea6 \u4f4e\u5bc6\u5ea6 \u7f51\u683c \u3002 2.2 \u5c06 \u65b0 \u7f51\u683c \u4fdd\u5b58 \u4e3a FBX \u3002 \u5c06 \u7f51\u683c \u547d\u540d \u4e3a sm _ sc _ < model _ of _ vehicle > . fbx \u3002 \u4f8b\u5982 sm _ sc _ audiTT . fbx . \u7b14\u8bb0 \u81f3\u4e8e \u8f66\u8f6e \u548c \u9644\u52a0 \u5143\u4ef6 \uff08 \u4f8b\u5982 \u8f66\u9876 \u3001 \u6321\u6ce5 \u6ce5\u677f \u6321\u6ce5\u677f \u7b49 \uff09 \uff0c \u65b0 \u7f51\u683c \u5e94\u8be5 \u975e\u5e38 \u51c6\u786e \u5730 \u9075\u5faa \u51e0\u4f55 \u5f62\u72b6 \u3002 \u653e\u7f6e \u7b80\u5355 \u7684 \u7acb\u65b9 \u7acb\u65b9\u4f53 \u662f \u4e0d\u884c \u7684 \u3002","title":"2 - \u751f\u6210 \u4f4e\u5bc6\u5ea6 \u7f51\u683c"},{"location":"tuto_D_generate_colliders/#3-","text":"3.1 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6253\u5f00 Carla \u5e76 \u8f6c\u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > . 3.2 \u70b9\u51fb right - click \u5bfc\u5165 \u65b0 \u7f51\u683c SM _ sc _ < model _ of _ vehicle > . fbx \u3002","title":"3 - \u5c06 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce"},{"location":"tuto_D_generate_colliders/#4-","text":"4.1 \u8fdb\u5165 Content / Carla / Blueprints / Vehicles / < model _ of _ vehicle > \u5e76 \u6253\u5f00 \u540d\u4e3a BP _ < model _ of _ vehicle > \u7684 \u8f66\u8f86 \u7684 \u84dd\u56fe \u3002 4.2 \u9009\u62e9 CustomCollision \u5143\u7d20 \u5e76 \u5728 Static mesh \u5c5e\u6027 \u4e2d \u6dfb\u52a0 SM _ sc _ < model _ of _ vehicle > . fbx \u3002 4.3 \u70b9\u51fb \u4e0a\u65b9 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 Compile \u5e76 \u4fdd\u5b58 \u66f4\u6539 \u3002 \u7b14\u8bb0 \u5bf9\u4e8e \u6469\u6258 \u6258\u8f66 \u6469\u6258\u8f66 \u548c \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7b49 \u8f66\u8f86 \uff0c \u4f7f\u7528 \u76f8\u540c \u7684 \u7ec4\u4ef6 CustomCollision \u66f4\u6539 \u8f66\u8f86 \u672c\u8eab \u7684 \u78b0\u649e \u5668 \u7f51\u683c \u3002","title":"4 - \u6dfb\u52a0 \u7f51\u683c \u4f5c\u4e3a \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#_3","text":"\u91cd\u8981 \u672c \u6559\u7a0b \u57fa\u4e8e yankagan \u7684 \u8d21\u732e \uff01 \u8d21\u732e \u8d21\u732e\u8005 \u8fd8 \u5e0c\u671b \u611f\u8c22 Francisco E \u5173\u4e8e \u5982\u4f55 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u7684 \u6559\u7a0b \u3002 \u8be5 \u89c6\u9891 \u5c55\u793a \u4e86 \u9075\u5faa \u672c \u6559\u7a0b \u540e \u6240 \u53d6\u5f97 \u7684 \u7ed3\u679c \u3002","title":"\u7269\u7406 \u78b0\u649e \u4f53"},{"location":"tuto_D_generate_colliders/#0-","text":"\u5728 Linux \u6216 Windows \u4e0a \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u3002 \u53ef \u4ece \u5b98\u65b9 \u7f51\u7ad9 \u5b98\u65b9\u7f51 \u5b98\u65b9\u7f51\u7ad9 \u514d\u8d39 \u83b7\u53d6 Blender 2.80 \u6216 \u66f4\u65b0 \u7248\u672c \uff08 \u5f00\u6e90 3D \u5efa\u6a21 \u8f6f\u4ef6 \uff09 \u3002 \u6309\u7167 \u6b64\u5904 \u7684 \u8bf4\u660e \u4f7f\u7528 Blender \u7684 VHACD \u63d2\u4ef6 \u3002 \u8be5 \u63d2\u4ef6 \u4f7f\u7528 \u51f8\u5305 \u96c6\u5408 \u81ea\u52a8 \u521b\u5efa \u9009\u5b9a \u5bf9\u8c61 \u7684 \u8fd1\u4f3c \u8fd1\u4f3c\u503c \u3002 \u9605\u8bfb \u66f4 \u591a \u3002 \u7b14\u8bb0 \u8fd9\u4e2a \u7cfb\u5217 \u548c Udemy \u8bfe\u7a0b \u5bf9\u4e8e \u65b0\u624b \u6765\u8bf4 \u53ef\u80fd \u662f \u4e00\u4e2a \u5f88 \u597d \u7684 Blender \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \u3002","title":"0 - \u5148\u51b3\u6761\u4ef6"},{"location":"tuto_D_generate_colliders/#1-","text":"\u7b2c 1 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u6dfb\u52a0 \u8f66\u8f6e \u7684 \u78b0\u649e \u8fb9\u754c \u3002 \u4ee5\u4e0b \u89c6\u9891 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8fd9\u4e9b \u6b65\u9aa4 \u3002","title":"1 - \u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u5b9a\u4e49 \u8f6e\u5b50 \u7684 \u81ea\u5b9a\u4e49 \u78b0\u649e"},{"location":"tuto_D_generate_colliders/#2-fbx","text":"\u7b2c 2 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u3002 2.1 \u8f6c \u5230 Content / Carla / Static / Vehicles / 4Wheeled / < model _ of _ vehicle > \u3002 2.2 \u5728 SM _ < model _ of _ vehicle > \u70b9\u51fb right - click \uff0c \u5c06 \u8f66\u8f86 \u7f51\u683c \u5bfc\u51fa \u4e3a FBX \u3002","title":"2 - \u5c06 \u8f66\u8f86 \u5bfc\u51fa \u4e3a FBX"},{"location":"tuto_D_generate_colliders/#3-4-blender","text":"\u7b2c 3 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 FBX \u6587\u4ef6 \u5bfc\u5165 Blender \u3002 \u7b2c 4 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u6dfb\u52a0 \u51f8\u5305 \u7f51\u683c \u4ee5 \u5f62\u6210 \u65b0 \u7684 \u78b0\u649e \u8fb9\u754c \uff08 \u865a\u5e7b \u5f15\u64ce \u5bf9 \u8ba1\u7b97 \u6548\u7387 \u7684 \u8981\u6c42 \uff09 \u3002 \u8fd9\u662f \u6700\u96be \u7684 \u4e00\u6b65 \u3002 \u5982\u679c \u9009\u62e9 \u6574\u8f86 \u8f66 \uff0c VHACD \u521b\u5efa \u7684 \u78b0\u649e \u8fb9\u754c \u5c06 \u4e0d \u7cbe\u786e \u4e14 \u6df7\u4e71 \u3002 \u5b83 \u5c06 \u5305\u542b \u950b\u5229 \u7684 \u8fb9\u7f18 \uff0c \u8fd9\u4f1a \u6270\u4e71 \u9053\u8def \u4e0a \u7684 \u884c\u9a76 \u3002 \u8f6e\u5b50 \u5468\u56f4 \u8981 \u6709 \u5149\u6ed1 \u7684 \u8fb9\u754c \uff0c \u8fd9 \u4e00\u70b9 \u5f88 \u91cd\u8981 \u3002 \u5728 \u8f66 \u8eab\u4e0a \u4f7f\u7528 \u51f8 \u5206\u89e3 \uff0c \u540e\u89c6 \u540e\u89c6\u955c \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u4ecd\u7136 \u4e0d \u6b63\u786e \u3002 \u5bf9\u4e8e \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u6765\u8bf4 \uff0c \u8f66\u8f86 \u7684 \u7ec6\u8282 \u975e\u5e38 \u91cd\u8981 \u3002 \u7531\u4e8e \u4e0a\u8ff0 \u539f\u56e0 \uff0c \u8fd9\u4e9b \u6b65\u9aa4 \u88ab \u5206\u4e3a \u4e24\u4e2a \u90e8\u5206 \u3002 4.1 \u4f7f\u7528 VHACD \u5de5\u5177 \u5207 \u51fa \u8f66\u8f6e \u7684 \u5e95\u90e8 \u3001 \u4fa7\u89c6 \u955c \u548c \u8f66\u8eab \u7684 \u9876\u90e8 \uff0c \u4ee5 \u521b\u5efa \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8fb9\u754c \u3002 \u4f7f\u7528 VHACD \u5de5\u5177 \u526a\u6389 \u6c7d\u8f66 \u7684 \u4e0b \u534a \u90e8\u5206 \u4ee5 \u521b\u5efa \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u8fb9\u754c \uff08 \u6c7d\u8f66 \u7684 \u9876\u90e8 \uff09 \u3002 4.2 \u4f7f\u7528 VHACD \u5de5\u5177 \u4e3a \u540e\u89c6 \u540e\u89c6\u955c \u521b\u5efa \u5355\u72ec \u7684 \u8fb9\u754c \u3002 \u8b66\u544a \u547d\u540d \u5bf9\u8c61 \u65f6\u8981 \u975e\u5e38 \u5c0f\u5fc3 \u3002 \u6bcf\u4e2a \u8fb9\u754c \u5e94 \u4ee5 UCX _ \u5f00\u5934 \uff0c \u5176\u4f59 \u540d\u79f0 \u5fc5\u987b \u4e0e \u539f\u59cb \u7f51\u683c \u5b8c\u5168 \u76f8\u540c \u3002","title":"3 \u5230 4 - \u5bfc\u5165\u5230 Blender \u5e76 \u521b\u5efa \u81ea\u5b9a\u4e49 \u8fb9\u754c"},{"location":"tuto_D_generate_colliders/#5-blender-fbx","text":"\u7b2c 5 \u6b65 . ( \u5728 Blender \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u8fb9\u754c \u5bfc\u51fa \u5230 FBX \u6587\u4ef6 \u4e2d \u3002 5.1 \u4ec5 \u9009\u62e9 \u539f\u59cb \u8f66\u8f86 \u548c \u6240\u6709 \u65b0 \u6dfb\u52a0 \u7684 \u7269\u4f53 \u8fdb\u884c \u78b0\u649e \u3002 5.2 \u5728 \u5bfc\u51fa \u83dc\u5355 \u4e2d \uff0c \u9009\u4e2d selected objects \u5e76 \u4ec5 \u9009\u62e9 \u201c Mesh \u201d \u3002","title":"5 - \u4ece Blender \u5bfc\u51fa \u5230 FBX"},{"location":"tuto_D_generate_colliders/#6-8-","text":"\u7b2c 6 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u65b0 FBX \u4f5c\u4e3a \u865a\u5e7b \u8d44\u6e90 \u6587\u4ef6 \uff08 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \uff09 \u5bfc\u5165 Carla \u3002 \u7b2c 7 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u5c06 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u78b0\u649e \u5668 \u5bfc\u5165 \u5bfc\u5165\u5230 \u7279\u5b9a \u8f66\u8f86 \u7684 \u7269\u7406 \u8d44\u6e90 \u4e2d \uff0c \u4ee5\u4fbf \u5c06 \u5176 \u7528\u4e8e \u8ba1\u7b97 \u3002 \u7b2c 8 \u6b65 . ( \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d ) \u2014 \u521b\u5efa \u8fde\u63a5 \u4e0d\u540c \u5173\u8282 \u7684 \u7ea6\u675f \u5e76 \u5b9a\u4e49 \u6240\u6709 \u90e8\u4ef6 \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u66f4\u6539 Carla \u4e2d \u8f66\u8f86 \u7684 \u9ed8\u8ba4 \u78b0\u649e \u5668 \u7684 \u603b\u7ed3 \u3002 \u6253\u5f00 Carla \u5e76 \u95f2\u901b \u4e00\u4f1a \u4f1a\u513f \u4e00\u4f1a\u513f \u3002 \u5982\u679c \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"6 \u5230 8 - \u5bfc\u5165 \u78b0\u649e \u4f53 \u5e76 \u5b9a\u4e49 \u7269\u7406"},{"location":"tuto_D_make_release/","text":"\u5982\u4f55 \u53d1\u5e03 \u672c \u6587\u6863 \u9002\u7528 \u4e8e \u60f3\u8981 \u53d1\u5e03 \u65b0 \u7248\u672c \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u3002 \u786e\u4fdd \u5185\u5bb9 \u662f \u6700\u65b0 \u7684 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u5347\u7ea7 \u5185\u5bb9 \u3002 \u5fc5\u8981 \u65f6 \u589e\u52a0 Carla \u7248\u672c \u3002 \u589e\u52a0 \u4ee5\u4e0b \u6587\u4ef6 \u4e2d \u7684 \u7248\u672c \uff1a DefaultGame . ini , Carla . uplugin , setup . py , ContentVersions . txt \u3002 Grep \u67e5\u770b \u5f53\u524d \u7248\u672c \uff0c \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4e0d\u4f1a \u9519\u8fc7 \u4efb\u4f55 \u53c2\u8003 \u3002 \u6e05\u9664 CHANGELOG . md \u3002 \u786e\u4fdd \u53d8\u66f4 \u65e5\u5fd7 \u662f \u6700\u65b0 \u7684 \uff0c \u5fc5\u8981 \u65f6 \u91cd\u5199 \u5e76 \u91cd\u65b0 \u7ec4\u7ec7 \uff1b \u8003\u8651 \u54ea\u4e9b \u9879\u76ee \u54ea\u4e9b\u9879\u76ee \u5bf9 \u7528\u6237 \u6765\u8bf4 \u66f4 \u91cd\u8981 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u63d0\u4ea4 \u6240\u6709 \u66f4\u6539 \u540e \uff0c \u6dfb\u52a0 \u4e00\u4e2a \u65b0 \u6807\u7b7e git tag - a X . X . X \uff08 \u7528 \u6700\u65b0 \u7248\u672c \u66ff\u6362 X . X . X \uff09 \u3002 \u6dfb\u52a0 \u6b64 \u7248\u672c \u7684 \u53d8\u66f4 \u65e5\u5fd7 \u4f5c\u4e3a \u6807\u7b7e \u6d88\u606f \u3002 \u6807\u7b7e \u5185\u5bb9 \u4ed3\u5e93 \u3002 \u5728 \u786e\u5207 \u7684 \u63d0\u4ea4 \u5904 \u5c06 \u7c7b\u4f3c \u7684 \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \uff0c \u5982 ContentVersions . txt \u4e2d \u3002 \u63a8\u9001 \u66f4\u6539 \u3002 \u5c06 \u6240\u6709 \u66f4\u6539 \u63a8\u9001 \u5230 \u4e24\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u4ee5 \u63a8\u9001 \u60a8 \u53ef\u80fd \u9700\u8981 \u4f7f\u7528 git push -- tags \u7684 \u6807\u7b7e \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u7f16\u8f91 GitHub \u7248\u672c \u3002 \u8f6c \u5230 GitHub \u53d1\u5e03 \u5e76 \u5728 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u6807\u7b7e \u4e4b\u4e0a \u521b\u5efa \u4e00\u4e2a \u65b0 \u7248\u672c \u3002 \u7b49\u5230 Jenkins \u5b8c\u6210 \u53d1\u5e03 \u6700\u65b0 \u7248\u672c \u7684 \u6784\u5efa \uff0c \u5e76 \u5c06 \u4e0b\u8f7d \u94fe\u63a5 \u6dfb\u52a0 \u5230 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u7248\u672c \u3002 \u53d1\u5e03 \u53ef \u6267\u884c \u6e38\u620f \u5b89\u88c5 pyinstaller \uff1a pip install pyinstaller \u6216 \u5b89\u88c5 \u56fe\u5f62 \u7a97\u53e3 \u6253\u5305 \u5de5\u5177 \uff1a pip install auto - py - to - exe \u7136\u540e \u8fd0\u884c auto - py - to - exe \u3002 \u8bbe\u8ba1 \u53c2\u8003 BeamNG \u95ee\u9898 \u70b9\u51fb \u6253\u5305 \u540e \u7684 \u6587\u4ef6 \u51fa\u73b0 \u9519\u8bef \uff1a TypeError : expected str , bytes or os . PathLike object , not _ io . BytesIO \u89e3\u51b3 \uff1a pygame . font . Font ( pygame . font . get _ default _ font ( ) , 20 ) \u83b7\u5f97 \u7684 \u5b57\u4f53 \u6587\u4ef6 \u4e3a freesansbold . ttf \uff0c \u6700\u540e \u5c06 \u5b57\u4f53 \u6587\u4ef6 \u62f7\u8d1d \u62f7\u8d1d\u5230 \u548c exe \u6587\u4ef6 \u76f8\u540c \u7684 \u8def\u5f84 \uff0c \u7136\u540e \u6267\u884c \u5373\u53ef \u3002","title":"\u53d1\u5e03 \u7248\u672c"},{"location":"tuto_D_make_release/#_1","text":"\u672c \u6587\u6863 \u9002\u7528 \u4e8e \u60f3\u8981 \u53d1\u5e03 \u65b0 \u7248\u672c \u7684 \u5f00\u53d1 \u53d1\u4eba \u4eba\u5458 \u5f00\u53d1\u4eba\u5458 \u3002 \u786e\u4fdd \u5185\u5bb9 \u662f \u6700\u65b0 \u7684 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u5347\u7ea7 \u5185\u5bb9 \u3002 \u5fc5\u8981 \u65f6 \u589e\u52a0 Carla \u7248\u672c \u3002 \u589e\u52a0 \u4ee5\u4e0b \u6587\u4ef6 \u4e2d \u7684 \u7248\u672c \uff1a DefaultGame . ini , Carla . uplugin , setup . py , ContentVersions . txt \u3002 Grep \u67e5\u770b \u5f53\u524d \u7248\u672c \uff0c \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4e0d\u4f1a \u9519\u8fc7 \u4efb\u4f55 \u53c2\u8003 \u3002 \u6e05\u9664 CHANGELOG . md \u3002 \u786e\u4fdd \u53d8\u66f4 \u65e5\u5fd7 \u662f \u6700\u65b0 \u7684 \uff0c \u5fc5\u8981 \u65f6 \u91cd\u5199 \u5e76 \u91cd\u65b0 \u7ec4\u7ec7 \uff1b \u8003\u8651 \u54ea\u4e9b \u9879\u76ee \u54ea\u4e9b\u9879\u76ee \u5bf9 \u7528\u6237 \u6765\u8bf4 \u66f4 \u91cd\u8981 \u3002 \u63d0\u4ea4 \u66f4\u6539 \u5e76 \u6dfb\u52a0 \u65b0 \u6807\u7b7e \u3002 \u63d0\u4ea4 \u6240\u6709 \u66f4\u6539 \u540e \uff0c \u6dfb\u52a0 \u4e00\u4e2a \u65b0 \u6807\u7b7e git tag - a X . X . X \uff08 \u7528 \u6700\u65b0 \u7248\u672c \u66ff\u6362 X . X . X \uff09 \u3002 \u6dfb\u52a0 \u6b64 \u7248\u672c \u7684 \u53d8\u66f4 \u65e5\u5fd7 \u4f5c\u4e3a \u6807\u7b7e \u6d88\u606f \u3002 \u6807\u7b7e \u5185\u5bb9 \u4ed3\u5e93 \u3002 \u5728 \u786e\u5207 \u7684 \u63d0\u4ea4 \u5904 \u5c06 \u7c7b\u4f3c \u7684 \u6807\u7b7e \u6dfb\u52a0 \u5230 \u5185\u5bb9 \u5b58\u50a8 \u5e93 \uff0c \u5982 ContentVersions . txt \u4e2d \u3002 \u63a8\u9001 \u66f4\u6539 \u3002 \u5c06 \u6240\u6709 \u66f4\u6539 \u63a8\u9001 \u5230 \u4e24\u4e2a \u5b58\u50a8 \u5e93 \uff0c \u4ee5 \u63a8\u9001 \u60a8 \u53ef\u80fd \u9700\u8981 \u4f7f\u7528 git push -- tags \u7684 \u6807\u7b7e \u3002 \u5982 \u6709 \u5fc5\u8981 \uff0c \u521b\u5efa \u62c9\u53d6 \u8bf7\u6c42 \u3002 \u7f16\u8f91 GitHub \u7248\u672c \u3002 \u8f6c \u5230 GitHub \u53d1\u5e03 \u5e76 \u5728 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u6807\u7b7e \u4e4b\u4e0a \u521b\u5efa \u4e00\u4e2a \u65b0 \u7248\u672c \u3002 \u7b49\u5230 Jenkins \u5b8c\u6210 \u53d1\u5e03 \u6700\u65b0 \u7248\u672c \u7684 \u6784\u5efa \uff0c \u5e76 \u5c06 \u4e0b\u8f7d \u94fe\u63a5 \u6dfb\u52a0 \u5230 \u65b0\u521b \u521b\u5efa \u65b0\u521b\u5efa \u7684 \u7248\u672c \u3002","title":"\u5982\u4f55 \u53d1\u5e03"},{"location":"tuto_D_make_release/#_2","text":"\u5b89\u88c5 pyinstaller \uff1a pip install pyinstaller \u6216 \u5b89\u88c5 \u56fe\u5f62 \u7a97\u53e3 \u6253\u5305 \u5de5\u5177 \uff1a pip install auto - py - to - exe \u7136\u540e \u8fd0\u884c auto - py - to - exe \u3002","title":"\u53d1\u5e03 \u53ef \u6267\u884c \u6e38\u620f"},{"location":"tuto_D_make_release/#_3","text":"\u53c2\u8003 BeamNG","title":"\u8bbe\u8ba1"},{"location":"tuto_D_make_release/#_4","text":"\u70b9\u51fb \u6253\u5305 \u540e \u7684 \u6587\u4ef6 \u51fa\u73b0 \u9519\u8bef \uff1a TypeError : expected str , bytes or os . PathLike object , not _ io . BytesIO \u89e3\u51b3 \uff1a pygame . font . Font ( pygame . font . get _ default _ font ( ) , 20 ) \u83b7\u5f97 \u7684 \u5b57\u4f53 \u6587\u4ef6 \u4e3a freesansbold . ttf \uff0c \u6700\u540e \u5c06 \u5b57\u4f53 \u6587\u4ef6 \u62f7\u8d1d \u62f7\u8d1d\u5230 \u548c exe \u6587\u4ef6 \u76f8\u540c \u7684 \u8def\u5f84 \uff0c \u7136\u540e \u6267\u884c \u5373\u53ef \u3002","title":"\u95ee\u9898"},{"location":"tuto_D_windows_debug/","text":"\u5728 Windows \u4e0a \u8fdb\u884c Carla \u7684 \u8c03\u8bd5 \u865a\u5e7b \u5f15\u64ce Carla \u63d2\u4ef6 \u7684 \u8c03\u8bd5 \u8fdb\u5165 \u76ee\u5f55 carla / Unreal / CarlaUE4 / \uff0c \u53f3\u952e \u6587\u4ef6 CarlaUE4 . uproject \uff0c \u9009\u62e9 \u8fd0\u884c Generate Visual Studio project files \uff0c \u5728 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e2d\u5c06 \u4f1a \u751f\u6210 VS \u7684 \u5de5\u7a0b \u6587\u4ef6 \uff0c \u53cc\u51fb \u6253\u5f00 CarlaUE4 . sln \u3002 \u7b14\u8bb0 \u5982\u679c \u53f3\u952e \u83dc\u5355 \u4e2d\u672a \u51fa\u73b0 Generate Visual Studio project files \u9009\u9879 \uff0c \u5219 \u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u76ee\u5f55 \u4e2d\u8fd0 \u53cc\u51fb \u6267\u884c engine \\ Engine \\ Binaries \\ Win64 \\ UnrealVersionSelector . exe \uff0c \u5c06 \u865a\u5e7b \u5f15\u64ce \u8f6f\u4ef6 \u6ce8\u518c \u5230 \u7cfb\u7edf \u4e2d \u3002 \uff08 \u8c03\u8bd5 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \uff09 \u5728 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u4e2d \u5c55\u5f00 Games - > CarlaUE4 \uff0c \u5728 \u60f3\u8981 \u67e5\u770b \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u884c \u7684 \u6700 \u5de6\u4fa7 \u5355\u51fb \u589e\u52a0 \u65ad\u70b9 \uff08 \u6bd4\u5982 \uff1a CarlaUE4 - > Plugins - > CarlaTools - > Source - > CarlaTools - > Private \u7684 OpenDriveToMap . cpp \u7684 GenerateTileStandalone ( ) \uff09 \uff0c \u5728 \u83dc\u5355 \u8fd0\u884c \u8c03\u8bd5 ( D ) - > \u5f00\u59cb \u8c03\u8bd5 ( S ) \uff0c \u7a0b\u5e8f \u5c06 \u5728 \u65ad\u70b9 \u51fa \u6682\u505c \u3002 \u901a\u8fc7 \u8c03\u5f0f ( D ) - > \u7a97\u53e3 ( W ) - > \u76d1\u89c6 ( W ) - > \u76d1\u89c6 1 \u6253\u5f00 \u53d8\u91cf \u76d1\u89c6 \u7a97\u53e3 \uff0c \u67e5\u770b \u53d8\u91cf \u91cf\u503c \u53d8\u91cf\u503c \u662f\u5426 \u5f02\u5e38 \u3002 \u8c03\u8bd5 Carla \u670d\u52a1 \u670d\u52a1\u7aef \uff1a \u65ad\u70b9 \u6253 \u5728 Carla / Game / CarlaEngine . cpp \u7684 \u7b2c 87 \u884c \uff0c \u7136\u540e \u5f00\u59cb \u8c03\u5f0f \uff0c \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u70b9\u51fb \u8fd0\u884c \u5219 \u4f1a \u5728 \u65ad\u70b9 \u5904 \u505c\u6b62 \u3002 \u914d\u7f6e \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5305\u62ec \uff1a Debug : \u6e38\u620f \u548c \u5f15\u64ce \u5168\u90fd \u53ef\u4ee5 \u8c03\u8bd5 \uff0c \u65e0 \u4f18\u5316 \uff0c \u901f\u5ea6 \u901f\u5ea6\u6162 \uff0c \u6ca1\u6709 Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \uff0c \u8d44\u6e90 \u9700\u8981 Cook \u3002 Debug Editor \uff1a \u6e38\u620f \u548c \u5f15\u64ce \u5168\u90e8 \u53ef\u4ee5 \u8c03\u8bd5 \uff0c \u65e0 \u4f18\u5316 \uff0c \u53ef\u4ee5 \u4f7f\u7528 Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \uff0c \u8d44\u6e90 \u4e0d \u9700\u8981 Cook \uff0c \u53ef \u76f4\u63a5 \u542f\u52a8 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \uff08 \u7528 generate _ traffic . py \u8c03\u8bd5 \u4f1a \u5d29\u6e83 \uff0c manual _ control . py \u53ef\u4ee5 \uff09 DebugGame \uff1a \u6e38\u620f \u4ee3\u7801 \u53ef \u8c03\u8bd5 \u65e0 \u4f18\u5316 \uff0c Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \u4e0d\u53ef \u4f7f\u7528 \uff0c \u5f15\u64ce \u4e0d\u53ef \u8c03\u8bd5 \uff0c \u8d44\u6e90 \u9700\u8981 Cook \u3002 DebugGame Editor \uff1a \u6e38\u620f \u4ee3\u7801 \u53ef \u8c03\u8bd5 \u65e0 \u4f18\u5316 \uff0c \u53ef\u4ee5 \u4f7f\u7528 Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \uff0c \u5f15\u64ce \u4e0d\u53ef \u8c03\u8bd5 \uff0c \u8d44\u6e90 \u4e0d \u9700\u8981 Cook \u3002 Development \uff1a \u6e38\u620f \u3001 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3001 \u5f15\u64ce \u90fd \u4e0d\u53ef \u8c03\u8bd5 \uff0c Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \u4e0d\u53ef \u4f7f\u7528 \uff0c \u8d44\u6e90 \u9700\u8981 Cook \u3002 Development Editor \uff1a \u6e38\u620f \u3001 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3001 \u5f15\u64ce \u90fd \u4e0d\u53ef \u8c03\u8bd5 \uff0c Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \u53ef \u4f7f\u7528 \uff0c \u8d44\u6e90 \u4e0d \u9700\u8981 Cook \u3002 \uff08 \u9ed8\u8ba4 \uff09 Shipping \uff1a \u53d1\u884c \u53d1\u884c\u7248 \uff0c \u6781\u81f4 \u4f18\u5316 \uff0c \u4f30\u8ba1 \u8c03\u8bd5 \u4fe1\u606f \u8c03\u8bd5\u4fe1\u606f \u90fd \u6ca1 \u4e86 \u3002 Test \uff1a \u5305\u542b \u989d\u5916 \u7684 \u6d4b\u8bd5 \u4ee3\u7801 \u6d4b\u8bd5\u4ee3\u7801 \u3002 \u8c03\u8bd5 LibCarla \u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u670d\u52a1 \u670d\u52a1\u7aef \u8c03\u7528 \u5b9e\u73b0 \u7684 \u529f\u80fd \u3002 * \u811a\u672c BuildLibCarla . bat \u8c03\u7528 cmake \u547d\u4ee4 \u8fdb\u884c \u6784\u5efa \uff1a cmake - G % GENERATOR% % PLATFORM% ^ - DCMAKE _ BUILD _ TYPE = Server ^ - DCMAKE _ CXX _ FLAGS _ RELEASE = \" / MD / MP \" ^ - DCMAKE _ INSTALL _ PREFIX = \" % LIBCARLA _ SERVER _ INSTALL _ PATH : \\ = / % \" ^ \" % ROOT _ PATH% \" \u5176\u4e2d \uff0c - G \u8868\u793a \u6307\u5b9a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \uff08 set GENERATOR = \" Visual Studio 16 2019 \" \u3001 set PLATFORM = - A x64 \uff09 \uff1b - DCMAKE _ BUILD _ TYPE \u7684 \u53ef\u9009 \u9009\u9879 \u53ef\u9009\u9879 \u5305\u62ec \uff1a Client , Server , Pytorch , ros2 \uff1b - D CMAKE _ BUILD _ TYPE = \" Debug \" \u53ef\u9009 \u53ef\u9009\u503c \u5305\u62ec \uff1a Debug , Release , RelWithDebInfo , MinSizeRel \u3002 CMAKE _ CXX _ FLAGS _ RELEASE \u8bbe\u7f6e \u7f16\u8bd1 \u7c7b\u578b Release \u65f6 \u7684 \u7f16\u8bd1 \u9009\u9879 \uff1b \u8c03\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5728 Build \u76ee\u5f55 \u4e0b \u751f\u6210 Makefile \u6587\u4ef6 \uff1a cmake -- build . -- config Release -- target install | findstr / V \" Up - to - date : \" \u4f7f\u7528 VS \u6253\u5f00 Build \\ libcarla - visualstudio \\ CARLA . sln \u3002 \u4f7f\u7528 \u547d\u4ee4 make client \u6253\u5f00 \u7684 \u5c31\u662f LibCarla \\ cmake \\ client \\ CMakeLists . txt \u5bf9\u5e94 \u7684 \u9879\u76ee \u3002 \uff08 \u4f7f\u7528 make server \u6253\u5f00 \u7684 \u5219 \u662f LibCarla \\ cmake \\ server \\ CMakeLists . txt \u5bf9\u5e94 \u7684 \u9879\u76ee \uff09 \uff08 Build \u76ee\u5f55 \u4e0b \u8fd8 \u5305\u62ec osm2odr - visualstudio / SUMO . sln \u7684 VS \u5de5\u7a0b \uff09 \u3002 \u53f3\u952e carla _ client _ debug \u5c06 \u5176 \u8bbe \u4e3a \u542f\u52a8 \u9879\u76ee \u3002 \u9644\u7740 \u5230 Python \u7a0b\u5e8f \u542f\u52a8 \u8c03\u8bd5 \u540e \uff0c \u51fa\u73b0 \u5f53\u524d \u4e0d\u4f1a \u547d \u4e2d\u65ad \u65ad\u70b9 \u4e2d\u65ad\u70b9 \u8fd8 \u6ca1\u6709 \u4e3a \u8be5 \u6587\u6863 \u52a0\u8f7d \u4efb\u4f55 \u7b26\u53f7 \u7684 \u8b66\u544a \u3002 \u89e3\u51b3 \u6ce8\u610f \u5728 vs2019 \u4e2d \u751f\u6210 carla _ client _ debug \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u65f6 \u51fa\u73b0 fatal error C1189 : # error : \" Incompatible build options \" \u9519\u8bef \uff0c \u56e0\u4e3a \u5728 \u4e0d \u6307\u5b9a \u8c03\u8bd5 \u8fd0\u884c \u65f6 \u7684 \u60c5\u51b5 \u4e0b \u4f7f\u7528 / rtc \u9009\u9879 \u5c06 \u5bfc\u81f4 \u94fe\u63a5 \u5668 \u9519\u8bef \uff0c \u5219 \u9700\u8981 \u5c06 \u201c \u9879\u76ee \u5c5e\u6027 -- > C++ -- > \u57fa\u672c \u8fd0\u884c \u65f6 \u68c0\u67e5 \u201d \u6539\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u7136\u540e \u91cd\u65b0 \u751f\u6210 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u3002 \u5176\u4ed6 \u8bf4\u660e boost _ python \u5e93 \u6240\u5728 \u7684 \u76ee\u5f55 \u4e3a \uff1a carla \\ Build \\ boost - 1.80 . 0 - install \\ lib \\ libboost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib \uff0c mt - x64 \u4e4b\u95f4 \u5e26\u6709 gd \u7684 \u662f \u5bf9\u5e94 \u7684 \u8c03\u8bd5 \u7248\u672c \u3002 \u793a\u4f8b \u53c2\u8003 \u94fe\u63a5 \u3002 VS2019 \u6253\u5f00 CarlaUE4 \u7684 Cmake \u5de5\u7a0b windows \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u4e0b \u901a\u8fc7 vs2019 \u6253\u5f00 \u5e76 \u7f16\u8bd1 carla \uff1a \u5f00 Carla \u7684 CMake \u9879\u76ee \uff08 \u53c2\u8003 CMake \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \uff09 \uff1a \u4ece VS \u7684 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 File -- > Open -- > CMake , \u5728 \u5bf9\u8bdd \u5bf9\u8bdd\u6846 \u4e2d \u627e\u5230 Carla \u6240\u5728 \u7684 \u672c\u5730 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff08 \u5305\u542b CMakeLists \uff09 \uff0c \u9009\u62e9 CMakeLists . txt \u6587\u4ef6 \uff0c \u6253\u5f00 \uff0c Visual studio \u4f1a \u81ea\u52a8 \u52a0\u8f7d \u6b64 \u4ed3\u5e93 \uff0c \u89e3\u6790 CMakeLists . txt \u6587\u4ef6 \uff0c \u5e76 \u63d0\u53d6 \u5176 \u914d\u7f6e \u548c \u53d8\u91cf \u4fe1\u606f \u3002 \u89e3\u6790 \u5b8c\u6210 \uff08 \u9700\u8981 \u4f1a\u513f \u7b49\u4f1a\u513f \u6216\u8005 \u91cd\u542f \uff09 \u4f1a \u4ece \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668 \u4e2d \u770b\u5230 . cpp \u6587\u4ef6 \u3002 \u4fee\u6539 \u914d\u7f6e \uff1a \u70b9\u51fb x64 - Debug \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u7684 \u7ba1\u7406 \u914d\u7f6e \uff0c \u5e76 \u5728 \u5f39\u51fa \u7684 \u754c\u9762 \u70b9\u51fb \u7f16\u8f91 JSON \uff08 \u8be5 \u8fc7\u7a0b \u5728 \u5de5\u7a0b \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u751f\u6210 CMakeSettings . json \uff09 \uff0c \u5c06 \u6240 \u9700\u8981 \u6784\u5efa \u7684 \u7c7b\u578b \u6539\u4e3a \u60f3 \u7f16\u8bd1 \u7684 \u7c7b\u578b \uff0c \u6bd4\u5982 Client \u3002 \u751f\u6210 \uff1a \u70b9\u51fb \u83dc\u5355 \u83dc\u5355\u680f \u751f\u6210 - \u5168\u90e8 \u751f\u6210 \u6216 \u90e8\u5206 \u751f\u6210 \u5373\u53ef \u3002 \u5bfc\u5165 \u5d29\u6e83 \u95ee\u9898 \u4f8b\u5982 \uff0c \u5bfc\u5165 \u94fe\u63a5 \uff1a https : / / overpass - api . de / api / map ? bbox = 2.08191 , 41.49611 , 2.08268 , 41.49671 \u5c0f \u5730\u56fe \uff1a https : / / overpass - api . de / api / map ? bbox = 112.9088 , 28.2221 , 112.9172 , 28.2290 \u5927 \u5730\u56fe \uff1a https : / / overpass - api . de / api / map ? bbox = 112.8971 , 28.1976 , 112.9607 , 28.2501 \u91d1 \u91b4 \u9ad8\u901f \uff1a https : / / overpass - api . de / api / map ? bbox = 113.5293 , 27.6893 , 113.5516 , 27.7074 CarlaUE4 - > Plugins - > CarlaTools - > Source - > CarlaTools - > Private \u7684 OpenDriveToMap . cpp 463 \u884c GenerateTileStandalone ( ) \uff0c \u7136\u540e \u8c03\u7528 ExecuteTileCommandlet ( ) : UCommandlet \u662f Unreal Engine \u4e2d \u7528\u4e8e \u5b9e\u73b0 \u547d\u4ee4 \u547d\u4ee4\u884c \u64cd\u4f5c \u7684 \u57fa\u7c7b \u3002 \u5b83 \u5141\u8bb8 \u5f00\u53d1 \u5f00\u53d1\u8005 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u547d\u4ee4 \uff0c \u5e76 \u5728 \u5f15\u64ce \u542f\u52a8 \u65f6 \u6267\u884c \u8fd9\u4e9b \u547d\u4ee4 \u3002 \u8fd9\u4e2a \u7c7b \u4e3b\u8981 \u7528\u4e8e \u6269\u5c55 \u5f15\u64ce \u529f\u80fd \uff0c \u63d0\u4f9b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u5de5\u5177 \u3002 ExecuteTileCommandlet ( ) \u8c03\u7528 \u7684 \u662f carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Intermediate \\ Build \\ Win64 \\ UE4Editor \\ Inc \\ CarlaTools \\ OpenDriveToMap . gen . cpp \uff08 \u53cd\u5c04 \u6587\u4ef6 gen \uff09 194 \u884c \u7684 static FName NAME _ UOpenDriveToMap _ ExecuteTileCommandlet = FName ( TEXT ( \" ExecuteTileCommandlet \" ) ) ; void UOpenDriveToMap : : ExecuteTileCommandlet ( ) { ProcessEvent ( FindFunctionChecked ( NAME _ UOpenDriveToMap _ ExecuteTileCommandlet ) , NULL ) ; } \u627e\u5230 \u540d\u4e3a \u201c ExecuteTileCommandlet \u201d \u7684 UFunction \u5bf9\u8c61 \uff1b \u6267\u884c \u201c ProcessEvent \u201d \u51fd\u6570 \uff0c \u7136\u540e \u4ece \u5168\u5c40 \u51fd\u6570 \u6620\u5c04 \u8868 \u627e\u5230 \u5bf9\u5e94 \u7684 \u51fd\u6570 \u6307\u9488 \u51fd\u6570\u6307\u9488 \u6267\u884c \uff08 \u5229\u7528 \u51fd\u6570 \u540d \u8c03\u7528 UFUNCTION \u51fd\u6570 \uff09 \u3002 \u84dd\u56fe \u7684 \u5b57\u8282 \u7801 \uff1a \u5728 engine \\ Engine \\ Source \\ Runtime \\ CoreUObject \\ Public \\ UObject \\ Script . h \u8fd9\u4e2a \u6587\u4ef6 \u4e2d\u6709 \u4e00\u4e2a enum EExprToken \uff0c \u8fd9\u4e2a \u679a\u4e3e \u5c31\u662f \u84dd\u56fe \u7684 \u5b57\u8282 \u7801 \u5b9a\u4e49 \u3002 \u5f15\u64ce \u4e2d \u4f7f\u7528 \u4e00\u4e2a \u5168\u5c40 \u67e5\u627e \u8868 \uff0c \u628a \u4e0a\u8ff0 \u5b57\u8282 \u7801 \u6620\u5c04 \u5230 \u51fd\u6570 \u6307\u9488 \u51fd\u6570\u6307\u9488 \u3002 \u5728 \u8fd0\u884c \u65f6 \uff0c \u4ece \u4e00\u4e2a \u5b57\u8282 \u7801 \u6570\u7ec4 \u4e2d \u9010\u4e2a \u53d6\u51fa \u5b57\u8282 \u7801 \uff0c \u5e76 \u67e5\u627e \u51fd\u6570 \u6307\u9488 \u51fd\u6570\u6307\u9488 \uff0c \u8fdb\u884c \u8c03\u7528 \uff0c \u4e5f \u5c31 \u5b8c\u6210 \u4e86 \u6240\u8c13 \u7684 \u201c \u5b57\u8282 \u7801 \u89e3\u91ca \u6267\u884c \u201d \u7684 \u8fc7\u7a0b \u3002 \u6539\u4e3a void UOpenDriveToMap : : GenerateTileStandalone ( ) { UE _ LOG ( LogCarlaToolsMapGenerator , Log , TEXT ( \" UOpenDriveToMap : : GenerateTileStandalone Function called \" ) ) ; / / ExecuteTileCommandlet ( ) ; GenerateTile ( ) ; UEditorLoadingAndSavingUtils : : SaveDirtyPackages ( true , true ) ; UEditorLevelLibrary : : SaveCurrentLevel ( ) ; } \u6ce8\u610f \uff1a \u5927 \u5730\u56fe \u4e5f \u53ea\u80fd \u751f\u6210 \u4e00\u5c0f \u5c0f\u7247 \u4e00\u5c0f\u7247 \u5730\u56fe \u3002 \u62a5\u9519 \u4fe1\u606f \uff1a D : \\ work \\ workspace \\ engine / Engine / Binanes \\ Win64 \\ UE4Editor .. / .. / .. / .. / carla / Unreal / CaraUE4 / CaraUE4 . uproject - run = GenerateTileCommandlet \" \" - FilePath = .. / .. / .. / .. / carla / Unreal / CarlaUE4 / Content / Custo [ 2024.04 . 30 - 06.58 . 10 : 090 ] [ 0 ] LogInit : Executing Class / Script / CarlaTools . GenerateTileCommandlet [ 2024.04 . 30 - 06.58 . 10 : 090 ] [ 0 ] LogOutputDevice : Warning : ( 0 frames ) \u5d29\u6e83 \u65e5\u5fd7 \uff1a LoginId : bc22576a452b36c1831fe8942b55e57a EpicAccountId : 77cf3795af004e58a037e9c9d4a5aa0d Assertion failed : Pair ! = nullptr [ File : D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Core \\ Public \\ Containers / Map . h ] [ Line : 621 ] UE4Editor _ Core ! AssertFailedImplV ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Core \\ Private \\ Misc \\ AssertionMacros . cpp : 104 ] UE4Editor _ Core ! FDebug : : CheckVerifyFailedImpl ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Core \\ Private \\ Misc \\ AssertionMacros . cpp : 461 ] UE4Editor _ CarlaTools ! UGenerateTileCommandlet : : Main ( ) [ D : \\ work \\ workspace \\ carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ Commandlet \\ GenerateTileCommandlet . cpp : 75 ] UE4Editor ! FEngineLoop : : PreInitPostStartupScreen ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ LaunchEngineLoop . cpp : 3369 ] UE4Editor ! GuardedMain ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ Launch . cpp : 127 ] UE4Editor ! GuardedMainWrapper ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ Windows \\ LaunchWindows . cpp : 137 ] UE4Editor ! WinMain ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ Windows \\ LaunchWindows . cpp : 268 ] UE4Editor ! __ scrt _ common _ main _ seh ( ) [ d : \\ agent \\ _ work \\ 2 \\ s \\ src \\ vctools \\ crt \\ vcstartup \\ src \\ startup \\ exe _ common . inl : 288 ] kernel32 ntdll \u53ef\u77e5 \uff1a OpenDriveMap - > FilePath = ParamsMap [ \" FilePath \" ] ; \u62a5 \u7684 \u9519 \uff0c \u5e94\u8be5 \u662f \u8def\u5f84 \u4e0b . xodr \u6587\u4ef6 \u4e0d \u5b58\u5728 \u3002 \u5d29\u6e83 \u65e5\u5fd7 \u4f4d\u4e8e \uff1a engine \\ Engine \\ Binaries \\ Win64 \\ CommandletParameters . txt \u627e\u5230 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u53c2\u6570 \u4e3a \uff1a - run = GenerateTileCommandlet \" \" - F i l e P a t h = . . / . . / . . / . . / c a r l a / U n r e a l / C a r l a U E 4 / C o n t e n t / C u s t o m M a p s / t e s t _ 3 7 / O p e n D r i v e / t e s t _ 3 7 . x o d r \" \" - B a s e L e v e l N a m e = / G a m e / C u s t o m M a p s / t e s t _ 3 7 / t e s t _ 3 7 \" \" - G e o C o o r d s X = 2 7 . 6 8 9 3 0 1 \" \" - G e o C o o r d s Y = 1 1 3 . 5 2 9 2 9 7 \" \" - C T i l e X = 4 \" \" - C T i l e Y = 0 \" \" - A l l o w C o m m a n d l e t R e n d e r i n g \u53c2\u6570 \u591a \u4e86 \u5f88\u591a \u7a7a\u683c \u6b63\u786e \u5e94\u8be5 \u4e3a \uff1a D : \\ work \\ workspace \\ engine \\ Engine \\ Binaries \\ Win64 \\ UE4Editor .. / .. / .. / .. / carla / Unreal / CarlaUE4 / CarlaUE4 . uproject - run = GenerateTileCommandlet - FilePath = .. / .. / .. / .. / carla / Unreal / CarlaUE4 / Content / CustomMaps / test _ 37 / OpenDrive / test _ 37 . xodr - BaseLevelName = / Game / CustomMaps / test _ 37 / test _ 37 - GeoCoordsX = 27.689301 - GeoCoordsY = 113.529297 - CTileX = 4 - CTileY = 0 - AllowCommandletRendering D : \\ work \\ workspace \\ engine \\ Engine \\ Binaries \\ Win64 \\ UE4Editor - Cmd D : / work / workspace / carla / Unreal / CarlaUE4 / CarlaUE4 . uproject - run = GenerateTileCommandlet - FilePath = D : / work / workspace / carla / Unreal / CarlaUE4 / Content / CustomMaps / test _ 37 / OpenDrive / test _ 37 . xodr - BaseLevelName = / Game / CustomMaps / test _ 37 / test _ 37 - GeoCoordsX = 27.689301 - GeoCoordsY = 113.529297 - CTileX = 4 - CTileY = 0 - AllowCommandletRendering \u76f4\u63a5 \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u62a5\u9519 \uff08 \u5fc5\u987b \u786e\u4fdd \u4e0d\u662f Commandlet \u542f\u52a8 \uff0c \u800c \u5fc5\u987b \u662f Editor \u542f\u52a8 \uff09 \uff1a LogWindows : Error : Assertion failed : ! IsRunningCommandlet ( ) [ File : D : / work / workspace / engine / Engine / Plugins / Developer / RenderDocPlugin / Source / RenderDocPlugin / Private / SRenderDocPluginEditorExtension . cpp ] [ Line : 107 ] VS \u8c03\u8bd5 UE \u9879\u76ee \u53d8\u91cf \u5df2 \u88ab \u4f18\u5316 \u6389 \uff0c \u56e0\u800c \u4e0d\u53ef \u7528 \u3002 VS \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 DebugGammingEditor \uff0c \u7136\u540e \u5f00\u59cb \u8c03\u8bd5 \uff0c \u5c31 \u53ef\u4ee5 \u6dfb\u52a0 \u8981 \u76d1\u89c6 \u7684 \u9879 \u3002 \u95ee\u9898 \u5d29\u6e83 \u4e8e engine \\ Engine \\ Source \\ Runtime \\ CoreUObject \\ Private \\ UObject \\ ScriptCore . cpp 1990 \u884c Function - > Invoke ( this , NewStack , ReturnValueAddress ) ; \u5f39 \u51fa \u62a5\u9519 \u4fe1\u606f \u6846 \uff1a Failed to open descriptor file . / .. / .. / .. / carla / Unreal / CarlaUE4 / CarlaUE4 . uproject VS \u8df3\u8f6c \u4ee3\u7801 \u592a\u6162 \u4f9d\u8d56 boost - 1.80 . 0 Python \u5c01\u88c5 C++ \u5e93 \u8c03\u8bd5 \u3002 \u53d1\u5e03 \u5305\u542b \u6240\u6709 \u8f6f\u4ef6 \u4f9d\u8d56 \uff0c \u53cc\u51fb launch . bat \u542f\u52a8 \u8f6f\u4ef6 \u3002 VS2019 \u793e\u533a \u7248 \u5b89\u88c5 \u89e3\u538b \u5b89\u88c5 \u5b89\u88c5\u5305 \uff1a 7z x filename . zip - o . \u65b0 \u7535\u8111 \u8fd0\u884c NativeDesktop . exe \u51fa\u73b0 \u6b64 \u7248\u672c \u7684 Windows \u4e0d \u652f\u6301 \u6b64 \u4ea7\u54c1 \uff0c \u8bf7 \u5c1d\u8bd5 \u5347\u7ea7 Windows \u3002 \u6280\u5de7 \u8fdb\u884c \u51fd\u6570 \u8df3\u8f6c \u65f6 \uff0c vs \u4e00\u81f4 \u51fa\u73b0 \u6b63\u5728 \u8fdb\u884c IntelliSense \uff1a \u9009\u62e9 \u201c \u5de5\u5177 \u201d \u83dc\u5355 \u83dc\u5355\u680f \u4e0b \u7684 \u201c \u9009\u9879 \u201d \u6309\u94ae \u6253\u5f00 \u9009\u9879 \u9875\u9762 \uff0c \u627e\u5230 \u6587\u672c \u7f16\u8f91 \u6587\u672c\u7f16\u8f91 \u5668 - > C / C++ - > \u9ad8\u7ea7 , \u5728 \u53f3\u4fa7 \u7684 \u7981\u7528 IntelliSense \u4e2d \u6539\u4e3a True","title":"\u8c03\u8bd5\u7a0b\u5e8f"},{"location":"tuto_D_windows_debug/#windows-carla","text":"","title":"\u5728 Windows \u4e0a \u8fdb\u884c Carla \u7684 \u8c03\u8bd5"},{"location":"tuto_D_windows_debug/#carla","text":"\u8fdb\u5165 \u76ee\u5f55 carla / Unreal / CarlaUE4 / \uff0c \u53f3\u952e \u6587\u4ef6 CarlaUE4 . uproject \uff0c \u9009\u62e9 \u8fd0\u884c Generate Visual Studio project files \uff0c \u5728 \u5f53\u524d \u76ee\u5f55 \u5f53\u524d\u76ee\u5f55 \u4e2d\u5c06 \u4f1a \u751f\u6210 VS \u7684 \u5de5\u7a0b \u6587\u4ef6 \uff0c \u53cc\u51fb \u6253\u5f00 CarlaUE4 . sln \u3002 \u7b14\u8bb0 \u5982\u679c \u53f3\u952e \u83dc\u5355 \u4e2d\u672a \u51fa\u73b0 Generate Visual Studio project files \u9009\u9879 \uff0c \u5219 \u5230 \u865a\u5e7b \u5f15\u64ce \u7684 \u76ee\u5f55 \u4e2d\u8fd0 \u53cc\u51fb \u6267\u884c engine \\ Engine \\ Binaries \\ Win64 \\ UnrealVersionSelector . exe \uff0c \u5c06 \u865a\u5e7b \u5f15\u64ce \u8f6f\u4ef6 \u6ce8\u518c \u5230 \u7cfb\u7edf \u4e2d \u3002 \uff08 \u8c03\u8bd5 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 \uff09 \u5728 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u4e2d \u5c55\u5f00 Games - > CarlaUE4 \uff0c \u5728 \u60f3\u8981 \u67e5\u770b \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u884c \u7684 \u6700 \u5de6\u4fa7 \u5355\u51fb \u589e\u52a0 \u65ad\u70b9 \uff08 \u6bd4\u5982 \uff1a CarlaUE4 - > Plugins - > CarlaTools - > Source - > CarlaTools - > Private \u7684 OpenDriveToMap . cpp \u7684 GenerateTileStandalone ( ) \uff09 \uff0c \u5728 \u83dc\u5355 \u8fd0\u884c \u8c03\u8bd5 ( D ) - > \u5f00\u59cb \u8c03\u8bd5 ( S ) \uff0c \u7a0b\u5e8f \u5c06 \u5728 \u65ad\u70b9 \u51fa \u6682\u505c \u3002 \u901a\u8fc7 \u8c03\u5f0f ( D ) - > \u7a97\u53e3 ( W ) - > \u76d1\u89c6 ( W ) - > \u76d1\u89c6 1 \u6253\u5f00 \u53d8\u91cf \u76d1\u89c6 \u7a97\u53e3 \uff0c \u67e5\u770b \u53d8\u91cf \u91cf\u503c \u53d8\u91cf\u503c \u662f\u5426 \u5f02\u5e38 \u3002 \u8c03\u8bd5 Carla \u670d\u52a1 \u670d\u52a1\u7aef \uff1a \u65ad\u70b9 \u6253 \u5728 Carla / Game / CarlaEngine . cpp \u7684 \u7b2c 87 \u884c \uff0c \u7136\u540e \u5f00\u59cb \u8c03\u5f0f \uff0c \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u70b9\u51fb \u8fd0\u884c \u5219 \u4f1a \u5728 \u65ad\u70b9 \u5904 \u505c\u6b62 \u3002 \u914d\u7f6e \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5305\u62ec \uff1a Debug : \u6e38\u620f \u548c \u5f15\u64ce \u5168\u90fd \u53ef\u4ee5 \u8c03\u8bd5 \uff0c \u65e0 \u4f18\u5316 \uff0c \u901f\u5ea6 \u901f\u5ea6\u6162 \uff0c \u6ca1\u6709 Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \uff0c \u8d44\u6e90 \u9700\u8981 Cook \u3002 Debug Editor \uff1a \u6e38\u620f \u548c \u5f15\u64ce \u5168\u90e8 \u53ef\u4ee5 \u8c03\u8bd5 \uff0c \u65e0 \u4f18\u5316 \uff0c \u53ef\u4ee5 \u4f7f\u7528 Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \uff0c \u8d44\u6e90 \u4e0d \u9700\u8981 Cook \uff0c \u53ef \u76f4\u63a5 \u542f\u52a8 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \uff08 \u7528 generate _ traffic . py \u8c03\u8bd5 \u4f1a \u5d29\u6e83 \uff0c manual _ control . py \u53ef\u4ee5 \uff09 DebugGame \uff1a \u6e38\u620f \u4ee3\u7801 \u53ef \u8c03\u8bd5 \u65e0 \u4f18\u5316 \uff0c Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \u4e0d\u53ef \u4f7f\u7528 \uff0c \u5f15\u64ce \u4e0d\u53ef \u8c03\u8bd5 \uff0c \u8d44\u6e90 \u9700\u8981 Cook \u3002 DebugGame Editor \uff1a \u6e38\u620f \u4ee3\u7801 \u53ef \u8c03\u8bd5 \u65e0 \u4f18\u5316 \uff0c \u53ef\u4ee5 \u4f7f\u7528 Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \uff0c \u5f15\u64ce \u4e0d\u53ef \u8c03\u8bd5 \uff0c \u8d44\u6e90 \u4e0d \u9700\u8981 Cook \u3002 Development \uff1a \u6e38\u620f \u3001 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3001 \u5f15\u64ce \u90fd \u4e0d\u53ef \u8c03\u8bd5 \uff0c Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \u4e0d\u53ef \u4f7f\u7528 \uff0c \u8d44\u6e90 \u9700\u8981 Cook \u3002 Development Editor \uff1a \u6e38\u620f \u3001 \u7f16\u8f91 \u7f16\u8f91\u5668 \u3001 \u5f15\u64ce \u90fd \u4e0d\u53ef \u8c03\u8bd5 \uff0c Editor \u76f8\u5173 \u4ee3\u7801 \u529f\u80fd \u53ef \u4f7f\u7528 \uff0c \u8d44\u6e90 \u4e0d \u9700\u8981 Cook \u3002 \uff08 \u9ed8\u8ba4 \uff09 Shipping \uff1a \u53d1\u884c \u53d1\u884c\u7248 \uff0c \u6781\u81f4 \u4f18\u5316 \uff0c \u4f30\u8ba1 \u8c03\u8bd5 \u4fe1\u606f \u8c03\u8bd5\u4fe1\u606f \u90fd \u6ca1 \u4e86 \u3002 Test \uff1a \u5305\u542b \u989d\u5916 \u7684 \u6d4b\u8bd5 \u4ee3\u7801 \u6d4b\u8bd5\u4ee3\u7801 \u3002","title":"\u865a\u5e7b \u5f15\u64ce Carla \u63d2\u4ef6 \u7684 \u8c03\u8bd5"},{"location":"tuto_D_windows_debug/#libcarla","text":"\u5ba2\u6237 \u5ba2\u6237\u7aef \u5411 \u670d\u52a1 \u670d\u52a1\u7aef \u8c03\u7528 \u5b9e\u73b0 \u7684 \u529f\u80fd \u3002 * \u811a\u672c BuildLibCarla . bat \u8c03\u7528 cmake \u547d\u4ee4 \u8fdb\u884c \u6784\u5efa \uff1a cmake - G % GENERATOR% % PLATFORM% ^ - DCMAKE _ BUILD _ TYPE = Server ^ - DCMAKE _ CXX _ FLAGS _ RELEASE = \" / MD / MP \" ^ - DCMAKE _ INSTALL _ PREFIX = \" % LIBCARLA _ SERVER _ INSTALL _ PATH : \\ = / % \" ^ \" % ROOT _ PATH% \" \u5176\u4e2d \uff0c - G \u8868\u793a \u6307\u5b9a \u7f16\u8bd1 \u7f16\u8bd1\u5668 \u7248\u672c \uff08 set GENERATOR = \" Visual Studio 16 2019 \" \u3001 set PLATFORM = - A x64 \uff09 \uff1b - DCMAKE _ BUILD _ TYPE \u7684 \u53ef\u9009 \u9009\u9879 \u53ef\u9009\u9879 \u5305\u62ec \uff1a Client , Server , Pytorch , ros2 \uff1b - D CMAKE _ BUILD _ TYPE = \" Debug \" \u53ef\u9009 \u53ef\u9009\u503c \u5305\u62ec \uff1a Debug , Release , RelWithDebInfo , MinSizeRel \u3002 CMAKE _ CXX _ FLAGS _ RELEASE \u8bbe\u7f6e \u7f16\u8bd1 \u7c7b\u578b Release \u65f6 \u7684 \u7f16\u8bd1 \u9009\u9879 \uff1b \u8c03\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u5728 Build \u76ee\u5f55 \u4e0b \u751f\u6210 Makefile \u6587\u4ef6 \uff1a cmake -- build . -- config Release -- target install | findstr / V \" Up - to - date : \" \u4f7f\u7528 VS \u6253\u5f00 Build \\ libcarla - visualstudio \\ CARLA . sln \u3002 \u4f7f\u7528 \u547d\u4ee4 make client \u6253\u5f00 \u7684 \u5c31\u662f LibCarla \\ cmake \\ client \\ CMakeLists . txt \u5bf9\u5e94 \u7684 \u9879\u76ee \u3002 \uff08 \u4f7f\u7528 make server \u6253\u5f00 \u7684 \u5219 \u662f LibCarla \\ cmake \\ server \\ CMakeLists . txt \u5bf9\u5e94 \u7684 \u9879\u76ee \uff09 \uff08 Build \u76ee\u5f55 \u4e0b \u8fd8 \u5305\u62ec osm2odr - visualstudio / SUMO . sln \u7684 VS \u5de5\u7a0b \uff09 \u3002 \u53f3\u952e carla _ client _ debug \u5c06 \u5176 \u8bbe \u4e3a \u542f\u52a8 \u9879\u76ee \u3002 \u9644\u7740 \u5230 Python \u7a0b\u5e8f \u542f\u52a8 \u8c03\u8bd5 \u540e \uff0c \u51fa\u73b0 \u5f53\u524d \u4e0d\u4f1a \u547d \u4e2d\u65ad \u65ad\u70b9 \u4e2d\u65ad\u70b9 \u8fd8 \u6ca1\u6709 \u4e3a \u8be5 \u6587\u6863 \u52a0\u8f7d \u4efb\u4f55 \u7b26\u53f7 \u7684 \u8b66\u544a \u3002 \u89e3\u51b3 \u6ce8\u610f \u5728 vs2019 \u4e2d \u751f\u6210 carla _ client _ debug \u7684 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u65f6 \u51fa\u73b0 fatal error C1189 : # error : \" Incompatible build options \" \u9519\u8bef \uff0c \u56e0\u4e3a \u5728 \u4e0d \u6307\u5b9a \u8c03\u8bd5 \u8fd0\u884c \u65f6 \u7684 \u60c5\u51b5 \u4e0b \u4f7f\u7528 / rtc \u9009\u9879 \u5c06 \u5bfc\u81f4 \u94fe\u63a5 \u5668 \u9519\u8bef \uff0c \u5219 \u9700\u8981 \u5c06 \u201c \u9879\u76ee \u5c5e\u6027 -- > C++ -- > \u57fa\u672c \u8fd0\u884c \u65f6 \u68c0\u67e5 \u201d \u6539\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \uff0c \u7136\u540e \u91cd\u65b0 \u751f\u6210 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u3002","title":"\u8c03\u8bd5 LibCarla"},{"location":"tuto_D_windows_debug/#_1","text":"boost _ python \u5e93 \u6240\u5728 \u7684 \u76ee\u5f55 \u4e3a \uff1a carla \\ Build \\ boost - 1.80 . 0 - install \\ lib \\ libboost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib \uff0c mt - x64 \u4e4b\u95f4 \u5e26\u6709 gd \u7684 \u662f \u5bf9\u5e94 \u7684 \u8c03\u8bd5 \u7248\u672c \u3002 \u793a\u4f8b \u53c2\u8003 \u94fe\u63a5 \u3002","title":"\u5176\u4ed6 \u8bf4\u660e"},{"location":"tuto_D_windows_debug/#vs2019-carlaue4-cmake","text":"windows \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u4e0b \u901a\u8fc7 vs2019 \u6253\u5f00 \u5e76 \u7f16\u8bd1 carla \uff1a \u5f00 Carla \u7684 CMake \u9879\u76ee \uff08 \u53c2\u8003 CMake \u5165\u95e8 \u6559\u7a0b \u5165\u95e8\u6559\u7a0b \uff09 \uff1a \u4ece VS \u7684 \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 File -- > Open -- > CMake , \u5728 \u5bf9\u8bdd \u5bf9\u8bdd\u6846 \u4e2d \u627e\u5230 Carla \u6240\u5728 \u7684 \u672c\u5730 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff08 \u5305\u542b CMakeLists \uff09 \uff0c \u9009\u62e9 CMakeLists . txt \u6587\u4ef6 \uff0c \u6253\u5f00 \uff0c Visual studio \u4f1a \u81ea\u52a8 \u52a0\u8f7d \u6b64 \u4ed3\u5e93 \uff0c \u89e3\u6790 CMakeLists . txt \u6587\u4ef6 \uff0c \u5e76 \u63d0\u53d6 \u5176 \u914d\u7f6e \u548c \u53d8\u91cf \u4fe1\u606f \u3002 \u89e3\u6790 \u5b8c\u6210 \uff08 \u9700\u8981 \u4f1a\u513f \u7b49\u4f1a\u513f \u6216\u8005 \u91cd\u542f \uff09 \u4f1a \u4ece \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668 \u4e2d \u770b\u5230 . cpp \u6587\u4ef6 \u3002 \u4fee\u6539 \u914d\u7f6e \uff1a \u70b9\u51fb x64 - Debug \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u7684 \u7ba1\u7406 \u914d\u7f6e \uff0c \u5e76 \u5728 \u5f39\u51fa \u7684 \u754c\u9762 \u70b9\u51fb \u7f16\u8f91 JSON \uff08 \u8be5 \u8fc7\u7a0b \u5728 \u5de5\u7a0b \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u751f\u6210 CMakeSettings . json \uff09 \uff0c \u5c06 \u6240 \u9700\u8981 \u6784\u5efa \u7684 \u7c7b\u578b \u6539\u4e3a \u60f3 \u7f16\u8bd1 \u7684 \u7c7b\u578b \uff0c \u6bd4\u5982 Client \u3002 \u751f\u6210 \uff1a \u70b9\u51fb \u83dc\u5355 \u83dc\u5355\u680f \u751f\u6210 - \u5168\u90e8 \u751f\u6210 \u6216 \u90e8\u5206 \u751f\u6210 \u5373\u53ef \u3002","title":"VS2019 \u6253\u5f00 CarlaUE4 \u7684 Cmake \u5de5\u7a0b"},{"location":"tuto_D_windows_debug/#_2","text":"\u4f8b\u5982 \uff0c \u5bfc\u5165 \u94fe\u63a5 \uff1a https : / / overpass - api . de / api / map ? bbox = 2.08191 , 41.49611 , 2.08268 , 41.49671 \u5c0f \u5730\u56fe \uff1a https : / / overpass - api . de / api / map ? bbox = 112.9088 , 28.2221 , 112.9172 , 28.2290 \u5927 \u5730\u56fe \uff1a https : / / overpass - api . de / api / map ? bbox = 112.8971 , 28.1976 , 112.9607 , 28.2501 \u91d1 \u91b4 \u9ad8\u901f \uff1a https : / / overpass - api . de / api / map ? bbox = 113.5293 , 27.6893 , 113.5516 , 27.7074 CarlaUE4 - > Plugins - > CarlaTools - > Source - > CarlaTools - > Private \u7684 OpenDriveToMap . cpp 463 \u884c GenerateTileStandalone ( ) \uff0c \u7136\u540e \u8c03\u7528 ExecuteTileCommandlet ( ) : UCommandlet \u662f Unreal Engine \u4e2d \u7528\u4e8e \u5b9e\u73b0 \u547d\u4ee4 \u547d\u4ee4\u884c \u64cd\u4f5c \u7684 \u57fa\u7c7b \u3002 \u5b83 \u5141\u8bb8 \u5f00\u53d1 \u5f00\u53d1\u8005 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u547d\u4ee4 \uff0c \u5e76 \u5728 \u5f15\u64ce \u542f\u52a8 \u65f6 \u6267\u884c \u8fd9\u4e9b \u547d\u4ee4 \u3002 \u8fd9\u4e2a \u7c7b \u4e3b\u8981 \u7528\u4e8e \u6269\u5c55 \u5f15\u64ce \u529f\u80fd \uff0c \u63d0\u4f9b \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u5de5\u5177 \u3002 ExecuteTileCommandlet ( ) \u8c03\u7528 \u7684 \u662f carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Intermediate \\ Build \\ Win64 \\ UE4Editor \\ Inc \\ CarlaTools \\ OpenDriveToMap . gen . cpp \uff08 \u53cd\u5c04 \u6587\u4ef6 gen \uff09 194 \u884c \u7684 static FName NAME _ UOpenDriveToMap _ ExecuteTileCommandlet = FName ( TEXT ( \" ExecuteTileCommandlet \" ) ) ; void UOpenDriveToMap : : ExecuteTileCommandlet ( ) { ProcessEvent ( FindFunctionChecked ( NAME _ UOpenDriveToMap _ ExecuteTileCommandlet ) , NULL ) ; } \u627e\u5230 \u540d\u4e3a \u201c ExecuteTileCommandlet \u201d \u7684 UFunction \u5bf9\u8c61 \uff1b \u6267\u884c \u201c ProcessEvent \u201d \u51fd\u6570 \uff0c \u7136\u540e \u4ece \u5168\u5c40 \u51fd\u6570 \u6620\u5c04 \u8868 \u627e\u5230 \u5bf9\u5e94 \u7684 \u51fd\u6570 \u6307\u9488 \u51fd\u6570\u6307\u9488 \u6267\u884c \uff08 \u5229\u7528 \u51fd\u6570 \u540d \u8c03\u7528 UFUNCTION \u51fd\u6570 \uff09 \u3002 \u84dd\u56fe \u7684 \u5b57\u8282 \u7801 \uff1a \u5728 engine \\ Engine \\ Source \\ Runtime \\ CoreUObject \\ Public \\ UObject \\ Script . h \u8fd9\u4e2a \u6587\u4ef6 \u4e2d\u6709 \u4e00\u4e2a enum EExprToken \uff0c \u8fd9\u4e2a \u679a\u4e3e \u5c31\u662f \u84dd\u56fe \u7684 \u5b57\u8282 \u7801 \u5b9a\u4e49 \u3002 \u5f15\u64ce \u4e2d \u4f7f\u7528 \u4e00\u4e2a \u5168\u5c40 \u67e5\u627e \u8868 \uff0c \u628a \u4e0a\u8ff0 \u5b57\u8282 \u7801 \u6620\u5c04 \u5230 \u51fd\u6570 \u6307\u9488 \u51fd\u6570\u6307\u9488 \u3002 \u5728 \u8fd0\u884c \u65f6 \uff0c \u4ece \u4e00\u4e2a \u5b57\u8282 \u7801 \u6570\u7ec4 \u4e2d \u9010\u4e2a \u53d6\u51fa \u5b57\u8282 \u7801 \uff0c \u5e76 \u67e5\u627e \u51fd\u6570 \u6307\u9488 \u51fd\u6570\u6307\u9488 \uff0c \u8fdb\u884c \u8c03\u7528 \uff0c \u4e5f \u5c31 \u5b8c\u6210 \u4e86 \u6240\u8c13 \u7684 \u201c \u5b57\u8282 \u7801 \u89e3\u91ca \u6267\u884c \u201d \u7684 \u8fc7\u7a0b \u3002 \u6539\u4e3a void UOpenDriveToMap : : GenerateTileStandalone ( ) { UE _ LOG ( LogCarlaToolsMapGenerator , Log , TEXT ( \" UOpenDriveToMap : : GenerateTileStandalone Function called \" ) ) ; / / ExecuteTileCommandlet ( ) ; GenerateTile ( ) ; UEditorLoadingAndSavingUtils : : SaveDirtyPackages ( true , true ) ; UEditorLevelLibrary : : SaveCurrentLevel ( ) ; } \u6ce8\u610f \uff1a \u5927 \u5730\u56fe \u4e5f \u53ea\u80fd \u751f\u6210 \u4e00\u5c0f \u5c0f\u7247 \u4e00\u5c0f\u7247 \u5730\u56fe \u3002 \u62a5\u9519 \u4fe1\u606f \uff1a D : \\ work \\ workspace \\ engine / Engine / Binanes \\ Win64 \\ UE4Editor .. / .. / .. / .. / carla / Unreal / CaraUE4 / CaraUE4 . uproject - run = GenerateTileCommandlet \" \" - FilePath = .. / .. / .. / .. / carla / Unreal / CarlaUE4 / Content / Custo [ 2024.04 . 30 - 06.58 . 10 : 090 ] [ 0 ] LogInit : Executing Class / Script / CarlaTools . GenerateTileCommandlet [ 2024.04 . 30 - 06.58 . 10 : 090 ] [ 0 ] LogOutputDevice : Warning : ( 0 frames ) \u5d29\u6e83 \u65e5\u5fd7 \uff1a LoginId : bc22576a452b36c1831fe8942b55e57a EpicAccountId : 77cf3795af004e58a037e9c9d4a5aa0d Assertion failed : Pair ! = nullptr [ File : D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Core \\ Public \\ Containers / Map . h ] [ Line : 621 ] UE4Editor _ Core ! AssertFailedImplV ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Core \\ Private \\ Misc \\ AssertionMacros . cpp : 104 ] UE4Editor _ Core ! FDebug : : CheckVerifyFailedImpl ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Core \\ Private \\ Misc \\ AssertionMacros . cpp : 461 ] UE4Editor _ CarlaTools ! UGenerateTileCommandlet : : Main ( ) [ D : \\ work \\ workspace \\ carla \\ Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ Commandlet \\ GenerateTileCommandlet . cpp : 75 ] UE4Editor ! FEngineLoop : : PreInitPostStartupScreen ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ LaunchEngineLoop . cpp : 3369 ] UE4Editor ! GuardedMain ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ Launch . cpp : 127 ] UE4Editor ! GuardedMainWrapper ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ Windows \\ LaunchWindows . cpp : 137 ] UE4Editor ! WinMain ( ) [ D : \\ work \\ workspace \\ engine \\ Engine \\ Source \\ Runtime \\ Launch \\ Private \\ Windows \\ LaunchWindows . cpp : 268 ] UE4Editor ! __ scrt _ common _ main _ seh ( ) [ d : \\ agent \\ _ work \\ 2 \\ s \\ src \\ vctools \\ crt \\ vcstartup \\ src \\ startup \\ exe _ common . inl : 288 ] kernel32 ntdll \u53ef\u77e5 \uff1a OpenDriveMap - > FilePath = ParamsMap [ \" FilePath \" ] ; \u62a5 \u7684 \u9519 \uff0c \u5e94\u8be5 \u662f \u8def\u5f84 \u4e0b . xodr \u6587\u4ef6 \u4e0d \u5b58\u5728 \u3002 \u5d29\u6e83 \u65e5\u5fd7 \u4f4d\u4e8e \uff1a engine \\ Engine \\ Binaries \\ Win64 \\ CommandletParameters . txt \u627e\u5230 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u53c2\u6570 \u4e3a \uff1a - run = GenerateTileCommandlet \" \" - F i l e P a t h = . . / . . / . . / . . / c a r l a / U n r e a l / C a r l a U E 4 / C o n t e n t / C u s t o m M a p s / t e s t _ 3 7 / O p e n D r i v e / t e s t _ 3 7 . x o d r \" \" - B a s e L e v e l N a m e = / G a m e / C u s t o m M a p s / t e s t _ 3 7 / t e s t _ 3 7 \" \" - G e o C o o r d s X = 2 7 . 6 8 9 3 0 1 \" \" - G e o C o o r d s Y = 1 1 3 . 5 2 9 2 9 7 \" \" - C T i l e X = 4 \" \" - C T i l e Y = 0 \" \" - A l l o w C o m m a n d l e t R e n d e r i n g \u53c2\u6570 \u591a \u4e86 \u5f88\u591a \u7a7a\u683c \u6b63\u786e \u5e94\u8be5 \u4e3a \uff1a D : \\ work \\ workspace \\ engine \\ Engine \\ Binaries \\ Win64 \\ UE4Editor .. / .. / .. / .. / carla / Unreal / CarlaUE4 / CarlaUE4 . uproject - run = GenerateTileCommandlet - FilePath = .. / .. / .. / .. / carla / Unreal / CarlaUE4 / Content / CustomMaps / test _ 37 / OpenDrive / test _ 37 . xodr - BaseLevelName = / Game / CustomMaps / test _ 37 / test _ 37 - GeoCoordsX = 27.689301 - GeoCoordsY = 113.529297 - CTileX = 4 - CTileY = 0 - AllowCommandletRendering D : \\ work \\ workspace \\ engine \\ Engine \\ Binaries \\ Win64 \\ UE4Editor - Cmd D : / work / workspace / carla / Unreal / CarlaUE4 / CarlaUE4 . uproject - run = GenerateTileCommandlet - FilePath = D : / work / workspace / carla / Unreal / CarlaUE4 / Content / CustomMaps / test _ 37 / OpenDrive / test _ 37 . xodr - BaseLevelName = / Game / CustomMaps / test _ 37 / test _ 37 - GeoCoordsX = 27.689301 - GeoCoordsY = 113.529297 - CTileX = 4 - CTileY = 0 - AllowCommandletRendering \u76f4\u63a5 \u547d\u4ee4 \u547d\u4ee4\u884c \u8fd0\u884c \u62a5\u9519 \uff08 \u5fc5\u987b \u786e\u4fdd \u4e0d\u662f Commandlet \u542f\u52a8 \uff0c \u800c \u5fc5\u987b \u662f Editor \u542f\u52a8 \uff09 \uff1a LogWindows : Error : Assertion failed : ! IsRunningCommandlet ( ) [ File : D : / work / workspace / engine / Engine / Plugins / Developer / RenderDocPlugin / Source / RenderDocPlugin / Private / SRenderDocPluginEditorExtension . cpp ] [ Line : 107 ]","title":"\u5bfc\u5165 \u5d29\u6e83 \u95ee\u9898"},{"location":"tuto_D_windows_debug/#vs-ue","text":"\u53d8\u91cf \u5df2 \u88ab \u4f18\u5316 \u6389 \uff0c \u56e0\u800c \u4e0d\u53ef \u7528 \u3002 VS \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 DebugGammingEditor \uff0c \u7136\u540e \u5f00\u59cb \u8c03\u8bd5 \uff0c \u5c31 \u53ef\u4ee5 \u6dfb\u52a0 \u8981 \u76d1\u89c6 \u7684 \u9879 \u3002","title":"VS \u8c03\u8bd5 UE \u9879\u76ee"},{"location":"tuto_D_windows_debug/#_3","text":"\u5d29\u6e83 \u4e8e engine \\ Engine \\ Source \\ Runtime \\ CoreUObject \\ Private \\ UObject \\ ScriptCore . cpp 1990 \u884c Function - > Invoke ( this , NewStack , ReturnValueAddress ) ; \u5f39 \u51fa \u62a5\u9519 \u4fe1\u606f \u6846 \uff1a Failed to open descriptor file . / .. / .. / .. / carla / Unreal / CarlaUE4 / CarlaUE4 . uproject VS \u8df3\u8f6c \u4ee3\u7801 \u592a\u6162","title":"\u95ee\u9898"},{"location":"tuto_D_windows_debug/#_4","text":"","title":"\u4f9d\u8d56"},{"location":"tuto_D_windows_debug/#boost-1800","text":"Python \u5c01\u88c5 C++ \u5e93 \u8c03\u8bd5 \u3002","title":"boost - 1.80 . 0"},{"location":"tuto_D_windows_debug/#_5","text":"\u5305\u542b \u6240\u6709 \u8f6f\u4ef6 \u4f9d\u8d56 \uff0c \u53cc\u51fb launch . bat \u542f\u52a8 \u8f6f\u4ef6 \u3002","title":"\u53d1\u5e03"},{"location":"tuto_D_windows_debug/#vs2019","text":"\u89e3\u538b \u5b89\u88c5 \u5b89\u88c5\u5305 \uff1a 7z x filename . zip - o . \u65b0 \u7535\u8111 \u8fd0\u884c NativeDesktop . exe \u51fa\u73b0 \u6b64 \u7248\u672c \u7684 Windows \u4e0d \u652f\u6301 \u6b64 \u4ea7\u54c1 \uff0c \u8bf7 \u5c1d\u8bd5 \u5347\u7ea7 Windows \u3002","title":"VS2019 \u793e\u533a \u7248 \u5b89\u88c5"},{"location":"tuto_D_windows_debug/#_6","text":"\u8fdb\u884c \u51fd\u6570 \u8df3\u8f6c \u65f6 \uff0c vs \u4e00\u81f4 \u51fa\u73b0 \u6b63\u5728 \u8fdb\u884c IntelliSense \uff1a \u9009\u62e9 \u201c \u5de5\u5177 \u201d \u83dc\u5355 \u83dc\u5355\u680f \u4e0b \u7684 \u201c \u9009\u9879 \u201d \u6309\u94ae \u6253\u5f00 \u9009\u9879 \u9875\u9762 \uff0c \u627e\u5230 \u6587\u672c \u7f16\u8f91 \u6587\u672c\u7f16\u8f91 \u5668 - > C / C++ - > \u9ad8\u7ea7 , \u5728 \u53f3\u4fa7 \u7684 \u7981\u7528 IntelliSense \u4e2d \u6539\u4e3a True","title":"\u6280\u5de7"},{"location":"tuto_E_gallery/","text":"Carla \u6559\u7a0b ( Python API ) \u8bf7 \u4f7f\u7528 0.9 . 14 \u7248\u672c \u6216\u8005 \u5176\u4ed6 \u517c\u5bb9 API \u7684 Carla \u7248\u672c \u3002 # \u5f00\u59cb Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh - quality - level = epic - resx = 800 - resy = 600 # \u5982\u679c \u60a8 \u6ca1\u6709 \u5f3a\u5927 \u7684 GPU . / CarlaUE4 . sh - quality - level = low - resx = 800 - resy = 600 # \u8fd0\u884c \u793a\u4f8b python 01 _ get _ started . py python 02 _ sync _ mode . py python 03 _ RGB _ camera . py python 04 _ more _ cameras . py python 05 _ open3d _ library . py python 06 _ trafic _ manager . py python 07 _ 3d _ bounding _ boxes . py python 08 _ draw _ waypoints . py python 09 _ basic _ navigation . py python 10 _ manual _ control . py Gallery \u793a\u4f8b 01 : \u5f00\u59cb ( \u5f02\u6b65 \uff1a \u8f66\u8f86 \u4f1a \u6709 \u6296\u52a8 \u611f \uff09 \u793a\u4f8b 02 : \u540c\u6b65 \u793a\u4f8b 03 : RGB \u76f8\u673a \u793a\u4f8b 04 : \u66f4 \u591a \u76f8\u673a \u793a\u4f8b 05 : Open3D \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u793a\u4f8b 06 : \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u793a\u4f8b 07 : 3D \u8fb9\u754c \u6846 \u793a\u4f8b 08 : \u7ed8\u5236 \u822a\u70b9 \u793a\u4f8b 09 : \u57fa\u672c \u5bfc\u822a \u793a\u4f8b 10 : \u624b\u52a8 \u63a7\u5236","title":"\u5165\u95e8"},{"location":"tuto_E_gallery/#carla-python-api","text":"\u8bf7 \u4f7f\u7528 0.9 . 14 \u7248\u672c \u6216\u8005 \u5176\u4ed6 \u517c\u5bb9 API \u7684 Carla \u7248\u672c \u3002 # \u5f00\u59cb Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 . / CarlaUE4 . sh - quality - level = epic - resx = 800 - resy = 600 # \u5982\u679c \u60a8 \u6ca1\u6709 \u5f3a\u5927 \u7684 GPU . / CarlaUE4 . sh - quality - level = low - resx = 800 - resy = 600 # \u8fd0\u884c \u793a\u4f8b python 01 _ get _ started . py python 02 _ sync _ mode . py python 03 _ RGB _ camera . py python 04 _ more _ cameras . py python 05 _ open3d _ library . py python 06 _ trafic _ manager . py python 07 _ 3d _ bounding _ boxes . py python 08 _ draw _ waypoints . py python 09 _ basic _ navigation . py python 10 _ manual _ control . py","title":"Carla \u6559\u7a0b ( Python API )"},{"location":"tuto_E_gallery/#gallery","text":"\u793a\u4f8b 01 : \u5f00\u59cb ( \u5f02\u6b65 \uff1a \u8f66\u8f86 \u4f1a \u6709 \u6296\u52a8 \u611f \uff09 \u793a\u4f8b 02 : \u540c\u6b65 \u793a\u4f8b 03 : RGB \u76f8\u673a \u793a\u4f8b 04 : \u66f4 \u591a \u76f8\u673a \u793a\u4f8b 05 : Open3D \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u793a\u4f8b 06 : \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u793a\u4f8b 07 : 3D \u8fb9\u754c \u6846 \u793a\u4f8b 08 : \u7ed8\u5236 \u822a\u70b9 \u793a\u4f8b 09 : \u57fa\u672c \u5bfc\u822a \u793a\u4f8b 10 : \u624b\u52a8 \u63a7\u5236","title":"Gallery"},{"location":"tuto_G_G29_windows/","text":"carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u7684 \u53cd\u9988 \u529b\u53cd\u9988 ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \u53c2\u8003 \u94fe\u63a5 \u3002 \u672c \u6559\u7a0b \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \uff0c \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 \u94fe\u63a5 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c G29python \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 \u3001 carla0.9 . 14 \u3001 \u7f57\u6280 G - hub \u9a71\u52a8 \u3001 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u8868\u793a \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002 \u81ea\u52a8 \u9a7e\u9a76 \u53cd\u9988 \u529b\u53cd\u9988 \u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u6309 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"\u7f57\u6280 G29 \u65b9\u5411\u76d8"},{"location":"tuto_G_G29_windows/#carla-g29","text":"ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \u53c2\u8003 \u94fe\u63a5 \u3002 \u672c \u6559\u7a0b \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \uff0c \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 \u94fe\u63a5 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c G29python \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 \u3001 carla0.9 . 14 \u3001 \u7f57\u6280 G - hub \u9a71\u52a8 \u3001 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u8868\u793a \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002","title":"carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411\u76d8 \u7684 \u529b\u53cd\u9988"},{"location":"tuto_G_G29_windows/#_1","text":"\u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u6309 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"\u81ea\u52a8 \u9a7e\u9a76 \u529b\u53cd\u9988"},{"location":"tuto_G_add_friction_triggers/","text":"\u5982\u4f55 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 ( Friction Triggers ) \u662f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u6dfb\u52a0 \u7684 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u8ba9 \u7528\u6237 \u5728 \u5904\u4e8e \u8fd9\u4e9b \u7c7b\u578b \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u5185\u65f6 \u5b9a\u4e49 \u8f66\u8f86 \u8f66\u8f6e \u7684 \u4e0d\u540c \u6469\u64e6 \u6469\u64e6\u529b \u3002 \u4f8b\u5982 \uff0c \u8fd9 \u5bf9\u4e8e \u52a8\u6001 \u5730 \u5728 \u5730\u56fe \u7684 \u67d0\u4e9b \u533a\u57df \u4e2d \u5236\u4f5c \u5149\u6ed1 \u7684 \u8868\u9762 \u53ef\u80fd \u5f88 \u6709\u7528 \u3002 \u4e3a\u4e86 \u4f7f\u7528 PythonAPI \u751f\u6210 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u7528\u6237 \u5fc5\u987b \u9996\u5148 \u83b7\u53d6 static . trigger . friction \u84dd\u56fe \u5b9a\u4e49 \uff0c \u7136\u540e \u4e3a \u8be5 \u84dd\u56fe \u5b9a\u4e49 \u8bbe\u7f6e \u4ee5\u4e0b \u5fc5\u8981 \u5c5e\u6027 \uff1a friction : \u5f53 \u8f66\u8f86 \u4f4d\u4e8e \u89e6\u53d1 \u76d2\u5185 \u65f6 \uff0c \u89e6\u53d1 \u76d2 \u7684 \u6469\u64e6 \u6469\u64e6\u529b \u3002 extent _ x : X \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ y : Y \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ z : Z \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5b9a\u4e49 \u4e00\u4e2a \u53d8\u6362 \u6765 \u6307\u5b9a \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5e76 \u751f\u6210 \u5b83 \u3002 \u4f8b\u5b50 import carla def main ( ) : # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # Get World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # Find Trigger Friction Blueprint friction _ bp = world . get _ blueprint _ library ( ) . find ( ' static . trigger . friction ' ) extent = carla . Location ( 700.0 , 700.0 , 700.0 ) friction _ bp . set _ attribute ( ' friction ' , str ( 0.0 ) ) friction _ bp . set _ attribute ( ' extent _ x ' , str ( extent . x ) ) friction _ bp . set _ attribute ( ' extent _ y ' , str ( extent . y ) ) friction _ bp . set _ attribute ( ' extent _ z ' , str ( extent . z ) ) # Spawn Trigger Friction transform = carla . Transform ( ) transform . location = carla . Location ( 100.0 , 0.0 , 0.0 ) world . spawn _ actor ( friction _ bp , transform ) # Optional for visualizing trigger world . debug . draw _ box ( box = carla . BoundingBox ( transform . location , extent * 1e - 2 ) , rotation = transform . rotation , life _ time = 100 , thickness = 0.5 , color = carla . Color ( r = 255 , g = 0 , b = 0 ) ) if __ name __ = = ' __ main __ ' : main ( )","title":"\u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1\u5668"},{"location":"tuto_G_add_friction_triggers/#_1","text":"\u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 ( Friction Triggers ) \u662f \u53ef\u4ee5 \u5728 \u8fd0\u884c \u65f6 \u6dfb\u52a0 \u7684 \u6846 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u8ba9 \u7528\u6237 \u5728 \u5904\u4e8e \u8fd9\u4e9b \u7c7b\u578b \u7684 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u5185\u65f6 \u5b9a\u4e49 \u8f66\u8f86 \u8f66\u8f6e \u7684 \u4e0d\u540c \u6469\u64e6 \u6469\u64e6\u529b \u3002 \u4f8b\u5982 \uff0c \u8fd9 \u5bf9\u4e8e \u52a8\u6001 \u5730 \u5728 \u5730\u56fe \u7684 \u67d0\u4e9b \u533a\u57df \u4e2d \u5236\u4f5c \u5149\u6ed1 \u7684 \u8868\u9762 \u53ef\u80fd \u5f88 \u6709\u7528 \u3002 \u4e3a\u4e86 \u4f7f\u7528 PythonAPI \u751f\u6210 \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \uff0c \u7528\u6237 \u5fc5\u987b \u9996\u5148 \u83b7\u53d6 static . trigger . friction \u84dd\u56fe \u5b9a\u4e49 \uff0c \u7136\u540e \u4e3a \u8be5 \u84dd\u56fe \u5b9a\u4e49 \u8bbe\u7f6e \u4ee5\u4e0b \u5fc5\u8981 \u5c5e\u6027 \uff1a friction : \u5f53 \u8f66\u8f86 \u4f4d\u4e8e \u89e6\u53d1 \u76d2\u5185 \u65f6 \uff0c \u89e6\u53d1 \u76d2 \u7684 \u6469\u64e6 \u6469\u64e6\u529b \u3002 extent _ x : X \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ y : Y \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 extent _ z : Z \u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8303\u56f4 \uff08 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff09 \u3002 \u5b8c\u6210 \u6b64 \u64cd\u4f5c \u540e \uff0c \u5b9a\u4e49 \u4e00\u4e2a \u53d8\u6362 \u6765 \u6307\u5b9a \u6469\u64e6 \u89e6\u53d1 \u53d1\u5668 \u89e6\u53d1\u5668 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u5e76 \u751f\u6210 \u5b83 \u3002","title":"\u5982\u4f55 \u6dfb\u52a0 \u6469\u64e6 \u89e6\u53d1\u5668"},{"location":"tuto_G_add_friction_triggers/#_2","text":"import carla def main ( ) : # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # Get World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # Find Trigger Friction Blueprint friction _ bp = world . get _ blueprint _ library ( ) . find ( ' static . trigger . friction ' ) extent = carla . Location ( 700.0 , 700.0 , 700.0 ) friction _ bp . set _ attribute ( ' friction ' , str ( 0.0 ) ) friction _ bp . set _ attribute ( ' extent _ x ' , str ( extent . x ) ) friction _ bp . set _ attribute ( ' extent _ y ' , str ( extent . y ) ) friction _ bp . set _ attribute ( ' extent _ z ' , str ( extent . z ) ) # Spawn Trigger Friction transform = carla . Transform ( ) transform . location = carla . Location ( 100.0 , 0.0 , 0.0 ) world . spawn _ actor ( friction _ bp , transform ) # Optional for visualizing trigger world . debug . draw _ box ( box = carla . BoundingBox ( transform . location , extent * 1e - 2 ) , rotation = transform . rotation , life _ time = 100 , thickness = 0.5 , color = carla . Color ( r = 255 , g = 0 , b = 0 ) ) if __ name __ = = ' __ main __ ' : main ( )","title":"\u4f8b\u5b50"},{"location":"tuto_G_bounding_boxes/","text":"\u8fb9\u754c \u6846 \u4f7f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e86\u89e3 \u5176 \u73af\u5883 \u7684 \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \u5728\u4e8e \u4f30\u8ba1 \u8f66\u8f86 \u5468\u56f4 \u7269\u4f53 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u4e3a\u6b64 \uff0c \u6709 \u5fc5\u8981 \u63a8\u65ad \u5bf9\u8c61 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u3002 Carla \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u8fb9\u754c \u6846 \uff0c \u5e76\u4e14 Carla Python API \u63d0\u4f9b \u4e86 \u8bbf\u95ee \u6bcf\u4e2a \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u7684 \u51fd\u6570 \u3002 \u672c \u6559\u7a0b \u5c55\u793a \u5982\u4f55 \u8bbf\u95ee \u8fb9\u754c \u6846 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8ba9 \u6211\u4eec \u7f16\u5199 \u6807\u51c6 Carla \u6837\u677f \u4ee3\u7801 \uff0c \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \uff0c \u751f\u6210 \u8f66\u8f86 \u5e76 \u4e3a \u5176 \u9644\u52a0 \u76f8\u673a \uff1a import carla import math import random import time import queue import numpy as np import cv2 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) # spawn vehicle vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) # spawn camera camera _ bp = bp _ lib . find ( ' sensor . camera . rgb ' ) camera _ init _ trans = carla . Transform ( carla . Location ( z = 2 ) ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = vehicle ) vehicle . set _ autopilot ( True ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Get the map spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Create a queue to store and retrieve the sensor data image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) \u51e0\u4f55 \u53d8\u6362 \u51e0\u4f55\u53d8\u6362 \u6211\u4eec \u60f3\u8981 \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u4e09\u7ef4 \u70b9 \u5e76 \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u5e73\u9762 \u4e2d \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u6784\u9020 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \uff1a def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K \u6211\u4eec \u60f3\u8981 \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u70b9 \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u662f \u4f7f\u7528 \u53ef \u901a\u8fc7 camera . get _ transform ( ) . get _ inverse _ matrix ( ) \u68c0\u7d22 \u7684 \u9006 \u76f8\u673a \u53d8\u6362 \uff0c \u5c06 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u5750\u6807 \u53d8\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u76f8\u673a \u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u76f8\u673a \u5e73\u9762 \u4e2d \uff1a def get _ image _ point ( loc , K , w2c ) : # Calculate 2D projection of 3D coordinate # Format the input coordinate ( loc is a carla . Position object ) point = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # transform to camera coordinates point _ camera = np . dot ( w2c , point ) # New we must change from UE4 ' s coordinate system to an \" standard \" # ( x , y , z ) - > ( y , - z , x ) # and we remove the fourth componebonent also point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # now project 3D - > 2D using the camera matrix point _ img = np . dot ( K , point _ camera ) # normalize point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u6295\u5f71 3D - > 2D \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u68c0\u7d22 \u76f8\u673a \u89c4\u683c \uff1a # Get the world to camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # Get the attributes from the camera image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # Calculate the camera projection matrix to project from 3D - > 2D K = build _ projection _ matrix ( image _ w , image _ h , fov ) \u8fb9\u754c \u6846 Carla \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u8fb9\u754c \u6846 \u3002 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6709 \u4e00\u4e2a bounding _ box \u5c5e\u6027 \uff0c \u8be5 \u5c5e\u6027 \u5177\u6709 carla . BoundingBox \u5bf9\u8c61 \u7c7b\u578b \u3002 \u8fb9\u754c \u6846 \u7684 \u9876\u70b9 \u53ef\u4ee5 \u901a\u8fc7 getter \u51fd\u6570 . get _ world _ vertices ( ) \u6216 get _ local _ vertices ( ) \u4e4b\u4e00 \u68c0\u7d22 \u3002 \u9700\u8981 \u6ce8\u610f \u7684 \u662f \uff0c \u8981 \u83b7\u53d6 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u4e09\u7ef4 \u5750\u6807 \uff0c \u60a8 \u9700\u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \u4f5c\u4e3a \u8be5 get _ world _ vertices ( ) \u65b9\u6cd5 \u7684 \u53c2\u6570 \uff0c \u5982\u4e0b \u6240\u793a \uff1a actor . get _ world _ vertices ( actor . get _ transform ( ) ) \u5bf9\u4e8e \u5730\u56fe \u4e2d \u7684 \u7269\u4f53 \uff0c \u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u8def\u6807 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . World \u65b9\u6cd5 get _ level _ bbs ( ) \u68c0\u7d22 \u8fb9\u754c \u6846 get _ level _ bbs ( ) \u3002 carla . CityObjectLabel \u53ef\u4ee5 \u7528\u4f5c \u53c2\u6570 \u6765 \u5c06 \u8fb9\u754c \u6846 \u5217\u8868 \u8fc7\u6ee4 \u5230 \u76f8\u5173 \u5bf9\u8c61 \uff1a # Retrieve all bounding boxes for traffic lights within the level bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) # Filter the list to extract bounding boxes within a 50m radius nearby _ bboxes = [ ] for bbox in bounding _ box _ set : if bbox . location . distance ( actor . get _ transform ( ) . location ) < 50 : nearby _ bboxes \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u6765 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u8fc7\u6ee4 \u8be5 \u5217\u8868 \uff0c \u4ee5 \u8bc6\u522b \u9644\u8fd1 \u7684 \u5bf9\u8c61 \uff0c \u56e0\u6b64 \u53ef\u80fd \u4f4d\u4e8e \u8fde\u63a5 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u76f8\u673a \u7684 \u89c6\u91ce \u5185 \u3002 \u4e3a\u4e86 \u5728 \u76f8\u673a \u56fe\u50cf \u4e0a \u7ed8\u5236 \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u9002\u5f53 \u7684 \u987a\u5e8f \u8fde\u63a5 \u9876\u70b9 \u4ee5 \u521b\u5efa \u8fb9\u7f18 \u3002 \u4e3a\u4e86 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u8fb9 \u5bf9 \u5217\u8868 \uff1a edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ] \u6e32\u67d3 \u8fb9\u754c \u6846 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u8bbe\u7f6e \u4e86 \u51e0\u4f55 \u6295\u5f71 \u548c \u4eff\u771f \uff0c \u6211\u4eec \u53ef\u4ee5 \u7ee7\u7eed \u521b\u5efa \u6e38\u620f \u5faa\u73af \u5e76 \u5c06 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u573a\u666f \u4e2d \u3002 # Set up the set of bounding boxes from the level # We filter for traffic lights and traffic signs bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) bounding _ box _ set . extend ( world . get _ level _ bbs ( carla . CityObjectLabel . TrafficSigns ) ) # Remember the edge pairs edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ] \u4e3a\u4e86 \u67e5\u770b \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 OpenCV \u7a97\u53e3 \u6765 \u663e\u793a \u76f8\u673a \u8f93\u51fa \u3002 # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u5c06 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for bb in bounding _ box _ set : # Filter for distance from ego vehicle if bb . location . distance ( vehicle . get _ transform ( ) . location ) < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the bounding box . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = bb . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : # Cycle through the vertices verts = [ v for v in bb . get _ world _ vertices ( carla . Transform ( ) ) ] for edge in edges : # Join the vertices into edges p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) # Draw the edges into the camera output cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) # Now draw the image into the OpenCV display window cv2 . imshow ( ' ImageWindowName ' , img ) # Break the loop if the user presses the Q key if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break # Close the OpenCV display window when the game loop stops cv2 . destroyAllWindows ( ) \u73b0\u5728 \u6211\u4eec \u5c06 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u56fe\u50cf \u4e2d \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e2d \u89c2\u5bdf \u5b83\u4eec \u3002 \u8f66\u8f86 \u8fb9\u754c \u6846 \u6211\u4eec \u53ef\u80fd \u8fd8 \u60f3 \u6e32\u67d3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846 \uff0c \u7279\u522b \u662f \u8f66\u8f86 \u7684 \u8fb9\u754c \u6846 \u3002 \u9996\u5148 \uff0c \u8ba9 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6dfb\u52a0 \u4e00\u4e9b \u5176\u4ed6 \u8f66\u8f86 \uff1a for i in range ( 50 ) : vehicle _ bp = random . choice ( bp _ lib . filter ( ' vehicle ' ) ) npc = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) if npc : npc . set _ autopilot ( True ) \u68c0\u7d22 \u7b2c\u4e00 \u4e00\u5f20 \u7b2c\u4e00\u5f20 \u56fe\u50cf \u5e76 \u50cf \u4ee5\u524d \u4e00\u6837 \u8bbe\u7f6e OpenCV \u663e\u793a \u7a97\u53e3 \uff1a # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u4f7f\u7528 \u4fee\u6539 \u540e \u7684 \u6e38\u620f \u5faa\u73af \u6765 \u7ed8\u5236 \u8f66\u8f86 \u8fb9\u754c \u6846 \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] for edge in edges : p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 255 , 0 , 0 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( ) \u4e8c\u7ef4 \u8fb9\u754c \u6846 \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u68c0\u6d4b \u4e8c\u7ef4 \u8fb9\u754c \u6846\u800c \u4e0d\u662f \u4e0a\u9762 \u6f14\u793a \u7684 \u4e09\u7ef4 \u8fb9\u754c \u6846\u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u524d\u9762 \u7684 \u811a\u672c \u53ef\u4ee5 \u8f7b\u677e \u6269\u5c55 \u4ee5 \u751f\u6210 \u4e8c\u7ef4 \u8fb9\u754c \u6846 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u4f7f\u7528 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u7684 \u672b\u7aef \u5373\u53ef \u3002 \u5bf9\u4e8e \u6e32\u67d3 \u7684 \u6bcf\u4e2a \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u627e\u5230 \u56fe\u50cf \u5750\u6807 \u4e2d \u6700 \u5de6\u8fb9 \u3001 \u6700 \u53f3\u8fb9 \u3001 \u6700\u9ad8 \u548c \u6700\u4f4e \u7684 \u6295\u5f71 \u9876\u70b9 \u3002 while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) http : / / host . robots . ox . ac . uk / pascal / VOC / verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) # Find the rightmost vertex if p [ 0 ] > x _ max : x _ max = p [ 0 ] # Find the leftmost vertex if p [ 0 ] < x _ min : x _ min = p [ 0 ] # Find the highest vertex if p [ 1 ] > y _ max : y _ max = p [ 1 ] # Find the lowest vertex if p [ 1 ] < y _ min : y _ min = p [ 1 ] cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ min ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ max ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ min ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ max ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( ) \u5bfc\u51fa \u8fb9\u754c \u6846 \u6e32\u67d3 \u8fb9\u754c \u6846 \u5bf9\u4e8e \u6211\u4eec \u786e\u4fdd \u8fb9\u754c \u6846 \u5bf9\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u662f \u6b63\u786e \u7684 \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5982\u679c \u6211\u4eec \u60f3 \u5728 \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u65f6 \u5b9e\u9645 \u4f7f\u7528 \u5b83\u4eec \uff0c \u6211\u4eec \u5c06 \u9700\u8981 \u5bfc\u51fa \u5b83\u4eec \u3002 \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u548c \u7269\u4f53 \u68c0\u6d4b \u7684 \u5e38\u89c1 \u6570\u636e \u5b58\u50a8 \u5e93 \u4f7f\u7528 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u683c\u5f0f \uff0c \u4f8b\u5982 KITTI \u6216 PASCAL VOC \u6216 MicroSoft COCO \u3002 Pascal VOC \u683c\u5f0f \u8fd9\u4e9b \u6570\u636e \u96c6 \u901a\u5e38 \u4f7f\u7528 JSON \u6216 XML \u683c\u5f0f \u6765 \u5b58\u50a8 \u6ce8\u91ca \u3002 PASCAL VOC \u683c\u5f0f \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python \u5e93 \u3002 from pascal _ voc _ writer import Writer ... ... ... while True : # Retrieve the image world . tick ( ) image = image _ queue . get ( ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) frame _ path = ' output / % 06d ' % image . frame # Save the image image . save _ to _ disk ( frame _ path + ' . png ' ) # Initialize the exporter writer = Writer ( frame _ path + ' . png ' , image _ w , image _ h ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) if dist < 50 : forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) if p [ 0 ] > x _ max : x _ max = p [ 0 ] if p [ 0 ] < x _ min : x _ min = p [ 0 ] if p [ 1 ] > y _ max : y _ max = p [ 1 ] if p [ 1 ] < y _ min : y _ min = p [ 1 ] # Add the object to the frame ( ensure it is inside the image ) if x _ min > 0 and x _ max < image _ w and y _ min > 0 and y _ max < image _ h : writer . addObject ( ' vehicle ' , x _ min , y _ min , x _ max , y _ max ) # Save the bounding boxes in the scene writer . save ( frame _ path + ' . xml ' ) \u5bf9\u4e8e \u4eff\u771f \u7684 \u6bcf\u4e2a \u6e32\u67d3 \u5e27 \uff0c \u60a8 \u73b0\u5728 \u5c06 \u5bfc\u51fa \u4e00\u4e2a \u968f\u9644 \u7684 XML \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u5e27 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 PASCAL VOC \u683c\u5f0f \u4e2d \uff0c XML \u6587\u4ef6 \u5305\u542b \u6d89\u53ca \u968f\u9644 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u3001 \u56fe\u50cf \u5c3a\u5bf8 \u7684 \u4fe1\u606f \uff0c \u5982\u679c \u9700\u8981 \uff0c \u8fd8 \u53ef\u4ee5 \u5305\u62ec \u8f66\u8f86 \u7c7b\u578b \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 < ! -- Example PASCAL VOC format file -- > < annotation > < folder > output < / folder > < filename > 023235 . png < / filename > < path > / home / matt / Documents / temp / output / 023235 . png < / path > < source > < database > Unknown < / database > < / source > < size > < width > 800 < / width > < height > 600 < / height > < depth > 3 < / depth > < / size > < segmented > 0 < / segmented > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 503 < / xmin > < ymin > 310 < / ymin > < xmax > 511 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 490 < / xmin > < ymin > 310 < / ymin > < xmax > 498 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < / annotation > \u5fae\u8f6f COCO \u683c\u5f0f \u53e6 \u4e00\u79cd \u6d41\u884c \u7684 \u5bfc\u51fa \u683c\u5f0f \u662f MicroSoft COCO \u3002 COCO \u683c\u5f0f \u4f7f\u7528 JSON \u6587\u4ef6 \u6765 \u4fdd\u5b58 \u5bf9 \u56fe\u50cf \u548c \u6ce8\u91ca \u7684 \u5f15\u7528 \u3002 \u8be5 \u683c\u5f0f \u5305\u62ec \u5355\u4e2a JSON \u6587\u4ef6 \u5b57\u6bb5 \u4e2d \u7684 \u56fe\u50cf \u548c \u6ce8\u91ca \uff0c \u4ee5\u53ca \u6709\u5173 \u6570\u636e \u96c6 \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u7684 \u4fe1\u606f \u3002 \u4e0e \u67d0\u4e9b \u5176\u4ed6 \u683c\u5f0f \u76f8\u6bd4 \uff0c \u5bf9 \u6240\u6709 \u6536\u96c6 \u7684 \u56fe\u50cf \u548c \u6240\u6709 \u76f8\u5173 \u6ce8\u91ca \u7684 \u5f15\u7528 \u90fd \u4f4d\u4e8e \u540c\u4e00 \u6587\u4ef6 \u4e2d \u3002 \u60a8 \u5e94\u8be5 \u521b\u5efa \u4e00\u4e2a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u793a\u4f8b \u7684 JSON \u5b57\u5178 \uff1a simulation _ dataset = { \" info \" : { } , \" licenses \" : [ { \" url \" : \" http : / / creativecommons . org / licenses / by - nc - sa / 2.0 / \" , \" id \" : 1 , \" name \" : \" Attribution - NonCommercial - ShareAlike License \" } ] , \" images \" : [ ... , { \" license \" : 1 , \" file _ name \" : \" 023235 . png \" , \" height \" : 600 , \" width \" : 800 , \" date _ captured \" : \" 2022 - 04 - 14 17 : 02 : 52 \" , \" id \" : 23235 } , ... ] , \" categories \" : [ ... { \" supercategory \" : \" vehicle \" , \" id \" : 10 , \" name \" : \" vehicle \" } , ... ] , \" annotations \" : [ ... , { \" segmentation \" : [ ] , \" area \" : 9262.89 , \" iscrowd \" : 0 , \" image _ id \" : 23235 , \" bbox \" : [ 503.3 , 310.4 , 118.3 , 78.3 ] } , ... ] } \u4fe1\u606f \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u90e8\u5206 \u5e94 \u76f8\u5e94 \u586b\u5199 \u6216 \u7559\u7a7a \u3002 \u4eff\u771f \u4e2d \u7684 \u56fe\u50cf \u5e94 \u5b58\u50a8 \u5728 images \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u7684 \u6570\u7ec4 \u4e2d \u3002 \u8fb9\u754c \u6846\u5e94 \u5b58\u50a8 \u5728 \u5177\u6709 \u5339\u914d image _ id \u7684 annotations \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u3002 \u8fb9\u754c \u6846 \u5b58\u50a8 \u4e3a [ x _ min , y _ min , width , height ] \u3002 \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 Python JSON \u5e93 \u5c06 \u5b57\u5178 \u4fdd\u5b58 \u4e3a JSON \u6587\u4ef6 \uff1a import json with open ( ' simulation _ data . json ' , ' w ' ) as json _ file : json . dump ( simulation _ dataset , json _ file ) \u6709\u5173 COCO \u6570\u636e \u683c\u5f0f \u6570\u636e\u683c\u5f0f \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002 \u5e94\u8be5 \u6ce8\u610f \u7684 \u662f \uff0c \u5728 \u672c \u6559\u7a0b \u4e2d \u6211\u4eec \u6ca1\u6709 \u8003\u8651 \u91cd\u53e0 \u7684 \u8fb9\u754c \u6846 \u3002 \u4e3a\u4e86 \u5728 \u91cd\u53e0 \u7684 \u60c5\u51b5 \u4e0b \u8bc6\u522b \u524d\u666f \u8fb9\u754c \u6846 \uff0c \u9700\u8981 \u8fdb\u884c \u989d\u5916 \u7684 \u5de5\u4f5c \u3002","title":"\u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_1","text":"\u4f7f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e86\u89e3 \u5176 \u73af\u5883 \u7684 \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \u5728\u4e8e \u4f30\u8ba1 \u8f66\u8f86 \u5468\u56f4 \u7269\u4f53 \u7684 \u4f4d\u7f6e \u548c \u65b9\u5411 \u3002 \u4e3a\u6b64 \uff0c \u6709 \u5fc5\u8981 \u63a8\u65ad \u5bf9\u8c61 \u8fb9\u754c \u6846 \u7684 \u4f4d\u7f6e \u3002 Carla \u4eff\u771f \u4e2d \u7684 \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u8fb9\u754c \u6846 \uff0c \u5e76\u4e14 Carla Python API \u63d0\u4f9b \u4e86 \u8bbf\u95ee \u6bcf\u4e2a \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u7684 \u51fd\u6570 \u3002 \u672c \u6559\u7a0b \u5c55\u793a \u5982\u4f55 \u8bbf\u95ee \u8fb9\u754c \u6846 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002","title":"\u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_2","text":"\u8ba9 \u6211\u4eec \u7f16\u5199 \u6807\u51c6 Carla \u6837\u677f \u4ee3\u7801 \uff0c \u8bbe\u7f6e \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \uff0c \u751f\u6210 \u8f66\u8f86 \u5e76 \u4e3a \u5176 \u9644\u52a0 \u76f8\u673a \uff1a import carla import math import random import time import queue import numpy as np import cv2 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) bp _ lib = world . get _ blueprint _ library ( ) # spawn vehicle vehicle _ bp = bp _ lib . find ( ' vehicle . lincoln . mkz _ 2020 ' ) vehicle = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) # spawn camera camera _ bp = bp _ lib . find ( ' sensor . camera . rgb ' ) camera _ init _ trans = carla . Transform ( carla . Location ( z = 2 ) ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = vehicle ) vehicle . set _ autopilot ( True ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Get the map spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Create a queue to store and retrieve the sensor data image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668"},{"location":"tuto_G_bounding_boxes/#_3","text":"\u6211\u4eec \u60f3\u8981 \u4ece \u4eff\u771f \u4e2d \u83b7\u53d6 \u4e09\u7ef4 \u70b9 \u5e76 \u5c06 \u5b83\u4eec \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u5e73\u9762 \u4e2d \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u6784\u9020 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \uff1a def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K \u6211\u4eec \u60f3\u8981 \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u70b9 \u3002 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u662f \u4f7f\u7528 \u53ef \u901a\u8fc7 camera . get _ transform ( ) . get _ inverse _ matrix ( ) \u68c0\u7d22 \u7684 \u9006 \u76f8\u673a \u53d8\u6362 \uff0c \u5c06 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u5750\u6807 \u53d8\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u6295\u5f71 \u77e9\u9635 \u5c06 \u76f8\u673a \u5750\u6807 \u4e2d \u7684 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u4e8c\u7ef4 \u76f8\u673a \u5e73\u9762 \u4e2d \uff1a def get _ image _ point ( loc , K , w2c ) : # Calculate 2D projection of 3D coordinate # Format the input coordinate ( loc is a carla . Position object ) point = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # transform to camera coordinates point _ camera = np . dot ( w2c , point ) # New we must change from UE4 ' s coordinate system to an \" standard \" # ( x , y , z ) - > ( y , - z , x ) # and we remove the fourth componebonent also point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # now project 3D - > 2D using the camera matrix point _ img = np . dot ( K , point _ camera ) # normalize point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u6295\u5f71 3D - > 2D \u7684 \u529f\u80fd \uff0c \u6211\u4eec \u53ef\u4ee5 \u68c0\u7d22 \u76f8\u673a \u89c4\u683c \uff1a # Get the world to camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # Get the attributes from the camera image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # Calculate the camera projection matrix to project from 3D - > 2D K = build _ projection _ matrix ( image _ w , image _ h , fov )","title":"\u51e0\u4f55\u53d8\u6362"},{"location":"tuto_G_bounding_boxes/#_4","text":"Carla \u5bf9\u8c61 \u90fd \u6709 \u4e00\u4e2a \u5173\u8054 \u7684 \u8fb9\u754c \u6846 \u3002 Carla \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6709 \u4e00\u4e2a bounding _ box \u5c5e\u6027 \uff0c \u8be5 \u5c5e\u6027 \u5177\u6709 carla . BoundingBox \u5bf9\u8c61 \u7c7b\u578b \u3002 \u8fb9\u754c \u6846 \u7684 \u9876\u70b9 \u53ef\u4ee5 \u901a\u8fc7 getter \u51fd\u6570 . get _ world _ vertices ( ) \u6216 get _ local _ vertices ( ) \u4e4b\u4e00 \u68c0\u7d22 \u3002 \u9700\u8981 \u6ce8\u610f \u7684 \u662f \uff0c \u8981 \u83b7\u53d6 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u4e2d \u8fb9\u754c \u6846 \u7684 \u4e09\u7ef4 \u5750\u6807 \uff0c \u60a8 \u9700\u8981 \u5c06 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \u4f5c\u4e3a \u8be5 get _ world _ vertices ( ) \u65b9\u6cd5 \u7684 \u53c2\u6570 \uff0c \u5982\u4e0b \u6240\u793a \uff1a actor . get _ world _ vertices ( actor . get _ transform ( ) ) \u5bf9\u4e8e \u5730\u56fe \u4e2d \u7684 \u7269\u4f53 \uff0c \u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u8def\u6807 \uff0c \u53ef\u4ee5 \u901a\u8fc7 carla . World \u65b9\u6cd5 get _ level _ bbs ( ) \u68c0\u7d22 \u8fb9\u754c \u6846 get _ level _ bbs ( ) \u3002 carla . CityObjectLabel \u53ef\u4ee5 \u7528\u4f5c \u53c2\u6570 \u6765 \u5c06 \u8fb9\u754c \u6846 \u5217\u8868 \u8fc7\u6ee4 \u5230 \u76f8\u5173 \u5bf9\u8c61 \uff1a # Retrieve all bounding boxes for traffic lights within the level bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) # Filter the list to extract bounding boxes within a 50m radius nearby _ bboxes = [ ] for bbox in bounding _ box _ set : if bbox . location . distance ( actor . get _ transform ( ) . location ) < 50 : nearby _ bboxes \u53ef\u4ee5 \u4f7f\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4f4d\u7f6e \u6765 \u4e00\u6b65 \u8fdb\u4e00\u6b65 \u8fc7\u6ee4 \u8be5 \u5217\u8868 \uff0c \u4ee5 \u8bc6\u522b \u9644\u8fd1 \u7684 \u5bf9\u8c61 \uff0c \u56e0\u6b64 \u53ef\u80fd \u4f4d\u4e8e \u8fde\u63a5 \u5230 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u76f8\u673a \u7684 \u89c6\u91ce \u5185 \u3002 \u4e3a\u4e86 \u5728 \u76f8\u673a \u56fe\u50cf \u4e0a \u7ed8\u5236 \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5 \u9002\u5f53 \u7684 \u987a\u5e8f \u8fde\u63a5 \u9876\u70b9 \u4ee5 \u521b\u5efa \u8fb9\u7f18 \u3002 \u4e3a\u4e86 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \uff0c \u6211\u4eec \u9700\u8981 \u4ee5\u4e0b \u8fb9 \u5bf9 \u5217\u8868 \uff1a edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ]","title":"\u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_5","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u8bbe\u7f6e \u4e86 \u51e0\u4f55 \u6295\u5f71 \u548c \u4eff\u771f \uff0c \u6211\u4eec \u53ef\u4ee5 \u7ee7\u7eed \u521b\u5efa \u6e38\u620f \u5faa\u73af \u5e76 \u5c06 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u573a\u666f \u4e2d \u3002 # Set up the set of bounding boxes from the level # We filter for traffic lights and traffic signs bounding _ box _ set = world . get _ level _ bbs ( carla . CityObjectLabel . TrafficLight ) bounding _ box _ set . extend ( world . get _ level _ bbs ( carla . CityObjectLabel . TrafficSigns ) ) # Remember the edge pairs edges = [ [ 0 , 1 ] , [ 1 , 3 ] , [ 3 , 2 ] , [ 2 , 0 ] , [ 0 , 4 ] , [ 4 , 5 ] , [ 5 , 1 ] , [ 5 , 7 ] , [ 7 , 6 ] , [ 6 , 4 ] , [ 6 , 2 ] , [ 7 , 3 ] ] \u4e3a\u4e86 \u67e5\u770b \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 OpenCV \u7a97\u53e3 \u6765 \u663e\u793a \u76f8\u673a \u8f93\u51fa \u3002 # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u5c06 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for bb in bounding _ box _ set : # Filter for distance from ego vehicle if bb . location . distance ( vehicle . get _ transform ( ) . location ) < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the bounding box . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = bb . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : # Cycle through the vertices verts = [ v for v in bb . get _ world _ vertices ( carla . Transform ( ) ) ] for edge in edges : # Join the vertices into edges p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) # Draw the edges into the camera output cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) # Now draw the image into the OpenCV display window cv2 . imshow ( ' ImageWindowName ' , img ) # Break the loop if the user presses the Q key if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break # Close the OpenCV display window when the game loop stops cv2 . destroyAllWindows ( ) \u73b0\u5728 \u6211\u4eec \u5c06 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u6e32\u67d3 \u5230 \u56fe\u50cf \u4e2d \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e2d \u89c2\u5bdf \u5b83\u4eec \u3002","title":"\u6e32\u67d3 \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_6","text":"\u6211\u4eec \u53ef\u80fd \u8fd8 \u60f3 \u6e32\u67d3 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846 \uff0c \u7279\u522b \u662f \u8f66\u8f86 \u7684 \u8fb9\u754c \u6846 \u3002 \u9996\u5148 \uff0c \u8ba9 \u6211\u4eec \u5728 \u4eff\u771f \u4e2d \u6dfb\u52a0 \u4e00\u4e9b \u5176\u4ed6 \u8f66\u8f86 \uff1a for i in range ( 50 ) : vehicle _ bp = random . choice ( bp _ lib . filter ( ' vehicle ' ) ) npc = world . try _ spawn _ actor ( vehicle _ bp , random . choice ( spawn _ points ) ) if npc : npc . set _ autopilot ( True ) \u68c0\u7d22 \u7b2c\u4e00 \u4e00\u5f20 \u7b2c\u4e00\u5f20 \u56fe\u50cf \u5e76 \u50cf \u4ee5\u524d \u4e00\u6837 \u8bbe\u7f6e OpenCV \u663e\u793a \u7a97\u53e3 \uff1a # Retrieve the first image world . tick ( ) image = image _ queue . get ( ) # Reshape the raw data into an RGB array img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Display the image in an OpenCV display window cv2 . namedWindow ( ' ImageWindowName ' , cv2 . WINDOW _ AUTOSIZE ) cv2 . imshow ( ' ImageWindowName ' , img ) cv2 . waitKey ( 1 ) \u73b0\u5728 \u6211\u4eec \u4f7f\u7528 \u4fee\u6539 \u540e \u7684 \u6e38\u620f \u5faa\u73af \u6765 \u7ed8\u5236 \u8f66\u8f86 \u8fb9\u754c \u6846 \uff1a while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] for edge in edges : p1 = get _ image _ point ( verts [ edge [ 0 ] ] , K , world _ 2 _ camera ) p2 = get _ image _ point ( verts [ edge [ 1 ] ] , K , world _ 2 _ camera ) cv2 . line ( img , ( int ( p1 [ 0 ] ) , int ( p1 [ 1 ] ) ) , ( int ( p2 [ 0 ] ) , int ( p2 [ 1 ] ) ) , ( 255 , 0 , 0 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( )","title":"\u8f66\u8f86 \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_7","text":"\u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u68c0\u6d4b \u4e8c\u7ef4 \u8fb9\u754c \u6846\u800c \u4e0d\u662f \u4e0a\u9762 \u6f14\u793a \u7684 \u4e09\u7ef4 \u8fb9\u754c \u6846\u662f \u5f88 \u5e38\u89c1 \u7684 \u3002 \u524d\u9762 \u7684 \u811a\u672c \u53ef\u4ee5 \u8f7b\u677e \u6269\u5c55 \u4ee5 \u751f\u6210 \u4e8c\u7ef4 \u8fb9\u754c \u6846 \u3002 \u6211\u4eec \u53ea \u9700\u8981 \u4f7f\u7528 \u4e09\u7ef4 \u8fb9\u754c \u6846 \u7684 \u672b\u7aef \u5373\u53ef \u3002 \u5bf9\u4e8e \u6e32\u67d3 \u7684 \u6bcf\u4e2a \u8fb9\u754c \u6846 \uff0c \u6211\u4eec \u627e\u5230 \u56fe\u50cf \u5750\u6807 \u4e2d \u6700 \u5de6\u8fb9 \u3001 \u6700 \u53f3\u8fb9 \u3001 \u6700\u9ad8 \u548c \u6700\u4f4e \u7684 \u6295\u5f71 \u9876\u70b9 \u3002 while True : # Retrieve and reshape the image world . tick ( ) image = image _ queue . get ( ) img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : # Filter out the ego vehicle if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) # Filter for the vehicles within 50m if dist < 50 : # Calculate the dot product between the forward vector # of the vehicle and the vector between the vehicle # and the other vehicle . We threshold this dot product # to limit to drawing bounding boxes IN FRONT OF THE CAMERA forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) http : / / host . robots . ox . ac . uk / pascal / VOC / verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) # Find the rightmost vertex if p [ 0 ] > x _ max : x _ max = p [ 0 ] # Find the leftmost vertex if p [ 0 ] < x _ min : x _ min = p [ 0 ] # Find the highest vertex if p [ 1 ] > y _ max : y _ max = p [ 1 ] # Find the lowest vertex if p [ 1 ] < y _ min : y _ min = p [ 1 ] cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ min ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ max ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ min ) , int ( y _ min ) ) , ( int ( x _ min ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . line ( img , ( int ( x _ max ) , int ( y _ min ) ) , ( int ( x _ max ) , int ( y _ max ) ) , ( 0 , 0 , 255 , 255 ) , 1 ) cv2 . imshow ( ' ImageWindowName ' , img ) if cv2 . waitKey ( 1 ) = = ord ( ' q ' ) : break cv2 . destroyAllWindows ( )","title":"\u4e8c\u7ef4 \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#_8","text":"\u6e32\u67d3 \u8fb9\u754c \u6846 \u5bf9\u4e8e \u6211\u4eec \u786e\u4fdd \u8fb9\u754c \u6846 \u5bf9\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u662f \u6b63\u786e \u7684 \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5982\u679c \u6211\u4eec \u60f3 \u5728 \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u65f6 \u5b9e\u9645 \u4f7f\u7528 \u5b83\u4eec \uff0c \u6211\u4eec \u5c06 \u9700\u8981 \u5bfc\u51fa \u5b83\u4eec \u3002 \u7528\u4e8e \u81ea\u52a8 \u9a7e\u9a76 \u548c \u7269\u4f53 \u68c0\u6d4b \u7684 \u5e38\u89c1 \u6570\u636e \u5b58\u50a8 \u5e93 \u4f7f\u7528 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u683c\u5f0f \uff0c \u4f8b\u5982 KITTI \u6216 PASCAL VOC \u6216 MicroSoft COCO \u3002","title":"\u5bfc\u51fa \u8fb9\u754c \u6846"},{"location":"tuto_G_bounding_boxes/#pascal-voc","text":"\u8fd9\u4e9b \u6570\u636e \u96c6 \u901a\u5e38 \u4f7f\u7528 JSON \u6216 XML \u683c\u5f0f \u6765 \u5b58\u50a8 \u6ce8\u91ca \u3002 PASCAL VOC \u683c\u5f0f \u6709 \u4e00\u4e2a \u65b9\u4fbf \u7684 Python \u5e93 \u3002 from pascal _ voc _ writer import Writer ... ... ... while True : # Retrieve the image world . tick ( ) image = image _ queue . get ( ) # Get the camera matrix world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) frame _ path = ' output / % 06d ' % image . frame # Save the image image . save _ to _ disk ( frame _ path + ' . png ' ) # Initialize the exporter writer = Writer ( frame _ path + ' . png ' , image _ w , image _ h ) for npc in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : if npc . id ! = vehicle . id : bb = npc . bounding _ box dist = npc . get _ transform ( ) . location . distance ( vehicle . get _ transform ( ) . location ) if dist < 50 : forward _ vec = vehicle . get _ transform ( ) . get _ forward _ vector ( ) ray = npc . get _ transform ( ) . location - vehicle . get _ transform ( ) . location if forward _ vec . dot ( ray ) > 1 : p1 = get _ image _ point ( bb . location , K , world _ 2 _ camera ) verts = [ v for v in bb . get _ world _ vertices ( npc . get _ transform ( ) ) ] x _ max = - 10000 x _ min = 10000 y _ max = - 10000 y _ min = 10000 for vert in verts : p = get _ image _ point ( vert , K , world _ 2 _ camera ) if p [ 0 ] > x _ max : x _ max = p [ 0 ] if p [ 0 ] < x _ min : x _ min = p [ 0 ] if p [ 1 ] > y _ max : y _ max = p [ 1 ] if p [ 1 ] < y _ min : y _ min = p [ 1 ] # Add the object to the frame ( ensure it is inside the image ) if x _ min > 0 and x _ max < image _ w and y _ min > 0 and y _ max < image _ h : writer . addObject ( ' vehicle ' , x _ min , y _ min , x _ max , y _ max ) # Save the bounding boxes in the scene writer . save ( frame _ path + ' . xml ' ) \u5bf9\u4e8e \u4eff\u771f \u7684 \u6bcf\u4e2a \u6e32\u67d3 \u5e27 \uff0c \u60a8 \u73b0\u5728 \u5c06 \u5bfc\u51fa \u4e00\u4e2a \u968f\u9644 \u7684 XML \u6587\u4ef6 \uff0c \u5176\u4e2d \u5305\u542b \u5e27 \u4e2d \u8fb9\u754c \u6846 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 PASCAL VOC \u683c\u5f0f \u4e2d \uff0c XML \u6587\u4ef6 \u5305\u542b \u6d89\u53ca \u968f\u9644 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u3001 \u56fe\u50cf \u5c3a\u5bf8 \u7684 \u4fe1\u606f \uff0c \u5982\u679c \u9700\u8981 \uff0c \u8fd8 \u53ef\u4ee5 \u5305\u62ec \u8f66\u8f86 \u7c7b\u578b \u7b49 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 < ! -- Example PASCAL VOC format file -- > < annotation > < folder > output < / folder > < filename > 023235 . png < / filename > < path > / home / matt / Documents / temp / output / 023235 . png < / path > < source > < database > Unknown < / database > < / source > < size > < width > 800 < / width > < height > 600 < / height > < depth > 3 < / depth > < / size > < segmented > 0 < / segmented > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 503 < / xmin > < ymin > 310 < / ymin > < xmax > 511 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < object > < name > vehicle < / name > < pose > Unspecified < / pose > < truncated > 0 < / truncated > < difficult > 0 < / difficult > < bndbox > < xmin > 490 < / xmin > < ymin > 310 < / ymin > < xmax > 498 < / xmax > < ymax > 321 < / ymax > < / bndbox > < / object > < / annotation >","title":"Pascal VOC \u683c\u5f0f"},{"location":"tuto_G_bounding_boxes/#coco","text":"\u53e6 \u4e00\u79cd \u6d41\u884c \u7684 \u5bfc\u51fa \u683c\u5f0f \u662f MicroSoft COCO \u3002 COCO \u683c\u5f0f \u4f7f\u7528 JSON \u6587\u4ef6 \u6765 \u4fdd\u5b58 \u5bf9 \u56fe\u50cf \u548c \u6ce8\u91ca \u7684 \u5f15\u7528 \u3002 \u8be5 \u683c\u5f0f \u5305\u62ec \u5355\u4e2a JSON \u6587\u4ef6 \u5b57\u6bb5 \u4e2d \u7684 \u56fe\u50cf \u548c \u6ce8\u91ca \uff0c \u4ee5\u53ca \u6709\u5173 \u6570\u636e \u96c6 \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u7684 \u4fe1\u606f \u3002 \u4e0e \u67d0\u4e9b \u5176\u4ed6 \u683c\u5f0f \u76f8\u6bd4 \uff0c \u5bf9 \u6240\u6709 \u6536\u96c6 \u7684 \u56fe\u50cf \u548c \u6240\u6709 \u76f8\u5173 \u6ce8\u91ca \u7684 \u5f15\u7528 \u90fd \u4f4d\u4e8e \u540c\u4e00 \u6587\u4ef6 \u4e2d \u3002 \u60a8 \u5e94\u8be5 \u521b\u5efa \u4e00\u4e2a \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u793a\u4f8b \u7684 JSON \u5b57\u5178 \uff1a simulation _ dataset = { \" info \" : { } , \" licenses \" : [ { \" url \" : \" http : / / creativecommons . org / licenses / by - nc - sa / 2.0 / \" , \" id \" : 1 , \" name \" : \" Attribution - NonCommercial - ShareAlike License \" } ] , \" images \" : [ ... , { \" license \" : 1 , \" file _ name \" : \" 023235 . png \" , \" height \" : 600 , \" width \" : 800 , \" date _ captured \" : \" 2022 - 04 - 14 17 : 02 : 52 \" , \" id \" : 23235 } , ... ] , \" categories \" : [ ... { \" supercategory \" : \" vehicle \" , \" id \" : 10 , \" name \" : \" vehicle \" } , ... ] , \" annotations \" : [ ... , { \" segmentation \" : [ ] , \" area \" : 9262.89 , \" iscrowd \" : 0 , \" image _ id \" : 23235 , \" bbox \" : [ 503.3 , 310.4 , 118.3 , 78.3 ] } , ... ] } \u4fe1\u606f \u548c \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u90e8\u5206 \u5e94 \u76f8\u5e94 \u586b\u5199 \u6216 \u7559\u7a7a \u3002 \u4eff\u771f \u4e2d \u7684 \u56fe\u50cf \u5e94 \u5b58\u50a8 \u5728 images \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u7684 \u6570\u7ec4 \u4e2d \u3002 \u8fb9\u754c \u6846\u5e94 \u5b58\u50a8 \u5728 \u5177\u6709 \u5339\u914d image _ id \u7684 annotations \u5b57\u5178 \u5b57\u6bb5 \u4e2d \u3002 \u8fb9\u754c \u6846 \u5b58\u50a8 \u4e3a [ x _ min , y _ min , width , height ] \u3002 \u7136\u540e \u53ef\u4ee5 \u4f7f\u7528 Python JSON \u5e93 \u5c06 \u5b57\u5178 \u4fdd\u5b58 \u4e3a JSON \u6587\u4ef6 \uff1a import json with open ( ' simulation _ data . json ' , ' w ' ) as json _ file : json . dump ( simulation _ dataset , json _ file ) \u6709\u5173 COCO \u6570\u636e \u683c\u5f0f \u6570\u636e\u683c\u5f0f \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u8bf7 \u53c2\u89c1 \u6b64\u5904 \u3002 \u5e94\u8be5 \u6ce8\u610f \u7684 \u662f \uff0c \u5728 \u672c \u6559\u7a0b \u4e2d \u6211\u4eec \u6ca1\u6709 \u8003\u8651 \u91cd\u53e0 \u7684 \u8fb9\u754c \u6846 \u3002 \u4e3a\u4e86 \u5728 \u91cd\u53e0 \u7684 \u60c5\u51b5 \u4e0b \u8bc6\u522b \u524d\u666f \u8fb9\u754c \u6846 \uff0c \u9700\u8981 \u8fdb\u884c \u989d\u5916 \u7684 \u5de5\u4f5c \u3002","title":"\u5fae\u8f6f COCO \u683c\u5f0f"},{"location":"tuto_G_carsim_integration/","text":"CarSim \u96c6\u6210 Carla \u4e0e CarSim \u7684 \u96c6\u6210 \u5141\u8bb8 \u5c06 Carla \u4e2d \u7684 \u8f66\u8f86 \u63a7\u5236 \u8f6c\u53d1 \u5230 CarSim \u3002 CarSim \u5c06 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u6240\u6709 \u5fc5\u9700 \u7684 \u7269\u7406 \u8ba1\u7b97 \uff0c \u5e76 \u5c06 \u65b0 \u72b6\u6001 \u8fd4\u56de \u7ed9 Carla \u3002 \u672c\u9875 \u5411 \u60a8 \u5c55\u793a \u5982\u4f55 \u751f\u6210 . sim \u6587\u4ef6 \uff0c \u89e3\u91ca Carla \u548c CarSim \u4e4b\u95f4 \u7684 \u8f66\u8f86 \u5c3a\u5bf8 \u5982\u4f55 \u5173\u8054 \uff0c \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 CarSim \u96c6\u6210 \u5728 Carla \u4e0a \u8fd0\u884c \u4eff\u771f \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u8bbe\u7f6e CarSim \u751f\u6210 . sim \u6587\u4ef6 \u5728 Windows \u4e0a \u5728 Ubuntu \u4e0a \u8f66\u8f86 \u5c3a\u5bf8 \u8fd0\u884c \u4eff\u771f \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 CarSim \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u624d\u80fd \u542f\u52a8 \u5e76 \u8fd0\u884c \u8f6f\u4ef6 \u8be5\u8f6f\u4ef6 \u3002 \u5982\u679c \u60a8 \u76ee\u524d \u6ca1\u6709 CarSim \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u8054\u7cfb \u56e2\u961f \u4ee5 \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u3002 \u8981 \u5141\u8bb8 \u4e0e \u865a\u5e7b \u5f15\u64ce \u901a\u4fe1 \uff0c \u60a8 \u9700\u8981 \u5b89\u88c5 \u9002\u7528 \u4e8e \u865a\u5e7b \u5f15\u64ce 4.24 \u7684 VehicleSim Dynamics \u63d2\u4ef6 \uff08 \u7248\u672c 2020.0 \uff09 \u3002 \u6709\u5173 \u67e5\u627e \u63d2\u4ef6 \u7279\u5b9a \u7248\u672c \u7684 \u4fe1\u606f \uff0c \u8bf7 \u68c0\u67e5 \u6b64 \u94fe\u63a5 \u3002 \u63d2\u4ef6 \u7684 \u5b89\u88c5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff1a \u5bf9\u4e8e Windows : \u5728 \u8fd9\u91cc \u83b7\u53d6 \u63d2\u4ef6 \u3002 \u5bf9\u4e8e Ubuntu : \u5728 \u8fd9\u91cc \u4e0b\u8f7d \u63d2\u4ef6 \u3002 \u5c06 \u6587\u4ef6 CarSim . Build . cs \u66ff\u6362 \u4e3a \u6b64\u5904 \u627e\u5230 \u7684 \u6587\u4ef6 \uff0c \u4ee5\u4fbf \u4e3a Ubuntu \u4f7f\u7528 \u6b63\u786e \u7684 \u6c42\u89e3 \u5668 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \u7248\u672c \uff0c \u5219 \u53ef\u4ee5 \u8df3\u8fc7 \u6b64 \u6b65\u9aa4 \u3002 \u6253\u5305 \u7248\u672c \u5df2 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \u7f16\u8bd1 \uff0c \u4f46 \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u5219 \u9700\u8981 \u4f7f\u7528 -- carsim \u6807\u5fd7 \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u8bf7 \u5728 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u4f7f\u7528 -- carsim \u6807\u5fd7 \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a make launch ARGS = \" -- carsim \" \u8bbe\u7f6e CarSim \u4ee5\u4e0b \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u751f\u6210 \u8fd0\u884c \u4eff\u771f \u6240 \u9700 \u7684 . sim \u6587\u4ef6 \u3002 \u8fd8\u6709 \u5173\u4e8e Carla \u548c CarSim \u4e4b\u95f4 \u8f66\u8f86 \u5c3a\u5bf8 \u5173\u7cfb \u7684 \u8be6\u7ec6 \u91cd\u8981 \u4fe1\u606f \u3002 \u751f\u6210 . sim \u6587\u4ef6 \u8be5 . sim \u6587\u4ef6 \u63cf\u8ff0 \u4e86 \u8981 \u5728 Carla \u548c CarSim \u4e2d \u8fd0\u884c \u7684 \u4eff\u771f \u3002 \u63d2\u4ef6 \u9700\u8981 \u6b64 \u6587\u4ef6 \u624d\u80fd \u8fd0\u884c \u4eff\u771f \u3002 \u76ee\u524d \u65e0\u6cd5 \u5728 Ubuntu \u4e0a \u751f\u6210 \u6b64 \u6587\u4ef6 \uff0c \u4f46\u662f \u6211\u4eec \u5c06 \u5728 \u4e0b\u9762 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u4e4b\u524d \u751f\u6210 \u7684 \u6587\u4ef6 \u5728 Ubuntu \u4e0a \u8fd0\u884c \u4eff\u771f \u3002 \u5728 Windows \u4e0a \u5728 CarSim \u4e0a \u914d\u7f6e \u5b8c \u6240\u6709 \u53c2\u6570 \u540e \uff0c \u4f7f\u7528 GUI \u751f\u6210 . sim \u6587\u4ef6 \uff0c \u5982\u4e0b \u6240\u793a \uff1a \u751f\u6210 \u7684 . sim \u6587\u4ef6 \u5e94 \u5982\u4e0b \u6240\u793a \uff1a SIMFILE SET _ MACRO $ ( ROOT _ FILE _ NAME ) $ Run _ dd7a828d - 4b14 - 4c77 - 9d09 - 1974401d6b25 SET _ MACRO $ ( OUTPUT _ PATH ) $ D : \\ carsim \\ Data \\ Results SET _ MACRO $ ( WORK _ DIR ) $ D : \\ carsim \\ Data \\ SET _ MACRO $ ( OUTPUT _ FILE _ PREFIX ) $ $ ( WORK _ DIR ) $ Results \\ Run _ dd7a828d - 4b14 - 4c77 - 9d09 - 1974401d6b25 \\ LastRun FILEBASE $ ( OUTPUT _ FILE _ PREFIX ) $ INPUT $ ( WORK _ DIR ) $ Results \\ $ ( ROOT _ FILE _ NAME ) $ \\ Run _ all . par INPUTARCHIVE $ ( OUTPUT _ FILE _ PREFIX ) $ _ all . par ECHO $ ( OUTPUT _ FILE _ PREFIX ) $ _ echo . par FINAL $ ( OUTPUT _ FILE _ PREFIX ) $ _ end . par LOGFILE $ ( OUTPUT _ FILE _ PREFIX ) $ _ log . txt ERDFILE $ ( OUTPUT _ FILE _ PREFIX ) $ . vs PROGDIR D : \\ carsim \\ DATADIR D : \\ carsim \\ Data \\ GUI _ REFRESH _ V CarSim _ RefreshEvent _ 7760 RESOURCEDIR D : \\ carsim \\ \\ Resources \\ PRODUCT _ ID CarSim PRODUCT _ VER 2020.0 ANIFILE D : \\ carsim \\ Data \\ runs \\ animator . par VEHICLE _ CODE i _ i EXT _ MODEL _ STEP 0.00050000 PORTS _ IMP 0 PORTS _ EXP 0 DLLFILE D : \\ carsim \\ Programs \\ solvers \\ carsim _ 64 . dll END \u5728 Ubuntu \u4e0a \u65e0\u6cd5 \u5728 Ubuntu \u4e0a \u901a\u8fc7 GUI \u521b\u5efa . sim \u6587\u4ef6 \u3002 \u4e3a\u4e86 \u7ee7\u7eed \uff0c \u60a8 \u9700\u8981 \u6267\u884c \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u5728 Windows \u4e2d \u751f\u6210 . sim \u6587\u4ef6 \u6216 \u4f7f\u7528 \u4e0b\u9762 \u7684 \u6587\u4ef6 \u6a21\u677f \u3002 \u4fee\u6539 \u8be5 . sim \u6587\u4ef6 \uff0c \u4f7f \u53d8\u91cf INPUT , INPUTARCHIVE , LOGFILE \u7b49 \u6307\u5411 Ubuntu \u7cfb\u7edf \u4e2d \u7684 \u76f8\u5e94 \u6587\u4ef6 \u3002 \u66ff\u6362 DLLFILE \u884c\u4ee5 \u6307\u5411 CarSim \u89e3 \u7b97\u5668 \uff0c \u5728 \u9ed8\u8ba4 \u5b89\u88c5 \u4e2d \uff0c \u8be5\u89e3 \u7b97\u5668 \u5c06 \u4e3a SOFILE / opt / carsim _ 2020.0 / lib64 / libcarsim . so.2020 . 0 . \u751f\u6210 \u7684 \u6587\u4ef6 \u5e94 \u4e0e \u6b64 \u7c7b\u4f3c \uff1a SIMFILE FILEBASE / path / to / LastRun INPUT / path / to / Run _ all . par INPUTARCHIVE / path / to / LastRun _ all . par ECHO / path / to / LastRun _ echo . par FINAL / path / to / LastRun _ end . par LOGFILE / path / to / LastRun _ log . txt ERDFILE / path / to / LastRun . vs PROGDIR / opt / carsim _ 2020.0 / lib64 / DATADIR . PRODUCT _ ID CarSim PRODUCT _ VER 2020.0 VEHICLE _ CODE i _ i SOFILE / opt / carsim _ 2020.0 / lib64 / libcarsim . so.2020 . 0 END \u8f66\u8f86 \u5c3a\u5bf8 \u5c3d\u7ba1 CarSim \u5141\u8bb8 \u60a8 \u6307\u5b9a \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u5c3a\u5bf8 \uff0c \u4f46 \u76ee\u524d CarSim \u8f66\u8f86 \u548c Carla \u8f66\u8f86 \u4e4b\u95f4 \u6ca1\u6709 \u5173\u8054 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u4e24\u4e2a \u9879\u76ee \u4e2d \u7684 \u8f66\u8f86 \u5c06 \u5177\u6709 \u4e0d\u540c \u7684 \u5c3a\u5bf8 \u3002 Carla \u8f66\u8f86 \u7684 \u4f5c\u7528 \u53ea\u662f \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u5145\u5f53 \u5360\u4f4d \u7b26 \u3002 \u7b14\u8bb0 Carla \u548c CarSim \u4e2d \u7684 \u8f66\u8f86 \u5c3a\u5bf8 \u4e4b\u95f4 \u6ca1\u6709 \u76f8\u5173 \u76f8\u5173\u6027 \u3002 Carla \u8f66\u8f86 \u53ea\u662f \u4e00\u4e2a \u4eff\u771f \u5360\u4f4d \u7b26 \u3002 \u8fd0\u884c \u4eff\u771f \u8fd0\u884c \u4eff\u771f \u65f6\u6240 \u9700\u8981 \u505a \u7684 \u5c31\u662f \u5728 \u751f\u6210 \u8f66\u8f86 \u65f6 \u542f\u7528 CarSim \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 . sim \u6587\u4ef6 \u8def\u5f84 \u4f20\u9012 \u7ed9 Python API \u7684 \u65b9\u6cd5 \u6765 \u5b8c\u6210 \uff1a vehicle . enable _ carsim ( < path _ to _ ue4simfile . sim > ) \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u8f66\u8f86 \u7684 \u6240\u6709 \u8f93\u5165 \u63a7\u4ef6 \u90fd \u5c06 \u8f6c\u53d1 \u5230 CarSim \u3002 CarSim \u5c06 \u66f4\u65b0 \u7269\u7406 \u5e76 \u5c06 \u8f66\u8f86 \u72b6\u6001 \uff08 \u53d8\u6362 \uff09 \u53d1\u9001 \u56de Carla \u8f66\u8f86 \u3002 \u4eff\u771f \u5b8c\u6210 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u50cf \u5f80\u5e38 \u4e00\u6837 \u5206\u6790 CarSim \u4e2d \u7684 \u6240\u6709 \u6570\u636e \u3002","title":"CarSim \u96c6\u6210"},{"location":"tuto_G_carsim_integration/#carsim","text":"Carla \u4e0e CarSim \u7684 \u96c6\u6210 \u5141\u8bb8 \u5c06 Carla \u4e2d \u7684 \u8f66\u8f86 \u63a7\u5236 \u8f6c\u53d1 \u5230 CarSim \u3002 CarSim \u5c06 \u5bf9 \u8f66\u8f86 \u8fdb\u884c \u6240\u6709 \u5fc5\u9700 \u7684 \u7269\u7406 \u8ba1\u7b97 \uff0c \u5e76 \u5c06 \u65b0 \u72b6\u6001 \u8fd4\u56de \u7ed9 Carla \u3002 \u672c\u9875 \u5411 \u60a8 \u5c55\u793a \u5982\u4f55 \u751f\u6210 . sim \u6587\u4ef6 \uff0c \u89e3\u91ca Carla \u548c CarSim \u4e4b\u95f4 \u7684 \u8f66\u8f86 \u5c3a\u5bf8 \u5982\u4f55 \u5173\u8054 \uff0c \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 CarSim \u96c6\u6210 \u5728 Carla \u4e0a \u8fd0\u884c \u4eff\u771f \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u8bbe\u7f6e CarSim \u751f\u6210 . sim \u6587\u4ef6 \u5728 Windows \u4e0a \u5728 Ubuntu \u4e0a \u8f66\u8f86 \u5c3a\u5bf8 \u8fd0\u884c \u4eff\u771f","title":"CarSim \u96c6\u6210"},{"location":"tuto_G_carsim_integration/#_1","text":"\u60a8 \u9700\u8981 CarSim \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u624d\u80fd \u542f\u52a8 \u5e76 \u8fd0\u884c \u8f6f\u4ef6 \u8be5\u8f6f\u4ef6 \u3002 \u5982\u679c \u60a8 \u76ee\u524d \u6ca1\u6709 CarSim \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u8054\u7cfb \u56e2\u961f \u4ee5 \u83b7\u53d6 \u53d6\u4fe1 \u4fe1\u606f \u83b7\u53d6\u4fe1\u606f \u3002 \u8981 \u5141\u8bb8 \u4e0e \u865a\u5e7b \u5f15\u64ce \u901a\u4fe1 \uff0c \u60a8 \u9700\u8981 \u5b89\u88c5 \u9002\u7528 \u4e8e \u865a\u5e7b \u5f15\u64ce 4.24 \u7684 VehicleSim Dynamics \u63d2\u4ef6 \uff08 \u7248\u672c 2020.0 \uff09 \u3002 \u6709\u5173 \u67e5\u627e \u63d2\u4ef6 \u7279\u5b9a \u7248\u672c \u7684 \u4fe1\u606f \uff0c \u8bf7 \u68c0\u67e5 \u6b64 \u94fe\u63a5 \u3002 \u63d2\u4ef6 \u7684 \u5b89\u88c5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \uff1a \u5bf9\u4e8e Windows : \u5728 \u8fd9\u91cc \u83b7\u53d6 \u63d2\u4ef6 \u3002 \u5bf9\u4e8e Ubuntu : \u5728 \u8fd9\u91cc \u4e0b\u8f7d \u63d2\u4ef6 \u3002 \u5c06 \u6587\u4ef6 CarSim . Build . cs \u66ff\u6362 \u4e3a \u6b64\u5904 \u627e\u5230 \u7684 \u6587\u4ef6 \uff0c \u4ee5\u4fbf \u4e3a Ubuntu \u4f7f\u7528 \u6b63\u786e \u7684 \u6c42\u89e3 \u5668 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \u7248\u672c \uff0c \u5219 \u53ef\u4ee5 \u8df3\u8fc7 \u6b64 \u6b65\u9aa4 \u3002 \u6253\u5305 \u7248\u672c \u5df2 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \u7f16\u8bd1 \uff0c \u4f46 \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u5219 \u9700\u8981 \u4f7f\u7528 -- carsim \u6807\u5fd7 \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u8bf7 \u5728 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u4ee5 \u4f7f\u7528 -- carsim \u6807\u5fd7 \u7f16\u8bd1 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a make launch ARGS = \" -- carsim \"","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_G_carsim_integration/#carsim_1","text":"\u4ee5\u4e0b \u90e8\u5206 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u751f\u6210 \u8fd0\u884c \u4eff\u771f \u6240 \u9700 \u7684 . sim \u6587\u4ef6 \u3002 \u8fd8\u6709 \u5173\u4e8e Carla \u548c CarSim \u4e4b\u95f4 \u8f66\u8f86 \u5c3a\u5bf8 \u5173\u7cfb \u7684 \u8be6\u7ec6 \u91cd\u8981 \u4fe1\u606f \u3002","title":"\u8bbe\u7f6e CarSim"},{"location":"tuto_G_carsim_integration/#sim","text":"\u8be5 . sim \u6587\u4ef6 \u63cf\u8ff0 \u4e86 \u8981 \u5728 Carla \u548c CarSim \u4e2d \u8fd0\u884c \u7684 \u4eff\u771f \u3002 \u63d2\u4ef6 \u9700\u8981 \u6b64 \u6587\u4ef6 \u624d\u80fd \u8fd0\u884c \u4eff\u771f \u3002 \u76ee\u524d \u65e0\u6cd5 \u5728 Ubuntu \u4e0a \u751f\u6210 \u6b64 \u6587\u4ef6 \uff0c \u4f46\u662f \u6211\u4eec \u5c06 \u5728 \u4e0b\u9762 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u4e4b\u524d \u751f\u6210 \u7684 \u6587\u4ef6 \u5728 Ubuntu \u4e0a \u8fd0\u884c \u4eff\u771f \u3002","title":"\u751f\u6210 . sim \u6587\u4ef6"},{"location":"tuto_G_carsim_integration/#windows","text":"\u5728 CarSim \u4e0a \u914d\u7f6e \u5b8c \u6240\u6709 \u53c2\u6570 \u540e \uff0c \u4f7f\u7528 GUI \u751f\u6210 . sim \u6587\u4ef6 \uff0c \u5982\u4e0b \u6240\u793a \uff1a \u751f\u6210 \u7684 . sim \u6587\u4ef6 \u5e94 \u5982\u4e0b \u6240\u793a \uff1a SIMFILE SET _ MACRO $ ( ROOT _ FILE _ NAME ) $ Run _ dd7a828d - 4b14 - 4c77 - 9d09 - 1974401d6b25 SET _ MACRO $ ( OUTPUT _ PATH ) $ D : \\ carsim \\ Data \\ Results SET _ MACRO $ ( WORK _ DIR ) $ D : \\ carsim \\ Data \\ SET _ MACRO $ ( OUTPUT _ FILE _ PREFIX ) $ $ ( WORK _ DIR ) $ Results \\ Run _ dd7a828d - 4b14 - 4c77 - 9d09 - 1974401d6b25 \\ LastRun FILEBASE $ ( OUTPUT _ FILE _ PREFIX ) $ INPUT $ ( WORK _ DIR ) $ Results \\ $ ( ROOT _ FILE _ NAME ) $ \\ Run _ all . par INPUTARCHIVE $ ( OUTPUT _ FILE _ PREFIX ) $ _ all . par ECHO $ ( OUTPUT _ FILE _ PREFIX ) $ _ echo . par FINAL $ ( OUTPUT _ FILE _ PREFIX ) $ _ end . par LOGFILE $ ( OUTPUT _ FILE _ PREFIX ) $ _ log . txt ERDFILE $ ( OUTPUT _ FILE _ PREFIX ) $ . vs PROGDIR D : \\ carsim \\ DATADIR D : \\ carsim \\ Data \\ GUI _ REFRESH _ V CarSim _ RefreshEvent _ 7760 RESOURCEDIR D : \\ carsim \\ \\ Resources \\ PRODUCT _ ID CarSim PRODUCT _ VER 2020.0 ANIFILE D : \\ carsim \\ Data \\ runs \\ animator . par VEHICLE _ CODE i _ i EXT _ MODEL _ STEP 0.00050000 PORTS _ IMP 0 PORTS _ EXP 0 DLLFILE D : \\ carsim \\ Programs \\ solvers \\ carsim _ 64 . dll END","title":"\u5728 Windows \u4e0a"},{"location":"tuto_G_carsim_integration/#ubuntu","text":"\u65e0\u6cd5 \u5728 Ubuntu \u4e0a \u901a\u8fc7 GUI \u521b\u5efa . sim \u6587\u4ef6 \u3002 \u4e3a\u4e86 \u7ee7\u7eed \uff0c \u60a8 \u9700\u8981 \u6267\u884c \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u5728 Windows \u4e2d \u751f\u6210 . sim \u6587\u4ef6 \u6216 \u4f7f\u7528 \u4e0b\u9762 \u7684 \u6587\u4ef6 \u6a21\u677f \u3002 \u4fee\u6539 \u8be5 . sim \u6587\u4ef6 \uff0c \u4f7f \u53d8\u91cf INPUT , INPUTARCHIVE , LOGFILE \u7b49 \u6307\u5411 Ubuntu \u7cfb\u7edf \u4e2d \u7684 \u76f8\u5e94 \u6587\u4ef6 \u3002 \u66ff\u6362 DLLFILE \u884c\u4ee5 \u6307\u5411 CarSim \u89e3 \u7b97\u5668 \uff0c \u5728 \u9ed8\u8ba4 \u5b89\u88c5 \u4e2d \uff0c \u8be5\u89e3 \u7b97\u5668 \u5c06 \u4e3a SOFILE / opt / carsim _ 2020.0 / lib64 / libcarsim . so.2020 . 0 . \u751f\u6210 \u7684 \u6587\u4ef6 \u5e94 \u4e0e \u6b64 \u7c7b\u4f3c \uff1a SIMFILE FILEBASE / path / to / LastRun INPUT / path / to / Run _ all . par INPUTARCHIVE / path / to / LastRun _ all . par ECHO / path / to / LastRun _ echo . par FINAL / path / to / LastRun _ end . par LOGFILE / path / to / LastRun _ log . txt ERDFILE / path / to / LastRun . vs PROGDIR / opt / carsim _ 2020.0 / lib64 / DATADIR . PRODUCT _ ID CarSim PRODUCT _ VER 2020.0 VEHICLE _ CODE i _ i SOFILE / opt / carsim _ 2020.0 / lib64 / libcarsim . so.2020 . 0 END","title":"\u5728 Ubuntu \u4e0a"},{"location":"tuto_G_carsim_integration/#_2","text":"\u5c3d\u7ba1 CarSim \u5141\u8bb8 \u60a8 \u6307\u5b9a \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u5c3a\u5bf8 \uff0c \u4f46 \u76ee\u524d CarSim \u8f66\u8f86 \u548c Carla \u8f66\u8f86 \u4e4b\u95f4 \u6ca1\u6709 \u5173\u8054 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u4e24\u4e2a \u9879\u76ee \u4e2d \u7684 \u8f66\u8f86 \u5c06 \u5177\u6709 \u4e0d\u540c \u7684 \u5c3a\u5bf8 \u3002 Carla \u8f66\u8f86 \u7684 \u4f5c\u7528 \u53ea\u662f \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u5145\u5f53 \u5360\u4f4d \u7b26 \u3002 \u7b14\u8bb0 Carla \u548c CarSim \u4e2d \u7684 \u8f66\u8f86 \u5c3a\u5bf8 \u4e4b\u95f4 \u6ca1\u6709 \u76f8\u5173 \u76f8\u5173\u6027 \u3002 Carla \u8f66\u8f86 \u53ea\u662f \u4e00\u4e2a \u4eff\u771f \u5360\u4f4d \u7b26 \u3002","title":"\u8f66\u8f86 \u5c3a\u5bf8"},{"location":"tuto_G_carsim_integration/#_3","text":"\u8fd0\u884c \u4eff\u771f \u65f6\u6240 \u9700\u8981 \u505a \u7684 \u5c31\u662f \u5728 \u751f\u6210 \u8f66\u8f86 \u65f6 \u542f\u7528 CarSim \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 . sim \u6587\u4ef6 \u8def\u5f84 \u4f20\u9012 \u7ed9 Python API \u7684 \u65b9\u6cd5 \u6765 \u5b8c\u6210 \uff1a vehicle . enable _ carsim ( < path _ to _ ue4simfile . sim > ) \u53d1\u9001 \u9001\u5230 \u53d1\u9001\u5230 \u8f66\u8f86 \u7684 \u6240\u6709 \u8f93\u5165 \u63a7\u4ef6 \u90fd \u5c06 \u8f6c\u53d1 \u5230 CarSim \u3002 CarSim \u5c06 \u66f4\u65b0 \u7269\u7406 \u5e76 \u5c06 \u8f66\u8f86 \u72b6\u6001 \uff08 \u53d8\u6362 \uff09 \u53d1\u9001 \u56de Carla \u8f66\u8f86 \u3002 \u4eff\u771f \u5b8c\u6210 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u50cf \u5f80\u5e38 \u4e00\u6837 \u5206\u6790 CarSim \u4e2d \u7684 \u6240\u6709 \u6570\u636e \u3002","title":"\u8fd0\u884c \u4eff\u771f"},{"location":"tuto_G_chrono/","text":"Chrono \u96c6\u6210 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 Chrono \u662f \u4ec0\u4e48 \u3001 \u5982\u4f55 \u5728 Carla \u4e2d \u4f7f\u7528 \u5b83 \u4ee5\u53ca \u96c6\u6210 \u4e2d \u6d89\u53ca \u7684 \u9650\u5236 \u3002 Chrono \u9879\u76ee \u5728 Carla \u4e0a \u4f7f\u7528 Chrono \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u542f\u7528 Chrono \u7269\u7406 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 Chrono \u9879\u76ee Project Chrono \u662f \u4e00\u6b3e \u5f00\u6e90 \u591a \u7269\u7406 \u573a \u4eff\u771f \u5f15\u64ce \uff0c \u5b83 \u4f7f\u7528 \u57fa\u4e8e \u6a21\u677f \u7684 \u65b9\u6cd5 \u63d0\u4f9b \u9ad8\u5ea6 \u771f\u5b9e \u7684 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002 Carla \u4e2d \u7684 \u96c6\u6210 \u5141\u8bb8 \u7528\u6237 \u5728 \u5bfc\u822a \u5730\u56fe \u65f6 \u5229\u7528 Chrono \u6a21\u677f \u6765 \u4eff\u771f \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002 \u5728 Carla \u4e0a \u4f7f\u7528 Chrono \u8981 \u4f7f\u7528 Chrono \u96c6\u6210 \uff0c \u60a8 \u5fc5\u987b \u9996\u5148 \u5728 \u542f\u52a8 \u65f6 \u4f7f\u7528 \u6807\u7b7e \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u7136\u540e \u4f7f\u7528 PythonAPI \u5728 \u751f\u6210 \u7684 \u8f66\u8f86 \u4e0a \u542f\u7528 \u5b83 \u3002 \u8bf7 \u9605\u8bfb \u4ee5 \u83b7\u5f97 \u66f4 \u591a \u8be6\u60c5 \u3002 \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4ec5\u5f53 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 Chrono \u6807\u7b7e \u7f16\u8bd1 \u65f6 \uff0c Chrono \u624d \u4f1a \u5de5\u4f5c \u3002 \u5728 \u4ece Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7248\u672c \u4e2d \uff0c \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a make launch ARGS = \" -- chrono \" \u6ce8\u610f \u4f7f\u7528 \u4e0a\u8ff0 \u547d\u4ee4 \u7f16\u8bd1 \u540e \uff0c \u518d \u4f7f\u7528 make launch \u547d\u4ee4 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5219 \u7f16\u8bd1 \u62a5\u9519 \uff1a Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ include \\ Eigen \\ src / Core / util / ForwardDeclarations . h ( 58 ) : error C4067 : \u9884 \u5904\u7406 \u7406\u5668 \u5904\u7406\u5668 \u6307\u4ee4 \u540e \u6709 \u610f\u5916 \u6807\u8bb0 - \u5e94 \u8f93\u5165 \u6362\u884c \u6362\u884c\u7b26 \uff0c \u539f\u56e0 \u4e0d\u660e \u3002 \u542f\u7528 Chrono \u7269\u7406 Chrono \u7269\u7406 \u662f \u901a\u8fc7 Actor \u7c7b \u63d0\u4f9b \u7684 enable _ chrono _ physics \u65b9\u6cd5 \u542f\u7528 \u7684 \u3002 \u9664\u4e86 \u5b50 \u6b65\u9aa4 \u548c\u5b50 \u6b65\u9aa4 \u589e\u91cf \u65f6\u95f4 \u7684 \u503c \u4e4b\u5916 \uff0c \u5b83 \u8fd8 \u9700\u8981 \u4e09\u4e2a \u6a21\u677f \u6587\u4ef6 \u548c \u4e00\u4e2a \u57fa\u672c \u8def\u5f84 \u6765 \u5b9a\u4f4d \u8fd9\u4e9b \u6587\u4ef6 \uff1a base _ path : \u5305\u542b \u6a21\u677f \u6587\u4ef6 \u7684 \u76ee\u5f55 \u8def\u5f84 \u3002 \u8fd9 \u5bf9\u4e8e \u786e\u4fdd \u4ece \u6a21\u677f \u6587\u4ef6 \u5f15\u7528 \u7684 \u8f85\u52a9 \u6587\u4ef6 \u5177\u6709 \u7528\u4e8e \u641c\u7d22 \u7684 \u516c\u5171 \u57fa\u672c \u8def\u5f84 \u662f \u5fc5\u8981 \u7684 \u3002 vehicle _ json : \u76f8\u5bf9 \u4e8e base _ path \u7684 \u8f66\u8f86 \u6a21\u677f \u6587\u4ef6 . tire _ json : \u76f8\u5bf9 \u4e8e base _ path \u7684 \u8f6e\u80ce \u6a21\u677f \u6587\u4ef6 \u3002 powertrain _ json : \u76f8\u5bf9 \u4e8e base _ path \u52a8\u529b \u603b\u6210 \u6a21\u677f \u6587\u4ef6 \u3002 \u91cd\u8981 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \u60a8 \u7684 \u8def\u5f84 \u3002 \u4e0d \u6b63\u786e \u6216 \u7f3a\u5931 \u7684 \u8def\u5f84 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u865a\u5e7b \u5f15\u64ce \u5d29\u6e83 \u3002 Build / chrono - install / share / chrono / data / vehicle \u4e2d \u63d0\u4f9b \u4e86 \u9002\u7528 \u4e8e \u4e0d\u540c \u8f66\u8f86 \u7684 \u5404\u79cd \u793a\u4f8b \u6a21\u677f \u6587\u4ef6 \u3002 \u9605\u8bfb Chrono \u5de5\u7a0b \u7684 \u6587\u6863 \uff0c \u4e86\u89e3 \u6709\u5173 \u5176 \u8f66\u8f86 \u793a\u4f8b \u4ee5\u53ca \u5982\u4f55 \u521b\u5efa \u6a21\u677f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff0c \u4e86\u89e3 \u5982\u4f55 \u542f\u7528 Chrono \u7269\u7406 \uff1a # \u751f\u6210 \u8f66\u8f86 vehicle = world . spawn _ actor ( bp , spawn _ point ) # \u8bbe\u7f6e \u57fa\u7840 \u8def\u5f84 base _ path = \" D : / work / workspace / carla / Build / chrono - install / data / vehicle / \" # \u8bbe\u7f6e \u6a21\u677f \u6587\u4ef6 vehicle _ json = \" sedan / vehicle / Sedan _ Vehicle . json \" powertrain _ json = \" sedan / powertrain / Sedan _ SimpleMapPowertrain . json \" tire _ json = \" sedan / tire / Sedan _ TMeasyTire . json \" # \u542f\u7528 Chrono \u7269\u7406 \u7279\u6027 vehicle . enable _ chrono _ physics ( 5000 , 0.002 , vehicle _ json , powertrain _ json , tire _ json , base _ path ) \u60a8 \u53ef\u4ee5 \u4f7f\u7528 PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c manual _ control _ chrono . py \u5c1d\u8bd5 Chrono \u7269\u7406 \u96c6\u6210 \u3002 \u8fd0\u884c \u811a\u672c \u540e \uff0c \u6309 Ctrl + o \u542f\u7528 Chrono \u3002 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u6b64 \u96c6\u6210 \u4e0d \u652f\u6301 \u78b0\u649e \u3002 \u5f53 \u53d1\u751f \u78b0\u649e \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u6062\u590d \u4e3a Carla \u9ed8\u8ba4 \u7269\u7406 \u72b6\u6001 \u3002","title":"Chrono \u96c6\u6210"},{"location":"tuto_G_chrono/#chrono","text":"\u672c \u6307\u5357 \u6982\u8ff0 \u4e86 Chrono \u662f \u4ec0\u4e48 \u3001 \u5982\u4f55 \u5728 Carla \u4e2d \u4f7f\u7528 \u5b83 \u4ee5\u53ca \u96c6\u6210 \u4e2d \u6d89\u53ca \u7684 \u9650\u5236 \u3002 Chrono \u9879\u76ee \u5728 Carla \u4e0a \u4f7f\u7528 Chrono \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u542f\u7528 Chrono \u7269\u7406 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027","title":"Chrono \u96c6\u6210"},{"location":"tuto_G_chrono/#chrono_1","text":"Project Chrono \u662f \u4e00\u6b3e \u5f00\u6e90 \u591a \u7269\u7406 \u573a \u4eff\u771f \u5f15\u64ce \uff0c \u5b83 \u4f7f\u7528 \u57fa\u4e8e \u6a21\u677f \u7684 \u65b9\u6cd5 \u63d0\u4f9b \u9ad8\u5ea6 \u771f\u5b9e \u7684 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002 Carla \u4e2d \u7684 \u96c6\u6210 \u5141\u8bb8 \u7528\u6237 \u5728 \u5bfc\u822a \u5730\u56fe \u65f6 \u5229\u7528 Chrono \u6a21\u677f \u6765 \u4eff\u771f \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3002","title":"Chrono \u9879\u76ee"},{"location":"tuto_G_chrono/#carla-chrono","text":"\u8981 \u4f7f\u7528 Chrono \u96c6\u6210 \uff0c \u60a8 \u5fc5\u987b \u9996\u5148 \u5728 \u542f\u52a8 \u65f6 \u4f7f\u7528 \u6807\u7b7e \u914d\u7f6e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff0c \u7136\u540e \u4f7f\u7528 PythonAPI \u5728 \u751f\u6210 \u7684 \u8f66\u8f86 \u4e0a \u542f\u7528 \u5b83 \u3002 \u8bf7 \u9605\u8bfb \u4ee5 \u83b7\u5f97 \u66f4 \u591a \u8be6\u60c5 \u3002","title":"\u5728 Carla \u4e0a \u4f7f\u7528 Chrono"},{"location":"tuto_G_chrono/#_1","text":"\u4ec5\u5f53 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4f7f\u7528 Chrono \u6807\u7b7e \u7f16\u8bd1 \u65f6 \uff0c Chrono \u624d \u4f1a \u5de5\u4f5c \u3002 \u5728 \u4ece Carla \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7248\u672c \u4e2d \uff0c \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \uff1a make launch ARGS = \" -- chrono \" \u6ce8\u610f \u4f7f\u7528 \u4e0a\u8ff0 \u547d\u4ee4 \u7f16\u8bd1 \u540e \uff0c \u518d \u4f7f\u7528 make launch \u547d\u4ee4 \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5219 \u7f16\u8bd1 \u62a5\u9519 \uff1a Unreal \\ CarlaUE4 \\ Plugins \\ Carla \\ CarlaDependencies \\ include \\ Eigen \\ src / Core / util / ForwardDeclarations . h ( 58 ) : error C4067 : \u9884 \u5904\u7406 \u7406\u5668 \u5904\u7406\u5668 \u6307\u4ee4 \u540e \u6709 \u610f\u5916 \u6807\u8bb0 - \u5e94 \u8f93\u5165 \u6362\u884c \u6362\u884c\u7b26 \uff0c \u539f\u56e0 \u4e0d\u660e \u3002","title":"\u914d\u7f6e \u670d\u52a1\u5668"},{"location":"tuto_G_chrono/#chrono_2","text":"Chrono \u7269\u7406 \u662f \u901a\u8fc7 Actor \u7c7b \u63d0\u4f9b \u7684 enable _ chrono _ physics \u65b9\u6cd5 \u542f\u7528 \u7684 \u3002 \u9664\u4e86 \u5b50 \u6b65\u9aa4 \u548c\u5b50 \u6b65\u9aa4 \u589e\u91cf \u65f6\u95f4 \u7684 \u503c \u4e4b\u5916 \uff0c \u5b83 \u8fd8 \u9700\u8981 \u4e09\u4e2a \u6a21\u677f \u6587\u4ef6 \u548c \u4e00\u4e2a \u57fa\u672c \u8def\u5f84 \u6765 \u5b9a\u4f4d \u8fd9\u4e9b \u6587\u4ef6 \uff1a base _ path : \u5305\u542b \u6a21\u677f \u6587\u4ef6 \u7684 \u76ee\u5f55 \u8def\u5f84 \u3002 \u8fd9 \u5bf9\u4e8e \u786e\u4fdd \u4ece \u6a21\u677f \u6587\u4ef6 \u5f15\u7528 \u7684 \u8f85\u52a9 \u6587\u4ef6 \u5177\u6709 \u7528\u4e8e \u641c\u7d22 \u7684 \u516c\u5171 \u57fa\u672c \u8def\u5f84 \u662f \u5fc5\u8981 \u7684 \u3002 vehicle _ json : \u76f8\u5bf9 \u4e8e base _ path \u7684 \u8f66\u8f86 \u6a21\u677f \u6587\u4ef6 . tire _ json : \u76f8\u5bf9 \u4e8e base _ path \u7684 \u8f6e\u80ce \u6a21\u677f \u6587\u4ef6 \u3002 powertrain _ json : \u76f8\u5bf9 \u4e8e base _ path \u52a8\u529b \u603b\u6210 \u6a21\u677f \u6587\u4ef6 \u3002 \u91cd\u8981 \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \u60a8 \u7684 \u8def\u5f84 \u3002 \u4e0d \u6b63\u786e \u6216 \u7f3a\u5931 \u7684 \u8def\u5f84 \u53ef\u80fd \u4f1a \u5bfc\u81f4 \u865a\u5e7b \u5f15\u64ce \u5d29\u6e83 \u3002 Build / chrono - install / share / chrono / data / vehicle \u4e2d \u63d0\u4f9b \u4e86 \u9002\u7528 \u4e8e \u4e0d\u540c \u8f66\u8f86 \u7684 \u5404\u79cd \u793a\u4f8b \u6a21\u677f \u6587\u4ef6 \u3002 \u9605\u8bfb Chrono \u5de5\u7a0b \u7684 \u6587\u6863 \uff0c \u4e86\u89e3 \u6709\u5173 \u5176 \u8f66\u8f86 \u793a\u4f8b \u4ee5\u53ca \u5982\u4f55 \u521b\u5efa \u6a21\u677f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff0c \u4e86\u89e3 \u5982\u4f55 \u542f\u7528 Chrono \u7269\u7406 \uff1a # \u751f\u6210 \u8f66\u8f86 vehicle = world . spawn _ actor ( bp , spawn _ point ) # \u8bbe\u7f6e \u57fa\u7840 \u8def\u5f84 base _ path = \" D : / work / workspace / carla / Build / chrono - install / data / vehicle / \" # \u8bbe\u7f6e \u6a21\u677f \u6587\u4ef6 vehicle _ json = \" sedan / vehicle / Sedan _ Vehicle . json \" powertrain _ json = \" sedan / powertrain / Sedan _ SimpleMapPowertrain . json \" tire _ json = \" sedan / tire / Sedan _ TMeasyTire . json \" # \u542f\u7528 Chrono \u7269\u7406 \u7279\u6027 vehicle . enable _ chrono _ physics ( 5000 , 0.002 , vehicle _ json , powertrain _ json , tire _ json , base _ path ) \u60a8 \u53ef\u4ee5 \u4f7f\u7528 PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c manual _ control _ chrono . py \u5c1d\u8bd5 Chrono \u7269\u7406 \u96c6\u6210 \u3002 \u8fd0\u884c \u811a\u672c \u540e \uff0c \u6309 Ctrl + o \u542f\u7528 Chrono \u3002","title":"\u542f\u7528 Chrono \u7269\u7406"},{"location":"tuto_G_chrono/#_2","text":"\u6b64 \u96c6\u6210 \u4e0d \u652f\u6301 \u78b0\u649e \u3002 \u5f53 \u53d1\u751f \u78b0\u649e \u65f6 \uff0c \u8f66\u8f86 \u5c06 \u6062\u590d \u4e3a Carla \u9ed8\u8ba4 \u7269\u7406 \u72b6\u6001 \u3002","title":"\u5c40\u9650\u6027"},{"location":"tuto_G_control_vehicle_physics/","text":"\u63a7\u5236 \u548c \u76d1\u63a7 \u8f66\u8f86 \u7269\u7406 \u7279\u6027 \u53ef\u4ee5 \u8c03\u6574 \u8f66\u8f86 \u53ca\u5176 \u8f66\u8f6e \u7684 \u7269\u7406 \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u66f4\u6539 \u4ec5 \u5e94\u7528 \u4e8e \u8fd0\u884c \u65f6 \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u7ed3\u675f \u65f6\u5c06\u503c \u8bbe\u7f6e \u56de \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u901a\u8fc7 carla . VehiclePhysicsControl \u5bf9\u8c61 \u8fdb\u884c \u63a7\u5236 \uff0c \u8be5 \u5bf9\u8c61 \u8fd8 \u901a\u8fc7 carla . WheelPhysicsControl \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f66\u8f6e \u7269\u7406 \u7279\u6027 \u7684 \u63a7\u5236 \u3002 \u8f66\u8f86 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b \u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e \u8f66\u8f86 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b import carla import random def main ( ) : # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # \u83b7\u5f97 World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # \u4ece \u4e16\u754c \u83b7\u5f97 \u4e00\u8f86 \u968f\u673a \u8f66\u8f86 \uff08 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e00\u8f86 \uff09 vehicle = random . choice ( [ actor for actor in actors if ' vehicle ' in actor . type _ id ] ) # \u521b\u5efa \u8f66\u8f6e \u7269\u7406 \u63a7\u5236 front _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) front _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) rear _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) rear _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) wheels = [ front _ left _ wheel , front _ right _ wheel , rear _ left _ wheel , rear _ right _ wheel ] # \u6539\u53d8 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 physics _ control = vehicle . get _ physics _ control ( ) physics _ control . torque _ curve = [ carla . Vector2D ( x = 0 , y = 400 ) , carla . Vector2D ( x = 1300 , y = 600 ) ] physics _ control . max _ rpm = 10000 physics _ control . moi = 1.0 physics _ control . damping _ rate _ full _ throttle = 0.0 physics _ control . use _ gear _ autobox = True physics _ control . gear _ switch _ time = 0.5 physics _ control . clutch _ strength = 10 physics _ control . mass = 10000 physics _ control . drag _ coefficient = 0.25 physics _ control . steering _ curve = [ carla . Vector2D ( x = 0 , y = 1 ) , carla . Vector2D ( x = 100 , y = 1 ) , carla . Vector2D ( x = 300 , y = 1 ) ] physics _ control . use _ sweep _ wheel _ collision = True physics _ control . wheels = wheels # \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 vehicle . apply _ physics _ control ( physics _ control ) print ( physics _ control ) if __ name __ = = ' __ main __ ' : main ( ) \u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e \u901a\u8fc7 \u8c03\u7528 Actor . enable _ debug _ telemetry \u65b9\u6cd5 \u53ef\u4ee5 \u5b9e\u73b0 \u8f66\u8f86 \u9065\u6d4b \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8fd9 \u5c06 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a97\u53e3 \u4e0a \u63d0\u4f9b \u591a\u4e2a \u6307\u6807 \u7684 \u56fe\u5f62 \u89c6\u56fe \u4ee5\u53ca \u4eff\u771f \u7a97\u53e3 \u4e0a \u7684 \u8f66\u8f86 \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4f4d\u4e8e PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c \u4e2d \u7684 \u9065\u6d4b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 manual _ control . py \u3002 \u6309 T \u6fc0\u6d3b \u9065\u6d4b \u89c6\u56fe \u3002","title":"\u63a7\u5236 \u8f66\u8f86 \u7269\u7406 \u6a21\u578b"},{"location":"tuto_G_control_vehicle_physics/#_1","text":"\u53ef\u4ee5 \u8c03\u6574 \u8f66\u8f86 \u53ca\u5176 \u8f66\u8f6e \u7684 \u7269\u7406 \u5c5e\u6027 \u3002 \u8fd9\u4e9b \u66f4\u6539 \u4ec5 \u5e94\u7528 \u4e8e \u8fd0\u884c \u65f6 \uff0c \u5e76\u4e14 \u5728 \u6267\u884c \u7ed3\u675f \u65f6\u5c06\u503c \u8bbe\u7f6e \u56de \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8fd9\u4e9b \u5c5e\u6027 \u901a\u8fc7 carla . VehiclePhysicsControl \u5bf9\u8c61 \u8fdb\u884c \u63a7\u5236 \uff0c \u8be5 \u5bf9\u8c61 \u8fd8 \u901a\u8fc7 carla . WheelPhysicsControl \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u6bcf\u4e2a \u8f66\u8f6e \u7269\u7406 \u7279\u6027 \u7684 \u63a7\u5236 \u3002 \u8f66\u8f86 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b \u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e","title":"\u63a7\u5236 \u548c \u76d1\u63a7 \u8f66\u8f86 \u7269\u7406 \u7279\u6027"},{"location":"tuto_G_control_vehicle_physics/#_2","text":"import carla import random def main ( ) : # \u8fde\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) # \u83b7\u5f97 World and Actors world = client . get _ world ( ) actors = world . get _ actors ( ) # \u4ece \u4e16\u754c \u83b7\u5f97 \u4e00\u8f86 \u968f\u673a \u8f66\u8f86 \uff08 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e00\u8f86 \uff09 vehicle = random . choice ( [ actor for actor in actors if ' vehicle ' in actor . type _ id ] ) # \u521b\u5efa \u8f66\u8f6e \u7269\u7406 \u63a7\u5236 front _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) front _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 2.0 , damping _ rate = 1.5 , max _ steer _ angle = 70.0 , long _ stiff _ value = 1000 ) rear _ left _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) rear _ right _ wheel = carla . WheelPhysicsControl ( tire _ friction = 3.0 , damping _ rate = 1.5 , max _ steer _ angle = 0.0 , long _ stiff _ value = 1000 ) wheels = [ front _ left _ wheel , front _ right _ wheel , rear _ left _ wheel , rear _ right _ wheel ] # \u6539\u53d8 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 physics _ control = vehicle . get _ physics _ control ( ) physics _ control . torque _ curve = [ carla . Vector2D ( x = 0 , y = 400 ) , carla . Vector2D ( x = 1300 , y = 600 ) ] physics _ control . max _ rpm = 10000 physics _ control . moi = 1.0 physics _ control . damping _ rate _ full _ throttle = 0.0 physics _ control . use _ gear _ autobox = True physics _ control . gear _ switch _ time = 0.5 physics _ control . clutch _ strength = 10 physics _ control . mass = 10000 physics _ control . drag _ coefficient = 0.25 physics _ control . steering _ curve = [ carla . Vector2D ( x = 0 , y = 1 ) , carla . Vector2D ( x = 100 , y = 1 ) , carla . Vector2D ( x = 300 , y = 1 ) ] physics _ control . use _ sweep _ wheel _ collision = True physics _ control . wheels = wheels # \u5bf9 \u8f66\u8f86 \u5e94\u7528 \u8f66\u8f86 \u7269\u7406 \u63a7\u5236 vehicle . apply _ physics _ control ( physics _ control ) print ( physics _ control ) if __ name __ = = ' __ main __ ' : main ( )","title":"\u8f66\u8f86 \u63a7\u5236\u4ee3\u7801 \u793a\u4f8b"},{"location":"tuto_G_control_vehicle_physics/#_3","text":"\u901a\u8fc7 \u8c03\u7528 Actor . enable _ debug _ telemetry \u65b9\u6cd5 \u53ef\u4ee5 \u5b9e\u73b0 \u8f66\u8f86 \u9065\u6d4b \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u8fd9 \u5c06 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7a97\u53e3 \u4e0a \u63d0\u4f9b \u591a\u4e2a \u6307\u6807 \u7684 \u56fe\u5f62 \u89c6\u56fe \u4ee5\u53ca \u4eff\u771f \u7a97\u53e3 \u4e0a \u7684 \u8f66\u8f86 \u53c2\u8003 \u8003\u70b9 \u53c2\u8003\u70b9 \u3002 \u60a8 \u53ef\u4ee5 \u5c1d\u8bd5 \u4f4d\u4e8e PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c \u4e2d \u7684 \u9065\u6d4b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5de5\u5177 manual _ control . py \u3002 \u6309 T \u6fc0\u6d3b \u9065\u6d4b \u89c6\u56fe \u3002","title":"\u67e5\u770b \u8f66\u8f86 \u9065\u6d4b \u6570\u636e"},{"location":"tuto_G_control_walker_skeletons/","text":"\u884c\u4eba \u9aa8\u9abc \u63a7\u5236 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u4ecb\u7ecd \u5982\u4f55 \u901a\u8fc7 Carla Python API \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u7684 \u9aa8\u9abc \u5e76 \u4e3a \u5176 \u8bbe\u7f6e \u52a8\u753b \u3002 \u6240\u6709 \u53ef\u7528 \u7c7b \u548c \u65b9\u6cd5 \u7684 \u53c2\u8003 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u884c\u4eba \u9aa8\u9abc \u7ed3\u6784 \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u884c\u4eba \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc Note \u672c \u6587\u6863 \u5047\u8bbe \u7528\u6237 \u719f\u6089 Python API \u3002 \u3002 \u7528\u6237 \u5728 \u9605\u8bfb \u672c \u6587\u6863 \u4e4b\u524d \u5e94 \u9605\u8bfb \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u6559\u7a0b \u3002 \u6838\u5fc3 \u6982\u5ff5 \u3002 \u884c\u4eba \u9aa8\u9abc \u7ed3\u6784 \u6240\u6709 \u884c\u4eba \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u9aa8\u9abc \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u548c \u9aa8\u9abc \u540d\u79f0 \u3002 \u4e0b\u9762 \u662f \u9aa8\u67b6 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u7684 \u56fe\u50cf \u3002 crl _ root \u2514 \u2500 \u2500 crl _ hips __ C \u251c \u2500 \u2500 crl _ spine __ C \u2502 \u2514 \u2500 \u2500 crl _ spine01 __ C \u2502 \u251c \u2500 \u2500 ctrl _ shoulder __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ arm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ hand __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handThumb __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handIndex __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handRing _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ L \u2502 \u251c \u2500 \u2500 crl _ neck __ C \u2502 \u2502 \u2514 \u2500 \u2500 crl _ Head __ C \u2502 \u2502 \u251c \u2500 \u2500 crl _ eye __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ eye __ R \u2502 \u2514 \u2500 \u2500 crl _ shoulder __ R \u2502 \u2514 \u2500 \u2500 crl _ arm __ R \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ R \u2502 \u2514 \u2500 \u2500 crl _ hand __ R \u2502 \u251c \u2500 \u2500 crl _ handThumb __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handIndex __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handRing _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ R \u251c \u2500 \u2500 crl _ thigh __ L \u2502 \u2514 \u2500 \u2500 crl _ leg __ L \u2502 \u2514 \u2500 \u2500 crl _ foot __ L \u2502 \u2514 \u2500 \u2500 crl _ toe __ L \u2502 \u2514 \u2500 \u2500 crl _ toeEnd __ L \u2514 \u2500 \u2500 crl _ thigh __ R \u2514 \u2500 \u2500 crl _ leg __ R \u2514 \u2500 \u2500 crl _ foot __ R \u2514 \u2500 \u2500 crl _ toe __ R \u2514 \u2500 \u2500 crl _ toeEnd __ R \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 Carla Python API \u66f4\u6539 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u9aa8\u9abc \u53d8\u6362 \u7684 \u8be6\u7ec6 \u5206\u6b65 \u793a\u4f8b \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5bfc\u5165 \u672c\u4f8b \u4e2d \u4f7f\u7528 \u7684 \u5fc5\u8981 \u5e93 import carla import random \u521d\u59cb \u521d\u59cb\u5316 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) \u751f\u6210 \u884c\u4eba \u5728 \u5730\u56fe \u7684 \u4e00\u4e2a \u751f\u6210 \u70b9 \u751f\u6210 \u4e00\u4e2a \u968f\u673a \u884c\u4eba \u3002 world = client . get _ world ( ) blueprint = random . choice ( self . world . get _ blueprint _ library ( ) . filter ( ' walker . * ' ) ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spawn _ point = random . choice ( spawn _ points ) if spawn _ points else carla . Transform ( ) world . try _ spawn _ actor ( blueprint , spawn _ point ) \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u53ef\u4ee5 \u901a\u8fc7 \u5c06 WalkerBoneControl \u7c7b \u7684 \u5b9e\u4f8b \u4f20\u9012 \u7ed9 \u884c\u4eba \u7684 apply _ control \u51fd\u6570 \u6765 \u4fee\u6539 \u884c\u4eba \u7684 \u9aa8\u67b6 \u3002 WalkerBoneControl \u7c7b \u5305\u542b \u8981 \u4fee\u6539 \u7684 \u9aa8\u9abc \u7684 \u53d8\u6362 \u3002 \u5b83 \u7684 bone _ transforms \u6210\u5458 \u662f \u6210 \u5bf9\u503c \u5143\u7ec4 \u7684 \u5217\u8868 \uff0c \u5176\u4e2d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u503c \u662f \u9aa8\u9abc \u540d\u79f0 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u503c \u662f \u9aa8\u9abc \u53d8\u6362 \u3002 \u53ef\u4ee5 \u5728 \u6bcf\u4e2a \u523b\u5ea6 \u4e0a \u8c03\u7528 apply _ control \u51fd\u6570 \u6765 \u4e3a \u884c\u4eba \u7684 \u9aa8\u9abc \u8bbe\u7f6e \u52a8\u753b \u3002 \u6bcf\u4e2a \u53d8\u6362 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u90fd \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u53d8\u6362 \u7684 \u3002 \u56e0\u6b64 \uff0c \u5f53 \u4fee\u6539 \u7236 \u9aa8\u9abc \u7684 \u53d8\u6362 \u65f6 \uff0c \u5b50 \u9aa8\u9abc \u5728 \u6a21\u578b \u7a7a\u95f4 \u4e2d \u7684 \u53d8\u6362 \u4e5f \u4f1a \u76f8\u5bf9 \u6539\u53d8 \u3002 \u5728 \u4e0b\u9762 \u7684 \u793a\u4f8b \u4e2d \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u624b \u8bbe\u7f6e \u4e3a \u56f4\u7ed5 \u524d\u8f74 \u65cb\u8f6c 90 \u5ea6 \uff0c \u5e76\u4e14 \u4f4d\u7f6e \u8bbe\u7f6e \u4e3a \u539f\u70b9 \u3002 control = carla . WalkerBoneControl ( ) first _ tuple = ( ' crl _ hand __ R ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) second _ tuple = ( ' crl _ hand __ L ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) control . bone _ transforms = [ first _ tuple , second _ tuple ] world . player . apply _ control ( control )","title":"\u63a7\u5236 \u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_control_walker_skeletons/#_1","text":"\u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u4ecb\u7ecd \u5982\u4f55 \u901a\u8fc7 Carla Python API \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u7684 \u9aa8\u9abc \u5e76 \u4e3a \u5176 \u8bbe\u7f6e \u52a8\u753b \u3002 \u6240\u6709 \u53ef\u7528 \u7c7b \u548c \u65b9\u6cd5 \u7684 \u53c2\u8003 \u53ef\u4ee5 \u5728 Python API \u53c2\u8003 \u4e2d \u627e\u5230 \u3002 \u884c\u4eba \u9aa8\u9abc \u7ed3\u6784 \u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u751f\u6210 \u884c\u4eba \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc Note \u672c \u6587\u6863 \u5047\u8bbe \u7528\u6237 \u719f\u6089 Python API \u3002 \u3002 \u7528\u6237 \u5728 \u9605\u8bfb \u672c \u6587\u6863 \u4e4b\u524d \u5e94 \u9605\u8bfb \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u6559\u7a0b \u3002 \u6838\u5fc3 \u6982\u5ff5 \u3002","title":"\u884c\u4eba \u9aa8\u9abc \u63a7\u5236"},{"location":"tuto_G_control_walker_skeletons/#_2","text":"\u6240\u6709 \u884c\u4eba \u90fd \u5177\u6709 \u76f8\u540c \u7684 \u9aa8\u9abc \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u548c \u9aa8\u9abc \u540d\u79f0 \u3002 \u4e0b\u9762 \u662f \u9aa8\u67b6 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u7684 \u56fe\u50cf \u3002 crl _ root \u2514 \u2500 \u2500 crl _ hips __ C \u251c \u2500 \u2500 crl _ spine __ C \u2502 \u2514 \u2500 \u2500 crl _ spine01 __ C \u2502 \u251c \u2500 \u2500 ctrl _ shoulder __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ arm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ hand __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handThumb __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handIndex __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ L \u2502 \u2502 \u251c \u2500 \u2500 crl _ handRing _ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ L \u2502 \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ L \u2502 \u251c \u2500 \u2500 crl _ neck __ C \u2502 \u2502 \u2514 \u2500 \u2500 crl _ Head __ C \u2502 \u2502 \u251c \u2500 \u2500 crl _ eye __ L \u2502 \u2502 \u2514 \u2500 \u2500 crl _ eye __ R \u2502 \u2514 \u2500 \u2500 crl _ shoulder __ R \u2502 \u2514 \u2500 \u2500 crl _ arm __ R \u2502 \u2514 \u2500 \u2500 crl _ foreArm __ R \u2502 \u2514 \u2500 \u2500 crl _ hand __ R \u2502 \u251c \u2500 \u2500 crl _ handThumb __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumb02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handThumbEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handIndex __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndex02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handIndexEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handMiddle _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddle02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handMiddleEnd __ R \u2502 \u251c \u2500 \u2500 crl _ handRing _ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing01 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRing02 __ R \u2502 \u2502 \u2514 \u2500 \u2500 crl _ handRingEnd __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky _ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky01 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinky02 __ R \u2502 \u2514 \u2500 \u2500 crl _ handPinkyEnd __ R \u251c \u2500 \u2500 crl _ thigh __ L \u2502 \u2514 \u2500 \u2500 crl _ leg __ L \u2502 \u2514 \u2500 \u2500 crl _ foot __ L \u2502 \u2514 \u2500 \u2500 crl _ toe __ L \u2502 \u2514 \u2500 \u2500 crl _ toeEnd __ L \u2514 \u2500 \u2500 crl _ thigh __ R \u2514 \u2500 \u2500 crl _ leg __ R \u2514 \u2500 \u2500 crl _ foot __ R \u2514 \u2500 \u2500 crl _ toe __ R \u2514 \u2500 \u2500 crl _ toeEnd __ R","title":"\u884c\u4eba \u9aa8\u9abc \u7ed3\u6784"},{"location":"tuto_G_control_walker_skeletons/#_3","text":"\u4ee5\u4e0b \u662f \u5982\u4f55 \u901a\u8fc7 Carla Python API \u66f4\u6539 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u9aa8\u9abc \u53d8\u6362 \u7684 \u8be6\u7ec6 \u5206\u6b65 \u793a\u4f8b","title":"\u624b\u52a8 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_control_walker_skeletons/#_4","text":"\u5bfc\u5165 \u672c\u4f8b \u4e2d \u4f7f\u7528 \u7684 \u5fc5\u8981 \u5e93 import carla import random \u521d\u59cb \u521d\u59cb\u5316 Carla \u5ba2\u6237 \u5ba2\u6237\u7aef client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 )","title":"\u8fde\u63a5 \u5230 \u4eff\u771f\u5668"},{"location":"tuto_G_control_walker_skeletons/#_5","text":"\u5728 \u5730\u56fe \u7684 \u4e00\u4e2a \u751f\u6210 \u70b9 \u751f\u6210 \u4e00\u4e2a \u968f\u673a \u884c\u4eba \u3002 world = client . get _ world ( ) blueprint = random . choice ( self . world . get _ blueprint _ library ( ) . filter ( ' walker . * ' ) ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spawn _ point = random . choice ( spawn _ points ) if spawn _ points else carla . Transform ( ) world . try _ spawn _ actor ( blueprint , spawn _ point )","title":"\u751f\u6210 \u884c\u4eba"},{"location":"tuto_G_control_walker_skeletons/#_6","text":"\u53ef\u4ee5 \u901a\u8fc7 \u5c06 WalkerBoneControl \u7c7b \u7684 \u5b9e\u4f8b \u4f20\u9012 \u7ed9 \u884c\u4eba \u7684 apply _ control \u51fd\u6570 \u6765 \u4fee\u6539 \u884c\u4eba \u7684 \u9aa8\u67b6 \u3002 WalkerBoneControl \u7c7b \u5305\u542b \u8981 \u4fee\u6539 \u7684 \u9aa8\u9abc \u7684 \u53d8\u6362 \u3002 \u5b83 \u7684 bone _ transforms \u6210\u5458 \u662f \u6210 \u5bf9\u503c \u5143\u7ec4 \u7684 \u5217\u8868 \uff0c \u5176\u4e2d \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u503c \u662f \u9aa8\u9abc \u540d\u79f0 \uff0c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u503c \u662f \u9aa8\u9abc \u53d8\u6362 \u3002 \u53ef\u4ee5 \u5728 \u6bcf\u4e2a \u523b\u5ea6 \u4e0a \u8c03\u7528 apply _ control \u51fd\u6570 \u6765 \u4e3a \u884c\u4eba \u7684 \u9aa8\u9abc \u8bbe\u7f6e \u52a8\u753b \u3002 \u6bcf\u4e2a \u53d8\u6362 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c \u90fd \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u53d8\u6362 \u7684 \u3002 \u56e0\u6b64 \uff0c \u5f53 \u4fee\u6539 \u7236 \u9aa8\u9abc \u7684 \u53d8\u6362 \u65f6 \uff0c \u5b50 \u9aa8\u9abc \u5728 \u6a21\u578b \u7a7a\u95f4 \u4e2d \u7684 \u53d8\u6362 \u4e5f \u4f1a \u76f8\u5bf9 \u6539\u53d8 \u3002 \u5728 \u4e0b\u9762 \u7684 \u793a\u4f8b \u4e2d \uff0c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u7684 \u624b \u8bbe\u7f6e \u4e3a \u56f4\u7ed5 \u524d\u8f74 \u65cb\u8f6c 90 \u5ea6 \uff0c \u5e76\u4e14 \u4f4d\u7f6e \u8bbe\u7f6e \u4e3a \u539f\u70b9 \u3002 control = carla . WalkerBoneControl ( ) first _ tuple = ( ' crl _ hand __ R ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) second _ tuple = ( ' crl _ hand __ L ' , carla . Transform ( rotation = carla . Rotation ( roll = 90 ) ) ) control . bone _ transforms = [ first _ tuple , second _ tuple ] world . player . apply _ control ( control )","title":"\u63a7\u5236 \u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_esmini/","text":"esmini \u4e0b\u8f7d \u4e0b\u8f7d esmini \u548c esmini - demo _ windows \u3002 \u8fd0\u884c esmini \\ bin > esmini -- window 60 60 800 400 -- osc . / esmini - demo / resources / xosc / cut - in . xosc","title":"tuto G esmini"},{"location":"tuto_G_esmini/#esmini","text":"\u4e0b\u8f7d \u4e0b\u8f7d esmini \u548c esmini - demo _ windows \u3002 \u8fd0\u884c esmini \\ bin > esmini -- window 60 60 800 400 -- osc . / esmini - demo / resources / xosc / cut - in . xosc","title":"esmini"},{"location":"tuto_G_instance_segmentation_sensor/","text":"\u5b9e\u4f8b \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b9e\u4f8b \u5206\u5272 ( Instance segmentation ) \u662f \u4e00\u79cd \u65b0\u578b \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u53ef \u4e3a \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u751f\u6210 \u552f\u4e00 \u7684 \u50cf\u7d20 \u503c \u3002 \u8fd9 \u4e0e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f62\u6210 \u5bf9\u6bd4 \uff0c \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5bf9\u4e8e \u76f8\u540c \u5bf9\u8c61 \u7c7b \u7684 \u5b9e\u4f8b \uff08 \u4f8b\u5982 \u8f66\u8f86 \uff09 \u5177\u6709 \u76f8\u540c \u7684 ID \u3002 \u8981 \u751f\u6210 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 sensor . camera . instance _ segmentation \u84dd\u56fe \uff1a instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' ) \u793a\u4f8b \u6211\u4eec \u5c06 \u9996\u5148 \u8bbe\u7f6e \u4e00\u4e2a \u5e26\u6709 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u7684 \u4e16\u754c \uff0c \u5e76 \u5728 \u573a\u666f \u4e2d \u751f\u6210 \u5927\u91cf \u8f66\u8f86 \u3002 \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 import carla import random import time import queue # Connect to client and set Carla server to synchronous mode client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) \u8bbe\u7f6e \u5b9e\u4f8b \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u5c06 \u5176 \u751f\u6210 \u5728 \u6240 \u9700 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 # Get the map spawn points and the spectator spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spectator = world . get _ spectator ( ) # Set the camera to some location in the map cam _ location = carla . Location ( x = - 46 . , y = 152 , z = 18 ) cam _ rotation = carla . Rotation ( pitch = - 21 , yaw = - 93.4 , roll = 0 ) camera _ transform = carla . Transform ( location = cam _ location , rotation = cam _ rotation ) spectator . set _ transform ( camera _ transform ) # Retrieve the semantic camera blueprint and spawn the camera instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' ) instance _ camera = world . try _ spawn _ actor ( instance _ camera _ bp , camera _ transform ) \u5728 \u6444\u50cf \u6444\u50cf\u673a \u5468\u56f4 \u751f\u6210 \u8f66\u8f86 \uff0c \u7528 \u5927\u91cf \u5bf9\u8c61 \u5b9e\u4f8b \u586b\u5145 \u573a\u666f \u3002 # Spawn vehicles in an 80m vicinity of the camera vehicle _ bp _ library = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) radius = 80 for spawn _ point in spawn _ points : vec = [ spawn _ point . location . x - cam _ location . x , spawn _ point . location . y - cam _ location . y ] if vec [ 0 ] * vec [ 0 ] + vec [ 1 ] * vec [ 1 ] < radius * radius : world . try _ spawn _ actor ( random . choice ( vehicle _ bp _ library ) , spawn _ point ) world . tick ( ) \u73b0\u5728 \u751f\u6210 \u56fe\u50cf \u3002 # Save the image to disk instance _ image _ queue = queue . Queue ( ) instance _ camera . listen ( instance _ image _ queue . put ) world . tick ( ) instance _ image = instance _ image _ queue . get ( ) instance _ image . save _ to _ disk ( ' instance _ segmentation . png ' ) \u56fe\u50cf \u8f93\u51fa \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u5b9e\u4f8b \u5206\u5272 \u56fe\u50cf \u7684 \u5b9e\u4f8b ID \u7f16\u7801 \u5728 RGB \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u7684 G \u548c B \u901a\u9053 \u4e2d \u3002 R \u901a\u9053 \u5305\u542b \u6807\u51c6 \u8bed\u4e49 ID \u3002","title":"\u5b9e\u4f8b \u5206\u5272 \u4f20\u611f\u5668"},{"location":"tuto_G_instance_segmentation_sensor/#_1","text":"\u5b9e\u4f8b \u5206\u5272 ( Instance segmentation ) \u662f \u4e00\u79cd \u65b0\u578b \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u53ef \u4e3a \u573a\u666f \u4e2d \u7684 \u6bcf\u4e2a \u5bf9\u8c61 \u751f\u6210 \u552f\u4e00 \u7684 \u50cf\u7d20 \u503c \u3002 \u8fd9 \u4e0e \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5f62\u6210 \u5bf9\u6bd4 \uff0c \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5bf9\u4e8e \u76f8\u540c \u5bf9\u8c61 \u7c7b \u7684 \u5b9e\u4f8b \uff08 \u4f8b\u5982 \u8f66\u8f86 \uff09 \u5177\u6709 \u76f8\u540c \u7684 ID \u3002 \u8981 \u751f\u6210 \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 sensor . camera . instance _ segmentation \u84dd\u56fe \uff1a instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' )","title":"\u5b9e\u4f8b \u5206\u5272 \u4f20\u611f\u5668"},{"location":"tuto_G_instance_segmentation_sensor/#_2","text":"\u6211\u4eec \u5c06 \u9996\u5148 \u8bbe\u7f6e \u4e00\u4e2a \u5e26\u6709 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u7684 \u4e16\u754c \uff0c \u5e76 \u5728 \u573a\u666f \u4e2d \u751f\u6210 \u5927\u91cf \u8f66\u8f86 \u3002 \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76 \u8bbe\u7f6e \u4e3a \u540c\u6b65 \u6a21\u5f0f \u3002 import carla import random import time import queue # Connect to client and set Carla server to synchronous mode client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) settings = world . get _ settings ( ) settings . synchronous _ mode = True world . apply _ settings ( settings ) \u8bbe\u7f6e \u5b9e\u4f8b \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u5c06 \u5176 \u751f\u6210 \u5728 \u6240 \u9700 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 # Get the map spawn points and the spectator spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) spectator = world . get _ spectator ( ) # Set the camera to some location in the map cam _ location = carla . Location ( x = - 46 . , y = 152 , z = 18 ) cam _ rotation = carla . Rotation ( pitch = - 21 , yaw = - 93.4 , roll = 0 ) camera _ transform = carla . Transform ( location = cam _ location , rotation = cam _ rotation ) spectator . set _ transform ( camera _ transform ) # Retrieve the semantic camera blueprint and spawn the camera instance _ camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . instance _ segmentation ' ) instance _ camera = world . try _ spawn _ actor ( instance _ camera _ bp , camera _ transform ) \u5728 \u6444\u50cf \u6444\u50cf\u673a \u5468\u56f4 \u751f\u6210 \u8f66\u8f86 \uff0c \u7528 \u5927\u91cf \u5bf9\u8c61 \u5b9e\u4f8b \u586b\u5145 \u573a\u666f \u3002 # Spawn vehicles in an 80m vicinity of the camera vehicle _ bp _ library = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) radius = 80 for spawn _ point in spawn _ points : vec = [ spawn _ point . location . x - cam _ location . x , spawn _ point . location . y - cam _ location . y ] if vec [ 0 ] * vec [ 0 ] + vec [ 1 ] * vec [ 1 ] < radius * radius : world . try _ spawn _ actor ( random . choice ( vehicle _ bp _ library ) , spawn _ point ) world . tick ( ) \u73b0\u5728 \u751f\u6210 \u56fe\u50cf \u3002 # Save the image to disk instance _ image _ queue = queue . Queue ( ) instance _ camera . listen ( instance _ image _ queue . put ) world . tick ( ) instance _ image = instance _ image _ queue . get ( ) instance _ image . save _ to _ disk ( ' instance _ segmentation . png ' )","title":"\u793a\u4f8b"},{"location":"tuto_G_instance_segmentation_sensor/#_3","text":"\u4fdd\u5b58 \u5230 \u78c1\u76d8 \u7684 \u5b9e\u4f8b \u5206\u5272 \u56fe\u50cf \u7684 \u5b9e\u4f8b ID \u7f16\u7801 \u5728 RGB \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u7684 G \u548c B \u901a\u9053 \u4e2d \u3002 R \u901a\u9053 \u5305\u542b \u6807\u51c6 \u8bed\u4e49 ID \u3002","title":"\u56fe\u50cf \u8f93\u51fa"},{"location":"tuto_G_openstreetmap/","text":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \uff1a \u5982\u4f55 \u4ece OpenStreetMaps \u5bfc\u51fa \u5730\u56fe \u3002 Carla \u4e2d \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u4e0d\u540c \u683c\u5f0f \u7684 \u5730\u56fe \u4ee5\u53ca \u6bcf\u79cd \u683c\u5f0f \u7684 \u9650\u5236 \u3002 \u5982\u4f55 \u5c06 \u672c\u673a . osm \u683c\u5f0f \u8f6c\u6362 \u4e3a . xodr \u3002 \u5982\u4f55 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5305\u542b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u3002 \u5982\u4f55 \u5728 Carla \u4eff\u771f \u4e2d \u8fd0\u884c \u6700\u7ec8 \u5730\u56fe \u3002 OpenStreetMap \u662f \u7531 \u6570\u5343 \u5343\u540d \u6570\u5343\u540d \u8d21\u732e \u8d21\u732e\u8005 \u5f00\u53d1 \u7684 \u5f00\u653e \u6570\u636e \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \uff0c \u5e76 \u6839\u636e Open Data Commons Open Database License \u83b7\u5f97 \u8bb8\u53ef \u3002 \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u53ef\u4ee5 \u5bfc\u51fa \u4e3a XML \u683c\u5f0f \u7684 . osm \u6587\u4ef6 \u3002 Carla \u53ef\u4ee5 \u5c06 \u6b64 \u6587\u4ef6 \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u5e76 \u4f7f\u7528 OpenDRIVE Standalone Mode \u5bfc\u5165 \u5b83 \u3002 \u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps \u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f Linux Windows \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u5bfc\u5165 Carla \u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4ece Open Street Map \u5bfc\u51fa \u6240 \u9700 \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \uff1a 1 . \u5bfc\u822a \u81f3 Open Street Map \u7f51\u7ad9 \u3002 \u60a8 \u5c06 \u5728 \u7a97\u53e3 \u53f3\u4fa7 \u770b\u5230 \u5730\u56fe \u89c6\u56fe \u548c \u4e00\u4e2a \u9762\u677f \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u5176\u4e2d \u914d\u7f6e \u4e0d\u540c \u7684 \u5730\u56fe \u56fe\u5c42 \u3001 \u67e5\u8be2 \u4e0d\u540c \u7684 \u8981\u7d20 \u3001 \u5207\u6362 \u56fe\u4f8b \u7b49 \u3002 2 . \u641c\u7d22 \u60a8 \u60f3\u8981 \u7684 \u4f4d\u7f6e \u5e76 \u653e\u5927 \u5230 \u7279\u5b9a \u533a\u57df \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5927 \u8303\u56f4 \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u5df4\u9ece \uff0c \u60a8 \u53ef\u4ee5 \u8003\u8651 \u4f7f\u7528 Carla \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 3 . \u5355\u51fb \u7a97\u53e3 \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u5bfc\u51fa ( Export ) \u201d \u4ee5 \u6253\u5f00 \u201c \u5bfc\u51fa ( Export ) \u201d \u9762\u677f \u3002 4 . \u5355\u51fb \u201c \u5bfc\u51fa \u201d \u9762\u677f \u4e2d \u7684 \u201c _ \u624b\u52a8 _ \u9009\u62e9 \u4e0d\u540c \u533a\u57df \u201d \u3002 5 . \u901a\u8fc7 \u62d6\u52a8 \u89c6 \u53e3\u4e2d \u65b9\u5f62 \u533a\u57df \u7684 \u89d2\u6765 \u9009\u62e9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u533a\u57df \u3002 6 . \u5355\u51fb \u5bfc\u51fa \u9762\u677f \u4e2d \u7684 \u5bfc\u51fa \u6309\u94ae \uff0c \u5c06 \u6240\u9009 \u533a\u57df \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u4fdd\u5b58 \u4e3a . osm \u6587\u4ef6 \u3002 \u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps \u5f00\u653e \u8857\u9053 \u5730\u56fe \u6570\u636e \u53ef\u4ee5 \u901a\u8fc7 \u4e09\u79cd \u4e0d\u540c \u7684 \u65b9\u6cd5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6570\u636e \u662f\u5426 \u4e3a \u539f\u59cb \u683c\u5f0f \uff0c \u6216\u8005 \u60a8 \u662f\u5426 \u4f7f\u7528 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8bf4\u660e \u7684 \u8f6c\u6362 \u65b9\u6cd5 \u8f6c\u6362\u65b9\u6cd5 \u6765 \u8f6c\u6362 . osm \u6587\u4ef6 \u3002 . osm \u4fdd\u7559 \u6587\u4ef6 \u662f \u6700 \u53d7\u9650 \u9650\u5236 \u53d7\u9650\u5236 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u4e3a \u5b83 \u4e0d \u5141\u8bb8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 \u53ef\u7528 . xodr \u683c\u5f0f \u9009\u9879 \uff1a \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u751f\u6210 \u5730\u56fe \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u53ef\u7528 . osm \u683c\u5f0f \u9009\u9879 \uff1a \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63d0\u4f9b \u6709\u5173 \u4e0a\u9762 \u5217\u51fa \u7684 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u672c \u8282 \u6f14\u793a \u5982\u4f55 \u4f7f\u7528 Python API \u5c06 \u6211\u4eec \u5728 \u4e0a \u4e00\u8282 \u4e2d \u5bfc\u51fa \u7684 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 carla . Osm2OdrSettings \u7c7b \u7528\u4e8e \u914d\u7f6e \u8f6c\u6362 \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u504f\u79fb \u503c \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u751f\u6210 \u3001 \u539f\u70b9 \u5750\u6807 \u7b49 \u3002 \u53ef \u914d\u7f6e \u53c2\u6570 \u7684 \u5b8c\u6574 \u5217\u8868 \u53ef\u4ee5 \u5728 Python API \u6587\u6863 \u4e2d \u627e\u5230 \u3002 carla . Osm2Odr \u7c7b \u4f7f\u7528 \u8fd9\u4e9b \u8bbe\u7f6e \u6765 \u89e3\u6790 . osm \u6570\u636e \u5e76 \u4ee5 . xodr \u683c\u5f0f \u8f93\u51fa \u3002 \u5728 Windows \u4e2d \uff0c . osm \u6587\u4ef6 \u5fc5\u987b \u7f16\u7801 \u4e3a UTF - 8 . \u8fd9 \u5728 Linux \u4e2d\u662f \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u3002 \u4ee5\u4e0b \u662f \u793a\u4f8b \u4ee3\u7801 \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6267\u884c \u6587\u4ef6 \u8f6c\u6362 \uff1a Linux # \u8bfb\u53d6 . osm \u6570\u636e f = open ( \" path / to / osm / file \" , ' r ' ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 values . settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u5230 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b \u3002 settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u4e3a opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( ) Windows import io # \u8bfb\u53d6 . osm \u6570\u636e f = io . open ( \" test \" , mode = \" r \" , encoding = \" utf - 8 \" ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u6210 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u6210 opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( ) \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f Open Street Map \u6570\u636e \u53ef\u4ee5 \u5b9a\u4e49 \u54ea\u4e9b \u8def\u53e3 \u53d7 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \u3002 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \uff0c \u60a8 \u9700\u8981 \u5728 \u5c06 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \u4e4b\u524d \u901a\u8fc7 Python API \u5728 OSM \u5730\u56fe \u8bbe\u7f6e \u4e2d \u542f\u7528 \u5b83 \uff1a # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u542f\u7528 \u4ece OSM \u6570\u636e \u4e2d \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f settings . generate _ traffic _ lights = True # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u8d28\u91cf \u53ef\u80fd \u56e0 \u63d0\u53d6 \u6570\u636e \u7684 \u533a\u57df \u800c\u5f02 \u3002 \u4e00\u4e9b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u53ef\u80fd \u5b8c\u5168 \u4e22\u5931 \u3002 \u8981 \u514b\u670d \u8fd9\u4e9b \u9650\u5236 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u5c06 \u6240\u6709 \u8def\u53e3 \u914d\u7f6e \u4e3a \u7531 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \uff1a settings . all _ junctions _ with _ traffic _ lights = True \u60a8 \u8fd8 \u53ef\u4ee5 \u6392\u9664 \u67d0\u4e9b \u9053\u8def \uff08 \u4f8b\u5982 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u94fe\u63a5 \uff09 \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff1a settings . set _ traffic _ light _ excluded _ way _ types ( [ \" motorway _ link \" ] ) \u5bfc\u5165 Carla \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u53ef\u7528 \u7684 \u4e0d\u540c \u9009\u9879 \uff0c \u901a\u8fc7 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u5c06 Open Street Map \u4fe1\u606f \u63d0\u53d6 \u4fe1\u606f\u63d0\u53d6 \u5230 Carla \u4e2d \u3002 \u6709 \u4ee5\u4e0b \u4e09\u4e2a \u9009\u9879 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff1a A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 Python \u811a\u672c \u4e2d \u7684 \u8f6c\u6362 . xodr \u6587\u4ef6 \u751f\u6210 \u5730\u56fe \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 B ) \u5c06 \u8f6c\u6362 \u540e \u7684 . xodr \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 C ) \u5c06 \u539f\u59cb . osm \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u751f\u6210 \u65b0 \u5730\u56fe \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u901a\u8fc7 \u8c03\u7528 client . generate _ opendrive _ world ( ) \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u3002 \u4f7f\u7528 carla . OpendriveGenerationParameters \u7c7b \u914d\u7f6e \u7f51\u683c \u751f\u6210 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff1a vertex _ distance = 2.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d max _ road _ length = 500.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d wall _ height = 0.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d extra _ width = 0.6 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d world = client . generate _ opendrive _ world ( xodr _ xml , carla . OpendriveGenerationParameters ( vertex _ distance = vertex _ distance , max _ road _ length = max _ road _ length , wall _ height = wall _ height , additional _ width = extra _ width , smooth _ junctions = True , enable _ mesh _ visibility = True ) ) \u7b14\u8bb0 \u5f3a\u70c8 \u63a8\u8350 \u5f3a\u70c8\u63a8\u8350 wall _ height = 0.0 \u3002 OpenStreetMap \u5c06 \u76f8\u53cd \u65b9\u5411 \u7684 \u8f66\u9053 \u5b9a\u4e49 \u4e3a \u4e0d\u540c \u7684 \u9053\u8def \u3002 \u5982\u679c \u751f\u6210 \u5899\u58c1 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u5899\u58c1 \u91cd\u53e0 \u548c \u610f\u5916 \u7684 \u78b0\u649e \u3002 B ) \u5c06 . xodr \u4f20\u9012 \u7ed9 config . py \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py - x = / path / to / xodr / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002 C ) \u5c06 . osm \u4f20\u9012 \u7ed9 config . py \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py -- osm - path = / path / to / OSM / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u65e0\u8bba \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \uff0c \u5730\u56fe \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \uff0c \u7ed3\u679c \u5e94 \u7c7b\u4f3c \u4e8e \u4e0b\u56fe \uff1a \u4f7f\u7528 OpenStreetMap \u751f\u6210 Carla \u5730\u56fe \u7684 \u7ed3\u679c \u3002 \u8b66\u544a \u751f\u6210 \u7684 \u9053\u8def \u5728 \u5730\u56fe \u7684 \u8fb9\u754c \u5904 \u7a81\u7136 \u7ed3\u675f \u3002 \u5f53 \u8f66\u8f86 \u65e0\u6cd5 \u627e\u5230 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9\u65f6 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5d29\u6e83 \u3002 \u4e3a\u4e86 \u907f\u514d \u8fd9\u79cd \u60c5\u51b5 \uff0c \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4e2d \u7684 OSM \u6a21\u5f0f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a True ( set _ osm _ mode ( ) ) \u3002 \u8fd9 \u5c06 \u5728 \u5fc5\u8981 \u65f6 \u663e\u793a \u8b66\u544a \u5e76 \u6467\u6bc1 \u8f66\u8f86 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u548c \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe"},{"location":"tuto_G_openstreetmap/#openstreetmap","text":"\u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u60a8 \u5c06 \u5b66\u4e60 \uff1a \u5982\u4f55 \u4ece OpenStreetMaps \u5bfc\u51fa \u5730\u56fe \u3002 Carla \u4e2d \u53ef\u4ee5 \u4f7f\u7528 \u7684 \u4e0d\u540c \u683c\u5f0f \u7684 \u5730\u56fe \u4ee5\u53ca \u6bcf\u79cd \u683c\u5f0f \u7684 \u9650\u5236 \u3002 \u5982\u4f55 \u5c06 \u672c\u673a . osm \u683c\u5f0f \u8f6c\u6362 \u4e3a . xodr \u3002 \u5982\u4f55 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5305\u542b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u3002 \u5982\u4f55 \u5728 Carla \u4eff\u771f \u4e2d \u8fd0\u884c \u6700\u7ec8 \u5730\u56fe \u3002 OpenStreetMap \u662f \u7531 \u6570\u5343 \u5343\u540d \u6570\u5343\u540d \u8d21\u732e \u8d21\u732e\u8005 \u5f00\u53d1 \u7684 \u5f00\u653e \u6570\u636e \u4e16\u754c \u5730\u56fe \u4e16\u754c\u5730\u56fe \uff0c \u5e76 \u6839\u636e Open Data Commons Open Database License \u83b7\u5f97 \u8bb8\u53ef \u3002 \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u53ef\u4ee5 \u5bfc\u51fa \u4e3a XML \u683c\u5f0f \u7684 . osm \u6587\u4ef6 \u3002 Carla \u53ef\u4ee5 \u5c06 \u6b64 \u6587\u4ef6 \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f \u5e76 \u4f7f\u7528 OpenDRIVE Standalone Mode \u5bfc\u5165 \u5b83 \u3002 \u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe \u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps \u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f Linux Windows \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f \u5bfc\u5165 Carla","title":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe"},{"location":"tuto_G_openstreetmap/#openstreetmap_1","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4ece Open Street Map \u5bfc\u51fa \u6240 \u9700 \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \uff1a 1 . \u5bfc\u822a \u81f3 Open Street Map \u7f51\u7ad9 \u3002 \u60a8 \u5c06 \u5728 \u7a97\u53e3 \u53f3\u4fa7 \u770b\u5230 \u5730\u56fe \u89c6\u56fe \u548c \u4e00\u4e2a \u9762\u677f \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u5176\u4e2d \u914d\u7f6e \u4e0d\u540c \u7684 \u5730\u56fe \u56fe\u5c42 \u3001 \u67e5\u8be2 \u4e0d\u540c \u7684 \u8981\u7d20 \u3001 \u5207\u6362 \u56fe\u4f8b \u7b49 \u3002 2 . \u641c\u7d22 \u60a8 \u60f3\u8981 \u7684 \u4f4d\u7f6e \u5e76 \u653e\u5927 \u5230 \u7279\u5b9a \u533a\u57df \u3002 \u7b14\u8bb0 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5927 \u8303\u56f4 \u7684 \u5730\u56fe \uff0c \u4f8b\u5982 \u5df4\u9ece \uff0c \u60a8 \u53ef\u4ee5 \u8003\u8651 \u4f7f\u7528 Carla \u7684 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 3 . \u5355\u51fb \u7a97\u53e3 \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u5bfc\u51fa ( Export ) \u201d \u4ee5 \u6253\u5f00 \u201c \u5bfc\u51fa ( Export ) \u201d \u9762\u677f \u3002 4 . \u5355\u51fb \u201c \u5bfc\u51fa \u201d \u9762\u677f \u4e2d \u7684 \u201c _ \u624b\u52a8 _ \u9009\u62e9 \u4e0d\u540c \u533a\u57df \u201d \u3002 5 . \u901a\u8fc7 \u62d6\u52a8 \u89c6 \u53e3\u4e2d \u65b9\u5f62 \u533a\u57df \u7684 \u89d2\u6765 \u9009\u62e9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u533a\u57df \u3002 6 . \u5355\u51fb \u5bfc\u51fa \u9762\u677f \u4e2d \u7684 \u5bfc\u51fa \u6309\u94ae \uff0c \u5c06 \u6240\u9009 \u533a\u57df \u7684 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u4fdd\u5b58 \u4e3a . osm \u6587\u4ef6 \u3002","title":"\u4f7f\u7528 OpenStreetMap \u5bfc\u51fa \u5730\u56fe"},{"location":"tuto_G_openstreetmap/#carla-openstreetmaps","text":"\u5f00\u653e \u8857\u9053 \u5730\u56fe \u6570\u636e \u53ef\u4ee5 \u901a\u8fc7 \u4e09\u79cd \u4e0d\u540c \u7684 \u65b9\u6cd5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u6570\u636e \u662f\u5426 \u4e3a \u539f\u59cb \u683c\u5f0f \uff0c \u6216\u8005 \u60a8 \u662f\u5426 \u4f7f\u7528 \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u8bf4\u660e \u7684 \u8f6c\u6362 \u65b9\u6cd5 \u8f6c\u6362\u65b9\u6cd5 \u6765 \u8f6c\u6362 . osm \u6587\u4ef6 \u3002 . osm \u4fdd\u7559 \u6587\u4ef6 \u662f \u6700 \u53d7\u9650 \u9650\u5236 \u53d7\u9650\u5236 \u7684 \u65b9\u6cd5 \uff0c \u56e0\u4e3a \u5b83 \u4e0d \u5141\u8bb8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 \u53ef\u7528 . xodr \u683c\u5f0f \u9009\u9879 \uff1a \u5728 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c \u4e2d \u751f\u6210 \u5730\u56fe \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u53ef\u7528 . osm \u683c\u5f0f \u9009\u9879 \uff1a \u5c06 \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla \u7684 config . py \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63d0\u4f9b \u6709\u5173 \u4e0a\u9762 \u5217\u51fa \u7684 \u9009\u9879 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u5728 Carla \u4e2d \u4f7f\u7528 OpenStreetMaps"},{"location":"tuto_G_openstreetmap/#openstreetmap-opendrive","text":"\u672c \u8282 \u6f14\u793a \u5982\u4f55 \u4f7f\u7528 Python API \u5c06 \u6211\u4eec \u5728 \u4e0a \u4e00\u8282 \u4e2d \u5bfc\u51fa \u7684 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 carla . Osm2OdrSettings \u7c7b \u7528\u4e8e \u914d\u7f6e \u8f6c\u6362 \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u504f\u79fb \u503c \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u751f\u6210 \u3001 \u539f\u70b9 \u5750\u6807 \u7b49 \u3002 \u53ef \u914d\u7f6e \u53c2\u6570 \u7684 \u5b8c\u6574 \u5217\u8868 \u53ef\u4ee5 \u5728 Python API \u6587\u6863 \u4e2d \u627e\u5230 \u3002 carla . Osm2Odr \u7c7b \u4f7f\u7528 \u8fd9\u4e9b \u8bbe\u7f6e \u6765 \u89e3\u6790 . osm \u6570\u636e \u5e76 \u4ee5 . xodr \u683c\u5f0f \u8f93\u51fa \u3002 \u5728 Windows \u4e2d \uff0c . osm \u6587\u4ef6 \u5fc5\u987b \u7f16\u7801 \u4e3a UTF - 8 . \u8fd9 \u5728 Linux \u4e2d\u662f \u4e0d\u5fc5 \u5fc5\u8981 \u4e0d\u5fc5\u8981 \u7684 \u3002 \u4ee5\u4e0b \u662f \u793a\u4f8b \u4ee3\u7801 \u7247\u6bb5 \uff0c \u663e\u793a \u5982\u4f55 \u6839\u636e \u60a8 \u7684 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u6267\u884c \u6587\u4ef6 \u8f6c\u6362 \uff1a","title":"\u5c06 OpenStreetMap \u683c\u5f0f \u8f6c\u6362 \u4e3a OpenDRIVE \u683c\u5f0f"},{"location":"tuto_G_openstreetmap/#linux","text":"# \u8bfb\u53d6 . osm \u6570\u636e f = open ( \" path / to / osm / file \" , ' r ' ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 values . settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u5230 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b \u3002 settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u4e3a opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( )","title":"Linux"},{"location":"tuto_G_openstreetmap/#windows","text":"import io # \u8bfb\u53d6 . osm \u6570\u636e f = io . open ( \" test \" , mode = \" r \" , encoding = \" utf - 8 \" ) osm _ data = f . read ( ) f . close ( ) # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u8bbe\u7f6e \u5bfc\u51fa \u6210 OpenDRIVE \u7684 OSM \u9053\u8def \u7c7b\u578b settings . set _ osm _ way _ types ( [ \" motorway \" , \" motorway _ link \" , \" trunk \" , \" trunk _ link \" , \" primary \" , \" primary _ link \" , \" secondary \" , \" secondary _ link \" , \" tertiary \" , \" tertiary _ link \" , \" unclassified \" , \" residential \" ] ) # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) # \u4fdd\u5b58 \u6210 opendrive \u6587\u4ef6 f = open ( \" path / to / output / file \" , ' w ' ) f . write ( xodr _ data ) f . close ( )","title":"Windows"},{"location":"tuto_G_openstreetmap/#_1","text":"Open Street Map \u6570\u636e \u53ef\u4ee5 \u5b9a\u4e49 \u54ea\u4e9b \u8def\u53e3 \u53d7 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \u3002 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u6b64 \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \uff0c \u60a8 \u9700\u8981 \u5728 \u5c06 . osm \u6587\u4ef6 \u8f6c\u6362 \u4e3a . xodr \u683c\u5f0f \u4e4b\u524d \u901a\u8fc7 Python API \u5728 OSM \u5730\u56fe \u8bbe\u7f6e \u4e2d \u542f\u7528 \u5b83 \uff1a # \u5b9a\u4e49 \u60f3\u8981 \u7684 \u8bbe\u7f6e \u3002 \u5728 \u8be5 \u6848\u4f8b \u4e2d\u4e3a \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 settings = carla . Osm2OdrSettings ( ) # \u542f\u7528 \u4ece OSM \u6570\u636e \u4e2d \u751f\u6210 \u4ea4\u901a \u4ea4\u901a\u706f settings . generate _ traffic _ lights = True # \u8f6c\u4e3a . xodr xodr _ data = carla . Osm2Odr . convert ( osm _ data , settings ) \u4ea4\u901a \u4ea4\u901a\u706f \u6570\u636e \u8d28\u91cf \u53ef\u80fd \u56e0 \u63d0\u53d6 \u6570\u636e \u7684 \u533a\u57df \u800c\u5f02 \u3002 \u4e00\u4e9b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \u53ef\u80fd \u5b8c\u5168 \u4e22\u5931 \u3002 \u8981 \u514b\u670d \u8fd9\u4e9b \u9650\u5236 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Python API \u5c06 \u6240\u6709 \u8def\u53e3 \u914d\u7f6e \u4e3a \u7531 \u4ea4\u901a \u4ea4\u901a\u706f \u63a7\u5236 \uff1a settings . all _ junctions _ with _ traffic _ lights = True \u60a8 \u8fd8 \u53ef\u4ee5 \u6392\u9664 \u67d0\u4e9b \u9053\u8def \uff08 \u4f8b\u5982 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u94fe\u63a5 \uff09 \u751f\u6210 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \uff1a settings . set _ traffic _ light _ excluded _ way _ types ( [ \" motorway _ link \" ] )","title":"\u751f\u6210 \u4ea4\u901a\u706f"},{"location":"tuto_G_openstreetmap/#carla","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u53ef\u7528 \u7684 \u4e0d\u540c \u9009\u9879 \uff0c \u901a\u8fc7 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u5c06 Open Street Map \u4fe1\u606f \u63d0\u53d6 \u4fe1\u606f\u63d0\u53d6 \u5230 Carla \u4e2d \u3002 \u6709 \u4ee5\u4e0b \u4e09\u4e2a \u9009\u9879 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \uff1a A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 Python \u811a\u672c \u4e2d \u7684 \u8f6c\u6362 . xodr \u6587\u4ef6 \u751f\u6210 \u5730\u56fe \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 B ) \u5c06 \u8f6c\u6362 \u540e \u7684 . xodr \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002 C ) \u5c06 \u539f\u59cb . osm \u6587\u4ef6 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u7ed9 Carla config . py \u811a\u672c \u3002 \u6b64 \u65b9\u6cd5 \u4e0d \u5141\u8bb8 \u53c2\u6570 \u5316 \u3002","title":"\u5bfc\u5165 Carla"},{"location":"tuto_G_openstreetmap/#a","text":"\u751f\u6210 \u65b0 \u5730\u56fe \u5e76 \u963b\u6b62 \u4eff\u771f \uff0c \u76f4\u5230 \u901a\u8fc7 \u8c03\u7528 client . generate _ opendrive _ world ( ) \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u3002 \u4f7f\u7528 carla . OpendriveGenerationParameters \u7c7b \u914d\u7f6e \u7f51\u683c \u751f\u6210 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u4e0b\u9762 \u7684 \u793a\u4f8b \uff1a vertex _ distance = 2.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d max _ road _ length = 500.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d wall _ height = 0.0 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d extra _ width = 0.6 # \u4ee5\u7c73 \u4e3a \u5355\u4f4d world = client . generate _ opendrive _ world ( xodr _ xml , carla . OpendriveGenerationParameters ( vertex _ distance = vertex _ distance , max _ road _ length = max _ road _ length , wall _ height = wall _ height , additional _ width = extra _ width , smooth _ junctions = True , enable _ mesh _ visibility = True ) ) \u7b14\u8bb0 \u5f3a\u70c8 \u63a8\u8350 \u5f3a\u70c8\u63a8\u8350 wall _ height = 0.0 \u3002 OpenStreetMap \u5c06 \u76f8\u53cd \u65b9\u5411 \u7684 \u8f66\u9053 \u5b9a\u4e49 \u4e3a \u4e0d\u540c \u7684 \u9053\u8def \u3002 \u5982\u679c \u751f\u6210 \u5899\u58c1 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u5899\u58c1 \u91cd\u53e0 \u548c \u610f\u5916 \u7684 \u78b0\u649e \u3002","title":"A ) \u4f7f\u7528 \u60a8 \u81ea\u5df1 \u7684 \u811a\u672c"},{"location":"tuto_G_openstreetmap/#b-xodr-configpy","text":"\u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py - x = / path / to / xodr / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002","title":"B ) \u5c06 . xodr \u4f20\u9012 \u7ed9 config . py"},{"location":"tuto_G_openstreetmap/#c-osm-configpy","text":"\u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u540e \uff0c \u5728 \u5355\u72ec \u7684 \u7ec8\u7aef \u4e2d \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u52a0\u8f7d Open Street Map \uff1a cd PythonAPI / util python3 config . py -- osm - path = / path / to / OSM / file \u5c06 \u4f7f\u7528 \u9ed8\u8ba4 \u53c2\u6570 \u3002 \u65e0\u8bba \u4f7f\u7528 \u54ea \u79cd \u65b9\u6cd5 \uff0c \u5730\u56fe \u90fd \u5c06 \u88ab \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \uff0c \u7ed3\u679c \u5e94 \u7c7b\u4f3c \u4e8e \u4e0b\u56fe \uff1a \u4f7f\u7528 OpenStreetMap \u751f\u6210 Carla \u5730\u56fe \u7684 \u7ed3\u679c \u3002 \u8b66\u544a \u751f\u6210 \u7684 \u9053\u8def \u5728 \u5730\u56fe \u7684 \u8fb9\u754c \u5904 \u7a81\u7136 \u7ed3\u675f \u3002 \u5f53 \u8f66\u8f86 \u65e0\u6cd5 \u627e\u5230 \u4e0b \u4e00\u4e2a \u8def\u5f84 \u70b9\u65f6 \uff0c \u8fd9 \u5c06 \u5bfc\u81f4 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5d29\u6e83 \u3002 \u4e3a\u4e86 \u907f\u514d \u8fd9\u79cd \u60c5\u51b5 \uff0c \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u4e2d \u7684 OSM \u6a21\u5f0f \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a True ( set _ osm _ mode ( ) ) \u3002 \u8fd9 \u5c06 \u5728 \u5fc5\u8981 \u65f6 \u663e\u793a \u8b66\u544a \u5e76 \u6467\u6bc1 \u8f66\u8f86 \u3002 \u4e0e \u6b64 \u4e3b\u9898 \u76f8\u5173 \u7684 \u4efb\u4f55 \u95ee\u9898 \u548c \u7591\u95ee \u90fd \u53ef\u4ee5 \u5728 Carla \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"C ) \u5c06 . osm \u4f20\u9012 \u7ed9 config . py"},{"location":"tuto_G_pedestrian_bones/","text":"\u901a\u8fc7 API \u83b7\u53d6 \u884c\u4eba \u771f\u5b9e \u9aa8\u9abc \u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u5fc5\u987b \u786e\u4fdd \u5b83\u4eec \u4e0d\u4ec5 \u80fd\u591f \u8bc6\u522b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u9053\u8def \u548c \u6c7d\u8f66 \uff0c \u8fd8 \u80fd\u591f \u8bc6\u522b \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u8fc7 \u9a6c\u8def \u7684 \u884c\u4eba \uff0c \u4ee5 \u786e\u4fdd \u6240\u6709 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u7684 \u5b89\u5168 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u884c\u4eba \uff0c \u4ee5 \u4eba\u4f53 \u5f62\u6001 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u548c \u8bad\u7ec3 \u6570\u636e \u3002 \u5728 \u8bb8\u591a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u5e94\u7528 \u4e2d \uff0c \u4eba\u4f53 \u59ff\u6001 \u4f30\u8ba1 \u662f \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \uff0c \u5305\u62ec \u81ea\u52a8 \u9a7e\u9a76 \u3001 \u5b89\u5168 \u3001 \u4eba\u7fa4 \u63a7\u5236 \u548c \u591a\u4e2a \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u3002 Carla \u7684 API \u63d0\u4f9b \u4e86 \u4ece \u4eff\u771f \u4e2d \u7684 \u884c\u4eba \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u7684 \u529f\u80fd \u3002 \u9aa8\u67b6 \u7531 \u4e00\u7ec4 \u9aa8\u9abc \u7ec4\u6210 \uff0c \u6bcf\u4e2a \u9aa8\u9abc \u90fd \u6709 \u4e00\u4e2a \u6839 \u8282\u70b9 \u6216 \u9876\u70b9 \u4ee5\u53ca \u4e00\u4e2a \u5b9a\u4e49 \u9aa8\u9abc \u59ff\u52bf \uff08 \u6216 \u65b9\u5411 \uff09 \u7684 \u5411\u91cf \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u63a7\u5236 \u4eff\u771f \u884c\u4eba \u7684 \u56db\u80a2 \u548c \u8eab\u4f53 \u7684 \u8fd0\u52a8 \u3002 \u901a\u8fc7 \u5c06 \u5404\u4e2a \u9aa8\u9abc \u7684 \u96c6\u5408 \u6536\u96c6 \u5728 \u4e00\u8d77 \uff0c \u53ef\u4ee5 \u6784\u5efa \u865a\u62df \u62df\u4eba \u865a\u62df\u4eba \u59ff\u52bf \u7684 \u6a21\u578b \uff0c \u8be5 \u6a21\u578b \u53ef \u7528\u4e8e \u4e0e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u4f30\u8ba1 \u7684 \u59ff\u52bf \u6a21\u578b \u8fdb\u884c \u6bd4\u8f83 \uff0c \u751a\u81f3 \u7528\u4e8e \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8fdb\u884c \u59ff\u52bf \u4f30\u8ba1 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b8c\u6210 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u884c\u4eba \u3001 \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u79fb\u52a8 \u884c\u4eba \u3001 \u7136\u540e \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u5e76 \u5c06 \u9aa8\u9abc \u6295\u5f71 \u5230 2D \u76f8\u673a \u6355\u83b7 \u4e0a \u7684 \u6b65\u9aa4 \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u9996\u5148 \uff0c \u6309\u7167 \u60a8 \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \u542f\u52a8 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728 \u72ec\u7acb \u6a21\u5f0f \u4e0b \u8fd8\u662f \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u51e0\u4e2a \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u5e93\u4ee5 \u7528\u4e8e \u6570\u5b66 \u548c \u7ed8\u56fe \u3002 \u4e3a\u4e86 \u8ba9 \u6211\u4eec \u66f4\u597d \u5730 \u63a7\u5236 \u4eff\u771f \uff0c \u6211\u4eec \u5c06 \u5728 \u672c \u6559\u7a0b \u4e2d \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u7684 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u65f6\u95f4 \u8fdb\u7a0b \u3002 import carla import random import numpy as np import math import queue import cv2 # OpenCV to manipulate and save the images # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( ) \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u751f\u6210 \u884c\u4eba \u9996\u5148 \uff0c \u6211\u4eec \u60f3 \u5728 \u4eff\u771f \u4e2d \u751f\u6210 \u4e00\u4e2a \u884c\u4eba \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 world . get _ random _ location _ from _ navigation ( ) \u5728 \u968f\u673a \u4f4d\u7f6e \u5b8c\u6210 \uff0c \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u4ece \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6536\u96c6 \u7684 \u5750\u6807 \u6765 \u9009\u62e9 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u4e00\u4e2a \u7a7a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u8981 \u751f\u6210 \u884c\u4eba \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u4f7f\u7528 \u53f3\u4fa7 \u7684 \u68c0\u67e5 \u5668 \u67e5\u8be2 \u5750\u6807 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u800c Carla \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u56e0\u6b64 \u5fc5\u987b \u8f6c\u6362 \u5355\u4f4d \u3002 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \u5c06 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5750\u6807 \u9664\u4ee5 100 \u3002 \u4e00\u65e6 \u4f60 \u9009\u62e9 \u4e86 \u5750\u6807 \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u3002 \u6211\u4eec \u8fd8 \u5c06 \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u6765 \u6536\u96c6 \u56fe\u50cf \u3002 \u6211\u4eec \u8fd8 \u9700\u8981 \u4e00\u4e2a \u961f\u5217 Queue \u5bf9\u8c61 \u6765 \u5141\u8bb8 \u6211\u4eec \u8f7b\u677e \u8bbf\u95ee \u6765\u81ea \u76f8\u673a \u7684 \u6570\u636e \uff08 \u56e0\u4e3a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5176 \u81ea\u5df1 \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \uff0c \u4e0e \u8fd0\u884c \u811a\u672c \u7684 \u4e3b Python \u7ebf\u7a0b \u5206\u5f00 \uff09 \u3002 \u4e3a\u4e86 \u770b\u5230 \u6211\u4eec \u7684 \u884c\u4eba \uff0c \u6211\u4eec \u9700\u8981 \u53d8\u6362 \u76f8\u673a \uff0c \u4f7f \u5176 \u6307\u5411 \u6211\u4eec \u751f\u6210 \u7684 \u884c\u4eba \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8ba1\u7b97 \u4f7f \u76f8\u673a \u5c45\u4e2d \u6240 \u9700 \u7684 \u5e73\u79fb \u548c \u65cb\u8f6c \uff1a def center _ camera ( ped , rot _ offset = 0 ) : # \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba \u5e76 \u5e94\u7528 \u504f\u79fb trans = ped . get _ transform ( ) offset _ radians = 2 * math . pi * rot _ offset / 360 x = math . cos ( offset _ radians ) * - 2 y = math . sin ( offset _ radians ) * 2 trans . location . x + = x trans . location . y + = y trans . location . z = 2 trans . rotation . pitch = - 16 trans . rotation . roll = 0 trans . rotation . yaw = - rot _ offset spectator . set _ transform ( trans ) return trans \u73b0\u5728 \u6211\u4eec \u5c06 \u751f\u6210 \u884c\u4eba \u3001 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 \u4e8b\u60c5 \uff1a # \u83b7\u53d6 \u884c\u4eba \u84dd\u56fe \u5e76 \u751f\u6210 \u5b83 pedestrian _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' * walker . pedestrian * ' ) ) transform = carla . Transform ( carla . Location ( x = - 134 , y = 78.1 , z = 1.18 ) ) pedestrian = world . try _ spawn _ actor ( pedestrian _ bp , transform ) # \u751f\u6210 \u4e00\u4e2a RGB \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , transform ) # \u521b\u5efa \u4e00\u4e2a \u961f\u5217 \u6765 \u5b58\u50a8 \u5e76 \u83b7\u53d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) world . tick ( ) image _ queue . get ( ) # \u6bcf\u6b21 \u8c03\u7528 world . tick ( ) \u65f6 \uff0c \u6211\u4eec \u5fc5\u987b \u8c03\u7528 image _ queue . get ( ) \u4ee5 \u786e\u4fdd \u65f6\u95f4 \u6b65\u957f \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4fdd\u6301 \u540c\u6b65 # \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba camera . set _ transform ( center _ camera ( pedestrian ) ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5 \u67e5\u770b \u7ed3\u679c spectator . set _ transform ( camera . get _ transform ( ) ) # \u4e3a \u884c\u4eba \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) # \u542f\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u7ed9 \u5b83 \u4e00\u4e2a \u968f\u673a \u4f4d\u7f6e controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) # \u5c06 \u4e16\u754c \u79fb\u52a8 \u51e0\u5e27 \uff0c \u8ba9 \u884c\u4eba \u751f\u6210 for frame in range ( 0 , 5 ) : world . tick ( ) trash = image _ queue . get ( ) AI \u63a7\u5236 \u63a7\u5236\u5668 \u5f15\u5bfc \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u884c\u8d70 \u4e0a \u4e00\u6b65 \u6211\u4eec \u8fd8 \u521d\u59cb \u521d\u59cb\u5316 \u4e86 \u4e00\u4e2a AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u5e2e\u52a9 \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u667a\u80fd \u79fb\u52a8 \uff0c \u4ee3\u7801 \u5982\u4e0b \uff08 \u65e0\u9700 \u91cd\u590d \uff09 \uff1a controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) \u73b0\u5728 \uff0c \u884c\u4eba \u5c06 \u968f\u7740 \u4eff\u771f \u7684 \u6bcf\u6b21 \u63a8\u8fdb ( world . tick ( ) ) \u81ea\u4e3b \u79fb\u52a8 \u3002 \u76f8\u673a \u51e0\u4f55 \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u51e0\u4f55 \u8ba1\u7b97 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u60f3\u8981 \u5c06 \u9aa8\u9abc \u7684 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u53d8\u6362 \u7684 \u9006\u53d8 \u53d8\u6362 \u9006\u53d8\u6362 \u6765 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5750\u6807 \u5c06 \u8f6c\u6362 \u4e3a \u76f8\u5bf9 \u4e8e \u4f4d\u4e8e \u539f\u70b9 \u3001 \u9762\u5411 x \u6b63 \u65b9\u5411 \u7684 \u76f8\u673a \u3002 # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) \u7136\u540e \uff0c \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u76f8\u673a \u77e9\u9635 \u6216 \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u89c6\u573a ( FOV , field of view ) \u4e0a \uff0c \u5c06 \u5b83\u4eec \u53e0\u52a0 \u5728 \u8f93\u51fa \u56fe\u50cf \u4e0a \u3002 \u4ee5\u4e0b \u51fd\u6570 \u751f\u6210 \u6b64 \u4e09\u7ef4 \u5230 \u4e8c\u7ef4 \u8f6c\u6362 \u6240 \u9700 \u7684 \u76f8\u673a \u77e9\u9635 \u3002 def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K \u6784\u5efa \u9aa8\u67b6 \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u6d3b\u52a8 \u90e8\u4ef6 \u7ec4\u88c5 \u5728 \u4e00\u8d77 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 pedestrian . get _ bones ( ) \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u9aa8\u9abc \u5750\u6807 \uff0c \u7136\u540e \u5c06 \u9aa8\u9abc \u7ec4\u5408 \u5728 \u4e00\u8d77 \u5e76 \u5c06 \u5176 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e8c\u7ef4 \u6210\u50cf \u5e73\u9762 \u4e0a \u3002 \u4f7f\u7528 skeletal . txt \u4e2d \u5b9a\u4e49 \u7684 \u5bf9 \u5c06 \u9aa8\u9abc \u8fde\u63a5 \u8fde\u63a5\u6210 \u5b8c\u6574 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u8be5 \u6587\u4ef6 \u3002 \u6211\u4eec \u9700\u8981 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8fed\u4ee3 sculpture . txt \u4e2d \u5b9a\u4e49 \u7684 \u9aa8\u9abc \u5bf9 \uff0c \u5e76 \u5c06 \u9aa8\u9abc \u5750\u6807 \u8fde\u63a5 \u5230 \u53ef\u4ee5 \u8986\u76d6 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56fe\u50cf \u4e0a \u7684 \u7ebf \u4e2d \u3002 def get _ image _ point ( bone _ trans ) : # \u8ba1\u7b97 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 # \u83b7\u53d6 \u9aa8\u6839 \u7684 \u4e16\u754c \u4f4d\u7f6e loc = bone _ trans . world . location bone = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 point _ camera = np . dot ( world _ 2 _ camera , bone ) # \u6211\u4eec \u5fc5\u987b \u4ece UE4 \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u66f4 \u6539\u4e3a \u201c \u6807\u51c6 \u201d \u5750\u6807 \u5750\u6807\u7cfb # ( x , y , z ) - > ( y , - z , x ) # \u6211\u4eec \u8fd8 \u5220\u9664 \u4e86 \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u7ec4\u4ef6 point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # \u73b0\u5728 \u4f7f\u7528 \u6444\u5f71 \u6444\u5f71\u673a \u77e9\u9635 \u6295\u5f71 3D - > 2D point _ img = np . dot ( K , point _ camera ) # \u6b63\u5219 \u5316 point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] def build _ skeleton ( ped , sk _ links , K ) : ######## \u83b7\u53d6 \u884c\u4eba \u9aa8\u67b6 ######### bones = ped . get _ bones ( ) # \u5217\u51fa \u5c06 \u6295\u5f71 \u5230 \u76f8\u673a \u8f93\u51fa \u4e0a\u884c \u7684 \u5b58\u50a8 \u4f4d\u7f6e lines = [ ] # \u5728 skeleton . txt \u4e2d \u904d\u5386 \u9aa8\u9abc \u5bf9 \u5e76 \u83b7\u53d6 \u5173\u8282 \u4f4d\u7f6e for link in sk _ links [ 1 : ] : # \u5c06 \u4e24\u5757 \u9aa8\u5934 \u7684 \u6839\u90e8 \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 bone _ transform _ 1 = next ( filter ( lambda b : b . name = = link [ 0 ] , bones . bone _ transforms ) , None ) bone _ transform _ 2 = next ( filter ( lambda b : b . name = = link [ 1 ] , bones . bone _ transforms ) , None ) # \u67d0\u4e9b \u9aa8\u9abc \u540d\u79f0 \u4e0d \u5339\u914d if bone _ transform _ 1 is not None and bone _ transform _ 2 is not None : # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 1 ) # \u5c06\u884c \u5f00\u59cb \u9644\u52a0 \u5230\u884c \u5217\u8868 lines . append ( [ point _ image [ 0 ] , point _ image [ 1 ] , 0 , 0 ] ) # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 2 ) # \u5c06 \u884c\u5c3e \u9644\u52a0 \u5230\u884c \u5217\u8868 lines [ - 1 ] [ 2 ] = point _ image [ 0 ] lines [ - 1 ] [ 3 ] = point _ image [ 1 ] return lines \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u8ba9 \u6211\u4eec \u4ece sculpture . txt \u4e2d \u8bfb\u53d6 \u9aa8\u9abc \u5bf9 \uff1a skeleton _ links = [ ] with open ( ' skeleton . txt ' ) as f : while True : line = f . readline ( ) if not line : break stripped = list ( map ( str . strip , line . strip ( ) . split ( ' , ' ) ) ) skeleton _ links . append ( stripped ) world . tick ( ) trash = image _ queue . get ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8fed\u4ee3 \u51e0\u5e27 \uff0c \u5728 \u6bcf \u5e27 \u4e2d \u6784\u5efa \u9aa8\u67b6 \uff0c \u5e76 \u5c06 \u9aa8\u67b6 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u6211\u4eec \u4f7f\u7528 OpenCV \u5c06 \u9aa8\u67b6 \u7ed8\u5236 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u5e76 \u4fdd\u5b58 \u56fe\u50cf \uff1a \u7b14\u8bb0 \u786e\u4fdd \u5df2 \u5728 \u5de5\u4f5c \u76ee\u5f55 \u4e2d \u521b\u5efa \u540d\u4e3a out / \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u50a8 \u56fe\u50cf for frame in range ( 0 , 360 ) : # \u5728 \u884c\u4eba \u5468\u56f4 \u79fb\u52a8 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 camera . set _ transform ( center _ camera ( pedestrian , frame + 200 ) ) # \u63a8\u8fdb \u5e27 \u5e76 \u83b7\u53d6 \u56fe\u50cf world . tick ( ) # \u4ece \u961f\u5217 \u4e2d \u83b7\u53d6 \u5e27 image = image _ queue . get ( ) # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # \u4ece \u76f8\u673a \u83b7\u53d6 \u4e00\u4e9b \u5c5e\u6027 image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # \u8ba1\u7b97 \u8981 \u4ece 3D - > 2D \u6295\u5f71 \u7684 \u76f8\u673a \u77e9\u9635 K = build _ projection _ matrix ( image _ w , image _ h , fov ) # \u6784\u5efa \u5c06 \u663e\u793a \u9aa8\u67b6 \u7684 \u7ebf \u5217\u8868 lines = build _ skeleton ( pedestrian , skeleton _ links , K ) # \u5c06 \u6570\u636e \u91cd\u5851 \u4e3a 2D RBGA \u77e9\u9635 img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # \u4f7f\u7528 OpenCV \u5c06 \u7ebf\u6761 \u7ed8\u5236 \u5230 \u56fe\u50cf \u4e2d for line in lines : l = [ int ( x ) for x in line ] cv2 . line ( img , ( l [ 0 ] , l [ 1 ] ) , ( l [ 2 ] , l [ 3 ] ) , ( 255 , 0 , 0 , 255 ) , 2 ) # \u4fdd\u5b58 \u56fe\u50cf cv2 . imwrite ( ' out / skeleton% 04d . png ' % frame , img ) \u5728 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5e27 \uff0c \u5176\u4e2d \u9aa8\u67b6 \u8986\u76d6 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u5e27 \u52a0\u5165 \u89c6\u9891 \u6765 \u91cd\u5efa \u4ee5\u4e0b \u52a8\u753b \uff1a \u603b\u7ed3 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u60a8 \u5b66\u4e60 \u4e86 \u5982\u4f55 \u4f7f\u7528 AI \u63a7\u5236 \u63a7\u5236\u5668 \u751f\u6210 \u884c\u4eba \uff0c \u6062\u590d \u884c\u4eba \u9aa8\u9abc \u7684 \u771f\u5b9e \u4e09\u7ef4 \u5750\u6807 \uff0c \u5e76 \u5c06 \u8fd9\u4e9b \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u4e0a \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u672c \u6559\u7a0b \u4e2d\u5b66 \u5230 \u7684 \u6280\u672f \uff0c \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e3a \u4eba\u4f53 \u59ff\u52bf \u4f30\u8ba1 \u6846\u67b6 \u8bbe\u7f6e \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \uff0c \u5b8c\u6574 \u4ee3\u7801 \u94fe\u63a5 \u3002","title":"\u884c\u4eba \u9aa8\u9abc"},{"location":"tuto_G_pedestrian_bones/#api","text":"\u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \uff0c \u5fc5\u987b \u786e\u4fdd \u5b83\u4eec \u4e0d\u4ec5 \u80fd\u591f \u8bc6\u522b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u9053\u8def \u548c \u6c7d\u8f66 \uff0c \u8fd8 \u80fd\u591f \u8bc6\u522b \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u548c \u8fc7 \u9a6c\u8def \u7684 \u884c\u4eba \uff0c \u4ee5 \u786e\u4fdd \u6240\u6709 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u7684 \u5b89\u5168 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u63d0\u4f9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u884c\u4eba \uff0c \u4ee5 \u4eba\u4f53 \u5f62\u6001 \u586b\u5145 \u60a8 \u7684 \u4eff\u771f \u548c \u8bad\u7ec3 \u6570\u636e \u3002 \u5728 \u8bb8\u591a \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u89c6\u89c9 \u5e94\u7528 \u4e2d \uff0c \u4eba\u4f53 \u59ff\u6001 \u4f30\u8ba1 \u662f \u4e00\u4e2a \u91cd\u8981 \u56e0\u7d20 \uff0c \u5305\u62ec \u81ea\u52a8 \u9a7e\u9a76 \u3001 \u5b89\u5168 \u3001 \u4eba\u7fa4 \u63a7\u5236 \u548c \u591a\u4e2a \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u3002 Carla \u7684 API \u63d0\u4f9b \u4e86 \u4ece \u4eff\u771f \u4e2d \u7684 \u884c\u4eba \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u7684 \u529f\u80fd \u3002 \u9aa8\u67b6 \u7531 \u4e00\u7ec4 \u9aa8\u9abc \u7ec4\u6210 \uff0c \u6bcf\u4e2a \u9aa8\u9abc \u90fd \u6709 \u4e00\u4e2a \u6839 \u8282\u70b9 \u6216 \u9876\u70b9 \u4ee5\u53ca \u4e00\u4e2a \u5b9a\u4e49 \u9aa8\u9abc \u59ff\u52bf \uff08 \u6216 \u65b9\u5411 \uff09 \u7684 \u5411\u91cf \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u63a7\u5236 \u4eff\u771f \u884c\u4eba \u7684 \u56db\u80a2 \u548c \u8eab\u4f53 \u7684 \u8fd0\u52a8 \u3002 \u901a\u8fc7 \u5c06 \u5404\u4e2a \u9aa8\u9abc \u7684 \u96c6\u5408 \u6536\u96c6 \u5728 \u4e00\u8d77 \uff0c \u53ef\u4ee5 \u6784\u5efa \u865a\u62df \u62df\u4eba \u865a\u62df\u4eba \u59ff\u52bf \u7684 \u6a21\u578b \uff0c \u8be5 \u6a21\u578b \u53ef \u7528\u4e8e \u4e0e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u4f30\u8ba1 \u7684 \u59ff\u52bf \u6a21\u578b \u8fdb\u884c \u6bd4\u8f83 \uff0c \u751a\u81f3 \u7528\u4e8e \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8fdb\u884c \u59ff\u52bf \u4f30\u8ba1 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b8c\u6210 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u884c\u4eba \u3001 \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u79fb\u52a8 \u884c\u4eba \u3001 \u7136\u540e \u83b7\u53d6 \u771f\u5b9e \u9aa8\u67b6 \u5e76 \u5c06 \u9aa8\u9abc \u6295\u5f71 \u5230 2D \u76f8\u673a \u6355\u83b7 \u4e0a \u7684 \u6b65\u9aa4 \u3002","title":"\u901a\u8fc7 API \u83b7\u53d6 \u884c\u4eba \u771f\u5b9e \u9aa8\u9abc"},{"location":"tuto_G_pedestrian_bones/#_1","text":"\u9996\u5148 \uff0c \u6309\u7167 \u60a8 \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \u542f\u52a8 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \uff0c \u65e0\u8bba \u65e0\u8bba\u662f \u5728 \u72ec\u7acb \u6a21\u5f0f \u4e0b \u8fd8\u662f \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u51e0\u4e2a \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u5e93\u4ee5 \u7528\u4e8e \u6570\u5b66 \u548c \u7ed8\u56fe \u3002 \u4e3a\u4e86 \u8ba9 \u6211\u4eec \u66f4\u597d \u5730 \u63a7\u5236 \u4eff\u771f \uff0c \u6211\u4eec \u5c06 \u5728 \u672c \u6559\u7a0b \u4e2d \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u6211\u4eec \u7684 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u65f6\u95f4 \u8fdb\u7a0b \u3002 import carla import random import numpy as np import math import queue import cv2 # OpenCV to manipulate and save the images # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668"},{"location":"tuto_G_pedestrian_bones/#carla","text":"\u9996\u5148 \uff0c \u6211\u4eec \u60f3 \u5728 \u4eff\u771f \u4e2d \u751f\u6210 \u4e00\u4e2a \u884c\u4eba \u3002 \u8fd9 \u53ef\u4ee5 \u4f7f\u7528 world . get _ random _ location _ from _ navigation ( ) \u5728 \u968f\u673a \u4f4d\u7f6e \u5b8c\u6210 \uff0c \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u4ece \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6536\u96c6 \u7684 \u5750\u6807 \u6765 \u9009\u62e9 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u4e00\u4e2a \u7a7a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6dfb\u52a0 \u5230 \u8981 \u751f\u6210 \u884c\u4eba \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u4f7f\u7528 \u53f3\u4fa7 \u7684 \u68c0\u67e5 \u5668 \u67e5\u8be2 \u5750\u6807 \u3002 \u7b14\u8bb0 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u800c Carla \u4ee5\u7c73 \u4e3a \u5355\u4f4d \uff0c \u56e0\u6b64 \u5fc5\u987b \u8f6c\u6362 \u5355\u4f4d \u3002 \u5728 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u4f7f\u7528 \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \u5c06 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5750\u6807 \u9664\u4ee5 100 \u3002 \u4e00\u65e6 \u4f60 \u9009\u62e9 \u4e86 \u5750\u6807 \uff0c \u4f60 \u5c31 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u3002 \u6211\u4eec \u8fd8 \u5c06 \u751f\u6210 \u4e00\u4e2a \u76f8\u673a \u6765 \u6536\u96c6 \u56fe\u50cf \u3002 \u6211\u4eec \u8fd8 \u9700\u8981 \u4e00\u4e2a \u961f\u5217 Queue \u5bf9\u8c61 \u6765 \u5141\u8bb8 \u6211\u4eec \u8f7b\u677e \u8bbf\u95ee \u6765\u81ea \u76f8\u673a \u7684 \u6570\u636e \uff08 \u56e0\u4e3a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5728 \u5176 \u81ea\u5df1 \u7684 \u7ebf\u7a0b \u4e0a \u8fd0\u884c \uff0c \u4e0e \u8fd0\u884c \u811a\u672c \u7684 \u4e3b Python \u7ebf\u7a0b \u5206\u5f00 \uff09 \u3002 \u4e3a\u4e86 \u770b\u5230 \u6211\u4eec \u7684 \u884c\u4eba \uff0c \u6211\u4eec \u9700\u8981 \u53d8\u6362 \u76f8\u673a \uff0c \u4f7f \u5176 \u6307\u5411 \u6211\u4eec \u751f\u6210 \u7684 \u884c\u4eba \u3002 \u4e3a\u6b64 \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8ba1\u7b97 \u4f7f \u76f8\u673a \u5c45\u4e2d \u6240 \u9700 \u7684 \u5e73\u79fb \u548c \u65cb\u8f6c \uff1a def center _ camera ( ped , rot _ offset = 0 ) : # \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba \u5e76 \u5e94\u7528 \u504f\u79fb trans = ped . get _ transform ( ) offset _ radians = 2 * math . pi * rot _ offset / 360 x = math . cos ( offset _ radians ) * - 2 y = math . sin ( offset _ radians ) * 2 trans . location . x + = x trans . location . y + = y trans . location . z = 2 trans . rotation . pitch = - 16 trans . rotation . roll = 0 trans . rotation . yaw = - rot _ offset spectator . set _ transform ( trans ) return trans \u73b0\u5728 \u6211\u4eec \u5c06 \u751f\u6210 \u884c\u4eba \u3001 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u6211\u4eec \u6240 \u505a \u7684 \u4e8b\u60c5 \uff1a # \u83b7\u53d6 \u884c\u4eba \u84dd\u56fe \u5e76 \u751f\u6210 \u5b83 pedestrian _ bp = random . choice ( world . get _ blueprint _ library ( ) . filter ( ' * walker . pedestrian * ' ) ) transform = carla . Transform ( carla . Location ( x = - 134 , y = 78.1 , z = 1.18 ) ) pedestrian = world . try _ spawn _ actor ( pedestrian _ bp , transform ) # \u751f\u6210 \u4e00\u4e2a RGB \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , transform ) # \u521b\u5efa \u4e00\u4e2a \u961f\u5217 \u6765 \u5b58\u50a8 \u5e76 \u83b7\u53d6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e image _ queue = queue . Queue ( ) camera . listen ( image _ queue . put ) world . tick ( ) image _ queue . get ( ) # \u6bcf\u6b21 \u8c03\u7528 world . tick ( ) \u65f6 \uff0c \u6211\u4eec \u5fc5\u987b \u8c03\u7528 image _ queue . get ( ) \u4ee5 \u786e\u4fdd \u65f6\u95f4 \u6b65\u957f \u548c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u4fdd\u6301 \u540c\u6b65 # \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u65cb\u8f6c \u76f8\u673a \u4ee5 \u9762\u5411 \u884c\u4eba camera . set _ transform ( center _ camera ( pedestrian ) ) # \u79fb\u52a8 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4ee5 \u67e5\u770b \u7ed3\u679c spectator . set _ transform ( camera . get _ transform ( ) ) # \u4e3a \u884c\u4eba \u8bbe\u7f6e AI \u63a7\u5236 \u63a7\u5236\u5668 controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) # \u542f\u52a8 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u7ed9 \u5b83 \u4e00\u4e2a \u968f\u673a \u4f4d\u7f6e controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) # \u5c06 \u4e16\u754c \u79fb\u52a8 \u51e0\u5e27 \uff0c \u8ba9 \u884c\u4eba \u751f\u6210 for frame in range ( 0 , 5 ) : world . tick ( ) trash = image _ queue . get ( )","title":"\u5728 Carla \u4eff\u771f\u5668 \u4e2d \u751f\u6210 \u884c\u4eba"},{"location":"tuto_G_pedestrian_bones/#ai","text":"\u4e0a \u4e00\u6b65 \u6211\u4eec \u8fd8 \u521d\u59cb \u521d\u59cb\u5316 \u4e86 \u4e00\u4e2a AI \u63a7\u5236 \u63a7\u5236\u5668 \u6765 \u5e2e\u52a9 \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u667a\u80fd \u79fb\u52a8 \uff0c \u4ee3\u7801 \u5982\u4e0b \uff08 \u65e0\u9700 \u91cd\u590d \uff09 \uff1a controller _ bp = world . get _ blueprint _ library ( ) . find ( ' controller . ai . walker ' ) controller = world . spawn _ actor ( controller _ bp , pedestrian . get _ transform ( ) , pedestrian ) controller . start ( ) controller . go _ to _ location ( world . get _ random _ location _ from _ navigation ( ) ) \u73b0\u5728 \uff0c \u884c\u4eba \u5c06 \u968f\u7740 \u4eff\u771f \u7684 \u6bcf\u6b21 \u63a8\u8fdb ( world . tick ( ) ) \u81ea\u4e3b \u79fb\u52a8 \u3002","title":"AI \u63a7\u5236\u5668 \u5f15\u5bfc \u884c\u4eba \u5728 \u5730\u56fe \u4e0a \u884c\u8d70"},{"location":"tuto_G_pedestrian_bones/#_2","text":"\u73b0\u5728 \u6211\u4eec \u9700\u8981 \u6267\u884c \u4e00\u4e9b \u51e0\u4f55 \u8ba1\u7b97 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u60f3\u8981 \u5c06 \u9aa8\u9abc \u7684 \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 \uff0c \u6211\u4eec \u4f7f\u7528 \u76f8\u673a \u53d8\u6362 \u7684 \u9006\u53d8 \u53d8\u6362 \u9006\u53d8\u6362 \u6765 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002 \u8fd9 \u610f\u5473 \u610f\u5473\u7740 \u5750\u6807 \u5c06 \u8f6c\u6362 \u4e3a \u76f8\u5bf9 \u4e8e \u4f4d\u4e8e \u539f\u70b9 \u3001 \u9762\u5411 x \u6b63 \u65b9\u5411 \u7684 \u76f8\u673a \u3002 # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) \u7136\u540e \uff0c \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u76f8\u673a \u77e9\u9635 \u6216 \u6295\u5f71 \u77e9\u9635 \u5c06 \u4e09\u7ef4 \u70b9 \u6295\u5f71 \u5230 \u76f8\u673a \u7684 \u4e8c\u7ef4 \u89c6\u573a ( FOV , field of view ) \u4e0a \uff0c \u5c06 \u5b83\u4eec \u53e0\u52a0 \u5728 \u8f93\u51fa \u56fe\u50cf \u4e0a \u3002 \u4ee5\u4e0b \u51fd\u6570 \u751f\u6210 \u6b64 \u4e09\u7ef4 \u5230 \u4e8c\u7ef4 \u8f6c\u6362 \u6240 \u9700 \u7684 \u76f8\u673a \u77e9\u9635 \u3002 def build _ projection _ matrix ( w , h , fov ) : focal = w / ( 2.0 * np . tan ( fov * np . pi / 360.0 ) ) K = np . identity ( 3 ) K [ 0 , 0 ] = K [ 1 , 1 ] = focal K [ 0 , 2 ] = w / 2.0 K [ 1 , 2 ] = h / 2.0 return K","title":"\u76f8\u673a \u51e0\u4f55"},{"location":"tuto_G_pedestrian_bones/#_3","text":"\u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5c06 \u6d3b\u52a8 \u90e8\u4ef6 \u7ec4\u88c5 \u5728 \u4e00\u8d77 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 pedestrian . get _ bones ( ) \u4ece \u4eff\u771f \u4e2d \u6536\u96c6 \u9aa8\u9abc \u5750\u6807 \uff0c \u7136\u540e \u5c06 \u9aa8\u9abc \u7ec4\u5408 \u5728 \u4e00\u8d77 \u5e76 \u5c06 \u5176 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e8c\u7ef4 \u6210\u50cf \u5e73\u9762 \u4e0a \u3002 \u4f7f\u7528 skeletal . txt \u4e2d \u5b9a\u4e49 \u7684 \u5bf9 \u5c06 \u9aa8\u9abc \u8fde\u63a5 \u8fde\u63a5\u6210 \u5b8c\u6574 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u4e0b\u8f7d \u8be5 \u6587\u4ef6 \u3002 \u6211\u4eec \u9700\u8981 \u4e00\u4e2a \u51fd\u6570 \u6765 \u8fed\u4ee3 sculpture . txt \u4e2d \u5b9a\u4e49 \u7684 \u9aa8\u9abc \u5bf9 \uff0c \u5e76 \u5c06 \u9aa8\u9abc \u5750\u6807 \u8fde\u63a5 \u5230 \u53ef\u4ee5 \u8986\u76d6 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56fe\u50cf \u4e0a \u7684 \u7ebf \u4e2d \u3002 def get _ image _ point ( bone _ trans ) : # \u8ba1\u7b97 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 # \u83b7\u53d6 \u9aa8\u6839 \u7684 \u4e16\u754c \u4f4d\u7f6e loc = bone _ trans . world . location bone = np . array ( [ loc . x , loc . y , loc . z , 1 ] ) # \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 point _ camera = np . dot ( world _ 2 _ camera , bone ) # \u6211\u4eec \u5fc5\u987b \u4ece UE4 \u7684 \u5750\u6807 \u5750\u6807\u7cfb \u66f4 \u6539\u4e3a \u201c \u6807\u51c6 \u201d \u5750\u6807 \u5750\u6807\u7cfb # ( x , y , z ) - > ( y , - z , x ) # \u6211\u4eec \u8fd8 \u5220\u9664 \u4e86 \u7b2c\u56db \u56db\u4e2a \u7b2c\u56db\u4e2a \u7ec4\u4ef6 point _ camera = [ point _ camera [ 1 ] , - point _ camera [ 2 ] , point _ camera [ 0 ] ] # \u73b0\u5728 \u4f7f\u7528 \u6444\u5f71 \u6444\u5f71\u673a \u77e9\u9635 \u6295\u5f71 3D - > 2D point _ img = np . dot ( K , point _ camera ) # \u6b63\u5219 \u5316 point _ img [ 0 ] / = point _ img [ 2 ] point _ img [ 1 ] / = point _ img [ 2 ] return point _ img [ 0 : 2 ] def build _ skeleton ( ped , sk _ links , K ) : ######## \u83b7\u53d6 \u884c\u4eba \u9aa8\u67b6 ######### bones = ped . get _ bones ( ) # \u5217\u51fa \u5c06 \u6295\u5f71 \u5230 \u76f8\u673a \u8f93\u51fa \u4e0a\u884c \u7684 \u5b58\u50a8 \u4f4d\u7f6e lines = [ ] # \u5728 skeleton . txt \u4e2d \u904d\u5386 \u9aa8\u9abc \u5bf9 \u5e76 \u83b7\u53d6 \u5173\u8282 \u4f4d\u7f6e for link in sk _ links [ 1 : ] : # \u5c06 \u4e24\u5757 \u9aa8\u5934 \u7684 \u6839\u90e8 \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 bone _ transform _ 1 = next ( filter ( lambda b : b . name = = link [ 0 ] , bones . bone _ transforms ) , None ) bone _ transform _ 2 = next ( filter ( lambda b : b . name = = link [ 1 ] , bones . bone _ transforms ) , None ) # \u67d0\u4e9b \u9aa8\u9abc \u540d\u79f0 \u4e0d \u5339\u914d if bone _ transform _ 1 is not None and bone _ transform _ 2 is not None : # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 1 ) # \u5c06\u884c \u5f00\u59cb \u9644\u52a0 \u5230\u884c \u5217\u8868 lines . append ( [ point _ image [ 0 ] , point _ image [ 1 ] , 0 , 0 ] ) # \u8ba1\u7b97 \u4e09\u7ef4 \u9aa8\u9abc \u5750\u6807 \u7684 \u4e8c\u7ef4 \u6295\u5f71 point _ image = get _ image _ point ( bone _ transform _ 2 ) # \u5c06 \u884c\u5c3e \u9644\u52a0 \u5230\u884c \u5217\u8868 lines [ - 1 ] [ 2 ] = point _ image [ 0 ] lines [ - 1 ] [ 3 ] = point _ image [ 1 ] return lines \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u8ba9 \u6211\u4eec \u4ece sculpture . txt \u4e2d \u8bfb\u53d6 \u9aa8\u9abc \u5bf9 \uff1a skeleton _ links = [ ] with open ( ' skeleton . txt ' ) as f : while True : line = f . readline ( ) if not line : break stripped = list ( map ( str . strip , line . strip ( ) . split ( ' , ' ) ) ) skeleton _ links . append ( stripped ) world . tick ( ) trash = image _ queue . get ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8fed\u4ee3 \u51e0\u5e27 \uff0c \u5728 \u6bcf \u5e27 \u4e2d \u6784\u5efa \u9aa8\u67b6 \uff0c \u5e76 \u5c06 \u9aa8\u67b6 \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u6211\u4eec \u4f7f\u7528 OpenCV \u5c06 \u9aa8\u67b6 \u7ed8\u5236 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u5e76 \u4fdd\u5b58 \u56fe\u50cf \uff1a \u7b14\u8bb0 \u786e\u4fdd \u5df2 \u5728 \u5de5\u4f5c \u76ee\u5f55 \u4e2d \u521b\u5efa \u540d\u4e3a out / \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u6765 \u5b58\u50a8 \u56fe\u50cf for frame in range ( 0 , 360 ) : # \u5728 \u884c\u4eba \u5468\u56f4 \u79fb\u52a8 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 camera . set _ transform ( center _ camera ( pedestrian , frame + 200 ) ) # \u63a8\u8fdb \u5e27 \u5e76 \u83b7\u53d6 \u56fe\u50cf world . tick ( ) # \u4ece \u961f\u5217 \u4e2d \u83b7\u53d6 \u5e27 image = image _ queue . get ( ) # \u83b7\u53d6 4x4 \u77e9\u9635 \u4ee5 \u5c06 \u70b9 \u4ece \u4e16\u754c \u5750\u6807 \u4e16\u754c\u5750\u6807 \u8f6c\u6362 \u4e3a \u76f8\u673a \u5750\u6807 world _ 2 _ camera = np . array ( camera . get _ transform ( ) . get _ inverse _ matrix ( ) ) # \u4ece \u76f8\u673a \u83b7\u53d6 \u4e00\u4e9b \u5c5e\u6027 image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) fov = camera _ bp . get _ attribute ( \" fov \" ) . as _ float ( ) # \u8ba1\u7b97 \u8981 \u4ece 3D - > 2D \u6295\u5f71 \u7684 \u76f8\u673a \u77e9\u9635 K = build _ projection _ matrix ( image _ w , image _ h , fov ) # \u6784\u5efa \u5c06 \u663e\u793a \u9aa8\u67b6 \u7684 \u7ebf \u5217\u8868 lines = build _ skeleton ( pedestrian , skeleton _ links , K ) # \u5c06 \u6570\u636e \u91cd\u5851 \u4e3a 2D RBGA \u77e9\u9635 img = np . reshape ( np . copy ( image . raw _ data ) , ( image . height , image . width , 4 ) ) # \u4f7f\u7528 OpenCV \u5c06 \u7ebf\u6761 \u7ed8\u5236 \u5230 \u56fe\u50cf \u4e2d for line in lines : l = [ int ( x ) for x in line ] cv2 . line ( img , ( l [ 0 ] , l [ 1 ] ) , ( l [ 2 ] , l [ 3 ] ) , ( 255 , 0 , 0 , 255 ) , 2 ) # \u4fdd\u5b58 \u56fe\u50cf cv2 . imwrite ( ' out / skeleton% 04d . png ' % frame , img ) \u5728 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u6709 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u5e27 \uff0c \u5176\u4e2d \u9aa8\u67b6 \u8986\u76d6 \u5728 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \u4e0a \u3002 \u53ef\u4ee5 \u901a\u8fc7 \u5c06 \u5e27 \u52a0\u5165 \u89c6\u9891 \u6765 \u91cd\u5efa \u4ee5\u4e0b \u52a8\u753b \uff1a","title":"\u6784\u5efa \u9aa8\u67b6"},{"location":"tuto_G_pedestrian_bones/#_4","text":"\u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u60a8 \u5b66\u4e60 \u4e86 \u5982\u4f55 \u4f7f\u7528 AI \u63a7\u5236 \u63a7\u5236\u5668 \u751f\u6210 \u884c\u4eba \uff0c \u6062\u590d \u884c\u4eba \u9aa8\u9abc \u7684 \u771f\u5b9e \u4e09\u7ef4 \u5750\u6807 \uff0c \u5e76 \u5c06 \u8fd9\u4e9b \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6355\u83b7 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u4e0a \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u672c \u6559\u7a0b \u4e2d\u5b66 \u5230 \u7684 \u6280\u672f \uff0c \u4f7f\u7528 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e3a \u4eba\u4f53 \u59ff\u52bf \u4f30\u8ba1 \u6846\u67b6 \u8bbe\u7f6e \u8bad\u7ec3 \u548c \u9a8c\u8bc1 \uff0c \u5b8c\u6574 \u4ee3\u7801 \u94fe\u63a5 \u3002","title":"\u603b\u7ed3"},{"location":"tuto_G_pedestrian_visual/","text":"\u83b7\u53d6 \u884c\u4eba \u89c6\u91ce","title":"\u884c\u4eba \u89c6\u89c9"},{"location":"tuto_G_pedestrian_visual/#_1","text":"","title":"\u83b7\u53d6 \u884c\u4eba \u89c6\u91ce"},{"location":"tuto_G_pygame/","text":"Pygame \u7528\u4e8e \u8f66\u8f86 \u63a7\u5236 PyGame \u662f \u4e00\u7ec4 \u5e73\u53f0 \u8de8\u5e73\u53f0 \u7684 Python \u6a21\u5757 \uff0c \u53ef \u7528\u4e8e \u7f16\u5199 \u89c6\u9891 \u6e38\u620f \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u4e00\u79cd \u6e32\u67d3 Carla \u5b9e\u65f6 \u89c6\u89c9 \u8f93\u51fa \u7684 \u6709\u7528 \u65b9\u6cd5 \uff0c \u4ee5\u4fbf \u76d1\u89c6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \uff0c \u4f8b\u5982 \u6444\u50cf \u6444\u50cf\u673a \u3002 PyGame \u8fd8 \u53ef\u4ee5 \u6355\u83b7 \u952e\u76d8 \u4e8b\u4ef6 \uff0c \u56e0\u6b64 \u5b83 \u662f \u63a7\u5236 \u8f66\u8f86 \u7b49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u597d \u65b9\u6cd5 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u8bbe\u7f6e \u4e00\u4e2a \u7b80\u5355 \u7684 PyGame \u754c\u9762 \uff0c \u8be5 \u754c\u9762 \u4f7f \u6211\u4eec \u80fd\u591f \u76d1\u63a7 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5730\u56fe \u5468\u56f4 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ea4\u901a \uff0c \u7136\u540e \u4f7f\u7528 \u952e\u76d8 \u624b\u52a8 \u63a7\u5236 \u4efb\u4f55 \u8f66\u8f86 \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e76 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random import pygame import numpy as np # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( ) \u751f\u6210 \u8f66\u8f86 \u6211\u4eec \u60f3\u8981 \u521b\u5efa \u4e00\u4e2a \u5728 \u6574\u4e2a \u57ce\u5e02 \u4e2d \u4ea7\u751f \u7684 \u8f66\u8f86 \u96c6\u5408 \uff0c \u5e76 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u5b83\u4eec \u3002 # Retrieve the map ' s spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Select some models from the blueprint library models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # Set a max number of vehicles and prepare a list for those we spawn max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # Take a random sample of the spawn points and spawn some vehicles for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # Parse the list of spawned vehicles and give control to the TM through set _ autopilot ( ) for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) ) \u4f7f\u7528 PyGame \u6e32\u67d3 \u76f8\u673a \u8f93\u51fa \u5e76 \u63a7\u5236 \u8f66\u8f86 \u73b0\u5728 \u6211\u4eec \u6709 \u4e00\u4e2a \u4ea4\u901a \u62e5\u6324 \u7684 \u57ce\u5e02 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bbe\u7f6e \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u8ddf\u8e2a \u5176\u4e2d \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \uff0c \u5e76 \u8bbe\u7f6e \u4e00\u4e2a \u63a7\u5236 \u754c\u9762 \u6765 \u901a\u8fc7 \u952e\u76d8 \u8f93\u5165 \u952e\u76d8\u8f93\u5165 \u63a5\u7ba1 \u5b83 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4e3a camera . listen ( ... ) \u5b9a\u4e49 \u4e00\u4e2a \u56de\u8c03 \u51fd\u6570 \uff0c \u7528\u4e8e \u5c06 \u50cf\u7d20 \u6570\u636e \u6e32\u67d3 \u5230 PyGame \u63a5\u53e3 \u3002 PyGame \u5c06 \u6570\u636e \u6e32\u67d3 \u5230 \u8868\u9762 \uff0c \u7136\u540e \u6e32\u67d3 \u5230 \u5c4f\u5e55 \uff0c \u56e0\u6b64 \u5728 \u56de\u8c03 \u4e2d \uff0c \u6211\u4eec \u586b\u5145 \u5b58\u50a8 \u5728 \u4f20\u9012 \u7ed9 \u56de\u8c03 \u51fd\u6570 \u7684 \u5bf9\u8c61 \u4e2d \u7684 \u8868\u9762 \u3002 # \u6e32\u67d3 \u5bf9\u8c61 \u4ee5 \u4fdd\u6301 \u5e76 \u4f20\u9012 PyGame \u8868\u9762 class RenderObject ( object ) : def __ init __ ( self , width , height ) : init _ image = np . random . randint ( 0 , 255 , ( height , width , 3 ) , dtype = ' uint8 ' ) # \u521b\u5efa \u4e0e \u9635\u5217 \u4e0a \u7684 \u6570\u636e \u548c \u683c\u5f0f \u6700 \u76f8\u4f3c \u7684 \u65b0 \u66f2\u9762 self . surface = pygame . surfarray . make _ surface ( init _ image . swapaxes ( 0 , 1 ) ) # \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56de\u8c03 \uff0c \u5c06 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u91cd\u5851 \u4e3a \u4e8c\u7ef4 RGB \uff0c \u5e76 \u5e94\u7528 \u4e8e PyGame \u66f2\u9762 def pygame _ callback ( data , obj ) : img = np . reshape ( np . copy ( data . raw _ data ) , ( data . height , data . width , 4 ) ) img = img [ : , : , : 3 ] img = img [ : , : , : : - 1 ] obj . surface = pygame . surfarray . make _ surface ( img . swapaxes ( 0 , 1 ) ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u5bf9\u8c61 \u6765 \u5904\u7406 \u63a7\u5236 \u903b\u8f91 \u3002 \u8fd9 \u901a\u5e38 \u9700\u8981 \u8fdb\u884c \u4e00\u4e9b \u8c03\u6574 \u624d\u80fd \u6ee1\u8db3 \u7279\u5b9a \u9700\u6c42 \uff0c \u4f46 \u8fd9 \u6982\u8ff0 \u4e86 \u4e00\u4e2a \u57fa\u672c \u754c\u9762 \u3002 \u5f53 \u63a7\u5236 \u8f66\u8f86 \u65f6 \uff0c \u8be5 \u63a7\u5236 \u754c\u9762 \u5141\u8bb8 \u901a\u8fc7 \u4efb\u4f55 \u6807\u51c6 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u8fdb\u884c \u63a7\u5236 \u3002 \u5411\u524d \u7bad\u5934 \u52a0\u901f \uff0c \u5411 \u540e \u7bad\u5934 \u5236\u52a8 \uff0c \u5de6\u53f3 \u7bad\u5934 \u8f6c\u52a8 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u8f66\u8f86 \u9759\u6b62 \u6216 \u505c\u6b62 \u65f6 \u6309\u4f4f \u5411\u4e0b \u7bad\u5934 \uff0c \u5b83 \u5c06 \u63a5\u5408 \u5012 \u6863 \u5e76 \u5f00\u59cb \u5411 \u540e \u79fb\u52a8 \u3002 # Control object to manage vehicle controls class ControlObject ( object ) : def __ init __ ( self , veh ) : # Conrol parameters to store the control state self ._ vehicle = veh self ._ steer = 0 self ._ throttle = False self ._ brake = False self ._ steer = None self ._ steer _ cache = 0 # A carla . VehicleControl object is needed to alter the # vehicle ' s control state self ._ control = carla . VehicleControl ( ) # Check for key press events in the PyGame window # and define the control state def parse _ control ( self , event ) : if event . type = = pygame . KEYDOWN : if event . key = = pygame . K _ RETURN : self ._ vehicle . set _ autopilot ( False ) if event . key = = pygame . K _ UP : self ._ throttle = True if event . key = = pygame . K _ DOWN : self ._ brake = True if event . key = = pygame . K _ RIGHT : self ._ steer = 1 if event . key = = pygame . K _ LEFT : self ._ steer = - 1 if event . type = = pygame . KEYUP : if event . key = = pygame . K _ UP : self ._ throttle = False if event . key = = pygame . K _ DOWN : self ._ brake = False self ._ control . reverse = False if event . key = = pygame . K _ RIGHT : self ._ steer = None if event . key = = pygame . K _ LEFT : self ._ steer = None # \u5904\u7406 \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \uff0c \u66f4\u6539 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 # if the key remains pressed def process _ control ( self ) : if self ._ throttle : self ._ control . throttle = min ( self ._ control . throttle + 0.01 , 1 ) self ._ control . gear = 1 self ._ control . brake = False elif not self ._ brake : self ._ control . throttle = 0.0 if self ._ brake : # If the down arrow is held down when the car is stationary , switch to reverse if self ._ vehicle . get _ velocity ( ) . length ( ) < 0.01 and not self ._ control . reverse : self ._ control . brake = 0.0 self ._ control . gear = 1 self ._ control . reverse = True self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) elif self ._ control . reverse : self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) else : self ._ control . throttle = 0.0 self ._ control . brake = min ( self ._ control . brake + 0.3 , 1 ) else : self ._ control . brake = 0.0 if self ._ steer is not None : if self ._ steer = = 1 : self ._ steer _ cache + = 0.03 if self ._ steer = = - 1 : self ._ steer _ cache - = 0.03 min ( 0.7 , max ( - 0.7 , self ._ steer _ cache ) ) self ._ control . steer = round ( self ._ steer _ cache , 1 ) else : if self ._ steer _ cache > 0.0 : self ._ steer _ cache * = 0.2 if self ._ steer _ cache < 0.0 : self ._ steer _ cache * = 0.2 if 0.01 > self ._ steer _ cache > - 0.01 : self ._ steer _ cache = 0.0 self ._ control . steer = round ( self ._ steer _ cache , 1 ) # \u00c1 pply the control parameters to the ego vehicle self ._ vehicle . apply _ control ( self ._ control ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u8f66\u8f86 \u548c \u76f8\u673a \u3002 # Randomly select a vehicle to follow with the camera ego _ vehicle = random . choice ( vehicles ) # Initialise the camera floating behind the vehicle camera _ init _ trans = carla . Transform ( carla . Location ( x = - 5 , z = 3 ) , carla . Rotation ( pitch = - 20 ) ) camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) # Start camera with PyGame callback camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Get camera dimensions image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) # Instantiate objects for rendering and vehicle control renderObject = RenderObject ( image _ w , image _ h ) controlObject = ControlObject ( ego _ vehicle ) \u521d\u59cb \u521d\u59cb\u5316 PyGame \u63a5\u53e3 \u3002 \u8fd9 \u5c06 \u8c03\u7528 PyGame \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 # Initialise the display pygame . init ( ) gameDisplay = pygame . display . set _ mode ( ( image _ w , image _ h ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) # Draw black to the display gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \u4e86 \u3002 \u8be5 \u89c6\u56fe \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e2d \u7684 \u4e0d\u540c \u8f66\u8f86 \u4e4b\u95f4 \u968f\u673a \u5faa\u73af \uff0c \u5e76 \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e0b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5b83\u4eec \u5728 \u4ea4\u901a \u4e2d \u7684 \u65c5\u7a0b \u3002 \u6309 TAB \u952e \u5207\u6362 \u5230 \u968f\u673a \u9009\u62e9 \u7684 \u65b0 \u8f66\u8f86 \uff0c \u6309 \u56de\u8f66 \u56de\u8f66\u952e \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u624b\u52a8 \u63a7\u5236 \u8f66\u8f86 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u9700\u8981 \u6311\u6218 \u9a7e\u9a76 \u884c\u4e3a \u4e0d \u7a33\u5b9a \u7684 \u667a\u80fd \u4f53 \uff0c \u8fd9\u79cd \u8bbe\u7f6e \u53ef\u80fd \u4f1a \u5f88 \u6709\u7528 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u9009\u62e9 \u903b\u8f91 \u4ee5 \u9009\u62e9 \u4e0e \u667a\u80fd \u4f53 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u63a5\u8fd1 \u7684 \u8f66\u8f86 \u3002 # Game loop crashed = False while not crashed : # Advance the simulation time world . tick ( ) # Update the display gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Process the current control state controlObject . process _ control ( ) # Collect key press events for event in pygame . event . get ( ) : # If the window is closed , break the while loop if event . type = = pygame . QUIT : crashed = True # Parse effect of key press event on control state controlObject . parse _ control ( event ) if event . type = = pygame . KEYUP : # TAB key switches vehicle if event . key = = pygame . K _ TAB : ego _ vehicle . set _ autopilot ( True ) ego _ vehicle = random . choice ( vehicles ) # Ensure vehicle is still alive ( might have been destroyed ) if ego _ vehicle . is _ alive : # Stop and remove the camera camera . stop ( ) camera . destroy ( ) # Spawn new camera and attach to new vehicle controlObject = ControlObject ( ego _ vehicle ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Update PyGame window gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Stop camera and quit PyGame after exiting game loop camera . stop ( ) pygame . quit ( )","title":"Pygame \u7528\u4e8e \u8f66\u8f86 \u63a7\u5236"},{"location":"tuto_G_pygame/#pygame","text":"PyGame \u662f \u4e00\u7ec4 \u5e73\u53f0 \u8de8\u5e73\u53f0 \u7684 Python \u6a21\u5757 \uff0c \u53ef \u7528\u4e8e \u7f16\u5199 \u89c6\u9891 \u6e38\u620f \u3002 \u5b83 \u63d0\u4f9b \u4e86 \u4e00\u79cd \u6e32\u67d3 Carla \u5b9e\u65f6 \u89c6\u89c9 \u8f93\u51fa \u7684 \u6709\u7528 \u65b9\u6cd5 \uff0c \u4ee5\u4fbf \u76d1\u89c6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8f93\u51fa \uff0c \u4f8b\u5982 \u6444\u50cf \u6444\u50cf\u673a \u3002 PyGame \u8fd8 \u53ef\u4ee5 \u6355\u83b7 \u952e\u76d8 \u4e8b\u4ef6 \uff0c \u56e0\u6b64 \u5b83 \u662f \u63a7\u5236 \u8f66\u8f86 \u7b49 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u597d \u65b9\u6cd5 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u8bbe\u7f6e \u4e00\u4e2a \u7b80\u5355 \u7684 PyGame \u754c\u9762 \uff0c \u8be5 \u754c\u9762 \u4f7f \u6211\u4eec \u80fd\u591f \u76d1\u63a7 \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5730\u56fe \u5468\u56f4 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ea4\u901a \uff0c \u7136\u540e \u4f7f\u7528 \u952e\u76d8 \u624b\u52a8 \u63a7\u5236 \u4efb\u4f55 \u8f66\u8f86 \u3002","title":"Pygame \u7528\u4e8e \u8f66\u8f86 \u63a7\u5236"},{"location":"tuto_G_pygame/#_1","text":"\u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random import pygame import numpy as np # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668 \u5e76 \u521d\u59cb\u5316 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_pygame/#_2","text":"\u6211\u4eec \u60f3\u8981 \u521b\u5efa \u4e00\u4e2a \u5728 \u6574\u4e2a \u57ce\u5e02 \u4e2d \u4ea7\u751f \u7684 \u8f66\u8f86 \u96c6\u5408 \uff0c \u5e76 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u5b83\u4eec \u3002 # Retrieve the map ' s spawn points spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # Select some models from the blueprint library models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # Set a max number of vehicles and prepare a list for those we spawn max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # Take a random sample of the spawn points and spawn some vehicles for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # Parse the list of spawned vehicles and give control to the TM through set _ autopilot ( ) for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) )","title":"\u751f\u6210 \u8f66\u8f86"},{"location":"tuto_G_pygame/#pygame_1","text":"\u73b0\u5728 \u6211\u4eec \u6709 \u4e00\u4e2a \u4ea4\u901a \u62e5\u6324 \u7684 \u57ce\u5e02 \uff0c \u6211\u4eec \u53ef\u4ee5 \u8bbe\u7f6e \u4e00\u4e2a \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6765 \u8ddf\u8e2a \u5176\u4e2d \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \uff0c \u5e76 \u8bbe\u7f6e \u4e00\u4e2a \u63a7\u5236 \u754c\u9762 \u6765 \u901a\u8fc7 \u952e\u76d8 \u8f93\u5165 \u952e\u76d8\u8f93\u5165 \u63a5\u7ba1 \u5b83 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4e3a camera . listen ( ... ) \u5b9a\u4e49 \u4e00\u4e2a \u56de\u8c03 \u51fd\u6570 \uff0c \u7528\u4e8e \u5c06 \u50cf\u7d20 \u6570\u636e \u6e32\u67d3 \u5230 PyGame \u63a5\u53e3 \u3002 PyGame \u5c06 \u6570\u636e \u6e32\u67d3 \u5230 \u8868\u9762 \uff0c \u7136\u540e \u6e32\u67d3 \u5230 \u5c4f\u5e55 \uff0c \u56e0\u6b64 \u5728 \u56de\u8c03 \u4e2d \uff0c \u6211\u4eec \u586b\u5145 \u5b58\u50a8 \u5728 \u4f20\u9012 \u7ed9 \u56de\u8c03 \u51fd\u6570 \u7684 \u5bf9\u8c61 \u4e2d \u7684 \u8868\u9762 \u3002 # \u6e32\u67d3 \u5bf9\u8c61 \u4ee5 \u4fdd\u6301 \u5e76 \u4f20\u9012 PyGame \u8868\u9762 class RenderObject ( object ) : def __ init __ ( self , width , height ) : init _ image = np . random . randint ( 0 , 255 , ( height , width , 3 ) , dtype = ' uint8 ' ) # \u521b\u5efa \u4e0e \u9635\u5217 \u4e0a \u7684 \u6570\u636e \u548c \u683c\u5f0f \u6700 \u76f8\u4f3c \u7684 \u65b0 \u66f2\u9762 self . surface = pygame . surfarray . make _ surface ( init _ image . swapaxes ( 0 , 1 ) ) # \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u56de\u8c03 \uff0c \u5c06 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u91cd\u5851 \u4e3a \u4e8c\u7ef4 RGB \uff0c \u5e76 \u5e94\u7528 \u4e8e PyGame \u66f2\u9762 def pygame _ callback ( data , obj ) : img = np . reshape ( np . copy ( data . raw _ data ) , ( data . height , data . width , 4 ) ) img = img [ : , : , : 3 ] img = img [ : , : , : : - 1 ] obj . surface = pygame . surfarray . make _ surface ( img . swapaxes ( 0 , 1 ) ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521b\u5efa \u4e00\u4e2a \u5bf9\u8c61 \u6765 \u5904\u7406 \u63a7\u5236 \u903b\u8f91 \u3002 \u8fd9 \u901a\u5e38 \u9700\u8981 \u8fdb\u884c \u4e00\u4e9b \u8c03\u6574 \u624d\u80fd \u6ee1\u8db3 \u7279\u5b9a \u9700\u6c42 \uff0c \u4f46 \u8fd9 \u6982\u8ff0 \u4e86 \u4e00\u4e2a \u57fa\u672c \u754c\u9762 \u3002 \u5f53 \u63a7\u5236 \u8f66\u8f86 \u65f6 \uff0c \u8be5 \u63a7\u5236 \u754c\u9762 \u5141\u8bb8 \u901a\u8fc7 \u4efb\u4f55 \u6807\u51c6 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u8fdb\u884c \u63a7\u5236 \u3002 \u5411\u524d \u7bad\u5934 \u52a0\u901f \uff0c \u5411 \u540e \u7bad\u5934 \u5236\u52a8 \uff0c \u5de6\u53f3 \u7bad\u5934 \u8f6c\u52a8 \u8f66\u8f86 \u3002 \u5982\u679c \u5728 \u8f66\u8f86 \u9759\u6b62 \u6216 \u505c\u6b62 \u65f6 \u6309\u4f4f \u5411\u4e0b \u7bad\u5934 \uff0c \u5b83 \u5c06 \u63a5\u5408 \u5012 \u6863 \u5e76 \u5f00\u59cb \u5411 \u540e \u79fb\u52a8 \u3002 # Control object to manage vehicle controls class ControlObject ( object ) : def __ init __ ( self , veh ) : # Conrol parameters to store the control state self ._ vehicle = veh self ._ steer = 0 self ._ throttle = False self ._ brake = False self ._ steer = None self ._ steer _ cache = 0 # A carla . VehicleControl object is needed to alter the # vehicle ' s control state self ._ control = carla . VehicleControl ( ) # Check for key press events in the PyGame window # and define the control state def parse _ control ( self , event ) : if event . type = = pygame . KEYDOWN : if event . key = = pygame . K _ RETURN : self ._ vehicle . set _ autopilot ( False ) if event . key = = pygame . K _ UP : self ._ throttle = True if event . key = = pygame . K _ DOWN : self ._ brake = True if event . key = = pygame . K _ RIGHT : self ._ steer = 1 if event . key = = pygame . K _ LEFT : self ._ steer = - 1 if event . type = = pygame . KEYUP : if event . key = = pygame . K _ UP : self ._ throttle = False if event . key = = pygame . K _ DOWN : self ._ brake = False self ._ control . reverse = False if event . key = = pygame . K _ RIGHT : self ._ steer = None if event . key = = pygame . K _ LEFT : self ._ steer = None # \u5904\u7406 \u5f53\u524d \u63a7\u5236 \u72b6\u6001 \uff0c \u66f4\u6539 \u63a7\u5236 \u53c2\u6570 \u63a7\u5236\u53c2\u6570 # if the key remains pressed def process _ control ( self ) : if self ._ throttle : self ._ control . throttle = min ( self ._ control . throttle + 0.01 , 1 ) self ._ control . gear = 1 self ._ control . brake = False elif not self ._ brake : self ._ control . throttle = 0.0 if self ._ brake : # If the down arrow is held down when the car is stationary , switch to reverse if self ._ vehicle . get _ velocity ( ) . length ( ) < 0.01 and not self ._ control . reverse : self ._ control . brake = 0.0 self ._ control . gear = 1 self ._ control . reverse = True self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) elif self ._ control . reverse : self ._ control . throttle = min ( self ._ control . throttle + 0.1 , 1 ) else : self ._ control . throttle = 0.0 self ._ control . brake = min ( self ._ control . brake + 0.3 , 1 ) else : self ._ control . brake = 0.0 if self ._ steer is not None : if self ._ steer = = 1 : self ._ steer _ cache + = 0.03 if self ._ steer = = - 1 : self ._ steer _ cache - = 0.03 min ( 0.7 , max ( - 0.7 , self ._ steer _ cache ) ) self ._ control . steer = round ( self ._ steer _ cache , 1 ) else : if self ._ steer _ cache > 0.0 : self ._ steer _ cache * = 0.2 if self ._ steer _ cache < 0.0 : self ._ steer _ cache * = 0.2 if 0.01 > self ._ steer _ cache > - 0.01 : self ._ steer _ cache = 0.0 self ._ control . steer = round ( self ._ steer _ cache , 1 ) # \u00c1 pply the control parameters to the ego vehicle self ._ vehicle . apply _ control ( self ._ control ) \u73b0\u5728 \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u8f66\u8f86 \u548c \u76f8\u673a \u3002 # Randomly select a vehicle to follow with the camera ego _ vehicle = random . choice ( vehicles ) # Initialise the camera floating behind the vehicle camera _ init _ trans = carla . Transform ( carla . Location ( x = - 5 , z = 3 ) , carla . Rotation ( pitch = - 20 ) ) camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) # Start camera with PyGame callback camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Get camera dimensions image _ w = camera _ bp . get _ attribute ( \" image _ size _ x \" ) . as _ int ( ) image _ h = camera _ bp . get _ attribute ( \" image _ size _ y \" ) . as _ int ( ) # Instantiate objects for rendering and vehicle control renderObject = RenderObject ( image _ w , image _ h ) controlObject = ControlObject ( ego _ vehicle ) \u521d\u59cb \u521d\u59cb\u5316 PyGame \u63a5\u53e3 \u3002 \u8fd9 \u5c06 \u8c03\u7528 PyGame \u7684 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u3002 # Initialise the display pygame . init ( ) gameDisplay = pygame . display . set _ mode ( ( image _ w , image _ h ) , pygame . HWSURFACE | pygame . DOUBLEBUF ) # Draw black to the display gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u6e38\u620f \u5faa\u73af \u4e86 \u3002 \u8be5 \u89c6\u56fe \u53ef\u4ee5 \u5728 \u5730\u56fe \u4e2d \u7684 \u4e0d\u540c \u8f66\u8f86 \u4e4b\u95f4 \u968f\u673a \u5faa\u73af \uff0c \u5e76 \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e0b \u53ef\u89c6 \u53ef\u89c6\u5316 \u5b83\u4eec \u5728 \u4ea4\u901a \u4e2d \u7684 \u65c5\u7a0b \u3002 \u6309 TAB \u952e \u5207\u6362 \u5230 \u968f\u673a \u9009\u62e9 \u7684 \u65b0 \u8f66\u8f86 \uff0c \u6309 \u56de\u8f66 \u56de\u8f66\u952e \u53ef\u4ee5 \u901a\u8fc7 \u952e\u76d8 \u4e0a \u7684 \u7bad\u5934 \u7bad\u5934\u952e \u624b\u52a8 \u63a7\u5236 \u8f66\u8f86 \u3002 \u4f8b\u5982 \uff0c \u5982\u679c \u9700\u8981 \u6311\u6218 \u9a7e\u9a76 \u884c\u4e3a \u4e0d \u7a33\u5b9a \u7684 \u667a\u80fd \u4f53 \uff0c \u8fd9\u79cd \u8bbe\u7f6e \u53ef\u80fd \u4f1a \u5f88 \u6709\u7528 \u3002 \u53ef\u4ee5 \u8c03\u6574 \u9009\u62e9 \u903b\u8f91 \u4ee5 \u9009\u62e9 \u4e0e \u667a\u80fd \u4f53 \u9a7e\u9a76 \u7684 \u8f66\u8f86 \u63a5\u8fd1 \u7684 \u8f66\u8f86 \u3002 # Game loop crashed = False while not crashed : # Advance the simulation time world . tick ( ) # Update the display gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Process the current control state controlObject . process _ control ( ) # Collect key press events for event in pygame . event . get ( ) : # If the window is closed , break the while loop if event . type = = pygame . QUIT : crashed = True # Parse effect of key press event on control state controlObject . parse _ control ( event ) if event . type = = pygame . KEYUP : # TAB key switches vehicle if event . key = = pygame . K _ TAB : ego _ vehicle . set _ autopilot ( True ) ego _ vehicle = random . choice ( vehicles ) # Ensure vehicle is still alive ( might have been destroyed ) if ego _ vehicle . is _ alive : # Stop and remove the camera camera . stop ( ) camera . destroy ( ) # Spawn new camera and attach to new vehicle controlObject = ControlObject ( ego _ vehicle ) camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) camera . listen ( lambda image : pygame _ callback ( image , renderObject ) ) # Update PyGame window gameDisplay . fill ( ( 0 , 0 , 0 ) ) gameDisplay . blit ( renderObject . surface , ( 0 , 0 ) ) pygame . display . flip ( ) # Stop camera and quit PyGame after exiting game loop camera . stop ( ) pygame . quit ( )","title":"\u4f7f\u7528 PyGame \u6e32\u67d3 \u76f8\u673a \u8f93\u51fa \u5e76 \u63a7\u5236 \u8f66\u8f86"},{"location":"tuto_G_retrieve_data/","text":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e \u5728 Carla \u4e2d \uff0c \u5b66\u4e60 \u4e00\u79cd \u6709\u6548 \u7684 \u65b9\u6cd5 \u6765 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u8fd9\u4e2a \u6574\u4f53 \u6559\u7a0b \u9002\u5408 \u65b0\u624b \u548c \u7ecf\u9a8c \u4e30\u5bcc \u7ecf\u9a8c\u4e30\u5bcc \u7684 \u7528\u6237 \u3002 \u5b83 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \uff0c \u9010\u6e10 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 Carla \u4e2d \u53ef\u7528 \u7684 \u8bb8\u591a \u9009\u9879 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u548c \u6d41\u91cf \u521d\u59cb \u521d\u59cb\u5316 \u4eff\u771f \u3002 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \u5c06 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \uff0c \u53ef\u9009 \u53ef\u9009\u5730 \u914d\u5907 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bb0\u5f55 \u4eff\u771f \uff0c \u4ee5\u4fbf \u4ee5\u540e \u67e5\u8be2 \u4ee5 \u627e\u5230 \u4eae\u70b9 \u3002 \u4e4b\u540e \uff0c \u539f\u59cb \u4eff\u771f \u88ab \u56de\u653e \uff0c \u5e76 \u88ab \u5229\u7528 \u5230 \u6781\u9650 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u7d22 \u4e00\u81f4 \u7684 \u6570\u636e \u3002 \u5929\u6c14 \u6761\u4ef6 \u662f \u53ef\u4ee5 \u6539\u53d8 \u7684 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u751a\u81f3 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u5177\u6709 \u4e0d\u540c \u8f93\u51fa \u7684 \u7279\u5b9a \u573a\u666f \u3002 \u6982\u8ff0 \u8bbe\u7f6e \u4eff\u771f \u5730\u56fe \u8bbe\u7f6e \u5929\u6c14 \u8bbe\u7f6e \u8bbe\u7f6e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf Carla \u4ea4\u901a \u548c \u884c\u4eba SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a \u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u653e\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6df1\u5ea6 \u76f8\u673a \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e \u6e32\u67d3 \u6a21\u5f0f \u5feb\u901f \u4eff\u771f \u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236 \u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e \u5f00\u59cb \u8bb0\u5f55 \u6355\u83b7 \u5e76 \u8bb0\u5f55 \u505c\u6b62 \u8bb0\u5f55 \u5229\u7528 \u8bb0\u5f55 \u67e5\u8be2 \u4e8b\u4ef6 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u68c0\u7d22 \u66f4 \u591a \u6570\u636e \u6539\u53d8 \u5929\u6c14 \u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c \u6559\u7a0b \u811a\u672c \u6982\u8ff0 \u5728 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u7684 \u8fc7\u7a0b \u4e2d \u5b58\u5728 \u4e00\u4e9b \u5e38\u89c1 \u9519\u8bef \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u5145\u65a5 \u7740 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5b58\u50a8 \u65e0\u7528 \u7684 \u6570\u636e \u6216 \u52aa\u529b \u5bfb\u627e \u7279\u5b9a \u4e8b\u4ef6 \u90fd \u662f \u4e00\u4e9b \u4f8b\u5b50 \u3002 \u7136\u800c \uff0c \u53ef\u4ee5 \u63d0\u4f9b \u8be5 \u8fc7\u7a0b \u7684 \u4e00\u4e9b \u6982\u8981 \u3002 \u76ee\u6807 \u662f \u786e\u4fdd \u6570\u636e \u53ef\u4ee5 \u68c0\u7d22 \u548c \u590d\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u968f\u610f \u68c0\u67e5 \u68c0\u67e5\u548c \u66f4\u6539 \u4eff\u771f \u3002 \u7b14\u8bb0 \u672c \u6559\u7a0b \u4f7f\u7528 Carla 0.9 . 8 deb \u5305 \u3002 \u6839\u636e \u60a8 \u7684 Carla \u7248\u672c \u548c \u5b89\u88c5 \uff0c \u53ef\u80fd \u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 \uff0c \u7279\u522b \u662f \u5728 \u8def\u5f84 \u65b9\u9762 \u3002 \u672c \u6559\u7a0b \u4e3a \u4e0d\u540c \u6b65\u9aa4 \u63d0\u4f9b \u4e86 \u591a\u79cd \u9009\u9879 \u3002 \u4e00\u76f4 \u4ee5\u6765 \uff0c \u90fd \u4f1a \u63d0\u5230 \u4e0d\u540c \u7684 \u811a\u672c \u3002 \u5e76 \u4e0d\u662f \u6240\u6709 \u7684 \u90fd \u4f1a \u88ab \u4f7f\u7528 \uff0c \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5177\u4f53 \u7684 \u7528\u4f8b \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5df2 \u5728 Carla \u4e2d \u63d0\u4f9b \u7528\u4e8e \u901a\u7528 \u76ee\u7684 \u3002 config . py \u66f4\u6539 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5730\u56fe \u3001 \u6e32\u67d3 \u9009\u9879 \u3001 \u8bbe\u7f6e \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f ... carla / PythonAPI / util / config . py dynamic _ weather . py \u521b\u5efa \u6709\u8da3 \u7684 \u5929\u6c14 \u6761\u4ef6 \u3002 carla / PythonAPI / examples / dynamic _ weather . py spawn _ npc . py spawn _ npc . py \u751f\u6210 \u4e00\u4e9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 carla / PythonAPI / examples / spawn _ npc . py manual _ control . py \u751f\u6210 \u4e00\u4e2a \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u63d0\u4f9b \u5bf9 \u5176 \u7684 \u63a7\u5236 \u3002 carla / PythonAPI / examples / manual _ control . py \u4f46\u662f \uff0c \u6559\u7a0b \u4e2d \u63d0\u5230 \u7684 \u4e24\u4e2a \u811a\u672c \u5728 Carla \u4e2d \u627e \u4e0d\u5230 \u3002 \u5b83\u4eec \u5305\u542b \u5f15\u7528 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8fd9\u6709 \u53cc\u91cd \u76ee\u7684 \u3002 \u9996\u5148 \uff0c \u9f13\u52b1 \u7528\u6237 \u6784\u5efa \u81ea\u5df1 \u7684 \u811a\u672c \u3002 \u5145\u5206 \u7406\u89e3 \u4ee3\u7801 \u7684 \u4f5c\u7528 \u975e\u5e38 \u91cd\u8981 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u672c \u6559\u7a0b \u53ea\u662f \u4e00\u4e2a \u5927\u7eb2 \uff0c \u53ef\u80fd \u800c\u4e14 \u5e94\u8be5 \u6839\u636e \u7528\u6237 \u7684 \u559c\u597d \u800c \u6709 \u5f88\u5927 \u7684 \u4e0d\u540c \u3002 \u8fd9 \u4e24\u4e2a \u811a\u672c \u53ea\u662f \u4e00\u4e2a \u793a\u4f8b \u3002 tutorial _ ego . py \u751f\u6210 \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u88ab \u653e\u7f6e \u5728 \u751f\u6210 \u4f4d\u7f6e \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ece \u4e00 \u5f00\u59cb \u5c31 \u542f\u52a8 \uff0c \u5e76 \u5728 \u811a\u672c \u5b8c\u6210 \u65f6 \u505c\u6b62 \u3002 tutorial _ replay . py \u91cd\u65b0 \u6267\u884c tutorial _ ego . py \u8bb0\u5f55 \u7684 \u4eff\u771f \u3002 \u6709 \u4e0d\u540c \u7684 \u4ee3\u7801 \u7247\u6bb5 \u53ef\u4ee5 \u67e5\u8be2 \u8bb0\u5f55 \u3001 \u751f\u6210 \u4e00\u4e9b \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6539\u53d8 \u5929\u6c14 \u6761\u4ef6 \u4ee5\u53ca \u91cd\u65b0 \u6267\u884c \u8bb0\u5f55 \u8bb0\u5f55\u7247 \u6bb5 \u3002 \u5b8c\u6574 \u7684 \u4ee3\u7801 \u53ef\u4ee5 \u5728 \u6559\u7a0b \u7684 \u6700\u540e \u90e8\u5206 \u627e\u5230 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u5e76 \u4e0d \u4e25\u683c \uff0c \u800c\u662f \u53ef\u4ee5 \u5b9a\u5236 \u7684 \u3002 \u5728 Carla \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u529f\u80fd \u6b63\u5982 \u7528\u6237 \u6240 \u5e0c\u671b \u7684 \u90a3\u6837 \u5f3a\u5927 \u3002 \u91cd\u8981 \u672c \u6559\u7a0b \u9700\u8981 \u4e00\u4e9b Python \u77e5\u8bc6 \u3002 \u8bbe\u7f6e \u4eff\u771f \u8981 \u505a \u7684 \u7b2c\u4e00 \u4e00\u4ef6 \u7b2c\u4e00\u4ef6 \u4e8b\u662f \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u6240 \u9700 \u7684 \u73af\u5883 \u3002 \u8fd0\u884c Carla \u3002 cd / opt / carla / bin . / CarlaUE . sh \u5730\u56fe \u8bbe\u7f6e \u9009\u62e9 \u8981 \u8fd0\u884c \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u67e5\u770b \u5730\u56fe \u6587\u6863 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u5176 \u7279\u5b9a \u5c5e\u6027 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u9009\u62e9 Town07 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u3002 \u4f7f\u7528 config . py \u811a\u672c \u66f4\u6539 \u5730\u56fe \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- map Town01 \u8be5 \u811a\u672c \u53ef\u4ee5 \u542f\u7528 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c06 \u5728 \u6559\u7a0b \u4e2d \u63d0\u53ca \uff0c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u4f1a \u3002 \u4e0b\u9762 \u6709 \u4e00\u4e2a \u7b80\u77ed \u7684 \u603b\u7ed3 \u3002 config . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host Carla Simulator ( default : localhost ) - p P , -- port P TCP port of Carla Simulator ( default : 2000 ) - d , -- default set default settings - m MAP , -- map MAP load a new map , use -- list to see available maps - r , -- reload - map reload current map -- delta - seconds S set fixed delta seconds , zero for variable frame rate -- fps N set fixed FPS , zero for variable FPS ( similar to -- delta - seconds ) -- rendering enable rendering -- no - rendering disable rendering -- no - sync disable synchronous mode -- weather WEATHER set weather preset , use -- list to see available presets - i , -- inspect inspect simulation - l , -- list list available options - b FILTER , -- list - blueprints FILTER list available blueprints matching FILTER ( use ' * ' to list them all ) - x XODR _ FILE _ PATH , -- xodr - path XODR _ FILE _ PATH load a new map with a minimum physical road representation of the provided OpenDRIVE Town07 \u7684 \u7a7a\u4e2d \u89c6\u89d2 \u5929\u6c14 \u8bbe\u7f6e \u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u9002\u5408 \u5b83 \u7684 \u7279\u5b9a \u5929\u6c14 \uff0c \u4f46\u662f \u53ef\u4ee5 \u968f\u610f \u8bbe\u7f6e \u3002 \u6709 \u4e24\u4e2a \u811a\u672c \u63d0\u4f9b \u4e86 \u89e3\u51b3 \u6b64 \u95ee\u9898 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e86 \u52a8\u6001 \u5929\u6c14 \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u60c5\u51b5 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u53e6 \u4e00\u4e2a \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u6761\u4ef6 \u3002 \u8fd8 \u53ef\u4ee5 \u5bf9 \u5929\u6c14 \u6761\u4ef6 \u8fdb\u884c \u7f16\u7801 \u3002 \u7a0d\u540e \u5929\u6c14 \u6761\u4ef6 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u65f6 \u5c06 \u5bf9\u6b64 \u8fdb\u884c \u4ecb\u7ecd \u3002 \u8bbe\u7f6e \u52a8\u6001 \u5929\u6c14 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c dynamic _ weather . py \u3002 \u8be5 \u811a\u672c \u5141\u8bb8 \u8bbe\u7f6e \u5929\u6c14 \u53d8\u5316 \u7684 \u6bd4\u7387 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u662f 1.0 \u3002 cd / opt / carla / PythonAPI / examples python3 dynamic _ weather . py -- speed 1.0 \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6761\u4ef6 \u4f7f\u7528 \u811a\u672c environment . py \u3002 \u6709 \u5f88\u591a \u53ef\u80fd \u7684 \u8bbe\u7f6e \u3002 \u67e5\u770b \u53ef \u9009 \u53c2\u6570 \u4ee5\u53ca carla . WeatherParameters \u7684 \u6587\u6863 \u3002 cd / opt / carla / PythonAPI / util python3 environment . py -- clouds 100 -- rain 80 -- wetness 100 -- puddles 60 -- wind 80 -- fog 50 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] \u4f7f\u7528 \u5929\u6c14 \u6539\u53d8 \u8bbe\u7f6e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u4eff\u771f \u4ea4\u901a \u662f \u8ba9 \u5730\u56fe \u6829\u6829 \u6829\u6829\u5982\u751f \u7684 \u6700\u4f73 \u65b9\u6cd5 \u4e4b\u4e00 \u3002 \u8fd8 \u9700\u8981 \u68c0\u7d22 \u57ce\u5e02 \u73af\u5883 \u7684 \u6570\u636e \u3002 \u5728 Carla \u4e2d\u6709 \u4e0d\u540c \u7684 \u9009\u62e9 \u53ef\u4ee5 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002 Carla \u4ea4\u901a \u548c \u884c\u4eba Carla \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6a21\u5757 \u7ba1\u7406 \u3002 \u81f3\u4e8e \u884c\u4eba \uff0c \u4ed6\u4eec \u6bcf\u4e2a \u4eba \u90fd \u6709 \u81ea\u5df1 \u7684 carla . WalkerAIController \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \uff0c \u7136\u540e \u8fd0\u884c spawn _ npc . py \u6765 \u751f\u6210 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u8ba9 \u6211\u4eec \u751f\u6210 50 \u8f86\u8f66 \u548c \u76f8\u540c \u6570\u91cf \u7684 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 cd / opt / carla / PythonAPI / examples python3 spawn _ npc . py - n 50 - w 50 -- safe spawn _ npc . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - n N , -- number - of - vehicles N number of vehicles ( default : 10 ) - w W , -- number - of - walkers W number of walkers ( default : 50 ) -- safe avoid spawning vehicles prone to accidents -- filterv PATTERN vehicles filter ( default : \" vehicle . * \" ) -- filterw PATTERN pedestrians filter ( default : \" walker . pedestrian . * \" ) - tm _ p P , -- tm - port P port to communicate with TM ( default : 8000 ) -- async Asynchronous mode execution \u751f\u6210 \u8f66\u8f86 \u4ee5 \u4eff\u771f \u4ea4\u901a \u3002 SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a Carla \u53ef\u4ee5 \u4e0e SUMO \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u8fd9 \u5141\u8bb8 \u5728 SUMO \u4e2d \u521b\u5efa \u5c06 \u4f20\u64ad \u5230 Carla \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u8fd9\u79cd \u8054\u5408 \u4eff\u771f \u662f \u53cc\u5411 \u7684 \u3002 \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u8f66\u8f86 \u5c06 \u5728 SUMO \u4e2d \u751f\u6210 \u3002 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u5177\u4f53 \u6587\u6863 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u3002 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e Carla 0.9 . 8 \u53ca \u66f4 \u9ad8 \u7248\u672c \u7684 Town01 \u3001 Town04 \u548c Town05 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u6700 \u7a33\u5b9a \u7684 \u3002 \u7b14\u8bb0 \u8054\u5408 \u4eff\u771f \u5c06 \u5728 Carla \u4e2d \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u9996\u5148 \uff0c \u5b89\u88c5 SUMO \u3002 sudo add - apt - repository ppa : sumo / stable sudo apt - get update sudo apt - get install sumo sumo - tools sumo - doc \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SUMO _ HOME \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc \u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6253\u5f00 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8fd0\u884c SUMO - Carla \u540c\u6b65 \u811a\u672c \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town01 . sumocfg -- sumo - gui SUMO \u7a97\u53e3 \u5e94\u8be5 \u5df2 \u6253\u5f00 \u3002 \u6309 \u201c \u8fd0\u884c \u201d \u4ee5 \u5728 \u4e24\u4e2a \u4eff\u771f \u4e2d \u542f\u52a8 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 > \" Play \" on SUMO window . \u8be5 \u811a\u672c \u751f\u6210 \u7684 \u6d41\u91cf \u662f Carla \u56e2\u961f \u521b\u5efa \u7684 \u793a\u4f8b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u6cbf\u7740 \u76f8\u540c \u7684 \u8def\u7ebf \u751f\u6210 \u76f8\u540c \u7684 \u8f66\u8f86 \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 SUMO \u4e2d \u66f4\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u3002 SUMO \u548c Carla \u534f\u540c \u4eff\u771f \u4ea4\u901a \u3002 \u8b66\u544a \u76ee\u524d \uff0c SUMO \u8054\u5408 \u4eff\u771f \u8fd8\u662f \u6d4b\u8bd5 \u6d4b\u8bd5\u7248 \u529f\u80fd \u3002 \u8f66\u8f86 \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \uff0c \u4e5f \u4e0d \u8003\u8651 Carla \u4ea4\u901a \u4ea4\u901a\u706f \u3002 \u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86 \u4ece \u73b0\u5728 \u5230 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \u7684 \u4e00\u523b \u90a3\u4e00\u523b \uff0c \u5c06\u4f1a \u6709 \u4e00\u4e9b \u5c5e\u4e8e tutorial _ ego . py \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8be5 \u811a\u672c \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef \u9009 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76 \u8bb0\u5f55 \u4eff\u771f \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u7528\u6237 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5728 Carla \u4e2d \u901a\u5e38 \u901a\u8fc7 \u5c06 \u5c5e\u6027 role _ name \u8bbe\u7f6e \u4e3a ego \u6765 \u533a\u5206 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5176\u4ed6 \u5c5e\u6027 \uff0c \u5176\u4e2d \u4e00\u4e9b \u5177\u6709 \u63a8\u8350 \u63a8\u8350\u503c \u3002 \u4e0b\u9762 \uff0c \u4ece \u84dd \u56fe\u5e93 \u4e2d \u68c0\u7d22 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u6a21\u578b \uff0c \u5e76 \u4f7f\u7528 \u968f\u673a \u63a8\u8350 \u7684 \u989c\u8272 \u751f\u6210 \u3002 \u9009\u62e9 \u5730\u56fe \u63a8\u8350 \u7684 \u751f\u6210 \u70b9 \u4e4b\u4e00 \u6765 \u653e\u7f6e \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spawn ego vehicle # -------------- ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' ) \u653e\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u4eff\u771f \u89c6\u56fe \u3002 \u901a\u8fc7 \u811a\u672c \u79fb\u52a8 \u5b83 \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5b83 \u53ef\u80fd \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u627e\u5230 \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spectator on ego position # -------------- spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u751f\u6210 \u4efb\u4f55 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fc7\u7a0b \u90fd \u975e\u5e38 \u76f8\u4f3c \u3002 1 . \u4f7f\u7528 \u5e93 \u67e5\u627e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 2 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u4e00\u70b9 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5c5e\u6027 \u5c06 \u5851\u9020 \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u3002 3 . \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u81f3 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8be5 \u53d8\u6362 \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u3002 carla . AttachmentType \u5c06 \u786e\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f4d\u7f6e \u7684 \u66f4\u65b0 \u65b9\u5f0f \u3002 4 . \u6dfb\u52a0 listen ( ) \u65b9\u6cd5 \u3002 \u8fd9\u662f \u5173\u952e \u8981\u7d20 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fa6\u542c \u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u7684 lambda \u65b9\u6cd5 \u3002 \u53c2\u6570 \u662f \u68c0\u7d22 \u5230 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u7262\u8bb0 \u8fd9\u4e00 \u57fa\u672c \u51c6\u5219 \u57fa\u672c\u51c6\u5219 \uff0c \u8ba9 \u6211\u4eec \u4e3a \u81ea\u6211 \u8f66\u8f86 \u8bbe\u7f6e \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 RGB \u76f8\u673a RGB \u76f8\u673a \u751f\u6210 \u903c\u771f \u7684 \u573a\u666f \u56fe\u7247 \u3002 \u5b83 \u662f \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef \u8bbe\u7f6e \u5c5e\u6027 \u8f83 \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f46 \u5b83 \u4e5f \u662f \u4e00\u4e2a \u57fa\u672c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5b83 \u5e94\u8be5 \u88ab \u7406\u89e3 \u4e3a \u4e00\u4e2a \u771f\u6b63 \u7684 \u76f8\u673a \uff0c \u5177\u6709 \u8bf8\u5982 focal _ distance \u3001 shutter _ speed \u6216 gamma \u786e\u5b9a \u5176 \u5185\u90e8 \u5982\u4f55 \u5de5\u4f5c \u7684 \u5c5e\u6027 \u3002 \u8fd8\u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5c5e\u6027 \u6765 \u5b9a\u4e49 \u955c\u5934 \u7578\u53d8 \uff0c \u4ee5\u53ca \u8bb8\u591a \u9ad8\u7ea7 \u5c5e\u6027 \u3002 \u4f8b\u5982 \uff0c lens _ circle _ multiplier \u53ef\u4ee5 \u7528\u6765 \u5b9e\u73b0 \u7c7b\u4f3c \u4e8e \u773c\u775b \u9c7c \u955c\u5934 \u7684 \u6548\u679c \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u811a\u672c \u4ec5 \u8bbe\u7f6e \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u5e38\u7528 \u7684 \u5c5e\u6027 \u3002 image _ size _ x \u548c image _ size _ y \u5c06 \u6539\u53d8 \u8f93\u51fa \u56fe\u50cf \u7684 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u3002 fov \u662f \u76f8\u673a \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u540e \uff0c \u5c31 \u53ef\u4ee5 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e86 \u3002 \u811a\u672c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e2d \uff0c \u5e76 \u6307\u5411 \u524d\u65b9 \u3002 \u5b83 \u5c06 \u6355\u6349 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 \u6bcf \u4e00\u6b65 \u90fd \u4f1a \u4ee5 carla . Image \u7684 \u5f62\u5f0f \u68c0\u7d22 \u6570\u636e \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b83\u4eec \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u8def\u5f84 \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u6bcf\u5f20 \u56fe\u50cf \u7684 \u540d\u79f0 \u5747 \u6839\u636e \u62cd\u6444 \u955c\u5934 \u7684 \u4eff\u771f \u5e27 \u8fdb\u884c \u7f16\u7801 \u3002 # -------------- # Spawn attached RGB camera # -------------- cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / output / %. 6d . jpg ' % image . frame ) ) RGB camera output \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5f53 \u5b83\u4eec \u6240 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u6570\u636e \u3002 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u4e3a \u4e09\u79cd \u7c7b\u578b \uff0c \u6bcf\u79cd \u90fd \u63cf\u8ff0 \u4e00\u79cd \u7c7b\u578b \u7684 \u4e8b\u4ef6 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002 \u4ed6\u4eec \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u51b3\u5b9a \u8981 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u7684 \u54ea \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u663e\u5f0f \u67e5\u8be2 \u51b2\u7a81 \u3002 \u8fd9\u662f \u51c6\u5907 \u6253\u5370 \u7684 \u3002 \u53ea\u6709 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \u6709 \u9700\u8981 \u8bbe\u7f6e \u7684 \u5c5e\u6027 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u91cd\u8981 \u7684 \u5185\u5bb9 \u3002 sensor _ tick \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 x \u79d2\u949f \u540e \u68c0\u7d22 \u6570\u636e \u3002 \u8fd9\u662f \u68c0\u7d22 \u6bcf \u4e00\u6b65 \u6570\u636e \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5e38\u89c1 \u5c5e\u6027 \u3002 distance \u548c hit - radius \u5851\u9020 \u7528\u4e8e \u68c0\u6d4b \u524d\u65b9 \u969c\u788d \u969c\u788d\u7269 \u7684 \u8c03\u8bd5 \u7ebf \u3002 only _ dynamics \u786e\u5b9a \u662f\u5426 \u5e94 \u8003\u8651 \u9759\u6001 \u5bf9\u8c61 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4efb\u4f55 \u5bf9\u8c61 \u90fd \u4f1a \u88ab \u8003\u8651 \u3002 \u8be5 \u811a\u672c \u5c06 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 \u5982\u679c \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u9759\u6001 \u7269\u4f53 \u53d1\u751f \u78b0\u649e \uff0c \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u68c0\u6d4b \u5230 \u3002 # -------------- # Add collision sensor to ego vehicle . # -------------- col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) # -------------- # Add Obstacle sensor to ego vehicle . # -------------- obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) Output for detector sensors \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6682\u65f6 \u53ea \u8003\u8651 \u8be5\u7c7b \u522b\u7684 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u4e00\u822c \u6d4b\u91cf \u503c \uff0c \u8fd9 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u8f66\u8f86 \u5bf9\u8c61 \u4e3a \u4e2d\u5fc3 \u751f\u6210 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u8bbe\u7f6e \u6d4b\u91cf \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u6216 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 \u8fd9 \u5bf9\u4e8e \u83b7\u5f97 \u66f4 \u73b0\u5b9e \u7684 \u63aa\u65bd \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5728 tutorial _ ego . py \u4e2d \u53ea \u8bbe\u7f6e \u4e86 \u4e00\u4e2a \u5c5e\u6027 \u3002 sensor _ tick . \u7531\u4e8e \u6b64 \u6d4b\u91cf \u503c \u5728 \u6b65\u9aa4 \u4e4b\u95f4 \u4e0d \u5e94\u6709 \u663e \u7740 \u53d8\u5316 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u7ecf\u5e38 \u68c0\u7d22 \u6570\u636e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u8bbe\u7f6e \u4e3a \u6bcf \u4e09\u79d2 \u6253\u5370 \u4e00\u6b21 \u3002 # -------------- # Add GNSS sensor to ego vehicle . # -------------- gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) # -------------- # Add IMU sensor to ego vehicle . # -------------- imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) GNSS and IMU sensors output \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u811a\u672c tutorial _ replay . py \u9664 \u5176\u4ed6 \u5916 \u8fd8 \u5305\u542b \u66f4 \u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5b9a\u4e49 \u3002 \u5b83\u4eec \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u57fa\u672c \u7684 \u76f8\u540c \uff0c \u4f46 \u7406\u89e3 \u53ef\u80fd \u6709\u70b9 \u56f0\u96be \u3002 \u6df1\u5ea6 \u76f8\u673a \u6df1\u5ea6 \u76f8\u673a \u751f\u6210 \u573a\u666f \u7684 \u56fe\u7247 \uff0c \u5c06 \u6bcf\u4e2a \u50cf\u7d20 \u6620\u5c04 \u5230 \u7070\u5ea6 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u4e2d \u3002 \u7136\u800c \uff0c \u8f93\u51fa \u5e76 \u4e0d \u7b80\u5355 \u3002 \u76f8\u673a \u7684 \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u8fdb\u884c \u6620\u5c04 \u3002 \u5fc5\u987b \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u624d\u80fd \u7406\u89e3 \u3002 \u4e3a\u6b64 \uff0c \u53ea \u9700 \u5c06 \u56fe\u50cf \u4fdd\u5b58 \u4e3a RGB \u76f8\u673a \u7684 \u56fe\u50cf \uff0c \u4f46 \u5bf9 \u5176 \u5e94\u7528 carla . ColorConverter \u5373\u53ef \u3002 \u6df1\u5ea6 \u76f8\u673a \u6709 \u4e24\u79cd \u53ef\u7528 \u7684 \u8f6c\u6362 \u3002 carla . ColorConverter . Depth \u4ee5 \u6beb\u7c73 \u7ea7 \u7cbe\u5ea6 \u8f6c\u6362 \u539f\u59cb \u6df1\u5ea6 \u3002 carla . ColorConverter . LogarithmicDepth \u4e5f \u5177\u6709 \u6beb\u7c73 \u7ea7 \u7c92\u5ea6 \uff0c \u4f46 \u5728 \u8fd1\u8ddd \u8ddd\u79bb \u8fd1\u8ddd\u79bb \u5185 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \uff0c \u800c \u5bf9\u4e8e \u8f83\u8fdc \u7684 \u5143\u7d20 \u5219 \u7a0d\u5dee \u4e00\u4e9b \u3002 \u6df1\u5ea6 \u76f8\u673a \u7684 \u5c5e\u6027 \u4ec5 \u8bbe\u7f6e \u4e4b\u524d \u5728 RGB \u76f8\u673a \u4e2d \u6240\u8ff0 \u7684 \u5143\u7d20 \uff1a fov \u3001 image _ size _ x \u3001 image _ size _ y \u548c sensor _ tick \u3002 \u8be5 \u811a\u672c \u5c06 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u4e3a \u4e0e \u4e4b\u524d \u4f7f\u7528 \u7684 RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a Depth camera to ego vehicle . # -------------- depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ depth _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) Depth camera output . Simple conversion on the left , logarithmic on the right . \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6839\u636e \u5143\u7d20 \u7684 \u6807\u8bb0 \u65b9\u5f0f \u5c06 \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u6e32\u67d3 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 \u6807\u7b7e \u7531 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6839\u636e \u7528\u4e8e \u751f\u6210 \u7684 \u8d44\u6e90 \u7684 \u8def\u5f84 \u521b\u5efa \u3002 \u4f8b\u5982 \uff0c \u6807\u8bb0 \u4e3a Pedestrians \u7684 \u7f51\u683c \u4f53\u662f \u4f7f\u7528 \u5b58\u50a8 \u5728 Unreal / CarlaUE4 / Content / Static / Pedestrians \u4e2d \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u3002 \u4e0e \u4efb\u4f55 \u76f8\u673a \u4e00\u6837 \uff0c \u8f93\u51fa \u662f \u56fe\u50cf \uff0c \u4f46 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5305\u542b \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \u7f16\u7801 \u7684 \u6807\u7b7e \u3002 \u5fc5\u987b \u4f7f\u7528 ColorConverter . CityScapesPalette \u8f6c\u6362 \u6b64 \u539f\u59cb \u56fe\u50cf \u3002 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u6807\u7b7e \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8be5 \u76f8\u673a \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e0e \u6df1\u5ea6 \u76f8\u673a \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u8be5 \u811a\u672c \u8fd8 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a new semantic segmentation camera to my ego # -------------- sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) Semantic segmentation camera output \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5b83 \u521b\u5efa \u4e86 \u4e00\u4e2a \u4ee5 \u4e09\u7ef4 \u5f62\u5f0f \u6620\u5c04 \u573a\u666f \u7684 \u70b9\u4e91 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5305\u542b \u4e00\u7ec4 \u4ee5 \u7279\u5b9a \u9891\u7387 \u65cb\u8f6c \u7684 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u3002 \u6fc0\u5149 \u6295\u5c04 \u649e\u51fb \u8ddd\u79bb \uff0c \u5e76 \u5c06 \u6bcf\u6b21 \u5c04\u51fb \u5b58\u50a8 \u4e3a \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u9635\u5217 \u7684 \u5e03\u7f6e \u65b9\u5f0f \u3002 upper _ fov \u548c lower _ fov \u5206\u522b \u662f \u6700\u9ad8 \u548c \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \u3002 channels \u8bbe\u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 \u7684 fov \u5206\u5e03 \u3002 \u5176\u4ed6 \u5c5e\u6027 \u8bbe\u7f6e \u8be5\u70b9 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u3002 \u5b83\u4eec \u786e\u5b9a \u6bcf\u4e2a \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf \u4e00\u6b65 \u8ba1\u7b97 \u7684 \u70b9\u6570 \uff1a points _ per _ second / ( FPS * channels ) . range \u662f \u6355\u83b7 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u662f \u6bcf\u79d2 \u83b7\u5f97 \u7684 \u70b9\u6570 \u3002 \u8be5 \u6570\u91cf \u9664\u4ee5 channels \u7684 \u6570\u91cf \u3002 rotation _ frequency \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6bcf\u79d2 \u65cb\u8f6c \u7684 \u6b21\u6570 \u3002 \u70b9\u4e91 \u8f93\u51fa \u88ab \u63cf\u8ff0 \u4e3a [ carla . LidarMeasurement ] \u3002 \u5b83 \u53ef\u4ee5 \u4f5c\u4e3a [ carla . Location ] \u5217\u8868 \u8fdb\u884c \u8fed\u4ee3 \u6216 \u4fdd\u5b58 \u4e3a . ply \u6807\u51c6 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u3002 # -------------- # Add a new LIDAR sensor to my ego # -------------- lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) . ply \u8f93\u51fa \u53ef\u4ee5 \u4f7f\u7528 Meshlab \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 1 . \u5b89\u88c5 Meshlab \u3002 sudo apt - get update - y sudo apt - get install - y meshlab 2 . \u6253\u5f00 Meshlab \u3002 meshlab 3 . \u6253\u5f00 \u5176\u4e2d \u4e00\u4e2a . ply \u6587\u4ef6 \u3002 File > Import mesh ... \u7ecf\u8fc7 Meshlab \u5904\u7406 \u540e \u7684 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8f93\u51fa \u3002 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7c7b\u4f3c \u3002 \u5b83 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u5e76 \u5411 \u5185\u90e8 \u53d1\u5c04 \u6fc0\u5149 \u4ee5 \u5c04\u7ebf \u6295\u5c04 \u5176 \u5f71\u54cd \u3002 \u8f93\u51fa \u662f carla . RadarMeasurement \u3002 \u5b83 \u5305\u542b \u7531 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u68c0\u7d22 \u5230 \u7684 carla . RadarDetection \u7684 \u5217\u8868 \u3002 \u8fd9\u4e9b \u4e0d\u662f \u7a7a\u95f4 \u4e2d \u7684 \u70b9 \uff0c \u800c\u662f \u4f7f\u7528 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u8fdb\u884c \u7684 \u68c0\u6d4b \uff1a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u51b3\u5b9a \u4e86 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u7684 \u5b9a\u4f4d \u65b9\u5f0f \u3002 horizontal _ fov \u548c vertical _ fov \u786e\u5b9a \u5706\u9525 \u89c6\u56fe \u7684 \u632f\u5e45 \u3002 channels \u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 fov \u7684 \u5206\u5e03 \u3002 range \u662f \u6fc0\u5149 \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u8bbe\u7f6e \u8981 \u6355\u83b7 \u7684 \u70b9 \u7684 \u6570\u91cf \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u5728 \u6307\u5b9a \u7684 \u901a\u9053 \u4e4b\u95f4 \u5206\u914d \u3002 \u8be5 \u811a\u672c \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e0a \uff0c \u5e76 \u5411\u4e0a \u65cb\u8f6c \u4e00\u70b9 \u3002 \u8fd9\u6837 \uff0c \u8f93\u51fa \u5c06 \u6620\u5c04 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 horizontal _ fov \u662f \u589e\u52a0 \u7684 \uff0c vertical _ fov \u662f \u51cf\u5c11 \u7684 \u3002 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \u7279\u522b \u662f \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u901a\u5e38 \u79fb\u52a8 \u7684 \u9ad8\u5ea6 \u3002 \u8ddd\u79bb range \u4e5f \u4ece 100m \u66f4 \u6539\u4e3a 10m \uff0c \u4ee5\u4fbf \u4ec5 \u68c0\u7d22 \u8f66\u8f86 \u6b63\u524d \u524d\u65b9 \u6b63\u524d\u65b9 \u7684 \u6570\u636e \u3002 \u8fd9\u6b21 \u7684 \u56de\u8c03 \u6709\u70b9 \u590d\u6742 \uff0c \u663e\u793a \u4e86 \u5b83 \u7684 \u66f4 \u529f\u80fd \u591a\u529f\u80fd \u3002 \u5b83 \u5c06 \u5b9e\u65f6 \u7ed8\u5236 \u96f7\u8fbe \u6355\u83b7 \u7684 \u70b9 \u3002 \u8fd9\u4e9b \u70b9\u5c06 \u6839\u636e \u5b83\u4eec \u76f8\u5bf9 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u800c \u7740\u8272 \u3002 Blue \u8868\u793a \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 Red \u8868\u793a \u8fdc\u79bb \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 White \u4ee3\u8868 \u5173\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u9759\u6001 \u70b9 \u3002 # -------------- # Add a new radar sensor to my ego # -------------- rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.0 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \u96f7\u8fbe \u8f93\u51fa \u3002 \u8f66\u8f86 \u505c \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \uff0c \u56e0\u6b64 \u5176 \u524d\u9762 \u7684 \u9759\u6001 \u5143\u7d20 \u663e\u793a \u4e3a \u767d\u8272 \u3002 \u975e \u6e32\u67d3 \u6a21\u5f0f \u65e0 \u6e32\u67d3 \u6a21\u5f0f \u5bf9\u4e8e \u8fd0\u884c \u521d\u59cb \u4eff\u771f \u975e\u5e38 \u6709\u7528 \uff0c \u7a0d\u540e \u5c06 \u518d\u6b21 \u64ad\u653e \u8be5 \u4eff\u771f \u4ee5 \u68c0\u7d22 \u6570\u636e \u3002 \u7279\u522b \u662f \u5982\u679c \u8be5 \u4eff\u771f \u5b58\u5728 \u4e00\u4e9b \u6781\u7aef \u6761\u4ef6 \uff0c \u4f8b\u5982 \u4ea4\u901a \u5bc6\u96c6 \u3002 \u5feb\u901f \u4eff\u771f \u7981\u7528 \u6e32\u67d3 \u5c06 \u4e3a \u4eff\u771f \u8282\u7701 \u5927\u91cf \u5de5\u4f5c \u3002 \u7531\u4e8e \u4e0d \u4f7f\u7528 GPU \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5168\u901f \u5de5\u4f5c \u3002 \u8fd9 \u5bf9\u4e8e \u5feb\u901f \u4eff\u771f \u590d\u6742 \u7684 \u6761\u4ef6 \u5f88 \u6709\u7528 \u3002 \u6700\u597d \u7684 \u65b9\u6cd5 \u662f \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4ee5 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u5f02\u6b65 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76\u4e14 \u4e0d \u8fdb\u884c \u6e32\u67d3 \uff0c \u4eff\u771f \u7684 \u552f\u4e00 \u9650\u5236 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u5185\u90e8 \u903b\u8f91 \u3002 \u76f8\u540c \u7684 config . py \u7528\u4e8e \u8bbe\u7f6e \u5730\u56fe \u53ef\u4ee5 \u7981\u7528 \u6e32\u67d3 \uff0c \u5e76 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- no - rendering -- delta - seconds 0.05 # Never greater than 0.1 s \u8b66\u544a \u5728 \u4f7f\u7528 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65 \u4e4b\u524d \uff0c \u8bf7 \u5148 \u9605\u8bfb \u6587\u6863 \u3002 \u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236 \u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u63d0\u4f9b \u4e86 \u4eff\u771f \u7684 \u6982\u8ff0 \u3002 \u5b83 \u4f7f\u7528 Pygame \u521b\u5efa \u4e86 \u4e00\u4e2a \u7b80\u7ea6 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff0c \u5b83 \u5c06 \u8ddf\u968f \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u4e0e manual _ control . py \u4e00\u8d77 \u4f7f\u7528 \u6765 \u751f\u6210 \u4e00\u6761 \u51e0\u4e4e \u6ca1\u6709 \u6210\u672c \u7684 \u8def\u7ebf \uff0c \u8bb0\u5f55 \u5b83 \uff0c \u7136\u540e \u56de\u653e \u5e76 \u5229\u7528 \u5b83 \u6765 \u6536\u96c6 \u6570\u636e \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py cd / opt / carla / PythonAPI / examples python3 no _ rendering _ mode . py -- no - rendering no _ rendering _ mode . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit - v , -- verbose print debug information -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- res WIDTHxHEIGHT window resolution ( default : 1280x720 ) -- filter PATTERN actor filter ( default : \" vehicle . * \" ) -- map TOWN start a new episode at the given TOWN -- no - rendering switch off server rendering -- show - triggers show trigger boxes of traffic signs -- show - connections show waypoint connections -- show - spawn - points show recommended spawn points no _ rendering _ mode . py working in Town07 \u7b14\u8bb0 \u5728 \u6b64 \u6a21\u5f0f \u4e0b \uff0c \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u68c0\u7d22 \u7a7a \u6570\u636e \u3002 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6ca1\u7528 \uff0c \u4f46 \u63a2\u6d4b \u6d4b\u5668 \u63a2\u6d4b\u5668 \u7b49 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6b63\u5e38 \u5de5\u4f5c \u3002 \u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e \u5f00\u59cb \u8bb0\u5f55 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u968f\u65f6 \u542f\u52a8 \u3002 \u811a\u672c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u8fd9\u6837 \u505a \uff0c \u4ee5\u4fbf \u6355\u6349 \u4e00\u5207 \uff0c \u5305\u62ec \u7b2c\u4e00 \u4e00\u6279 \u7b2c\u4e00\u6279 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4ea7\u751f \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u65e5\u5fd7 \u5c06 \u4fdd\u5b58 \u5230 CarlaUE4 / Saved \u3002 # -------------- # \u5f00\u59cb \u8bb0\u5f55 # -------------- client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' ) \u6355\u83b7 \u5e76 \u8bb0\u5f55 \u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u505a\u5230 \u8fd9 \u4e00\u70b9 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u56e0\u4e3a \u8ba9 \u5b83 \u56db\u5904 \u6f2b\u6e38 \u6216 \u624b\u52a8 \u63a7\u5236 \u800c \u51fa\u73b0 \u6545\u969c \u3002 \u4ea7\u751f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u5c06 \u88ab \u5373\u65f6 \u68c0\u7d22 \u3002 \u8bf7 \u52a1\u5fc5 \u5728 \u8bb0\u5f55 \u65f6 \u8fdb\u884c \u68c0\u67e5 \uff0c \u4ee5 \u786e\u4fdd \u4e00\u5207 \u8bbe\u7f6e \u6b63\u786e \u3002 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u3002 \u8fd9\u4f1a \u5c06 \u8f66\u8f86 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5b83 \u5c06 \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \u3002 \u8be5 \u811a\u672c \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u5e76 \u521b\u5efa \u4e00\u4e2a \u5faa\u73af \u4ee5 \u963b\u6b62 \u811a\u672c \u5b8c\u6210 \u3002 \u5f55\u5236 \u5c06 \u7ee7\u7eed \u8fdb\u884c \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u8ba1\u65f6 \u8ba1\u65f6\u5668 \u4ee5 \u5728 \u7279\u5b9a \u65f6\u95f4 \u540e \u5b8c\u6210 \u811a\u672c \u3002 # -------------- # \u6355\u83b7 \u6570\u636e # -------------- ego _ vehicle . set _ autopilot ( True ) print ( ' \\ nEgo autopilot enabled ' ) while True : world _ snapshot = world . wait _ for _ tick ( ) \u624b\u52a8 \u63a7\u5236 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u811a\u672c PythonAPI / examples / manual _ control . py \uff0c \u5728 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u9a7e\u9a76 \u81ea\u6211 \u8f66\u8f86 \u6765 \u521b\u5efa \u6240 \u9700 \u7684 \u8def\u7ebf \uff0c \u5e76 \u5728 \u5b8c\u6210 \u540e \u505c\u6b62 \u8bb0\u5f55 \u8bb0\u5f55\u4eea \u3002 tutorial _ ego . py \u811a\u672c \u53ef \u7528\u4e8e \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \uff0c \u4f46 \u8bf7 \u786e\u4fdd \u6ce8\u91ca \u5176\u4ed6 \u4ee3\u7801 \u7247\u6bb5 \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py \u7b14\u8bb0 \u4e3a\u4e86 \u907f\u514d \u6e32\u67d3 \u5e76 \u8282\u7701 \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \uff0c \u8bf7 \u542f\u7528 [ \u65e0 \u6e32\u67d3 \u6a21\u5f0f ] \u3002 \u8be5 \u811a\u672c / PythonAPI / examples / no _ rendering _ mode . py \u5728 \u521b\u5efa \u7b80\u5355 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \u65f6 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002 \u505c\u6b62 \u8bb0\u5f55 \u505c\u6b62 \u8c03\u7528 \u751a\u81f3 \u6bd4 \u5f00\u59cb \u8c03\u7528 \u66f4 \u7b80\u5355 \u3002 \u5f55\u97f3 \u5b8c\u6210 \u540e \uff0c \u5f55\u97f3 \u5c06 \u4fdd\u5b58 \u5728 \u524d\u9762 \u6307\u5b9a \u7684 \u8def\u5f84 \u4e2d \u3002 # -------------- # \u505c\u6b62 \u8bb0\u5f55 # -------------- client . stop _ recorder ( ) \u5229\u7528 \u8bb0\u5f55 \u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u4eff\u771f \u5df2\u7ecf \u88ab \u8bb0\u5f55 \u5f55\u4e0b \u4e0b\u6765 \u5f55\u4e0b\u6765 \u8bb0\u5f55\u4e0b\u6765 \u3002 \u73b0\u5728 \uff0c \u662f \u65f6\u5019 \u68c0\u67e5 \u8bb0\u5f55 \uff0c \u627e\u5230 \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u65f6\u523b \uff0c \u5e76 \u5229\u7528 \u5b83\u4eec \u3002 \u8fd9\u4e9b \u6b65\u9aa4 \u96c6\u4e2d \u5728 \u811a\u672c tutorial _ replay . py \u4e2d \u3002 \u8be5 \u5927\u7eb2 \u7531 \u6ce8\u91ca \u7684 \u4e0d\u540c \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u6784\u6210 \u3002 \u73b0\u5728 \u662f \u8fd0\u884c \u65b0 \u4eff\u771f \u7684 \u65f6\u5019 \u4e86 \u3002 . / CarlaUE4 . sh \u8981 \u91cd\u65b0 \u8fdb\u884c \u4eff\u771f \uff0c \u8bf7 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u5e76 \u8fd0\u884c \u5305\u542b \u64ad\u653e \u4ee3\u7801 \u7684 \u811a\u672c \u3002 python3 tuto _ replay . py \u67e5\u8be2 \u4e8b\u4ef6 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u6863 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u4e0d\u540c \u7684 \u67e5\u8be2 \u3002 \u603b\u4e4b \uff0c \u5b83\u4eec \u68c0\u7d22 \u7279\u5b9a \u4e8b\u4ef6 \u6216 \u5e27 \u7684 \u6570\u636e \u3002 \u4f7f\u7528 \u67e5\u8be2 \u6765 \u7814\u7a76 \u8bb0\u5f55 \u3002 \u627e\u5230 \u805a\u5149 \u5149\u706f \u805a\u5149\u706f \u65f6\u523b \uff0c \u8ffd\u8e2a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u5185\u5bb9 \u3002 # -------------- # Query the recording # -------------- # Show only the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording01 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording01 . log \" , 10 , 1 ) ) # Filter collisions between vehicles ' v ' and ' a ' any other type of actor . print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording01 . log \" , ' v ' , ' a ' ) ) \u7b14\u8bb0 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4e0d \u9700\u8981 \u6253\u5f00 \u5373\u53ef \u8fdb\u884c \u67e5\u8be2 \u3002 \u663e\u793a \u91cd\u8981 \u4e8b\u4ef6 \u7684 \u67e5\u8be2 \u3002 \u8fd9\u662f \u81ea\u6211 \u8f66\u8f86 \u4ea7\u751f \u7684 \u6846\u67b6 \u3002 \u67e5\u8be2 \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u963b\u6b62 \u3002 \u5728 \u6b64 \u4eff\u771f \u4e2d \uff0c \u81ea\u6211 \u8f66\u8f86 \u4fdd\u6301 \u963b\u585e \u72b6\u6001 \u963b\u585e\u72b6\u6001 100 \u79d2 \u3002 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u4e0e \u201c \u5176\u4ed6 \u201d \u7c7b\u578b \u7684 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u7684 \u67e5\u8be2 \u3002 \u7b14\u8bb0 \u83b7\u53d6 \u6bcf \u4e00\u5e27 \u7684 \u8be6\u7ec6 \u6587\u4ef6 \u4fe1\u606f \u53ef\u80fd \u4f1a \u8ba9 \u4eba \u4e0d\u77e5 \u4e0d\u77e5\u6240\u63aa \u3002 \u5728 \u5176\u4ed6 \u67e5\u8be2 \u4e4b\u540e \u4f7f\u7528 \u5b83 \u6765 \u4e86\u89e3 \u8981 \u67e5\u770b \u7684 \u4f4d\u7f6e \u3002 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u67e5\u8be2 \u4e4b\u540e \uff0c \u5728 \u4e71\u641e \u4e4b\u524d \u56de\u653e \u4e00\u4e9b \u4eff\u771f \u7247\u6bb5 \u53ef\u80fd \u662f \u4e2a \u597d \u4e3b\u610f \u3002 \u8fd9\u6837 \u505a \u975e\u5e38 \u7b80\u5355 \u975e\u5e38\u7b80\u5355 \uff0c \u800c\u4e14 \u975e\u5e38 \u6709 \u5e2e\u52a9 \u3002 \u4e86\u89e3 \u6709\u5173 \u4eff\u771f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4ee5\u540e \u8282\u7701 \u65f6\u95f4 \u8282\u7701\u65f6\u95f4 \u7684 \u6700\u4f73 \u65b9\u6cd5 \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u9009\u62e9 \u64ad\u653e \u7684 \u5f00\u59cb \u70b9 \u548c \u7ed3\u675f \u70b9 \u4ee5\u53ca \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 # -------------- # Reenact a fragment of the recording # -------------- client . replay _ file ( \" ~ / tutorial / recorder / recording01 . log \" , 45 , 10 , 0 ) \u4ee5\u4e0b \u662f \u73b0\u5728 \u53ef\u4ee5 \u505a \u7684 \u4e8b\u60c5 \u7684 \u5217\u8868 \u3002 \u4f7f\u7528 \u67e5\u8be2 \u4e2d \u7684 \u4fe1\u606f \u3002 \u627e\u51fa \u4e8b\u4ef6 \u4e2d \u6d89\u53ca \u7684 \u65f6\u523b \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u518d\u6b21 \u64ad\u653e \u3002 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u542f\u52a8 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u8ddf\u968f \u4e0d\u540c \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e0d\u540c \u7684 \u89c6\u89d2 \u5c06 \u663e\u793a \u67e5\u8be2 \u4e2d\u672a \u5305\u542b \u7684 \u65b0 \u4e8b\u4ef6 \u3002 \u81ea\u7531 \u5730 \u89c2\u5bdf \u5468\u56f4 \u7684 \u60c5\u51b5 \u3002 \u5c06 actor _ id \u8bbe \u4e3a 0 \uff0c \u5e76 \u83b7\u5f97 \u4eff\u771f \u7684 \u603b\u4f53 \u89c6\u56fe \u3002 \u501f\u52a9 \u8bb0\u5f55 \u5f55\u97f3 \uff0c \u60a8 \u53ef\u4ee5 \u968f\u65f6 \u968f\u5730 \u968f\u65f6\u968f\u5730 \u3002 \u7b14\u8bb0 \u5f53 \u8bb0\u5f55 \u505c\u6b62 \u65f6 \uff0c \u4eff\u771f \u4e0d\u4f1a \u505c\u6b62 \u3002 \u884c\u4eba \u5c06 \u9759\u6b62 \u4e0d\u52a8 \u9759\u6b62\u4e0d\u52a8 \uff0c \u8f66\u8f86 \u5c06 \u7ee7\u7eed \u884c\u9a76 \u3002 \u5982\u679c \u65e5\u5fd7 \u7ed3\u675f \u6216 \u64ad\u653e \u5230\u8fbe \u6307\u5b9a \u7684 \u7ed3\u675f \u70b9 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002 \u68c0\u7d22 \u66f4 \u591a \u6570\u636e \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5c06 \u5728 \u6b64 \u4eff\u771f \u4e2d \u91cd\u65b0 \u521b\u5efa \u4e0e \u539f\u59cb \u6761\u4ef6 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u6761\u4ef6 \u3002 \u8fd9 \u786e\u4fdd \u4e86 \u4e0d\u540c \u64ad\u653e \u4e2d \u7684 \u6570\u636e \u4e00\u81f4 \u3002 \u6536\u96c6 \u91cd\u8981 \u65f6\u523b \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4e8b\u4ef6 \u7684 \u5217\u8868 \u3002 \u9700\u8981 \u65f6 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u56de\u653e \u4eff\u771f \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u4e4b\u524d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u811a\u672c tutorial _ replay . py \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u793a\u4f8b \uff0c \u8fd9\u4e9b \u793a\u4f8b \u5df2 \u5728 \u201c \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u201d \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u5f7b\u5e95 \u89e3\u91ca \u3002 \u5176\u4ed6 \u5df2 \u5728 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u89e3\u91ca \u3002 \u6839\u636e \u9700\u8981 \u6dfb\u52a0 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6839\u636e \u9700\u8981 \u591a\u6b21 \u56de\u653e \u4eff\u771f \u5e76 \u68c0\u7d22 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u6570\u636e \u3002 \u6539\u53d8 \u5929\u6c14 \u8bb0\u5f55 \u5c06 \u91cd\u73b0 \u539f\u59cb \u7684 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u5728 \u4fdd\u6301 \u5176\u4f59 \u4e8b\u4ef6 \u76f8\u540c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6bd4\u8f83 \u5b83 \u5982\u4f55 \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u4f1a \u5f88 \u6709\u8da3 \u3002 \u83b7\u53d6 \u5f53\u524d \u5929\u6c14 \u5e76 \u81ea\u7531 \u4fee\u6539 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c carla . WeatherParameters \u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u9884\u8bbe \u3002 \u8be5 \u811a\u672c \u4f1a \u5c06 \u73af\u5883 \u66f4 \u6539\u4e3a \u6709\u96fe \u7684 \u65e5\u843d \u3002 # -------------- # \u4e3a \u56de\u653e \u6539\u53d8 \u5929\u6c14 # -------------- weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather ) \u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c \u65b0 \u7684 \u4eff\u771f \u4e0e \u8bb0\u5f55 \u6ca1\u6709 \u4e25\u683c \u7684 \u8054\u7cfb \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u4fee\u6539 \uff0c \u5373\u4f7f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \uff0c \u4eff\u771f \u4e5f \u4f1a \u7ee7\u7eed \u3002 \u8fd9 \u5bf9\u4e8e \u7528\u6237 \u6765\u8bf4 \u662f \u6709\u5229 \u53ef\u56fe \u5229\u53ef\u56fe \u6709\u5229\u53ef\u56fe \u7684 \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u56de\u653e \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u524d \u7684 \u4eff\u771f \u5e76 \u751f\u6210 \u6216 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6765 \u5f3a\u5236 \u6216 \u907f\u514d \u78b0\u649e \u3002 \u5728 \u7279\u5b9a \u65f6\u523b \u7ed3\u675f \u8bb0\u5f55 \u4e5f \u5f88 \u6709\u7528 \u3002 \u8fd9\u6837 \u505a \uff0c \u8f66\u8f86 \u53ef\u80fd \u4f1a \u91c7\u53d6 \u4e0d\u540c \u7684 \u8def\u5f84 \u3002 \u6539\u53d8 \u6761\u4ef6 \u5e76 \u6270\u4e71 \u4eff\u771f \u3002 \u6ca1\u6709 \u4ec0\u4e48 \u53ef \u5931\u53bb \u7684 \uff0c \u56e0\u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u521d\u59cb \u4eff\u771f \u59cb\u7ec8 \u53ef\u4ee5 \u91cd\u65b0 \u8fdb\u884c \u3002 \u8fd9\u662f \u5145\u5206 \u5206\u53d1 \u53d1\u6325 \u5145\u5206\u53d1\u6325 Carla \u6f5c\u529b \u7684 \u5173\u952e \u3002 \u6559\u7a0b \u811a\u672c \u4e0b\u9762 \u662f \u6536\u96c6 \u672c \u6559\u7a0b \u4ee3\u7801 \u7247\u6bb5 \u7684 \u4e24\u4e2a \u811a\u672c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4ee3\u7801 \u90fd \u5e26\u6709 \u6ce8\u91ca \uff0c \u56e0\u4e3a \u9700\u8981 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 \u4ee5 \u9002\u5e94 \u7279\u5b9a \u76ee\u7684 \u3002 tutorial _ ego . py import glob import os import sys import time try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) args = argparser . parse _ args ( ) logging . basicConfig ( format = ' % ( levelname ) s : % ( message ) s ' , level = logging . INFO ) client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None ego _ col = None ego _ lane = None ego _ obs = None ego _ gnss = None ego _ imu = None # -------------- # Start recording # -------------- \" \" \" client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' ) \" \" \" # -------------- # Spawn ego vehicle # -------------- \" \" \" ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' ) \" \" \" # -------------- # Add a RGB camera sensor to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add collision sensor to ego vehicle . # -------------- \" \" \" col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) \" \" \" # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- \" \" \" lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) \" \" \" # -------------- # Add Obstacle sensor to ego vehicle . # -------------- \" \" \" obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) \" \" \" # -------------- # Add GNSS sensor to ego vehicle . # -------------- \" \" \" gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) \" \" \" # -------------- # Add IMU sensor to ego vehicle . # -------------- \" \" \" imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Enable autopilot for ego vehicle # -------------- \" \" \" ego _ vehicle . set _ autopilot ( True ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Stop recording and destroy actors # -------------- client . stop _ recorder ( ) if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if ego _ col is not None : ego _ col . stop ( ) ego _ col . destroy ( ) if ego _ lane is not None : ego _ lane . stop ( ) ego _ lane . destroy ( ) if ego _ obs is not None : ego _ obs . stop ( ) ego _ obs . destroy ( ) if ego _ gnss is not None : ego _ gnss . stop ( ) ego _ gnss . destroy ( ) if ego _ imu is not None : ego _ imu . stop ( ) ego _ imu . destroy ( ) ego _ vehicle . destroy ( ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ ego . ' ) tutorial _ replay . py import glob import os import sys import time import math import weakref try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None depth _ cam = None depth _ cam02 = None sem _ cam = None rad _ ego = None lidar _ sen = None # -------------- # Query the recording # -------------- \" \" \" # Show the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording05 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . # print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording04 . log \" , 10 , 1 ) ) # Show collisions between any type of actor . # print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording04 . log \" , ' v ' , ' a ' ) ) \" \" \" # -------------- # Reenact a fragment of the recording # -------------- \" \" \" client . replay _ file ( \" ~ / tutorial / recorder / recording03 . log \" , 0 , 30 , 0 ) \" \" \" # -------------- # Set playback simulation conditions # -------------- \" \" \" ego _ vehicle = world . get _ actor ( 322 ) # Store the ID from the simulation or query the recording to find out \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Change weather conditions # -------------- \" \" \" weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather ) \" \" \" # -------------- # Add a RGB camera to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ rgb _ output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add a Logarithmic Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de _ log / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) \" \" \" # -------------- # Add a Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam02 = None depth _ bp02 = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp02 . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp02 . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp02 . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location02 = carla . Location ( 2 , 0 , 1 ) depth _ rotation02 = carla . Rotation ( 0 , 180 , 0 ) depth _ transform02 = carla . Transform ( depth _ location02 , depth _ rotation02 ) depth _ cam02 = world . spawn _ actor ( depth _ bp02 , depth _ transform02 , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam02 . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de / %. 6d . jpg ' % image . frame , carla . ColorConverter . Depth ) ) \" \" \" # -------------- # Add a new semantic segmentation camera to ego vehicle # -------------- \" \" \" sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) \" \" \" # -------------- # Add a new radar sensor to ego vehicle # -------------- \" \" \" rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.8 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \" \" \" # -------------- # Add a new LIDAR sensor to ego vehicle # -------------- \" \" \" lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' / home / adas / Desktop / tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Destroy actors # -------------- if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if depth _ cam is not None : depth _ cam . stop ( ) depth _ cam . destroy ( ) if sem _ cam is not None : sem _ cam . stop ( ) sem _ cam . destroy ( ) if rad _ ego is not None : rad _ ego . stop ( ) rad _ ego . destroy ( ) if lidar _ sen is not None : lidar _ sen . stop ( ) lidar _ sen . destroy ( ) ego _ vehicle . destroy ( ) print ( ' \\ nNothing to be done . ' ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ replay . ' ) \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u4ece \u4eff\u771f \u4e2d \u6b63\u786e \u68c0\u7d22 \u6570\u636e \u7684 \u603b\u7ed3 \u3002 \u786e\u4fdd \u5c1d\u8bd5 \u4e00\u4e0b \uff0c \u6539\u53d8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6761\u4ef6 \uff0c \u5c1d\u8bd5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_1","text":"\u5728 Carla \u4e2d \uff0c \u5b66\u4e60 \u4e00\u79cd \u6709\u6548 \u7684 \u65b9\u6cd5 \u6765 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u8fd9\u4e2a \u6574\u4f53 \u6559\u7a0b \u9002\u5408 \u65b0\u624b \u548c \u7ecf\u9a8c \u4e30\u5bcc \u7ecf\u9a8c\u4e30\u5bcc \u7684 \u7528\u6237 \u3002 \u5b83 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \uff0c \u9010\u6e10 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 Carla \u4e2d \u53ef\u7528 \u7684 \u8bb8\u591a \u9009\u9879 \u3002 \u9996\u5148 \uff0c \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u548c \u6d41\u91cf \u521d\u59cb \u521d\u59cb\u5316 \u4eff\u771f \u3002 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \u5c06 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \uff0c \u53ef\u9009 \u53ef\u9009\u5730 \u914d\u5907 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u8bb0\u5f55 \u4eff\u771f \uff0c \u4ee5\u4fbf \u4ee5\u540e \u67e5\u8be2 \u4ee5 \u627e\u5230 \u4eae\u70b9 \u3002 \u4e4b\u540e \uff0c \u539f\u59cb \u4eff\u771f \u88ab \u56de\u653e \uff0c \u5e76 \u88ab \u5229\u7528 \u5230 \u6781\u9650 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u65b0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u68c0\u7d22 \u4e00\u81f4 \u7684 \u6570\u636e \u3002 \u5929\u6c14 \u6761\u4ef6 \u662f \u53ef\u4ee5 \u6539\u53d8 \u7684 \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u751a\u81f3 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u5177\u6709 \u4e0d\u540c \u8f93\u51fa \u7684 \u7279\u5b9a \u573a\u666f \u3002 \u6982\u8ff0 \u8bbe\u7f6e \u4eff\u771f \u5730\u56fe \u8bbe\u7f6e \u5929\u6c14 \u8bbe\u7f6e \u8bbe\u7f6e \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf Carla \u4ea4\u901a \u548c \u884c\u4eba SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a \u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u653e\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 RGB \u76f8\u673a \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6df1\u5ea6 \u76f8\u673a \u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u975e \u6e32\u67d3 \u6a21\u5f0f \u5feb\u901f \u4eff\u771f \u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236 \u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e \u5f00\u59cb \u8bb0\u5f55 \u6355\u83b7 \u5e76 \u8bb0\u5f55 \u505c\u6b62 \u8bb0\u5f55 \u5229\u7528 \u8bb0\u5f55 \u67e5\u8be2 \u4e8b\u4ef6 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u68c0\u7d22 \u66f4 \u591a \u6570\u636e \u6539\u53d8 \u5929\u6c14 \u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c \u6559\u7a0b \u811a\u672c","title":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_2","text":"\u5728 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u7684 \u8fc7\u7a0b \u4e2d \u5b58\u5728 \u4e00\u4e9b \u5e38\u89c1 \u9519\u8bef \u3002 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e2d \u5145\u65a5 \u7740 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u5b58\u50a8 \u65e0\u7528 \u7684 \u6570\u636e \u6216 \u52aa\u529b \u5bfb\u627e \u7279\u5b9a \u4e8b\u4ef6 \u90fd \u662f \u4e00\u4e9b \u4f8b\u5b50 \u3002 \u7136\u800c \uff0c \u53ef\u4ee5 \u63d0\u4f9b \u8be5 \u8fc7\u7a0b \u7684 \u4e00\u4e9b \u6982\u8981 \u3002 \u76ee\u6807 \u662f \u786e\u4fdd \u6570\u636e \u53ef\u4ee5 \u68c0\u7d22 \u548c \u590d\u5236 \uff0c \u5e76\u4e14 \u53ef\u4ee5 \u968f\u610f \u68c0\u67e5 \u68c0\u67e5\u548c \u66f4\u6539 \u4eff\u771f \u3002 \u7b14\u8bb0 \u672c \u6559\u7a0b \u4f7f\u7528 Carla 0.9 . 8 deb \u5305 \u3002 \u6839\u636e \u60a8 \u7684 Carla \u7248\u672c \u548c \u5b89\u88c5 \uff0c \u53ef\u80fd \u4f1a \u6709 \u7ec6\u5fae \u7684 \u53d8\u5316 \uff0c \u7279\u522b \u662f \u5728 \u8def\u5f84 \u65b9\u9762 \u3002 \u672c \u6559\u7a0b \u4e3a \u4e0d\u540c \u6b65\u9aa4 \u63d0\u4f9b \u4e86 \u591a\u79cd \u9009\u9879 \u3002 \u4e00\u76f4 \u4ee5\u6765 \uff0c \u90fd \u4f1a \u63d0\u5230 \u4e0d\u540c \u7684 \u811a\u672c \u3002 \u5e76 \u4e0d\u662f \u6240\u6709 \u7684 \u90fd \u4f1a \u88ab \u4f7f\u7528 \uff0c \u8fd9 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u5177\u4f53 \u7684 \u7528\u4f8b \u3002 \u5176\u4e2d \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u5df2 \u5728 Carla \u4e2d \u63d0\u4f9b \u7528\u4e8e \u901a\u7528 \u76ee\u7684 \u3002 config . py \u66f4\u6539 \u4eff\u771f \u8bbe\u7f6e \u3002 \u5730\u56fe \u3001 \u6e32\u67d3 \u9009\u9879 \u3001 \u8bbe\u7f6e \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f ... carla / PythonAPI / util / config . py dynamic _ weather . py \u521b\u5efa \u6709\u8da3 \u7684 \u5929\u6c14 \u6761\u4ef6 \u3002 carla / PythonAPI / examples / dynamic _ weather . py spawn _ npc . py spawn _ npc . py \u751f\u6210 \u4e00\u4e9b \u4eba\u5de5 \u667a\u80fd \u4eba\u5de5\u667a\u80fd \u63a7\u5236 \u7684 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 carla / PythonAPI / examples / spawn _ npc . py manual _ control . py \u751f\u6210 \u4e00\u4e2a \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u63d0\u4f9b \u5bf9 \u5176 \u7684 \u63a7\u5236 \u3002 carla / PythonAPI / examples / manual _ control . py \u4f46\u662f \uff0c \u6559\u7a0b \u4e2d \u63d0\u5230 \u7684 \u4e24\u4e2a \u811a\u672c \u5728 Carla \u4e2d \u627e \u4e0d\u5230 \u3002 \u5b83\u4eec \u5305\u542b \u5f15\u7528 \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8fd9\u6709 \u53cc\u91cd \u76ee\u7684 \u3002 \u9996\u5148 \uff0c \u9f13\u52b1 \u7528\u6237 \u6784\u5efa \u81ea\u5df1 \u7684 \u811a\u672c \u3002 \u5145\u5206 \u7406\u89e3 \u4ee3\u7801 \u7684 \u4f5c\u7528 \u975e\u5e38 \u91cd\u8981 \u3002 \u9664\u6b64 \u4e4b\u5916 \u9664\u6b64\u4e4b\u5916 \uff0c \u672c \u6559\u7a0b \u53ea\u662f \u4e00\u4e2a \u5927\u7eb2 \uff0c \u53ef\u80fd \u800c\u4e14 \u5e94\u8be5 \u6839\u636e \u7528\u6237 \u7684 \u559c\u597d \u800c \u6709 \u5f88\u5927 \u7684 \u4e0d\u540c \u3002 \u8fd9 \u4e24\u4e2a \u811a\u672c \u53ea\u662f \u4e00\u4e2a \u793a\u4f8b \u3002 tutorial _ ego . py \u751f\u6210 \u5e26\u6709 \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u5e76 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u88ab \u653e\u7f6e \u5728 \u751f\u6210 \u4f4d\u7f6e \u3002 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4ece \u4e00 \u5f00\u59cb \u5c31 \u542f\u52a8 \uff0c \u5e76 \u5728 \u811a\u672c \u5b8c\u6210 \u65f6 \u505c\u6b62 \u3002 tutorial _ replay . py \u91cd\u65b0 \u6267\u884c tutorial _ ego . py \u8bb0\u5f55 \u7684 \u4eff\u771f \u3002 \u6709 \u4e0d\u540c \u7684 \u4ee3\u7801 \u7247\u6bb5 \u53ef\u4ee5 \u67e5\u8be2 \u8bb0\u5f55 \u3001 \u751f\u6210 \u4e00\u4e9b \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3001 \u6539\u53d8 \u5929\u6c14 \u6761\u4ef6 \u4ee5\u53ca \u91cd\u65b0 \u6267\u884c \u8bb0\u5f55 \u8bb0\u5f55\u7247 \u6bb5 \u3002 \u5b8c\u6574 \u7684 \u4ee3\u7801 \u53ef\u4ee5 \u5728 \u6559\u7a0b \u7684 \u6700\u540e \u90e8\u5206 \u627e\u5230 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u8fd9\u4e9b \u5e76 \u4e0d \u4e25\u683c \uff0c \u800c\u662f \u53ef\u4ee5 \u5b9a\u5236 \u7684 \u3002 \u5728 Carla \u4e2d \u68c0\u7d22 \u6570\u636e \u7684 \u529f\u80fd \u6b63\u5982 \u7528\u6237 \u6240 \u5e0c\u671b \u7684 \u90a3\u6837 \u5f3a\u5927 \u3002 \u91cd\u8981 \u672c \u6559\u7a0b \u9700\u8981 \u4e00\u4e9b Python \u77e5\u8bc6 \u3002","title":"\u6982\u8ff0"},{"location":"tuto_G_retrieve_data/#_3","text":"\u8981 \u505a \u7684 \u7b2c\u4e00 \u4e00\u4ef6 \u7b2c\u4e00\u4ef6 \u4e8b\u662f \u5c06 \u4eff\u771f \u8bbe\u7f6e \u4e3a \u6240 \u9700 \u7684 \u73af\u5883 \u3002 \u8fd0\u884c Carla \u3002 cd / opt / carla / bin . / CarlaUE . sh","title":"\u8bbe\u7f6e \u4eff\u771f"},{"location":"tuto_G_retrieve_data/#_4","text":"\u9009\u62e9 \u8981 \u8fd0\u884c \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u67e5\u770b \u5730\u56fe \u6587\u6863 \u4ee5 \u4e86\u89e3 \u6709\u5173 \u5176 \u7279\u5b9a \u5c5e\u6027 \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u9009\u62e9 Town07 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u3002 \u4f7f\u7528 config . py \u811a\u672c \u66f4\u6539 \u5730\u56fe \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- map Town01 \u8be5 \u811a\u672c \u53ef\u4ee5 \u542f\u7528 \u4e0d\u540c \u7684 \u8bbe\u7f6e \u3002 \u5176\u4e2d \u4e00\u4e9b \u5c06 \u5728 \u6559\u7a0b \u4e2d \u63d0\u53ca \uff0c \u53e6 \u4e00\u4e9b \u4e00\u4e9b\u5219 \u4e0d\u4f1a \u3002 \u4e0b\u9762 \u6709 \u4e00\u4e2a \u7b80\u77ed \u7684 \u603b\u7ed3 \u3002 config . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host Carla Simulator ( default : localhost ) - p P , -- port P TCP port of Carla Simulator ( default : 2000 ) - d , -- default set default settings - m MAP , -- map MAP load a new map , use -- list to see available maps - r , -- reload - map reload current map -- delta - seconds S set fixed delta seconds , zero for variable frame rate -- fps N set fixed FPS , zero for variable FPS ( similar to -- delta - seconds ) -- rendering enable rendering -- no - rendering disable rendering -- no - sync disable synchronous mode -- weather WEATHER set weather preset , use -- list to see available presets - i , -- inspect inspect simulation - l , -- list list available options - b FILTER , -- list - blueprints FILTER list available blueprints matching FILTER ( use ' * ' to list them all ) - x XODR _ FILE _ PATH , -- xodr - path XODR _ FILE _ PATH load a new map with a minimum physical road representation of the provided OpenDRIVE Town07 \u7684 \u7a7a\u4e2d \u89c6\u89d2","title":"\u5730\u56fe \u8bbe\u7f6e"},{"location":"tuto_G_retrieve_data/#_5","text":"\u6bcf\u4e2a \u57ce\u9547 \u90fd \u6709 \u9002\u5408 \u5b83 \u7684 \u7279\u5b9a \u5929\u6c14 \uff0c \u4f46\u662f \u53ef\u4ee5 \u968f\u610f \u8bbe\u7f6e \u3002 \u6709 \u4e24\u4e2a \u811a\u672c \u63d0\u4f9b \u4e86 \u89e3\u51b3 \u6b64 \u95ee\u9898 \u7684 \u4e0d\u540c \u65b9\u6cd5 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u8bbe\u7f6e \u4e86 \u52a8\u6001 \u5929\u6c14 \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u60c5\u51b5 \u4f1a \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 \u53e6 \u4e00\u4e2a \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u6761\u4ef6 \u3002 \u8fd8 \u53ef\u4ee5 \u5bf9 \u5929\u6c14 \u6761\u4ef6 \u8fdb\u884c \u7f16\u7801 \u3002 \u7a0d\u540e \u5929\u6c14 \u6761\u4ef6 \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u65f6 \u5c06 \u5bf9\u6b64 \u8fdb\u884c \u4ecb\u7ecd \u3002 \u8bbe\u7f6e \u52a8\u6001 \u5929\u6c14 \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c dynamic _ weather . py \u3002 \u8be5 \u811a\u672c \u5141\u8bb8 \u8bbe\u7f6e \u5929\u6c14 \u53d8\u5316 \u7684 \u6bd4\u7387 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u662f 1.0 \u3002 cd / opt / carla / PythonAPI / examples python3 dynamic _ weather . py -- speed 1.0 \u8bbe\u7f6e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6761\u4ef6 \u4f7f\u7528 \u811a\u672c environment . py \u3002 \u6709 \u5f88\u591a \u53ef\u80fd \u7684 \u8bbe\u7f6e \u3002 \u67e5\u770b \u53ef \u9009 \u53c2\u6570 \u4ee5\u53ca carla . WeatherParameters \u7684 \u6587\u6863 \u3002 cd / opt / carla / PythonAPI / util python3 environment . py -- clouds 100 -- rain 80 -- wetness 100 -- puddles 60 -- wind 80 -- fog 50 environment . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- sun SUN Sun position presets [ sunset | day | night ] -- weather WEATHER Weather condition presets [ clear | overcast | rain ] -- altitude A , - alt A Sun altitude [ - 90.0 , 90.0 ] -- azimuth A , - azm A Sun azimuth [ 0.0 , 360.0 ] -- clouds C , - c C Clouds amount [ 0.0 , 100.0 ] -- rain R , - r R Rain amount [ 0.0 , 100.0 ] -- puddles Pd , - pd Pd Puddles amount [ 0.0 , 100.0 ] -- wind W , - w W Wind intensity [ 0.0 , 100.0 ] -- fog F , - f F Fog intensity [ 0.0 , 100.0 ] -- fogdist Fd , - fd Fd Fog Distance [ 0.0 , inf ) -- wetness Wet , - wet Wet Wetness intensity [ 0.0 , 100.0 ] \u4f7f\u7528 \u5929\u6c14 \u6539\u53d8","title":"\u5929\u6c14 \u8bbe\u7f6e"},{"location":"tuto_G_retrieve_data/#_6","text":"\u4eff\u771f \u4ea4\u901a \u662f \u8ba9 \u5730\u56fe \u6829\u6829 \u6829\u6829\u5982\u751f \u7684 \u6700\u4f73 \u65b9\u6cd5 \u4e4b\u4e00 \u3002 \u8fd8 \u9700\u8981 \u68c0\u7d22 \u57ce\u5e02 \u73af\u5883 \u7684 \u6570\u636e \u3002 \u5728 Carla \u4e2d\u6709 \u4e0d\u540c \u7684 \u9009\u62e9 \u53ef\u4ee5 \u5b9e\u73b0 \u8fd9 \u4e00\u70b9 \u3002","title":"\u8bbe\u7f6e \u4ea4\u901a\u6d41\u91cf"},{"location":"tuto_G_retrieve_data/#carla","text":"Carla \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u6a21\u5757 \u7ba1\u7406 \u3002 \u81f3\u4e8e \u884c\u4eba \uff0c \u4ed6\u4eec \u6bcf\u4e2a \u4eba \u90fd \u6709 \u81ea\u5df1 \u7684 carla . WalkerAIController \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \uff0c \u7136\u540e \u8fd0\u884c spawn _ npc . py \u6765 \u751f\u6210 \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 \u8ba9 \u6211\u4eec \u751f\u6210 50 \u8f86\u8f66 \u548c \u76f8\u540c \u6570\u91cf \u7684 \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u3002 cd / opt / carla / PythonAPI / examples python3 spawn _ npc . py - n 50 - w 50 -- safe spawn _ npc . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) - n N , -- number - of - vehicles N number of vehicles ( default : 10 ) - w W , -- number - of - walkers W number of walkers ( default : 50 ) -- safe avoid spawning vehicles prone to accidents -- filterv PATTERN vehicles filter ( default : \" vehicle . * \" ) -- filterw PATTERN pedestrians filter ( default : \" walker . pedestrian . * \" ) - tm _ p P , -- tm - port P port to communicate with TM ( default : 8000 ) -- async Asynchronous mode execution \u751f\u6210 \u8f66\u8f86 \u4ee5 \u4eff\u771f \u4ea4\u901a \u3002","title":"Carla \u4ea4\u901a \u548c \u884c\u4eba"},{"location":"tuto_G_retrieve_data/#sumo","text":"Carla \u53ef\u4ee5 \u4e0e SUMO \u8fd0\u884c \u8054\u5408 \u4eff\u771f \u3002 \u8fd9 \u5141\u8bb8 \u5728 SUMO \u4e2d \u521b\u5efa \u5c06 \u4f20\u64ad \u5230 Carla \u7684 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u8fd9\u79cd \u8054\u5408 \u4eff\u771f \u662f \u53cc\u5411 \u7684 \u3002 \u5728 Carla \u4e2d \u751f\u6210 \u7684 \u8f66\u8f86 \u5c06 \u5728 SUMO \u4e2d \u751f\u6210 \u3002 \u6709\u5173 \u6b64 \u529f\u80fd \u7684 \u5177\u4f53 \u6587\u6863 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u3002 \u6b64 \u529f\u80fd \u9002\u7528 \u4e8e Carla 0.9 . 8 \u53ca \u66f4 \u9ad8 \u7248\u672c \u7684 Town01 \u3001 Town04 \u548c Town05 \u3002 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u662f \u6700 \u7a33\u5b9a \u7684 \u3002 \u7b14\u8bb0 \u8054\u5408 \u4eff\u771f \u5c06 \u5728 Carla \u4e2d \u542f\u7528 \u540c\u6b65 \u6a21\u5f0f \u3002 \u9605\u8bfb \u6587\u6863 \u4ee5 \u4e86\u89e3 \u66f4 \u591a \u76f8\u5173 \u4fe1\u606f \u3002 \u9996\u5148 \uff0c \u5b89\u88c5 SUMO \u3002 sudo add - apt - repository ppa : sumo / stable sudo apt - get update sudo apt - get install sumo sumo - tools sumo - doc \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SUMO _ HOME \u3002 echo \" export SUMO _ HOME = / usr / share / sumo \" > > ~ / . bashrc && source ~ / . bashrc \u5728 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u6253\u5f00 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u8fd0\u884c SUMO - Carla \u540c\u6b65 \u811a\u672c \u3002 cd ~ / carla / Co - Simulation / Sumo python3 run _ synchronization . py examples / Town01 . sumocfg -- sumo - gui SUMO \u7a97\u53e3 \u5e94\u8be5 \u5df2 \u6253\u5f00 \u3002 \u6309 \u201c \u8fd0\u884c \u201d \u4ee5 \u5728 \u4e24\u4e2a \u4eff\u771f \u4e2d \u542f\u52a8 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 > \" Play \" on SUMO window . \u8be5 \u811a\u672c \u751f\u6210 \u7684 \u6d41\u91cf \u662f Carla \u56e2\u961f \u521b\u5efa \u7684 \u793a\u4f8b \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u6cbf\u7740 \u76f8\u540c \u7684 \u8def\u7ebf \u751f\u6210 \u76f8\u540c \u7684 \u8f66\u8f86 \u3002 \u7528\u6237 \u53ef\u4ee5 \u5728 SUMO \u4e2d \u66f4\u6539 \u8fd9\u4e9b \u5185\u5bb9 \u3002 SUMO \u548c Carla \u534f\u540c \u4eff\u771f \u4ea4\u901a \u3002 \u8b66\u544a \u76ee\u524d \uff0c SUMO \u8054\u5408 \u4eff\u771f \u8fd8\u662f \u6d4b\u8bd5 \u6d4b\u8bd5\u7248 \u529f\u80fd \u3002 \u8f66\u8f86 \u6ca1\u6709 \u7269\u7406 \u7279\u6027 \uff0c \u4e5f \u4e0d \u8003\u8651 Carla \u4ea4\u901a \u4ea4\u901a\u706f \u3002","title":"SUMO \u534f\u540c \u4eff\u771f \u4ea4\u901a"},{"location":"tuto_G_retrieve_data/#_7","text":"\u4ece \u73b0\u5728 \u5230 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \u7684 \u4e00\u523b \u90a3\u4e00\u523b \uff0c \u5c06\u4f1a \u6709 \u4e00\u4e9b \u5c5e\u4e8e tutorial _ ego . py \u7684 \u4ee3\u7801 \u7247\u6bb5 \u3002 \u8be5 \u811a\u672c \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \uff0c \u53ef \u9009 \u4e00\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u5e76 \u8bb0\u5f55 \u4eff\u771f \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002","title":"\u8bbe\u7f6e \u81ea\u6211 \u8f66\u8f86"},{"location":"tuto_G_retrieve_data/#_8","text":"\u7528\u6237 \u63a7\u5236 \u7684 \u8f66\u8f86 \u5728 Carla \u4e2d \u901a\u5e38 \u901a\u8fc7 \u5c06 \u5c5e\u6027 role _ name \u8bbe\u7f6e \u4e3a ego \u6765 \u533a\u5206 \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u5176\u4ed6 \u5c5e\u6027 \uff0c \u5176\u4e2d \u4e00\u4e9b \u5177\u6709 \u63a8\u8350 \u63a8\u8350\u503c \u3002 \u4e0b\u9762 \uff0c \u4ece \u84dd \u56fe\u5e93 \u4e2d \u68c0\u7d22 \u7279\u65af \u65af\u62c9 \u7279\u65af\u62c9 \u6a21\u578b \uff0c \u5e76 \u4f7f\u7528 \u968f\u673a \u63a8\u8350 \u7684 \u989c\u8272 \u751f\u6210 \u3002 \u9009\u62e9 \u5730\u56fe \u63a8\u8350 \u7684 \u751f\u6210 \u70b9 \u4e4b\u4e00 \u6765 \u653e\u7f6e \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spawn ego vehicle # -------------- ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' )","title":"\u751f\u6210 \u81ea\u6211 \u8f66\u8f86"},{"location":"tuto_G_retrieve_data/#_9","text":"\u89c2\u5bdf \u89c2\u5bdf\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u4eff\u771f \u89c6\u56fe \u3002 \u901a\u8fc7 \u811a\u672c \u79fb\u52a8 \u5b83 \u662f \u53ef\u9009 \u7684 \uff0c \u4f46 \u5b83 \u53ef\u80fd \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u627e\u5230 \u81ea\u6211 \u8f66\u8f86 \u3002 # -------------- # Spectator on ego position # -------------- spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) )","title":"\u653e\u7f6e \u89c2\u5bdf\u8005"},{"location":"tuto_G_retrieve_data/#_10","text":"\u751f\u6210 \u4efb\u4f55 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8fc7\u7a0b \u90fd \u975e\u5e38 \u76f8\u4f3c \u3002 1 . \u4f7f\u7528 \u5e93 \u67e5\u627e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u84dd\u56fe \u3002 2 . \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u7279\u5b9a \u5c5e\u6027 \u3002 \u8fd9 \u4e00\u70b9 \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u5c5e\u6027 \u5c06 \u5851\u9020 \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u3002 3 . \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8fde\u63a5 \u81f3 \u81ea\u6211 \u8f66\u8f86 \u3002 \u8be5 \u53d8\u6362 \u662f \u76f8\u5bf9 \u4e8e \u5176\u7236 \u7ea7 \u7684 \u3002 carla . AttachmentType \u5c06 \u786e\u5b9a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f4d\u7f6e \u7684 \u66f4\u65b0 \u65b9\u5f0f \u3002 4 . \u6dfb\u52a0 listen ( ) \u65b9\u6cd5 \u3002 \u8fd9\u662f \u5173\u952e \u8981\u7d20 \u3002 \u6bcf\u6b21 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4fa6\u542c \u6570\u636e \u65f6 \u90fd \u4f1a \u8c03\u7528 \u7684 lambda \u65b9\u6cd5 \u3002 \u53c2\u6570 \u662f \u68c0\u7d22 \u5230 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u3002 \u7262\u8bb0 \u8fd9\u4e00 \u57fa\u672c \u51c6\u5219 \u57fa\u672c\u51c6\u5219 \uff0c \u8ba9 \u6211\u4eec \u4e3a \u81ea\u6211 \u8f66\u8f86 \u8bbe\u7f6e \u4e00\u4e9b \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002","title":"\u8bbe\u7f6e \u57fa\u672c \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#rgb","text":"RGB \u76f8\u673a \u751f\u6210 \u903c\u771f \u7684 \u573a\u666f \u56fe\u7247 \u3002 \u5b83 \u662f \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e2d \u53ef \u8bbe\u7f6e \u5c5e\u6027 \u8f83 \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f46 \u5b83 \u4e5f \u662f \u4e00\u4e2a \u57fa\u672c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5b83 \u5e94\u8be5 \u88ab \u7406\u89e3 \u4e3a \u4e00\u4e2a \u771f\u6b63 \u7684 \u76f8\u673a \uff0c \u5177\u6709 \u8bf8\u5982 focal _ distance \u3001 shutter _ speed \u6216 gamma \u786e\u5b9a \u5176 \u5185\u90e8 \u5982\u4f55 \u5de5\u4f5c \u7684 \u5c5e\u6027 \u3002 \u8fd8\u6709 \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5c5e\u6027 \u6765 \u5b9a\u4e49 \u955c\u5934 \u7578\u53d8 \uff0c \u4ee5\u53ca \u8bb8\u591a \u9ad8\u7ea7 \u5c5e\u6027 \u3002 \u4f8b\u5982 \uff0c lens _ circle _ multiplier \u53ef\u4ee5 \u7528\u6765 \u5b9e\u73b0 \u7c7b\u4f3c \u4e8e \u773c\u775b \u9c7c \u955c\u5934 \u7684 \u6548\u679c \u3002 \u5728 \u6587\u6863 \u4e2d \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u4e3a\u4e86 \u7b80\u5355 \u8d77 \u89c1 \uff0c \u811a\u672c \u4ec5 \u8bbe\u7f6e \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6700 \u5e38\u7528 \u7684 \u5c5e\u6027 \u3002 image _ size _ x \u548c image _ size _ y \u5c06 \u6539\u53d8 \u8f93\u51fa \u56fe\u50cf \u7684 \u5206\u8fa8 \u8fa8\u7387 \u5206\u8fa8\u7387 \u3002 fov \u662f \u76f8\u673a \u7684 \u6c34\u5e73 \u89c6\u91ce \u3002 \u8bbe\u7f6e \u5c5e\u6027 \u540e \uff0c \u5c31 \u53ef\u4ee5 \u751f\u6210 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e86 \u3002 \u811a\u672c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e2d \uff0c \u5e76 \u6307\u5411 \u524d\u65b9 \u3002 \u5b83 \u5c06 \u6355\u6349 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 \u6bcf \u4e00\u6b65 \u90fd \u4f1a \u4ee5 carla . Image \u7684 \u5f62\u5f0f \u68c0\u7d22 \u6570\u636e \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b83\u4eec \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u8def\u5f84 \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u6bcf\u5f20 \u56fe\u50cf \u7684 \u540d\u79f0 \u5747 \u6839\u636e \u62cd\u6444 \u955c\u5934 \u7684 \u4eff\u771f \u5e27 \u8fdb\u884c \u7f16\u7801 \u3002 # -------------- # Spawn attached RGB camera # -------------- cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / output / %. 6d . jpg ' % image . frame ) ) RGB camera output","title":"RGB \u76f8\u673a"},{"location":"tuto_G_retrieve_data/#_11","text":"\u5f53 \u5b83\u4eec \u6240 \u9644\u52a0 \u7684 \u5bf9\u8c61 \u6ce8\u518c \u7279\u5b9a \u4e8b\u4ef6 \u65f6 \uff0c \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f1a \u68c0\u7d22 \u6570\u636e \u3002 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5206\u4e3a \u4e09\u79cd \u7c7b\u578b \uff0c \u6bcf\u79cd \u90fd \u63cf\u8ff0 \u4e00\u79cd \u7c7b\u578b \u7684 \u4e8b\u4ef6 \u3002 \u78b0\u649e \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u7d22 \u5176\u7236 \u7ea7 \u4e0e \u5176\u4ed6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u4e4b\u95f4 \u7684 \u78b0\u649e \u3002 \u8f66\u9053 \u5165\u4fb5 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u5f53 \u5176\u7236 \u7ea7 \u7a7f\u8fc7 \u8f66\u9053 \u6807\u8bb0 \u65f6 \u8fdb\u884c \u6ce8\u518c \u3002 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u3002 \u68c0\u6d4b \u5176\u7236 \u7ea7 \u524d\u65b9 \u53ef\u80fd \u5b58\u5728 \u7684 \u969c\u788d \u969c\u788d\u7269 \u3002 \u4ed6\u4eec \u68c0\u7d22 \u5230 \u7684 \u6570\u636e \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u51b3\u5b9a \u8981 \u91cd\u65b0 \u6267\u884c \u4eff\u771f \u7684 \u54ea \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u663e\u5f0f \u67e5\u8be2 \u51b2\u7a81 \u3002 \u8fd9\u662f \u51c6\u5907 \u6253\u5370 \u7684 \u3002 \u53ea\u6709 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u84dd\u56fe \u6709 \u9700\u8981 \u8bbe\u7f6e \u7684 \u5c5e\u6027 \u3002 \u4ee5\u4e0b \u662f \u4e00\u4e9b \u91cd\u8981 \u7684 \u5185\u5bb9 \u3002 sensor _ tick \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ec5 \u5728 x \u79d2\u949f \u540e \u68c0\u7d22 \u6570\u636e \u3002 \u8fd9\u662f \u68c0\u7d22 \u6bcf \u4e00\u6b65 \u6570\u636e \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5e38\u89c1 \u5c5e\u6027 \u3002 distance \u548c hit - radius \u5851\u9020 \u7528\u4e8e \u68c0\u6d4b \u524d\u65b9 \u969c\u788d \u969c\u788d\u7269 \u7684 \u8c03\u8bd5 \u7ebf \u3002 only _ dynamics \u786e\u5b9a \u662f\u5426 \u5e94 \u8003\u8651 \u9759\u6001 \u5bf9\u8c61 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4efb\u4f55 \u5bf9\u8c61 \u90fd \u4f1a \u88ab \u8003\u8651 \u3002 \u8be5 \u811a\u672c \u5c06 \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \u6d4b\u5668 \u68c0\u6d4b\u5668 \u8bbe\u7f6e \u4e3a \u4ec5 \u8003\u8651 \u52a8\u6001 \u5bf9\u8c61 \u3002 \u5982\u679c \u8f66\u8f86 \u4e0e \u4efb\u4f55 \u9759\u6001 \u7269\u4f53 \u53d1\u751f \u78b0\u649e \uff0c \u78b0\u649e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u4f1a \u68c0\u6d4b \u5230 \u3002 # -------------- # Add collision sensor to ego vehicle . # -------------- col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) # -------------- # Add Obstacle sensor to ego vehicle . # -------------- obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) Output for detector sensors","title":"\u68c0\u6d4b\u5668"},{"location":"tuto_G_retrieve_data/#_12","text":"\u6682\u65f6 \u53ea \u8003\u8651 \u8be5\u7c7b \u522b\u7684 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5168\u7403 \u5bfc\u822a \u536b\u661f \u7cfb\u7edf \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u68c0\u7d22 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5730\u7406 \u4f4d\u7f6e \u5730\u7406\u4f4d\u7f6e \u3002 IMU \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u5305\u62ec \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u3001 \u9640\u87ba \u9640\u87ba\u4eea \u548c \u6307\u5357 \u5357\u9488 \u6307\u5357\u9488 \u3002 \u4e3a\u4e86 \u83b7\u5f97 \u8f66\u8f86 \u5bf9\u8c61 \u7684 \u4e00\u822c \u6d4b\u91cf \u503c \uff0c \u8fd9 \u4e24\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4ee5 \u8f66\u8f86 \u5bf9\u8c61 \u4e3a \u4e2d\u5fc3 \u751f\u6210 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u8bbe\u7f6e \u6d4b\u91cf \u566a\u58f0 \u6a21\u578b \u4e2d \u7684 \u5e73\u5747 \u5747\u503c \u5e73\u5747\u503c \u6216 \u6807\u51c6 \u504f\u5dee \u6807\u51c6\u504f\u5dee \u53c2\u6570 \u3002 \u8fd9 \u5bf9\u4e8e \u83b7\u5f97 \u66f4 \u73b0\u5b9e \u7684 \u63aa\u65bd \u5f88 \u6709\u7528 \u3002 \u7136\u800c \uff0c \u5728 tutorial _ ego . py \u4e2d \u53ea \u8bbe\u7f6e \u4e86 \u4e00\u4e2a \u5c5e\u6027 \u3002 sensor _ tick . \u7531\u4e8e \u6b64 \u6d4b\u91cf \u503c \u5728 \u6b65\u9aa4 \u4e4b\u95f4 \u4e0d \u5e94\u6709 \u663e \u7740 \u53d8\u5316 \uff0c \u56e0\u6b64 \u53ef\u4ee5 \u7ecf\u5e38 \u68c0\u7d22 \u6570\u636e \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u8bbe\u7f6e \u4e3a \u6bcf \u4e09\u79d2 \u6253\u5370 \u4e00\u6b21 \u3002 # -------------- # Add GNSS sensor to ego vehicle . # -------------- gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) # -------------- # Add IMU sensor to ego vehicle . # -------------- imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) GNSS and IMU sensors output","title":"\u5176\u4ed6 \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_13","text":"\u811a\u672c tutorial _ replay . py \u9664 \u5176\u4ed6 \u5916 \u8fd8 \u5305\u542b \u66f4 \u591a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5b9a\u4e49 \u3002 \u5b83\u4eec \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u57fa\u672c \u7684 \u76f8\u540c \uff0c \u4f46 \u7406\u89e3 \u53ef\u80fd \u6709\u70b9 \u56f0\u96be \u3002","title":"\u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_14","text":"\u6df1\u5ea6 \u76f8\u673a \u751f\u6210 \u573a\u666f \u7684 \u56fe\u7247 \uff0c \u5c06 \u6bcf\u4e2a \u50cf\u7d20 \u6620\u5c04 \u5230 \u7070\u5ea6 \u6df1\u5ea6 \u6df1\u5ea6\u56fe \u4e2d \u3002 \u7136\u800c \uff0c \u8f93\u51fa \u5e76 \u4e0d \u7b80\u5355 \u3002 \u76f8\u673a \u7684 \u6df1\u5ea6 \u7f13\u51b2 \u7f13\u51b2\u533a \u4f7f\u7528 RGB \u989c\u8272 \u7a7a\u95f4 \u8fdb\u884c \u6620\u5c04 \u3002 \u5fc5\u987b \u5c06 \u5176 \u8f6c\u6362 \u4e3a \u7070\u5ea6 \u624d\u80fd \u7406\u89e3 \u3002 \u4e3a\u6b64 \uff0c \u53ea \u9700 \u5c06 \u56fe\u50cf \u4fdd\u5b58 \u4e3a RGB \u76f8\u673a \u7684 \u56fe\u50cf \uff0c \u4f46 \u5bf9 \u5176 \u5e94\u7528 carla . ColorConverter \u5373\u53ef \u3002 \u6df1\u5ea6 \u76f8\u673a \u6709 \u4e24\u79cd \u53ef\u7528 \u7684 \u8f6c\u6362 \u3002 carla . ColorConverter . Depth \u4ee5 \u6beb\u7c73 \u7ea7 \u7cbe\u5ea6 \u8f6c\u6362 \u539f\u59cb \u6df1\u5ea6 \u3002 carla . ColorConverter . LogarithmicDepth \u4e5f \u5177\u6709 \u6beb\u7c73 \u7ea7 \u7c92\u5ea6 \uff0c \u4f46 \u5728 \u8fd1\u8ddd \u8ddd\u79bb \u8fd1\u8ddd\u79bb \u5185 \u63d0\u4f9b \u66f4\u597d \u7684 \u7ed3\u679c \uff0c \u800c \u5bf9\u4e8e \u8f83\u8fdc \u7684 \u5143\u7d20 \u5219 \u7a0d\u5dee \u4e00\u4e9b \u3002 \u6df1\u5ea6 \u76f8\u673a \u7684 \u5c5e\u6027 \u4ec5 \u8bbe\u7f6e \u4e4b\u524d \u5728 RGB \u76f8\u673a \u4e2d \u6240\u8ff0 \u7684 \u5143\u7d20 \uff1a fov \u3001 image _ size _ x \u3001 image _ size _ y \u548c sensor _ tick \u3002 \u8be5 \u811a\u672c \u5c06 \u6b64 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u4e3a \u4e0e \u4e4b\u524d \u4f7f\u7528 \u7684 RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a Depth camera to ego vehicle . # -------------- depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ depth _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) Depth camera output . Simple conversion on the left , logarithmic on the right .","title":"\u6df1\u5ea6 \u76f8\u673a"},{"location":"tuto_G_retrieve_data/#_15","text":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a \u6839\u636e \u5143\u7d20 \u7684 \u6807\u8bb0 \u65b9\u5f0f \u5c06 \u573a\u666f \u4e2d \u7684 \u5143\u7d20 \u6e32\u67d3 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 \u6807\u7b7e \u7531 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6839\u636e \u7528\u4e8e \u751f\u6210 \u7684 \u8d44\u6e90 \u7684 \u8def\u5f84 \u521b\u5efa \u3002 \u4f8b\u5982 \uff0c \u6807\u8bb0 \u4e3a Pedestrians \u7684 \u7f51\u683c \u4f53\u662f \u4f7f\u7528 \u5b58\u50a8 \u5728 Unreal / CarlaUE4 / Content / Static / Pedestrians \u4e2d \u7684 \u5185\u5bb9 \u751f\u6210 \u7684 \u3002 \u4e0e \u4efb\u4f55 \u76f8\u673a \u4e00\u6837 \uff0c \u8f93\u51fa \u662f \u56fe\u50cf \uff0c \u4f46 \u6bcf\u4e2a \u50cf\u7d20 \u90fd \u5305\u542b \u5728 \u7ea2\u8272 \u901a\u9053 \u4e2d \u7f16\u7801 \u7684 \u6807\u7b7e \u3002 \u5fc5\u987b \u4f7f\u7528 ColorConverter . CityScapesPalette \u8f6c\u6362 \u6b64 \u539f\u59cb \u56fe\u50cf \u3002 \u53ef\u4ee5 \u521b\u5efa \u65b0 \u6807\u7b7e \uff0c \u8bf7 \u9605\u8bfb \u6587\u6863 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8be5 \u76f8\u673a \u53ef\u7528 \u7684 \u5c5e\u6027 \u4e0e \u6df1\u5ea6 \u76f8\u673a \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u8be5 \u811a\u672c \u8fd8 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u4e0e \u539f\u59cb RGB \u76f8\u673a \u5339\u914d \u76f8\u5339\u914d \u3002 # -------------- # Add a new semantic segmentation camera to my ego # -------------- sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) Semantic segmentation camera output","title":"\u8bed\u4e49 \u5206\u5272 \u76f8\u673a"},{"location":"tuto_G_retrieve_data/#_16","text":"\u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4eff\u771f \u65cb\u8f6c \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 \u5b83 \u521b\u5efa \u4e86 \u4e00\u4e2a \u4ee5 \u4e09\u7ef4 \u5f62\u5f0f \u6620\u5c04 \u573a\u666f \u7684 \u70b9\u4e91 \u3002 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u5305\u542b \u4e00\u7ec4 \u4ee5 \u7279\u5b9a \u9891\u7387 \u65cb\u8f6c \u7684 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u3002 \u6fc0\u5149 \u6295\u5c04 \u649e\u51fb \u8ddd\u79bb \uff0c \u5e76 \u5c06 \u6bcf\u6b21 \u5c04\u51fb \u5b58\u50a8 \u4e3a \u4e00\u4e2a \u4e00\u4e2a\u70b9 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4e0d\u540c \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c5e\u6027 \u6765 \u8bbe\u7f6e \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u9635\u5217 \u7684 \u5e03\u7f6e \u65b9\u5f0f \u3002 upper _ fov \u548c lower _ fov \u5206\u522b \u662f \u6700\u9ad8 \u548c \u6700\u4f4e \u6fc0\u5149 \u7684 \u89d2\u5ea6 \u3002 channels \u8bbe\u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 \u7684 fov \u5206\u5e03 \u3002 \u5176\u4ed6 \u5c5e\u6027 \u8bbe\u7f6e \u8be5\u70b9 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u3002 \u5b83\u4eec \u786e\u5b9a \u6bcf\u4e2a \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u6bcf \u4e00\u6b65 \u8ba1\u7b97 \u7684 \u70b9\u6570 \uff1a points _ per _ second / ( FPS * channels ) . range \u662f \u6355\u83b7 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u662f \u6bcf\u79d2 \u83b7\u5f97 \u7684 \u70b9\u6570 \u3002 \u8be5 \u6570\u91cf \u9664\u4ee5 channels \u7684 \u6570\u91cf \u3002 rotation _ frequency \u662f \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u6bcf\u79d2 \u65cb\u8f6c \u7684 \u6b21\u6570 \u3002 \u70b9\u4e91 \u8f93\u51fa \u88ab \u63cf\u8ff0 \u4e3a [ carla . LidarMeasurement ] \u3002 \u5b83 \u53ef\u4ee5 \u4f5c\u4e3a [ carla . Location ] \u5217\u8868 \u8fdb\u884c \u8fed\u4ee3 \u6216 \u4fdd\u5b58 \u4e3a . ply \u6807\u51c6 \u6587\u4ef6 \u683c\u5f0f \u6587\u4ef6\u683c\u5f0f \u3002 # -------------- # Add a new LIDAR sensor to my ego # -------------- lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) . ply \u8f93\u51fa \u53ef\u4ee5 \u4f7f\u7528 Meshlab \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 1 . \u5b89\u88c5 Meshlab \u3002 sudo apt - get update - y sudo apt - get install - y meshlab 2 . \u6253\u5f00 Meshlab \u3002 meshlab 3 . \u6253\u5f00 \u5176\u4e2d \u4e00\u4e2a . ply \u6587\u4ef6 \u3002 File > Import mesh ... \u7ecf\u8fc7 Meshlab \u5904\u7406 \u540e \u7684 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u8f93\u51fa \u3002","title":"\u6fc0\u5149\u96f7\u8fbe \u5149\u7ebf \u6295\u5c04 \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_17","text":"\u96f7\u8fbe \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e0e \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u7c7b\u4f3c \u3002 \u5b83 \u521b\u5efa \u4e00\u4e2a \u5706\u9525 \u89c6\u56fe \uff0c \u5e76 \u5411 \u5185\u90e8 \u53d1\u5c04 \u6fc0\u5149 \u4ee5 \u5c04\u7ebf \u6295\u5c04 \u5176 \u5f71\u54cd \u3002 \u8f93\u51fa \u662f carla . RadarMeasurement \u3002 \u5b83 \u5305\u542b \u7531 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u68c0\u7d22 \u5230 \u7684 carla . RadarDetection \u7684 \u5217\u8868 \u3002 \u8fd9\u4e9b \u4e0d\u662f \u7a7a\u95f4 \u4e2d \u7684 \u70b9 \uff0c \u800c\u662f \u4f7f\u7528 \u6709\u5173 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u8fdb\u884c \u7684 \u68c0\u6d4b \uff1a \u8be5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u5c5e\u6027 \u4e3b\u8981 \u51b3\u5b9a \u4e86 \u6fc0\u5149 \u5149\u5668 \u6fc0\u5149\u5668 \u7684 \u5b9a\u4f4d \u65b9\u5f0f \u3002 horizontal _ fov \u548c vertical _ fov \u786e\u5b9a \u5706\u9525 \u89c6\u56fe \u7684 \u632f\u5e45 \u3002 channels \u7f6e \u8981 \u4f7f\u7528 \u7684 \u6fc0\u5149 \u6570\u91cf \u3002 \u8fd9\u4e9b \u6cbf\u7740 \u6240 \u9700 fov \u7684 \u5206\u5e03 \u3002 range \u662f \u6fc0\u5149 \u5149\u7ebf \u6295\u5c04 \u7684 \u6700\u5927 \u8ddd\u79bb \u3002 points _ per _ second \u8bbe\u7f6e \u8981 \u6355\u83b7 \u7684 \u70b9 \u7684 \u6570\u91cf \uff0c \u8fd9\u4e9b \u70b9\u5c06 \u5728 \u6307\u5b9a \u7684 \u901a\u9053 \u4e4b\u95f4 \u5206\u914d \u3002 \u8be5 \u811a\u672c \u5c06 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u653e\u7f6e \u5728 \u6c7d\u8f66 \u5f15\u64ce \u5f15\u64ce\u76d6 \u4e0a \uff0c \u5e76 \u5411\u4e0a \u65cb\u8f6c \u4e00\u70b9 \u3002 \u8fd9\u6837 \uff0c \u8f93\u51fa \u5c06 \u6620\u5c04 \u6c7d\u8f66 \u7684 \u524d \u89c6\u56fe \u3002 horizontal _ fov \u662f \u589e\u52a0 \u7684 \uff0c vertical _ fov \u662f \u51cf\u5c11 \u7684 \u3002 \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u533a\u57df \u7279\u522b \u662f \u8f66\u8f86 \u548c \u6b65\u884c \u884c\u8005 \u6b65\u884c\u8005 \u901a\u5e38 \u79fb\u52a8 \u7684 \u9ad8\u5ea6 \u3002 \u8ddd\u79bb range \u4e5f \u4ece 100m \u66f4 \u6539\u4e3a 10m \uff0c \u4ee5\u4fbf \u4ec5 \u68c0\u7d22 \u8f66\u8f86 \u6b63\u524d \u524d\u65b9 \u6b63\u524d\u65b9 \u7684 \u6570\u636e \u3002 \u8fd9\u6b21 \u7684 \u56de\u8c03 \u6709\u70b9 \u590d\u6742 \uff0c \u663e\u793a \u4e86 \u5b83 \u7684 \u66f4 \u529f\u80fd \u591a\u529f\u80fd \u3002 \u5b83 \u5c06 \u5b9e\u65f6 \u7ed8\u5236 \u96f7\u8fbe \u6355\u83b7 \u7684 \u70b9 \u3002 \u8fd9\u4e9b \u70b9\u5c06 \u6839\u636e \u5b83\u4eec \u76f8\u5bf9 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u800c \u7740\u8272 \u3002 Blue \u8868\u793a \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 Red \u8868\u793a \u8fdc\u79bb \u63a5\u8fd1 \u8f66\u8f86 \u7684 \u70b9 \u3002 White \u4ee3\u8868 \u5173\u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u9759\u6001 \u70b9 \u3002 # -------------- # Add a new radar sensor to my ego # -------------- rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.0 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \u96f7\u8fbe \u8f93\u51fa \u3002 \u8f66\u8f86 \u505c \u5728 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5904 \uff0c \u56e0\u6b64 \u5176 \u524d\u9762 \u7684 \u9759\u6001 \u5143\u7d20 \u663e\u793a \u4e3a \u767d\u8272 \u3002","title":"\u96f7\u8fbe \u4f20\u611f\u5668"},{"location":"tuto_G_retrieve_data/#_18","text":"\u65e0 \u6e32\u67d3 \u6a21\u5f0f \u5bf9\u4e8e \u8fd0\u884c \u521d\u59cb \u4eff\u771f \u975e\u5e38 \u6709\u7528 \uff0c \u7a0d\u540e \u5c06 \u518d\u6b21 \u64ad\u653e \u8be5 \u4eff\u771f \u4ee5 \u68c0\u7d22 \u6570\u636e \u3002 \u7279\u522b \u662f \u5982\u679c \u8be5 \u4eff\u771f \u5b58\u5728 \u4e00\u4e9b \u6781\u7aef \u6761\u4ef6 \uff0c \u4f8b\u5982 \u4ea4\u901a \u5bc6\u96c6 \u3002","title":"\u975e \u6e32\u67d3 \u6a21\u5f0f"},{"location":"tuto_G_retrieve_data/#_19","text":"\u7981\u7528 \u6e32\u67d3 \u5c06 \u4e3a \u4eff\u771f \u8282\u7701 \u5927\u91cf \u5de5\u4f5c \u3002 \u7531\u4e8e \u4e0d \u4f7f\u7528 GPU \uff0c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5168\u901f \u5de5\u4f5c \u3002 \u8fd9 \u5bf9\u4e8e \u5feb\u901f \u4eff\u771f \u590d\u6742 \u7684 \u6761\u4ef6 \u5f88 \u6709\u7528 \u3002 \u6700\u597d \u7684 \u65b9\u6cd5 \u662f \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 \u4ee5 \u56fa\u5b9a \u65f6\u95f4 \u6b65\u957f \u8fd0\u884c \u5f02\u6b65 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5e76\u4e14 \u4e0d \u8fdb\u884c \u6e32\u67d3 \uff0c \u4eff\u771f \u7684 \u552f\u4e00 \u9650\u5236 \u662f \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u5185\u90e8 \u903b\u8f91 \u3002 \u76f8\u540c \u7684 config . py \u7528\u4e8e \u8bbe\u7f6e \u5730\u56fe \u53ef\u4ee5 \u7981\u7528 \u6e32\u67d3 \uff0c \u5e76 \u8bbe\u7f6e \u56fa\u5b9a \u7684 \u65f6\u95f4 \u6b65\u957f \u3002 cd / opt / carla / PythonAPI / utils python3 config . py -- no - rendering -- delta - seconds 0.05 # Never greater than 0.1 s \u8b66\u544a \u5728 \u4f7f\u7528 \u540c\u6b65 \u548c \u65f6\u95f4 \u6b65 \u4e4b\u524d \uff0c \u8bf7 \u5148 \u9605\u8bfb \u6587\u6863 \u3002","title":"\u5feb\u901f \u4eff\u771f"},{"location":"tuto_G_retrieve_data/#_20","text":"\u811a\u672c PythonAPI / examples / no _ rendering _ mode . py \u63d0\u4f9b \u4e86 \u4eff\u771f \u7684 \u6982\u8ff0 \u3002 \u5b83 \u4f7f\u7528 Pygame \u521b\u5efa \u4e86 \u4e00\u4e2a \u7b80\u7ea6 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff0c \u5b83 \u5c06 \u8ddf\u968f \u81ea\u6211 \u8f66\u8f86 \u3002 \u8fd9 \u53ef\u4ee5 \u4e0e manual _ control . py \u4e00\u8d77 \u4f7f\u7528 \u6765 \u751f\u6210 \u4e00\u6761 \u51e0\u4e4e \u6ca1\u6709 \u6210\u672c \u7684 \u8def\u7ebf \uff0c \u8bb0\u5f55 \u5b83 \uff0c \u7136\u540e \u56de\u653e \u5e76 \u5229\u7528 \u5b83 \u6765 \u6536\u96c6 \u6570\u636e \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py cd / opt / carla / PythonAPI / examples python3 no _ rendering _ mode . py -- no - rendering no _ rendering _ mode . py \u4e2d \u7684 \u53ef\u9009 \u53c2\u6570 - h , -- help show this help message and exit - v , -- verbose print debug information -- host H IP of the host server ( default : 127.0 . 0.1 ) - p P , -- port P TCP port to listen to ( default : 2000 ) -- res WIDTHxHEIGHT window resolution ( default : 1280x720 ) -- filter PATTERN actor filter ( default : \" vehicle . * \" ) -- map TOWN start a new episode at the given TOWN -- no - rendering switch off server rendering -- show - triggers show trigger boxes of traffic signs -- show - connections show waypoint connections -- show - spawn - points show recommended spawn points no _ rendering _ mode . py working in Town07 \u7b14\u8bb0 \u5728 \u6b64 \u6a21\u5f0f \u4e0b \uff0c \u57fa\u4e8e GPU \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5c06 \u68c0\u7d22 \u7a7a \u6570\u636e \u3002 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u6ca1\u7528 \uff0c \u4f46 \u63a2\u6d4b \u6d4b\u5668 \u63a2\u6d4b\u5668 \u7b49 \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u65e0\u9700 \u6e32\u67d3 \u7684 \u624b\u52a8 \u63a7\u5236"},{"location":"tuto_G_retrieve_data/#_21","text":"","title":"\u8bb0\u5f55 \u548c \u68c0\u7d22 \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_22","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u53ef\u4ee5 \u968f\u65f6 \u542f\u52a8 \u3002 \u811a\u672c \u4ece \u4e00 \u5f00\u59cb \u5c31 \u8fd9\u6837 \u505a \uff0c \u4ee5\u4fbf \u6355\u6349 \u4e00\u5207 \uff0c \u5305\u62ec \u7b2c\u4e00 \u4e00\u6279 \u7b2c\u4e00\u6279 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u4ea7\u751f \u3002 \u5982\u679c \u6ca1\u6709 \u8be6\u7ec6 \u8def\u5f84 \uff0c \u65e5\u5fd7 \u5c06 \u4fdd\u5b58 \u5230 CarlaUE4 / Saved \u3002 # -------------- # \u5f00\u59cb \u8bb0\u5f55 # -------------- client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' )","title":"\u5f00\u59cb \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_23","text":"\u6709 \u8bb8\u591a \u4e0d\u540c \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u505a\u5230 \u8fd9 \u4e00\u70b9 \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u60c5\u51b5 \u4e0b \uff0c \u5b83\u4f1a \u56e0\u4e3a \u8ba9 \u5b83 \u56db\u5904 \u6f2b\u6e38 \u6216 \u624b\u52a8 \u63a7\u5236 \u800c \u51fa\u73b0 \u6545\u969c \u3002 \u4ea7\u751f \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6570\u636e \u5c06 \u88ab \u5373\u65f6 \u68c0\u7d22 \u3002 \u8bf7 \u52a1\u5fc5 \u5728 \u8bb0\u5f55 \u65f6 \u8fdb\u884c \u68c0\u67e5 \uff0c \u4ee5 \u786e\u4fdd \u4e00\u5207 \u8bbe\u7f6e \u6b63\u786e \u3002 \u542f\u7528 \u81ea\u52a8 \u9a7e\u9a76 \u3002 \u8fd9\u4f1a \u5c06 \u8f66\u8f86 \u6ce8\u518c \u5230 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 \u5b83 \u5c06 \u65e0\u4f11 \u4f11\u6b62 \u65e0\u4f11\u6b62 \u5730 \u5728 \u57ce\u5e02 \u4e2d \u6f2b\u6e38 \u3002 \u8be5 \u811a\u672c \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u5e76 \u521b\u5efa \u4e00\u4e2a \u5faa\u73af \u4ee5 \u963b\u6b62 \u811a\u672c \u5b8c\u6210 \u3002 \u5f55\u5236 \u5c06 \u7ee7\u7eed \u8fdb\u884c \uff0c \u76f4\u5230 \u7528\u6237 \u5b8c\u6210 \u811a\u672c \u3002 \u6216\u8005 \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u8ba1\u65f6 \u8ba1\u65f6\u5668 \u4ee5 \u5728 \u7279\u5b9a \u65f6\u95f4 \u540e \u5b8c\u6210 \u811a\u672c \u3002 # -------------- # \u6355\u83b7 \u6570\u636e # -------------- ego _ vehicle . set _ autopilot ( True ) print ( ' \\ nEgo autopilot enabled ' ) while True : world _ snapshot = world . wait _ for _ tick ( ) \u624b\u52a8 \u63a7\u5236 \u3002 \u5728 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u811a\u672c PythonAPI / examples / manual _ control . py \uff0c \u5728 \u53e6 \u4e00\u4e2a \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e2d \u8fd0\u884c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u9a7e\u9a76 \u81ea\u6211 \u8f66\u8f86 \u6765 \u521b\u5efa \u6240 \u9700 \u7684 \u8def\u7ebf \uff0c \u5e76 \u5728 \u5b8c\u6210 \u540e \u505c\u6b62 \u8bb0\u5f55 \u8bb0\u5f55\u4eea \u3002 tutorial _ ego . py \u811a\u672c \u53ef \u7528\u4e8e \u7ba1\u7406 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \uff0c \u4f46 \u8bf7 \u786e\u4fdd \u6ce8\u91ca \u5176\u4ed6 \u4ee3\u7801 \u7247\u6bb5 \u3002 cd / opt / carla / PythonAPI / examples python3 manual _ control . py \u7b14\u8bb0 \u4e3a\u4e86 \u907f\u514d \u6e32\u67d3 \u5e76 \u8282\u7701 \u8ba1\u7b97 \u6210\u672c \u8ba1\u7b97\u6210\u672c \uff0c \u8bf7 \u542f\u7528 [ \u65e0 \u6e32\u67d3 \u6a21\u5f0f ] \u3002 \u8be5 \u811a\u672c / PythonAPI / examples / no _ rendering _ mode . py \u5728 \u521b\u5efa \u7b80\u5355 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \u65f6 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002","title":"\u6355\u83b7 \u5e76 \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_24","text":"\u505c\u6b62 \u8c03\u7528 \u751a\u81f3 \u6bd4 \u5f00\u59cb \u8c03\u7528 \u66f4 \u7b80\u5355 \u3002 \u5f55\u97f3 \u5b8c\u6210 \u540e \uff0c \u5f55\u97f3 \u5c06 \u4fdd\u5b58 \u5728 \u524d\u9762 \u6307\u5b9a \u7684 \u8def\u5f84 \u4e2d \u3002 # -------------- # \u505c\u6b62 \u8bb0\u5f55 # -------------- client . stop _ recorder ( )","title":"\u505c\u6b62 \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_25","text":"\u5230 \u76ee\u524d \u524d\u4e3a \u4e3a\u6b62 \u76ee\u524d\u4e3a\u6b62 \uff0c \u4eff\u771f \u5df2\u7ecf \u88ab \u8bb0\u5f55 \u5f55\u4e0b \u4e0b\u6765 \u5f55\u4e0b\u6765 \u8bb0\u5f55\u4e0b\u6765 \u3002 \u73b0\u5728 \uff0c \u662f \u65f6\u5019 \u68c0\u67e5 \u8bb0\u5f55 \uff0c \u627e\u5230 \u6700 \u5f15\u4eba \u6ce8\u76ee \u5f15\u4eba\u6ce8\u76ee \u7684 \u65f6\u523b \uff0c \u5e76 \u5229\u7528 \u5b83\u4eec \u3002 \u8fd9\u4e9b \u6b65\u9aa4 \u96c6\u4e2d \u5728 \u811a\u672c tutorial _ replay . py \u4e2d \u3002 \u8be5 \u5927\u7eb2 \u7531 \u6ce8\u91ca \u7684 \u4e0d\u540c \u4ee3\u7801 \u4ee3\u7801\u6bb5 \u6784\u6210 \u3002 \u73b0\u5728 \u662f \u8fd0\u884c \u65b0 \u4eff\u771f \u7684 \u65f6\u5019 \u4e86 \u3002 . / CarlaUE4 . sh \u8981 \u91cd\u65b0 \u8fdb\u884c \u4eff\u771f \uff0c \u8bf7 \u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5 \u5e76 \u8fd0\u884c \u5305\u542b \u64ad\u653e \u4ee3\u7801 \u7684 \u811a\u672c \u3002 python3 tuto _ replay . py","title":"\u5229\u7528 \u8bb0\u5f55"},{"location":"tuto_G_retrieve_data/#_26","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u6863 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u4e0d\u540c \u7684 \u67e5\u8be2 \u3002 \u603b\u4e4b \uff0c \u5b83\u4eec \u68c0\u7d22 \u7279\u5b9a \u4e8b\u4ef6 \u6216 \u5e27 \u7684 \u6570\u636e \u3002 \u4f7f\u7528 \u67e5\u8be2 \u6765 \u7814\u7a76 \u8bb0\u5f55 \u3002 \u627e\u5230 \u805a\u5149 \u5149\u706f \u805a\u5149\u706f \u65f6\u523b \uff0c \u8ffd\u8e2a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u5185\u5bb9 \u3002 # -------------- # Query the recording # -------------- # Show only the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording01 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording01 . log \" , 10 , 1 ) ) # Filter collisions between vehicles ' v ' and ' a ' any other type of actor . print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording01 . log \" , ' v ' , ' a ' ) ) \u7b14\u8bb0 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u4e0d \u9700\u8981 \u6253\u5f00 \u5373\u53ef \u8fdb\u884c \u67e5\u8be2 \u3002 \u663e\u793a \u91cd\u8981 \u4e8b\u4ef6 \u7684 \u67e5\u8be2 \u3002 \u8fd9\u662f \u81ea\u6211 \u8f66\u8f86 \u4ea7\u751f \u7684 \u6846\u67b6 \u3002 \u67e5\u8be2 \u663e\u793a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u88ab \u963b\u6b62 \u3002 \u5728 \u6b64 \u4eff\u771f \u4e2d \uff0c \u81ea\u6211 \u8f66\u8f86 \u4fdd\u6301 \u963b\u585e \u72b6\u6001 \u963b\u585e\u72b6\u6001 100 \u79d2 \u3002 \u663e\u793a \u81ea\u6211 \u8f66\u8f86 \u4e0e \u201c \u5176\u4ed6 \u201d \u7c7b\u578b \u7684 \u5bf9\u8c61 \u4e4b\u95f4 \u7684 \u78b0\u649e \u7684 \u67e5\u8be2 \u3002 \u7b14\u8bb0 \u83b7\u53d6 \u6bcf \u4e00\u5e27 \u7684 \u8be6\u7ec6 \u6587\u4ef6 \u4fe1\u606f \u53ef\u80fd \u4f1a \u8ba9 \u4eba \u4e0d\u77e5 \u4e0d\u77e5\u6240\u63aa \u3002 \u5728 \u5176\u4ed6 \u67e5\u8be2 \u4e4b\u540e \u4f7f\u7528 \u5b83 \u6765 \u4e86\u89e3 \u8981 \u67e5\u770b \u7684 \u4f4d\u7f6e \u3002","title":"\u67e5\u8be2 \u4e8b\u4ef6"},{"location":"tuto_G_retrieve_data/#_27","text":"\u67e5\u8be2 \u4e4b\u540e \uff0c \u5728 \u4e71\u641e \u4e4b\u524d \u56de\u653e \u4e00\u4e9b \u4eff\u771f \u7247\u6bb5 \u53ef\u80fd \u662f \u4e2a \u597d \u4e3b\u610f \u3002 \u8fd9\u6837 \u505a \u975e\u5e38 \u7b80\u5355 \u975e\u5e38\u7b80\u5355 \uff0c \u800c\u4e14 \u975e\u5e38 \u6709 \u5e2e\u52a9 \u3002 \u4e86\u89e3 \u6709\u5173 \u4eff\u771f \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4ee5\u540e \u8282\u7701 \u65f6\u95f4 \u8282\u7701\u65f6\u95f4 \u7684 \u6700\u4f73 \u65b9\u6cd5 \u3002 \u8be5 \u65b9\u6cd5 \u5141\u8bb8 \u9009\u62e9 \u64ad\u653e \u7684 \u5f00\u59cb \u70b9 \u548c \u7ed3\u675f \u70b9 \u4ee5\u53ca \u8981 \u8ddf\u968f \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 # -------------- # Reenact a fragment of the recording # -------------- client . replay _ file ( \" ~ / tutorial / recorder / recording01 . log \" , 45 , 10 , 0 ) \u4ee5\u4e0b \u662f \u73b0\u5728 \u53ef\u4ee5 \u505a \u7684 \u4e8b\u60c5 \u7684 \u5217\u8868 \u3002 \u4f7f\u7528 \u67e5\u8be2 \u4e2d \u7684 \u4fe1\u606f \u3002 \u627e\u51fa \u4e8b\u4ef6 \u4e2d \u6d89\u53ca \u7684 \u65f6\u523b \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u518d\u6b21 \u64ad\u653e \u3002 \u5728 \u4e8b\u4ef6 \u53d1\u751f \u524d \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u542f\u52a8 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \u8ddf\u968f \u4e0d\u540c \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e0d\u540c \u7684 \u89c6\u89d2 \u5c06 \u663e\u793a \u67e5\u8be2 \u4e2d\u672a \u5305\u542b \u7684 \u65b0 \u4e8b\u4ef6 \u3002 \u81ea\u7531 \u5730 \u89c2\u5bdf \u5468\u56f4 \u7684 \u60c5\u51b5 \u3002 \u5c06 actor _ id \u8bbe \u4e3a 0 \uff0c \u5e76 \u83b7\u5f97 \u4eff\u771f \u7684 \u603b\u4f53 \u89c6\u56fe \u3002 \u501f\u52a9 \u8bb0\u5f55 \u5f55\u97f3 \uff0c \u60a8 \u53ef\u4ee5 \u968f\u65f6 \u968f\u5730 \u968f\u65f6\u968f\u5730 \u3002 \u7b14\u8bb0 \u5f53 \u8bb0\u5f55 \u505c\u6b62 \u65f6 \uff0c \u4eff\u771f \u4e0d\u4f1a \u505c\u6b62 \u3002 \u884c\u4eba \u5c06 \u9759\u6b62 \u4e0d\u52a8 \u9759\u6b62\u4e0d\u52a8 \uff0c \u8f66\u8f86 \u5c06 \u7ee7\u7eed \u884c\u9a76 \u3002 \u5982\u679c \u65e5\u5fd7 \u7ed3\u675f \u6216 \u64ad\u653e \u5230\u8fbe \u6307\u5b9a \u7684 \u7ed3\u675f \u70b9 \uff0c \u5219 \u53ef\u80fd \u4f1a \u53d1\u751f \u8fd9\u79cd \u60c5\u51b5 \u3002","title":"\u9009\u62e9 \u4e00\u4e2a \u7247\u6bb5"},{"location":"tuto_G_retrieve_data/#_28","text":"\u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5c06 \u5728 \u6b64 \u4eff\u771f \u4e2d \u91cd\u65b0 \u521b\u5efa \u4e0e \u539f\u59cb \u6761\u4ef6 \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u7684 \u6761\u4ef6 \u3002 \u8fd9 \u786e\u4fdd \u4e86 \u4e0d\u540c \u64ad\u653e \u4e2d \u7684 \u6570\u636e \u4e00\u81f4 \u3002 \u6536\u96c6 \u91cd\u8981 \u65f6\u523b \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u548c \u4e8b\u4ef6 \u7684 \u5217\u8868 \u3002 \u9700\u8981 \u65f6 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5e76 \u56de\u653e \u4eff\u771f \u3002 \u8be5 \u8fc7\u7a0b \u4e0e \u4e4b\u524d \u5b8c\u5168 \u76f8\u540c \u5b8c\u5168\u76f8\u540c \u3002 \u811a\u672c tutorial _ replay . py \u63d0\u4f9b \u4e86 \u4e0d\u540c \u7684 \u793a\u4f8b \uff0c \u8fd9\u4e9b \u793a\u4f8b \u5df2 \u5728 \u201c \u8bbe\u7f6e \u9ad8\u7ea7 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u201d \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u5f7b\u5e95 \u89e3\u91ca \u3002 \u5176\u4ed6 \u5df2 \u5728 \u8bbe\u7f6e \u57fa\u672c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90e8\u5206 \u4e2d \u8fdb\u884c \u4e86 \u89e3\u91ca \u3002 \u6839\u636e \u9700\u8981 \u6dfb\u52a0 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6839\u636e \u9700\u8981 \u591a\u6b21 \u56de\u653e \u4eff\u771f \u5e76 \u68c0\u7d22 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u591a \u7684 \u6570\u636e \u3002","title":"\u68c0\u7d22 \u66f4 \u591a \u6570\u636e"},{"location":"tuto_G_retrieve_data/#_29","text":"\u8bb0\u5f55 \u5c06 \u91cd\u73b0 \u539f\u59cb \u7684 \u5929\u6c14 \u72b6\u51b5 \u5929\u6c14\u72b6\u51b5 \u3002 \u7136\u800c \uff0c \u8fd9\u4e9b \u53ef\u4ee5 \u968f\u610f \u6539\u53d8 \u3002 \u5728 \u4fdd\u6301 \u5176\u4f59 \u4e8b\u4ef6 \u76f8\u540c \u7684 \u60c5\u51b5 \u4e0b \uff0c \u6bd4\u8f83 \u5b83 \u5982\u4f55 \u5f71\u54cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u80fd \u4f1a \u5f88 \u6709\u8da3 \u3002 \u83b7\u53d6 \u5f53\u524d \u5929\u6c14 \u5e76 \u81ea\u7531 \u4fee\u6539 \u3002 \u8bf7 \u8bb0\u4f4f \uff0c carla . WeatherParameters \u6709 \u4e00\u4e9b \u53ef\u7528 \u7684 \u9884\u8bbe \u3002 \u8be5 \u811a\u672c \u4f1a \u5c06 \u73af\u5883 \u66f4 \u6539\u4e3a \u6709\u96fe \u7684 \u65e5\u843d \u3002 # -------------- # \u4e3a \u56de\u653e \u6539\u53d8 \u5929\u6c14 # -------------- weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather )","title":"\u6539\u53d8 \u5929\u6c14"},{"location":"tuto_G_retrieve_data/#_30","text":"\u65b0 \u7684 \u4eff\u771f \u4e0e \u8bb0\u5f55 \u6ca1\u6709 \u4e25\u683c \u7684 \u8054\u7cfb \u3002 \u5b83 \u53ef\u4ee5 \u968f\u65f6 \u4fee\u6539 \uff0c \u5373\u4f7f \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u505c\u6b62 \uff0c \u4eff\u771f \u4e5f \u4f1a \u7ee7\u7eed \u3002 \u8fd9 \u5bf9\u4e8e \u7528\u6237 \u6765\u8bf4 \u662f \u6709\u5229 \u53ef\u56fe \u5229\u53ef\u56fe \u6709\u5229\u53ef\u56fe \u7684 \u3002 \u4f8b\u5982 \uff0c \u53ef\u4ee5 \u901a\u8fc7 \u56de\u653e \u51e0\u79d2 \u79d2\u949f \u51e0\u79d2\u949f \u524d \u7684 \u4eff\u771f \u5e76 \u751f\u6210 \u6216 \u6467\u6bc1 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6765 \u5f3a\u5236 \u6216 \u907f\u514d \u78b0\u649e \u3002 \u5728 \u7279\u5b9a \u65f6\u523b \u7ed3\u675f \u8bb0\u5f55 \u4e5f \u5f88 \u6709\u7528 \u3002 \u8fd9\u6837 \u505a \uff0c \u8f66\u8f86 \u53ef\u80fd \u4f1a \u91c7\u53d6 \u4e0d\u540c \u7684 \u8def\u5f84 \u3002 \u6539\u53d8 \u6761\u4ef6 \u5e76 \u6270\u4e71 \u4eff\u771f \u3002 \u6ca1\u6709 \u4ec0\u4e48 \u53ef \u5931\u53bb \u7684 \uff0c \u56e0\u4e3a \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5141\u8bb8 \u521d\u59cb \u4eff\u771f \u59cb\u7ec8 \u53ef\u4ee5 \u91cd\u65b0 \u8fdb\u884c \u3002 \u8fd9\u662f \u5145\u5206 \u5206\u53d1 \u53d1\u6325 \u5145\u5206\u53d1\u6325 Carla \u6f5c\u529b \u7684 \u5173\u952e \u3002","title":"\u5c1d\u8bd5 \u65b0 \u7684 \u7ed3\u679c"},{"location":"tuto_G_retrieve_data/#_31","text":"\u4e0b\u9762 \u662f \u6536\u96c6 \u672c \u6559\u7a0b \u4ee3\u7801 \u7247\u6bb5 \u7684 \u4e24\u4e2a \u811a\u672c \u3002 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u4ee3\u7801 \u90fd \u5e26\u6709 \u6ce8\u91ca \uff0c \u56e0\u4e3a \u9700\u8981 \u5bf9 \u5176 \u8fdb\u884c \u4fee\u6539 \u4ee5 \u9002\u5e94 \u7279\u5b9a \u76ee\u7684 \u3002 tutorial _ ego . py import glob import os import sys import time try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) args = argparser . parse _ args ( ) logging . basicConfig ( format = ' % ( levelname ) s : % ( message ) s ' , level = logging . INFO ) client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None ego _ col = None ego _ lane = None ego _ obs = None ego _ gnss = None ego _ imu = None # -------------- # Start recording # -------------- \" \" \" client . start _ recorder ( ' ~ / tutorial / recorder / recording01 . log ' ) \" \" \" # -------------- # Spawn ego vehicle # -------------- \" \" \" ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . tesla . model3 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' ego ' ) print ( ' \\ nEgo role _ name is set ' ) ego _ color = random . choice ( ego _ bp . get _ attribute ( ' color ' ) . recommended _ values ) ego _ bp . set _ attribute ( ' color ' , ego _ color ) print ( ' \\ nEgo color is set ' ) spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) number _ of _ spawn _ points = len ( spawn _ points ) if 0 < number _ of _ spawn _ points : random . shuffle ( spawn _ points ) ego _ transform = spawn _ points [ 0 ] ego _ vehicle = world . spawn _ actor ( ego _ bp , ego _ transform ) print ( ' \\ nEgo is spawned ' ) else : logging . warning ( ' Could not found any spawn points ' ) \" \" \" # -------------- # Add a RGB camera sensor to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add collision sensor to ego vehicle . # -------------- \" \" \" col _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . collision ' ) col _ location = carla . Location ( 0 , 0 , 0 ) col _ rotation = carla . Rotation ( 0 , 0 , 0 ) col _ transform = carla . Transform ( col _ location , col _ rotation ) ego _ col = world . spawn _ actor ( col _ bp , col _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def col _ callback ( colli ) : print ( \" Collision detected : \\ n \" + str ( colli ) + ' \\ n ' ) ego _ col . listen ( lambda colli : col _ callback ( colli ) ) \" \" \" # -------------- # Add Lane invasion sensor to ego vehicle . # -------------- \" \" \" lane _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . lane _ invasion ' ) lane _ location = carla . Location ( 0 , 0 , 0 ) lane _ rotation = carla . Rotation ( 0 , 0 , 0 ) lane _ transform = carla . Transform ( lane _ location , lane _ rotation ) ego _ lane = world . spawn _ actor ( lane _ bp , lane _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def lane _ callback ( lane ) : print ( \" Lane invasion detected : \\ n \" + str ( lane ) + ' \\ n ' ) ego _ lane . listen ( lambda lane : lane _ callback ( lane ) ) \" \" \" # -------------- # Add Obstacle sensor to ego vehicle . # -------------- \" \" \" obs _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . obstacle ' ) obs _ bp . set _ attribute ( \" only _ dynamics \" , str ( True ) ) obs _ location = carla . Location ( 0 , 0 , 0 ) obs _ rotation = carla . Rotation ( 0 , 0 , 0 ) obs _ transform = carla . Transform ( obs _ location , obs _ rotation ) ego _ obs = world . spawn _ actor ( obs _ bp , obs _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def obs _ callback ( obs ) : print ( \" Obstacle detected : \\ n \" + str ( obs ) + ' \\ n ' ) ego _ obs . listen ( lambda obs : obs _ callback ( obs ) ) \" \" \" # -------------- # Add GNSS sensor to ego vehicle . # -------------- \" \" \" gnss _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . gnss ' ) gnss _ location = carla . Location ( 0 , 0 , 0 ) gnss _ rotation = carla . Rotation ( 0 , 0 , 0 ) gnss _ transform = carla . Transform ( gnss _ location , gnss _ rotation ) gnss _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ gnss = world . spawn _ actor ( gnss _ bp , gnss _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def gnss _ callback ( gnss ) : print ( \" GNSS measure : \\ n \" + str ( gnss ) + ' \\ n ' ) ego _ gnss . listen ( lambda gnss : gnss _ callback ( gnss ) ) \" \" \" # -------------- # Add IMU sensor to ego vehicle . # -------------- \" \" \" imu _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . imu ' ) imu _ location = carla . Location ( 0 , 0 , 0 ) imu _ rotation = carla . Rotation ( 0 , 0 , 0 ) imu _ transform = carla . Transform ( imu _ location , imu _ rotation ) imu _ bp . set _ attribute ( \" sensor _ tick \" , str ( 3.0 ) ) ego _ imu = world . spawn _ actor ( imu _ bp , imu _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def imu _ callback ( imu ) : print ( \" IMU measure : \\ n \" + str ( imu ) + ' \\ n ' ) ego _ imu . listen ( lambda imu : imu _ callback ( imu ) ) \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Enable autopilot for ego vehicle # -------------- \" \" \" ego _ vehicle . set _ autopilot ( True ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Stop recording and destroy actors # -------------- client . stop _ recorder ( ) if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if ego _ col is not None : ego _ col . stop ( ) ego _ col . destroy ( ) if ego _ lane is not None : ego _ lane . stop ( ) ego _ lane . destroy ( ) if ego _ obs is not None : ego _ obs . stop ( ) ego _ obs . destroy ( ) if ego _ gnss is not None : ego _ gnss . stop ( ) ego _ gnss . destroy ( ) if ego _ imu is not None : ego _ imu . stop ( ) ego _ imu . destroy ( ) ego _ vehicle . destroy ( ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ ego . ' ) tutorial _ replay . py import glob import os import sys import time import math import weakref try : sys . path . append ( glob . glob ( ' .. / carla / dist / carla - * % d .% d -% s . egg ' % ( sys . version _ info . major , sys . version _ info . minor , ' win - amd64 ' if os . name = = ' nt ' else ' linux - x86 _ 64 ' ) ) [ 0 ] ) except IndexError : pass import carla import argparse import logging import random def main ( ) : client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 10.0 ) try : world = client . get _ world ( ) ego _ vehicle = None ego _ cam = None depth _ cam = None depth _ cam02 = None sem _ cam = None rad _ ego = None lidar _ sen = None # -------------- # Query the recording # -------------- \" \" \" # Show the most important events in the recording . print ( client . show _ recorder _ file _ info ( \" ~ / tutorial / recorder / recording05 . log \" , False ) ) # Show actors not moving 1 meter in 10 seconds . # print ( client . show _ recorder _ actors _ blocked ( \" ~ / tutorial / recorder / recording04 . log \" , 10 , 1 ) ) # Show collisions between any type of actor . # print ( client . show _ recorder _ collisions ( \" ~ / tutorial / recorder / recording04 . log \" , ' v ' , ' a ' ) ) \" \" \" # -------------- # Reenact a fragment of the recording # -------------- \" \" \" client . replay _ file ( \" ~ / tutorial / recorder / recording03 . log \" , 0 , 30 , 0 ) \" \" \" # -------------- # Set playback simulation conditions # -------------- \" \" \" ego _ vehicle = world . get _ actor ( 322 ) # Store the ID from the simulation or query the recording to find out \" \" \" # -------------- # Place spectator on ego spawning # -------------- \" \" \" spectator = world . get _ spectator ( ) world _ snapshot = world . wait _ for _ tick ( ) spectator . set _ transform ( ego _ vehicle . get _ transform ( ) ) \" \" \" # -------------- # Change weather conditions # -------------- \" \" \" weather = world . get _ weather ( ) weather . sun _ altitude _ angle = - 30 weather . fog _ density = 65 weather . fog _ distance = 10 world . set _ weather ( weather ) \" \" \" # -------------- # Add a RGB camera to ego vehicle . # -------------- \" \" \" cam _ bp = None cam _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) cam _ location = carla . Location ( 2 , 0 , 1 ) cam _ rotation = carla . Rotation ( 0 , 180 , 0 ) cam _ transform = carla . Transform ( cam _ location , cam _ rotation ) cam _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) cam _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) cam _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) ego _ cam = world . spawn _ actor ( cam _ bp , cam _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) ego _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ rgb _ output / %. 6d . jpg ' % image . frame ) ) \" \" \" # -------------- # Add a Logarithmic Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam = None depth _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location = carla . Location ( 2 , 0 , 1 ) depth _ rotation = carla . Rotation ( 0 , 180 , 0 ) depth _ transform = carla . Transform ( depth _ location , depth _ rotation ) depth _ cam = world . spawn _ actor ( depth _ bp , depth _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de _ log / %. 6d . jpg ' % image . frame , carla . ColorConverter . LogarithmicDepth ) ) \" \" \" # -------------- # Add a Depth camera to ego vehicle . # -------------- \" \" \" depth _ cam02 = None depth _ bp02 = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . depth ' ) depth _ bp02 . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) depth _ bp02 . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) depth _ bp02 . set _ attribute ( \" fov \" , str ( 105 ) ) depth _ location02 = carla . Location ( 2 , 0 , 1 ) depth _ rotation02 = carla . Rotation ( 0 , 180 , 0 ) depth _ transform02 = carla . Transform ( depth _ location02 , depth _ rotation02 ) depth _ cam02 = world . spawn _ actor ( depth _ bp02 , depth _ transform02 , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view depth _ cam02 . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / de / %. 6d . jpg ' % image . frame , carla . ColorConverter . Depth ) ) \" \" \" # -------------- # Add a new semantic segmentation camera to ego vehicle # -------------- \" \" \" sem _ cam = None sem _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . semantic _ segmentation ' ) sem _ bp . set _ attribute ( \" image _ size _ x \" , str ( 1920 ) ) sem _ bp . set _ attribute ( \" image _ size _ y \" , str ( 1080 ) ) sem _ bp . set _ attribute ( \" fov \" , str ( 105 ) ) sem _ location = carla . Location ( 2 , 0 , 1 ) sem _ rotation = carla . Rotation ( 0 , 180 , 0 ) sem _ transform = carla . Transform ( sem _ location , sem _ rotation ) sem _ cam = world . spawn _ actor ( sem _ bp , sem _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) # This time , a color converter is applied to the image , to get the semantic segmentation view sem _ cam . listen ( lambda image : image . save _ to _ disk ( ' ~ / tutorial / new _ sem _ output / %. 6d . jpg ' % image . frame , carla . ColorConverter . CityScapesPalette ) ) \" \" \" # -------------- # Add a new radar sensor to ego vehicle # -------------- \" \" \" rad _ cam = None rad _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . other . radar ' ) rad _ bp . set _ attribute ( ' horizontal _ fov ' , str ( 35 ) ) rad _ bp . set _ attribute ( ' vertical _ fov ' , str ( 20 ) ) rad _ bp . set _ attribute ( ' range ' , str ( 20 ) ) rad _ location = carla . Location ( x = 2.8 , z = 1.0 ) rad _ rotation = carla . Rotation ( pitch = 5 ) rad _ transform = carla . Transform ( rad _ location , rad _ rotation ) rad _ ego = world . spawn _ actor ( rad _ bp , rad _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) def rad _ callback ( radar _ data ) : velocity _ range = 7.5 # m / s current _ rot = radar _ data . transform . rotation for detect in radar _ data : azi = math . degrees ( detect . azimuth ) alt = math . degrees ( detect . altitude ) # The 0.25 adjusts a bit the distance so the dots can # be properly seen fw _ vec = carla . Vector3D ( x = detect . depth - 0.25 ) carla . Transform ( carla . Location ( ) , carla . Rotation ( pitch = current _ rot . pitch + alt , yaw = current _ rot . yaw + azi , roll = current _ rot . roll ) ) . transform ( fw _ vec ) def clamp ( min _ v , max _ v , value ) : return max ( min _ v , min ( value , max _ v ) ) norm _ velocity = detect . velocity / velocity _ range # range [ - 1 , 1 ] r = int ( clamp ( 0.0 , 1.0 , 1.0 - norm _ velocity ) * 255.0 ) g = int ( clamp ( 0.0 , 1.0 , 1.0 - abs ( norm _ velocity ) ) * 255.0 ) b = int ( abs ( clamp ( - 1.0 , 0.0 , - 1.0 - norm _ velocity ) ) * 255.0 ) world . debug . draw _ point ( radar _ data . transform . location + fw _ vec , size = 0.075 , life _ time = 0.06 , persistent _ lines = False , color = carla . Color ( r , g , b ) ) rad _ ego . listen ( lambda radar _ data : rad _ callback ( radar _ data ) ) \" \" \" # -------------- # Add a new LIDAR sensor to ego vehicle # -------------- \" \" \" lidar _ cam = None lidar _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . lidar . ray _ cast ' ) lidar _ bp . set _ attribute ( ' channels ' , str ( 32 ) ) lidar _ bp . set _ attribute ( ' points _ per _ second ' , str ( 90000 ) ) lidar _ bp . set _ attribute ( ' rotation _ frequency ' , str ( 40 ) ) lidar _ bp . set _ attribute ( ' range ' , str ( 20 ) ) lidar _ location = carla . Location ( 0 , 0 , 2 ) lidar _ rotation = carla . Rotation ( 0 , 0 , 0 ) lidar _ transform = carla . Transform ( lidar _ location , lidar _ rotation ) lidar _ sen = world . spawn _ actor ( lidar _ bp , lidar _ transform , attach _ to = ego _ vehicle , attachment _ type = carla . AttachmentType . Rigid ) lidar _ sen . listen ( lambda point _ cloud : point _ cloud . save _ to _ disk ( ' / home / adas / Desktop / tutorial / new _ lidar _ output / %. 6d . ply ' % point _ cloud . frame ) ) \" \" \" # -------------- # Game loop . Prevents the script from finishing . # -------------- while True : world _ snapshot = world . wait _ for _ tick ( ) finally : # -------------- # Destroy actors # -------------- if ego _ vehicle is not None : if ego _ cam is not None : ego _ cam . stop ( ) ego _ cam . destroy ( ) if depth _ cam is not None : depth _ cam . stop ( ) depth _ cam . destroy ( ) if sem _ cam is not None : sem _ cam . stop ( ) sem _ cam . destroy ( ) if rad _ ego is not None : rad _ ego . stop ( ) rad _ ego . destroy ( ) if lidar _ sen is not None : lidar _ sen . stop ( ) lidar _ sen . destroy ( ) ego _ vehicle . destroy ( ) print ( ' \\ nNothing to be done . ' ) if __ name __ = = ' __ main __ ' : try : main ( ) except KeyboardInterrupt : pass finally : print ( ' \\ nDone with tutorial _ replay . ' ) \u8fd9\u662f \u5173\u4e8e \u5982\u4f55 \u4ece \u4eff\u771f \u4e2d \u6b63\u786e \u68c0\u7d22 \u6570\u636e \u7684 \u603b\u7ed3 \u3002 \u786e\u4fdd \u5c1d\u8bd5 \u4e00\u4e0b \uff0c \u6539\u53d8 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u6761\u4ef6 \uff0c \u5c1d\u8bd5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u6b62\u5883 \u65e0\u6b62\u5883 \u3002 \u8bf7 \u8bbf\u95ee \u8bba\u575b \uff0c \u53d1\u8868 \u5728 \u9605\u8bfb \u8fc7\u7a0b \u4e2d \u60f3\u5230 \u7684 \u4efb\u4f55 \u7591\u95ee \u6216 \u5efa\u8bae \u3002 Carla \u8bba\u575b","title":"\u6559\u7a0b \u811a\u672c"},{"location":"tuto_G_rllib_integration/","text":"RLlib \u96c6\u6210 RLlib \u96c6\u6210 \u5e26\u6765 \u4e86 Ray / RLlib \u5e93 \u548c Carla \u4e4b\u95f4 \u7684 \u652f\u6301 \uff0c \u5141\u8bb8 \u8f7b\u677e \u4f7f\u7528 Carla \u73af\u5883 \u8fdb\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 Ray \u662f \u4e00\u4e2a \u5f00\u6e90 \u6846\u67b6 \uff0c \u4e3a \u6784\u5efa \u5206\u5e03 \u5e03\u5f0f \u5e94\u7528 \u5206\u5e03\u5f0f \u5206\u5e03\u5f0f\u5e94\u7528 \u7a0b\u5e8f \u63d0\u4f9b \u4e86 \u7b80\u5355 \u3001 \u901a\u7528 \u7684 API \u3002 Ray \u4e0e RLlib \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u5f3a\u5316 \u5b66\u4e60 \u5e93 \uff09 \u548c Tune \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u8d85 \u53c2\u6570 \u8c03\u6574 \u5e93 \uff09 \u6253\u5305 \u5728 \u4e00\u8d77 \u3002 RLlib \u96c6\u6210 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u548c \u4f7f\u7528 Carla \u4f5c\u4e3a Ray \u7684 \u73af\u5883 \uff0c \u5e76 \u5c06 \u8be5 \u73af\u5883 \u7528\u4e8e \u8bad\u7ec3 \u548c \u63a8\u7406 \u76ee\u7684 \u3002 \u8be5 \u96c6\u6210 \u53ef\u4ee5 \u5728 \u672c\u5730 \u4f7f\u7528 \uff0c \u4e5f \u53ef\u4ee5 \u901a\u8fc7 AWS \u5728 \u4e91\u4e2d \u4f7f\u7528 \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6982\u8ff0 \u5728 \u672c\u5730 \u548c AWS \u4e0a \u8fd0\u884c RLlib \u96c6\u6210 \u6240 \u9700 \u7684 \u8981\u6c42 \u3001 \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u7ed3\u6784 \u3001 \u5982\u4f55 \u4f7f\u7528 \u8be5\u5e93 \u7684 \u6982\u8ff0 \uff0c \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 Carla \u8bbe\u7f6e Ray \u5b9e\u9a8c \u7684 \u793a\u4f8b \u4e00\u4e2a \u73af\u5883 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42 \u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 RLlib \u4ed3\u5e93 \u7ed3\u6784 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c DQN \u793a\u4f8b \u5728 AWS \u4e0a \u8fd0\u884c \u914d\u7f6e AWS \u521b\u5efa \u8bad\u7ec3 AMI \u914d\u7f6e \u96c6\u7fa4 \u8fd0\u884c \u8bad\u7ec3 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u4ece GitHub \u4e0b\u8f7d RLlib \u96c6\u6210 \u6216 \u76f4\u63a5 \u514b\u9686 \u4ed3\u5e93 \uff1a git clone https : / / github . com / carla - simulator / rllib - integration . git \u8981\u6c42 \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u5728 \u672c\u5730 \u8fd0\u884c \u8fd8\u662f \u5728 AWS \u4e0a \u8fd0\u884c \uff1a \u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42 \u5b89\u88c5 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \u5e76 \u5bfc\u5165 \u9644\u52a0 \u8d44\u6e90 \u3002 \u63a8\u8350 \u7684 \u7248\u672c \u662f Carla 0.9 . 11 \uff0c \u56e0\u4e3a \u96c6\u6210 \u662f \u4f7f\u7528 \u6b64 \u7248\u672c \u8bbe\u8ba1 \u548c \u6d4b\u8bd5 \u7684 \u3002 \u5176\u4ed6 \u7248\u672c \u53ef\u80fd \u517c\u5bb9 \uff0c \u4f46 \u5c1a\u672a \u7ecf\u8fc7 \u5145\u5206 \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u8bf7 \u81ea\u884c \u51b3\u5b9a \u81ea\u884c\u51b3\u5b9a \u4f7f\u7528 \u8fd9\u4e9b \u7248\u672c \u3002 \u5bfc\u822a \u5230 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5b89\u88c5 Python \u8981\u6c42 \uff1a pip3 install - r requirements . txt \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Carla \u5305 \u6216 \u6dfb\u52a0 CARLA _ ROOT = path / to / carla \u5230 \u60a8 \u7684 . bashrc \u6587\u4ef6 \u4e2d \uff1a export CARLA _ ROOT = path / to / carla \u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 \u5728 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \u4e2d \u4f1a \u81ea\u52a8 \u6ee1\u8db3 \u5728 AWS \u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 \u3002 \u5728 \u201c \u5728 AWS \u4e0a \u8fd0\u884c \u201d \u90e8\u5206 \u4e2d \u67e5\u627e \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 RLlib \u5b58\u50a8 \u5e93 \u7ed3\u6784 \u5b58\u50a8 \u5e93 \u5206\u4e3a \u4e09\u4e2a \u76ee\u5f55 \uff1a rllib _ integration \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u4ee5\u53ca \u5982\u4f55 \u8bbe\u7f6e Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u63d0\u4f9b \u4e86 \u6240\u6709 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u5b9e\u9a8c \u5fc5\u987b \u9075\u5faa \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 aws \u5177\u6709 \u5728 AWS \u5b9e\u4f8b \u4e2d \u8fd0\u884c \u6240 \u9700 \u7684 \u6587\u4ef6 \u3002 aws _ helper . py \u63d0\u4f9b \u4e86 \u591a\u79cd \u7b80\u5316 \u53ef\u7b80\u5316 EC2 \u5b9e\u4f8b \u7ba1\u7406 \u7684 \u529f\u80fd \uff0c \u5305\u62ec \u5b9e\u4f8b \u521b\u5efa \u4ee5\u53ca \u53d1\u9001 \u548c \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u7684 dqn _ example \u548c dqn _ * \u6587\u4ef6 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6613\u4e8e \u7406\u89e3 \u7684 \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 Carla \u4f5c\u4e3a \u73af\u5883 \u6765 \u8bbe\u7f6e Ray \u5b9e\u9a8c \u3002 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u672c \u8282 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 \u66f4 \u5177\u4f53 \u7684 \u793a\u4f8b \u8bf7 \u53c2\u89c1 \u4e0b \u4e00\u8282 \u201c DQN \u793a\u4f8b \u201d \u3002 \u60a8 \u5c06 \u9700\u8981 \u521b\u5efa \u81f3\u5c11 \u56db\u4e2a \u6587\u4ef6 \uff1a \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c 1 . \u5b9e\u9a8c \u7c7b \u8981 \u4f7f\u7528 Carla \u73af\u5883 \uff0c \u60a8 \u9700\u8981 \u5b9a\u4e49 \u8bad\u7ec3 \u5b9e\u9a8c \u3002 Ray \u8981\u6c42 \u73af\u5883 \u8fd4\u56de \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7279\u5b9a \u4fe1\u606f \u3002 \u60a8 \u53ef\u4ee5 \u5728 rllib - integration / rllib _ integration / carla _ env . py \u4e2d \u67e5\u770b \u6709\u5173 Carla \u73af\u5883 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Ray \u6240 \u9700 \u7684 \u4fe1\u606f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u5177\u4f53 \u5b9e\u9a8c \uff0c \u56e0\u6b64 \u6240\u6709 \u5b9e\u9a8c \u90fd \u5e94 \u7ee7\u627f \u81ea BaseExperiment \u3002 \u6b64\u7c7b \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u9700\u8981 \u8986\u76d6 \u7684 \u6240\u6709 \u51fd\u6570 \u3002 \u8fd9\u4e9b \u90fd \u662f \u4e0e \u8bad\u7ec3 \u7684 \u884c\u52a8 \u3001 \u89c2\u5bdf \u548c \u5956\u52b1 \u76f8\u5173 \u7684 \u529f\u80fd \u3002 2 . \u73af\u5883 \u914d\u7f6e \u5b9e\u9a8c \u5e94\u8be5 \u901a\u8fc7 . yaml \u6587\u4ef6 \u8fdb\u884c \u914d\u7f6e \u3002 \u901a\u8fc7 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4f20\u9012 \u7684 \u4efb\u4f55 \u8bbe\u7f6e \u90fd \u5c06 \u8986\u76d6 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u4e0b\u9762 \u89e3\u91ca \u4e86 \u4e0d\u540c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4f4d\u7f6e \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u6709 \u4e09\u4e2a \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \uff1a \u8bbe\u7f6e \u5927\u90e8 \u90e8\u5206 \u5927\u90e8\u5206 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u8d85\u65f6 \u6216 \u5730\u56fe \u8d28\u91cf \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8bbe\u7f6e \u7279\u5b9a \u4e8e \u60a8 \u7684 \u5b9e\u9a8c \u7684 \u53d8\u91cf \uff0c \u4ee5\u53ca \u6307\u5b9a \u57ce\u9547 \u6761\u4ef6 \u4ee5\u53ca \u81ea\u6211 \u8f66\u8f86 \u53ca\u5176 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u3002 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \uff0c \u5e76 \u63d0\u4f9b \u5982\u4f55 \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u3002 \u914d\u7f6e \u7279\u5b9a \u4e8e Ray \u7684 \u8bad\u7ec3 \u8bbe\u7f6e \u3002 \u8fd9\u4e9b \u8bbe\u7f6e \u4e0e \u6240 \u4f7f\u7528 \u7684 \u7279\u5b9a \u8bad\u7ec3 \u8bad\u7ec3\u5668 \u76f8\u5173 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u5185\u7f6e \u6a21\u578b \uff0c \u5219 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u5e94\u7528 \u5176 \u8bbe\u7f6e \u3002 3 . \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c \u6700\u540e \u4e00\u6b65 \u662f \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c \u3002 \u8fd9\u90e8 \u90e8\u5206 \u8fd9\u90e8\u5206 \u5b8c\u5168 \u7531 \u60a8 \u51b3\u5b9a \uff0c \u5e76\u4e14 \u4f9d\u8d56 \u8d56\u4e8e \u4f9d\u8d56\u4e8e Ray API \u3002 \u5982\u679c \u60a8 \u60f3 \u521b\u5efa \u81ea\u5df1 \u7684 \u7279\u5b9a \u6a21\u578b \uff0c \u8bf7 \u67e5\u770b Ray \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6a21\u578b \u6587\u6863 \u3002 DQN \u793a\u4f8b \u672c \u8282 \u4ee5\u4e0a \u4e00\u8282 \u4e3a \u57fa\u7840 \uff0c \u5c55\u793a \u5982\u4f55 \u4f7f\u7528 BirdView pseudosensor \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c Ray \u7684 DQNTrainer \u8fdb\u884c RLlib \u96c6\u6210 \u7684 \u5177\u4f53 \u793a\u4f8b \u3002 DQN \u793a\u4f8b \u7684 \u7ed3\u6784 \u5982\u4e0b \uff1a \u5b9e\u9a8c \u7c7b : DQNExperiment \uff0c \u8986\u76d6 BaseExperiment \u7c7b \u7684 \u65b9\u6cd5 \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 : dqn _ example / dqn _ config . yaml \u8bad\u7ec3 \u6587\u4ef6 : dqn _ train . py \u63a8\u7406 \u6587\u4ef6 : \u6709 Ray : dqn _ inference _ ray . py \u6ca1\u6709 Ray : dqn _ inference . py \u8981 \u5728 \u672c\u5730 \u8fd0\u884c \u8be5 \u793a\u4f8b \uff1a \u5b89\u88c5 pytorch : pip3 install - r dqn _ example / dqn _ requirements . txt \u8fd0\u884c \u8bad\u7ec3 \u6587\u4ef6 \uff1a python3 dqn _ train . py dqn _ example / dqn _ config . yaml -- name dqn \u7b14\u8bb0 \u9ed8\u8ba4 \u914d\u7f6e \u4f7f\u7528 1 \u4e2a GPU \u548c 12 \u4e2a CPU \uff0c \u56e0\u6b64 \u5982\u679c \u60a8 \u7684 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6ca1\u6709 \u8be5 \u5bb9\u91cf \uff0c \u8bf7 \u51cf\u5c0f \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u7684 \u6570\u5b57 \u3002 \u5982\u679c \u9047\u5230 \u5185\u5b58 \u4e0d\u8db3 \u5185\u5b58\u4e0d\u8db3 \u95ee\u9898 \uff0c \u8bf7 \u8003\u8651 \u51cf\u5c11 \u8be5 buffer _ size \u53c2\u6570 \u3002 \u5728 AWS \u4e0a \u8fd0\u884c \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 RLlib \u96c6\u6210 \u5728 AWS EC2 \u5b9e\u4f8b \u4e0a \u81ea\u52a8 \u8fd0\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 \u4e3a\u4e86 \u5904\u7406 \u5b9e\u4f8b \u7684 \u7f29\u653e \uff0c \u6211\u4eec \u4f7f\u7528 Ray autoscaler API \u3002 \u914d\u7f6e AWS \u60a8 \u9700\u8981 \u6b63\u786e \u914d\u7f6e boto3 \u73af\u5883 \u3002 \u8bf7 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u521b\u5efa \u8bad\u7ec3 AMI \u4f7f\u7528 \u63d0\u4f9b \u7684 aws _ helper . py \u811a\u672c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u81ea\u52a8 \u521b\u5efa \u8bad\u7ec3 \u6240 \u9700 \u7684 \u6620\u50cf \uff0c \u5e76 \u4f20\u5165 \u57fa\u7840 \u6620\u50cf \u7684 \u540d\u79f0 \u548c install . sh \u5728 \u4ee5\u4e0b \u4f4d\u7f6e rllib - integration / aws / install \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts < installation - scripts > -- instance - type < instance - type > -- volume - size < volume - size > \u914d\u7f6e \u96c6\u7fa4 \u521b\u5efa \u56fe\u50cf \u540e \uff0c \u5c06\u4f1a \u8f93\u51fa \u5e26\u6709 \u56fe\u50cf \u4fe1\u606f \u7684 \u8f93\u51fa \u3002 \u8981 \u4f7f\u7528 Ray \u81ea\u52a8 \u7f29\u653e \u5668 \uff0c \u8bf7 \u4f7f\u7528 \u8f93\u51fa \u4e2d \u7684 \u4fe1\u606f \u66f4\u65b0 autoscaler configuration file \u4e2d \u7684 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002 \u8fd0\u884c \u8bad\u7ec3 \u521b\u5efa \u955c\u50cf \u540e \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Ray \u7684 API \u5728 \u96c6\u7fa4 \u4e0a \u8fd0\u884c \u8bad\u7ec3 \uff1a \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up < autoscaler _ configuration _ file > \uff08 \u53ef \u9009 \uff09 \u5982\u679c \u96c6\u7fa4 \u521d\u59cb \u521d\u59cb\u5316 \u540e \u672c\u5730 \u4ee3\u7801 \u88ab \u4fee\u6539 \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u66f4\u65b0 \uff1a ray rsync - up < autoscaler _ configuration _ file > < path _ to _ local _ folder > < path _ to _ remote _ folder > \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit < autoscaler _ configuration _ file > < training _ file > \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach < autoscaler _ configuration _ file > watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down < autoscaler _ configuration _ file > \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \u8981 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \uff1a \u901a\u8fc7 \u5c06 dqn _ example / dqn _ autoscaler . yaml \u914d\u7f6e \u4f20\u9012 \u7ed9 \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u521b\u5efa \u6620\u50cf \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts install / install . sh -- instance - type < instance - type > -- volume - size < volume - size > \u4f7f\u7528 \u4e0a \u4e00\u4e2a \u547d\u4ee4 dqn _ autoscaler . yaml \u63d0\u4f9b \u7684 \u4fe1\u606f \u66f4\u65b0 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002 \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up dqn _ example / dqn _ autoscaler . yaml \uff08 \u53ef \u9009 \uff09 \u4f7f\u7528 \u672c\u5730 \u66f4\u6539 \u66f4\u65b0 \u8fdc\u7a0b \u6587\u4ef6 \uff1a ray rsync - up dqn _ example / dqn _ autoscaler . yaml dqn _ example . ray rsync - up dqn _ example / dqn _ autoscaler . yaml rllib _ integration . \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit dqn _ example / dqn _ autoscaler . yaml dqn _ train . py -- dqn _ example / dqn _ config . yaml -- auto 6 . \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach dqn _ example / dqn _ autoscaler . yaml watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down dqn _ example / dqn _ autoscaler . yaml \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5728 AWS \u548c \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u673a\u4e0a \u5b89\u88c5 \u8ba1\u7b97\u673a \u8ba1\u7b97\u673a\u4e0a\u5b89\u88c5 \u548c \u8fd0\u884c RLlib \u96c6\u6210 \u3002 \u5982\u679c \u60a8 \u5bf9 \u672c \u6307\u5357 \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u6216 \u5728 GitHub \u4e0a \u63d0\u51fa \u95ee\u9898 \u3002","title":"RLlib \u96c6\u6210"},{"location":"tuto_G_rllib_integration/#rllib","text":"RLlib \u96c6\u6210 \u5e26\u6765 \u4e86 Ray / RLlib \u5e93 \u548c Carla \u4e4b\u95f4 \u7684 \u652f\u6301 \uff0c \u5141\u8bb8 \u8f7b\u677e \u4f7f\u7528 Carla \u73af\u5883 \u8fdb\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 Ray \u662f \u4e00\u4e2a \u5f00\u6e90 \u6846\u67b6 \uff0c \u4e3a \u6784\u5efa \u5206\u5e03 \u5e03\u5f0f \u5e94\u7528 \u5206\u5e03\u5f0f \u5206\u5e03\u5f0f\u5e94\u7528 \u7a0b\u5e8f \u63d0\u4f9b \u4e86 \u7b80\u5355 \u3001 \u901a\u7528 \u7684 API \u3002 Ray \u4e0e RLlib \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u5f3a\u5316 \u5b66\u4e60 \u5e93 \uff09 \u548c Tune \uff08 \u4e00\u4e2a \u53ef \u6269\u5c55 \u7684 \u8d85 \u53c2\u6570 \u8c03\u6574 \u5e93 \uff09 \u6253\u5305 \u5728 \u4e00\u8d77 \u3002 RLlib \u96c6\u6210 \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u548c \u4f7f\u7528 Carla \u4f5c\u4e3a Ray \u7684 \u73af\u5883 \uff0c \u5e76 \u5c06 \u8be5 \u73af\u5883 \u7528\u4e8e \u8bad\u7ec3 \u548c \u63a8\u7406 \u76ee\u7684 \u3002 \u8be5 \u96c6\u6210 \u53ef\u4ee5 \u5728 \u672c\u5730 \u4f7f\u7528 \uff0c \u4e5f \u53ef\u4ee5 \u901a\u8fc7 AWS \u5728 \u4e91\u4e2d \u4f7f\u7528 \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6982\u8ff0 \u5728 \u672c\u5730 \u548c AWS \u4e0a \u8fd0\u884c RLlib \u96c6\u6210 \u6240 \u9700 \u7684 \u8981\u6c42 \u3001 \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u7ed3\u6784 \u3001 \u5982\u4f55 \u4f7f\u7528 \u8be5\u5e93 \u7684 \u6982\u8ff0 \uff0c \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 Carla \u8bbe\u7f6e Ray \u5b9e\u9a8c \u7684 \u793a\u4f8b \u4e00\u4e2a \u73af\u5883 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42 \u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 RLlib \u4ed3\u5e93 \u7ed3\u6784 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c DQN \u793a\u4f8b \u5728 AWS \u4e0a \u8fd0\u884c \u914d\u7f6e AWS \u521b\u5efa \u8bad\u7ec3 AMI \u914d\u7f6e \u96c6\u7fa4 \u8fd0\u884c \u8bad\u7ec3 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b","title":"RLlib \u96c6\u6210"},{"location":"tuto_G_rllib_integration/#_1","text":"\u4ece GitHub \u4e0b\u8f7d RLlib \u96c6\u6210 \u6216 \u76f4\u63a5 \u514b\u9686 \u4ed3\u5e93 \uff1a git clone https : / / github . com / carla - simulator / rllib - integration . git \u8981\u6c42 \u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u662f \u5728 \u672c\u5730 \u8fd0\u884c \u8fd8\u662f \u5728 AWS \u4e0a \u8fd0\u884c \uff1a","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_G_rllib_integration/#_2","text":"\u5b89\u88c5 Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \u5e76 \u5bfc\u5165 \u9644\u52a0 \u8d44\u6e90 \u3002 \u63a8\u8350 \u7684 \u7248\u672c \u662f Carla 0.9 . 11 \uff0c \u56e0\u4e3a \u96c6\u6210 \u662f \u4f7f\u7528 \u6b64 \u7248\u672c \u8bbe\u8ba1 \u548c \u6d4b\u8bd5 \u7684 \u3002 \u5176\u4ed6 \u7248\u672c \u53ef\u80fd \u517c\u5bb9 \uff0c \u4f46 \u5c1a\u672a \u7ecf\u8fc7 \u5145\u5206 \u6d4b\u8bd5 \uff0c \u56e0\u6b64 \u8bf7 \u81ea\u884c \u51b3\u5b9a \u81ea\u884c\u51b3\u5b9a \u4f7f\u7528 \u8fd9\u4e9b \u7248\u672c \u3002 \u5bfc\u822a \u5230 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u5b89\u88c5 Python \u8981\u6c42 \uff1a pip3 install - r requirements . txt \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u4ee5 \u67e5\u627e Carla \u5305 \u6216 \u6dfb\u52a0 CARLA _ ROOT = path / to / carla \u5230 \u60a8 \u7684 . bashrc \u6587\u4ef6 \u4e2d \uff1a export CARLA _ ROOT = path / to / carla","title":"\u672c\u5730 \u8fd0\u884c \u7684 \u8981\u6c42"},{"location":"tuto_G_rllib_integration/#aws","text":"\u5728 RLlib \u96c6\u6210 \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \u4e2d \u4f1a \u81ea\u52a8 \u6ee1\u8db3 \u5728 AWS \u4e0a \u8fd0\u884c \u7684 \u8981\u6c42 \u3002 \u5728 \u201c \u5728 AWS \u4e0a \u8fd0\u884c \u201d \u90e8\u5206 \u4e2d \u67e5\u627e \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002","title":"\u5728 AWS \u4e91\u4e0a \u8fd0\u884c \u7684 \u8981\u6c42"},{"location":"tuto_G_rllib_integration/#rllib_1","text":"\u5b58\u50a8 \u5e93 \u5206\u4e3a \u4e09\u4e2a \u76ee\u5f55 \uff1a rllib _ integration \u5305\u542b \u4e0e Carla \u76f8\u5173 \u7684 \u6240\u6709 \u57fa\u7840 \u8bbe\u65bd \u57fa\u7840\u8bbe\u65bd \u4ee5\u53ca \u5982\u4f55 \u8bbe\u7f6e Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3001 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8fd9 \u63d0\u4f9b \u4e86 \u6240\u6709 \u8bad\u7ec3 \u548c \u6d4b\u8bd5 \u5b9e\u9a8c \u5fc5\u987b \u9075\u5faa \u7684 \u57fa\u672c \u7ed3\u6784 \u3002 aws \u5177\u6709 \u5728 AWS \u5b9e\u4f8b \u4e2d \u8fd0\u884c \u6240 \u9700 \u7684 \u6587\u4ef6 \u3002 aws _ helper . py \u63d0\u4f9b \u4e86 \u591a\u79cd \u7b80\u5316 \u53ef\u7b80\u5316 EC2 \u5b9e\u4f8b \u7ba1\u7406 \u7684 \u529f\u80fd \uff0c \u5305\u62ec \u5b9e\u4f8b \u521b\u5efa \u4ee5\u53ca \u53d1\u9001 \u548c \u63a5\u6536 \u6570\u636e \u63a5\u6536\u6570\u636e \u3002 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u7684 dqn _ example \u548c dqn _ * \u6587\u4ef6 \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u6613\u4e8e \u7406\u89e3 \u7684 \u793a\u4f8b \uff0c \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 Carla \u4f5c\u4e3a \u73af\u5883 \u6765 \u8bbe\u7f6e Ray \u5b9e\u9a8c \u3002","title":"RLlib \u5b58\u50a8 \u5e93 \u7ed3\u6784"},{"location":"tuto_G_rllib_integration/#_3","text":"\u672c \u8282 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 \u66f4 \u5177\u4f53 \u7684 \u793a\u4f8b \u8bf7 \u53c2\u89c1 \u4e0b \u4e00\u8282 \u201c DQN \u793a\u4f8b \u201d \u3002 \u60a8 \u5c06 \u9700\u8981 \u521b\u5efa \u81f3\u5c11 \u56db\u4e2a \u6587\u4ef6 \uff1a \u5b9e\u9a8c \u7c7b \u73af\u5883 \u914d\u7f6e \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c","title":"\u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c"},{"location":"tuto_G_rllib_integration/#1","text":"\u8981 \u4f7f\u7528 Carla \u73af\u5883 \uff0c \u60a8 \u9700\u8981 \u5b9a\u4e49 \u8bad\u7ec3 \u5b9e\u9a8c \u3002 Ray \u8981\u6c42 \u73af\u5883 \u8fd4\u56de \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7279\u5b9a \u4fe1\u606f \u3002 \u60a8 \u53ef\u4ee5 \u5728 rllib - integration / rllib _ integration / carla _ env . py \u4e2d \u67e5\u770b \u6709\u5173 Carla \u73af\u5883 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 Ray \u6240 \u9700 \u7684 \u4fe1\u606f \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u7684 \u5177\u4f53 \u5b9e\u9a8c \uff0c \u56e0\u6b64 \u6240\u6709 \u5b9e\u9a8c \u90fd \u5e94 \u7ee7\u627f \u81ea BaseExperiment \u3002 \u6b64\u7c7b \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u9700\u8981 \u8986\u76d6 \u7684 \u6240\u6709 \u51fd\u6570 \u3002 \u8fd9\u4e9b \u90fd \u662f \u4e0e \u8bad\u7ec3 \u7684 \u884c\u52a8 \u3001 \u89c2\u5bdf \u548c \u5956\u52b1 \u76f8\u5173 \u7684 \u529f\u80fd \u3002","title":"1 . \u5b9e\u9a8c \u7c7b"},{"location":"tuto_G_rllib_integration/#2","text":"\u5b9e\u9a8c \u5e94\u8be5 \u901a\u8fc7 . yaml \u6587\u4ef6 \u8fdb\u884c \u914d\u7f6e \u3002 \u901a\u8fc7 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4f20\u9012 \u7684 \u4efb\u4f55 \u8bbe\u7f6e \u90fd \u5c06 \u8986\u76d6 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u3002 \u4e0b\u9762 \u89e3\u91ca \u4e86 \u4e0d\u540c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u7684 \u4f4d\u7f6e \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u6709 \u4e09\u4e2a \u4e3b\u8981 \u8981\u7528 \u7528\u9014 \u4e3b\u8981\u7528\u9014 \uff1a \u8bbe\u7f6e \u5927\u90e8 \u90e8\u5206 \u5927\u90e8\u5206 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u5ba2\u6237 \u5ba2\u6237\u7aef \u8bbe\u7f6e \uff0c \u4f8b\u5982 \u8d85\u65f6 \u6216 \u5730\u56fe \u8d28\u91cf \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u3002 \u8bbe\u7f6e \u7279\u5b9a \u4e8e \u60a8 \u7684 \u5b9e\u9a8c \u7684 \u53d8\u91cf \uff0c \u4ee5\u53ca \u6307\u5b9a \u57ce\u9547 \u6761\u4ef6 \u4ee5\u53ca \u81ea\u6211 \u8f66\u8f86 \u53ca\u5176 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u751f\u6210 \u3002 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u53ef \u5728 \u6b64\u5904 \u627e\u5230 \uff0c \u5e76 \u63d0\u4f9b \u5982\u4f55 \u8bbe\u7f6e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u793a\u4f8b \u3002 \u914d\u7f6e \u7279\u5b9a \u4e8e Ray \u7684 \u8bad\u7ec3 \u8bbe\u7f6e \u3002 \u8fd9\u4e9b \u8bbe\u7f6e \u4e0e \u6240 \u4f7f\u7528 \u7684 \u7279\u5b9a \u8bad\u7ec3 \u8bad\u7ec3\u5668 \u76f8\u5173 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f \u5185\u7f6e \u6a21\u578b \uff0c \u5219 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u5e94\u7528 \u5176 \u8bbe\u7f6e \u3002","title":"2 . \u73af\u5883 \u914d\u7f6e"},{"location":"tuto_G_rllib_integration/#3","text":"\u6700\u540e \u4e00\u6b65 \u662f \u521b\u5efa \u60a8 \u81ea\u5df1 \u7684 \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c \u3002 \u8fd9\u90e8 \u90e8\u5206 \u8fd9\u90e8\u5206 \u5b8c\u5168 \u7531 \u60a8 \u51b3\u5b9a \uff0c \u5e76\u4e14 \u4f9d\u8d56 \u8d56\u4e8e \u4f9d\u8d56\u4e8e Ray API \u3002 \u5982\u679c \u60a8 \u60f3 \u521b\u5efa \u81ea\u5df1 \u7684 \u7279\u5b9a \u6a21\u578b \uff0c \u8bf7 \u67e5\u770b Ray \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6a21\u578b \u6587\u6863 \u3002","title":"3 . \u8bad\u7ec3 \u548c \u63a8\u7406 \u811a\u672c"},{"location":"tuto_G_rllib_integration/#dqn","text":"\u672c \u8282 \u4ee5\u4e0a \u4e00\u8282 \u4e3a \u57fa\u7840 \uff0c \u5c55\u793a \u5982\u4f55 \u4f7f\u7528 BirdView pseudosensor \u4f2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c Ray \u7684 DQNTrainer \u8fdb\u884c RLlib \u96c6\u6210 \u7684 \u5177\u4f53 \u793a\u4f8b \u3002 DQN \u793a\u4f8b \u7684 \u7ed3\u6784 \u5982\u4e0b \uff1a \u5b9e\u9a8c \u7c7b : DQNExperiment \uff0c \u8986\u76d6 BaseExperiment \u7c7b \u7684 \u65b9\u6cd5 \u3002 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 : dqn _ example / dqn _ config . yaml \u8bad\u7ec3 \u6587\u4ef6 : dqn _ train . py \u63a8\u7406 \u6587\u4ef6 : \u6709 Ray : dqn _ inference _ ray . py \u6ca1\u6709 Ray : dqn _ inference . py \u8981 \u5728 \u672c\u5730 \u8fd0\u884c \u8be5 \u793a\u4f8b \uff1a \u5b89\u88c5 pytorch : pip3 install - r dqn _ example / dqn _ requirements . txt \u8fd0\u884c \u8bad\u7ec3 \u6587\u4ef6 \uff1a python3 dqn _ train . py dqn _ example / dqn _ config . yaml -- name dqn \u7b14\u8bb0 \u9ed8\u8ba4 \u914d\u7f6e \u4f7f\u7528 1 \u4e2a GPU \u548c 12 \u4e2a CPU \uff0c \u56e0\u6b64 \u5982\u679c \u60a8 \u7684 \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u6ca1\u6709 \u8be5 \u5bb9\u91cf \uff0c \u8bf7 \u51cf\u5c0f \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u4e2d \u7684 \u6570\u5b57 \u3002 \u5982\u679c \u9047\u5230 \u5185\u5b58 \u4e0d\u8db3 \u5185\u5b58\u4e0d\u8db3 \u95ee\u9898 \uff0c \u8bf7 \u8003\u8651 \u51cf\u5c11 \u8be5 buffer _ size \u53c2\u6570 \u3002","title":"DQN \u793a\u4f8b"},{"location":"tuto_G_rllib_integration/#aws_1","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 RLlib \u96c6\u6210 \u5728 AWS EC2 \u5b9e\u4f8b \u4e0a \u81ea\u52a8 \u8fd0\u884c \u8bad\u7ec3 \u548c \u63a8\u7406 \u3002 \u4e3a\u4e86 \u5904\u7406 \u5b9e\u4f8b \u7684 \u7f29\u653e \uff0c \u6211\u4eec \u4f7f\u7528 Ray autoscaler API \u3002","title":"\u5728 AWS \u4e0a \u8fd0\u884c"},{"location":"tuto_G_rllib_integration/#aws_2","text":"\u60a8 \u9700\u8981 \u6b63\u786e \u914d\u7f6e boto3 \u73af\u5883 \u3002 \u8bf7 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u914d\u7f6e AWS"},{"location":"tuto_G_rllib_integration/#ami","text":"\u4f7f\u7528 \u63d0\u4f9b \u7684 aws _ helper . py \u811a\u672c \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u81ea\u52a8 \u521b\u5efa \u8bad\u7ec3 \u6240 \u9700 \u7684 \u6620\u50cf \uff0c \u5e76 \u4f20\u5165 \u57fa\u7840 \u6620\u50cf \u7684 \u540d\u79f0 \u548c install . sh \u5728 \u4ee5\u4e0b \u4f4d\u7f6e rllib - integration / aws / install \u627e\u5230 \u7684 \u5b89\u88c5 \u811a\u672c \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts < installation - scripts > -- instance - type < instance - type > -- volume - size < volume - size >","title":"\u521b\u5efa \u8bad\u7ec3 AMI"},{"location":"tuto_G_rllib_integration/#_4","text":"\u521b\u5efa \u56fe\u50cf \u540e \uff0c \u5c06\u4f1a \u8f93\u51fa \u5e26\u6709 \u56fe\u50cf \u4fe1\u606f \u7684 \u8f93\u51fa \u3002 \u8981 \u4f7f\u7528 Ray \u81ea\u52a8 \u7f29\u653e \u5668 \uff0c \u8bf7 \u4f7f\u7528 \u8f93\u51fa \u4e2d \u7684 \u4fe1\u606f \u66f4\u65b0 autoscaler configuration file \u4e2d \u7684 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002","title":"\u914d\u7f6e \u96c6\u7fa4"},{"location":"tuto_G_rllib_integration/#_5","text":"\u521b\u5efa \u955c\u50cf \u540e \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 Ray \u7684 API \u5728 \u96c6\u7fa4 \u4e0a \u8fd0\u884c \u8bad\u7ec3 \uff1a \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up < autoscaler _ configuration _ file > \uff08 \u53ef \u9009 \uff09 \u5982\u679c \u96c6\u7fa4 \u521d\u59cb \u521d\u59cb\u5316 \u540e \u672c\u5730 \u4ee3\u7801 \u88ab \u4fee\u6539 \uff0c \u8bf7 \u6267\u884c \u4ee5\u4e0b \u547d\u4ee4 \u66f4\u65b0 \uff1a ray rsync - up < autoscaler _ configuration _ file > < path _ to _ local _ folder > < path _ to _ remote _ folder > \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit < autoscaler _ configuration _ file > < training _ file > \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach < autoscaler _ configuration _ file > watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down < autoscaler _ configuration _ file >","title":"\u8fd0\u884c \u8bad\u7ec3"},{"location":"tuto_G_rllib_integration/#aws-dqn","text":"\u8981 \u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b \uff1a \u901a\u8fc7 \u5c06 dqn _ example / dqn _ autoscaler . yaml \u914d\u7f6e \u4f20\u9012 \u7ed9 \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u521b\u5efa \u6620\u50cf \uff1a python3 aws _ helper . py create - image -- name < AMI - name > -- installation - scripts install / install . sh -- instance - type < instance - type > -- volume - size < volume - size > \u4f7f\u7528 \u4e0a \u4e00\u4e2a \u547d\u4ee4 dqn _ autoscaler . yaml \u63d0\u4f9b \u7684 \u4fe1\u606f \u66f4\u65b0 < ImageId > \u548c < SecurityGroupIds > \u8bbe\u7f6e \u3002 \u521d\u59cb \u521d\u59cb\u5316 \u96c6\u7fa4 \uff1a ray up dqn _ example / dqn _ autoscaler . yaml \uff08 \u53ef \u9009 \uff09 \u4f7f\u7528 \u672c\u5730 \u66f4\u6539 \u66f4\u65b0 \u8fdc\u7a0b \u6587\u4ef6 \uff1a ray rsync - up dqn _ example / dqn _ autoscaler . yaml dqn _ example . ray rsync - up dqn _ example / dqn _ autoscaler . yaml rllib _ integration . \u8fd0\u884c \u8bad\u7ec3 \uff1a ray submit dqn _ example / dqn _ autoscaler . yaml dqn _ train . py -- dqn _ example / dqn _ config . yaml -- auto 6 . \uff08 \u53ef \u9009 \uff09 \u76d1\u63a7 \u96c6\u7fa4 \u72b6\u6001 \uff1a ray attach dqn _ example / dqn _ autoscaler . yaml watch - n 1 ray status \u5173\u95ed \u96c6\u7fa4 \uff1a ray down dqn _ example / dqn _ autoscaler . yaml \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5728 AWS \u548c \u672c\u5730 \u8ba1\u7b97 \u7b97\u673a \u673a\u4e0a \u5b89\u88c5 \u8ba1\u7b97\u673a \u8ba1\u7b97\u673a\u4e0a\u5b89\u88c5 \u548c \u8fd0\u884c RLlib \u96c6\u6210 \u3002 \u5982\u679c \u60a8 \u5bf9 \u672c \u6307\u5357 \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u6216 \u5728 GitHub \u4e0a \u63d0\u51fa \u95ee\u9898 \u3002","title":"\u5728 AWS \u4e0a \u8fd0\u884c DQN \u793a\u4f8b"},{"location":"tuto_G_scenic/","text":"Scenic \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \uff0c \u901a\u8fc7 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u5b83 \u5047\u8bbe \u7528\u6237 \u4e8b\u5148 \u4e86\u89e3 \u573a\u666f \u8bed\u6cd5 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4e86\u89e3 \u6709\u5173 Scenic \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u4ed6\u4eec \u7684 \u201c Scenic \u5165\u95e8 \u201d \u6307\u5357 \uff0c \u5e76 \u67e5\u770b \u4ed6\u4eec \u6709\u5173 \u521b\u5efa \u9759\u6001 \u548c \u52a8\u6001 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u5728 \u672c \u6307\u5357 \u7ed3\u675f \u65f6 \uff0c \u60a8 \u5c06 \u4e86\u89e3 \uff1a \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u6240 \u9700 \u7684 \u6700\u4f4e \u8981\u6c42 \u3002 \u5982\u4f55 \u7f16\u5199 \u7b80\u5355 \u7684 \u573a\u666f \u5b9a\u4e49 \u6765 \u751f\u6210 \u5927\u91cf \u573a\u666f \u4eff\u771f \u3002 \u5982\u4f55 \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u3002 \u7528\u4e8e \u5728 Carla \u4e0a \u914d\u7f6e \u573a\u666f \u4eff\u771f \u7684 \u53c2\u6570 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Scenic \u57df \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f \u8fd0\u884c \u573a\u666f \u9644\u52a0 \u53c2\u6570 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u5b89\u88c5 Python 3.8 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u5b89\u88c5 Scenic \u3002 Scenic \u57df Scenic \u6709 \u4e00\u4e2a \u901a\u7528 \u9a7e\u9a76 \u57df \uff0c \u5141\u8bb8 \u7528\u6237 \u5b9a\u4e49 \u53ef\u4ee5 \u5728 \u4efb\u4f55 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u8fd0\u884c \u7684 \u573a\u666f \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8\u6709 \u7279\u5b9a \u4e8e \u6bcf\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5176\u4ed6 \u57df \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6709\u5173 Scenic \u57df \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6bcf\u4e2a \u9886\u57df \u4e2d \u7279\u522b \u91cd\u8981 \u7684 \u662f \u884c\u4e3a \u548c \u52a8\u4f5c \u7684 \u5b9a\u4e49 \u3002 \u68c0\u67e5 \u4ee5\u4e0b \u94fe\u63a5 \uff0c \u83b7\u53d6 \u6709\u5173 Scenic \u9a7e\u9a76 \u57df \u548c Carla \u57df \u7684 \u884c\u4e3a \u548c \u64cd\u4f5c \u7684 \u53c2\u8003 \u6750\u6599 \uff1a the Scenic \u9a7e\u9a76 \u9886\u57df \u7684 \u884c\u4e3a Carla \u57df \u4e2d \u7684 \u884c\u4e3a Scenic \u9a7e\u9a76 \u57df \u7684 \u52a8\u4f5c Carla \u57df \u4e2d \u7684 \u52a8\u4f5c \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f \u672c\u8282 \u5c06 \u4ecb\u7ecd \u5982\u4f55 \u7f16\u5199 \u57fa\u672c \u7684 \u573a\u666f \u811a\u672c \uff0c \u5176\u4e2d \u9886\u5934 \u8f66\u8f86 \u7531\u4e8e \u9053\u8def \u4e0a \u7684 \u969c\u788d \u969c\u788d\u7269 \u800c \u7a81\u7136 \u51cf\u901f \u3002 \u7136\u540e \uff0c \u672c\u8f66 \u9700\u8981 \u7a81\u7136 \u5236\u52a8 \u4ee5 \u907f\u514d \u4e0e \u524d\u8f66 \u53d1\u751f \u78b0\u649e \u3002 \u5b8c\u6574 \u7684 \u811a\u672c \u4ee5\u53ca \u6d89\u53ca \u66f4 \u590d\u6742 \u9053\u8def \u7f51\u7edc \u7684 \u5176\u4ed6 \u793a\u4f8b \u53ef\u4ee5 \u5728 Scenic \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u3002 1 . \u8bbe\u7f6e \u5730\u56fe \u53c2\u6570 \u5e76 \u58f0\u660e \u573a\u666f \u4f7f\u7528 \u7684 \u6a21\u578b \uff1a \u5e94 \u5c06 . xodr \u6587\u4ef6 \u8bbe\u7f6e \u4e3a map \u53c2\u6570 \u6570\u503c \u53c2\u6570\u503c \uff0c \u7a0d\u540e \u5c06 \u4f7f\u7528 \u8be5 \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u7edc \u4fe1\u606f \u3002 \u53c2\u6570 carla _ map \u662f \u6307 \u60a8 \u60f3\u8981 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u5df2 \u5b9a\u4e49 \uff0c \u5219 Scenic \u5c06 \u52a0\u8f7d \u5730\u56fe \u7684 \u6240\u6709 \u8d44\u4ea7 \uff08 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49 \uff09 \uff0c \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \uff0c \u5219 \u5c06 \u4f7f\u7528 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u8be5 \u6a21\u578b \u5305\u62ec \u7279\u5b9a \u4e8e Carla \u4e0a \u8fd0\u884c \u573a\u666f \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9 \u5e94\u8be5 \u5728 \u60a8 \u60f3\u8981 \u5728 Carla \u4e0a \u8fd0\u884c \u7684 \u6240\u6709 \u811a\u672c \u4e2d \u5b9a\u4e49 \u3002 ## SET MAP AND MODEL param map = localPath ( ' .. / .. / .. / tests / formats / opendrive / maps / CARLA / Town01 . xodr ' ) param carla _ map = ' Town01 ' model scenic . simulators . carla . model 2 . \u5b9a\u4e49 \u573a\u666f \u4e2d\u8981 \u4f7f\u7528 \u7684 \u5e38\u91cf \uff1a \u8be5 \u573a\u666f \u6d89\u53ca \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \uff0c \u9886\u5934 \u8f66\u8f86 \u548c \u81ea\u6211 \u8f66\u8f86 \u3002 \u6211\u4eec \u5c06 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \u6a21\u578b \u3001 \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u9608\u503c \u4ee5\u53ca \u5236 \u52a8\u91cf \u3002 ## CONSTANTS EGO _ MODEL = \" vehicle . lincoln . mkz _ 2017 \" EGO _ SPEED = 10 EGO _ BRAKING _ THRESHOLD = 12 LEAD _ CAR _ SPEED = 10 LEADCAR _ BRAKING _ THRESHOLD = 10 BRAKE _ ACTION = 1.0 3 . \u5b9a\u4e49 \u573a\u666f \u884c\u4e3a \uff1a \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Scenic \u884c\u4e3a \u5e93 \u6765 \u6307\u793a \u81ea\u6211 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u4e49 \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u7136\u540e \u5728 \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb \u65f6 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \u3002 \u9886\u5148 \u7684 \u8f66\u8f86 \u4e5f \u4f1a \u4ee5 \u9884\u5b9a \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u5e76 \u5728 \u8ddd\u79bb \u4efb\u4f55 \u7269\u4f53 \u4e00\u5b9a \u8ddd\u79bb \u5185 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \uff1a ## DEFINING BEHAVIORS # EGO BEHAVIOR : Follow lane , and brake after passing a threshold distance to the leading car behavior EgoBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyCars ( self , EGO _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) # LEAD CAR BEHAVIOR : Follow lane , and brake after passing a threshold distance to obstacle behavior LeadingCarBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyObjs ( self , LEADCAR _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) 4 . \u751f\u6210 \u8def\u7f51 \uff1a Scenic \u9053\u8def \u5e93 \u7528\u4e8e \u751f\u6210 \u9053\u8def \u7f51\u7edc \u51e0\u4f55 \u5f62\u72b6 \u548c \u4ea4\u901a \u4fe1\u606f \u3002 \u9053\u8def \u7f51\u7edc \u7531 Network \u7c7b \u7684 \u5b9e\u4f8b \u8868\u793a \uff0c \u5e76 \u7531 \u811a\u672c \u5f00\u5934 \u5b9a\u4e49 \u7684 \u6587\u4ef6 \u751f\u6210 \u3002 ## DEFINING SPATIAL RELATIONS # make sure to put ' * ' to uniformly randomly select from all elements of the list , ' lanes ' lane = Uniform ( * network . lanes ) 5 . \u8bbe\u7f6e \u573a\u666f \uff1a \u6211\u4eec \u73b0\u5728 \u5c06 \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u8d77\u59cb \u4f4d\u7f6e \u548c \u7269\u4f53 \u7684 \u653e\u7f6e \u3002 \u5728 \u8f66\u9053 \u4e2d\u95f4 \u653e\u7f6e \u5783\u573e \u5783\u573e\u6876 \uff1a obstacle = Trash on lane . centerline \u5c06 \u9886\u5148 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u540e\u65b9 50 \u81f3 30 \u7c73 \uff1a leadCar = Car following roadDirection from obstacle for Range ( - 50 , - 30 ) , with behavior LeadingCarBehavior ( LEAD _ CAR _ SPEED ) \u5c06 \u672c\u8f66 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf\u7740 \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u524d \u8f66 15 \u5230 10 \u7c73 \uff1a ego = Car following roadDirection from leadCar for Range ( - 15 , - 10 ) , with blueprint EGO _ MODEL , with behavior EgoBehavior ( EGO _ SPEED ) \u8981\u6c42 \u573a\u666f \u53d1\u751f \u5728 \u8ddd \u8def\u53e3 80 \u7c73 \u4ee5\u4e0a \u7684 \u4f4d\u7f6e \uff1a require ( distance to intersection ) > 80 6 . \u8bbe\u7f6e \u7ed3\u675f \u70b9 \uff0c \u4ee5\u4fbf \u811a\u672c \u77e5\u9053 \u573a\u666f \u4f55\u65f6 \u5b8c\u6210 \uff1a \u5f53 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u4f4e\u4e8e \u6bcf\u79d2 0.1 \u7c73 \u5e76\u4e14 \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u4e0d\u5230 30 \u7c73 \u65f6 \uff0c \u8be5 \u573a\u666f \u5c06 \u7ed3\u675f \u3002 terminate when ego . speed < 0.1 and ( distance to obstacle ) < 30 \u8fd0\u884c \u573a\u666f \u8981 \u8fd0\u884c Scenic \u573a\u666f \uff1a 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a scenic path / to / scenic / script . scenic -- simulate \u5c06 \u51fa\u73b0 \u4e00\u4e2a pygame \u7a97\u53e3 \uff0c \u5e76\u4e14 \u573a\u666f \u5c06 \u91cd\u590d \u64ad\u653e \uff0c \u6bcf\u6b21 \u90fd \u4f1a \u5728 \u811a\u672c \u4e2d \u8bbe\u7f6e \u7684 \u9650\u5236 \u8303\u56f4 \u5185 \u751f\u6210 \u4e00\u4e2a \u72ec\u7279 \u7684 \u573a\u666f \u3002 \u8981 \u505c\u6b62 \u573a\u666f \u751f\u6210 \uff0c \u8bf7 \u5728 \u7ec8\u7aef \u4e2d \u6309 ctrl + C \u3002 \u9644\u52a0 \u53c2\u6570 Carla \u6a21\u578b \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u5168\u5c40 \u53c2\u6570 \uff0c \u53ef\u4ee5 \u5728 \u4f7f\u7528 param \u8bed\u53e5 \u6216 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 -- param option \u9009\u9879 \u7684 \u573a\u666f \u4e2d \u8986\u76d6 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u4e0b\u9762 \u662f Carla \u6a21\u578b \u4e2d \u7684 \u53ef \u914d\u7f6e \u53c2\u6570 \u6570\u8868 \u53c2\u6570\u8868 \uff1a \u540d\u79f0 \u503c \u63cf\u8ff0 carla _ map str \u8981 \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \uff08 \u4f8b\u5982 \u201c Town01 \u201d \uff09 \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a None \uff0c Carla \u5c06 \u5c1d\u8bd5 \u4f7f\u7528 map \u53c2\u6570 \u4e2d \u5b9a\u4e49 \u7684 . xodr \u6587\u4ef6 \u5728 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u4e0b \u521b\u5efa \u4e16\u754c \u3002 timestep float \u7528\u4e8e \u4eff\u771f \u7684 \u65f6\u95f4 \u6b65\u957f \uff08 Scenic \u4e2d\u65ad Carla \u8fd0\u884c \u884c\u4e3a \u3001 \u68c0\u67e5 \u9700\u6c42 \u7b49 \u7684 \u9891\u7387 \uff09 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.1 \u79d2 \u3002 weather str \u6216 dict \u7528\u4e8e \u5929\u6c14 \u7684 \u4eff\u771f \u3002 \u53ef\u4ee5 \u662f \u6807\u8bc6 Carla \u5929\u6c14 \u9884\u8bbe \u4e4b\u4e00 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff08 \u4f8b\u5982 \u201c ClearSunset \u201d \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u6307\u5b9a \u6240\u6709 \u5929\u6c14 \u53c2\u6570 \u7684 \u5b57\u5178 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u662f \u6240\u6709 \u5929\u6c14 \u9884\u8bbe \u7684 \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u3002 address str \u8fde\u63a5 \u5230 Carla \u7684 IP \u5730\u5740 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a \u672c\u5730 \u4e3b\u673a ( 127.0 . 0.1 ) \u3002 port int \u8fde\u63a5 \u81f3 Carla \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 \u3002 timeout float \u5c1d\u8bd5 \u8fde\u63a5 \u5230 Carla \u65f6 \u7b49\u5f85 \u7684 \u6700\u957f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 render int \u662f\u5426 \u8ba9 Carla \u521b\u5efa \u4e00\u4e2a \u7a97\u53e3 \uff0c \u4ece \u81ea\u6211 \u5ba2\u4f53 \u7684 \u89d2\u5ea6 \u663e\u793a \u4eff\u771f \uff1a 1 \u662f \uff0c 0 \u5426 \u3002 \u9ed8\u8ba4 1 \u3002 record str \u5982\u679c \u975e\u7a7a \uff0c \u5219 \u4fdd\u5b58 \u7528\u4e8e \u91cd \u653e \u4eff\u771f \u7684 Carla \u8bb0\u5f55 \u6587\u4ef6 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002","title":"Scenic"},{"location":"tuto_G_scenic/#scenic","text":"\u672c \u6307\u5357 \u6982\u8ff0 \u4e86 \u5982\u4f55 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \uff0c \u901a\u8fc7 \u5355\u4e2a \u573a\u666f \u5b9a\u4e49 \u751f\u6210 \u591a\u4e2a \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u5b83 \u5047\u8bbe \u7528\u6237 \u4e8b\u5148 \u4e86\u89e3 \u573a\u666f \u8bed\u6cd5 \u3002 \u5982\u679c \u60a8 \u9700\u8981 \u4e86\u89e3 \u6709\u5173 Scenic \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u4ed6\u4eec \u7684 \u201c Scenic \u5165\u95e8 \u201d \u6307\u5357 \uff0c \u5e76 \u67e5\u770b \u4ed6\u4eec \u6709\u5173 \u521b\u5efa \u9759\u6001 \u548c \u52a8\u6001 \u573a\u666f \u7684 \u6559\u7a0b \u3002 \u5728 \u672c \u6307\u5357 \u7ed3\u675f \u65f6 \uff0c \u60a8 \u5c06 \u4e86\u89e3 \uff1a \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u6240 \u9700 \u7684 \u6700\u4f4e \u8981\u6c42 \u3002 \u5982\u4f55 \u7f16\u5199 \u7b80\u5355 \u7684 \u573a\u666f \u5b9a\u4e49 \u6765 \u751f\u6210 \u5927\u91cf \u573a\u666f \u4eff\u771f \u3002 \u5982\u4f55 \u5728 Carla \u4e0a \u8fd0\u884c Scenic \u811a\u672c \u3002 \u7528\u4e8e \u5728 Carla \u4e0a \u914d\u7f6e \u573a\u666f \u4eff\u771f \u7684 \u53c2\u6570 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Scenic \u57df \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f \u8fd0\u884c \u573a\u666f \u9644\u52a0 \u53c2\u6570","title":"Scenic"},{"location":"tuto_G_scenic/#_1","text":"\u5728 \u5c06 Scenic \u4e0e Carla \u7ed3\u5408 \u4f7f\u7528 \u4e4b\u524d \uff0c \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u8981\u6c42 \uff1a \u5b89\u88c5 Python 3.8 \u6216 \u66f4 \u9ad8 \u7248\u672c \u3002 \u5b89\u88c5 Scenic \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_G_scenic/#scenic_1","text":"Scenic \u6709 \u4e00\u4e2a \u901a\u7528 \u9a7e\u9a76 \u57df \uff0c \u5141\u8bb8 \u7528\u6237 \u5b9a\u4e49 \u53ef\u4ee5 \u5728 \u4efb\u4f55 \u9a7e\u9a76 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u4e0a \u8fd0\u884c \u7684 \u573a\u666f \u3002 \u6b64\u5916 \uff0c \u5b83 \u8fd8\u6709 \u7279\u5b9a \u4e8e \u6bcf\u4e2a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5176\u4ed6 \u57df \u3002 \u8bf7 \u5728 \u6b64\u5904 \u67e5\u770b \u6709\u5173 Scenic \u57df \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6bcf\u4e2a \u9886\u57df \u4e2d \u7279\u522b \u91cd\u8981 \u7684 \u662f \u884c\u4e3a \u548c \u52a8\u4f5c \u7684 \u5b9a\u4e49 \u3002 \u68c0\u67e5 \u4ee5\u4e0b \u94fe\u63a5 \uff0c \u83b7\u53d6 \u6709\u5173 Scenic \u9a7e\u9a76 \u57df \u548c Carla \u57df \u7684 \u884c\u4e3a \u548c \u64cd\u4f5c \u7684 \u53c2\u8003 \u6750\u6599 \uff1a the Scenic \u9a7e\u9a76 \u9886\u57df \u7684 \u884c\u4e3a Carla \u57df \u4e2d \u7684 \u884c\u4e3a Scenic \u9a7e\u9a76 \u57df \u7684 \u52a8\u4f5c Carla \u57df \u4e2d \u7684 \u52a8\u4f5c","title":"Scenic \u57df"},{"location":"tuto_G_scenic/#carla-scenic","text":"\u672c\u8282 \u5c06 \u4ecb\u7ecd \u5982\u4f55 \u7f16\u5199 \u57fa\u672c \u7684 \u573a\u666f \u811a\u672c \uff0c \u5176\u4e2d \u9886\u5934 \u8f66\u8f86 \u7531\u4e8e \u9053\u8def \u4e0a \u7684 \u969c\u788d \u969c\u788d\u7269 \u800c \u7a81\u7136 \u51cf\u901f \u3002 \u7136\u540e \uff0c \u672c\u8f66 \u9700\u8981 \u7a81\u7136 \u5236\u52a8 \u4ee5 \u907f\u514d \u4e0e \u524d\u8f66 \u53d1\u751f \u78b0\u649e \u3002 \u5b8c\u6574 \u7684 \u811a\u672c \u4ee5\u53ca \u6d89\u53ca \u66f4 \u590d\u6742 \u9053\u8def \u7f51\u7edc \u7684 \u5176\u4ed6 \u793a\u4f8b \u53ef\u4ee5 \u5728 Scenic \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u3002 1 . \u8bbe\u7f6e \u5730\u56fe \u53c2\u6570 \u5e76 \u58f0\u660e \u573a\u666f \u4f7f\u7528 \u7684 \u6a21\u578b \uff1a \u5e94 \u5c06 . xodr \u6587\u4ef6 \u8bbe\u7f6e \u4e3a map \u53c2\u6570 \u6570\u503c \u53c2\u6570\u503c \uff0c \u7a0d\u540e \u5c06 \u4f7f\u7528 \u8be5 \u6587\u4ef6 \u751f\u6210 \u9053\u8def \u7f51\u7edc \u4fe1\u606f \u3002 \u53c2\u6570 carla _ map \u662f \u6307 \u60a8 \u60f3\u8981 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u5df2 \u5b9a\u4e49 \uff0c \u5219 Scenic \u5c06 \u52a0\u8f7d \u5730\u56fe \u7684 \u6240\u6709 \u8d44\u4ea7 \uff08 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u6811\u6728 \u7b49 \uff09 \uff0c \u5982\u679c \u672a\u5b9a \u5b9a\u4e49 \u672a\u5b9a\u4e49 \uff0c \u5219 \u5c06 \u4f7f\u7528 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u3002 \u8be5 \u6a21\u578b \u5305\u62ec \u7279\u5b9a \u4e8e Carla \u4e0a \u8fd0\u884c \u573a\u666f \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9 \u5e94\u8be5 \u5728 \u60a8 \u60f3\u8981 \u5728 Carla \u4e0a \u8fd0\u884c \u7684 \u6240\u6709 \u811a\u672c \u4e2d \u5b9a\u4e49 \u3002 ## SET MAP AND MODEL param map = localPath ( ' .. / .. / .. / tests / formats / opendrive / maps / CARLA / Town01 . xodr ' ) param carla _ map = ' Town01 ' model scenic . simulators . carla . model 2 . \u5b9a\u4e49 \u573a\u666f \u4e2d\u8981 \u4f7f\u7528 \u7684 \u5e38\u91cf \uff1a \u8be5 \u573a\u666f \u6d89\u53ca \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \uff0c \u9886\u5934 \u8f66\u8f86 \u548c \u81ea\u6211 \u8f66\u8f86 \u3002 \u6211\u4eec \u5c06 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \u6a21\u578b \u3001 \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 \u901f\u5ea6 \u3001 \u5236\u52a8 \u8ddd\u79bb \u9608\u503c \u4ee5\u53ca \u5236 \u52a8\u91cf \u3002 ## CONSTANTS EGO _ MODEL = \" vehicle . lincoln . mkz _ 2017 \" EGO _ SPEED = 10 EGO _ BRAKING _ THRESHOLD = 12 LEAD _ CAR _ SPEED = 10 LEADCAR _ BRAKING _ THRESHOLD = 10 BRAKE _ ACTION = 1.0 3 . \u5b9a\u4e49 \u573a\u666f \u884c\u4e3a \uff1a \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Scenic \u884c\u4e3a \u5e93 \u6765 \u6307\u793a \u81ea\u6211 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u4e49 \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u7136\u540e \u5728 \u4e0e \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u76f8\u8ddd \u4e00\u5b9a \u8ddd\u79bb \u65f6 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \u3002 \u9886\u5148 \u7684 \u8f66\u8f86 \u4e5f \u4f1a \u4ee5 \u9884\u5b9a \u7684 \u901f\u5ea6 \u6cbf\u7740 \u8f66\u9053 \u884c\u9a76 \uff0c \u5e76 \u5728 \u8ddd\u79bb \u4efb\u4f55 \u7269\u4f53 \u4e00\u5b9a \u8ddd\u79bb \u5185 \u7d27\u6025 \u5236\u52a8 \u7d27\u6025\u5236\u52a8 \uff1a ## DEFINING BEHAVIORS # EGO BEHAVIOR : Follow lane , and brake after passing a threshold distance to the leading car behavior EgoBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyCars ( self , EGO _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) # LEAD CAR BEHAVIOR : Follow lane , and brake after passing a threshold distance to obstacle behavior LeadingCarBehavior ( speed = 10 ) : try : do FollowLaneBehavior ( speed ) interrupt when withinDistanceToAnyObjs ( self , LEADCAR _ BRAKING _ THRESHOLD ) : take SetBrakeAction ( BRAKE _ ACTION ) 4 . \u751f\u6210 \u8def\u7f51 \uff1a Scenic \u9053\u8def \u5e93 \u7528\u4e8e \u751f\u6210 \u9053\u8def \u7f51\u7edc \u51e0\u4f55 \u5f62\u72b6 \u548c \u4ea4\u901a \u4fe1\u606f \u3002 \u9053\u8def \u7f51\u7edc \u7531 Network \u7c7b \u7684 \u5b9e\u4f8b \u8868\u793a \uff0c \u5e76 \u7531 \u811a\u672c \u5f00\u5934 \u5b9a\u4e49 \u7684 \u6587\u4ef6 \u751f\u6210 \u3002 ## DEFINING SPATIAL RELATIONS # make sure to put ' * ' to uniformly randomly select from all elements of the list , ' lanes ' lane = Uniform ( * network . lanes ) 5 . \u8bbe\u7f6e \u573a\u666f \uff1a \u6211\u4eec \u73b0\u5728 \u5c06 \u5b9a\u4e49 \u8f66\u8f86 \u7684 \u8d77\u59cb \u4f4d\u7f6e \u548c \u7269\u4f53 \u7684 \u653e\u7f6e \u3002 \u5728 \u8f66\u9053 \u4e2d\u95f4 \u653e\u7f6e \u5783\u573e \u5783\u573e\u6876 \uff1a obstacle = Trash on lane . centerline \u5c06 \u9886\u5148 \u8f66\u8f86 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u540e\u65b9 50 \u81f3 30 \u7c73 \uff1a leadCar = Car following roadDirection from obstacle for Range ( - 50 , - 30 ) , with behavior LeadingCarBehavior ( LEAD _ CAR _ SPEED ) \u5c06 \u672c\u8f66 \u4ee5 \u9884\u5b9a \u901f\u5ea6 \u6cbf\u7740 \u9053\u8def \u884c\u9a76 \uff0c \u8ddd\u79bb \u524d \u8f66 15 \u5230 10 \u7c73 \uff1a ego = Car following roadDirection from leadCar for Range ( - 15 , - 10 ) , with blueprint EGO _ MODEL , with behavior EgoBehavior ( EGO _ SPEED ) \u8981\u6c42 \u573a\u666f \u53d1\u751f \u5728 \u8ddd \u8def\u53e3 80 \u7c73 \u4ee5\u4e0a \u7684 \u4f4d\u7f6e \uff1a require ( distance to intersection ) > 80 6 . \u8bbe\u7f6e \u7ed3\u675f \u70b9 \uff0c \u4ee5\u4fbf \u811a\u672c \u77e5\u9053 \u573a\u666f \u4f55\u65f6 \u5b8c\u6210 \uff1a \u5f53 \u81ea\u6211 \u8f66\u8f86 \u7684 \u901f\u5ea6 \u4f4e\u4e8e \u6bcf\u79d2 0.1 \u7c73 \u5e76\u4e14 \u8ddd\u79bb \u969c\u788d \u969c\u788d\u7269 \u4e0d\u5230 30 \u7c73 \u65f6 \uff0c \u8be5 \u573a\u666f \u5c06 \u7ed3\u675f \u3002 terminate when ego . speed < 0.1 and ( distance to obstacle ) < 30","title":"\u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 Scenic \u573a\u666f"},{"location":"tuto_G_scenic/#_2","text":"\u8981 \u8fd0\u884c Scenic \u573a\u666f \uff1a 1 . \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a scenic path / to / scenic / script . scenic -- simulate \u5c06 \u51fa\u73b0 \u4e00\u4e2a pygame \u7a97\u53e3 \uff0c \u5e76\u4e14 \u573a\u666f \u5c06 \u91cd\u590d \u64ad\u653e \uff0c \u6bcf\u6b21 \u90fd \u4f1a \u5728 \u811a\u672c \u4e2d \u8bbe\u7f6e \u7684 \u9650\u5236 \u8303\u56f4 \u5185 \u751f\u6210 \u4e00\u4e2a \u72ec\u7279 \u7684 \u573a\u666f \u3002 \u8981 \u505c\u6b62 \u573a\u666f \u751f\u6210 \uff0c \u8bf7 \u5728 \u7ec8\u7aef \u4e2d \u6309 ctrl + C \u3002","title":"\u8fd0\u884c \u573a\u666f"},{"location":"tuto_G_scenic/#_3","text":"Carla \u6a21\u578b \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u5168\u5c40 \u53c2\u6570 \uff0c \u53ef\u4ee5 \u5728 \u4f7f\u7528 param \u8bed\u53e5 \u6216 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 -- param option \u9009\u9879 \u7684 \u573a\u666f \u4e2d \u8986\u76d6 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u4e0b\u9762 \u662f Carla \u6a21\u578b \u4e2d \u7684 \u53ef \u914d\u7f6e \u53c2\u6570 \u6570\u8868 \u53c2\u6570\u8868 \uff1a \u540d\u79f0 \u503c \u63cf\u8ff0 carla _ map str \u8981 \u4f7f\u7528 \u7684 Carla \u5730\u56fe \u7684 \u540d\u79f0 \uff08 \u4f8b\u5982 \u201c Town01 \u201d \uff09 \u3002 \u5982\u679c \u8bbe\u7f6e \u4e3a None \uff0c Carla \u5c06 \u5c1d\u8bd5 \u4f7f\u7528 map \u53c2\u6570 \u4e2d \u5b9a\u4e49 \u7684 . xodr \u6587\u4ef6 \u5728 OpenDRIVE \u72ec\u7acb \u6a21\u5f0f \u4e0b \u521b\u5efa \u4e16\u754c \u3002 timestep float \u7528\u4e8e \u4eff\u771f \u7684 \u65f6\u95f4 \u6b65\u957f \uff08 Scenic \u4e2d\u65ad Carla \u8fd0\u884c \u884c\u4e3a \u3001 \u68c0\u67e5 \u9700\u6c42 \u7b49 \u7684 \u9891\u7387 \uff09 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 0.1 \u79d2 \u3002 weather str \u6216 dict \u7528\u4e8e \u5929\u6c14 \u7684 \u4eff\u771f \u3002 \u53ef\u4ee5 \u662f \u6807\u8bc6 Carla \u5929\u6c14 \u9884\u8bbe \u4e4b\u4e00 \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \uff08 \u4f8b\u5982 \u201c ClearSunset \u201d \uff09 \uff0c \u4e5f \u53ef\u4ee5 \u662f \u6307\u5b9a \u6240\u6709 \u5929\u6c14 \u53c2\u6570 \u7684 \u5b57\u5178 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u662f \u6240\u6709 \u5929\u6c14 \u9884\u8bbe \u7684 \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u3002 address str \u8fde\u63a5 \u5230 Carla \u7684 IP \u5730\u5740 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a \u672c\u5730 \u4e3b\u673a ( 127.0 . 0.1 ) \u3002 port int \u8fde\u63a5 \u81f3 Carla \u7684 \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 2000 \u3002 timeout float \u5c1d\u8bd5 \u8fde\u63a5 \u5230 Carla \u65f6 \u7b49\u5f85 \u7684 \u6700\u957f \u65f6\u95f4 \uff08 \u4ee5 \u79d2 \u4e3a \u5355\u4f4d \uff09 \u3002 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u4e3a 10 \u3002 render int \u662f\u5426 \u8ba9 Carla \u521b\u5efa \u4e00\u4e2a \u7a97\u53e3 \uff0c \u4ece \u81ea\u6211 \u5ba2\u4f53 \u7684 \u89d2\u5ea6 \u663e\u793a \u4eff\u771f \uff1a 1 \u662f \uff0c 0 \u5426 \u3002 \u9ed8\u8ba4 1 \u3002 record str \u5982\u679c \u975e\u7a7a \uff0c \u5219 \u4fdd\u5b58 \u7528\u4e8e \u91cd \u653e \u4eff\u771f \u7684 Carla \u8bb0\u5f55 \u6587\u4ef6 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002","title":"\u9644\u52a0 \u53c2\u6570"},{"location":"tuto_G_texture_streaming/","text":"\u901a\u8fc7 API \u66f4\u6539 \u7eb9\u7406 Carla API \u53ef \u7528\u4e8e \u5728 \u8fd0\u884c \u65f6 \u4fee\u6539 \u8d44\u6e90 \u7eb9\u7406 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u9009\u62e9 \u8d44\u6e90 \uff0c \u7136\u540e \u5728 Carla \u4eff\u771f \u8fd0\u884c \u65f6 \u4fee\u6539 \u5176 \u7eb9\u7406 \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8d44\u6e90 \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u52a0\u8f7d \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u52a0\u8f7d Carla \u5730\u56fe \uff0c \u6309\u7167 Linux \u6216 Windows \u7684 \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u7136\u540e \u6784\u5efa \u5e76 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8ba9 \u6211\u4eec \u6253\u5f00 \u52a0\u8f7d \u4e86 Town 10 \uff08 \u9ed8\u8ba4 \u57ce\u9547 \uff09 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u7136\u540e \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u6211\u4eec \u9009\u62e9 BP _ Apartment04 _ v05 _ Opt \u8fdb\u884c \u7eb9\u7406 \u64cd\u4f5c \uff0c \u540d\u79f0 \u53ef\u4ee5 \u5728 \u201c \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe ( World Outliner ) \u201d \u9762\u677f \u4e2d \u770b\u5230 \u3002 \u786e\u4fdd \u5c06 \u9f20\u6807 \u60ac\u505c \u9f20\u6807\u60ac\u505c \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \u4e2d \u7684 \u540d\u79f0 \u4e0a \u5e76 \u4f7f\u7528 \u5de5\u5177 \u63d0\u793a \u4e2d \u5b9a\u4e49 \u7684 \u540d\u79f0 \u3002 \u5185\u90e8 \u540d\u79f0 \u53ef\u80fd \u4e0e \u5217\u8868 \u4e2d \u663e\u793a \u7684 \u6807\u9898 \u4e0d\u540c \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5185\u90e8 \u540d\u79f0 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u662f BP _ Apartment04 _ v05 _ Opt _ 2 \u3002 \u5bfc\u51fa \u7eb9\u7406 \u4ee5\u4f9b \u4f7f\u7528 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u7528\u4e8e \u63a7\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u89c2 \u7684 \u7eb9\u7406 \u3002 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u540e \uff0c \u5728 \u201c \u7ec6\u8282 \u201d \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u8d44\u4ea7 \u7684 \u4e00\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u4f4d\u7f6e \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u3002 \u5355\u51fb \u201c StaticMesh \uff08 \u7ee7\u627f \uff09 \u201d \u4ee5 \u6253\u5f00 \u7f51\u683c \u4f53 \u5c5e\u6027 \uff0c \u7136\u540e \u5728 \u9762\u677f \u7684 \u201c \u9759\u6001 \u7f51\u683c \u4f53 \u201d \u90e8\u5206 \u4e2d \u5355\u51fb \u653e\u5927 \u653e\u5927\u955c \u56fe\u6807 \u3002 \u8fd9\u4f1a \u5c06 \u5c5e\u4e8e \u8d44\u6e90 \u7684 \u6750\u8d28 \u548c \u7eb9\u7406 \u7f6e\u4e8e \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u7126\u70b9 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u6211\u4eec \u8981 \u68c0\u67e5 T _ Apartment04 _ D _ Opt \u7eb9\u7406 \u3002 \u5982\u679c \u53cc\u51fb \u7eb9\u7406 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u68c0\u67e5 \u5b83 \uff0c \u4f46\u662f \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u60f3\u8981 \u5bfc\u51fa \u5b83 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u5b83 \u3002 \u5355\u51fb T _ Apartment04 _ D _ Opt \u5e76 \u53f3\u952e \u9009\u62e9 \u8d44\u4ea7 \u64cd\u4f5c > \u5bfc\u51fa \u3002 \u4ee5 \u9002\u5f53 \u7684 \u683c\u5f0f \u4fdd\u5b58 \u6587\u4ef6 \uff08 \u6211\u4eec \u5728 \u8fd9\u91cc \u9009\u62e9 TGA \u683c\u5f0f \uff09 \u3002 \u5728 \u60a8 \u559c\u6b22 \u7684 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u4e2d \u6253\u5f00 \u5bfc\u51fa \u7684 \u7eb9\u7406 \uff0c \u5e76 \u6839\u636e \u9700\u8981 \u7f16\u8f91 \u7eb9\u7406 \u3002 \u5728 \u4e0b\u56fe \u4e2d \uff0c \u4e0a\u534a \u90e8\u5206 \u53ef\u4ee5 \u770b\u5230 \u539f\u59cb \u7eb9\u7406 \uff0c \u4e0b \u534a \u90e8\u5206 \u663e\u793a \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u3002 \u5c06 \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u6253\u5f00 \u4ee3\u7801 \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4e00\u4e9b Python \u6765 \u66f4\u65b0 \u6b63\u5728 \u8fd0\u884c \u7684 Carla \u4eff\u771f \u4e2d \u7684 \u7eb9\u7406 \u3002 \u901a\u8fc7 API \u66f4\u65b0 \u7eb9\u7406 \u5982\u679c \u5c1a\u672a \u542f\u52a8 \uff0c \u8bf7 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u4eff\u771f \uff0c \u6216 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u542f\u52a8 \u4eff\u771f \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 Python \u56fe\u50cf \u5e93 ( PIL ) \u4ece \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u5bfc\u51fa \u7684 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4e2d \u8bfb\u53d6 \u7eb9\u7406 \u3002 \u8fde\u63a5 \u5230 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 import carla from PIL import Image # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 ) \u66f4\u65b0 \u7eb9\u7406 \u52a0\u8f7d \u4fee\u6539 \u540e \u7684 \u56fe\u50cf \u540e \uff0c \u5b9e\u4f8b \u5316 carla . TextureColor \u5bf9\u8c61 \u5e76 \u586b\u5145 \u52a0\u8f7d \u56fe\u50cf \u4e2d \u7684 \u50cf\u7d20 \u6570\u636e \u3002 \u4f7f\u7528 carla . World \u5bf9\u8c61 \u7684 apply _ color _ texture _ to _ object ( ... ) \u65b9\u6cd5 \u6765 \u66f4\u65b0 \u7eb9\u7406 \u3002 \u60a8 \u5e94\u8be5 \u5728 UE4 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u4e2d \u770b\u5230 \u7eb9\u7406 \u66f4\u65b0 \u3002 # Load the modified texture image = Image . open ( ' BP _ Apartment04 _ v05 _ modified . tga ' ) height = image . size [ 1 ] width = image . size [ 0 ] # Instantiate a carla . TextureColor object and populate # the pixels with data from the modified image texture = carla . TextureColor ( width , height ) for x in range ( 0 , width ) : for y in range ( 0 , height ) : color = image . getpixel ( ( x , y ) ) r = int ( color [ 0 ] ) g = int ( color [ 1 ] ) b = int ( color [ 2 ] ) a = 255 texture . set ( x , y , carla . Color ( r , g , b , a ) ) # Now apply the texture to the building asset world . apply _ color _ texture _ to _ object ( ' BP _ Apartment04 _ v05 _ Opt _ 2 ' , carla . MaterialParameter . Diffuse , texture ) \u901a\u8fc7 API \u67e5\u627e \u5bf9\u8c61 \u540d\u79f0 \u8981 \u5728 \u4e0d \u4f9d\u8d56 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u60c5\u51b5 \u4e0b \u67e5\u627e \u5bf9\u8c61 \uff0c \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world . get _ names _ of _ all _ objects ( ) \u67e5\u8be2 \u5bf9\u8c61 \u540d\u79f0 \u3002 \u901a\u8fc7 \u4f7f\u7528 Python \u7684 \u5185\u7f6e filter ( ... ) \u65b9\u6cd5 \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u76ee\u6807 \u5bf9\u8c61 \u5f52\u96f6 \u3002 # Filter world objects for those with ' Apartment ' in the name list ( filter ( lambda k : ' Apartment ' in k , world . get _ names _ of _ all _ objects ( ) ) )","title":"\u901a\u8fc7 API \u66f4\u6539 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#api","text":"Carla API \u53ef \u7528\u4e8e \u5728 \u8fd0\u884c \u65f6 \u4fee\u6539 \u8d44\u6e90 \u7eb9\u7406 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u5b66\u4e60 \u5982\u4f55 \u9009\u62e9 \u8d44\u6e90 \uff0c \u7136\u540e \u5728 Carla \u4eff\u771f \u8fd0\u884c \u65f6 \u4fee\u6539 \u5176 \u7eb9\u7406 \u3002","title":"\u901a\u8fc7 API \u66f4\u6539 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#_1","text":"\u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u52a0\u8f7d \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u52a0\u8f7d Carla \u5730\u56fe \uff0c \u6309\u7167 Linux \u6216 Windows \u7684 \u8bf4\u660e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u7136\u540e \u6784\u5efa \u5e76 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8ba9 \u6211\u4eec \u6253\u5f00 \u52a0\u8f7d \u4e86 Town 10 \uff08 \u9ed8\u8ba4 \u57ce\u9547 \uff09 \u7684 \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u7136\u540e \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u6211\u4eec \u9009\u62e9 BP _ Apartment04 _ v05 _ Opt \u8fdb\u884c \u7eb9\u7406 \u64cd\u4f5c \uff0c \u540d\u79f0 \u53ef\u4ee5 \u5728 \u201c \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe ( World Outliner ) \u201d \u9762\u677f \u4e2d \u770b\u5230 \u3002 \u786e\u4fdd \u5c06 \u9f20\u6807 \u60ac\u505c \u9f20\u6807\u60ac\u505c \u5728 \u4e16\u754c \u5927\u7eb2 \u89c6\u56fe \u4e2d \u7684 \u540d\u79f0 \u4e0a \u5e76 \u4f7f\u7528 \u5de5\u5177 \u63d0\u793a \u4e2d \u5b9a\u4e49 \u7684 \u540d\u79f0 \u3002 \u5185\u90e8 \u540d\u79f0 \u53ef\u80fd \u4e0e \u5217\u8868 \u4e2d \u663e\u793a \u7684 \u6807\u9898 \u4e0d\u540c \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u5185\u90e8 \u540d\u79f0 \u5b9e\u9645 \u5b9e\u9645\u4e0a \u662f BP _ Apartment04 _ v05 _ Opt _ 2 \u3002","title":"\u5728 \u865a\u5e7b \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8d44\u6e90"},{"location":"tuto_G_texture_streaming/#_2","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u7528\u4e8e \u63a7\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u5916\u89c2 \u7684 \u7eb9\u7406 \u3002 \u9009\u62e9 \u5efa\u7b51 \u5efa\u7b51\u7269 \u540e \uff0c \u5728 \u201c \u7ec6\u8282 \u201d \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u8d44\u4ea7 \u7684 \u4e00\u4e9b \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u4f4d\u7f6e \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u3002 \u5355\u51fb \u201c StaticMesh \uff08 \u7ee7\u627f \uff09 \u201d \u4ee5 \u6253\u5f00 \u7f51\u683c \u4f53 \u5c5e\u6027 \uff0c \u7136\u540e \u5728 \u9762\u677f \u7684 \u201c \u9759\u6001 \u7f51\u683c \u4f53 \u201d \u90e8\u5206 \u4e2d \u5355\u51fb \u653e\u5927 \u653e\u5927\u955c \u56fe\u6807 \u3002 \u8fd9\u4f1a \u5c06 \u5c5e\u4e8e \u8d44\u6e90 \u7684 \u6750\u8d28 \u548c \u7eb9\u7406 \u7f6e\u4e8e \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u7126\u70b9 \u3002 \u5728 \u672c\u4f8b \u4e2d \uff0c \u6211\u4eec \u8981 \u68c0\u67e5 T _ Apartment04 _ D _ Opt \u7eb9\u7406 \u3002 \u5982\u679c \u53cc\u51fb \u7eb9\u7406 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u68c0\u67e5 \u5b83 \uff0c \u4f46\u662f \uff0c \u5728 \u672c\u4f8b \u4e2d \u6211\u4eec \u60f3\u8981 \u5bfc\u51fa \u5b83 \uff0c \u4ee5\u4fbf \u6211\u4eec \u53ef\u4ee5 \u4fee\u6539 \u5b83 \u3002 \u5355\u51fb T _ Apartment04 _ D _ Opt \u5e76 \u53f3\u952e \u9009\u62e9 \u8d44\u4ea7 \u64cd\u4f5c > \u5bfc\u51fa \u3002 \u4ee5 \u9002\u5f53 \u7684 \u683c\u5f0f \u4fdd\u5b58 \u6587\u4ef6 \uff08 \u6211\u4eec \u5728 \u8fd9\u91cc \u9009\u62e9 TGA \u683c\u5f0f \uff09 \u3002 \u5728 \u60a8 \u559c\u6b22 \u7684 \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u4e2d \u6253\u5f00 \u5bfc\u51fa \u7684 \u7eb9\u7406 \uff0c \u5e76 \u6839\u636e \u9700\u8981 \u7f16\u8f91 \u7eb9\u7406 \u3002 \u5728 \u4e0b\u56fe \u4e2d \uff0c \u4e0a\u534a \u90e8\u5206 \u53ef\u4ee5 \u770b\u5230 \u539f\u59cb \u7eb9\u7406 \uff0c \u4e0b \u534a \u90e8\u5206 \u663e\u793a \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u3002 \u5c06 \u4fee\u6539 \u540e \u7684 \u7eb9\u7406 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \uff0c \u7136\u540e \u6253\u5f00 \u4ee3\u7801 \u7f16\u8f91 \u7f16\u8f91\u5668 \u8fd0\u884c \u4e00\u4e9b Python \u6765 \u66f4\u65b0 \u6b63\u5728 \u8fd0\u884c \u7684 Carla \u4eff\u771f \u4e2d \u7684 \u7eb9\u7406 \u3002","title":"\u5bfc\u51fa \u7eb9\u7406 \u4ee5\u4f9b \u4f7f\u7528"},{"location":"tuto_G_texture_streaming/#api_1","text":"\u5982\u679c \u5c1a\u672a \u542f\u52a8 \uff0c \u8bf7 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u4eff\u771f \uff0c \u6216 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u542f\u52a8 \u4eff\u771f \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 Python \u56fe\u50cf \u5e93 ( PIL ) \u4ece \u56fe\u50cf \u5904\u7406 \u56fe\u50cf\u5904\u7406 \u8f6f\u4ef6 \u5bfc\u51fa \u7684 \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4e2d \u8bfb\u53d6 \u7eb9\u7406 \u3002","title":"\u901a\u8fc7 API \u66f4\u65b0 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#_3","text":"import carla from PIL import Image # Connect to client client = carla . Client ( ' 127.0 . 0.1 ' , 2000 ) client . set _ timeout ( 2.0 )","title":"\u8fde\u63a5 \u5230 \u4eff\u771f\u5668"},{"location":"tuto_G_texture_streaming/#_4","text":"\u52a0\u8f7d \u4fee\u6539 \u540e \u7684 \u56fe\u50cf \u540e \uff0c \u5b9e\u4f8b \u5316 carla . TextureColor \u5bf9\u8c61 \u5e76 \u586b\u5145 \u52a0\u8f7d \u56fe\u50cf \u4e2d \u7684 \u50cf\u7d20 \u6570\u636e \u3002 \u4f7f\u7528 carla . World \u5bf9\u8c61 \u7684 apply _ color _ texture _ to _ object ( ... ) \u65b9\u6cd5 \u6765 \u66f4\u65b0 \u7eb9\u7406 \u3002 \u60a8 \u5e94\u8be5 \u5728 UE4 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u4e2d \u770b\u5230 \u7eb9\u7406 \u66f4\u65b0 \u3002 # Load the modified texture image = Image . open ( ' BP _ Apartment04 _ v05 _ modified . tga ' ) height = image . size [ 1 ] width = image . size [ 0 ] # Instantiate a carla . TextureColor object and populate # the pixels with data from the modified image texture = carla . TextureColor ( width , height ) for x in range ( 0 , width ) : for y in range ( 0 , height ) : color = image . getpixel ( ( x , y ) ) r = int ( color [ 0 ] ) g = int ( color [ 1 ] ) b = int ( color [ 2 ] ) a = 255 texture . set ( x , y , carla . Color ( r , g , b , a ) ) # Now apply the texture to the building asset world . apply _ color _ texture _ to _ object ( ' BP _ Apartment04 _ v05 _ Opt _ 2 ' , carla . MaterialParameter . Diffuse , texture )","title":"\u66f4\u65b0 \u7eb9\u7406"},{"location":"tuto_G_texture_streaming/#api_2","text":"\u8981 \u5728 \u4e0d \u4f9d\u8d56 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u60c5\u51b5 \u4e0b \u67e5\u627e \u5bf9\u8c61 \uff0c \u60a8 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world . get _ names _ of _ all _ objects ( ) \u67e5\u8be2 \u5bf9\u8c61 \u540d\u79f0 \u3002 \u901a\u8fc7 \u4f7f\u7528 Python \u7684 \u5185\u7f6e filter ( ... ) \u65b9\u6cd5 \uff0c \u60a8 \u53ef\u4ee5 \u5c06 \u76ee\u6807 \u5bf9\u8c61 \u5f52\u96f6 \u3002 # Filter world objects for those with ' Apartment ' in the name list ( filter ( lambda k : ' Apartment ' in k , world . get _ names _ of _ all _ objects ( ) ) )","title":"\u901a\u8fc7 API \u67e5\u627e \u5bf9\u8c61 \u540d\u79f0"},{"location":"tuto_G_traffic_light/","text":"\u4ea4\u901a \u4ea4\u901a\u706f \u914d\u7f6e \u548c \u4f7f\u7528 \uff08 get _ traffic _ light \uff09 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 Carla \u4e2d \u7684 \u7b80\u5355 \u914d\u7f6e \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8fdb\u884c \u4f4d\u7f6e \u8c03\u6574 \u3002 \u4e0e \u4ea4\u901a \u4ea4\u901a\u706f \u76f8\u8fde \u8fde\u63a5 \u76f8\u8fde\u63a5 \u7684 \u6709 \u4e00\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7ec4\u4ef6 \uff0c \u901a\u8fc7 \u62d6 \u5230 \u8fd9\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7684 \u4f4d\u7f6e \u548c \u6539\u53d8 \u957f\u5ea6 \u6765 \u51b3\u5b9a \u5bf9\u5e94 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5206\u914d \u7ed9 \u8def\u53e3 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \uff1a \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u9009\u62e9 BP _ TrafficLightGroup \u62d6\u52a8 \u5230 \u8def\u53e3 \uff0c \u5e76 \u5728 \u8be5 \u5bf9\u8c61 \u7684 \u7ec6\u8282 \u9762\u677f \u4e0b \u627e\u5230 Traffic Light \uff0c \u5c06 \u9700\u8981 \u6dfb\u52a0 \u5230 \u8be5 \u8def\u53e3 \u7ec4 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u3002 \u53c2\u8003 \u94fe\u63a5 \uff1a \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe - \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6587\u6863 ( openhutb . github . io ) \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u90e8\u5206 \u4f7f\u7528 python \u811a\u672c \u7b80\u5355 \u4f7f\u7528 \u4ea4\u901a \u4ea4\u901a\u706f \u521b\u5efa \u4e0e carla \u7684 \u8fde\u63a5 client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) # \u8bbe\u7f6e \u8d85\u65f6 world = client . get _ world ( ) # \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) \u83b7\u53d6 \u573a\u666f \u4e2d \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u5bf9\u8c61 traffic _ lights = world . get _ actors ( ) . filter ( ' traffic . traffic _ light ' ) 1 \u3001 \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f def get _ light _ location ( world , traffic _ lights ) : # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 traffic _ lights _ location = { } for traffic _ light in traffic _ lights : location = traffic _ light . get _ location ( ) # status = traffic _ light . get _ state ( ) position = ( location . x , location . y , location . z ) # status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # traffic _ lights _ data [ traffic _ light . id ] = { ' position ' : position , ' status ' : status _ str } traffic _ lights _ location [ traffic _ light . id ] = { ' position ' : position } # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 carla \u4e2d \u6807\u793a \u51fa\u6765 \uff0c \u4ee5 traffic _ light . id world . debug . draw _ string ( location , str ( traffic _ light . id ) , life _ time = 6000 , color = carla . Color ( 255 , 0 , 0 ) ) return traffic _ lights _ location print ( traffic _ lights _ location ) 2 \u3001 \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u914d\u65f6 \u65b9\u6848 def get _ light _ time ( traffic _ lights ) : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u65f6 \u4fe1\u606f # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 \uff0c \u7528\u4e8e \u5b58\u50a8 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f traffic _ lights _ time = { } # \u904d\u5386 \u6240\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f for traffic _ light in traffic _ lights : # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u72b6\u6001 status = traffic _ light . get _ state ( ) status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f \u6dfb\u52a0 \u5230 \u5b57\u5178 \u4e2d traffic _ lights _ time [ traffic _ light _ id ] = { ' status ' : status _ str , ' red _ time ' : red _ time , ' green _ time ' : green _ time , ' yellow _ time ' : yellow _ time } print ( traffic _ lights _ time ) return traffic _ lights _ time 3 \u3001 \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 def change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world ) : # \u904d\u5386 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u627e\u5230 \u5bf9\u5e94 \u8def\u706f for traffic _ light in traffic _ lights : if traffic _ light . id = = traffic _ light _ id : # \u5c55\u793a \u539f\u59cb \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 redtime = traffic _ light . get _ red _ time ( ) greentime = traffic _ light . get _ green _ time ( ) yellowtime = traffic _ light . get _ yellow _ time ( ) print ( \" \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , redtime , yellowtime , greentime ) ) # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f traffic _ light . set _ red _ time ( float ( red _ time ) ) traffic _ light . set _ yellow _ time ( float ( yellow _ time ) ) traffic _ light . set _ green _ time ( float ( green _ time ) ) print ( \" \u5df2 \u4fee\u6539 \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , red _ time , yellow _ time , green _ time ) ) world . tick ( ) # \u66f4\u65b0 Carla \u4e16\u754c \u7684 \u72b6\u6001 \uff0c \u4f7f\u5f97 \u4fee\u6539 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65b9\u6848 \u7acb\u5373 \u751f\u6548 \u3002 4 \u3001 \u6839\u636e \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8c03\u6574 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 4.1 \u3001 \u83b7\u53d6 \u6307\u5b9a \u8def\u53e3 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf def get _ traffic _ flow ( world ) : # \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 , \u5b58\u50a8 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f # vehicle _ positions = { } # \u521b\u5efa \u4e24\u4e2a \u7a7a \u5217\u8868 \uff0c \u7528\u4e8e \u5b58\u50a8 \u65f6\u523b \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e # timestamps = [ ] traffic _ flow = [ ] # \u5faa\u73af \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 \u5e76 \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf for t in range ( 1000 ) : # \u5047\u8bbe \u4eff\u771f 1000 \u4e2a \u65f6\u95f4 \u6b65 # \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 world . tick ( ) # \u91cd\u7f6e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8ba1\u6570 count = 0 # \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 for vehicle in vehicle _ list : # \u83b7\u53d6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z # \u6682\u65f6 \u91c7\u7528 xmin , xmax , ymin , ymax \u6765 \u6307\u5b9a \u533a\u57df \u8def\u53e3 if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 # vehicle _ positions [ vehicle . id ] = ( x , y , z ) # \u5c06 \u65f6\u95f4 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u6dfb\u52a0 \u5230 \u76f8\u5e94 \u7684 \u5217\u8868 \u4e2d # timestamps . append ( t ) traffic _ flow . append ( count ) # \u91c7\u7528 1000 \u4e2a \u65f6\u95f4 \u6b65 \u7684 \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u7684 \u5747\u503c \u4f5c\u4e3a \u8fd9 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf return int ( np . mean ( traffic _ flow ) ) 4.2 \u3001 \u8c03\u6574 \u914d\u65f6 \u65b9\u6848 def traffic _ signal ( traffic _ lights , traffic _ flow , world ) : # \u6839\u636e \u8def\u53e3 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u53bb \u4f18\u5316 \u8def\u53e3 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 \u7b80\u5355 \u793a\u4f8b # \u8be5 \u793a\u4f8b \u4e2d \u8bbe\u7f6e \u7684 \u8f66\u8f86 \u603b\u6570 \u4e3a 70 \u8f86 \uff0c \u5206\u4e3a \u9ad8 \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf > 7 , \u4e2d \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 \u5728 4 \u2014 7 \uff0c \u4f4e \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 < 4 print ( ' \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u4e3a { } ' . format ( traffic _ flow ) ) # \u904d\u5386 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f for traffic _ light in traffic _ lights : # \u83b7\u5f97 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f location = traffic _ light . get _ location ( ) # \u627e\u5230 \u4f4d\u4e8e \u8be5 \u8def\u53e3 \u8303\u56f4 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f if location . x > = xmin and location . x < = xmax and location . y > = ymin and location . y < = ymax : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u6839\u636e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f if traffic _ flow < = 4 : # \u4f4e \u6d41\u91cf \uff0c \u589e\u52a0 \u7ea2\u706f \u706f \u65f6\u95f4 red _ time = red _ time + 5 elif traffic _ flow > 4 and traffic _ flow < 7 : # \u4e2d\u7b49 \u6d41\u91cf \uff0c \u5e73\u8861 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f red _ time = red _ time + 3 yellow _ time = yellow _ time + 2 green _ time = green _ time + 2 else : # \u9ad8 \u6d41\u91cf \uff0c \u589e\u52a0 \u7eff\u706f \u65f6\u95f4 red _ time = red _ time + 1 yellow _ time = yellow _ time + 1 green _ time = green _ time + 5 # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world )","title":"\u4ea4\u901a\u706f \u7684 \u914d\u7f6e \u548c \u4f7f\u7528"},{"location":"tuto_G_traffic_light/#get_traffic_light","text":"","title":"\u4ea4\u901a\u706f \u914d\u7f6e \u548c \u4f7f\u7528 \uff08 get _ traffic _ light \uff09"},{"location":"tuto_G_traffic_light/#carla","text":"\u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8fdb\u884c \u4f4d\u7f6e \u8c03\u6574 \u3002 \u4e0e \u4ea4\u901a \u4ea4\u901a\u706f \u76f8\u8fde \u8fde\u63a5 \u76f8\u8fde\u63a5 \u7684 \u6709 \u4e00\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7ec4\u4ef6 \uff0c \u901a\u8fc7 \u62d6 \u5230 \u8fd9\u4e2a \u7acb\u65b9 \u7acb\u65b9\u4f53 \u7684 \u4f4d\u7f6e \u548c \u6539\u53d8 \u957f\u5ea6 \u6765 \u51b3\u5b9a \u5bf9\u5e94 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5206\u914d \u7ed9 \u8def\u53e3 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \uff1a \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u9009\u62e9 Carla > Static > TrafficLight > StreetLights _ 01 \u4e0b \u9009\u62e9 BP _ TrafficLightGroup \u62d6\u52a8 \u5230 \u8def\u53e3 \uff0c \u5e76 \u5728 \u8be5 \u5bf9\u8c61 \u7684 \u7ec6\u8282 \u9762\u677f \u4e0b \u627e\u5230 Traffic Light \uff0c \u5c06 \u9700\u8981 \u6dfb\u52a0 \u5230 \u8be5 \u8def\u53e3 \u7ec4 \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u8bbe\u7f6e \u3002 \u53c2\u8003 \u94fe\u63a5 \uff1a \u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe - \u4ea4\u901a \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6587\u6863 ( openhutb . github . io ) \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u90e8\u5206","title":"\u4ea4\u901a\u706f \u5728 Carla \u4e2d \u7684 \u7b80\u5355 \u914d\u7f6e"},{"location":"tuto_G_traffic_light/#python","text":"","title":"\u4f7f\u7528 python \u811a\u672c \u7b80\u5355 \u4f7f\u7528 \u4ea4\u901a\u706f"},{"location":"tuto_G_traffic_light/#carla_1","text":"client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) # \u8bbe\u7f6e \u8d85\u65f6 world = client . get _ world ( ) # \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings )","title":"\u521b\u5efa \u4e0e carla \u7684 \u8fde\u63a5"},{"location":"tuto_G_traffic_light/#_1","text":"traffic _ lights = world . get _ actors ( ) . filter ( ' traffic . traffic _ light ' )","title":"\u83b7\u53d6 \u573a\u666f \u4e2d \u7684 \u7ea2\u7eff\u706f \u5bf9\u8c61"},{"location":"tuto_G_traffic_light/#1","text":"def get _ light _ location ( world , traffic _ lights ) : # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 traffic _ lights _ location = { } for traffic _ light in traffic _ lights : location = traffic _ light . get _ location ( ) # status = traffic _ light . get _ state ( ) position = ( location . x , location . y , location . z ) # status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # traffic _ lights _ data [ traffic _ light . id ] = { ' position ' : position , ' status ' : status _ str } traffic _ lights _ location [ traffic _ light . id ] = { ' position ' : position } # \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u5728 carla \u4e2d \u6807\u793a \u51fa\u6765 \uff0c \u4ee5 traffic _ light . id world . debug . draw _ string ( location , str ( traffic _ light . id ) , life _ time = 6000 , color = carla . Color ( 255 , 0 , 0 ) ) return traffic _ lights _ location print ( traffic _ lights _ location )","title":"1 \u3001 \u83b7\u53d6 \u7ea2\u7eff\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f"},{"location":"tuto_G_traffic_light/#2","text":"def get _ light _ time ( traffic _ lights ) : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u914d\u65f6 \u4fe1\u606f # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 \uff0c \u7528\u4e8e \u5b58\u50a8 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f traffic _ lights _ time = { } # \u904d\u5386 \u6240\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f for traffic _ light in traffic _ lights : # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u72b6\u6001 status = traffic _ light . get _ state ( ) status _ str = str ( status ) . split ( ' . ' ) [ - 1 ] # \u83b7\u53d6 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6\u95f4 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4fe1\u606f \u6dfb\u52a0 \u5230 \u5b57\u5178 \u4e2d traffic _ lights _ time [ traffic _ light _ id ] = { ' status ' : status _ str , ' red _ time ' : red _ time , ' green _ time ' : green _ time , ' yellow _ time ' : yellow _ time } print ( traffic _ lights _ time ) return traffic _ lights _ time","title":"2 \u3001 \u83b7\u53d6 \u7ea2\u7eff\u706f \u7684 \u5f53\u524d \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_light/#3","text":"def change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world ) : # \u904d\u5386 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u627e\u5230 \u5bf9\u5e94 \u8def\u706f for traffic _ light in traffic _ lights : if traffic _ light . id = = traffic _ light _ id : # \u5c55\u793a \u539f\u59cb \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 redtime = traffic _ light . get _ red _ time ( ) greentime = traffic _ light . get _ green _ time ( ) yellowtime = traffic _ light . get _ yellow _ time ( ) print ( \" \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , redtime , yellowtime , greentime ) ) # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f traffic _ light . set _ red _ time ( float ( red _ time ) ) traffic _ light . set _ yellow _ time ( float ( yellow _ time ) ) traffic _ light . set _ green _ time ( float ( green _ time ) ) print ( \" \u5df2 \u4fee\u6539 \u7f16\u53f7 \u4e3a { } \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u7ea2\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u9ec4\u706f \u65f6\u95f4 \u4e3a { } \uff0c \u7eff\u706f \u65f6\u95f4 \u4e3a { } \" . format ( traffic _ light _ id , red _ time , yellow _ time , green _ time ) ) world . tick ( ) # \u66f4\u65b0 Carla \u4e16\u754c \u7684 \u72b6\u6001 \uff0c \u4f7f\u5f97 \u4fee\u6539 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65b9\u6848 \u7acb\u5373 \u751f\u6548 \u3002","title":"3 \u3001 \u4fee\u6539 \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_light/#4","text":"","title":"4 \u3001 \u6839\u636e \u8def\u53e3 \u8f66\u6d41\u91cf \u8c03\u6574 \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_light/#41","text":"def get _ traffic _ flow ( world ) : # \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) # \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 \u5b57\u5178 , \u5b58\u50a8 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f # vehicle _ positions = { } # \u521b\u5efa \u4e24\u4e2a \u7a7a \u5217\u8868 \uff0c \u7528\u4e8e \u5b58\u50a8 \u65f6\u523b \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e # timestamps = [ ] traffic _ flow = [ ] # \u5faa\u73af \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 \u5e76 \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf for t in range ( 1000 ) : # \u5047\u8bbe \u4eff\u771f 1000 \u4e2a \u65f6\u95f4 \u6b65 # \u63a8\u8fdb \u4eff\u771f \u65f6\u95f4 world . tick ( ) # \u91cd\u7f6e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8ba1\u6570 count = 0 # \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 for vehicle in vehicle _ list : # \u83b7\u53d6 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z # \u6682\u65f6 \u91c7\u7528 xmin , xmax , ymin , ymax \u6765 \u6307\u5b9a \u533a\u57df \u8def\u53e3 if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 # vehicle _ positions [ vehicle . id ] = ( x , y , z ) # \u5c06 \u65f6\u95f4 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u6dfb\u52a0 \u5230 \u76f8\u5e94 \u7684 \u5217\u8868 \u4e2d # timestamps . append ( t ) traffic _ flow . append ( count ) # \u91c7\u7528 1000 \u4e2a \u65f6\u95f4 \u6b65 \u7684 \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u7684 \u5747\u503c \u4f5c\u4e3a \u8fd9 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf return int ( np . mean ( traffic _ flow ) )","title":"4.1 \u3001 \u83b7\u53d6 \u6307\u5b9a \u8def\u53e3 \u7684 \u8f66\u6d41\u91cf"},{"location":"tuto_G_traffic_light/#42","text":"def traffic _ signal ( traffic _ lights , traffic _ flow , world ) : # \u6839\u636e \u8def\u53e3 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u53bb \u4f18\u5316 \u8def\u53e3 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 \u7b80\u5355 \u793a\u4f8b # \u8be5 \u793a\u4f8b \u4e2d \u8bbe\u7f6e \u7684 \u8f66\u8f86 \u603b\u6570 \u4e3a 70 \u8f86 \uff0c \u5206\u4e3a \u9ad8 \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf > 7 , \u4e2d \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 \u5728 4 \u2014 7 \uff0c \u4f4e \u6d41\u91cf \uff1a \u8def\u53e3 \u8f66\u8f86 < 4 print ( ' \u8def\u53e3 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u4e3a { } ' . format ( traffic _ flow ) ) # \u904d\u5386 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f for traffic _ light in traffic _ lights : # \u83b7\u5f97 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u4f4d\u7f6e \u4fe1\u606f location = traffic _ light . get _ location ( ) # \u627e\u5230 \u4f4d\u4e8e \u8be5 \u8def\u53e3 \u8303\u56f4 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f if location . x > = xmin and location . x < = xmax and location . y > = ymin and location . y < = ymax : # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f ID traffic _ light _ id = traffic _ light . id # \u83b7\u53d6 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u914d\u65f6 \u65b9\u6848 red _ time = traffic _ light . get _ red _ time ( ) green _ time = traffic _ light . get _ green _ time ( ) yellow _ time = traffic _ light . get _ yellow _ time ( ) # \u6839\u636e \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u8c03\u6574 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f if traffic _ flow < = 4 : # \u4f4e \u6d41\u91cf \uff0c \u589e\u52a0 \u7ea2\u706f \u706f \u65f6\u95f4 red _ time = red _ time + 5 elif traffic _ flow > 4 and traffic _ flow < 7 : # \u4e2d\u7b49 \u6d41\u91cf \uff0c \u5e73\u8861 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u65f6 \u957f red _ time = red _ time + 3 yellow _ time = yellow _ time + 2 green _ time = green _ time + 2 else : # \u9ad8 \u6d41\u91cf \uff0c \u589e\u52a0 \u7eff\u706f \u65f6\u95f4 red _ time = red _ time + 1 yellow _ time = yellow _ time + 1 green _ time = green _ time + 5 # \u4fee\u6539 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u914d\u65f6 \u65b9\u6848 change _ light _ time ( traffic _ lights , traffic _ light _ id , red _ time , yellow _ time , green _ time , world )","title":"4.2 \u3001 \u8c03\u6574 \u914d\u65f6 \u65b9\u6848"},{"location":"tuto_G_traffic_manager/","text":"\u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5f53 \u6211\u4eec \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u65f6 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5fc5\u987b \u5e94\u5bf9 \u7684 \u5173\u952e \u6311\u6218 \u4e4b\u4e00 \u662f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u9664\u4e86 \u8bc6\u522b \u548c \u5bfc\u822a \u9053\u8def \u7f51\u7edc \u62d3\u6251 \u7f51\u7edc\u62d3\u6251 \u4ee5\u53ca \u7ef4\u62a4 \u8f66\u9053 \u89c4\u5219 \u7684 \u4efb\u52a1 \u4e4b\u5916 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8fd8 \u5fc5\u987b \u8bc6\u522b \u5176\u4ed6 \u8f66\u8f86 \u5e76 \u9884\u6d4b \u5bf9 \u5176 \u8ba1\u5212 \u884c\u52a8 \u65b9\u6848 \u7684 \u5f71\u54cd \u3002 Carla \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u80fd\u591f \u7ba1\u7406 \u901a\u8fc7 \u4eff\u771f \u5bfc\u822a \u7684 \u8f66\u8f86 \u7fa4 \uff0c \u5e76 \u4e3a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u8f66\u8f86 \uff08 \u5373 \u6211\u4eec \u6b63\u5728 \u8bad\u7ec3 \u6216 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff09 \u8bbe\u7f6e \u969c\u788d \u8bbe\u7f6e\u969c\u788d \u548c \u6311\u6218 \u3002 \u5728 Carla \u6587\u732e \u4e2d \uff0c \u6211\u4eec \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u4ee5\u793a \u533a\u522b \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7ba1\u7406 \u5730\u56fe \u5185\u975e \u73a9\u5bb6 \u89d2\u8272 \u8f66\u8f86 \u7684 \u884c\u4e3a \u548c \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \uff0c \u7528 \u8f66\u8f86 \u586b\u5145 \u4eff\u771f \uff0c \u5176 \u884c\u4e3a \u4e0e \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u5728 \u771f\u5b9e \u9053\u8def \u7f51\u7edc \u4e0a \u7684 \u884c\u4e3a \u76f8\u540c \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e00\u4e9b \u529f\u80fd \u4ee5\u53ca \u5982\u4f55 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u5b83 \u6765 \u521b\u5efa \u548c \u63a7\u5236 \u975e \u73a9\u5bb6 \u89d2\u8272 \u3002 \u8bbe\u7f6e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u5e76 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( ) \u751f\u6210 \u8f66\u8f86 \u5f53 \u6211\u4eec \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u65f6 \uff0c \u5b83\u4eec \u9700\u8981 \u4e00\u4e2a \u751f\u6210 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5df1 \u9009\u62e9 \u7684 \u5730\u56fe \u5750\u6807 \u81ea\u884c \u5b9a\u4e49 \u8fd9\u4e9b \u3002 \u7136\u800c \uff0c \u4e3a\u4e86 \u89e3\u51b3 \u8fd9\u4e2a \u95ee\u9898 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u6709 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u9053\u8def \u7f51\u7edc \u4e2d \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u751f\u6210 \u70b9\u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u529f\u80fd \u6765 \u67e5\u770b \u751f\u6210 \u70b9 \u5728 \u54ea\u91cc \u3002 \u8fd0\u884c \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u7136\u540e \u98de\u8fc7 \u5730\u56fe \u5e76 \u68c0\u67e5 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u5f53 \u6211\u4eec \u60f3\u8981 \u9009\u62e9 \u66f4 \u5177\u4f53 \u7684 \u70b9 \u7528\u4e8e \u751f\u6210 \u6216 \u5f15\u5bfc \u8f66\u8f86 \u65f6 \uff0c \u8fd9\u4f1a \u7528\u573a \u6d3e\u4e0a\u7528\u573a \u3002 # \u5728 \u5730\u56fe \u4e0a\u4ee5 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u6765 \u98de\u884c \u89c2\u5bdf \u5219 \u4f1a while True : world . tick ( ) \u73b0\u5728 \u8ba9 \u6211\u4eec \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 # \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u4e00\u4e9b \u6a21\u578b models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u6700\u5927 \u6570\u76ee \u5e76 \u51c6\u5907 \u6211\u4eec \u751f\u6210 \u7684 \u4e00\u4e2a \u5217\u8868 max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # \u5bf9 \u751f\u6210 \u70b9 \u8fdb\u884c \u968f\u673a \u91c7\u6837 \u5e76 \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # \u8fd0\u884c \u4eff\u771f \u4ee5\u4fbf \u6211\u4eec \u80fd \u67e5\u770b \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u7ed3\u679c while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u9759\u6b62 \u7684 \u8f66\u8f86 \u5360\u636e \u5730\u56fe \u4e2d \u7684 \u9053\u8def \u3002 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u8f66\u8f86 \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u6211\u4eec \u7684 \u8f66\u8f86 \u5e76 \u8ba9 \u4eff\u771f \u8fd0\u884c \u3002 \u4e00\u65e6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e86 \u8f66\u8f86 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u5728 \u9053\u8def \u4e0a \u81ea\u4e3b \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u7f51\u7edc \u7684 \u7279\u5f81 \uff0c \u5982 \u8f66\u9053 \u548c \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u5e76 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u8bb8\u591a \u529f\u80fd \uff0c \u5141\u8bb8 \u4fee\u6539 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u7279\u5b9a \u884c\u4e3a \u3002 \u5728 \u4e0b\u9762 \u7684 \u4f8b\u5b50 \u4e2d \uff0c \u6211\u4eec \u4e3a \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8bbe\u7f6e \u4e86 \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u968f\u673a \u6982\u7387 \uff0c \u56e0\u6b64 \u6709\u4e9b \u8f66\u8f86 \u4f1a \u503e\u5411 \u4e8e \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u800c \u53e6 \u4e00\u4e9b \u8f66\u8f86 \u5219 \u4f1a \u9075\u5b88 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u53c2\u8003 \u3002 # \u89e3\u6790 \u6240 \u751f\u6210 \u8f66\u8f86 \u7684 \u5217\u8868 \u5e76 \u901a\u8fc7 set _ autopilot ( ) \u5c06 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) ) while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5c06 \u770b\u5230 \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u81ea\u52a8 \u884c\u9a76 \u3002 \u6307\u5b9a \u8f66\u8f86 \u884c\u9a76 \u8def\u7ebf \u884c\u9a76\u8def\u7ebf \u5728 \u524d\u9762 \u7684 \u6b65\u9aa4 \u4e2d \uff0c \u6211\u4eec \u4e86\u89e3 \u4e86 \u5982\u4f55 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u4e00\u7ec4 \u8f66\u8f86 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u4ee5 \u521b\u5efa \u4e00\u4e2a \u5145\u6ee1 \u79fb\u52a8 \u4ea4\u901a \u7684 \u7e41\u5fd9 \u57ce\u9547 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u66f4 \u6df1\u5165 \u7684 \u529f\u80fd \uff0c \u53ef\u4ee5 \u66f4 \u7d27\u5bc6 \u5730 \u63a7\u5236 \u8f66\u8f86 \u7684 \u884c\u4e3a \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u4f7f\u7528 traffic _ manager . set _ path ( ) \u529f\u80fd \u5f15\u5bfc \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u6cbf\u7740 \u7279\u5b9a \u8def\u5f84 \u884c\u9a76 \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u6c47\u805a \u5e76 \u9020\u6210 \u62e5\u5835 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 \u4e00\u4e9b \u8def\u5f84 \u70b9\u6765 \u6784\u5efa \u6211\u4eec \u7684 \u8def\u5f84 \u3002 \u751f\u6210 \u70b9 \u662f \u65b9\u4fbf \u7684 \u8def\u5f84 \u70b9 \uff0c \u4e0e \u4e4b\u524d \u4e00\u6837 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u5de5\u5177 \u5728 \u5730\u56fe \u4e0a \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u901a\u8fc7 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u6211\u4eec \u53ef\u4ee5 \u9009\u62e9 \u8981 \u7528\u4e8e \u8def\u5f84 \u7684 \u751f\u6210 \u70b9 \u7684 \u7d22\u5f15 \u3002 \u8be5 \u51fd\u6570 \u4f7f\u7528 \u6307\u5b9a \u4e3a carla . Locations \u7684 \u5750\u6807 \u5217\u8868 \u3002 # \u5728 \u5730\u56fe \u4e0a \u4f7f\u7528 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u4f7f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u98de\u8fc7 \u573a\u666f while True : world . tick ( ) \u6211\u4eec \u9009\u62e9 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9\u6765 \u57ce\u9547 \u5728\u57ce\u9547 \u5185 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u4ece\u800c \u9020\u6210 \u62e5\u5835 \uff0c \u8fd9 \u53ef\u80fd \u662f \u5411 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5c55\u793a \u7684 \u4e00\u4e2a \u6709\u8da3 \u7684 \u573a\u666f \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u8def\u7ebf 1 spawn _ point _ 1 = spawn _ points [ 32 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 1 route _ 1 _ indices = [ 129 , 28 , 124 , 33 , 97 , 119 , 58 , 154 , 147 ] route _ 1 = [ ] for ind in route _ 1 _ indices : route _ 1 . append ( spawn _ points [ ind ] . location ) # \u8def\u7ebf 2 spawn _ point _ 2 = spawn _ points [ 149 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 2 route _ 2 _ indices = [ 21 , 76 , 38 , 34 , 90 , 3 ] route _ 2 = [ ] for ind in route _ 2 _ indices : route _ 2 . append ( spawn _ points [ ind ] . location ) # \u73b0\u5728 \u8ba9 \u6211\u4eec \u5728 \u5730\u56fe \u4e0a \u6253\u5370 \u51fa \u5b83\u4eec \uff0c \u4ee5\u4fbf \u6211\u4eec \u80fd \u770b\u5230 \u6211\u4eec \u7684 \u8def\u5f84 world . debug . draw _ string ( spawn _ point _ 1 . location , ' Spawn point 1 ' , life _ time = 30 , color = carla . Color ( 255 , 0 , 0 ) ) world . debug . draw _ string ( spawn _ point _ 2 . location , ' Spawn point 2 ' , life _ time = 30 , color = carla . Color ( 0 , 0 , 255 ) ) for ind in route _ 1 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 255 , 0 , 0 ) ) for ind in route _ 2 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 0 , 0 , 255 ) ) while True : world . tick ( ) \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9 \uff0c \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u751f\u6210 \u4ea4\u901a \u5e76 \u5c06 \u751f\u6210 \u7684 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u9075\u5faa \u6211\u4eec \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 # \u5728 \u751f\u6210 \u65f6\u95f4 \u4e4b\u95f4 \u8bbe\u7f6e \u5ef6\u8fdf \u4ee5 \u521b\u5efa \u7a7a\u9699 spawn _ delay = 20 counter = spawn _ delay # \u8bbe\u7f6e \u6700\u5927 \u8f66\u8f86 \uff08 \u4e3a \u66f4 \u4f4e \u7684 \u786c\u4ef6 \u8bbe\u7f6e \u66f4 \u5c0f \u7684 \u503c \uff09 max _ vehicles = 200 # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 alt = False spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) while True : world . tick ( ) n _ vehicles = len ( world . get _ actors ( ) . filter ( ' * vehicle * ' ) ) vehicle _ bp = random . choice ( blueprints ) # \u4ec5 \u5728 \u5ef6\u8fdf \u4e4b\u540e \u751f\u6210 \u8f66\u8f86 if counter = = spawn _ delay and n _ vehicles < max _ vehicles : # Alternate spawn points if alt : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 1 ) else : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 2 ) if vehicle : # \u5982\u679c \u8f66\u8f86 \u6210\u529f \u751f\u6210 vehicle . set _ autopilot ( True ) # \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u5168 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 # \u8bbe\u7f6e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u63a7\u5236 \u7684 \u53c2\u6570 \uff0c \u6211\u4eec \u4e0d\u60f3 \u53d8\u9053 traffic _ manager . update _ vehicle _ lights ( vehicle , True ) traffic _ manager . random _ left _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . random _ right _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . auto _ lane _ change ( vehicle , False ) # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 if alt : traffic _ manager . set _ path ( vehicle , route _ 1 ) alt = False else : traffic _ manager . set _ path ( vehicle , route _ 2 ) alt = True vehicle = None counter - = 1 elif counter > 0 : counter - = 1 elif counter = = 0 : counter = spawn _ delay \u901a\u8fc7 \u4e0a\u9762 \u7684 \u4ee3\u7801 \uff0c \u6211\u4eec \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 set _ path ( ) \u529f\u80fd \u7684 \u5f15\u5bfc \u4e0b \u521b\u5efa \u4e86 \u6765\u81ea \u5730\u56fe \u4e24\u4fa7 \u7684 \u4e24\u4e2a \u6c47\u805a \u7684 \u6d41\u91cf \u6d41 \u3002 \u8fd9 \u5bfc\u81f4 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9053\u8def \u62e5\u5835 \u3002 \u8fd9\u79cd \u6280\u672f \u53ef\u4ee5 \u66f4 \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u5730 \u7528\u4e8e \u4eff\u771f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u591a\u79cd \u68d8\u624b \u60c5\u51b5 \uff0c \u4f8b\u5982 \u7e41\u5fd9 \u7684 \u73af\u5c9b \u6216 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_traffic_manager/#_1","text":"\u5f53 \u6211\u4eec \u8bad\u7ec3 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6765 \u63a7\u5236 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u65f6 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5fc5\u987b \u5e94\u5bf9 \u7684 \u5173\u952e \u6311\u6218 \u4e4b\u4e00 \u662f \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u9664\u4e86 \u8bc6\u522b \u548c \u5bfc\u822a \u9053\u8def \u7f51\u7edc \u62d3\u6251 \u7f51\u7edc\u62d3\u6251 \u4ee5\u53ca \u7ef4\u62a4 \u8f66\u9053 \u89c4\u5219 \u7684 \u4efb\u52a1 \u4e4b\u5916 \uff0c \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u8fd8 \u5fc5\u987b \u8bc6\u522b \u5176\u4ed6 \u8f66\u8f86 \u5e76 \u9884\u6d4b \u5bf9 \u5176 \u8ba1\u5212 \u884c\u52a8 \u65b9\u6848 \u7684 \u5f71\u54cd \u3002 Carla \u7684 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u80fd\u591f \u7ba1\u7406 \u901a\u8fc7 \u4eff\u771f \u5bfc\u822a \u7684 \u8f66\u8f86 \u7fa4 \uff0c \u5e76 \u4e3a \u611f\u5174 \u5174\u8da3 \u611f\u5174\u8da3 \u7684 \u8f66\u8f86 \uff08 \u5373 \u6211\u4eec \u6b63\u5728 \u8bad\u7ec3 \u6216 \u63a7\u5236 \u7684 \u8f66\u8f86 \uff09 \u8bbe\u7f6e \u969c\u788d \u8bbe\u7f6e\u969c\u788d \u548c \u6311\u6218 \u3002 \u5728 Carla \u6587\u732e \u4e2d \uff0c \u6211\u4eec \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u4ee5\u793a \u533a\u522b \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7ba1\u7406 \u5730\u56fe \u5185\u975e \u73a9\u5bb6 \u89d2\u8272 \u8f66\u8f86 \u7684 \u884c\u4e3a \u548c \u751f\u547d \u5468\u671f \u751f\u547d\u5468\u671f \uff0c \u7528 \u8f66\u8f86 \u586b\u5145 \u4eff\u771f \uff0c \u5176 \u884c\u4e3a \u4e0e \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u5728 \u771f\u5b9e \u9053\u8def \u7f51\u7edc \u4e0a \u7684 \u884c\u4e3a \u76f8\u540c \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u7684 \u4e00\u4e9b \u529f\u80fd \u4ee5\u53ca \u5982\u4f55 \u5728 \u4eff\u771f \u4e2d \u4f7f\u7528 \u5b83 \u6765 \u521b\u5efa \u548c \u63a7\u5236 \u975e \u73a9\u5bb6 \u89d2\u8272 \u3002","title":"\u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_traffic_manager/#_2","text":"\u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u521d\u59cb \u521d\u59cb\u5316 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5e76 \u521b\u5efa \u4e00\u4e9b \u968f\u673a \u5206\u5e03 \u5728 \u57ce\u5e02 \u5468\u56f4 \u7684 \u6d41\u91cf \u3002 import carla import random # Connect to the client and retrieve the world object client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) # Set up the simulator in synchronous mode settings = world . get _ settings ( ) settings . synchronous _ mode = True # Enables synchronous mode settings . fixed _ delta _ seconds = 0.05 world . apply _ settings ( settings ) # Set up the TM in synchronous mode traffic _ manager = client . get _ trafficmanager ( ) traffic _ manager . set _ synchronous _ mode ( True ) # Set a seed so behaviour can be repeated if necessary traffic _ manager . set _ random _ device _ seed ( 0 ) random . seed ( 0 ) # We will aslo set up the spectator so we can see what we do spectator = world . get _ spectator ( )","title":"\u8bbe\u7f6e \u4eff\u771f\u5668 \u5e76 \u521d\u59cb\u5316 \u4ea4\u901a\u7ba1\u7406 \u5668"},{"location":"tuto_G_traffic_manager/#_3","text":"\u5f53 \u6211\u4eec \u521b\u5efa \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u65f6 \uff0c \u5b83\u4eec \u9700\u8981 \u4e00\u4e2a \u751f\u6210 \u7684 \u5730\u56fe \u4f4d\u7f6e \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u81ea\u5df1 \u9009\u62e9 \u7684 \u5730\u56fe \u5750\u6807 \u81ea\u884c \u5b9a\u4e49 \u8fd9\u4e9b \u3002 \u7136\u800c \uff0c \u4e3a\u4e86 \u89e3\u51b3 \u8fd9\u4e2a \u95ee\u9898 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u6709 \u4e00\u7ec4 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u9053\u8def \u7f51\u7edc \u4e2d \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8fd9\u4e9b \u751f\u6210 \u70b9\u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u529f\u80fd \u6765 \u67e5\u770b \u751f\u6210 \u70b9 \u5728 \u54ea\u91cc \u3002 \u8fd0\u884c \u4ee5\u4e0b \u4ee3\u7801 \uff0c \u7136\u540e \u98de\u8fc7 \u5730\u56fe \u5e76 \u68c0\u67e5 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u5f53 \u6211\u4eec \u60f3\u8981 \u9009\u62e9 \u66f4 \u5177\u4f53 \u7684 \u70b9 \u7528\u4e8e \u751f\u6210 \u6216 \u5f15\u5bfc \u8f66\u8f86 \u65f6 \uff0c \u8fd9\u4f1a \u7528\u573a \u6d3e\u4e0a\u7528\u573a \u3002 # \u5728 \u5730\u56fe \u4e0a\u4ee5 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u6765 \u98de\u884c \u89c2\u5bdf \u5219 \u4f1a while True : world . tick ( ) \u73b0\u5728 \u8ba9 \u6211\u4eec \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 # \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u4e00\u4e9b \u6a21\u578b models = [ ' dodge ' , ' audi ' , ' model3 ' , ' mini ' , ' mustang ' , ' lincoln ' , ' prius ' , ' nissan ' , ' crown ' , ' impala ' ] blueprints = [ ] for vehicle in world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) : if any ( model in vehicle . id for model in models ) : blueprints . append ( vehicle ) # \u8bbe\u7f6e \u8f66\u8f86 \u7684 \u6700\u5927 \u6570\u76ee \u5e76 \u51c6\u5907 \u6211\u4eec \u751f\u6210 \u7684 \u4e00\u4e2a \u5217\u8868 max _ vehicles = 50 max _ vehicles = min ( [ max _ vehicles , len ( spawn _ points ) ] ) vehicles = [ ] # \u5bf9 \u751f\u6210 \u70b9 \u8fdb\u884c \u968f\u673a \u91c7\u6837 \u5e76 \u751f\u6210 \u4e00\u4e9b \u8f66\u8f86 \u3002 for i , spawn _ point in enumerate ( random . sample ( spawn _ points , max _ vehicles ) ) : temp = world . try _ spawn _ actor ( random . choice ( blueprints ) , spawn _ point ) if temp is not None : vehicles . append ( temp ) # \u8fd0\u884c \u4eff\u771f \u4ee5\u4fbf \u6211\u4eec \u80fd \u67e5\u770b \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u7ed3\u679c while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5e94\u8be5 \u4f1a \u770b\u5230 \u9759\u6b62 \u7684 \u8f66\u8f86 \u5360\u636e \u5730\u56fe \u4e2d \u7684 \u9053\u8def \u3002","title":"\u751f\u6210 \u8f66\u8f86"},{"location":"tuto_G_traffic_manager/#_4","text":"\u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u8ba9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u6211\u4eec \u7684 \u8f66\u8f86 \u5e76 \u8ba9 \u4eff\u771f \u8fd0\u884c \u3002 \u4e00\u65e6 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u4e86 \u8f66\u8f86 \uff0c \u5b83\u4eec \u5c31 \u4f1a \u5728 \u9053\u8def \u4e0a \u81ea\u4e3b \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u7f51\u7edc \u7684 \u7279\u5f81 \uff0c \u5982 \u8f66\u9053 \u548c \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u5e76 \u907f\u514d \u4e0e \u5176\u4ed6 \u8f66\u8f86 \u53d1\u751f \u78b0\u649e \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u8bb8\u591a \u529f\u80fd \uff0c \u5141\u8bb8 \u4fee\u6539 \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u7684 \u7279\u5b9a \u884c\u4e3a \u3002 \u5728 \u4e0b\u9762 \u7684 \u4f8b\u5b50 \u4e2d \uff0c \u6211\u4eec \u4e3a \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8bbe\u7f6e \u4e86 \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u968f\u673a \u6982\u7387 \uff0c \u56e0\u6b64 \u6709\u4e9b \u8f66\u8f86 \u4f1a \u503e\u5411 \u4e8e \u5ffd\u7565 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \uff0c \u800c \u53e6 \u4e00\u4e9b \u8f66\u8f86 \u5219 \u4f1a \u9075\u5b88 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u53ef\u4ee5 \u8bbe\u7f6e \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u884c\u4e3a \uff0c \u6709\u5173 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Python API \u53c2\u8003 \u3002 # \u89e3\u6790 \u6240 \u751f\u6210 \u8f66\u8f86 \u7684 \u5217\u8868 \u5e76 \u901a\u8fc7 set _ autopilot ( ) \u5c06 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 for vehicle in vehicles : vehicle . set _ autopilot ( True ) # Randomly set the probability that a vehicle will ignore traffic lights traffic _ manager . ignore _ lights _ percentage ( vehicle , random . randint ( 0 , 50 ) ) while True : world . tick ( ) \u5982\u679c \u60a8 \u73b0\u5728 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u60a8 \u5c06 \u770b\u5230 \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u81ea\u52a8 \u884c\u9a76 \u3002","title":"\u4f7f\u7528 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u8f66\u8f86"},{"location":"tuto_G_traffic_manager/#_5","text":"\u5728 \u524d\u9762 \u7684 \u6b65\u9aa4 \u4e2d \uff0c \u6211\u4eec \u4e86\u89e3 \u4e86 \u5982\u4f55 \u5728 \u5730\u56fe \u4e2d \u751f\u6210 \u4e00\u7ec4 \u8f66\u8f86 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \uff0c \u4ee5 \u521b\u5efa \u4e00\u4e2a \u5145\u6ee1 \u79fb\u52a8 \u4ea4\u901a \u7684 \u7e41\u5fd9 \u57ce\u9547 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u5177 \u6709 \u66f4 \u6df1\u5165 \u7684 \u529f\u80fd \uff0c \u53ef\u4ee5 \u66f4 \u7d27\u5bc6 \u5730 \u63a7\u5236 \u8f66\u8f86 \u7684 \u884c\u4e3a \u3002 \u6211\u4eec \u73b0\u5728 \u5c06 \u4f7f\u7528 traffic _ manager . set _ path ( ) \u529f\u80fd \u5f15\u5bfc \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u6cbf\u7740 \u7279\u5b9a \u8def\u5f84 \u884c\u9a76 \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6211\u4eec \u5c06 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u5b83\u4eec \u5c06 \u5728 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u6c47\u805a \u5e76 \u9020\u6210 \u62e5\u5835 \u3002 \u9996\u5148 \uff0c \u6211\u4eec \u5c06 \u9009\u62e9 \u4e00\u4e9b \u8def\u5f84 \u70b9\u6765 \u6784\u5efa \u6211\u4eec \u7684 \u8def\u5f84 \u3002 \u751f\u6210 \u70b9 \u662f \u65b9\u4fbf \u7684 \u8def\u5f84 \u70b9 \uff0c \u4e0e \u4e4b\u524d \u4e00\u6837 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 Carla \u7684 \u8c03\u8bd5 \u5de5\u5177 \u5728 \u5730\u56fe \u4e0a \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e \u3002 \u901a\u8fc7 \u4e0e \u89c2\u5bdf \u89c2\u5bdf\u8005 \u4e00\u8d77 \u98de\u8fc7 \u5730\u56fe \uff0c \u6211\u4eec \u53ef\u4ee5 \u9009\u62e9 \u8981 \u7528\u4e8e \u8def\u5f84 \u7684 \u751f\u6210 \u70b9 \u7684 \u7d22\u5f15 \u3002 \u8be5 \u51fd\u6570 \u4f7f\u7528 \u6307\u5b9a \u4e3a carla . Locations \u7684 \u5750\u6807 \u5217\u8868 \u3002 # \u5728 \u5730\u56fe \u4e0a \u4f7f\u7528 \u6570\u5b57 \u7ed8\u5236 \u751f\u6210 \u70b9 \u7684 \u4f4d\u7f6e for i , spawn _ point in enumerate ( spawn _ points ) : world . debug . draw _ string ( spawn _ point . location , str ( i ) , life _ time = 10 ) # \u5728 \u540c\u6b65 \u6a21\u5f0f \u4e0b \uff0c \u6211\u4eec \u9700\u8981 \u8fd0\u884c \u4eff\u771f \u4f7f \u89c2\u5bdf \u89c2\u5bdf\u8005 \u98de\u8fc7 \u573a\u666f while True : world . tick ( ) \u6211\u4eec \u9009\u62e9 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9\u6765 \u57ce\u9547 \u5728\u57ce\u9547 \u5185 \u521b\u5efa \u4e24\u6761 \u6c47\u805a \u7684 \u4ea4\u901a \u901a\u6d41 \u4ea4\u901a\u6d41 \uff0c \u4ece\u800c \u9020\u6210 \u62e5\u5835 \uff0c \u8fd9 \u53ef\u80fd \u662f \u5411 \u81ea\u52a8 \u9a7e\u9a76 \u667a\u80fd \u4f53 \u5c55\u793a \u7684 \u4e00\u4e2a \u6709\u8da3 \u7684 \u573a\u666f \u3002 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u8def\u7ebf 1 spawn _ point _ 1 = spawn _ points [ 32 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 1 route _ 1 _ indices = [ 129 , 28 , 124 , 33 , 97 , 119 , 58 , 154 , 147 ] route _ 1 = [ ] for ind in route _ 1 _ indices : route _ 1 . append ( spawn _ points [ ind ] . location ) # \u8def\u7ebf 2 spawn _ point _ 2 = spawn _ points [ 149 ] # \u4ece \u6240 \u9009\u62e9 \u7684 \u751f\u6210 \u70b9\u4e2d \u521b\u5efa \u8def\u7ebf 2 route _ 2 _ indices = [ 21 , 76 , 38 , 34 , 90 , 3 ] route _ 2 = [ ] for ind in route _ 2 _ indices : route _ 2 . append ( spawn _ points [ ind ] . location ) # \u73b0\u5728 \u8ba9 \u6211\u4eec \u5728 \u5730\u56fe \u4e0a \u6253\u5370 \u51fa \u5b83\u4eec \uff0c \u4ee5\u4fbf \u6211\u4eec \u80fd \u770b\u5230 \u6211\u4eec \u7684 \u8def\u5f84 world . debug . draw _ string ( spawn _ point _ 1 . location , ' Spawn point 1 ' , life _ time = 30 , color = carla . Color ( 255 , 0 , 0 ) ) world . debug . draw _ string ( spawn _ point _ 2 . location , ' Spawn point 2 ' , life _ time = 30 , color = carla . Color ( 0 , 0 , 255 ) ) for ind in route _ 1 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 255 , 0 , 0 ) ) for ind in route _ 2 _ indices : spawn _ points [ ind ] . location world . debug . draw _ string ( spawn _ points [ ind ] . location , str ( ind ) , life _ time = 60 , color = carla . Color ( 0 , 0 , 255 ) ) while True : world . tick ( ) \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u9009\u62e9 \u4e86 \u751f\u6210 \u70b9 \u548c \u8def\u5f84 \u70b9 \uff0c \u73b0\u5728 \u6211\u4eec \u53ef\u4ee5 \u5f00\u59cb \u751f\u6210 \u4ea4\u901a \u5e76 \u5c06 \u751f\u6210 \u7684 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u9075\u5faa \u6211\u4eec \u7684 \u8def\u5f84 \u70b9 \u5217\u8868 \u3002 # \u5728 \u751f\u6210 \u65f6\u95f4 \u4e4b\u95f4 \u8bbe\u7f6e \u5ef6\u8fdf \u4ee5 \u521b\u5efa \u7a7a\u9699 spawn _ delay = 20 counter = spawn _ delay # \u8bbe\u7f6e \u6700\u5927 \u8f66\u8f86 \uff08 \u4e3a \u66f4 \u4f4e \u7684 \u786c\u4ef6 \u8bbe\u7f6e \u66f4 \u5c0f \u7684 \u503c \uff09 max _ vehicles = 200 # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 alt = False spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) while True : world . tick ( ) n _ vehicles = len ( world . get _ actors ( ) . filter ( ' * vehicle * ' ) ) vehicle _ bp = random . choice ( blueprints ) # \u4ec5 \u5728 \u5ef6\u8fdf \u4e4b\u540e \u751f\u6210 \u8f66\u8f86 if counter = = spawn _ delay and n _ vehicles < max _ vehicles : # Alternate spawn points if alt : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 1 ) else : vehicle = world . try _ spawn _ actor ( vehicle _ bp , spawn _ point _ 2 ) if vehicle : # \u5982\u679c \u8f66\u8f86 \u6210\u529f \u751f\u6210 vehicle . set _ autopilot ( True ) # \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u5168 \u4ea4\u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 # \u8bbe\u7f6e \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u8f66\u8f86 \u63a7\u5236 \u7684 \u53c2\u6570 \uff0c \u6211\u4eec \u4e0d\u60f3 \u53d8\u9053 traffic _ manager . update _ vehicle _ lights ( vehicle , True ) traffic _ manager . random _ left _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . random _ right _ lanechange _ percentage ( vehicle , 0 ) traffic _ manager . auto _ lane _ change ( vehicle , False ) # \u5728 \u751f\u6210 \u70b9 \u4e4b\u95f4 \u8f6e\u6d41 if alt : traffic _ manager . set _ path ( vehicle , route _ 1 ) alt = False else : traffic _ manager . set _ path ( vehicle , route _ 2 ) alt = True vehicle = None counter - = 1 elif counter > 0 : counter - = 1 elif counter = = 0 : counter = spawn _ delay \u901a\u8fc7 \u4e0a\u9762 \u7684 \u4ee3\u7801 \uff0c \u6211\u4eec \u5728 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 set _ path ( ) \u529f\u80fd \u7684 \u5f15\u5bfc \u4e0b \u521b\u5efa \u4e86 \u6765\u81ea \u5730\u56fe \u4e24\u4fa7 \u7684 \u4e24\u4e2a \u6c47\u805a \u7684 \u6d41\u91cf \u6d41 \u3002 \u8fd9 \u5bfc\u81f4 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u9053\u8def \u62e5\u5835 \u3002 \u8fd9\u79cd \u6280\u672f \u53ef\u4ee5 \u66f4 \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u5730 \u7528\u4e8e \u4eff\u771f \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u7684 \u591a\u79cd \u68d8\u624b \u60c5\u51b5 \uff0c \u4f8b\u5982 \u7e41\u5fd9 \u7684 \u73af\u5c9b \u6216 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u3002","title":"\u6307\u5b9a \u8f66\u8f86 \u884c\u9a76\u8def\u7ebf"},{"location":"tuto_G_traffic_prediction/","text":"\u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u9884\u6d4b \u6ce8\u610f \u8fd0\u884c \u8be5 \u811a\u672c \u4e4b\u524d \uff0c \u5e94\u5148 \u8fd0\u884c generate _ traffic . py \u5e76 \u786e\u4fdd \u5728 town10 \u4e2d \u6210\u529f \u653e\u7f6e \u8f66\u8f86 \u3002 main \u51fd\u6570 \u4e2d \u9996\u5148 \u5b9a\u4e49 \u4e86 argparser \u548c carla \u6a21\u5757 \uff0c \u5176\u4e2d \uff0c argparse \u6a21\u5757 \u7528\u4e8e \u89e3\u6790 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5305\u62ec host \uff08 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \uff09 \u3001 port \uff08 TCP \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \uff09 \u3001 traffic _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f ID \uff09 \u3001 color _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u989c\u8272 ID \uff09 \u548c color _ time \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \uff09 \u3002 args = argparser . parse _ arg ( ) argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) argparser . add _ argument ( ' -- traffic _ id ' , metavar = ' I ' , default = 1 , type = int , help = ' traffic light id ' ) argparser . add _ argument ( ' -- color _ id ' , metavar = ' C ' , default = 1 , type = int , help = ' traffic light color id ' ) argparser . add _ argument ( ' -- color _ time ' , metavar = ' T ' , default = 20 , type = int , help = ' set traffic light time ' ) \u4f7f\u7528 \u6307\u5b9a \u7684 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \u548c \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u8fde\u63a5 \u5230 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u540c\u65f6 \uff0c \u8bbe\u7f6e \u4e0e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u901a\u4fe1 \u7684 \u8d85\u65f6 \u65f6\u95f4 \u3002 \u6700\u540e \uff0c \u4ee3\u7801 \u901a\u8fc7 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4e16\u754c \u5bf9\u8c61 \uff0c \u53ef\u4ee5 \u5728 \u4eff\u771f \u73af\u5883 \u4e2d \u8fdb\u884c \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u64cd\u4f5c \u548c \u63a7\u5236 \u3002 client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) world = client . get _ world ( ) \u4f7f\u7528 world . get _ settings ( ) \u65b9\u6cd5 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5f53\u524d \u8bbe\u7f6e \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bbe\u7f6e \u66f4 \u6539\u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76 \u5c06 \u65f6\u95f4 \u6b65\u957f \u8bbe\u7f6e \u4e3a 0.05 \u79d2 \uff0c \u4ee5\u4fbf \u4ee5 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u95f4\u9694 \u8fdb\u884c \u4eff\u771f \uff0c \u63a7\u5236 \u4eff\u771f \u7684 \u901f\u5ea6 \u548c \u7cbe\u786e \u7cbe\u786e\u5ea6 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 # \u4eff\u771f \u73af\u5883 \u4f1a\u4ee5 0.05 \u79d2 \u7684 \u65f6\u95f4 \u524d\u8fdb \u3002 world . apply _ settings ( settings ) \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) \u5212\u5b9a \u8def\u53e3 \u8303\u56f4 xmax = - 11 xmin = - 77 ymax = 57 ymin = - 13 \u521b\u5efa \u591a\u4e2a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5176\u4e2d vehicle _ positions \u7528\u4e8e \u5b58\u50a8 \u8f66\u8f86 \u5b9e\u65f6 \u4f4d\u7f6e \uff0c traffic _ data \u7528\u4e8e \u5b58\u50a8 \u8def\u53e3 \u5b9e\u65f6 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \uff0c timestamps \u7528\u4e8e \u5b58\u50a8 \u65f6\u95f4 \u6233 \uff0c traffic _ flow \u7528\u4e8e \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u3002 vehicle _ positions = { } traffic _ data = [ ] timestamps = [ ] traffic _ flow = [ ] \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u3002 \u5047\u8bbe \u4eff\u771f \u65f6\u95f4 \u6b65 \u4e00\u5171 \u4e3a 1000 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u5bf9\u4e8e \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8f86 \uff0c \u83b7\u53d6 \u5176 \u4f4d\u7f6e \u4fe1\u606f \uff0c \u5e76 \u5224\u65ad \u5176 \u662f\u5426 \u5728 \u76ee\u6807 \u8def\u53e3 \u7684 \u533a\u57df \u5185 \u3002 \u5982\u679c \u8f66\u8f86 \u5728 \u533a\u57df \u5185 \uff0c \u5c06 \u8ba1\u6570 \u8ba1\u6570\u5668 \u52a0 1 \uff0c \u5e76 \u5c06 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 \u5230 \u5b57\u5178 vehicle _ positions \u4e2d \u3002 for t in range ( 1000 ) : world . tick ( ) count = 0 for vehicle in vehicle _ list \uff1a location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 vehicle _ positions [ vehicle . id ] = ( x , y , z ) \u5bf9\u5e94 \u7684 \u65f6\u95f4 \u6233 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u5206\u522b \u5b58\u5165 timestamps \u3001 traffic _ flow \uff0c \u800c traffic _ data \u5305\u62ec \u8fd9 \u4e24\u79cd \u6570\u636e \u3002 traffic _ data . append ( ( t , count ) ) timestamps . append ( t ) traffic _ flow . append ( count ) traffic _ data \u5199\u5165 csv \u6587\u4ef6 filename = \" traffic _ data . csv \" with open ( filename , \" w \" , newline = ' ' , encoding = ' utf - 8 ' ) as file : writer = csv . writer ( file ) writer . writerow ( [ \" head \" , \" value \" ] ) # \u5199\u5165 \u8868\u5934 for data in traffic _ data : writer . writerow ( [ data [ 0 ] , data [ 1 ] ] ) # \u5199\u5165 \u6570\u636e data = load _ data ( ' traffic _ data . csv ' , 200 ) # \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u4ece \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6587\u4ef6 \u4e2d \u52a0\u8f7d \u6570\u636e \u5e76 \u8fdb\u884c \u5904\u7406 \u9884\u5904\u7406 \u3002 \u9996\u5148 \u5c06 \u6570\u636e \u8bfb\u53d6 \u4e3a DataFrame \u5bf9\u8c61 \uff0c \u5e76 \u7ed8\u5236 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u6298\u7ebf \u7ebf\u56fe \u6298\u7ebf\u56fe \u3002 \u901a\u8fc7 \u6307\u5b9a \u7684 \u65f6\u95f4 \u6b65 \u5927\u5c0f \u5bf9 \u6570\u636e \u8fdb\u884c \u5207\u7247 \uff0c \u5f62\u6210 \u8bad\u7ec3 \u6837\u672c \u8bad\u7ec3\u6837\u672c \u5e76 \u8fd4\u56de \u3002 def load _ data ( filename , time _ step ) : df = pd . read _ csv ( filename ) data = df . value plt . title ( ' original data ' ) plt . plot ( data ) plt . show ( ) result = [ ] for index in range ( len ( data ) - time _ step ) : result . append ( data [ index : index + time _ step + 1 ] ) return np . array ( result ) \u4f7f\u7528 MinMaxScaler \u5bf9 \u6570\u636e \u8fdb\u884c * \u5f52\u4e00\u5316 \u5904\u7406 \uff0c \u7136\u540e \u6309\u7167 7 \uff1a 3 \u7684 \u6bd4\u4f8b \u5c06 \u6570\u636e \u96c6 \u5212\u5206 \u4e3a \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u3002 scaler = MinMaxScaler ( feature _ range = ( 0 , 1 ) ) dataset = scaler . fit _ transform ( data ) train _ count = int ( 0.7 * len ( dataset ) ) x _ train _ set , x _ test _ set = dataset [ : train _ count , : - 1 ] , dataset [ train _ count : , : - 1 ] y _ train _ set , y _ test _ set = dataset [ : train _ count , - 1 ] , dataset [ train _ count : , - 1 ] \u5bf9 \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u7684 \u8f93\u5165 \u548c \u8f93\u51fa \u6570\u636e \u8fdb\u884c \u7ef4\u5ea6 \u8c03\u6574 \uff0c \u5176\u4e2d \u8f93\u5165 \u6570\u636e x _ train _ set \u3001 x _ test _ set \u4e3a \u4e09\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , \u65f6\u95f4 \u6b65\u6570 , \u7279\u5f81 \u6570\u91cf \uff09 \uff0c \u8f93\u51fa \u6570\u636e y _ train _ set \u3001 y _ test _ set \u4e3a \u4e8c\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , 1 ) \u3002 \u4ee5 \u6ee1\u8db3 LSTM \u6a21\u578b \u7684 \u8f93\u5165 \u8981\u6c42 \u3002 x _ train _ set = x _ train _ set . reshape ( x _ train _ set . shape [ 0 ] , 1 , x _ train _ set . shape [ 1 ] ) x _ test _ set = x _ test _ set . reshape ( x _ test _ set . shape [ 0 ] , 1 , x _ test _ set . shape [ 1 ] ) y _ train _ set = y _ train _ set . reshape ( y _ train _ set . shape [ 0 ] , 1 ) y _ test _ set = y _ test _ set . reshape ( y _ test _ set . shape [ 0 ] , 1 ) \u5b9a\u4e49 \u5e76 \u521b\u5efa \u4e86 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e3a [ 200 , 500 , 500 , 1 ] LSTM \u6a21\u578b \uff0c \u5176\u4e2d 200 \uff0c 500 \uff0c 500 \uff0c 1 \u5206\u522b \u8868\u793a \u6a21\u578b \u7684 \u4e09\u4e2a \u9690 \u5c42\u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \uff0c 1 \u4e3a \u8f93\u51fa \u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \u3002 layer = [ 200 , 500 , 500 , 1 ] model = build _ lstm _ model ( layer ) \u6784\u5efa LST \u6a21\u578b \u3002 \u8be5 \u51fd\u6570 \u521b\u5efa Sequential \u6a21\u578b \u5bf9\u8c61 \uff0c \u7528\u4e8e \u6309 \u987a\u5e8f \u5806\u53e0 \u795e\u7ecf \u7f51\u7edc \u7f51\u7edc\u5c42 \u3002 \u6dfb\u52a0 LSTM \u5c42 \u3001 Dropout \u5c42 \u548c Dense \u5168 \u8fde\u63a5 \u5c42 \uff0c \u4ee5\u53ca \u8bbe\u7f6e \u635f\u5931 \u51fd\u6570 \u548c \u4f18\u5316 \u5668 \uff0c \u63d0\u4f9b \u4e00\u4e2a \u7b80\u6d01 \u7684 \u65b9\u5f0f \u6765 \u521b\u5efa \u548c \u7f16\u8bd1 LSTM \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6a21\u578b \uff0c \u4ee5\u4fbf \u8fdb\u884c \u540e\u7eed \u7684 \u8bad\u7ec3 \u548c \u9884\u6d4b \u64cd\u4f5c \u3002 def build _ lstm _ model ( layer ) : model = Sequential ( ) model . add ( LSTM ( input _ shape = ( 1 , layer [ 0 ] ) , units = layer [ 1 ] , return _ sequences = True ) ) model . add ( Dropout ( 0.2 ) ) model . add ( LSTM ( units = layer [ 2 ] , return _ sequences = False ) ) model . add ( Dropout ( 0.2 ) ) model . add ( Dense ( units = layer [ 3 ] , activation = ' linear ' ) ) model . compile ( loss = ' mse ' , optimizer = ' adam ' ) return model \u8bad\u7ec3 \u6a21\u578b \u3002 \u5c06 \u51c6\u5907 \u597d \u7684 \u8bad\u7ec3 \u96c6 \u6570\u636e x _ train _ set \u548c \u5bf9\u5e94 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c y _ train _ set \uff0c \u5bf9 \u6784\u5efa \u597d \u7684 \u6a21\u578b \u8fdb\u884c \u8bad\u7ec3 \u3002 \u5176\u4e2d \uff0c batch _ size \u4e3a \u6bcf\u6b21 \u8fed\u4ee3 \u4f7f\u7528 \u7684 \u6837\u672c \u6570\u91cf \uff0c epochs \u4e3a \u8bad\u7ec3 \u7684 \u8fed\u4ee3 \u6b21\u6570 \uff0c validation _ split : \u9a8c\u8bc1 \u96c6 \u7684 \u6bd4\u4f8b \u3002 model . fit ( x _ train _ set , y _ train _ set , batch _ size = 100 , epochs = 25 , validation _ split = 0.2 ) \u9884\u6d4b \u672a\u6765 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u4f7f\u7528 \u8bad\u7ec3 \u597d \u7684 \u6a21\u578b \u5bf9 \u6d4b\u8bd5 \u96c6 \u6570\u636e x _ test _ set \u8fdb\u884c \u9884\u6d4b \uff0c \u5f97\u5230 \u9884\u6d4b \u7ed3\u679c y _ predicted \u3002 y _ predicted = model . predict ( x _ test _ set ) \u7ed8\u5236 \u66f2\u7ebf \uff0c \u9996\u5148 \u8fdb\u884c \u4e86 \u6570\u636e \u7684 \u586b\u5145 \u548c \u9006 \u6807\u51c6 \u6807\u51c6\u5316 \u5904\u7406 \uff0c \u5c06 \u5176 \u8f6c\u6362 \u56de \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u8303\u56f4 \uff0c \u7136\u540e \u8c03\u7528 plot _ curve \u51fd\u6570 \u8fdb\u884c \u66f2\u7ebf \u7ed8\u5236 \uff0c \u4ee5\u4fbf \u53ef\u89c6 \u53ef\u89c6\u5316 \u5bf9\u6bd4 \u6a21\u578b \u7684 \u9884\u6d4b \u7ed3\u679c \u548c \u771f\u5b9e \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u4ee5\u4fbf \u8fdb\u884c \u7ed3\u679c \u8bc4\u4f30 \u548c \u5206\u6790 \u3002 temp = np . zeros ( ( len ( y _ test _ set ) , 200 ) ) origin _ temp = np . hstack ( ( temp , y _ test _ set ) ) predict _ temp = np . hstack ( ( temp , y _ predicted ) ) origin _ test = scaler . inverse _ transform ( origin _ temp ) predict _ test = scaler . inverse _ transform ( predict _ temp ) predict _ test = np . round ( predict _ test ) . astype ( int ) plot _ curve ( origin _ test [ : , - 1 ] , predict _ test [ : , - 1 ] ) \u5b9a\u4e49 plot _ curve \u51fd\u6570 \u7528\u4e8e \u7ed8\u5236 \u771f\u5b9e \u6570\u636e \u548c \u9884\u6d4b \u6570\u636e \u7684 \u66f2\u7ebf \u7ebf\u56fe \u66f2\u7ebf\u56fe \u3002 \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u4e4b\u524d \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002 def plot _ curve ( true _ data , predicted _ data ) : fig , ax = plt . subplots ( ) ax . plot ( true _ data , label = ' True data ' ) ax . plot ( predicted _ data , label = ' Predicted data ' ) ax . legend ( ) # \u8bbe\u7f6e y \u8f74 \u7684 \u683c\u5f0f \u683c\u5f0f\u5316 \u4e3a \u6574\u6570 ax . yaxis . set _ major _ formatter ( ticker . ScalarFormatter ( useOffset = False , useMathText = True ) ) ax . yaxis . set _ major _ locator ( ticker . MaxNLocator ( integer = True ) ) plt . show ( ) \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002","title":"\u6d41\u91cf \u9884\u6d4b"},{"location":"tuto_G_traffic_prediction/#_1","text":"\u6ce8\u610f \u8fd0\u884c \u8be5 \u811a\u672c \u4e4b\u524d \uff0c \u5e94\u5148 \u8fd0\u884c generate _ traffic . py \u5e76 \u786e\u4fdd \u5728 town10 \u4e2d \u6210\u529f \u653e\u7f6e \u8f66\u8f86 \u3002 main \u51fd\u6570 \u4e2d \u9996\u5148 \u5b9a\u4e49 \u4e86 argparser \u548c carla \u6a21\u5757 \uff0c \u5176\u4e2d \uff0c argparse \u6a21\u5757 \u7528\u4e8e \u89e3\u6790 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5305\u62ec host \uff08 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \uff09 \u3001 port \uff08 TCP \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \uff09 \u3001 traffic _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f ID \uff09 \u3001 color _ id \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u989c\u8272 ID \uff09 \u548c color _ time \uff08 \u4ea4\u901a \u4ea4\u901a\u706f \u65f6\u95f4 \uff09 \u3002 args = argparser . parse _ arg ( ) argparser = argparse . ArgumentParser ( description = __ doc __ ) argparser . add _ argument ( ' -- host ' , metavar = ' H ' , default = ' 127.0 . 0.1 ' , help = ' IP of the host server ( default : 127.0 . 0.1 ) ' ) argparser . add _ argument ( ' - p ' , ' -- port ' , metavar = ' P ' , default = 2000 , type = int , help = ' TCP port to listen to ( default : 2000 ) ' ) argparser . add _ argument ( ' -- traffic _ id ' , metavar = ' I ' , default = 1 , type = int , help = ' traffic light id ' ) argparser . add _ argument ( ' -- color _ id ' , metavar = ' C ' , default = 1 , type = int , help = ' traffic light color id ' ) argparser . add _ argument ( ' -- color _ time ' , metavar = ' T ' , default = 20 , type = int , help = ' set traffic light time ' ) \u4f7f\u7528 \u6307\u5b9a \u7684 \u4e3b\u673a \u5730\u5740 IP\u5730\u5740 \u548c \u7aef\u53e3 \u53e3\u53f7 \u7aef\u53e3\u53f7 \u8fde\u63a5 \u5230 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u3002 \u540c\u65f6 \uff0c \u8bbe\u7f6e \u4e0e \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u901a\u4fe1 \u7684 \u8d85\u65f6 \u65f6\u95f4 \u3002 \u6700\u540e \uff0c \u4ee3\u7801 \u901a\u8fc7 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u4e16\u754c \u5bf9\u8c61 \uff0c \u53ef\u4ee5 \u5728 \u4eff\u771f \u73af\u5883 \u4e2d \u8fdb\u884c \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u64cd\u4f5c \u548c \u63a7\u5236 \u3002 client = carla . Client ( args . host , args . port ) client . set _ timeout ( 10.0 ) world = client . get _ world ( ) \u4f7f\u7528 world . get _ settings ( ) \u65b9\u6cd5 \u83b7\u53d6 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u5f53\u524d \u8bbe\u7f6e \u3002 \u5c06 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 \u8bbe\u7f6e \u66f4 \u6539\u4e3a \u540c\u6b65 \u6a21\u5f0f \uff0c \u5e76 \u5c06 \u65f6\u95f4 \u6b65\u957f \u8bbe\u7f6e \u4e3a 0.05 \u79d2 \uff0c \u4ee5\u4fbf \u4ee5 \u56fa\u5b9a \u7684 \u65f6\u95f4 \u95f4\u9694 \u8fdb\u884c \u4eff\u771f \uff0c \u63a7\u5236 \u4eff\u771f \u7684 \u901f\u5ea6 \u548c \u7cbe\u786e \u7cbe\u786e\u5ea6 \u3002 settings = world . get _ settings ( ) settings . synchronous _ mode = True settings . fixed _ delta _ seconds = 0.05 # \u4eff\u771f \u73af\u5883 \u4f1a\u4ee5 0.05 \u79d2 \u7684 \u65f6\u95f4 \u524d\u8fdb \u3002 world . apply _ settings ( settings ) \u83b7\u53d6 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u5217\u8868 vehicle _ list = world . get _ actors ( ) . filter ( ' vehicle . * ' ) \u5212\u5b9a \u8def\u53e3 \u8303\u56f4 xmax = - 11 xmin = - 77 ymax = 57 ymin = - 13 \u521b\u5efa \u591a\u4e2a \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \uff0c \u5176\u4e2d vehicle _ positions \u7528\u4e8e \u5b58\u50a8 \u8f66\u8f86 \u5b9e\u65f6 \u4f4d\u7f6e \uff0c traffic _ data \u7528\u4e8e \u5b58\u50a8 \u8def\u53e3 \u5b9e\u65f6 \u7684 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \uff0c timestamps \u7528\u4e8e \u5b58\u50a8 \u65f6\u95f4 \u6233 \uff0c traffic _ flow \u7528\u4e8e \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u3002 vehicle _ positions = { } traffic _ data = [ ] timestamps = [ ] traffic _ flow = [ ] \u7edf\u8ba1 \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u3002 \u5047\u8bbe \u4eff\u771f \u65f6\u95f4 \u6b65 \u4e00\u5171 \u4e3a 1000 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u904d\u5386 \u6240\u6709 \u6b63\u5728 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 \u5bf9\u4e8e \u6bcf\u8f86 \u8f86\u8f66 \u6bcf\u8f86\u8f66 \u8f86 \uff0c \u83b7\u53d6 \u5176 \u4f4d\u7f6e \u4fe1\u606f \uff0c \u5e76 \u5224\u65ad \u5176 \u662f\u5426 \u5728 \u76ee\u6807 \u8def\u53e3 \u7684 \u533a\u57df \u5185 \u3002 \u5982\u679c \u8f66\u8f86 \u5728 \u533a\u57df \u5185 \uff0c \u5c06 \u8ba1\u6570 \u8ba1\u6570\u5668 \u52a0 1 \uff0c \u5e76 \u5c06 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u4fe1\u606f \u5b58\u50a8 \u5230 \u5b57\u5178 vehicle _ positions \u4e2d \u3002 for t in range ( 1000 ) : world . tick ( ) count = 0 for vehicle in vehicle _ list \uff1a location = vehicle . get _ location ( ) x = location . x y = location . y z = location . z if x < = xmax and x > = xmin and y < = ymax and y > = ymin : count + = 1 vehicle _ positions [ vehicle . id ] = ( x , y , z ) \u5bf9\u5e94 \u7684 \u65f6\u95f4 \u6233 \u548c \u8f66\u6d41 \u6d41\u91cf \u8f66\u6d41\u91cf \u6570\u636e \u5206\u522b \u5b58\u5165 timestamps \u3001 traffic _ flow \uff0c \u800c traffic _ data \u5305\u62ec \u8fd9 \u4e24\u79cd \u6570\u636e \u3002 traffic _ data . append ( ( t , count ) ) timestamps . append ( t ) traffic _ flow . append ( count ) traffic _ data \u5199\u5165 csv \u6587\u4ef6 filename = \" traffic _ data . csv \" with open ( filename , \" w \" , newline = ' ' , encoding = ' utf - 8 ' ) as file : writer = csv . writer ( file ) writer . writerow ( [ \" head \" , \" value \" ] ) # \u5199\u5165 \u8868\u5934 for data in traffic _ data : writer . writerow ( [ data [ 0 ] , data [ 1 ] ] ) # \u5199\u5165 \u6570\u636e data = load _ data ( ' traffic _ data . csv ' , 200 ) # \u8bfb\u53d6 \u6570\u636e \u8bfb\u53d6\u6570\u636e \u4ece \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6587\u4ef6 \u4e2d \u52a0\u8f7d \u6570\u636e \u5e76 \u8fdb\u884c \u5904\u7406 \u9884\u5904\u7406 \u3002 \u9996\u5148 \u5c06 \u6570\u636e \u8bfb\u53d6 \u4e3a DataFrame \u5bf9\u8c61 \uff0c \u5e76 \u7ed8\u5236 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u6298\u7ebf \u7ebf\u56fe \u6298\u7ebf\u56fe \u3002 \u901a\u8fc7 \u6307\u5b9a \u7684 \u65f6\u95f4 \u6b65 \u5927\u5c0f \u5bf9 \u6570\u636e \u8fdb\u884c \u5207\u7247 \uff0c \u5f62\u6210 \u8bad\u7ec3 \u6837\u672c \u8bad\u7ec3\u6837\u672c \u5e76 \u8fd4\u56de \u3002 def load _ data ( filename , time _ step ) : df = pd . read _ csv ( filename ) data = df . value plt . title ( ' original data ' ) plt . plot ( data ) plt . show ( ) result = [ ] for index in range ( len ( data ) - time _ step ) : result . append ( data [ index : index + time _ step + 1 ] ) return np . array ( result ) \u4f7f\u7528 MinMaxScaler \u5bf9 \u6570\u636e \u8fdb\u884c * \u5f52\u4e00\u5316 \u5904\u7406 \uff0c \u7136\u540e \u6309\u7167 7 \uff1a 3 \u7684 \u6bd4\u4f8b \u5c06 \u6570\u636e \u96c6 \u5212\u5206 \u4e3a \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u3002 scaler = MinMaxScaler ( feature _ range = ( 0 , 1 ) ) dataset = scaler . fit _ transform ( data ) train _ count = int ( 0.7 * len ( dataset ) ) x _ train _ set , x _ test _ set = dataset [ : train _ count , : - 1 ] , dataset [ train _ count : , : - 1 ] y _ train _ set , y _ test _ set = dataset [ : train _ count , - 1 ] , dataset [ train _ count : , - 1 ] \u5bf9 \u8bad\u7ec3 \u96c6 \u548c \u6d4b\u8bd5 \u96c6 \u7684 \u8f93\u5165 \u548c \u8f93\u51fa \u6570\u636e \u8fdb\u884c \u7ef4\u5ea6 \u8c03\u6574 \uff0c \u5176\u4e2d \u8f93\u5165 \u6570\u636e x _ train _ set \u3001 x _ test _ set \u4e3a \u4e09\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , \u65f6\u95f4 \u6b65\u6570 , \u7279\u5f81 \u6570\u91cf \uff09 \uff0c \u8f93\u51fa \u6570\u636e y _ train _ set \u3001 y _ test _ set \u4e3a \u4e8c\u7ef4 \uff0c \u5982 ( \u6837\u672c \u6570\u91cf , 1 ) \u3002 \u4ee5 \u6ee1\u8db3 LSTM \u6a21\u578b \u7684 \u8f93\u5165 \u8981\u6c42 \u3002 x _ train _ set = x _ train _ set . reshape ( x _ train _ set . shape [ 0 ] , 1 , x _ train _ set . shape [ 1 ] ) x _ test _ set = x _ test _ set . reshape ( x _ test _ set . shape [ 0 ] , 1 , x _ test _ set . shape [ 1 ] ) y _ train _ set = y _ train _ set . reshape ( y _ train _ set . shape [ 0 ] , 1 ) y _ test _ set = y _ test _ set . reshape ( y _ test _ set . shape [ 0 ] , 1 ) \u5b9a\u4e49 \u5e76 \u521b\u5efa \u4e86 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e3a [ 200 , 500 , 500 , 1 ] LSTM \u6a21\u578b \uff0c \u5176\u4e2d 200 \uff0c 500 \uff0c 500 \uff0c 1 \u5206\u522b \u8868\u793a \u6a21\u578b \u7684 \u4e09\u4e2a \u9690 \u5c42\u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \uff0c 1 \u4e3a \u8f93\u51fa \u5c42 \u7684 \u795e\u7ecf \u795e\u7ecf\u5143 \u6570\u91cf \u3002 layer = [ 200 , 500 , 500 , 1 ] model = build _ lstm _ model ( layer ) \u6784\u5efa LST \u6a21\u578b \u3002 \u8be5 \u51fd\u6570 \u521b\u5efa Sequential \u6a21\u578b \u5bf9\u8c61 \uff0c \u7528\u4e8e \u6309 \u987a\u5e8f \u5806\u53e0 \u795e\u7ecf \u7f51\u7edc \u7f51\u7edc\u5c42 \u3002 \u6dfb\u52a0 LSTM \u5c42 \u3001 Dropout \u5c42 \u548c Dense \u5168 \u8fde\u63a5 \u5c42 \uff0c \u4ee5\u53ca \u8bbe\u7f6e \u635f\u5931 \u51fd\u6570 \u548c \u4f18\u5316 \u5668 \uff0c \u63d0\u4f9b \u4e00\u4e2a \u7b80\u6d01 \u7684 \u65b9\u5f0f \u6765 \u521b\u5efa \u548c \u7f16\u8bd1 LSTM \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u6a21\u578b \uff0c \u4ee5\u4fbf \u8fdb\u884c \u540e\u7eed \u7684 \u8bad\u7ec3 \u548c \u9884\u6d4b \u64cd\u4f5c \u3002 def build _ lstm _ model ( layer ) : model = Sequential ( ) model . add ( LSTM ( input _ shape = ( 1 , layer [ 0 ] ) , units = layer [ 1 ] , return _ sequences = True ) ) model . add ( Dropout ( 0.2 ) ) model . add ( LSTM ( units = layer [ 2 ] , return _ sequences = False ) ) model . add ( Dropout ( 0.2 ) ) model . add ( Dense ( units = layer [ 3 ] , activation = ' linear ' ) ) model . compile ( loss = ' mse ' , optimizer = ' adam ' ) return model \u8bad\u7ec3 \u6a21\u578b \u3002 \u5c06 \u51c6\u5907 \u597d \u7684 \u8bad\u7ec3 \u96c6 \u6570\u636e x _ train _ set \u548c \u5bf9\u5e94 \u7684 \u76ee\u6807 \u6807\u503c \u76ee\u6807\u503c y _ train _ set \uff0c \u5bf9 \u6784\u5efa \u597d \u7684 \u6a21\u578b \u8fdb\u884c \u8bad\u7ec3 \u3002 \u5176\u4e2d \uff0c batch _ size \u4e3a \u6bcf\u6b21 \u8fed\u4ee3 \u4f7f\u7528 \u7684 \u6837\u672c \u6570\u91cf \uff0c epochs \u4e3a \u8bad\u7ec3 \u7684 \u8fed\u4ee3 \u6b21\u6570 \uff0c validation _ split : \u9a8c\u8bc1 \u96c6 \u7684 \u6bd4\u4f8b \u3002 model . fit ( x _ train _ set , y _ train _ set , batch _ size = 100 , epochs = 25 , validation _ split = 0.2 ) \u9884\u6d4b \u672a\u6765 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u3002 \u4f7f\u7528 \u8bad\u7ec3 \u597d \u7684 \u6a21\u578b \u5bf9 \u6d4b\u8bd5 \u96c6 \u6570\u636e x _ test _ set \u8fdb\u884c \u9884\u6d4b \uff0c \u5f97\u5230 \u9884\u6d4b \u7ed3\u679c y _ predicted \u3002 y _ predicted = model . predict ( x _ test _ set ) \u7ed8\u5236 \u66f2\u7ebf \uff0c \u9996\u5148 \u8fdb\u884c \u4e86 \u6570\u636e \u7684 \u586b\u5145 \u548c \u9006 \u6807\u51c6 \u6807\u51c6\u5316 \u5904\u7406 \uff0c \u5c06 \u5176 \u8f6c\u6362 \u56de \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \u7684 \u8303\u56f4 \uff0c \u7136\u540e \u8c03\u7528 plot _ curve \u51fd\u6570 \u8fdb\u884c \u66f2\u7ebf \u7ed8\u5236 \uff0c \u4ee5\u4fbf \u53ef\u89c6 \u53ef\u89c6\u5316 \u5bf9\u6bd4 \u6a21\u578b \u7684 \u9884\u6d4b \u7ed3\u679c \u548c \u771f\u5b9e \u7684 \u539f\u59cb \u6570\u636e \u539f\u59cb\u6570\u636e \uff0c \u4ee5\u4fbf \u8fdb\u884c \u7ed3\u679c \u8bc4\u4f30 \u548c \u5206\u6790 \u3002 temp = np . zeros ( ( len ( y _ test _ set ) , 200 ) ) origin _ temp = np . hstack ( ( temp , y _ test _ set ) ) predict _ temp = np . hstack ( ( temp , y _ predicted ) ) origin _ test = scaler . inverse _ transform ( origin _ temp ) predict _ test = scaler . inverse _ transform ( predict _ temp ) predict _ test = np . round ( predict _ test ) . astype ( int ) plot _ curve ( origin _ test [ : , - 1 ] , predict _ test [ : , - 1 ] ) \u5b9a\u4e49 plot _ curve \u51fd\u6570 \u7528\u4e8e \u7ed8\u5236 \u771f\u5b9e \u6570\u636e \u548c \u9884\u6d4b \u6570\u636e \u7684 \u66f2\u7ebf \u7ebf\u56fe \u66f2\u7ebf\u56fe \u3002 \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u4e4b\u524d \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002 def plot _ curve ( true _ data , predicted _ data ) : fig , ax = plt . subplots ( ) ax . plot ( true _ data , label = ' True data ' ) ax . plot ( predicted _ data , label = ' Predicted data ' ) ax . legend ( ) # \u8bbe\u7f6e y \u8f74 \u7684 \u683c\u5f0f \u683c\u5f0f\u5316 \u4e3a \u6574\u6570 ax . yaxis . set _ major _ formatter ( ticker . ScalarFormatter ( useOffset = False , useMathText = True ) ) ax . yaxis . set _ major _ locator ( ticker . MaxNLocator ( integer = True ) ) plt . show ( ) \u4e0b\u56fe \u57fa\u4e8e 200 \u79d2 \u7684 \u5386\u53f2 \u4ea4\u901a \u901a\u6d41 \u6d41\u91cf \u4ea4\u901a\u6d41 \u4ea4\u901a\u6d41\u91cf \u6570\u636e \uff0c \u5bf9 \u672a\u6765 \u65f6\u95f4 \u5e8f\u5217 \u7684 \u6d41\u91cf \u9884\u6d4b \u3002","title":"\u4ea4\u901a\u6d41\u91cf \u9884\u6d4b"},{"location":"tuto_M_add_map_alternative/","text":"\u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u8fd9\u4e9b \u65b9\u6cd5 \u6d89\u53ca \u6bd4 \u5305 \u548c \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5bfc\u5165 \u6307\u5357 \u4e2d \u63cf\u8ff0 \u7684 \u8fc7\u7a0b \u66f4 \u591a \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u9996\u5148 \u6211\u4eec \u5c06 \u4ecb\u7ecd RoadRuner \u63d2\u4ef6 \uff0c \u7136\u540e \u4ecb\u7ecd \u624b\u52a8 \u5bfc\u5165 \u65b9\u6cd5 \u3002 RoadRunner \u63d2\u4ef6 \u5bfc\u5165 \u624b\u52a8 \u5bfc\u5165 RoadRunner \u63d2\u4ef6 \u5bfc\u5165 MathWorks \u7684 RoadRunner \u8f6f\u4ef6 \u63d0\u4f9b \u4e86 \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \uff0c \u4ee5 \u5e2e\u52a9 \u7b80\u5316 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u8fc7\u7a0b \u3002 \u63d2\u4ef6 \u5b89\u88c5 1 . \u63d2\u4ef6 \u53ef \u4ece MathWorks \u7f51\u7ad9 \u4e0b\u8f7d \u3002 MathWorks \u8fd8\u6709 \u4e00\u4e2a \u5b8c\u6574 \u7684 \u6559\u7a0b \uff0c \u4e0e \u6b64 \u7c7b\u4f3c \uff0c \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u63d2\u4ef6 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 2 . \u89e3\u538b \u4e0b\u8f7d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u5185\u5bb9 \u5e76 \u5c06 RoadRunnerImporter \u548c RoadRunnerMaterials \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u79fb\u52a8 \u5230 < carla > / Unreal / CarlaUE4 / Plugins / \u3002 3 . \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u91cd\u5efa \u63d2\u4ef6 \uff1a \u5728 Windows \u4e0a \u3002 \u53f3\u952e \u5355\u51fb < carla > / Unreal / CarlaUE4 \u4e2d \u7684 . uproject \u6587\u4ef6 \uff0c \u5e76 \u9009\u62e9 Generate Visual Studio project files \u3002 \u5728 Carla \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u547d\u4ee4 \uff1a make launch \u5728 Linux \u4e0a \u3002 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a UE4 _ ROOT / GenerateProjectFiles . sh - project = \" carla / Unreal / CarlaUE4 / CarlaUE4 . uproject \" - game - engine 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \u9009\u4e2d \u4e24\u4e2a \u63d2\u4ef6 \u7684 \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 Edit > Plugins \u9009\u4e2d \u3002 \u5bfc\u5165 \u5730\u56fe 1 . \u4f7f\u7528 Import \u6309\u94ae \u5c06 < mapName > . fbx \u6587\u4ef6 \u5bfc\u5165 \u5bfc\u5165\u5230 / Content / Carla / Maps \u4e0b\u9762 \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u5c06 Scene > Hierarchy Type \u8bbe\u7f6e \u4e3a Create One Blueprint Asset \uff08 \u9ed8\u8ba4 \u9009\u62e9 \uff09 \u3002 3 . \u5c06 Static Meshes > Normal Import Method \u8bbe\u7f6e \u4e3a Import Normals \u3002 4 . \u70b9\u51fb Import \u3002 5 . \u4fdd\u5b58 \u5f53\u524d \u5173\u5361 File - > Save Current As ... - > < mapname > \u3002 \u65b0 \u5730\u56fe \u73b0\u5728 \u5e94\u8be5 \u51fa\u73b0 \u5728 \u865a\u5e7b \u5f15\u64ce \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u5176\u4ed6 \u5730\u56fe \u7684 \u65c1\u8fb9 \u3002 \u7b14\u8bb0 \u8bed\u4e49 \u5206\u5272 \u7684 \u6807\u7b7e \u5c06 \u6839\u636e \u8d44\u4ea7 \u540d\u79f0 \u5206\u914d \u3002 \u8be5 \u8d44\u6e90 \u5c06 \u88ab \u79fb\u52a8 \u5230 Content / Carla / PackageName / Static \u4e2d \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8981 \u66f4\u6539 \u8fd9\u4e9b \uff0c \u8bf7 \u5728 \u5bfc\u5165 \u540e \u624b\u52a8 \u79fb\u52a8 \u5b83\u4eec \u3002 \u624b\u52a8 \u5bfc\u5165 \u8fd9\u79cd \u5bfc\u5165 \u5730\u56fe \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u4e0e \u901a\u7528 . fbx \u548c . xodr \u6587\u4ef6 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 RoadRunner \uff0c \u5219 \u5e94 \u4f7f\u7528 Firebox ( . fbx ) \u3001 OpenDRIVE ( . xodr ) \u6216 Unreal ( . fbx + . xml ) \u5bfc\u51fa \u65b9\u6cd5 \u3002 \u4e0d\u8981 \u4f7f\u7528 \u8be5 Carla Exporter \u9009\u9879 \uff0c \u56e0\u4e3a \u60a8 \u5c06 \u9047\u5230 . fbx \u6587\u4ef6 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \u3002 \u8981 \u5c06 \u5730\u56fe \u624b\u52a8 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \uff1a 1 . \u5728 \u7cfb\u7edf \u7684 \u6587\u4ef6 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u5c06 . xodr \u6587\u4ef6 \u590d\u5236 \u590d\u5236\u5230 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u3002 2 . \u901a\u8fc7 \u5728 carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u8fd0\u884c make launch \u6765 \u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u5230 Content / Carla / Maps / BaseMap \u5e76 \u590d\u5236 BaseMap \u3002 \u8fd9 \u5c06 \u63d0\u4f9b \u5e26\u6709 \u9ed8\u8ba4 \u5929\u7a7a \u548c \u7167\u660e \u5bf9\u8c61 \u7684 \u7a7a\u767d \u5730\u56fe \u3002 3 . \u5728 \u76ee\u5f55 Content / Carla / Maps \u4e2d \u521b\u5efa \u4e00\u4e2a \u4ee5 \u60a8 \u7684 \u5730\u56fe \u5730\u56fe\u5305 \u540d\u79f0 \u547d\u540d \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u4ee5 \u4e0e \u60a8 \u7684 . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u7684 \u540d\u79f0 \u4fdd\u5b58 \u590d\u5236 \u7684 \u5730\u56fe \u3002 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u56de Content / Carla / Maps \u3002 \u53f3\u952e \u5355\u51fb \u7070\u8272 \u533a\u57df \u5e76 \u5728 \u6807\u9898 Import Asset \u4e0b \u9009\u62e9 Import to / Game / Carla / Maps ... \u3002 5 . \u5728 \u5f39\u51fa \u7684 \u914d\u7f6e \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \uff1a \u8fd9\u4e9b \u9009\u9879 \u672a \u9009\u4e2d \uff1a \u81ea\u52a8 \u751f\u6210 \u78b0\u649e ( Auto Generate Collision ) \u7ec4\u5408 \u7f51\u683c ( Combine Meshes ) Force Front xAxis \u5728 \u4ee5\u4e0b \u4e0b \u62c9 \u5217\u8868 \u4e2d \uff0c \u9009\u62e9 \u76f8\u5e94 \u7684 \u9009\u9879 \uff1a \u6cd5\u7ebf \u5bfc\u5165 \u65b9\u6cd5 - Import Normals \u6750\u8d28 \u5bfc\u5165 \u65b9\u6cd5 - Create New Materials \u68c0\u67e5 \u8fd9\u4e9b \u9009\u9879 \uff1a Convert Scene Unit Import Textures 6 . \u5355\u51fb Import \u3002 7 . \u7f51\u683c \u5c06 \u51fa\u73b0 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u9009\u62e9 \u7f51\u683c \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 8 . \u5c06 \u7f51\u683c \u7f6e\u4e8e 0 , 0 , 0 \u4e2d\u5fc3 \u3002 9 . \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u9009\u62e9 \u6240\u6709 \u9700\u8981 \u6709 \u78b0\u649e \u5668 \u7684 \u7f51\u683c \u4f53 \u3002 \u8fd9 \u662f \u6307 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u4ea4\u4e92 \u7684 \u4efb\u4f55 \u7f51\u683c \u3002 \u78b0\u649e \u5668 \u9632\u6b62 \u4ed6\u4eec \u6389\u5165 \u6df1\u6e0a \u3002 \u53f3\u952e \u5355\u51fb \u9009\u5b9a \u7684 \u7f51\u683c \u5e76 \u9009\u62e9 Asset Actions > Bulk Edit via Property Matrix ... \u3002 10 . \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u78b0\u649e ( collision ) \u3002 11 . \u5c06 Collision Complexity \u4ece Project Default \u6539\u4e3a Use Complex Collision As Simple \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 12 . \u6309 Alt + c \u786e\u8ba4 \u78b0\u649e \u8bbe\u7f6e \u5df2 \u6b63\u786e \u5e94\u7528 \u3002 \u60a8 \u4f1a \u5728 \u7f51\u683c \u4e0a \u770b\u5230 \u9ed1\u8272 \u7684 \u7f51 \u3002 13 . \u8981 \u4e3a \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u771f\u5b9e \u6570\u636e \uff0c \u8bf7 \u5c06 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u79fb\u52a8 \u5230 Carla / Static / < segment > \u9075\u5faa \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Content \u2514 \u2500 \u2500 Carla \u251c \u2500 \u2500 Blueprints \u251c \u2500 \u2500 Config \u251c \u2500 \u2500 Exported Maps \u251c \u2500 \u2500 HDMaps \u251c \u2500 \u2500 Maps \u2514 \u2500 \u2500 Static \u251c \u2500 \u2500 Terrain \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 Road \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 RoadLines | \u2514 \u2500 \u2500 mapname | \u2514 \u2500 \u2500 Static Meshes \u2514 \u2500 \u2500 Sidewalks \u2514 \u2500 \u2500 mapname \u2514 \u2500 \u2500 Static Meshes 14 . \u5728 \u201c \u6a21\u5f0f ( Modes ) \u201d \u9762\u677f \u4e2d \uff0c \u641c\u7d22 Open Drive Actor \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 15 . \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u9009\u4e2d Add Spawners \u5e76 \u5355\u51fb Generate Routes \u65c1\u8fb9 \u7684 \u6846 \u3002 \u8fd9 \u5c06 \u5728 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u76ee\u5f55 \u4e2d \u627e\u5230 \u5177\u6709 \u76f8\u540c \u5730\u56fe \u540d\u79f0 \u7684 . xodr \u6587\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u5b83 \u6765 \u751f\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 RoutePlanner \u548c VehicleSpawnPoint \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u4e0b \u4e00\u6b65 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5efa\u8bae \u4f7f\u7528 Carla \u5305 \u548c Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u6307\u5357 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u6d41\u7a0b \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u4f46\u662f \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u672c\u8282 \u4e2d \u5217\u51fa \u7684 \u65b9\u6cd5 \u3002 \u5982\u679c \u60a8 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u65b9\u6cd5 \u65f6 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002","title":"\u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5"},{"location":"tuto_M_add_map_alternative/#_1","text":"\u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u66ff\u4ee3 \u65b9\u6cd5 \u3002 \u8fd9\u4e9b \u65b9\u6cd5 \u6d89\u53ca \u6bd4 \u5305 \u548c \u4ee3\u7801 \u6e90\u4ee3\u7801 \u5bfc\u5165 \u6307\u5357 \u4e2d \u63cf\u8ff0 \u7684 \u8fc7\u7a0b \u66f4 \u591a \u7684 \u624b\u52a8 \u6b65\u9aa4 \u3002 \u9996\u5148 \u6211\u4eec \u5c06 \u4ecb\u7ecd RoadRuner \u63d2\u4ef6 \uff0c \u7136\u540e \u4ecb\u7ecd \u624b\u52a8 \u5bfc\u5165 \u65b9\u6cd5 \u3002 RoadRunner \u63d2\u4ef6 \u5bfc\u5165 \u624b\u52a8 \u5bfc\u5165","title":"\u5bfc\u5165 \u5730\u56fe \u7684 \u66ff\u4ee3 \u65b9\u6cd5"},{"location":"tuto_M_add_map_alternative/#roadrunner","text":"MathWorks \u7684 RoadRunner \u8f6f\u4ef6 \u63d0\u4f9b \u4e86 \u865a\u5e7b \u5f15\u64ce \u63d2\u4ef6 \uff0c \u4ee5 \u5e2e\u52a9 \u7b80\u5316 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u8fc7\u7a0b \u3002","title":"RoadRunner \u63d2\u4ef6 \u5bfc\u5165"},{"location":"tuto_M_add_map_alternative/#_2","text":"1 . \u63d2\u4ef6 \u53ef \u4ece MathWorks \u7f51\u7ad9 \u4e0b\u8f7d \u3002 MathWorks \u8fd8\u6709 \u4e00\u4e2a \u5b8c\u6574 \u7684 \u6559\u7a0b \uff0c \u4e0e \u6b64 \u7c7b\u4f3c \uff0c \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 \u63d2\u4ef6 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 2 . \u89e3\u538b \u4e0b\u8f7d \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u5185\u5bb9 \u5e76 \u5c06 RoadRunnerImporter \u548c RoadRunnerMaterials \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u79fb\u52a8 \u5230 < carla > / Unreal / CarlaUE4 / Plugins / \u3002 3 . \u6309\u7167 \u4ee5\u4e0b \u8bf4\u660e \u91cd\u5efa \u63d2\u4ef6 \uff1a \u5728 Windows \u4e0a \u3002 \u53f3\u952e \u5355\u51fb < carla > / Unreal / CarlaUE4 \u4e2d \u7684 . uproject \u6587\u4ef6 \uff0c \u5e76 \u9009\u62e9 Generate Visual Studio project files \u3002 \u5728 Carla \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u8fd0\u884c \u547d\u4ee4 \uff1a make launch \u5728 Linux \u4e0a \u3002 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \uff1a UE4 _ ROOT / GenerateProjectFiles . sh - project = \" carla / Unreal / CarlaUE4 / CarlaUE4 . uproject \" - game - engine 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \u9009\u4e2d \u4e24\u4e2a \u63d2\u4ef6 \u7684 \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 Edit > Plugins \u9009\u4e2d \u3002","title":"\u63d2\u4ef6 \u5b89\u88c5"},{"location":"tuto_M_add_map_alternative/#_3","text":"1 . \u4f7f\u7528 Import \u6309\u94ae \u5c06 < mapName > . fbx \u6587\u4ef6 \u5bfc\u5165 \u5bfc\u5165\u5230 / Content / Carla / Maps \u4e0b\u9762 \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u5c06 Scene > Hierarchy Type \u8bbe\u7f6e \u4e3a Create One Blueprint Asset \uff08 \u9ed8\u8ba4 \u9009\u62e9 \uff09 \u3002 3 . \u5c06 Static Meshes > Normal Import Method \u8bbe\u7f6e \u4e3a Import Normals \u3002 4 . \u70b9\u51fb Import \u3002 5 . \u4fdd\u5b58 \u5f53\u524d \u5173\u5361 File - > Save Current As ... - > < mapname > \u3002 \u65b0 \u5730\u56fe \u73b0\u5728 \u5e94\u8be5 \u51fa\u73b0 \u5728 \u865a\u5e7b \u5f15\u64ce \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u5176\u4ed6 \u5730\u56fe \u7684 \u65c1\u8fb9 \u3002 \u7b14\u8bb0 \u8bed\u4e49 \u5206\u5272 \u7684 \u6807\u7b7e \u5c06 \u6839\u636e \u8d44\u4ea7 \u540d\u79f0 \u5206\u914d \u3002 \u8be5 \u8d44\u6e90 \u5c06 \u88ab \u79fb\u52a8 \u5230 Content / Carla / PackageName / Static \u4e2d \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u8981 \u66f4\u6539 \u8fd9\u4e9b \uff0c \u8bf7 \u5728 \u5bfc\u5165 \u540e \u624b\u52a8 \u79fb\u52a8 \u5b83\u4eec \u3002","title":"\u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_alternative/#_4","text":"\u8fd9\u79cd \u5bfc\u5165 \u5730\u56fe \u7684 \u65b9\u6cd5 \u53ef\u4ee5 \u4e0e \u901a\u7528 . fbx \u548c . xodr \u6587\u4ef6 \u4e00\u8d77 \u4f7f\u7528 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 RoadRunner \uff0c \u5219 \u5e94 \u4f7f\u7528 Firebox ( . fbx ) \u3001 OpenDRIVE ( . xodr ) \u6216 Unreal ( . fbx + . xml ) \u5bfc\u51fa \u65b9\u6cd5 \u3002 \u4e0d\u8981 \u4f7f\u7528 \u8be5 Carla Exporter \u9009\u9879 \uff0c \u56e0\u4e3a \u60a8 \u5c06 \u9047\u5230 . fbx \u6587\u4ef6 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u95ee\u9898 \u517c\u5bb9\u6027 \u517c\u5bb9\u6027\u95ee\u9898 \u3002 \u8981 \u5c06 \u5730\u56fe \u624b\u52a8 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \uff1a 1 . \u5728 \u7cfb\u7edf \u7684 \u6587\u4ef6 \u8d44\u6e90 \u7ba1\u7406 \u8d44\u6e90\u7ba1\u7406 \u5668\u4e2d \uff0c \u5c06 . xodr \u6587\u4ef6 \u590d\u5236 \u590d\u5236\u5230 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u3002 2 . \u901a\u8fc7 \u5728 carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u8fd0\u884c make launch \u6765 \u6253\u5f00 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u5230 Content / Carla / Maps / BaseMap \u5e76 \u590d\u5236 BaseMap \u3002 \u8fd9 \u5c06 \u63d0\u4f9b \u5e26\u6709 \u9ed8\u8ba4 \u5929\u7a7a \u548c \u7167\u660e \u5bf9\u8c61 \u7684 \u7a7a\u767d \u5730\u56fe \u3002 3 . \u5728 \u76ee\u5f55 Content / Carla / Maps \u4e2d \u521b\u5efa \u4e00\u4e2a \u4ee5 \u60a8 \u7684 \u5730\u56fe \u5730\u56fe\u5305 \u540d\u79f0 \u547d\u540d \u7684 \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u5e76 \u4ee5 \u4e0e \u60a8 \u7684 . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u7684 \u540d\u79f0 \u4fdd\u5b58 \u590d\u5236 \u7684 \u5730\u56fe \u3002 4 . \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u56de Content / Carla / Maps \u3002 \u53f3\u952e \u5355\u51fb \u7070\u8272 \u533a\u57df \u5e76 \u5728 \u6807\u9898 Import Asset \u4e0b \u9009\u62e9 Import to / Game / Carla / Maps ... \u3002 5 . \u5728 \u5f39\u51fa \u7684 \u914d\u7f6e \u7a97\u53e3 \u4e2d \uff0c \u786e\u4fdd \uff1a \u8fd9\u4e9b \u9009\u9879 \u672a \u9009\u4e2d \uff1a \u81ea\u52a8 \u751f\u6210 \u78b0\u649e ( Auto Generate Collision ) \u7ec4\u5408 \u7f51\u683c ( Combine Meshes ) Force Front xAxis \u5728 \u4ee5\u4e0b \u4e0b \u62c9 \u5217\u8868 \u4e2d \uff0c \u9009\u62e9 \u76f8\u5e94 \u7684 \u9009\u9879 \uff1a \u6cd5\u7ebf \u5bfc\u5165 \u65b9\u6cd5 - Import Normals \u6750\u8d28 \u5bfc\u5165 \u65b9\u6cd5 - Create New Materials \u68c0\u67e5 \u8fd9\u4e9b \u9009\u9879 \uff1a Convert Scene Unit Import Textures 6 . \u5355\u51fb Import \u3002 7 . \u7f51\u683c \u5c06 \u51fa\u73b0 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u9009\u62e9 \u7f51\u683c \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 8 . \u5c06 \u7f51\u683c \u7f6e\u4e8e 0 , 0 , 0 \u4e2d\u5fc3 \u3002 9 . \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u9009\u62e9 \u6240\u6709 \u9700\u8981 \u6709 \u78b0\u649e \u5668 \u7684 \u7f51\u683c \u4f53 \u3002 \u8fd9 \u662f \u6307 \u4e0e \u884c\u4eba \u6216 \u8f66\u8f86 \u4ea4\u4e92 \u7684 \u4efb\u4f55 \u7f51\u683c \u3002 \u78b0\u649e \u5668 \u9632\u6b62 \u4ed6\u4eec \u6389\u5165 \u6df1\u6e0a \u3002 \u53f3\u952e \u5355\u51fb \u9009\u5b9a \u7684 \u7f51\u683c \u5e76 \u9009\u62e9 Asset Actions > Bulk Edit via Property Matrix ... \u3002 10 . \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u78b0\u649e ( collision ) \u3002 11 . \u5c06 Collision Complexity \u4ece Project Default \u6539\u4e3a Use Complex Collision As Simple \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 12 . \u6309 Alt + c \u786e\u8ba4 \u78b0\u649e \u8bbe\u7f6e \u5df2 \u6b63\u786e \u5e94\u7528 \u3002 \u60a8 \u4f1a \u5728 \u7f51\u683c \u4e0a \u770b\u5230 \u9ed1\u8272 \u7684 \u7f51 \u3002 13 . \u8981 \u4e3a \u8bed\u4e49 \u5206\u5272 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u521b\u5efa \u771f\u5b9e \u6570\u636e \uff0c \u8bf7 \u5c06 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u79fb\u52a8 \u5230 Carla / Static / < segment > \u9075\u5faa \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u76f8\u5e94 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Content \u2514 \u2500 \u2500 Carla \u251c \u2500 \u2500 Blueprints \u251c \u2500 \u2500 Config \u251c \u2500 \u2500 Exported Maps \u251c \u2500 \u2500 HDMaps \u251c \u2500 \u2500 Maps \u2514 \u2500 \u2500 Static \u251c \u2500 \u2500 Terrain \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 Road \u2502 \u2514 \u2500 \u2500 mapname \u2502 \u2514 \u2500 \u2500 Static Meshes \u2502 \u251c \u2500 \u2500 RoadLines | \u2514 \u2500 \u2500 mapname | \u2514 \u2500 \u2500 Static Meshes \u2514 \u2500 \u2500 Sidewalks \u2514 \u2500 \u2500 mapname \u2514 \u2500 \u2500 Static Meshes 14 . \u5728 \u201c \u6a21\u5f0f ( Modes ) \u201d \u9762\u677f \u4e2d \uff0c \u641c\u7d22 Open Drive Actor \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 15 . \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u9009\u4e2d Add Spawners \u5e76 \u5355\u51fb Generate Routes \u65c1\u8fb9 \u7684 \u6846 \u3002 \u8fd9 \u5c06 \u5728 < carla - root > / Unreal / CarlaUE4 / Content / Carla / Maps / OpenDrive \u76ee\u5f55 \u4e2d \u627e\u5230 \u5177\u6709 \u76f8\u540c \u5730\u56fe \u540d\u79f0 \u7684 . xodr \u6587\u4ef6 \uff0c \u5e76 \u4f7f\u7528 \u5b83 \u6765 \u751f\u6210 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 RoutePlanner \u548c VehicleSpawnPoint \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002","title":"\u624b\u52a8 \u5bfc\u5165"},{"location":"tuto_M_add_map_alternative/#_5","text":"\u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5efa\u8bae \u4f7f\u7528 Carla \u5305 \u548c Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u6307\u5357 \u4e2d \u8be6\u7ec6 \u4ecb\u7ecd \u7684 \u81ea\u52a8 \u81ea\u52a8\u5316 \u6d41\u7a0b \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u4f46\u662f \u5982\u679c \u9700\u8981 \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u672c\u8282 \u4e2d \u5217\u51fa \u7684 \u65b9\u6cd5 \u3002 \u5982\u679c \u60a8 \u5728 \u4f7f\u7528 \u5176\u4ed6 \u65b9\u6cd5 \u65f6 \u9047\u5230 \u4efb\u4f55 \u95ee\u9898 \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e16 \u3002","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_add_map_package/","text":"\u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe \u672c \u8282 \u4ecb\u7ecd \u5c06 \u5730\u56fe \u5f15\u5165 Carla \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u6b64 \u8fc7\u7a0b \u4ec5 \u9002\u7528 \u4e8e Linux \u7cfb\u7edf \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u6765 \u5bfc\u5165 \u76f8\u5173 \u6587\u4ef6 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u5bfc\u51fa \u4e3a \u72ec\u7acb \u5305 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u6784\u5efa Docker \u955c\u50cf \u5927\u7ea6 \u9700\u8981 4 \u5c0f\u65f6 \u548c 600 - 700 GB \u7684 \u65f6\u95f4 \u3002 \u4ec5 \u5728 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa \u6620\u50cf \u65f6\u624d \u9700\u8981 \u8fd9\u6837 \u505a \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a Ubuntu 16.04 + \u4e2d \u7684 64 \u4f4d \u7248\u672c Docker \u81f3\u5c11 8GB RAM \u7528\u4e8e \u6784\u5efa \u5bb9\u5668 \u6620\u50cf \u7684 \u81f3\u5c11 700 GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 Git \u7248\u672c \u63a7\u5236 \u7248\u672c\u63a7\u5236 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u4f7f\u7528 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u5df2 \u751f\u6210 \u7684 \u4e24\u4e2a \u6587\u4ef6 < mapName > . xodr \u548c < mapName > . fbx \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 < mapName > \u503c \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u540c\u4e00 \u5730\u56fe \u3002 Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165 1 . Carla \u63d0\u4f9b \u4e86 \u5728 Docker \u6620\u50cf \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca \u4f7f\u7528 \u8be5 \u6620\u50cf \u7f16\u8bd1 Carla \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9\u4e9b \u5de5\u5177 \u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u627e\u5230 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla 2 . \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 3 . \u521b\u5efa input _ folder \u3002 \u8fd9 \u662f \u60a8 \u653e\u7f6e \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u7684 \u4f4d\u7f6e \u3002 Docker \u4f1a \u81ea\u52a8 \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u6765 \u63cf\u8ff0 \u5305 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u3002 \u66f4\u6539 input _ folder \u7684 \u6743\u9650 \u624d\u80fd \u6210\u529f \u521b\u5efa \uff1a # Go to the parent folder , where the input folder is contained chmod 777 input _ folder \u7b14\u8bb0 \u5982\u679c \u5305\u662f \u624b\u52a8 \u51c6\u5907 \u7684 \uff0c \u5e76\u4e14 \u5df2 \u5305\u542b . json \u6587\u4ef6 \uff0c \u5219 \u65e0\u9700 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002 4 . \u521b\u5efa output _ folder \u3002 \u8fd9\u662f Docker \u955c\u50cf \u5728 \u70d8\u7119 \u5730\u56fe \u540e \u5199\u5165 \u8f93\u51fa \u6587\u4ef6 \u7684 \u5730\u65b9 \u3002 5 . \u5bfc\u822a \u81f3 ~ / carla / Util / Docker \u3002 \u8fd9\u662f \u5bfc\u5165 \u811a\u672c \u6240\u5728 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u811a\u672c \u9700\u8981 input _ folder \u548c output _ folder \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u5305 \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u63d0\u4f9b \u4e86 . json \u6587\u4ef6 \uff0c \u5219 \u8be5 \u6587\u4ef6 \u7684 \u540d\u79f0 \u662f \u5305 \u540d\u79f0 \uff0c \u5982\u679c \u672a \u63d0\u4f9b . json \uff0c \u5219 \u540d\u79f0 \u5fc5\u987b \u4e3a map _ package \uff1a python3 docker _ tools . py -- input ~ / path _ to _ input _ folder -- output ~ / path _ to _ output _ folder -- packages map _ package \u7b14\u8bb0 \u5982\u679c \u672a \u63d0\u4f9b \u53c2\u6570 -- packages map _ package \uff0c Docker \u955c\u50cf \u5c06 \u5236\u4f5c Carla \u5305 \u3002 6 . \u5305\u5c06 \u5728 output _ folder \u4e2d \u751f \u6210\u4e3a < map _ package > . tar . gz . \u3002 \u8fd9\u662f \u72ec\u7acb \u5305 \uff0c \u73b0\u5728 \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u5c06 \u5728 \u5176\u4e2d \u4f7f\u7528 \u5730\u56fe \u7684 \u5305 / \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \uff09 \u4e2d \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u4ece \u76ee\u5f55 \u6839\u76ee\u5f55 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \uff1a . / ImportAssets . sh 7 . \u8981 \u4f7f\u7528 \u65b0 \u5730\u56fe \u8fd0\u884c \u4eff\u771f \uff0c \u8bf7 \u8fd0\u884c Carla \uff0c \u7136\u540e \u4f7f\u7528 config . py \u6587\u4ef6 \u66f4\u6539 \u5730\u56fe \uff1a cd PythonAPI / util python3 config . py -- map < mapName > \u60a8 \u7684 \u5730\u56fe \u73b0\u5728 \u53ef\u4ee5 \u5728 Carla \u8fd0\u884c \u4eff\u771f \u4e86 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \uff0c \u3002 \u4e5f \u53ef\u4ee5 \u5c1d\u8bd5 \u5728 \u4f60 \u7684 \u65b0 \u5730\u56fe \u4e0a \u8fd0\u884c \u6211\u4eec \u7684 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u6d4b\u8bd5 \u5b83 \u3002","title":"\u5728 Carla \u5305 \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_package/#carla","text":"\u672c \u8282 \u4ecb\u7ecd \u5c06 \u5730\u56fe \u5f15\u5165 Carla \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u6b64 \u8fc7\u7a0b \u4ec5 \u9002\u7528 \u4e8e Linux \u7cfb\u7edf \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u8fd0\u884c \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u6765 \u5bfc\u5165 \u76f8\u5173 \u6587\u4ef6 \uff0c \u7136\u540e \u5c06 \u5b83\u4eec \u5bfc\u51fa \u4e3a \u72ec\u7acb \u5305 \uff0c \u7136\u540e \u53ef\u4ee5 \u5c06 \u5176 \u914d\u7f6e \u4e3a \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u6784\u5efa Docker \u955c\u50cf \u5927\u7ea6 \u9700\u8981 4 \u5c0f\u65f6 \u548c 600 - 700 GB \u7684 \u65f6\u95f4 \u3002 \u4ec5 \u5728 \u7b2c\u4e00 \u4e00\u6b21 \u7b2c\u4e00\u6b21 \u6784\u5efa \u6620\u50cf \u65f6\u624d \u9700\u8981 \u8fd9\u6837 \u505a \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165","title":"\u5728 Carla \u5305\u4e2d \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_package/#_1","text":"\u60a8 \u9700\u8981 \u6ee1\u8db3 \u4ee5\u4e0b \u7cfb\u7edf \u8981\u6c42 \uff1a Ubuntu 16.04 + \u4e2d \u7684 64 \u4f4d \u7248\u672c Docker \u81f3\u5c11 8GB RAM \u7528\u4e8e \u6784\u5efa \u5bb9\u5668 \u6620\u50cf \u7684 \u81f3\u5c11 700 GB \u53ef\u7528 \u78c1\u76d8 \u7a7a\u95f4 \u78c1\u76d8\u7a7a\u95f4 Git \u7248\u672c \u63a7\u5236 \u7248\u672c\u63a7\u5236 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u9075\u5faa \u6b64\u5904 \u7684 \u6307\u5357 \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u4f7f\u7528 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u5df2 \u751f\u6210 \u7684 \u4e24\u4e2a \u6587\u4ef6 < mapName > . xodr \u548c < mapName > . fbx \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 < mapName > \u503c \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u540c\u4e00 \u5730\u56fe \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_add_map_package/#carla_1","text":"1 . Carla \u63d0\u4f9b \u4e86 \u5728 Docker \u6620\u50cf \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u4ee5\u53ca \u4f7f\u7528 \u8be5 \u6620\u50cf \u7f16\u8bd1 Carla \u7684 \u6240\u6709 \u5b9e\u7528 \u7a0b\u5e8f \u5b9e\u7528\u7a0b\u5e8f \u3002 \u8fd9\u4e9b \u5de5\u5177 \u53ef\u4ee5 \u5728 GitHub \u4e0a \u7684 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e2d \u627e\u5230 \u3002 \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u514b\u9686 \u5b58\u50a8 \u5e93 \uff1a git clone https : / / github . com / carla - simulator / carla 2 . \u6309\u7167 \u8fd9\u4e9b \u8bf4\u660e \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u7684 Docker \u6620\u50cf \u3002 3 . \u521b\u5efa input _ folder \u3002 \u8fd9 \u662f \u60a8 \u653e\u7f6e \u8981 \u5bfc\u5165 \u7684 \u6587\u4ef6 \u7684 \u4f4d\u7f6e \u3002 Docker \u4f1a \u81ea\u52a8 \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u6765 \u63cf\u8ff0 \u5305 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u3002 \u66f4\u6539 input _ folder \u7684 \u6743\u9650 \u624d\u80fd \u6210\u529f \u521b\u5efa \uff1a # Go to the parent folder , where the input folder is contained chmod 777 input _ folder \u7b14\u8bb0 \u5982\u679c \u5305\u662f \u624b\u52a8 \u51c6\u5907 \u7684 \uff0c \u5e76\u4e14 \u5df2 \u5305\u542b . json \u6587\u4ef6 \uff0c \u5219 \u65e0\u9700 \u6267\u884c \u6b64 \u64cd\u4f5c \u3002 4 . \u521b\u5efa output _ folder \u3002 \u8fd9\u662f Docker \u955c\u50cf \u5728 \u70d8\u7119 \u5730\u56fe \u540e \u5199\u5165 \u8f93\u51fa \u6587\u4ef6 \u7684 \u5730\u65b9 \u3002 5 . \u5bfc\u822a \u81f3 ~ / carla / Util / Docker \u3002 \u8fd9\u662f \u5bfc\u5165 \u811a\u672c \u6240\u5728 \u7684 \u4f4d\u7f6e \u3002 \u8be5 \u811a\u672c \u9700\u8981 input _ folder \u548c output _ folder \u7684 \u8def\u5f84 \u4ee5\u53ca \u8981 \u5bfc\u5165 \u5305 \u7684 \u540d\u79f0 \u3002 \u5982\u679c \u63d0\u4f9b \u4e86 . json \u6587\u4ef6 \uff0c \u5219 \u8be5 \u6587\u4ef6 \u7684 \u540d\u79f0 \u662f \u5305 \u540d\u79f0 \uff0c \u5982\u679c \u672a \u63d0\u4f9b . json \uff0c \u5219 \u540d\u79f0 \u5fc5\u987b \u4e3a map _ package \uff1a python3 docker _ tools . py -- input ~ / path _ to _ input _ folder -- output ~ / path _ to _ output _ folder -- packages map _ package \u7b14\u8bb0 \u5982\u679c \u672a \u63d0\u4f9b \u53c2\u6570 -- packages map _ package \uff0c Docker \u955c\u50cf \u5c06 \u5236\u4f5c Carla \u5305 \u3002 6 . \u5305\u5c06 \u5728 output _ folder \u4e2d \u751f \u6210\u4e3a < map _ package > . tar . gz . \u3002 \u8fd9\u662f \u72ec\u7acb \u5305 \uff0c \u73b0\u5728 \u53ef\u4ee5 \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002 \u5c06 \u5305 \u79fb\u52a8 \u5230 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u5c06 \u5728 \u5176\u4e2d \u4f7f\u7528 \u5730\u56fe \u7684 \u5305 / \u8fdb\u5236 \u4e8c\u8fdb\u5236 \u7248\u672c \uff09 \u4e2d \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff0c \u7136\u540e \u4ece \u76ee\u5f55 \u6839\u76ee\u5f55 \u8fd0\u884c \u4ee5\u4e0b \u811a\u672c \u5c06 \u5176 \u5bfc\u5165 \uff1a . / ImportAssets . sh 7 . \u8981 \u4f7f\u7528 \u65b0 \u5730\u56fe \u8fd0\u884c \u4eff\u771f \uff0c \u8bf7 \u8fd0\u884c Carla \uff0c \u7136\u540e \u4f7f\u7528 config . py \u6587\u4ef6 \u66f4\u6539 \u5730\u56fe \uff1a cd PythonAPI / util python3 config . py -- map < mapName > \u60a8 \u7684 \u5730\u56fe \u73b0\u5728 \u53ef\u4ee5 \u5728 Carla \u8fd0\u884c \u4eff\u771f \u4e86 \u3002 \u5982\u679c \u4f60 \u5bf9 \u8fd9\u4e2a \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u4f60 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e0a \u63d0\u95ee \uff0c \u3002 \u4e5f \u53ef\u4ee5 \u5c1d\u8bd5 \u5728 \u4f60 \u7684 \u65b0 \u5730\u56fe \u4e0a \u8fd0\u884c \u6211\u4eec \u7684 \u4e00\u4e9b \u793a\u4f8b \u811a\u672c \u6765 \u6d4b\u8bd5 \u5b83 \u3002","title":"Carla \u5305\u4e2d \u7684 \u5730\u56fe \u5bfc\u5165"},{"location":"tuto_M_add_map_source/","text":"\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u672c \u8282 \u63cf\u8ff0 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 Carla \u7684 \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u901a\u8fc7 \u5c06 \u76f8\u5173 \u5730\u56fe \u6587\u4ef6 \u7f16\u8bd1 \u5230 \u5305\u4e2d\u6765 \u5bfc\u5165 \u5b83\u4eec \u3002 \u7136\u540e \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u8be5\u5305 \u5e76 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u7136\u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u5e76 \u6700\u7ec8 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u5305\u4e2d \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5730\u56fe \u5bfc\u5165 \u4e0b \u4e00\u6b65 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e24\u4e2a \u6587\u4ef6 \uff0c < mapName > . xodr \u548c < mapName > . fbx \uff0c \u662f \u7531 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u751f\u6210 \u7684 \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 \u503c < mapName > \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u76f8\u540c \u7684 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u591a\u4e2a \u5730\u56fe \u63d0\u53d6 \u5230 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u5305\u4e2d \u3002 \u6bcf\u5f20 \u5730\u56fe \u90fd \u5e94\u8be5 \u6709 \u4e00\u4e2a \u552f\u4e00 \u7684 \u540d\u79f0 \u3002 \u5730\u56fe \u5bfc\u5165 1 . \u5c06 \u9700\u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u6587\u4ef6 \u653e\u5165 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u63d0\u53d6 \u6587\u4ef6 \uff1a make import \u8bf7 \u6ce8\u610f \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u4e24\u4e2a \u53ef \u9009 \u53c2\u6570 \u6807\u5fd7 : -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u6444\u53d6 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u5c06 \u4f7f\u7528 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u540d\u79f0 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 Unreal / CarlaUE4 / Content \u3002 \u5b83 \u5c06 \u5305\u542b \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u8d85\u901f \u6321 \u3001 \u9759\u6001 \u8d44\u4ea7 \u4fe1\u606f \u548c \u5bfc\u822a \u4fe1\u606f \u3002 \u4e0b \u4e00\u6b65 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u5728 Carla \u6e90 \u6784\u5efa \u4e2d \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_source/#carla","text":"\u672c \u8282 \u63cf\u8ff0 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 Carla \u7684 \u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u6765 \u5bfc\u5165 \u5730\u56fe \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bfc\u5165 \u8fc7\u7a0b \u6d89\u53ca \u901a\u8fc7 \u5c06 \u76f8\u5173 \u5730\u56fe \u6587\u4ef6 \u7f16\u8bd1 \u5230 \u5305\u4e2d\u6765 \u5bfc\u5165 \u5b83\u4eec \u3002 \u7136\u540e \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u8be5\u5305 \u5e76 \u8fdb\u884c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \uff0c \u7136\u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u5e76 \u6700\u7ec8 \u5c06 \u5176 \u6dfb\u52a0 \u5230 \u5305\u4e2d \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5730\u56fe \u5bfc\u5165 \u4e0b \u4e00\u6b65","title":"\u4ece \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u4e2d \u5bfc\u5165 \u5730\u56fe"},{"location":"tuto_M_add_map_source/#_1","text":"\u786e\u4fdd \u786e\u4fdd\u60a8 \u4f7f\u7528 \u7684 \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7248\u672c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6559\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 \u60a8 \u5e94\u8be5 \u81f3\u5c11 \u6709 \u4e24\u4e2a \u6587\u4ef6 \uff0c < mapName > . xodr \u548c < mapName > . fbx \uff0c \u662f \u7531 \u5730\u56fe \u7f16\u8f91 \u7f16\u8f91\u5668 \uff08 \u4f8b\u5982 RoadRunner \uff09 \u751f\u6210 \u7684 \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u5e94 \u5177\u6709 \u76f8\u540c \u7684 \u503c < mapName > \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u76f8\u540c \u7684 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u591a\u4e2a \u5730\u56fe \u63d0\u53d6 \u5230 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u5305\u4e2d \u3002 \u6bcf\u5f20 \u5730\u56fe \u90fd \u5e94\u8be5 \u6709 \u4e00\u4e2a \u552f\u4e00 \u7684 \u540d\u79f0 \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_add_map_source/#_2","text":"1 . \u5c06 \u9700\u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u6587\u4ef6 \u653e\u5165 Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 2 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u63d0\u53d6 \u6587\u4ef6 \uff1a make import \u8bf7 \u6ce8\u610f \uff0c \u53ef\u4ee5 \u8bbe\u7f6e \u4e24\u4e2a \u53ef \u9009 \u53c2\u6570 \u6807\u5fd7 : -- package = < package _ name > \u6307\u5b9a \u5305 \u7684 \u540d\u79f0 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u6b64\u9879 \u8bbe\u7f6e \u4e3a map _ package \u3002 \u4e24\u4e2a \u5305 \u4e0d\u80fd \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \uff0c \u56e0\u6b64 \u4f7f\u7528 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u5c06 \u5bfc\u81f4 \u540e\u7eed \u6444\u53d6 \u65f6 \u51fa\u9519 \u3002 \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u66f4\u6539 \u5305 \u7684 \u540d\u79f0 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- package = < package _ name > \" -- no - carla - materials \u6307\u5b9a \u60a8 \u4e0d\u60f3 \u4f7f\u7528 \u9ed8\u8ba4 \u7684 Carla \u6750\u8d28 \uff08 \u9053\u8def \u7eb9\u7406 \u7b49 \uff09 \u3002 \u60a8 \u5c06 \u6539\u7528 RoadRunner \u6750\u6599 \u3002 \u4ec5 \u5f53 \u60a8 \u4e0d \u63d0\u4f9b \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u65f6\u624d \u9700\u8981 \u6b64 \u6807\u5fd7 \u3002 . json \u6587\u4ef6 \u4e2d \u7684 \u4efb\u4f55 \u503c \u90fd \u5c06 \u8986\u76d6 \u6b64 \u6807\u5fd7 \u3002 \u901a\u8fc7 \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u6765 \u4f7f\u7528 \u6b64 \u6807\u5fd7 \uff1a make import ARGS = \" -- no - carla - materials \" \u5c06 \u4f7f\u7528 \u5730\u56fe \u5730\u56fe\u5305 \u7684 \u540d\u79f0 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 Unreal / CarlaUE4 / Content \u3002 \u5b83 \u5c06 \u5305\u542b \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3001 \u8d85\u901f \u6321 \u3001 \u9759\u6001 \u8d44\u4ea7 \u4fe1\u606f \u548c \u5bfc\u822a \u4fe1\u606f \u3002","title":"\u5730\u56fe \u5bfc\u5165"},{"location":"tuto_M_add_map_source/#_3","text":"\u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u6253\u5f00 \u5730\u56fe \u5e76 \u8fd0\u884c \u4eff\u771f \u3002 \u4ece \u8fd9\u91cc \uff0c \u60a8 \u5c06 \u80fd\u591f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6570\u636e \u3002 \u6211\u4eec \u5efa\u8bae \u5728 \u6240\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5b8c\u6210 \u540e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \uff0c \u8fd9\u6837 \u5c31 \u4e0d\u4f1a \u6709 \u969c\u788d \u969c\u788d\u7269 \u963b\u6321 \u884c\u4eba \u8def\u5f84 \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_add_tl/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3001 \u914d\u7f6e \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u7684 \u5f71\u54cd \u533a\u57df \uff0c \u4ee5\u53ca \u5982\u4f55 \u5728 \u8def\u53e3 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u914d\u7f6e \u4e3a \u4e00\u7ec4 \u3002 \u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u4e0b \u4e00\u6b65 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficLight / StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 Details \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 4 . \u5bf9\u4e8e \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6807\u5fd7 \u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece Content Browser \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 trigger volume \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7ea2\u7eff\u706f \u548c \u6807\u5fd7"},{"location":"tuto_M_custom_add_tl/#_1","text":"\u672c \u6307\u5357 \u4ecb\u7ecd \u4e86 \u5982\u4f55 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u6dfb\u52a0 \u5230 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3001 \u914d\u7f6e \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u7684 \u5f71\u54cd \u533a\u57df \uff0c \u4ee5\u53ca \u5982\u4f55 \u5728 \u8def\u53e3 \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u914d\u7f6e \u4e3a \u4e00\u7ec4 \u3002 \u6b64 \u9009\u9879 \u4ec5 \u9002\u7528 \u4e8e \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u4ea4\u901a\u706f \u548c \u6807\u5fd7"},{"location":"tuto_M_custom_add_tl/#_2","text":"\u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficLight / StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 Details \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 4 . \u5bf9\u4e8e \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u4ea4\u6c47 \u4ea4\u6c47\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002","title":"\u7ea2\u7eff\u706f"},{"location":"tuto_M_custom_add_tl/#_3","text":"\u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece Content Browser \uff0c \u5bfc\u822a \u81f3 Content / Carla / Static / TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 trigger volume \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002","title":"\u7ea2\u7eff\u706f \u6807\u5fd7"},{"location":"tuto_M_custom_add_tl/#_4","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_buildings/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51 \u7ed3\u6784 \u7ed3\u6784 \u4fee\u6539 \u4e0b \u4e00\u6b65 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u5141\u8bb8 \u60a8 \u521b\u5efa \u7531 \u4e0d\u540c \u697c\u5c42 \u7ec4\u6210 \u7684 \u77e9\u5f62 \u5efa\u7b51 \u3002 \u6bcf\u4e2a \u7ea7\u522b \u90fd \u662f \u4f7f\u7528 \u53ef \u914d\u7f6e \u7684 \u7f51\u683c \u9635\u5217 \u6216 \u5355\u4e2a \u84dd\u56fe \u6784\u5efa \u7684 \u3002 \u5982\u679c \u4f7f\u7528 \u7f51\u683c \u9635\u5217 \uff0c \u5219 \u6bcf\u4e2a \u7f51\u683c \u5c06 \u6cbf \u5173\u5361 \u968f\u673a \u91cd\u590d \u4ee5 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \u3002 \u7f51\u683c \u4f53 \u521b\u5efa \u4e00\u6b21 \uff0c \u6bcf\u4e2a \u91cd\u590d \u90fd \u5c06 \u662f \u8be5 \u7f51\u683c \u4f53 \u7684 \u4e00\u4e2a \u5b9e\u4f8b \u3002 \u8fd9 \u53ef\u4ee5 \u63d0\u9ad8 \u5730\u56fe \u7684 \u6027\u80fd \u3002 \u5efa\u7b51 \u7ed3\u6784 \u8981 \u5f00\u59cb \u5efa\u9020 \u60a8 \u7684 \u5efa\u7b51 \uff1a \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 BP _ Procedural _ Building \u62d6\u5165 BP _ Procedural _ Building \u573a\u666f \u4e2d \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6240\u6709 \u9009\u9879 \u3002 \u6bcf\u6b21 \u5728 \u6b64\u5904 \u8fdb\u884c \u66f4\u6539 \u65f6 \uff0c \u968f\u7740 \u5173\u952e \u7f51\u683c \u4f53 \u7684 \u66f4\u65b0 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u4ece \u573a\u666f \u89c6\u56fe \u4e2d \u6d88\u5931 \u3002 \u5355\u51fb Create Building \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \uff0c \u6216 \u542f\u7528 \u81ea\u52a8 \u521b\u5efa \u4ee5 \u907f\u514d \u91cd\u590d \u6b64 \u6b65\u9aa4 \u3002 \u5173\u952e \u7f51\u683c \u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ed3\u6784 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b83\u4eec \u5206\u4e3a \u56db\u7c7b \uff1a Base : \u5e95\u5c42 \u3002 Body : \u4e2d\u5c42 \u3002 Top : \u6700\u9ad8 \u9ad8\u5c42 \u6700\u9ad8\u5c42 \u3002 Roof : \u8986\u76d6 \u9876\u5c42 \u7684 \u5c4b\u9876 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u6a21\u578b \uff0c \u9664\u4e86 \u5c4b\u9876 Roof \u4e4b\u5916 \uff0c \u90fd \u6709 \u4e00\u4e2a \u7f51\u683c \u4f53 \u586b\u5145 \u5730\u677f \u7684 \u4e2d\u5fc3 \uff0c \u8fd8\u6709 \u4e00\u4e2a Corner \u7f51\u683c \u4f53\u5c06 \u653e\u7f6e \u5728 \u5730\u677f \u7684 \u4e24\u4fa7 \u3002 \u4e0b\u56fe \u4ee3\u8868 \u4e86 \u5168\u5c40 \u7ed3\u6784 \u3002 \u5efa\u7b51 \u7ed3\u6784 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 Base parameters \u8bbe\u7f6e \u5c3a\u5bf8 \u3002 \u697c\u5c42 \u6570 \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u697c\u5c42 \u6570 \u3002 \u8eab\u4f53 \u7f51\u683c Body \u7684 \u91cd\u590d \u3002 \u957f\u5ea6 X \u548c \u957f\u5ea6 Y \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u957f\u5ea6 \u548c \u5bbd\u5ea6 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6bcf \u4e00\u4fa7 \u7684 \u4e2d\u592e \u7f51\u683c \u91cd\u590d \u3002 BP _ Procedural _ Building \u793a\u4f8b \u3002 \u7ed3\u6784 \u4fee\u6539 \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u9009\u9879 \u53ef\u4ee5 \u4fee\u6539 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u603b\u4f53 \u7ed3\u6784 \u3002 Disable corners : \u5982\u679c \u9009\u62e9 \uff0c \u5c06 \u4e0d \u4f7f\u7528 \u89d2 \u7f51\u683c \u3002 Use full blocks : \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7ed3\u6784 \u6bcf\u5c42 \u5c06 \u4ec5 \u4f7f\u7528 \u4e00\u4e2a \u7f51\u683c \u3002 \u6bcf \u5c42\u697c \u4e0d\u4f1a \u51fa\u73b0 \u4efb\u4f55 \u89d2\u843d \u6216 \u91cd\u590d \u3002 Doors : \u51fa\u73b0 \u5728 \u5e95\u5c42 \u3001 \u4f4d\u4e8e \u4e2d\u592e \u7f51\u683c \u7269\u4f53 \u6b63\u524d \u524d\u65b9 \u6b63\u524d\u65b9 \u7684 \u7f51\u683c \u7269\u4f53 \u3002 \u95e8 \u7684 \u6570\u91cf \u53ca\u5176 \u4f4d\u7f6e \u53ef\u4ee5 \u8bbe\u7f6e \u3002 0 \u662f \u521d\u59cb \u4f4d\u7f6e \u3001 1 \u662f \u4e0b \u4e00\u4e2a \u5e95\u5c42 \u91cd\u590d \u7b49 \u3002 Walls : \u66ff\u4ee3 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e00\u4fa7 \u6216\u591a\u4fa7 \u7684 \u7f51\u683c \u3002 \u4f8b\u5982 \uff0c \u5e73\u9762 \u7f51\u683c \u53ef \u7528\u4e8e \u7ed8\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u4fa7 \u3002 \u5de6\u8fb9 \u662f \u4e00\u5ea7 \u6ca1\u6709 \u89d2 \u3001 \u53ea\u6709 \u4e00\u6247 \u6247\u95e8 \u4e00\u6247\u95e8 \u7684 \u5efa\u7b51 \u3002 \u53f3\u4fa7 \u662f \u4e00\u5ea7 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u5176 \u4e00\u4fa7 \u5e94\u7528 \u4e86 \u5899\u58c1 \u3002 \u5899\u58c1 \u662f \u6ca1\u6709 \u9632\u706b \u901a\u9053 \u7684 \u7eb9\u7406 \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u84dd\u56fe \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f \u5efa\u7b51"},{"location":"tuto_M_custom_buildings/#_1","text":"\u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51 \u7ed3\u6784 \u7ed3\u6784 \u4fee\u6539 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u7a0b\u5e8f\u5316 \u5efa\u7b51"},{"location":"tuto_M_custom_buildings/#_2","text":"\u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5de5\u5177 \u5141\u8bb8 \u60a8 \u521b\u5efa \u7531 \u4e0d\u540c \u697c\u5c42 \u7ec4\u6210 \u7684 \u77e9\u5f62 \u5efa\u7b51 \u3002 \u6bcf\u4e2a \u7ea7\u522b \u90fd \u662f \u4f7f\u7528 \u53ef \u914d\u7f6e \u7684 \u7f51\u683c \u9635\u5217 \u6216 \u5355\u4e2a \u84dd\u56fe \u6784\u5efa \u7684 \u3002 \u5982\u679c \u4f7f\u7528 \u7f51\u683c \u9635\u5217 \uff0c \u5219 \u6bcf\u4e2a \u7f51\u683c \u5c06 \u6cbf \u5173\u5361 \u968f\u673a \u91cd\u590d \u4ee5 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \u3002 \u7f51\u683c \u4f53 \u521b\u5efa \u4e00\u6b21 \uff0c \u6bcf\u4e2a \u91cd\u590d \u90fd \u5c06 \u662f \u8be5 \u7f51\u683c \u4f53 \u7684 \u4e00\u4e2a \u5b9e\u4f8b \u3002 \u8fd9 \u53ef\u4ee5 \u63d0\u9ad8 \u5730\u56fe \u7684 \u6027\u80fd \u3002","title":"\u7a0b\u5e8f\u5316 \u5efa\u7b51"},{"location":"tuto_M_custom_buildings/#_3","text":"\u8981 \u5f00\u59cb \u5efa\u9020 \u60a8 \u7684 \u5efa\u7b51 \uff1a \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 BP _ Procedural _ Building \u62d6\u5165 BP _ Procedural _ Building \u573a\u666f \u4e2d \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u60a8 \u5c06 \u770b\u5230 \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u6240\u6709 \u9009\u9879 \u3002 \u6bcf\u6b21 \u5728 \u6b64\u5904 \u8fdb\u884c \u66f4\u6539 \u65f6 \uff0c \u968f\u7740 \u5173\u952e \u7f51\u683c \u4f53 \u7684 \u66f4\u65b0 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u5c06 \u4ece \u573a\u666f \u89c6\u56fe \u4e2d \u6d88\u5931 \u3002 \u5355\u51fb Create Building \u4ee5 \u67e5\u770b \u65b0 \u7ed3\u679c \uff0c \u6216 \u542f\u7528 \u81ea\u52a8 \u521b\u5efa \u4ee5 \u907f\u514d \u91cd\u590d \u6b64 \u6b65\u9aa4 \u3002 \u5173\u952e \u7f51\u683c \u662f \u5efa\u7b51 \u5efa\u7b51\u7269 \u7ed3\u6784 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u5b83\u4eec \u5206\u4e3a \u56db\u7c7b \uff1a Base : \u5e95\u5c42 \u3002 Body : \u4e2d\u5c42 \u3002 Top : \u6700\u9ad8 \u9ad8\u5c42 \u6700\u9ad8\u5c42 \u3002 Roof : \u8986\u76d6 \u9876\u5c42 \u7684 \u5c4b\u9876 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u6a21\u578b \uff0c \u9664\u4e86 \u5c4b\u9876 Roof \u4e4b\u5916 \uff0c \u90fd \u6709 \u4e00\u4e2a \u7f51\u683c \u4f53 \u586b\u5145 \u5730\u677f \u7684 \u4e2d\u5fc3 \uff0c \u8fd8\u6709 \u4e00\u4e2a Corner \u7f51\u683c \u4f53\u5c06 \u653e\u7f6e \u5728 \u5730\u677f \u7684 \u4e24\u4fa7 \u3002 \u4e0b\u56fe \u4ee3\u8868 \u4e86 \u5168\u5c40 \u7ed3\u6784 \u3002 \u5efa\u7b51 \u7ed3\u6784 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u57fa\u672c \u672c\u53c2 \u53c2\u6570 \u57fa\u672c\u53c2\u6570 Base parameters \u8bbe\u7f6e \u5c3a\u5bf8 \u3002 \u697c\u5c42 \u6570 \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u697c\u5c42 \u6570 \u3002 \u8eab\u4f53 \u7f51\u683c Body \u7684 \u91cd\u590d \u3002 \u957f\u5ea6 X \u548c \u957f\u5ea6 Y \uff1a \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u957f\u5ea6 \u548c \u5bbd\u5ea6 \u3002 \u5efa\u7b51 \u5efa\u7b51\u7269 \u6bcf \u4e00\u4fa7 \u7684 \u4e2d\u592e \u7f51\u683c \u91cd\u590d \u3002 BP _ Procedural _ Building \u793a\u4f8b \u3002","title":"\u5efa\u7b51 \u7ed3\u6784"},{"location":"tuto_M_custom_buildings/#_4","text":"\u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u9009\u9879 \u53ef\u4ee5 \u4fee\u6539 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u603b\u4f53 \u7ed3\u6784 \u3002 Disable corners : \u5982\u679c \u9009\u62e9 \uff0c \u5c06 \u4e0d \u4f7f\u7528 \u89d2 \u7f51\u683c \u3002 Use full blocks : \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u7ed3\u6784 \u6bcf\u5c42 \u5c06 \u4ec5 \u4f7f\u7528 \u4e00\u4e2a \u7f51\u683c \u3002 \u6bcf \u5c42\u697c \u4e0d\u4f1a \u51fa\u73b0 \u4efb\u4f55 \u89d2\u843d \u6216 \u91cd\u590d \u3002 Doors : \u51fa\u73b0 \u5728 \u5e95\u5c42 \u3001 \u4f4d\u4e8e \u4e2d\u592e \u7f51\u683c \u7269\u4f53 \u6b63\u524d \u524d\u65b9 \u6b63\u524d\u65b9 \u7684 \u7f51\u683c \u7269\u4f53 \u3002 \u95e8 \u7684 \u6570\u91cf \u53ca\u5176 \u4f4d\u7f6e \u53ef\u4ee5 \u8bbe\u7f6e \u3002 0 \u662f \u521d\u59cb \u4f4d\u7f6e \u3001 1 \u662f \u4e0b \u4e00\u4e2a \u5e95\u5c42 \u91cd\u590d \u7b49 \u3002 Walls : \u66ff\u4ee3 \u5efa\u7b51 \u5efa\u7b51\u7269 \u4e00\u4fa7 \u6216\u591a\u4fa7 \u7684 \u7f51\u683c \u3002 \u4f8b\u5982 \uff0c \u5e73\u9762 \u7f51\u683c \u53ef \u7528\u4e8e \u7ed8\u5236 \u5efa\u7b51 \u5efa\u7b51\u7269 \u7684 \u4e00\u4fa7 \u3002 \u5de6\u8fb9 \u662f \u4e00\u5ea7 \u6ca1\u6709 \u89d2 \u3001 \u53ea\u6709 \u4e00\u6247 \u6247\u95e8 \u4e00\u6247\u95e8 \u7684 \u5efa\u7b51 \u3002 \u53f3\u4fa7 \u662f \u4e00\u5ea7 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff0c \u5176 \u4e00\u4fa7 \u5e94\u7528 \u4e86 \u5899\u58c1 \u3002 \u5899\u58c1 \u662f \u6ca1\u6709 \u9632\u706b \u901a\u9053 \u7684 \u7eb9\u7406 \u3002","title":"\u7ed3\u6784 \u4fee\u6539"},{"location":"tuto_M_custom_buildings/#_5","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u84dd\u56fe \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_layers/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe \u5229\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u7684 \u7ea7\u522b \u53ef\u4ee5 \u8ba9 \u591a \u4eba \u540c\u65f6 \u5728 \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u60a8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u4f7f\u7528 Python API \u5728 \u5730\u56fe \u4e0a \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff0c \u5c31 \u50cf \u5206\u5c42 \u7684 Carla \u5730\u56fe \u4e00\u6837 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u3001 \u5982\u4f55 \u5411 \u5173\u5361 \u6dfb\u52a0 \u8d44\u6e90 \u4ee5\u53ca \u5982\u4f55 \u5c06 \u5173\u5361 \u914d\u7f6e \u4e3a \u59cb\u7ec8 \u52a0\u8f7d \u6216 \u4e0d \u52a0\u8f7d \u3002 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361 \u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879 \u4e0b \u4e00\u6b65 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u65b0 \u5173\u5361 \u90fd \u5c06 \u5d4c\u5957 \u5728 \u7236 \u5173\u5361 \u4e2d \uff0c \u79f0\u4e3a \u201c \u6301\u4e45 \u5173\u5361 \u201d \u3002 \u8981 \u521b\u5efa \u65b0 \u5173\u5361 \uff1a 1 . \u6253\u5f00 \u5173\u5361 \u9762\u677f \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u4ece \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u6253\u5f00 \u201c \u7a97\u53e3 \u201d \u3002 \u5355\u51fb \u201c \u5173\u5361 \u201d \u3002 2 . \u521b\u5efa \u65b0 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u5355\u51fb \u201c \u5173\u5361 \u201d \u5e76 \u9009\u62e9 \u201c \u65b0\u5efa ...... \u201d \u3002 \u9009\u62e9 \u201c \u7a7a \u5173\u5361 \u201d \u3002 \u5c06 \u5173\u5361 \u4fdd\u5b58 \u5728 Content / Carla / Maps / Sublevels / < map _ name > / \u3002 \u8981 \u5c06 \u5173\u5361 \u4e0e Carla Python API \u96c6\u6210 \uff0c \u8bf7 \u4f7f\u7528 \u547d\u540d \u7ea6\u5b9a < map _ name > _ < layer _ name > \uff0c \u6bd4\u5982 , TutorialMap _ Buildings \u3002 \u6709\u5173 \u53ef\u7528 \u5173\u5361 \u7684 \u5217\u8868 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361 1 . \u9009\u62e9 \u60a8 \u8981 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u7684 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u53cc\u51fb \u8981 \u6dfb\u52a0 \u8d44\u6e90 \u7684 \u201c \u5173\u5361 \u201d \u3002 \u901a\u8fc7 \u5207\u6362 \u9501 \u56fe\u6807 \u786e\u4fdd \u5173\u5361 \u5df2 \u89e3\u9501 \u3002 2 . \u9009\u62e9 \u8981 \u6dfb\u52a0 \u7684 \u8d44\u4ea7 \u3002 \u9009\u62e9 \u60a8 \u60f3\u8981 \u6dfb\u52a0 \u5230 \u5173\u5361 \u7684 \u6240\u6709 \u8d44\u4ea7 \u3002 \u53f3\u952e \u5355\u51fb \u5e76 \u8f6c\u5230 \u201c \u5173\u5361 \u201d \u3002 \u5355\u51fb \u5c06 \u9009\u62e9 \u79fb\u52a8 \u5230 \u5f53\u524d \u5173\u5361 \u3002 3 . \u4fdd\u5b58 \u5173\u5361 \u3002 \u5982\u679c \u67d0\u4e2a \u5173\u5361 \u6709\u5f85 \u4fdd\u5b58 \u7684 \u66f4\u6539 \uff0c \u60a8 \u5c06 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u770b\u5230 \u8be5 \u5173\u5361 \u65c1\u8fb9 \u6709 \u4e00\u4e2a \u94c5\u7b14 \u56fe\u6807 \u3002 \u5355\u51fb \u6b64 \u6309\u94ae \u4fdd\u5b58 \u66f4\u6539 \u3002 \u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879 \u5173\u5361 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u80fd\u591f \u5207\u6362 \u6216 \u59cb\u7ec8 \u52a0\u8f7d \u3002 \u8981 \u914d\u7f6e \u4efb\u4e00 \u9009\u9879 \u7684 \u7ea7\u522b \uff1a \u53f3\u952e \u5355\u51fb \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u7684 \u5173\u5361 \uff0c \u7136\u540e \u8f6c \u5230 \u201c \u4fee\u6539 \u6d41\u9001 \u65b9\u6cd5 \u201d \u3002 \u9009\u62e9 \u6240 \u9700 \u7684 \u8bbe\u7f6e \uff1a \u56fa\u5b9a \u52a0\u8f7d \uff1a \u65e0\u6cd5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u84dd\u56fe : \u53ef\u4ee5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u5173\u5361 \u540d\u79f0 \u65c1\u8fb9 \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u84dd\u70b9 \u3002 \u65e0\u8bba \u8bbe\u7f6e \u5982\u4f55 \uff0c \u60a8 \u4ecd\u7136 \u53ef\u4ee5 \u901a\u8fc7 \u6309 \u773c\u775b \u56fe\u6807 \u6765 \u5207\u6362 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u84dd\u56fe \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 A \u4f7f\u7528 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u8fde\u7eed \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe"},{"location":"tuto_M_custom_layers/#_1","text":"\u5229\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4e2d \u7684 \u7ea7\u522b \u53ef\u4ee5 \u8ba9 \u591a \u4eba \u540c\u65f6 \u5728 \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83 \u8fd8 \u5141\u8bb8 \u60a8 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d \u4f7f\u7528 Python API \u5728 \u5730\u56fe \u4e0a \u52a0\u8f7d \u548c \u5378\u8f7d \u56fe\u5c42 \uff0c \u5c31 \u50cf \u5206\u5c42 \u7684 Carla \u5730\u56fe \u4e00\u6837 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u3001 \u5982\u4f55 \u5411 \u5173\u5361 \u6dfb\u52a0 \u8d44\u6e90 \u4ee5\u53ca \u5982\u4f55 \u5c06 \u5173\u5361 \u914d\u7f6e \u4e3a \u59cb\u7ec8 \u52a0\u8f7d \u6216 \u4e0d \u52a0\u8f7d \u3002 \u6dfb\u52a0 \u65b0 \u5173\u5361 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361 \u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5206\u5c42 \u5730\u56fe"},{"location":"tuto_M_custom_layers/#_2","text":"\u5730\u56fe \u4e2d \u7684 \u6240\u6709 \u65b0 \u5173\u5361 \u90fd \u5c06 \u5d4c\u5957 \u5728 \u7236 \u5173\u5361 \u4e2d \uff0c \u79f0\u4e3a \u201c \u6301\u4e45 \u5173\u5361 \u201d \u3002 \u8981 \u521b\u5efa \u65b0 \u5173\u5361 \uff1a 1 . \u6253\u5f00 \u5173\u5361 \u9762\u677f \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u4ece \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u6253\u5f00 \u201c \u7a97\u53e3 \u201d \u3002 \u5355\u51fb \u201c \u5173\u5361 \u201d \u3002 2 . \u521b\u5efa \u65b0 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u5355\u51fb \u201c \u5173\u5361 \u201d \u5e76 \u9009\u62e9 \u201c \u65b0\u5efa ...... \u201d \u3002 \u9009\u62e9 \u201c \u7a7a \u5173\u5361 \u201d \u3002 \u5c06 \u5173\u5361 \u4fdd\u5b58 \u5728 Content / Carla / Maps / Sublevels / < map _ name > / \u3002 \u8981 \u5c06 \u5173\u5361 \u4e0e Carla Python API \u96c6\u6210 \uff0c \u8bf7 \u4f7f\u7528 \u547d\u540d \u7ea6\u5b9a < map _ name > _ < layer _ name > \uff0c \u6bd4\u5982 , TutorialMap _ Buildings \u3002 \u6709\u5173 \u53ef\u7528 \u5173\u5361 \u7684 \u5217\u8868 \uff0c \u8bf7 \u67e5\u770b \u6b64\u5904 \u3002","title":"\u6dfb\u52a0 \u65b0 \u5173\u5361"},{"location":"tuto_M_custom_layers/#_3","text":"1 . \u9009\u62e9 \u60a8 \u8981 \u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u7684 \u5173\u5361 \u3002 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \uff0c \u53cc\u51fb \u8981 \u6dfb\u52a0 \u8d44\u6e90 \u7684 \u201c \u5173\u5361 \u201d \u3002 \u901a\u8fc7 \u5207\u6362 \u9501 \u56fe\u6807 \u786e\u4fdd \u5173\u5361 \u5df2 \u89e3\u9501 \u3002 2 . \u9009\u62e9 \u8981 \u6dfb\u52a0 \u7684 \u8d44\u4ea7 \u3002 \u9009\u62e9 \u60a8 \u60f3\u8981 \u6dfb\u52a0 \u5230 \u5173\u5361 \u7684 \u6240\u6709 \u8d44\u4ea7 \u3002 \u53f3\u952e \u5355\u51fb \u5e76 \u8f6c\u5230 \u201c \u5173\u5361 \u201d \u3002 \u5355\u51fb \u5c06 \u9009\u62e9 \u79fb\u52a8 \u5230 \u5f53\u524d \u5173\u5361 \u3002 3 . \u4fdd\u5b58 \u5173\u5361 \u3002 \u5982\u679c \u67d0\u4e2a \u5173\u5361 \u6709\u5f85 \u4fdd\u5b58 \u7684 \u66f4\u6539 \uff0c \u60a8 \u5c06 \u5728 \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u770b\u5230 \u8be5 \u5173\u5361 \u65c1\u8fb9 \u6709 \u4e00\u4e2a \u94c5\u7b14 \u56fe\u6807 \u3002 \u5355\u51fb \u6b64 \u6309\u94ae \u4fdd\u5b58 \u66f4\u6539 \u3002","title":"\u5c06 \u8d44\u4ea7 \u6dfb\u52a0 \u5230 \u5173\u5361"},{"location":"tuto_M_custom_layers/#_4","text":"\u5173\u5361 \u53ef\u4ee5 \u914d\u7f6e \u4e3a \u80fd\u591f \u5207\u6362 \u6216 \u59cb\u7ec8 \u52a0\u8f7d \u3002 \u8981 \u914d\u7f6e \u4efb\u4e00 \u9009\u9879 \u7684 \u7ea7\u522b \uff1a \u53f3\u952e \u5355\u51fb \u201c \u5173\u5361 \u201d \u9762\u677f \u4e2d \u7684 \u5173\u5361 \uff0c \u7136\u540e \u8f6c \u5230 \u201c \u4fee\u6539 \u6d41\u9001 \u65b9\u6cd5 \u201d \u3002 \u9009\u62e9 \u6240 \u9700 \u7684 \u8bbe\u7f6e \uff1a \u56fa\u5b9a \u52a0\u8f7d \uff1a \u65e0\u6cd5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u84dd\u56fe : \u53ef\u4ee5 \u901a\u8fc7 Python API \u5207\u6362 \u5173\u5361 \u3002 \u5173\u5361 \u540d\u79f0 \u65c1\u8fb9 \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u84dd\u70b9 \u3002 \u65e0\u8bba \u8bbe\u7f6e \u5982\u4f55 \uff0c \u60a8 \u4ecd\u7136 \u53ef\u4ee5 \u901a\u8fc7 \u6309 \u773c\u775b \u56fe\u6807 \u6765 \u5207\u6362 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 \u84dd\u56fe \u3002","title":"\u914d\u7f6e \u5173\u5361 \u52a0\u8f7d \u9009\u9879"},{"location":"tuto_M_custom_layers/#_5","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 A \u4f7f\u7528 \u7a0b\u5e8f \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u8fde\u7eed \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_map_overview/","text":"\u6dfb\u52a0 \u65b0 \u5730\u56fe Carla \u7684 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u4f7f\u7528 \u5b83\u4eec \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u5728 Carla \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u65b9\u6cd5 \u6709 \u591a\u79cd \u3002 \u8981 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \u7248\u672c \u8fd8\u662f \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u542f\u52a8 \u8be5 \u6d41\u7a0b \u6240 \u9700 \u7684 \u5185\u5bb9 \u3001 \u53ef \u7528\u4e8e \u5bfc\u5165 \u7684 \u4e0d\u540c \u9009\u9879 \u4ee5\u53ca \u53ef\u7528 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u884c\u4eba \u5bfc\u822a \u5de5\u5177 \u3002 \u6982\u8ff0 \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6982\u8ff0 \u5728 Carla \u4e2d \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6d89\u53ca \u56db\u4e2a \u4e3b\u8981 \u8fc7\u7a0b \uff1a \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u884c\u4eba \u5bfc\u822a \u8bf7 \u7ee7\u7eed \u9605\u8bfb \uff0c \u4e86\u89e3 \u6709\u5173 \u6bcf\u4e2a \u6d41\u7a0b \u7684 \u5176\u4ed6 \u4e00\u822c \u4fe1\u606f \u3002 \u751f\u6210 Carla \u9700\u8981 . fbx \u683c\u5f0f \u7684 \u5730\u56fe \u51e0\u4f55 \u4fe1\u606f \u548c . xodr \u683c\u5f0f \u7684 OpenDRIVE \u4fe1\u606f \u3002 \u76ee\u524d \u63a8\u8350 \u7684 \u751f\u6210 \u8fd9\u4e9b \u6587\u4ef6 \u7684 \u8f6f\u4ef6 \u662f RoadRunner \u3002 \u672c \u6307\u5357 \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 RoadRunner \u751f\u6210 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u3002 \u5bfc\u5165 \u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \uff0c \u60a8 \u5c06 \u4f7f\u7528 Docker \u5bfc\u5165 \u5730\u56fe \u3002 \u6b64 \u9009\u9879 \u4ec5 \u5728 Linux \u4e2d \u53ef\u7528 \uff0c \u5e76\u4e14 \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7248\u672c \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u79cd \u65b9\u6cd5 \u5bfc\u5165 \u5730\u56fe \uff1a \u4f7f\u7528 \u81ea\u52a8 make import \u6d41\u7a0b \uff08 \u63a8\u8350 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4f7f\u7528 RoadRunner \u63d2\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u624b\u52a8 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4ee5\u4e0b \u89c6\u9891 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u4e00\u4e9b \u53ef\u7528 \u65b9\u6cd5 \uff1a \u5b9a\u5236 \u9664\u4e86 \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u51c6\u5907 \u6dfb\u52a0 \u5230 \u666f\u89c2 \u4e2d \u7684 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u60a8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u6dfb\u52a0 \u5b50 \u5173\u5361 \uff1a \u5b50 \u5173\u5361 \u5c06 \u5141\u8bb8 \u591a\u4eba \u540c\u65f6 \u5728 \u540c \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83\u4eec \u8fd8 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Python API \u5207\u6362 \u5730\u56fe \u7684 \u56fe\u5c42 \uff0c \u5c31 \u50cf Carla \u5206\u5c42 \u5730\u56fe \u4e00\u6837 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \uff1a \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u9884\u8bbe \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u7ec4\u5408 \u540e \uff0c \u4e3a \u60a8 \u7684 \u5730\u56fe \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u586b\u5145 \u666f\u89c2 \uff1a \u4f7f\u7528 \u84dd\u56fe \u901a\u8fc7 \u91cd\u590d \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u548c \u5899\u58c1 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u7ed8\u5236 \u9053\u8def \uff1a \u4f7f\u7528 \u6df7\u5408 \u4e0d\u540c \u7eb9\u7406 \u7684 \u4e3b \u6750\u8d28 \u7ed8\u5236 \u9053\u8def \u3002 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \uff0c \u4f8b\u5982 \u843d\u53f6 \u3001 \u88c2\u7f1d \u6216 \u6c99\u4e95 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u84dd\u56fe \u6dfb\u52a0 \u5177\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5c3a\u5bf8 \u3001 \u697c\u5c42 \u6570\u91cf \u548c \u53ef\u53d8 \u7f51\u683c \u7ec4\u5408 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff1a \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u5e76 \u914d\u7f6e \u5176 \u5f71\u54cd \u533a\u57df \u3002 \u8def\u53e3 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7ec4 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e3a\u4e86 \u751f\u6210 \u884c\u4eba \u5e76 \u5728 \u5730\u56fe \u4e0a \u5bfc\u822a \uff0c \u60a8 \u9700\u8981 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u5de5\u5177 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u884c\u4eba \u5bfc\u822a \u5e94 \u5728 \u5b8c\u6210 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u540e \u751f\u6210 \uff0c \u4ee5\u4fbf \u4e0d\u4f1a \u5728 \u5bfc\u822a \u8def\u5f84 \u4e0a\u65b9 \u521b\u5efa \u969c\u788d \u969c\u788d\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u5bf9 \u4e0a\u8ff0 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"Carla \u4e2d \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6982\u8ff0"},{"location":"tuto_M_custom_map_overview/#_1","text":"Carla \u7684 \u7528\u6237 \u53ef\u4ee5 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u5e76 \u4f7f\u7528 \u5b83\u4eec \u6765 \u8fd0\u884c \u4eff\u771f \u3002 \u5728 Carla \u4e2d \u5bfc\u5165 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u65b9\u6cd5 \u6709 \u591a\u79cd \u3002 \u8981 \u4f7f\u7528 \u7684 \u65b9\u6cd5 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u7684 \u6253\u5305 \u7248\u672c \u8fd8\u662f \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \u7248\u672c \u3002 \u672c \u8282 \u6982\u8ff0 \u4e86 \u542f\u52a8 \u8be5 \u6d41\u7a0b \u6240 \u9700 \u7684 \u5185\u5bb9 \u3001 \u53ef \u7528\u4e8e \u5bfc\u5165 \u7684 \u4e0d\u540c \u9009\u9879 \u4ee5\u53ca \u53ef\u7528 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u548c \u884c\u4eba \u5bfc\u822a \u5de5\u5177 \u3002 \u6982\u8ff0 \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u751f\u6210 \u884c\u4eba \u5bfc\u822a","title":"\u6dfb\u52a0 \u65b0 \u5730\u56fe"},{"location":"tuto_M_custom_map_overview/#_2","text":"\u5728 Carla \u4e2d \u4f7f\u7528 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u6d89\u53ca \u56db\u4e2a \u4e3b\u8981 \u8fc7\u7a0b \uff1a \u751f\u6210 \u5bfc\u5165 \u5b9a\u5236 \u884c\u4eba \u5bfc\u822a \u8bf7 \u7ee7\u7eed \u9605\u8bfb \uff0c \u4e86\u89e3 \u6709\u5173 \u6bcf\u4e2a \u6d41\u7a0b \u7684 \u5176\u4ed6 \u4e00\u822c \u4fe1\u606f \u3002","title":"\u6982\u8ff0"},{"location":"tuto_M_custom_map_overview/#_3","text":"Carla \u9700\u8981 . fbx \u683c\u5f0f \u7684 \u5730\u56fe \u51e0\u4f55 \u4fe1\u606f \u548c . xodr \u683c\u5f0f \u7684 OpenDRIVE \u4fe1\u606f \u3002 \u76ee\u524d \u63a8\u8350 \u7684 \u751f\u6210 \u8fd9\u4e9b \u6587\u4ef6 \u7684 \u8f6f\u4ef6 \u662f RoadRunner \u3002 \u672c \u6307\u5357 \u8bf4\u660e \u5982\u4f55 \u4f7f\u7528 RoadRunner \u751f\u6210 \u5730\u56fe \u4fe1\u606f \u5730\u56fe\u4fe1\u606f \u3002","title":"\u751f\u6210"},{"location":"tuto_M_custom_map_overview/#_4","text":"\u6709 \u591a\u79cd \u65b9\u6cd5 \u53ef\u4ee5 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u7248\u672c \uff0c \u60a8 \u5c06 \u4f7f\u7528 Docker \u5bfc\u5165 \u5730\u56fe \u3002 \u6b64 \u9009\u9879 \u4ec5 \u5728 Linux \u4e2d \u53ef\u7528 \uff0c \u5e76\u4e14 \u60a8 \u5c06 \u65e0\u6cd5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u7684 \u662f Carla \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7248\u672c \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u79cd \u65b9\u6cd5 \u5bfc\u5165 \u5730\u56fe \uff1a \u4f7f\u7528 \u81ea\u52a8 make import \u6d41\u7a0b \uff08 \u63a8\u8350 \uff09 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4f7f\u7528 RoadRunner \u63d2\u4ef6 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u624b\u52a8 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u4ee5\u4e0b \u89c6\u9891 \u4ecb\u7ecd \u4e86 \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u7684 \u4e00\u4e9b \u53ef\u7528 \u65b9\u6cd5 \uff1a","title":"\u5bfc\u5165"},{"location":"tuto_M_custom_map_overview/#_5","text":"\u9664\u4e86 \u6570\u767e \u767e\u4e2a \u6570\u767e\u4e2a \u51c6\u5907 \u6dfb\u52a0 \u5230 \u666f\u89c2 \u4e2d \u7684 \u9759\u6001 \u7f51\u683c \u7269\u4f53 \u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \u548c \u6307\u5357 \u6765 \u5e2e\u52a9 \u60a8 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u6dfb\u52a0 \u5b50 \u5173\u5361 \uff1a \u5b50 \u5173\u5361 \u5c06 \u5141\u8bb8 \u591a\u4eba \u540c\u65f6 \u5728 \u540c \u4e00\u5f20 \u5730\u56fe \u4e0a \u5de5\u4f5c \u3002 \u5b83\u4eec \u8fd8 \u5141\u8bb8 \u60a8 \u4f7f\u7528 Python API \u5207\u6362 \u5730\u56fe \u7684 \u56fe\u5c42 \uff0c \u5c31 \u50cf Carla \u5206\u5c42 \u5730\u56fe \u4e00\u6837 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \uff1a \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u9884\u8bbe \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u7ec4\u5408 \u540e \uff0c \u4e3a \u60a8 \u7684 \u5730\u56fe \u8bbe\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u586b\u5145 \u666f\u89c2 \uff1a \u4f7f\u7528 \u84dd\u56fe \u901a\u8fc7 \u91cd\u590d \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u548c \u5899\u58c1 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u7ed8\u5236 \u9053\u8def \uff1a \u4f7f\u7528 \u6df7\u5408 \u4e0d\u540c \u7eb9\u7406 \u7684 \u4e3b \u6750\u8d28 \u7ed8\u5236 \u9053\u8def \u3002 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \uff0c \u4f8b\u5982 \u843d\u53f6 \u3001 \u88c2\u7f1d \u6216 \u6c99\u4e95 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u5efa\u7b51\u7269 \uff1a \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5efa\u7b51 \u84dd\u56fe \u6dfb\u52a0 \u5177\u6709 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5c3a\u5bf8 \u3001 \u697c\u5c42 \u6570\u91cf \u548c \u53ef\u53d8 \u7f51\u683c \u7ec4\u5408 \u7684 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \uff1a \u6dfb\u52a0 \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u5e76 \u914d\u7f6e \u5176 \u5f71\u54cd \u533a\u57df \u3002 \u8def\u53e3 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7ec4 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002","title":"\u5b9a\u5236"},{"location":"tuto_M_custom_map_overview/#_6","text":"\u4e3a\u4e86 \u751f\u6210 \u884c\u4eba \u5e76 \u5728 \u5730\u56fe \u4e0a \u5bfc\u822a \uff0c \u60a8 \u9700\u8981 \u4f7f\u7528 Carla \u63d0\u4f9b \u7684 \u5de5\u5177 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u884c\u4eba \u5bfc\u822a \u5e94 \u5728 \u5b8c\u6210 \u5730\u56fe \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u540e \u751f\u6210 \uff0c \u4ee5\u4fbf \u4e0d\u4f1a \u5728 \u5bfc\u822a \u8def\u5f84 \u4e0a\u65b9 \u521b\u5efa \u969c\u788d \u969c\u788d\u7269 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u6b64\u5904 \u627e\u5230 \u6307\u5357 \u3002 \u5982\u679c \u60a8 \u5bf9 \u4e0a\u8ff0 \u8fc7\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u8bf7 \u968f\u65f6 \u5728 \u8bba\u575b \u4e2d \u53d1\u5e03 \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_custom_road_painter/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6 \u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u4ec0\u4e48 \u662f \u9053\u8def \u7ed8\u5236 \u5de5\u5177 \uff0c \u5982\u4f55 \u4f7f\u7528 \u5b83 \u901a\u8fc7 \u7ec4\u5408 \u4e0d\u540c \u7684 \u7eb9\u7406 \u6765\u81ea \u5b9a\u4e49 \u9053\u8def \u7684 \u5916\u89c2 \uff0c \u5982\u4f55 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u6839\u636e \u9053\u8def \u7eb9\u7406 \u66f4\u65b0 \u8f66\u9053 \u6807\u8bb0 \u7684 \u5916\u89c2 \u3002 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807 \u51c6\u5907 \u4e3b \u6750\u8d28 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \u4e0b \u4e00\u6b65 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u9053\u8def \u6cb9\u6f06 \u6f06\u5de5 \u6cb9\u6f06\u5de5 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807 1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign / RoadPainterAssets \u3002 \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 Map Size ( Cm ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 Details \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 Map Size ( Cm ) \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 Details \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u5230 Paint - > Render Target \u3002 \u51c6\u5907 \u4e3b \u6750\u8d28 \u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \uff0c \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u6599 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u6599 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO Intensity \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game / Carla / Static / GenericMaterials / Asphalt / Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002 \u63cf\u7ed8 \u9053\u8def 1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u5e94\u7528 Tutorial _ RoadMaster \u5230 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 Tutorial _ RoadMaster \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u6cb9\u753b \u753b\u5bb6 \u6cb9\u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 \u5728 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 Brush panel . Different types of brushes . 4 . \u5c06 \u6bcf\u79cd \u6750\u6599 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 Details \u9762\u677f \u7684 Default \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u6599 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content / Carla / Static / Decals \u548c Content / Carla / Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c \u751f\u6210 \u5b83\u4eec Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u9053\u8def \u6807\u8bb0 \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u90e8\u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6"},{"location":"tuto_M_custom_road_painter/#_1","text":"\u672c \u6307\u5357 \u89e3\u91ca \u4e86 \u4ec0\u4e48 \u662f \u9053\u8def \u7ed8\u5236 \u5de5\u5177 \uff0c \u5982\u4f55 \u4f7f\u7528 \u5b83 \u901a\u8fc7 \u7ec4\u5408 \u4e0d\u540c \u7684 \u7eb9\u7406 \u6765\u81ea \u5b9a\u4e49 \u9053\u8def \u7684 \u5916\u89c2 \uff0c \u5982\u4f55 \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u6839\u636e \u9053\u8def \u7eb9\u7406 \u66f4\u65b0 \u8f66\u9053 \u6807\u8bb0 \u7684 \u5916\u89c2 \u3002 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807 \u51c6\u5907 \u4e3b \u6750\u8d28 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \u4e0b \u4e00\u6b65","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u9053\u8def \u753b\u5bb6"},{"location":"tuto_M_custom_road_painter/#_2","text":"\u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002","title":"\u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f"},{"location":"tuto_M_custom_road_painter/#_3","text":"\u9053\u8def \u6cb9\u6f06 \u6f06\u5de5 \u6cb9\u6f06\u5de5 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_custom_road_painter/#_4","text":"1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / LevelDesign / RoadPainterAssets \u3002 \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 Map Size ( Cm ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 Details \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 Map Size ( Cm ) \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 Details \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u5230 Paint - > Render Target \u3002","title":"\u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u76ee\u6807"},{"location":"tuto_M_custom_road_painter/#_5","text":"\u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \uff0c \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u6599 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u6599 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO Intensity \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game / Carla / Static / GenericMaterials / Asphalt / Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002","title":"\u51c6\u5907 \u4e3b \u6750\u8d28"},{"location":"tuto_M_custom_road_painter/#_6","text":"1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u5e94\u7528 Tutorial _ RoadMaster \u5230 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 Tutorial _ RoadMaster \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u6cb9\u753b \u753b\u5bb6 \u6cb9\u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 \u5728 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 Brush panel . Different types of brushes . 4 . \u5c06 \u6bcf\u79cd \u6750\u6599 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 Details \u9762\u677f \u7684 Default \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u6599 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content / Carla / Static / Decals \u548c Content / Carla / Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c \u751f\u6210 \u5b83\u4eec Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002","title":"\u63cf\u7ed8 \u9053\u8def"},{"location":"tuto_M_custom_road_painter/#_7","text":"\u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u9053\u8def \u6807\u8bb0 \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Game / Carla / Static / GenericMaterials / RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u90e8\u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002","title":"\u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2"},{"location":"tuto_M_custom_road_painter/#_8","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_custom_weather_landscape/","text":"\u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2 Carla \u63d0\u4f9b \u4e86 \u591a\u4e2a \u84dd\u56fe \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u8f7b\u677e \u521b\u5efa \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u8bbe\u7f6e \uff0c \u5e76 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u7b49 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u6bcf\u4e2a \u84dd\u56fe \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u548c \u914d\u7f6e \u5b83\u4eec \u3002 \u5929\u6c14 \u5b9a\u5236 BP _ Sky BP _ Weather \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c BP _ RepSpline BP _ Spline BP _ Wall BP _ SplinePoweLine \u4e0b \u4e00\u6b65 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002 \u5929\u6c14 \u5b9a\u5236 \u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u4e4b\u524d \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u4ee5\u53ca \u5728 \u5bf9 \u8bbe\u7f6e \u611f\u5230 \u6ee1\u610f \u540e \u5982\u4f55 \u4e3a \u5730\u56fe \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002 BP _ Sky \u84dd\u56fe BP _ Sky \u5bf9\u4e8e \u4e3a \u5730\u56fe \u5e26\u6765 \u5149\u7ebf \u548c \u5929\u6c14 \u662f \u5fc5\u8981 \u7684 \u3002 \u5728 \u51b3\u5b9a \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u4e4b\u524d \uff0c \u5b83 \u8fd8 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u914d\u7f6e \u3002 BP _ Sky \u84dd\u56fe \u53ef\u80fd \u5df2\u7ecf \u52a0\u8f7d \u5230 \u60a8 \u7684 \u5730\u56fe \u4e2d \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 Content / Carla / Blueprints / Weather \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d\u6765 \u6dfb\u52a0 \u5b83 \u3002 \u8981 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u8bf7 \u8f6c\u5230 BP _ Sky \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 Details \u9762\u677f \uff0c \u7136\u540e \u4f7f\u7528 Parameters \u90e8\u5206 \u4e2d \u7684 \u503c \u3002 \u91cd\u8981 \u5982\u679c \u573a\u666f \u4e2d \u52a0\u8f7d \u4e86 \u591a\u4e2a BP _ Sky \u84dd\u56fe \uff0c \u5929\u6c14 \u5c06\u4f1a \u91cd\u590d \uff0c \u4ece\u800c \u4ea7\u751f \u4e0d\u826f \u7ed3\u679c \uff0c \u4f8b\u5982 \uff0c \u6709 \u4e24\u4e2a \u592a\u9633 \u3002 BP _ Weather \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u5728 BP _ Weather \u84dd\u56fe \u4e2d \u5b9a\u4e49 \u3002 \u6b64 \u84dd\u56fe \u5141\u8bb8 \u60a8 \u8bbe\u7f6e \u4e0e \u901a\u8fc7 Python API \u63d0\u4f9b \u7684 \u53c2\u6570 \u76f8\u540c \u7684 \u53c2\u6570 \u3002 \u6b64\u5904 \u63cf\u8ff0 \u4e86 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u8981 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \uff1a 1 . \u6253\u5f00 BP _ Weather \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / Weather \u5e76 \u53cc\u51fb BP _ Weather \u3002 2 . \u6dfb\u52a0 \u60a8 \u7684 \u57ce\u9547 \u3002 \u5728 BP _ Weather \u7a97\u53e3 \u7684 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Weather \u90e8\u5206 \u5e76 \u5c06 \u60a8 \u7684 \u57ce\u9547 \u6dfb\u52a0 \u5230 Default Weathers \u6570\u7ec4 \u4e2d \u3002 3 . \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u5929\u6c14 \u53c2\u6570 \uff0c \u8bbe\u7f6e \u60a8 \u60f3\u8981 \u7684 \u503c \u3002 \u5b8c\u6210 \u540e \uff0c \u6309 Compile \uff0c \u7136\u540e \u6309 Save \u5e76 \u5173\u95ed \u3002 \u5305\u542b \u6bcf\u4e2a Carla \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u7684 \u6570\u7ec4 \u3002 Town01 \u6253\u5f00 \u3002 \u6dfb\u52a0 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u6709 \u56db\u79cd \u84dd\u56fe \u53ef \u7528\u4e8e \u6dfb\u52a0 \u6cbf \u4e00\u4e2a \u65b9\u5411 \u5bf9\u9f50 \u7684 \u9053\u5177 \uff0c \u4f8b\u5982 \u5899\u58c1 \u3001 \u7535\u7ebf \u3001 \u8def\u706f \u3002 \u8fd9\u4e9b \u84dd\u56fe \u4f7f\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6cbf \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5206\u5e03 \u7684 \u7f51\u683c \u3002 \u6bcf \u4e00\u4e2a \u90fd \u4ee5 \u76f8\u540c \u7684 \u65b9\u5f0f \u521d\u59cb \u521d\u59cb\u5316 \uff1a 1 . \u521d\u59cb \u521d\u59cb\u5316 \u5e8f\u5217 \u3002 \u5c06 \u84dd\u56fe \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 \u60a8 \u5c06 \u770b\u5230 \u4e00\u4e2a \u5143\u7d20 \u4f4d\u4e8e \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u7684 \u8d77\u70b9 \uff0c \u5e76 \u6709 \u4e24\u4e2a \u8282\u70b9 \u6807\u8bb0 \u5f00\u59cb \u548c \u7ed3\u675f \u3002 2 . \u5b9a\u4e49 \u8def\u5f84 \u3002 \u9009\u62e9 \u5143\u7d20 \u7684 \u65b9\u5411 \u7bad\u5934 \u65b9\u5411\u7bad\u5934 \uff0c \u7136\u540e \u6309 Alt \u952e \uff0c \u540c\u65f6 \u5c06 \u5143\u7d20 \u5411 \u60a8 \u60f3\u8981 \u79fb\u52a8 \u7684 \u65b9\u5411 \u62d6\u52a8 \u3002 \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u53ef \u7528\u4e8e \u5b9a\u4e49 \u66f2\u7ebf \u7684 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 \u62d6\u52a8 \u65f6 \uff0c \u66f2\u7ebf \u7684 \u6bcf\u4e2a \u8282\u70b9 \u4e0a \u6216 \u6bcf\u6b21 Alt \u62d6\u52a8 \u65f6 \u6309 \u4e0b \u65f6 \u90fd \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u65b0 \u7f51\u683c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u84dd\u56fe \u3002 3 . \u5b9a\u5236 \u56fe\u6848 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63cf\u8ff0 \u6bcf\u4e2a \u84dd\u56fe \u53ef\u7528 \u7684 \u4e0d\u540c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u53c2\u6570 \u3002 BP _ RepSpline \u84dd\u56fe BP _ RepSpline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u7528\u4e8e \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u5355\u4e2a \u5143\u7d20 \u3002 \u5e8f\u5217 \u5e8f\u5217\u5316 \u662f \u901a\u8fc7 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \uff1a Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Offset rotation \u2014 \u4e3a \u4e0d\u540c \u8f74 \u8bbe\u7f6e \u56fa\u5b9a \u65cb\u8f6c \u3002 Random rotation \u2014 \u8bbe\u7f6e \u4e0d\u540c \u8f74 \u7684 \u968f\u673a \u65cb\u8f6c \u8303\u56f4 \u3002 Offset translation \u2014 \u8bbe\u7f6e \u6cbf \u4e0d\u540c \u8f74 \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u968f\u673a \u4f4d\u7f6e \u3002 Max Number of Meshes \u2014 \u8bbe\u7f6e \u5c06 \u653e\u7f6e \u5728 \u66f2\u7ebf \u8282\u70b9 \u4e4b\u95f4 \u7684 \u5143\u7d20 \u7684 \u6700\u5927 \u6570\u91cf \u3002 World aligned ZY \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 EndPoint \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5c06 \u5728 \u66f2\u7ebf \u7684 \u7ec8\u70b9 \u8282\u70b9 \u6dfb\u52a0 \u4e00\u4e2a \u5143\u7d20 \u3002 Collision enabled \u2014 \u8bbe\u7f6e \u4e3a \u7f51\u683c \u542f\u7528 \u7684 \u78b0\u649e \u7c7b\u578b \u3002 BP _ RepSpline \u793a\u4f8b \u3002 BP _ Spline \u84dd\u56fe BP _ Spline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6dfb\u52a0 \u4e25\u683c \u9075\u5faa \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u7684 \u8fde\u63a5 \u5143\u7d20 \u3002 \u7f51\u683c \u5c06 \u626d\u66f2 \u4ee5 \u9002\u5e94 \u521b\u5efa \u7684 \u8def\u5f84 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u84dd\u56fe \uff1a Gap distance \u2014 \u5728 \u5143\u7d20 \u4e4b\u95f4 \u6dfb\u52a0 \u95f4\u9694 \u3002 BP _ Spline example . BP _ Wall \u84dd\u56fe BP _ Wall \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u8fde\u63a5 \u7684 \u5143\u7d20 \u3002 \u7f51\u683c \u4e0d\u4f1a \u626d\u66f2 \u4ee5 \u9002\u5e94 \u66f2\u7ebf \uff0c \u4f46\u4f1a \u8003\u8651 \u8282\u70b9 \u3002 Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Vertically aligned \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 Scale offset \u2014 \u7f29\u653e \u7f51\u683c \u7684 \u957f\u5ea6 \u4ee5 \u5b8c\u5584 \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8fde\u63a5 \u3002 BP _ Wall \u5b9e\u4f8b \u3002 BP _ SplinePoweLine BP _ SplinePoweLine \u84dd\u56fe \u53ef \u5728 Carla / Static / Pole / PoweLine \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u7535\u7ebf \u7535\u7ebf\u6746 ( electricity poles ) \uff0c \u5e76 \u5c06 \u5b83\u4eec \u4e0e \u7535\u7ebf \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 \u3002 \u4e3a\u4e86 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \uff0c \u60a8 \u53ef\u4ee5 \u4e3a \u84dd\u56fe \u63d0\u4f9b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7535\u529b \u7535\u529b\u7ebf \u7f51\u683c \u6765 \u586b\u5145 \u8def\u5f84 \u3002 \u53bb \u505a \u8fd9\u4e2a \uff1a \u5728 Content Browser \u4e2d \u53cc\u51fb BP _ SplinePoweLine \u84dd\u56fe \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u5c55\u5f00 Array Meshes \u5e76 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u6dfb\u52a0 \u6216 \u66f4\u6539 \u5b83 \u3002 \u70b9\u51fb Compile \uff0c \u7136\u540e \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 BP _ SplinePowerLine example . \u8981 \u6539\u53d8 \u7535\u6e90 \u7535\u6e90\u7ebf \u7684 \u7ebf \u5f20\u529b \uff1a \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u573a\u666f \u4e2d \u9009\u62e9 \u84dd\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u8f6c \u5230 Details \u9762\u677f \u3002 \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u8c03\u6574 \u5f20\u529b Tension \u4e2d \u7684 \u503c \u3002 0 \u8868\u793a \u7ebf\u6761 \u5c06 \u662f \u76f4 \u7684 \u3002 \u589e\u52a0 \u7535\u7ebf \u6570\u91cf \uff1a \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb \u5176\u4e2d \u4e00\u4e2a \u6746 \u7f51\u683c \u3002 \u8f6c \u5230 Socket Manager \u9762\u677f \u3002 \u914d\u7f6e \u73b0\u6709 \u5957 \u63a5\u5b57 \u6216 \u901a\u8fc7 \u5355\u51fb Create Socket \u6dfb\u52a0 \u65b0\u5957 \u63a5\u5b57 \u3002 \u63d2\u5ea7 \u662f \u4ee3\u8868 \u7535\u6e90 \u7535\u6e90\u7ebf \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u7684 \u7a7a \u7f51\u683c \u3002 \u5728 \u4e24\u6781 \u4e4b\u95f4 \u4ece \u63d2\u5ea7 \u5230 \u63d2\u5ea7 \u521b\u5efa \u7535\u7ebf \u3002 BP _ SplinePowerLine \u5957 \u63a5\u5b57 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u91cd\u8981 \u5404\u6781 \u4e4b\u95f4 \u7684 \u63d2\u5ea7 \u6570\u91cf \u53ca \u540d\u79f0 \u5e94 \u4e00\u81f4 \u3002 \u5426\u5219 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u53ef\u89c6 \u53ef\u89c6\u5316 \u95ee\u9898 \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2"},{"location":"tuto_M_custom_weather_landscape/#_1","text":"Carla \u63d0\u4f9b \u4e86 \u591a\u4e2a \u84dd\u56fe \uff0c \u53ef \u5e2e\u52a9 \u60a8 \u8f7b\u677e \u521b\u5efa \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u8bbe\u7f6e \uff0c \u5e76 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \uff08 \u4f8b\u5982 \u8def\u706f \u3001 \u7535\u7ebf \u7b49 \uff09 \u586b\u5145 \u666f\u89c2 \u3002 \u672c \u6307\u5357 \u5c06 \u89e3\u91ca \u6bcf\u4e2a \u84dd\u56fe \u7684 \u4f4d\u7f6e \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u548c \u914d\u7f6e \u5b83\u4eec \u3002 \u5929\u6c14 \u5b9a\u5236 BP _ Sky BP _ Weather \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c BP _ RepSpline BP _ Spline BP _ Wall BP _ SplinePoweLine \u4e0b \u4e00\u6b65 \u91cd\u8981 \u672c \u6559\u7a0b \u4ec5 \u9002\u7528 \u4e8e \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u5e76 \u6709\u6743 \u8bbf\u95ee \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7684 \u7528\u6237 \u3002","title":"\u81ea\u5b9a\u4e49 \u5730\u56fe \uff1a \u5929\u6c14 \u548c \u666f\u89c2"},{"location":"tuto_M_custom_weather_landscape/#_2","text":"\u672c \u8282 \u4ecb\u7ecd \u5982\u4f55 \u5728 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u4e4b\u524d \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u4ee5\u53ca \u5728 \u5bf9 \u8bbe\u7f6e \u611f\u5230 \u6ee1\u610f \u540e \u5982\u4f55 \u4e3a \u5730\u56fe \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002","title":"\u5929\u6c14 \u5b9a\u5236"},{"location":"tuto_M_custom_weather_landscape/#bp_sky","text":"\u84dd\u56fe BP _ Sky \u5bf9\u4e8e \u4e3a \u5730\u56fe \u5e26\u6765 \u5149\u7ebf \u548c \u5929\u6c14 \u662f \u5fc5\u8981 \u7684 \u3002 \u5728 \u51b3\u5b9a \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u4e4b\u524d \uff0c \u5b83 \u8fd8 \u53ef\u4ee5 \u7528\u4e8e \u6d4b\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u914d\u7f6e \u3002 BP _ Sky \u84dd\u56fe \u53ef\u80fd \u5df2\u7ecf \u52a0\u8f7d \u5230 \u60a8 \u7684 \u5730\u56fe \u4e2d \u3002 \u5982\u679c \u6ca1\u6709 \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 Content / Carla / Blueprints / Weather \u5c06 \u5176 \u62d6 \u5230 \u573a\u666f \u4e2d\u6765 \u6dfb\u52a0 \u5b83 \u3002 \u8981 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u5929\u6c14 \u53c2\u6570 \uff0c \u8bf7 \u8f6c\u5230 BP _ Sky \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 Details \u9762\u677f \uff0c \u7136\u540e \u4f7f\u7528 Parameters \u90e8\u5206 \u4e2d \u7684 \u503c \u3002 \u91cd\u8981 \u5982\u679c \u573a\u666f \u4e2d \u52a0\u8f7d \u4e86 \u591a\u4e2a BP _ Sky \u84dd\u56fe \uff0c \u5929\u6c14 \u5c06\u4f1a \u91cd\u590d \uff0c \u4ece\u800c \u4ea7\u751f \u4e0d\u826f \u7ed3\u679c \uff0c \u4f8b\u5982 \uff0c \u6709 \u4e24\u4e2a \u592a\u9633 \u3002","title":"BP _ Sky"},{"location":"tuto_M_custom_weather_landscape/#bp_weather","text":"\u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u5728 BP _ Weather \u84dd\u56fe \u4e2d \u5b9a\u4e49 \u3002 \u6b64 \u84dd\u56fe \u5141\u8bb8 \u60a8 \u8bbe\u7f6e \u4e0e \u901a\u8fc7 Python API \u63d0\u4f9b \u7684 \u53c2\u6570 \u76f8\u540c \u7684 \u53c2\u6570 \u3002 \u6b64\u5904 \u63cf\u8ff0 \u4e86 \u8fd9\u4e9b \u53c2\u6570 \u3002 \u8981 \u8bbe\u7f6e \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \uff1a 1 . \u6253\u5f00 BP _ Weather \u84dd\u56fe \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content / Carla / Blueprints / Weather \u5e76 \u53cc\u51fb BP _ Weather \u3002 2 . \u6dfb\u52a0 \u60a8 \u7684 \u57ce\u9547 \u3002 \u5728 BP _ Weather \u7a97\u53e3 \u7684 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Weather \u90e8\u5206 \u5e76 \u5c06 \u60a8 \u7684 \u57ce\u9547 \u6dfb\u52a0 \u5230 Default Weathers \u6570\u7ec4 \u4e2d \u3002 3 . \u914d\u7f6e \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u5929\u6c14 \u53c2\u6570 \uff0c \u8bbe\u7f6e \u60a8 \u60f3\u8981 \u7684 \u503c \u3002 \u5b8c\u6210 \u540e \uff0c \u6309 Compile \uff0c \u7136\u540e \u6309 Save \u5e76 \u5173\u95ed \u3002 \u5305\u542b \u6bcf\u4e2a Carla \u5730\u56fe \u7684 \u9ed8\u8ba4 \u5929\u6c14 \u53c2\u6570 \u7684 \u6570\u7ec4 \u3002 Town01 \u6253\u5f00 \u3002","title":"BP _ Weather"},{"location":"tuto_M_custom_weather_landscape/#_3","text":"\u6709 \u56db\u79cd \u84dd\u56fe \u53ef \u7528\u4e8e \u6dfb\u52a0 \u6cbf \u4e00\u4e2a \u65b9\u5411 \u5bf9\u9f50 \u7684 \u9053\u5177 \uff0c \u4f8b\u5982 \u5899\u58c1 \u3001 \u7535\u7ebf \u3001 \u8def\u706f \u3002 \u8fd9\u4e9b \u84dd\u56fe \u4f7f\u7528 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6cbf \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5206\u5e03 \u7684 \u7f51\u683c \u3002 \u6bcf \u4e00\u4e2a \u90fd \u4ee5 \u76f8\u540c \u7684 \u65b9\u5f0f \u521d\u59cb \u521d\u59cb\u5316 \uff1a 1 . \u521d\u59cb \u521d\u59cb\u5316 \u5e8f\u5217 \u3002 \u5c06 \u84dd\u56fe \u62d6 \u5230 \u573a\u666f \u4e2d \u3002 \u60a8 \u5c06 \u770b\u5230 \u4e00\u4e2a \u5143\u7d20 \u4f4d\u4e8e \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u7684 \u8d77\u70b9 \uff0c \u5e76 \u6709 \u4e24\u4e2a \u8282\u70b9 \u6807\u8bb0 \u5f00\u59cb \u548c \u7ed3\u675f \u3002 2 . \u5b9a\u4e49 \u8def\u5f84 \u3002 \u9009\u62e9 \u5143\u7d20 \u7684 \u65b9\u5411 \u7bad\u5934 \u65b9\u5411\u7bad\u5934 \uff0c \u7136\u540e \u6309 Alt \u952e \uff0c \u540c\u65f6 \u5c06 \u5143\u7d20 \u5411 \u60a8 \u60f3\u8981 \u79fb\u52a8 \u7684 \u65b9\u5411 \u62d6\u52a8 \u3002 \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u53ef \u7528\u4e8e \u5b9a\u4e49 \u66f2\u7ebf \u7684 \u65b0\u5143 \u5143\u7d20 \u65b0\u5143\u7d20 \u3002 \u62d6\u52a8 \u65f6 \uff0c \u66f2\u7ebf \u7684 \u6bcf\u4e2a \u8282\u70b9 \u4e0a \u6216 \u6bcf\u6b21 Alt \u62d6\u52a8 \u65f6 \u6309 \u4e0b \u65f6 \u90fd \u4f1a \u51fa\u73b0 \u4e00\u4e2a \u65b0 \u7f51\u683c \uff0c \u5177\u4f53 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u84dd\u56fe \u3002 3 . \u5b9a\u5236 \u56fe\u6848 \u3002 \u4ee5\u4e0b \u90e8\u5206 \u5c06 \u63cf\u8ff0 \u6bcf\u4e2a \u84dd\u56fe \u53ef\u7528 \u7684 \u4e0d\u540c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u53c2\u6570 \u3002","title":"\u6dfb\u52a0 \u5e8f\u5217\u5316 \u7f51\u683c"},{"location":"tuto_M_custom_weather_landscape/#bp_repspline","text":"\u84dd\u56fe BP _ RepSpline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u7528\u4e8e \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u5355\u4e2a \u5143\u7d20 \u3002 \u5e8f\u5217 \u5e8f\u5217\u5316 \u662f \u901a\u8fc7 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \uff1a Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Offset rotation \u2014 \u4e3a \u4e0d\u540c \u8f74 \u8bbe\u7f6e \u56fa\u5b9a \u65cb\u8f6c \u3002 Random rotation \u2014 \u8bbe\u7f6e \u4e0d\u540c \u8f74 \u7684 \u968f\u673a \u65cb\u8f6c \u8303\u56f4 \u3002 Offset translation \u2014 \u8bbe\u7f6e \u6cbf \u4e0d\u540c \u8f74 \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u968f\u673a \u4f4d\u7f6e \u3002 Max Number of Meshes \u2014 \u8bbe\u7f6e \u5c06 \u653e\u7f6e \u5728 \u66f2\u7ebf \u8282\u70b9 \u4e4b\u95f4 \u7684 \u5143\u7d20 \u7684 \u6700\u5927 \u6570\u91cf \u3002 World aligned ZY \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 EndPoint \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5c06 \u5728 \u66f2\u7ebf \u7684 \u7ec8\u70b9 \u8282\u70b9 \u6dfb\u52a0 \u4e00\u4e2a \u5143\u7d20 \u3002 Collision enabled \u2014 \u8bbe\u7f6e \u4e3a \u7f51\u683c \u542f\u7528 \u7684 \u78b0\u649e \u7c7b\u578b \u3002 BP _ RepSpline \u793a\u4f8b \u3002","title":"BP _ RepSpline"},{"location":"tuto_M_custom_weather_landscape/#bp_spline","text":"\u84dd\u56fe BP _ Spline \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6dfb\u52a0 \u4e25\u683c \u9075\u5faa \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u7684 \u8fde\u63a5 \u5143\u7d20 \u3002 \u7f51\u683c \u5c06 \u626d\u66f2 \u4ee5 \u9002\u5e94 \u521b\u5efa \u7684 \u8def\u5f84 \u3002 \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u84dd\u56fe \uff1a Gap distance \u2014 \u5728 \u5143\u7d20 \u4e4b\u95f4 \u6dfb\u52a0 \u95f4\u9694 \u3002 BP _ Spline example .","title":"BP _ Spline"},{"location":"tuto_M_custom_weather_landscape/#bp_wall","text":"\u84dd\u56fe BP _ Wall \u53ef \u5728 Carla / Blueprints / LevelDesign \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u8fde\u63a5 \u7684 \u5143\u7d20 \u3002 \u7f51\u683c \u4e0d\u4f1a \u626d\u66f2 \u4ee5 \u9002\u5e94 \u66f2\u7ebf \uff0c \u4f46\u4f1a \u8003\u8651 \u8282\u70b9 \u3002 Distance between \u2014 \u8bbe\u7f6e \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Vertically aligned \u2014 \u5982\u679c \u9009\u62e9 \u6b64 \u9009\u9879 \uff0c \u5143\u7d20 \u5c06 \u76f8\u5bf9 \u4e8e \u4e16\u754c \u8f74 \u5782\u76f4 \u5bf9\u9f50 \u3002 Scale offset \u2014 \u7f29\u653e \u7f51\u683c \u7684 \u957f\u5ea6 \u4ee5 \u5b8c\u5584 \u5143\u7d20 \u4e4b\u95f4 \u7684 \u8fde\u63a5 \u3002 BP _ Wall \u5b9e\u4f8b \u3002","title":"BP _ Wall"},{"location":"tuto_M_custom_weather_landscape/#bp_splinepoweline","text":"BP _ SplinePoweLine \u84dd\u56fe \u53ef \u5728 Carla / Static / Pole / PoweLine \u4e2d \u627e\u5230 \u3002 \u5b83 \u6cbf\u7740 \u585e\u5c14 \u8d1d\u585e\u5c14 \u66f2\u7ebf \u5b9a\u4e49 \u7684 \u8def\u5f84 \u6dfb\u52a0 \u7535\u7ebf \u7535\u7ebf\u6746 ( electricity poles ) \uff0c \u5e76 \u5c06 \u5b83\u4eec \u4e0e \u7535\u7ebf \u8fde\u63a5 \u63a5\u8d77 \u8d77\u6765 \u8fde\u63a5\u8d77\u6765 \u3002 \u4e3a\u4e86 \u63d0\u4f9b \u591a\u6837 \u591a\u6837\u6027 \uff0c \u60a8 \u53ef\u4ee5 \u4e3a \u84dd\u56fe \u63d0\u4f9b \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u7535\u529b \u7535\u529b\u7ebf \u7f51\u683c \u6765 \u586b\u5145 \u8def\u5f84 \u3002 \u53bb \u505a \u8fd9\u4e2a \uff1a \u5728 Content Browser \u4e2d \u53cc\u51fb BP _ SplinePoweLine \u84dd\u56fe \u3002 \u5728 Details \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u5c55\u5f00 Array Meshes \u5e76 \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u6dfb\u52a0 \u6216 \u66f4\u6539 \u5b83 \u3002 \u70b9\u51fb Compile \uff0c \u7136\u540e \u4fdd\u5b58 \u5e76 \u5173\u95ed \u7a97\u53e3 \u3002 BP _ SplinePowerLine example . \u8981 \u6539\u53d8 \u7535\u6e90 \u7535\u6e90\u7ebf \u7684 \u7ebf \u5f20\u529b \uff1a \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u573a\u666f \u4e2d \u9009\u62e9 \u84dd\u56fe \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u7136\u540e \u8f6c \u5230 Details \u9762\u677f \u3002 \u8f6c \u5230 Default \u90e8\u5206 \u3002 \u8c03\u6574 \u5f20\u529b Tension \u4e2d \u7684 \u503c \u3002 0 \u8868\u793a \u7ebf\u6761 \u5c06 \u662f \u76f4 \u7684 \u3002 \u589e\u52a0 \u7535\u7ebf \u6570\u91cf \uff1a \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb \u5176\u4e2d \u4e00\u4e2a \u6746 \u7f51\u683c \u3002 \u8f6c \u5230 Socket Manager \u9762\u677f \u3002 \u914d\u7f6e \u73b0\u6709 \u5957 \u63a5\u5b57 \u6216 \u901a\u8fc7 \u5355\u51fb Create Socket \u6dfb\u52a0 \u65b0\u5957 \u63a5\u5b57 \u3002 \u63d2\u5ea7 \u662f \u4ee3\u8868 \u7535\u6e90 \u7535\u6e90\u7ebf \u8fde\u63a5 \u63a5\u70b9 \u8fde\u63a5\u70b9 \u7684 \u7a7a \u7f51\u683c \u3002 \u5728 \u4e24\u6781 \u4e4b\u95f4 \u4ece \u63d2\u5ea7 \u5230 \u63d2\u5ea7 \u521b\u5efa \u7535\u7ebf \u3002 BP _ SplinePowerLine \u5957 \u63a5\u5b57 \u7684 \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u91cd\u8981 \u5404\u6781 \u4e4b\u95f4 \u7684 \u63d2\u5ea7 \u6570\u91cf \u53ca \u540d\u79f0 \u5e94 \u4e00\u81f4 \u3002 \u5426\u5219 \uff0c \u53ef\u80fd \u4f1a \u51fa\u73b0 \u53ef\u89c6 \u53ef\u89c6\u5316 \u95ee\u9898 \u3002","title":"BP _ SplinePoweLine"},{"location":"tuto_M_custom_weather_landscape/#_4","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u73b0 \u5b50 \u5173\u5361 \u3002 \u6dfb\u52a0 \u548c \u914d\u7f6e \u4ea4\u901a \u4ea4\u901a\u706f \u548c \u6807\u5fd7 \u3002 \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u4f7f\u7528 \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u3002 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_generate_map/","text":"\u5728 RoadRunner \u4e2d \u751f\u6210 \u5730\u56fe RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \u3001 \u6784\u5efa \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u9879 \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4ee5 \u51c6\u5907 \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe \u4e0b \u4e00\u6b65 RoadRunner \u7b80\u4ecb RoadRunner \u662f \u4e00\u6b3e \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef \u8ba9 \u60a8 \u8bbe\u8ba1 \u7528\u4e8e \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 3D \u573a\u666f \u3002 \u5b83 \u53ef \u7528\u4e8e \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u4ee5\u53ca \u968f\u9644 \u7684 OpenDRIVE \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u6b64\u5904 \u80fd \u4e86\u89e3 \u5230 \u66f4 \u591a RoadRunner \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB Campus - Wide License \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u90fd \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u60a8 \u7684 \u5927\u5b66 \u662f\u5426 \u6709\u6743 \u8bbf\u95ee \u3002 \u5982\u679c \u60a8 \u5bf9 \u8f85\u52a9 \u529f\u80fd \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u56f0\u96be \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u8bd5\u7528 \u8bd5\u7528\u7248 \u53ef\u7528 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u5173\u4e8e \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRuner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u5305\u542b \u5927\u91cf \u9053\u5177 \u7684 \u5730\u56fe \u4f1a\u663e \u7740 \u51cf\u6162 \u5bfc\u5165 \u8fc7\u7a0b \u3002 \u8fd9 \u56e0\u4e3a \u662f\u56e0\u4e3a \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u5c06 \u6bcf\u4e2a \u7f51\u683c \u7269\u4f53 \u8f6c\u6362 \u4e3a \u865a\u5e7b \u8d44\u6e90 \u3002 \u5982\u679c \u60a8 \u8ba1\u5212 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u6e90 \u6784\u5efa \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u60a8 \u4ec5 \u5728 RoadRunner \u4e2d \u521b\u5efa \u9053\u8def \u5e03\u5c40 \uff0c \u5e76 \u5728 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e4b\u524d \u4fdd\u7559 \u4efb\u4f55 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u8fd9\u4e9b \u5de5\u5177 \u6765 \u7b80\u5316 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fc7\u7a0b \u3002 \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe \u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u60a8 \u53ef\u4ee5 \u5728 MathWorks ' \u6587\u6863 \u4e2d \u627e\u5230 \u6709\u5173 \u5982\u4f55 \u5bfc\u51fa \u5230 Carla \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u4f7f\u7528 Carla \u9009\u9879 \u5bfc\u51fa \u573a\u666f \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > CARLA ( . fbx , . xodr , . rrdata . xml ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a C \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u6216\u4ec5 \u4fdd\u7559 \u4e00\u5757 \u4e0d \u9009\u4e2d \u3002 Leave unchecked : \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 : \u751f\u6210 \u4e00\u4e2a \u5305\u542b \u6240\u6709 \u5730 \u56fe\u7247 \u6bb5 \u7684 . fbx \u6587\u4ef6 \u3002 3 . \u9009\u62e9 \u8981 \u5c06 \u6587\u4ef6 \u5bfc\u51fa \u5230 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u5355\u51fb Export \u3002 \u8fd9 \u5c06 \u751f\u6210 < mapName > . fbx \u548c < mapName > . xodr \u6587\u4ef6 \u7b49 \u3002 \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002 \u4e0b \u4e00\u6b65 \u60a8 \u73b0\u5728 \u5df2 \u51c6\u5907 \u597d \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 Carla \u5b89\u88c5 \u7c7b\u578b \uff1a \u5bf9\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bf9\u4e8e Carla \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5982\u679c \u60a8 \u5bf9\u6b64 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5728 RoadRunner \u4e2d \u521b\u5efa \u5730\u56fe"},{"location":"tuto_M_generate_map/#roadrunner","text":"RoadRunner \u662f \u63a8\u8350 \u7684 \u8f6f\u4ef6 \uff0c \u7528\u4e8e \u521b\u5efa \u8981 \u5bfc\u5165 Carla \u7684 \u5730\u56fe \u3002 \u672c \u6307\u5357 \u6982\u8ff0 \u4e86 RoadRunner \u662f \u4ec0\u4e48 \u3001 \u6784\u5efa \u5730\u56fe \u65f6 \u9700\u8981 \u8003\u8651 \u7684 \u4e8b\u9879 \u4ee5\u53ca \u5982\u4f55 \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u4ee5 \u51c6\u5907 \u5bfc\u5165 Carla \u3002 RoadRunner \u7b80\u4ecb \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe \u4e0b \u4e00\u6b65","title":"\u5728 RoadRunner \u4e2d \u751f\u6210 \u5730\u56fe"},{"location":"tuto_M_generate_map/#roadrunner_1","text":"RoadRunner \u662f \u4e00\u6b3e \u4ea4\u4e92 \u4ea4\u4e92\u5f0f \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u53ef \u8ba9 \u60a8 \u8bbe\u8ba1 \u7528\u4e8e \u4eff\u771f \u548c \u6d4b\u8bd5 \u81ea\u52a8 \u9a7e\u9a76 \u7cfb\u7edf \u7684 3D \u573a\u666f \u3002 \u5b83 \u53ef \u7528\u4e8e \u521b\u5efa \u9053\u8def \u5e03\u5c40 \u4ee5\u53ca \u968f\u9644 \u7684 OpenDRIVE \u548c \u51e0\u4f55 \u4fe1\u606f \u3002 \u5728 \u6b64\u5904 \u80fd \u4e86\u89e3 \u5230 \u66f4 \u591a RoadRunner \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 RoadRunner \u662f MATLAB Campus - Wide License \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \uff0c \u56e0\u6b64 \u8bb8\u591a \u5927\u5b66 \u90fd \u53ef\u4ee5 \u63d0\u4f9b \u65e0 \u9650\u5236 \u7684 \u5b66\u672f \u8bbf\u95ee \u3002 \u68c0\u67e5 \u60a8 \u7684 \u5927\u5b66 \u662f\u5426 \u6709\u6743 \u8bbf\u95ee \u3002 \u5982\u679c \u60a8 \u5bf9 \u8f85\u52a9 \u529f\u80fd \u6709 \u4efb\u4f55 \u7591\u95ee \u6216 \u56f0\u96be \uff0c \u8bf7 \u8054\u7cfb automated - driving @ mathworks . com \u3002 \u8fd8\u6709 \u8bd5\u7528 \u8bd5\u7528\u7248 \u53ef\u7528 \u3002 \u53c2\u52a0 Carla \u6392\u884c \u6392\u884c\u699c \u7684 \u6bcf\u4e2a \u4eba \u90fd \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u70b9\u51fb \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002","title":"RoadRunner \u7b80\u4ecb"},{"location":"tuto_M_generate_map/#_1","text":"\u60a8 \u9700\u8981 \u5b89\u88c5 RoadRunner \u3002 \u60a8 \u53ef\u4ee5 \u6309\u7167 Mathworks \u7f51\u7ad9 \u4e0a \u7684 \u5b89\u88c5 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_generate_map/#roadrunner_2","text":"\u5173\u4e8e \u5982\u4f55 \u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe \u7684 \u7ec6\u8282 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \uff0c \u4f46\u662f \uff0c RoadRuner \u6587\u6863 \u4e2d \u63d0\u4f9b \u4e86 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u3002 \u8bf7 \u8bb0\u4f4f \uff0c \u5305\u542b \u5927\u91cf \u9053\u5177 \u7684 \u5730\u56fe \u4f1a\u663e \u7740 \u51cf\u6162 \u5bfc\u5165 \u8fc7\u7a0b \u3002 \u8fd9 \u56e0\u4e3a \u662f\u56e0\u4e3a \u865a\u5e7b \u5f15\u64ce \u9700\u8981 \u5c06 \u6bcf\u4e2a \u7f51\u683c \u7269\u4f53 \u8f6c\u6362 \u4e3a \u865a\u5e7b \u8d44\u6e90 \u3002 \u5982\u679c \u60a8 \u8ba1\u5212 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u7684 \u6e90 \u6784\u5efa \u7248\u672c \u4e2d \uff0c \u6211\u4eec \u5f3a\u70c8 \u5efa\u8bae \u5f3a\u70c8\u5efa\u8bae \u60a8 \u4ec5 \u5728 RoadRunner \u4e2d \u521b\u5efa \u9053\u8def \u5e03\u5c40 \uff0c \u5e76 \u5728 \u5c06 \u5730\u56fe \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e4b\u524d \u4fdd\u7559 \u4efb\u4f55 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8bbe\u7f6e \u3002 Carla \u63d0\u4f9b \u4e86 \u591a\u79cd \u5de5\u5177 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u4f7f\u7528 \u8fd9\u4e9b \u5de5\u5177 \u6765 \u7b80\u5316 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8fc7\u7a0b \u3002","title":"\u5728 RoadRunner \u4e2d \u6784\u5efa \u5730\u56fe"},{"location":"tuto_M_generate_map/#roadrunner_3","text":"\u4ee5\u4e0b \u662f\u4ece RoadRunner \u5bfc\u51fa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u57fa\u672c \u6307\u5357 \u3002 \u60a8 \u53ef\u4ee5 \u5728 MathWorks ' \u6587\u6863 \u4e2d \u627e\u5230 \u6709\u5173 \u5982\u4f55 \u5bfc\u51fa \u5230 Carla \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u5f53 \u60a8 \u51c6\u5907 \u597d \u5bfc\u51fa \u65f6 \uff1a 1 . \u4f7f\u7528 Carla \u9009\u9879 \u5bfc\u51fa \u573a\u666f \uff1a \u5728 \u4e3b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \uff0c \u9009\u62e9 File - > Export - > CARLA ( . fbx , . xodr , . rrdata . xml ) 2 . \u5728 \u5f39\u51fa \u7684 \u7a97\u53e3 \u4e2d \uff1a C \u68c0\u67e5 \u4ee5\u4e0b \u9009\u9879 \uff1a Split by Segmentation : \u901a\u8fc7 \u8bed\u4e49 \u5206\u5272 \u6765 \u5212\u5206 \u7f51\u683c \u3002 Power of Two Texture Dimensions : \u63d0\u9ad8 \u6027\u80fd \u3002 Embed Textures : \u786e\u4fdd \u7eb9\u7406 \u5d4c\u5165 \u5230 \u7f51\u683c \u4e2d \u3002 Export to Tiles : \u9009\u62e9 \u56fe\u5757 \u7684 \u5927\u5c0f \u6216\u4ec5 \u4fdd\u7559 \u4e00\u5757 \u4e0d \u9009\u4e2d \u3002 Leave unchecked : \u5bfc\u51fa \u5355\u4e2a \u56fe\u5757 : \u751f\u6210 \u4e00\u4e2a \u5305\u542b \u6240\u6709 \u5730 \u56fe\u7247 \u6bb5 \u7684 . fbx \u6587\u4ef6 \u3002 3 . \u9009\u62e9 \u8981 \u5c06 \u6587\u4ef6 \u5bfc\u51fa \u5230 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u5355\u51fb Export \u3002 \u8fd9 \u5c06 \u751f\u6210 < mapName > . fbx \u548c < mapName > . xodr \u6587\u4ef6 \u7b49 \u3002 \u7b14\u8bb0 \u786e\u4fdd . xodr \u548c . fbx \u6587\u4ef6 \u5177\u6709 \u76f8\u540c \u7684 \u540d\u79f0 \u3002","title":"\u5728 RoadRunner \u4e2d \u5bfc\u51fa \u5730\u56fe"},{"location":"tuto_M_generate_map/#_2","text":"\u60a8 \u73b0\u5728 \u5df2 \u51c6\u5907 \u597d \u5c06 \u5730\u56fe \u5bfc\u5165 Carla \u3002 \u4e0b \u4e00\u6b65 \u5c06 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u60a8 \u4f7f\u7528 \u7684 Carla \u5b89\u88c5 \u7c7b\u578b \uff1a \u5bf9\u4e8e \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5bf9\u4e8e Carla \u6253\u5305 \uff08 \u8fdb\u5236 \u4e8c\u8fdb\u5236 \uff09 \u7248\u672c \u7684 \u7528\u6237 \uff0c \u8bf7 \u6309\u7167 \u6b64\u5904 \u7684 \u6307\u5357 \u8fdb\u884c \u64cd\u4f5c \u3002 \u5982\u679c \u60a8 \u5bf9\u6b64 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_M_generate_pedestrian_navigation/","text":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e3a\u4e86 \u5141\u8bb8 \u884c\u4eba \u5bfc\u822a \u5730\u56fe \uff0c \u60a8 \u9700\u8981 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u3002 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8981 \u4f7f\u7528 \u7684 \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u751f\u6210 \u6587\u4ef6 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u884c\u4eba \u5bfc\u822a \u7f51\u683c \u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u5730\u56fe \u5b9a\u5236 \uff08 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u7ed8\u5236 \u9053\u8def \u3001 \u6dfb\u52a0 \u666f\u89c2 \u7279\u5f81 \u7b49 \uff09 \u5e94 \u5728 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e4b\u524d \u5b8c\u6210 \uff0c \u4ee5 \u907f\u514d \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u53d1\u751f \u5e72\u6270 \u6216 \u78b0\u649e \uff0c \u5bfc\u81f4 \u9700\u8981 \u518d\u6b21 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u3002 \u884c\u4eba \u5bfc\u822a \u7f51\u683c \u884c\u4eba \u53ea\u80fd \u5bfc\u822a \u7279\u5b9a \u7684 \u7f51\u683c \u3002 \u60a8 \u9700\u8981 \u6839\u636e \u4e0b\u8868\u4e2d \u7684 \u672f\u8bed \u547d\u540d \u8981 \u5305\u542b \u5728 \u884c\u4eba \u5bfc\u822a \u4e2d \u7684 \u7f51\u683c \uff1a \u7c7b\u578b \u5305\u542b \u7684 \u540d\u79f0 \u63cf\u8ff0 \u5730\u9762 Road _ Sidewalk \u6216 Roads _ Sidewalk \u884c\u4eba \u53ef\u4ee5 \u81ea\u7531 \u5730 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u3002 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 Road _ Crosswalk \u6216 Roads _ Crosswalk \u5982\u679c \u627e \u4e0d\u5230 \u5730\u9762 \uff0c \u884c\u4eba \u5c06 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u4f5c\u4e3a \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u9009\u62e9 \u3002 \u8349\u5730 Road _ Grass \u6216 Roads _ Grass \u884c\u4eba \u4e0d\u4f1a \u5728 \u6b64 \u7f51\u683c \u4e0a \u884c\u8d70 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a \u4e00\u5b9a \u6bd4\u4f8b \u7684 \u884c\u4eba \u8fd9\u6837 \u505a \u3002 \u9a6c\u8def Road _ Road \u6216 Roads _ Road Road _ Curb \u6216 Roads _ Curb Road _ Gutter \u6216 Roads _ Gutter Road _ Marking \u6216 Roads _ Marking \u884c\u4eba \u53ea\u80fd \u901a\u8fc7 \u8fd9\u4e9b \u7f51\u683c \u8fc7 \u9a6c\u8def \u3002 \u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879 \u4ee5\u4e0b \u6b65\u9aa4 \u5bf9\u4e8e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e0d\u662f \u5fc5\u9700 \u7684 \uff0c \u4f46 \u5141\u8bb8 \u60a8 \u5728 \u4e00\u5b9a \u7a0b\u5ea6 \u4e0a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u884c\u4eba \u6d3b\u52a8 \u3002 \u751f\u6210 \u65b0 \u7684 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u3002 \u5982\u679c \u5df2 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \uff0c \u8bf7 \u907f\u514d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u56e0\u4e3a \u8fd9\u4f1a \u5bfc\u81f4 \u91cd\u590d \uff1a \u521b\u5efa \u4e00\u4e2a \u5e73\u9762 \u7f51\u683c \uff08 plane mesh \uff0c \u5982\u679c \u4e0d\u5230 \u770b\u4e0d\u5230 \uff0c \u9700\u8981 \u5728 \u201c \u89c6\u56fe \u9009\u9879 \u201d \u4e2d \u9009\u4e2d \u201c \u663e\u793a \u5f15\u64ce \u5185\u5bb9 \u201d \uff09 \uff0c \u7a0d\u5fae \u5ef6\u4f38 \u5230 \u8981 \u8fde\u63a5 \u7684 \u4e24\u6761 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u3002 \u5c06 \u7f51\u683c \u653e\u7f6e \u5728 \u5730\u9762 \u4e0a \u5e76 \u7981\u7528 \u5176 \u7269\u7406 \u548c \u6e32\u67d3 \u3002 \u5c06 \u7f51\u683c \u540d\u79f0 \u66f4 \u6539\u4e3a Road _ Crosswalk \u6216 Roads _ Crosswalk \u3002 \u751f\u6210 \u884c\u4eba \u5bfc\u822a 1 . \u8981 \u9632\u6b62 \u5730\u56fe \u592a\u5927 \u592a\u5927\u800c \u65e0\u6cd5 \u5bfc\u51fa \uff0c \u8bf7 \u9009\u62e9 BP _ Sky \u5bf9\u8c61 \u5e76 \u6dfb\u52a0 \u4e00\u4e2a NoExport \u6807\u7b7e \u3002 \u5982\u679c \u60a8 \u6709 \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u53c2\u4e0e \u884c\u4eba \u5bfc\u822a \u7684 \u7279\u522b \u5927 \u7684 \u7f51\u683c \uff0c \u4e5f \u8bf7 \u5411 \u5b83\u4eec \u6dfb\u52a0 NoExport \u6807\u8bb0 \u3002 2 . \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \u60a8 \u7684 \u7f51\u683c \u540d\u79f0 \u3002 \u7f51\u683c \u540d\u79f0 \u5e94 \u4ee5 \u4e0b\u9762 \u5217\u51fa \u7684 \u4efb\u4f55 \u9002\u5f53 \u683c\u5f0f \u5f00\u5934 \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u884c\u4eba \u53ef\u4ee5 \u884c\u8d70 \u7684 \u533a\u57df \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u884c\u4eba \u5c06 \u80fd\u591f \u5728 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u548c \u8349\u5730 \u4e0a \u884c\u8d70 \uff08 \u5bf9 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5f71\u54cd \u8f83 \u5c0f \uff09 \uff1a \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 = Road _ Sidewalk \u6216 Roads _ Sidewalk \u4eba\u884c \u4eba\u884c\u6a2a\u9053 = Road _ Crosswalk \u6216 Roads _ Crosswalk \u8349\u5730 = Road _ Grass \u6216 Roads _ Grass 3 . \u6309 ctrl + A \u9009\u62e9 \u6240\u6709 \u5185\u5bb9 \uff08 \u62a5\u9519 \u5219 \u53ea \u9009\u62e9 \u548c \u884c\u4eba \u76f8\u5173 \u7684 \u7f51\u683c \uff09 \u5e76 \u901a\u8fc7 \u9009\u62e9 File - > Carla Exporter \u5bfc\u51fa \u5730\u56fe \u3002 \u5c06 \u5728 Unreal / CarlaUE4 / Saved \u4e2d \u521b\u5efa < mapName > . obj \u6587\u4ef6 \u3002 4 . \u5c06 < mapName > . obj \u548c < mapName > . xodr \u79fb\u52a8 \u5230 Util / DockerUtils / dist \u3002 5 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u751f\u6210 \u5bfc\u822a \u6587\u4ef6 \uff1a Windows build . bat < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d Linux . / build . sh < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d 6 . \u5c06 \u521b\u5efa \u4e00\u4e2a < mapName > . bin \u6587\u4ef6 \u3002 \u6b64 \u6587\u4ef6 \u5305\u542b \u5730\u56fe \u4e0a \u7684 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5c06 \u6b64 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u5305\u542b \u5730\u56fe \u7684 \u5305 \u7684 Nav \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 7 . \u901a\u8fc7 \u542f\u52a8 \u4eff\u771f \u5e76 \u8fd0\u884c PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u6765 \u6d4b\u8bd5 \u884c\u4eba \u5bfc\u822a \u3002 \u7b14\u8bb0 \u5982\u679c \u66f4\u65b0 \u5730\u56fe \u540e \u9700\u8981 \u91cd\u5efa \u884c\u4eba \u5bfc\u822a \uff0c \u8bf7 \u786e\u4fdd \u5220\u9664 CARLA \u7f13\u5b58 \u3002 \u8fd9 \u901a\u5e38 \u53ef\u4ee5 \u5728 Ubuntu \u7684 \u76ee\u5f55 \u4e3b\u76ee\u5f55 \uff08 \u5373 cd ~ \uff09 \u4e2d \u627e\u5230 \uff0c \u6216\u8005 \u5728 Windows \u7684 \u7528\u6237 \u76ee\u5f55 \uff08 \u5206\u914d \u7ed9 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf USERPROFILE \u7684 \u76ee\u5f55 \uff09 \u4e2d \uff0c \u5220\u9664 \u540d\u4e3a carlaCache \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u53ca\u5176 \u6240\u6709 \u5185\u5bb9 \uff0c \u5b83 \u53ef\u80fd \u5f88\u5927 \u3002 \u5982\u679c \u5173\u4e8e \u6d41\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_generate_pedestrian_navigation/#_1","text":"\u4e3a\u4e86 \u5141\u8bb8 \u884c\u4eba \u5bfc\u822a \u5730\u56fe \uff0c \u60a8 \u9700\u8981 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u6587\u4ef6 \u3002 \u672c \u6307\u5357 \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u8981 \u4f7f\u7528 \u7684 \u7f51\u683c \u4ee5\u53ca \u5982\u4f55 \u751f\u6210 \u6587\u4ef6 \u3002 \u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d \u884c\u4eba \u5bfc\u822a \u7f51\u683c \u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879 \u751f\u6210 \u884c\u4eba \u5bfc\u822a","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_generate_pedestrian_navigation/#_2","text":"\u5730\u56fe \u5b9a\u5236 \uff08 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u7ed8\u5236 \u9053\u8def \u3001 \u6dfb\u52a0 \u666f\u89c2 \u7279\u5f81 \u7b49 \uff09 \u5e94 \u5728 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e4b\u524d \u5b8c\u6210 \uff0c \u4ee5 \u907f\u514d \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u53d1\u751f \u5e72\u6270 \u6216 \u78b0\u649e \uff0c \u5bfc\u81f4 \u9700\u8981 \u518d\u6b21 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u3002","title":"\u5728 \u4f60 \u5f00\u59cb \u4e4b\u524d"},{"location":"tuto_M_generate_pedestrian_navigation/#_3","text":"\u884c\u4eba \u53ea\u80fd \u5bfc\u822a \u7279\u5b9a \u7684 \u7f51\u683c \u3002 \u60a8 \u9700\u8981 \u6839\u636e \u4e0b\u8868\u4e2d \u7684 \u672f\u8bed \u547d\u540d \u8981 \u5305\u542b \u5728 \u884c\u4eba \u5bfc\u822a \u4e2d \u7684 \u7f51\u683c \uff1a \u7c7b\u578b \u5305\u542b \u7684 \u540d\u79f0 \u63cf\u8ff0 \u5730\u9762 Road _ Sidewalk \u6216 Roads _ Sidewalk \u884c\u4eba \u53ef\u4ee5 \u81ea\u7531 \u5730 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u3002 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 Road _ Crosswalk \u6216 Roads _ Crosswalk \u5982\u679c \u627e \u4e0d\u5230 \u5730\u9762 \uff0c \u884c\u4eba \u5c06 \u5728 \u8fd9\u4e9b \u7f51\u683c \u4e0a \u884c\u8d70 \u4f5c\u4e3a \u7b2c\u4e8c \u4e8c\u79cd \u7b2c\u4e8c\u79cd \u9009\u62e9 \u3002 \u8349\u5730 Road _ Grass \u6216 Roads _ Grass \u884c\u4eba \u4e0d\u4f1a \u5728 \u6b64 \u7f51\u683c \u4e0a \u884c\u8d70 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a \u4e00\u5b9a \u6bd4\u4f8b \u7684 \u884c\u4eba \u8fd9\u6837 \u505a \u3002 \u9a6c\u8def Road _ Road \u6216 Roads _ Road Road _ Curb \u6216 Roads _ Curb Road _ Gutter \u6216 Roads _ Gutter Road _ Marking \u6216 Roads _ Marking \u884c\u4eba \u53ea\u80fd \u901a\u8fc7 \u8fd9\u4e9b \u7f51\u683c \u8fc7 \u9a6c\u8def \u3002","title":"\u884c\u4eba \u5bfc\u822a \u7f51\u683c"},{"location":"tuto_M_generate_pedestrian_navigation/#_4","text":"\u4ee5\u4e0b \u6b65\u9aa4 \u5bf9\u4e8e \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4e0d\u662f \u5fc5\u9700 \u7684 \uff0c \u4f46 \u5141\u8bb8 \u60a8 \u5728 \u4e00\u5b9a \u7a0b\u5ea6 \u4e0a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u884c\u4eba \u6d3b\u52a8 \u3002 \u751f\u6210 \u65b0 \u7684 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u3002 \u5982\u679c \u5df2 \u5728 . xodr \u6587\u4ef6 \u4e2d \u5b9a\u4e49 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \uff0c \u8bf7 \u907f\u514d \u6267\u884c \u6b64 \u64cd\u4f5c \uff0c \u56e0\u4e3a \u8fd9\u4f1a \u5bfc\u81f4 \u91cd\u590d \uff1a \u521b\u5efa \u4e00\u4e2a \u5e73\u9762 \u7f51\u683c \uff08 plane mesh \uff0c \u5982\u679c \u4e0d\u5230 \u770b\u4e0d\u5230 \uff0c \u9700\u8981 \u5728 \u201c \u89c6\u56fe \u9009\u9879 \u201d \u4e2d \u9009\u4e2d \u201c \u663e\u793a \u5f15\u64ce \u5185\u5bb9 \u201d \uff09 \uff0c \u7a0d\u5fae \u5ef6\u4f38 \u5230 \u8981 \u8fde\u63a5 \u7684 \u4e24\u6761 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u4e0a \u3002 \u5c06 \u7f51\u683c \u653e\u7f6e \u5728 \u5730\u9762 \u4e0a \u5e76 \u7981\u7528 \u5176 \u7269\u7406 \u548c \u6e32\u67d3 \u3002 \u5c06 \u7f51\u683c \u540d\u79f0 \u66f4 \u6539\u4e3a Road _ Crosswalk \u6216 Roads _ Crosswalk \u3002","title":"\u53ef\u9009 \u7684 \u884c\u4eba \u5bfc\u822a \u9009\u9879"},{"location":"tuto_M_generate_pedestrian_navigation/#_5","text":"1 . \u8981 \u9632\u6b62 \u5730\u56fe \u592a\u5927 \u592a\u5927\u800c \u65e0\u6cd5 \u5bfc\u51fa \uff0c \u8bf7 \u9009\u62e9 BP _ Sky \u5bf9\u8c61 \u5e76 \u6dfb\u52a0 \u4e00\u4e2a NoExport \u6807\u7b7e \u3002 \u5982\u679c \u60a8 \u6709 \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u53c2\u4e0e \u884c\u4eba \u5bfc\u822a \u7684 \u7279\u522b \u5927 \u7684 \u7f51\u683c \uff0c \u4e5f \u8bf7 \u5411 \u5b83\u4eec \u6dfb\u52a0 NoExport \u6807\u8bb0 \u3002 2 . \u4ed4\u7ec6 \u68c0\u67e5 \u4ed4\u7ec6\u68c0\u67e5 \u60a8 \u7684 \u7f51\u683c \u540d\u79f0 \u3002 \u7f51\u683c \u540d\u79f0 \u5e94 \u4ee5 \u4e0b\u9762 \u5217\u51fa \u7684 \u4efb\u4f55 \u9002\u5f53 \u683c\u5f0f \u5f00\u5934 \uff0c \u4ee5\u4fbf \u88ab \u8bc6\u522b \u4e3a \u884c\u4eba \u53ef\u4ee5 \u884c\u8d70 \u7684 \u533a\u57df \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u884c\u4eba \u5c06 \u80fd\u591f \u5728 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u4eba\u884c \u4eba\u884c\u6a2a\u9053 \u548c \u8349\u5730 \u4e0a \u884c\u8d70 \uff08 \u5bf9 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \u5f71\u54cd \u8f83 \u5c0f \uff09 \uff1a \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 = Road _ Sidewalk \u6216 Roads _ Sidewalk \u4eba\u884c \u4eba\u884c\u6a2a\u9053 = Road _ Crosswalk \u6216 Roads _ Crosswalk \u8349\u5730 = Road _ Grass \u6216 Roads _ Grass 3 . \u6309 ctrl + A \u9009\u62e9 \u6240\u6709 \u5185\u5bb9 \uff08 \u62a5\u9519 \u5219 \u53ea \u9009\u62e9 \u548c \u884c\u4eba \u76f8\u5173 \u7684 \u7f51\u683c \uff09 \u5e76 \u901a\u8fc7 \u9009\u62e9 File - > Carla Exporter \u5bfc\u51fa \u5730\u56fe \u3002 \u5c06 \u5728 Unreal / CarlaUE4 / Saved \u4e2d \u521b\u5efa < mapName > . obj \u6587\u4ef6 \u3002 4 . \u5c06 < mapName > . obj \u548c < mapName > . xodr \u79fb\u52a8 \u5230 Util / DockerUtils / dist \u3002 5 . \u8fd0\u884c \u4ee5\u4e0b \u547d\u4ee4 \u751f\u6210 \u5bfc\u822a \u6587\u4ef6 \uff1a Windows build . bat < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d Linux . / build . sh < mapName > # < mapName > \u6ca1\u6709 \u6269\u5c55 \u6269\u5c55\u540d 6 . \u5c06 \u521b\u5efa \u4e00\u4e2a < mapName > . bin \u6587\u4ef6 \u3002 \u6b64 \u6587\u4ef6 \u5305\u542b \u5730\u56fe \u4e0a \u7684 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5c06 \u6b64 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u5305\u542b \u5730\u56fe \u7684 \u5305 \u7684 Nav \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 7 . \u901a\u8fc7 \u542f\u52a8 \u4eff\u771f \u5e76 \u8fd0\u884c PythonAPI / examples \u4e2d \u7684 \u793a\u4f8b \u811a\u672c generate _ traffic . py \u6765 \u6d4b\u8bd5 \u884c\u4eba \u5bfc\u822a \u3002 \u7b14\u8bb0 \u5982\u679c \u66f4\u65b0 \u5730\u56fe \u540e \u9700\u8981 \u91cd\u5efa \u884c\u4eba \u5bfc\u822a \uff0c \u8bf7 \u786e\u4fdd \u5220\u9664 CARLA \u7f13\u5b58 \u3002 \u8fd9 \u901a\u5e38 \u53ef\u4ee5 \u5728 Ubuntu \u7684 \u76ee\u5f55 \u4e3b\u76ee\u5f55 \uff08 \u5373 cd ~ \uff09 \u4e2d \u627e\u5230 \uff0c \u6216\u8005 \u5728 Windows \u7684 \u7528\u6237 \u76ee\u5f55 \uff08 \u5206\u914d \u7ed9 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf USERPROFILE \u7684 \u76ee\u5f55 \uff09 \u4e2d \uff0c \u5220\u9664 \u540d\u4e3a carlaCache \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u53ca\u5176 \u6240\u6709 \u5185\u5bb9 \uff0c \u5b83 \u53ef\u80fd \u5f88\u5927 \u3002 \u5982\u679c \u5173\u4e8e \u6d41\u7a0b \u6709 \u4efb\u4f55 \u95ee\u9898 \uff0c \u60a8 \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u751f\u6210 \u884c\u4eba \u5bfc\u822a"},{"location":"tuto_M_manual_map_package/","text":"\u624b\u52a8 \u5305 \u51c6\u5907 \u5730\u56fe \u5730\u56fe\u5305 \u9075\u5faa \u7279\u5b9a \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \uff0c \u5e76\u4e14 \u5fc5\u987b \u5305\u542b \u63cf\u8ff0 \u8be5 \u7ed3\u6784 \u7684 . json \u6587\u4ef6 \u3002 \u6211\u4eec \u7684 \u81ea\u52a8 \u5730\u56fe \u5bfc\u5165 \u6d41\u7a0b \u4f1a \u81ea\u52a8 \u521b\u5efa \u6b64 . json \u6587\u4ef6 \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u81ea\u884c \u51c6\u5907 \u3002 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u5c06 \u8986\u76d6 \u4f20\u9012 \u7ed9 make import \u547d\u4ee4 \u7684 \u4efb\u4f55 \u53c2\u6570 \u3002 \u6807\u51c6 \u5730\u56fe \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u5927 \u5730\u56fe \u4e3a \u5927 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u5927 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u6807\u51c6 \u5730\u56fe \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u5e76 \u4e0d \u91cd\u8981 \u3002 \u4e3a \u6bcf\u4e2a \u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u521b\u5efa \u4e0d\u540c \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5c06 \u6bcf\u4e2a \u5730\u56fe \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5143\u7d20 \uff1a . fbx \u6587\u4ef6 \u4e2d \u5730\u56fe \u7684 \u7f51\u683c \u3002 . xodr \u6587\u4ef6 \u4e2d \u7684 OpenDRIVE \u5b9a\u4e49 \u3002 \uff08 \u53ef \u9009 \uff09 \u8d44\u4ea7 \u6240 \u9700 \u7684 \u7eb9\u7406 \u3002 \u4f8b\u5982 \uff0c \u4e00\u4e2a \u5305\u542b \u4e24\u4e2a \u5730\u56fe \u7684 \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 \u2502 \u251c \u2500 \u2500 Asphalt1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Map01 . fbx \u2502 \u2514 \u2500 \u2500 Map01 . xodr \u2514 \u2500 \u2500 Map02 \u2514 \u2500 \u2500 Map02 . fbx \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 \u5730\u56fe \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a \u5730\u56fe \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 . fbx \u6587\u4ef6 \u7684 source \u8def\u5f84 \u3002 use _ carla _ materials . \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 xodr . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u6750 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u8be5\u5b57 \u6bb5 \u5c06 \u7559\u7a7a \u3002 \u8fd8\u6709 \u53e6 \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u7684 \u6559\u7a0b \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" source \" : \" . / Map01 / Map01 . fbx \" , \" use _ carla _ materials \" : true , \" xodr \" : \" . / Map01 / Map01 . xodr \" } , { \" name \" : \" Map02 \" , \" source \" : \" . / Map02 / Map02 . fbx \" , \" use _ carla _ materials \" : false , \" xodr \" : \" . / Map02 / Map02 . xodr \" } ] , \" props \" : [ ] } \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u624b\u52a8 \u51c6\u5907 \u5730\u56fe\u5305"},{"location":"tuto_M_manual_map_package/#_1","text":"\u5730\u56fe \u5730\u56fe\u5305 \u9075\u5faa \u7279\u5b9a \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \uff0c \u5e76\u4e14 \u5fc5\u987b \u5305\u542b \u63cf\u8ff0 \u8be5 \u7ed3\u6784 \u7684 . json \u6587\u4ef6 \u3002 \u6211\u4eec \u7684 \u81ea\u52a8 \u5730\u56fe \u5bfc\u5165 \u6d41\u7a0b \u4f1a \u81ea\u52a8 \u521b\u5efa \u6b64 . json \u6587\u4ef6 \uff0c \u4f46 \u60a8 \u4e5f \u53ef\u4ee5 \u9009\u62e9 \u81ea\u884c \u51c6\u5907 \u3002 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 . json \u6587\u4ef6 \u5c06 \u8986\u76d6 \u4f20\u9012 \u7ed9 make import \u547d\u4ee4 \u7684 \u4efb\u4f55 \u53c2\u6570 \u3002 \u6807\u51c6 \u5730\u56fe \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0 \u5927 \u5730\u56fe \u4e3a \u5927 \u5730\u56fe \u521b\u5efa \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u4e3a \u5927 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0","title":"\u624b\u52a8 \u5305 \u51c6\u5907"},{"location":"tuto_M_manual_map_package/#_2","text":"","title":"\u6807\u51c6 \u5730\u56fe"},{"location":"tuto_M_manual_map_package/#_3","text":"\u5728 carla / Import \u91cc\u9762 \u521b\u5efa \u4e00\u4e2a \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7684 \u540d\u79f0 \u5e76 \u4e0d \u91cd\u8981 \u3002 \u4e3a \u6bcf\u4e2a \u8981 \u5bfc\u5165 \u7684 \u5730\u56fe \u521b\u5efa \u4e0d\u540c \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5c06 \u6bcf\u4e2a \u5730\u56fe \u7684 \u6587\u4ef6 \u79fb\u52a8 \u5230 \u76f8\u5e94 \u7684 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5c06 \u5305\u542b \u4e00\u7ec4 \u7279\u5b9a \u7684 \u5143\u7d20 \uff1a . fbx \u6587\u4ef6 \u4e2d \u5730\u56fe \u7684 \u7f51\u683c \u3002 . xodr \u6587\u4ef6 \u4e2d \u7684 OpenDRIVE \u5b9a\u4e49 \u3002 \uff08 \u53ef \u9009 \uff09 \u8d44\u4ea7 \u6240 \u9700 \u7684 \u7eb9\u7406 \u3002 \u4f8b\u5982 \uff0c \u4e00\u4e2a \u5305\u542b \u4e24\u4e2a \u5730\u56fe \u7684 \u5305 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e94 \u5177\u6709 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u7ed3\u6784 \u7684 \u7ed3\u6784 \u3002 Import \u2502 \u2514 \u2500 \u2500 Package01 \u251c \u2500 \u2500 Package01 . json \u251c \u2500 \u2500 Map01 \u2502 \u251c \u2500 \u2500 Asphalt1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Asphalt1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 Grass1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Diff . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Norm . jpg \u2502 \u251c \u2500 \u2500 LaneMarking1 _ Spec . jpg \u2502 \u251c \u2500 \u2500 Map01 . fbx \u2502 \u2514 \u2500 \u2500 Map01 . xodr \u2514 \u2500 \u2500 Map02 \u2514 \u2500 \u2500 Map02 . fbx","title":"\u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa \u6587\u4ef6\u5939 \u7ed3\u6784"},{"location":"tuto_M_manual_map_package/#json","text":"\u5728 \u5305 \u7684 \u6839 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u521b\u5efa \u4e00\u4e2a . json \u6587\u4ef6 \u3002 \u5728 \u5305 \u4e4b\u540e \u547d\u540d \u6587\u4ef6 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u8fd9 \u5c06 \u662f \u53d1\u884c \u53d1\u884c\u7248 \u540d\u79f0 \u3002 \u6587\u4ef6 \u7684 \u5185\u5bb9 \u5c06 \u63cf\u8ff0 \u5730\u56fe \u548c \u9053\u5177 \u7684 JSON \u6570\u7ec4 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u5730\u56fe \u548c \u9053\u5177 \u7684 \u57fa\u672c \u4fe1\u606f \u3002 \u5730\u56fe \u9700\u8981 \u4ee5\u4e0b \u53c2\u6570 \uff1a \u5730\u56fe \u7684 name \u3002 \u8fd9 \u5fc5\u987b \u548c . fbx \u548c . xodr \u6587\u4ef6 \u76f8\u540c \u3002 . fbx \u6587\u4ef6 \u7684 source \u8def\u5f84 \u3002 use _ carla _ materials . \u5982\u679c \u4e3a True \uff0c \u5730\u56fe \u5c06 \u4f7f\u7528 Carla \u6750\u8d28 \u3002 \u5426\u5219 \uff0c \u5b83 \u5c06 \u4f7f\u7528 RoadRunner \u6750\u8d28 \u3002 xodr . xodr \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 Props \u4e0d \u5c5e\u4e8e \u672c \u6559\u6750 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 \u8be5\u5b57 \u6bb5 \u5c06 \u7559\u7a7a \u3002 \u8fd8\u6709 \u53e6 \u4e00\u4e2a \u5173\u4e8e \u5982\u4f55 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u7684 \u6559\u7a0b \u3002 \u751f\u6210 \u7684 . json \u6587\u4ef6 \u5e94 \u7c7b\u4f3c \u4e8e \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a { \" maps \" : [ { \" name \" : \" Map01 \" , \" source \" : \" . / Map01 / Map01 . fbx \" , \" use _ carla _ materials \" : true , \" xodr \" : \" . / Map01 / Map01 . xodr \" } , { \" name \" : \" Map02 \" , \" source \" : \" . / Map02 / Map02 . fbx \" , \" use _ carla _ materials \" : false , \" xodr \" : \" . / Map02 / Map02 . xodr \" } ] , \" props \" : [ ] } \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e3a \u6807\u51c6 \u5730\u56fe \u521b\u5efa JSON \u63cf\u8ff0"},{"location":"tuto_content_authoring_maps/","text":"\u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe Carla \u63d0\u4f9b \u4e86 \u5927\u91cf \u7684 \u8d44\u6e90 \uff0c \u53ef \u7528\u4e8e \u521b\u5efa \u5f00\u7bb1 \u5373\u7528 \u7684 \u9a7e\u9a76 \u4eff\u771f \u3002 \u7136\u800c \uff0c Carla \u7684 \u771f\u6b63 \u529b\u91cf \u5728\u4e8e \u5176 \u5168\u9762 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \uff0c \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u5b8c\u5168 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u73af\u5883 \uff0c \u5176\u4e2d \u5305\u542b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u957f\u51f3 \u3001 \u5783\u573e \u5783\u573e\u6876 \u3001 \u96d5\u50cf \u3001 \u8def\u706f \u548c \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u5b9a\u5236 \u8d44\u4ea7 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 \u7b80\u5355 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e24\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u6765 \u521b\u5efa \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 RoadRunner \u521b\u5efa \u9053\u8def \u7f51\u7edc \uff0c \u7136\u540e \u901a\u8fc7 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5c06 \u8d44\u6e90 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5927 \u5730\u56fe \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 RoadRunner \u5bfc\u5165 Carla \u5bfc\u5165 \u8d44\u4ea7 \u4ea4\u901a \u4ea4\u901a\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 Materials \u9053\u8def \u753b\u5bb6 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4e3b \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61 \u51c6\u5907 \u4e3b \u6750\u6599 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2 \u4e0b \u4e00\u6b65 \u6811\u6728 \u548c \u690d\u88ab \u6811\u53f6 \u5de5\u5177 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u8981 \u9075\u5faa \u672c \u6307\u5357 \uff0c \u60a8 \u9700\u8981 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8bf7 \u9075\u5faa \u76f8\u5173 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7684 \u6784\u5efa \u8bf4\u660e \u3002 \u60a8 \u8fd8 \u9700\u8981 RoadRunner \u7684 \u8bb8\u53ef \u526f\u672c \u3002 \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 Maya \u3001 3DS Max \u6216 Blender \u7b49 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6765 \u4e3a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \u3002 \u60a8 \u5e94\u8be5 \u786e\u4fdd \u5df2 \u5b8c\u6210 \u6784\u5efa Carla \u7684 \u6240\u6709 \u6b65\u9aa4 \u5e76 \u786e\u4fdd \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6b63\u5728 \u8fd0\u884c \uff0c \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u6784\u5efa \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \uff0c \u5219 \u5e94 \u4f7f\u7528 \u9002\u5f53 \u7684 \u4e09\u7ef4 \u8bbe\u8ba1 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u4f8b\u5982 Blender \u3001 Maya \u3001 3DsMax \u6216 Modo \u3002 \u5927 \u5730\u56fe \u4ee5\u4e0b \u6587\u672c \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u548c \u88c5\u9970 \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5177\u6709 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 \u5927 \u5730\u56fe \u7684 \u6bd4\u4f8b \u6bd4 \u6807\u51c6 \u5730\u56fe \u66f4\u5927 \uff0c \u6700\u5927 \u53ef \u8fbe 100 km 2 \u3002 \u7531\u4e8e \u786c\u4ef6 \u9650\u5236 \uff0c \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \uff0c \u5373\u4f7f \u5728 \u9ad8\u7aef \u663e\u5361 \u4e2d \u4e5f \u662f \u5982\u6b64 \u3002 \u5927 \u5730\u56fe \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u5e76\u4e14 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d\u4ec5 \u52a0\u8f7d \u7acb\u5373 \u9700\u8981 \u7684 \u56fe\u5757 \uff08 \u5373 \u6700 \u63a5\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \uff09 \u3002 \u5176\u4ed6 \u56fe\u5757 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u76f4\u5230 \u9700\u8981 \u6570\u636e \u4e3a\u6b62 \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5b9e\u73b0 Carla \u4eff\u771f \u7684 \u6700\u9ad8 \u6027\u80fd \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7ec6\u8282 \u4e0e \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u7c7b\u4f3c \uff0c \u4f46 \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u3002 \u8bf7 \u6309\u7167 \u672c \u6307\u5357 \u4e3a Carla \u6784\u5efa \u5927 \u5730\u56fe \u3002 \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730\u56fe \u751f\u6210 \u5de5\u5177 \uff0c \u5b83 \u4ece OpenStreetMap \u83b7\u53d6 \u9053\u8def \u7f51\u7edc \u6570\u636e \uff0c \u5e76\u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u88c5\u9970 \u5730\u56fe \u3002 \u8bf7 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u8be5 \u5de5\u5177 \u7684 \u4fe1\u606f \u3002 \u4f7f\u7528 RoadRunner \u521b\u5efa \u8def\u7f51 \u6253\u5f00 RoadRunner \u5e76 \u521b\u5efa \u4e00\u4e2a \u65b0 \u573a\u666f \u3002 \u9009\u62e9 \u9053\u8def \u89c4\u5212 \u5de5\u5177 ( Road Plan Tool ) \u5e76 \u5728 \u5de5\u4f5c \u533a\u4e2d \u53f3\u952e \u5355\u51fb \u4ee5 \u653e\u7f6e \u9053\u8def \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u548c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u3002 \u5355\u51fb \u5e76 \u62d6\u52a8 \u9053\u8def \u5c3d\u5934 \u7684 \u7ea2\u70b9 \u4ee5 \u79fb\u52a8 \u548c \u5ef6\u957f \u9053\u8def \u3002 \u51fa\u4e8e \u672c \u6559\u7a0b \u7684 \u76ee\u7684 \uff0c \u6211\u4eec \u4f7f\u7528 \u4e2d\u95f4 \u6709 \u4e00\u4e2a \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u7b80\u5355 \u692d\u5706 \u5706\u5f62 \u692d\u5706\u5f62 \u9053\u8def \u3002 \u8981 \u6784\u5efa \u66f4 \u9ad8\u7ea7 \u7684 \u7f51\u7edc \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Roadrunner \u6587\u6863 \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u521b\u5efa \u6240 \u9700 \u7684 \u9053\u8def \u7f51\u7edc \u540e \uff0c \u5728 RoadRunner \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u9009\u62e9 File > Export > Carla Filmbox ( . fbx , . xodr , . rrdata . xml ) \u5e76 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 RoadRunner \u662f \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6700\u4f73 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8fd8\u6709 \u4e00\u4e9b \u66ff\u4ee3 \u65b9\u6848 \uff0c \u4f8b\u5982 OpenStreetMap \uff0c \u4e13\u6ce8 \u4e8e \u4ece \u771f\u5b9e \u7684 \u9053\u8def \u5730\u56fe \u751f\u6210 \u5730\u56fe \u3002 TrueVision \u8bbe\u8ba1 \u5668 RoadRunner \u662f \u4e00\u6b3e \u9700\u8981 MATLAB \u7684 \u4e13\u6709 \u8f6f\u4ef6 \u3002 \u5927\u5b66 \u7b49 \u4e00\u4e9b \u673a\u6784 \u53ef\u80fd \u4e0e MathWorks \u8fbe\u6210 \u4e86 \u534f\u8bae \uff0c \u4ee5\u4fbf \u67d0\u4e9b \u7528\u6237 \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u9884\u7b97 \uff0c RoadRunner \u7684 \u4e00\u4e2a \u65b9\u4fbf \u7684 \u5f00\u6e90 \u66ff\u4ee3 \u65b9\u6848 \u662f TrueVision Designer \u3002 \u6b64 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u5177\u6709 \u8bb8\u591a \u4e0e RoadRunner \u76f8\u540c \u7684 \u529f\u80fd \uff0c \u5982\u679c \u60a8 \u65e0\u6cd5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8be5 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4f1a \u975e\u5e38 \u6709\u7528 \u3002 \u5c06 \u60a8 \u7684 \u8def\u7f51 \u5bfc\u5165 Carla Carla \u9700\u8981 \u7684 \u91cd\u8981 \u5bfc\u51fa \u6587\u4ef6 \u662f . xodr \u6587\u4ef6 \u548c . fbx \u6587\u4ef6 \u3002 \u5c06 \u8fd9\u4e9b \u6587\u4ef6 \u590d\u5236 \u6216 \u79fb\u52a8 \u5230 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u5b58\u50a8 \u5e93 \u76ee\u5f55 \u6839\u76ee\u5f55 \u5185 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u73b0\u5728 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c make import . \u8fd9\u4f1a \u5c06 \u9053\u8def \u7f51\u7edc \u5bfc\u5165 Carla \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u770b\u5230 \u65b0 \u5730\u56fe \u3002 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u8fd0\u884c make launch \u4ee5 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u60a8 \u73b0\u5728 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u4e00\u4e2a \u540d\u4e3a map _ package \u7684 \u65b0 \u76ee\u5f55 \u3002 \u5728 \u6b64 \u76ee\u5f55 Content > map _ package > Maps > tutorial \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u627e\u5230 \u60a8 \u7684 \u65b0 \u5730\u56fe \u3002 \u7b14\u8bb0 \u53ef\u4ee5 \u53c2\u8003 \u94fe\u63a5 \u901a\u8fc7 \u9f20\u6807 \u53f3\u952e \u7684 \u65b9\u5f0f \u76f4\u63a5 \u5bfc\u5165 \u3002 \u60a8 \u73b0\u5728 \u5df2\u7ecf \u521b\u5efa \u4e86 \u9053\u8def \u7f51\u7edc \uff0c \u8fd9\u662f \u5730\u56fe \u7684 \u57fa\u7840 \u3002 \u5bfc\u5165 \u8d44\u4ea7 \u5e76 \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u5730\u56fe \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u6709 \u4e86 \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u5730\u56fe \u7684 \u57fa\u7840 \uff0c \u6211\u4eec \u73b0\u5728 \u60f3\u8981 \u4e3a \u5730\u56fe \u521b\u5efa \u4e00\u4e9b \u5185\u5bb9 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff08 \u4f8b\u5982 Autodesk Maya \u3001 3DS Max \u3001 Blender \u6216 \u5177\u6709 \u9002\u5f53 \u5bfc\u51fa \u9009\u9879 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u521b\u5efa \u3002 \u91cd\u8981 \u7684 \u662f \uff0c \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u81f3\u5c11 \u80fd\u591f \u5bfc\u51fa . fbx \u3002 \u5728 Carla \u4e2d \u521b\u5efa \u8d44\u4ea7 \u9700\u8981 \u51e0\u4e2a \u5143\u7d20 \uff1a \u7f51\u683c - \u4e00\u7ec4 3D \u5750\u6807 \u9876\u70b9 \u548c \u5173\u8054 \u7684 \u8fde\u63a5 \u8fb9 \u3002 UV \u8d34\u56fe - \u5c06 \u4e09\u7ef4 \u9876\u70b9 \u548c \u8fb9 \u6620\u5c04 \u5230 \u4e8c\u7ef4 \u7eb9\u7406 \u7a7a\u95f4 \uff0c \u4ee5 \u5c06 \u7eb9\u7406 \u4e0e \u4e09\u7ef4 \u4f4d\u7f6e \u8fdb\u884c \u5339\u914d \u3002 \u7eb9\u7406 - \u5b9a\u4e49 \u4e09\u7ef4 \u5bf9\u8c61 \u8868\u9762 \u4e0a \u663e\u793a \u7684 \u989c\u8272 \u548c \u56fe\u6848 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u3002 \u6cd5\u7ebf \u8d34\u56fe - \u5b9a\u4e49 \u76ee\u6807 \u8868\u9762 \u6cd5\u7ebf \u65b9\u5411 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \uff0c \u4ee5\u5411 \u76ee\u6807 \u8868\u9762 \u6dfb\u52a0 \u4e09\u7ef4 \u53d8\u5316 \u3002 ORM \u8d34\u56fe - \u5b9a\u4e49 \u91d1\u5c5e \u5ea6 ( Metallicity ) \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 ( Roughness ) \u548c \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 ( Occlusion ) \u533a\u57df \u7684 \u8d34\u56fe ORM \u8d34\u56fe \u5229\u7528 \u6807\u51c6 RGBA \u7f16\u7801 \u56fe\u50cf \u7684 \u901a\u9053 \u5bf9 \u91d1\u5c5e \u533a\u57df \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u548c \u73af\u5883 \u906e\u6321 \u7684 \u8d34\u56fe \u8fdb\u884c \u7f16\u7801 \u3002 \u5f53 \u6211\u4eec \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u8d34\u56fe \u65f6 \uff0c \u7ea2\u8272 \u901a\u9053 \u5b9a\u4e49 \u91d1\u5c5e \u8d34\u56fe \uff0c \u7eff\u8272 \u901a\u9053 \u7eff\u8272\u901a\u9053 \u5b9a\u4e49 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff0c \u84dd\u8272 \u901a\u9053 \u5b9a\u4e49 \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u3002 \u8fd9\u4e9b \u8d34\u56fe \uff08 \u4ee5\u53ca \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u8d34\u56fe \u548c \u6cd5\u7ebf \u8d34\u56fe \uff09 \u53ef\u4ee5 \u4f7f\u7528 Adobe Substance 3D painter \u7b49 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u521b\u5efa \u3002 \u4f7f\u7528 \u865a\u5e7b \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5728 \u67d0\u4e2a \u9002\u5f53 \u7684 \u4f4d\u7f6e \u521b\u5efa \u4e00\u4e2a \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u53f3\u952e \u5355\u51fb \u5e76 Import to PATH / TO / FOLDER \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u9876\u90e8 \u9644\u8fd1 \u8fdb\u884c \u9009\u62e9 \uff0c \u4e5f \u53ef\u4ee5 \u5c06 \u6587\u4ef6 \u76f4\u63a5 \u62d6 \u653e\u5230 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u4e00\u4e2a \u5305\u542b \u4ece Blender \u5bfc\u51fa \u7684 \u57fa\u7840 \u7f51\u683c \u548c UV \u8d34\u56fe \u7684 FBX \u6587\u4ef6 \u3002 \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d \uff0c \u5bf9\u4e8e Normal Import Method \u786e\u4fdd \u201c \u7f51\u683c \u201d \u90e8\u5206 \u9009\u62e9 \u4e86 \u201c \u5bfc\u5165 \u6cd5\u7ebf ( Import Normals ) \uff0c \u5e76\u4e14 \u5728 \u201c \u6750\u8d28 ( Material ) \u201d \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 Do Not Create Material \u3002 \u5728 \u201c \u6750\u8d28 \u201d \u90e8\u5206 \u4e2d \u53d6\u6d88 \u9009\u62e9 \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u624b\u52a8 \u5bfc\u5165 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 FBX \u6587\u4ef6 \u4e2d \u5df2 \u5d4c\u5165 \u7684 \u67d0\u4e9b \u7eb9\u7406 \uff0c \u8fd9\u4e9b \u9009\u62e9 \u5c06\u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u9009\u62e9 Import All \u3002 \u5bfc\u5165 \u5b8c\u6210 \u540e \uff0c \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u7684 \u5bfc\u5165 \u8d44\u6e90 \u8fdb\u884c \u7f16\u8f91 \u3002 \u6211\u4eec \u73b0\u5728 \u5e94\u8be5 \u5bfc\u5165 \u7eb9\u7406 \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u989c\u8272 \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7eb9\u7406 \u3001 \u6cd5\u7ebf \u8d34\u56fe \u548c ORM \u8d34\u56fe \u3002 \u901a\u8fc7 \u53cc\u51fb \u6253\u5f00 ORM \u8d34\u56fe \u5e76 \u53d6\u6d88 \u9009\u62e9 sRGB \u9009\u9879 \uff0c \u4ee5 \u786e\u4fdd \u6b63\u786e \u5e94\u7528 \u7eb9\u7406 \u3002 \u53f3\u952e \u5355\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u4ece \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Material \u3002 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u521b\u5efa \u65b0 \u6750\u6599 \u3002 \u53cc\u51fb \u8fdb\u884c \u7f16\u8f91 \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 \u5bfc\u5165 \u7684 \u7eb9\u7406 \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u6750\u8d28 \u7f16\u8f91 \u7a97\u53e3 \u4e2d \uff0c \u73b0\u5728 \u60a8 \u5c06 \u5728 \u6750\u8d28 \u8282\u70b9 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u83b7\u5f97 3 \u4e2a \u65b0 \u8282\u70b9 \u3002 \u73b0\u5728 \u6839\u636e \u4ee5\u4e0b \u89c4\u5219 \u8fde\u63a5 \u8282\u70b9 \uff1a Diffuse RGB -- > Base Color Normal RGB -- > Normal ORM R -- > Ambient occlusion ORM G -- > Roughness ORM B -- > Metallic \u60a8 \u7684 \u6750\u8d28 \u8282\u70b9 \u56fe \u73b0\u5728 \u5e94\u8be5 \u4e0e \u6b64 \u7c7b\u4f3c \uff1a \u4fdd\u5b58 \u6750\u8d28 \uff0c \u7136\u540e \u518d\u6b21 \u6253\u5f00 \u8d44\u6e90 \u5e76 \u5c06 \u6750\u8d28 \u62d6\u5165 \u6750\u8d28 \u69fd \u4e2d \u3002 \u60a8 \u7684 \u8d44\u6e90 \u73b0\u5728 \u5e94\u8be5 \u5df2 \u5b8c\u5168 \u7eb9\u7406 \u5316 \u3002 \u73b0\u5728 \u4fdd\u5b58 \u8d44\u4ea7 \uff0c \u5373\u53ef \u5728 \u5730\u56fe \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u62d6\u52a8 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u653e\u5165 \u5730\u56fe \u4e2d \uff1a \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u5de5\u4f5c \u533a \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u4fdd\u5b58 \u5f53\u524d \u201d \u9009\u9879 \u4fdd\u5b58 \u5730\u56fe \uff0c \u5373\u53ef \u4f7f\u7528 \u3002 \u5f00\u59cb \u4eff\u771f \u3002 \u5730\u56fe \u4f5c\u8005 \u6307\u5357 \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u73b0\u5728 \u60a8 \u77e5\u9053 \u5982\u4f55 \u521b\u5efa \u9053\u8def \u7f51\u7edc \u5e76 \u5bfc\u5165 \u4e09\u7ef4 \u8d44\u4ea7 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u9605\u8bfb \u5982\u4f55 \u6253\u5305 \u5730\u56fe \u4ee5 \u5728 Carla \u72ec\u7acb \u7248\u672c \u4e2d \u4f7f\u7528 \u3002 \u4ea4\u901a \u4ea4\u901a\u706f \u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 , \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficLight > StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u9009\u62e9 \u201c \u8be6\u7ec6 ( Details ) \u201d \u9762\u677f \u4e2d \u7684 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u7684 \u503c \uff0c \u4e3a \u6bcf\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8c03\u6574 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 4 . \u5bf9\u4e8e \u8def\u53e3 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u8def\u53e3 \u8def\u53e3\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f ( Traffic Lights ) \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u8981 \u5c06 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 \u201c \u53d8\u6362 ( Transform ) \u201d \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002 \u6750\u8d28 Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u5927\u91cf \u6709\u7528 \u7684 \u6750\u6599 \uff0c \u53ef \u968f\u65f6 \u7528\u4e8e \u66f4\u6539 \u5730\u56fe \u7684 \u5916\u89c2 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Carla > Static > GenericMaterials \u3002 \u5728 \u8fd9\u91cc \u60a8 \u4f1a \u53d1\u73b0 \u8bb8\u591a \u53ef \u7528\u4e8e \u6539\u53d8 \u5730\u56fe \u5916\u89c2 \u7684 \u6750\u6599 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u62d6 \u653e\u5230 \u5730\u56fe \u5143\u7d20 \u4e0a\u6765 \u5feb\u901f \u6d4b\u8bd5 \u6750\u8d28 \uff1a \u9053\u8def \u753b\u5bb6 \u9053\u8def \u753b\u5bb6 \u662f \u4e00\u79cd \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u5916\u89c2 \u7684 \u5de5\u5177 \uff0c \u901a\u8fc7 \u9644\u52a0 \u7eb9\u7406 \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u6dfb\u52a0 \u989d\u5916 \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002 \u9053\u8def \u753b\u5bb6 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002 \u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61 1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign > RoadPainterAssets . \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials . \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 \u201c \u5730\u56fe \u5c3a\u5bf8 \u201d ( Map Size ( Cm ) ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 \u201d \u5730\u56fe \u5c3a\u5bf8 ( Cm ) ( Map Size ( Cm ) ) \u201c \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 _ \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 _ \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 _ Paint - > Render Target _ \u3002 \u51c6\u5907 \u4e3b \u6750\u8d28 \u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u8d28 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u8d28 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb \u8be5 Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO \u5f3a\u5ea6 ( Intensity ) \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game > Carla > Static > GenericMaterials > Asphalt > Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002 \u63cf\u7ed8 \u9053\u8def 1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u7684 \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u7ed9 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u5e94\u7528 Tutorial _ RoadMaster \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 \u6bcf\u79cd \u6750\u8d28 Tutorial _ RoadMaster \u90fd \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 \u5237\u5b50 \u9762\u677f \u3002 \u4e0d\u540c \u7c7b\u578b \u7684 \u5237\u5b50 \u3002 4 . \u5c06 \u6bcf\u79cd \u6750\u8d28 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u7684 \u201c \u9ed8\u8ba4 ( Default ) \u201d \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u8d28 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content > Carla Static > Decals \u548c Content > Carla > Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c\u751f Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2 \u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 Save \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002 \u6811\u6728 \u548c \u690d\u88ab Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u4e00\u5957 \u5168\u9762 \u7684 \u690d\u88ab \u84dd\u56fe \uff0c \u4f9b \u60a8 \u4e3a \u5730\u56fe \u7684 \u8d8a\u91ce \u533a\u57df \uff08 \u5982 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u516c\u56ed \u3001 \u5c71\u5761 \u3001 \u7530\u91ce \u548c \u68ee\u6797 \uff09 \u589e\u6dfb \u66f4 \u591a \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002 \u5bfc\u822a \u5230 Carla \u5185\u5bb9 \u5e93\u4e2d \u7684 \u690d\u88ab \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Carla > Static > Visitation \u3002 \u60a8 \u4f1a \u627e\u5230 \u591a\u79cd \u6811\u6728 \u3001 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7684 \u84dd\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b \u5143\u7d20 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u5730\u56fe \u4e2d \u3002 \u6811\u53f6 \u5de5\u5177 \u5bf9\u4e8e \u6811\u6728 \u548c \u690d\u88ab \u6765\u8bf4 \uff0c \u4e00\u4e2a \u6709\u7528 \u7684 \u5de5\u5177 \u662f \u865a\u5e7b \u5f15\u64ce \u6811\u53f6 \u5de5\u5177 \u3002 \u901a\u8fc7 \u4ece \u5de5\u5177 \u5de5\u5177\u680f \u7684 mode \u4e0b \u62c9 \u5217\u8868 \u4e2d \u9009\u62e9 \u6765 \u6fc0\u6d3b \u8be5 \u5de5\u5177 \u3002 \u5c06 \u6240 \u9700 \u7684 \u6811\u53f6 \u9879\u76ee \u62d6 \u5230 \u6807\u6709 + Drop Foliage Here \u7684 \u6846\u4e2d \u3002 \u5728 \u5bc6\u5ea6 \u5b57\u6bb5 \u4e2d \u8bbe\u7f6e \u9002\u5f53 \u7684 \u5bc6\u5ea6 \uff0c \u7136\u540e \u4f7f\u7528 \u6811\u53f6 \u9879\u76ee \u7ed8\u5236 \u5230 \u5730\u56fe \u4e0a \u3002 \u4e0b \u4e00\u6b65 \u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u65bd \u5b50 \u5173\u5361 \u3002 . \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#-","text":"Carla \u63d0\u4f9b \u4e86 \u5927\u91cf \u7684 \u8d44\u6e90 \uff0c \u53ef \u7528\u4e8e \u521b\u5efa \u5f00\u7bb1 \u5373\u7528 \u7684 \u9a7e\u9a76 \u4eff\u771f \u3002 \u7136\u800c \uff0c Carla \u7684 \u771f\u6b63 \u529b\u91cf \u5728\u4e8e \u5176 \u5168\u9762 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \uff0c \u5141\u8bb8 \u7528\u6237 \u521b\u5efa \u5b8c\u5168 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u73af\u5883 \uff0c \u5176\u4e2d \u5305\u542b \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u957f\u51f3 \u3001 \u5783\u573e \u5783\u573e\u6876 \u3001 \u96d5\u50cf \u3001 \u8def\u706f \u548c \u516c\u4ea4 \u8f66\u7ad9 \u516c\u4ea4\u8f66 \u516c\u4ea4\u8f66\u7ad9 \u7b49 \u5b9a\u5236 \u8d44\u4ea7 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd \u521b\u5efa \u4e0e Carla \u4e00\u8d77 \u4f7f\u7528 \u7684 \u7b80\u5355 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 \u4e24\u4e2a \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \u6765 \u521b\u5efa \u5730\u56fe \u7684 \u5404\u4e2a \u90e8\u5206 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 RoadRunner \u521b\u5efa \u9053\u8def \u7f51\u7edc \uff0c \u7136\u540e \u901a\u8fc7 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5c06 \u8d44\u6e90 \u6dfb\u52a0 \u5230 \u5730\u56fe \u4e2d \u3002 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5927 \u5730\u56fe \u6570\u5b57 \u5b6a\u751f \u5de5\u5177 RoadRunner \u5bfc\u5165 Carla \u5bfc\u5165 \u8d44\u4ea7 \u4ea4\u901a \u4ea4\u901a\u706f \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 Materials \u9053\u8def \u753b\u5bb6 \u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3001 \u4e3b \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61 \u51c6\u5907 \u4e3b \u6750\u6599 \u63cf\u7ed8 \u9053\u8def \u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2 \u4e0b \u4e00\u6b65 \u6811\u6728 \u548c \u690d\u88ab \u6811\u53f6 \u5de5\u5177","title":"\u5185\u5bb9 \u521b\u4f5c - \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#_1","text":"\u8981 \u9075\u5faa \u672c \u6307\u5357 \uff0c \u60a8 \u9700\u8981 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \uff0c \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u8bf7 \u9075\u5faa \u76f8\u5173 \u64cd\u4f5c \u7cfb\u7edf \u64cd\u4f5c\u7cfb\u7edf \u7684 \u6784\u5efa \u8bf4\u660e \u3002 \u60a8 \u8fd8 \u9700\u8981 RoadRunner \u7684 \u8bb8\u53ef \u526f\u672c \u3002 \u60a8 \u53ef\u80fd \u8fd8 \u9700\u8981 Maya \u3001 3DS Max \u6216 Blender \u7b49 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u6765 \u4e3a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \u3002 \u60a8 \u5e94\u8be5 \u786e\u4fdd \u5df2 \u5b8c\u6210 \u6784\u5efa Carla \u7684 \u6240\u6709 \u6b65\u9aa4 \u5e76 \u786e\u4fdd \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u6b63\u5728 \u8fd0\u884c \uff0c \u8fd9 \u53ef\u80fd \u9700\u8981 \u4e00\u4e9b \u65f6\u95f4 \u6765 \u6784\u5efa \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u5730\u56fe \u521b\u5efa \u4e09\u7ef4 \u8d44\u4ea7 \uff0c \u5219 \u5e94 \u4f7f\u7528 \u9002\u5f53 \u7684 \u4e09\u7ef4 \u8bbe\u8ba1 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff0c \u4f8b\u5982 Blender \u3001 Maya \u3001 3DsMax \u6216 Modo \u3002","title":"\u5148\u51b3\u6761\u4ef6"},{"location":"tuto_content_authoring_maps/#_2","text":"\u4ee5\u4e0b \u6587\u672c \u8be6\u7ec6 \u4ecb\u7ecd \u4e86 \u521b\u5efa \u548c \u88c5\u9970 \u6807\u51c6 \u5730\u56fe \u7684 \u8fc7\u7a0b \u3002 \u4ece \u7248\u672c 0.9 . 12 \u5f00\u59cb \uff0c Carla \u5177\u6709 \u5927 \u5730\u56fe \u529f\u80fd \u5730\u56fe\u529f\u80fd \u3002 \u5927 \u5730\u56fe \u7684 \u6bd4\u4f8b \u6bd4 \u6807\u51c6 \u5730\u56fe \u66f4\u5927 \uff0c \u6700\u5927 \u53ef \u8fbe 100 km 2 \u3002 \u7531\u4e8e \u786c\u4ef6 \u9650\u5236 \uff0c \u5927 \u5730\u56fe \u7684 \u5de5\u4f5c \u65b9\u5f0f \u4e0e \u6807\u51c6 \u5730\u56fe \u7565\u6709 \u4e0d\u540c \u7565\u6709\u4e0d\u540c \uff0c \u5373\u4f7f \u5728 \u9ad8\u7aef \u663e\u5361 \u4e2d \u4e5f \u662f \u5982\u6b64 \u3002 \u5927 \u5730\u56fe \u88ab \u5206\u5272 \u6210 \u56fe\u5757 \uff0c \u5e76\u4e14 \u5728 \u4eff\u771f \u8fc7\u7a0b \u4e2d\u4ec5 \u52a0\u8f7d \u7acb\u5373 \u9700\u8981 \u7684 \u56fe\u5757 \uff08 \u5373 \u6700 \u63a5\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \uff09 \u3002 \u5176\u4ed6 \u56fe\u5757 \u5904\u4e8e \u4f11\u7720 \u72b6\u6001 \u4f11\u7720\u72b6\u6001 \uff0c \u76f4\u5230 \u9700\u8981 \u6570\u636e \u4e3a\u6b62 \u3002 \u8fd9 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5b9e\u73b0 Carla \u4eff\u771f \u7684 \u6700\u9ad8 \u6027\u80fd \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u7684 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u7ec6\u8282 \u4e0e \u6784\u5efa \u5927 \u5730\u56fe \u65f6 \u7c7b\u4f3c \uff0c \u4f46 \u8fd8\u6709 \u4e00\u4e9b \u989d\u5916 \u7684 \u6b65\u9aa4 \u3002 \u8bf7 \u6309\u7167 \u672c \u6307\u5357 \u4e3a Carla \u6784\u5efa \u5927 \u5730\u56fe \u3002","title":"\u5927 \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#_3","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730\u56fe \u751f\u6210 \u5de5\u5177 \uff0c \u5b83 \u4ece OpenStreetMap \u83b7\u53d6 \u9053\u8def \u7f51\u7edc \u6570\u636e \uff0c \u5e76\u7528 \u5efa\u7b51 \u5efa\u7b51\u7269 \u548c \u690d\u88ab \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u5730 \u88c5\u9970 \u5730\u56fe \u3002 \u8bf7 \u5728 \u6b64\u5904 \u9605\u8bfb \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 \u8be5 \u5de5\u5177 \u7684 \u4fe1\u606f \u3002","title":"\u6570\u5b57 \u5b6a\u751f \u5de5\u5177"},{"location":"tuto_content_authoring_maps/#roadrunner","text":"\u6253\u5f00 RoadRunner \u5e76 \u521b\u5efa \u4e00\u4e2a \u65b0 \u573a\u666f \u3002 \u9009\u62e9 \u9053\u8def \u89c4\u5212 \u5de5\u5177 ( Road Plan Tool ) \u5e76 \u5728 \u5de5\u4f5c \u533a\u4e2d \u53f3\u952e \u5355\u51fb \u4ee5 \u653e\u7f6e \u9053\u8def \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u548c \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u63a7\u5236 \u63a7\u5236\u70b9 \u3002 \u5355\u51fb \u5e76 \u62d6\u52a8 \u9053\u8def \u5c3d\u5934 \u7684 \u7ea2\u70b9 \u4ee5 \u79fb\u52a8 \u548c \u5ef6\u957f \u9053\u8def \u3002 \u51fa\u4e8e \u672c \u6559\u7a0b \u7684 \u76ee\u7684 \uff0c \u6211\u4eec \u4f7f\u7528 \u4e2d\u95f4 \u6709 \u4e00\u4e2a \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u7684 \u7b80\u5355 \u692d\u5706 \u5706\u5f62 \u692d\u5706\u5f62 \u9053\u8def \u3002 \u8981 \u6784\u5efa \u66f4 \u9ad8\u7ea7 \u7684 \u7f51\u7edc \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Roadrunner \u6587\u6863 \u3002 \u5728 RoadRunner \u4e2d \u5236\u4f5c \u5730\u56fe \u540e \uff0c \u60a8 \u5c31 \u53ef\u4ee5 \u5c06 \u5176 \u5bfc\u51fa \u3002 \u8bf7 \u6ce8\u610f \uff0c \u9053\u8def \u5e03\u5c40 \u5bfc\u51fa \u540e \u65e0\u6cd5 \u4fee\u6539 \u3002 \u5bfc\u51fa \u4e4b\u524d \uff0c \u8bf7 \u786e\u4fdd \uff1a \u5730\u56fe \u4ee5 ( 0 , 0 ) \u4e3a \u4e2d\u5fc3 \uff0c \u4ee5 \u786e\u4fdd \u5730\u56fe \u53ef\u4ee5 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u5730\u56fe \u5b9a\u4e49 \u662f \u6b63\u786e \u7684 \u3002 \u5730\u56fe \u9a8c\u8bc1 \u662f \u6b63\u786e \u7684 \uff0c \u5bc6\u5207 \u5173\u6ce8 \u8fde\u63a5 \u548c \u51e0\u4f55 \u5f62\u72b6 \u3002 \u5730\u56fe \u51c6\u5907 \u597d\u540e \uff0c \u5355\u51fb OpenDRIVE Preview Tool \u6309\u94ae \u5373\u53ef \u53ef\u89c6 \u53ef\u89c6\u5316 OpenDRIVE \u9053\u8def \u7f51\u7edc \u5e76 \u5bf9 \u6240\u6709 \u5185\u5bb9 \u8fdb\u884c \u6700\u540e \u4e00\u6b21 \u68c0\u67e5 \u3002 \u7b14\u8bb0 OpenDrive Preview Tool \u53ef\u4ee5 \u66f4 \u8f7b\u677e \u5730 \u6d4b\u8bd5 \u5730\u56fe \u7684 \u5b8c\u6574 \u5b8c\u6574\u6027 \u3002 \u5982\u679c \u8fde\u63a5 \u6709 \u4efb\u4f55 \u9519\u8bef \uff0c \u5355\u51fb \u8bf7\u5355\u51fb Maneuver Tool \u548c Rebuild Maneuver Roads \u3002 \u521b\u5efa \u6240 \u9700 \u7684 \u9053\u8def \u7f51\u7edc \u540e \uff0c \u5728 RoadRunner \u83dc\u5355 \u83dc\u5355\u680f \u4e2d \u9009\u62e9 File > Export > Carla Filmbox ( . fbx , . xodr , . rrdata . xml ) \u5e76 \u5bfc\u51fa \u5230 \u9002\u5f53 \u7684 \u4f4d\u7f6e \u3002 RoadRunner \u662f \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5730\u56fe \u7684 \u6700\u4f73 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8fd8\u6709 \u4e00\u4e9b \u66ff\u4ee3 \u65b9\u6848 \uff0c \u4f8b\u5982 OpenStreetMap \uff0c \u4e13\u6ce8 \u4e8e \u4ece \u771f\u5b9e \u7684 \u9053\u8def \u5730\u56fe \u751f\u6210 \u5730\u56fe \u3002","title":"\u4f7f\u7528 RoadRunner \u521b\u5efa \u8def\u7f51"},{"location":"tuto_content_authoring_maps/#truevision","text":"RoadRunner \u662f \u4e00\u6b3e \u9700\u8981 MATLAB \u7684 \u4e13\u6709 \u8f6f\u4ef6 \u3002 \u5927\u5b66 \u7b49 \u4e00\u4e9b \u673a\u6784 \u53ef\u80fd \u4e0e MathWorks \u8fbe\u6210 \u4e86 \u534f\u8bae \uff0c \u4ee5\u4fbf \u67d0\u4e9b \u7528\u6237 \u53ef\u4ee5 \u83b7\u5f97 RoadRunner \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u3002 \u5982\u679c \u60a8 \u6ca1\u6709 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \u9884\u7b97 \uff0c RoadRunner \u7684 \u4e00\u4e2a \u65b9\u4fbf \u7684 \u5f00\u6e90 \u66ff\u4ee3 \u65b9\u6848 \u662f TrueVision Designer \u3002 \u6b64 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u5177\u6709 \u8bb8\u591a \u4e0e RoadRunner \u76f8\u540c \u7684 \u529f\u80fd \uff0c \u5982\u679c \u60a8 \u65e0\u6cd5 \u83b7\u5f97 RoadRunner \u7684 \u8bb8\u53ef \u8bb8\u53ef\u8bc1 \uff0c \u8be5 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4f1a \u975e\u5e38 \u6709\u7528 \u3002","title":"TrueVision \u8bbe\u8ba1 \u5668"},{"location":"tuto_content_authoring_maps/#carla","text":"Carla \u9700\u8981 \u7684 \u91cd\u8981 \u5bfc\u51fa \u6587\u4ef6 \u662f . xodr \u6587\u4ef6 \u548c . fbx \u6587\u4ef6 \u3002 \u5c06 \u8fd9\u4e9b \u6587\u4ef6 \u590d\u5236 \u6216 \u79fb\u52a8 \u5230 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 Carla \u5b58\u50a8 \u5e93 \u76ee\u5f55 \u6839\u76ee\u5f55 \u5185 \u7684 Import \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u73b0\u5728 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e2d \u6253\u5f00 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c make import . \u8fd9\u4f1a \u5c06 \u9053\u8def \u7f51\u7edc \u5bfc\u5165 Carla \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u770b\u5230 \u65b0 \u5730\u56fe \u3002 \u5728 Carla \u76ee\u5f55 \u6e90\u76ee\u5f55 \u7684 \u76ee\u5f55 \u6839\u76ee\u5f55 \u4e0b \u8fd0\u884c make launch \u4ee5 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u60a8 \u73b0\u5728 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u4e00\u4e2a \u540d\u4e3a map _ package \u7684 \u65b0 \u76ee\u5f55 \u3002 \u5728 \u6b64 \u76ee\u5f55 Content > map _ package > Maps > tutorial \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5c06 \u627e\u5230 \u60a8 \u7684 \u65b0 \u5730\u56fe \u3002 \u7b14\u8bb0 \u53ef\u4ee5 \u53c2\u8003 \u94fe\u63a5 \u901a\u8fc7 \u9f20\u6807 \u53f3\u952e \u7684 \u65b9\u5f0f \u76f4\u63a5 \u5bfc\u5165 \u3002 \u60a8 \u73b0\u5728 \u5df2\u7ecf \u521b\u5efa \u4e86 \u9053\u8def \u7f51\u7edc \uff0c \u8fd9\u662f \u5730\u56fe \u7684 \u57fa\u7840 \u3002","title":"\u5c06 \u60a8 \u7684 \u8def\u7f51 \u5bfc\u5165 Carla"},{"location":"tuto_content_authoring_maps/#_4","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u6709 \u4e86 \u9053\u8def \u7f51\u7edc \u4f5c\u4e3a \u5730\u56fe \u7684 \u57fa\u7840 \uff0c \u6211\u4eec \u73b0\u5728 \u60f3\u8981 \u4e3a \u5730\u56fe \u521b\u5efa \u4e00\u4e9b \u5185\u5bb9 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u8fd9\u4e9b \u8d44\u6e90 \u53ef\u4ee5 \u4f7f\u7528 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff08 \u4f8b\u5982 Autodesk Maya \u3001 3DS Max \u3001 Blender \u6216 \u5177\u6709 \u9002\u5f53 \u5bfc\u51fa \u9009\u9879 \u7684 \u4efb\u4f55 \u5176\u4ed6 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u521b\u5efa \u3002 \u91cd\u8981 \u7684 \u662f \uff0c \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u81f3\u5c11 \u80fd\u591f \u5bfc\u51fa . fbx \u3002 \u5728 Carla \u4e2d \u521b\u5efa \u8d44\u4ea7 \u9700\u8981 \u51e0\u4e2a \u5143\u7d20 \uff1a \u7f51\u683c - \u4e00\u7ec4 3D \u5750\u6807 \u9876\u70b9 \u548c \u5173\u8054 \u7684 \u8fde\u63a5 \u8fb9 \u3002 UV \u8d34\u56fe - \u5c06 \u4e09\u7ef4 \u9876\u70b9 \u548c \u8fb9 \u6620\u5c04 \u5230 \u4e8c\u7ef4 \u7eb9\u7406 \u7a7a\u95f4 \uff0c \u4ee5 \u5c06 \u7eb9\u7406 \u4e0e \u4e09\u7ef4 \u4f4d\u7f6e \u8fdb\u884c \u5339\u914d \u3002 \u7eb9\u7406 - \u5b9a\u4e49 \u4e09\u7ef4 \u5bf9\u8c61 \u8868\u9762 \u4e0a \u663e\u793a \u7684 \u989c\u8272 \u548c \u56fe\u6848 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \u3002 \u6cd5\u7ebf \u8d34\u56fe - \u5b9a\u4e49 \u76ee\u6807 \u8868\u9762 \u6cd5\u7ebf \u65b9\u5411 \u7684 \u4e8c\u7ef4 \u56fe\u50cf \uff0c \u4ee5\u5411 \u76ee\u6807 \u8868\u9762 \u6dfb\u52a0 \u4e09\u7ef4 \u53d8\u5316 \u3002 ORM \u8d34\u56fe - \u5b9a\u4e49 \u91d1\u5c5e \u5ea6 ( Metallicity ) \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 ( Roughness ) \u548c \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 ( Occlusion ) \u533a\u57df \u7684 \u8d34\u56fe ORM \u8d34\u56fe \u5229\u7528 \u6807\u51c6 RGBA \u7f16\u7801 \u56fe\u50cf \u7684 \u901a\u9053 \u5bf9 \u91d1\u5c5e \u533a\u57df \u3001 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u548c \u73af\u5883 \u906e\u6321 \u7684 \u8d34\u56fe \u8fdb\u884c \u7f16\u7801 \u3002 \u5f53 \u6211\u4eec \u5728 \u8fd9\u91cc \u5b9a\u4e49 \u8d34\u56fe \u65f6 \uff0c \u7ea2\u8272 \u901a\u9053 \u5b9a\u4e49 \u91d1\u5c5e \u8d34\u56fe \uff0c \u7eff\u8272 \u901a\u9053 \u7eff\u8272\u901a\u9053 \u5b9a\u4e49 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \uff0c \u84dd\u8272 \u901a\u9053 \u5b9a\u4e49 \u73af\u5883 \u73af\u5883\u5149 \u906e\u6321 \u3002 \u8fd9\u4e9b \u8d34\u56fe \uff08 \u4ee5\u53ca \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u8d34\u56fe \u548c \u6cd5\u7ebf \u8d34\u56fe \uff09 \u53ef\u4ee5 \u4f7f\u7528 Adobe Substance 3D painter \u7b49 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u521b\u5efa \u3002 \u4f7f\u7528 \u865a\u5e7b \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5728 \u67d0\u4e2a \u9002\u5f53 \u7684 \u4f4d\u7f6e \u521b\u5efa \u4e00\u4e2a \u65b0 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 \u5728 \u6b64 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u53f3\u952e \u5355\u51fb \u5e76 Import to PATH / TO / FOLDER \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u9876\u90e8 \u9644\u8fd1 \u8fdb\u884c \u9009\u62e9 \uff0c \u4e5f \u53ef\u4ee5 \u5c06 \u6587\u4ef6 \u76f4\u63a5 \u62d6 \u653e\u5230 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u3002 \u6211\u4eec \u5c06 \u5bfc\u5165 \u4e00\u4e2a \u5305\u542b \u4ece Blender \u5bfc\u51fa \u7684 \u57fa\u7840 \u7f51\u683c \u548c UV \u8d34\u56fe \u7684 FBX \u6587\u4ef6 \u3002 \u5728 \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u83dc\u5355 \u4e2d \uff0c \u5bf9\u4e8e Normal Import Method \u786e\u4fdd \u201c \u7f51\u683c \u201d \u90e8\u5206 \u9009\u62e9 \u4e86 \u201c \u5bfc\u5165 \u6cd5\u7ebf ( Import Normals ) \uff0c \u5e76\u4e14 \u5728 \u201c \u6750\u8d28 ( Material ) \u201d \u90e8\u5206 \u4e2d \u9009\u62e9 \u4e86 Do Not Create Material \u3002 \u5728 \u201c \u6750\u8d28 \u201d \u90e8\u5206 \u4e2d \u53d6\u6d88 \u9009\u62e9 \uff0c \u56e0\u4e3a \u6211\u4eec \u5c06 \u624b\u52a8 \u5bfc\u5165 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 FBX \u6587\u4ef6 \u4e2d \u5df2 \u5d4c\u5165 \u7684 \u67d0\u4e9b \u7eb9\u7406 \uff0c \u8fd9\u4e9b \u9009\u62e9 \u5c06\u4f1a \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u9009\u62e9 Import All \u3002 \u5bfc\u5165 \u5b8c\u6210 \u540e \uff0c \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u663e\u793a \u7684 \u5bfc\u5165 \u8d44\u6e90 \u8fdb\u884c \u7f16\u8f91 \u3002 \u6211\u4eec \u73b0\u5728 \u5e94\u8be5 \u5bfc\u5165 \u7eb9\u7406 \u3001 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u989c\u8272 \u7684 \u53cd\u5c04 \u6f2b\u53cd\u5c04 \u7eb9\u7406 \u3001 \u6cd5\u7ebf \u8d34\u56fe \u548c ORM \u8d34\u56fe \u3002 \u901a\u8fc7 \u53cc\u51fb \u6253\u5f00 ORM \u8d34\u56fe \u5e76 \u53d6\u6d88 \u9009\u62e9 sRGB \u9009\u9879 \uff0c \u4ee5 \u786e\u4fdd \u6b63\u786e \u5e94\u7528 \u7eb9\u7406 \u3002 \u53f3\u952e \u5355\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5e76 \u4ece \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Material \u3002 \u5c06 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u521b\u5efa \u65b0 \u6750\u6599 \u3002 \u53cc\u51fb \u8fdb\u884c \u7f16\u8f91 \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 \u5bfc\u5165 \u7684 \u7eb9\u7406 \u5e76 \u5c06 \u5176 \u62d6 \u5230 \u6750\u8d28 \u7f16\u8f91 \u7a97\u53e3 \u4e2d \uff0c \u73b0\u5728 \u60a8 \u5c06 \u5728 \u6750\u8d28 \u8282\u70b9 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u83b7\u5f97 3 \u4e2a \u65b0 \u8282\u70b9 \u3002 \u73b0\u5728 \u6839\u636e \u4ee5\u4e0b \u89c4\u5219 \u8fde\u63a5 \u8282\u70b9 \uff1a Diffuse RGB -- > Base Color Normal RGB -- > Normal ORM R -- > Ambient occlusion ORM G -- > Roughness ORM B -- > Metallic \u60a8 \u7684 \u6750\u8d28 \u8282\u70b9 \u56fe \u73b0\u5728 \u5e94\u8be5 \u4e0e \u6b64 \u7c7b\u4f3c \uff1a \u4fdd\u5b58 \u6750\u8d28 \uff0c \u7136\u540e \u518d\u6b21 \u6253\u5f00 \u8d44\u6e90 \u5e76 \u5c06 \u6750\u8d28 \u62d6\u5165 \u6750\u8d28 \u69fd \u4e2d \u3002 \u60a8 \u7684 \u8d44\u6e90 \u73b0\u5728 \u5e94\u8be5 \u5df2 \u5b8c\u5168 \u7eb9\u7406 \u5316 \u3002 \u73b0\u5728 \u4fdd\u5b58 \u8d44\u4ea7 \uff0c \u5373\u53ef \u5728 \u5730\u56fe \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u62d6\u52a8 \u8d44\u6e90 \u5e76 \u5c06 \u5176 \u653e\u5165 \u5730\u56fe \u4e2d \uff1a \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u5de5\u4f5c \u533a \u5de6\u4e0a \u4e0a\u89d2 \u5de6\u4e0a\u89d2 \u7684 \u201c \u4fdd\u5b58 \u5f53\u524d \u201d \u9009\u9879 \u4fdd\u5b58 \u5730\u56fe \uff0c \u5373\u53ef \u4f7f\u7528 \u3002 \u5f00\u59cb \u4eff\u771f \u3002 \u5730\u56fe \u4f5c\u8005 \u6307\u5357 \u7ed3\u675f \u5230\u6b64\u7ed3\u675f \u3002 \u73b0\u5728 \u60a8 \u77e5\u9053 \u5982\u4f55 \u521b\u5efa \u9053\u8def \u7f51\u7edc \u5e76 \u5bfc\u5165 \u4e09\u7ef4 \u8d44\u4ea7 \u4ee5 \u5728 Carla \u4e2d \u4f7f\u7528 \u3002 \u60a8 \u73b0\u5728 \u53ef\u4ee5 \u9605\u8bfb \u5982\u4f55 \u6253\u5305 \u5730\u56fe \u4ee5 \u5728 Carla \u72ec\u7acb \u7248\u672c \u4e2d \u4f7f\u7528 \u3002","title":"\u5bfc\u5165 \u8d44\u4ea7 \u5e76 \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u5730\u56fe"},{"location":"tuto_content_authoring_maps/#_5","text":"\u8981 \u5c06 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 , \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficLight > StreetLights _ 01 \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u9009\u62e9 \u201c \u8be6\u7ec6 ( Details ) \u201d \u9762\u677f \u4e2d \u7684 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 Transform \u90e8\u5206 \u7684 \u503c \uff0c \u4e3a \u6bcf\u4e2a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8c03\u6574 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u5f71\u54cd \u8303\u56f4 \u3002 4 . \u5bf9\u4e8e \u8def\u53e3 \uff0c \u5c06 BP _ TrafficLightGroup \u53c2\u4e0e \u53c2\u4e0e\u8005 \u62d6\u5165 \u5173\u5361 \u4e2d \u3002 \u901a\u8fc7 \u5c06 \u8def\u53e3 \u8def\u53e3\u5904 \u7684 \u6240\u6709 \u4ea4\u901a \u4ea4\u901a\u706f \u6dfb\u52a0 \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u7684 \u201c \u4ea4\u901a \u4ea4\u901a\u706f ( Traffic Lights ) \u201d \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u5206\u914d \u7ed9 \u4ea4\u901a \u4ea4\u901a\u706f \u7ec4 \u3002 5 . \u4ea4\u901a \u4ea4\u901a\u706f \u8ba1\u65f6 \u53ea\u80fd \u901a\u8fc7 Python API \u8fdb\u884c \u914d\u7f6e \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u6b64\u5904 \u7684 \u6587\u6863 \u4ee5 \u83b7\u53d6 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f8b\u5982 \uff1a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u3001 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u548c \u8f6c\u5f2f \u505c\u8f66 \u3002","title":"\u4ea4\u901a\u706f"},{"location":"tuto_content_authoring_maps/#_6","text":"\u8981 \u5c06 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u6dfb\u52a0 \u5230 \u65b0 \u5730\u56fe \uff1a 1 . \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Static > TrafficSign \u3002 \u60a8 \u4f1a \u53d1\u73b0 \u51e0\u79cd \u4e0d\u540c \u7684 \u4ea4\u901a \u4ea4\u901a\u706f \u84dd\u56fe \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 2 . \u5c06 \u4ea4\u901a \u4ea4\u901a\u706f \u62d6 \u5230 \u573a\u666f \u4e2d \u5e76 \u5c06 \u5176 \u653e\u7f6e \u5728 \u6240 \u9700 \u4f4d\u7f6e \u3002 \u6309 \u952e\u76d8 \u4e0a \u7684 \u7a7a\u683c \u7a7a\u683c\u952e \u53ef \u5728 \u5b9a\u4f4d \u3001 \u65cb\u8f6c \u548c \u7f29\u653e \u5de5\u5177 \u4e4b\u95f4 \u5207\u6362 \u3002 3 . \u901a\u8fc7 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u9009\u62e9 BoxTrigger \u7ec4\u4ef6 \u5e76 \u8c03\u6574 \u201c \u53d8\u6362 ( Transform ) \u201d \u90e8\u5206 \u4e2d \u7684 \u503c \uff0c \u8c03\u6574 \u6bcf\u4e2a \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u7684 trigger volume \u3002 \u8fd9 \u5c06 \u786e\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u5f71\u54cd \u533a\u57df \u3002 \u5e76\u975e \u6240\u6709 \u4ea4\u901a \u6807\u5fd7 \u4ea4\u901a\u6807\u5fd7 \u90fd \u6709 \u89e6\u53d1 \u97f3\u91cf \u3002 \u6b64\u7c7b \u6807\u5fd7 \u5305\u62ec \u8ba9 \u884c \u6807\u5fd7 \u3001 \u505c\u8f66 \u6807\u5fd7 \u548c \u9650\u901f \u6807\u5fd7 \u3002","title":"\u4ea4\u901a\u6807\u5fd7"},{"location":"tuto_content_authoring_maps/#_7","text":"Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u5927\u91cf \u6709\u7528 \u7684 \u6750\u6599 \uff0c \u53ef \u968f\u65f6 \u7528\u4e8e \u66f4\u6539 \u5730\u56fe \u7684 \u5916\u89c2 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Carla > Static > GenericMaterials \u3002 \u5728 \u8fd9\u91cc \u60a8 \u4f1a \u53d1\u73b0 \u8bb8\u591a \u53ef \u7528\u4e8e \u6539\u53d8 \u5730\u56fe \u5916\u89c2 \u7684 \u6750\u6599 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u62d6 \u653e\u5230 \u5730\u56fe \u5143\u7d20 \u4e0a\u6765 \u5feb\u901f \u6d4b\u8bd5 \u6750\u8d28 \uff1a","title":"\u6750\u8d28"},{"location":"tuto_content_authoring_maps/#_8","text":"\u9053\u8def \u753b\u5bb6 \u662f \u4e00\u79cd \u53ef \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u9053\u8def \u5916\u89c2 \u7684 \u5de5\u5177 \uff0c \u901a\u8fc7 \u9644\u52a0 \u7eb9\u7406 \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u6dfb\u52a0 \u989d\u5916 \u7684 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002","title":"\u9053\u8def \u753b\u5bb6"},{"location":"tuto_content_authoring_maps/#_9","text":"\u9053\u8def \u753b\u5bb6 \u5de5\u5177 \u662f \u4e00\u4e2a \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u5feb\u901f \u7ed8\u5236 \u9053\u8def \u7684 \u84dd\u56fe \u3002 \u5b83 \u91c7\u7528 \u4e3b \u6750\u8d28 \u5e76 \u5c06 \u5176 \u5e94\u7528 \u5230 \u9053\u8def \u7684 \u6e32\u67d3 \u76ee\u6807 \u4ee5 \u7528\u4f5c \u753b\u5e03 \u3002 \u4e3b \u6750\u8d28 \u7531 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6750\u8d28 \u7ec4\u6210 \uff0c \u8fd9\u4e9b \u6750\u8d28 \u53ef\u4ee5 \u4f7f\u7528 \u753b\u7b14 \u6df7\u5408 \u5e76 \u7528\u4f5c \u8499\u7248 \u3002 \u65e0\u9700 \u5e94\u7528 \u5149\u5ea6 \u6d4b\u5b9a \u6280\u672f \uff0c \u4e5f \u65e0\u9700 \u8003\u8651 \u51e0\u4f55 \u51e0\u4f55\u4f53 \u7684 UV \u3002 \u9053\u8def \u753b\u5bb6 \u4f7f\u7528 OpenDRIVE \u4fe1\u606f \u6765 \u6cb9\u6f06 \u9053\u8def \u3002 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7684 . xodr \u6587\u4ef6 \u4e0e \u5730\u56fe \u540c\u540d \uff0c \u8fd9\u6837 \u624d\u80fd \u6b63\u5e38 \u5de5\u4f5c \u3002","title":"\u4ec0\u4e48 \u662f \u9053\u8def \u753b\u5bb6 \uff1f"},{"location":"tuto_content_authoring_maps/#_10","text":"1 . \u521b\u5efa RoadPainter \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign \u3002 \u5c06 RoadPainter \u62d6\u5165 \u573a\u666f \u4e2d \u3002 2 . \u521b\u5efa \u6e32\u67d3 \u76ee\u6807 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u5bfc\u822a \u81f3 Content > Carla > Blueprints > LevelDesign > RoadPainterAssets . \u53f3\u952e \u5355\u51fb RenderTarget \u6587\u4ef6 \u5e76 \u9009\u62e9 Duplicate \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RenderTarget \u3002 3 . \u521b\u5efa \u4e3b \u6750\u8d28 \u5b9e\u4f8b \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials . \u53f3\u952e \u5355\u51fb M _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ RoadMaster \u3002 4 . \u91cd\u65b0 \u6821\u51c6 \u201c \u5730\u56fe \u5c3a\u5bf8 \u201d ( Map Size ( Cm ) ) \uff0c \u4f7f \u5176 \u7b49\u4e8e \u5730\u56fe \u7684 \u5b9e\u9645 \u5c3a\u5bf8 \u3002 \u9009\u62e9 RoadPainter \u573a\u666f \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u6309 Z - Size \u6309\u94ae \u3002 \u60a8 \u5c06 \u770b\u5230 \u201d \u5730\u56fe \u5c3a\u5bf8 ( Cm ) ( Map Size ( Cm ) ) \u201c \u4e2d \u7684 \u503c \u53d1\u751f \u751f\u53d8 \u53d8\u5316 \u53d1\u751f\u53d8\u5316 \u3002 5 . \u540c\u6b65 RoadPainter \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u5730\u56fe \u5c3a\u5bf8 \u3002 \u5728 _ \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 _ \u4e2d \uff0c \u6253\u5f00 Tutorial _ RoadMaster \u3002 \u590d\u5236 \u4e0a \u4e00\u6b65 \u4e2d Map Size ( Cm ) \u7684 \u503c \uff0c \u5e76 \u5c06 \u5176 \u7c98\u8d34 \u5230 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \u7684 Global Scalar Parameter Values - > Map units ( CM ) \u3002 \u70b9\u51fb \u4fdd\u5b58 \u3002 6 . \u521b\u5efa \u9053\u8def \u753b\u5bb6 \u548c \u4e3b \u6750\u8d28 \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u94fe\u63a5 \u3002 Tutorial _ RenderTarget \u5c06 \u662f \u9053\u8def \u753b\u5bb6 \u548c Tutorial _ RoadMaster \u4e4b\u95f4 \u7684 \u901a\u4fe1 \u7ebd\u5e26 \u3002 \u5728 Tutorial _ RoadMaster \u7a97\u53e3 \u4e2d \uff0c \u5c06 Tutorial _ RenderTarget \u5e94\u7528 \u4e8e Global Texture Parameter Values - > Texture Mask \u3002 \u4fdd\u5b58 \u5e76 \u5173\u95ed \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8f6c \u5230 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u5e76 \u5c06 Tutorial _ RenderTarget \u5e94\u7528 _ Paint - > Render Target _ \u3002","title":"\u5efa\u7acb \u9053\u8def \u753b\u5bb6 \u3001 \u638c\u63e1 \u6750\u8d28 \u548c \u6e32\u67d3 \u5bf9\u8c61"},{"location":"tuto_content_authoring_maps/#_11","text":"\u60a8 \u521b\u5efa \u7684 Tutorial _ RoadMaster \u6750\u8d28 \u5305\u542b \u57fa\u7840 \u6750\u8d28 \u3001 \u989d\u5916 \u6750\u8d28 \u4fe1\u606f \u4ee5\u53ca \u5c06 \u901a\u8fc7 \u60a8 \u7684 Tutorial _ RenderTarget \u3002 \u60a8 \u53ef\u4ee5 \u914d\u7f6e \u4e00\u79cd \u57fa\u7840 \u6750\u8d28 \u548c \u6700 \u591a \u4e09\u79cd \u9644\u52a0 \u6750\u8d28 \u3002 \u8981 \u914d\u7f6e \u6750\u6599 \uff0c \u8bf7 \u53cc\u51fb \u8be5 Tutorial _ RoadMaster \u6587\u4ef6 \u3002 \u5728 \u51fa\u73b0 \u7684 \u7a97\u53e3 \u4e2d \uff0c \u60a8 \u53ef\u4ee5 \u6839\u636e \u9700\u8981 \u4e3a \u6bcf\u79cd \u6750\u6599 \u9009\u62e9 \u548c \u8c03\u6574 \u4ee5\u4e0b \u503c \uff1a \u4eae\u5ea6 ( Brightness ) \u8272\u8c03 ( Hue ) \u9971\u548c \u9971\u548c\u5ea6 ( Saturation ) AO \u5f3a\u5ea6 ( Intensity ) \u6cd5\u7ebf \u8d34\u56fe \u5f3a\u5ea6 ( NormalMap Intensity ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5bf9\u6bd4 ( Roughness Contrast ) \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u5f3a\u5ea6 ( Roughness Intensity ) \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u4ee5\u4e0b \u503c \u5e76 \u5728 \u641c\u7d22 \u6846\u4e2d \u641c\u7d22 \u7eb9\u7406 \u6765 \u66f4\u6539 \u6bcf\u79cd \u6750\u8d28 \u7684 \u7eb9\u7406 \uff1a Diffuse Normal ORMH \u63a2\u7d22 Game > Carla > Static > GenericMaterials > Asphalt > Textures \u4e2d \u53ef\u7528 \u7684 \u4e00\u4e9b Carla \u7eb9\u7406 \u3002","title":"\u51c6\u5907 \u4e3b \u6750\u8d28"},{"location":"tuto_content_authoring_maps/#_12","text":"1 . \u5728 \u9053\u8def \u753b\u5bb6 \u548c \u9053\u8def \u4e4b\u95f4 \u521b\u5efa \u94fe\u63a5 \u3002 \u5728 \u4e3b \u7f16\u8f91 \u7f16\u8f91\u5668 \u7a97\u53e3 \u4e2d \uff0c \u5728 World Outliner \u641c\u7d22 \u6846\u4e2d \u8fdb\u884c Road _ Road \u7684 \u641c\u7d22 \u3002 \u6309 Ctrl + A \u9009\u62e9 \u6240\u6709 \u9053\u8def \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Materials \u90e8\u5206 \u5e76 \u7ed9 Element 0 \u3001 Element 1 \u3001 Element 2 \u548c Element 3 \u5e94\u7528 Tutorial _ RoadMaster \u3002 2 . \u9009\u62e9 \u8981 \u5b9a\u5236 \u7684 \u6750\u8d28 \u3002 \u6211\u4eec \u6dfb\u52a0 \u7684 \u6bcf\u79cd \u6750\u8d28 Tutorial _ RoadMaster \u90fd \u5355\u72ec \u5e94\u7528 \u4e8e \u9053\u8def \uff0c \u5e76 \u4f7f\u7528 \u753b\u7b14 \u5de5\u5177 \u914d\u7f6e \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u3002 \u8981 \u5e94\u7528 \u548c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6750\u8d28 \uff1a \u9009\u62e9 \u9053\u8def \u753b\u5bb6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u5728 Mask Color \u4e0b\u62c9 \u83dc\u5355 \u4e0b\u62c9\u83dc\u5355 \u4e2d \u9009\u62e9 \u8981 \u4f7f\u7528 \u7684 \u6750\u8d28 \u3002 3 . \u8bbe\u7f6e \u753b\u7b14 \u548c \u6a21\u677f \u53c2\u6570 \u3002 GenericMaterials / RoadStencil / Alphas \u4e2d\u6709 \u591a\u79cd \u6a21\u677f \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u6a21\u677f \u7528\u4e8e \u6839\u636e \u60a8 \u7684 \u9700\u8981 \u7ed8\u5236 \u9053\u8def \uff0c \u53ef\u4ee5 \u4f7f\u7528 \u4ee5\u4e0b \u503c \u8fdb\u884c \u8c03\u6574 \uff1a Stencil size \u2014 \u753b\u7b14 \u7684 \u5c3a\u5bf8 \u3002 Brush strength \u2014 \u8f6e\u5ed3 \u7684 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u3002 Spacebeween Brushes \u2014 \u7b14\u5212 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 Max Jitter \u2014 \u7b14\u5212 \u4e4b\u95f4 \u753b\u7b14 \u7684 \u5927\u5c0f \u53d8\u5316 \u3002 Stencil \u2014 \u8981 \u4f7f\u7528 \u7684 \u753b\u7b14 \u3002 Rotation \u2014 \u5e94\u7528 \u4e8e \u7b14\u753b \u7684 \u65cb\u8f6c \u3002 \u5237\u5b50 \u9762\u677f \u3002 \u4e0d\u540c \u7c7b\u578b \u7684 \u5237\u5b50 \u3002 4 . \u5c06 \u6bcf\u79cd \u6750\u8d28 \u6d82\u62b9 \u5230 \u9053\u8def \u7684 \u6240 \u9700 \u90e8\u5206 \u3002 \u901a\u8fc7 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u7684 \u201c \u9ed8\u8ba4 ( Default ) \u201d \u90e8\u5206 \u4e2d \u7684 \u6309\u94ae \u9009\u62e9 \u5e94\u7528 \u6240 \u9009 \u6750\u8d28 \u7684 \u4f4d\u7f6e \uff1a Paint all roads \u2014 \u7c89\u5237 \u6240\u6709 \u9053\u8def \u3002 Paint by actor \u2014 \u7ed8\u753b \u7279\u5b9a \u7684 \u3001 \u9009\u5b9a \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Paint over circle \u2014 \u4f7f\u7528 \u5706\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 Paint over square \u2014 \u4f7f\u7528 \u6b63\u65b9 \u65b9\u5f62 \u6b63\u65b9\u5f62 \u56fe\u6848 \u8fdb\u884c \u7ed8\u5236 \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u4f9b \u53d8\u5316 \u3002 \u6b64 \u90e8\u5206 \u8fd8 \u5305\u542b \u7528\u4e8e \u5220\u9664 \u5df2 \u5e94\u7528 \u66f4\u6539 \u7684 \u9009\u9879 \u3002 Clear all \u2014 \u64e6\u9664 \u6240\u6709 \u7ed8\u5236 \u7684 \u6750\u8d28 \u3002 Clear materials \u2014 \u5220\u9664 \u5f53\u524d \u6d3b\u52a8 \u7684 \u6750\u8d28 \u3002 Clear material by actor \u2014 \u5220\u9664 \u6700 \u63a5\u8fd1 \u6240 \u9009 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u6750\u8d28 \u3002 Different painting and erasing options . 5 . \u6dfb\u52a0 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u60a8 \u53ef\u4ee5 \u5728 Content > Carla Static > Decals \u548c Content > Carla > Static \u4e2d \u63a2\u7d22 \u53ef\u7528 \u7684 \u8d34\u82b1 \u548c \u7f51\u683c \u3002 \u901a\u8fc7 \u6269\u5c55 \u5e76 \u6dfb\u52a0 \u5230 Decals Spawn \u548c Meshes Spawn \u6570\u7ec4 \uff0c \u5c06 \u5b83\u4eec \u6dfb\u52a0 \u5230 \u9053\u8def \u7ed8\u5236 \u5668\u4e2d \u3002 \u5bf9\u4e8e \u4e00\u9879 \u6bcf\u4e00\u9879 \uff0c \u60a8 \u90fd \u53ef\u4ee5 \u914d\u7f6e \u4ee5\u4e0b \u53c2\u6570 \uff1a Number of Decals / Meshes - \u8981 \u7ed8\u5236 \u7684 \u6bcf\u4e2a \u8d34\u82b1 \u6216 \u7f51\u683c \u7684 \u6570\u91cf \u3002 Decal / Mesh Scale \u2014 \u6bcf\u4e2a \u8f74 \u7684 \u8d34\u82b1 / \u7f51\u683c \u6bd4\u4f8b \u3002 Fixed Decal / Mesh Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u504f\u5dee \u3002 Random Offset \u2014 \u6bcf\u4e2a \u8f74 \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u7684 \u6700\u5927 \u504f\u5dee \u3002 Decal / Mesh Random Yaw \u2014 \u6700\u5927 \u968f\u673a \u504f\u822a \u65cb\u8f6c \u3002 Decal / Mesh Min Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5c0f \u968f\u673a \u6bd4\u4f8b \u3002 Decal / Mesh Max Scale \u2014 \u5e94\u7528 \u4e8e \u8d34\u82b1 / \u7f51\u683c \u7684 \u6700\u5927 \u968f\u673a \u6bd4\u4f8b \u3002 \u8d34\u82b1 \u548c \u7f51\u683c \u9762\u677f \u3002 \u914d\u7f6e \u597d \u7f51\u683c \u548c \u8d34\u82b1 \u540e \uff0c \u901a\u8fc7 \u6309 Spawn decals \u548c\u751f Spawn meshes \u3002 \u7b14\u8bb0 \u786e\u4fdd \u7f51\u683c \u548c \u8d34\u82b1 \u6ca1\u6709 \u542f\u7528 \u78b0\u649e \uff0c \u4ee5\u514d \u5e72\u6270 \u9053\u8def \u4e0a \u7684 \u6c7d\u8f66 \u5e76 \u5c06 \u4efb\u4f55 \u8fb9\u754c \u6846 \u964d\u4f4e \u5230 \u9053\u8def \u6c34\u5e73 \u3002 7 . \u5c1d\u8bd5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u5c1d\u8bd5 \u4e0d\u540c \u7684 \u6750\u8d28 \u3001 \u7eb9\u7406 \u3001 \u8bbe\u7f6e \u3001 \u8d34\u82b1 \u548c \u7f51\u683c \u4ee5 \u83b7\u5f97 \u60a8 \u60f3\u8981 \u7684 \u5916\u89c2 \u3002 \u4e0b\u9762 \u662f \u4e00\u4e9b \u793a\u4f8b \u56fe\u50cf \uff0c \u663e\u793a \u4e86 \u5728 \u7ed8\u5236 \u6bcf\u79cd \u6750\u8d28 \u7684 \u8fc7\u7a0b \u4e2d \u9053\u8def \u5916\u89c2 \u5982\u4f55 \u53d8\u5316 \u3002 \u57fa\u7840 \u9053\u8def \u6750\u6599 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 2 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u6750\u6599 3 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u8d34\u82b1 \u540e \u7684 \u793a\u4f8b \u3002 \u5e94\u7528 \u7f51\u683c \u540e \u7684 \u793a\u4f8b \u3002","title":"\u63cf\u7ed8 \u9053\u8def"},{"location":"tuto_content_authoring_maps/#_13","text":"\u7ed8\u5236 \u9053\u8def \u540e \uff0c \u60a8 \u53ef\u4ee5 \u6309\u7167 \u4ee5\u4e0b \u6b65\u9aa4 \u66f4\u65b0 \u8f66\u9053 \u7ebf \u7684 \u5916\u89c2 \uff1a 1 . \u590d\u5236 \u4e3b \u6750\u6599 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u5bfc\u822a \u81f3 Game > Carla > Static > GenericMaterials > RoadPainterMaterials \u3002 \u53f3\u952e \u5355\u51fb Tutorial _ RoadMaster \u5e76 \u9009\u62e9 Create Material Instance \u3002 \u547d\u540d \u91cd\u547d\u540d \u4e3a Tutorial _ LaneMarkings \u3002 2 . \u914d\u7f6e \u8f66\u9053 \u7ebf \u6750\u8d28 \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u53cc\u51fb Tutorial _ LaneMarkings \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \uff0c \u8f6c \u5230 Global Static Switch Parameter Values \u5206 \uff0c \u7136\u540e \u9009\u4e2d LaneMark \u5de6\u4fa7 \u548c \u53f3\u4fa7 \u7684 \u6846 \u3002 \u8f6c \u5230 Texture \u90e8\u5206 \u5e76 \u9009\u4e2d LaneColor \u548c Uv Size \u590d\u9009 \u9009\u6846 \u590d\u9009\u6846 \u3002 \u5728 LaneColor \u4e2d \u9009\u62e9 \u60a8 \u559c\u6b22 \u7684 \u8f66\u9053 \u6807\u8bb0 \u989c\u8272 \u3002 Save \u5e76 \u5173\u95ed \u3002 3 . \u9009\u62e9 \u8f66\u9053 \u7ebf \u7f51\u683c \u3002 \u5c06 \u6750\u6599 \u62d6\u5230 \u60a8 \u60f3\u8981 \u7740\u8272 \u7684 \u8f66\u9053 \u7ebf\u4e0a \u3002 \u5982\u679c \u9700\u8981 \uff0c \u5bf9 \u4e0d\u540c \u989c\u8272 \u7684 \u8f66\u9053 \u7ebf \u91cd\u590d \u6574\u4e2a \u8fc7\u7a0b \u3002","title":"\u66f4\u65b0 \u8f66\u9053 \u7ebf \u5916\u89c2"},{"location":"tuto_content_authoring_maps/#_14","text":"Carla \u5185\u5bb9 \u5e93 \u62e5\u6709 \u4e00\u5957 \u5168\u9762 \u7684 \u690d\u88ab \u84dd\u56fe \uff0c \u4f9b \u60a8 \u4e3a \u5730\u56fe \u7684 \u8d8a\u91ce \u533a\u57df \uff08 \u5982 \u4eba\u884c \u884c\u9053 \u4eba\u884c\u9053 \u3001 \u516c\u56ed \u3001 \u5c71\u5761 \u3001 \u7530\u91ce \u548c \u68ee\u6797 \uff09 \u589e\u6dfb \u66f4 \u591a \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u3002 \u5bfc\u822a \u5230 Carla \u5185\u5bb9 \u5e93\u4e2d \u7684 \u690d\u88ab \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \uff1a Carla > Static > Visitation \u3002 \u60a8 \u4f1a \u627e\u5230 \u591a\u79cd \u6811\u6728 \u3001 \u704c\u6728 \u6728\u4e1b \u704c\u6728\u4e1b \u7684 \u84dd\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b \u5143\u7d20 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u5730\u56fe \u4e2d \u3002","title":"\u6811\u6728 \u548c \u690d\u88ab"},{"location":"tuto_content_authoring_maps/#_15","text":"\u5bf9\u4e8e \u6811\u6728 \u548c \u690d\u88ab \u6765\u8bf4 \uff0c \u4e00\u4e2a \u6709\u7528 \u7684 \u5de5\u5177 \u662f \u865a\u5e7b \u5f15\u64ce \u6811\u53f6 \u5de5\u5177 \u3002 \u901a\u8fc7 \u4ece \u5de5\u5177 \u5de5\u5177\u680f \u7684 mode \u4e0b \u62c9 \u5217\u8868 \u4e2d \u9009\u62e9 \u6765 \u6fc0\u6d3b \u8be5 \u5de5\u5177 \u3002 \u5c06 \u6240 \u9700 \u7684 \u6811\u53f6 \u9879\u76ee \u62d6 \u5230 \u6807\u6709 + Drop Foliage Here \u7684 \u6846\u4e2d \u3002 \u5728 \u5bc6\u5ea6 \u5b57\u6bb5 \u4e2d \u8bbe\u7f6e \u9002\u5f53 \u7684 \u5bc6\u5ea6 \uff0c \u7136\u540e \u4f7f\u7528 \u6811\u53f6 \u9879\u76ee \u7ed8\u5236 \u5230 \u5730\u56fe \u4e0a \u3002","title":"\u6811\u53f6 \u5de5\u5177"},{"location":"tuto_content_authoring_maps/#_16","text":"\u4f7f\u7528 \u4ee5\u4e0b \u5de5\u5177 \u548c \u6307\u5357 \u7ee7\u7eed \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u60a8 \u7684 \u5730\u56fe \uff1a \u5728 \u5730\u56fe \u4e2d \u5b9e\u65bd \u5b50 \u5173\u5361 \u3002 . \u4f7f\u7528 \u7a0b\u5e8f \u7a0b\u5e8f\u5316 \u6784\u5efa \u5de5\u5177 \u6dfb\u52a0 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3002 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5929\u6c14 \u4f7f\u7528 \u5e8f\u5217 \u5e8f\u5217\u5316 \u7f51\u683c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u666f\u89c2 \u3002 \u5b8c\u6210 \u5b9a\u5236 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u751f\u6210 \u884c\u4eba \u5bfc\u822a \u4fe1\u606f \u3002 \u5982\u679c \u60a8 \u5bf9 \u6d41\u7a0b \u6709 \u4efb\u4f55 \u7591\u95ee \uff0c \u53ef\u4ee5 \u5728 \u8bba\u575b \u4e2d \u63d0\u95ee \u3002 Carla \u8bba\u575b","title":"\u4e0b \u4e00\u6b65"},{"location":"tuto_content_authoring_vehicles/","text":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 Carla \u5728 \u84dd \u56fe\u5e93 \u4e2d \u63d0\u4f9b \u4e86 \u4e00\u5957 \u5f00\u7bb1 \u5373\u7528 \u7684 \u5168\u9762 \u8f66\u8f86 \u3002 Carla \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 \u5b9a\u5236 \u8f66\u8f86 \u5bf9\u6b64 \u8fdb\u884c \u6269\u5c55 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8be6\u7ec6 \u8f66\u8f86 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u975e\u5e38 \u590d\u6742 \u975e\u5e38\u590d\u6742 \uff0c \u9700\u8981 \u5f88 \u9ad8 \u7684 \u6280\u80fd \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u5efa\u8bae \u8bfb\u8005 \u53c2\u8003 \u6709\u5173 \u4e09\u7ef4 \u5efa\u6a21 \u7684 \u5176\u4ed6 \u6587\u6863 \u6765\u6e90 \uff0c \u56e0\u4e3a \u8fd9 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \u3002 \u7136\u800c \uff0c \u514d\u8d39 \u548c \u4e13\u6709 \u7684 \u5728\u7ebf \u5b58\u50a8 \u5e93\u4e2d \u6709 \u5927\u91cf \u7684 \u8f66\u8f86 \u6a21\u578b \u6765\u6e90 \u3002 \u56e0\u6b64 \uff0c \u7528\u6237 \u6709 \u591a\u79cd \u9009\u62e9 \u6765 \u521b\u5efa \u7528\u4e8e Carla \u7684 \u5b9a\u5236 \u8f66\u8f86 \u3002 \u4e3a Carla \u51c6\u5907 \u5b9a\u5236 \u8f66\u8f86 \u7684 \u5173\u952e \u56e0\u7d20 \u5173\u952e\u56e0\u7d20 \u5728\u4e8e \u88c5\u914d \u8f66\u8f86 \u9aa8\u67b6 \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u88c5\u914d \u548c \u5bfc\u5165 \u540e \uff0c \u9700\u8981 \u4e3a \u6c7d\u8f66 \u548c \u8f66\u8f6e \u8bbe\u7f6e \u84dd\u56fe \u3002 \u7136\u540e \u5e94\u7528 \u6750\u6599 \u5e76 \u6dfb\u52a0 \u8f66\u8f86 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u6211\u4eec \u5c06 \u5728 \u4ee5\u4e0b \u6307\u5357 \u4e2d \u4ecb\u7ecd \u8fd9\u4e9b \u6b65\u9aa4 \u3002 \u5efa\u6a21 \u547d\u540d \u7ea6\u5b9a \u88c5\u914d \u5bfc\u5165 \u7535\u67a2 \u8bbe\u7f6e \u7236\u7ea7 \u5206\u914d Blender \u63d2\u4ef6 \u5bfc\u51fa \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u7269\u7406 \u8d44\u4ea7 \u52a8\u753b \u84dd\u56fe \u6750\u8d28 \u4f7f\u7528 \u6750\u8d28 \u989c\u8272 \u900f\u660e \u6d82\u5c42 \u7c92\u72b6 \u8868\u9762 \u8584\u7247 \u7070\u5c18 \u73bb\u7483 \u73bb\u7483 \u7f51\u683c \u73bb\u7483 \u6750\u8d28 \u5355\u5c42 \u73bb\u7483 \u8f66\u8f6e \u8f66\u8f6e \u84dd\u56fe \u78b0\u649e \u7f51\u683c \u8f6e\u80ce \u914d\u7f6e \u8f66\u8f6e \u5c3a\u5bf8 \u706f UV \u8d34\u56fe \u5bfc\u5165 \u5efa\u6a21 \u8f66\u8f86 \u5e94\u6709 5 \u4e07\u5230 10 \u4e07\u4e2a \u9762\u7247 \u3002 \u4f5c\u4e3a \u6700\u4f73 \u5b9e\u8df5 \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u5bfc\u51fa \u4e4b\u524d \u6a21\u578b \u5bf9\u6a21\u578b \u8fdb\u884c \u4e09\u89d2 \u6d4b\u91cf \u4e09\u89d2\u6d4b\u91cf \u3002 Carla \u8f66\u8f86 \u662f \u53c2\u8003 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u8fdb\u884c \u5efa\u6a21 \u7684 \u3002 \u8bf7 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7279\u522b \u6ce8\u610f \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u5355\u4f4d \u3002 \u6709\u4e9b \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u6709\u4e9b \u5219 \u4ee5 \u7c73 \u4e3a \u5355\u4f4d \u3002 \u547d\u540d \u7ea6\u5b9a \u4e3a\u4e86 \u65b9\u4fbf \u548c \u4e00\u81f4 \uff0c \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u90e8\u5206 \u5e76 \u76f8\u5e94 \u547d\u540d \u3002 \u73bb\u7483 \u548c \u706f \u7684 \u5177\u4f53 \u7ec6\u8282 \u5c06 \u5728 \u540e\u9762 \u7684 \u90e8\u5206 \u4e2d \u4ecb\u7ecd \uff1a \u8f66\u8eab ( Bodywork ) : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 Carla \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d . fbx \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 \u5185\u9970 ( Interior ) : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 \u3002 \u6750\u8d28 ( Material ) \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 , M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002 \u4f7f\u7528 \u7535\u67a2 \u88c5\u914d \u8f66\u8f86 \u4e3a\u4e86 \u5728 \u4eff\u771f \u4e2d \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \uff0c \u6c7d\u8f66 \u9700\u8981 \u6709 \u65cb\u8f6c \u8f6e\u5b50 \uff0c \u524d \u4e00\u5bf9 \u8f6e\u5b50 \u53ef\u4ee5 \u968f\u7740 \u8f6c\u5411 \u8f93\u5165 \u800c \u8f6c\u52a8 \u3002 \u56e0\u6b64 \uff0c \u8981 \u4e3a Carla \u51c6\u5907 \u8f66\u8f86 \uff0c \u9700\u8981 \u5728 \u6c7d\u8f66 \u4e0a \u5b89\u88c5 \u7535\u67a2 \u4ee5 \u8bc6\u522b \u8f66\u8f6e \u5e76 \u5141\u8bb8 \u5176 \u79fb\u52a8 \u3002 \u5bfc\u5165 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u5bfc\u5165 \u6216 \u5efa\u6a21 \u8f66\u8f86 \u6a21\u578b \u7f51\u683c \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Blender 3D \u3002 \u786e\u4fdd \u8f6e\u5b50 \u4e0e \u4e3b\u4f53 \u5206\u79bb \u3002 \u6bcf\u4e2a \u8f6e\u5b50 \u5fc5\u987b \u53ef\u4ee5 \u4f5c\u4e3a \u4e00\u4e2a \u4e0d\u540c \u7684 \u5bf9\u8c61 \u8fdb\u884c \u8bbf\u95ee \u3002 \u786e\u4fdd \u8f66\u8f86 \u9762\u5411 \u6b63 X \u65b9\u5411 \u975e\u5e38 \u91cd\u8981 \uff0c \u56e0\u6b64 \u5f15\u64ce \u5f15\u64ce\u76d6 \u548c \u6321\u98ce \u73bb\u7483 \u6321\u98ce\u73bb\u7483 \u5e94 \u9762\u5411 \u6b63 X \u65b9\u5411 \u3002 \u6c7d\u8f66 \u7684 \u65b9\u5411 \u8fd8 \u5e94 \u4f7f \u5730\u677f \u5230 \u8f66\u9876 \u65b9\u5411 \u5904\u4e8e \u6b63 Z \u65b9\u5411 \u3002 \u8f66\u8f6e \u5e94\u8be5 \u6b63\u597d \u64e6 \u8fc7 XY \u5e73\u9762 \uff0c \u5e76\u4e14 \u539f\u70b9 \u5e94\u8be5 \u4f4d\u4e8e \u60a8 \u671f\u671b \u8f66\u8f86 \u8d28\u5fc3 \u4f4d\u4e8e XY \u5e73\u9762 \uff08 \u4f46 \u4e0d\u662f Z \u5e73\u9762 \uff09 \u7684 \u4f4d\u7f6e \u3002 \u6dfb\u52a0 \u7535\u67a2 \u73b0\u5728 \u5728 \u8f66\u8f86 \u7684 \u4e2d\u5fc3 \u6dfb\u52a0 \u4e00\u4e2a \u9aa8\u67b6 \uff0c \u786e\u4fdd \u7269\u4f53 \u6b63\u786e \u5c45\u4e2d \uff0c \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u6839\u90e8 \u5e94 \u8bbe\u7f6e \u5728 \u539f\u70b9 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \u5e76 \u5c06 \u9aa8\u67b6 \u7ed5 x \u8f74 \u65cb\u8f6c 90 \u5ea6 \u3002 \u73b0\u5728 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u6dfb\u52a0 4 \u4e2a \u9aa8\u9abc \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u9700\u8981 \u5b9a\u4f4d \uff0c \u4f7f\u5f97 \u9aa8\u9abc \u7684 \u6839\u90e8 \u4e0e \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u4e2d\u5fc3 \u91cd\u5408 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u7f16\u8f91 \u6a21\u5f0f \u4e0b \u5c06 \u4e09\u7ef4 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6bcf\u4e2a \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u6765 \u5b9e\u73b0 \u3002 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u9009\u62e9 \u5176\u4e2d \u4e00\u4e2a \u8f6e\u5b50 \uff0c \u9009\u62e9 \u4e00\u4e2a \u9876\u70b9 \uff0c \u6309 A \u9009\u62e9 \u6240\u6709 \u9876\u70b9 \uff0c \u7136\u540e Shift + S \u9009\u62e9 Cursor to selected \u3002 \u8fd9\u4f1a \u5c06 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u3002 \u7136\u540e \uff0c \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \uff0c \u9009\u62e9 \u9aa8\u67b6 \uff0c \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u9009\u62e9 \u9aa8\u9abc \u5e76 \u9009\u62e9 Selection to cursor \u3002 \u60a8 \u7684 \u9aa8\u9abc \u73b0\u5728 \u5c06 \u4e0e \u8f6e\u5b50 \u91cd\u5408 \u3002 \u65cb\u8f6c \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u4f7f \u5176 \u4e0e \u9aa8\u67b6 \u5e95\u90e8 \u5bf9\u9f50 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u8f6e\u5b50 \uff0c \u5efa\u8bae \u6839\u636e \u9700\u8981 \u8026\u5408 \u7684 \u8f6e\u5b50 \u6765 \u547d\u540d \u9aa8\u9abc \uff0c \u8fd9 \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u5728 \u9700\u8981 \u4e3a \u6bcf\u4e2a \u9aa8\u9abc \u5206\u914d \u9876\u70b9 \u7ec4\u65f6 \u8fdb\u884c \u8bc6\u522b \u3002 \u8bbe\u7f6e \u7236\u7ea7 \u73b0\u5728 \u5728 \u9879\u76ee \u5927\u7eb2 \u4e2d \u4f7f\u7528 shift \u6216 control \u9009\u62e9 \u8eab\u4f53 \u7684 \u6240\u6709 \u90e8\u5206 \u548c \u6240\u6709 4 \u4e2a \u8f6e\u5b50 \uff0c \u7136\u540e \u63a7\u5236 \u9009\u62e9 \u60a8 \u521b\u5efa \u7684 \u9aa8\u67b6 \uff08 \u8fd9\u4e2a \u987a\u5e8f \u5f88 \u91cd\u8981 \uff0c \u5982\u679c \u60a8 \u4ee5 \u76f8\u53cd \u7684 \u987a\u5e8f \u9009\u62e9 \u5b83\u4eec \u5c06 \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \uff09 \u3002 \u6309 Ctrl + p \u5e76 \u9009\u62e9 With empty groups \u5c06 \u7f51\u683c \u7ed1\u5b9a \u5230 \u9aa8\u67b6 \u3002 \u73b0\u5728 \u60a8 \u5df2 \u5c06 \u7f51\u683c \u4f53 \u8bbe\u7f6e \u4e3a \u9aa8\u67b6 \u7684 \u7236\u7ea7 \uff0c \u73b0\u5728 \u9700\u8981 \u5c06 \u6bcf\u4e2a \u8f6e\u5b50 \u5206\u914d \u7ed9 \u5176 \u5404\u81ea \u7684 \u9aa8\u9abc \u3002 \u5728 \u5927\u7eb2 \u89c6\u56fe \u6216 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8f6e\u5b50 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u7684 \u6240\u6709 \u9876\u70b9 \uff08 \u5feb\u6377 \u5feb\u6377\u952e - a \uff09 \u3002 \u5c06 \u6c7d\u8f66 \u96f6\u4ef6 \u6c7d\u8f66\u96f6\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u9abc \u9009\u62e9 \u5c5e\u6027 \u7684 \u7f51\u683c \u9009\u9879 \u9009\u9879\u5361 \uff08 \u7eff\u8272 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \uff09 \u3002 \u5728 \u7f51\u683c \u5c5e\u6027 \u9762\u677f \u7684 \u9876\u70b9 \u7ec4 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u9aa8\u67b6 \u7684 \u9aa8\u9abc \u3002 \u9009\u62e9 \u4e0e \u60a8 \u6b63\u5728 \u7f16\u8f91 \u7684 \u8f6e\u5b50 \u5bf9\u5e94 \u7684 \u9aa8\u9abc \uff0c \u7136\u540e \u9009\u62e9 Assign \u3002 \u5b89\u88c5 \u597d \u8f66\u8f6e \u540e \uff0c \u5c06 \u8f66\u8f86 \u7684 \u6240\u6709 \u5176\u4ed6 \u90e8\u4ef6 \u5b89\u88c5 \u5230 \u57fa\u9aa8 \u4e0a \u3002 \u5c06 \u6240\u6709 \u7f51\u683c \u90e8\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u67b6 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u79fb\u52a8 \u5230 \u59ff\u52bf \u6a21\u5f0f \u5e76 \u79fb\u52a8 \u76f8\u5173 \u9aa8\u9abc \u6765 \u6d4b\u8bd5 \u5b83 \u662f\u5426 \u6709\u6548 \u3002 \u8f66\u8f86 \u57fa\u9aa8\u5e94 \u79fb\u52a8 \u6574\u4e2a \u8f66\u8f86 \uff0c \u800c\u8f6e \u9aa8\u5e94 \u5206\u522b \u79fb\u52a8 \u5e76 \u65cb\u8f6c \u5404\u81ea \u7684 \u8f66\u8f6e \u3002 Ctrl + Z \u786e\u4fdd \u64a4\u6d88 \u60a8 \u53ef\u80fd \u505a\u51fa \u7684 \u4efb\u4f55 \u59ff\u52bf \u3002 Blender \u865a\u5e7b \u5f15\u64ce 4 \u8f66\u8f86 \u88c5\u914d \u63d2\u4ef6 Blender \u6709 \u4e00\u4e2a \u975e\u5e38 \u6709\u7528 \u7684 \u63d2\u4ef6 \uff0c \u7528\u4e8e \u88c5\u914d \u8f66\u8f86 \u4ee5 \u5bfc\u5165 Carla \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u4e0a\u8ff0 \u6b65\u9aa4 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u4ef6 \u7f51\u9875 \u4ee5 \u83b7\u53d6 \u8bf4\u660e \u3002 \u5bfc\u51fa \u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u88c5\u914d \u6a21\u578b \u5bfc\u51fa \u4e3a FBX \u683c\u5f0f \uff0c \u4ee5\u4fbf \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u4ece \u201c \u6587\u4ef6 \u201d \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Export > FBX ( . fbx ) \u3002 \u5728 Include \u9762\u677f \u7684 Object Types \u90e8\u5206 \u4e2d \uff0c \u6309\u4f4f Shift \u952e \u9009\u62e9 Armature \u548c Mesh \u9009\u9879 \u3002 \u5728 Transform \u9762\u677f \u4e2d \u3002 \u66f4\u6539 Forward \u4e3a X Forward \uff0c \u5e76 \u66f4\u6539 Up \u4e3a Z Up . \u8fd9 \u5bf9\u4e8e \u786e\u4fdd \u8f66\u8f86 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5b9a\u5411 \u975e\u5e38 \u91cd\u8981 \u3002 \u5728 Armature \u90e8\u5206 \u4e2d \u53d6\u6d88 Add Leaf Bones \u9009\u4e2d \u5e76 \u53d6\u6d88 Bake Animation \u9009\u4e2d \u3002 \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u76ee\u5f55 \uff09 \u4e2d \u4f7f\u7528 make launch \u547d\u4ee4 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6253\u5f00 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u8bbe\u7f6e \u9002\u5f53 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Import to .... \u3002 \u9009\u62e9 \u60a8 \u4e4b\u524d \u4ece Blender \uff08 \u6216 \u5176\u4ed6 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u5bfc\u51fa \u7684 FBX \u6587\u4ef6 \u3002 \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u5bfc\u5165 \u3002 \u8bbe\u7f6e \u7269\u7406 \u8d44\u4ea7 \u73b0\u5728 \uff0c \u60a8 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d\u5c06 \u5305\u542b 3 \u4e2a \u5185\u5bb9 \uff1a \u7f51\u683c \u3001 \u9aa8\u67b6 \u548c \u7269\u7406 \u8d44\u6e90 \u3002 \u53cc\u51fb \u7269\u7406 \u8d44\u6e90 \u8fdb\u884c \u8c03\u6574 \u3002 \u9996\u5148 \uff0c \u9009\u62e9 \u8f66\u4f53 \uff0c \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \uff0c \u5c06 Physics \u90e8\u5206 \u4e2d \u7684 Linear Damping \u66f4 \u6539\u4e3a 0.0 \uff0c \u68c0\u67e5 Collision \u90e8\u5206 \u7684 Simulation Generates Hit Events \uff0c \u5728 Body Creation \u90e8\u5206 \u5c06 Primitive Type \u4ece Capsule \u6539\u4e3a Box \u3002 \u7136\u540e \u6309 Regenerate bodies \u3002 \u80f6\u56ca \u73b0\u5728 \u5c06 \u53d8\u6210 \u4e00\u4e2a \u77e9\u5f62 \u76d2\u5b50 \u3002 \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u3002 \u73b0\u5728 \u9009\u62e9 \u6240\u6709 \u8f6e\u5b50 \uff08 \u5728 Skeleton Tree \u5de6\u4fa7 \u90e8\u5206 \uff09 \u3002 \u5c06 Linear Damping \u6539\u4e3a 0.0 \uff0c \u5c06 Physics Type \u8bbe\u7f6e \u4e3a Kinematic \uff0c \u5c06 Collision Response \u8bbe\u7f6e \u4e3a Disabled \uff0c \u5e76 \u9009\u62e9 Primitive Type \u4f5c\u4e3a Sphere \u3002 \u518d \u6309 Re - generate Bodies \u4e00\u6b21 \u3002 \u521b\u5efa \u52a8\u753b \u5728 \u60a8 \u62e5\u6709 \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Animation > Animation Blueprint \u3002 \u5728 \u6253\u5f00 \u7684 \u5f39\u51fa \u7a97\u53e3 \u4e2d \uff0c \u5728 Parent Class \u90e8\u5206 \u4e2d \u641c\u7d22 VehicleAnimInstance \uff0c \u7136\u540e \u641c\u7d22 Target Skeleton \u4e0e \u60a8 \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u5e94\u8be5 \u80fd\u591f \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u8be5 \u540d\u79f0 \u3002 \u9009\u62e9 \u4e24\u9879 \u8fd9\u4e24\u9879 \u540e \u6309 \u786e\u5b9a \u3002 \u8fd9 \u5c06 \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u3002 \u4e3a\u4e86 \u7b80\u5316 \u4e8b\u60c5 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ece \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u590d\u5236 \u52a8\u753b \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Content > Carla > Static > Vehicles > 4Wheeled \u5e76 \u9009\u62e9 \u4efb\u610f \u8f66\u8f86 \u3002 \u6253\u5f00 \u6240 \u9009 \u8f66\u8f86 \u7684 \u52a8\u753b \u84dd\u56fe \uff0c \u7136\u540e \u5c06 \u9664 \u6b64 \u8282\u70b9 \u4e4b\u5916 \u7684 \u6240\u6709 \u8282\u70b9 \u590d\u5236 Output pose \u5230 \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u4e2d \u3002 \u901a\u8fc7 \u62d6\u52a8 \u6700\u7ec8 \u8282\u70b9 \u4e0e \u8f93\u51fa \u8282\u70b9 \u4e4b\u95f4 \u7684 \u65b0 \u8fde\u63a5 \u6765 \u8fde\u63a5 \u8282\u70b9 \u3002 \u6309 \u7f16\u8bd1 \uff0c \u52a8\u753b \u84dd\u56fe \u73b0\u5df2 \u8bbe\u7f6e \u3002 \u521b\u5efa \u84dd\u56fe \u4f7f\u7528 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > LincolnMKZ2017 \u6216 \u7c7b\u4f3c \u7684 \u8f66\u8f86 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u4e00\u7ec4 \u4e3a 4 \u4e2a \u8f6e\u5b50 \u8bbe\u7f6e \u7684 \u84dd\u56fe \u3002 \u5c06 \u5b83\u4eec \u590d\u5236 \u590d\u5236\u5230 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u7684 \u76ee\u5f55 \u4e2d \u5e76\u91cd \u547d\u540d \u5b83\u4eec \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4ee5\u540e \u53ef\u4ee5 \u533a\u5206 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u613f\u610f \uff0c \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f6e\u5b50 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540e\u9762 \u7684 \u8f6e\u5b50 \u90e8\u5206 \u3002 \u53f3\u952e \u5355\u51fb \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u6240\u5728 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u5e76 \u9009\u62e9 Blueprint Class \u3002 \u5728 All Classes \u83dc\u5355 \u4e2d \u641c\u7d22 BaseVehiclePawn \u5e76 \u9009\u62e9 \u6b64\u7c7b \u3002 \u4e3a \u84dd\u56fe \u547d\u540d \u5e76 \u6253\u5f00 \u5b83 \u3002 \u5728 \u5de6\u4fa7 Components \u9009\u9879 \u9009\u9879\u5361 \u4e2d \u8fdb\u884c Mesh \u9009\u62e9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7f51\u683c \u62d6\u52a8 \u5230 \u53f3\u4fa7 \u7684 \u201c \u7f51\u683c \u201d \u90e8\u5206 \u4e2d \u3002 \u5728 Anim Class \u641c\u7d22 \u4e0e \u60a8 \u5728 \u4e0a \u4e00\u6b65 \u4e2d \u8bbe\u7f6e \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u52a8\u753b \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u84dd\u56fe \u7c7b \u7684 Components \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Vehicle Movement \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \u5bfc\u822a \u5230 \u8be5 Vehicle Setup \u90e8\u5206 \u3002 \u73b0\u5728 \uff0c \u5bf9\u4e8e \u6bcf\u4e2a \u8f66\u8f6e \uff0c \u627e\u5230 \u60a8 \u4e4b\u524d \u4e3a Wheel Class \u5c5e\u6027 \u590d\u5236 \u5e76\u91cd \u547d\u540d \u7684 \u76f8\u5173 \u8f66\u8f6e \u84dd\u56fe \u3002 \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u73b0\u5728 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > VehicleFactory \u5e76 \u53cc\u51fb \u5b83 \u4ee5 \u6253\u5f00 \u8f66\u8f86 \u5de5\u5382 \u3002 \u9009\u62e9 Vehicles \u8282\u70b9 \u5e76 \u5c55\u5f00 \u53f3\u4fa7 Default value \u90e8\u5206 \u4e2d \u7684 Vehicles \u9879 \u3002 \u6309 \u52a0\u53f7 \u56fe\u6807 \u6dfb\u52a0 \u60a8 \u7684 \u65b0\u8f66 \u3002 \u5411\u4e0b \u6eda\u52a8 \u5230 \u6700\u540e \u4e00\u4e2a \u6761\u76ee \u5e76 \u5c06 \u5176 \u5c55\u5f00 \uff0c \u5b83 \u5e94\u8be5 \u662f \u7a7a \u7684 \u3002 \u547d\u540d \u60a8 \u7684 \u8f66\u8f86 \u7684 \u54c1\u724c \u548c \u578b\u53f7 \uff0c \u7136\u540e \u5728 \u7c7b \u90e8\u5206 \u4e0b \u627e\u5230 \u60a8 \u5728 \u4e0a \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e2d \u521b\u5efa \u7684 \u84dd\u56fe \u7c7b \u3002 \u5c06 \u8f6e\u5b50 \u6570\u91cf \u4fdd\u7559 \u4e3a 4 \uff0c \u5e76 \u5c06 \u4e16\u4ee3 \u8bbe\u7f6e \u4e3a 2 \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u4e3a\u4e86 \u5b89\u5168 \u8d77 \u89c1 \uff0c \u8fdb\u884c \u5168\u5c40 \u4fdd\u5b58 \uff0c \u60a8 \u73b0\u5728 ...... \u51c6\u5907 \u5728 \u4eff\u771f \u4e2d \u8fd0\u884c \u60a8 \u7684 \u8f66\u8f86 \u3002 \u6309 \u865a\u5e7b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u201c \u8fd0\u884c \u201d \u6765 \u8fdb\u884c \u4eff\u771f \u3002 \u8fd0\u884c \u540e \uff0c \u6253\u5f00 \u7ec8\u7aef \u5e76 \u4f7f\u7528 \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 \u9009\u9879 \u8fd0\u884c \u811a\u672c manual _ control . py \u6765 \u6307\u5b9a \u60a8 \u7684 \u65b0 \u8f66\u8f86 \u578b\u53f7 \uff1a python manual _ control . py -- filter my _ vehicle _ make \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u8f66\u8f86 \u76ee\u524d \u6ca1\u6709 \u5e94\u7528 \u7eb9\u7406 \u6216 \u989c\u8272 \u3002 \u4e0b \u4e00\u6b65 \u662f \u5e94\u7528 \u6750\u6599 \uff0c \u4f7f \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u50cf \u771f\u6b63 \u7684 \u516c\u8def \u8f66\u8f86 \u4e00\u6837 \u7684 \u5916\u89c2 \u3002 \u6750\u8d28 \u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002 \u7ed9 \u60a8 \u7684 \u8f66\u8f86 \u5e94\u7528 \u4f7f\u7528 \u6750\u8d28 Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u4eff\u771f \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u6599 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u6599 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \uff1a \u989c\u8272 ( Color ) \u989c\u8272 \u8bbe\u7f6e \u51b3\u5b9a \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a \u900f\u660e \u6d82\u5c42 ( Clear coat ) \u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u51b3\u5b9a \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f Clear Coat Intensity \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002 \u7c92\u72b6 \u8868\u9762 ( Orange peel ) \u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e0a \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u7c92\u72b6 \u8868\u9762 \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002 \u8584\u7247 ( Flakes ) \u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u8d4b\u4e88 \u6c7d\u8f66 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u5149\u7ebf \u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f \u7070\u5c18 ( Dust ) \u6c7d\u8f66 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u8fd9\u4f1a \u589e\u52a0 \u8f66\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002 \u73bb\u7483 \u5728 Carla \u4e2d \u521b\u5efa \u903c\u771f \u7684 \u73bb\u7483 \u9700\u8981 \u4e00\u4e9b \u6280\u5de7 \u6765 \u6355\u6349 \u673a\u52a8 \u52a8\u8f66 \u8f66\u8f86 \u673a\u52a8\u8f66 \u673a\u52a8\u8f66\u8f86 \u4e2d \u4f7f\u7528 \u7684 \u73bb\u7483 \u7684 \u771f\u5b9e \u6298\u5c04 \u548c \u53cd\u5c04 \u884c\u4e3a \u3002 Carla \u8f66\u5e93 \u8f66\u8f86 \u6709 4 \u5c42 \u73bb\u7483 \u7f51\u683c \uff0c \u91c7\u7528 2 \u79cd \u4e0d\u540c \u7684 \u6750\u6599 \u3002 \u5404\u5c42 \u4e4b\u95f4 \u95f4\u9694 \u6beb\u7c73 \u51e0\u6beb\u7c73 \uff0c \u5185\u90e8 \u548c \u5916\u90e8 \u73bb\u7483 \u5c42 \u91c7\u7528 \u4e0d\u540c \u7684 \u6750\u6599 \uff0c \u4ee5 \u786e\u4fdd \u73bb\u7483 \u4ece \u8f66\u8f86 \u5185\u90e8 \u548c \u5916\u90e8 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u90fd \u5f88 \u903c\u771f \u3002 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \uff0c \u4ece \u8f66\u8f86 \u5185\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \u3002 \u73bb\u7483 \u6240\u4ee5 \u4e4b\u6240\u4ee5 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u73bb\u7483 \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a \u6765\u81ea \u73bb\u7483 \u4e24\u4e2a \u8868\u9762 \u7684 \u53cd\u5c04 \u4f7f\u5f97 \u53cd\u5c04 \u975e\u5e38 \u5fae\u5999 \u5730 \u52a0\u500d \u3002 \u73bb\u7483 \u7f51\u683c \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u770b\u5230 \u8fde\u63a5 \u5230 \u6797\u80af \u4e3b\u4f53 \u8f66\u8eab \uff08 \u4e0d\u662f \u8f66\u95e8 \u6216 \u5176\u4ed6 \u6d3b\u52a8 \u90e8\u4ef6 \uff09 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u5982\u679c \u6211\u4eec \u5c06 \u7ec4\u6210 \u7684 \u7f51\u683c \u90e8\u5206 \u5206\u5f00 \uff0c \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u73bb\u7483 \u8f6e\u5ed3 \u88ab \u5206\u4e3a 4 \u4e2a \u4e0d\u540c \u7684 \u5c42 \u3002 \u8fd9 4 \u4e2a\u5c42 \u5206\u4e3a 2 \u7ec4 \uff1a \u5916\u90e8 \u5c42 \uff08 \u6cd5\u7ebf \u9762\u5411 \u8f66\u8f86 \u5916\u90e8 \uff09 \u548c \u5185\u90e8 \u5c42 \uff08 \u7f51\u683c \u683c\u6cd5 \u7f51\u683c\u6cd5 \u7ebf \u9762\u5411 \u8f66\u8f86 \u5185\u90e8 \uff09 \u3002 \u4e0b\u56fe \u6f14\u793a \u4e86 \u521b\u5efa \u7f51\u683c \u56fe\u5c42 \u540e \uff0c \u5c06 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u5b83\u4eec \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b58\u50a8 \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 4 \u4e2a \u73bb\u7483 \u5c42 \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u5730\u56fe \u4e2d \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u5b83\u4eec \u3002 \u73bb\u7483 \u6750\u8d28 \u53cc\u51fb \u73bb\u7483 \u7684 \u5916\u5c42 \uff0c \u7136\u540e \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a97\u53e3 \u4e2d \u5bfc\u822a \u5230 Content > Carla > Static > Vehicles > GeneralMaterials \u5e76 \u627e\u5230 \u8be5 Glass \u6750\u8d28 \u3002 \u5c06 \u73bb\u7483 \u6750\u8d28 \u62d6\u81f3 \u7f51\u683c \u7269\u4f53 \u7684 \u6750\u8d28 \u69fd \u4e2d \u3002 \u5bf9 \u73bb\u7483 \u7684 \u6bcf \u4e00\u5c42 \u91cd\u590d \u6b64 \u8fc7\u7a0b \u3002 \u73bb\u7483 \u73b0\u5728 \u5c06 \u662f \u900f\u660e \u7684 \uff0c \u4f46 \u5177\u6709 \u53cd\u5c04 \u9644\u8fd1 \u7269\u4f53 \u548c \u5149\u6e90 \u7684 \u53cd\u5c04 \u53cd\u5c04\u7387 \u3002 \u60a8 \u8fd8 \u5e94\u8be5 \u68c0\u67e5 \u5185\u90e8 \u73bb\u7483 \uff0c \u786e\u4fdd \u90a3\u91cc \u6709 \u9002\u5f53 \u7684 \u73bb\u7483 \u6548\u679c \u3002 \u5355\u5c42 \u73bb\u7483 \u4e3a\u4e86 \u66f4\u5feb \u5730 \u751f\u4ea7 \u8f66\u8f86 \u73bb\u7483 \u90e8\u4ef6 \uff0c \u552f\u4e00 \u7684 \u5173\u952e \u90e8\u4ef6 \u5173\u952e\u90e8\u4ef6 \u662f \u6700 \u5916\u5c42 \u7684 \u73bb\u7483 \u5c42 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u73bb\u7483 \u6750\u8d28 \u5e94\u7528 \u4e8e \u6b64 \uff0c \u5e76 \u83b7\u5f97 \u53ef\u80fd \u9002\u5408 \u60a8 \u9700\u6c42 \u7684 \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u4ece\u8f66 \u5185 \u67e5\u770b \u7684 \u89c6\u56fe \uff08 \u5373 \uff0c \u5982\u679c \u60a8 \u5728 \u4eea\u8868 \u4eea\u8868\u677f \u4e0a \u6216 \u65b9\u5411 \u65b9\u5411\u76d8 \u540e\u9762 \u5b9e\u4f8b \u5316 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u4f3c\u4e4e \u5177\u6709 \u65e0 \u73bb\u7483 \uff08 \u65e0 \u6298\u5c04 \u6216 \u53cd\u5c04 \uff09 \u3002 \u6211\u4eec \u5efa\u8bae \u91c7\u7528 \u4e0a\u8ff0 \u5de5\u827a \u6765 \u751f\u4ea7 \u6700 \u771f\u5b9e \u7684 \u73bb\u7483 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u521b\u5efa \u4e86 \u84dd\u56fe \uff0c \u6dfb\u52a0 \u4e86 \u7f51\u683c \uff0c \u5b8c\u6210 \u4e86 \u88c5\u914d \uff0c \u521b\u5efa \u4e86 \u6cb9\u6f06 \u9970\u9762 \u548c \u73bb\u7483 \u7684 \u6750\u6599 \uff0c \u60a8 \u5e94\u8be5 \u62e5\u6709 \u4e00\u8f86 \u5916\u89c2 \u975e\u5e38 \u903c\u771f \u7684 \u8f66\u8f86 \u3002 \u8f66\u8f6e \u5982\u679c \u60a8 \u5728 \u521b\u5efa \u84dd\u56fe \u65f6 \u590d\u5236 \u4e86 \u8f66\u8f6e \uff0c \u5e76\u4e14 \u60a8 \u7684 \u8f66\u8f86 \u4e0e Carla \u5e93\u4e2d \u5df2\u6709 \u7684 \u8f66\u8f86 \u975e\u5e38 \u76f8\u4f3c \uff0c \u90a3\u4e48 \u8fd9 \u53ef\u80fd \u9002\u5408 \u60a8 \u7684 \u76ee\u7684 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u975e\u6807 \u6807\u51c6 \u975e\u6807\u51c6 \u8f66\u8f6e \u5c3a\u5bf8 \u6216 \u6293 \u5730\u529b \u7279\u6027 \uff0c \u5219 \u5e94 \u6309\u7167 \u672c \u8282 \u8bbe\u7f6e \u8f66\u8f6e \u84dd\u56fe \uff0c \u4ee5 \u6700\u597d \u5730 \u5339\u914d \u8f66\u8f86 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5bf9\u4e8e Carla \u8f66\u8f86 \u7684 \u8f66\u8f6e \uff0c \u6211\u4eec \u9700\u8981 \u4e3a \u6bcf\u4e2a \u8f66\u8f6e \u5efa\u7acb \u4e00\u4e2a \u84dd\u56fe \u7c7b\u6765 \u5904\u7406 \u529b\u5b66 \u548c \u78b0\u649e \u5c5e\u6027 \u3002 \u60a8 \u5c06 \u8bbe\u7f6e 4 \u4e2a \u84dd\u56fe \u7c7b \uff0c \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u4ee5\u4e0b \u524d\u7f00 \u6216 \u540e\u7f00 \u6765 \u8bc6\u522b \u8f6e\u5b50 \uff1a RRW - R ear R ight W heel RLW - R ear L eft W heel FRW - F ront R ight W heel FLW - F ront L eft W heel \u8f66\u8f6e \u84dd\u56fe \u5728 \u60a8 \u62e5\u6709 \u65b0\u8f66 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \u7c7b \u3002 \u641c\u7d22 \u53cc\u51fb \u84dd\u56fe \u8fdb\u884c \u8c03\u6574 \uff1a \u78b0\u649e \u7f51\u683c \u9996\u5148 \uff0c \u7528\u4e8e \u78b0\u649e \u7f51\u683c \u7684 \u9ed8\u8ba4 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u5177\u6709 \u9ad8 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u56e0\u6b64 \u6211\u4eec \u5e94\u8be5 \u5c06 \u5176 \u66ff\u6362 \u4e3a \u4f4e \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7248\u672c \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u627e\u5230 Content > Carla > Blueprints > Vehicles \u5185 \u7684 CollisionWheel \u7f51\u683c \u3002 \u84dd\u56fe \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u7684 \u63d2\u69fd \u4e0a \u3002 \u8fd9 \u5c06 \u63d0\u9ad8 \u6027\u80fd \uff0c \u800c \u4e0d\u4f1a \u5bfc\u81f4 \u7269\u7406 \u4eff\u771f \u51fa\u73b0 \u4efb\u4f55 \u660e\u663e \u7684 \u7f3a\u9677 \u3002 \u8f6e\u80ce \u914d\u7f6e \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u8bbe\u7f6e \u8f6e\u80ce \u914d\u7f6e \u3002 \u5728 Content > Carla > Blueprints > Vehicles \u5185 \u627e\u5230 CommonTireConfig \u914d\u7f6e \u5e76 \u5c06 \u5176 \u62d6 \u5230 Tire Config \u84dd\u56fe \u7684 \u90e8\u5206 \u4e0a \u3002 \u5982\u679c \u53cc\u51fb \u84dd\u56fe \u4e2d \u7684 \u8f6e\u80ce \u914d\u7f6e \uff0c \u53ef\u4ee5 \u8c03\u6574 \u6469\u64e6 \u6bd4\u4f8b \uff0c \u53ef\u4ee5 \u4fee\u6539 \u8f66\u8f86 \u7684 \u9053\u8def \u64cd\u63a7 \u884c\u4e3a \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u8bbe\u7f6e \u4e3a 3.5 \uff0c \u8be5\u503c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u8f86 \u4f7f\u7528 \u60c5\u51b5 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u5e0c\u671b \u5bf9 \u5e26\u6709 \u5149\u5934 \u8f6e\u80ce \u7684 \u8d5b\u8f66 \u8fdb\u884c \u5efa\u6a21 \uff0c \u5219 \u8fd9 \u5c06 \u662f \u9700\u8981 \u8c03\u6574 \u7684 \u9002\u5f53 \u53c2\u6570 \u3002 \u8f66\u8f6e \u5c3a\u5bf8 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u6d4b\u91cf \u8f66\u8f6e \u7684 \u76f4\u5f84 \u3002 \u5728 Blender \u4e2d \uff0c \u53ef\u4ee5 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u6309 n \u6253\u5f00 \u7684 \u5c5e\u6027 \u9762\u677f \u4e2d \u67e5\u770b \u5c3a\u5bf8 \u3002 \u73b0\u5728 \u5c06 \u8fd9\u4e9b \u6570\u5b57 \u63d2\u5165 \u5230 Wheel \u84dd\u56fe \u7684 \u90e8\u5206 \u4e2d \u3002 \u8bf7 \u6ce8\u610f \u534a\u5f84 \u4e3a \u76f4\u5f84 \u7684 \u4e00\u534a \uff0c \u5e76\u4e14 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 \u5bf9\u4e8e \u8f66\u8f6e \u8d28\u91cf \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u4e0a \u67e5\u627e \u89c4\u683c \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u8f6e\u80ce \u578b\u53f7 \u6216 \u7c7b\u4f3c \u7684 \u8f6e\u80ce \u578b\u53f7 \u6765 \u4f30\u8ba1 \u6b63\u786e \u7684 \u8d28\u91cf \uff08 \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \uff09 \u3002 Affected by handbrake \u5e94 \u68c0\u67e5 \u4e24\u4e2a \u540e\u8f6e \u3002 Steer angle \u5bf9\u4e8e \u4e24\u4e2a \u524d\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u6700\u5927 \u9884\u671f \u8f6c\u5411 \u89d2 \uff0c \u5bf9\u4e8e \u4e24\u4e2a \u540e\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u96f6 \u3002 \u60ac\u67b6 \u7279\u6027 \u8fd9\u91cc \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5408\u7406 \u7684 \u8d77\u70b9 \u3002 \u67e5\u770b \u672c \u6307\u5357 \u4ee5 \u8bbe\u7f6e \u9002\u5408 \u60a8 \u8f66\u8f86 \u7c7b\u578b \u7684 \u60ac\u67b6 \u7279\u6027 \u3002 \u706f \u5b8c\u6210 Carla \u771f\u5b9e \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u5143\u7d20 \u662f \u706f \u3001 \u524d\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u7b49 \u3002 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \uff0c \u60a8 \u5e94\u8be5 \u5bf9 \u4e00\u4e9b \u7c7b\u4f3c \u4e8e \u60a8 \u8981 \u590d\u5236 \u7684 \u8f66\u8f86 \u706f \u7684 \u5f62\u72b6 \u8fdb\u884c \u5efa\u6a21 \u3002 \u5bf9\u4e8e \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u5934 \u5934\u706f \u8f66\u5934\u706f \u6765\u8bf4 \uff0c \u8fd9 \u5c06 \u662f \u6241\u5e73 \u5706\u76d8 \u6216 \u6241\u5e73 \u957f\u65b9 \u957f\u65b9\u4f53 \u7ed3\u6784 \u3002 \u6709\u4e9b \u8f66\u8f86 \u53ef\u80fd \u8fd8 \u914d\u6709 LED \u706f\u6761 \u3002 UV \u8d34\u56fe \u4e0d\u540c \u7c7b\u578b \u7684 \u706f \uff08 \u524d\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u7b49 \uff09 \u4f7f\u7528 \u7eb9\u7406 \u6765 \u533a\u5206 \u3002 \u60a8 \u9700\u8981 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u521b\u5efa UV \u8d34\u56fe \uff0c \u5e76 \u5b9a\u4f4d \u706f\u5149 \u4ee5 \u4e0e \u7eb9\u7406 \u7684 \u76f8\u5173 \u533a\u57df \u5339\u914d \u76f8\u5339\u914d \u3002 \u5bfc\u5165 \u5c06 \u706f\u5149 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 - \u5bfc\u5165 \u706f\u5149 \u7f51\u683c \u540e \uff1a \u5c06 \u7f51\u683c \u7269\u4f53 \u62d6\u52a8 \u5230 Components \u9762\u677f \u4e2d \u7684 Mesh ( VehicleMesh ) ( Inherited ) \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u989d\u5916 \u7f51\u683c \u5e76 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Collision \u3002 \u5c06 \u78b0\u649e \u9884\u8bbe ( Collision Presets ) \u8bbe\u7f6e \u4e3a NoCollision \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u4efb\u4f55 \u706f\u5149 \u7f51\u683c \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Tag \u5e76 \u6dfb\u52a0 emissive \u6807\u7b7e \u3002","title":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86"},{"location":"tuto_content_authoring_vehicles/#-","text":"Carla \u5728 \u84dd \u56fe\u5e93 \u4e2d \u63d0\u4f9b \u4e86 \u4e00\u5957 \u5f00\u7bb1 \u5373\u7528 \u7684 \u5168\u9762 \u8f66\u8f86 \u3002 Carla \u5141\u8bb8 \u7528\u6237 \u4f7f\u7528 \u5b9a\u5236 \u8f66\u8f86 \u5bf9\u6b64 \u8fdb\u884c \u6269\u5c55 \uff0c \u4ee5 \u5b9e\u73b0 \u6700\u5927 \u7684 \u6269\u5c55 \u5c55\u6027 \u6269\u5c55\u6027 \u53ef\u6269\u5c55\u6027 \u3002 \u8be6\u7ec6 \u8f66\u8f86 \u7684 \u4e09\u7ef4 \u5efa\u6a21 \u975e\u5e38 \u590d\u6742 \u975e\u5e38\u590d\u6742 \uff0c \u9700\u8981 \u5f88 \u9ad8 \u7684 \u6280\u80fd \u3002 \u56e0\u6b64 \uff0c \u6211\u4eec \u5efa\u8bae \u8bfb\u8005 \u53c2\u8003 \u6709\u5173 \u4e09\u7ef4 \u5efa\u6a21 \u7684 \u5176\u4ed6 \u6587\u6863 \u6765\u6e90 \uff0c \u56e0\u4e3a \u8fd9 \u8d85\u51fa \u4e86 \u672c \u6307\u5357 \u7684 \u8303\u56f4 \u3002 \u7136\u800c \uff0c \u514d\u8d39 \u548c \u4e13\u6709 \u7684 \u5728\u7ebf \u5b58\u50a8 \u5e93\u4e2d \u6709 \u5927\u91cf \u7684 \u8f66\u8f86 \u6a21\u578b \u6765\u6e90 \u3002 \u56e0\u6b64 \uff0c \u7528\u6237 \u6709 \u591a\u79cd \u9009\u62e9 \u6765 \u521b\u5efa \u7528\u4e8e Carla \u7684 \u5b9a\u5236 \u8f66\u8f86 \u3002 \u4e3a Carla \u51c6\u5907 \u5b9a\u5236 \u8f66\u8f86 \u7684 \u5173\u952e \u56e0\u7d20 \u5173\u952e\u56e0\u7d20 \u5728\u4e8e \u88c5\u914d \u8f66\u8f86 \u9aa8\u67b6 \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u88c5\u914d \u548c \u5bfc\u5165 \u540e \uff0c \u9700\u8981 \u4e3a \u6c7d\u8f66 \u548c \u8f66\u8f6e \u8bbe\u7f6e \u84dd\u56fe \u3002 \u7136\u540e \u5e94\u7528 \u6750\u6599 \u5e76 \u6dfb\u52a0 \u8f66\u8f86 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u6211\u4eec \u5c06 \u5728 \u4ee5\u4e0b \u6307\u5357 \u4e2d \u4ecb\u7ecd \u8fd9\u4e9b \u6b65\u9aa4 \u3002 \u5efa\u6a21 \u547d\u540d \u7ea6\u5b9a \u88c5\u914d \u5bfc\u5165 \u7535\u67a2 \u8bbe\u7f6e \u7236\u7ea7 \u5206\u914d Blender \u63d2\u4ef6 \u5bfc\u51fa \u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce \u7269\u7406 \u8d44\u4ea7 \u52a8\u753b \u84dd\u56fe \u6750\u8d28 \u4f7f\u7528 \u6750\u8d28 \u989c\u8272 \u900f\u660e \u6d82\u5c42 \u7c92\u72b6 \u8868\u9762 \u8584\u7247 \u7070\u5c18 \u73bb\u7483 \u73bb\u7483 \u7f51\u683c \u73bb\u7483 \u6750\u8d28 \u5355\u5c42 \u73bb\u7483 \u8f66\u8f6e \u8f66\u8f6e \u84dd\u56fe \u78b0\u649e \u7f51\u683c \u8f6e\u80ce \u914d\u7f6e \u8f66\u8f6e \u5c3a\u5bf8 \u706f UV \u8d34\u56fe \u5bfc\u5165","title":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86"},{"location":"tuto_content_authoring_vehicles/#_1","text":"\u8f66\u8f86 \u5e94\u6709 5 \u4e07\u5230 10 \u4e07\u4e2a \u9762\u7247 \u3002 \u4f5c\u4e3a \u6700\u4f73 \u5b9e\u8df5 \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u5bfc\u51fa \u4e4b\u524d \u6a21\u578b \u5bf9\u6a21\u578b \u8fdb\u884c \u4e09\u89d2 \u6d4b\u91cf \u4e09\u89d2\u6d4b\u91cf \u3002 Carla \u8f66\u8f86 \u662f \u53c2\u8003 \u5b9e\u9645 \u6c7d\u8f66 \u7684 \u5c3a\u5bf8 \u548c \u6bd4\u4f8b \u8fdb\u884c \u5efa\u6a21 \u7684 \u3002 \u8bf7 \u786e\u4fdd \u786e\u4fdd\u60a8 \u7279\u522b \u6ce8\u610f \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u7684 \u5355\u4f4d \u3002 \u6709\u4e9b \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \uff0c \u6709\u4e9b \u5219 \u4ee5 \u7c73 \u4e3a \u5355\u4f4d \u3002","title":"\u5efa\u6a21"},{"location":"tuto_content_authoring_vehicles/#_2","text":"\u4e3a\u4e86 \u65b9\u4fbf \u548c \u4e00\u81f4 \uff0c \u6211\u4eec \u5efa\u8bae \u5efa\u8bae\u60a8 \u5c06 \u8f66\u8f86 \u5206\u4e3a \u4ee5\u4e0b \u90e8\u5206 \u5e76 \u76f8\u5e94 \u547d\u540d \u3002 \u73bb\u7483 \u548c \u706f \u7684 \u5177\u4f53 \u7ec6\u8282 \u5c06 \u5728 \u540e\u9762 \u7684 \u90e8\u5206 \u4e2d \u4ecb\u7ecd \uff1a \u8f66\u8eab ( Bodywork ) : \u8f66\u8f86 \u7684 \u91d1\u5c5e \u90e8\u5206 \u3002 \u8be5 \u6750\u8d28 \u5df2 \u66f4 \u6539\u4e3a \u865a\u5e7b \u5f15\u64ce \u6750\u8d28 \u3002 \u53ef\u4ee5 \u6dfb\u52a0 \u5fbd\u6807 \u548c \u7ec6\u8282 \uff0c \u4f46 \u4e3a\u4e86 \u53ef\u89c1 \uff0c \u5fc5\u987b \u4f7f\u7528 \u865a\u5e7b \u5f15\u64ce \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u7684 Alpha \u901a\u9053 \u5c06 \u5b83\u4eec \u7ed8\u5236 \u4e3a \u4e0d\u540c \u7684 \u989c\u8272 \u3002 Glass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u53ef\u4ee5 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b\u5230 \u5185\u90e8 \u3002 Glass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u8f66\u8f86 \u5185\u90e8 \u5230 \u5916\u90e8 \u7684 \u53ef\u89c1 \u6027 \u3002 Lights : \u5934\u706f \u3001 \u6307\u793a \u6307\u793a\u706f \u7b49 LightGlass _ Ext : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5916\u90e8 \u5230 \u5185\u90e8 \u7684 \u706f\u5149 \u53ef\u89c1 \u6027 \u3002 LightGlass _ Int : \u4e00\u5c42 \u73bb\u7483 \uff0c \u5141\u8bb8 \u4ece \u5185\u90e8 \u5230 \u5916\u90e8 \u770b\u5230 \u5149 \u3002 LicensePlate : 29x12 \u5398\u7c73 \u7684 \u77e9\u5f62 \u5e73\u9762 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u63d0\u4f9b \u7684 Carla \u4ee5 \u83b7\u5f97 \u6700\u4f73 \u83b7\u5f97\u6700\u4f73 \u7ed3\u679c \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e0b\u8f7d . fbx \u3002 \u7eb9\u7406 \u5c06 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u81ea\u52a8 \u5206\u914d \u3002 \u5185\u9970 ( Interior ) : \u4efb\u4f55 \u5176\u4ed6 \u4e0d \u9002\u5408 \u4e0a\u8ff0 \u90e8\u5206 \u7684 \u7ec6\u8282 \u90fd \u53ef\u4ee5 \u8fdb\u5165 \u5185\u9970 \u3002 \u6750\u8d28 ( Material ) \u5e94 \u4f7f\u7528 \u683c\u5f0f M _ CarPart _ CarName \u547d\u540d \uff0c \u4f8b\u5982 , M _ Bodywork _ Mustang \u3002 \u7eb9\u7406 \u7684 \u5927\u5c0f \u5e94\u4e3a 2048x2048 \u3002","title":"\u547d\u540d \u7ea6\u5b9a"},{"location":"tuto_content_authoring_vehicles/#_3","text":"\u4e3a\u4e86 \u5728 \u4eff\u771f \u4e2d \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \uff0c \u6c7d\u8f66 \u9700\u8981 \u6709 \u65cb\u8f6c \u8f6e\u5b50 \uff0c \u524d \u4e00\u5bf9 \u8f6e\u5b50 \u53ef\u4ee5 \u968f\u7740 \u8f6c\u5411 \u8f93\u5165 \u800c \u8f6c\u52a8 \u3002 \u56e0\u6b64 \uff0c \u8981 \u4e3a Carla \u51c6\u5907 \u8f66\u8f86 \uff0c \u9700\u8981 \u5728 \u6c7d\u8f66 \u4e0a \u5b89\u88c5 \u7535\u67a2 \u4ee5 \u8bc6\u522b \u8f66\u8f6e \u5e76 \u5141\u8bb8 \u5176 \u79fb\u52a8 \u3002","title":"\u4f7f\u7528 \u7535\u67a2 \u88c5\u914d \u8f66\u8f86"},{"location":"tuto_content_authoring_vehicles/#_4","text":"\u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u5bfc\u5165 \u6216 \u5efa\u6a21 \u8f66\u8f86 \u6a21\u578b \u7f51\u683c \u3002 \u5728 \u672c \u6307\u5357 \u4e2d \uff0c \u6211\u4eec \u5c06 \u4f7f\u7528 Blender 3D \u3002 \u786e\u4fdd \u8f6e\u5b50 \u4e0e \u4e3b\u4f53 \u5206\u79bb \u3002 \u6bcf\u4e2a \u8f6e\u5b50 \u5fc5\u987b \u53ef\u4ee5 \u4f5c\u4e3a \u4e00\u4e2a \u4e0d\u540c \u7684 \u5bf9\u8c61 \u8fdb\u884c \u8bbf\u95ee \u3002 \u786e\u4fdd \u8f66\u8f86 \u9762\u5411 \u6b63 X \u65b9\u5411 \u975e\u5e38 \u91cd\u8981 \uff0c \u56e0\u6b64 \u5f15\u64ce \u5f15\u64ce\u76d6 \u548c \u6321\u98ce \u73bb\u7483 \u6321\u98ce\u73bb\u7483 \u5e94 \u9762\u5411 \u6b63 X \u65b9\u5411 \u3002 \u6c7d\u8f66 \u7684 \u65b9\u5411 \u8fd8 \u5e94 \u4f7f \u5730\u677f \u5230 \u8f66\u9876 \u65b9\u5411 \u5904\u4e8e \u6b63 Z \u65b9\u5411 \u3002 \u8f66\u8f6e \u5e94\u8be5 \u6b63\u597d \u64e6 \u8fc7 XY \u5e73\u9762 \uff0c \u5e76\u4e14 \u539f\u70b9 \u5e94\u8be5 \u4f4d\u4e8e \u60a8 \u671f\u671b \u8f66\u8f86 \u8d28\u5fc3 \u4f4d\u4e8e XY \u5e73\u9762 \uff08 \u4f46 \u4e0d\u662f Z \u5e73\u9762 \uff09 \u7684 \u4f4d\u7f6e \u3002","title":"\u5bfc\u5165"},{"location":"tuto_content_authoring_vehicles/#_5","text":"\u73b0\u5728 \u5728 \u8f66\u8f86 \u7684 \u4e2d\u5fc3 \u6dfb\u52a0 \u4e00\u4e2a \u9aa8\u67b6 \uff0c \u786e\u4fdd \u7269\u4f53 \u6b63\u786e \u5c45\u4e2d \uff0c \u9aa8\u67b6 \u9aa8\u9abc \u7684 \u6839\u90e8 \u5e94 \u8bbe\u7f6e \u5728 \u539f\u70b9 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \u5e76 \u5c06 \u9aa8\u67b6 \u7ed5 x \u8f74 \u65cb\u8f6c 90 \u5ea6 \u3002 \u73b0\u5728 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u6dfb\u52a0 4 \u4e2a \u9aa8\u9abc \u3002 \u8fd9\u4e9b \u9aa8\u9abc \u4e2d \u7684 \u6bcf \u4e00\u4e2a \u90fd \u9700\u8981 \u5b9a\u4f4d \uff0c \u4f7f\u5f97 \u9aa8\u9abc \u7684 \u6839\u90e8 \u4e0e \u6bcf\u4e2a \u8f6e\u5b50 \u7684 \u4e2d\u5fc3 \u91cd\u5408 \u3002 \u8fd9 \u53ef\u4ee5 \u901a\u8fc7 \u5728 \u7f16\u8f91 \u6a21\u5f0f \u4e0b \u5c06 \u4e09\u7ef4 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6bcf\u4e2a \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u6765 \u5b9e\u73b0 \u3002 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u9009\u62e9 \u5176\u4e2d \u4e00\u4e2a \u8f6e\u5b50 \uff0c \u9009\u62e9 \u4e00\u4e2a \u9876\u70b9 \uff0c \u6309 A \u9009\u62e9 \u6240\u6709 \u9876\u70b9 \uff0c \u7136\u540e Shift + S \u9009\u62e9 Cursor to selected \u3002 \u8fd9\u4f1a \u5c06 \u5149\u6807 \u5b9a\u4f4d \u5728 \u6eda\u8f6e \u7684 \u4e2d\u5fc3 \u3002 \u7136\u540e \uff0c \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \uff0c \u9009\u62e9 \u9aa8\u67b6 \uff0c \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u9009\u62e9 \u9aa8\u9abc \u5e76 \u9009\u62e9 Selection to cursor \u3002 \u60a8 \u7684 \u9aa8\u9abc \u73b0\u5728 \u5c06 \u4e0e \u8f6e\u5b50 \u91cd\u5408 \u3002 \u65cb\u8f6c \u6bcf\u4e2a \u9aa8\u9abc \uff0c \u4f7f \u5176 \u4e0e \u9aa8\u67b6 \u5e95\u90e8 \u5bf9\u9f50 \u3002 \u5bf9\u4e8e \u6bcf\u4e2a \u8f6e\u5b50 \uff0c \u5efa\u8bae \u6839\u636e \u9700\u8981 \u8026\u5408 \u7684 \u8f6e\u5b50 \u6765 \u547d\u540d \u9aa8\u9abc \uff0c \u8fd9 \u5c06 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7a0d\u540e \u5728 \u9700\u8981 \u4e3a \u6bcf\u4e2a \u9aa8\u9abc \u5206\u914d \u9876\u70b9 \u7ec4\u65f6 \u8fdb\u884c \u8bc6\u522b \u3002","title":"\u6dfb\u52a0 \u7535\u67a2"},{"location":"tuto_content_authoring_vehicles/#_6","text":"\u73b0\u5728 \u5728 \u9879\u76ee \u5927\u7eb2 \u4e2d \u4f7f\u7528 shift \u6216 control \u9009\u62e9 \u8eab\u4f53 \u7684 \u6240\u6709 \u90e8\u5206 \u548c \u6240\u6709 4 \u4e2a \u8f6e\u5b50 \uff0c \u7136\u540e \u63a7\u5236 \u9009\u62e9 \u60a8 \u521b\u5efa \u7684 \u9aa8\u67b6 \uff08 \u8fd9\u4e2a \u987a\u5e8f \u5f88 \u91cd\u8981 \uff0c \u5982\u679c \u60a8 \u4ee5 \u76f8\u53cd \u7684 \u987a\u5e8f \u9009\u62e9 \u5b83\u4eec \u5c06 \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \uff09 \u3002 \u6309 Ctrl + p \u5e76 \u9009\u62e9 With empty groups \u5c06 \u7f51\u683c \u7ed1\u5b9a \u5230 \u9aa8\u67b6 \u3002 \u73b0\u5728 \u60a8 \u5df2 \u5c06 \u7f51\u683c \u4f53 \u8bbe\u7f6e \u4e3a \u9aa8\u67b6 \u7684 \u7236\u7ea7 \uff0c \u73b0\u5728 \u9700\u8981 \u5c06 \u6bcf\u4e2a \u8f6e\u5b50 \u5206\u914d \u7ed9 \u5176 \u5404\u81ea \u7684 \u9aa8\u9abc \u3002 \u5728 \u5927\u7eb2 \u89c6\u56fe \u6216 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u9009\u62e9 \u4e00\u4e2a \u8f6e\u5b50 \u3002 \u5207\u6362 \u5230 \u7f16\u8f91 \u6a21\u5f0f \uff0c \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u7684 \u6240\u6709 \u9876\u70b9 \uff08 \u5feb\u6377 \u5feb\u6377\u952e - a \uff09 \u3002","title":"\u8bbe\u7f6e \u7236\u7ea7"},{"location":"tuto_content_authoring_vehicles/#_7","text":"\u9009\u62e9 \u5c5e\u6027 \u7684 \u7f51\u683c \u9009\u9879 \u9009\u9879\u5361 \uff08 \u7eff\u8272 \u4e09\u89d2 \u89d2\u5f62 \u4e09\u89d2\u5f62 \uff09 \u3002 \u5728 \u7f51\u683c \u5c5e\u6027 \u9762\u677f \u7684 \u9876\u70b9 \u7ec4 \u9009\u9879 \u9009\u9879\u5361 \u4e2d \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u9aa8\u67b6 \u7684 \u9aa8\u9abc \u3002 \u9009\u62e9 \u4e0e \u60a8 \u6b63\u5728 \u7f16\u8f91 \u7684 \u8f6e\u5b50 \u5bf9\u5e94 \u7684 \u9aa8\u9abc \uff0c \u7136\u540e \u9009\u62e9 Assign \u3002 \u5b89\u88c5 \u597d \u8f66\u8f6e \u540e \uff0c \u5c06 \u8f66\u8f86 \u7684 \u6240\u6709 \u5176\u4ed6 \u90e8\u4ef6 \u5b89\u88c5 \u5230 \u57fa\u9aa8 \u4e0a \u3002 \u5c06 \u6240\u6709 \u7f51\u683c \u90e8\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u67b6 \u540e \uff0c \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u9009\u62e9 \u9aa8\u67b6 \u5e76 \u79fb\u52a8 \u5230 \u59ff\u52bf \u6a21\u5f0f \u5e76 \u79fb\u52a8 \u76f8\u5173 \u9aa8\u9abc \u6765 \u6d4b\u8bd5 \u5b83 \u662f\u5426 \u6709\u6548 \u3002 \u8f66\u8f86 \u57fa\u9aa8\u5e94 \u79fb\u52a8 \u6574\u4e2a \u8f66\u8f86 \uff0c \u800c\u8f6e \u9aa8\u5e94 \u5206\u522b \u79fb\u52a8 \u5e76 \u65cb\u8f6c \u5404\u81ea \u7684 \u8f66\u8f6e \u3002 Ctrl + Z \u786e\u4fdd \u64a4\u6d88 \u60a8 \u53ef\u80fd \u505a\u51fa \u7684 \u4efb\u4f55 \u59ff\u52bf \u3002","title":"\u5c06 \u6c7d\u8f66\u96f6\u4ef6 \u5206\u914d \u7ed9 \u9aa8\u9abc"},{"location":"tuto_content_authoring_vehicles/#blender-4","text":"Blender \u6709 \u4e00\u4e2a \u975e\u5e38 \u6709\u7528 \u7684 \u63d2\u4ef6 \uff0c \u7528\u4e8e \u88c5\u914d \u8f66\u8f86 \u4ee5 \u5bfc\u5165 Carla \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u7b80\u5316 \u4e0a\u8ff0 \u6b65\u9aa4 \u3002 \u53c2\u9605 \u8bf7\u53c2\u9605 \u63d2\u4ef6 \u7f51\u9875 \u4ee5 \u83b7\u53d6 \u8bf4\u660e \u3002","title":"Blender \u865a\u5e7b \u5f15\u64ce 4 \u8f66\u8f86 \u88c5\u914d \u63d2\u4ef6"},{"location":"tuto_content_authoring_vehicles/#_8","text":"\u73b0\u5728 \uff0c \u6211\u4eec \u5c06 \u88c5\u914d \u6a21\u578b \u5bfc\u51fa \u4e3a FBX \u683c\u5f0f \uff0c \u4ee5\u4fbf \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u5f15\u64ce \u4e2d \u3002 \u4ece \u201c \u6587\u4ef6 \u201d \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Export > FBX ( . fbx ) \u3002 \u5728 Include \u9762\u677f \u7684 Object Types \u90e8\u5206 \u4e2d \uff0c \u6309\u4f4f Shift \u952e \u9009\u62e9 Armature \u548c Mesh \u9009\u9879 \u3002 \u5728 Transform \u9762\u677f \u4e2d \u3002 \u66f4\u6539 Forward \u4e3a X Forward \uff0c \u5e76 \u66f4\u6539 Up \u4e3a Z Up . \u8fd9 \u5bf9\u4e8e \u786e\u4fdd \u8f66\u8f86 \u5728 \u865a\u5e7b \u5f15\u64ce \u4e2d \u6b63\u786e \u5b9a\u5411 \u975e\u5e38 \u91cd\u8981 \u3002 \u5728 Armature \u90e8\u5206 \u4e2d \u53d6\u6d88 Add Leaf Bones \u9009\u4e2d \u5e76 \u53d6\u6d88 Bake Animation \u9009\u4e2d \u3002","title":"\u5bfc\u51fa"},{"location":"tuto_content_authoring_vehicles/#_9","text":"\u4ece Carla \u76ee\u5f55 \u6839\u76ee\u5f55 \uff08 \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa Carla \u7684 \u76ee\u5f55 \uff09 \u4e2d \u4f7f\u7528 make launch \u547d\u4ee4 \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u3002 \u6253\u5f00 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \uff0c \u8bbe\u7f6e \u9002\u5f53 \u7684 \u76ee\u5f55 \uff0c \u7136\u540e \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Import to .... \u3002 \u9009\u62e9 \u60a8 \u4e4b\u524d \u4ece Blender \uff08 \u6216 \u5176\u4ed6 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \uff09 \u5bfc\u51fa \u7684 FBX \u6587\u4ef6 \u3002 \u4f7f\u7528 \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u5bfc\u5165 \u3002","title":"\u5bfc\u5165 \u865a\u5e7b \u5f15\u64ce"},{"location":"tuto_content_authoring_vehicles/#_10","text":"\u73b0\u5728 \uff0c \u60a8 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d\u5c06 \u5305\u542b 3 \u4e2a \u5185\u5bb9 \uff1a \u7f51\u683c \u3001 \u9aa8\u67b6 \u548c \u7269\u7406 \u8d44\u6e90 \u3002 \u53cc\u51fb \u7269\u7406 \u8d44\u6e90 \u8fdb\u884c \u8c03\u6574 \u3002 \u9996\u5148 \uff0c \u9009\u62e9 \u8f66\u4f53 \uff0c \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \uff0c \u5c06 Physics \u90e8\u5206 \u4e2d \u7684 Linear Damping \u66f4 \u6539\u4e3a 0.0 \uff0c \u68c0\u67e5 Collision \u90e8\u5206 \u7684 Simulation Generates Hit Events \uff0c \u5728 Body Creation \u90e8\u5206 \u5c06 Primitive Type \u4ece Capsule \u6539\u4e3a Box \u3002 \u7136\u540e \u6309 Regenerate bodies \u3002 \u80f6\u56ca \u73b0\u5728 \u5c06 \u53d8\u6210 \u4e00\u4e2a \u77e9\u5f62 \u76d2\u5b50 \u3002 \u7136\u540e \u9009\u62e9 \u8f6e\u5b50 \u3002 \u73b0\u5728 \u9009\u62e9 \u6240\u6709 \u8f6e\u5b50 \uff08 \u5728 Skeleton Tree \u5de6\u4fa7 \u90e8\u5206 \uff09 \u3002 \u5c06 Linear Damping \u6539\u4e3a 0.0 \uff0c \u5c06 Physics Type \u8bbe\u7f6e \u4e3a Kinematic \uff0c \u5c06 Collision Response \u8bbe\u7f6e \u4e3a Disabled \uff0c \u5e76 \u9009\u62e9 Primitive Type \u4f5c\u4e3a Sphere \u3002 \u518d \u6309 Re - generate Bodies \u4e00\u6b21 \u3002","title":"\u8bbe\u7f6e \u7269\u7406 \u8d44\u4ea7"},{"location":"tuto_content_authoring_vehicles/#_11","text":"\u5728 \u60a8 \u62e5\u6709 \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 Animation > Animation Blueprint \u3002 \u5728 \u6253\u5f00 \u7684 \u5f39\u51fa \u7a97\u53e3 \u4e2d \uff0c \u5728 Parent Class \u90e8\u5206 \u4e2d \u641c\u7d22 VehicleAnimInstance \uff0c \u7136\u540e \u641c\u7d22 Target Skeleton \u4e0e \u60a8 \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u9aa8\u67b6 \uff0c \u60a8 \u5e94\u8be5 \u80fd\u591f \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u770b\u5230 \u8be5 \u540d\u79f0 \u3002 \u9009\u62e9 \u4e24\u9879 \u8fd9\u4e24\u9879 \u540e \u6309 \u786e\u5b9a \u3002 \u8fd9 \u5c06 \u4e3a \u60a8 \u7684 \u8f66\u8f86 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u3002 \u4e3a\u4e86 \u7b80\u5316 \u4e8b\u60c5 \uff0c \u6211\u4eec \u53ef\u4ee5 \u4ece \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u590d\u5236 \u52a8\u753b \u3002 \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u6253\u5f00 Content > Carla > Static > Vehicles > 4Wheeled \u5e76 \u9009\u62e9 \u4efb\u610f \u8f66\u8f86 \u3002 \u6253\u5f00 \u6240 \u9009 \u8f66\u8f86 \u7684 \u52a8\u753b \u84dd\u56fe \uff0c \u7136\u540e \u5c06 \u9664 \u6b64 \u8282\u70b9 \u4e4b\u5916 \u7684 \u6240\u6709 \u8282\u70b9 \u590d\u5236 Output pose \u5230 \u65b0 \u7684 \u52a8\u753b \u84dd\u56fe \u4e2d \u3002 \u901a\u8fc7 \u62d6\u52a8 \u6700\u7ec8 \u8282\u70b9 \u4e0e \u8f93\u51fa \u8282\u70b9 \u4e4b\u95f4 \u7684 \u65b0 \u8fde\u63a5 \u6765 \u8fde\u63a5 \u8282\u70b9 \u3002 \u6309 \u7f16\u8bd1 \uff0c \u52a8\u753b \u84dd\u56fe \u73b0\u5df2 \u8bbe\u7f6e \u3002","title":"\u521b\u5efa \u52a8\u753b"},{"location":"tuto_content_authoring_vehicles/#_12","text":"\u4f7f\u7528 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > LincolnMKZ2017 \u6216 \u7c7b\u4f3c \u7684 \u8f66\u8f86 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u4e00\u7ec4 \u4e3a 4 \u4e2a \u8f6e\u5b50 \u8bbe\u7f6e \u7684 \u84dd\u56fe \u3002 \u5c06 \u5b83\u4eec \u590d\u5236 \u590d\u5236\u5230 \u5305\u542b \u60a8 \u81ea\u5df1 \u7684 \u8f66\u8f86 \u7684 \u76ee\u5f55 \u4e2d \u5e76\u91cd \u547d\u540d \u5b83\u4eec \u4ee5 \u786e\u4fdd \u786e\u4fdd\u60a8 \u4ee5\u540e \u53ef\u4ee5 \u533a\u5206 \u5b83\u4eec \u3002 \u5982\u679c \u60a8 \u613f\u610f \uff0c \u60a8 \u53ef\u4ee5 \u8bbe\u7f6e \u81ea\u5df1 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u8f6e\u5b50 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 \u540e\u9762 \u7684 \u8f6e\u5b50 \u90e8\u5206 \u3002 \u53f3\u952e \u5355\u51fb \u65b0 \u8f66\u8f86 \u8d44\u4ea7 \u6240\u5728 \u7684 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u76ee\u5f55 \u5e76 \u9009\u62e9 Blueprint Class \u3002 \u5728 All Classes \u83dc\u5355 \u4e2d \u641c\u7d22 BaseVehiclePawn \u5e76 \u9009\u62e9 \u6b64\u7c7b \u3002 \u4e3a \u84dd\u56fe \u547d\u540d \u5e76 \u6253\u5f00 \u5b83 \u3002 \u5728 \u5de6\u4fa7 Components \u9009\u9879 \u9009\u9879\u5361 \u4e2d \u8fdb\u884c Mesh \u9009\u62e9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7f51\u683c \u62d6\u52a8 \u5230 \u53f3\u4fa7 \u7684 \u201c \u7f51\u683c \u201d \u90e8\u5206 \u4e2d \u3002 \u5728 Anim Class \u641c\u7d22 \u4e0e \u60a8 \u5728 \u4e0a \u4e00\u6b65 \u4e2d \u8bbe\u7f6e \u7684 \u65b0\u8f66 \u76f8\u5bf9 \u5e94 \u7684 \u52a8\u753b \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u84dd\u56fe \u7c7b \u7684 Components \u83dc\u5355 \u4e2d\u9009 \u9009\u62e9 \u83dc\u5355\u4e2d\u9009\u62e9 Vehicle Movement \uff0c \u7136\u540e \u5728 \u53f3\u4fa7 Details \u83dc\u5355 \u4e2d \u5bfc\u822a \u5230 \u8be5 Vehicle Setup \u90e8\u5206 \u3002 \u73b0\u5728 \uff0c \u5bf9\u4e8e \u6bcf\u4e2a \u8f66\u8f6e \uff0c \u627e\u5230 \u60a8 \u4e4b\u524d \u4e3a Wheel Class \u5c5e\u6027 \u590d\u5236 \u5e76\u91cd \u547d\u540d \u7684 \u76f8\u5173 \u8f66\u8f6e \u84dd\u56fe \u3002 \u5bf9 \u6bcf\u4e2a \u8f6e\u5b50 \u6267\u884c \u76f8\u540c \u7684 \u64cd\u4f5c \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u73b0\u5728 \u5bfc\u822a \u5230 Content > Carla > Blueprints > Vehicles > VehicleFactory \u5e76 \u53cc\u51fb \u5b83 \u4ee5 \u6253\u5f00 \u8f66\u8f86 \u5de5\u5382 \u3002 \u9009\u62e9 Vehicles \u8282\u70b9 \u5e76 \u5c55\u5f00 \u53f3\u4fa7 Default value \u90e8\u5206 \u4e2d \u7684 Vehicles \u9879 \u3002 \u6309 \u52a0\u53f7 \u56fe\u6807 \u6dfb\u52a0 \u60a8 \u7684 \u65b0\u8f66 \u3002 \u5411\u4e0b \u6eda\u52a8 \u5230 \u6700\u540e \u4e00\u4e2a \u6761\u76ee \u5e76 \u5c06 \u5176 \u5c55\u5f00 \uff0c \u5b83 \u5e94\u8be5 \u662f \u7a7a \u7684 \u3002 \u547d\u540d \u60a8 \u7684 \u8f66\u8f86 \u7684 \u54c1\u724c \u548c \u578b\u53f7 \uff0c \u7136\u540e \u5728 \u7c7b \u90e8\u5206 \u4e0b \u627e\u5230 \u60a8 \u5728 \u4e0a \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u4e2d \u521b\u5efa \u7684 \u84dd\u56fe \u7c7b \u3002 \u5c06 \u8f6e\u5b50 \u6570\u91cf \u4fdd\u7559 \u4e3a 4 \uff0c \u5e76 \u5c06 \u4e16\u4ee3 \u8bbe\u7f6e \u4e3a 2 \u3002 \u7f16\u8bd1 \u5e76 \u4fdd\u5b58 \u3002 \u4e3a\u4e86 \u5b89\u5168 \u8d77 \u89c1 \uff0c \u8fdb\u884c \u5168\u5c40 \u4fdd\u5b58 \uff0c \u60a8 \u73b0\u5728 ...... \u51c6\u5907 \u5728 \u4eff\u771f \u4e2d \u8fd0\u884c \u60a8 \u7684 \u8f66\u8f86 \u3002 \u6309 \u865a\u5e7b \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u201c \u8fd0\u884c \u201d \u6765 \u8fdb\u884c \u4eff\u771f \u3002 \u8fd0\u884c \u540e \uff0c \u6253\u5f00 \u7ec8\u7aef \u5e76 \u4f7f\u7528 \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 \u9009\u9879 \u8fd0\u884c \u811a\u672c manual _ control . py \u6765 \u6307\u5b9a \u60a8 \u7684 \u65b0 \u8f66\u8f86 \u578b\u53f7 \uff1a python manual _ control . py -- filter my _ vehicle _ make \u4e8b\u5b9e \u4e8b\u5b9e\u4e0a \uff0c \u8f66\u8f86 \u76ee\u524d \u6ca1\u6709 \u5e94\u7528 \u7eb9\u7406 \u6216 \u989c\u8272 \u3002 \u4e0b \u4e00\u6b65 \u662f \u5e94\u7528 \u6750\u6599 \uff0c \u4f7f \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u50cf \u771f\u6b63 \u7684 \u516c\u8def \u8f66\u8f86 \u4e00\u6837 \u7684 \u5916\u89c2 \u3002","title":"\u521b\u5efa \u84dd\u56fe"},{"location":"tuto_content_authoring_vehicles/#_13","text":"\u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002","title":"\u6750\u8d28"},{"location":"tuto_content_authoring_vehicles/#_14","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u4eff\u771f \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u6599 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u6599 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \uff1a","title":"\u7ed9 \u60a8 \u7684 \u8f66\u8f86 \u5e94\u7528 \u4f7f\u7528 \u6750\u8d28"},{"location":"tuto_content_authoring_vehicles/#color","text":"\u989c\u8272 \u8bbe\u7f6e \u51b3\u5b9a \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a","title":"\u989c\u8272 ( Color )"},{"location":"tuto_content_authoring_vehicles/#clear-coat","text":"\u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u51b3\u5b9a \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f Clear Coat Intensity \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002","title":"\u900f\u660e \u6d82\u5c42 ( Clear coat )"},{"location":"tuto_content_authoring_vehicles/#orange-peel","text":"\u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e0a \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u7c92\u72b6 \u8868\u9762 \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002","title":"\u7c92\u72b6 \u8868\u9762 ( Orange peel )"},{"location":"tuto_content_authoring_vehicles/#flakes","text":"\u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u8d4b\u4e88 \u6c7d\u8f66 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u5149\u7ebf \u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f","title":"\u8584\u7247 ( Flakes )"},{"location":"tuto_content_authoring_vehicles/#dust","text":"\u6c7d\u8f66 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u8fd9\u4f1a \u589e\u52a0 \u8f66\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002","title":"\u7070\u5c18 ( Dust )"},{"location":"tuto_content_authoring_vehicles/#_15","text":"\u5728 Carla \u4e2d \u521b\u5efa \u903c\u771f \u7684 \u73bb\u7483 \u9700\u8981 \u4e00\u4e9b \u6280\u5de7 \u6765 \u6355\u6349 \u673a\u52a8 \u52a8\u8f66 \u8f66\u8f86 \u673a\u52a8\u8f66 \u673a\u52a8\u8f66\u8f86 \u4e2d \u4f7f\u7528 \u7684 \u73bb\u7483 \u7684 \u771f\u5b9e \u6298\u5c04 \u548c \u53cd\u5c04 \u884c\u4e3a \u3002 Carla \u8f66\u5e93 \u8f66\u8f86 \u6709 4 \u5c42 \u73bb\u7483 \u7f51\u683c \uff0c \u91c7\u7528 2 \u79cd \u4e0d\u540c \u7684 \u6750\u6599 \u3002 \u5404\u5c42 \u4e4b\u95f4 \u95f4\u9694 \u6beb\u7c73 \u51e0\u6beb\u7c73 \uff0c \u5185\u90e8 \u548c \u5916\u90e8 \u73bb\u7483 \u5c42 \u91c7\u7528 \u4e0d\u540c \u7684 \u6750\u6599 \uff0c \u4ee5 \u786e\u4fdd \u73bb\u7483 \u4ece \u8f66\u8f86 \u5185\u90e8 \u548c \u5916\u90e8 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u90fd \u5f88 \u903c\u771f \u3002 \u4ece \u8f66\u8f86 \u5916\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \uff0c \u4ece \u8f66\u8f86 \u5185\u90e8 \u770b \u6709 2 \u5c42 \u73bb\u7483 \u3002 \u73bb\u7483 \u6240\u4ee5 \u4e4b\u6240\u4ee5 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u50cf \u73bb\u7483 \uff0c \u56e0\u4e3a \u662f\u56e0\u4e3a \u6765\u81ea \u73bb\u7483 \u4e24\u4e2a \u8868\u9762 \u7684 \u53cd\u5c04 \u4f7f\u5f97 \u53cd\u5c04 \u975e\u5e38 \u5fae\u5999 \u5730 \u52a0\u500d \u3002","title":"\u73bb\u7483"},{"location":"tuto_content_authoring_vehicles/#_16","text":"\u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u770b\u5230 \u8fde\u63a5 \u5230 \u6797\u80af \u4e3b\u4f53 \u8f66\u8eab \uff08 \u4e0d\u662f \u8f66\u95e8 \u6216 \u5176\u4ed6 \u6d3b\u52a8 \u90e8\u4ef6 \uff09 \u7684 \u73bb\u7483 \u90e8\u4ef6 \u3002 \u5982\u679c \u6211\u4eec \u5c06 \u7ec4\u6210 \u7684 \u7f51\u683c \u90e8\u5206 \u5206\u5f00 \uff0c \u6211\u4eec \u53ef\u4ee5 \u770b\u5230 \u73bb\u7483 \u8f6e\u5ed3 \u88ab \u5206\u4e3a 4 \u4e2a \u4e0d\u540c \u7684 \u5c42 \u3002 \u8fd9 4 \u4e2a\u5c42 \u5206\u4e3a 2 \u7ec4 \uff1a \u5916\u90e8 \u5c42 \uff08 \u6cd5\u7ebf \u9762\u5411 \u8f66\u8f86 \u5916\u90e8 \uff09 \u548c \u5185\u90e8 \u5c42 \uff08 \u7f51\u683c \u683c\u6cd5 \u7f51\u683c\u6cd5 \u7ebf \u9762\u5411 \u8f66\u8f86 \u5185\u90e8 \uff09 \u3002 \u4e0b\u56fe \u6f14\u793a \u4e86 \u521b\u5efa \u7f51\u683c \u56fe\u5c42 \u540e \uff0c \u5c06 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u5b83\u4eec \u5bfc\u5165 \u5bfc\u5165\u5230 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u5b58\u50a8 \u8f66\u8f86 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6309\u4f4f Shift \u952e \u9009\u62e9 4 \u4e2a \u73bb\u7483 \u5c42 \u5e76 \u5c06 \u5b83\u4eec \u62d6 \u5230 \u5730\u56fe \u4e2d \u4ee5\u4fbf \u60a8 \u53ef\u4ee5 \u770b\u5230 \u5b83\u4eec \u3002","title":"\u73bb\u7483 \u7f51\u683c"},{"location":"tuto_content_authoring_vehicles/#_17","text":"\u53cc\u51fb \u73bb\u7483 \u7684 \u5916\u5c42 \uff0c \u7136\u540e \u5728 \u7b2c\u4e8c \u4e8c\u4e2a \u7b2c\u4e8c\u4e2a \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u7a97\u53e3 \u4e2d \u5bfc\u822a \u5230 Content > Carla > Static > Vehicles > GeneralMaterials \u5e76 \u627e\u5230 \u8be5 Glass \u6750\u8d28 \u3002 \u5c06 \u73bb\u7483 \u6750\u8d28 \u62d6\u81f3 \u7f51\u683c \u7269\u4f53 \u7684 \u6750\u8d28 \u69fd \u4e2d \u3002 \u5bf9 \u73bb\u7483 \u7684 \u6bcf \u4e00\u5c42 \u91cd\u590d \u6b64 \u8fc7\u7a0b \u3002 \u73bb\u7483 \u73b0\u5728 \u5c06 \u662f \u900f\u660e \u7684 \uff0c \u4f46 \u5177\u6709 \u53cd\u5c04 \u9644\u8fd1 \u7269\u4f53 \u548c \u5149\u6e90 \u7684 \u53cd\u5c04 \u53cd\u5c04\u7387 \u3002 \u60a8 \u8fd8 \u5e94\u8be5 \u68c0\u67e5 \u5185\u90e8 \u73bb\u7483 \uff0c \u786e\u4fdd \u90a3\u91cc \u6709 \u9002\u5f53 \u7684 \u73bb\u7483 \u6548\u679c \u3002","title":"\u73bb\u7483 \u6750\u8d28"},{"location":"tuto_content_authoring_vehicles/#_18","text":"\u4e3a\u4e86 \u66f4\u5feb \u5730 \u751f\u4ea7 \u8f66\u8f86 \u73bb\u7483 \u90e8\u4ef6 \uff0c \u552f\u4e00 \u7684 \u5173\u952e \u90e8\u4ef6 \u5173\u952e\u90e8\u4ef6 \u662f \u6700 \u5916\u5c42 \u7684 \u73bb\u7483 \u5c42 \u3002 \u60a8 \u53ef\u4ee5 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d\u5c06 \u73bb\u7483 \u6750\u8d28 \u5e94\u7528 \u4e8e \u6b64 \uff0c \u5e76 \u83b7\u5f97 \u53ef\u80fd \u9002\u5408 \u60a8 \u9700\u6c42 \u7684 \u7ed3\u679c \uff0c \u4f46\u662f \uff0c \u4ece\u8f66 \u5185 \u67e5\u770b \u7684 \u89c6\u56fe \uff08 \u5373 \uff0c \u5982\u679c \u60a8 \u5728 \u4eea\u8868 \u4eea\u8868\u677f \u4e0a \u6216 \u65b9\u5411 \u65b9\u5411\u76d8 \u540e\u9762 \u5b9e\u4f8b \u5316 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \uff09 \u4f3c\u4e4e \u5177\u6709 \u65e0 \u73bb\u7483 \uff08 \u65e0 \u6298\u5c04 \u6216 \u53cd\u5c04 \uff09 \u3002 \u6211\u4eec \u5efa\u8bae \u91c7\u7528 \u4e0a\u8ff0 \u5de5\u827a \u6765 \u751f\u4ea7 \u6700 \u771f\u5b9e \u7684 \u73bb\u7483 \u3002 \u73b0\u5728 \u60a8 \u5df2\u7ecf \u521b\u5efa \u4e86 \u84dd\u56fe \uff0c \u6dfb\u52a0 \u4e86 \u7f51\u683c \uff0c \u5b8c\u6210 \u4e86 \u88c5\u914d \uff0c \u521b\u5efa \u4e86 \u6cb9\u6f06 \u9970\u9762 \u548c \u73bb\u7483 \u7684 \u6750\u6599 \uff0c \u60a8 \u5e94\u8be5 \u62e5\u6709 \u4e00\u8f86 \u5916\u89c2 \u975e\u5e38 \u903c\u771f \u7684 \u8f66\u8f86 \u3002","title":"\u5355\u5c42 \u73bb\u7483"},{"location":"tuto_content_authoring_vehicles/#_19","text":"\u5982\u679c \u60a8 \u5728 \u521b\u5efa \u84dd\u56fe \u65f6 \u590d\u5236 \u4e86 \u8f66\u8f6e \uff0c \u5e76\u4e14 \u60a8 \u7684 \u8f66\u8f86 \u4e0e Carla \u5e93\u4e2d \u5df2\u6709 \u7684 \u8f66\u8f86 \u975e\u5e38 \u76f8\u4f3c \uff0c \u90a3\u4e48 \u8fd9 \u53ef\u80fd \u9002\u5408 \u60a8 \u7684 \u76ee\u7684 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u7684 \u8f66\u8f86 \u5177\u6709 \u975e\u6807 \u6807\u51c6 \u975e\u6807\u51c6 \u8f66\u8f6e \u5c3a\u5bf8 \u6216 \u6293 \u5730\u529b \u7279\u6027 \uff0c \u5219 \u5e94 \u6309\u7167 \u672c \u8282 \u8bbe\u7f6e \u8f66\u8f6e \u84dd\u56fe \uff0c \u4ee5 \u6700\u597d \u5730 \u5339\u914d \u8f66\u8f86 \u8f66\u8f6e \u7684 \u7269\u7406 \u7279\u6027 \u3002 \u5bf9\u4e8e Carla \u8f66\u8f86 \u7684 \u8f66\u8f6e \uff0c \u6211\u4eec \u9700\u8981 \u4e3a \u6bcf\u4e2a \u8f66\u8f6e \u5efa\u7acb \u4e00\u4e2a \u84dd\u56fe \u7c7b\u6765 \u5904\u7406 \u529b\u5b66 \u548c \u78b0\u649e \u5c5e\u6027 \u3002 \u60a8 \u5c06 \u8bbe\u7f6e 4 \u4e2a \u84dd\u56fe \u7c7b \uff0c \u6211\u4eec \u5efa\u8bae \u4f7f\u7528 \u4ee5\u4e0b \u524d\u7f00 \u6216 \u540e\u7f00 \u6765 \u8bc6\u522b \u8f6e\u5b50 \uff1a RRW - R ear R ight W heel RLW - R ear L eft W heel FRW - F ront R ight W heel FLW - F ront L eft W heel","title":"\u8f66\u8f6e"},{"location":"tuto_content_authoring_vehicles/#_20","text":"\u5728 \u60a8 \u62e5\u6709 \u65b0\u8f66 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \uff0c \u53f3\u952e \u5355\u51fb \u5e76 \u9009\u62e9 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 \u84dd\u56fe \u7c7b \u3002 \u641c\u7d22 \u53cc\u51fb \u84dd\u56fe \u8fdb\u884c \u8c03\u6574 \uff1a","title":"\u8f66\u8f6e \u84dd\u56fe"},{"location":"tuto_content_authoring_vehicles/#_21","text":"\u9996\u5148 \uff0c \u7528\u4e8e \u78b0\u649e \u7f51\u683c \u7684 \u9ed8\u8ba4 \u5706\u67f1 \u67f1\u4f53 \u5706\u67f1\u4f53 \u5177\u6709 \u9ad8 \u591a\u8fb9 \u591a\u8fb9\u5f62 \u6570\u91cf \uff0c \u56e0\u6b64 \u6211\u4eec \u5e94\u8be5 \u5c06 \u5176 \u66ff\u6362 \u4e3a \u4f4e \u591a\u8fb9 \u591a\u8fb9\u5f62 \u7248\u672c \u3002 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u627e\u5230 Content > Carla > Blueprints > Vehicles \u5185 \u7684 CollisionWheel \u7f51\u683c \u3002 \u84dd\u56fe \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \u7684 \u63d2\u69fd \u4e0a \u3002 \u8fd9 \u5c06 \u63d0\u9ad8 \u6027\u80fd \uff0c \u800c \u4e0d\u4f1a \u5bfc\u81f4 \u7269\u7406 \u4eff\u771f \u51fa\u73b0 \u4efb\u4f55 \u660e\u663e \u7684 \u7f3a\u9677 \u3002","title":"\u78b0\u649e \u7f51\u683c"},{"location":"tuto_content_authoring_vehicles/#_22","text":"\u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u6211\u4eec \u8bbe\u7f6e \u8f6e\u80ce \u914d\u7f6e \u3002 \u5728 Content > Carla > Blueprints > Vehicles \u5185 \u627e\u5230 CommonTireConfig \u914d\u7f6e \u5e76 \u5c06 \u5176 \u62d6 \u5230 Tire Config \u84dd\u56fe \u7684 \u90e8\u5206 \u4e0a \u3002 \u5982\u679c \u53cc\u51fb \u84dd\u56fe \u4e2d \u7684 \u8f6e\u80ce \u914d\u7f6e \uff0c \u53ef\u4ee5 \u8c03\u6574 \u6469\u64e6 \u6bd4\u4f8b \uff0c \u53ef\u4ee5 \u4fee\u6539 \u8f66\u8f86 \u7684 \u9053\u8def \u64cd\u63a7 \u884c\u4e3a \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u8bbe\u7f6e \u4e3a 3.5 \uff0c \u8be5\u503c \u9002\u5408 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u8f86 \u4f7f\u7528 \u60c5\u51b5 \u3002 \u4f46\u662f \uff0c \u5982\u679c \u60a8 \u5e0c\u671b \u5bf9 \u5e26\u6709 \u5149\u5934 \u8f6e\u80ce \u7684 \u8d5b\u8f66 \u8fdb\u884c \u5efa\u6a21 \uff0c \u5219 \u8fd9 \u5c06 \u662f \u9700\u8981 \u8c03\u6574 \u7684 \u9002\u5f53 \u53c2\u6570 \u3002","title":"\u8f6e\u80ce \u914d\u7f6e"},{"location":"tuto_content_authoring_vehicles/#_23","text":"\u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \uff0c \u5728 \u4e09\u7ef4 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u6d4b\u91cf \u8f66\u8f6e \u7684 \u76f4\u5f84 \u3002 \u5728 Blender \u4e2d \uff0c \u53ef\u4ee5 \u5728 \u5bf9\u8c61 \u6a21\u5f0f \u4e0b \u6309 n \u6253\u5f00 \u7684 \u5c5e\u6027 \u9762\u677f \u4e2d \u67e5\u770b \u5c3a\u5bf8 \u3002 \u73b0\u5728 \u5c06 \u8fd9\u4e9b \u6570\u5b57 \u63d2\u5165 \u5230 Wheel \u84dd\u56fe \u7684 \u90e8\u5206 \u4e2d \u3002 \u8bf7 \u6ce8\u610f \u534a\u5f84 \u4e3a \u76f4\u5f84 \u7684 \u4e00\u534a \uff0c \u5e76\u4e14 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4ee5 \u5398\u7c73 \u4e3a \u5355\u4f4d \u3002 \u5bf9\u4e8e \u8f66\u8f6e \u8d28\u91cf \uff0c \u6211\u4eec \u5efa\u8bae \u5728 \u4e92\u8054 \u8054\u7f51 \u4e92\u8054\u7f51 \u4e0a \u67e5\u627e \u89c4\u683c \uff0c \u627e\u5230 \u6b63\u786e \u7684 \u8f6e\u80ce \u578b\u53f7 \u6216 \u7c7b\u4f3c \u7684 \u8f6e\u80ce \u578b\u53f7 \u6765 \u4f30\u8ba1 \u6b63\u786e \u7684 \u8d28\u91cf \uff08 \u4ee5 \u5343\u514b \u4e3a \u5355\u4f4d \uff09 \u3002 Affected by handbrake \u5e94 \u68c0\u67e5 \u4e24\u4e2a \u540e\u8f6e \u3002 Steer angle \u5bf9\u4e8e \u4e24\u4e2a \u524d\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u6700\u5927 \u9884\u671f \u8f6c\u5411 \u89d2 \uff0c \u5bf9\u4e8e \u4e24\u4e2a \u540e\u8f6e \u5e94 \u8bbe\u7f6e \u4e3a \u96f6 \u3002","title":"\u8f66\u8f6e \u5c3a\u5bf8"},{"location":"tuto_content_authoring_vehicles/#_24","text":"\u8fd9\u91cc \u7684 \u9ed8\u8ba4 \u9ed8\u8ba4\u503c \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5408\u7406 \u7684 \u8d77\u70b9 \u3002 \u67e5\u770b \u672c \u6307\u5357 \u4ee5 \u8bbe\u7f6e \u9002\u5408 \u60a8 \u8f66\u8f86 \u7c7b\u578b \u7684 \u60ac\u67b6 \u7279\u6027 \u3002","title":"\u60ac\u67b6 \u7279\u6027"},{"location":"tuto_content_authoring_vehicles/#_25","text":"\u5b8c\u6210 Carla \u771f\u5b9e \u8f66\u8f86 \u7684 \u6700\u540e \u4e00\u4e2a \u5143\u7d20 \u662f \u706f \u3001 \u524d\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u7b49 \u3002 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \uff0c \u60a8 \u5e94\u8be5 \u5bf9 \u4e00\u4e9b \u7c7b\u4f3c \u4e8e \u60a8 \u8981 \u590d\u5236 \u7684 \u8f66\u8f86 \u706f \u7684 \u5f62\u72b6 \u8fdb\u884c \u5efa\u6a21 \u3002 \u5bf9\u4e8e \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 \u8f66\u5934 \u5934\u706f \u8f66\u5934\u706f \u6765\u8bf4 \uff0c \u8fd9 \u5c06 \u662f \u6241\u5e73 \u5706\u76d8 \u6216 \u6241\u5e73 \u957f\u65b9 \u957f\u65b9\u4f53 \u7ed3\u6784 \u3002 \u6709\u4e9b \u8f66\u8f86 \u53ef\u80fd \u8fd8 \u914d\u6709 LED \u706f\u6761 \u3002","title":"\u706f"},{"location":"tuto_content_authoring_vehicles/#uv","text":"\u4e0d\u540c \u7c7b\u578b \u7684 \u706f \uff08 \u524d\u706f \u3001 \u95ea\u5149 \u5149\u706f \u95ea\u5149\u706f \u3001 \u5239\u8f66 \u8f66\u706f \u5239\u8f66\u706f \u7b49 \uff09 \u4f7f\u7528 \u7eb9\u7406 \u6765 \u533a\u5206 \u3002 \u60a8 \u9700\u8981 \u5728 \u4e09\u7ef4 \u5efa\u6a21 \u5e94\u7528 \u7a0b\u5e8f \u5e94\u7528\u7a0b\u5e8f \u4e2d \u521b\u5efa UV \u8d34\u56fe \uff0c \u5e76 \u5b9a\u4f4d \u706f\u5149 \u4ee5 \u4e0e \u7eb9\u7406 \u7684 \u76f8\u5173 \u533a\u57df \u5339\u914d \u76f8\u5339\u914d \u3002","title":"UV \u8d34\u56fe"},{"location":"tuto_content_authoring_vehicles/#_26","text":"\u5c06 \u706f\u5149 \u7f51\u683c \u5bfc\u5165 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 - \u5bfc\u5165 \u706f\u5149 \u7f51\u683c \u540e \uff1a \u5c06 \u7f51\u683c \u7269\u4f53 \u62d6\u52a8 \u5230 Components \u9762\u677f \u4e2d \u7684 Mesh ( VehicleMesh ) ( Inherited ) \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u989d\u5916 \u7f51\u683c \u5e76 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Collision \u3002 \u5c06 \u78b0\u649e \u9884\u8bbe ( Collision Presets ) \u8bbe\u7f6e \u4e3a NoCollision \u3002 \u9009\u62e9 \u5c42\u6b21 \u7ed3\u6784 \u5c42\u6b21\u7ed3\u6784 \u4e2d \u7684 \u4efb\u4f55 \u706f\u5149 \u7f51\u683c \u3002 \u5728 \u201c \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f ( Details ) \u201d \u9762\u677f \u4e2d \u641c\u7d22 Tag \u5e76 \u6dfb\u52a0 emissive \u6807\u7b7e \u3002","title":"\u5bfc\u5165"},{"location":"tuto_content_authoring_vehicles_materials/","text":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u6750\u6599 \u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002 \u5c06 \u6750\u6599 \u5e94\u7528 \u5230 \u60a8 \u7684 \u8f66\u8f86 \u4e0a Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u6a21\u4eff \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u8d28 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u8d28 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \u3002 \u989c\u8272 ( Color ) - \u989c\u8272 \u8bbe\u7f6e \u63a7\u5236 \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a \u900f\u660e \u6d82\u5c42 ( Clear coat ) - \u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u63a7\u5236 \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u201d \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f \u900f\u660e \u6d82\u5c42 \u5f3a\u5ea6 ( Clear Coat Intensity ) \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002 \u7c92\u72b6 \u8868\u9762 ( Orange peel ) - \u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e2d \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u6a59\u76ae \u6548\u679c \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002 \u8584\u7247 ( Flakes ) - \u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u4f7f \u6c7d\u8f66 \u5177\u6709 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u53cd\u5e94 \u5149\u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f \u7070\u5c18 ( Dust ) - \u6c7d\u8f66 \u7684 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u4ece\u800c \u589e\u52a0 \u6cb9\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002","title":"Tuto content authoring vehicles materials"},{"location":"tuto_content_authoring_vehicles_materials/#-","text":"\u5c06 \u8f66\u8f86 \u4f5c\u4e3a \u57fa\u672c \u8d44\u4ea7 \u5bfc\u5165 \u5e76 \u5e03\u7f6e \u597d \u7f51\u683c \u548c \u84dd\u56fe \u540e \uff0c \u60a8 \u73b0\u5728 \u9700\u8981 \u5411 \u8f66\u8f86 \u6dfb\u52a0 \u6750\u8d28 \uff0c \u4ee5 \u4fc3\u8fdb \u865a\u5e7b \u5f15\u64ce \u4e2d \u7684 \u7167\u7247 \u7ea7 \u771f\u5b9e \u5b9e\u611f \u771f\u5b9e\u611f \u6e32\u67d3 \uff0c \u4ece\u800c \u5b9e\u73b0 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u6700\u5927 \u4fdd\u771f \u771f\u5ea6 \u4fdd\u771f\u5ea6 \u3002 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u62e5\u6709 \u5168\u9762 \u7684 \u6750\u8d28 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u521b\u5efa \u9ad8\u5ea6 \u903c\u771f \u7684 \u6750\u8d28 \u3002 \u7136\u800c \uff0c \u8fd9 \u786e\u5b9e \u663e \u7740 \u589e\u52a0 \u4e86 \u8be5 \u8fc7\u7a0b \u7684 \u590d\u6742 \u590d\u6742\u6027 \u3002 \u56e0\u6b64 \uff0c Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u5927\u578b \u6750\u6599 \u539f\u578b \u5e93\u4f9b \u60a8 \u4f7f\u7528 \uff0c \u800c \u65e0\u9700 \u4ece\u5934 \u5f00\u59cb \u4ece\u5934\u5f00\u59cb \u3002","title":"\u5185\u5bb9 \u521b\u4f5c - \u8f66\u8f86 \u6750\u6599"},{"location":"tuto_content_authoring_vehicles_materials/#_1","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u79cd \u7528\u4e8e \u590d\u5236 \u8f66\u8f86 \u5149\u6cfd \u8868\u9762 \u7684 \u539f\u578b \u6750\u6599 \uff0c \u53ef\u4ee5 \u6a21\u4eff \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u8f66\u8f86 \u55b7\u6f06 \u5de5\u4f5c \u548c \u529f\u80fd \u3002 \u6253\u5f00 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u5e76 \u5728 \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \uff0c \u627e\u5230 Content > Carla > Static > GenericMaterials > 00 _ MastersOpt \u3002 \u57fa\u672c \u6750\u8d28 \u79f0\u4e3a M _ CarPaint _ Master \u3002 \u53f3\u952e \u5355\u51fb \u8be5 \u6750\u8d28 \u5e76 \u4ece \u4e0a\u4e0b \u4e0b\u6587 \u4e0a\u4e0b\u6587 \u6750\u8d28 \u4e2d \u9009\u62e9 Create Material Instance \u3002 \u4e3a \u5176 \u547d\u540d \u5e76 \u5c06 \u5176 \u79fb\u52a8 \u5230 \u5b58\u50a8 \u65b0 \u8f66\u8f86 \u5185\u5bb9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5728 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \uff0c \u5c06 \u89c2\u5bdf \u5219 \u4f1a \u79fb\u52a8 \u5230 \u9760\u8fd1 \u5730\u677f \u7684 \u4e00\u70b9 \uff0c \u7136\u540e \u5c06 \u8f66\u8f86 \u7684 \u9aa8\u67b6 \u7f51\u683c \u7269\u4f53 \u4ece \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u62d6 \u5230 \u573a\u666f \u4e2d \uff0c \u8f66\u8f86 \u7684 \u8f66\u8eab \u73b0\u5728 \u5c06 \u51fa\u73b0 \u5728 \u90a3\u91cc \u3002 \u73b0\u5728 \uff0c \u5728 \u53f3\u4fa7 \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u9762\u677f \u4e2d \uff0c \u5c06 \u65b0 \u6750\u8d28 \u5b9e\u4f8b \u62d6\u52a8 \u5230 Materials \u90e8\u5206 \u7684 Element 0 \u4f4d\u7f6e \u3002 \u60a8 \u5c06 \u770b\u5230 \u8f66\u8eab \u5448\u73b0 \u73b0\u51fa \u5448\u73b0\u51fa \u4e00\u79cd \u65b0 \u7684 \u7070\u8272 \u3001 \u6709 \u5149\u6cfd \u7684 \u6750\u6599 \u7279\u6027 \u3002 \u53cc\u51fb \u5185\u5bb9 \u6d4f\u89c8 \u6d4f\u89c8\u5668 \u4e2d \u7684 \u6750\u8d28 \uff0c \u6211\u4eec \u5c31 \u53ef\u4ee5 \u5f00\u59cb \u7f16\u8f91 \u53c2\u6570 \u4e86 \u3002 \u8fd9\u91cc \u6709 \u8bb8\u591a \u53c2\u6570 \u53ef\u4ee5 \u6539\u53d8 \u5404\u79cd \u5c5e\u6027 \uff0c \u8fd9\u4e9b \u5c5e\u6027 \u5bf9\u4e8e \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u7684 \u6c7d\u8f66 \u55b7\u6f06 \u5de5\u4f5c \u975e\u5e38 \u91cd\u8981 \u3002 \u6700 \u91cd\u8981 \u7684 \u53c2\u6570 \u5982\u4e0b \u3002 \u989c\u8272 ( Color ) - \u989c\u8272 \u8bbe\u7f6e \u63a7\u5236 \u6c7d\u8f66 \u7684 \u6574\u4f53 \u989c\u8272 \u3002 \u57fa\u8272 \u53ea\u662f \u6c7d\u8f66 \u7684 \u4e3b\u8981 \u989c\u8272 \uff0c \u5b83 \u5c06 \u63a7\u5236 \u6574\u4f53 \u989c\u8272 \uff1a \u900f\u660e \u6d82\u5c42 ( Clear coat ) - \u900f\u660e \u6d82\u5c42 \u8bbe\u7f6e \u63a7\u5236 \u9970\u9762 \u7684 \u5916\u89c2 \u53ca\u5176 \u5bf9\u5149 \u7684 \u53cd\u5e94 \u3002 \u7c97\u7cd9 \u7c97\u7cd9\u5ea6 \u4f7f\u7528 \u7eb9\u7406 \u5c06 \u7f3a\u9677 \u5e94\u7528 \u5230 \u8f66\u8f86 \u8868\u9762 \uff0c \u4ee5 \u66f4 \u9ad8 \u7684 \u503c \u6563\u5c04 \u66f4 \u591a \u7684 \u5149 \uff0c \u4ee5 \u521b\u5efa \u54d1\u5149 \u5916\u89c2 \u3002 \u5efa\u8bae \u8fdb\u884c \u5fae\u5999 \u7684 \u8c03\u6574 \u548c \u8f83 \u4f4e \u7684 \u503c \u4ee5 \u83b7\u5f97 \u903c\u771f \u7684 \u5916\u89c2 \u3002 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6c7d\u8f66 \u55b7\u6f06 \u4f5c\u4e1a \u662f \u5149\u6ed1 \u4e14 \u53cd\u5149 \u7684 \uff0c \u4f46\u662f \uff0c \u8fd9\u79cd \u6548\u679c \u53ef\u80fd \u66f4 \u5e7f\u6cdb \u5730 \u7528\u4e8e \u5bf9 \u5b9a\u5236 \u55b7\u6f06 \u4f5c\u4e1a \u7684 \u4e13\u4e1a \u54d1\u5149 \u9970\u9762 \u8fdb\u884c \u5efa\u6a21 \u3002 \u63a7\u5236 \u6c7d\u8f66 \u201c \u5149\u6cfd \u5149\u6cfd\u5ea6 \u201d \u7684 \u4e00\u4e2a \u91cd\u8981 \u53c2\u6570 \u662f \u900f\u660e \u6d82\u5c42 \u5f3a\u5ea6 ( Clear Coat Intensity ) \u3002 \u63a5\u8fd1 1 \u7684 \u9ad8\u503c \u5c06 \u4f7f \u6d82\u5c42 \u95ea\u4eae \u4e14 \u6709 \u5149\u6cfd \u3002 \u7c92\u72b6 \u8868\u9762 ( Orange peel ) - \u771f\u5b9e \u6c7d\u8f66 \u7684 \u9970\u9762 \uff08 \u7279\u522b \u662f \u9762\u5411 \u4e00\u822c \u5e02\u573a \u7684 \u6279\u91cf \u751f\u4ea7 \u6279\u91cf\u751f\u4ea7 \u7684 \u6c7d\u8f66 \uff09 \u5f80\u5f80 \u5b58\u5728 \u7f3a\u9677 \uff0c \u8868\u73b0 \u4e3a \u6cb9\u6f06 \u4e2d \u7684 \u8f7b\u5fae \u6ce2\u7eb9 \u3002 \u6a59\u76ae \u6548\u679c \u4eff\u771f \u4e86 \u8fd9 \u4e00\u70b9 \uff0c \u4f7f \u6c7d\u8f66 \u770b\u8d77 \u8d77\u6765 \u770b\u8d77\u6765 \u66f4 \u771f\u5b9e \u3002 \u8584\u7247 ( Flakes ) - \u6709\u4e9b \u6c7d\u8f66 \u7684 \u6cb9\u6f06 \u5de5\u4f5c \u4e2d \u5305\u542b \u5176\u4ed6 \u6750\u6599 \u7684 \u8584\u7247 \uff0c \u4f8b\u5982 \u91d1\u5c5e \u6216 \u9676\u74f7 \uff0c \u4ee5 \u4f7f \u6c7d\u8f66 \u5177\u6709 metallic \u6216 pearlescant \u5916\u89c2 \uff0c \u589e\u52a0 \u989d\u5916 \u7684 \u95ea\u5149 \u548c \u53cd\u5c04 \uff0c \u4ee5\u6709 \u5438\u5f15 \u5f15\u529b \u5438\u5f15\u529b \u7684 \u65b9\u5f0f \u4e0e \u53cd\u5e94 \u5149\u53cd\u5e94 \u3002 \u8584\u7247 \u53c2\u6570 \u5141\u8bb8 Carla \u4eff\u771f \u8fd9 \u4e00\u70b9 \u3002 \u4e3a\u4e86 \u6a21\u4eff \u91d1\u5c5e \u9970\u9762 \uff0c \u5b83\u4f1a \u662f \u7070\u5c18 ( Dust ) - \u6c7d\u8f66 \u7684 \u8f66 \u8eab\u4e0a \u7ecf\u5e38 \u4f1a \u79ef\u805a \u6cb9\u8102 \u548c \u7070\u5c18 \uff0c \u4ece\u800c \u589e\u52a0 \u6cb9\u6f06 \u7684 \u8d28\u611f \uff0c \u5f71\u54cd \u5176 \u53cd\u5c04 \u5149\u7ebf \u7684 \u65b9\u5f0f \u3002 \u7070\u5c18 \u53c2\u6570 \u5141\u8bb8 \u60a8 \u5728 \u6d82\u5c42 \u4e0a \u6dfb\u52a0 \u7834\u574f \u5757 \uff0c \u4ee5 \u4eff\u771f \u7c98\u9644 \u5728 \u6cb9\u6f06 \u4e0a \u7684 \u5f02\u7269 \u3002","title":"\u5c06 \u6750\u6599 \u5e94\u7528 \u5230 \u60a8 \u7684 \u8f66\u8f86 \u4e0a"},{"location":"tuto_first_steps/","text":"\u5b66\u4e60 Carla \u7684 \u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u662f \u4e00\u4e2a \u7efc\u5408 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7528\u4e8e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 ( Autonomous Driving , AD ) \u548c \u5176\u4ed6 \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u751f\u6210 \u5408\u6210 \u8bad\u7ec3 \u6570\u636e \u3002 Carla \u4eff\u771f \u9ad8\u5ea6 \u771f\u5b9e \u7684 \u73af\u5883 \uff0c \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u4e2d \u7684 \u57ce\u9547 \u3001 \u57ce\u5e02 \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ee5\u53ca \u5360\u636e \u8fd9\u4e9b \u9a7e\u9a76 \u7a7a\u95f4 \u7684 \u8f66\u8f86 \u548c \u5176\u4ed6 \u7269\u4f53 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd8 \u53ef \u7528\u4f5c \u8bc4\u4f30 \u548c \u6d4b\u8bd5 \u73af\u5883 \u6d4b\u8bd5\u73af\u5883 \u3002 \u60a8 \u53ef\u4ee5 \u90e8\u7f72 \u5728 \u4eff\u771f \u4e2d \u8bad\u7ec3 \u8fc7 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u6765 \u6d4b\u8bd5 \u548c \u8bc4\u4f30 \u5176 \u6027\u80fd \u548c \u5b89\u5168 \u5b89\u5168\u6027 \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u5728 \u4eff\u771f \u73af\u5883 \u7684 \u5b89\u5168 \u8303\u56f4 \u5185 \uff0c \u4e0d\u4f1a \u5bf9 \u786c\u4ef6 \u6216 \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u9020\u6210 \u98ce\u9669 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd Carla \u4e2d \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u4ece \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5230 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u751f\u6210 \u7528\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u672c \u6559\u7a0b \u65e8\u5728 \u91cd\u70b9 \u4ecb\u7ecd \u7ec6\u8282 \uff0c \u5e76 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9ad8\u6548 \u5730 \u4ecb\u7ecd \u4f7f\u7528 Carla \u751f\u6210 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u5173\u952e \u6b65\u9aa4 \u5173\u952e\u6b65\u9aa4 \u3002 \u6709\u5173 \u5de5\u4f5c \u6d41\u7a0b \u6bcf\u4e2a \u90e8\u5206 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u84dd \u56fe\u5e93 \u4e2d \u53ef\u7528 \u7684 \u591a\u79cd \u8f66\u8f86 \u6216 \u53ef\u7528 \u7684 \u66ff\u4ee3 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u8bf7 \u67e5\u9605 \u6587\u672c \u4e2d \u7684 \u94fe\u63a5 \u6216 \u6d4f\u89c8 \u5de6\u4fa7 \u83dc\u5355 \u3002 \u542f\u52a8 Carla \u52a0\u8f7d \u5730\u56fe \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bfc\u822a \u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86 \u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86 \u9009\u62e9 \u4f60 \u7684 \u5730\u56fe \u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86 \u542f\u52a8 Carla \u5e76 \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u4f7f\u7528 Windows \u4e2d \u7684 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u6216 Linux \u4e2d \u7684 shell \u811a\u672c \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u3002 \u6309\u7167 Linux \u548c Windows \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \uff1a cd / carla / root . / CarlaUE4 . sh \u8981 \u901a\u8fc7 Python API \u64cd\u4f5c Carla \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 \u5f00\u653e \u7aef\u53e3 \u5c06 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6253\u5f00 \u4e00\u4e2a Python \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 \u521b\u5efa \u4e00\u4e2a \u65b0 \u811a\u672c \uff0c \u7136\u540e \u5c06 \u4ee5\u4e0b \u4ee3\u7801 \u6dfb\u52a0 \u5230 \u811a\u672c \u7684 \u5f00\u5934 \u6216 main \u51fd\u6570 \u4e2d \uff1a import carla import random # \u94fe\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7528\u4e8e \u7ef4\u62a4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u8fde\u63a5 \uff0c \u5e76 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u5e94\u7528 \u547d\u4ee4 \u4ee5\u53ca \u52a0\u8f7d \u6216 \u5bfc\u51fa \u6570\u636e \u7684 \u529f\u80fd \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u52a0\u8f7d \u66ff\u4ee3 \u5730\u56fe \u6216 \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u5730\u56fe \uff08 \u91cd\u7f6e \u4e3a \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \uff09 \u3002 \u7aef\u53e3 \u53ef\u4ee5 \u9009\u62e9 \u4efb\u4f55 \u53ef\u7528 \u7684 \u7aef\u53e3 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 2000 \uff0c \u60a8 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u9009\u62e9 \u4e0e localhost \u4e0d\u540c \u7684 \u4e3b\u673a \u3002 \u8fd9\u6837 \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5728 \u8054\u7f51 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \uff0c \u800c python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u4ece \u4e2a\u4eba \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u533a\u5206 \u7528\u4e8e \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 GPU \u548c \u7528\u4e8e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8bad\u7ec3 \u7684 GPU \u7279\u522b \u6709\u7528 \uff0c \u8fd9 \u4e24\u8005 \u5bf9 \u56fe\u5f62 \u786c\u4ef6 \u7684 \u8981\u6c42 \u90fd \u5f88 \u9ad8 \u3002 \u7b14\u8bb0 \u4ee5\u4e0b \u5047\u8bbe Carla \u5728 \u9ed8\u8ba4 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u7684 \u67d0\u4e9b \u4ee3\u7801 \u53ef\u80fd \u65e0\u6cd5 \u6309 \u9884\u671f \u5de5\u4f5c \u3002 \u52a0\u8f7d \u5730\u56fe \u5728 Carla API \u4e2d \uff0c \u4e16\u754c \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u4eff\u771f \u7684 \u6240\u6709 \u5143\u7d20 \u7684 \u8bbf\u95ee \uff0c \u5305\u62ec \u5730\u56fe \u3001 \u5730\u56fe \u5185 \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u5e38 \u52a0\u8f7d \u9ed8\u8ba4 \u5730\u56fe \uff08 \u901a\u5e38 \u4e3a Town10 \uff09 \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5907\u7528 \u5730\u56fe \u542f\u52a8 Carla \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b config . py \u811a\u672c \uff1a . / config . py -- map Town05 \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world \u5bf9\u8c61 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u52a0\u8f7d \u5730\u56fe \uff1a client . load _ world ( ' Town05 ' ) \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 Carla \u5730\u56fe \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bfc\u822a \u89c2\u5bdf \u89c2\u5bdf\u8005 \u662f \u4eff\u771f \u7684 \u89c6\u56fe \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u5728 \u8fde\u63a5 \u5c4f\u5e55 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 \uff0c \u89c2\u4f17 \u4f1a \u5728 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u4e2d \u6253\u5f00 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a - RenderOffScreen \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u60a8 \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u719f\u6089 \u5df2 \u52a0\u8f7d \u7684 \u5730\u56fe \uff0c \u5e76 \u67e5\u770b \u6240 \u505a \u7684 \u4efb\u4f55 \u66f4\u6539 \u7684 \u7ed3\u679c \uff0c \u4f8b\u5982 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u66f4\u6539 \u5929\u6c14 \u3001 \u6253\u5f00 / \u5173\u95ed \u5730\u56fe \u7684 \u5404\u4e2a \u56fe\u5c42 \u4ee5\u53ca \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u63a7\u5236 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u7684 \u4fef\u4ef0 \u548c \u504f\u822a \uff0c \u5e76 \u4f7f\u7528 QWE - ASD \u952e \u79fb\u52a8 \u89c2\u4f17 \uff0c \u8ba9 \u89c2\u4f17 \u98de \u5230 \u4e16\u754c \u5404\u5730 \u4e16\u754c\u5404\u5730 \uff1a Q - \u5411\u4e0a \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u9876\u90e8 \u8fb9\u7f18 \uff09 E - \u5411\u4e0b \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u4e0b \u8fb9\u7f18 \uff09 W - \u5411\u524d \u79fb\u52a8 S - \u5411 \u540e \u79fb\u52a8 A - \u5411 \u5de6 \u79fb\u52a8 D - \u5411 \u53f3 \u79fb\u52a8 \u5de6\u952e \u5355\u51fb \u5e76 \u5728 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7a97\u53e3 \u4e2d \u4e0a\u4e0b \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u4fef\u4ef0 \uff0c \u5de6\u53f3 \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u504f\u822a \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53ca\u5176 \u5c5e\u6027 \u53ef\u4ee5 \u901a\u8fc7 Python API \u8bbf\u95ee \u548c \u64cd\u4f5c \uff1a # \u83b7\u53d6 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bf9\u8c61 spectator = world . get _ spectator ( ) # \u901a\u8fc7 \u53d8\u6362 \u83b7\u5f97 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c transform = spectator . get _ transform ( ) location = transform . location rotation = transform . rotation # \u7528\u7a7a \u53d8\u6362 \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( carla . Transform ( ) ) # \u8fd9 \u5c06 \u8bbe\u7f6e \u89c2\u4f17 \u5728 \u5730\u56fe \u7684 \u539f\u70b9 \uff0c 0 \u5ea6 \u4fef\u4ef0 \uff0c \u504f\u822a \u548c \u6eda\u52a8 - \u4e00\u4e2a \u5f88 \u597d \u7684 \u65b9\u5f0f \u6765 \u5b9a\u4f4d \u81ea\u5df1 \u5728 \u5730\u56fe \u4e0a \u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u5730\u56fe \u5e76\u4e14 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5df2 \u542f\u52a8 \u5e76 \u8fd0\u884c \uff0c \u6211\u4eec \u73b0\u5728 \u9700\u8981 \u7528 \u4e00\u4e9b \u8f66\u8f86 \u586b\u5145 \u6211\u4eec \u7684 \u4eff\u771f \uff0c \u4ee5 \u4eff\u771f \u5177\u6709 \u4ea4\u901a \u548c \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u6216\u975e \u73a9\u5bb6 \u89d2\u8272 \u7684 \u771f\u5b9e \u73af\u5883 \u3002 \u8981 \u751f\u6210 \u8f66\u8f86 \uff0c \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u6211\u4eec \u60f3\u8981 \u7684 \u8f66\u8f86 \u3002 # \u83b7\u53d6 \u84dd \u56fe\u5e93 \u548c \u8f66\u8f86 \u84dd\u56fe \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 vehicle _ blueprints = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u84dd\u56fe \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u5730\u56fe \u4e0a \u627e\u5230 \u4e00\u4e9b \u5408\u9002 \u7684 \u5730\u70b9 \u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 \u4e3a\u6b64 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u63d0\u4f9b \u4e86 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u5730\u56fe \u7684 \u9053\u8def \u4e0a \u3002 # \u83b7\u5f97 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u5728 \u6bcf\u4e2a \u751f\u6210 \u70b9 \u968f\u673a \u751f\u6210 50 \u8f86\u8f66 \uff0c \u6211\u4eec \u4ece \u84dd \u56fe\u5e93 \u4e2d \u968f\u673a \u9009\u62e9 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 for i in range ( 0 , 50 ) : world . try _ spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u73b0\u5728 \u6211\u4eec \u8fd8 \u5e94\u8be5 \u6dfb\u52a0 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4f5c\u4e3a \u4eff\u771f \u7684 \u4e2d\u5fc3 \u4e2d\u5fc3\u70b9 \u3002 \u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u6211\u4eec \u9700\u8981 \u4eff\u771f \u81ea\u4e3b \u4ee3\u7406 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u7528 Carla \u7684 \u8bf4\u6cd5 \uff0c \u6211\u4eec \u7ecf\u5e38 \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u3002 ego _ vehicle = world . spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u9664\u4e86 \u8f66\u8f86 \u4e4b\u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u884c\u4eba \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \uff0c \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u9a7e\u9a76 \u573a\u666f \u3002 \u5728 Carla \u672f\u8bed \u4e2d \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u88ab \u79f0\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u73b0\u4ee3 \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u901a\u8fc7 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u7406\u89e3 \u548c \u89e3\u91ca \u5176 \u73af\u5883 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5305\u62ec \u5149\u5b66 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u5149\u6d41 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u7b49 \u3002 Carla \u5185\u7f6e \u4e86 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6a21\u578b \uff0c \u7528\u4e8e \u521b\u5efa \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u4e5f \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u56fa\u5b9a \u5b9a\u70b9 \u56fa\u5b9a\u70b9 \u6765 \u5efa\u6a21 \uff0c \u4f8b\u5982 \u95ed\u8def \u7535\u89c6 \u95ed\u8def\u7535\u89c6 \u6444\u50cf \u6444\u50cf\u673a \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u5c06 \u5728 \u81ea\u6211 \u8f66\u8f86 \u4e0a \u5b89\u88c5 \u4e00\u4e2a \u6807\u51c6 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u8bb0\u5f55 \u4e00\u4e9b \u89c6\u9891 \u6570\u636e \uff1a # \u521b\u5efa \u4e00\u4e2a \u53d8\u6362 \uff0c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u8f66\u8f86 \u7684 \u9876\u90e8 camera _ init _ trans = carla . Transform ( carla . Location ( z = 1.5 ) ) # \u901a\u8fc7 \u5b9a\u4e49 \u5176 \u5c5e\u6027 \u7684 \u84dd\u56fe \u6765 \u521b\u5efa \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u751f\u6210 \u76f8\u673a \u5e76 \u5c06 \u5176 \u8fde\u63a5 \u5230 \u6211\u4eec \u7684 \u81ea\u6211 \u8f66\u8f86 \u4e0a camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) \u4e00\u65e6 \u6211\u4eec \u751f\u6210 \u4e86 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 listen ( ) \u65b9\u6cd5 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u5f55\u5236 \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b9a\u4e49 \u5982\u4f55 \u5904\u7406 \u6570\u636e \u7684 \u56de\u8c03 \u4f5c\u4e3a \u53c2\u6570 \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u6d41\u5f0f \u4f20\u8f93 \u5230 \u53e6 \u4e00\u4e2a \u7a0b\u5e8f \u6216 \u5c06 \u5176 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 lambda \u51fd\u6570 \u4f5c\u4e3a \u56de\u8c03 \u5c06 \u6570\u636e \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a # \u7528 PyGame \u56de\u8c03 \u542f\u52a8 \u76f8\u673a camera . listen ( lambda image : image . save _ to _ disk ( ' out / % 06d . png ' % image . frame ) ) \u8fd9\u4f1a \u5c06 \u6570\u636e \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6839\u636e \u4eff\u771f \u5e27 \u7f16\u53f7 \u547d\u540d \u7684 PNG \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4fdd\u5b58 \u5230 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6709 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u7814\u7a76 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9635\u5217 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u3002 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86 \u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u5c06 \u4ea4\u901a \u548c \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \u5e76 \u5f00\u59cb \u8bb0\u5f55 \u6444\u50cf \u6444\u50cf\u673a \u6570\u636e \uff0c \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u662f Carla \u7684 \u4e00\u4e2a \u7ec4\u4ef6 \uff0c \u5b83 \u63a7\u5236 \u8f66\u8f86 \u5728 \u4eff\u771f \u5185 \u7684 \u5730\u56fe \u9053\u8def \u4e0a \u81ea\u52a8 \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u60ef\u4f8b \u5e76 \u8868\u73b0 \u5f97 \u50cf \u771f\u6b63 \u7684 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 world . get _ actors ( ) \u65b9\u6cd5 \u627e\u5230 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5bf9 \u6240\u6709 \u8f66\u8f86 \u8fdb\u884c \u8fc7\u6ee4 \u3002 \u7136\u540e \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8be5 set _ autopilot ( ) \u65b9\u6cd5 \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u79fb\u4ea4 \u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 for vehicle in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : vehicle . set _ autopilot ( True ) \u73b0\u5728 \u60a8 \u7684 \u4eff\u771f \u6b63\u5728 \u8fd0\u884c \uff0c \u6709 \u8bb8\u591a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u5e76\u4e14 \u6444\u50cf \u6444\u50cf\u673a \u8bb0\u5f55 \u5176\u4e2d \u4e00\u8f86 \u8f66\u8f86 \u7684 \u6570\u636e \u3002 \u7136\u540e \uff0c \u8be5 \u6570\u636e \u53ef \u7528\u4e8e \u63d0\u4f9b \u673a\u5668 \u5b66\u4e60 \u7b97\u6cd5 \u6765 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u3002 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d41\u91cf \u884c\u4e3a \u7684 \u529f\u80fd \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4eff\u771f \u7684 \u6700 \u57fa\u672c \u53ef\u80fd \u8bbe\u7f6e \uff0c \u73b0\u5728 \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u4e86\u89e3 \u6709\u5173 \u53ef \u7528\u4e8e \u751f\u6210 \u6570\u636e \u7684 \u8bb8\u591a \u989d\u5916 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6587\u6863 \uff0c \u4ee5\u53ca Carla \u7684 \u8bb8\u591a \u5176\u4ed6 \u529f\u80fd \uff0c \u8fd9\u4e9b \u529f\u80fd \u53ef\u4ee5 \u4f7f \u60a8 \u7684 \u4eff\u771f \u66f4\u52a0 \u8be6\u7ec6 \u548c \u66f4 \u591a \u5b9e\u9645 \u7684 \u3002 \u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86 \u81ea\u6211 \u8f66\u8f86 \u662f \u4f7f\u7528 Carla \u65f6 \u9700\u8981 \u7262\u8bb0 \u7684 \u4e00\u4e2a \u91cd\u8981 \u6982\u5ff5 \u3002 \u81ea\u6211 \u8f66\u8f86 \u662f \u6307 \u5c06 \u6210\u4e3a \u4eff\u771f \u7126\u70b9 \u7684 \u8f66\u8f86 \u3002 \u5728 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 CARLA \u7528\u4f8b \u4e2d \uff0c \u5b83 \u53ef\u80fd \u662f \u60a8 \u5c06 \u8fde\u63a5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f66\u8f86 \u548c / \u6216 \u60a8 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u673a\u5668 \u5b66\u4e60 \u5806\u6808 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5f88 \u91cd\u8981 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e00\u4e9b \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u9ad8 \u4eff\u771f \u6548\u7387 \u7684 \u4eff\u771f \u64cd\u4f5c \u7684 \u57fa\u7840 \uff0c \u4f8b\u5982 \uff1a \u52a0\u8f7d \u5927\u578b \u5730\u56fe \u7684 \u5730\u56fe \u56fe\u5757 : \u5927\u578b \u5730\u56fe \uff08 \u5982 Town 12 \uff09 \u7531 \u56fe\u5757 \u7ec4\u6210 \uff0c \u4ec5 \u5728 \u9700\u8981 \u63d0\u9ad8 Carla \u6027\u80fd \u65f6\u624d \u52a0\u8f7d \u3002 \u81ea\u6211 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u51b3\u5b9a \u4e86 \u4f7f\u7528 \u54ea\u4e9b \u56fe\u5757 \u3002 \u53ea\u6709 \u9760\u8fd1 \u6700\u9760\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \u624d \u4f1a \u88ab \u52a0\u8f7d \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : \u5982\u679c \u60a8 \u7684 \u4eff\u771f \u5305\u542b \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5927\u91cf \u8f66\u8f86 \uff0c \u5219 \u8ba1\u7b97 \u6240\u6709 \u8fd9\u4e9b \u8f66\u8f86 \u7684 \u7269\u7406 \u7269\u7406\u91cf \u5728 \u8ba1\u7b97 \u4e0a \u975e\u5e38 \u6602\u8d35 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u4f7f \u7269\u7406 \u8ba1\u7b97 \u4ec5\u9650 \u9650\u4e8e \u4ec5\u9650\u4e8e \u81ea\u6211 \u8f66\u8f86 \u9644\u8fd1 \u7684 \u8f66\u8f86 \uff0c \u4ece\u800c \u8282\u7701 \u8ba1\u7b97 \u8d44\u6e90 \u8ba1\u7b97\u8d44\u6e90 \u3002 \u8981 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u65f6 \u8bbe\u7f6e role _ name \u8f66\u8f86 carla . Actor \u5bf9\u8c61 \u84dd\u56fe \u7684 \u5c5e\u6027 \uff1a ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . lincoln . mkz _ 2020 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' hero ' ) ego _ vehicle = world . spawn _ actor ( ego _ bp , random . choice ( spawn _ points ) ) \u9009\u62e9 \u4f60 \u7684 \u5730\u56fe Carla \u9644\u5e26 \u4e86 \u51e0\u5f20 \u9884\u5236 \u5730\u56fe \uff0c \u4e13\u6ce8 \u4e8e \u63d0\u4f9b \u591a\u79cd \u529f\u80fd \u3002 \u8fd9\u4e9b \u5730\u56fe \u5448\u73b0 \u4e86 \u57ce\u5e02 \u3001 \u4e61\u6751 \u548c \u4f4f\u5b85 \u7b49 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u73af\u5883 \u3002 \u8fd8\u6709 \u4e0d\u540c \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u548c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u9053\u8def \u5e03\u5c40 \uff0c \u4ece \u65e0 \u6807\u8bb0 \u7684 \u4e61\u6751 \u9053\u8def \u5230 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u6d4f\u89c8 \u76ee\u5f55 \u6216 \u4e0b\u8868\u4e2d \u7684 \u5730\u56fe \u6307\u5357 \u3002 \u57ce\u9547 \u6982\u62ec \u57ce\u9547 01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 \u57ce\u9547 02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 \u57ce\u9547 03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 \u57ce\u9547 04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 \u57ce\u9547 05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 \u57ce\u9547 06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u57ce\u9547 08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 \u57ce\u9547 11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u57ce\u9547 12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 \u57ce\u9547 13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 \u57ce\u9547 15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 Carla \u5b89\u88c5 \u4e2d \u7684 \u53ef\u7528 \u5730\u56fe \uff1a client . get _ available _ maps ( ) \u8fd9 \u5c06 \u5305\u62ec \u60a8 \u81ea\u5df1 \u6784\u5efa \u6216 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u5f53 \u60a8 \u9009\u62e9 \u5730\u56fe \u65f6 \uff0c \u8bf7 \u50cf \u8fd9\u6837 \u52a0\u8f7d \u5b83 \uff1a client . load _ world ( ' Town03 _ Opt ' ) \u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86 Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u8f66\u8f86 \u5e93 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u7684 \u4eff\u771f \u5145\u6ee1 \u4ea4\u901a \u3002 \u6d4f\u89c8 Carla \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \u578b\u53f7 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fc7\u6ee4 \u84dd \u56fe\u5e93 \u6765 \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u7684 \u8f66\u8f86 \u84dd\u56fe \u3002 for bp in world . get _ blueprint _ library ( ) . filter ( ' vehicle ' ) : print ( bp . id )","title":"\u7b2c\u4e00\u6b65"},{"location":"tuto_first_steps/#carla","text":"Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u662f \u4e00\u4e2a \u7efc\u5408 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u7528\u4e8e \u4e3a \u81ea\u52a8 \u9a7e\u9a76 ( Autonomous Driving , AD ) \u548c \u5176\u4ed6 \u673a\u5668 \u673a\u5668\u4eba \u5e94\u7528 \u751f\u6210 \u5408\u6210 \u8bad\u7ec3 \u6570\u636e \u3002 Carla \u4eff\u771f \u9ad8\u5ea6 \u771f\u5b9e \u7684 \u73af\u5883 \uff0c \u4eff\u771f \u73b0\u5b9e \u4e16\u754c \u4e2d \u7684 \u57ce\u9547 \u3001 \u57ce\u5e02 \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u4ee5\u53ca \u5360\u636e \u8fd9\u4e9b \u9a7e\u9a76 \u7a7a\u95f4 \u7684 \u8f66\u8f86 \u548c \u5176\u4ed6 \u7269\u4f53 \u3002 Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u8fd8 \u53ef \u7528\u4f5c \u8bc4\u4f30 \u548c \u6d4b\u8bd5 \u73af\u5883 \u6d4b\u8bd5\u73af\u5883 \u3002 \u60a8 \u53ef\u4ee5 \u90e8\u7f72 \u5728 \u4eff\u771f \u4e2d \u8bad\u7ec3 \u8fc7 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u6765 \u6d4b\u8bd5 \u548c \u8bc4\u4f30 \u5176 \u6027\u80fd \u548c \u5b89\u5168 \u5b89\u5168\u6027 \uff0c \u6240\u6709 \u8fd9\u4e9b \u90fd \u5728 \u4eff\u771f \u73af\u5883 \u7684 \u5b89\u5168 \u8303\u56f4 \u5185 \uff0c \u4e0d\u4f1a \u5bf9 \u786c\u4ef6 \u6216 \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u9020\u6210 \u98ce\u9669 \u3002 \u5728 \u672c \u6559\u7a0b \u4e2d \uff0c \u6211\u4eec \u5c06 \u4ecb\u7ecd Carla \u4e2d \u7684 \u6807\u51c6 \u5de5\u4f5c \u6d41\u7a0b \uff0c \u4ece \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u548c \u8fde\u63a5 \u5ba2\u6237 \u5ba2\u6237\u7aef \uff0c \u5230 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u751f\u6210 \u7528\u4e8e \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u672c \u6559\u7a0b \u65e8\u5728 \u91cd\u70b9 \u4ecb\u7ecd \u7ec6\u8282 \uff0c \u5e76 \u5c3d\u53ef \u53ef\u80fd \u5c3d\u53ef\u80fd \u9ad8\u6548 \u5730 \u4ecb\u7ecd \u4f7f\u7528 Carla \u751f\u6210 \u673a\u5668 \u5b66\u4e60 \u8bad\u7ec3 \u6570\u636e \u7684 \u5173\u952e \u6b65\u9aa4 \u5173\u952e\u6b65\u9aa4 \u3002 \u6709\u5173 \u5de5\u4f5c \u6d41\u7a0b \u6bcf\u4e2a \u90e8\u5206 \u7684 \u66f4 \u591a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff0c \u4f8b\u5982 \u84dd \u56fe\u5e93 \u4e2d \u53ef\u7528 \u7684 \u591a\u79cd \u8f66\u8f86 \u6216 \u53ef\u7528 \u7684 \u66ff\u4ee3 \u7c7b\u578b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u8bf7 \u67e5\u9605 \u6587\u672c \u4e2d \u7684 \u94fe\u63a5 \u6216 \u6d4f\u89c8 \u5de6\u4fa7 \u83dc\u5355 \u3002 \u542f\u52a8 Carla \u52a0\u8f7d \u5730\u56fe \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bfc\u822a \u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272 \u6dfb\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86 \u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86 \u9009\u62e9 \u4f60 \u7684 \u5730\u56fe \u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86","title":"\u5b66\u4e60 Carla \u7684 \u7b2c\u4e00\u6b65"},{"location":"tuto_first_steps/#carla_1","text":"\u53ef\u4ee5 \u4f7f\u7528 Windows \u4e2d \u7684 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u6216 Linux \u4e2d \u7684 shell \u811a\u672c \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \u3002 \u6309\u7167 Linux \u548c Windows \u7684 \u5b89\u88c5 \u8bf4\u660e \u8fdb\u884c \u64cd\u4f5c \uff0c \u7136\u540e \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u542f\u52a8 Carla \uff1a cd / carla / root . / CarlaUE4 . sh \u8981 \u901a\u8fc7 Python API \u64cd\u4f5c Carla \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 \u5f00\u653e \u7aef\u53e3 \u5c06 Python \u5ba2\u6237 \u5ba2\u6237\u7aef \u8fde\u63a5 \u5230 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 \u5ba2\u6237 \u5ba2\u6237\u7aef \u901a\u8fc7 \u5ba2\u6237 \u5ba2\u6237\u7aef \u548c \u4e16\u754c \u5bf9\u8c61 \u63a7\u5236 \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u6253\u5f00 \u4e00\u4e2a Python \u7b14\u8bb0 \u7b14\u8bb0\u672c \u6216 \u521b\u5efa \u4e00\u4e2a \u65b0 \u811a\u672c \uff0c \u7136\u540e \u5c06 \u4ee5\u4e0b \u4ee3\u7801 \u6dfb\u52a0 \u5230 \u811a\u672c \u7684 \u5f00\u5934 \u6216 main \u51fd\u6570 \u4e2d \uff1a import carla import random # \u94fe\u63a5 \u5230 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5e76 \u83b7\u53d6 \u4e16\u754c \u5bf9\u8c61 client = carla . Client ( ' localhost ' , 2000 ) world = client . get _ world ( ) \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u7528\u4e8e \u7ef4\u62a4 \u5ba2\u6237 \u5ba2\u6237\u7aef \u4e0e \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u7684 \u8fde\u63a5 \uff0c \u5e76 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u5e94\u7528 \u547d\u4ee4 \u4ee5\u53ca \u52a0\u8f7d \u6216 \u5bfc\u51fa \u6570\u636e \u7684 \u529f\u80fd \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u5ba2\u6237 \u5ba2\u6237\u7aef \u5bf9\u8c61 \u52a0\u8f7d \u66ff\u4ee3 \u5730\u56fe \u6216 \u91cd\u65b0 \u52a0\u8f7d \u5f53\u524d \u5730\u56fe \uff08 \u91cd\u7f6e \u4e3a \u521d\u59cb \u72b6\u6001 \u521d\u59cb\u72b6\u6001 \uff09 \u3002 \u7aef\u53e3 \u53ef\u4ee5 \u9009\u62e9 \u4efb\u4f55 \u53ef\u7528 \u7684 \u7aef\u53e3 \uff0c \u9ed8\u8ba4 \u8bbe\u7f6e \u9ed8\u8ba4\u8bbe\u7f6e \u4e3a 2000 \uff0c \u60a8 \u4e5f \u53ef\u4ee5 \u4f7f\u7528 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u7684 IP \u5730\u5740 \u9009\u62e9 \u4e0e localhost \u4e0d\u540c \u7684 \u4e3b\u673a \u3002 \u8fd9\u6837 \uff0c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u53ef\u4ee5 \u5728 \u8054\u7f51 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c \uff0c \u800c python \u5ba2\u6237 \u5ba2\u6237\u7aef \u53ef\u4ee5 \u4ece \u4e2a\u4eba \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u8fd0\u884c \u3002 \u8fd9 \u5bf9\u4e8e \u533a\u5206 \u7528\u4e8e \u8fd0\u884c Carla \u4eff\u771f \u771f\u5668 \u4eff\u771f\u5668 \u7684 GPU \u548c \u7528\u4e8e \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u8bad\u7ec3 \u7684 GPU \u7279\u522b \u6709\u7528 \uff0c \u8fd9 \u4e24\u8005 \u5bf9 \u56fe\u5f62 \u786c\u4ef6 \u7684 \u8981\u6c42 \u90fd \u5f88 \u9ad8 \u3002 \u7b14\u8bb0 \u4ee5\u4e0b \u5047\u8bbe Carla \u5728 \u9ed8\u8ba4 \u5f02\u6b65 \u6a21\u5f0f \u4e0b \u8fd0\u884c \u3002 \u5982\u679c \u60a8 \u4f7f\u7528 \u540c\u6b65 \u6a21\u5f0f \uff0c \u4ee5\u4e0b \u90e8\u5206 \u4e2d \u7684 \u67d0\u4e9b \u4ee3\u7801 \u53ef\u80fd \u65e0\u6cd5 \u6309 \u9884\u671f \u5de5\u4f5c \u3002","title":"\u542f\u52a8 Carla \u5e76 \u8fde\u63a5 \u5ba2\u6237\u7aef"},{"location":"tuto_first_steps/#_1","text":"\u5728 Carla API \u4e2d \uff0c \u4e16\u754c \u5bf9\u8c61 \u63d0\u4f9b \u5bf9 \u4eff\u771f \u7684 \u6240\u6709 \u5143\u7d20 \u7684 \u8bbf\u95ee \uff0c \u5305\u62ec \u5730\u56fe \u3001 \u5730\u56fe \u5185 \u7684 \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u5efa\u7b51 \u5efa\u7b51\u7269 \u3001 \u4ea4\u901a \u4ea4\u901a\u706f \u3001 \u8f66\u8f86 \u548c \u884c\u4eba \u3002 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u901a\u5e38 \u52a0\u8f7d \u9ed8\u8ba4 \u5730\u56fe \uff08 \u901a\u5e38 \u4e3a Town10 \uff09 \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u5907\u7528 \u5730\u56fe \u542f\u52a8 Carla \uff0c \u8bf7 \u4f7f\u7528 \u4ee5\u4e0b config . py \u811a\u672c \uff1a . / config . py -- map Town05 \u6211\u4eec \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 world \u5bf9\u8c61 \u4ece \u5ba2\u6237 \u5ba2\u6237\u7aef \u52a0\u8f7d \u5730\u56fe \uff1a client . load _ world ( ' Town05 ' ) \u8bf7 \u5728 \u6b64\u5904 \u67e5\u627e \u6709\u5173 Carla \u5730\u56fe \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u52a0\u8f7d \u5730\u56fe"},{"location":"tuto_first_steps/#_2","text":"\u89c2\u5bdf \u89c2\u5bdf\u8005 \u662f \u4eff\u771f \u7684 \u89c6\u56fe \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f53 \u60a8 \u5728 \u8fde\u63a5 \u5c4f\u5e55 \u7684 \u8ba1\u7b97 \u7b97\u673a \u8ba1\u7b97\u673a \u4e0a \u8fd0\u884c Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 \uff0c \u89c2\u4f17 \u4f1a \u5728 \u7a97\u53e3 \u65b0\u7a97\u53e3 \u4e2d \u6253\u5f00 \uff0c \u9664\u975e \u60a8 \u6307\u5b9a - RenderOffScreen \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u53ef\u89c6 \u53ef\u89c6\u5316 \u60a8 \u7684 \u4eff\u771f \u3002 \u4f7f\u7528 \u89c2\u5bdf \u89c2\u5bdf\u8005 \uff0c \u60a8 \u53ef\u4ee5 \u719f\u6089 \u5df2 \u52a0\u8f7d \u7684 \u5730\u56fe \uff0c \u5e76 \u67e5\u770b \u6240 \u505a \u7684 \u4efb\u4f55 \u66f4\u6539 \u7684 \u7ed3\u679c \uff0c \u4f8b\u5982 \u6dfb\u52a0 \u8f66\u8f86 \u3001 \u66f4\u6539 \u5929\u6c14 \u3001 \u6253\u5f00 / \u5173\u95ed \u5730\u56fe \u7684 \u5404\u4e2a \u56fe\u5c42 \u4ee5\u53ca \u7528\u4e8e \u8c03\u8bd5 \u76ee\u7684 \u3002 \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u9f20\u6807 \u63a7\u5236 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u89c6\u56fe \u7684 \u4fef\u4ef0 \u548c \u504f\u822a \uff0c \u5e76 \u4f7f\u7528 QWE - ASD \u952e \u79fb\u52a8 \u89c2\u4f17 \uff0c \u8ba9 \u89c2\u4f17 \u98de \u5230 \u4e16\u754c \u5404\u5730 \u4e16\u754c\u5404\u5730 \uff1a Q - \u5411\u4e0a \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u9876\u90e8 \u8fb9\u7f18 \uff09 E - \u5411\u4e0b \u79fb\u52a8 \uff08 \u671d\u5411 \u7a97\u53e3 \u7684 \u4e0b \u8fb9\u7f18 \uff09 W - \u5411\u524d \u79fb\u52a8 S - \u5411 \u540e \u79fb\u52a8 A - \u5411 \u5de6 \u79fb\u52a8 D - \u5411 \u53f3 \u79fb\u52a8 \u5de6\u952e \u5355\u51fb \u5e76 \u5728 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7a97\u53e3 \u4e2d \u4e0a\u4e0b \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u4fef\u4ef0 \uff0c \u5de6\u53f3 \u62d6\u52a8 \u9f20\u6807 \u6765 \u63a7\u5236 \u504f\u822a \u3002 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u53ca\u5176 \u5c5e\u6027 \u53ef\u4ee5 \u901a\u8fc7 Python API \u8bbf\u95ee \u548c \u64cd\u4f5c \uff1a # \u83b7\u53d6 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u5bf9\u8c61 spectator = world . get _ spectator ( ) # \u901a\u8fc7 \u53d8\u6362 \u83b7\u5f97 \u89c2\u5bdf \u89c2\u5bdf\u8005 \u7684 \u4f4d\u7f6e \u548c \u65cb\u8f6c transform = spectator . get _ transform ( ) location = transform . location rotation = transform . rotation # \u7528\u7a7a \u53d8\u6362 \u8bbe\u7f6e \u89c2\u5bdf \u89c2\u5bdf\u8005 spectator . set _ transform ( carla . Transform ( ) ) # \u8fd9 \u5c06 \u8bbe\u7f6e \u89c2\u4f17 \u5728 \u5730\u56fe \u7684 \u539f\u70b9 \uff0c 0 \u5ea6 \u4fef\u4ef0 \uff0c \u504f\u822a \u548c \u6eda\u52a8 - \u4e00\u4e2a \u5f88 \u597d \u7684 \u65b9\u5f0f \u6765 \u5b9a\u4f4d \u81ea\u5df1 \u5728 \u5730\u56fe \u4e0a","title":"\u89c2\u5bdf\u8005 \u5bfc\u822a"},{"location":"tuto_first_steps/#_3","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u52a0\u8f7d \u4e86 \u5730\u56fe \u5e76\u4e14 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u5df2 \u542f\u52a8 \u5e76 \u8fd0\u884c \uff0c \u6211\u4eec \u73b0\u5728 \u9700\u8981 \u7528 \u4e00\u4e9b \u8f66\u8f86 \u586b\u5145 \u6211\u4eec \u7684 \u4eff\u771f \uff0c \u4ee5 \u4eff\u771f \u5177\u6709 \u4ea4\u901a \u548c \u5176\u4ed6 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u6216\u975e \u73a9\u5bb6 \u89d2\u8272 \u7684 \u771f\u5b9e \u73af\u5883 \u3002 \u8981 \u751f\u6210 \u8f66\u8f86 \uff0c \u9996\u5148 \uff0c \u6211\u4eec \u9700\u8981 \u4ece \u84dd \u56fe\u5e93 \u4e2d \u9009\u62e9 \u6211\u4eec \u60f3\u8981 \u7684 \u8f66\u8f86 \u3002 # \u83b7\u53d6 \u84dd \u56fe\u5e93 \u548c \u8f66\u8f86 \u84dd\u56fe \u8fc7\u6ee4 \u6ee4\u5668 \u8fc7\u6ee4\u5668 vehicle _ blueprints = world . get _ blueprint _ library ( ) . filter ( ' * vehicle * ' ) \u73b0\u5728 \u6211\u4eec \u6709 \u4e86 \u84dd\u56fe \uff0c \u6211\u4eec \u9700\u8981 \u5728 \u5730\u56fe \u4e0a \u627e\u5230 \u4e00\u4e9b \u5408\u9002 \u7684 \u5730\u70b9 \u6765 \u751f\u6210 \u6211\u4eec \u7684 \u8f66\u8f86 \u3002 \u4e3a\u6b64 \uff0c \u6bcf\u4e2a Carla \u5730\u56fe \u90fd \u63d0\u4f9b \u4e86 \u9884\u5b9a \u4e49 \u7684 \u751f\u6210 \u70b9 \uff0c \u5747\u5300 \u5206\u5e03 \u5747\u5300\u5206\u5e03 \u5728 \u6574\u4e2a \u5730\u56fe \u7684 \u9053\u8def \u4e0a \u3002 # \u83b7\u5f97 \u5730\u56fe \u7684 \u751f\u6210 \u70b9 spawn _ points = world . get _ map ( ) . get _ spawn _ points ( ) # \u5728 \u6bcf\u4e2a \u751f\u6210 \u70b9 \u968f\u673a \u751f\u6210 50 \u8f86\u8f66 \uff0c \u6211\u4eec \u4ece \u84dd \u56fe\u5e93 \u4e2d \u968f\u673a \u9009\u62e9 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 for i in range ( 0 , 50 ) : world . try _ spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u73b0\u5728 \u6211\u4eec \u8fd8 \u5e94\u8be5 \u6dfb\u52a0 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u4f5c\u4e3a \u4eff\u771f \u7684 \u4e2d\u5fc3 \u4e2d\u5fc3\u70b9 \u3002 \u4e3a\u4e86 \u8bad\u7ec3 \u81ea\u4e3b \u4ee3\u7406 \uff0c \u6211\u4eec \u9700\u8981 \u4eff\u771f \u81ea\u4e3b \u4ee3\u7406 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u7528 Carla \u7684 \u8bf4\u6cd5 \uff0c \u6211\u4eec \u7ecf\u5e38 \u5c06 \u8fd9\u79cd \u8f66\u8f86 \u79f0\u4e3a \u201c \u81ea\u6211 \u8f66\u8f86 \u201d \u3002 ego _ vehicle = world . spawn _ actor ( random . choice ( vehicle _ blueprints ) , random . choice ( spawn _ points ) ) \u9664\u4e86 \u8f66\u8f86 \u4e4b\u5916 \uff0c Carla \u8fd8 \u63d0\u4f9b \u884c\u4eba \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \uff0c \u4ee5 \u4eff\u771f \u771f\u5b9e \u7684 \u9a7e\u9a76 \u573a\u666f \u3002 \u5728 Carla \u672f\u8bed \u4e2d \uff0c \u8f66\u8f86 \u548c \u884c\u4eba \u88ab \u79f0\u4e3a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u6709\u5173 \u5b83\u4eec \u7684 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u6dfb\u52a0 \u975e \u73a9\u5bb6 \u89d2\u8272"},{"location":"tuto_first_steps/#_4","text":"\u73b0\u4ee3 \u81ea\u52a8 \u9a7e\u9a76 \u6c7d\u8f66 \u901a\u8fc7 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u9644\u52a0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u7406\u89e3 \u548c \u89e3\u91ca \u5176 \u73af\u5883 \u3002 \u8fd9\u4e9b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5305\u62ec \u5149\u5b66 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u5149\u6d41 \u6444\u50cf \u6444\u50cf\u673a \u3001 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u548c \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u901f\u5ea6\u8ba1 \u52a0\u901f\u5ea6\u8ba1 \u7b49 \u3002 Carla \u5185\u7f6e \u4e86 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6a21\u578b \uff0c \u7528\u4e8e \u521b\u5efa \u673a\u5668 \u5b66\u4e60 \u7684 \u8bad\u7ec3 \u6570\u636e \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u8f66\u8f86 \u4e0a \uff0c \u4e5f \u53ef\u4ee5 \u8fde\u63a5 \u5230 \u56fa\u5b9a \u5b9a\u70b9 \u56fa\u5b9a\u70b9 \u6765 \u5efa\u6a21 \uff0c \u4f8b\u5982 \u95ed\u8def \u7535\u89c6 \u95ed\u8def\u7535\u89c6 \u6444\u50cf \u6444\u50cf\u673a \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u5c06 \u5728 \u81ea\u6211 \u8f66\u8f86 \u4e0a \u5b89\u88c5 \u4e00\u4e2a \u6807\u51c6 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6765 \u8bb0\u5f55 \u4e00\u4e9b \u89c6\u9891 \u6570\u636e \uff1a # \u521b\u5efa \u4e00\u4e2a \u53d8\u6362 \uff0c \u5c06 \u6444\u50cf \u6444\u50cf\u673a \u653e\u7f6e \u5728 \u8f66\u8f86 \u7684 \u9876\u90e8 camera _ init _ trans = carla . Transform ( carla . Location ( z = 1.5 ) ) # \u901a\u8fc7 \u5b9a\u4e49 \u5176 \u5c5e\u6027 \u7684 \u84dd\u56fe \u6765 \u521b\u5efa \u76f8\u673a camera _ bp = world . get _ blueprint _ library ( ) . find ( ' sensor . camera . rgb ' ) # \u751f\u6210 \u76f8\u673a \u5e76 \u5c06 \u5176 \u8fde\u63a5 \u5230 \u6211\u4eec \u7684 \u81ea\u6211 \u8f66\u8f86 \u4e0a camera = world . spawn _ actor ( camera _ bp , camera _ init _ trans , attach _ to = ego _ vehicle ) \u4e00\u65e6 \u6211\u4eec \u751f\u6210 \u4e86 \u76f8\u673a \uff0c \u6211\u4eec \u9700\u8981 \u901a\u8fc7 listen ( ) \u65b9\u6cd5 \u5c06 \u5176 \u8bbe\u7f6e \u4e3a \u5f55\u5236 \u3002 Listen \u65b9\u6cd5 \u5c06 \u5b9a\u4e49 \u5982\u4f55 \u5904\u7406 \u6570\u636e \u7684 \u56de\u8c03 \u4f5c\u4e3a \u53c2\u6570 \u3002 \u60a8 \u53ef\u4ee5 \u5c06 \u5176 \u6d41\u5f0f \u4f20\u8f93 \u5230 \u53e6 \u4e00\u4e2a \u7a0b\u5e8f \u6216 \u5c06 \u5176 \u4fdd\u5b58 \u5230 \u78c1\u76d8 \u3002 \u6211\u4eec \u5c06 \u4f7f\u7528 lambda \u51fd\u6570 \u4f5c\u4e3a \u56de\u8c03 \u5c06 \u6570\u636e \u4fdd\u5b58 \u5230 \u78c1\u76d8 \uff1a # \u7528 PyGame \u56de\u8c03 \u542f\u52a8 \u76f8\u673a camera . listen ( lambda image : image . save _ to _ disk ( ' out / % 06d . png ' % image . frame ) ) \u8fd9\u4f1a \u5c06 \u6570\u636e \u4f5c\u4e3a \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u6839\u636e \u4eff\u771f \u5e27 \u7f16\u53f7 \u547d\u540d \u7684 PNG \u56fe\u50cf \u6587\u4ef6 \u56fe\u50cf\u6587\u4ef6 \u4fdd\u5b58 \u5230 out / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u6709 \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7c7b\u578b \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ef \u9009\u62e9 \u4f9b\u9009\u62e9 \u3002 \u5728 \u8fd9\u91cc \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u7814\u7a76 \u53ef\u7528 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u9635\u5217 \u4ee5\u53ca \u5982\u4f55 \u4f7f\u7528 \u5b83\u4eec \u3002","title":"\u6dfb\u52a0 \u4f20\u611f\u5668"},{"location":"tuto_first_steps/#_5","text":"\u73b0\u5728 \u6211\u4eec \u5df2\u7ecf \u5c06 \u4ea4\u901a \u548c \u81ea\u6211 \u8f66\u8f86 \u6dfb\u52a0 \u5230 \u4eff\u771f \u4e2d \u5e76 \u5f00\u59cb \u8bb0\u5f55 \u6444\u50cf \u6444\u50cf\u673a \u6570\u636e \uff0c \u73b0\u5728 \u6211\u4eec \u9700\u8981 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u5c06 \u8f66\u8f86 \u8bbe\u7f6e \u4e3a \u8fd0\u52a8 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u662f Carla \u7684 \u4e00\u4e2a \u7ec4\u4ef6 \uff0c \u5b83 \u63a7\u5236 \u8f66\u8f86 \u5728 \u4eff\u771f \u5185 \u7684 \u5730\u56fe \u9053\u8def \u4e0a \u81ea\u52a8 \u79fb\u52a8 \uff0c \u9075\u5faa \u9053\u8def \u60ef\u4f8b \u5e76 \u8868\u73b0 \u5f97 \u50cf \u771f\u6b63 \u7684 \u9053\u8def \u4f7f\u7528 \u7528\u8005 \u4f7f\u7528\u8005 \u3002 \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 world . get _ actors ( ) \u65b9\u6cd5 \u627e\u5230 \u4eff\u771f \u4e2d \u7684 \u6240\u6709 \u8f66\u8f86 \uff0c \u5bf9 \u6240\u6709 \u8f66\u8f86 \u8fdb\u884c \u8fc7\u6ee4 \u3002 \u7136\u540e \u6211\u4eec \u53ef\u4ee5 \u4f7f\u7528 \u8be5 set _ autopilot ( ) \u65b9\u6cd5 \u5c06 \u8f66\u8f86 \u7684 \u63a7\u5236 \u63a7\u5236\u6743 \u79fb\u4ea4 \u7ed9 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u3002 for vehicle in world . get _ actors ( ) . filter ( ' * vehicle * ' ) : vehicle . set _ autopilot ( True ) \u73b0\u5728 \u60a8 \u7684 \u4eff\u771f \u6b63\u5728 \u8fd0\u884c \uff0c \u6709 \u8bb8\u591a \u8f66\u8f86 \u5728 \u5730\u56fe \u4e0a \u884c\u9a76 \uff0c \u5e76\u4e14 \u6444\u50cf \u6444\u50cf\u673a \u8bb0\u5f55 \u5176\u4e2d \u4e00\u8f86 \u8f66\u8f86 \u7684 \u6570\u636e \u3002 \u7136\u540e \uff0c \u8be5 \u6570\u636e \u53ef \u7528\u4e8e \u63d0\u4f9b \u673a\u5668 \u5b66\u4e60 \u7b97\u6cd5 \u6765 \u8bad\u7ec3 \u81ea\u52a8 \u9a7e\u9a76 \u4ee3\u7406 \u3002 \u6d41\u91cf \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u5177\u6709 \u8bb8\u591a \u7528\u4e8e \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d41\u91cf \u884c\u4e3a \u7684 \u529f\u80fd \uff0c \u8bf7 \u5728 \u6b64\u5904 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \u3002 \u8fd9\u662f \u4eff\u771f \u7684 \u6700 \u57fa\u672c \u53ef\u80fd \u8bbe\u7f6e \uff0c \u73b0\u5728 \u60a8 \u53ef\u4ee5 \u66f4 \u6df1\u5165 \u5730 \u4e86\u89e3 \u6709\u5173 \u53ef \u7528\u4e8e \u751f\u6210 \u6570\u636e \u7684 \u8bb8\u591a \u989d\u5916 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u6587\u6863 \uff0c \u4ee5\u53ca Carla \u7684 \u8bb8\u591a \u5176\u4ed6 \u529f\u80fd \uff0c \u8fd9\u4e9b \u529f\u80fd \u53ef\u4ee5 \u4f7f \u60a8 \u7684 \u4eff\u771f \u66f4\u52a0 \u8be6\u7ec6 \u548c \u66f4 \u591a \u5b9e\u9645 \u7684 \u3002","title":"\u4f7f\u7528 \u4ea4\u901a\u7ba1\u7406 \u5668 \u4eff\u771f \u8f66\u8f86"},{"location":"tuto_first_steps/#_6","text":"\u81ea\u6211 \u8f66\u8f86 \u662f \u4f7f\u7528 Carla \u65f6 \u9700\u8981 \u7262\u8bb0 \u7684 \u4e00\u4e2a \u91cd\u8981 \u6982\u5ff5 \u3002 \u81ea\u6211 \u8f66\u8f86 \u662f \u6307 \u5c06 \u6210\u4e3a \u4eff\u771f \u7126\u70b9 \u7684 \u8f66\u8f86 \u3002 \u5728 \u5927\u591a \u591a\u6570 \u5927\u591a\u6570 CARLA \u7528\u4f8b \u4e2d \uff0c \u5b83 \u53ef\u80fd \u662f \u60a8 \u5c06 \u8fde\u63a5 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f66\u8f86 \u548c / \u6216 \u60a8 \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u673a\u5668 \u5b66\u4e60 \u5806\u6808 \u5c06 \u63a7\u5236 \u7684 \u8f66\u8f86 \u3002 \u5b83 \u5f88 \u91cd\u8981 \uff0c \u56e0\u4e3a \u5b83 \u662f \u4e00\u4e9b \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u63d0\u9ad8 \u4eff\u771f \u6548\u7387 \u7684 \u4eff\u771f \u64cd\u4f5c \u7684 \u57fa\u7840 \uff0c \u4f8b\u5982 \uff1a \u52a0\u8f7d \u5927\u578b \u5730\u56fe \u7684 \u5730\u56fe \u56fe\u5757 : \u5927\u578b \u5730\u56fe \uff08 \u5982 Town 12 \uff09 \u7531 \u56fe\u5757 \u7ec4\u6210 \uff0c \u4ec5 \u5728 \u9700\u8981 \u63d0\u9ad8 Carla \u6027\u80fd \u65f6\u624d \u52a0\u8f7d \u3002 \u81ea\u6211 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u51b3\u5b9a \u4e86 \u4f7f\u7528 \u54ea\u4e9b \u56fe\u5757 \u3002 \u53ea\u6709 \u9760\u8fd1 \u6700\u9760\u8fd1 \u81ea\u6211 \u8f66\u8f86 \u7684 \u56fe\u5757 \u624d \u4f1a \u88ab \u52a0\u8f7d \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f : \u5982\u679c \u60a8 \u7684 \u4eff\u771f \u5305\u542b \u7531 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u63a7\u5236 \u7684 \u5927\u91cf \u8f66\u8f86 \uff0c \u5219 \u8ba1\u7b97 \u6240\u6709 \u8fd9\u4e9b \u8f66\u8f86 \u7684 \u7269\u7406 \u7269\u7406\u91cf \u5728 \u8ba1\u7b97 \u4e0a \u975e\u5e38 \u6602\u8d35 \u3002 \u6df7\u5408 \u7269\u7406 \u6a21\u5f0f \u7269\u7406\u6a21\u5f0f \u4f7f \u7269\u7406 \u8ba1\u7b97 \u4ec5\u9650 \u9650\u4e8e \u4ec5\u9650\u4e8e \u81ea\u6211 \u8f66\u8f86 \u9644\u8fd1 \u7684 \u8f66\u8f86 \uff0c \u4ece\u800c \u8282\u7701 \u8ba1\u7b97 \u8d44\u6e90 \u8ba1\u7b97\u8d44\u6e90 \u3002 \u8981 \u5b9a\u4e49 \u81ea\u6211 \u8f66\u8f86 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u751f\u6210 \u81ea\u6211 \u8f66\u8f86 \u65f6 \u8bbe\u7f6e role _ name \u8f66\u8f86 carla . Actor \u5bf9\u8c61 \u84dd\u56fe \u7684 \u5c5e\u6027 \uff1a ego _ bp = world . get _ blueprint _ library ( ) . find ( ' vehicle . lincoln . mkz _ 2020 ' ) ego _ bp . set _ attribute ( ' role _ name ' , ' hero ' ) ego _ vehicle = world . spawn _ actor ( ego _ bp , random . choice ( spawn _ points ) )","title":"\u5c06 \u8f66\u8f86 \u5206\u914d \u4e3a \u81ea\u6211 \u8f66\u8f86"},{"location":"tuto_first_steps/#_7","text":"Carla \u9644\u5e26 \u4e86 \u51e0\u5f20 \u9884\u5236 \u5730\u56fe \uff0c \u4e13\u6ce8 \u4e8e \u63d0\u4f9b \u591a\u79cd \u529f\u80fd \u3002 \u8fd9\u4e9b \u5730\u56fe \u5448\u73b0 \u4e86 \u57ce\u5e02 \u3001 \u4e61\u6751 \u548c \u4f4f\u5b85 \u7b49 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u73af\u5883 \u3002 \u8fd8\u6709 \u4e0d\u540c \u7684 \u5efa\u7b51 \u98ce\u683c \u5efa\u7b51\u98ce\u683c \u548c \u591a\u79cd \u4e0d\u540c \u591a\u79cd\u4e0d\u540c \u7684 \u9053\u8def \u5e03\u5c40 \uff0c \u4ece \u65e0 \u6807\u8bb0 \u7684 \u4e61\u6751 \u9053\u8def \u5230 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u6d4f\u89c8 \u76ee\u5f55 \u6216 \u4e0b\u8868\u4e2d \u7684 \u5730\u56fe \u6307\u5357 \u3002 \u57ce\u9547 \u6982\u62ec \u57ce\u9547 01 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u6cb3\u6d41 \u548c \u51e0\u5ea7 \u6865\u6881 \u3002 \u57ce\u9547 02 \u4e00\u4e2a \u7b80\u5355 \u7684 \u5c0f\u9547 \uff0c \u4f4f\u5b85 \u548c \u5546\u4e1a \u5efa\u7b51 \u6df7\u5408 \u5728 \u4e00\u8d77 \u3002 \u57ce\u9547 03 \u66f4\u5927 \u7684 \u57ce\u5e02 \u5e02\u5730 \u5730\u56fe \u57ce\u5e02\u5730\u56fe \uff0c \u5e26\u6709 \u73af\u5c9b \u548c \u5927\u578b \u8def\u53e3 \u3002 \u57ce\u9547 04 \u4e00\u5ea7 \u9576\u5d4c \u5728 \u7fa4\u5c71 \u4e4b\u4e2d \u7684 \u5c0f\u9547 \uff0c \u6709 \u4e00\u6761 \u7279\u6b8a \u7684 \u201c 8 \u5b57\u5f62 \u201d \u65e0\u9650 \u516c\u8def \u3002 \u57ce\u9547 05 \u65b9\u5f62 \u7f51\u683c \u57ce\u9547 \uff0c \u6709 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u548c \u4e00\u5ea7 \u6865\u6881 \u3002 \u6bcf\u4e2a \u65b9\u5411 \u6709 \u591a\u4e2a \u8f66\u9053 \u3002 \u5bf9\u4e8e \u6267\u884c \u53d8\u9053 \u5f88 \u6709\u7528 \u3002 \u57ce\u9547 06 \u957f \u7684 \u591a \u8f66\u9053 \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \uff0c \u6709 \u8bb8\u591a \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u5165\u53e3 \u548c \u51fa\u53e3 \u3002 \u5b83 \u8fd8\u6709 \u4e00\u4e2a \u5bc6\u6b47\u6839 \u5de6\u7ffc \u3002 \u57ce\u9547 07 \u4e61\u6751 \u73af\u5883 \uff0c \u9053\u8def \u72ed\u7a84 \uff0c \u6709 \u7389\u7c73 \u3001 \u8c37\u4ed3 \uff0c \u51e0\u4e4e \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u3002 \u57ce\u9547 08 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 09 \u7528\u4e8e \u6392\u884c \u6392\u884c\u699c \u6311\u6218 \u7684 \u79d8\u5bc6 \u201c \u4e0d\u89c1 \u770b\u4e0d\u89c1 \u201d \u5c0f\u9547 \u57ce\u9547 10 \u4e2d\u5fc3 \u5e02\u4e2d\u5fc3 \u7684 \u57ce\u5e02 \u73af\u5883 \uff0c \u62e5\u6709 \u6469\u5929 \u5929\u5927 \u5927\u697c \u6469\u5929\u5927\u697c \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u697c \u548c \u6d77\u6ee8 \u957f\u5eca \u3002 \u57ce\u9547 11 \u672a \u88c5\u9970 \u7684 \u5927 \u5730\u56fe \u3002 \u57ce\u9547 12 \u4e00\u5f20 \u5305\u542b \u8bb8\u591a \u4e0d\u540c \u533a\u57df \u7684 \u5927 \u5730\u56fe \uff0c \u5305\u62ec \u9ad8\u5c42 \u5efa\u7b51 \u9ad8\u5c42\u5efa\u7b51 \u3001 \u4f4f\u5b85 \u4f4f\u5b85\u533a \u548c \u4e61\u6751 \u73af\u5883 \u3002 \u57ce\u9547 13 \u4e00\u5f20 \u4e0e 12 \u53f7 \u9547 \u89c4\u6a21 \u76f8\u4f3c \u7684 \u5927 \u5730\u56fe \uff0c \u4f46 \u5177\u6709 \u9c9c\u660e \u7684 \u7279\u8272 \u3002 \u57ce\u9547 15 \u57fa\u4e8e \u5df4\u585e \u585e\u7f57 \u7f57\u90a3 \u5df4\u585e\u7f57\u90a3 \u81ea\u6cbb \u5927\u5b66 \u9053\u8def \u5e03\u5c40 \u7684 \u5730\u56fe \u3002 \u60a8 \u53ef\u4ee5 \u6d4f\u89c8 Carla \u5b89\u88c5 \u4e2d \u7684 \u53ef\u7528 \u5730\u56fe \uff1a client . get _ available _ maps ( ) \u8fd9 \u5c06 \u5305\u62ec \u60a8 \u81ea\u5df1 \u6784\u5efa \u6216 \u5bfc\u5165 \u7684 \u5730\u56fe \u3002 \u5f53 \u60a8 \u9009\u62e9 \u5730\u56fe \u65f6 \uff0c \u8bf7 \u50cf \u8fd9\u6837 \u52a0\u8f7d \u5b83 \uff1a client . load _ world ( ' Town03 _ Opt ' )","title":"\u9009\u62e9 \u4f60 \u7684 \u5730\u56fe"},{"location":"tuto_first_steps/#_8","text":"Carla \u63d0\u4f9b \u4e86 \u4e00\u4e2a \u8f66\u8f86 \u5e93 \uff0c \u53ef\u4ee5 \u8ba9 \u60a8 \u7684 \u4eff\u771f \u5145\u6ee1 \u4ea4\u901a \u3002 \u6d4f\u89c8 Carla \u8f66\u8f86 \u76ee\u5f55 \u4e2d \u7684 \u8f66\u8f86 \u578b\u53f7 \u3002 \u60a8 \u53ef\u4ee5 \u901a\u8fc7 \u8fc7\u6ee4 \u84dd \u56fe\u5e93 \u6765 \u67e5\u770b \u6240\u6709 \u53ef\u7528 \u7684 \u8f66\u8f86 \u84dd\u56fe \u3002 for bp in world . get _ blueprint _ library ( ) . filter ( ' vehicle ' ) : print ( bp . id )","title":"\u9009\u62e9 \u4f60 \u7684 \u8f66\u8f86"},{"location":"tutorials/","text":"\u6559\u7a0b \u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u5927\u91cf \u6559\u7a0b \uff0c \u5e2e\u52a9 \u60a8 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 Carla \u7684 \u4f17\u591a \u529f\u80fd \u3002 \u4e00\u822c Carla \u7279\u70b9 \u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u5982\u4f55 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6765 \u5f15\u5bfc \u57ce\u9547 \u5468\u56f4 \u7684 \u4ea4\u901a \u3002 \u7eb9\u7406 \u6d41 \u2014 \u5b9e\u65f6 \u4fee\u6539 \u5730\u56fe \u5bf9\u8c61 \u7684 \u7eb9\u7406 \u4ee5 \u6dfb\u52a0 \u53d8\u5316 \u3002 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u2014 \u4f7f\u7528 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u6765 \u533a\u5206 \u540c \u4e00\u7c7b \u7684 \u5bf9\u8c61 \u3002 \u8fb9\u754c \u6846 \u2014 \u5c06 Carla \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u6295\u5f71 \u5230 \u76f8\u673a \u4e2d \u3002 \u884c\u4eba \u9aa8\u9abc \u2014 \u5c06 \u884c\u4eba \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u5236\u4f5c \u52a8\u753b \u3002 \u6784\u5efa \u4e0e \u96c6\u6210 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 CarSim \u96c6\u6210 \u2014 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b \u3002 RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u96c6\u6210 \u6765 \u4eff\u771f \u7269\u7406 \u3002 PyGame \u63a7\u5236 \u2014 \u4f7f\u7528 PyGame \u663e\u793a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f93\u51fa \u3002 \u8d44\u4ea7 \u548c \u5730\u56fe \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u3002 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u3002 \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u751f\u6210 \u5e76 \u5904\u7406 \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 \u6750\u6599 \u5b9a\u5236 \u2014 \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u3002 \u5f00\u53d1 \u5f00\u53d1\u8005 \u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u79cd \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u5b9a\u4e49 \u7528\u4e8e \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u3002 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u3002 \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u3002 \u89c6\u9891 \u6559\u7a0b \u89c6\u9891\u6559\u7a0b \u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u2014 \u4e86\u89e3 Carla \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u5e76 \u5f00\u59cb \u60a8 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u811a\u672c \u3002 \u4ee3\u7801 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u4f7f\u7528 \u65b9\u6cd5 \u3002 \u4ee3\u7801","title":"\u6559\u7a0b"},{"location":"tutorials/#_1","text":"\u5728 \u8fd9\u91cc \u60a8 \u5c06 \u627e\u5230 \u5927\u91cf \u6559\u7a0b \uff0c \u5e2e\u52a9 \u60a8 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 Carla \u7684 \u4f17\u591a \u529f\u80fd \u3002","title":"\u6559\u7a0b"},{"location":"tutorials/#_2","text":"","title":"\u4e00\u822c"},{"location":"tutorials/#carla","text":"\u68c0\u7d22 \u4eff\u771f \u6570\u636e \u2014 \u4f7f\u7528 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6b63\u786e \u6536\u96c6 \u6570\u636e \u7684 \u5206\u6b65 \u6307\u5357 \u3002 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668 \u2014 \u5982\u4f55 \u4f7f\u7528 \u4ea4\u901a \u7ba1\u7406 \u4ea4\u901a\u7ba1\u7406 \u5668\u6765 \u5f15\u5bfc \u57ce\u9547 \u5468\u56f4 \u7684 \u4ea4\u901a \u3002 \u7eb9\u7406 \u6d41 \u2014 \u5b9e\u65f6 \u4fee\u6539 \u5730\u56fe \u5bf9\u8c61 \u7684 \u7eb9\u7406 \u4ee5 \u6dfb\u52a0 \u53d8\u5316 \u3002 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u2014 \u4f7f\u7528 \u5b9e\u4f8b \u5206\u5272 \u76f8\u673a \u6765 \u533a\u5206 \u540c \u4e00\u7c7b \u7684 \u5bf9\u8c61 \u3002 \u8fb9\u754c \u6846 \u2014 \u5c06 Carla \u5bf9\u8c61 \u7684 \u8fb9\u754c \u6846 \u6295\u5f71 \u5230 \u76f8\u673a \u4e2d \u3002 \u884c\u4eba \u9aa8\u9abc \u2014 \u5c06 \u884c\u4eba \u9aa8\u9abc \u6295\u5f71 \u5230 \u76f8\u673a \u5e73\u9762 \u4e2d \u3002 \u63a7\u5236 \u884c\u4eba \u9aa8\u9abc \u2014 \u4f7f\u7528 \u9aa8\u9abc \u4e3a \u884c\u4eba \u5236\u4f5c \u52a8\u753b \u3002","title":"Carla \u7279\u70b9"},{"location":"tutorials/#_3","text":"\u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u2014 \u5728 Docker \u4e2d \u6784\u5efa \u865a\u5e7b \u5f15\u64ce \u548c Carla \u3002 CarSim \u96c6\u6210 \u2014 \u6709\u5173 \u5982\u4f55 \u4f7f\u7528 CarSim \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u5f15\u64ce \u8fd0\u884c \u4eff\u771f \u7684 \u6559\u7a0b \u3002 RLlib \u96c6\u6210 \u2014 \u4e86\u89e3 \u5982\u4f55 \u4f7f\u7528 RLlib \u5e93 \u8fd0\u884c \u60a8 \u81ea\u5df1 \u7684 \u5b9e\u9a8c \u3002 Chrono \u96c6\u6210 \u2014 \u4f7f\u7528 Chrono \u96c6\u6210 \u6765 \u4eff\u771f \u7269\u7406 \u3002 PyGame \u63a7\u5236 \u2014 \u4f7f\u7528 PyGame \u663e\u793a \u76f8\u673a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u8f93\u51fa \u3002","title":"\u6784\u5efa \u4e0e \u96c6\u6210"},{"location":"tutorials/#_4","text":"\u4f7f\u7528 OpenStreetMap \u751f\u6210 \u5730\u56fe \u2014 \u4f7f\u7528 OpenStreetMap \u751f\u6210 \u7528\u4e8e \u4eff\u771f \u7684 \u5730\u56fe \u3002 \u6dfb\u52a0 \u65b0 \u8f66\u8f86 \u2014 \u51c6\u5907 \u8981 \u5728 Carla \u4e2d \u4f7f\u7528 \u7684 \u8f66\u8f86 \u3002 \u6dfb\u52a0 \u65b0 \u9053\u5177 \u2014 \u5c06 \u5176\u4ed6 \u9053\u5177 \u5bfc\u5165 Carla \u3002 \u521b\u5efa \u72ec\u7acb \u5305 \u2014 \u751f\u6210 \u5e76 \u5904\u7406 \u8d44\u4ea7 \u7684 \u72ec\u7acb \u5305 \u3002 \u6750\u6599 \u5b9a\u5236 \u2014 \u7f16\u8f91 \u8f66\u8f86 \u548c \u5efa\u7b51 \u6750\u6599 \u5efa\u7b51\u6750\u6599 \u3002","title":"\u8d44\u4ea7 \u548c \u5730\u56fe"},{"location":"tutorials/#_5","text":"\u5982\u4f55 \u5347\u7ea7 \u5185\u5bb9 \u2014 \u5411 Carla \u6dfb\u52a0 \u65b0 \u5185\u5bb9 \u3002 \u521b\u5efa \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u5f00\u53d1 \u4e00\u79cd \u7528\u4e8e Carla \u7684 \u65b0 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u521b\u5efa \u8bed\u4e49 \u6807\u7b7e \u2014 \u5b9a\u4e49 \u7528\u4e8e \u8bed\u4e49 \u5206\u5272 \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6807\u7b7e \u3002 \u5b9a\u5236 \u8f66\u8f86 \u60ac\u67b6 \u2014 \u4fee\u6539 \u8f66\u8f86 \u7684 \u60ac\u67b6 \u7cfb\u7edf \u3002 \u751f\u6210 \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u2014 \u4e3a \u8f66\u8f86 \u521b\u5efa \u8be6\u7ec6 \u7684 \u78b0\u649e \u5668 \u3002 \u53d1\u5e03 \u7248\u672c \u2014 \u5982\u4f55 \u53d1\u5e03 Carla \u3002","title":"\u5f00\u53d1\u8005"},{"location":"tutorials/#_6","text":"\u57fa\u7840 \u77e5\u8bc6 \u57fa\u7840\u77e5\u8bc6 \u2014 \u4e86\u89e3 Carla \u7684 \u57fa\u672c \u6982\u5ff5 \u57fa\u672c\u6982\u5ff5 \u5e76 \u5f00\u59cb \u60a8 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u811a\u672c \u3002 \u4ee3\u7801 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u2014 \u6df1\u5165 \u4e86\u89e3 Carla \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u53ca\u5176 \u4f7f\u7528 \u65b9\u6cd5 \u3002 \u4ee3\u7801","title":"\u89c6\u9891\u6559\u7a0b"},{"location":"ue_commandlet/","text":"Commandlet \u4ec0\u4e48 \u662f Commandlet UE \u7684 Commandlet \u662f \u4e00\u79cd \u53ef\u4ee5 \u7528 \u547d\u4ee4 \u547d\u4ee4\u884c \u7684 \u65b9\u5f0f \u53bb \u9a71\u52a8 \u5f15\u64ce \u7684 \u673a\u5236 \uff0c \u5982 \u4f20\u7edf \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u7a0b\u5e8f \uff1a int main ( int argc , char * agrv [ ] ) { for ( int i = 0 ; i < argc ; i ++ ) { cout < < argv [ i ] < < endl ; } } \u5219 \u53ef\u4ee5 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u7684 \u5f62\u5f0f \u8c03\u7528 \uff0c \u5e76 \u4f20\u9012 \u53c2\u6570 \uff1a . / arg _ printer - test1 - test2 Commandlet \u4e5f \u662f \u63d0\u4f9b \u7684 \u8fd9\u6837 \u7684 \u8c03\u7528 \u5f62\u5f0f \u3002 \u4e0d\u8fc7 \uff0c \u9700\u8981 \u8c03\u7528 \u7684 \u7a0b\u5e8f \u662f \u5f15\u64ce \uff0c \u5e76\u4e14 \u8981 \u4f20\u9012 uproject \u6587\u4ef6 \u8def\u5f84 \u3001 \u5176\u4ed6 \u7684 \u53c2\u6570 \u7b49 \u3002 \u4ee5 Cook \u7684 Commandlet \u4e3a\u4f8b \uff1a UE4Editor - cmd . exe D : \\ Client \\ FGame . uproject - run = cook \u901a\u8fc7 \u8fd9\u6837 \u7684 \u5f62\u5f0f \u542f\u52a8 \u547d\u4ee4 \u547d\u4ee4\u884c \u5f15\u64ce \uff0c \u4e0d\u4f1a \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u800c\u662f \u6267\u884c \u6240 \u5b9a\u4e49 \u7684 \u884c\u4e3a \u3002 \u521b\u5efa Commandlet \u4e3a \u9879\u76ee \u6216 \u63d2\u4ef6 \u521b\u5efa Commandlet \uff0c \u901a\u5e38 \u4f1a \u5728 \u6a21\u5757 \u7c7b\u578b \u4e3a Editor \u7684 Module \u4e2d \u6dfb\u52a0 \uff0c \u56e0\u4e3a \u6267\u884c Commandlet \u7684 \u903b\u8f91 \uff0c \u5f88\u5c11 \u4f1a \u6d89\u53ca \u5230 \u8fd0\u884c \u65f6 \uff0c \u90fd \u662f \u5728 \u5f15\u64ce \u73af\u5883 \u4e0b \u6267\u884c \u7684 \u3002 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 Commandlet \uff0c \u9700\u8981 \u521b\u5efa \u4e00\u4e2a \u7ee7\u627f \u81ea UCommandlet \u7684 UObject \u7c7b \uff1a UGenerateTileCommandlet : : UGenerateTileCommandlet ( ) int32 UGenerateTileCommandlet : : Main ( const FString & Params ) \u5176\u4e2d \u7684 Main \u51fd\u6570 \uff0c \u5c31\u662f \u5f53 \u901a\u8fc7 - run = \u547d\u4ee4 \u542f\u52a8 \u8be5 Commandlet \u65f6 \uff0c \u4f1a \u6267\u884c \u5230 \u7684 \u903b\u8f91 \uff0c \u5c31 \u50cf \u524d\u9762 \u7eaf C++ \u7684 main \u51fd\u6570 \u4e00\u6837 \u3002 \u4e0d\u8fc7 \uff0c \u9700\u8981 \u6ce8\u610f \u7684 \u662f \uff0c \u56e0\u4e3a Commandlet \u5176\u5b9e \u662f \u5b8c\u6574 \u7684 \u5f15\u64ce \u73af\u5883 \uff0c \u6240\u4ee5 \u6267\u884c \u65f6\u4f1a \u62c9\u8d77 \u5df2 \u6ce8\u518c \u6a21\u5757 \u7684 \u542f\u52a8 \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u6709 \u5f88\u591a \u7684 \u524d\u7f6e \u903b\u8f91 \u9700\u8981 \u6267\u884c \uff0c \u7b49 \u6267\u884c \u5230 Main \u51fd\u6570 \u65f6 \uff0c \u5c31\u662f \u5b8c\u6574 \u7684 \u5f15\u64ce \u72b6\u6001 \u4e86 \u3002 \u53ef\u4ee5 \u5728 \u8fd9\u4e2a \u51fd\u6570 \u4e4b\u5185 \u505a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u64cd\u4f5c \uff0c \u6b64\u65f6 \u5b83 \u5177\u6709 \u5b8c\u6574 \u7684 \u5f15\u64ce \u73af\u5883 \uff0c \u53ef\u4ee5 \u6839\u636e \u81ea\u5df1 \u7684 \u9700\u8981 \u8fdb\u884c \u6570\u636e \u5bfc\u51fa \u6216 \u8d44\u6e90 \u5904\u7406 \u3002 \u8fd0\u884c Commandlet \u524d\u9762 \u5df2\u7ecf \u63d0\u5230 \u4e86 \uff0c \u8fd0\u884c \u4e00\u4e2a Commandlet \u9700\u8981 \u7528 \u4ee5\u4e0b \u7684 \u547d\u4ee4 \u5f62\u5f0f \uff1a UE4Editor - cmd . exe PROJECT _ NAME . uproject - run = CMDLET _ NAME \u542f\u52a8 \u9879\u76ee \u4e2d \u7684 Commandlet \u65f6 \uff0c \u5fc5\u987b \u8981 \u6307\u5b9a \u9879\u76ee \u8def\u5f84 \uff0c \u56e0\u4e3a \u8981 \u53bb \u52a0\u8f7d \u5de5\u7a0b \u53ca \u63d2\u4ef6 \u4e2d \u7684 \u6a21\u5757 \u3002 \u53c2\u6570 - run = \uff0c \u6307\u5b9a \u7684 \u662f \u8981 \u6267\u884c \u7684 Commandlet \u7684 \u540d\u5b57 \uff0c \u8fd9\u4e2a \u540d\u5b57 \u548c \u524d\u9762 \u521b\u5efa \u7684 \u7ee7\u627f \u81ea UCommandlet \u7c7b \u540d\u5b57 \u76f4\u63a5 \u76f8\u5173 \uff1a \u5982 UResScannerCommandlet \u5b83 \u7684 Commandlet \u7684 \u540d\u5b57 \u5c31 \u4e3a ResScanner \uff0c \u89c4\u5219 \u5c31\u662f \u53bb\u6389 \u5934\u90e8 \u7684 U \u4ee5\u53ca \u5c3e\u90e8 \u7684 Commandlet \u3002 \u5f15\u64ce \u5185 \u63a5\u6536 \u5230 - run = \u7684 \u53c2\u6570 \uff0c \u4f1a \u53bb \u67e5\u627e UClass \uff0c \u5e76\u4f1a \u81ea\u52a8 \u62fc\u63a5 Commandlet \u540e\u7f00 \uff1a / / Token -- XXXXCommandlet CommandletClass = FindObject < UClass > ( ANY _ PACKAGE , * Token , false ) ; \u62ff\u5230 UClass \u4e4b\u540e \uff0c \u521b\u5efa \u4e00\u4e2a \u5b9e\u4f8b \uff0c \u7136\u540e \u8c03\u7528 \u5b83 \u7684 Main \u51fd\u6570 \uff1a Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ Commandlet \\ GenerateTileCommandlet . cpp OpenDriveMap = NewObject < UOpenDriveToMap > ( this , OpenDriveClass ) ; OpenDriveMap - > FilePath = ParamsMap [ \" FilePath \" ] ; OpenDriveMap - > BaseLevelName = ParamsMap [ \" BaseLevelName \" ] ; OpenDriveMap - > OriginGeoCoordinates = FVector2D ( FCString : : Atof ( * ParamsMap [ \" GeoCoordsX \" ] ) , FCString : : Atof ( * ParamsMap [ \" GeoCoordsY \" ] ) ) ; OpenDriveMap - > CurrentTilesInXY = FIntVector ( FCString : : Atof ( * ParamsMap [ \" CTileX \" ] ) , FCString : : Atof ( * ParamsMap [ \" CTileY \" ] ) , 0 ) ; / / Parse Params OpenDriveMap - > GenerateTile ( ) ; \u6ce8\u610f \u662f \u542f\u52a8 \u4e86 \u6240\u6709 \u6a21\u5757 \u4e4b\u540e \u624d \u4f1a \u8fdb\u5165 \u5230 Commandlet \u7684 Main \u4e2d \uff0c \u610f\u5473 \u610f\u5473\u7740 \u6a21\u5757 \u7684 StartupModule \u5728 Main \u4e4b\u524d \u3002 \u5f15\u64ce \u6267\u884c Commandlet Main \u51fd\u6570 \u7684 \u8c03\u7528 \u6808 \uff1a \u68c0\u6d4b Commandlet \u6839\u636e \u4e0a\u9762 \u7684 \u5185\u5bb9 \uff0c \u9700\u8981 \u8bb0\u4f4f \u4ee5\u4e0b \u4e24\u4e2a \u5173\u952e \u5173\u952e\u70b9 \uff1a Commandlet \u4f4d\u4e8e Editor \u6a21\u5757 \u5185 Commandlet \u8fdb\u5165 \u5230 Main \u4e4b\u540e \u5c31\u662f \u5b8c\u6574 \u7684 \u5f15\u64ce \u73af\u5883 \u56e0\u4e3a Commandlet \u662f \u4f4d\u4e8e Editor \u6a21\u5757 \u5185 \u7684 \uff0c \u6709 \u53ef\u80fd \u4f1a \u8c03\u7528 \u5230 \u6a21\u5757 \u5185 \u7684 \u5176\u4ed6 \u51fd\u6570 \uff0c \u4e3a\u4e86 \u533a\u5206 Editor \u542f\u52a8 \u8fd8\u662f Commandlet \u542f\u52a8 \uff0c \u53ef\u4ee5 \u7528 \u4ee5\u4e0b \u51fd\u6570 \u8fdb\u884c \u68c0\u6d4b \uff1a if ( : : IsRunningCommandlet ( ) ) { / / do something } \u4f20\u9012 \u8fdb\u6765 \u7684 \u662f \u4e0d \u5305\u542b \u5f15\u64ce \u8def\u5f84 \u548c \u9879\u76ee \u8def\u5f84 \u7684 \u53c2\u6570 \u3002 \u5982 \uff0c \u8fd0\u884c \u547d\u4ee4 \uff1a UE4Editor - cmd . exe G : \\ Client \\ FGame . uproject - skipcompile - run = HotChunker - TargetPlatform = IOS \u5219 \u63a5\u6536 \u5230 \u7684 \u53c2\u6570 \u4e3a \uff1a - skipcompile - run = HotChunker - TargetPlatform = IOS \u53ef\u4ee5 \u901a\u8fc7 \u89e3\u6790 \u8be5 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5728 Commandlet \u6267\u884c \u7279\u6b8a \u884c\u4e3a \u3002 \u4ee5 HotPatcher \u4e3a\u4f8b \uff0c \u53ef\u4ee5 \u901a\u8fc7 - config = \u6307\u5b9a \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \uff0c \u5728 Commandlet \u4e2d \u5c31 \u4f1a \u8bfb\u53d6 \u5e76 \u6839\u636e \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u6267\u884c \u3002 \u9a71\u52a8 Tick Commandlet \u9ed8\u8ba4 \u662f \u4e00\u4e2a \u72ec\u7acb \u8fc7\u7a0b \u884c\u4e3a \uff0c \u4e0d\u4f1a \u9a71\u52a8 \u5f15\u64ce Tick \uff0c \u5c31 \u50cf \u4e00\u4e2a \u666e\u901a \u7684 \u51fd\u6570 \uff0c \u6240\u6709 \u4ee3\u7801 \u6267\u884c \u4ee3\u7801\u6267\u884c \u5b8c\u6bd5 \u4e4b\u540e \uff0c \u79bb\u5f00 \u5f53\u524d \u7684 \u4f5c\u7528 \u4f5c\u7528\u57df \uff0c \u5c31 \u8bf7\u6c42 \u9000\u51fa \u5f15\u64ce \u4e86 \u3002 \u4ecb\u5165 \u5230 \u67d0\u4e2a Cmdlet \u6d41\u7a0b \u4ee5 Cook \u4e3a\u4f8b \uff0c \u5b83 \u662f \u62c9 \u8d77\u6765 \u4e86 \u4e00\u4e2a CookCommandlet \u53bb \u6267\u884c \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f15\u64ce \u5e76 \u6ca1\u6709 \u7ed9 \u6211\u4eec \u7559 \u53e3\u5b50 \uff0c \u53bb \u4ecb\u5165 \u5230 Cook \u7684 \u5404\u4e2a \u9636\u6bb5 \uff0c \u5982\u679c \u60f3\u8981 \u5728 \u6253\u5305 \u7684 \u8fc7\u7a0b \u4e2d\u53bb \u505a \u4e00\u4e9b \u64cd\u4f5c \uff0c \u5c31 \u9700\u8981 \u81ea\u5df1 \u64cd\u7eb5 UAT \u628a \u6784\u5efa \u8fc7\u7a0b \u62c6\u5f00 \uff0c \u81ea\u5df1 \u7ef4\u62a4 \u5404\u4e2a \u6d41\u7a0b \u3002 \u4f46 \u8fd9\u4e48 \u505a \u7684 \u4ee3\u4ef7 \u6bd4\u8f83 \u9ad8 \uff0c \u8003\u8651 \u4ee5\u4e0b \u8fd9\u4e9b \u9700\u6c42 \uff1a \u5728 Cook \u5b8c\u6bd5 \u4e4b\u540e \u53bb \u8bad\u7ec3 Shader \u7684 \u5b57\u5178 \uff0c \u5e76 \u628a \u7528 \u5b57\u5178 \u538b\u7f29 \u7684 ShaderLibrary \u66ff\u6362 \u539f\u59cb \u7684 \u3002 \u5728 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8981 \u5b9e\u73b0 \u5b83 \uff0c \u5c31 \u9700\u8981 \u628a \u6253\u5305 \u8fc7\u7a0b \u5728 Cook \u4e4b\u540e \u505c\u6389 \uff0c \u5904\u7406 \u5b8c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d41\u7a0b \u4e4b\u540e \uff0c \u518d \u8fdb\u5165 \u7684 UnrealPak \u9636\u6bb5 \uff0c \u63a5\u7740 \u6267\u884c \u3002 \u6574\u4e2a \u8fc7\u7a0b \u90fd \u6bd4\u8f83 \u7684 \u7e41\u7410 \uff0c \u5982\u679c \u6211\u4eec \u60f3\u8981 \u5728 Cook \u4e4b\u540e \u81ea\u52a8 \u6267\u884c \uff0c \u8fd8 \u53ef\u4ee5 \u7528 \u53e6 \u4e00\u79cd \u65b9\u5f0f \uff0c \u4ecb\u5165 \u5230 Commandlet \u7684 \u6267\u884c \u8fdb\u7a0b \u4e2d \u3002 \u6839\u636e \u524d\u6587 \u7684 \u4ecb\u7ecd \u6211\u4eec \u77e5\u9053 \uff0c Commandlet \u5728 \u6267\u884c \u4e2d \uff0c \u4e5f \u662f \u4f1a \u6267\u884c \u6a21\u5757 \u7684 StartupModule \u53ca ShutdownModule \u7684 \uff0c \u800c \u6211\u4eec \u60f3\u8981 \u4ecb\u5165 \u5230 Cmdlet \u4e2d \u6267\u884c \uff0c \u5c31\u662f \u8981 \u5229\u7528 \u8fd9\u4e2a \u7279\u6027 \u3002 \u540c\u6837 \u4ee5 Cook \u4e4b\u540e \uff0c \u8ba9 \u5f15\u64ce \u62c9 \u8d77 \u6211\u4eec \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5904\u7406 \u6d41\u7a0b \u4e3a\u4f8b \uff0c \u53ef\u4ee5 \u62c6\u89e3 \u8fd9\u4e2a \u9700\u6c42 \uff1a \u786e\u5b9a \u662f\u5426 \u8fd0\u884c \u5728 CookCommandlet \u4e2d \u5728 Cook \u6267\u884c \u5b8c\u6bd5 \u540e \uff0c \u5f15\u64ce \u9000\u51fa \u4e4b\u524d \u7684 \u65f6\u673a \u6267\u884c \u5173\u4e8e \u7b2c\u4e00 \u4e00\u70b9 \u7b2c\u4e00\u70b9 \uff0c \u6211\u4eec \u53ef\u4ee5 \u89e3\u6790 \u542f\u52a8 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5e76 \u68c0\u67e5 - run = \u7684 Token \u4e0d\u662f \u662f\u4e0d\u662f Cook \uff0c \u5c31 \u80fd \u786e\u5b9a \u662f\u5426 \u662f\u5426\u662f \u5728 CookCommandlet \u4e2d \uff1a","title":"Ue commandlet"},{"location":"ue_commandlet/#commandlet","text":"","title":"Commandlet"},{"location":"ue_commandlet/#commandlet_1","text":"UE \u7684 Commandlet \u662f \u4e00\u79cd \u53ef\u4ee5 \u7528 \u547d\u4ee4 \u547d\u4ee4\u884c \u7684 \u65b9\u5f0f \u53bb \u9a71\u52a8 \u5f15\u64ce \u7684 \u673a\u5236 \uff0c \u5982 \u4f20\u7edf \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u7a0b\u5e8f \uff1a int main ( int argc , char * agrv [ ] ) { for ( int i = 0 ; i < argc ; i ++ ) { cout < < argv [ i ] < < endl ; } } \u5219 \u53ef\u4ee5 \u901a\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u7684 \u5f62\u5f0f \u8c03\u7528 \uff0c \u5e76 \u4f20\u9012 \u53c2\u6570 \uff1a . / arg _ printer - test1 - test2 Commandlet \u4e5f \u662f \u63d0\u4f9b \u7684 \u8fd9\u6837 \u7684 \u8c03\u7528 \u5f62\u5f0f \u3002 \u4e0d\u8fc7 \uff0c \u9700\u8981 \u8c03\u7528 \u7684 \u7a0b\u5e8f \u662f \u5f15\u64ce \uff0c \u5e76\u4e14 \u8981 \u4f20\u9012 uproject \u6587\u4ef6 \u8def\u5f84 \u3001 \u5176\u4ed6 \u7684 \u53c2\u6570 \u7b49 \u3002 \u4ee5 Cook \u7684 Commandlet \u4e3a\u4f8b \uff1a UE4Editor - cmd . exe D : \\ Client \\ FGame . uproject - run = cook \u901a\u8fc7 \u8fd9\u6837 \u7684 \u5f62\u5f0f \u542f\u52a8 \u547d\u4ee4 \u547d\u4ee4\u884c \u5f15\u64ce \uff0c \u4e0d\u4f1a \u542f\u52a8 \u865a\u5e7b \u7f16\u8f91 \u7f16\u8f91\u5668 \uff0c \u800c\u662f \u6267\u884c \u6240 \u5b9a\u4e49 \u7684 \u884c\u4e3a \u3002","title":"\u4ec0\u4e48 \u662f Commandlet"},{"location":"ue_commandlet/#commandlet_2","text":"\u4e3a \u9879\u76ee \u6216 \u63d2\u4ef6 \u521b\u5efa Commandlet \uff0c \u901a\u5e38 \u4f1a \u5728 \u6a21\u5757 \u7c7b\u578b \u4e3a Editor \u7684 Module \u4e2d \u6dfb\u52a0 \uff0c \u56e0\u4e3a \u6267\u884c Commandlet \u7684 \u903b\u8f91 \uff0c \u5f88\u5c11 \u4f1a \u6d89\u53ca \u5230 \u8fd0\u884c \u65f6 \uff0c \u90fd \u662f \u5728 \u5f15\u64ce \u73af\u5883 \u4e0b \u6267\u884c \u7684 \u3002 \u521b\u5efa \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 Commandlet \uff0c \u9700\u8981 \u521b\u5efa \u4e00\u4e2a \u7ee7\u627f \u81ea UCommandlet \u7684 UObject \u7c7b \uff1a UGenerateTileCommandlet : : UGenerateTileCommandlet ( ) int32 UGenerateTileCommandlet : : Main ( const FString & Params ) \u5176\u4e2d \u7684 Main \u51fd\u6570 \uff0c \u5c31\u662f \u5f53 \u901a\u8fc7 - run = \u547d\u4ee4 \u542f\u52a8 \u8be5 Commandlet \u65f6 \uff0c \u4f1a \u6267\u884c \u5230 \u7684 \u903b\u8f91 \uff0c \u5c31 \u50cf \u524d\u9762 \u7eaf C++ \u7684 main \u51fd\u6570 \u4e00\u6837 \u3002 \u4e0d\u8fc7 \uff0c \u9700\u8981 \u6ce8\u610f \u7684 \u662f \uff0c \u56e0\u4e3a Commandlet \u5176\u5b9e \u662f \u5b8c\u6574 \u7684 \u5f15\u64ce \u73af\u5883 \uff0c \u6240\u4ee5 \u6267\u884c \u65f6\u4f1a \u62c9\u8d77 \u5df2 \u6ce8\u518c \u6a21\u5757 \u7684 \u542f\u52a8 \uff0c \u76f8\u5f53 \u5f53\u4e8e \u76f8\u5f53\u4e8e \u6709 \u5f88\u591a \u7684 \u524d\u7f6e \u903b\u8f91 \u9700\u8981 \u6267\u884c \uff0c \u7b49 \u6267\u884c \u5230 Main \u51fd\u6570 \u65f6 \uff0c \u5c31\u662f \u5b8c\u6574 \u7684 \u5f15\u64ce \u72b6\u6001 \u4e86 \u3002 \u53ef\u4ee5 \u5728 \u8fd9\u4e2a \u51fd\u6570 \u4e4b\u5185 \u505a \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u7684 \u64cd\u4f5c \uff0c \u6b64\u65f6 \u5b83 \u5177\u6709 \u5b8c\u6574 \u7684 \u5f15\u64ce \u73af\u5883 \uff0c \u53ef\u4ee5 \u6839\u636e \u81ea\u5df1 \u7684 \u9700\u8981 \u8fdb\u884c \u6570\u636e \u5bfc\u51fa \u6216 \u8d44\u6e90 \u5904\u7406 \u3002","title":"\u521b\u5efa Commandlet"},{"location":"ue_commandlet/#commandlet_3","text":"\u524d\u9762 \u5df2\u7ecf \u63d0\u5230 \u4e86 \uff0c \u8fd0\u884c \u4e00\u4e2a Commandlet \u9700\u8981 \u7528 \u4ee5\u4e0b \u7684 \u547d\u4ee4 \u5f62\u5f0f \uff1a UE4Editor - cmd . exe PROJECT _ NAME . uproject - run = CMDLET _ NAME \u542f\u52a8 \u9879\u76ee \u4e2d \u7684 Commandlet \u65f6 \uff0c \u5fc5\u987b \u8981 \u6307\u5b9a \u9879\u76ee \u8def\u5f84 \uff0c \u56e0\u4e3a \u8981 \u53bb \u52a0\u8f7d \u5de5\u7a0b \u53ca \u63d2\u4ef6 \u4e2d \u7684 \u6a21\u5757 \u3002 \u53c2\u6570 - run = \uff0c \u6307\u5b9a \u7684 \u662f \u8981 \u6267\u884c \u7684 Commandlet \u7684 \u540d\u5b57 \uff0c \u8fd9\u4e2a \u540d\u5b57 \u548c \u524d\u9762 \u521b\u5efa \u7684 \u7ee7\u627f \u81ea UCommandlet \u7c7b \u540d\u5b57 \u76f4\u63a5 \u76f8\u5173 \uff1a \u5982 UResScannerCommandlet \u5b83 \u7684 Commandlet \u7684 \u540d\u5b57 \u5c31 \u4e3a ResScanner \uff0c \u89c4\u5219 \u5c31\u662f \u53bb\u6389 \u5934\u90e8 \u7684 U \u4ee5\u53ca \u5c3e\u90e8 \u7684 Commandlet \u3002 \u5f15\u64ce \u5185 \u63a5\u6536 \u5230 - run = \u7684 \u53c2\u6570 \uff0c \u4f1a \u53bb \u67e5\u627e UClass \uff0c \u5e76\u4f1a \u81ea\u52a8 \u62fc\u63a5 Commandlet \u540e\u7f00 \uff1a / / Token -- XXXXCommandlet CommandletClass = FindObject < UClass > ( ANY _ PACKAGE , * Token , false ) ; \u62ff\u5230 UClass \u4e4b\u540e \uff0c \u521b\u5efa \u4e00\u4e2a \u5b9e\u4f8b \uff0c \u7136\u540e \u8c03\u7528 \u5b83 \u7684 Main \u51fd\u6570 \uff1a Unreal \\ CarlaUE4 \\ Plugins \\ CarlaTools \\ Source \\ CarlaTools \\ Private \\ Commandlet \\ GenerateTileCommandlet . cpp OpenDriveMap = NewObject < UOpenDriveToMap > ( this , OpenDriveClass ) ; OpenDriveMap - > FilePath = ParamsMap [ \" FilePath \" ] ; OpenDriveMap - > BaseLevelName = ParamsMap [ \" BaseLevelName \" ] ; OpenDriveMap - > OriginGeoCoordinates = FVector2D ( FCString : : Atof ( * ParamsMap [ \" GeoCoordsX \" ] ) , FCString : : Atof ( * ParamsMap [ \" GeoCoordsY \" ] ) ) ; OpenDriveMap - > CurrentTilesInXY = FIntVector ( FCString : : Atof ( * ParamsMap [ \" CTileX \" ] ) , FCString : : Atof ( * ParamsMap [ \" CTileY \" ] ) , 0 ) ; / / Parse Params OpenDriveMap - > GenerateTile ( ) ; \u6ce8\u610f \u662f \u542f\u52a8 \u4e86 \u6240\u6709 \u6a21\u5757 \u4e4b\u540e \u624d \u4f1a \u8fdb\u5165 \u5230 Commandlet \u7684 Main \u4e2d \uff0c \u610f\u5473 \u610f\u5473\u7740 \u6a21\u5757 \u7684 StartupModule \u5728 Main \u4e4b\u524d \u3002 \u5f15\u64ce \u6267\u884c Commandlet Main \u51fd\u6570 \u7684 \u8c03\u7528 \u6808 \uff1a","title":"\u8fd0\u884c Commandlet"},{"location":"ue_commandlet/#commandlet_4","text":"\u6839\u636e \u4e0a\u9762 \u7684 \u5185\u5bb9 \uff0c \u9700\u8981 \u8bb0\u4f4f \u4ee5\u4e0b \u4e24\u4e2a \u5173\u952e \u5173\u952e\u70b9 \uff1a Commandlet \u4f4d\u4e8e Editor \u6a21\u5757 \u5185 Commandlet \u8fdb\u5165 \u5230 Main \u4e4b\u540e \u5c31\u662f \u5b8c\u6574 \u7684 \u5f15\u64ce \u73af\u5883 \u56e0\u4e3a Commandlet \u662f \u4f4d\u4e8e Editor \u6a21\u5757 \u5185 \u7684 \uff0c \u6709 \u53ef\u80fd \u4f1a \u8c03\u7528 \u5230 \u6a21\u5757 \u5185 \u7684 \u5176\u4ed6 \u51fd\u6570 \uff0c \u4e3a\u4e86 \u533a\u5206 Editor \u542f\u52a8 \u8fd8\u662f Commandlet \u542f\u52a8 \uff0c \u53ef\u4ee5 \u7528 \u4ee5\u4e0b \u51fd\u6570 \u8fdb\u884c \u68c0\u6d4b \uff1a if ( : : IsRunningCommandlet ( ) ) { / / do something } \u4f20\u9012 \u8fdb\u6765 \u7684 \u662f \u4e0d \u5305\u542b \u5f15\u64ce \u8def\u5f84 \u548c \u9879\u76ee \u8def\u5f84 \u7684 \u53c2\u6570 \u3002 \u5982 \uff0c \u8fd0\u884c \u547d\u4ee4 \uff1a UE4Editor - cmd . exe G : \\ Client \\ FGame . uproject - skipcompile - run = HotChunker - TargetPlatform = IOS \u5219 \u63a5\u6536 \u5230 \u7684 \u53c2\u6570 \u4e3a \uff1a - skipcompile - run = HotChunker - TargetPlatform = IOS \u53ef\u4ee5 \u901a\u8fc7 \u89e3\u6790 \u8be5 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5728 Commandlet \u6267\u884c \u7279\u6b8a \u884c\u4e3a \u3002 \u4ee5 HotPatcher \u4e3a\u4f8b \uff0c \u53ef\u4ee5 \u901a\u8fc7 - config = \u6307\u5b9a \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \uff0c \u5728 Commandlet \u4e2d \u5c31 \u4f1a \u8bfb\u53d6 \u5e76 \u6839\u636e \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u6267\u884c \u3002","title":"\u68c0\u6d4b Commandlet"},{"location":"ue_commandlet/#tick","text":"Commandlet \u9ed8\u8ba4 \u662f \u4e00\u4e2a \u72ec\u7acb \u8fc7\u7a0b \u884c\u4e3a \uff0c \u4e0d\u4f1a \u9a71\u52a8 \u5f15\u64ce Tick \uff0c \u5c31 \u50cf \u4e00\u4e2a \u666e\u901a \u7684 \u51fd\u6570 \uff0c \u6240\u6709 \u4ee3\u7801 \u6267\u884c \u4ee3\u7801\u6267\u884c \u5b8c\u6bd5 \u4e4b\u540e \uff0c \u79bb\u5f00 \u5f53\u524d \u7684 \u4f5c\u7528 \u4f5c\u7528\u57df \uff0c \u5c31 \u8bf7\u6c42 \u9000\u51fa \u5f15\u64ce \u4e86 \u3002","title":"\u9a71\u52a8 Tick"},{"location":"ue_commandlet/#cmdlet","text":"\u4ee5 Cook \u4e3a\u4f8b \uff0c \u5b83 \u662f \u62c9 \u8d77\u6765 \u4e86 \u4e00\u4e2a CookCommandlet \u53bb \u6267\u884c \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5f15\u64ce \u5e76 \u6ca1\u6709 \u7ed9 \u6211\u4eec \u7559 \u53e3\u5b50 \uff0c \u53bb \u4ecb\u5165 \u5230 Cook \u7684 \u5404\u4e2a \u9636\u6bb5 \uff0c \u5982\u679c \u60f3\u8981 \u5728 \u6253\u5305 \u7684 \u8fc7\u7a0b \u4e2d\u53bb \u505a \u4e00\u4e9b \u64cd\u4f5c \uff0c \u5c31 \u9700\u8981 \u81ea\u5df1 \u64cd\u7eb5 UAT \u628a \u6784\u5efa \u8fc7\u7a0b \u62c6\u5f00 \uff0c \u81ea\u5df1 \u7ef4\u62a4 \u5404\u4e2a \u6d41\u7a0b \u3002 \u4f46 \u8fd9\u4e48 \u505a \u7684 \u4ee3\u4ef7 \u6bd4\u8f83 \u9ad8 \uff0c \u8003\u8651 \u4ee5\u4e0b \u8fd9\u4e9b \u9700\u6c42 \uff1a \u5728 Cook \u5b8c\u6bd5 \u4e4b\u540e \u53bb \u8bad\u7ec3 Shader \u7684 \u5b57\u5178 \uff0c \u5e76 \u628a \u7528 \u5b57\u5178 \u538b\u7f29 \u7684 ShaderLibrary \u66ff\u6362 \u539f\u59cb \u7684 \u3002 \u5728 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8981 \u5b9e\u73b0 \u5b83 \uff0c \u5c31 \u9700\u8981 \u628a \u6253\u5305 \u8fc7\u7a0b \u5728 Cook \u4e4b\u540e \u505c\u6389 \uff0c \u5904\u7406 \u5b8c \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u6d41\u7a0b \u4e4b\u540e \uff0c \u518d \u8fdb\u5165 \u7684 UnrealPak \u9636\u6bb5 \uff0c \u63a5\u7740 \u6267\u884c \u3002 \u6574\u4e2a \u8fc7\u7a0b \u90fd \u6bd4\u8f83 \u7684 \u7e41\u7410 \uff0c \u5982\u679c \u6211\u4eec \u60f3\u8981 \u5728 Cook \u4e4b\u540e \u81ea\u52a8 \u6267\u884c \uff0c \u8fd8 \u53ef\u4ee5 \u7528 \u53e6 \u4e00\u79cd \u65b9\u5f0f \uff0c \u4ecb\u5165 \u5230 Commandlet \u7684 \u6267\u884c \u8fdb\u7a0b \u4e2d \u3002 \u6839\u636e \u524d\u6587 \u7684 \u4ecb\u7ecd \u6211\u4eec \u77e5\u9053 \uff0c Commandlet \u5728 \u6267\u884c \u4e2d \uff0c \u4e5f \u662f \u4f1a \u6267\u884c \u6a21\u5757 \u7684 StartupModule \u53ca ShutdownModule \u7684 \uff0c \u800c \u6211\u4eec \u60f3\u8981 \u4ecb\u5165 \u5230 Cmdlet \u4e2d \u6267\u884c \uff0c \u5c31\u662f \u8981 \u5229\u7528 \u8fd9\u4e2a \u7279\u6027 \u3002 \u540c\u6837 \u4ee5 Cook \u4e4b\u540e \uff0c \u8ba9 \u5f15\u64ce \u62c9 \u8d77 \u6211\u4eec \u7684 \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 \u5904\u7406 \u6d41\u7a0b \u4e3a\u4f8b \uff0c \u53ef\u4ee5 \u62c6\u89e3 \u8fd9\u4e2a \u9700\u6c42 \uff1a \u786e\u5b9a \u662f\u5426 \u8fd0\u884c \u5728 CookCommandlet \u4e2d \u5728 Cook \u6267\u884c \u5b8c\u6bd5 \u540e \uff0c \u5f15\u64ce \u9000\u51fa \u4e4b\u524d \u7684 \u65f6\u673a \u6267\u884c \u5173\u4e8e \u7b2c\u4e00 \u4e00\u70b9 \u7b2c\u4e00\u70b9 \uff0c \u6211\u4eec \u53ef\u4ee5 \u89e3\u6790 \u542f\u52a8 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u5e76 \u68c0\u67e5 - run = \u7684 Token \u4e0d\u662f \u662f\u4e0d\u662f Cook \uff0c \u5c31 \u80fd \u786e\u5b9a \u662f\u5426 \u662f\u5426\u662f \u5728 CookCommandlet \u4e2d \uff1a","title":"\u4ecb\u5165 \u5230 \u67d0\u4e2a Cmdlet \u6d41\u7a0b"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/","text":"FEniCS \u5b89\u88c5 \u4e0e \u4f7f\u7528 \u5b89\u88c5 \u8fdb\u5236 \u4e8c\u8fdb\u5236 add - apt - repository ppa : fenics - packages / fenics apt update apt install fenicsx \u5b89\u88c5 \u53ef\u89c6 \u53ef\u89c6\u5316 apt install libgl1 - mesa - glx xvfb \u5b89\u88c5 conda \u4e0b\u8f7d Anaconda wget https : / / mirrors . bfsu . edu . cn / anaconda / archive / Anaconda3 - 2022.10 - Linux - x86 _ 64 . sh -- no - check - certificate \u5b89\u88c5 bash Anaconda3xxxxxxx . sh \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf source ~ / . bashrc \u5347\u7ea7 \uff08 \u53ef \u9009 \uff09 conda update - n base - c defaults conda \u521b\u5efa \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 conda creat - n fenicsx - env conda activate fenicsx - env conda install - c conda - forge fenics - dolfinx mpich pyvista \u4f7f\u7528 \u8be5 \u73af\u5883 \u8fd0\u884c \u4ee3\u7801 \uff0c \u6bd4\u5982 \u5b98\u7f51 \u4f8b\u5b50 \u6216 test . ipynb","title":"FEniCS \u5b89\u88c5 \u4e0e \u4f7f\u7528"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#fenics","text":"","title":"FEniCS \u5b89\u88c5 \u4e0e \u4f7f\u7528"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#_1","text":"add - apt - repository ppa : fenics - packages / fenics apt update apt install fenicsx","title":"\u5b89\u88c5 \u4e8c\u8fdb\u5236"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#_2","text":"apt install libgl1 - mesa - glx xvfb","title":"\u5b89\u88c5 \u53ef\u89c6\u5316"},{"location":"OpenRadioss/FEniCS%20%E5%AE%89%E8%A3%85%E4%B8%8E%E4%BD%BF%E7%94%A8/#conda","text":"\u4e0b\u8f7d Anaconda wget https : / / mirrors . bfsu . edu . cn / anaconda / archive / Anaconda3 - 2022.10 - Linux - x86 _ 64 . sh -- no - check - certificate \u5b89\u88c5 bash Anaconda3xxxxxxx . sh \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf source ~ / . bashrc \u5347\u7ea7 \uff08 \u53ef \u9009 \uff09 conda update - n base - c defaults conda \u521b\u5efa \u865a\u62df \u73af\u5883 \u865a\u62df\u73af\u5883 conda creat - n fenicsx - env conda activate fenicsx - env conda install - c conda - forge fenics - dolfinx mpich pyvista \u4f7f\u7528 \u8be5 \u73af\u5883 \u8fd0\u884c \u4ee3\u7801 \uff0c \u6bd4\u5982 \u5b98\u7f51 \u4f8b\u5b50 \u6216 test . ipynb","title":"\u5b89\u88c5 conda"},{"location":"OpenRadioss/FEniCSBuildFromSource/","text":"\u73af\u5883 C++ compiler ( supporting the C++ 20 standard ) apt install build - essential Boost , with the following compiled Boost components apt install libboost - all - dev CMake [ build dependency ] / / \u5b89\u88c5 \u7279\u5b9a \u7248\u672c sudo wget https : / / cmake . org / files / v3.27 / cmake - 3.27 . 0 . tar . gz sudo tar - zxvf cmake - 3.27 . 0 . tar . gz cd cmake - 3.27 . 0 sudo . / configure sudo make sudo make install / / \u67e5\u770b \u7248\u672c cmake -- version pkg - config apt install pkgconf Basix / / \u5efa\u8bae \u4f7f\u7528 conda \u521b\u5efa \u65b0 \u73af\u5883 \u4e4b\u540e \u5b89\u88c5 / / \u4e0d \u4f7f\u7528 pip install fenics - basix \u56e0\u4e3a \u662f\u56e0\u4e3a \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 \u4f7f\u7528 0.7 \u7248\u672c \uff0c \u800c \u4e0a\u8ff0 \u547d\u4ee4 \u662f 0.6 \u7248\u672c pip install git + https : / / github . com / FEniCS / basix . git pugixml apt install pugixml - doc UFCx [ ufcx . h , provided by FFCx ] pip \u5b89\u88c5 pip install fenics - ffcx \u6b64\u65f6 \u5b89\u88c5 \u7684 \u662f 0.6 \u7248\u672c \u3002 \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 0.7 \u7248\u672c \u4ece \u6e90\u7801 \u5b89\u88c5 git clone https : / / github . com / FEniCS / ffcx . git pip install . \u6b64\u65f6 \u7f16\u8bd1 \u5931\u8d25 = \u2026 = MPI sudo apt - get install openmpi - bin openmpi - doc libopenmpi - dev HDF5 ( with MPI support enabled ) apt install libhdf5 - mpi - dev PETSc git clone - b release https : / / gitlab . com / petsc / petsc . git petsc . / configure / / . / configure \u540e \u4f1a \u63d0\u793a \u5982\u4f55 make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all / / \u4e4b\u540e \u6309 \u63d0\u793a check make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug check / / \u5b89\u88c5 \u5916\u90e8 \u5305 mumps \u3001 apt install bison . / configure -- download - mumps -- download - scalapack -- download - parmetis -- download - metis -- download - ptscotch / / . / configure \u5b8c \u63d0\u793a make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all At least one of ParMETIS , KaHIP or PT - SCOTCH apt install libparmetis - dev","title":"FEniCSBuildFromSource"},{"location":"OpenRadioss/FEniCSBuildFromSource/#_1","text":"C++ compiler ( supporting the C++ 20 standard ) apt install build - essential Boost , with the following compiled Boost components apt install libboost - all - dev CMake [ build dependency ] / / \u5b89\u88c5 \u7279\u5b9a \u7248\u672c sudo wget https : / / cmake . org / files / v3.27 / cmake - 3.27 . 0 . tar . gz sudo tar - zxvf cmake - 3.27 . 0 . tar . gz cd cmake - 3.27 . 0 sudo . / configure sudo make sudo make install / / \u67e5\u770b \u7248\u672c cmake -- version pkg - config apt install pkgconf Basix / / \u5efa\u8bae \u4f7f\u7528 conda \u521b\u5efa \u65b0 \u73af\u5883 \u4e4b\u540e \u5b89\u88c5 / / \u4e0d \u4f7f\u7528 pip install fenics - basix \u56e0\u4e3a \u662f\u56e0\u4e3a \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 \u4f7f\u7528 0.7 \u7248\u672c \uff0c \u800c \u4e0a\u8ff0 \u547d\u4ee4 \u662f 0.6 \u7248\u672c pip install git + https : / / github . com / FEniCS / basix . git pugixml apt install pugixml - doc UFCx [ ufcx . h , provided by FFCx ] pip \u5b89\u88c5 pip install fenics - ffcx \u6b64\u65f6 \u5b89\u88c5 \u7684 \u662f 0.6 \u7248\u672c \u3002 \u4ece \u6e90\u7801 \u7f16\u8bd1 \u9700\u8981 0.7 \u7248\u672c \u4ece \u6e90\u7801 \u5b89\u88c5 git clone https : / / github . com / FEniCS / ffcx . git pip install . \u6b64\u65f6 \u7f16\u8bd1 \u5931\u8d25 = \u2026 = MPI sudo apt - get install openmpi - bin openmpi - doc libopenmpi - dev HDF5 ( with MPI support enabled ) apt install libhdf5 - mpi - dev PETSc git clone - b release https : / / gitlab . com / petsc / petsc . git petsc . / configure / / . / configure \u540e \u4f1a \u63d0\u793a \u5982\u4f55 make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all / / \u4e4b\u540e \u6309 \u63d0\u793a check make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug check / / \u5b89\u88c5 \u5916\u90e8 \u5305 mumps \u3001 apt install bison . / configure -- download - mumps -- download - scalapack -- download - parmetis -- download - metis -- download - ptscotch / / . / configure \u5b8c \u63d0\u793a make make PETSC _ DIR = \u5b89\u88c5 \u4f4d\u7f6e PETSC _ ARCH = arch - linux - c - debug all At least one of ParMETIS , KaHIP or PT - SCOTCH apt install libparmetis - dev","title":"\u73af\u5883"},{"location":"OpenRadioss/examples/","text":"\u793a\u4f8b \u6a21\u578b Yaris \u4ee5 40 \u516c\u91cc / \u5c0f\u65f6 \u7684 \u901f\u5ea6 \u649e\u51fb \u6746\u5b50 \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \uff0c \u5305\u62ec \u798f\u7279 \u91d1\u725b \u91d1\u725b\u5ea7 1000 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3001 \u514b\u83b1 \u83b1\u65af \u514b\u83b1\u65af \u514b\u83b1\u65af\u52d2 Neon 100 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u4fdd\u9669 \u4fdd\u9669\u6760 \u6a2a\u6881 LS - DYNA \u00ae \u683c\u5f0f \u7684 \u51ef\u7f8e\u745e \u51b2\u51fb \u6a21\u578b LS - DYNA \u00ae \u683c\u5f0f \u7684 Yaris \u51b2\u51fb \u6a21\u578b","title":"Examples"},{"location":"OpenRadioss/examples/#_1","text":"Yaris \u4ee5 40 \u516c\u91cc / \u5c0f\u65f6 \u7684 \u901f\u5ea6 \u649e\u51fb \u6746\u5b50 \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \uff0c \u5305\u62ec \u798f\u7279 \u91d1\u725b \u91d1\u725b\u5ea7 1000 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3001 \u514b\u83b1 \u83b1\u65af \u514b\u83b1\u65af \u514b\u83b1\u65af\u52d2 Neon 100 \u4e07 \u5143\u7d20 HPC \u57fa\u51c6 \u6d4b\u8bd5 \u3002 \u4fdd\u9669 \u4fdd\u9669\u6760 \u6a2a\u6881 LS - DYNA \u00ae \u683c\u5f0f \u7684 \u51ef\u7f8e\u745e \u51b2\u51fb \u6a21\u578b LS - DYNA \u00ae \u683c\u5f0f \u7684 Yaris \u51b2\u51fb \u6a21\u578b","title":"\u793a\u4f8b \u6a21\u578b"},{"location":"OpenRadioss/use_OpenRadioss_linux/","text":"Linux \u4e0b OpenRadioss \u7684 \u7f16\u8bd1 \u73af\u5883 Ubuntu 20.0 . 4 or higher apt - get update apt - get upgrade apt - get install build - essential apt - get install gfortran apt - get install cmake apt - get install perl apt - get install python3 apt - get install python - is - python3 apt - get install git - lfs apt - get install openmpi - bin openmpi - doc libopenmpi - dev apt - get install paraview \u63a8\u8350 \u7248\u672c \u4e3a gcc - 11 , g ++- 11 , gfortran - 11 \u3002 paraview \u7528\u4e8e \u540e\u671f \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002 \u7f16\u8bd1 \u6307\u4ee4 \u83b7\u53d6 \u6e90\u7801 LFS : git lfs install \u8fd0\u884c ( \u8fd9\u91cc \u9700\u8981 \u5148 \u7ed1\u5b9a SSH key ) git clone git @ github . com : OpenRadioss / OpenRadioss . git . OpenRadioss Starter \u8fdb\u5165 OpenRadioss / starter \u76ee\u5f55 cd OpenRadioss / starter \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Execution control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory OpenRadioss Engine \u8fdb\u5165 OpenRadioss / engine \u76ee\u5f55 \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf - mpi = ompi . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - arch = linux64 _ gf - mpi = ompi ( OpenMPI executable / Gfortran compiler ) MPI libraries - mpi = [ mpi ] not set : SMP ( default ) - mpi = ompi : OpenMPI Controling MPI Libraries - if need choose one of the 3 Option Set If no options set , recommended OpenMPI directories are uses ( default ) 1 . - mpi - os : link with default MPI version installed on system libraries are in default installation 2 . - mpi - root = [ directory ] : set rootname to link with specific MPI installation 3 . - mpi - include = [ directory ] : set include directory where to find mpif . h and mpi . h - mpi - libdir = [ directory ] : set library directory where to find mpi libraries Other control - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Build control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory MUMPS linear solver : available only for dp , with mpi \" - mumps _ root = [ path _ to _ mumps ] : path _ to _ mumps / lib / libdmumps . a must exist - scalapack _ root = [ path to scalapack ] : path _ to _ scalapack / libscalapack . a must exist - lapack _ root = [ path to lapack ] : path _ to _ lapack / liblapack . a must exist \u81ea\u52a8 \u81ea\u52a8\u5316 \u811a\u672c \uff08 \u5f85\u5b9a \uff09 cd starter . / build _ script . sh - arch = linux64 _ gf cd .. / engine . / build _ script . sh - arch = linux64 _ gf - mpi = ompi OpenRadioss \u7684 \u4f7f\u7528 \u524d \u5904\u7406 gmsh \u4f7f\u7528 Gmsh \u7684 \u7ba1\u5b50 \u63a5\u89e6 \u6559\u7a0b \u4f7f\u7528 Gmsh \u7684 \u62c9\u4f38 \u6d4b\u8bd5 \u793a\u4f8b \u6559\u7a0b Hypermesh lsprepost ( * ) \u8ba1\u7b97 \u5904\u7406 \u540e\u5904\u7406 ParaView vtk \u8f6c fbx \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002 \u4f7f\u7528 LSDYNA \u683c\u5f0f \u8f93\u5165 \u6d4b\u8bd5 \u5b9e\u4f8b \u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u62c9\u4f38 \u6a21\u62df \u3002 bash \u811a\u672c myjobname = $ ( echo \" $ 1 \" ) echo $ myjobname \" running in OpenRadioss \" export OMP _ STACKSIZE = 400m export OMP _ NUM _ THREADS = 8 . / starter _ linux64 _ gf - i \" .. / source / \" $ myjobname \" . k \" - np $ 2 - outfile = \" .. / output \" #. / starter _ linux64 _ gf - i $ myjobname \" . k \" - np $ 2 - nt 4 # \u8fd9\u91cc \u662f \u627e\u5230 source \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \uff0c LS - DYNA \u683c\u5f0f \u6587\u4ef6 \u683c\u5f0f\u6587\u4ef6 \uff08 . k \uff09 \u5e76 \u5c06 \u5176 \u4f20\u9012 \u7ed9 starter \u8fdb\u884c \u8ba1\u7b97 \u3002 mpiexec - n $ 2 -- map - by socket : PE = $ OMP _ NUM _ THREADS -- bind - to core . / engine _ linux64 _ gf _ ompi - i \" .. / bin / \" $ myjobname \" _ 0001 . rad \" - outfile = \" .. / output \" # mpiexec - n $ 2 . engine _ linux64 _ gf _ ompi - i $ myjobname \" _ 0001 . rad \" - nt 1 # \u5728 \u5904\u7406 . k \u6587\u4ef6 \u65f6 \uff0c starter \u4f1a \u5728 \u5176 \u76ee\u5f55 \u4e0b \u751f\u6210 \" _ 0001 . rad \" \u6587\u4ef6 \uff0c \u9700\u8981 \u5c06 \u5176 \u4f20\u9012 \u7ed9 engine BASEDIR = $ ( dirname \" $ 0 \" ) for file in .. / output / * ; do if [ - n \" $ { file : - 3 } \" ] && [ \" $ { file : - 3 } \" - eq \" $ { file : - 3 } \" ] 2 > / dev / null && [ [ \" $ { file : - 4 : 1 } \" = = \" A \" ] ] ; then . / anim _ to _ vtk _ linux64 _ gf $ file > \" $ file . vtk \" echo \" $ file is converted \" # anim \u6587\u4ef6 \u8f6c\u5316 \u4e3a vtk \u6587\u4ef6 elif [ [ \" $ { file : - 3 } \" = = \" T01 \" ] ] ; then . / th _ to _ csv _ linux64 _ gf $ file CSV = \" $ file . csv \" # T01 \u6587\u4ef6 \u8f6c\u5316 \u4e3a csv \u6587\u4ef6 fi done cd .. / output / # paraview $ myjobname \" A .. vtk \" $ CSV paraview $ myjobname \" A .. vtk \" $ CSV exit \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u8f93\u5165 bash process _ k . sh zug _ test3 _ RS 1 \u5373\u53ef \u3002 \u5176\u4e2d process _ k . sh \u662f \u811a\u672c \u540d\u5b57 \uff0c zug _ test3 _ RS \u662f \u6a21\u578b \u540d\u5b57 \uff0c 1 \u662f \u5e76\u884c \u8fdb\u7a0b \u6570 \u3002 \u8fd0\u884c \u7ed3\u679c \u603b\u7ed3 \u5728 \u4f7f\u7528 Openadioss \u5904\u7406 LS - DYNA \u683c\u5f0f \u7684 \u6587\u4ef6 \u65f6 \uff0c \u9700\u8981 . k \u6587\u4ef6 \u3002 \u8fd9\u4e2a \u6587\u4ef6 \u5176\u5b9e \u662f \u53ef\u4ee5 \u76f4\u63a5 \u653e\u5728 LS - DYNA \u4e0a \u8fdb\u884c \u8ba1\u7b97 \u7684 \u3002 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5176\u4ed6 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u2014 \u2014 \u4f7f\u7528 OpenRadioss \u3002 To Do \u9700\u8981 \u9a8c\u8bc1 \u8ba1\u7b97 \u7684 \u6b63\u786e \u6b63\u786e\u6027 \uff1a \u4e5f \u5c31\u662f \u4f7f\u7528 LS - DYNA \u8ba1\u7b97 \u540c\u6837 \u7684 \u4f8b\u5b50 \uff0c \u89c2\u5bdf \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u662f\u5426 \u6709 \u51fa\u5165 \u3002 LS - DYNA \u662f \u5546\u4e1a \u8f6f\u4ef6 \u5546\u4e1a\u8f6f\u4ef6 \uff0c \u80fd \u627e\u5230 \u7684 \u8f6f\u4ef6 \u4e0d \u652f\u6301 Ubuntu \u7cfb\u7edf \u3002 \u53ef\u4ee5 \u5728 windows \u4e0b \u4eff\u771f \uff0c \u5c06 \u7ed3\u679c \u548c \u8fdb\u884c \u5bf9\u6bd4 \u3002 \u5982\u4f55 \u8861\u91cf \u8bef\u5dee \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u6709 \u5f88\u591a \u9700\u8981 \u8003\u8651 \u7684 \uff0c \u6bd4\u5982 \u6bc1\u4f24 \u9762\u79ef \u3001 \u6bc1\u4f24 \u6df1\u5ea6 \u3002 \u5728 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u4e0a \u8fd0\u884c OpenRadioss \u6ca1\u6709 \u6743\u9650 \u3002 \u3002 \u3002 = = OpenRadioss \u4e8c\u6b21 \u5f00\u53d1 \u4e8c\u6b21\u5f00\u53d1 READ _ MATERIAL _ MODELS . F \u8fd9 \u6bb5 \u4ee3\u7801 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a Fortran \u7684 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f READ _ MATERIAL _ MODELS \uff0c \u5176 \u4e3b\u8981 \u529f\u80fd \u662f \u7ba1\u7406 \u4e0e \u6750\u6599 \u6a21\u578b \u76f8\u5173 \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5305\u62ec \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \uff08 Constitutive Laws \uff09 \uff1a / MAT \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \uff08 Equations of State \uff09 \uff1a / EOS \u5931\u6548 \u6a21\u578b \uff08 Failure models \uff09 \uff1a / FAIL \u7c98\u6027 \u6a21\u578b \uff08 Viscosity \uff09 \uff1a / VISC \u70ed \u53c2\u6570 \uff08 Thermal parameters \uff09 \uff1a / HEAT \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u5165 \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e BUFMAT \uff1a \u6750\u6599 \u6570\u636e \u7684 \u7f13\u5b58 \u533a BUFLEN \uff1a \u7f13\u5b58 \u533a \u7684 \u957f\u5ea6 IPM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u6574\u578b \u6570\u7ec4 PM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u5b9e\u578b \u6570\u7ec4 UNITAB \uff1a \u5355\u4f4d \u5236\u8868 MULTI _ FVM \uff1a \u591a\u91cd \u6709\u9650 \u4f53\u79ef \u6cd5 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 MAXEOS \uff1a \u6700\u5927 \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u6570 FAILWAVE \uff1a \u5931\u6548 \u6ce2 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NLOC _ DMG \uff1a \u975e \u5c40\u90e8 \u635f\u4f24 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 LSUBMODEL \uff1a \u5b50 \u6a21\u578b \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 TABLE \uff1a \u8868 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NPC \uff1a \u6570\u7ec4 NPC \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u51fa \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u8fd8 \u8c03\u7528 \u4e86 \u5176\u4ed6 \u4e00\u4e9b \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \uff0c \u4f8b\u5982 HM _ READ _ MAT \u3001 HM _ READ _ EOS \u3001 HM _ READ _ FAIL \u3001 HM _ READ _ VISC \u3001 HM _ READ _ LEAK \u3001 READ _ ALE _ MAT \u3001 READ _ EULER _ MAT \u3001 FILL _ BUFFER _ 51 _ 0 \u3001 HM _ READ _ THERM \u3001 HM _ READ _ THERM _ STRESS \u548c HM _ READ _ NONLOCAL \u7b49 \uff0c \u7528\u4e8e \u8bfb\u53d6 \u4e0d\u540c \u7c7b\u578b \u7684 \u6750\u6599 \u6a21\u578b \u6570\u636e \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8003\u8651 \u5206\u6790 HM _ READ _ MAT \u7a0b\u5e8f \uff0c \u5206\u6790 \u8f6f\u4ef6 \u662f \u5982\u4f55 \u4f5c \u7684 \u3002 HM _ READ _ MAT . F \u8fd9\u662f \u7528\u4e8e \u8bfb\u53d6 \u6709\u9650 \u6709\u9650\u5143 \u5206\u6790 \u8f6f\u4ef6 \u4e2d \u7684 \u6750\u6599 \u6a21\u578b \u5b9a\u4e49 \u7684 \u4ee3\u7801 \u3002 \u5b83 \u5b9a\u4e49 \u4e86 \u9605\u8bfb \u6750\u6599 \u6a21\u578b \u6240 \u9700 \u7684 \u5404\u79cd \u6a21\u5757 \u3001 \u53c2\u6570 \u548c \u516c\u5171 \u5757 \u3002 \u5176\u4e2d \u5305\u62ec \u6750\u6599 \u5b9a\u5f8b \u6807\u7b7e \u3001 \u6750\u6599 \u53c2\u6570 \u3001 \u5355\u4f4d \u7b49 \u3002 \u4e3b \u4f8b\u7a0b \u662f HM _ READ _ MAT \u3002 \u5b83 \u5faa\u73af \u904d\u5386 \u6a21\u578b \u4e2d \u5b9a\u4e49 \u7684 \u6bcf\u79cd \u6750\u6599 ( HM _ NUMMAT ) \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u6750\u6599 \uff0c \u5b83 \u6839\u636e \u6750\u6599 \u5b9a\u5f8b \u5173\u952e \u5173\u952e\u5b57 \uff08 MAT00 \u3001 MAT01 \u7b49 \uff09 \u8c03\u7528 \u7279\u5b9a \u7684 \u8bfb\u53d6 \u4f8b\u7a0b \u3002 \u8fd9\u4e9b \u8bfb\u53d6 \u4f8b\u7a0b \u4f4d\u4e8e mat \u5b50\u76ee \u76ee\u5f55 \u5b50\u76ee\u5f55 \u4e2d \u7684 \u5355\u72ec \u6587\u4ef6 \u4e2d \u3002 \u8bfb\u53d6 \u4f8b\u7a0b \u89e3\u6790 \u8f93\u5165 \u3001 \u586b\u5145 \u6750\u6599 \u53c2\u6570 \u6570\u7ec4 \u3001 \u8bbe\u7f6e \u6750\u6599 \u6240 \u9700 \u6570\u636e \u7684 \u6807\u5fd7 \uff0c \u5e76 \u5b58\u50a8 \u6750\u6599 ID \u3001 \u5b9a\u5f8b \u7c7b\u578b \u3001 \u5e94\u53d8 \u7387 \u8bbe\u7f6e \u7b49 \u5185\u5bb9 \u3002 \u8bfb\u53d6 \u6750\u6599 \u540e \uff0c \u5b83\u4f1a \u8fdb\u884c \u4e00\u4e9b \u5904\u7406 \u540e\u5904\u7406 \uff0c \u4f8b\u5982 \u8ba1\u7b97 \u6d3e\u751f \u503c \uff08 \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf \uff09 \u3001 \u68c0\u67e5 \u91cd\u590d ID \u4ee5\u53ca \u8ba1\u7b97 \u8f93\u51fa \u6240 \u9700 \u6570\u91cf \u7684 \u5e73\u65b9 \u65b9\u6839 \u5e73\u65b9\u6839 \u3002 \u6bcf\u79cd \u6750\u6599 \u7684 \u5c5e\u6027 \u5b58\u50a8 \u5728 MAT _ PARAM \u6570\u7ec4 \u548c \u5404\u79cd \u5176\u4ed6 \u516c\u5171 \u5757 \u4e2d \u3002 \u603b\u4e4b \uff0c \u5b83 \u5faa\u73af \u904d\u5386 \u6750\u6599 \uff0c \u8c03\u7528 \u7279\u5b9a \u4e8e \u5b9a\u5f8b \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5e76 \u5c06 \u6240\u6709 \u6750\u6599 \u6570\u636e \u6536\u96c6 \u5230 \u53c2\u6570 \u6570\u7ec4 \u548c \u901a\u7528 \u5757 \u4e2d \uff0c \u4ee5\u4fbf \u7a0d\u540e \u5728 FEA \u5206\u6790 \u4e2d \u4f7f\u7528 \u3002 \u5173\u952e \u90e8\u5206 \u662f \u6a21\u5757 \u6a21\u5757\u5316 \u6cd5\u5219 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \u548c \u7528\u4e8e \u4fdd\u5b58 \u6750\u6599 \u9053\u5177 \u7684 \u4e2d\u592e MAT _ PARAM \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u56e0\u6b64 \uff0c \u60f3\u8981 \u5b9a\u4e49 \u5168\u65b0 \u7684 \u6750\u6599 \uff0c \u6240\u8981 \u505a \u7684 \u4e8b\u60c5 \u662f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 MATxxx \u6587\u4ef6 \u3002 Radioss \u4e2d \u6750\u6599 \u672c\u6784 \u540c\u6027 \u5404\u5411\u540c\u6027 \u5f39\u6027 Description Model Name Keyword / MAT Law # \u7a7a \u6750\u6599 Void / VOID 0 \u7ebf \u5f39\u6027 Elastic ( Hooke ) / ELAST 1 \u8d85 \u5f39\u6027 Tabulated Hyperelastic n / a 69 \u8d85 \u5f39\u6027 Ogden Formulation n / a 82 #### \u5404\u9879 \u540c\u6027 \u5851\u6027 \u5f39\u5851\u6027 LAW 2 / 36 #### \u5176\u4ed6 #### \u7206\u70b8 Description Model Name Keyword / MAT Law # ----------- ----------- --- --- Detonation driven Jones Wilkins Lee / JEL 5 Hydrodynamics Lee - Tarver / LEE - TARVER 41 Multi - materials Soild , liquid , gas and explosives / MULTIMAT 51 #### \u5931\u6548 \u6a21\u578b \u2014 \u2014 / FAIL / Tuler - Butcher \u9ad8\u901f \u78b0\u649e \u5931\u6548 ### \u4f8b\u5b50 \u2014 \u2014 / MAT / LAW1 \u6216 / MAT / ELAST : \u5f39\u6027 \u6750\u6599 * LAW1 \u4f7f\u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5bf9 \u540c\u6027 \u5404\u5411\u540c\u6027 \uff0c \u7ebf \u5f39\u6027 \u6750\u6599 \u8fdb\u884c \u5efa\u6a21 * \u53ef \u7528\u4e8e \u6746 \uff0c \u6881 \uff0c \u58f3 \u4ee5\u53ca \u5b9e\u4f53 solids * \u9002\u7528 \u4e8e \u8fde\u63a5 \u521a\u4f53 * \u4e0d \u9002\u7528 \u5f62\u53d8 \u5927 \u7684 \u6784\u4ef6 \u5851\u6027 \u5f39\u5851\u6027 \u5e94\u529b \u2014 \u2014 \u5e94\u53d8 \u66f2\u7ebf \u771f\u5b9e \u5e94\u529b \u5f62\u53d8 * \u771f\u5b9e \u5e94\u529b \uff1a \u8003\u8651 \u5f53\u524d \u6216 \u771f\u5b9e \u622a\u9762 \u6a2a\u622a\u9762 \u79ef $ A _ { true } $ \u7684 \u5e94\u529b $ $ \\ sigma _ { true } = \\ frac { P _ x } { A _ { true } } $ $ * \u5728 \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u8303\u56f4 \u5185 \uff0c \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u622a\u9762 \u6a2a\u622a\u9762 \u79ef \u6c38\u4e45 \u51cf\u5c0f * \u7ee7\u7eed \u4f7f\u7528 \u5de5\u7a0b \u5e94\u529b \u4e0d\u518d \u51c6\u786e #### MAT1 \u5b9a\u4e49 \u65b9\u5f0f \u8fd9\u4e2a \u5173\u952e \u5173\u952e\u8bcd \u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u540c\u6027 \u5404\u5411\u540c\u6027 \u7684 \u7ebf \u5f39\u6027 \u6750\u6599 \u3002 \u8fd9\u4e2a \u5b9a\u5f8b \u8868\u793a \u5e94\u529b \u548c \u5e94\u53d8 \u4e4b\u95f4 \u7684 \u7ebf\u6027 \u5173\u7cfb \u6027\u5173\u7cfb \u7ebf\u6027\u5173\u7cfb \u3002 \u5b83 \u53ef \u7528\u4e8e \u6841\u67b6 \uff0c \u6881 ( \u4ec5 3 \u578b ) \uff0c \u58f3 \u548c \u5b9e\u4f53 \u5143\u4ef6 \u3002 \u683c\u5f0f \u5b9a\u4e49 \u4f8b\u5b50 \u539f\u7406 \uff1a \u8be5 \u6750\u6599 \u9002\u7528 \u4e8e \u7eaf\u7cb9 \u7684 \u5f39\u6027 \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u6027\u80fd \u53ea \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4e24\u4e2a \u56e0\u7d20 \uff1a \u6a21\u91cf \u6768\u6c0f\u6a21 \u6768\u6c0f\u6a21\u91cf : $ E $ \u6cca\u677e\u6bd4 : $ \\ nu $ \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf : ( \u53ef \u8ba1\u7b97 ) $ $ G = \\ frac { E } { 2 ( 1 + \\ nu ) } $ $ \u5e94\u529b \u5e94\u53d8 \u5173\u7cfb $ $ \\ begin { bmatrix } \\ epsilon _ { 11 } \\ \\ epsilon _ { 22 } \\ \\ epsilon _ { 33 } \\ \\ gamma _ { 23 } \\ \\ gamma _ { 31 } \\ \\ gamma _ { 12 } \\ end { bmatrix } = \\ frac { 1 } { E } \\ begin { bmatrix } 1 &- \\ nu &- \\ nu & 0 & 0 & 0 \\ - \\ nu & 1 &- \\ nu & 0 & 0 & 0 \\ - \\ nu &- \\ nu & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 & 0 \\ 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 \\ 0 & 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) \\ end { bmatrix } \\ begin { bmatrix } \\ sigma _ { 11 } \\ \\ sigma _ { 22 } \\ \\ sigma _ { 33 } \\ \\ sigma _ { 23 } \\ \\ sigma _ { 31 } \\ \\ sigma _ { 12 } \\ end { bmatrix } $ $ \u5bc6\u5ea6 \u503c \u901a\u5e38 \u7528\u4e8e \u663e\u5f0f \u6a21\u62df \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4e8e \u9759\u6001 \u9690\u5f0f \u6a21\u62df \uff0c \u4ee5\u4fbf \u5728 \u62df \u9759\u6001 \u5206\u6790 \u4e2d \u8fbe\u5230 \u66f4\u597d \u7684 \u6536\u655b \u6536\u655b\u6027 \u3002 \u5f53 \u901a\u8fc7 \u58f3\u4f53 \u539a\u5ea6 \u7684 \u79ef\u5206 \u70b9 \u4e2a\u6570 \u4e0d\u540c \u540c\u4e8e \u4e0d\u540c\u4e8e NP = 1 ( \u819c ) \u65f6 \uff0c \u5bf9 LAW1 \u548c \u58f3 \u5355\u5143 ( / PROP / TYPE1 ( shell ) ) \u91c7\u7528 \u5168\u5c40 \u79ef\u5206 \u5206\u6cd5 \u79ef\u5206\u6cd5 \u3002 \u5931\u6548 \u6a21\u578b \u5728 \u5168\u5c40 \u96c6\u6210 \u7684 \u60c5\u51b5 \u4e0b \u4e0d\u53ef \u7528 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u5177\u6709 \u5f88 \u9ad8 \u5c48\u670d \u5e94\u529b \u5c48\u670d\u5e94\u529b \u7684 LAW2 \u548c LAW27 \u53ef\u4ee5 \u4f5c\u4e3a LAW1 \u7684 \u66ff\u4ee3 \u66ff\u4ee3\u54c1 \u3002 #### MAT1 \u4ee3\u7801 \u89e3\u8bfb \u603b\u4f53 \u6846\u67b6 \u662f \u83b7\u53d6 \u8f93\u5165 CALL HM _ OPTION _ IS _ ENCRYPTED ( IS _ ENCRYPTED ) CALL HM _ GET _ FLOATV ( ' MAT _ RHO ' , RHO0 , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' Refer _ Rho ' , RHOR , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ E ' , YOUNG , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ NU ' , ANU , IS _ AVAILABLE , LSUBMODEL , UNITAB ) \u8ba1\u7b97 \u53c2\u6570 IF ( RHOR = = ZERO ) RHOR = RHO0 C IF ( YOUNG < = ZERO ) THEN CALL ANCMSG ( MSGID = 683 , . MSGTYPE = MSGERROR , . ANMODE = ANINFO , . I1 = ID , . C1 = TITR , . C2 = ' YOUNG ' ' S MODULUS ' ) ENDIF IF ( ANU = = HALF ) ANU = ZEP499 C G = YOUNG / ( TWO ( ONE + ANU ) ) C0 = ZERO C1 = YOUNG / ( THREE ( ONE - TWO ANU ) ) E0 = ZERO E1MN2 = YOUNG / ( ONE - ANU 2 ) EN1N2 = ANU E1MN2 SDSP = SQRT ( YOUNG / MAX ( RHOR , EM20 ) ) ISRATE = 0 * \u4fdd\u5b58 \u53c2\u6570 PM ( 1 ) = RHOR PM ( 20 ) = YOUNG PM ( 21 ) = ANU PM ( 22 ) = G PM ( 23 ) = E0 PM ( 24 ) = E1MN2 PM ( 25 ) = EN1N2 PM ( 26 ) = FIVE _ OVER _ 6 PM ( 27 ) = SDSP PM ( 31 ) = C0 PM ( 32 ) = C1 PM ( 89 ) = RHO0 \u5f02\u5e38 \u5904\u7406 c ----------------- CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" TOTAL \" ) IF ( ANU > 0.49 ) THEN CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" INCOMPRESSIBLE \" ) ELSE CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" COMPRESSIBLE \" ) END IF CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" HOOK \" ) c ----------------- WRITE ( IOUT , 1001 ) TRIM ( TITR ) , ID , 01 WRITE ( IOUT , 1000 ) IF ( IS _ ENCRYPTED ) THEN WRITE ( IOUT , ' ( 5X , A , / / ) ' ) ' CONFIDENTIAL DATA ' ELSE WRITE ( IOUT , 1100 ) RHO0 WRITE ( IOUT , 1300 ) YOUNG , ANU , G ENDIF C IPM ( 252 ) = 2 PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) C ----------- \u63a7\u5236 \u8f93\u51fa C ----------- RETURN 1000 FORMAT ( & 5X , ' ELASTIC MATERIAL ( / MAT / LAW01 ) ' , / , & 5X , ' ----------------------------- ' ) 1001 FORMAT ( & 5X , A , / , & 5X , ' MATERIAL NUMBER . . . . . . . . . . . . = ' , I10 / , & 5X , ' MATERIAL LAW . . . . . . . . . . . . . . = ' , I10 / ) 1100 FORMAT ( & 5X , ' INITIAL DENSITY . . . . . . . . . . . . = ' , 1PG20.13 / ) 1300 FORMAT ( & 5X , ' YOUNG ' ' S MODULUS . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' POISSON ' ' S RATIO . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' SHEAR MODULUS . . . . . . . . . . . . . = ' , E12.4 / / ) \u5728 \u6570\u636e \u91cc \u6700 \u91cd\u8981 \u7684 \u662f PM \u4ee5\u53ca IPM \uff0c \u5206\u522b \u5b58\u50a8 \u4e86 \u6750\u6599 \u53c2\u6570 \u548c \u6750\u6599 ID \u3002 \u4f46\u662f \u6682\u65f6 \u6ca1\u6709 \u76f8\u5173 \u6587\u6863 \u8bf4\u660e \u5176 \u5177\u4f53 \u4f53\u5185 \u5185\u5bb9 \u5177\u4f53\u5185\u5bb9 \u3002 \u63d0\u53d6 mat \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u6240\u6709 PM \u53d8\u91cf \u7684 \u4fe1\u606f \u6c47\u603b \u5982\u4e0b : PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHO0 PM ( 01 ) = RHOR PM ( 1 ) = RHO0 ! RHOR PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 1 ) = RHO0 PM ( 2 ) = GS PM ( 8 ) = ISRATE PM ( 9 ) = TWO * PI * FCUT PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = ASRATE PM ( 12 ) = SQRT ( MAX ( ZERO , G0 ) ) ! done by default in lecmuser . F for law34 PM ( 17 ) = MU PM ( 17 ) = AMU PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = MW PM ( 20 ) = STIFF ! Stiffness contact PM ( 20 ) = CMAX / TWO PM ( 20 ) = YMC PM ( 20 ) = NMAT + EM01 PM ( 20 ) = YOUNG PM ( 20 ) = NBMAT + EM01 PM ( 20 ) = MAX ( E11 , E22 , E33 ) PM ( 20 ) = YOUNG PM ( 20 ) = E PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = YOUNG PM ( 21 ) = ANUC PM ( 21 ) = ZERO ! NU PM ( 21 ) = NU PM ( 21 ) = ANU PM ( 21 ) = ANU PM ( 21 ) = NU PM ( 21 ) = SQRT ( N12 * N21 ) PM ( 21 ) = NUG PM ( 21 ) = NU PM ( 21 ) = CPA PM ( 21 ) = THIRD * ( N12 + N31 + N23 ) PM ( 22 ) = G0 PM ( 22 ) = YMC / ( TWO * ( ONE + ANUC ) ) PM ( 22 ) = GS ! ! TWO * G PM ( 22 ) = G PM ( 22 ) = G PM ( 22 ) = STIFF * HALF ! GMAX PM ( 22 ) = CPB PM ( 22 ) = G PM ( 22 ) = THIRD * ( G12 + G23 + G31 ) PM ( 22 ) = GS PM ( 22 ) = MAX ( G12 , G23 , G31 ) PM ( 23 ) = YOUNG PM ( 23 ) = E0 PM ( 23 ) = CPC PM ( 23 ) = EM01 * STIFFAVG ! Hourglass stiffness for QEPH PM ( 23 ) = E0 PM ( 23 ) = ZERO ! E0 PM ( 23 ) = E0 PM ( 23 ) = E0 PM ( 24 ) = PM ( 20 ) PM ( 24 ) = NU * YOUNG / ( ONE - NU * NU ) PM ( 24 ) = YOUNG / ( ONE - NU * * 2 ) PM ( 24 ) = CMAX / ( ONE - NU * * 2 ) / TWO PM ( 24 ) = PM ( 25 ) + TWO * PM ( 22 ) PM ( 24 ) = E1MN2 PM ( 24 ) = STIFF ! Stiffness for time step computation PM ( 24 ) = D2 PM ( 24 ) = YOUNG / ( ONE - NUG * * 2 ) PM ( 24 ) = E1MN2 PM ( 24 ) = VIS PM ( 24 ) = PM ( 20 ) PM ( 24 ) = CPD PM ( 25 ) = GAM PM ( 25 ) = D3 PM ( 25 ) = NR PM ( 25 ) = EN1N2 PM ( 25 ) = CPE PM ( 25 ) = YMC * ANUC / ( ONE + ANUC ) / ( ONE - TWO * ANUC ) PM ( 25 ) = 1 . PM ( 25 ) = EN1N2 PM ( 25 ) = PM ( 21 ) * PM ( 24 ) PM ( 26 ) = FIVE PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CPF PM ( 26 ) = PM ( 26 ) * ONE _ OVER _ 6 PM ( 26 ) = NT PM ( 26 ) = THET PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CB PM ( 26 ) = MAX ( ZERO , DSUP1 ) PM ( 27 ) = SQRT ( A11 / RHO0 ) ! sound speed estimation PM ( 27 ) = SQRT ( YOUNG / RHO0 ) ! Sound speed PM ( 27 ) = D PM ( 27 ) = SSP PM ( 27 ) = SDSP PM ( 27 ) = SDSP PM ( 27 ) = CN PM ( 27 ) = SQRT ( A1 / RHO0 ) ! sound speed estimation PM ( 27 ) = SSP PM ( 27 ) = VCRT2 PM ( 27 ) = SQRT ( E / MAX ( RHOR , EM20 ) ) PM ( 27 ) = APY PM ( 27 ) = SQRT ( ( BULK + FOUR _ OVER _ 3 * G ) / RHO0 ) ! sound speed estimation PM ( 27 ) = MAXVAL ( SSP ( 1 : 4 ) ) PM ( 27 ) = IDF PM ( 27 ) = R _ IGC1 PM ( 27 ) = SQRT ( E / RHO0 ) ! Sound speed for beam elements PM ( 27 ) = VMAX PM ( 27 ) = D PM ( 28 ) = MAX ( ONEP0001 , FMAX ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = GAMRP PM ( 28 ) = ONE - HT / YMC PM ( 28 ) = VB PM ( 28 ) = MAX ( ONEP0001 , ( SIGMX / CA ) * * 2 ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = NR PM ( 29 ) = - ANU * PM ( 28 ) PM ( 29 ) = - NU * PM ( 28 ) PM ( 29 ) = GAM1 PM ( 29 ) = ROK PM ( 29 ) = NT PM ( 29 ) = TM0 PM ( 30 ) = ONE / G PM ( 30 ) = IDF PM ( 30 ) = ONE / G PM ( 30 ) = E00 PM ( 30 ) = RO0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = ZERO ! C0 PM ( 31 ) = C0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C2 * MU * * 2 + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = C0 PM ( 31 ) = P0 + PSHIFT PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = RHOR * C * * 2 PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = BULK PM ( 32 ) = BULK PM ( 32 ) = C1 PM ( 32 ) = GS PM ( 32 ) = C1 PM ( 33 ) = ZERO PM ( 33 ) = C2 PM ( 33 ) = E11 PM ( 33 ) = SIGT1 PM ( 33 ) = E11 PM ( 33 ) = C PM ( 33 ) = C2 PM ( 33 ) = A PM ( 33 ) = FC PM ( 33 ) = RE0 / RHO0 PM ( 34 ) = E22 PM ( 34 ) = E22 PM ( 34 ) = SIGT2 PM ( 34 ) = ZERO PM ( 34 ) = B PM ( 34 ) = - HALF * SSP2 / CARL * * 2 PM ( 34 ) = C3 PM ( 34 ) = S PM ( 34 ) = C3 PM ( 34 ) = RT PM ( 35 ) = PCC PM ( 35 ) = RC PM ( 35 ) = N12 PM ( 35 ) = N12 PM ( 35 ) = C4 PM ( 35 ) = BUNL PM ( 35 ) = C4 PM ( 35 ) = XKL PM ( 35 ) = R1 PM ( 35 ) = SIGT3 PM ( 35 ) = ZERO PM ( 36 ) = XMUMX PM ( 36 ) = ZERO PM ( 36 ) = N21 PM ( 36 ) = C5 PM ( 36 ) = N21 PM ( 36 ) = GAM0 PM ( 36 ) = C5 PM ( 36 ) = RT * ( TWO * RC - RT ) PM ( 36 ) = R2 PM ( 36 ) = XLAMB PM ( 36 ) = EFIB PM ( 37 ) = - INFINITY PM ( 37 ) = G12 PM ( 37 ) = EPSFT PM ( 37 ) = - PSH PM ( 37 ) = PMIN PM ( 37 ) = PMIN PM ( 37 ) = ( RC - RT ) * * 2 PM ( 37 ) = EF PM ( 37 ) = G12 PM ( 37 ) = PMIN PM ( 37 ) = ATOM PM ( 38 ) = UPARAM ( 42 ) ! VDET PM ( 38 ) = G23 PM ( 38 ) = AA PM ( 38 ) = CA PM ( 38 ) = EPSFC PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = A0 PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = G23 PM ( 38 ) = EFIB PM ( 38 ) = VDET PM ( 38 ) = SIG0 PM ( 39 ) = CB PM ( 39 ) = ALPHA PM ( 39 ) = CB PM ( 39 ) = G31 PM ( 39 ) = A1 PM ( 39 ) = CB PM ( 39 ) = BC PM ( 39 ) = G31 PM ( 39 ) = CE PM ( 39 ) = PCJ PM ( 40 ) = A2 PM ( 40 ) = BT PM ( 40 ) = ONE / TSCAL PM ( 40 ) = CN PM ( 40 ) = PM ( 1 ) * D * * 2 / PCJ PM ( 40 ) = IFLAG PM ( 40 ) = CN PM ( 40 ) = CN PM ( 40 ) = D11 PM ( 41 ) = EPSM PM ( 41 ) = D12 PM ( 41 ) = IBFRAC PM ( 41 ) = TIMESCAL PM ( 41 ) = EPSM PM ( 41 ) = AMX PM ( 41 ) = AC PM ( 41 ) = EP20 ! EPSM PM ( 41 ) = WPLAMX PM ( 41 ) = EPSM PM ( 41 ) = WPLAMX PM ( 42 ) = QOPT PM ( 42 ) = IOFF PM ( 42 ) = SIGM PM ( 42 ) = D13 PM ( 42 ) = IOFF PM ( 42 ) = TSCAL PM ( 42 ) = FAC _ Y PM ( 42 ) = SIGM PM ( 42 ) = FT * FC / YMC PM ( 42 ) = SIGM PM ( 43 ) = CC PM ( 43 ) = CM PM ( 43 ) = HBP PM ( 43 ) = C0 PM ( 43 ) = CC PM ( 43 ) = D22 PM ( 43 ) = CB1 PM ( 43 ) = CC PM ( 43 ) = PEXT PM ( 43 ) = ESCAL PM ( 44 ) = EPS0 PM ( 44 ) = DE PM ( 44 ) = PSTAR PM ( 44 ) = EPS0 PM ( 44 ) = D23 PM ( 44 ) = CB2 PM ( 44 ) = DE PM ( 44 ) = KSCAL PM ( 44 ) = BULK PM ( 44 ) = RCOMP PM ( 44 ) = ALI PM ( 44 ) = EPS0 PM ( 45 ) = W PM ( 45 ) = ALF PM ( 45 ) = CH PM ( 45 ) = BUNL PM ( 45 ) = CM PM ( 45 ) = D33 PM ( 45 ) = EPSL PM ( 45 ) = CM PM ( 45 ) = A11 PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = SSL PM ( 46 ) = XMUMX PM ( 46 ) = G12 PM ( 46 ) = A22 PM ( 46 ) = TMELT PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = VKY PM ( 46 ) = HL PM ( 47 ) = TMAX PM ( 47 ) = A * AK PM ( 47 ) = CN PM ( 47 ) = ZERO ! MUMIN PM ( 47 ) = CN PM ( 47 ) = EPSMAX PM ( 47 ) = TMAX PM ( 47 ) = YLDL PM ( 47 ) = A1122 PM ( 47 ) = G23 PM ( 48 ) = E PM ( 48 ) = A PM ( 48 ) = G31 PM ( 48 ) = A12 PM ( 48 ) = IFORM PM ( 48 ) = NR PM ( 48 ) = CS PM ( 48 ) = EL PM ( 48 ) = HV0 PM ( 49 ) = A PM ( 49 ) = EXPO PM ( 49 ) = FMAX PM ( 49 ) = GAM0M PM ( 49 ) = ICC PM ( 49 ) = ICC PM ( 49 ) = SSP PM ( 49 ) = FMAX PM ( 49 ) = C0 PM ( 49 ) = NT PM ( 50 ) = AM PM ( 50 ) = B PM ( 50 ) = ZERO PM ( 50 ) = YMS PM ( 50 ) = IDF PM ( 50 ) = CC PM ( 50 ) = ITYP PM ( 50 ) = ONE PM ( 51 ) = SIG PM ( 51 ) = MT PM ( 51 ) = EPS0 PM ( 51 ) = Y0S PM ( 51 ) = INOD ! USR2SYS APRES FSDCOD , IF ( IFORM8 = = 2 ) INOD = USR2SYS ( INOD , ITABM1 , MESS ) PM ( 51 ) = GAME PM ( 51 ) = C3 PM ( 51 ) = YP1 PM ( 52 ) = GP PM ( 52 ) = ONEP414 * PM ( 17 ) * PM ( 1 ) * SSP PM ( 52 ) = ICC PM ( 52 ) = C4 PM ( 52 ) = TM PM ( 52 ) = XKMAX PM ( 52 ) = ONEP414 * MU * PM ( 1 ) * SDSP PM ( 52 ) = ONEP414 * AMU * PM ( 1 ) * SDSP PM ( 52 ) = ETS PM ( 53 ) = ICC PM ( 53 ) = F1 PM ( 53 ) = ONE / CP PM ( 53 ) = DSP PM ( 53 ) = ARM1 PM ( 53 ) = AREAMIN1 PM ( 53 ) = ZERO PM ( 54 ) = E0H PM ( 54 ) = F2 PM ( 54 ) = ARM2 PM ( 54 ) = ZERO PM ( 54 ) = F1 PM ( 54 ) = ONE / ( AREAMIN2 - AREAMIN1 ) PM ( 54 ) = TI PM ( 55 ) = FISOKIN PM ( 55 ) = RP3 PM ( 55 ) = F3 PM ( 55 ) = F2 PM ( 55 ) = ARM3 PM ( 56 ) = F4 PM ( 56 ) = ONE ! PM ( 56 ) = POROSITY PM ( 56 ) = VJ PM ( 56 ) = F11 PM ( 57 ) = F5 PM ( 57 ) = C1 PM ( 57 ) = ICAP + EM01 PM ( 57 ) = F22 PM ( 58 ) = C2 PM ( 58 ) = F33 PM ( 58 ) = F6 PM ( 58 ) = ONE - HVFAC PM ( 59 ) = F11 PM ( 59 ) = ZERO ! PM ( 59 ) = F12 PM ( 59 ) = F1 PM ( 59 ) = C3 PM ( 59 ) = ALPHA PM ( 60 ) = F22 PM ( 60 ) = BETA PM ( 60 ) = EPST1 PM ( 60 ) = D1 PM ( 60 ) = EPST1 PM ( 60 ) = F2 PM ( 61 ) = TMAX PM ( 61 ) = ALPHAP PM ( 61 ) = EPST2 PM ( 61 ) = EPST2 PM ( 61 ) = F33 PM ( 61 ) = F4 PM ( 62 ) = F5 PM ( 62 ) = F44 PM ( 62 ) = EPSM1 PM ( 62 ) = EPSM1 PM ( 63 ) = F11 PM ( 63 ) = EPSM2 PM ( 63 ) = F55 PM ( 63 ) = EPSM2 PM ( 64 ) = DMAX1 PM ( 64 ) = F22 PM ( 64 ) = DMAX PM ( 64 ) = F66 PM ( 65 ) = SHRDAM PM ( 65 ) = DMAX2 PM ( 65 ) = F12 PM ( 65 ) = F44 PM ( 66 ) = EPSF1 PM ( 66 ) = F23 PM ( 66 ) = SHRMAX PM ( 66 ) = F55 PM ( 67 ) = F13 PM ( 67 ) = SHRDMAX PM ( 67 ) = F12 PM ( 67 ) = EPSF2 PM ( 68 ) = WPLAREF PM ( 68 ) = F23 PM ( 69 ) = SPH PM ( 69 ) = SPH PM ( 69 ) = RCP PM ( 69 ) = C11 PM ( 70 ) = ZERO PM ( 71 ) = JTHE + EM01 PM ( 72 ) = ZERO PM ( 72 ) = ZERO PM ( 73 ) = C22 PM ( 73 ) = C11 PM ( 74 ) = C33 PM ( 74 ) = C22 PM ( 75 ) = AS PM ( 75 ) = C12 PM ( 75 ) = C33 PM ( 76 ) = C23 PM ( 76 ) = BS PM ( 76 ) = C12 PM ( 77 ) = C13 PM ( 77 ) = C23 PM ( 77 ) = CF PM ( 78 ) = T0 PM ( 78 ) = C13 PM ( 78 ) = DELTA PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = DELTA PM ( 79 ) = THREE100 PM ( 80 ) = TMELT PM ( 80 ) = INFINITY PM ( 80 ) = INFINITY PM ( 80 ) = TMELT PM ( 80 ) = TMELT PM ( 80 ) = EP30 PM ( 81 ) = CTM PM ( 81 ) = CTM PM ( 81 ) = SIGT1 PM ( 82 ) = SIGT2 PM ( 82 ) = CT1 PM ( 83 ) = CT2 PM ( 83 ) = SIGT3 PM ( 84 ) = CT3 PM ( 84 ) = EPSFT PM ( 85 ) = SK PM ( 85 ) = EPSFC PM ( 85 ) = SK PM ( 86 ) = SE PM ( 86 ) = SE PM ( 87 ) = RK0 / RHO0 PM ( 87 ) = RK0 / RHO0 PM ( 88 ) = ZERO PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 91 ) = RHO10 PM ( 91 ) = MAXVAL ( RHO0 _ ( 1 : 4 ) ) PM ( 95 ) = RPR PM ( 95 ) = RPR PM ( 97 ) = RHOC PM ( 98 ) = ALP0 PM ( 98 ) = EPSF1 PM ( 98 ) = WPLAREF PM ( 99 ) = DC + ONE PM ( 99 ) = EPSF2 PM ( 100 ) = BULK PM ( 100 ) = RBULK PM ( 100 ) = RBULK ! PARMAT ( 1 ) PM ( 100 ) = E PM ( 100 ) = C1 PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = BULK PM ( 104 ) = P0 + PSHIFT PM ( 104 ) = C0 - PSH PM ( 104 ) = C0 PM ( 104 ) = P0 PM ( 104 ) = C0 - PSH PM ( 105 ) = GS / ( BULK + TWO _ THIRD * GS ) PM ( 105 ) = GS / ( RBULK + TWO _ THIRD * G ) PM ( 105 ) = DMIN / DMAX / DMAX PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = DMIN / C1 * * 2 PM ( 105 ) = TWO * PM ( 22 ) / ( BULK + FOUR _ OVER _ 3 * PM ( 22 ) ) ! = ( 1 - 2 * Nuc ) / ( 1 - Nuc ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = TWO * G0 / ( BULK + FOUR _ OVER _ 3 * G0 ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) ! TWO * G / ( BULK + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * GS / ( RBULK + FOUR _ OVER _ 3 * GS ) PM ( 105 ) = MIN ( D11 * D22 - D12 * * 2 , D22 * D33 - D23 * * 2 , D11 * D33 - D13 * * 2 ) / C1 * * 2 PM ( 141 ) = SIGYT1 PM ( 141 ) = SIGYT1 PM ( 142 ) = CBT1 PM ( 142 ) = SIGYT2 PM ( 143 ) = SIGYC1 PM ( 143 ) = CNT1 PM ( 144 ) = SIGYC2 PM ( 144 ) = SIGMXT1 PM ( 145 ) = SIGYT12 PM ( 145 ) = CCT1 PM ( 146 ) = SIGYC12 PM ( 146 ) = SIGYT2 PM ( 147 ) = IFLAG PM ( 147 ) = CBT2 PM ( 148 ) = S1 PM ( 148 ) = CNT2 PM ( 149 ) = SIGMXT2 PM ( 149 ) = S2 PM ( 150 ) = C11 PM ( 150 ) = CCT2 PM ( 151 ) = SIGYC1 PM ( 151 ) = C22 PM ( 152 ) = CBC1 PM ( 152 ) = S12 PM ( 153 ) = CNC1 PM ( 154 ) = SIGMXC1 PM ( 155 ) = CCC1 PM ( 156 ) = SIGYC2 PM ( 157 ) = CBC2 PM ( 158 ) = CNC2 PM ( 159 ) = SIGMXC2 PM ( 160 ) = CCC2 PM ( 160 ) = EADD PM ( 161 ) = SIGYT12 PM ( 161 ) = TBEGIN PM ( 162 ) = CBT12 PM ( 162 ) = TEND PM ( 163 ) = REACTION _ RATE PM ( 163 ) = CNT12 PM ( 164 ) = SIGMXT12 PM ( 164 ) = A _ MIL PM ( 165 ) = CCT12 PM ( 165 ) = M _ MIL PM ( 166 ) = EPS1T1 PM ( 166 ) = N _ MIL PM ( 167 ) = EPS2T1 PM ( 167 ) = REACTION _ RATE2 PM ( 168 ) = SIGRST1 PM ( 168 ) = ALPHA _ UNIT PM ( 169 ) = WPLAMXT1 PM ( 170 ) = EPS1T2 PM ( 171 ) = EPS2T2 PM ( 172 ) = SIGRST2 PM ( 173 ) = WPLAMXT2 PM ( 174 ) = EPS1C1 PM ( 175 ) = EPS2C1 PM ( 176 ) = SIGRSC1 PM ( 177 ) = WPLAMXC1 PM ( 178 ) = EPS1C2 PM ( 179 ) = EPS2C2 PM ( 180 ) = SIGRSC2 PM ( 181 ) = WPLAMXC2 PM ( 182 ) = EPS1T12 PM ( 183 ) = EPS2T12 PM ( 184 ) = SIGRST12 PM ( 185 ) = WPLAMXT12 PM ( 186 ) = E33 PM ( 187 ) = IYEILD PM ( 188 ) = RATIO PM ( 189 ) = IMODWP PM ( 191 ) = XK PM ( 192 ) = XK PM ( 192 ) = RHOA PM ( 193 ) = FRAC PM ( 193 ) = XK PM ( 194 ) = AA PM ( 195 ) = BB PM ( 196 ) = TAUX PM ( 197 ) = KK PM ( 198 ) = ICLOS PM ( 199 ) = RHOEXT PM ( 200 ) = EINT _ EXT PM ( 201 ) = INCGAS","title":"use OpenRadioss linux"},{"location":"OpenRadioss/use_OpenRadioss_linux/#linux-openradioss","text":"","title":"Linux \u4e0b OpenRadioss \u7684 \u7f16\u8bd1"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_1","text":"Ubuntu 20.0 . 4 or higher apt - get update apt - get upgrade apt - get install build - essential apt - get install gfortran apt - get install cmake apt - get install perl apt - get install python3 apt - get install python - is - python3 apt - get install git - lfs apt - get install openmpi - bin openmpi - doc libopenmpi - dev apt - get install paraview \u63a8\u8350 \u7248\u672c \u4e3a gcc - 11 , g ++- 11 , gfortran - 11 \u3002 paraview \u7528\u4e8e \u540e\u671f \u53ef\u89c6 \u53ef\u89c6\u5316 \u3002","title":"\u73af\u5883"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_2","text":"","title":"\u7f16\u8bd1 \u6307\u4ee4"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_3","text":"LFS : git lfs install \u8fd0\u884c ( \u8fd9\u91cc \u9700\u8981 \u5148 \u7ed1\u5b9a SSH key ) git clone git @ github . com : OpenRadioss / OpenRadioss . git .","title":"\u83b7\u53d6 \u6e90\u7801"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss-starter","text":"\u8fdb\u5165 OpenRadioss / starter \u76ee\u5f55 cd OpenRadioss / starter \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Execution control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory","title":"OpenRadioss Starter"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss-engine","text":"\u8fdb\u5165 OpenRadioss / engine \u76ee\u5f55 \u8fd0\u884c build _ script . sh . / build _ script . sh - arch = linux64 _ gf - mpi = ompi . / build _ script . sh \u53c2\u6570 : [ ] $ . / build _ script . sh build _ script ------------ Use with arguments : - arch = [ build architecture ] - arch = linux64 _ gf ( SMP executable / Gfortran compiler ) - arch = linux64 _ gf - mpi = ompi ( OpenMPI executable / Gfortran compiler ) MPI libraries - mpi = [ mpi ] not set : SMP ( default ) - mpi = ompi : OpenMPI Controling MPI Libraries - if need choose one of the 3 Option Set If no options set , recommended OpenMPI directories are uses ( default ) 1 . - mpi - os : link with default MPI version installed on system libraries are in default installation 2 . - mpi - root = [ directory ] : set rootname to link with specific MPI installation 3 . - mpi - include = [ directory ] : set include directory where to find mpif . h and mpi . h - mpi - libdir = [ directory ] : set library directory where to find mpi libraries Other control - prec = [ dp | sp ] : set precision - dp ( default ) | sp - static - link : Fortran , C & C++ runtime are linked in binary - debug = [ 0 | 1 ] : debug version 0 no debug flags ( default ) , 1 usual debug flag - addflag = \" list of additionnal flags \" : add compiler flags to usual set Build control - nt = [ threads ] : number of threads for build - verbose : Verbose build - clean : clean build directory MUMPS linear solver : available only for dp , with mpi \" - mumps _ root = [ path _ to _ mumps ] : path _ to _ mumps / lib / libdmumps . a must exist - scalapack _ root = [ path to scalapack ] : path _ to _ scalapack / libscalapack . a must exist - lapack _ root = [ path to lapack ] : path _ to _ lapack / liblapack . a must exist","title":"OpenRadioss Engine"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_4","text":"cd starter . / build _ script . sh - arch = linux64 _ gf cd .. / engine . / build _ script . sh - arch = linux64 _ gf - mpi = ompi","title":"\u81ea\u52a8\u5316 \u811a\u672c \uff08 \u5f85\u5b9a \uff09"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss","text":"","title":"OpenRadioss \u7684 \u4f7f\u7528"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_5","text":"gmsh \u4f7f\u7528 Gmsh \u7684 \u7ba1\u5b50 \u63a5\u89e6 \u6559\u7a0b \u4f7f\u7528 Gmsh \u7684 \u62c9\u4f38 \u6d4b\u8bd5 \u793a\u4f8b \u6559\u7a0b Hypermesh lsprepost ( * )","title":"\u524d \u5904\u7406"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_6","text":"","title":"\u8ba1\u7b97"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_7","text":"ParaView vtk \u8f6c fbx \uff0c \u7136\u540e \u5bfc\u5165 \u5bfc\u5165\u5230 Carla \u4e2d \u3002","title":"\u540e\u5904\u7406"},{"location":"OpenRadioss/use_OpenRadioss_linux/#lsdyna","text":"","title":"\u4f7f\u7528 LSDYNA \u683c\u5f0f \u8f93\u5165"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_8","text":"\u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u62c9\u4f38 \u6a21\u62df \u3002","title":"\u6d4b\u8bd5 \u5b9e\u4f8b"},{"location":"OpenRadioss/use_OpenRadioss_linux/#bash","text":"myjobname = $ ( echo \" $ 1 \" ) echo $ myjobname \" running in OpenRadioss \" export OMP _ STACKSIZE = 400m export OMP _ NUM _ THREADS = 8 . / starter _ linux64 _ gf - i \" .. / source / \" $ myjobname \" . k \" - np $ 2 - outfile = \" .. / output \" #. / starter _ linux64 _ gf - i $ myjobname \" . k \" - np $ 2 - nt 4 # \u8fd9\u91cc \u662f \u627e\u5230 source \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u7684 \uff0c LS - DYNA \u683c\u5f0f \u6587\u4ef6 \u683c\u5f0f\u6587\u4ef6 \uff08 . k \uff09 \u5e76 \u5c06 \u5176 \u4f20\u9012 \u7ed9 starter \u8fdb\u884c \u8ba1\u7b97 \u3002 mpiexec - n $ 2 -- map - by socket : PE = $ OMP _ NUM _ THREADS -- bind - to core . / engine _ linux64 _ gf _ ompi - i \" .. / bin / \" $ myjobname \" _ 0001 . rad \" - outfile = \" .. / output \" # mpiexec - n $ 2 . engine _ linux64 _ gf _ ompi - i $ myjobname \" _ 0001 . rad \" - nt 1 # \u5728 \u5904\u7406 . k \u6587\u4ef6 \u65f6 \uff0c starter \u4f1a \u5728 \u5176 \u76ee\u5f55 \u4e0b \u751f\u6210 \" _ 0001 . rad \" \u6587\u4ef6 \uff0c \u9700\u8981 \u5c06 \u5176 \u4f20\u9012 \u7ed9 engine BASEDIR = $ ( dirname \" $ 0 \" ) for file in .. / output / * ; do if [ - n \" $ { file : - 3 } \" ] && [ \" $ { file : - 3 } \" - eq \" $ { file : - 3 } \" ] 2 > / dev / null && [ [ \" $ { file : - 4 : 1 } \" = = \" A \" ] ] ; then . / anim _ to _ vtk _ linux64 _ gf $ file > \" $ file . vtk \" echo \" $ file is converted \" # anim \u6587\u4ef6 \u8f6c\u5316 \u4e3a vtk \u6587\u4ef6 elif [ [ \" $ { file : - 3 } \" = = \" T01 \" ] ] ; then . / th _ to _ csv _ linux64 _ gf $ file CSV = \" $ file . csv \" # T01 \u6587\u4ef6 \u8f6c\u5316 \u4e3a csv \u6587\u4ef6 fi done cd .. / output / # paraview $ myjobname \" A .. vtk \" $ CSV paraview $ myjobname \" A .. vtk \" $ CSV exit \u5728 \u547d\u4ee4 \u547d\u4ee4\u884c \u8f93\u5165 bash process _ k . sh zug _ test3 _ RS 1 \u5373\u53ef \u3002 \u5176\u4e2d process _ k . sh \u662f \u811a\u672c \u540d\u5b57 \uff0c zug _ test3 _ RS \u662f \u6a21\u578b \u540d\u5b57 \uff0c 1 \u662f \u5e76\u884c \u8fdb\u7a0b \u6570 \u3002","title":"bash \u811a\u672c"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_9","text":"","title":"\u8fd0\u884c \u7ed3\u679c"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_10","text":"\u5728 \u4f7f\u7528 Openadioss \u5904\u7406 LS - DYNA \u683c\u5f0f \u7684 \u6587\u4ef6 \u65f6 \uff0c \u9700\u8981 . k \u6587\u4ef6 \u3002 \u8fd9\u4e2a \u6587\u4ef6 \u5176\u5b9e \u662f \u53ef\u4ee5 \u76f4\u63a5 \u653e\u5728 LS - DYNA \u4e0a \u8fdb\u884c \u8ba1\u7b97 \u7684 \u3002 \u8fd9\u91cc \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5176\u4ed6 \u7684 \u8ba1\u7b97 \u65b9\u5f0f \u2014 \u2014 \u4f7f\u7528 OpenRadioss \u3002","title":"\u603b\u7ed3"},{"location":"OpenRadioss/use_OpenRadioss_linux/#to-do","text":"\u9700\u8981 \u9a8c\u8bc1 \u8ba1\u7b97 \u7684 \u6b63\u786e \u6b63\u786e\u6027 \uff1a \u4e5f \u5c31\u662f \u4f7f\u7528 LS - DYNA \u8ba1\u7b97 \u540c\u6837 \u7684 \u4f8b\u5b50 \uff0c \u89c2\u5bdf \u8ba1\u7b97 \u7ed3\u679c \u8ba1\u7b97\u7ed3\u679c \u662f\u5426 \u6709 \u51fa\u5165 \u3002 LS - DYNA \u662f \u5546\u4e1a \u8f6f\u4ef6 \u5546\u4e1a\u8f6f\u4ef6 \uff0c \u80fd \u627e\u5230 \u7684 \u8f6f\u4ef6 \u4e0d \u652f\u6301 Ubuntu \u7cfb\u7edf \u3002 \u53ef\u4ee5 \u5728 windows \u4e0b \u4eff\u771f \uff0c \u5c06 \u7ed3\u679c \u548c \u8fdb\u884c \u5bf9\u6bd4 \u3002 \u5982\u4f55 \u8861\u91cf \u8bef\u5dee \u8fd9 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u6709 \u5f88\u591a \u9700\u8981 \u8003\u8651 \u7684 \uff0c \u6bd4\u5982 \u6bc1\u4f24 \u9762\u79ef \u3001 \u6bc1\u4f24 \u6df1\u5ea6 \u3002","title":"To Do"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss_1","text":"\u6ca1\u6709 \u6743\u9650 \u3002 \u3002 \u3002 = =","title":"\u5728 \u670d\u52a1\u5668 \u4e0a \u8fd0\u884c OpenRadioss"},{"location":"OpenRadioss/use_OpenRadioss_linux/#openradioss_2","text":"","title":"OpenRadioss \u4e8c\u6b21\u5f00\u53d1"},{"location":"OpenRadioss/use_OpenRadioss_linux/#read_material_modelsf","text":"\u8fd9 \u6bb5 \u4ee3\u7801 \u5b9a\u4e49 \u4e86 \u4e00\u4e2a Fortran \u7684 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f READ _ MATERIAL _ MODELS \uff0c \u5176 \u4e3b\u8981 \u529f\u80fd \u662f \u7ba1\u7406 \u4e0e \u6750\u6599 \u6a21\u578b \u76f8\u5173 \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5305\u62ec \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \uff08 Constitutive Laws \uff09 \uff1a / MAT \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \uff08 Equations of State \uff09 \uff1a / EOS \u5931\u6548 \u6a21\u578b \uff08 Failure models \uff09 \uff1a / FAIL \u7c98\u6027 \u6a21\u578b \uff08 Viscosity \uff09 \uff1a / VISC \u70ed \u53c2\u6570 \uff08 Thermal parameters \uff09 \uff1a / HEAT \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u5165 \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e BUFMAT \uff1a \u6750\u6599 \u6570\u636e \u7684 \u7f13\u5b58 \u533a BUFLEN \uff1a \u7f13\u5b58 \u533a \u7684 \u957f\u5ea6 IPM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u6574\u578b \u6570\u7ec4 PM \uff1a \u6750\u6599 \u53c2\u6570 \u7684 \u5b9e\u578b \u6570\u7ec4 UNITAB \uff1a \u5355\u4f4d \u5236\u8868 MULTI _ FVM \uff1a \u591a\u91cd \u6709\u9650 \u4f53\u79ef \u6cd5 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 MAXEOS \uff1a \u6700\u5927 \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u6570 FAILWAVE \uff1a \u5931\u6548 \u6ce2 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NLOC _ DMG \uff1a \u975e \u5c40\u90e8 \u635f\u4f24 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 LSUBMODEL \uff1a \u5b50 \u6a21\u578b \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 TABLE \uff1a \u8868 \u7684 \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 NPC \uff1a \u6570\u7ec4 NPC \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u7684 \u8f93\u51fa \u5305\u62ec \uff1a MAT _ ELEM \uff1a \u6750\u6599 \u5143\u7d20 \u7684 \u53c2\u6570 MLAW _ TAG \uff1a \u6750\u6599 \u672c\u6784 \u5b9a\u5f8b \u7684 \u6807\u7b7e FAIL _ TAG \uff1a \u5931\u6548 \u6a21\u578b \u7684 \u6807\u7b7e VISC _ TAG \uff1a \u7c98\u6027 \u6a21\u578b \u7684 \u6807\u7b7e EOS _ TAG \uff1a \u72b6\u6001 \u65b9\u7a0b \u72b6\u6001\u65b9\u7a0b \u7684 \u6807\u7b7e \u8be5 \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \u8fd8 \u8c03\u7528 \u4e86 \u5176\u4ed6 \u4e00\u4e9b \u7a0b\u5e8f \u5b50\u7a0b\u5e8f \uff0c \u4f8b\u5982 HM _ READ _ MAT \u3001 HM _ READ _ EOS \u3001 HM _ READ _ FAIL \u3001 HM _ READ _ VISC \u3001 HM _ READ _ LEAK \u3001 READ _ ALE _ MAT \u3001 READ _ EULER _ MAT \u3001 FILL _ BUFFER _ 51 _ 0 \u3001 HM _ READ _ THERM \u3001 HM _ READ _ THERM _ STRESS \u548c HM _ READ _ NONLOCAL \u7b49 \uff0c \u7528\u4e8e \u8bfb\u53d6 \u4e0d\u540c \u7c7b\u578b \u7684 \u6750\u6599 \u6a21\u578b \u6570\u636e \u3002 \u63a5\u4e0b \u4e0b\u6765 \u63a5\u4e0b\u6765 \u8003\u8651 \u5206\u6790 HM _ READ _ MAT \u7a0b\u5e8f \uff0c \u5206\u6790 \u8f6f\u4ef6 \u662f \u5982\u4f55 \u4f5c \u7684 \u3002","title":"READ _ MATERIAL _ MODELS . F"},{"location":"OpenRadioss/use_OpenRadioss_linux/#hm_read_matf","text":"\u8fd9\u662f \u7528\u4e8e \u8bfb\u53d6 \u6709\u9650 \u6709\u9650\u5143 \u5206\u6790 \u8f6f\u4ef6 \u4e2d \u7684 \u6750\u6599 \u6a21\u578b \u5b9a\u4e49 \u7684 \u4ee3\u7801 \u3002 \u5b83 \u5b9a\u4e49 \u4e86 \u9605\u8bfb \u6750\u6599 \u6a21\u578b \u6240 \u9700 \u7684 \u5404\u79cd \u6a21\u5757 \u3001 \u53c2\u6570 \u548c \u516c\u5171 \u5757 \u3002 \u5176\u4e2d \u5305\u62ec \u6750\u6599 \u5b9a\u5f8b \u6807\u7b7e \u3001 \u6750\u6599 \u53c2\u6570 \u3001 \u5355\u4f4d \u7b49 \u3002 \u4e3b \u4f8b\u7a0b \u662f HM _ READ _ MAT \u3002 \u5b83 \u5faa\u73af \u904d\u5386 \u6a21\u578b \u4e2d \u5b9a\u4e49 \u7684 \u6bcf\u79cd \u6750\u6599 ( HM _ NUMMAT ) \u3002 \u5bf9\u4e8e \u6bcf\u79cd \u6750\u6599 \uff0c \u5b83 \u6839\u636e \u6750\u6599 \u5b9a\u5f8b \u5173\u952e \u5173\u952e\u5b57 \uff08 MAT00 \u3001 MAT01 \u7b49 \uff09 \u8c03\u7528 \u7279\u5b9a \u7684 \u8bfb\u53d6 \u4f8b\u7a0b \u3002 \u8fd9\u4e9b \u8bfb\u53d6 \u4f8b\u7a0b \u4f4d\u4e8e mat \u5b50\u76ee \u76ee\u5f55 \u5b50\u76ee\u5f55 \u4e2d \u7684 \u5355\u72ec \u6587\u4ef6 \u4e2d \u3002 \u8bfb\u53d6 \u4f8b\u7a0b \u89e3\u6790 \u8f93\u5165 \u3001 \u586b\u5145 \u6750\u6599 \u53c2\u6570 \u6570\u7ec4 \u3001 \u8bbe\u7f6e \u6750\u6599 \u6240 \u9700 \u6570\u636e \u7684 \u6807\u5fd7 \uff0c \u5e76 \u5b58\u50a8 \u6750\u6599 ID \u3001 \u5b9a\u5f8b \u7c7b\u578b \u3001 \u5e94\u53d8 \u7387 \u8bbe\u7f6e \u7b49 \u5185\u5bb9 \u3002 \u8bfb\u53d6 \u6750\u6599 \u540e \uff0c \u5b83\u4f1a \u8fdb\u884c \u4e00\u4e9b \u5904\u7406 \u540e\u5904\u7406 \uff0c \u4f8b\u5982 \u8ba1\u7b97 \u6d3e\u751f \u503c \uff08 \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf \uff09 \u3001 \u68c0\u67e5 \u91cd\u590d ID \u4ee5\u53ca \u8ba1\u7b97 \u8f93\u51fa \u6240 \u9700 \u6570\u91cf \u7684 \u5e73\u65b9 \u65b9\u6839 \u5e73\u65b9\u6839 \u3002 \u6bcf\u79cd \u6750\u6599 \u7684 \u5c5e\u6027 \u5b58\u50a8 \u5728 MAT _ PARAM \u6570\u7ec4 \u548c \u5404\u79cd \u5176\u4ed6 \u516c\u5171 \u5757 \u4e2d \u3002 \u603b\u4e4b \uff0c \u5b83 \u5faa\u73af \u904d\u5386 \u6750\u6599 \uff0c \u8c03\u7528 \u7279\u5b9a \u4e8e \u5b9a\u5f8b \u7684 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \uff0c \u5e76 \u5c06 \u6240\u6709 \u6750\u6599 \u6570\u636e \u6536\u96c6 \u5230 \u53c2\u6570 \u6570\u7ec4 \u548c \u901a\u7528 \u5757 \u4e2d \uff0c \u4ee5\u4fbf \u7a0d\u540e \u5728 FEA \u5206\u6790 \u4e2d \u4f7f\u7528 \u3002 \u5173\u952e \u90e8\u5206 \u662f \u6a21\u5757 \u6a21\u5757\u5316 \u6cd5\u5219 \u8bfb\u53d6 \u8bfb\u53d6\u5668 \u548c \u7528\u4e8e \u4fdd\u5b58 \u6750\u6599 \u9053\u5177 \u7684 \u4e2d\u592e MAT _ PARAM \u6570\u636e \u7ed3\u6784 \u6570\u636e\u7ed3\u6784 \u3002 \u56e0\u6b64 \uff0c \u60f3\u8981 \u5b9a\u4e49 \u5168\u65b0 \u7684 \u6750\u6599 \uff0c \u6240\u8981 \u505a \u7684 \u4e8b\u60c5 \u662f \u81ea\u5b9a \u5b9a\u4e49 \u81ea\u5b9a\u4e49 MATxxx \u6587\u4ef6 \u3002","title":"HM _ READ _ MAT . F"},{"location":"OpenRadioss/use_OpenRadioss_linux/#radioss","text":"","title":"Radioss \u4e2d \u6750\u6599 \u672c\u6784"},{"location":"OpenRadioss/use_OpenRadioss_linux/#_11","text":"Description Model Name Keyword / MAT Law # \u7a7a \u6750\u6599 Void / VOID 0 \u7ebf \u5f39\u6027 Elastic ( Hooke ) / ELAST 1 \u8d85 \u5f39\u6027 Tabulated Hyperelastic n / a 69 \u8d85 \u5f39\u6027 Ogden Formulation n / a 82 #### \u5404\u9879 \u540c\u6027 \u5851\u6027 \u5f39\u5851\u6027 LAW 2 / 36 #### \u5176\u4ed6 #### \u7206\u70b8 Description Model Name Keyword / MAT Law # ----------- ----------- --- --- Detonation driven Jones Wilkins Lee / JEL 5 Hydrodynamics Lee - Tarver / LEE - TARVER 41 Multi - materials Soild , liquid , gas and explosives / MULTIMAT 51 #### \u5931\u6548 \u6a21\u578b \u2014 \u2014 / FAIL / Tuler - Butcher \u9ad8\u901f \u78b0\u649e \u5931\u6548 ### \u4f8b\u5b50 \u2014 \u2014 / MAT / LAW1 \u6216 / MAT / ELAST : \u5f39\u6027 \u6750\u6599 * LAW1 \u4f7f\u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5bf9 \u540c\u6027 \u5404\u5411\u540c\u6027 \uff0c \u7ebf \u5f39\u6027 \u6750\u6599 \u8fdb\u884c \u5efa\u6a21 * \u53ef \u7528\u4e8e \u6746 \uff0c \u6881 \uff0c \u58f3 \u4ee5\u53ca \u5b9e\u4f53 solids * \u9002\u7528 \u4e8e \u8fde\u63a5 \u521a\u4f53 * \u4e0d \u9002\u7528 \u5f62\u53d8 \u5927 \u7684 \u6784\u4ef6 \u5851\u6027 \u5f39\u5851\u6027 \u5e94\u529b \u2014 \u2014 \u5e94\u53d8 \u66f2\u7ebf \u771f\u5b9e \u5e94\u529b \u5f62\u53d8 * \u771f\u5b9e \u5e94\u529b \uff1a \u8003\u8651 \u5f53\u524d \u6216 \u771f\u5b9e \u622a\u9762 \u6a2a\u622a\u9762 \u79ef $ A _ { true } $ \u7684 \u5e94\u529b $ $ \\ sigma _ { true } = \\ frac { P _ x } { A _ { true } } $ $ * \u5728 \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u8303\u56f4 \u5185 \uff0c \u5851\u6027 \u53d8\u5f62 \u5851\u6027\u53d8\u5f62 \u622a\u9762 \u6a2a\u622a\u9762 \u79ef \u6c38\u4e45 \u51cf\u5c0f * \u7ee7\u7eed \u4f7f\u7528 \u5de5\u7a0b \u5e94\u529b \u4e0d\u518d \u51c6\u786e #### MAT1 \u5b9a\u4e49 \u65b9\u5f0f \u8fd9\u4e2a \u5173\u952e \u5173\u952e\u8bcd \u7528 \u80e1\u514b \u5b9a\u5f8b \u80e1\u514b\u5b9a\u5f8b \u5b9a\u4e49 \u4e86 \u4e00\u79cd \u540c\u6027 \u5404\u5411\u540c\u6027 \u7684 \u7ebf \u5f39\u6027 \u6750\u6599 \u3002 \u8fd9\u4e2a \u5b9a\u5f8b \u8868\u793a \u5e94\u529b \u548c \u5e94\u53d8 \u4e4b\u95f4 \u7684 \u7ebf\u6027 \u5173\u7cfb \u6027\u5173\u7cfb \u7ebf\u6027\u5173\u7cfb \u3002 \u5b83 \u53ef \u7528\u4e8e \u6841\u67b6 \uff0c \u6881 ( \u4ec5 3 \u578b ) \uff0c \u58f3 \u548c \u5b9e\u4f53 \u5143\u4ef6 \u3002 \u683c\u5f0f \u5b9a\u4e49 \u4f8b\u5b50 \u539f\u7406 \uff1a \u8be5 \u6750\u6599 \u9002\u7528 \u4e8e \u7eaf\u7cb9 \u7684 \u5f39\u6027 \u6750\u6599 \u3002 \u6750\u6599 \u7684 \u6027\u80fd \u53ea \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4e24\u4e2a \u56e0\u7d20 \uff1a \u6a21\u91cf \u6768\u6c0f\u6a21 \u6768\u6c0f\u6a21\u91cf : $ E $ \u6cca\u677e\u6bd4 : $ \\ nu $ \u526a\u5207 \u6a21\u91cf \u526a\u5207\u6a21\u91cf : ( \u53ef \u8ba1\u7b97 ) $ $ G = \\ frac { E } { 2 ( 1 + \\ nu ) } $ $ \u5e94\u529b \u5e94\u53d8 \u5173\u7cfb $ $ \\ begin { bmatrix } \\ epsilon _ { 11 } \\ \\ epsilon _ { 22 } \\ \\ epsilon _ { 33 } \\ \\ gamma _ { 23 } \\ \\ gamma _ { 31 } \\ \\ gamma _ { 12 } \\ end { bmatrix } = \\ frac { 1 } { E } \\ begin { bmatrix } 1 &- \\ nu &- \\ nu & 0 & 0 & 0 \\ - \\ nu & 1 &- \\ nu & 0 & 0 & 0 \\ - \\ nu &- \\ nu & 1 & 0 & 0 & 0 \\ 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 & 0 \\ 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) & 0 \\ 0 & 0 & 0 & 0 & 0 & 2 ( 1 + \\ nu ) \\ end { bmatrix } \\ begin { bmatrix } \\ sigma _ { 11 } \\ \\ sigma _ { 22 } \\ \\ sigma _ { 33 } \\ \\ sigma _ { 23 } \\ \\ sigma _ { 31 } \\ \\ sigma _ { 12 } \\ end { bmatrix } $ $ \u5bc6\u5ea6 \u503c \u901a\u5e38 \u7528\u4e8e \u663e\u5f0f \u6a21\u62df \uff0c \u4e5f \u53ef\u4ee5 \u7528\u4e8e \u9759\u6001 \u9690\u5f0f \u6a21\u62df \uff0c \u4ee5\u4fbf \u5728 \u62df \u9759\u6001 \u5206\u6790 \u4e2d \u8fbe\u5230 \u66f4\u597d \u7684 \u6536\u655b \u6536\u655b\u6027 \u3002 \u5f53 \u901a\u8fc7 \u58f3\u4f53 \u539a\u5ea6 \u7684 \u79ef\u5206 \u70b9 \u4e2a\u6570 \u4e0d\u540c \u540c\u4e8e \u4e0d\u540c\u4e8e NP = 1 ( \u819c ) \u65f6 \uff0c \u5bf9 LAW1 \u548c \u58f3 \u5355\u5143 ( / PROP / TYPE1 ( shell ) ) \u91c7\u7528 \u5168\u5c40 \u79ef\u5206 \u5206\u6cd5 \u79ef\u5206\u6cd5 \u3002 \u5931\u6548 \u6a21\u578b \u5728 \u5168\u5c40 \u96c6\u6210 \u7684 \u60c5\u51b5 \u4e0b \u4e0d\u53ef \u7528 \u3002 \u5728 \u8fd9\u4e9b \u60c5\u51b5 \u4e0b \uff0c \u5177\u6709 \u5f88 \u9ad8 \u5c48\u670d \u5e94\u529b \u5c48\u670d\u5e94\u529b \u7684 LAW2 \u548c LAW27 \u53ef\u4ee5 \u4f5c\u4e3a LAW1 \u7684 \u66ff\u4ee3 \u66ff\u4ee3\u54c1 \u3002 #### MAT1 \u4ee3\u7801 \u89e3\u8bfb \u603b\u4f53 \u6846\u67b6 \u662f \u83b7\u53d6 \u8f93\u5165 CALL HM _ OPTION _ IS _ ENCRYPTED ( IS _ ENCRYPTED ) CALL HM _ GET _ FLOATV ( ' MAT _ RHO ' , RHO0 , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' Refer _ Rho ' , RHOR , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ E ' , YOUNG , IS _ AVAILABLE , LSUBMODEL , UNITAB ) CALL HM _ GET _ FLOATV ( ' MAT _ NU ' , ANU , IS _ AVAILABLE , LSUBMODEL , UNITAB ) \u8ba1\u7b97 \u53c2\u6570 IF ( RHOR = = ZERO ) RHOR = RHO0 C IF ( YOUNG < = ZERO ) THEN CALL ANCMSG ( MSGID = 683 , . MSGTYPE = MSGERROR , . ANMODE = ANINFO , . I1 = ID , . C1 = TITR , . C2 = ' YOUNG ' ' S MODULUS ' ) ENDIF IF ( ANU = = HALF ) ANU = ZEP499 C G = YOUNG / ( TWO ( ONE + ANU ) ) C0 = ZERO C1 = YOUNG / ( THREE ( ONE - TWO ANU ) ) E0 = ZERO E1MN2 = YOUNG / ( ONE - ANU 2 ) EN1N2 = ANU E1MN2 SDSP = SQRT ( YOUNG / MAX ( RHOR , EM20 ) ) ISRATE = 0 * \u4fdd\u5b58 \u53c2\u6570 PM ( 1 ) = RHOR PM ( 20 ) = YOUNG PM ( 21 ) = ANU PM ( 22 ) = G PM ( 23 ) = E0 PM ( 24 ) = E1MN2 PM ( 25 ) = EN1N2 PM ( 26 ) = FIVE _ OVER _ 6 PM ( 27 ) = SDSP PM ( 31 ) = C0 PM ( 32 ) = C1 PM ( 89 ) = RHO0 \u5f02\u5e38 \u5904\u7406 c ----------------- CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" TOTAL \" ) IF ( ANU > 0.49 ) THEN CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" INCOMPRESSIBLE \" ) ELSE CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" COMPRESSIBLE \" ) END IF CALL INIT _ MAT _ KEYWORD ( MATPARAM , \" HOOK \" ) c ----------------- WRITE ( IOUT , 1001 ) TRIM ( TITR ) , ID , 01 WRITE ( IOUT , 1000 ) IF ( IS _ ENCRYPTED ) THEN WRITE ( IOUT , ' ( 5X , A , / / ) ' ) ' CONFIDENTIAL DATA ' ELSE WRITE ( IOUT , 1100 ) RHO0 WRITE ( IOUT , 1300 ) YOUNG , ANU , G ENDIF C IPM ( 252 ) = 2 PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) C ----------- \u63a7\u5236 \u8f93\u51fa C ----------- RETURN 1000 FORMAT ( & 5X , ' ELASTIC MATERIAL ( / MAT / LAW01 ) ' , / , & 5X , ' ----------------------------- ' ) 1001 FORMAT ( & 5X , A , / , & 5X , ' MATERIAL NUMBER . . . . . . . . . . . . = ' , I10 / , & 5X , ' MATERIAL LAW . . . . . . . . . . . . . . = ' , I10 / ) 1100 FORMAT ( & 5X , ' INITIAL DENSITY . . . . . . . . . . . . = ' , 1PG20.13 / ) 1300 FORMAT ( & 5X , ' YOUNG ' ' S MODULUS . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' POISSON ' ' S RATIO . . . . . . . . . . . . = ' , E12.4 / , & 5X , ' SHEAR MODULUS . . . . . . . . . . . . . = ' , E12.4 / / ) \u5728 \u6570\u636e \u91cc \u6700 \u91cd\u8981 \u7684 \u662f PM \u4ee5\u53ca IPM \uff0c \u5206\u522b \u5b58\u50a8 \u4e86 \u6750\u6599 \u53c2\u6570 \u548c \u6750\u6599 ID \u3002 \u4f46\u662f \u6682\u65f6 \u6ca1\u6709 \u76f8\u5173 \u6587\u6863 \u8bf4\u660e \u5176 \u5177\u4f53 \u4f53\u5185 \u5185\u5bb9 \u5177\u4f53\u5185\u5bb9 \u3002 \u63d0\u53d6 mat \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \u6240\u6709 PM \u53d8\u91cf \u7684 \u4fe1\u606f \u6c47\u603b \u5982\u4e0b : PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHOR PM ( 1 ) = RHOR PM ( 01 ) = RHO0 PM ( 01 ) = RHOR PM ( 1 ) = RHO0 ! RHOR PM ( 1 ) = RHO0 PM ( 1 ) = RHOR PM ( 1 ) = RHOR PM ( 1 ) = RHO0 PM ( 2 ) = GS PM ( 8 ) = ISRATE PM ( 9 ) = TWO * PI * FCUT PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = FCUT * TWO * PI PM ( 9 ) = ASRATE PM ( 12 ) = SQRT ( MAX ( ZERO , G0 ) ) ! done by default in lecmuser . F for law34 PM ( 17 ) = MU PM ( 17 ) = AMU PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = MW PM ( 20 ) = STIFF ! Stiffness contact PM ( 20 ) = CMAX / TWO PM ( 20 ) = YMC PM ( 20 ) = NMAT + EM01 PM ( 20 ) = YOUNG PM ( 20 ) = NBMAT + EM01 PM ( 20 ) = MAX ( E11 , E22 , E33 ) PM ( 20 ) = YOUNG PM ( 20 ) = E PM ( 20 ) = MAX ( E11 , E22 ) / DETC PM ( 20 ) = YOUNG PM ( 21 ) = ANUC PM ( 21 ) = ZERO ! NU PM ( 21 ) = NU PM ( 21 ) = ANU PM ( 21 ) = ANU PM ( 21 ) = NU PM ( 21 ) = SQRT ( N12 * N21 ) PM ( 21 ) = NUG PM ( 21 ) = NU PM ( 21 ) = CPA PM ( 21 ) = THIRD * ( N12 + N31 + N23 ) PM ( 22 ) = G0 PM ( 22 ) = YMC / ( TWO * ( ONE + ANUC ) ) PM ( 22 ) = GS ! ! TWO * G PM ( 22 ) = G PM ( 22 ) = G PM ( 22 ) = STIFF * HALF ! GMAX PM ( 22 ) = CPB PM ( 22 ) = G PM ( 22 ) = THIRD * ( G12 + G23 + G31 ) PM ( 22 ) = GS PM ( 22 ) = MAX ( G12 , G23 , G31 ) PM ( 23 ) = YOUNG PM ( 23 ) = E0 PM ( 23 ) = CPC PM ( 23 ) = EM01 * STIFFAVG ! Hourglass stiffness for QEPH PM ( 23 ) = E0 PM ( 23 ) = ZERO ! E0 PM ( 23 ) = E0 PM ( 23 ) = E0 PM ( 24 ) = PM ( 20 ) PM ( 24 ) = NU * YOUNG / ( ONE - NU * NU ) PM ( 24 ) = YOUNG / ( ONE - NU * * 2 ) PM ( 24 ) = CMAX / ( ONE - NU * * 2 ) / TWO PM ( 24 ) = PM ( 25 ) + TWO * PM ( 22 ) PM ( 24 ) = E1MN2 PM ( 24 ) = STIFF ! Stiffness for time step computation PM ( 24 ) = D2 PM ( 24 ) = YOUNG / ( ONE - NUG * * 2 ) PM ( 24 ) = E1MN2 PM ( 24 ) = VIS PM ( 24 ) = PM ( 20 ) PM ( 24 ) = CPD PM ( 25 ) = GAM PM ( 25 ) = D3 PM ( 25 ) = NR PM ( 25 ) = EN1N2 PM ( 25 ) = CPE PM ( 25 ) = YMC * ANUC / ( ONE + ANUC ) / ( ONE - TWO * ANUC ) PM ( 25 ) = 1 . PM ( 25 ) = EN1N2 PM ( 25 ) = PM ( 21 ) * PM ( 24 ) PM ( 26 ) = FIVE PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CPF PM ( 26 ) = PM ( 26 ) * ONE _ OVER _ 6 PM ( 26 ) = NT PM ( 26 ) = THET PM ( 26 ) = FIVE _ OVER _ 6 PM ( 26 ) = CB PM ( 26 ) = MAX ( ZERO , DSUP1 ) PM ( 27 ) = SQRT ( A11 / RHO0 ) ! sound speed estimation PM ( 27 ) = SQRT ( YOUNG / RHO0 ) ! Sound speed PM ( 27 ) = D PM ( 27 ) = SSP PM ( 27 ) = SDSP PM ( 27 ) = SDSP PM ( 27 ) = CN PM ( 27 ) = SQRT ( A1 / RHO0 ) ! sound speed estimation PM ( 27 ) = SSP PM ( 27 ) = VCRT2 PM ( 27 ) = SQRT ( E / MAX ( RHOR , EM20 ) ) PM ( 27 ) = APY PM ( 27 ) = SQRT ( ( BULK + FOUR _ OVER _ 3 * G ) / RHO0 ) ! sound speed estimation PM ( 27 ) = MAXVAL ( SSP ( 1 : 4 ) ) PM ( 27 ) = IDF PM ( 27 ) = R _ IGC1 PM ( 27 ) = SQRT ( E / RHO0 ) ! Sound speed for beam elements PM ( 27 ) = VMAX PM ( 27 ) = D PM ( 28 ) = MAX ( ONEP0001 , FMAX ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = GAMRP PM ( 28 ) = ONE - HT / YMC PM ( 28 ) = VB PM ( 28 ) = MAX ( ONEP0001 , ( SIGMX / CA ) * * 2 ) PM ( 28 ) = ONE / YOUNG PM ( 28 ) = NR PM ( 29 ) = - ANU * PM ( 28 ) PM ( 29 ) = - NU * PM ( 28 ) PM ( 29 ) = GAM1 PM ( 29 ) = ROK PM ( 29 ) = NT PM ( 29 ) = TM0 PM ( 30 ) = ONE / G PM ( 30 ) = IDF PM ( 30 ) = ONE / G PM ( 30 ) = E00 PM ( 30 ) = RO0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = ZERO ! C0 PM ( 31 ) = C0 PM ( 31 ) = ZERO PM ( 31 ) = - PSH + C0 + C1 * MU + C2 * MU * * 2 + C3 * MU * * 3 + ( C4 + C5 * MU ) * E0 PM ( 31 ) = C0 PM ( 31 ) = P0 + PSHIFT PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 31 ) = P0 PM ( 31 ) = C0 - PSH PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = RHOR * C * * 2 PM ( 32 ) = C1 PM ( 32 ) = RBULK PM ( 32 ) = BULK PM ( 32 ) = BULK PM ( 32 ) = C1 PM ( 32 ) = GS PM ( 32 ) = C1 PM ( 33 ) = ZERO PM ( 33 ) = C2 PM ( 33 ) = E11 PM ( 33 ) = SIGT1 PM ( 33 ) = E11 PM ( 33 ) = C PM ( 33 ) = C2 PM ( 33 ) = A PM ( 33 ) = FC PM ( 33 ) = RE0 / RHO0 PM ( 34 ) = E22 PM ( 34 ) = E22 PM ( 34 ) = SIGT2 PM ( 34 ) = ZERO PM ( 34 ) = B PM ( 34 ) = - HALF * SSP2 / CARL * * 2 PM ( 34 ) = C3 PM ( 34 ) = S PM ( 34 ) = C3 PM ( 34 ) = RT PM ( 35 ) = PCC PM ( 35 ) = RC PM ( 35 ) = N12 PM ( 35 ) = N12 PM ( 35 ) = C4 PM ( 35 ) = BUNL PM ( 35 ) = C4 PM ( 35 ) = XKL PM ( 35 ) = R1 PM ( 35 ) = SIGT3 PM ( 35 ) = ZERO PM ( 36 ) = XMUMX PM ( 36 ) = ZERO PM ( 36 ) = N21 PM ( 36 ) = C5 PM ( 36 ) = N21 PM ( 36 ) = GAM0 PM ( 36 ) = C5 PM ( 36 ) = RT * ( TWO * RC - RT ) PM ( 36 ) = R2 PM ( 36 ) = XLAMB PM ( 36 ) = EFIB PM ( 37 ) = - INFINITY PM ( 37 ) = G12 PM ( 37 ) = EPSFT PM ( 37 ) = - PSH PM ( 37 ) = PMIN PM ( 37 ) = PMIN PM ( 37 ) = ( RC - RT ) * * 2 PM ( 37 ) = EF PM ( 37 ) = G12 PM ( 37 ) = PMIN PM ( 37 ) = ATOM PM ( 38 ) = UPARAM ( 42 ) ! VDET PM ( 38 ) = G23 PM ( 38 ) = AA PM ( 38 ) = CA PM ( 38 ) = EPSFC PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = A0 PM ( 38 ) = CA PM ( 38 ) = D PM ( 38 ) = G23 PM ( 38 ) = EFIB PM ( 38 ) = VDET PM ( 38 ) = SIG0 PM ( 39 ) = CB PM ( 39 ) = ALPHA PM ( 39 ) = CB PM ( 39 ) = G31 PM ( 39 ) = A1 PM ( 39 ) = CB PM ( 39 ) = BC PM ( 39 ) = G31 PM ( 39 ) = CE PM ( 39 ) = PCJ PM ( 40 ) = A2 PM ( 40 ) = BT PM ( 40 ) = ONE / TSCAL PM ( 40 ) = CN PM ( 40 ) = PM ( 1 ) * D * * 2 / PCJ PM ( 40 ) = IFLAG PM ( 40 ) = CN PM ( 40 ) = CN PM ( 40 ) = D11 PM ( 41 ) = EPSM PM ( 41 ) = D12 PM ( 41 ) = IBFRAC PM ( 41 ) = TIMESCAL PM ( 41 ) = EPSM PM ( 41 ) = AMX PM ( 41 ) = AC PM ( 41 ) = EP20 ! EPSM PM ( 41 ) = WPLAMX PM ( 41 ) = EPSM PM ( 41 ) = WPLAMX PM ( 42 ) = QOPT PM ( 42 ) = IOFF PM ( 42 ) = SIGM PM ( 42 ) = D13 PM ( 42 ) = IOFF PM ( 42 ) = TSCAL PM ( 42 ) = FAC _ Y PM ( 42 ) = SIGM PM ( 42 ) = FT * FC / YMC PM ( 42 ) = SIGM PM ( 43 ) = CC PM ( 43 ) = CM PM ( 43 ) = HBP PM ( 43 ) = C0 PM ( 43 ) = CC PM ( 43 ) = D22 PM ( 43 ) = CB1 PM ( 43 ) = CC PM ( 43 ) = PEXT PM ( 43 ) = ESCAL PM ( 44 ) = EPS0 PM ( 44 ) = DE PM ( 44 ) = PSTAR PM ( 44 ) = EPS0 PM ( 44 ) = D23 PM ( 44 ) = CB2 PM ( 44 ) = DE PM ( 44 ) = KSCAL PM ( 44 ) = BULK PM ( 44 ) = RCOMP PM ( 44 ) = ALI PM ( 44 ) = EPS0 PM ( 45 ) = W PM ( 45 ) = ALF PM ( 45 ) = CH PM ( 45 ) = BUNL PM ( 45 ) = CM PM ( 45 ) = D33 PM ( 45 ) = EPSL PM ( 45 ) = CM PM ( 45 ) = A11 PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = SSL PM ( 46 ) = XMUMX PM ( 46 ) = G12 PM ( 46 ) = A22 PM ( 46 ) = TMELT PM ( 46 ) = TMELT PM ( 46 ) = CB PM ( 46 ) = VKY PM ( 46 ) = HL PM ( 47 ) = TMAX PM ( 47 ) = A * AK PM ( 47 ) = CN PM ( 47 ) = ZERO ! MUMIN PM ( 47 ) = CN PM ( 47 ) = EPSMAX PM ( 47 ) = TMAX PM ( 47 ) = YLDL PM ( 47 ) = A1122 PM ( 47 ) = G23 PM ( 48 ) = E PM ( 48 ) = A PM ( 48 ) = G31 PM ( 48 ) = A12 PM ( 48 ) = IFORM PM ( 48 ) = NR PM ( 48 ) = CS PM ( 48 ) = EL PM ( 48 ) = HV0 PM ( 49 ) = A PM ( 49 ) = EXPO PM ( 49 ) = FMAX PM ( 49 ) = GAM0M PM ( 49 ) = ICC PM ( 49 ) = ICC PM ( 49 ) = SSP PM ( 49 ) = FMAX PM ( 49 ) = C0 PM ( 49 ) = NT PM ( 50 ) = AM PM ( 50 ) = B PM ( 50 ) = ZERO PM ( 50 ) = YMS PM ( 50 ) = IDF PM ( 50 ) = CC PM ( 50 ) = ITYP PM ( 50 ) = ONE PM ( 51 ) = SIG PM ( 51 ) = MT PM ( 51 ) = EPS0 PM ( 51 ) = Y0S PM ( 51 ) = INOD ! USR2SYS APRES FSDCOD , IF ( IFORM8 = = 2 ) INOD = USR2SYS ( INOD , ITABM1 , MESS ) PM ( 51 ) = GAME PM ( 51 ) = C3 PM ( 51 ) = YP1 PM ( 52 ) = GP PM ( 52 ) = ONEP414 * PM ( 17 ) * PM ( 1 ) * SSP PM ( 52 ) = ICC PM ( 52 ) = C4 PM ( 52 ) = TM PM ( 52 ) = XKMAX PM ( 52 ) = ONEP414 * MU * PM ( 1 ) * SDSP PM ( 52 ) = ONEP414 * AMU * PM ( 1 ) * SDSP PM ( 52 ) = ETS PM ( 53 ) = ICC PM ( 53 ) = F1 PM ( 53 ) = ONE / CP PM ( 53 ) = DSP PM ( 53 ) = ARM1 PM ( 53 ) = AREAMIN1 PM ( 53 ) = ZERO PM ( 54 ) = E0H PM ( 54 ) = F2 PM ( 54 ) = ARM2 PM ( 54 ) = ZERO PM ( 54 ) = F1 PM ( 54 ) = ONE / ( AREAMIN2 - AREAMIN1 ) PM ( 54 ) = TI PM ( 55 ) = FISOKIN PM ( 55 ) = RP3 PM ( 55 ) = F3 PM ( 55 ) = F2 PM ( 55 ) = ARM3 PM ( 56 ) = F4 PM ( 56 ) = ONE ! PM ( 56 ) = POROSITY PM ( 56 ) = VJ PM ( 56 ) = F11 PM ( 57 ) = F5 PM ( 57 ) = C1 PM ( 57 ) = ICAP + EM01 PM ( 57 ) = F22 PM ( 58 ) = C2 PM ( 58 ) = F33 PM ( 58 ) = F6 PM ( 58 ) = ONE - HVFAC PM ( 59 ) = F11 PM ( 59 ) = ZERO ! PM ( 59 ) = F12 PM ( 59 ) = F1 PM ( 59 ) = C3 PM ( 59 ) = ALPHA PM ( 60 ) = F22 PM ( 60 ) = BETA PM ( 60 ) = EPST1 PM ( 60 ) = D1 PM ( 60 ) = EPST1 PM ( 60 ) = F2 PM ( 61 ) = TMAX PM ( 61 ) = ALPHAP PM ( 61 ) = EPST2 PM ( 61 ) = EPST2 PM ( 61 ) = F33 PM ( 61 ) = F4 PM ( 62 ) = F5 PM ( 62 ) = F44 PM ( 62 ) = EPSM1 PM ( 62 ) = EPSM1 PM ( 63 ) = F11 PM ( 63 ) = EPSM2 PM ( 63 ) = F55 PM ( 63 ) = EPSM2 PM ( 64 ) = DMAX1 PM ( 64 ) = F22 PM ( 64 ) = DMAX PM ( 64 ) = F66 PM ( 65 ) = SHRDAM PM ( 65 ) = DMAX2 PM ( 65 ) = F12 PM ( 65 ) = F44 PM ( 66 ) = EPSF1 PM ( 66 ) = F23 PM ( 66 ) = SHRMAX PM ( 66 ) = F55 PM ( 67 ) = F13 PM ( 67 ) = SHRDMAX PM ( 67 ) = F12 PM ( 67 ) = EPSF2 PM ( 68 ) = WPLAREF PM ( 68 ) = F23 PM ( 69 ) = SPH PM ( 69 ) = SPH PM ( 69 ) = RCP PM ( 69 ) = C11 PM ( 70 ) = ZERO PM ( 71 ) = JTHE + EM01 PM ( 72 ) = ZERO PM ( 72 ) = ZERO PM ( 73 ) = C22 PM ( 73 ) = C11 PM ( 74 ) = C33 PM ( 74 ) = C22 PM ( 75 ) = AS PM ( 75 ) = C12 PM ( 75 ) = C33 PM ( 76 ) = C23 PM ( 76 ) = BS PM ( 76 ) = C12 PM ( 77 ) = C13 PM ( 77 ) = C23 PM ( 77 ) = CF PM ( 78 ) = T0 PM ( 78 ) = C13 PM ( 78 ) = DELTA PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = T0 PM ( 79 ) = DELTA PM ( 79 ) = THREE100 PM ( 80 ) = TMELT PM ( 80 ) = INFINITY PM ( 80 ) = INFINITY PM ( 80 ) = TMELT PM ( 80 ) = TMELT PM ( 80 ) = EP30 PM ( 81 ) = CTM PM ( 81 ) = CTM PM ( 81 ) = SIGT1 PM ( 82 ) = SIGT2 PM ( 82 ) = CT1 PM ( 83 ) = CT2 PM ( 83 ) = SIGT3 PM ( 84 ) = CT3 PM ( 84 ) = EPSFT PM ( 85 ) = SK PM ( 85 ) = EPSFC PM ( 85 ) = SK PM ( 86 ) = SE PM ( 86 ) = SE PM ( 87 ) = RK0 / RHO0 PM ( 87 ) = RK0 / RHO0 PM ( 88 ) = ZERO PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 88 ) = PSH PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 89 ) = RHO0 PM ( 91 ) = RHO10 PM ( 91 ) = MAXVAL ( RHO0 _ ( 1 : 4 ) ) PM ( 95 ) = RPR PM ( 95 ) = RPR PM ( 97 ) = RHOC PM ( 98 ) = ALP0 PM ( 98 ) = EPSF1 PM ( 98 ) = WPLAREF PM ( 99 ) = DC + ONE PM ( 99 ) = EPSF2 PM ( 100 ) = BULK PM ( 100 ) = RBULK PM ( 100 ) = RBULK ! PARMAT ( 1 ) PM ( 100 ) = E PM ( 100 ) = C1 PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = PARMAT ( 1 ) PM ( 100 ) = BULK PM ( 104 ) = P0 + PSHIFT PM ( 104 ) = C0 - PSH PM ( 104 ) = C0 PM ( 104 ) = P0 PM ( 104 ) = C0 - PSH PM ( 105 ) = GS / ( BULK + TWO _ THIRD * GS ) PM ( 105 ) = GS / ( RBULK + TWO _ THIRD * G ) PM ( 105 ) = DMIN / DMAX / DMAX PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = DMIN / C1 * * 2 PM ( 105 ) = TWO * PM ( 22 ) / ( BULK + FOUR _ OVER _ 3 * PM ( 22 ) ) ! = ( 1 - 2 * Nuc ) / ( 1 - Nuc ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) PM ( 105 ) = TWO * G0 / ( BULK + FOUR _ OVER _ 3 * G0 ) ! = ( 1 - 2 * Nu ) / ( 1 - Nu ) PM ( 105 ) = ( ONE - TWO * ANU ) / ( ONE - ANU ) ! TWO * G / ( BULK + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * G / ( C1 + FOUR _ OVER _ 3 * G ) PM ( 105 ) = TWO * GS / ( RBULK + FOUR _ OVER _ 3 * GS ) PM ( 105 ) = MIN ( D11 * D22 - D12 * * 2 , D22 * D33 - D23 * * 2 , D11 * D33 - D13 * * 2 ) / C1 * * 2 PM ( 141 ) = SIGYT1 PM ( 141 ) = SIGYT1 PM ( 142 ) = CBT1 PM ( 142 ) = SIGYT2 PM ( 143 ) = SIGYC1 PM ( 143 ) = CNT1 PM ( 144 ) = SIGYC2 PM ( 144 ) = SIGMXT1 PM ( 145 ) = SIGYT12 PM ( 145 ) = CCT1 PM ( 146 ) = SIGYC12 PM ( 146 ) = SIGYT2 PM ( 147 ) = IFLAG PM ( 147 ) = CBT2 PM ( 148 ) = S1 PM ( 148 ) = CNT2 PM ( 149 ) = SIGMXT2 PM ( 149 ) = S2 PM ( 150 ) = C11 PM ( 150 ) = CCT2 PM ( 151 ) = SIGYC1 PM ( 151 ) = C22 PM ( 152 ) = CBC1 PM ( 152 ) = S12 PM ( 153 ) = CNC1 PM ( 154 ) = SIGMXC1 PM ( 155 ) = CCC1 PM ( 156 ) = SIGYC2 PM ( 157 ) = CBC2 PM ( 158 ) = CNC2 PM ( 159 ) = SIGMXC2 PM ( 160 ) = CCC2 PM ( 160 ) = EADD PM ( 161 ) = SIGYT12 PM ( 161 ) = TBEGIN PM ( 162 ) = CBT12 PM ( 162 ) = TEND PM ( 163 ) = REACTION _ RATE PM ( 163 ) = CNT12 PM ( 164 ) = SIGMXT12 PM ( 164 ) = A _ MIL PM ( 165 ) = CCT12 PM ( 165 ) = M _ MIL PM ( 166 ) = EPS1T1 PM ( 166 ) = N _ MIL PM ( 167 ) = EPS2T1 PM ( 167 ) = REACTION _ RATE2 PM ( 168 ) = SIGRST1 PM ( 168 ) = ALPHA _ UNIT PM ( 169 ) = WPLAMXT1 PM ( 170 ) = EPS1T2 PM ( 171 ) = EPS2T2 PM ( 172 ) = SIGRST2 PM ( 173 ) = WPLAMXT2 PM ( 174 ) = EPS1C1 PM ( 175 ) = EPS2C1 PM ( 176 ) = SIGRSC1 PM ( 177 ) = WPLAMXC1 PM ( 178 ) = EPS1C2 PM ( 179 ) = EPS2C2 PM ( 180 ) = SIGRSC2 PM ( 181 ) = WPLAMXC2 PM ( 182 ) = EPS1T12 PM ( 183 ) = EPS2T12 PM ( 184 ) = SIGRST12 PM ( 185 ) = WPLAMXT12 PM ( 186 ) = E33 PM ( 187 ) = IYEILD PM ( 188 ) = RATIO PM ( 189 ) = IMODWP PM ( 191 ) = XK PM ( 192 ) = XK PM ( 192 ) = RHOA PM ( 193 ) = FRAC PM ( 193 ) = XK PM ( 194 ) = AA PM ( 195 ) = BB PM ( 196 ) = TAUX PM ( 197 ) = KK PM ( 198 ) = ICLOS PM ( 199 ) = RHOEXT PM ( 200 ) = EINT _ EXT PM ( 201 ) = INCGAS","title":"\u5404\u5411\u540c\u6027 \u5f39\u6027"},{"location":"OpenRadioss/use_OpenRadioss_windows/","text":"Windows \u4e0b OpenRadioss \u7684 \u4f7f\u7528 \u6d4b\u8bd5 \u5b9e\u4f8b \u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \u7684 \u6a21\u578b \u6587\u4ef6 \u3002 \u5904\u7406 \u6b65\u9aa4 \u6a21\u578b \u521d\u59cb \u521d\u59cb\u5316 starter _ win64 _ sp . exe - i NEON1M11 _ 0000 . rad - nt 8 \u5f15\u64ce \u6c42\u89e3 engine _ win64 _ sp . exe - i NEON1M11 _ 0001 . rad - nt 8 \u8f93\u51fa \u6587\u4ef6 \uff1a NEON1M11A00 { 1 - 17 } \u3002 \u5c06 \u8f93\u51fa \u8f6c\u5316 \u4e3a \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 anim _ to _ vtk _ win64 . exe NEON1M11A017 > view . vtk \u4f7f\u7528 paraview \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 paraview view . vtk \u5e76 \u70b9\u51fb \u5de6\u4e0b \u4e0b\u89d2 \u5de6\u4e0b\u89d2 Properties \u4e2d \u7684 Apply \u3002 \u8fd0\u884c \u7ed3\u679c","title":"OpenRadios \u6709\u9650\u5143 \u4eff\u771f"},{"location":"OpenRadioss/use_OpenRadioss_windows/#windows-openradioss","text":"","title":"Windows \u4e0b OpenRadioss \u7684 \u4f7f\u7528"},{"location":"OpenRadioss/use_OpenRadioss_windows/#_1","text":"\u6d4b\u8bd5 \u4f8b\u5b50 \u662f \u8f66\u8f86 \u649e\u5899 \u6a21\u62df \u7684 \u6a21\u578b \u6587\u4ef6 \u3002","title":"\u6d4b\u8bd5 \u5b9e\u4f8b"},{"location":"OpenRadioss/use_OpenRadioss_windows/#_2","text":"\u6a21\u578b \u521d\u59cb \u521d\u59cb\u5316 starter _ win64 _ sp . exe - i NEON1M11 _ 0000 . rad - nt 8 \u5f15\u64ce \u6c42\u89e3 engine _ win64 _ sp . exe - i NEON1M11 _ 0001 . rad - nt 8 \u8f93\u51fa \u6587\u4ef6 \uff1a NEON1M11A00 { 1 - 17 } \u3002 \u5c06 \u8f93\u51fa \u8f6c\u5316 \u4e3a \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 anim _ to _ vtk _ win64 . exe NEON1M11A017 > view . vtk \u4f7f\u7528 paraview \u53ef\u89c6 \u53ef\u89c6\u5316 \u6a21\u578b \u6587\u4ef6 paraview view . vtk \u5e76 \u70b9\u51fb \u5de6\u4e0b \u4e0b\u89d2 \u5de6\u4e0b\u89d2 Properties \u4e2d \u7684 Apply \u3002","title":"\u5904\u7406 \u6b65\u9aa4"},{"location":"OpenRadioss/use_OpenRadioss_windows/#_3","text":"","title":"\u8fd0\u884c \u7ed3\u679c"},{"location":"algorithms/control/","text":"\u63a7\u5236 \u63a7\u5236 \u6a21\u5757 \u7b80\u4ecb \u63a7\u5236 \u6a21\u5757 \u8d1f\u8d23 \u751f\u6210 \u63a7\u5236 \u547d\u4ee4 \u6765 \u9a7e\u9a76 \u8f66\u8f86 \u5e76 \u4fdd\u6301 \u5176\u6240 \u9700 \u7684 \u8f68\u8ff9 [ 1 ] \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( Model Predictive Control , MPC ) \u3002 \u7528\u4e8e \u822a\u70b9 \u8ddf\u8e2a \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \u6982\u8ff0 \uff1a PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u6211\u4eec \u81ea\u52a8 \u9a7e\u9a76 \u6d41\u7a0b \u4e2d \u7684 \u57fa\u672c \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u4e4b\u4e00 \u3002 \u5b83 \u8fde\u7eed \u8ba1\u7b97 \u201c \u8bef\u5dee \u201d \u503c \u4f5c\u4e3a \u6240 \u9700 \u8bbe\u5b9a \u70b9 \uff08 \u5728 \u672c\u4f8b \u4e2d\u4e3a \u822a\u8def \u70b9 \uff09 \u4e0e \u5f53\u524d \u8f66\u8f86 \u4f4d\u7f6e \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u3002 \u7ec4\u4ef6 \uff1a \u987e\u540d \u987e\u540d\u601d\u4e49 \uff0c PID \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u4e09\u4e2a \u7ec4\u4ef6 \uff1a \u6bd4\u4f8b \uff08 Proportional , P \uff09 \uff1a \u63d0\u4f9b \u63a7\u5236 \u8f93\u51fa \u4ee5 \u6821\u6b63 \u5f53\u524d \u4f4d\u7f6e \u8bef\u5dee \u3002 \u79ef\u5206 ( Integral , I ) \uff1a \u7ea0\u6b63 \u8fc7\u53bb \u7d2f\u79ef \u7684 \u9519\u8bef \u3002 \u5fae\u5206 \uff08 Derivative , D ) \uff1a \u6839\u636e \u5f53\u524d \u7684 \u53d8\u5316 \u53d8\u5316\u7387 \u6765 \u9884\u6d4b \u548c \u5bf9\u6297 \u672a\u6765 \u7684 \u8bef\u5dee \u8d8b\u52bf \u3002 \u5e94\u7528 \uff1a \u6211\u4eec \u4f7f\u7528 PID \u63a7\u5236 \u63a7\u5236\u5668 \u4e3b\u8981 \u7528\u4e8e \u8def\u70b9 \u8ddf\u8e2a \u3001 \u4fdd\u6301 \u8f66\u9053 \u4f4d\u7f6e \u5e76 \u786e\u4fdd \u8f66\u8f86 \u9075\u5faa \u9884\u5b9a \u8def\u5f84 \u4e14 \u504f\u5dee \u6700\u5c0f \u3002 \u7528\u4e8e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236 \u6982\u8ff0 \uff1a \u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( MPC ) [ 2 ] \u662f \u4e00\u79cd \u5148\u8fdb \u7684 \u63a7\u5236 \u6280\u672f \u63a7\u5236\u6280\u672f \uff0c \u5b83 \u4f7f\u7528 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \u6765 \u9884\u6d4b \u5176 \u5728 \u5b9a\u4e49 \u8303\u56f4 \u5185 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65 \uff0c MPC \u7b97\u6cd5 \u90fd \u4f1a \u8003\u8651 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3001 \u7ea6\u675f \u548c \u6240 \u9700 \u8f68\u8ff9 \uff0c \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \u4ee5 \u627e\u5230 \u6700\u4f73 \u63a7\u5236 \u8f93\u5165 \u3002 \u4e3b\u8981 \u7279\u5f81 \uff1a MPC \u63a7\u5236 \u63a7\u5236\u5668 \u6d89\u53ca \u4e09\u4e2a \u5173\u952e \u529f\u80fd \u6765 \u51b3\u5b9a \u6267\u884c \u54ea\u4e9b \u64cd\u4f5c \u6765 \u63a7\u5236 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \uff1a \u9884\u6d4b \u6a21\u578b \uff1a \u6839\u636e \u8f66\u8f86 \u7684 \u5f53\u524d \u72b6\u6001 \u548c \u6f5c\u5728 \u7684 \u63a7\u5236 \u8f93\u5165 \u6765 \u9884\u6d4b \u8f66\u8f86 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u4f18\u5316 \uff1a \u4e0d\u65ad \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \uff0c \u4ee5 \u786e\u5b9a \u9884\u6d4b \u8303\u56f4 \u5185 \u7684 \u6700\u4f73 \u63a7\u5236 \u64cd\u4f5c \u3002 \u6eda\u52a8 \u4f18\u5316 \u673a\u5236 \uff1a \u4ec5 \u5b9e\u65bd \u4f18\u5316 \u5e8f\u5217 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u52a8\u4f5c \uff0c \u5e76 \u5728 \u4e0b \u4e00\u4e2a \u65f6\u95f4 \u6b65 \u91cd\u65b0 \u8bc4\u4f30 \uff0c \u4ee5 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u6761\u4ef6 \u3002 \u5e94\u7528 \uff1a MPC \u63a7\u5236 \u63a7\u5236\u5668 \u5728 \u9700\u8981 \u7cbe\u786e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u573a\u666f \u4e2d\u5c06 \u53d1\u6325 \u91cd\u8981 \u4f5c\u7528 \uff0c \u7279\u522b \u662f \u5728 \u5177\u6709 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u3001 \u6025\u8f6c \u8f6c\u5f2f \u6025\u8f6c\u5f2f \u548c \u53d8\u5316 \u7684 \u8def\u51b5 \u7684 \u590d\u6742 \u9a7e\u9a76 \u73af\u5883 \u4e2d \u3002 \u901a\u8fc7 \u9884\u6d4b \u672a\u6765 \u72b6\u6001 \u548c \u7ea6\u675f \uff0c \u4e0e \u4f20\u7edf \u63a7\u5236 \u63a7\u5236\u5668 \u76f8\u6bd4 \uff0c MPC \u63d0\u4f9b \u4e86 \u589e\u5f3a \u7684 \u8def\u5f84 \u8ddf\u8e2a \u7cbe\u5ea6 \u548c \u9c81\u68d2\u6027 \u3002 \u5b9e\u65bd \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \uff1a \u7ef4\u62a4 \u548c \u5fae\u8c03 \u73b0\u6709 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u786e\u4fdd \u57fa\u672c \u7684 \u822a\u8def \u70b9 \u8ddf\u8e2a \u529f\u80fd \u3002 \u5f00\u53d1 \u4ee3\u8868 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u96c6\u6210 \u4e0e \u6211\u4eec \u7684 MPC \u7cfb\u7edf \u67b6\u6784 \u517c\u5bb9 \u7684 \u4f18\u5316 \u6c42\u89e3 \u5668 \u3002 \u8bbe\u8ba1 \u548c \u5b9e\u73b0 MPC \u6846\u67b6 \uff0c \u786e\u4fdd \u5176 \u8003\u8651 \u8f66\u8f86 \u7ea6\u675f \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5b9e\u9645 \u6d4b\u8bd5 \u4e2d \u9010\u6b65 \u90e8\u7f72 \u548c \u8bc4\u4f30 MPC \uff0c \u4ece \u4f4e \u590d\u6742 \u590d\u6742\u6027 \u73af\u5883 \u5f00\u59cb \uff0c \u9010\u6b65 \u5347\u7ea7 \u5230 \u66f4\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u573a\u666f \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"\u63a7\u5236"},{"location":"algorithms/control/#_1","text":"","title":"\u63a7\u5236"},{"location":"algorithms/control/#_2","text":"\u63a7\u5236 \u6a21\u5757 \u8d1f\u8d23 \u751f\u6210 \u63a7\u5236 \u547d\u4ee4 \u6765 \u9a7e\u9a76 \u8f66\u8f86 \u5e76 \u4fdd\u6301 \u5176\u6240 \u9700 \u7684 \u8f68\u8ff9 [ 1 ] \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( Model Predictive Control , MPC ) \u3002","title":"\u63a7\u5236 \u6a21\u5757 \u7b80\u4ecb"},{"location":"algorithms/control/#pid","text":"","title":"\u7528\u4e8e \u822a\u70b9 \u8ddf\u8e2a \u7684 PID \u63a7\u5236\u5668"},{"location":"algorithms/control/#_3","text":"PID \u63a7\u5236 \u63a7\u5236\u5668 \u662f \u6211\u4eec \u81ea\u52a8 \u9a7e\u9a76 \u6d41\u7a0b \u4e2d \u7684 \u57fa\u672c \u63a7\u5236 \u7b97\u6cd5 \u63a7\u5236\u7b97\u6cd5 \u4e4b\u4e00 \u3002 \u5b83 \u8fde\u7eed \u8ba1\u7b97 \u201c \u8bef\u5dee \u201d \u503c \u4f5c\u4e3a \u6240 \u9700 \u8bbe\u5b9a \u70b9 \uff08 \u5728 \u672c\u4f8b \u4e2d\u4e3a \u822a\u8def \u70b9 \uff09 \u4e0e \u5f53\u524d \u8f66\u8f86 \u4f4d\u7f6e \u4e4b\u95f4 \u7684 \u5dee\u5f02 \u3002","title":"\u6982\u8ff0 \uff1a"},{"location":"algorithms/control/#_4","text":"\u987e\u540d \u987e\u540d\u601d\u4e49 \uff0c PID \u63a7\u5236 \u63a7\u5236\u5668 \u5305\u62ec \u4e09\u4e2a \u7ec4\u4ef6 \uff1a \u6bd4\u4f8b \uff08 Proportional , P \uff09 \uff1a \u63d0\u4f9b \u63a7\u5236 \u8f93\u51fa \u4ee5 \u6821\u6b63 \u5f53\u524d \u4f4d\u7f6e \u8bef\u5dee \u3002 \u79ef\u5206 ( Integral , I ) \uff1a \u7ea0\u6b63 \u8fc7\u53bb \u7d2f\u79ef \u7684 \u9519\u8bef \u3002 \u5fae\u5206 \uff08 Derivative , D ) \uff1a \u6839\u636e \u5f53\u524d \u7684 \u53d8\u5316 \u53d8\u5316\u7387 \u6765 \u9884\u6d4b \u548c \u5bf9\u6297 \u672a\u6765 \u7684 \u8bef\u5dee \u8d8b\u52bf \u3002","title":"\u7ec4\u4ef6 \uff1a"},{"location":"algorithms/control/#_5","text":"\u6211\u4eec \u4f7f\u7528 PID \u63a7\u5236 \u63a7\u5236\u5668 \u4e3b\u8981 \u7528\u4e8e \u8def\u70b9 \u8ddf\u8e2a \u3001 \u4fdd\u6301 \u8f66\u9053 \u4f4d\u7f6e \u5e76 \u786e\u4fdd \u8f66\u8f86 \u9075\u5faa \u9884\u5b9a \u8def\u5f84 \u4e14 \u504f\u5dee \u6700\u5c0f \u3002","title":"\u5e94\u7528 \uff1a"},{"location":"algorithms/control/#_6","text":"","title":"\u7528\u4e8e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u6a21\u578b \u9884\u6d4b \u63a7\u5236"},{"location":"algorithms/control/#_7","text":"\u6a21\u578b \u9884\u6d4b \u63a7\u5236 ( MPC ) [ 2 ] \u662f \u4e00\u79cd \u5148\u8fdb \u7684 \u63a7\u5236 \u6280\u672f \u63a7\u5236\u6280\u672f \uff0c \u5b83 \u4f7f\u7528 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u6a21\u578b \u6765 \u9884\u6d4b \u5176 \u5728 \u5b9a\u4e49 \u8303\u56f4 \u5185 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65 \uff0c MPC \u7b97\u6cd5 \u90fd \u4f1a \u8003\u8651 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u3001 \u7ea6\u675f \u548c \u6240 \u9700 \u8f68\u8ff9 \uff0c \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \u4ee5 \u627e\u5230 \u6700\u4f73 \u63a7\u5236 \u8f93\u5165 \u3002","title":"\u6982\u8ff0 \uff1a"},{"location":"algorithms/control/#_8","text":"MPC \u63a7\u5236 \u63a7\u5236\u5668 \u6d89\u53ca \u4e09\u4e2a \u5173\u952e \u529f\u80fd \u6765 \u51b3\u5b9a \u6267\u884c \u54ea\u4e9b \u64cd\u4f5c \u6765 \u63a7\u5236 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \uff1a \u9884\u6d4b \u6a21\u578b \uff1a \u6839\u636e \u8f66\u8f86 \u7684 \u5f53\u524d \u72b6\u6001 \u548c \u6f5c\u5728 \u7684 \u63a7\u5236 \u8f93\u5165 \u6765 \u9884\u6d4b \u8f66\u8f86 \u7684 \u672a\u6765 \u72b6\u6001 \u3002 \u4f18\u5316 \uff1a \u4e0d\u65ad \u89e3\u51b3 \u4f18\u5316 \u95ee\u9898 \uff0c \u4ee5 \u786e\u5b9a \u9884\u6d4b \u8303\u56f4 \u5185 \u7684 \u6700\u4f73 \u63a7\u5236 \u64cd\u4f5c \u3002 \u6eda\u52a8 \u4f18\u5316 \u673a\u5236 \uff1a \u4ec5 \u5b9e\u65bd \u4f18\u5316 \u5e8f\u5217 \u7684 \u7b2c\u4e00 \u4e00\u4e2a \u7b2c\u4e00\u4e2a \u63a7\u5236 \u52a8\u4f5c \uff0c \u5e76 \u5728 \u4e0b \u4e00\u4e2a \u65f6\u95f4 \u6b65 \u91cd\u65b0 \u8bc4\u4f30 \uff0c \u4ee5 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u6761\u4ef6 \u3002","title":"\u4e3b\u8981 \u7279\u5f81 \uff1a"},{"location":"algorithms/control/#_9","text":"MPC \u63a7\u5236 \u63a7\u5236\u5668 \u5728 \u9700\u8981 \u7cbe\u786e \u8f68\u8ff9 \u8ddf\u8e2a \u7684 \u573a\u666f \u4e2d\u5c06 \u53d1\u6325 \u91cd\u8981 \u4f5c\u7528 \uff0c \u7279\u522b \u662f \u5728 \u5177\u6709 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u3001 \u6025\u8f6c \u8f6c\u5f2f \u6025\u8f6c\u5f2f \u548c \u53d8\u5316 \u7684 \u8def\u51b5 \u7684 \u590d\u6742 \u9a7e\u9a76 \u73af\u5883 \u4e2d \u3002 \u901a\u8fc7 \u9884\u6d4b \u672a\u6765 \u72b6\u6001 \u548c \u7ea6\u675f \uff0c \u4e0e \u4f20\u7edf \u63a7\u5236 \u63a7\u5236\u5668 \u76f8\u6bd4 \uff0c MPC \u63d0\u4f9b \u4e86 \u589e\u5f3a \u7684 \u8def\u5f84 \u8ddf\u8e2a \u7cbe\u5ea6 \u548c \u9c81\u68d2\u6027 \u3002","title":"\u5e94\u7528 \uff1a"},{"location":"algorithms/control/#_10","text":"\u7ef4\u62a4 \u548c \u5fae\u8c03 \u73b0\u6709 \u7684 PID \u63a7\u5236 \u63a7\u5236\u5668 \uff0c \u4ee5 \u786e\u4fdd \u57fa\u672c \u7684 \u822a\u8def \u70b9 \u8ddf\u8e2a \u529f\u80fd \u3002 \u5f00\u53d1 \u4ee3\u8868 \u8f66\u8f86 \u52a8\u529b \u529b\u5b66 \u52a8\u529b\u5b66 \u7684 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u3002 \u96c6\u6210 \u4e0e \u6211\u4eec \u7684 MPC \u7cfb\u7edf \u67b6\u6784 \u517c\u5bb9 \u7684 \u4f18\u5316 \u6c42\u89e3 \u5668 \u3002 \u8bbe\u8ba1 \u548c \u5b9e\u73b0 MPC \u6846\u67b6 \uff0c \u786e\u4fdd \u5176 \u8003\u8651 \u8f66\u8f86 \u7ea6\u675f \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5404\u79cd \u573a\u666f \u7684 \u4eff\u771f \u4e2d \u6d4b\u8bd5 MPC \uff0c \u5e76 \u7ec6\u5316 \u6a21\u578b \u548c \u63a7\u5236 \u63a7\u5236\u5668 \u53c2\u6570 \u3002 \u5728 \u5b9e\u9645 \u6d4b\u8bd5 \u4e2d \u9010\u6b65 \u90e8\u7f72 \u548c \u8bc4\u4f30 MPC \uff0c \u4ece \u4f4e \u590d\u6742 \u590d\u6742\u6027 \u73af\u5883 \u5f00\u59cb \uff0c \u9010\u6b65 \u5347\u7ea7 \u5230 \u66f4\u5177 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u573a\u666f \u3002","title":"\u5b9e\u65bd \u8def\u7ebf\u56fe \uff1a"},{"location":"algorithms/control/#_11","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/localization/","text":"\u5b9a\u4f4d \u5b9a\u4f4d \u6a21\u5757 \u4ecb\u7ecd ISS \u5b9a\u4f4d \u6a21\u5757 \u786e\u4fdd \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e0d\u4ec5 \u4e86\u89e3 \u5176 \u5728 \u5e7f\u9614 \u7684 \u9053\u8def \u548c \u73af\u5883 \u4e2d \u7684 \u4f4d\u7f6e \uff0c \u800c\u4e14 \u5177\u6709 \u4f26\u6bd4 \u65e0\u4e0e\u4f26\u6bd4 \u7684 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u6d41\u7a0b \uff0c \u4ece \u5355\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u878d\u5408 \u7b97\u6cd5 \u3002 \u5355\u72ec \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4e3a\u4e86 \u5b9e\u73b0 \u7cbe\u786e \u786e\u5b9a \u5b9a\u4f4d \u7cbe\u786e\u5b9a\u4f4d \uff0c \u91c7\u7528 \u4e86 \u4f7f\u7528 \u5404\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u7b97\u6cd5 \u7684 \u591a\u65b9 \u65b9\u9762 \u591a\u65b9\u9762 \u65b9\u6cd5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a \u8fed\u4ee3 \u6700\u8fd1 \u70b9 ( Iterative Closest Point , ICP ) [ 1 ] \uff1a \u8be5 \u7b97\u6cd5 \u5bf9\u9f50 \u4e24\u4e2a \u70b9\u4e91\u4ee5 \u786e\u5b9a \u5bf9\u9f50 \u5b83\u4eec \u7684 \u6700\u4f73 \u62df\u5408 \u53d8\u6362 \u3002 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u53d8\u6362 ( Normal Distributions Transform , NDT ) [ 2 ] : \u8fd9\u79cd \u5148\u8fdb \u7684 \u65b9\u6cd5 \u4f7f\u7528 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u8868\u793a \u70b9\u4e91 \u6570\u636e \uff0c \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5f3a\u5927 \u800c \u6709\u6548 \u7684 \u914d\u51c6 \u65b9\u6cd5 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( Inertial Measurement Unit , IMU ) : \u822a\u4f4d \u63a8\u7b97 \uff1a \u901a\u8fc7 \u5229\u7528 \u8fd0\u52a8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u822a\u4f4d \u63a8\u7b97 \u53ef\u4ee5 \u8fde\u7eed \u4f30\u8ba1 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u3002 \u7136\u800c \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u5176 \u51c6\u786e \u51c6\u786e\u6027 \u4f1a \u964d\u4f4e \uff0c \u9700\u8981 \u8865\u5145 \u6570\u636e \u8fdb\u884c \u6821\u6b63 \u3002 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf ( Global Positioning System , GPS ) : \u867d\u7136 GPS \u4e3a \u5b9a\u4f4d \u63d0\u4f9b \u4e86 \u5168\u7403 \u53c2\u8003 \uff0c \u4f46 \u5176 \u7cbe\u5ea6 \u53ef\u80fd \u4e0d\u8db3 \u8db3\u4ee5 \u4e0d\u8db3\u4ee5 \u6ee1\u8db3 \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u4e25\u683c \u516c\u5dee \u8981\u6c42 \u3002 \u56e0\u6b64 \uff0c GPS \u6570\u636e \u901a\u5e38 \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u878d\u5408 \u4ee5 \u63d0\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u878d\u5408 \u5b8c\u7f8e \u5b9a\u4f4d \u7684 \u5173\u952e \u4e0d\u4ec5 \u5728\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e2a\u4f53 \u80fd\u529b \uff0c \u8fd8 \u5728\u4e8e \u5b83\u4eec \u7684 \u534f\u4f5c \u80fd\u529b \uff1a \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u65b9\u6cd5 : \u9012\u5f52 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u5361\u5c14 \u6ee4\u6ce2 \u5361\u5c14\u66fc \u5361\u5c14\u66fc\u6ee4\u6ce2 \u5668 \u548c \u7c92\u5b50 \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 [ 3 ] \uff0c \u5bf9\u4e8e \u5b9e\u65f6 \u72b6\u6001 \u4f30\u8ba1 \u548c \u9884\u6d4b \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u57fa\u4e8e \u4f18\u5316 \u7684 \u65b9\u6cd5 : GraphSLAM [ 4 ] \u7b49 \u6574\u4f53 \u65b9\u6cd5 \u53ef\u4ee5 \u8c03\u6574 \u548c \u7ec6\u5316 \u6574\u4e2a \u8f68\u8ff9 \u6216 \u5730\u56fe \uff0c \u786e\u4fdd \u5904\u7406 \u540e\u5904\u7406 \u573a\u666f \u4e2d \u7684 \u6700\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u5b9e\u65bd \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u7ef4\u62a4 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff08 \u8fed\u4ee3 \u6700\u8fd1 \u70b9 \u3001 \u6b63\u592a \u5206\u5e03 \u53d8\u6362 \uff09 \u3001 \u60ef\u6027 \u6d4b\u91cf \u5355\u4f4d \uff08 \u822a\u4f4d \u63a8\u6d4b \uff09 \u3001 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf \u548c \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u878d\u5408 \u3002 \u7814\u7a76 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \uff1a GraphSLAM \u3001 \u7ed1\u5b9a \u8c03\u6574 \u3001 \u4f4d\u59ff\u56fe \u4f18\u5316 \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u4f18\u5316 \u65b9\u6cd5 \u7684 \u6570\u636e \u96c6 \u3002 \u5c06 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Besl P J , McKay N D . Method for registration of 3 - D shapes . In Sensor fusion IV : control paradigms and data structures . Spie , 1992 , 1611 : 586 - 606 . Biber P , Stra \u00df er W . The normal distributions transform : A new approach to laser scan matching . In Proceedings 2003 IEEE / RSJ International Conference on Intelligent Robots and Systems ( IROS 2003 ) . IEEE , 2003 , 3 : 2743 - 2748 . Thrun S . Probabilistic robotics . In Communications of the ACM , 2002 , 45 ( 3 ) : 52 - 57 . Shan T , Englot B , Meyers D , et al . Lio - sam : Tightly - coupled LiDAR inertial odometry via smoothing and mapping . In 2020 IEEE / RSJ international conference on intelligent robots and systems ( IROS ) . IEEE , 2020 : 5135 - 5142 .","title":"\u5b9a\u4f4d"},{"location":"algorithms/localization/#_1","text":"","title":"\u5b9a\u4f4d"},{"location":"algorithms/localization/#_2","text":"ISS \u5b9a\u4f4d \u6a21\u5757 \u786e\u4fdd \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u4e0d\u4ec5 \u4e86\u89e3 \u5176 \u5728 \u5e7f\u9614 \u7684 \u9053\u8def \u548c \u73af\u5883 \u4e2d \u7684 \u4f4d\u7f6e \uff0c \u800c\u4e14 \u5177\u6709 \u4f26\u6bd4 \u65e0\u4e0e\u4f26\u6bd4 \u7684 \u51c6\u786e \u51c6\u786e\u6027 \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u6d41\u7a0b \uff0c \u4ece \u5355\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5230 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u878d\u5408 \u7b97\u6cd5 \u3002","title":"\u5b9a\u4f4d \u6a21\u5757 \u4ecb\u7ecd"},{"location":"algorithms/localization/#_3","text":"\u4e3a\u4e86 \u5b9e\u73b0 \u7cbe\u786e \u786e\u5b9a \u5b9a\u4f4d \u7cbe\u786e\u5b9a\u4f4d \uff0c \u91c7\u7528 \u4e86 \u4f7f\u7528 \u5404\u79cd \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u548c \u7b97\u6cd5 \u7684 \u591a\u65b9 \u65b9\u9762 \u591a\u65b9\u9762 \u65b9\u6cd5 \uff1a \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff1a \u8fed\u4ee3 \u6700\u8fd1 \u70b9 ( Iterative Closest Point , ICP ) [ 1 ] \uff1a \u8be5 \u7b97\u6cd5 \u5bf9\u9f50 \u4e24\u4e2a \u70b9\u4e91\u4ee5 \u786e\u5b9a \u5bf9\u9f50 \u5b83\u4eec \u7684 \u6700\u4f73 \u62df\u5408 \u53d8\u6362 \u3002 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u53d8\u6362 ( Normal Distributions Transform , NDT ) [ 2 ] : \u8fd9\u79cd \u5148\u8fdb \u7684 \u65b9\u6cd5 \u4f7f\u7528 \u5206\u5e03 \u6b63\u6001\u5206\u5e03 \u8868\u793a \u70b9\u4e91 \u6570\u636e \uff0c \u63d0\u4f9b \u4e86 \u4e00\u79cd \u5f3a\u5927 \u800c \u6709\u6548 \u7684 \u914d\u51c6 \u65b9\u6cd5 \u3002 \u60ef\u6027 \u6d4b\u91cf \u5355\u5143 ( Inertial Measurement Unit , IMU ) : \u822a\u4f4d \u63a8\u7b97 \uff1a \u901a\u8fc7 \u5229\u7528 \u8fd0\u52a8 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \uff0c \u822a\u4f4d \u63a8\u7b97 \u53ef\u4ee5 \u8fde\u7eed \u4f30\u8ba1 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \u3002 \u7136\u800c \uff0c \u968f\u7740 \u65f6\u95f4 \u7684 \u63a8\u79fb \uff0c \u5176 \u51c6\u786e \u51c6\u786e\u6027 \u4f1a \u964d\u4f4e \uff0c \u9700\u8981 \u8865\u5145 \u6570\u636e \u8fdb\u884c \u6821\u6b63 \u3002 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf ( Global Positioning System , GPS ) : \u867d\u7136 GPS \u4e3a \u5b9a\u4f4d \u63d0\u4f9b \u4e86 \u5168\u7403 \u53c2\u8003 \uff0c \u4f46 \u5176 \u7cbe\u5ea6 \u53ef\u80fd \u4e0d\u8db3 \u8db3\u4ee5 \u4e0d\u8db3\u4ee5 \u6ee1\u8db3 \u81ea\u52a8 \u9a7e\u9a76 \u7684 \u4e25\u683c \u516c\u5dee \u8981\u6c42 \u3002 \u56e0\u6b64 \uff0c GPS \u6570\u636e \u901a\u5e38 \u4e0e \u5176\u4ed6 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u878d\u5408 \u4ee5 \u63d0\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002","title":"\u5355\u72ec \u7684 \u4f20\u611f\u5668"},{"location":"algorithms/localization/#_4","text":"\u5b8c\u7f8e \u5b9a\u4f4d \u7684 \u5173\u952e \u4e0d\u4ec5 \u5728\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u4e2a\u4f53 \u80fd\u529b \uff0c \u8fd8 \u5728\u4e8e \u5b83\u4eec \u7684 \u534f\u4f5c \u80fd\u529b \uff1a \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u65b9\u6cd5 : \u9012\u5f52 \u7b97\u6cd5 \uff0c \u4f8b\u5982 \u5361\u5c14 \u6ee4\u6ce2 \u5361\u5c14\u66fc \u5361\u5c14\u66fc\u6ee4\u6ce2 \u5668 \u548c \u7c92\u5b50 \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 [ 3 ] \uff0c \u5bf9\u4e8e \u5b9e\u65f6 \u72b6\u6001 \u4f30\u8ba1 \u548c \u9884\u6d4b \u662f \u4e0d\u53ef \u5fc5\u4e0d\u53ef\u5c11 \u7684 \u3002 \u57fa\u4e8e \u4f18\u5316 \u7684 \u65b9\u6cd5 : GraphSLAM [ 4 ] \u7b49 \u6574\u4f53 \u65b9\u6cd5 \u53ef\u4ee5 \u8c03\u6574 \u548c \u7ec6\u5316 \u6574\u4e2a \u8f68\u8ff9 \u6216 \u5730\u56fe \uff0c \u786e\u4fdd \u5904\u7406 \u540e\u5904\u7406 \u573a\u666f \u4e2d \u7684 \u6700\u9ad8 \u51c6\u786e \u51c6\u786e\u6027 \u3002","title":"\u4f20\u611f\u5668 \u878d\u5408"},{"location":"algorithms/localization/#_5","text":"\u7ef4\u62a4 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \uff08 \u8fed\u4ee3 \u6700\u8fd1 \u70b9 \u3001 \u6b63\u592a \u5206\u5e03 \u53d8\u6362 \uff09 \u3001 \u60ef\u6027 \u6d4b\u91cf \u5355\u4f4d \uff08 \u822a\u4f4d \u63a8\u6d4b \uff09 \u3001 \u5168\u7403 \u5b9a\u4f4d \u7cfb\u7edf \u5168\u7403\u5b9a\u4f4d\u7cfb\u7edf \u548c \u57fa\u4e8e \u6ee4\u6ce2 \u6ee4\u6ce2\u5668 \u7684 \u878d\u5408 \u3002 \u7814\u7a76 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \uff1a GraphSLAM \u3001 \u7ed1\u5b9a \u8c03\u6574 \u3001 \u4f4d\u59ff\u56fe \u4f18\u5316 \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u4f18\u5316 \u65b9\u6cd5 \u7684 \u6570\u636e \u96c6 \u3002 \u5c06 \u57fa\u4e8e \u4f18\u5316 \u7684 \u878d\u5408 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u3002","title":"\u5b9e\u65bd \u8def\u7ebf\u56fe"},{"location":"algorithms/localization/#_6","text":"Besl P J , McKay N D . Method for registration of 3 - D shapes . In Sensor fusion IV : control paradigms and data structures . Spie , 1992 , 1611 : 586 - 606 . Biber P , Stra \u00df er W . The normal distributions transform : A new approach to laser scan matching . In Proceedings 2003 IEEE / RSJ International Conference on Intelligent Robots and Systems ( IROS 2003 ) . IEEE , 2003 , 3 : 2743 - 2748 . Thrun S . Probabilistic robotics . In Communications of the ACM , 2002 , 45 ( 3 ) : 52 - 57 . Shan T , Englot B , Meyers D , et al . Lio - sam : Tightly - coupled LiDAR inertial odometry via smoothing and mapping . In 2020 IEEE / RSJ international conference on intelligent robots and systems ( IROS ) . IEEE , 2020 : 5135 - 5142 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/perception/","text":"\u611f\u77e5 \u611f\u77e5 \u6a21\u5757 \u7b80\u4ecb ISS \u611f\u77e5 \u6a21\u5757 \u4e3a \u591a\u79cd \u611f\u77e5 \u4efb\u52a1 \u63d0\u4f9b \u652f\u6301 \uff0c \u4f8b\u5982 3D \u969c\u788d \u969c\u788d\u7269 \u611f\u77e5 \u3001 2D \u7269\u4f53 \u8bc6\u522b \u3001 2D \u8bed\u4e49 \u5206\u5272 \u548c \u57fa\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff08 Bird ' s Eye View , BEV \uff09 \u5730\u56fe \u751f\u6210 \u3002 \u6211\u4eec \u7684 \u56e2\u961f \u4e13\u6ce8 \u4e8e \u5f00\u53d1 \u548c \u5b8c\u5584 \u8fd9\u4e9b \u5173\u952e \u7684 \u611f\u77e5 \u4efb\u52a1 \u3002 \u8fd9\u4e9b \u4efb\u52a1 \u662f \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u5b89\u5168 \u3001 \u7cbe\u786e \u5730 \u5728 \u590d\u6742 \u73af\u5883 \u4e2d \u884c\u9a76 \u7684 \u57fa\u7840 \u3002 \u4efb\u52a1 ISS \u611f\u77e5 \u6a21\u5757 \u652f\u6301 \u7684 \u4e0d\u540c \u4efb\u52a1 \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u4e86\u89e3 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u53ca\u5176 \u5143\u7d20 \u7684 \u7279\u5b9a \u5c5e\u6027 \u3002 3D \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \uff1a \u6211\u4eec \u7684 \u7cfb\u7edf \u91c7\u7528 \u5148\u8fdb \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6280\u672f \u6765 \u5b9e\u65f6 \u68c0\u6d4b \u548c \u5206\u6790 \u4e09\u7ef4 \u969c\u788d \u969c\u788d\u7269 \u3002 \u5373\u4f7f \u5728 \u52a8\u6001 \u548c \u5177\u6709 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u573a\u666f \u4e2d \uff0c \u8fd9\u79cd \u529f\u80fd \u4e5f \u4f7f \u6211\u4eec \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u80fd\u591f \u505a\u51fa \u660e\u667a \u7684 \u51b3\u7b56 \u5e76 \u786e\u4fdd \u4fdd\u5b89 \u5b89\u5168 \u786e\u4fdd\u5b89\u5168 \u5bfc\u822a \u3002 2D \u7269\u4f53 \u68c0\u6d4b \uff1a \u8bc6\u522b \u548c \u8bc6\u522b \u8f66\u8f86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u4e2d \u7684 \u7269\u4f53 \u5bf9\u4e8e \u5b89\u5168 \u5bfc\u822a \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u6211\u4eec \u7684 \u6846\u67b6 \u5229\u7528 \u5c16\u7aef \u7b97\u6cd5 \u6765 \u8bc6\u522b \u548c \u5206\u7c7b \u5404\u79cd \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u884c\u4eba \u3001 \u8f66\u8f86 \u548c \u6807\u724c \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u589e\u5f3a \u6001\u52bf \u611f\u77e5 \u3002 3D \u969c\u788d \u969c\u788d\u7269 \u611f\u77e5 \u548c 2D \u7269\u4f53 \u68c0\u6d4b 2D \u8bed\u4e49 \u5206\u5272 \uff1a \u8bed\u4e49 \u5206\u5272 \u662f \u8be6\u7ec6 \u4e86\u89e3 \u73af\u5883 \u7684 \u4e00\u9879 \u91cd\u8981 \u4efb\u52a1 \u3002 \u6211\u4eec \u5229\u7528 \u6700 \u5148\u8fdb \u7684 \u6280\u672f \u5c06 \u573a\u666f \u5212\u5206 \u4e3a \u6709 \u610f\u4e49 \u7684 \u90e8\u5206 \uff0c \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u7406\u89e3 \u9053\u8def \u5e03\u5c40 \u5e76 \u66f4\u597d \u5730 \u54cd\u5e94 \u590d\u6742 \u7684 \u57ce\u5e02 \u666f\u89c2 \u3002 \u57fa\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 BEV \u5730\u56fe \u751f\u6210 \uff1a \u6211\u4eec \u7684 \u7cfb\u7edf \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u751f\u6210 \u9e1f\u77b0 \u9e1f\u77b0\u56fe ( BEV ) \u5730\u56fe \uff0c \u63d0\u4f9b \u8f66\u8f86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u6574\u4f53 \u89c6\u56fe \u3002 \u8be5 \u5730\u56fe \u662f \u8def\u5f84 \u89c4\u5212 \u548c \u51b3\u7b56 \u7684 \u5b9d\u8d35 \u5de5\u5177 \uff0c \u53ef \u589e\u5f3a \u8f66\u8f86 \u9ad8\u6548 \u3001 \u5b89\u5168 \u5bfc\u822a \u7684 \u80fd\u529b \u3002 \u76ee\u524d \uff0c \u6211\u4eec \u6b63\u5728 \u52aa\u529b \u5f00\u53d1 \u8fd9\u4e9b \u6a21\u5757 \uff0c \u6211\u4eec \u5f88 \u9ad8\u5174 \u5730 \u544a\u8bc9 \u5927\u5bb6 \uff0c \u6211\u4eec \u5df2\u7ecf \u4e3a \u524d \u4e09\u4e2a \u4efb\u52a1 \u5f00\u53d1 \u4e86 \u521d\u59cb \u6a21\u578b \u521d\u59cb\u6a21\u578b \u3002 \u7136\u800c \uff0c \u503c\u5f97 \u6ce8\u610f \u503c\u5f97\u6ce8\u610f \u7684 \u662f \uff0c \u8fd9\u4e9b \u6a21\u578b \u4ecd \u5728 \u4e0d\u65ad \u5b8c\u5584 \u4e0d\u65ad\u5b8c\u5584 \uff0c \u4ee5 \u63d0\u9ad8 \u5176 \u6027\u80fd \u548c \u53ef\u9760 \u53ef\u9760\u6027 \u3002 \u6211\u4eec \u8fd8 \u63d0\u4f9b \u4e86 \u6709\u5173 ISS \u751f\u6210 \u7684 \u7269\u4f53 \u68c0\u6d4b \u7684 \u6570\u636e \u96c6 \u3002 \u4ecd \u5728 \u66f4\u65b0 \u3002 git \u4ed3\u5e93 \u76ee\u6807 \u68c0\u6d4b \u5728 Carla \u4e2d \u4f7f\u7528 YOLOv3 \u68c0\u6d4b \u76ee\u6807 \u3002 \u5b89\u88c5 pip install - r requirements . txt \u5982\u679c \u9700\u8981 GPU \u8ba1\u7b97 , \u5b89\u88c5 nvidia - cuda - toolkit \u3002 \u521b\u5efa conda \u73af\u5883 \uff1a conda create - n yolo python = 3.7 conda activate yolo \u6ce8\u610f \uff1a \u8fd0\u884c \u811a\u672c \u7684 \u65f6\u5019 \u4f1a \u63d0\u793a \u5b89\u88c5 \u5b89\u88c5\u5305 \uff01 \u9664 Carla Client API \u4e3a 0.9 . 12 \u4e0e Carla \u5bf9\u5e94 \uff0c \u5176\u4ed6 \u5b89\u88c5 \u6700\u65b0 \u7684 \u3002 weights \u6587\u4ef6 \u94fe\u63a5 \uff1a https : / / pan . baidu . com / s / 184hR _ PQZttYeAz9QE4XOQg \u63d0\u53d6 \u7801 \uff1a hyus \u5c06 weight \u6587\u4ef6 \u653e\u5728 weights \u76ee\u5f55 \u4e0b \u3002 \u8fd0\u884c 1 . \u8fde\u63a5 Carla \u670d\u52a1 \u670d\u52a1\u7aef . / CarlaUE4 . sh 2 . \u8fd0\u884c \u811a\u672c \u751f\u6210 \u8f66\u8f86 \u548c \u884c\u4eba python3 spawn _ npc . py - n 80 \u6ce8\u610f : spawn _ npc . py \u5728 PythonAPI / examples \uff0c \u8be5 \u6d4b\u8bd5 \u662f \u5728 Carla - 0.9 . 12 \uff0c \u6700\u65b0 \u65b0\u7248 \u6700\u65b0\u7248 Carla \u6ca1\u6709 spawn _ npc . py , \u4f46\u662f \u4f1a \u51fa\u73b0 \u884c\u4eba \u5012 \u7740 \u8d70 \u7684 \u95ee\u9898 \uff0c \u4e0d\u59a8 \u4f7f\u7528 generate _ trrafic . py \u3002 3 . \u884c python3 object _ detection . py \u7528 gpu \u6267\u884c pip install yolo34py - gpu python3 object _ detection _ gpu . py","title":"\u611f\u77e5"},{"location":"algorithms/perception/#_1","text":"","title":"\u611f\u77e5"},{"location":"algorithms/perception/#_2","text":"ISS \u611f\u77e5 \u6a21\u5757 \u4e3a \u591a\u79cd \u611f\u77e5 \u4efb\u52a1 \u63d0\u4f9b \u652f\u6301 \uff0c \u4f8b\u5982 3D \u969c\u788d \u969c\u788d\u7269 \u611f\u77e5 \u3001 2D \u7269\u4f53 \u8bc6\u522b \u3001 2D \u8bed\u4e49 \u5206\u5272 \u548c \u57fa\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u9e1f\u77b0 \u9e1f\u77b0\u56fe \uff08 Bird ' s Eye View , BEV \uff09 \u5730\u56fe \u751f\u6210 \u3002 \u6211\u4eec \u7684 \u56e2\u961f \u4e13\u6ce8 \u4e8e \u5f00\u53d1 \u548c \u5b8c\u5584 \u8fd9\u4e9b \u5173\u952e \u7684 \u611f\u77e5 \u4efb\u52a1 \u3002 \u8fd9\u4e9b \u4efb\u52a1 \u662f \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u5b89\u5168 \u3001 \u7cbe\u786e \u5730 \u5728 \u590d\u6742 \u73af\u5883 \u4e2d \u884c\u9a76 \u7684 \u57fa\u7840 \u3002","title":"\u611f\u77e5 \u6a21\u5757 \u7b80\u4ecb"},{"location":"algorithms/perception/#_3","text":"ISS \u611f\u77e5 \u6a21\u5757 \u652f\u6301 \u7684 \u4e0d\u540c \u4efb\u52a1 \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u4e86\u89e3 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u53ca\u5176 \u5143\u7d20 \u7684 \u7279\u5b9a \u5c5e\u6027 \u3002 3D \u969c\u788d \u969c\u788d\u7269 \u68c0\u6d4b \uff1a \u6211\u4eec \u7684 \u7cfb\u7edf \u91c7\u7528 \u5148\u8fdb \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6280\u672f \u6765 \u5b9e\u65f6 \u68c0\u6d4b \u548c \u5206\u6790 \u4e09\u7ef4 \u969c\u788d \u969c\u788d\u7269 \u3002 \u5373\u4f7f \u5728 \u52a8\u6001 \u548c \u5177\u6709 \u6311\u6218 \u6311\u6218\u6027 \u7684 \u573a\u666f \u4e2d \uff0c \u8fd9\u79cd \u529f\u80fd \u4e5f \u4f7f \u6211\u4eec \u7684 \u81ea\u52a8 \u9a7e\u9a76 \u8f66\u8f86 \u80fd\u591f \u505a\u51fa \u660e\u667a \u7684 \u51b3\u7b56 \u5e76 \u786e\u4fdd \u4fdd\u5b89 \u5b89\u5168 \u786e\u4fdd\u5b89\u5168 \u5bfc\u822a \u3002 2D \u7269\u4f53 \u68c0\u6d4b \uff1a \u8bc6\u522b \u548c \u8bc6\u522b \u8f66\u8f86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u4e2d \u7684 \u7269\u4f53 \u5bf9\u4e8e \u5b89\u5168 \u5bfc\u822a \u81f3\u5173 \u91cd\u8981 \u81f3\u5173\u91cd\u8981 \u3002 \u6211\u4eec \u7684 \u6846\u67b6 \u5229\u7528 \u5c16\u7aef \u7b97\u6cd5 \u6765 \u8bc6\u522b \u548c \u5206\u7c7b \u5404\u79cd \u5bf9\u8c61 \uff0c \u4f8b\u5982 \u884c\u4eba \u3001 \u8f66\u8f86 \u548c \u6807\u724c \uff0c \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u589e\u5f3a \u6001\u52bf \u611f\u77e5 \u3002 3D \u969c\u788d \u969c\u788d\u7269 \u611f\u77e5 \u548c 2D \u7269\u4f53 \u68c0\u6d4b 2D \u8bed\u4e49 \u5206\u5272 \uff1a \u8bed\u4e49 \u5206\u5272 \u662f \u8be6\u7ec6 \u4e86\u89e3 \u73af\u5883 \u7684 \u4e00\u9879 \u91cd\u8981 \u4efb\u52a1 \u3002 \u6211\u4eec \u5229\u7528 \u6700 \u5148\u8fdb \u7684 \u6280\u672f \u5c06 \u573a\u666f \u5212\u5206 \u4e3a \u6709 \u610f\u4e49 \u7684 \u90e8\u5206 \uff0c \u4f7f \u6211\u4eec \u7684 \u8f66\u8f86 \u80fd\u591f \u7406\u89e3 \u9053\u8def \u5e03\u5c40 \u5e76 \u66f4\u597d \u5730 \u54cd\u5e94 \u590d\u6742 \u7684 \u57ce\u5e02 \u666f\u89c2 \u3002 \u57fa\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 BEV \u5730\u56fe \u751f\u6210 \uff1a \u6211\u4eec \u7684 \u7cfb\u7edf \u4f7f\u7528 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u6570\u636e \u751f\u6210 \u9e1f\u77b0 \u9e1f\u77b0\u56fe ( BEV ) \u5730\u56fe \uff0c \u63d0\u4f9b \u8f66\u8f86 \u5468\u56f4 \u73af\u5883 \u5468\u56f4\u73af\u5883 \u7684 \u6574\u4f53 \u89c6\u56fe \u3002 \u8be5 \u5730\u56fe \u662f \u8def\u5f84 \u89c4\u5212 \u548c \u51b3\u7b56 \u7684 \u5b9d\u8d35 \u5de5\u5177 \uff0c \u53ef \u589e\u5f3a \u8f66\u8f86 \u9ad8\u6548 \u3001 \u5b89\u5168 \u5bfc\u822a \u7684 \u80fd\u529b \u3002 \u76ee\u524d \uff0c \u6211\u4eec \u6b63\u5728 \u52aa\u529b \u5f00\u53d1 \u8fd9\u4e9b \u6a21\u5757 \uff0c \u6211\u4eec \u5f88 \u9ad8\u5174 \u5730 \u544a\u8bc9 \u5927\u5bb6 \uff0c \u6211\u4eec \u5df2\u7ecf \u4e3a \u524d \u4e09\u4e2a \u4efb\u52a1 \u5f00\u53d1 \u4e86 \u521d\u59cb \u6a21\u578b \u521d\u59cb\u6a21\u578b \u3002 \u7136\u800c \uff0c \u503c\u5f97 \u6ce8\u610f \u503c\u5f97\u6ce8\u610f \u7684 \u662f \uff0c \u8fd9\u4e9b \u6a21\u578b \u4ecd \u5728 \u4e0d\u65ad \u5b8c\u5584 \u4e0d\u65ad\u5b8c\u5584 \uff0c \u4ee5 \u63d0\u9ad8 \u5176 \u6027\u80fd \u548c \u53ef\u9760 \u53ef\u9760\u6027 \u3002 \u6211\u4eec \u8fd8 \u63d0\u4f9b \u4e86 \u6709\u5173 ISS \u751f\u6210 \u7684 \u7269\u4f53 \u68c0\u6d4b \u7684 \u6570\u636e \u96c6 \u3002 \u4ecd \u5728 \u66f4\u65b0 \u3002 git \u4ed3\u5e93","title":"\u4efb\u52a1"},{"location":"algorithms/perception/#_4","text":"\u5728 Carla \u4e2d \u4f7f\u7528 YOLOv3 \u68c0\u6d4b \u76ee\u6807 \u3002","title":"\u76ee\u6807 \u68c0\u6d4b"},{"location":"algorithms/perception/#_5","text":"pip install - r requirements . txt \u5982\u679c \u9700\u8981 GPU \u8ba1\u7b97 , \u5b89\u88c5 nvidia - cuda - toolkit \u3002 \u521b\u5efa conda \u73af\u5883 \uff1a conda create - n yolo python = 3.7 conda activate yolo \u6ce8\u610f \uff1a \u8fd0\u884c \u811a\u672c \u7684 \u65f6\u5019 \u4f1a \u63d0\u793a \u5b89\u88c5 \u5b89\u88c5\u5305 \uff01 \u9664 Carla Client API \u4e3a 0.9 . 12 \u4e0e Carla \u5bf9\u5e94 \uff0c \u5176\u4ed6 \u5b89\u88c5 \u6700\u65b0 \u7684 \u3002 weights \u6587\u4ef6 \u94fe\u63a5 \uff1a https : / / pan . baidu . com / s / 184hR _ PQZttYeAz9QE4XOQg \u63d0\u53d6 \u7801 \uff1a hyus \u5c06 weight \u6587\u4ef6 \u653e\u5728 weights \u76ee\u5f55 \u4e0b \u3002","title":"\u5b89\u88c5"},{"location":"algorithms/perception/#_6","text":"1 . \u8fde\u63a5 Carla \u670d\u52a1 \u670d\u52a1\u7aef . / CarlaUE4 . sh 2 . \u8fd0\u884c \u811a\u672c \u751f\u6210 \u8f66\u8f86 \u548c \u884c\u4eba python3 spawn _ npc . py - n 80 \u6ce8\u610f : spawn _ npc . py \u5728 PythonAPI / examples \uff0c \u8be5 \u6d4b\u8bd5 \u662f \u5728 Carla - 0.9 . 12 \uff0c \u6700\u65b0 \u65b0\u7248 \u6700\u65b0\u7248 Carla \u6ca1\u6709 spawn _ npc . py , \u4f46\u662f \u4f1a \u51fa\u73b0 \u884c\u4eba \u5012 \u7740 \u8d70 \u7684 \u95ee\u9898 \uff0c \u4e0d\u59a8 \u4f7f\u7528 generate _ trrafic . py \u3002 3 . \u884c python3 object _ detection . py \u7528 gpu \u6267\u884c pip install yolo34py - gpu python3 object _ detection _ gpu . py","title":"\u8fd0\u884c"},{"location":"algorithms/planning/","text":"\u89c4\u5212 \u89c4\u5212 \u6a21\u5757 \u7b80\u4ecb \u81ea\u52a8 \u9a7e\u9a76 \u7ba1\u9053 \u5305\u542b \u4ece \u611f\u77e5 \u5230 \u63a7\u5236 \u7684 \u591a\u4e2a \u7ec4\u4ef6 \u3002 \u8be5 \u7ba1\u9053 \u7684 \u6838\u5fc3 \u662f \u201c \u89c4\u5212 \u6a21\u5757 \u201d \uff0c \u8d1f\u8d23 \u5236\u5b9a \u6709\u5173 \u8f66\u8f86 \u8fd0\u52a8 \u7684 \u6218\u7565 \u548c \u6218\u672f \u51b3\u7b56 \u3002 \u8be5 \u6a21\u5757 \u5206\u4e3a \u4e09\u4e2a \u5173\u952e \u9636\u6bb5 \uff1a \u8def\u7ebf \u89c4\u5212 \u3001 \u884c\u4e3a \u89c4\u5212 \u548c \u8fd0\u52a8 \u89c4\u5212 \uff0c \u4ee5 \u4e0d\u540c \u7684 \u7c92\u5ea6 \u548c \u7cbe\u5ea6 \u6c34\u5e73 \u89c4\u5212 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u5728 \u8fd9 \u6587\u7ae0 \u7bc7\u6587\u7ae0 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 \u6bcf\u4e2a \u9636\u6bb5 \u3002 \u89c4\u5212 \u548c \u63a7\u5236 \u6d41\u7a0b \u8def\u7ebf \u89c4\u5212 \u76ee\u6807 \u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u7684 \u4efb\u52a1 \u662f \u627e\u5230 \u4ece \u5f53\u524d \u4f4d\u7f6e \u5230 \u6240 \u9700 \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u6700 \u6709\u6548 \u8def\u7ebf \uff0c \u5c31 \u50cf \u4f20\u7edf GPS \u5bfc\u822a \u7cfb\u7edf \u5bfc\u822a\u7cfb\u7edf \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e00\u6837 \u3002 \u73b0\u4ee3 \u8def\u7ebf \u89c4\u5212 \u7b97\u6cd5 \u80fd\u591f \u5728 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u9884\u5904\u7406 \u6b65\u9aa4 \u540e \u5b9e\u65f6 \u8fd4\u56de \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u7684 \u6700\u4f73 \u8def\u7ebf [ 1 ] \u3002 \u5982\u9700 \u66f4 \u5168\u9762 \u7684 \u8c03\u67e5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Bast \u7b49 \u4eba \u7684 \u8bba\u6587 [ 2 ] \u3002 \u8f93\u5165 \u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u5c06 \u6709\u5173 \u4e16\u754c \u7684 \u9ad8\u7ea7 \u4fe1\u606f \u4f5c\u4e3a \u8f93\u5165 \uff0c \u4f8b\u5982 \uff1a \u8d77\u70b9 \u548c \u7ec8\u70b9 \u7684 \u5750\u6807 \uff1b \u9053\u8def \u7f51\u7edc \u7684 \u62d3\u6251 \u7ed3\u6784 \uff1b \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \uff1b \u53ef\u80fd \u7684 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002 \u8f93\u51fa \u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u751f\u6210 \u4e00\u6761 \u8def\u5f84 \u6216 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8fde\u63a5 \u8d77\u70b9 \u548c \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u8def\u5f84 \u70b9 \u4f5c\u4e3a \u8f93\u51fa \uff0c \u540c\u65f6 \u907f\u5f00 \u4efb\u4f55 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002 \u6311\u6218 \u9053\u8def \u89c4\u5212 \u6a21\u5757 \u5728 \u8ba1\u7b97 \u6700 \u6709\u6548 \u7684 \u8def\u7ebf \u65f6 \u5fc5\u987b \u8003\u8651 \u8bb8\u591a \u6311\u6218 \uff0c \u4f8b\u5982 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u9053\u8def \u72b6\u51b5 \uff1b \u7eb3\u5165 \u5b9e\u65f6 \u4ea4\u901a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u786e\u4fdd \u6240 \u9009 \u8def\u7ebf \u65e2 \u5b89\u5168 \u53c8 \u9ad8\u6548 \u3002 \u884c\u4e3a \u89c4\u5212 \u76ee\u6807 \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u7684 \u4e3b\u8981 \u4efb\u52a1 \u662f \u89c4\u5b9a \u8f66\u8f86 \u7684 \u603b\u4f53 \u884c\u4e3a \uff0c \u4ece \u8f66\u9053 \u53d8\u6362 \u3001 \u8d85\u8f66 \u3001 \u8ba9\u8def \u5230 \u8f6c\u5f2f \u7684 \u51b3\u7b56 \u3002 \u5982\u4eca \uff0c \u884c\u4e3a \u89c4\u5212 \u6a21\u5757 \u901a\u5e38 \u5305\u542b \u81ea\u6211 \u8f66\u8f86 \u4e0e \u9053\u8def \u4e0a \u5176\u4ed6 \u667a\u80fd \u4f53 \uff08 \u4f8b\u5982 \u5176\u4ed6 \u8f66\u8f86 \uff09 \u4e4b\u95f4 \u7684 \u4ea4\u4e92 [ 3 ] \u3002 \u8f93\u5165 \u4e3a\u4e86 \u5b9e\u73b0 \u5176 \u76ee\u6807 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u4f7f\u7528 \u6765\u81ea \u591a\u4e2a \u6765\u6e90 \u7684 \u4fe1\u606f \uff0c \u4f8b\u5982 \u6839\u636e \u8def\u7ebf \u89c4\u5212 \u5f97\u5230 \u7684 \u6307\u5b9a \u8def\u7ebf \uff1b \u6709\u5173 \u90bb\u8fd1 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u6570\u636e \uff08 \u6765\u81ea \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u3001 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7b49 \uff09 \uff1b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \uff1b \u5176\u4ed6 \u76f8\u5173 \u73af\u5883 \u6570\u636e \u3002 \u8f93\u51fa \u884c\u4e3a \u89c4\u5212 \u7684 \u8f93\u51fa \u5305\u62ec \u5b8f\u89c2 \u6307\u4ee4 \uff0c \u4f8b\u5982 \u201c \u79fb\u81f3 \u5de6 \u8f66\u9053 \u201d \u3001 \u201c \u8ddf\u8e2a \u524d\u65b9 \u8f66\u8f86 \u201d \u6216 \u201c \u51c6\u5907 \u53f3\u8f6c \u201d \u4ee5\u53ca \u53cd\u6620 \u8fd9\u4e9b \u6307\u4ee4 \u7684 \u7c97\u7565 \u8f68\u8ff9 \u3002 \u6311\u6218 \u5728 \u505a\u51fa \u51b3\u7b56 \u65f6 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u9700\u8981 \u89e3\u51b3 \u591a\u4e2a \u95ee\u9898 \uff0c \u4f8b\u5982 \u9884\u6d4b \u5468\u56f4 \u53f8\u673a \u548c \u884c\u4eba \u7684 \u610f\u56fe \u548c \u5373\u5c06 \u91c7\u53d6 \u7684 \u884c\u52a8 \uff1b \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u91c7\u7528 \u5b89\u5168 \u7684 \u51b3\u7b56 \u5236\u5b9a \u51b3\u7b56\u5236\u5b9a \uff1b \u5904\u7406 \u4e0d \u5e38\u89c1 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \u3002 \u8fd0\u52a8 \u89c4\u5212 \u76ee\u6807 \u89c4\u5212 \u6a21\u5757 \u5de5\u4f5c \u6d41\u7a0b \u7684 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 \u662f \u8fd0\u52a8 \u89c4\u5212 \uff0c \u5176 \u76ee\u7684 \u662f \u7ed8\u5236 \u4e00\u6761 \u5bf9 \u8f66\u8f86 \u6765\u8bf4 \u65e2 \u5b89\u5168 \u53c8 \u4e00\u81f4 \u7684 \u8f68\u8ff9 \uff0c \u53cd\u6620 \u884c\u4e3a \u76ee\u6807 \u5e76 \u4fdd\u6301 \u5728 \u8f66\u8f86 \u7684 \u52a8\u6001 \u548c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u7ea6\u675f \u8303\u56f4 \u5185 [ 1 ] \u3002 \u8f93\u5165 \u4e3a\u4e86 \u4f7f \u8f66\u8f86 \u4ea7\u751f \u5e73\u6ed1 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9700\u8981 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u6570\u636e \uff0c \u4f8b\u5982 \u884c\u4e3a \u89c4\u5212 \u6240 \u786e\u7acb \u7684 \u9884\u671f \u884c\u4e3a \uff1b \u5f53\u524d \u8f66\u8f86 \u72b6\u6001 \uff08 \u5982 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff09 \uff1b \u9053\u8def \u5730\u56fe \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u6709\u5173 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6570\u636e \u3002 \u8f93\u51fa \u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u7684 \u7ed3\u679c \u662f \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u8f66\u8f86 \u5728 \u6307\u5b9a \u65f6\u95f4 \u8303\u56f4 \u5185 \u7684 \u72b6\u6001 \u3002 \u6311\u6218 \u4e3a\u4e86 \u4ea7\u751f \u8fd9\u6837 \u4e00\u4e2a \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9762\u4e34 \u7740 \u591a\u91cd \u6311\u6218 \uff0c \u4f8b\u5982 \u5236\u5b9a \u907f\u514d \u78b0\u649e \u4e14 \u7cbe\u7b80 \u7684 \u8f68\u8ff9 \uff1b \u7ba1\u7406 \u6765\u81ea \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u566a\u58f0 \u548c \u4e0d \u786e\u5b9a \u6570\u636e \uff1b \u5b9e\u65f6 \u8f68\u8ff9 \u6620\u5c04 \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"Planning"},{"location":"algorithms/planning/#_1","text":"","title":"\u89c4\u5212"},{"location":"algorithms/planning/#_2","text":"\u81ea\u52a8 \u9a7e\u9a76 \u7ba1\u9053 \u5305\u542b \u4ece \u611f\u77e5 \u5230 \u63a7\u5236 \u7684 \u591a\u4e2a \u7ec4\u4ef6 \u3002 \u8be5 \u7ba1\u9053 \u7684 \u6838\u5fc3 \u662f \u201c \u89c4\u5212 \u6a21\u5757 \u201d \uff0c \u8d1f\u8d23 \u5236\u5b9a \u6709\u5173 \u8f66\u8f86 \u8fd0\u52a8 \u7684 \u6218\u7565 \u548c \u6218\u672f \u51b3\u7b56 \u3002 \u8be5 \u6a21\u5757 \u5206\u4e3a \u4e09\u4e2a \u5173\u952e \u9636\u6bb5 \uff1a \u8def\u7ebf \u89c4\u5212 \u3001 \u884c\u4e3a \u89c4\u5212 \u548c \u8fd0\u52a8 \u89c4\u5212 \uff0c \u4ee5 \u4e0d\u540c \u7684 \u7c92\u5ea6 \u548c \u7cbe\u5ea6 \u6c34\u5e73 \u89c4\u5212 \u8f66\u8f86 \u7684 \u8fd0\u52a8 \u3002 \u5728 \u8fd9 \u6587\u7ae0 \u7bc7\u6587\u7ae0 \u4e2d \uff0c \u6211\u4eec \u5c06 \u6df1\u5165 \u63a2\u8ba8 \u6df1\u5165\u63a2\u8ba8 \u6bcf\u4e2a \u9636\u6bb5 \u3002 \u89c4\u5212 \u548c \u63a7\u5236 \u6d41\u7a0b","title":"\u89c4\u5212 \u6a21\u5757 \u7b80\u4ecb"},{"location":"algorithms/planning/#_3","text":"","title":"\u8def\u7ebf \u89c4\u5212 "},{"location":"algorithms/planning/#_4","text":"\u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u7684 \u4efb\u52a1 \u662f \u627e\u5230 \u4ece \u5f53\u524d \u4f4d\u7f6e \u5230 \u6240 \u9700 \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u6700 \u6709\u6548 \u8def\u7ebf \uff0c \u5c31 \u50cf \u4f20\u7edf GPS \u5bfc\u822a \u7cfb\u7edf \u5bfc\u822a\u7cfb\u7edf \u7684 \u64cd\u4f5c \u65b9\u5f0f \u4e00\u6837 \u3002 \u73b0\u4ee3 \u8def\u7ebf \u89c4\u5212 \u7b97\u6cd5 \u80fd\u591f \u5728 \u4e00\u6b21 \u4e00\u6b21\u6027 \u5904\u7406 \u9884\u5904\u7406 \u6b65\u9aa4 \u540e \u5b9e\u65f6 \u8fd4\u56de \u5927\u89c4 \u89c4\u6a21 \u5927\u89c4\u6a21 \u7684 \u6700\u4f73 \u8def\u7ebf [ 1 ] \u3002 \u5982\u9700 \u66f4 \u5168\u9762 \u7684 \u8c03\u67e5 \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 Bast \u7b49 \u4eba \u7684 \u8bba\u6587 [ 2 ] \u3002","title":"\u76ee\u6807"},{"location":"algorithms/planning/#_5","text":"\u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u5c06 \u6709\u5173 \u4e16\u754c \u7684 \u9ad8\u7ea7 \u4fe1\u606f \u4f5c\u4e3a \u8f93\u5165 \uff0c \u4f8b\u5982 \uff1a \u8d77\u70b9 \u548c \u7ec8\u70b9 \u7684 \u5750\u6807 \uff1b \u9053\u8def \u7f51\u7edc \u7684 \u62d3\u6251 \u7ed3\u6784 \uff1b \u4ea4\u901a \u72b6\u51b5 \u4ea4\u901a\u72b6\u51b5 \uff1b \u53ef\u80fd \u7684 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002","title":"\u8f93\u5165"},{"location":"algorithms/planning/#_6","text":"\u8def\u7ebf \u89c4\u5212 \u9636\u6bb5 \u751f\u6210 \u4e00\u6761 \u8def\u5f84 \u6216 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u8fde\u63a5 \u8d77\u70b9 \u548c \u76ee\u7684 \u76ee\u7684\u5730 \u7684 \u8def\u5f84 \u70b9 \u4f5c\u4e3a \u8f93\u51fa \uff0c \u540c\u65f6 \u907f\u5f00 \u4efb\u4f55 \u6c38\u4e45 \u6c38\u4e45\u6027 \u969c\u788d \u3002","title":"\u8f93\u51fa"},{"location":"algorithms/planning/#_7","text":"\u9053\u8def \u89c4\u5212 \u6a21\u5757 \u5728 \u8ba1\u7b97 \u6700 \u6709\u6548 \u7684 \u8def\u7ebf \u65f6 \u5fc5\u987b \u8003\u8651 \u8bb8\u591a \u6311\u6218 \uff0c \u4f8b\u5982 \u9002\u5e94 \u4e0d\u65ad \u53d8\u5316 \u7684 \u9053\u8def \u72b6\u51b5 \uff1b \u7eb3\u5165 \u5b9e\u65f6 \u4ea4\u901a \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u786e\u4fdd \u6240 \u9009 \u8def\u7ebf \u65e2 \u5b89\u5168 \u53c8 \u9ad8\u6548 \u3002","title":"\u6311\u6218"},{"location":"algorithms/planning/#_8","text":"","title":"\u884c\u4e3a \u89c4\u5212"},{"location":"algorithms/planning/#_9","text":"\u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u7684 \u4e3b\u8981 \u4efb\u52a1 \u662f \u89c4\u5b9a \u8f66\u8f86 \u7684 \u603b\u4f53 \u884c\u4e3a \uff0c \u4ece \u8f66\u9053 \u53d8\u6362 \u3001 \u8d85\u8f66 \u3001 \u8ba9\u8def \u5230 \u8f6c\u5f2f \u7684 \u51b3\u7b56 \u3002 \u5982\u4eca \uff0c \u884c\u4e3a \u89c4\u5212 \u6a21\u5757 \u901a\u5e38 \u5305\u542b \u81ea\u6211 \u8f66\u8f86 \u4e0e \u9053\u8def \u4e0a \u5176\u4ed6 \u667a\u80fd \u4f53 \uff08 \u4f8b\u5982 \u5176\u4ed6 \u8f66\u8f86 \uff09 \u4e4b\u95f4 \u7684 \u4ea4\u4e92 [ 3 ] \u3002","title":"\u76ee\u6807"},{"location":"algorithms/planning/#_10","text":"\u4e3a\u4e86 \u5b9e\u73b0 \u5176 \u76ee\u6807 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u4f7f\u7528 \u6765\u81ea \u591a\u4e2a \u6765\u6e90 \u7684 \u4fe1\u606f \uff0c \u4f8b\u5982 \u6839\u636e \u8def\u7ebf \u89c4\u5212 \u5f97\u5230 \u7684 \u6307\u5b9a \u8def\u7ebf \uff1b \u6709\u5173 \u90bb\u8fd1 \u8f66\u8f86 \u548c \u884c\u4eba \u7684 \u6570\u636e \uff08 \u6765\u81ea \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3001 \u96f7\u8fbe \u3001 \u6444\u50cf \u50cf\u5934 \u6444\u50cf\u5934 \u7b49 \uff09 \uff1b \u4ea4\u901a \u4ea4\u901a\u706f \u4fe1\u606f \uff1b \u5176\u4ed6 \u76f8\u5173 \u73af\u5883 \u6570\u636e \u3002","title":"\u8f93\u5165"},{"location":"algorithms/planning/#_11","text":"\u884c\u4e3a \u89c4\u5212 \u7684 \u8f93\u51fa \u5305\u62ec \u5b8f\u89c2 \u6307\u4ee4 \uff0c \u4f8b\u5982 \u201c \u79fb\u81f3 \u5de6 \u8f66\u9053 \u201d \u3001 \u201c \u8ddf\u8e2a \u524d\u65b9 \u8f66\u8f86 \u201d \u6216 \u201c \u51c6\u5907 \u53f3\u8f6c \u201d \u4ee5\u53ca \u53cd\u6620 \u8fd9\u4e9b \u6307\u4ee4 \u7684 \u7c97\u7565 \u8f68\u8ff9 \u3002","title":"\u8f93\u51fa"},{"location":"algorithms/planning/#_12","text":"\u5728 \u505a\u51fa \u51b3\u7b56 \u65f6 \uff0c \u884c\u4e3a \u89c4\u5212 \u9636\u6bb5 \u9700\u8981 \u89e3\u51b3 \u591a\u4e2a \u95ee\u9898 \uff0c \u4f8b\u5982 \u9884\u6d4b \u5468\u56f4 \u53f8\u673a \u548c \u884c\u4eba \u7684 \u610f\u56fe \u548c \u5373\u5c06 \u91c7\u53d6 \u7684 \u884c\u52a8 \uff1b \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u91c7\u7528 \u5b89\u5168 \u7684 \u51b3\u7b56 \u5236\u5b9a \u51b3\u7b56\u5236\u5b9a \uff1b \u5904\u7406 \u4e0d \u5e38\u89c1 \u7684 \u8fb9\u7f18 \u60c5\u51b5 \u3002","title":"\u6311\u6218"},{"location":"algorithms/planning/#_13","text":"","title":"\u8fd0\u52a8 \u89c4\u5212"},{"location":"algorithms/planning/#_14","text":"\u89c4\u5212 \u6a21\u5757 \u5de5\u4f5c \u6d41\u7a0b \u7684 \u6700\u540e \u4e00\u4e2a \u9636\u6bb5 \u662f \u8fd0\u52a8 \u89c4\u5212 \uff0c \u5176 \u76ee\u7684 \u662f \u7ed8\u5236 \u4e00\u6761 \u5bf9 \u8f66\u8f86 \u6765\u8bf4 \u65e2 \u5b89\u5168 \u53c8 \u4e00\u81f4 \u7684 \u8f68\u8ff9 \uff0c \u53cd\u6620 \u884c\u4e3a \u76ee\u6807 \u5e76 \u4fdd\u6301 \u5728 \u8f66\u8f86 \u7684 \u52a8\u6001 \u548c \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u7ea6\u675f \u8303\u56f4 \u5185 [ 1 ] \u3002","title":"\u76ee\u6807"},{"location":"algorithms/planning/#_15","text":"\u4e3a\u4e86 \u4f7f \u8f66\u8f86 \u4ea7\u751f \u5e73\u6ed1 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9700\u8981 \u591a\u79cd \u79cd\u7c7b \u7c7b\u578b \u591a\u79cd\u7c7b\u578b \u7684 \u6570\u636e \uff0c \u4f8b\u5982 \u884c\u4e3a \u89c4\u5212 \u6240 \u786e\u7acb \u7684 \u9884\u671f \u884c\u4e3a \uff1b \u5f53\u524d \u8f66\u8f86 \u72b6\u6001 \uff08 \u5982 \u4f4d\u7f6e \u3001 \u901f\u5ea6 \u3001 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \uff09 \uff1b \u9053\u8def \u5730\u56fe \u7684 \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \uff1b \u6709\u5173 \u52a8\u6001 \u969c\u788d \u969c\u788d\u7269 \u7684 \u6570\u636e \u3002","title":"\u8f93\u5165"},{"location":"algorithms/planning/#_16","text":"\u8fd0\u52a8 \u89c4\u5212 \u9636\u6bb5 \u7684 \u7ed3\u679c \u662f \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8be6\u7ec6 \u8bf4\u660e \u4e86 \u8f66\u8f86 \u5728 \u6307\u5b9a \u65f6\u95f4 \u8303\u56f4 \u5185 \u7684 \u72b6\u6001 \u3002","title":"\u8f93\u51fa"},{"location":"algorithms/planning/#_17","text":"\u4e3a\u4e86 \u4ea7\u751f \u8fd9\u6837 \u4e00\u4e2a \u4f18\u5316 \u7684 \u8f68\u8ff9 \uff0c \u8fd0\u52a8 \u89c4\u5212 \u9762\u4e34 \u7740 \u591a\u91cd \u6311\u6218 \uff0c \u4f8b\u5982 \u5236\u5b9a \u907f\u514d \u78b0\u649e \u4e14 \u7cbe\u7b80 \u7684 \u8f68\u8ff9 \uff1b \u7ba1\u7406 \u6765\u81ea \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u7684 \u566a\u58f0 \u548c \u4e0d \u786e\u5b9a \u6570\u636e \uff1b \u5b9e\u65f6 \u8f68\u8ff9 \u6620\u5c04 \u3002","title":"\u6311\u6218"},{"location":"algorithms/planning/#_18","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/prediction/","text":"\u9884\u6d4b \u9884\u6d4b \u6a21\u5757 \u4ecb\u7ecd \u9884\u6d4b \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u4e2d \u53d1\u6325 \u7740 \u5173\u952e \u4f5c\u7528 \u5173\u952e\u4f5c\u7528 \uff0c \u53ef\u4ee5 \u786e\u5b9a \u9053\u8def \u4ee3\u7406 \u53ef\u80fd \u91c7\u53d6 \u7684 \u884c\u52a8 \u4ee5 \u786e\u4fdd \u4fdd\u5b89 \u5b89\u5168 \u786e\u4fdd\u5b89\u5168 \u5bfc\u822a \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 \u6052\u901f \u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 Motion Transformer \u3002 \u6052\u901f \u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u6982\u8ff0 \u7b49\u901f \u6a21\u578b \u662f \u6700 \u57fa\u672c \u4f46 \u6709\u6548 \u7684 \u9884\u6d4b \u65b9\u6cd5 [ 1 ] \uff0c \u5047\u8bbe \u5b9e\u4f53 \u4ee5 \u6052\u5b9a \u901f\u5ea6 \u7ee7\u7eed \u5176 \u5f53\u524d \u8f68\u8ff9 \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u901a\u8fc7 Runge - Kutta 4 ( RK4 ) \u79ef\u5206 \u5bf9 \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6a21\u578b \u8fdb\u884c \u6b63\u5411 \u4eff\u771f \uff0c \u5047\u8bbe \u6ca1\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u8f6c\u5411 \u89d2 \u3002 \u9002\u7528 \u9002\u7528\u6027 \u548c \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 \u9002\u7528 \u9002\u7528\u6027 \uff1a \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u8fd0\u52a8 \u76f8\u5bf9 \u7ebf\u6027 \u7684 \u9ad8\u901f \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 : \uff1a \u5728 \u57ce\u5e02 \u6216 \u62e5\u6324 \u7684 \u5730\u533a \uff0c \u8be5 \u6a21\u578b \u53ef\u80fd \u65e0\u6cd5 \u6355\u83b7 \u4ee3\u7406 \u7684 \u4e0d \u7a33\u5b9a \u8fd0\u52a8 \u3002 \u6570\u5b66 \u6a21\u578b \u6570\u5b66\u6a21\u578b \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u63a7\u5236 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u7684 \u4e3b\u8981 \u65b9\u7a0b \u662f \uff1a \u4f4d\u7f6e \u66f4\u65b0 : \u8f66\u8f86 \u540e\u8f6e \u7684 \u7a7a\u95f4 \u5750\u6807 \u968f \u65f6\u95f4 \u66f4\u65b0 ( t ) \u5230 \u65f6\u95f4 ( t + 1 ) \u4f5c\u4e3a $ $ x ( t + 1 ) = x ( t ) + v ( t ) \\ cos ( \\ theta ( t ) ) \\ Delta t $ $ $ $ y ( t + 1 ) = y ( t ) + v ( t ) \\ sin ( \\ theta ( t ) ) \\ Delta t $ $ \u822a\u5411 \u66f4\u65b0 \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u822a\u5411 \u66f4 \u6539\u4e3a \u8fd9\u91cc ( ( x , y ) ) \u4ee3\u8868 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \uff1b ( \\ theta ) \u662f \u8f66\u8f86 \u7684 \u822a\u5411 \uff1b ( v ) \u8868\u793a \u8f66\u8f86 \u7684 \u901f\u5ea6 \uff1b ( \\ delta ) \u662f \u524d\u8f6e \u7684 \u8f6c\u5411 \u89d2 \uff1b ( l _ { wb } ) \u4e3a \u8f74\u8ddd \uff0c \u5373 \u524d\u540e \u8f74 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \uff1b ( \\ Delta t ) \u662f \u65f6\u95f4 \u6b65\u957f \u3002 \u7136\u540e \u5e94\u7528 RK4 \u65b9\u6cd5 \u8fdb\u884c \u524d\u5411 \u4eff\u771f \uff0c \u4ee5 \u63d0\u9ad8 \u77ed\u671f \u671f\u5185 \u77ed\u671f\u5185 \u7684 \u9884\u6d4b \u7cbe\u5ea6 \u3002 \u793a\u4f8b \u7528\u4f8b \u516c\u8def \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u969c\u788d \u969c\u788d\u7269 \u6700\u5c11 \u7684 \u5f00\u653e \u533a\u57df \u3002 \u5728 ISS \u4e2d \uff0c \u91c7\u7528 \u7b49\u901f \u6a21\u578b \u6765 \u9884\u6d4b \u7ed3\u6784 \u7ed3\u6784\u5316 \u9053\u8def \u73af\u5883 \u4e2d \u7684 \u8fd0\u52a8 \u3002 Motion Transformer \u6982\u8ff0 Motion Transformer [ 2 ] \u662f \u4e00\u79cd \u6700 \u5148\u8fdb \u7684 \u6a21\u578b \uff0c \u5b83 \u8003\u8651 \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u6765 \u9884\u6d4b \u672a\u6765 \u7684 \u8f68\u8ff9 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u8fd0\u52a8 \u9884\u6d4b \u5efa\u6a21 \u4e3a \u5168\u5c40 \u610f\u56fe \u5b9a\u4f4d \u548c \u5c40\u90e8 \u8fd0\u52a8 \u7ec6\u5316 \u7684 \u8054\u5408 \u4f18\u5316 \u3002 \u9664\u4e86 \u8003\u8651 \u9053\u8def \u7ed3\u6784 \u7684 \u5168\u5c40 \u4fe1\u606f \u4e4b\u5916 \uff0c \u8be5 \u65b9\u6cd5 \u8fd8 \u901a\u8fc7 \u9002\u5e94 \u53ef \u5b66\u4e60 \u7684 \u8fd0\u52a8 \u67e5\u8be2 \u6765 \u5408\u5e76 \u4e0d\u540c \u7684 \u8fd0\u52a8 \u6a21\u5f0f \u3002 Motion Transformer \u7684 \u6574\u4f53 \u7ed3\u6784 \u5982\u4e0b \u56fe \u6240\u793a \u3002 motion transformer \u7684 \u7ed3\u6784 [ 2 ] \u4ec0\u4e48 \u4e3a\u4ec0\u4e48 \u9009\u62e9 Motion Transformer ? \u8f83 \u7b80\u5355 \u7684 \u6a21\u578b \u7f3a\u4e4f \u590d\u6742 \u73af\u5883 \u6240 \u9700 \u7684 \u7ec6\u5fae \u5fae\u5dee \u5dee\u522b \u7ec6\u5fae\u5dee\u522b \u3002 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 \u8003\u8651 \u4e86 \u5386\u53f2 \u8f68\u8ff9 \uff0c \u4f7f \u5176 \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u5177\u6709 \u4f18\u52bf \u3002 \u67b6\u6784 \u548c \u7ec4\u4ef6 \u6ce8\u610f \u6ce8\u610f\u529b \u673a\u5236 \uff1a \u6743\u8861 \u4e0d\u540c \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u70b9 \u7684 \u91cd\u8981 \u91cd\u8981\u6027 \u3002 \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 - \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u7ed3\u6784 \uff1a \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 \u5904\u7406 \u8f93\u5165 \u5e8f\u5217 \uff0c \u800c \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u4ea7\u751f \u9884\u6d4b \u8f68\u8ff9 \u3002 \u8f93\u5165 / \u8f93\u51fa \u8be6\u7ec6 \u4fe1\u606f \u8be6\u7ec6\u4fe1\u606f \u8f93\u5165 \uff1a \u5386\u53f2 \u8f68\u8ff9 \u6570\u636e \u3002 \u8f93\u51fa \uff1a \u7528 \u7f6e\u4fe1 \u4fe1\u533a \u533a\u95f4 \u7f6e\u4fe1\u533a\u95f4 \u9884\u6d4b \u672a\u6765 \u8f68\u8ff9 \u3002 \u5b9e\u65bd \u8def\u7ebf \u7ebf\u56fe \u8def\u7ebf\u56fe \u7ef4\u62a4 \u73b0\u6709 \u7684 \u7b49\u901f \u8fd0\u52a8 \u7b49\u901f\u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u4ee5 \u786e\u4fdd \u57fa\u672c \u529f\u80fd \u57fa\u672c\u529f \u57fa\u672c\u529f\u80fd \u3002 \u4e86\u89e3 \u5e76 \u8bbe\u7f6e Motion Transformer \u7684 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u6570\u636e \u96c6 \u5e76 \u8fdb\u884c \u8bad\u7ec3 \u548c \u4eff\u771f \u6d4b\u8bd5 \u3002 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u5e76 \u786e\u4fdd \u6301\u7eed \u7684 \u6a21\u578b \u4f18\u5316 \u3002 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e Sch \u00f6 ller C , Aravantinos V , Lay F , et al . \" What the constant velocity model can teach us about pedestrian motion prediction . \" In IEEE Robotics and Automation Letters , 2020 , 5 ( 2 ) : 1696 - 1703 . Shi S , Jiang L , Dai D , et al . \" Motion transformer with global intention localization and local movement refinement . \" In Advances in Neural Information Processing Systems , 2022 , 35 : 6531 - 6543 .","title":"Prediction"},{"location":"algorithms/prediction/#_1","text":"","title":"\u9884\u6d4b"},{"location":"algorithms/prediction/#_2","text":"\u9884\u6d4b \u5728 \u81ea\u52a8 \u9a7e\u9a76 \u4e2d \u53d1\u6325 \u7740 \u5173\u952e \u4f5c\u7528 \u5173\u952e\u4f5c\u7528 \uff0c \u53ef\u4ee5 \u786e\u5b9a \u9053\u8def \u4ee3\u7406 \u53ef\u80fd \u91c7\u53d6 \u7684 \u884c\u52a8 \u4ee5 \u786e\u4fdd \u4fdd\u5b89 \u5b89\u5168 \u786e\u4fdd\u5b89\u5168 \u5bfc\u822a \u3002 \u5728 \u672c \u6587\u6863 \u4e2d \uff0c \u6211\u4eec \u6982\u8ff0 \u4e86 \u5f53\u524d \u7684 \u65b9\u6cd5 \uff0c \u4ece \u7b80\u5355 \u7684 \u6052\u901f \u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u5230 \u66f4 \u5148\u8fdb \u7684 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 Motion Transformer \u3002","title":"\u9884\u6d4b \u6a21\u5757 \u4ecb\u7ecd"},{"location":"algorithms/prediction/#_3","text":"","title":"\u6052\u901f \u8fd0\u52a8 \u9884\u6d4b\u5668"},{"location":"algorithms/prediction/#_4","text":"\u7b49\u901f \u6a21\u578b \u662f \u6700 \u57fa\u672c \u4f46 \u6709\u6548 \u7684 \u9884\u6d4b \u65b9\u6cd5 [ 1 ] \uff0c \u5047\u8bbe \u5b9e\u4f53 \u4ee5 \u6052\u5b9a \u901f\u5ea6 \u7ee7\u7eed \u5176 \u5f53\u524d \u8f68\u8ff9 \u3002 \u5728 \u8fd9\u91cc \uff0c \u6211\u4eec \u901a\u8fc7 Runge - Kutta 4 ( RK4 ) \u79ef\u5206 \u5bf9 \u8fd0\u52a8 \u8fd0\u52a8\u5b66 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u6a21\u578b \u8fdb\u884c \u6b63\u5411 \u4eff\u771f \uff0c \u5047\u8bbe \u6ca1\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u548c \u8f6c\u5411 \u89d2 \u3002","title":"\u6982\u8ff0"},{"location":"algorithms/prediction/#_5","text":"\u9002\u7528 \u9002\u7528\u6027 \uff1a \u975e\u5e38 \u9002\u5408 \u975e\u5e38\u9002\u5408 \u8fd0\u52a8 \u76f8\u5bf9 \u7ebf\u6027 \u7684 \u9ad8\u901f \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u5c40\u9650 \u9650\u6027 \u5c40\u9650\u6027 : \uff1a \u5728 \u57ce\u5e02 \u6216 \u62e5\u6324 \u7684 \u5730\u533a \uff0c \u8be5 \u6a21\u578b \u53ef\u80fd \u65e0\u6cd5 \u6355\u83b7 \u4ee3\u7406 \u7684 \u4e0d \u7a33\u5b9a \u8fd0\u52a8 \u3002","title":"\u9002\u7528\u6027 \u548c \u5c40\u9650\u6027"},{"location":"algorithms/prediction/#_6","text":"\u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u63a7\u5236 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u8fd0\u52a8 \u6a21\u578b \u7684 \u4e3b\u8981 \u65b9\u7a0b \u662f \uff1a \u4f4d\u7f6e \u66f4\u65b0 : \u8f66\u8f86 \u540e\u8f6e \u7684 \u7a7a\u95f4 \u5750\u6807 \u968f \u65f6\u95f4 \u66f4\u65b0 ( t ) \u5230 \u65f6\u95f4 ( t + 1 ) \u4f5c\u4e3a $ $ x ( t + 1 ) = x ( t ) + v ( t ) \\ cos ( \\ theta ( t ) ) \\ Delta t $ $ $ $ y ( t + 1 ) = y ( t ) + v ( t ) \\ sin ( \\ theta ( t ) ) \\ Delta t $ $ \u822a\u5411 \u66f4\u65b0 \uff1a \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u822a\u5411 \u66f4 \u6539\u4e3a \u8fd9\u91cc ( ( x , y ) ) \u4ee3\u8868 \u8f66\u8f86 \u7684 \u4f4d\u7f6e \uff1b ( \\ theta ) \u662f \u8f66\u8f86 \u7684 \u822a\u5411 \uff1b ( v ) \u8868\u793a \u8f66\u8f86 \u7684 \u901f\u5ea6 \uff1b ( \\ delta ) \u662f \u524d\u8f6e \u7684 \u8f6c\u5411 \u89d2 \uff1b ( l _ { wb } ) \u4e3a \u8f74\u8ddd \uff0c \u5373 \u524d\u540e \u8f74 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \uff1b ( \\ Delta t ) \u662f \u65f6\u95f4 \u6b65\u957f \u3002 \u7136\u540e \u5e94\u7528 RK4 \u65b9\u6cd5 \u8fdb\u884c \u524d\u5411 \u4eff\u771f \uff0c \u4ee5 \u63d0\u9ad8 \u77ed\u671f \u671f\u5185 \u77ed\u671f\u5185 \u7684 \u9884\u6d4b \u7cbe\u5ea6 \u3002","title":"\u6570\u5b66\u6a21\u578b"},{"location":"algorithms/prediction/#_7","text":"\u516c\u8def \u548c \u9ad8\u901f \u516c\u8def \u9ad8\u901f\u516c\u8def \u3002 \u969c\u788d \u969c\u788d\u7269 \u6700\u5c11 \u7684 \u5f00\u653e \u533a\u57df \u3002 \u5728 ISS \u4e2d \uff0c \u91c7\u7528 \u7b49\u901f \u6a21\u578b \u6765 \u9884\u6d4b \u7ed3\u6784 \u7ed3\u6784\u5316 \u9053\u8def \u73af\u5883 \u4e2d \u7684 \u8fd0\u52a8 \u3002","title":"\u793a\u4f8b \u7528\u4f8b"},{"location":"algorithms/prediction/#motion-transformer","text":"","title":"Motion Transformer"},{"location":"algorithms/prediction/#_8","text":"Motion Transformer [ 2 ] \u662f \u4e00\u79cd \u6700 \u5148\u8fdb \u7684 \u6a21\u578b \uff0c \u5b83 \u8003\u8651 \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u6765 \u9884\u6d4b \u672a\u6765 \u7684 \u8f68\u8ff9 \u3002 \u8be5 \u6846\u67b6 \u5c06 \u8fd0\u52a8 \u9884\u6d4b \u5efa\u6a21 \u4e3a \u5168\u5c40 \u610f\u56fe \u5b9a\u4f4d \u548c \u5c40\u90e8 \u8fd0\u52a8 \u7ec6\u5316 \u7684 \u8054\u5408 \u4f18\u5316 \u3002 \u9664\u4e86 \u8003\u8651 \u9053\u8def \u7ed3\u6784 \u7684 \u5168\u5c40 \u4fe1\u606f \u4e4b\u5916 \uff0c \u8be5 \u65b9\u6cd5 \u8fd8 \u901a\u8fc7 \u9002\u5e94 \u53ef \u5b66\u4e60 \u7684 \u8fd0\u52a8 \u67e5\u8be2 \u6765 \u5408\u5e76 \u4e0d\u540c \u7684 \u8fd0\u52a8 \u6a21\u5f0f \u3002 Motion Transformer \u7684 \u6574\u4f53 \u7ed3\u6784 \u5982\u4e0b \u56fe \u6240\u793a \u3002 motion transformer \u7684 \u7ed3\u6784 [ 2 ]","title":"\u6982\u8ff0"},{"location":"algorithms/prediction/#motion-transformer_1","text":"\u8f83 \u7b80\u5355 \u7684 \u6a21\u578b \u7f3a\u4e4f \u590d\u6742 \u73af\u5883 \u6240 \u9700 \u7684 \u7ec6\u5fae \u5fae\u5dee \u5dee\u522b \u7ec6\u5fae\u5dee\u522b \u3002 \u8fd0\u52a8 \u53d8\u6362 \u53d8\u6362\u5668 \u8003\u8651 \u4e86 \u5386\u53f2 \u8f68\u8ff9 \uff0c \u4f7f \u5176 \u5728 \u590d\u6742 \u7684 \u573a\u666f \u4e2d \u5177\u6709 \u4f18\u52bf \u3002","title":"\u4e3a\u4ec0\u4e48 \u9009\u62e9 Motion Transformer ?"},{"location":"algorithms/prediction/#_9","text":"\u6ce8\u610f \u6ce8\u610f\u529b \u673a\u5236 \uff1a \u6743\u8861 \u4e0d\u540c \u5386\u53f2 \u6570\u636e \u5386\u53f2\u6570\u636e \u70b9 \u7684 \u91cd\u8981 \u91cd\u8981\u6027 \u3002 \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 - \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u7ed3\u6784 \uff1a \u7f16\u7801 \u7801\u5668 \u7f16\u7801\u5668 \u5904\u7406 \u8f93\u5165 \u5e8f\u5217 \uff0c \u800c \u89e3\u7801 \u7801\u5668 \u89e3\u7801\u5668 \u4ea7\u751f \u9884\u6d4b \u8f68\u8ff9 \u3002","title":"\u67b6\u6784 \u548c \u7ec4\u4ef6"},{"location":"algorithms/prediction/#_10","text":"\u8f93\u5165 \uff1a \u5386\u53f2 \u8f68\u8ff9 \u6570\u636e \u3002 \u8f93\u51fa \uff1a \u7528 \u7f6e\u4fe1 \u4fe1\u533a \u533a\u95f4 \u7f6e\u4fe1\u533a\u95f4 \u9884\u6d4b \u672a\u6765 \u8f68\u8ff9 \u3002","title":"\u8f93\u5165 / \u8f93\u51fa \u8be6\u7ec6\u4fe1\u606f"},{"location":"algorithms/prediction/#_11","text":"\u7ef4\u62a4 \u73b0\u6709 \u7684 \u7b49\u901f \u8fd0\u52a8 \u7b49\u901f\u8fd0\u52a8 \u9884\u6d4b \u6d4b\u5668 \u9884\u6d4b\u5668 \u4ee5 \u786e\u4fdd \u57fa\u672c \u529f\u80fd \u57fa\u672c\u529f \u57fa\u672c\u529f\u80fd \u3002 \u4e86\u89e3 \u5e76 \u8bbe\u7f6e Motion Transformer \u7684 \u795e\u7ecf \u7f51\u7edc \u795e\u7ecf\u7f51 \u795e\u7ecf\u7f51\u7edc \u3002 \u6536\u96c6 \u548c \u5904\u7406 \u6570\u636e \u96c6 \u5e76 \u8fdb\u884c \u8bad\u7ec3 \u548c \u4eff\u771f \u6d4b\u8bd5 \u3002 \u96c6\u6210 \u5230 \u5f53\u524d \u7684 \u7ba1\u9053 \u4e2d \u5e76 \u786e\u4fdd \u6301\u7eed \u7684 \u6a21\u578b \u4f18\u5316 \u3002","title":"\u5b9e\u65bd \u8def\u7ebf\u56fe"},{"location":"algorithms/prediction/#_12","text":"Sch \u00f6 ller C , Aravantinos V , Lay F , et al . \" What the constant velocity model can teach us about pedestrian motion prediction . \" In IEEE Robotics and Automation Letters , 2020 , 5 ( 2 ) : 1696 - 1703 . Shi S , Jiang L , Dai D , et al . \" Motion transformer with global intention localization and local movement refinement . \" In Advances in Neural Information Processing Systems , 2022 , 35 : 6531 - 6543 .","title":"\u53c2\u8003\u6587\u732e"},{"location":"algorithms/Control_/","text":"Control Introduction to the Control Module The Control module is responsible for generating control commands to steer the vehicle and maintain its desired trajectory . [ 1 ] In this documentation , we outline our current methodologies , from the simple PID controller to the more advanced Model Predictive Control ( MPC ) . PID Controller for Waypoint Tracking Overview : The PID controller is one of the fundamental control algorithms in our autonomous driving pipeline . It continuously calculates an \" error \" value as the difference between a desired setpoint ( in this case , waypoints ) and the current vehicle position . Components : The PID controller include three components , as its name suggests : - Proportional ( P ) : provides a control output to correct the current position error . - Integral ( I ) : Corrects the accumulation of past errors . - Derivative ( D ) : predicts and counters the future error trend based on its current rate of change . Application : We use the PID controller primarily for waypoint tracking , maintaining lane position , and ensuring the vehicle follows a predefined path with minimal deviation . Model Predictive Control ( MPC ) for Trajectory Tracking Overview : Model Predictive Control ( MPC ) [ 2 ] is an advanced control technique that uses a model of the vehicle ' s dynamics to predict its future states over a defined horizon . At each time step , the MPC algorithm solves an optimization problem to find the optimal control inputs , considering vehicle dynamics , constraints , and the desired trajectory . Key Features : The MPC controller involves three key features to decide what actions to perform to control the vehicle ' s movement : - Prediction Model : predicts future states of the vehicle based on its current state and potential control inputs . - Optimization : continuously solves an optimization problem to determine the best control actions over the prediction horizon . - Receding Horizon Strategy : implements only the first control action of the optimized sequence and re - evaluates at the next time step , adapting to changing conditions . Application : The MPC controller will be instrumental in scenarios where precise trajectory tracking is essential , especially in complex driving environments with dynamic obstacles , tight curves , and varying road conditions . By anticipating future states and constraints , MPC offers enhanced path following accuracy and robustness compared to traditional controllers . Implementation Roadmap : Maintain and fine - tune the existing PID controller to ensure basic waypoint tracking functionality . Develop a mathematical model representing the vehicle ' s dynamics . Integrate optimization solvers compatible with our system architecture for MPC . Design and implement the MPC framework , ensuring it considers vehicle constraints . Test the MPC in simulation for various scenarios and refine the model and controller parameters . Gradually deploy and evaluate the MPC in real - world tests , starting with low - complexity environments and escalating to more challenging scenarios . References Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"Control"},{"location":"algorithms/Control_/#control","text":"","title":"Control"},{"location":"algorithms/Control_/#introduction-to-the-control-module","text":"The Control module is responsible for generating control commands to steer the vehicle and maintain its desired trajectory . [ 1 ] In this documentation , we outline our current methodologies , from the simple PID controller to the more advanced Model Predictive Control ( MPC ) .","title":"Introduction to the Control Module"},{"location":"algorithms/Control_/#pid-controller-for-waypoint-tracking","text":"","title":"PID Controller for Waypoint Tracking"},{"location":"algorithms/Control_/#overview","text":"The PID controller is one of the fundamental control algorithms in our autonomous driving pipeline . It continuously calculates an \" error \" value as the difference between a desired setpoint ( in this case , waypoints ) and the current vehicle position .","title":"Overview :"},{"location":"algorithms/Control_/#components","text":"The PID controller include three components , as its name suggests : - Proportional ( P ) : provides a control output to correct the current position error . - Integral ( I ) : Corrects the accumulation of past errors . - Derivative ( D ) : predicts and counters the future error trend based on its current rate of change .","title":"Components :"},{"location":"algorithms/Control_/#application","text":"We use the PID controller primarily for waypoint tracking , maintaining lane position , and ensuring the vehicle follows a predefined path with minimal deviation .","title":"Application :"},{"location":"algorithms/Control_/#model-predictive-control-mpc-for-trajectory-tracking","text":"","title":"Model Predictive Control ( MPC ) for Trajectory Tracking"},{"location":"algorithms/Control_/#overview_1","text":"Model Predictive Control ( MPC ) [ 2 ] is an advanced control technique that uses a model of the vehicle ' s dynamics to predict its future states over a defined horizon . At each time step , the MPC algorithm solves an optimization problem to find the optimal control inputs , considering vehicle dynamics , constraints , and the desired trajectory .","title":"Overview :"},{"location":"algorithms/Control_/#key-features","text":"The MPC controller involves three key features to decide what actions to perform to control the vehicle ' s movement : - Prediction Model : predicts future states of the vehicle based on its current state and potential control inputs . - Optimization : continuously solves an optimization problem to determine the best control actions over the prediction horizon . - Receding Horizon Strategy : implements only the first control action of the optimized sequence and re - evaluates at the next time step , adapting to changing conditions .","title":"Key Features :"},{"location":"algorithms/Control_/#application_1","text":"The MPC controller will be instrumental in scenarios where precise trajectory tracking is essential , especially in complex driving environments with dynamic obstacles , tight curves , and varying road conditions . By anticipating future states and constraints , MPC offers enhanced path following accuracy and robustness compared to traditional controllers .","title":"Application :"},{"location":"algorithms/Control_/#implementation-roadmap","text":"Maintain and fine - tune the existing PID controller to ensure basic waypoint tracking functionality . Develop a mathematical model representing the vehicle ' s dynamics . Integrate optimization solvers compatible with our system architecture for MPC . Design and implement the MPC framework , ensuring it considers vehicle constraints . Test the MPC in simulation for various scenarios and refine the model and controller parameters . Gradually deploy and evaluate the MPC in real - world tests , starting with low - complexity environments and escalating to more challenging scenarios .","title":"Implementation Roadmap :"},{"location":"algorithms/Control_/#references","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Rajamani , Rajesh . \" Vehicle dynamics and control . \" Springer Science & Business Media , 2011 .","title":"References"},{"location":"algorithms/Control_/pid/","text":"To - DO !","title":"PID Controller"},{"location":"algorithms/DRL/_index/","text":"Deep Reinforcement Learning Deep Reinforcement Learning ( DRL ) is an area of machine learning that focuses on training agents to make sequences of decisions by interacting with an environment . The agent seeks to learn the best strategy , or policy , to achieve the maximum cumulative reward over time . DRL has shown impressive results in various domains , from game playing to robotic control . { : . center - image width = \" 70% \" } Reinforcement Learning Pipeline { : . text - center } Our Plan 1 . Problem Formulation Define the specific navigation tasks we want the robot to accomplish such as waypoint following , obstacle avoidance , etc . We will then set up the reward structure to encourage these desired behaviors . 2 . Simulator Setup We will be using an appropriate simulator for Ackermann robots , possibly Gazebo , Webots , or even a custom simulator . The goal is to model the robot ' s dynamics and sensory inputs as accurately as possible . 3 . Baseline DRL Algorithm Selection Our starting point will be popular reinforcement learning algorithms like Proximal Policy Optimization ( PPO ) , Deep Q - Network ( DQN ) , or Twin Delayed Deep Deterministic Policy Gradient ( TD3 ) . We are going to use Stable Baselines3 for our DRL algorithms . Stable Baselines3 is a set of improved implementations of reinforcement learning algorithms in PyTorch . 4 . Training in Simulation Starting with a basic environment ( few obstacles , clear paths ) , we will progress to more intricate scenarios . We will monitor the agent ' s training progress and tune hyperparameters for optimal performance . A few simulators we are considering are listed below : Simulator Strengths Weaknesses Gazebo ( ROS ) - Easy sim - to - real experiments . - Integrates well with the ROS ecosystem . - Slow simulation speeds . - Requires proficiency in ROS . Isaac Sim ( NVIDIA ) - GPU acceleration for fast training . - High - quality graphics . - Steeper learning curve . - May require advanced hardware . Carla - Complex sensor data . - Real vehicle physics . - Slow simulations . - High computational resource needs . SMARTS ( Huawei ) - Great visualization . - Broad action space for RL in driving . - Might be challenging for newcomers . - Specific environment understanding required . 5 . Transfer Learning and Domain Adaptation Given the known challenges of the sim - to - real gap , we will implement techniques like domain randomization in the simulator and consider fine - tuning on the real robot . 6 . Safety Precautions Safety is paramount . When transitioning to a real robot , we ' ll ensure protocols are in place to protect both the robot and its surroundings . 7 . Evaluation We will set up evaluation metrics to gauge the performance of our agent in real - world settings , comparing different algorithms to identify the most suitable one . 8 . Iterate and Improve Using feedback from real - world testing , we ' ll refine our simulation , reward designs , and DRL algorithms to continually enhance performance .","title":"Reinforcement Learning"},{"location":"algorithms/DRL/_index/#deep-reinforcement-learning","text":"Deep Reinforcement Learning ( DRL ) is an area of machine learning that focuses on training agents to make sequences of decisions by interacting with an environment . The agent seeks to learn the best strategy , or policy , to achieve the maximum cumulative reward over time . DRL has shown impressive results in various domains , from game playing to robotic control . { : . center - image width = \" 70% \" } Reinforcement Learning Pipeline { : . text - center }","title":"Deep Reinforcement Learning"},{"location":"algorithms/DRL/_index/#our-plan","text":"","title":"Our Plan"},{"location":"algorithms/DRL/_index/#1-problem-formulation","text":"Define the specific navigation tasks we want the robot to accomplish such as waypoint following , obstacle avoidance , etc . We will then set up the reward structure to encourage these desired behaviors .","title":"1 . Problem Formulation"},{"location":"algorithms/DRL/_index/#2-simulator-setup","text":"We will be using an appropriate simulator for Ackermann robots , possibly Gazebo , Webots , or even a custom simulator . The goal is to model the robot ' s dynamics and sensory inputs as accurately as possible .","title":"2 . Simulator Setup"},{"location":"algorithms/DRL/_index/#3-baseline-drl-algorithm-selection","text":"Our starting point will be popular reinforcement learning algorithms like Proximal Policy Optimization ( PPO ) , Deep Q - Network ( DQN ) , or Twin Delayed Deep Deterministic Policy Gradient ( TD3 ) . We are going to use Stable Baselines3 for our DRL algorithms . Stable Baselines3 is a set of improved implementations of reinforcement learning algorithms in PyTorch .","title":"3 . Baseline DRL Algorithm Selection"},{"location":"algorithms/DRL/_index/#4-training-in-simulation","text":"Starting with a basic environment ( few obstacles , clear paths ) , we will progress to more intricate scenarios . We will monitor the agent ' s training progress and tune hyperparameters for optimal performance . A few simulators we are considering are listed below : Simulator Strengths Weaknesses Gazebo ( ROS ) - Easy sim - to - real experiments . - Integrates well with the ROS ecosystem . - Slow simulation speeds . - Requires proficiency in ROS . Isaac Sim ( NVIDIA ) - GPU acceleration for fast training . - High - quality graphics . - Steeper learning curve . - May require advanced hardware . Carla - Complex sensor data . - Real vehicle physics . - Slow simulations . - High computational resource needs . SMARTS ( Huawei ) - Great visualization . - Broad action space for RL in driving . - Might be challenging for newcomers . - Specific environment understanding required .","title":"4 . Training in Simulation"},{"location":"algorithms/DRL/_index/#5-transfer-learning-and-domain-adaptation","text":"Given the known challenges of the sim - to - real gap , we will implement techniques like domain randomization in the simulator and consider fine - tuning on the real robot .","title":"5 . Transfer Learning and Domain Adaptation"},{"location":"algorithms/DRL/_index/#6-safety-precautions","text":"Safety is paramount . When transitioning to a real robot , we ' ll ensure protocols are in place to protect both the robot and its surroundings .","title":"6 . Safety Precautions"},{"location":"algorithms/DRL/_index/#7-evaluation","text":"We will set up evaluation metrics to gauge the performance of our agent in real - world settings , comparing different algorithms to identify the most suitable one .","title":"7 . Evaluation"},{"location":"algorithms/DRL/_index/#8-iterate-and-improve","text":"Using feedback from real - world testing , we ' ll refine our simulation , reward designs , and DRL algorithms to continually enhance performance .","title":"8 . Iterate and Improve"},{"location":"algorithms/Mapping/","text":"To - DO ! !","title":"Mapping"},{"location":"algorithms/Planning_/","text":"Planning Introduction to the Planning Module The autonomous driving pipeline encompasses a multitude of components , from perception to control . Central to this pipeline is the \" Planning module \" , responsible for making strategic and tactical decisions about the vehicle ' s movement . This module breaks down into three key stages : Route Planning , Behavior Planning , and Motion Planning , planning the movement of the vehicle at different levels of granularity and accuracy . In this post , we will explore each stage in - depth . { : . center - image width = \" 100% \" } Pipeline of planning and control { : . text - center } Route Planning Objective The task of route planning stage is to find the most effective course from the current location to the desired destination , much like how conventional GPS navigation systems operate . Modern route planning algorithms are able to return an optimal route on large scale in real time , after a one - time pre - processing step [ 1 ] . For a more comprehensive survey , refer to the paper by Bast et al [ 2 ] . Inputs The route planning stage takes as input high - level information about the world , such as : - the coordinates of the start point and of the end point ; - the topology of the road network ; - the traffic conditions ; and - possible permanent obstacles . Outputs The route planning stage generates as output a path or a series of waypoints bridging the start and destination , while sidestepping any permanent obstacles . Challenges There are many challenges the road planning module has to take into consideration when computing the most effective course , such as - adapting to changing road situations ; - incorporating real - time traffic details ; and - ensuring the chosen route is both safe and efficient . Behavior Planning Objective The main task of the behavior planning stage is to dictate the vehicle ' s overarching behavior , from decisions about lane switches , overtaking , yielding , to making turns . Nowadays , the behavior planning modules often incorporate the interaction between the ego vehicle and other agents on the road , such as other vehicles [ 3 ] . Inputs To achieve its goal , the behavior planning stage uses information from multiple sources , such as - the designated route obtained from the route planning ; - data about neighboring vehicles and pedestrians ( sourced from LiDAR , radar , cameras , etc . ) ; - traffic light information ; and - other pertinent environmental data . Outputs The output of the behavior planning consists of macro - level directives like \" shift to the left lane \" , \" trail the vehicle in front \" , or \" get ready to turn right \" as well as coarse trajectories that reflect these directives . Challenges In making its decisions , the behavior planning stage needs to address multiple issues , such as - anticipating the intentions and forthcoming actions of surrounding drivers and pedestrians ; - adopting a safe decision formulation in intricate scenarios ; and - navigating uncommon edge cases . Motion Planning Objective The last stage of the planning module workflow is motion planning , whose aim is to chart a trajectory that is both safe and consistent for the vehicle , reflecting the behavior objectives and staying within the vehicle ' s dynamic and kinematic constraints [ 1 ] . Inputs To produce a smooth trajectory for the vehicle , the motion planning needs multiple types of data , like - the intended behavior established by the behavior planning ; - the present vehicle state ( such as position , speed , and acceleration ) ; - the road map details ; and - data about dynamic obstructions . Outputs The outcome of the motion planning stage is an optimized trajectory , detailing the vehicle ' s state over a specified time frame . Challenges To produce such an optimized trajectory , the motion planning faces multiple challenges , such as - crafting trajectories that avoid collisions and are streamlined ; - managing noisy and uncertain data from sensors ; and - real - time trajectory mapping . References Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"Planning"},{"location":"algorithms/Planning_/#planning","text":"","title":"Planning"},{"location":"algorithms/Planning_/#introduction-to-the-planning-module","text":"The autonomous driving pipeline encompasses a multitude of components , from perception to control . Central to this pipeline is the \" Planning module \" , responsible for making strategic and tactical decisions about the vehicle ' s movement . This module breaks down into three key stages : Route Planning , Behavior Planning , and Motion Planning , planning the movement of the vehicle at different levels of granularity and accuracy . In this post , we will explore each stage in - depth . { : . center - image width = \" 100% \" } Pipeline of planning and control { : . text - center }","title":"Introduction to the Planning Module"},{"location":"algorithms/Planning_/#route-planning","text":"","title":"Route Planning"},{"location":"algorithms/Planning_/#objective","text":"The task of route planning stage is to find the most effective course from the current location to the desired destination , much like how conventional GPS navigation systems operate . Modern route planning algorithms are able to return an optimal route on large scale in real time , after a one - time pre - processing step [ 1 ] . For a more comprehensive survey , refer to the paper by Bast et al [ 2 ] .","title":"Objective"},{"location":"algorithms/Planning_/#inputs","text":"The route planning stage takes as input high - level information about the world , such as : - the coordinates of the start point and of the end point ; - the topology of the road network ; - the traffic conditions ; and - possible permanent obstacles .","title":"Inputs"},{"location":"algorithms/Planning_/#outputs","text":"The route planning stage generates as output a path or a series of waypoints bridging the start and destination , while sidestepping any permanent obstacles .","title":"Outputs"},{"location":"algorithms/Planning_/#challenges","text":"There are many challenges the road planning module has to take into consideration when computing the most effective course , such as - adapting to changing road situations ; - incorporating real - time traffic details ; and - ensuring the chosen route is both safe and efficient .","title":"Challenges"},{"location":"algorithms/Planning_/#behavior-planning","text":"","title":"Behavior Planning"},{"location":"algorithms/Planning_/#objective_1","text":"The main task of the behavior planning stage is to dictate the vehicle ' s overarching behavior , from decisions about lane switches , overtaking , yielding , to making turns . Nowadays , the behavior planning modules often incorporate the interaction between the ego vehicle and other agents on the road , such as other vehicles [ 3 ] .","title":"Objective"},{"location":"algorithms/Planning_/#inputs_1","text":"To achieve its goal , the behavior planning stage uses information from multiple sources , such as - the designated route obtained from the route planning ; - data about neighboring vehicles and pedestrians ( sourced from LiDAR , radar , cameras , etc . ) ; - traffic light information ; and - other pertinent environmental data .","title":"Inputs"},{"location":"algorithms/Planning_/#outputs_1","text":"The output of the behavior planning consists of macro - level directives like \" shift to the left lane \" , \" trail the vehicle in front \" , or \" get ready to turn right \" as well as coarse trajectories that reflect these directives .","title":"Outputs"},{"location":"algorithms/Planning_/#challenges_1","text":"In making its decisions , the behavior planning stage needs to address multiple issues , such as - anticipating the intentions and forthcoming actions of surrounding drivers and pedestrians ; - adopting a safe decision formulation in intricate scenarios ; and - navigating uncommon edge cases .","title":"Challenges"},{"location":"algorithms/Planning_/#motion-planning","text":"","title":"Motion Planning"},{"location":"algorithms/Planning_/#objective_2","text":"The last stage of the planning module workflow is motion planning , whose aim is to chart a trajectory that is both safe and consistent for the vehicle , reflecting the behavior objectives and staying within the vehicle ' s dynamic and kinematic constraints [ 1 ] .","title":"Objective"},{"location":"algorithms/Planning_/#inputs_2","text":"To produce a smooth trajectory for the vehicle , the motion planning needs multiple types of data , like - the intended behavior established by the behavior planning ; - the present vehicle state ( such as position , speed , and acceleration ) ; - the road map details ; and - data about dynamic obstructions .","title":"Inputs"},{"location":"algorithms/Planning_/#outputs_2","text":"The outcome of the motion planning stage is an optimized trajectory , detailing the vehicle ' s state over a specified time frame .","title":"Outputs"},{"location":"algorithms/Planning_/#challenges_2","text":"To produce such an optimized trajectory , the motion planning faces multiple challenges , such as - crafting trajectories that avoid collisions and are streamlined ; - managing noisy and uncertain data from sensors ; and - real - time trajectory mapping .","title":"Challenges"},{"location":"algorithms/Planning_/#references","text":"Paden , Brian , et al . \" A survey of motion planning and control techniques for self - driving urban vehicles . \" IEEE Transactions on intelligent vehicles 1.1 ( 2016 ) : 33 - 55 . Bast , Hannah , et al . \" Route planning in transportation networks . \" Algorithm engineering : Selected results and surveys ( 2016 ) : 19 - 80 . Ding , Wenchao , et al . \" Epsilon : An efficient planning system for automated vehicles in highly interactive environments . \" IEEE Transactions on Robotics 38.2 ( 2021 ) : 1118 - 1138 .","title":"References"},{"location":"algorithms/Planning_/frenet_lattice/","text":"frenet _ lattice The frenet _ lattice planner is a lattice local planner that implements the trajectory generation algorithm proposed in the paper Optimal Trajectory Generation for Dynamic Street Scenarios in a Fren \u00e9 t Frame . In the frenet _ lattice planner , you can just use LatticePlanner . run _ step to get trajectory with inputs , such as current Cartesian state , etc . Inputs The inputs of frenet _ lattice planner can come from the Carla simulator or from physical environments ; they include several types of data , such as a map providing the road network related information to the frenet _ lattice planner such as the lane width of the different roads , traffic light positions , standard speed limits , etc . The most common types of maps are : lanelet , OpenDRIVE , etc . ; the path generated by the global route planner , providing a reference course leading to the desired destination ; some obstacle information about obstacles on the current road , such as their position , yaw , bounding box , etc . ; the decision generated by behavior planner on how to control the vehicle , such as the velocity to keep , Following , Merging , Stopping , etc . Outputs The output of frenet _ lattice is a trajectory which contains position and speed of the vehicle . Such a trajectory must be dynamically feasible for the vehicle , comfortable for the passenger , and avoid collisions with obstacles detected by the on - board sensors . In practice , the output consists of the trajectory to follow , including information about speed , position , and its cost . FrenetPath ( class ) Store the trajectories ( paths ) which are generated by frenet _ lattice planner . This class not only contain Frenet coordinate [ s , s _ d , s _ dd , s _ ddd , d , d _ dd , d _ ddd ] and Cartesian coordinate [ x , y , yaw , ds , c ] , but also cost of trajectory . Instance Variables t ( list ( float - seconds ) ) Time of each Frenet point in Frenet path . s ( list ( float - meters ) ) Frenet longitudinal movement . Also represents the arc length , indicates the distance a vehicle has traveled along the road centerline . The value of s can be used to denote the vehicle ' s position . d ( list ( float - meters ) ) Frenet lateral offset . Indicates the lateral distance of the vehicle relative to the road centerline . The value of d can be used to represent the vehicle ' s lateral position . A positive value indicates the vehicle is on the right side of the road , while a negative value indicates the left side . s _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Indicates the speed of the vehicle in the direction along the road centerline . d _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Represents the derivative of lateral offset d with respect to time . It denotes the rate of change of lateral offset , indicating how rapidly the vehicle is changing its lateral position . s _ dd ( list ( float - m / s 2 ) ) Frenet longitudinal acceleration . Represents the rate of change of longitudinal velocity . It quantifies how quickly the vehicle is speeding up or slowing down along the road . d _ dd ( list ( float - m / s 2 ) ) Frenet lateral acceleration . Represents the rate of change of lateral velocity . It quantifies how quickly the lateral speed of the vehicle changes over time . s _ ddd ( list ( float - m / s 3 ) ) Frenet longitudinal jerk . Represents the rate of change of longitudinal acceleration . It is related to driving comfort . d _ ddd ( list ( float - m / s 3 ) ) Frenet lateral jerk . Represents the rate of change of lateral acceleration . It is related to driving comfort . x ( list ( float - seconds ) ) Cartesian horizontal coordinate x - axis . It measures the horizontal distance of an object relative to a coordinate origin point . y ( list ( float - meters ) ) Cartesian vertical coordinate y - axis . It measures the vertical distance of an object relative to a coordinate origin point . yaw ( list ( float - radians ) ) Cartesian yaw angle . It is the orientation angle of the object . ds ( list ( float - meters ) ) Cartesian arc length . It is the distance between two trajectories ' points . c ( list ( float - 1 / radian ) ) Cartesian curvature . It describes the degree of curvature of trajectories . cv ( float ) Frenet longitudinal s ( velocity ) Cost of this trajectory . Initial with zero . cd ( float ) Frenet lateral d Cost of this trajectory . Initial with zero . cf ( float ) Final Cost of this trajectory . It is the sum of longitudinal and lateral Cost . Initial with zero . LatticePlanner ( class ) LatticePlanner is a local planner which generate the best trajectory , so called FrenetPath with inputs , including map , global waypoints , etc . Instance Variables route _ graph ( DataType = Unkown ) A graph that represents the road network based on a lanelet map and traffic rules . In FrenetPlanner , it ' s used to get left / right lane for lateral planning . waypoints _ xy ( list ( list ( float , float ) ) ) The list of xy coordinate which is the outputs of global planner which is so called global waypoints . For instance , [ [ x 0 , y 0 ] , [ x 1 , y 1 ] , ... ] . state _ cartesian ( list ) Current cartesian state , defined as [ x , y , yaw , v , a ] , where x y is xy coordinates , yaw refers to rotation around the vertical axis , v is velocity , a is acceleration . state _ cartesian is measured in [ meters , meters , radians , m / s , m / s 2 ] . state _ frenet ( list ) Current frenet state , defined as [ s , s _ d , s _ dd , d , d _ d , d _ dd ] . Where , s s _ d and s _ dd represents Frenet longitudinal coordinate velocity and acceleration , d , d _ d and d _ dd represents lateral coordinate velocity and acceleration . state _ frenet is measured in [ meters , m / s , m / s 2 , meters , m / s , m / s 2 ] . best _ path ( FrenetPath ) The best trajectory ( path ) of FrenetPlanner based on current state _ frenet . road _ detector ( Sensor ) Detect road . Return road line position . obstacle _ detector ( Sensor ) Detect obstacle . Return True when obstacle is nearby the trajectory . Methods _ generate _ target _ course ( self ) Generates smooth reference line based on global waypoints by using cubic spline . Return : rx , ry , ryaw , rk , csp _ calc _ frenet _ paths ( self ) Generates all frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate by sampling time Ti , lateral d lat _ qp and longitudinal s lon _ qp . Return : frenet _ paths ( list ( FrenetPath ) ) _ calc _ frenet _ paths ( self , fplist ) Gets Cartesian coordinate of frenet _ paths . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate . Return : filtered _ fplist ( list ( FrenetPath ) ) - which contain Cartesian coordinate , Frenet coordinate and cost . _ check _ paths ( self , fplist ) Gets comfortable , kinematically feasible trajectories . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which contain Cartesian coordinate , Frenet coordinate and cost . Return : fplist ( list ( FrenetPath ) ) - which is comfortable and kinematically feasible . frenet _ optimal _ planning ( self ) Gets best trajectory . First generates all trajectories which is not containing Cartesian coordinate by using methods LatticePlanner ._ generate _ target _ course . Then gets Cartesian coordinate trajectories by using method LatticePlanner ._ calc _ frenet _ paths and filters not kinematically feasible trajectories by using LatticePlanner ._ check _ paths . Finally , gets best trajectory by minimizing the cost . Return : best _ path ( FrenetPath ) - Trajectory with minimum cost . run _ step ( self , state _ cartesian ) Main method of LatticePlanner which calls method frenet _ optimal _ planning to get a best trajectory . Parameters : state _ cartesian ( [ x , y , yaw , ds , c ] ) - Currenet Cartesian coordinate of ego vehicle . Return : Trajectory ( waypoints , speeds ) ( _ Trajectory ) - which is the list of waypoint [ x , y ] _ and speed .","title":"Frenet Optimal Trajectory"},{"location":"algorithms/Planning_/frenet_lattice/#frenet_lattice","text":"The frenet _ lattice planner is a lattice local planner that implements the trajectory generation algorithm proposed in the paper Optimal Trajectory Generation for Dynamic Street Scenarios in a Fren \u00e9 t Frame . In the frenet _ lattice planner , you can just use LatticePlanner . run _ step to get trajectory with inputs , such as current Cartesian state , etc .","title":"frenet _ lattice"},{"location":"algorithms/Planning_/frenet_lattice/#inputs","text":"The inputs of frenet _ lattice planner can come from the Carla simulator or from physical environments ; they include several types of data , such as a map providing the road network related information to the frenet _ lattice planner such as the lane width of the different roads , traffic light positions , standard speed limits , etc . The most common types of maps are : lanelet , OpenDRIVE , etc . ; the path generated by the global route planner , providing a reference course leading to the desired destination ; some obstacle information about obstacles on the current road , such as their position , yaw , bounding box , etc . ; the decision generated by behavior planner on how to control the vehicle , such as the velocity to keep , Following , Merging , Stopping , etc .","title":"Inputs"},{"location":"algorithms/Planning_/frenet_lattice/#outputs","text":"The output of frenet _ lattice is a trajectory which contains position and speed of the vehicle . Such a trajectory must be dynamically feasible for the vehicle , comfortable for the passenger , and avoid collisions with obstacles detected by the on - board sensors . In practice , the output consists of the trajectory to follow , including information about speed , position , and its cost .","title":"Outputs"},{"location":"algorithms/Planning_/frenet_lattice/#frenetpath-class","text":"Store the trajectories ( paths ) which are generated by frenet _ lattice planner . This class not only contain Frenet coordinate [ s , s _ d , s _ dd , s _ ddd , d , d _ dd , d _ ddd ] and Cartesian coordinate [ x , y , yaw , ds , c ] , but also cost of trajectory .","title":"FrenetPath ( class )"},{"location":"algorithms/Planning_/frenet_lattice/#instance-variables","text":"t ( list ( float - seconds ) ) Time of each Frenet point in Frenet path . s ( list ( float - meters ) ) Frenet longitudinal movement . Also represents the arc length , indicates the distance a vehicle has traveled along the road centerline . The value of s can be used to denote the vehicle ' s position . d ( list ( float - meters ) ) Frenet lateral offset . Indicates the lateral distance of the vehicle relative to the road centerline . The value of d can be used to represent the vehicle ' s lateral position . A positive value indicates the vehicle is on the right side of the road , while a negative value indicates the left side . s _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Indicates the speed of the vehicle in the direction along the road centerline . d _ d ( list ( float - m / s ) ) Frenet longitudinal velocity . Represents the derivative of lateral offset d with respect to time . It denotes the rate of change of lateral offset , indicating how rapidly the vehicle is changing its lateral position . s _ dd ( list ( float - m / s 2 ) ) Frenet longitudinal acceleration . Represents the rate of change of longitudinal velocity . It quantifies how quickly the vehicle is speeding up or slowing down along the road . d _ dd ( list ( float - m / s 2 ) ) Frenet lateral acceleration . Represents the rate of change of lateral velocity . It quantifies how quickly the lateral speed of the vehicle changes over time . s _ ddd ( list ( float - m / s 3 ) ) Frenet longitudinal jerk . Represents the rate of change of longitudinal acceleration . It is related to driving comfort . d _ ddd ( list ( float - m / s 3 ) ) Frenet lateral jerk . Represents the rate of change of lateral acceleration . It is related to driving comfort . x ( list ( float - seconds ) ) Cartesian horizontal coordinate x - axis . It measures the horizontal distance of an object relative to a coordinate origin point . y ( list ( float - meters ) ) Cartesian vertical coordinate y - axis . It measures the vertical distance of an object relative to a coordinate origin point . yaw ( list ( float - radians ) ) Cartesian yaw angle . It is the orientation angle of the object . ds ( list ( float - meters ) ) Cartesian arc length . It is the distance between two trajectories ' points . c ( list ( float - 1 / radian ) ) Cartesian curvature . It describes the degree of curvature of trajectories . cv ( float ) Frenet longitudinal s ( velocity ) Cost of this trajectory . Initial with zero . cd ( float ) Frenet lateral d Cost of this trajectory . Initial with zero . cf ( float ) Final Cost of this trajectory . It is the sum of longitudinal and lateral Cost . Initial with zero .","title":"Instance Variables"},{"location":"algorithms/Planning_/frenet_lattice/#latticeplanner-class","text":"LatticePlanner is a local planner which generate the best trajectory , so called FrenetPath with inputs , including map , global waypoints , etc .","title":"LatticePlanner ( class )"},{"location":"algorithms/Planning_/frenet_lattice/#instance-variables_1","text":"route _ graph ( DataType = Unkown ) A graph that represents the road network based on a lanelet map and traffic rules . In FrenetPlanner , it ' s used to get left / right lane for lateral planning . waypoints _ xy ( list ( list ( float , float ) ) ) The list of xy coordinate which is the outputs of global planner which is so called global waypoints . For instance , [ [ x 0 , y 0 ] , [ x 1 , y 1 ] , ... ] . state _ cartesian ( list ) Current cartesian state , defined as [ x , y , yaw , v , a ] , where x y is xy coordinates , yaw refers to rotation around the vertical axis , v is velocity , a is acceleration . state _ cartesian is measured in [ meters , meters , radians , m / s , m / s 2 ] . state _ frenet ( list ) Current frenet state , defined as [ s , s _ d , s _ dd , d , d _ d , d _ dd ] . Where , s s _ d and s _ dd represents Frenet longitudinal coordinate velocity and acceleration , d , d _ d and d _ dd represents lateral coordinate velocity and acceleration . state _ frenet is measured in [ meters , m / s , m / s 2 , meters , m / s , m / s 2 ] . best _ path ( FrenetPath ) The best trajectory ( path ) of FrenetPlanner based on current state _ frenet . road _ detector ( Sensor ) Detect road . Return road line position . obstacle _ detector ( Sensor ) Detect obstacle . Return True when obstacle is nearby the trajectory .","title":"Instance Variables"},{"location":"algorithms/Planning_/frenet_lattice/#methods","text":"_ generate _ target _ course ( self ) Generates smooth reference line based on global waypoints by using cubic spline . Return : rx , ry , ryaw , rk , csp _ calc _ frenet _ paths ( self ) Generates all frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate by sampling time Ti , lateral d lat _ qp and longitudinal s lon _ qp . Return : frenet _ paths ( list ( FrenetPath ) ) _ calc _ frenet _ paths ( self , fplist ) Gets Cartesian coordinate of frenet _ paths . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which just contain Frenet coordinate and cost but not Cartesian coordinate . Return : filtered _ fplist ( list ( FrenetPath ) ) - which contain Cartesian coordinate , Frenet coordinate and cost . _ check _ paths ( self , fplist ) Gets comfortable , kinematically feasible trajectories . Parameters : fplist ( list ( FrenetPath ) ) - frenet paths which contain Cartesian coordinate , Frenet coordinate and cost . Return : fplist ( list ( FrenetPath ) ) - which is comfortable and kinematically feasible . frenet _ optimal _ planning ( self ) Gets best trajectory . First generates all trajectories which is not containing Cartesian coordinate by using methods LatticePlanner ._ generate _ target _ course . Then gets Cartesian coordinate trajectories by using method LatticePlanner ._ calc _ frenet _ paths and filters not kinematically feasible trajectories by using LatticePlanner ._ check _ paths . Finally , gets best trajectory by minimizing the cost . Return : best _ path ( FrenetPath ) - Trajectory with minimum cost . run _ step ( self , state _ cartesian ) Main method of LatticePlanner which calls method frenet _ optimal _ planning to get a best trajectory . Parameters : state _ cartesian ( [ x , y , yaw , ds , c ] ) - Currenet Cartesian coordinate of ego vehicle . Return : Trajectory ( waypoints , speeds ) ( _ Trajectory ) - which is the list of waypoint [ x , y ] _ and speed .","title":"Methods"},{"location":"algorithms/Planning_/lanelet_planner/","text":"Lanelet2Planner A global trajectory planner based on Lanelet2 HD - Map . The implementation relies on the Lanelet2 Python API . Currently , the global planner will find the closest lanelets for both the start point and the end point . Then , it will use the Lanelet2 routing module to generate a submap containing all possible lanelets from the start lanelet to the end lanelet . A trajectory will then be generated using the modified flood - fill algorithm so that it will connect the start point to the end point : Start point - > Start lanelet - > End lanelet - > End point . { : . note } The ISS global planner module currently uses the Lanelet2 HDMap format . Since the Lanelet2 Python API only supports Linux systems , this module may not work properly in other platforms . We will separate the mapping and the planning module apart in a future release and support more HDMap formats ( e . g . OpenDrive ) . Instance Variables lanelet _ map ( lanelet2 . core . LaneletMap ) The lanelet2 HDMap for current location . traffic _ rules ( lanelet2 . traffic _ rule ) The lanelet2 definition of traffic rules of current map . collision _ detector ( utils . vehicleutils . CollisionChecker ) The collision checker of solid road line . reverse _ y ( boolean ) When True the y - coordinate will be reversed . ( Left - hand to Right - hand coordinates , vice versa )","title":"Lanelet2 Global Planner"},{"location":"algorithms/Planning_/lanelet_planner/#lanelet2planner","text":"A global trajectory planner based on Lanelet2 HD - Map . The implementation relies on the Lanelet2 Python API . Currently , the global planner will find the closest lanelets for both the start point and the end point . Then , it will use the Lanelet2 routing module to generate a submap containing all possible lanelets from the start lanelet to the end lanelet . A trajectory will then be generated using the modified flood - fill algorithm so that it will connect the start point to the end point : Start point - > Start lanelet - > End lanelet - > End point . { : . note } The ISS global planner module currently uses the Lanelet2 HDMap format . Since the Lanelet2 Python API only supports Linux systems , this module may not work properly in other platforms . We will separate the mapping and the planning module apart in a future release and support more HDMap formats ( e . g . OpenDrive ) .","title":"Lanelet2Planner"},{"location":"algorithms/Planning_/lanelet_planner/#instance-variables","text":"lanelet _ map ( lanelet2 . core . LaneletMap ) The lanelet2 HDMap for current location . traffic _ rules ( lanelet2 . traffic _ rule ) The lanelet2 definition of traffic rules of current map . collision _ detector ( utils . vehicleutils . CollisionChecker ) The collision checker of solid road line . reverse _ y ( boolean ) When True the y - coordinate will be reversed . ( Left - hand to Right - hand coordinates , vice versa )","title":"Instance Variables"},{"location":"algorithms/Sensors/_BeamNG/","text":"Sensors for interaction between ISS and BeamNG . BeamNG Sensors { : . d - inline - block } ( WIP ) { : . label . label - blue } BeamNG sensor is currently WIP .","title":"BeamNG Sensors"},{"location":"algorithms/Sensors/_BeamNG/#beamng-sensors","text":"{ : . d - inline - block } ( WIP ) { : . label . label - blue } BeamNG sensor is currently WIP .","title":"BeamNG Sensors"},{"location":"algorithms/Sensors/_CARLA/","text":"Sensors in CARLA Sensors in CARLA compound a specific family of actors that are quite diverse and unique from the other CARLA actors ; they model different sensing capabilities that can be used in self - driving systems . Sensors are represented by CARLA actors that are normally spawned as attachment / sons of a vehicle . Sensors are thoroughly designed to retrieve different types of data that they are listening to . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some other specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary . Instance Variables is _ listening ( boolean ) When True the sensor will be waiting for data . Methods listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . stop ( self ) Commands the sensor to stop listening for data . CarlaCamera The \" RGB \" camera acts as a regular camera capturing images from the scene . A CARLA camera can be tuned with respect to multiple parameters , such as sensor _ tick and enable _ postprocess _ effects . The numeric sensor _ tick parameter controls how fast we want the sensor to capture the scene : for example , a value of 1.5 means that we want the sensor to capture an image each second and a half . The value 0.0 is used as default and it instructs the camera to capture images as fast as possible . The enable _ postprocess _ effects parameters allows the user to increase the realism of the captured images , by applying the corresponding set of post - process effects : Vignette : darkens the border of the screen . Grain jitter : adds some noise to the render . Bloom : intense lights burn the area around them . Auto exposure : modifies the image gamma to simulate the eye adaptation to darker or brighter areas . Lens flares : simulates the reflection of bright objects on the lens . Depth of field : blurs objects near or very far away from the camera . CarlaLiDAR This sensor simulates a rotating LiDAR implemented using ray - casting . The points are computed by adding a laser beam for each channel distributed in the vertical FOV . The rotation is simulated by computing the horizontal angle corresponding to how much the LiDAR rotated between two consecutive frames taken with frequency FPS , that is , the LiDAR rotation angle in 1 / FPS seconds . The point cloud is calculated by doing a ray - cast for each laser beam in every step . points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) A LIDAR measurement contains a package with all the points generated during an interval of length 1 / FPS . During this interval the physics of the world are not updated so all points in the measurement reflect the same \" static picture \" of the scene . This output contains a cloud of simulation points and thus , it can be iterated to retrieve a list of their carla . Location : for location in lidar _ measurement : print ( location ) The information of the LiDAR measurement is encoded by means of 4D points . The first three dimensions represent the space points in the usual XYZ spatial coordinates ; the last one stands for the intensity loss during the travel . This intensity is computed by the following formula . a \u2014 Attenuation coefficient . This may depend on the sensor ' s wavelength , and the conditions of the atmosphere . It can be modified with the LiDAR attribute atmosphere _ attenuation _ rate . d \u2014 Distance from the hit point to the sensor . For a better realism , points in the cloud can be dropped off . This is an easy way to simulate loss due to external perturbations . This can done combining two different parameters . General drop - off \u2014 Proportion of points that are dropped off randomly . This is done before the tracing , meaning the points being dropped are not calculated , thus improving the performance . If dropoff _ general _ rate = 0.5 , half of the points will be dropped . Intensity - based drop - off \u2014 For each point detected , and extra drop - off is performed with a probability based in the computed intensity . This probability is determined by two parameters : dropoff _ zero _ intensity and dropoff _ intensity _ limit , where is the probability of points with zero intensity to be dropped while dropoff _ intensity _ limit is a threshold intensity above which no points will be dropped . The probability of a point within the range to be dropped is a linear proportion based on these two parameters . Additionally , the noise _ stddev attribute makes for a noise model to simulate unexpected deviations that appear in real - life sensors . For positive values , each point is randomly perturbed along the vector of the laser beam . The result is a LiDAR sensor with perfect angular positioning , but noisy distance measurement . The rotation of the LiDAR can be tuned to cover a specific angle on every simulation step ( using a fixed time - step ) . For example , to rotate once per step ( full circle output , as in the picture below ) , the rotation frequency and the simulated FPS should be the same ; this can be obtained by 1 . Setting the sensor ' s rotation _ frequency attribute sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . Running the simulation using the option -- fps = N , e . g . , python3 config . py -- fps = 10 . CarlaGNSS Blueprint : sensor . other . gnss Output : carla . GNSSMeasurement per step ( unless sensor _ tick says otherwise ) . This sensors models a GPS receiver and it provides the current GNSS position of the vehicle the sensor is attached to . The current coordinates are calculated by adding the metric position to an initial geo reference location defined within the OpenDRIVE map definition . GNSS attributes Blueprint attribute Type Default Description noise _ alt _ bias float 0.0 Mean parameter in the noise model for altitude . noise _ alt _ stddev float 0.0 Standard deviation parameter in the noise model for altitude . noise _ lat _ bias float 0.0 Mean parameter in the noise model for latitude . noise _ lat _ stddev float 0.0 Standard deviation parameter in the noise model for latitude . noise _ lon _ bias float 0.0 Mean parameter in the noise model for longitude . noise _ lon _ stddev float 0.0 Standard deviation parameter in the noise model for longitude . noise _ seed int 0 Initializer for a pseudorandom number generator . sensor _ tick float 0.0 Simulation seconds between sensor captures ( ticks ) . Output attributes Sensor data attribute Type Description frame int Frame number when the measurement took place . timestamp double Simulation time of the measurement in seconds since the beginning of the episode . transform carla . Transform Location and rotation in world coordinates of the sensor at the time of the measurement . latitude double Latitude of the actor . longitude double Longitude of the actor . altitude double Altitude of the actor .","title":"CARLA Sensors"},{"location":"algorithms/Sensors/_CARLA/#sensors-in-carla","text":"Sensors in CARLA compound a specific family of actors that are quite diverse and unique from the other CARLA actors ; they model different sensing capabilities that can be used in self - driving systems . Sensors are represented by CARLA actors that are normally spawned as attachment / sons of a vehicle . Sensors are thoroughly designed to retrieve different types of data that they are listening to . Most sensors can be divided in two groups : those receiving data on every tick ( cameras , point clouds and some other specific sensors ) and those who only receive under certain circumstances ( trigger detectors ) . CARLA provides a specific set of sensors and their blueprint can be found in carla . BlueprintLibrary .","title":"Sensors in CARLA"},{"location":"algorithms/Sensors/_CARLA/#instance-variables","text":"is _ listening ( boolean ) When True the sensor will be waiting for data .","title":"Instance Variables"},{"location":"algorithms/Sensors/_CARLA/#methods","text":"listen ( self , callback ) snippet \u2192 The function the sensor will be calling to every time a new measurement is received . This function needs for an argument containing an object type carla . SensorData to work with . Parameters : callback ( function ) - The called function with one argument containing the sensor data . stop ( self ) Commands the sensor to stop listening for data .","title":"Methods"},{"location":"algorithms/Sensors/_CARLA/#carlacamera","text":"The \" RGB \" camera acts as a regular camera capturing images from the scene . A CARLA camera can be tuned with respect to multiple parameters , such as sensor _ tick and enable _ postprocess _ effects . The numeric sensor _ tick parameter controls how fast we want the sensor to capture the scene : for example , a value of 1.5 means that we want the sensor to capture an image each second and a half . The value 0.0 is used as default and it instructs the camera to capture images as fast as possible . The enable _ postprocess _ effects parameters allows the user to increase the realism of the captured images , by applying the corresponding set of post - process effects : Vignette : darkens the border of the screen . Grain jitter : adds some noise to the render . Bloom : intense lights burn the area around them . Auto exposure : modifies the image gamma to simulate the eye adaptation to darker or brighter areas . Lens flares : simulates the reflection of bright objects on the lens . Depth of field : blurs objects near or very far away from the camera .","title":"CarlaCamera"},{"location":"algorithms/Sensors/_CARLA/#carlalidar","text":"This sensor simulates a rotating LiDAR implemented using ray - casting . The points are computed by adding a laser beam for each channel distributed in the vertical FOV . The rotation is simulated by computing the horizontal angle corresponding to how much the LiDAR rotated between two consecutive frames taken with frequency FPS , that is , the LiDAR rotation angle in 1 / FPS seconds . The point cloud is calculated by doing a ray - cast for each laser beam in every step . points _ per _ channel _ each _ step = points _ per _ second / ( FPS * channels ) A LIDAR measurement contains a package with all the points generated during an interval of length 1 / FPS . During this interval the physics of the world are not updated so all points in the measurement reflect the same \" static picture \" of the scene . This output contains a cloud of simulation points and thus , it can be iterated to retrieve a list of their carla . Location : for location in lidar _ measurement : print ( location ) The information of the LiDAR measurement is encoded by means of 4D points . The first three dimensions represent the space points in the usual XYZ spatial coordinates ; the last one stands for the intensity loss during the travel . This intensity is computed by the following formula . a \u2014 Attenuation coefficient . This may depend on the sensor ' s wavelength , and the conditions of the atmosphere . It can be modified with the LiDAR attribute atmosphere _ attenuation _ rate . d \u2014 Distance from the hit point to the sensor . For a better realism , points in the cloud can be dropped off . This is an easy way to simulate loss due to external perturbations . This can done combining two different parameters . General drop - off \u2014 Proportion of points that are dropped off randomly . This is done before the tracing , meaning the points being dropped are not calculated , thus improving the performance . If dropoff _ general _ rate = 0.5 , half of the points will be dropped . Intensity - based drop - off \u2014 For each point detected , and extra drop - off is performed with a probability based in the computed intensity . This probability is determined by two parameters : dropoff _ zero _ intensity and dropoff _ intensity _ limit , where is the probability of points with zero intensity to be dropped while dropoff _ intensity _ limit is a threshold intensity above which no points will be dropped . The probability of a point within the range to be dropped is a linear proportion based on these two parameters . Additionally , the noise _ stddev attribute makes for a noise model to simulate unexpected deviations that appear in real - life sensors . For positive values , each point is randomly perturbed along the vector of the laser beam . The result is a LiDAR sensor with perfect angular positioning , but noisy distance measurement . The rotation of the LiDAR can be tuned to cover a specific angle on every simulation step ( using a fixed time - step ) . For example , to rotate once per step ( full circle output , as in the picture below ) , the rotation frequency and the simulated FPS should be the same ; this can be obtained by 1 . Setting the sensor ' s rotation _ frequency attribute sensors _ bp [ ' lidar ' ] [ 0 ] . set _ attribute ( ' rotation _ frequency ' , ' 10 ' ) . 2 . Running the simulation using the option -- fps = N , e . g . , python3 config . py -- fps = 10 .","title":"CarlaLiDAR"},{"location":"algorithms/Sensors/_CARLA/#carlagnss","text":"Blueprint : sensor . other . gnss Output : carla . GNSSMeasurement per step ( unless sensor _ tick says otherwise ) . This sensors models a GPS receiver and it provides the current GNSS position of the vehicle the sensor is attached to . The current coordinates are calculated by adding the metric position to an initial geo reference location defined within the OpenDRIVE map definition .","title":"CarlaGNSS"},{"location":"algorithms/Sensors/_CARLA/#gnss-attributes","text":"Blueprint attribute Type Default Description noise _ alt _ bias float 0.0 Mean parameter in the noise model for altitude . noise _ alt _ stddev float 0.0 Standard deviation parameter in the noise model for altitude . noise _ lat _ bias float 0.0 Mean parameter in the noise model for latitude . noise _ lat _ stddev float 0.0 Standard deviation parameter in the noise model for latitude . noise _ lon _ bias float 0.0 Mean parameter in the noise model for longitude . noise _ lon _ stddev float 0.0 Standard deviation parameter in the noise model for longitude . noise _ seed int 0 Initializer for a pseudorandom number generator . sensor _ tick float 0.0 Simulation seconds between sensor captures ( ticks ) .","title":"GNSS attributes"},{"location":"algorithms/Sensors/_CARLA/#output-attributes","text":"Sensor data attribute Type Description frame int Frame number when the measurement took place . timestamp double Simulation time of the measurement in seconds since the beginning of the episode . transform carla . Transform Location and rotation in world coordinates of the sensor at the time of the measurement . latitude double Latitude of the actor . longitude double Longitude of the actor . altitude double Altitude of the actor .","title":"Output attributes"},{"location":"algorithms/Sensors/_index/","text":"Sensors in Self - driving Systems Sensor classes based on the data source , such as simulators like CARLA and BeamNG and real vehicles , play a pivotal role in the development and testing of autonomous driving systems . These sensors serve as the eyes and ears of self - driving vehicles , providing crucial data for navigation , perception , and decision - making algorithms . In this context , sensor simulation becomes a critical component of the development process , allowing engineers to assess the system ' s performance in a controlled environment before deploying it in the real world . Simulators like CARLA and BeamNG are powerful tools for sensor simulation , offering a range of sensor classes that mimic the behavior of real - world sensors . These simulators generate synthetic data , replicating the sensory input that an autonomous vehicle would receive while driving . The sensors commonly simulated in these environments include : LiDAR ( Light Detection and Ranging ) : Simulated LiDAR sensors emit laser beams and measure their reflection from surrounding objects , providing detailed 3D point clouds . These simulators replicate the physics of LiDAR , including beam divergence and range accuracy , allowing developers to evaluate their algorithms ' performance in various scenarios . { : . center - image width = \" 480 \" } Radar : Radar sensors use radio waves to detect objects and their relative speed . Simulated radar sensors emulate the radar signal ' s propagation and reflection , including effects like interference and attenuation , to generate realistic sensor data . { : . center - image width = \" 480 \" } Camera : Simulated cameras replicate the behavior of vision sensors , including factors such as lens distortion , exposure , and image noise . These simulations enable the testing of computer vision algorithms for tasks like object detection , lane tracking , and traffic sign recognition . { : . center - image width = \" 480 \" } GPS and IMU ( Inertial Measurement Unit ) : Simulated GPS and IMU sensors provide vehicle localization and orientation data . These sensors simulate satellite signals and vehicle movements , allowing developers to assess GPS - based localization and sensor fusion algorithms . Ultrasonic Sensors : Simulated ultrasonic sensors model the way ultrasonic waves bounce off objects to measure distances . They are crucial for detecting nearby obstacles during parking and low - speed maneuvers . Wheel Odometry : Simulated wheel odometry sensors estimate the vehicle ' s motion based on wheel rotations . These sensors aid in dead reckoning and can be used for localization when GPS signals are weak or unavailable . Data generated by these simulated sensors is typically provided in formats that mimic real - world sensor outputs , such as point clouds for LiDAR , radar sweeps for radar , and image frames for cameras . Developers can configure the sensor properties and environmental conditions within the simulators to create diverse testing scenarios , including different weather conditions , traffic patterns , and road types . In summary , sensor simulation in autonomous driving development , whether its data is produced by simulators like CARLA and BeamNG or collected by using real vehicles , is indispensable for verifying and fine - tuning perception and control algorithms . It allows developers to evaluate the robustness and reliability of these systems under various conditions , ultimately contributing to the safe deployment of autonomous vehicles on our roads .","title":"Sensors"},{"location":"algorithms/Sensors/_index/#sensors-in-self-driving-systems","text":"Sensor classes based on the data source , such as simulators like CARLA and BeamNG and real vehicles , play a pivotal role in the development and testing of autonomous driving systems . These sensors serve as the eyes and ears of self - driving vehicles , providing crucial data for navigation , perception , and decision - making algorithms . In this context , sensor simulation becomes a critical component of the development process , allowing engineers to assess the system ' s performance in a controlled environment before deploying it in the real world . Simulators like CARLA and BeamNG are powerful tools for sensor simulation , offering a range of sensor classes that mimic the behavior of real - world sensors . These simulators generate synthetic data , replicating the sensory input that an autonomous vehicle would receive while driving . The sensors commonly simulated in these environments include : LiDAR ( Light Detection and Ranging ) : Simulated LiDAR sensors emit laser beams and measure their reflection from surrounding objects , providing detailed 3D point clouds . These simulators replicate the physics of LiDAR , including beam divergence and range accuracy , allowing developers to evaluate their algorithms ' performance in various scenarios . { : . center - image width = \" 480 \" } Radar : Radar sensors use radio waves to detect objects and their relative speed . Simulated radar sensors emulate the radar signal ' s propagation and reflection , including effects like interference and attenuation , to generate realistic sensor data . { : . center - image width = \" 480 \" } Camera : Simulated cameras replicate the behavior of vision sensors , including factors such as lens distortion , exposure , and image noise . These simulations enable the testing of computer vision algorithms for tasks like object detection , lane tracking , and traffic sign recognition . { : . center - image width = \" 480 \" } GPS and IMU ( Inertial Measurement Unit ) : Simulated GPS and IMU sensors provide vehicle localization and orientation data . These sensors simulate satellite signals and vehicle movements , allowing developers to assess GPS - based localization and sensor fusion algorithms . Ultrasonic Sensors : Simulated ultrasonic sensors model the way ultrasonic waves bounce off objects to measure distances . They are crucial for detecting nearby obstacles during parking and low - speed maneuvers . Wheel Odometry : Simulated wheel odometry sensors estimate the vehicle ' s motion based on wheel rotations . These sensors aid in dead reckoning and can be used for localization when GPS signals are weak or unavailable . Data generated by these simulated sensors is typically provided in formats that mimic real - world sensor outputs , such as point clouds for LiDAR , radar sweeps for radar , and image frames for cameras . Developers can configure the sensor properties and environmental conditions within the simulators to create diverse testing scenarios , including different weather conditions , traffic patterns , and road types . In summary , sensor simulation in autonomous driving development , whether its data is produced by simulators like CARLA and BeamNG or collected by using real vehicles , is indispensable for verifying and fine - tuning perception and control algorithms . It allows developers to evaluate the robustness and reliability of these systems under various conditions , ultimately contributing to the safe deployment of autonomous vehicles on our roads .","title":"Sensors in Self - driving Systems"},{"location":"algorithms/perception_/","text":"Perception { : . d - inline - block } Introduction to the Perception Module The ISS perception module provides support to multiple perception tasks , such as 3D obstacle perception , 2D object recognition , 2D semantic segmentation , and sensor - based Bird ' s Eye View ( BEV ) map generation . Our team is focused on developing and refining these critical perception tasks . These tasks serve as the foundation for enabling our vehicles to navigate complex environments with safety and precision . Tasks The different tasks supported by the ISS perception module allow our vehicles to learn specific properties of the surrounding environment and its elements . 3D Obstacle Detection : Our system employs advanced sensor technologies to detect and analyze three - dimensional obstacles in real - time . This capability allows our autonomous vehicles to make informed decisions and ensure safe navigation , even in dynamic and challenging scenarios . 2D Object Detection : Recognizing and identifying objects in the vehicle ' s surroundings is crucial for safe navigation . Our framework utilizes cutting - edge algorithms to identify and classify various objects , such as pedestrians , vehicles , and signage , contributing to enhanced situational awareness . { : . center - image } 3D Obstacle Perception and 2D Object Detection { : . text - center } 2D Semantic Segmentation : Semantic segmentation is an essential task for understanding the environment in detail . We leverage state - of - the - art techniques to partition the scene into meaningful segments , enabling our vehicles to comprehend the road layout and better respond to complex urban landscapes . { : . center - image } Sensor - Based BEV Map Generation : Our system generates a Bird ' s Eye View ( BEV ) map using sensor data , providing a holistic view of the vehicle ' s surroundings . This map serves as a valuable tool for path planning and decision - making , enhancing the vehicle ' s ability to navigate efficiently and safely . At present , we are diligently working on these modules , and we are pleased to share that we have developed initial models for the first three tasks . However , it ' s important to note that these models are still undergoing refinement to enhance their performance and reliability . We also provide a dataset about the object detection generated by ISS . Still updating .","title":"Perception"},{"location":"algorithms/perception_/#perception","text":"{ : . d - inline - block }","title":"Perception"},{"location":"algorithms/perception_/#introduction-to-the-perception-module","text":"The ISS perception module provides support to multiple perception tasks , such as 3D obstacle perception , 2D object recognition , 2D semantic segmentation , and sensor - based Bird ' s Eye View ( BEV ) map generation . Our team is focused on developing and refining these critical perception tasks . These tasks serve as the foundation for enabling our vehicles to navigate complex environments with safety and precision .","title":"Introduction to the Perception Module"},{"location":"algorithms/perception_/#tasks","text":"The different tasks supported by the ISS perception module allow our vehicles to learn specific properties of the surrounding environment and its elements . 3D Obstacle Detection : Our system employs advanced sensor technologies to detect and analyze three - dimensional obstacles in real - time . This capability allows our autonomous vehicles to make informed decisions and ensure safe navigation , even in dynamic and challenging scenarios . 2D Object Detection : Recognizing and identifying objects in the vehicle ' s surroundings is crucial for safe navigation . Our framework utilizes cutting - edge algorithms to identify and classify various objects , such as pedestrians , vehicles , and signage , contributing to enhanced situational awareness . { : . center - image } 3D Obstacle Perception and 2D Object Detection { : . text - center } 2D Semantic Segmentation : Semantic segmentation is an essential task for understanding the environment in detail . We leverage state - of - the - art techniques to partition the scene into meaningful segments , enabling our vehicles to comprehend the road layout and better respond to complex urban landscapes . { : . center - image } Sensor - Based BEV Map Generation : Our system generates a Bird ' s Eye View ( BEV ) map using sensor data , providing a holistic view of the vehicle ' s surroundings . This map serves as a valuable tool for path planning and decision - making , enhancing the vehicle ' s ability to navigate efficiently and safely . At present , we are diligently working on these modules , and we are pleased to share that we have developed initial models for the first three tasks . However , it ' s important to note that these models are still undergoing refinement to enhance their performance and reliability . We also provide a dataset about the object detection generated by ISS . Still updating .","title":"Tasks"},{"location":"demo/boost_python/","text":"VS2019 \u8c03\u7528 boost . Python \u751f\u6210 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u65b0\u5efa Cmake \u5de5\u7a0b \uff1b \u8f93\u5165 \u4ee5\u4e0b \u4ee3\u7801 \uff1a # include < boost / python . hpp > # include < boost / python / module . hpp > # include < boost / python / def . hpp > # include < boost / python / to _ python _ converter . hpp > # include < iostream > using namespace std ; void dummyFunc ( ) { cout < < \" call OK ! \" < < endl ; } int main ( ) { dummyFunc ( ) ; return 0 ; } \u5728 CMakeLists . txt \u4e2d \u6dfb\u52a0 \u5934 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 \u548c \u5e93 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 # \u6dfb\u52a0 \u5934 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 include _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / include \" ) include _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / include \" ) # \u6dfb\u52a0 \u5e93 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 link _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / libs \" ) # \u8fd8\u662f \u7f3a\u5c11 libboost _ python37 - vc142 - mt - gd - x64 - 1 _ 80 . lib link _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / lib _ no _ prefix \" ) \u5230 boost \u5b89\u88c5 \u76ee\u5f55 \u4e0b \uff0c \u8fdb\u5165 lib \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \uff0c \u627e\u5230 \u524d\u7f00 \u662f libboost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib \u6587\u4ef6 \uff08 \u524d\u7f00 \u6709 lib \uff09 \uff0c \u5c06 \u5176 \u524d\u7f00 \u7684 lib \u5220\u9664 \u5373\u53ef \uff08 \u5373 \u547d\u540d \u91cd\u547d\u540d \u4e3a boost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib \uff09 \u3002 \u751f\u6210 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u4f1a \u751f\u6210 exe \u6587\u4ef6 \uff0c \u5982\u679c \u4e0d \u53ef\u4ee5 \u5728 vs \u4e2d \u76f4\u63a5 \u6267\u884c \uff0c \u5c06 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u5f53\u524d \u6587\u6863 \u6539\u4e3a * . exe \u3002 \u751f\u6210 Python \u8c03\u7528 \u7684 \u5e93 \u65b0\u5efa hello _ exe . cpp \uff0c \u6ce8\u610f \u6587\u4ef6 \u6587\u4ef6\u540d \u5fc5\u987b \u4e3a \u6a21\u5757 \u540d \uff1a / / \u53c2\u8003 \uff1a https : / / developer . aliyun . com / article / 1260043 / / \u5f53 \u5f15\u5165 # include < boost / python / xxx > \u65f6 \uff0c Boost \u4f1a \u9ed8\u8ba4 \u94fe\u63a5 boost _ python \u52a8\u6001 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u52a8\u6001\u94fe\u63a5\u5e93 \uff0c / / \u5982\u679c \u6211\u4eec \u60f3\u8981 \u94fe\u63a5 \u9759\u6001 \u94fe\u63a5 \u94fe\u63a5\u5e93 \uff0c \u5c31 \u9700\u8981 \u5728 include \u4e4b\u524d \u52a0\u4e0a # define BOOST _ PYTHON _ STATIC _ LIB / / \u6307\u5b9a \u94fe\u63a5 boost _ python \u7684 \u9759\u6001 \u5e93 \uff0c \u800c \u4e0d\u662f \u9ed8\u8ba4 \u7684 \u52a8\u6001 \u5e93 \u3002 # define BOOST _ PYTHON _ STATIC _ LIB # include < boost / python . hpp > # include < boost / python / module . hpp > # include < boost / python / def . hpp > # include < boost / python / to _ python _ converter . hpp > # include < iostream > using namespace std ; char const * greet ( ) { return \" hello , world \" ; } BOOST _ PYTHON _ MODULE ( hello _ ext ) { using namespace boost : : python ; def ( \" greet \" , greet ) ; } \u65b0\u5efa CMakeLists . txt \uff1a cmake _ minimum _ required ( VERSION 3.8 ) # \u6dfb\u52a0 \u5934 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 include _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / include \" ) include _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / include \" ) # \u6dfb\u52a0 \u5e93 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 link _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / libs \" ) # \u8fd8\u662f \u7f3a\u5c11 libboost _ python37 - vc142 - mt - gd - x64 - 1 _ 80 . lib link _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / lib _ no _ prefix \" ) # \u5c06 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6dfb\u52a0 \u5230 \u6b64 \u9879\u76ee \u7684 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 # add _ executable ( boost _ demo \" boost _ demo . cpp \" \" boost _ demo . h \" ) # # \u751f\u6210 \u52a8\u6001 \u5e93 ( \u5171\u4eab \u5e93 ) \u5171\u4eab \u5e93\u5219 \u53ea\u6709 \u4e00\u4e2a \u526f\u672c add _ library ( hello _ ext SHARED hello _ ext . cpp ) # ( boost _ demo \u662f \u5e93 \u7684 \u540d\u5b57 ) \uff0c \u8fd9 \u6761 \u547d\u4ee4 \u544a\u8bc9 cmake \uff0c \u6211\u4eec \u60f3 \u628a boost _ demo . cpp \u7f16\u8bd1 \u8bd1\u6210 \u7f16\u8bd1\u6210 \u4e00\u4e2a \u53eb\u4f5c \u201c boost _ demo \u201d \u7684 \u5e93 \u3002 set _ target _ properties ( hello _ ext PROPERTIES SUFFIX \" . pyd \" ) \u6784\u5efa \u540e \u4f1a \u751f\u6210 hello _ ext . pyd \u3002 \u5728 \u751f\u6210 \u7684 . pyd \u76ee\u5f55 \u4e0b \u65b0\u5efa hello . py import hello _ ext print ( hello _ ext . greet ( ) )","title":"Boost python"},{"location":"demo/boost_python/#vs2019boostpython","text":"","title":"VS2019 \u8c03\u7528 boost . Python"},{"location":"demo/boost_python/#_1","text":"\u65b0\u5efa Cmake \u5de5\u7a0b \uff1b \u8f93\u5165 \u4ee5\u4e0b \u4ee3\u7801 \uff1a # include < boost / python . hpp > # include < boost / python / module . hpp > # include < boost / python / def . hpp > # include < boost / python / to _ python _ converter . hpp > # include < iostream > using namespace std ; void dummyFunc ( ) { cout < < \" call OK ! \" < < endl ; } int main ( ) { dummyFunc ( ) ; return 0 ; } \u5728 CMakeLists . txt \u4e2d \u6dfb\u52a0 \u5934 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 \u548c \u5e93 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 # \u6dfb\u52a0 \u5934 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 include _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / include \" ) include _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / include \" ) # \u6dfb\u52a0 \u5e93 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 link _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / libs \" ) # \u8fd8\u662f \u7f3a\u5c11 libboost _ python37 - vc142 - mt - gd - x64 - 1 _ 80 . lib link _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / lib _ no _ prefix \" ) \u5230 boost \u5b89\u88c5 \u76ee\u5f55 \u4e0b \uff0c \u8fdb\u5165 lib \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e0b \uff0c \u627e\u5230 \u524d\u7f00 \u662f libboost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib \u6587\u4ef6 \uff08 \u524d\u7f00 \u6709 lib \uff09 \uff0c \u5c06 \u5176 \u524d\u7f00 \u7684 lib \u5220\u9664 \u5373\u53ef \uff08 \u5373 \u547d\u540d \u91cd\u547d\u540d \u4e3a boost _ python37 - vc142 - mt - x64 - 1 _ 80 . lib \uff09 \u3002 \u751f\u6210 \u89e3\u51b3 \u65b9\u6848 \u89e3\u51b3\u65b9\u6848 \uff0c \u4f1a \u751f\u6210 exe \u6587\u4ef6 \uff0c \u5982\u679c \u4e0d \u53ef\u4ee5 \u5728 vs \u4e2d \u76f4\u63a5 \u6267\u884c \uff0c \u5c06 \u5de5\u5177 \u5de5\u5177\u680f \u4e2d \u7684 \u5f53\u524d \u6587\u6863 \u6539\u4e3a * . exe \u3002","title":"\u751f\u6210 \u53ef\u6267\u884c\u6587\u4ef6"},{"location":"demo/boost_python/#python","text":"\u65b0\u5efa hello _ exe . cpp \uff0c \u6ce8\u610f \u6587\u4ef6 \u6587\u4ef6\u540d \u5fc5\u987b \u4e3a \u6a21\u5757 \u540d \uff1a / / \u53c2\u8003 \uff1a https : / / developer . aliyun . com / article / 1260043 / / \u5f53 \u5f15\u5165 # include < boost / python / xxx > \u65f6 \uff0c Boost \u4f1a \u9ed8\u8ba4 \u94fe\u63a5 boost _ python \u52a8\u6001 \u94fe\u63a5 \u94fe\u63a5\u5e93 \u52a8\u6001\u94fe\u63a5\u5e93 \uff0c / / \u5982\u679c \u6211\u4eec \u60f3\u8981 \u94fe\u63a5 \u9759\u6001 \u94fe\u63a5 \u94fe\u63a5\u5e93 \uff0c \u5c31 \u9700\u8981 \u5728 include \u4e4b\u524d \u52a0\u4e0a # define BOOST _ PYTHON _ STATIC _ LIB / / \u6307\u5b9a \u94fe\u63a5 boost _ python \u7684 \u9759\u6001 \u5e93 \uff0c \u800c \u4e0d\u662f \u9ed8\u8ba4 \u7684 \u52a8\u6001 \u5e93 \u3002 # define BOOST _ PYTHON _ STATIC _ LIB # include < boost / python . hpp > # include < boost / python / module . hpp > # include < boost / python / def . hpp > # include < boost / python / to _ python _ converter . hpp > # include < iostream > using namespace std ; char const * greet ( ) { return \" hello , world \" ; } BOOST _ PYTHON _ MODULE ( hello _ ext ) { using namespace boost : : python ; def ( \" greet \" , greet ) ; } \u65b0\u5efa CMakeLists . txt \uff1a cmake _ minimum _ required ( VERSION 3.8 ) # \u6dfb\u52a0 \u5934 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 include _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / include \" ) include _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / include \" ) # \u6dfb\u52a0 \u5e93 \u6587\u4ef6 \u76ee\u5f55 \u6587\u4ef6\u76ee\u5f55 link _ directories ( \" C : / Users / Administrator / AppData / Local / Programs / Python / Python37 / libs \" ) # \u8fd8\u662f \u7f3a\u5c11 libboost _ python37 - vc142 - mt - gd - x64 - 1 _ 80 . lib link _ directories ( \" D : / work / workspace / carla / Build / boost - 1.80 . 0 - install / lib _ no _ prefix \" ) # \u5c06 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6dfb\u52a0 \u5230 \u6b64 \u9879\u76ee \u7684 \u6267\u884c \u884c\u6587 \u6587\u4ef6 \u53ef\u6267\u884c\u6587\u4ef6 \u3002 # add _ executable ( boost _ demo \" boost _ demo . cpp \" \" boost _ demo . h \" ) # # \u751f\u6210 \u52a8\u6001 \u5e93 ( \u5171\u4eab \u5e93 ) \u5171\u4eab \u5e93\u5219 \u53ea\u6709 \u4e00\u4e2a \u526f\u672c add _ library ( hello _ ext SHARED hello _ ext . cpp ) # ( boost _ demo \u662f \u5e93 \u7684 \u540d\u5b57 ) \uff0c \u8fd9 \u6761 \u547d\u4ee4 \u544a\u8bc9 cmake \uff0c \u6211\u4eec \u60f3 \u628a boost _ demo . cpp \u7f16\u8bd1 \u8bd1\u6210 \u7f16\u8bd1\u6210 \u4e00\u4e2a \u53eb\u4f5c \u201c boost _ demo \u201d \u7684 \u5e93 \u3002 set _ target _ properties ( hello _ ext PROPERTIES SUFFIX \" . pyd \" ) \u6784\u5efa \u540e \u4f1a \u751f\u6210 hello _ ext . pyd \u3002 \u5728 \u751f\u6210 \u7684 . pyd \u76ee\u5f55 \u4e0b \u65b0\u5efa hello . py import hello _ ext print ( hello _ ext . greet ( ) )","title":"\u751f\u6210 Python \u8c03\u7528 \u7684 \u5e93"},{"location":"scenario_runner/FAQ/","text":"\u7ecf\u5e38 \u95ee \u7684 \u95ee\u9898 \u5728 \u4ee3\u7406 \u5bfc\u822a \u4e2d \u6536\u5230 \u9519\u8bef \" TypeError : ' instancemethod ' object has no attribute ' getitem ' \" \u6b64 \u95ee\u9898 \u5f88 \u53ef\u80fd \u662f \u7531 Python Networkx \u5305 \u7684 \u8fc7\u65f6 \u7248\u672c \u5f15\u8d77 \u7684 \u3002 \u8bf7 \u5220\u9664 \u5f53\u524d \u5b89\u88c5 \uff08 \u4f8b\u5982 sudo apt - get remove python - networkx \uff09 \u5e76 \u4f7f\u7528 \u201c pip install -- user networkx = = 2.2 \u201d \u8fdb\u884c \u5b89\u88c5 \u3002 \u6ca1\u6709 \u53ef\u89c1 \u7684 \u573a\u666f \uff0c \u6211 \u6536\u5230 \u6d88\u606f \" No more scenarios .... Exiting \" \u5982\u679c \u60a8 \u6536\u5230 \u4ee5\u4e0b \u8f93\u51fa Preparing scenario : FollowLeadingVehicle _ 1 ScenarioManager : Running scenario FollowVehicle Resetting ego - vehicle ! Failure ! Resetting ego - vehicle ! ERROR : failed to destroy actor 527 : unable to destroy actor : not found No more scenarios .... Exiting \u5982\u679c \u60a8 \u6ca1\u6709 \u770b\u5230 \u4efb\u4f55 \u4e8b\u60c5 \u53d1\u751f \uff0c \u5f88 \u53ef\u80fd \u56e0\u4e3a \u662f\u56e0\u4e3a \u60a8 \u6ca1\u6709 \u542f\u52a8 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u7684 \u7a0b\u5e8f \u3002 \u8fd0\u884c \u4f8b\u5982 manual _ control . py \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u53d1\u751f \u4e86 \u4e00\u4e9b \u4e8b\u60c5 \u3002 \u4f7f\u7528 -- debug \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u65f6 \uff0c Scenario Runner \u9000\u51fa \u5e76 \u51fa\u73b0 \u9519\u8bef \u5982\u679c \u60a8 \u6536\u5230 \u4ee5\u4e0b \u8f93\u51fa UnicodeEncodeError : ' ascii ' codec can ' t encode character ' \\ u2713 ' in position 58 : ordinal not in range ( 128 ) \u8bf7 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf PYTHONIOENCODING = utf - 8","title":"\u7ecf\u5e38 \u95ee \u7684 \u95ee\u9898"},{"location":"scenario_runner/FAQ/#_1","text":"","title":"\u7ecf\u5e38 \u95ee \u7684 \u95ee\u9898"},{"location":"scenario_runner/FAQ/#typeerror-instancemethod-object-has-no-attribute-getitem","text":"\u6b64 \u95ee\u9898 \u5f88 \u53ef\u80fd \u662f \u7531 Python Networkx \u5305 \u7684 \u8fc7\u65f6 \u7248\u672c \u5f15\u8d77 \u7684 \u3002 \u8bf7 \u5220\u9664 \u5f53\u524d \u5b89\u88c5 \uff08 \u4f8b\u5982 sudo apt - get remove python - networkx \uff09 \u5e76 \u4f7f\u7528 \u201c pip install -- user networkx = = 2.2 \u201d \u8fdb\u884c \u5b89\u88c5 \u3002","title":"\u5728 \u4ee3\u7406 \u5bfc\u822a \u4e2d \u6536\u5230 \u9519\u8bef \" TypeError : ' instancemethod ' object has no attribute ' getitem ' \""},{"location":"scenario_runner/FAQ/#no-more-scenarios-exiting","text":"\u5982\u679c \u60a8 \u6536\u5230 \u4ee5\u4e0b \u8f93\u51fa Preparing scenario : FollowLeadingVehicle _ 1 ScenarioManager : Running scenario FollowVehicle Resetting ego - vehicle ! Failure ! Resetting ego - vehicle ! ERROR : failed to destroy actor 527 : unable to destroy actor : not found No more scenarios .... Exiting \u5982\u679c \u60a8 \u6ca1\u6709 \u770b\u5230 \u4efb\u4f55 \u4e8b\u60c5 \u53d1\u751f \uff0c \u5f88 \u53ef\u80fd \u56e0\u4e3a \u662f\u56e0\u4e3a \u60a8 \u6ca1\u6709 \u542f\u52a8 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u7684 \u7a0b\u5e8f \u3002 \u8fd0\u884c \u4f8b\u5982 manual _ control . py \uff0c \u60a8 \u73b0\u5728 \u5e94\u8be5 \u770b\u5230 \u53d1\u751f \u4e86 \u4e00\u4e9b \u4e8b\u60c5 \u3002","title":"\u6ca1\u6709 \u53ef\u89c1 \u7684 \u573a\u666f \uff0c \u6211 \u6536\u5230 \u6d88\u606f \" No more scenarios .... Exiting \""},{"location":"scenario_runner/FAQ/#-debug-scenario-runner","text":"\u5982\u679c \u60a8 \u6536\u5230 \u4ee5\u4e0b \u8f93\u51fa UnicodeEncodeError : ' ascii ' codec can ' t encode character ' \\ u2713 ' in position 58 : ordinal not in range ( 128 ) \u8bf7 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf PYTHONIOENCODING = utf - 8","title":"\u4f7f\u7528 -- debug \u547d\u4ee4\u884c \u53c2\u6570 \u65f6 \uff0c Scenario Runner \u9000\u51fa \u5e76 \u51fa\u73b0 \u9519\u8bef"},{"location":"scenario_runner/README_OpenSCENARIO_2.0/","text":"osc2 - runner \u6211\u4eec \u4f7f\u7528 OpenScenario 2.0 \u4f5c\u4e3a \u573a\u666f \u63cf\u8ff0 \u8ff0\u8bed \u8bed\u8a00 \u63cf\u8ff0\u8bed\u8a00 \u89c4\u8303 \uff0c \u8bbe\u8ba1 \u5e76 \u5b9e\u73b0 \u4e86 \u76f8\u5e94 \u7684 \u7f16\u8bd1 \u7cfb\u7edf \u7f16\u8bd1\u7cfb\u7edf \uff0c \u53ef\u4ee5 \u81ea\u52a8 \u5c06 \u7528 OpenScenario 2.0 \u63cf\u8ff0 \u7684 \u6d4b\u8bd5 \u573a\u666f \u8f6c\u6362 \u4e3a \u57fa\u4e8e scenario runner \u7684 \u6d4b\u8bd5 \u573a\u666f \uff0c \u4ece\u800c \u4f7f\u7528 carla \u8fdb\u884c \u81ea\u52a8 \u9a7e\u9a76 \u6d4b\u8bd5 \u3002 Installation 1 . \u5b89\u88c5 JDK sudo apt install openjdk - 17 - jdk \u786e\u8ba4 \u5b89\u88c5 \uff1a $ java - version \u8f93\u51fa \uff1a openjdk version \" 17.0 . 5 \" 2022 - 10 - 18 OpenJDK Runtime Environment ( build 17.0 . 5 + 8 - Ubuntu - 2ubuntu120.04 ) OpenJDK 64 - Bit Server VM ( build 17.0 . 5 + 8 - Ubuntu - 2ubuntu120.04 , mixed mode , sharing ) 3 \u3001 \u5b89\u88c5 Antlr 4.10 . 1 sudo apt install curl curl - O https : / / www . antlr . org / download / antlr - 4.10 . 1 - complete . jar \u5c06 . jar \u6587\u4ef6 \u653e\u5165 local / lib \u4e2d $ sudo cp antlr - 4.10 . 1 - complete . jar / usr / local / lib / \u4ee5\u4e0b \u4e09\u4e2a \u6b65\u9aa4 \u7528\u4e8e \u914d\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u5e76 \u521b\u5efa \u522b\u540d \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u8f7b\u677e \u5730 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 antlr4 \u3002 $ sudo gedit ~ / . bashrc \u5728 \u672b\u5c3e \u6dfb\u52a0 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a export CLASSPATH = \" . : / usr / local / lib / antlr - 4.10 . 1 - complete . jar : $ CLASSPATH \" alias antlr4 = ' java - jar / usr / local / lib / antlr - 4.10 . 1 - complete . jar ' alias grun = ' java org . antlr . v4 . gui . TestRig ' \u8fdb\u800c \uff1a source ~ / . bashrc \u5728 \u7ec8\u7aef \u8f93\u5165 antlr4 \u8fdb\u884c \u9a8c\u8bc1 \uff1a $ antlr4 ANTLR Parser Generator Version 4.10 . 1 - o ___ specify output directory where all output is generated - lib ___ specify location of grammars , tokens files - atn generate rule augmented transition network diagrams - encoding ___ specify grammar file encoding ; e . g . , euc - jp - message - format ___ specify output style for messages in antlr , gnu , vs2005 - long - messages show exception details when available for errors and warnings - listener generate parse tree listener ( default ) - no - listener don ' t generate parse tree listener - visitor generate parse tree visitor - no - visitor don ' t generate parse tree visitor ( default ) - package ___ specify a package / namespace for the generated code - depend generate file dependencies - D < option > = value set / override a grammar - level option - Werror treat warnings as errors - XdbgST launch StringTemplate visualizer on generated code - XdbgSTWait wait for STViz to close before continuing - Xforce - atn use the ATN simulator for all predictions - Xlog dump lots of logging info to antlr - timestamp . log - Xexact - output - dir all output goes into - o dir regardless of paths / package 4 \u3001 \u5b89\u88c5 antlr4 \u8fd0\u884c \u65f6 pip install antlr4 - python3 - runtime = = 4.10 5 \u3001 \u5b89\u88c5 python \u4f9d\u8d56 pip install - r requirements . txt 6 \u3001 \u5b89\u88c5 graphviz sudo apt - get install graphviz 7 \u3001 \u914d\u7f6e carla ( 1 ) \u4e0b\u8f7d carla \u7248\u672c ( 2 ) \u5c06 carla \u5b89\u88c5 \u5b89\u88c5\u5305 \u89e3\u538b \u5230 \u67d0\u4e2a \u76ee\u5f55 \u3002 \u5728 Ubuntu \u7cfb\u7edf \u4e0a \uff0c Carla \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u914d\u7f6e \u5982\u4e0b \uff1a export CARLA _ ROOT = / home / dut - aiid / CARLA _ 0.9 . 13 export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - 0.9 . 13 - py3.7 - linux - x86 _ 64 . egg : $ { CARLA _ ROOT } / PythonAPI / carla / agents : $ { CARLA _ ROOT } / PythonAPI / carla / agents / navigation : $ { CARLA _ ROOT } / PythonAPI / carla : $ { CARLA _ ROOT } / PythonAPI / examples : $ { CARLA _ ROOT } / PythonAPI \u5feb\u901f \u5f00\u59cb 1 \u3001 \u8fd0\u884c carla cd / home / xxx / CARLA _ 0.9 . 13 . / CarlaUE4 . sh 2 \u3001 \u542f\u52a8 manual _ control python manual _ control . py - a -- rolename = ego _ vehicle 3 \u3001 \u8fd0\u884c OpenSCENARIO 2.0 \u573a\u666f python scenario _ runner . py -- sync -- openscenario2 srunner / examples / cut _ in _ and _ slow _ right . osc -- reloadWorld","title":"osc2 - runner"},{"location":"scenario_runner/README_OpenSCENARIO_2.0/#osc2-runner","text":"\u6211\u4eec \u4f7f\u7528 OpenScenario 2.0 \u4f5c\u4e3a \u573a\u666f \u63cf\u8ff0 \u8ff0\u8bed \u8bed\u8a00 \u63cf\u8ff0\u8bed\u8a00 \u89c4\u8303 \uff0c \u8bbe\u8ba1 \u5e76 \u5b9e\u73b0 \u4e86 \u76f8\u5e94 \u7684 \u7f16\u8bd1 \u7cfb\u7edf \u7f16\u8bd1\u7cfb\u7edf \uff0c \u53ef\u4ee5 \u81ea\u52a8 \u5c06 \u7528 OpenScenario 2.0 \u63cf\u8ff0 \u7684 \u6d4b\u8bd5 \u573a\u666f \u8f6c\u6362 \u4e3a \u57fa\u4e8e scenario runner \u7684 \u6d4b\u8bd5 \u573a\u666f \uff0c \u4ece\u800c \u4f7f\u7528 carla \u8fdb\u884c \u81ea\u52a8 \u9a7e\u9a76 \u6d4b\u8bd5 \u3002","title":"osc2 - runner"},{"location":"scenario_runner/README_OpenSCENARIO_2.0/#installation","text":"1 . \u5b89\u88c5 JDK sudo apt install openjdk - 17 - jdk \u786e\u8ba4 \u5b89\u88c5 \uff1a $ java - version \u8f93\u51fa \uff1a openjdk version \" 17.0 . 5 \" 2022 - 10 - 18 OpenJDK Runtime Environment ( build 17.0 . 5 + 8 - Ubuntu - 2ubuntu120.04 ) OpenJDK 64 - Bit Server VM ( build 17.0 . 5 + 8 - Ubuntu - 2ubuntu120.04 , mixed mode , sharing ) 3 \u3001 \u5b89\u88c5 Antlr 4.10 . 1 sudo apt install curl curl - O https : / / www . antlr . org / download / antlr - 4.10 . 1 - complete . jar \u5c06 . jar \u6587\u4ef6 \u653e\u5165 local / lib \u4e2d $ sudo cp antlr - 4.10 . 1 - complete . jar / usr / local / lib / \u4ee5\u4e0b \u4e09\u4e2a \u6b65\u9aa4 \u7528\u4e8e \u914d\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u5e76 \u521b\u5efa \u522b\u540d \uff0c \u4ee5\u4fbf \u53ef\u4ee5 \u8f7b\u677e \u5730 \u4ece \u547d\u4ee4 \u547d\u4ee4\u884c \u4f7f\u7528 antlr4 \u3002 $ sudo gedit ~ / . bashrc \u5728 \u672b\u5c3e \u6dfb\u52a0 \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \uff1a export CLASSPATH = \" . : / usr / local / lib / antlr - 4.10 . 1 - complete . jar : $ CLASSPATH \" alias antlr4 = ' java - jar / usr / local / lib / antlr - 4.10 . 1 - complete . jar ' alias grun = ' java org . antlr . v4 . gui . TestRig ' \u8fdb\u800c \uff1a source ~ / . bashrc \u5728 \u7ec8\u7aef \u8f93\u5165 antlr4 \u8fdb\u884c \u9a8c\u8bc1 \uff1a $ antlr4 ANTLR Parser Generator Version 4.10 . 1 - o ___ specify output directory where all output is generated - lib ___ specify location of grammars , tokens files - atn generate rule augmented transition network diagrams - encoding ___ specify grammar file encoding ; e . g . , euc - jp - message - format ___ specify output style for messages in antlr , gnu , vs2005 - long - messages show exception details when available for errors and warnings - listener generate parse tree listener ( default ) - no - listener don ' t generate parse tree listener - visitor generate parse tree visitor - no - visitor don ' t generate parse tree visitor ( default ) - package ___ specify a package / namespace for the generated code - depend generate file dependencies - D < option > = value set / override a grammar - level option - Werror treat warnings as errors - XdbgST launch StringTemplate visualizer on generated code - XdbgSTWait wait for STViz to close before continuing - Xforce - atn use the ATN simulator for all predictions - Xlog dump lots of logging info to antlr - timestamp . log - Xexact - output - dir all output goes into - o dir regardless of paths / package 4 \u3001 \u5b89\u88c5 antlr4 \u8fd0\u884c \u65f6 pip install antlr4 - python3 - runtime = = 4.10 5 \u3001 \u5b89\u88c5 python \u4f9d\u8d56 pip install - r requirements . txt 6 \u3001 \u5b89\u88c5 graphviz sudo apt - get install graphviz 7 \u3001 \u914d\u7f6e carla ( 1 ) \u4e0b\u8f7d carla \u7248\u672c ( 2 ) \u5c06 carla \u5b89\u88c5 \u5b89\u88c5\u5305 \u89e3\u538b \u5230 \u67d0\u4e2a \u76ee\u5f55 \u3002 \u5728 Ubuntu \u7cfb\u7edf \u4e0a \uff0c Carla \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u914d\u7f6e \u5982\u4e0b \uff1a export CARLA _ ROOT = / home / dut - aiid / CARLA _ 0.9 . 13 export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - 0.9 . 13 - py3.7 - linux - x86 _ 64 . egg : $ { CARLA _ ROOT } / PythonAPI / carla / agents : $ { CARLA _ ROOT } / PythonAPI / carla / agents / navigation : $ { CARLA _ ROOT } / PythonAPI / carla : $ { CARLA _ ROOT } / PythonAPI / examples : $ { CARLA _ ROOT } / PythonAPI","title":"Installation"},{"location":"scenario_runner/README_OpenSCENARIO_2.0/#_1","text":"1 \u3001 \u8fd0\u884c carla cd / home / xxx / CARLA _ 0.9 . 13 . / CarlaUE4 . sh 2 \u3001 \u542f\u52a8 manual _ control python manual _ control . py - a -- rolename = ego _ vehicle 3 \u3001 \u8fd0\u884c OpenSCENARIO 2.0 \u573a\u666f python scenario _ runner . py -- sync -- openscenario2 srunner / examples / cut _ in _ and _ slow _ right . osc -- reloadWorld","title":"\u5feb\u901f \u5f00\u59cb"},{"location":"scenario_runner/agent_evaluation/","text":"\u8bbe\u7f6e \u60a8 \u7684 \u667a\u80fd \u4f53\u4ee5 \u8fdb\u884c \u8bc4\u4f30 \u91cd\u8981 \u63d0\u793a \uff1a \u6b64 \u4fe1\u606f \u5df2 \u8fc7\u65f6 \uff0c \u6311\u6218 \u6587\u4ef6 \u5df2 \u88ab \u5220\u9664 \u3002 \u8be5 \u529f\u80fd \u73b0\u5df2 \u79fb\u81f3 \u6392\u884c \u6392\u884c\u699c \u3002 \u4f46\u662f \uff0c \u5b83 \u4ecd\u7136 \u53ef\u4ee5 \u4e0e scene _ runner . py \u7684 \u8def\u7531 \u53c2\u6570 \u4e00\u8d77 \u4f7f\u7528 \uff0c \u800c \u4e0d\u662f \u4e0e challenge _ evaluator . py \u4e00\u8d77 \u4f7f\u7528 \u8981 \u8ba9 \u6311\u6218 \u8bc4\u4f30 \u7cfb\u7edf \u8bc4\u4f30 \u60a8 \u7684 \u4ee3\u7406 \uff0c \u60a8 \u5fc5\u987b \u5b9a\u4e49 \u7ee7\u627f AutonomousAgent \u57fa\u7c7b \u7684 Agent \u7c7b \u3002 \u6b64\u5916 \uff0c \u60a8 \u9700\u8981 \u6309\u7167 \u6311\u6218 \u8bc4\u4f30 \u8bc4\u4f30\u5668 \u6559\u7a0b \u4e2d \u7684 \u8bf4\u660e \u8bbe\u7f6e \u73af\u5883 \u3002 \u5728 \u60a8 \u7684 \u4ee3\u7406 \u7c7b\u4e0a \uff0c \u9700\u8981 \u5b9a\u4e49 \u4e09\u4e2a \u4e3b\u8981 \u51fd\u6570 \u6765 \u8986\u76d6 \u5b83\u4eec \uff0c \u4ee5\u4fbf \u8bbe\u7f6e \u4ee3\u7406 \u8fd0\u884c \u3002 \u6b64\u5916 \uff0c \u60a8 \u8fd8 \u5e94\u8be5 \u8003\u8651 \u6700\u521d \u8bbe\u7f6e \u4e3a \u53d8\u91cf \u7684 \u76ee\u6807 \u8def\u5f84 \u3002 \" setup \" \u51fd\u6570 : \u60a8 \u5e94\u8be5 \u5728 \u8be5 \u529f\u80fd \u4e2d\u4e3a \u4ee3\u7406 \u8fdb\u884c \u6240\u6709 \u5fc5\u8981 \u7684 \u8bbe\u7f6e \u3002 \u8be5 \u51fd\u6570 \u63a5\u6536 \u8981 \u7531 \u7528\u6237 \u89e3\u6790 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u8def\u5f84 \u4f5c\u4e3a \u53c2\u6570 \u3002 \u6267\u884c \u201c challenge _ evaluator . py \u201d \u65f6 \uff0c \u60a8 \u5e94\u8be5 \u5c06 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u8def\u5f84 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u3002 \u4f8b\u5982 \uff1a python srunner / challenge / challenge _ evaluator _ routes . py -- agent = < path _ to _ my _ agent > -- config = myconfigfilename . format \" sensors \" \u51fd\u6570 : \u60a8 \u53ef\u4ee5 \u5728 \u6b64 \u529f\u80fd \u4e2d \u8bbe\u7f6e \u4ee3\u7406 \u6240 \u9700 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4f8b\u5982 \uff0c \u5728 \u865a\u62df \u4ee3\u7406 \u793a\u4f8b \u7c7b\u4e0a \u5b9a\u4e49 \u4e86 \u4ee5\u4e0b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a def sensors ( self ) : sensors = [ { ' type ' : ' sensor . camera . rgb ' , ' x ' : 0.7 , ' y ' : 0.0 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : 0.0 , ' width ' : 800 , ' height ' : 600 , ' fov ' : 100 , ' id ' : ' Center ' } , { ' type ' : ' sensor . camera . rgb ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 , ' width ' : 800 , ' height ' : 600 , ' fov ' : 100 , ' id ' : ' Left ' } , { ' type ' : ' sensor . camera . rgb ' , ' x ' : 0.7 , ' y ' : 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : 45.0 , ' width ' : 800 , ' height ' : 600 , ' fov ' : 100 , ' id ' : ' Right ' } , { ' type ' : ' sensor . lidar . ray _ cast ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 , ' id ' : ' LIDAR ' } , { ' type ' : ' sensor . other . gnss ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' id ' : ' GPS ' } , { ' type ' : ' sensor . speedometer ' , ' reading _ frequency ' : 25 , ' id ' : ' speed ' } ] return sensors \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u662f \u4e00\u672c \u5b57\u5178 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u5176\u4e2d \u6307\u5b9a \uff1a type : \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u8981 \u6dfb\u52a0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f8b\u5982 \uff1a \u201c sensor . camera . rgb \u201d \u8868\u793a RGB \u76f8\u673a \uff0c \u201c sensor . lidar . ray _ cast \u201d \u8868\u793a \u5149\u7ebf \u6295\u5c04 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 id : \u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u7684 \u6807\u7b7e \uff0c \u4ee5\u4fbf \u7a0d\u540e \u8bbf\u95ee \u3002 \u5176\u4ed6 \u53c2\u6570 \uff1a \u8fd9\u4e9b \u53c2\u6570 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f8b\u5982 \u4f4d\u7f6e \u201c x \u201d \u548c \u201c y \u201d \uff0c \u6216 \u76f8\u673a \u7684 \u89c6\u91ce \u201c fov \u201d \" run _ step \" \u51fd\u6570 : \u4ece \u6311\u6218 \u8bc4\u4f30 \u5f00\u59cb \uff0c \u4eff\u771f \u7684 \u6bcf\u4e2a \u6b65\u9aa4 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \uff0c \u5e76 \u63a5\u6536 \u4e00\u4e9b \u8f93\u5165 \u6570\u636e \u4f5c\u4e3a \u53c2\u6570 \u3002 \u8be5 \u8f93\u5165 \u6570\u636e \u662f \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u5305\u542b \u201c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u201d \u51fd\u6570 \u4e2d \u6307\u5b9a \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6b64 \u51fd\u6570 \u5e94 \u8fd4\u56de \u8981 \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u63a7\u5236 \u3002 \u521d\u59cb \u8def\u7ebf : \u5728 \u6267\u884c \u5f00\u59cb \u65f6 \uff0c \u82f1\u96c4 \u4ee3\u7406 \u5e94\u8be5 \u884c\u9a76 \u7684 \u6574\u4e2a \u8def\u7ebf \u662f \u5728 \u201c self . global _ plan \u201d \u53d8\u91cf \u4e0a \u8bbe\u7f6e \u7684 \uff1a [ ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002271601998707 } , < RoadOption . LANEFOLLOW : 4 > ) , ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002709765148996 } , < RoadOption . LANEFOLLOW : 4 > ) , ... ( { ' z ' : 0.0 , ' lat ' : 48.99822679980298 , ' lon ' : 8.002735250105061 } , < RoadOption . LANEFOLLOW : 4 > ) ] ` \u5b83 \u8868\u793a \u4e3a \u5143\u7ec4 \u5217\u8868 \uff0c \u5305\u542b \u4ee5 \u7eac\u5ea6 \u548c \u7ecf\u5ea6 \u8868\u793a \u7684 \u8def\u7ebf \u822a\u70b9 \u4ee5\u53ca \u5efa\u8bae \u7684 \u5f53\u524d \u9053\u8def \u9009\u9879 \u3002 \u5bf9\u4e8e \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \uff0c \u9009\u9879 \u53ef\u4ee5 \u662f \u76f4\u884c \u3001 \u5de6\u8f6c \u6216 \u53f3\u8f6c \u3002 \u5bf9\u4e8e \u8def\u7ebf \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \uff0c \u5efa\u8bae \u9009\u62e9 \u8f66\u9053 \u8ddf\u968f \u3002","title":"Agent evaluation"},{"location":"scenario_runner/agent_evaluation/#_1","text":"","title":"\u8bbe\u7f6e \u60a8 \u7684 \u667a\u80fd \u4f53\u4ee5 \u8fdb\u884c \u8bc4\u4f30"},{"location":"scenario_runner/agent_evaluation/#scene_runnerpy-challenge_evaluatorpy","text":"\u8981 \u8ba9 \u6311\u6218 \u8bc4\u4f30 \u7cfb\u7edf \u8bc4\u4f30 \u60a8 \u7684 \u4ee3\u7406 \uff0c \u60a8 \u5fc5\u987b \u5b9a\u4e49 \u7ee7\u627f AutonomousAgent \u57fa\u7c7b \u7684 Agent \u7c7b \u3002 \u6b64\u5916 \uff0c \u60a8 \u9700\u8981 \u6309\u7167 \u6311\u6218 \u8bc4\u4f30 \u8bc4\u4f30\u5668 \u6559\u7a0b \u4e2d \u7684 \u8bf4\u660e \u8bbe\u7f6e \u73af\u5883 \u3002 \u5728 \u60a8 \u7684 \u4ee3\u7406 \u7c7b\u4e0a \uff0c \u9700\u8981 \u5b9a\u4e49 \u4e09\u4e2a \u4e3b\u8981 \u51fd\u6570 \u6765 \u8986\u76d6 \u5b83\u4eec \uff0c \u4ee5\u4fbf \u8bbe\u7f6e \u4ee3\u7406 \u8fd0\u884c \u3002 \u6b64\u5916 \uff0c \u60a8 \u8fd8 \u5e94\u8be5 \u8003\u8651 \u6700\u521d \u8bbe\u7f6e \u4e3a \u53d8\u91cf \u7684 \u76ee\u6807 \u8def\u5f84 \u3002","title":"\u91cd\u8981 \u63d0\u793a \uff1a \u6b64 \u4fe1\u606f \u5df2 \u8fc7\u65f6 \uff0c \u6311\u6218 \u6587\u4ef6 \u5df2 \u88ab \u5220\u9664 \u3002 \u8be5 \u529f\u80fd \u73b0\u5df2 \u79fb\u81f3 \u6392\u884c\u699c \u3002 \u4f46\u662f \uff0c \u5b83 \u4ecd\u7136 \u53ef\u4ee5 \u4e0e scene _ runner . py \u7684 \u8def\u7531 \u53c2\u6570 \u4e00\u8d77 \u4f7f\u7528 \uff0c \u800c \u4e0d\u662f \u4e0e challenge _ evaluator . py \u4e00\u8d77 \u4f7f\u7528"},{"location":"scenario_runner/agent_evaluation/#setup","text":"\u60a8 \u5e94\u8be5 \u5728 \u8be5 \u529f\u80fd \u4e2d\u4e3a \u4ee3\u7406 \u8fdb\u884c \u6240\u6709 \u5fc5\u8981 \u7684 \u8bbe\u7f6e \u3002 \u8be5 \u51fd\u6570 \u63a5\u6536 \u8981 \u7531 \u7528\u6237 \u89e3\u6790 \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u7684 \u8def\u5f84 \u4f5c\u4e3a \u53c2\u6570 \u3002 \u6267\u884c \u201c challenge _ evaluator . py \u201d \u65f6 \uff0c \u60a8 \u5e94\u8be5 \u5c06 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u8def\u5f84 \u4f5c\u4e3a \u53c2\u6570 \u6570\u4f20 \u4f20\u9012 \u53c2\u6570\u4f20\u9012 \u3002 \u4f8b\u5982 \uff1a python srunner / challenge / challenge _ evaluator _ routes . py -- agent = < path _ to _ my _ agent > -- config = myconfigfilename . format","title":"\" setup \" \u51fd\u6570 :"},{"location":"scenario_runner/agent_evaluation/#sensors","text":"\u60a8 \u53ef\u4ee5 \u5728 \u6b64 \u529f\u80fd \u4e2d \u8bbe\u7f6e \u4ee3\u7406 \u6240 \u9700 \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u4f8b\u5982 \uff0c \u5728 \u865a\u62df \u4ee3\u7406 \u793a\u4f8b \u7c7b\u4e0a \u5b9a\u4e49 \u4e86 \u4ee5\u4e0b \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff1a def sensors ( self ) : sensors = [ { ' type ' : ' sensor . camera . rgb ' , ' x ' : 0.7 , ' y ' : 0.0 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : 0.0 , ' width ' : 800 , ' height ' : 600 , ' fov ' : 100 , ' id ' : ' Center ' } , { ' type ' : ' sensor . camera . rgb ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 , ' width ' : 800 , ' height ' : 600 , ' fov ' : 100 , ' id ' : ' Left ' } , { ' type ' : ' sensor . camera . rgb ' , ' x ' : 0.7 , ' y ' : 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : 45.0 , ' width ' : 800 , ' height ' : 600 , ' fov ' : 100 , ' id ' : ' Right ' } , { ' type ' : ' sensor . lidar . ray _ cast ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' roll ' : 0.0 , ' pitch ' : 0.0 , ' yaw ' : - 45.0 , ' id ' : ' LIDAR ' } , { ' type ' : ' sensor . other . gnss ' , ' x ' : 0.7 , ' y ' : - 0.4 , ' z ' : 1.60 , ' id ' : ' GPS ' } , { ' type ' : ' sensor . speedometer ' , ' reading _ frequency ' : 25 , ' id ' : ' speed ' } ] return sensors \u6bcf\u4e2a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u90fd \u662f \u4e00\u672c \u5b57\u5178 \uff0c \u60a8 \u5e94\u8be5 \u5728 \u5176\u4e2d \u6307\u5b9a \uff1a type : \u57fa\u672c \u57fa\u672c\u4e0a \u662f \u8981 \u6dfb\u52a0 \u7684 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f8b\u5982 \uff1a \u201c sensor . camera . rgb \u201d \u8868\u793a RGB \u76f8\u673a \uff0c \u201c sensor . lidar . ray _ cast \u201d \u8868\u793a \u5149\u7ebf \u6295\u5c04 \u6fc0\u5149 \u96f7\u8fbe \u6fc0\u5149\u96f7\u8fbe \u3002 id : \u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u63d0\u4f9b \u7684 \u6807\u7b7e \uff0c \u4ee5\u4fbf \u7a0d\u540e \u8bbf\u95ee \u3002 \u5176\u4ed6 \u53c2\u6570 \uff1a \u8fd9\u4e9b \u53c2\u6570 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \uff0c \u4f8b\u5982 \u4f4d\u7f6e \u201c x \u201d \u548c \u201c y \u201d \uff0c \u6216 \u76f8\u673a \u7684 \u89c6\u91ce \u201c fov \u201d","title":"\" sensors \" \u51fd\u6570 :"},{"location":"scenario_runner/agent_evaluation/#run_step","text":"\u4ece \u6311\u6218 \u8bc4\u4f30 \u5f00\u59cb \uff0c \u4eff\u771f \u7684 \u6bcf\u4e2a \u6b65\u9aa4 \u90fd \u4f1a \u8c03\u7528 \u6b64 \u51fd\u6570 \uff0c \u5e76 \u63a5\u6536 \u4e00\u4e9b \u8f93\u5165 \u6570\u636e \u4f5c\u4e3a \u53c2\u6570 \u3002 \u8be5 \u8f93\u5165 \u6570\u636e \u662f \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u5305\u542b \u201c \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u201d \u51fd\u6570 \u4e2d \u6307\u5b9a \u7684 \u6240\u6709 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u3002 \u6b64 \u51fd\u6570 \u5e94 \u8fd4\u56de \u8981 \u5e94\u7528 \u4e8e \u81ea\u6211 \u8f66\u8f86 \u7684 \u8f66\u8f86 \u63a7\u5236 \u3002","title":"\" run _ step \" \u51fd\u6570 :"},{"location":"scenario_runner/agent_evaluation/#_2","text":"\u5728 \u6267\u884c \u5f00\u59cb \u65f6 \uff0c \u82f1\u96c4 \u4ee3\u7406 \u5e94\u8be5 \u884c\u9a76 \u7684 \u6574\u4e2a \u8def\u7ebf \u662f \u5728 \u201c self . global _ plan \u201d \u53d8\u91cf \u4e0a \u8bbe\u7f6e \u7684 \uff1a [ ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002271601998707 } , < RoadOption . LANEFOLLOW : 4 > ) , ( { ' z ' : 0.0 , ' lat ' : 48.99822669411668 , ' lon ' : 8.002709765148996 } , < RoadOption . LANEFOLLOW : 4 > ) , ... ( { ' z ' : 0.0 , ' lat ' : 48.99822679980298 , ' lon ' : 8.002735250105061 } , < RoadOption . LANEFOLLOW : 4 > ) ] ` \u5b83 \u8868\u793a \u4e3a \u5143\u7ec4 \u5217\u8868 \uff0c \u5305\u542b \u4ee5 \u7eac\u5ea6 \u548c \u7ecf\u5ea6 \u8868\u793a \u7684 \u8def\u7ebf \u822a\u70b9 \u4ee5\u53ca \u5efa\u8bae \u7684 \u5f53\u524d \u9053\u8def \u9009\u9879 \u3002 \u5bf9\u4e8e \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \uff0c \u9009\u9879 \u53ef\u4ee5 \u662f \u76f4\u884c \u3001 \u5de6\u8f6c \u6216 \u53f3\u8f6c \u3002 \u5bf9\u4e8e \u8def\u7ebf \u7684 \u5176\u4f59 \u4f59\u90e8 \u90e8\u5206 \u5176\u4f59\u90e8\u5206 \uff0c \u5efa\u8bae \u9009\u62e9 \u8f66\u9053 \u8ddf\u968f \u3002","title":"\u521d\u59cb \u8def\u7ebf :"},{"location":"scenario_runner/creating_new_scenario/","text":"\u521b\u5efa \u65b0 \u573a\u666f \u6559\u7a0b \u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 ScenarioRunner \u548c ScenarioManager \u5957\u4ef6 \u521b\u5efa \u548c \u8fd0\u884c \u65b0 \u573a\u666f \u3002 \u6211\u4eec \u5c06 \u65b0 \u573a\u666f \u79f0\u4e3a NewScenario \u3002 \u8981 \u521b\u5efa \u5b83 \uff0c \u53ea \u9700\u8981 \u51e0\u4e2a \u6b65\u9aa4 \u3002 \u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 Python \u7c7b \u8f6c \u5230 Scenarios \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u4f7f\u7528 \u65b0 Python \u6587\u4ef6 \u4e2d \u7684 NewScenario \u540d\u79f0 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 Python \u7c7b new _ scenario . py \u3002 \u7c7b \u5e94\u8be5 \u4ece BasicScenario \u7c7b \u6d3e\u751f \u3002 \u7ed3\u679c \uff0c \u8be5\u7c7b \u5e94 \u5982\u4e0b \u6240\u793a \uff1a class NewScenario ( BasicScenario ) : \" \" \" Some documentation on NewScenario : param world is the CARLA world : param ego _ vehicles is a list of ego vehicles for this scenario : param config is the scenario configuration ( ScenarioConfiguration ) : param randomize can be used to select parameters randomly ( optional , default = False ) : param debug _ mode can be used to provide more comprehensive console output ( optional , default = False ) : param criteria _ enable can be used to disable / enable scenario evaluation based on test criteria ( optional , default = True ) : param timeout is the overall scenario timeout ( optional , default = 60 seconds ) \" \" \" # some ego vehicle parameters # some parameters for the other vehicles def __ init __ ( self , world , ego _ vehicles , config , randomize = False , debug _ mode = False , criteria _ enable = True , timeout = 60 ) : \" \" \" Initialize all parameters required for NewScenario \" \" \" # Call constructor of BasicScenario super ( NewScenario , self ) .__ init __ ( \" NewScenario \" , ego _ vehicles , config , world , debug _ mode , criteria _ enable = criteria _ enable ) def _ create _ behavior ( self ) : \" \" \" Setup the behavior for NewScenario \" \" \" def _ create _ test _ criteria ( self ) : \" \" \" Setup the evaluation criteria for NewScenario \" \" \" \u586b\u5145 Python \u7c7b \u5728 NewScenario \u7c7b\u4e2d \uff0c \u60a8 \u5fc5\u987b \u5b9a\u4e49 \u4ee3\u7801 \u793a\u4f8b \u4e2d \u63d0\u5230 \u7684 \u4ee5\u4e0b \u65b9\u6cd5 \u3002 \u521d\u59cb \u521d\u59cb\u5316 \u65b9\u6cd5 \u521d\u59cb \u521d\u59cb\u5316 \u65b9\u6cd5 \u65e8\u5728 \u8bbe\u7f6e \u573a\u666f \u548c \u6240\u6709 \u8f66\u8f86 \u6240 \u9700 \u7684 \u6240\u6709 \u53c2\u6570 \u3002 \u8fd9 \u5305\u62ec \u9009\u62e9 \u6b63\u786e \u7684 \u8f66\u8f86 \u3001 \u5728 \u6b63\u786e \u7684 \u4f4d\u7f6e \u751f\u6210 \u5b83\u4eec \u7b49 \u3002 \u4e3a\u4e86 \u7b80\u5316 \u8fd9 \u4e00\u70b9 \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u4f7f\u7528 basic _ scenario . py \u4e2d \u5b9a\u4e49 \u7684 setup _ vehicle ( ) \u65b9\u6cd5 \u3002 CreateBehavior \u65b9\u6cd5 \u6b64 \u65b9\u6cd5 \u5e94 \u8bbe\u7f6e \u5305\u542b \u573a\u666f \u671f\u95f4 \u6240\u6709 \u975e \u81ea\u6211 \u8f66\u8f86 \u884c\u4e3a \u7684 \u884c\u4e3a \u6811 \u3002 \u884c\u4e3a \u6811 \u5e94\u8be5 \u4f7f\u7528 atomic _ scenario _ behavior . py \u548c atomic _ scenario _ behavior . py \u4e2d \u5b9a\u4e49 \u7684 \u539f\u5b50 \u884c\u4e3a \u3002 CreateTestCriteria \u65b9\u6cd5 \u6b64 \u65b9\u6cd5 \u5e94 \u8bbe\u7f6e \u4e00\u4e2a \u5305\u542b \u573a\u666f \u7684 \u6240\u6709 \u8bc4\u4f30 \u6807\u51c6 \u7684 \u5217\u8868 \u3002 \u8be5 \u6807\u51c6 \u5e94 \u57fa\u4e8e atomic _ scenario _ criteria . py \u4e2d \u5b9a\u4e49 \u7684 \u539f\u5b50 \u6807\u51c6 \u3002 \u6ce8\u610f : \u4ece\u6b64 \u5217\u8868 py _ tree \u4e2d\u5c06 \u81ea\u52a8 \u521b\u5efa \u5e76\u884c \uff01 \u6dfb\u52a0 \u573a\u666f \u914d\u7f6e \u6700\u540e \uff0c \u573a\u666f \u914d\u7f6e \u5e94 \u6dfb\u52a0 \u5230 \u8be5 examples / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5982\u679c \u6269\u5c55 \u5df2\u7ecf \u5b58\u5728 \u7684 \u573a\u666f \u6a21\u5757 \uff0c \u5219 \u53ea \u9700 \u6269\u5c55 \u76f8\u5e94 \u7684 XML \uff0c \u5426\u5219 \u6dfb\u52a0 \u65b0 \u7684 XML \u6587\u4ef6 \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u4efb\u4f55 \u73b0\u6709 \u7684 XML \u6587\u4ef6 \u4f5c\u4e3a \u84dd\u56fe \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u4e00\u4e2a \u573a\u666f \u6dfb\u52a0 \u591a\u4e2a \u81ea\u6211 \u8f66\u8f86 \uff0c \u8bf7 \u786e\u4fdd \u5b83\u4eec \u4f7f\u7528 \u4e0d\u540c \u7684 \u89d2\u8272 \u540d\u79f0 \uff0c \u4f8b\u5982 < scenario name = \" MultiEgoTown03 \" type = \" FreeRide \" town = \" Town03 \" > < ego _ vehicle x = \" 207 \" y = \" 59 \" z = \" 0 \" yaw = \" 180 \" model = \" vehicle . lincoln . mkz _ 2017 \" rolename = \" hero \" / > < ego _ vehicle x = \" 237 \" y = \" - 95.0754252474 \" z = \" 0 \" yaw = \" 90 \" model = \" vehicle . tesla . model3 \" rolename = \" hero2 \" / > < / scenario >","title":"\u521b\u5efa \u65b0 \u573a\u666f \u6559\u7a0b"},{"location":"scenario_runner/creating_new_scenario/#_1","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4f7f\u7528 ScenarioRunner \u548c ScenarioManager \u5957\u4ef6 \u521b\u5efa \u548c \u8fd0\u884c \u65b0 \u573a\u666f \u3002 \u6211\u4eec \u5c06 \u65b0 \u573a\u666f \u79f0\u4e3a NewScenario \u3002 \u8981 \u521b\u5efa \u5b83 \uff0c \u53ea \u9700\u8981 \u51e0\u4e2a \u6b65\u9aa4 \u3002","title":"\u521b\u5efa \u65b0 \u573a\u666f \u6559\u7a0b"},{"location":"scenario_runner/creating_new_scenario/#python","text":"\u8f6c \u5230 Scenarios \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5e76 \u4f7f\u7528 \u65b0 Python \u6587\u4ef6 \u4e2d \u7684 NewScenario \u540d\u79f0 \u521b\u5efa \u4e00\u4e2a \u65b0 \u7684 Python \u7c7b new _ scenario . py \u3002 \u7c7b \u5e94\u8be5 \u4ece BasicScenario \u7c7b \u6d3e\u751f \u3002 \u7ed3\u679c \uff0c \u8be5\u7c7b \u5e94 \u5982\u4e0b \u6240\u793a \uff1a class NewScenario ( BasicScenario ) : \" \" \" Some documentation on NewScenario : param world is the CARLA world : param ego _ vehicles is a list of ego vehicles for this scenario : param config is the scenario configuration ( ScenarioConfiguration ) : param randomize can be used to select parameters randomly ( optional , default = False ) : param debug _ mode can be used to provide more comprehensive console output ( optional , default = False ) : param criteria _ enable can be used to disable / enable scenario evaluation based on test criteria ( optional , default = True ) : param timeout is the overall scenario timeout ( optional , default = 60 seconds ) \" \" \" # some ego vehicle parameters # some parameters for the other vehicles def __ init __ ( self , world , ego _ vehicles , config , randomize = False , debug _ mode = False , criteria _ enable = True , timeout = 60 ) : \" \" \" Initialize all parameters required for NewScenario \" \" \" # Call constructor of BasicScenario super ( NewScenario , self ) .__ init __ ( \" NewScenario \" , ego _ vehicles , config , world , debug _ mode , criteria _ enable = criteria _ enable ) def _ create _ behavior ( self ) : \" \" \" Setup the behavior for NewScenario \" \" \" def _ create _ test _ criteria ( self ) : \" \" \" Setup the evaluation criteria for NewScenario \" \" \"","title":"\u521b\u5efa \u4e00\u4e2a \u7a7a \u7684 Python \u7c7b"},{"location":"scenario_runner/creating_new_scenario/#python_1","text":"\u5728 NewScenario \u7c7b\u4e2d \uff0c \u60a8 \u5fc5\u987b \u5b9a\u4e49 \u4ee3\u7801 \u793a\u4f8b \u4e2d \u63d0\u5230 \u7684 \u4ee5\u4e0b \u65b9\u6cd5 \u3002","title":"\u586b\u5145 Python \u7c7b"},{"location":"scenario_runner/creating_new_scenario/#_2","text":"\u521d\u59cb \u521d\u59cb\u5316 \u65b9\u6cd5 \u65e8\u5728 \u8bbe\u7f6e \u573a\u666f \u548c \u6240\u6709 \u8f66\u8f86 \u6240 \u9700 \u7684 \u6240\u6709 \u53c2\u6570 \u3002 \u8fd9 \u5305\u62ec \u9009\u62e9 \u6b63\u786e \u7684 \u8f66\u8f86 \u3001 \u5728 \u6b63\u786e \u7684 \u4f4d\u7f6e \u751f\u6210 \u5b83\u4eec \u7b49 \u3002 \u4e3a\u4e86 \u7b80\u5316 \u8fd9 \u4e00\u70b9 \uff0c \u60a8 \u53ef\u80fd \u9700\u8981 \u4f7f\u7528 basic _ scenario . py \u4e2d \u5b9a\u4e49 \u7684 setup _ vehicle ( ) \u65b9\u6cd5 \u3002","title":"\u521d\u59cb\u5316 \u65b9\u6cd5"},{"location":"scenario_runner/creating_new_scenario/#createbehavior","text":"\u6b64 \u65b9\u6cd5 \u5e94 \u8bbe\u7f6e \u5305\u542b \u573a\u666f \u671f\u95f4 \u6240\u6709 \u975e \u81ea\u6211 \u8f66\u8f86 \u884c\u4e3a \u7684 \u884c\u4e3a \u6811 \u3002 \u884c\u4e3a \u6811 \u5e94\u8be5 \u4f7f\u7528 atomic _ scenario _ behavior . py \u548c atomic _ scenario _ behavior . py \u4e2d \u5b9a\u4e49 \u7684 \u539f\u5b50 \u884c\u4e3a \u3002","title":"CreateBehavior \u65b9\u6cd5"},{"location":"scenario_runner/creating_new_scenario/#createtestcriteria","text":"\u6b64 \u65b9\u6cd5 \u5e94 \u8bbe\u7f6e \u4e00\u4e2a \u5305\u542b \u573a\u666f \u7684 \u6240\u6709 \u8bc4\u4f30 \u6807\u51c6 \u7684 \u5217\u8868 \u3002 \u8be5 \u6807\u51c6 \u5e94 \u57fa\u4e8e atomic _ scenario _ criteria . py \u4e2d \u5b9a\u4e49 \u7684 \u539f\u5b50 \u6807\u51c6 \u3002 \u6ce8\u610f : \u4ece\u6b64 \u5217\u8868 py _ tree \u4e2d\u5c06 \u81ea\u52a8 \u521b\u5efa \u5e76\u884c \uff01","title":"CreateTestCriteria \u65b9\u6cd5"},{"location":"scenario_runner/creating_new_scenario/#_3","text":"\u6700\u540e \uff0c \u573a\u666f \u914d\u7f6e \u5e94 \u6dfb\u52a0 \u5230 \u8be5 examples / \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u5982\u679c \u6269\u5c55 \u5df2\u7ecf \u5b58\u5728 \u7684 \u573a\u666f \u6a21\u5757 \uff0c \u5219 \u53ea \u9700 \u6269\u5c55 \u76f8\u5e94 \u7684 XML \uff0c \u5426\u5219 \u6dfb\u52a0 \u65b0 \u7684 XML \u6587\u4ef6 \u3002 \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 \u4efb\u4f55 \u73b0\u6709 \u7684 XML \u6587\u4ef6 \u4f5c\u4e3a \u84dd\u56fe \u3002 \u5982\u679c \u60a8 \u60f3 \u4e3a \u4e00\u4e2a \u573a\u666f \u6dfb\u52a0 \u591a\u4e2a \u81ea\u6211 \u8f66\u8f86 \uff0c \u8bf7 \u786e\u4fdd \u5b83\u4eec \u4f7f\u7528 \u4e0d\u540c \u7684 \u89d2\u8272 \u540d\u79f0 \uff0c \u4f8b\u5982 < scenario name = \" MultiEgoTown03 \" type = \" FreeRide \" town = \" Town03 \" > < ego _ vehicle x = \" 207 \" y = \" 59 \" z = \" 0 \" yaw = \" 180 \" model = \" vehicle . lincoln . mkz _ 2017 \" rolename = \" hero \" / > < ego _ vehicle x = \" 237 \" y = \" - 95.0754252474 \" z = \" 0 \" yaw = \" 90 \" model = \" vehicle . tesla . model3 \" rolename = \" hero2 \" / > < / scenario >","title":"\u6dfb\u52a0 \u573a\u666f \u914d\u7f6e"},{"location":"scenario_runner/getting_scenariorunner/","text":"\u83b7\u53d6 ScenarioRunner \u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4e0b\u8f7d ScenarioRunner \u5e76 \u8fd0\u884c \u4e00\u4e2a \u7b80\u5355 \u7684 \u793a\u4f8b \u6765 \u6d4b\u8bd5 \u5b83 \u3002 ScenarioRunner \u9700\u8981 Carla \u624d\u80fd \u8fd0\u884c \uff0c \u5e76\u4e14 \u5fc5\u987b \u4e0e \u6b63\u5728 \u4f7f\u7528 \u7684 Carla \u7248\u672c \u5339\u914d \u3002 \u5982\u679c \u4f7f\u7528 \u7684 Carla \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \uff0c \u8bf7 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e0b\u8f7d ScenarioRunner \u3002 \u5982\u679c \u4f7f\u7528 \u7684 Carla \u662f \u5305 \uff0c \u8bf7 \u4e0b\u8f7d \u5bf9\u5e94 \u7248\u672c \u7684 ScenarioRunner \u3002 \u5b89\u88c5 \u603b\u7ed3 A . \u4e0b\u8f7d ScenarioRunner \u53d1\u5e03 \u7248 \u66f4\u65b0 \u53d1\u5e03 \u7248 B . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e0b\u8f7d ScenarioRunner \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u66f4\u65b0 \u6784\u5efa \u8fd0\u884c \u6d4b\u8bd5 \u5b89\u88c5 \u603b\u7ed3 \u663e\u793a \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u6458\u8981 # Decide whether to use a package or make the build from source # Option A ) Use a ScenarioRunner package # 1 . Install a CARLA package : https : / / carla . readthedocs . io / en / latest / start _ quickstart / # 2 . Download the matching ScenarioRunner package : https : / / github . com / carla - simulator / scenario _ runner / releases # 3 . Extract the content wherever needed . # Update the release : # 1 . Delete previous CARLA and ScenarioRunner versions . # 2 . Download the latest CARLA release . # 3 . Download the matching ScenarioRunner release . # Option B ) Download ScenarioRunner from source # 1 . Build CARLA from source : https : / / carla . readthedocs . io / en / latest / build _ linux / # 2 . Clone the ScenarioRunner repository : git clone https : / / github . com / carla - simulator / scenario _ runner . git # 3 . Install requirements according to the Python version to be used : # For Python 2 . x : sudo apt remove python - networkx # if installed , remove old version of networkx pip2 install -- user - r requirements . txt # For Python 3 . x : sudo apt remove python3 - networkx # if installed , remove old version of networkx pip3 install -- user - r requirements . txt # To update ScenarioRunner from source : # 1 . Update CARLA : https : / / carla . readthedocs . io / en / latest / build _ update / # 2 . Go to the ScenarioRunner repository , master branch cd ~ / scenario _ runner git branch master # 3 . Pull the latest changes from the repository git pull A . \u4e0b\u8f7d ScenarioRunner \u53d1\u5e03 \u7248 ScenarioRunner \u7684 \u7248\u672c \u662f \u5305\u542b \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff1a * \u4e0e \u7279\u5b9a CARLA \u7248\u672c \u76f8\u5173 \u7684 ScenarioRunner \u7248\u672c \u3002 * \u7528 Python \u7f16\u5199 \u7684 \u4e00\u4e9b \u793a\u4f8b \u573a\u666f \u3002 \u8fd0\u884c ScenarioRunner \u7248\u672c \u7684 \u8fc7\u7a0b \u975e\u5e38 \u7b80\u5355 \u975e\u5e38\u7b80\u5355 \u3002 1 . \u4e0b\u8f7d CARLA \u53d1\u5e03 \u7248 \u3002 \u8bf7 \u6309\u7167 CARLA \u5feb\u901f \u5165\u95e8 \u4e2d \u7684 \u6d41\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 2 . \u4e0b\u8f7d \u5339\u914d \u7684 ScenarioRunner \u7248\u672c \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u6240\u6709 \u7248\u672c \u3002 \u91cd\u8981 \u4e24\u4e2a \u7248\u672c \u5fc5\u987b \u5339\u914d \u3002 \u5982\u679c CARLA \u7248\u672c \u662f 0.9 . 9 \uff0c \u5219 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 ScenarioRunner 0.9 . 9 \u3002 \u4ee5\u4e0b \u662f CARLA \u548c ScenarioRunner \u4e4b\u95f4 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u7684 \u7b80\u8981 \u5217\u8868 \u3002 3 . \u63d0\u53d6 \u5185\u5bb9 \u3002 \u76ee\u5f55 \u5e76 \u4e0d \u91cd\u8981 \u3002 \u66f4\u65b0 \u53d1\u5e03 \u7248 \u6253\u5305 \u7248\u672c \u4e0d \u9700\u8981 \u66f4\u65b0 \u3002 \u5185\u5bb9 \u662f \u6346\u7ed1 \u7684 \uff0c \u56e0\u6b64 \u4e0e CARLA \u7684 \u7279\u5b9a \u7248\u672c \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u6bcf\u6b21 \u6709 \u65b0 \u7684 CARLA \u7248\u672c \u65f6 \uff0c ScenarioRunner \u90fd \u4f1a \u6709 \u4e00\u4e2a \u5339\u914d \u7684 \u7248\u672c \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u6240\u6709 \u7248\u672c \uff1a CARLA \u53d1\u5e03 \u7248 Scenario Runner \u53d1\u5e03 \u7248 \u8981 \u8fd0\u884c \u6700\u65b0 \u7248\u672c \u6216 \u4efb\u4f55 \u5176\u4ed6 \u7248\u672c \uff0c \u8bf7 \u5220\u9664 \u4ee5\u524d \u7684 \u7248\u672c \u5e76 \u5b89\u88c5 \u6240 \u9700 \u7684 \u7248\u672c \u3002 B . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e0b\u8f7d ScenarioRunner ScenarioRunner \u6e90 \u5b58\u50a8 \u5e93 \u5305\u542b \u4e0e \u6700\u65b0 \u5f00\u53d1 \u7248\u672c CARLA \u4e00\u8d77 \u8fd0\u884c \u7684 \u6700\u5177 \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 \u529f\u80fd \u3002 \u5b83 \u4e0d \u9700\u8981 \u6784\u5efa \uff0c \u56e0\u4e3a \u5b83 \u53ea \u5305\u542b ScenarioRunner \u6a21\u5757 \u7684 Python \u4ee3\u7801 \u3002 1 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa CARLA \u3002 \u6309\u7167 \u6587\u6863 \u5728 Linux \u6216 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 \u91cd\u8981 ScenarioRunner \u9700\u8981 CARLA \u624d\u80fd \u8fd0\u884c \uff0c \u56e0\u6b64 \u6587\u6863 \u4e2d \u89c4\u5b9a \u7684 CARLA \u6700\u4f4e \u8981\u6c42 \u4e5f \u662f \u8fd0\u884c ScenarioRunner \u6240 \u5fc5\u9700 \u7684 \u3002 2 . \u514b\u9686 ScenarioRunner \u5b58\u50a8 \u5e93 \u3002 git clone https : / / github . com / carla - simulator / scenario _ runner . git 3 . \u6839\u636e \u8981 \u4f7f\u7528 \u7684 Python \u7248\u672c \u5b89\u88c5 \u9700\u6c42 \u3002 \u9996\u5148 \u8fdb\u5165 ScenarioRunner \u76ee\u5f55 \u4e3b\u76ee\u5f55 cd ~ / scenario _ runner / \u5bf9\u4e8e Python 2 . x . sudo apt remove python - networkx # if installed , remove old version of networkx pip2 install -- user - r requirements . txt \u5bf9\u4e8e Python 3 . x sudo apt remove python3 - networkx # if installed , remove old version of networkx pip3 install -- user - r requirements . txt \u8b66\u544a \u4e0d \u652f\u6301 \u9ad8\u4e8e v0.8 \u7684 py - tree \u3002 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u66f4\u65b0 \u6784\u5efa 1 . \u66f4\u65b0 CARLA \u6784\u5efa \u6309\u7167 \u6587\u6863 \u66f4\u65b0 CARLA \u3002 2 . \u8f6c\u5230 ScenarioRunner \u76ee\u5f55 \u4e3b\u76ee\u5f55 \u3002 \u786e\u4fdd \u4f4d\u4e8e \u672c \u5730\u4e3b \u5206\u652f \u4e2d \u3002 cd ~ / scenario _ runner git branch master 3 . \u4ece \u5b58\u50a8 \u5e93\u4e2d \u63d0\u53d6 \u6700\u65b0 \u66f4\u6539 \u3002 git pull 4 . \u6dfb\u52a0 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u548c Python \u8def\u5f84 \u8fd9\u4e9b \u662f \u7cfb\u7edf \u627e\u5230 CARLA \u6240 \u5fc5\u9700 \u7684 \uff0c \u5e76 \u5c06 PythonAPI \u6dfb\u52a0 \u5230 Python \u8def\u5f84 \u4e2d \u3002 \u5bf9\u4e8e Linux # $ { CARLA _ ROOT } is the CARLA installation directory # $ { SCENARIO _ RUNNER } is the ScenarioRunner installation directory # < VERSION > is the correct string for the Python version being used # In a build from source , the . egg files may be in : $ { CARLA _ ROOT } / PythonAPI / dist / instead of $ { CARLA _ ROOT } / PythonAPI export CARLA _ ROOT = / path / to / your / carla / installation export SCENARIO _ RUNNER _ ROOT = / path / to / your / scenario / runner / installation export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - < VERSION > . egg export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6ce8\u610f \u6839\u636e \u6ce8\u91ca \uff0c \u4f7f\u7528 \u6b63\u786e \u7684 \u8def\u5f84 \u66f4\u6539 \u547d\u4ee4 \u547d\u4ee4\u884c \u3002 \u5bf9\u4e8e Windows # % CARLA _ ROOT% is the CARLA installation directory # % SCENARIO _ RUNNER% is the ScenarioRunner installation directory # < VERSION > is the correct string for the Python version being used # In a build from source , the . egg files may be in : $ { CARLA _ ROOT } / PythonAPI / dist / instead of $ { CARLA _ ROOT } / PythonAPI set CARLA _ ROOT = \\ path \\ to \\ your \\ carla \\ installation set SCENARIO _ RUNNER _ ROOT = \\ path \\ to \\ your \\ scenario \\ runner \\ installation set PYTHONPATH = % PYTHONPATH% ; % CARLA _ ROOT% \\ PythonAPI \\ carla \\ dist \\ carla - < VERSION > . egg set PYTHONPATH = % PYTHONPATH% ; % CARLA _ ROOT% \\ PythonAPI \\ carla \u6ce8\u610f \u6839\u636e \u6ce8\u91ca \uff0c \u4f7f\u7528 \u6b63\u786e \u7684 \u8def\u5f84 \u66f4\u6539 \u547d\u4ee4 \u547d\u4ee4\u884c \u3002 \u5982\u9700 \u6c38\u4e45 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u8bf7 \u524d\u5f80 \u7f16\u8f91 \u8be5 \u8d26\u6237 \u7684 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u901a\u8fc7 \u5728 Windows \u7684 \u641c\u7d22 \u9762\u677f \u4e0a \u8f93\u5165 env \u53ef\u4ee5 \u5feb\u901f \u8bbf\u95ee \u5feb\u901f\u8bbf\u95ee \u5b83 \u3002 \u5982\u679c \u9700\u8981 \u8fd0\u884c \u57fa\u4e8e OpenSCENARIO 2.0 \u683c\u5f0f \u7684 \u573a\u666f \uff0c \u8bf7 \u5148 \u5b89\u88c5 graphviz \u548c antlr \uff1a sudo apt - get install - y openjdk - 17 - jdk graphviz curl - O https : / / www . antlr . org / download / antlr - 4.10 . 1 - complete . jar sudo cp antlr - 4.10 . 1 - complete . jar / usr / local / lib / sudo gedit ~ / . bashrc \u5c06 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6dfb\u52a0 \u5230 ~ / . bashrc \u4e2d \uff1a export CLASSPATH = \" . : / usr / local / lib / antlr - 4.10 . 1 - complete . jar : $ CLASSPATH \" alias antlr4 = ' java - jar / usr / local / lib / antlr - 4.10 . 1 - complete . jar ' alias grun = ' java org . antlr . v4 . gui . TestRig ' \u5e76 \u4f7f \u66f4\u6539 \u751f\u6548 \uff1a source ~ / . bashrc \u8fd0\u884c \u6d4b\u8bd5 \u8fd0\u884c \u4ee5\u4e0b \u8f66\u8f86 \u793a\u4f8b \u3002 \u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u4ece CARLA \u83b7\u53d6 \u6700\u65b0 \u7684 \u4e3b \u5206\u652f \u3002 \u7136\u540e \u60a8 \u5fc5\u987b \u5c06 CARLA Python API \u5305\u542b \u5230 Python \u8def\u5f84 \u4e2d \uff1a \u91cd\u8981 \u5982\u679c \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \uff0c \u8bf7 \u786e\u4fdd \u4e0a\u4f20 \u5b83\u4eec \u3002 \u4e0b\u8f7d master \u5206\u652f \u4e2d \u7684 \u6700\u65b0 \u5185\u5bb9 \u3002 1 . \u8fd0\u884c CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 A ) \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \uff0c \u8f6c \u5230 CARLA \u76ee\u5f55 \u5e76 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 cd ~ / carla # Change the path accordingly make launch # Press Play in the UE Editor B ) \u5728 CARLA \u5305\u4e2d \u76f4\u63a5 \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 . / CarlaUE4 . sh 2 . \u542f\u52a8 \u793a\u4f8b \u573a\u666f \u3002 \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \uff0c \u8fdb\u5165 ScenarioRunner \u4e0b\u8f7d \u7684 \u76ee\u5f55 \u3002 \u4e3a\u4e86 \u8fdb\u884c \u672c\u6b21 \u6d4b\u8bd5 \uff0c \u5c06 \u4f7f\u7528 \u4ee5\u4e0b \u5f15\u5bfc \u8f66\u8f86 \u573a\u666f \uff08 scenario _ runner . py \u548c manual _ control . py \u8981 \u4f7f\u7528 \u5bf9\u5e94 \u7684 \u53d1\u5e03 \u7248\u672c \uff0c \u5f00\u53d1 \u7248 \u4e0d \u4e00\u5b9a \u6210\u679c \uff09 \u3002 # Inside the ScenarioRunner root directory python scenario _ runner . py -- scenario FollowLeadingVehicle _ 1 -- reloadWorld \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u67e5\u770b \u5f53\u524d \u573a\u666f \u6709 \u54ea\u4e9b \uff1a python scenario _ runner . py -- list \u6ce8\u610f \u5982\u679c \u4f7f\u7528 Python 3 . x \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u5e26\u6709 python3 . 3 . \u901a\u8fc7 \u624b\u52a8 \u63a7\u5236 \u6d4b\u8bd5 \u573a\u666f \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c manual _ control . py \u3002 \u5e94\u8be5 \u4f1a\u5f39 \u51fa \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u8857\u9053 \u4e2d\u592e \u6709 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \u3002 \u5411\u524d \u79fb\u52a8 \uff0c \u9886\u5934 \u8f66\u8f86 \u5c31 \u4f1a \u51fa\u73b0 \u3002 # Inside the ScenarioRunner root directory python manual _ control . py \u8fd9\u4e9b \u573a\u666f \u6709 \u5927\u7ea6 \u4e00\u5206 \u5206\u949f \u4e00\u5206\u949f \u7684 \u8d85\u65f6 \u65f6\u95f4 \uff0c \u4ee5\u4fbf \u542f\u52a8 \u4ee3\u7406 \u3002 \u5982\u679c \u51fa\u73b0 \u8d85\u65f6 \uff0c \u5219 \u5e94 \u518d\u6b21 \u542f\u52a8 \u8ddf\u968f \u9886\u5148 \u8f66\u8f86 \u793a\u4f8b \u3002 \u8b66\u544a \u8fd0\u884c manual _ control . py ScenarioRunner \u5305 / \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u7684 \u5185\u5bb9 \uff0c \u800c \u4e0d\u662f CARLA \u3002 4 . \u63a2\u7d22 \u5176\u4ed6 \u9009\u62e9 \u3002 \u4f7f\u7528 \u6807\u5fd7 \u8fd0\u884c \u573a\u666f \u8fd0\u884c \u5668 -- help \u6765 \u63a2\u7d22 \u5176\u4ed6 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u548c \u4e00\u4e9b \u57fa\u672c \u63cf\u8ff0 \u3002 \u4f8b\u5982 \uff0c \u4e3a\u4e86 \u907f\u514d \u81ea\u52a8 \uff08 \u91cd\u65b0 \uff09 \u52a0\u8f7d CARLA \u4e16\u754c \uff0c \u8bf7 \u8df3 \u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 -- reloadWorld \u3002 python scenario _ runner . py -- help ScenarioRunner \u7684 \u5b89\u88c5 \u8fc7\u7a0b \u81f3\u6b64 \u7ed3\u675f \u3002 \u5982\u679c \u53d1\u751f \u4efb\u4f55 \u610f\u5916 \u9519\u8bef \u6216 \u95ee\u9898 \uff0c CARLA \u8bba\u575b \u5411 \u6240\u6709 \u6709\u4eba \u6240\u6709\u4eba \u5f00\u653e \u3002 \u6709 \u4e00\u4e2a ScenarioRunner \u7c7b\u522b \u7528\u4e8e \u53d1\u5e03 \u6709\u5173 \u6b64 \u6a21\u5757 \u7684 \u95ee\u9898 \u548c \u7591\u95ee \u3002","title":"Getting scenariorunner"},{"location":"scenario_runner/getting_scenariorunner/#scenariorunner","text":"\u672c \u6559\u7a0b \u4ecb\u7ecd \u5982\u4f55 \u4e0b\u8f7d ScenarioRunner \u5e76 \u8fd0\u884c \u4e00\u4e2a \u7b80\u5355 \u7684 \u793a\u4f8b \u6765 \u6d4b\u8bd5 \u5b83 \u3002 ScenarioRunner \u9700\u8981 Carla \u624d\u80fd \u8fd0\u884c \uff0c \u5e76\u4e14 \u5fc5\u987b \u4e0e \u6b63\u5728 \u4f7f\u7528 \u7684 Carla \u7248\u672c \u5339\u914d \u3002 \u5982\u679c \u4f7f\u7528 \u7684 Carla \u662f\u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u7684 \uff0c \u8bf7 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e0b\u8f7d ScenarioRunner \u3002 \u5982\u679c \u4f7f\u7528 \u7684 Carla \u662f \u5305 \uff0c \u8bf7 \u4e0b\u8f7d \u5bf9\u5e94 \u7248\u672c \u7684 ScenarioRunner \u3002 \u5b89\u88c5 \u603b\u7ed3 A . \u4e0b\u8f7d ScenarioRunner \u53d1\u5e03 \u7248 \u66f4\u65b0 \u53d1\u5e03 \u7248 B . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u4e0b\u8f7d ScenarioRunner \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u66f4\u65b0 \u6784\u5efa \u8fd0\u884c \u6d4b\u8bd5","title":"\u83b7\u53d6 ScenarioRunner"},{"location":"scenario_runner/getting_scenariorunner/#_1","text":"\u663e\u793a \u5feb\u901f \u542f\u52a8 \u5b89\u88c5 \u7684 \u547d\u4ee4 \u547d\u4ee4\u884c \u6458\u8981 # Decide whether to use a package or make the build from source # Option A ) Use a ScenarioRunner package # 1 . Install a CARLA package : https : / / carla . readthedocs . io / en / latest / start _ quickstart / # 2 . Download the matching ScenarioRunner package : https : / / github . com / carla - simulator / scenario _ runner / releases # 3 . Extract the content wherever needed . # Update the release : # 1 . Delete previous CARLA and ScenarioRunner versions . # 2 . Download the latest CARLA release . # 3 . Download the matching ScenarioRunner release . # Option B ) Download ScenarioRunner from source # 1 . Build CARLA from source : https : / / carla . readthedocs . io / en / latest / build _ linux / # 2 . Clone the ScenarioRunner repository : git clone https : / / github . com / carla - simulator / scenario _ runner . git # 3 . Install requirements according to the Python version to be used : # For Python 2 . x : sudo apt remove python - networkx # if installed , remove old version of networkx pip2 install -- user - r requirements . txt # For Python 3 . x : sudo apt remove python3 - networkx # if installed , remove old version of networkx pip3 install -- user - r requirements . txt # To update ScenarioRunner from source : # 1 . Update CARLA : https : / / carla . readthedocs . io / en / latest / build _ update / # 2 . Go to the ScenarioRunner repository , master branch cd ~ / scenario _ runner git branch master # 3 . Pull the latest changes from the repository git pull","title":"\u5b89\u88c5 \u603b\u7ed3"},{"location":"scenario_runner/getting_scenariorunner/#a-scenariorunner","text":"ScenarioRunner \u7684 \u7248\u672c \u662f \u5305\u542b \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 \u7684 \u8f6f\u4ef6 \u8f6f\u4ef6\u5305 \uff1a * \u4e0e \u7279\u5b9a CARLA \u7248\u672c \u76f8\u5173 \u7684 ScenarioRunner \u7248\u672c \u3002 * \u7528 Python \u7f16\u5199 \u7684 \u4e00\u4e9b \u793a\u4f8b \u573a\u666f \u3002 \u8fd0\u884c ScenarioRunner \u7248\u672c \u7684 \u8fc7\u7a0b \u975e\u5e38 \u7b80\u5355 \u975e\u5e38\u7b80\u5355 \u3002 1 . \u4e0b\u8f7d CARLA \u53d1\u5e03 \u7248 \u3002 \u8bf7 \u6309\u7167 CARLA \u5feb\u901f \u5165\u95e8 \u4e2d \u7684 \u6d41\u7a0b \u8fdb\u884c \u64cd\u4f5c \u3002 2 . \u4e0b\u8f7d \u5339\u914d \u7684 ScenarioRunner \u7248\u672c \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u6240\u6709 \u7248\u672c \u3002 \u91cd\u8981 \u4e24\u4e2a \u7248\u672c \u5fc5\u987b \u5339\u914d \u3002 \u5982\u679c CARLA \u7248\u672c \u662f 0.9 . 9 \uff0c \u5219 \u8fd8 \u53ef\u4ee5 \u4f7f\u7528 ScenarioRunner 0.9 . 9 \u3002 \u4ee5\u4e0b \u662f CARLA \u548c ScenarioRunner \u4e4b\u95f4 \u7684 \u517c\u5bb9 \u5bb9\u6027 \u517c\u5bb9\u6027 \u7684 \u7b80\u8981 \u5217\u8868 \u3002 3 . \u63d0\u53d6 \u5185\u5bb9 \u3002 \u76ee\u5f55 \u5e76 \u4e0d \u91cd\u8981 \u3002","title":"A . \u4e0b\u8f7d ScenarioRunner \u53d1\u5e03 \u7248"},{"location":"scenario_runner/getting_scenariorunner/#_2","text":"\u6253\u5305 \u7248\u672c \u4e0d \u9700\u8981 \u66f4\u65b0 \u3002 \u5185\u5bb9 \u662f \u6346\u7ed1 \u7684 \uff0c \u56e0\u6b64 \u4e0e CARLA \u7684 \u7279\u5b9a \u7248\u672c \u76f8\u5173 \u5173\u8054 \u76f8\u5173\u8054 \u3002 \u6bcf\u6b21 \u6709 \u65b0 \u7684 CARLA \u7248\u672c \u65f6 \uff0c ScenarioRunner \u90fd \u4f1a \u6709 \u4e00\u4e2a \u5339\u914d \u7684 \u7248\u672c \u3002 \u6b64\u5904 \u5217\u51fa \u4e86 \u6240\u6709 \u7248\u672c \uff1a CARLA \u53d1\u5e03 \u7248 Scenario Runner \u53d1\u5e03 \u7248 \u8981 \u8fd0\u884c \u6700\u65b0 \u7248\u672c \u6216 \u4efb\u4f55 \u5176\u4ed6 \u7248\u672c \uff0c \u8bf7 \u5220\u9664 \u4ee5\u524d \u7684 \u7248\u672c \u5e76 \u5b89\u88c5 \u6240 \u9700 \u7684 \u7248\u672c \u3002","title":"\u66f4\u65b0 \u53d1\u5e03 \u7248"},{"location":"scenario_runner/getting_scenariorunner/#b-scenariorunner","text":"ScenarioRunner \u6e90 \u5b58\u50a8 \u5e93 \u5305\u542b \u4e0e \u6700\u65b0 \u5f00\u53d1 \u7248\u672c CARLA \u4e00\u8d77 \u8fd0\u884c \u7684 \u6700\u5177 \u5b9e\u9a8c \u5b9e\u9a8c\u6027 \u7684 \u529f\u80fd \u3002 \u5b83 \u4e0d \u9700\u8981 \u6784\u5efa \uff0c \u56e0\u4e3a \u5b83 \u53ea \u5305\u542b ScenarioRunner \u6a21\u5757 \u7684 Python \u4ee3\u7801 \u3002 1 . \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa CARLA \u3002 \u6309\u7167 \u6587\u6863 \u5728 Linux \u6216 Windows \u4e0a \u8fdb\u884c \u6784\u5efa \u3002 \u91cd\u8981 ScenarioRunner \u9700\u8981 CARLA \u624d\u80fd \u8fd0\u884c \uff0c \u56e0\u6b64 \u6587\u6863 \u4e2d \u89c4\u5b9a \u7684 CARLA \u6700\u4f4e \u8981\u6c42 \u4e5f \u662f \u8fd0\u884c ScenarioRunner \u6240 \u5fc5\u9700 \u7684 \u3002 2 . \u514b\u9686 ScenarioRunner \u5b58\u50a8 \u5e93 \u3002 git clone https : / / github . com / carla - simulator / scenario _ runner . git 3 . \u6839\u636e \u8981 \u4f7f\u7528 \u7684 Python \u7248\u672c \u5b89\u88c5 \u9700\u6c42 \u3002 \u9996\u5148 \u8fdb\u5165 ScenarioRunner \u76ee\u5f55 \u4e3b\u76ee\u5f55 cd ~ / scenario _ runner / \u5bf9\u4e8e Python 2 . x . sudo apt remove python - networkx # if installed , remove old version of networkx pip2 install -- user - r requirements . txt \u5bf9\u4e8e Python 3 . x sudo apt remove python3 - networkx # if installed , remove old version of networkx pip3 install -- user - r requirements . txt \u8b66\u544a \u4e0d \u652f\u6301 \u9ad8\u4e8e v0.8 \u7684 py - tree \u3002","title":"B . \u4ece \u6e90\u4ee3\u7801 \u4e0b\u8f7d ScenarioRunner"},{"location":"scenario_runner/getting_scenariorunner/#_3","text":"1 . \u66f4\u65b0 CARLA \u6784\u5efa \u6309\u7167 \u6587\u6863 \u66f4\u65b0 CARLA \u3002 2 . \u8f6c\u5230 ScenarioRunner \u76ee\u5f55 \u4e3b\u76ee\u5f55 \u3002 \u786e\u4fdd \u4f4d\u4e8e \u672c \u5730\u4e3b \u5206\u652f \u4e2d \u3002 cd ~ / scenario _ runner git branch master 3 . \u4ece \u5b58\u50a8 \u5e93\u4e2d \u63d0\u53d6 \u6700\u65b0 \u66f4\u6539 \u3002 git pull 4 . \u6dfb\u52a0 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u548c Python \u8def\u5f84 \u8fd9\u4e9b \u662f \u7cfb\u7edf \u627e\u5230 CARLA \u6240 \u5fc5\u9700 \u7684 \uff0c \u5e76 \u5c06 PythonAPI \u6dfb\u52a0 \u5230 Python \u8def\u5f84 \u4e2d \u3002 \u5bf9\u4e8e Linux # $ { CARLA _ ROOT } is the CARLA installation directory # $ { SCENARIO _ RUNNER } is the ScenarioRunner installation directory # < VERSION > is the correct string for the Python version being used # In a build from source , the . egg files may be in : $ { CARLA _ ROOT } / PythonAPI / dist / instead of $ { CARLA _ ROOT } / PythonAPI export CARLA _ ROOT = / path / to / your / carla / installation export SCENARIO _ RUNNER _ ROOT = / path / to / your / scenario / runner / installation export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - < VERSION > . egg export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla \u6ce8\u610f \u6839\u636e \u6ce8\u91ca \uff0c \u4f7f\u7528 \u6b63\u786e \u7684 \u8def\u5f84 \u66f4\u6539 \u547d\u4ee4 \u547d\u4ee4\u884c \u3002 \u5bf9\u4e8e Windows # % CARLA _ ROOT% is the CARLA installation directory # % SCENARIO _ RUNNER% is the ScenarioRunner installation directory # < VERSION > is the correct string for the Python version being used # In a build from source , the . egg files may be in : $ { CARLA _ ROOT } / PythonAPI / dist / instead of $ { CARLA _ ROOT } / PythonAPI set CARLA _ ROOT = \\ path \\ to \\ your \\ carla \\ installation set SCENARIO _ RUNNER _ ROOT = \\ path \\ to \\ your \\ scenario \\ runner \\ installation set PYTHONPATH = % PYTHONPATH% ; % CARLA _ ROOT% \\ PythonAPI \\ carla \\ dist \\ carla - < VERSION > . egg set PYTHONPATH = % PYTHONPATH% ; % CARLA _ ROOT% \\ PythonAPI \\ carla \u6ce8\u610f \u6839\u636e \u6ce8\u91ca \uff0c \u4f7f\u7528 \u6b63\u786e \u7684 \u8def\u5f84 \u66f4\u6539 \u547d\u4ee4 \u547d\u4ee4\u884c \u3002 \u5982\u9700 \u6c38\u4e45 \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \uff0c \u8bf7 \u524d\u5f80 \u7f16\u8f91 \u8be5 \u8d26\u6237 \u7684 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 \u901a\u8fc7 \u5728 Windows \u7684 \u641c\u7d22 \u9762\u677f \u4e0a \u8f93\u5165 env \u53ef\u4ee5 \u5feb\u901f \u8bbf\u95ee \u5feb\u901f\u8bbf\u95ee \u5b83 \u3002 \u5982\u679c \u9700\u8981 \u8fd0\u884c \u57fa\u4e8e OpenSCENARIO 2.0 \u683c\u5f0f \u7684 \u573a\u666f \uff0c \u8bf7 \u5148 \u5b89\u88c5 graphviz \u548c antlr \uff1a sudo apt - get install - y openjdk - 17 - jdk graphviz curl - O https : / / www . antlr . org / download / antlr - 4.10 . 1 - complete . jar sudo cp antlr - 4.10 . 1 - complete . jar / usr / local / lib / sudo gedit ~ / . bashrc \u5c06 \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u6dfb\u52a0 \u5230 ~ / . bashrc \u4e2d \uff1a export CLASSPATH = \" . : / usr / local / lib / antlr - 4.10 . 1 - complete . jar : $ CLASSPATH \" alias antlr4 = ' java - jar / usr / local / lib / antlr - 4.10 . 1 - complete . jar ' alias grun = ' java org . antlr . v4 . gui . TestRig ' \u5e76 \u4f7f \u66f4\u6539 \u751f\u6548 \uff1a source ~ / . bashrc","title":"\u4ece \u6e90\u4ee3\u7801 \u66f4\u65b0 \u6784\u5efa"},{"location":"scenario_runner/getting_scenariorunner/#_4","text":"\u8fd0\u884c \u4ee5\u4e0b \u8f66\u8f86 \u793a\u4f8b \u3002 \u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u4ece CARLA \u83b7\u53d6 \u6700\u65b0 \u7684 \u4e3b \u5206\u652f \u3002 \u7136\u540e \u60a8 \u5fc5\u987b \u5c06 CARLA Python API \u5305\u542b \u5230 Python \u8def\u5f84 \u4e2d \uff1a \u91cd\u8981 \u5982\u679c \u4f7f\u7528 \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \uff0c \u8bf7 \u786e\u4fdd \u4e0a\u4f20 \u5b83\u4eec \u3002 \u4e0b\u8f7d master \u5206\u652f \u4e2d \u7684 \u6700\u65b0 \u5185\u5bb9 \u3002 1 . \u8fd0\u884c CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 A ) \u5728 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u6784\u5efa \u4e2d \uff0c \u8f6c \u5230 CARLA \u76ee\u5f55 \u5e76 \u5728 \u7f16\u8f91 \u7f16\u8f91\u5668 \u4e2d \u542f\u52a8 \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 cd ~ / carla # Change the path accordingly make launch # Press Play in the UE Editor B ) \u5728 CARLA \u5305\u4e2d \u76f4\u63a5 \u8fd0\u884c \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u3002 . / CarlaUE4 . sh 2 . \u542f\u52a8 \u793a\u4f8b \u573a\u666f \u3002 \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \uff0c \u8fdb\u5165 ScenarioRunner \u4e0b\u8f7d \u7684 \u76ee\u5f55 \u3002 \u4e3a\u4e86 \u8fdb\u884c \u672c\u6b21 \u6d4b\u8bd5 \uff0c \u5c06 \u4f7f\u7528 \u4ee5\u4e0b \u5f15\u5bfc \u8f66\u8f86 \u573a\u666f \uff08 scenario _ runner . py \u548c manual _ control . py \u8981 \u4f7f\u7528 \u5bf9\u5e94 \u7684 \u53d1\u5e03 \u7248\u672c \uff0c \u5f00\u53d1 \u7248 \u4e0d \u4e00\u5b9a \u6210\u679c \uff09 \u3002 # Inside the ScenarioRunner root directory python scenario _ runner . py -- scenario FollowLeadingVehicle _ 1 -- reloadWorld \u4f7f\u7528 \u4ee5\u4e0b \u547d\u4ee4 \u67e5\u770b \u5f53\u524d \u573a\u666f \u6709 \u54ea\u4e9b \uff1a python scenario _ runner . py -- list \u6ce8\u610f \u5982\u679c \u4f7f\u7528 Python 3 . x \u7248\u672c \uff0c \u8bf7 \u8fd0\u884c \u5e26\u6709 python3 . 3 . \u901a\u8fc7 \u624b\u52a8 \u63a7\u5236 \u6d4b\u8bd5 \u573a\u666f \u3002 \u6253\u5f00 \u4e00\u4e2a \u65b0 \u7ec8\u7aef \u5e76 \u8fd0\u884c manual _ control . py \u3002 \u5e94\u8be5 \u4f1a\u5f39 \u51fa \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u8857\u9053 \u4e2d\u592e \u6709 \u4e00\u8f86 \u81ea\u6211 \u8f66\u8f86 \u3002 \u5411\u524d \u79fb\u52a8 \uff0c \u9886\u5934 \u8f66\u8f86 \u5c31 \u4f1a \u51fa\u73b0 \u3002 # Inside the ScenarioRunner root directory python manual _ control . py \u8fd9\u4e9b \u573a\u666f \u6709 \u5927\u7ea6 \u4e00\u5206 \u5206\u949f \u4e00\u5206\u949f \u7684 \u8d85\u65f6 \u65f6\u95f4 \uff0c \u4ee5\u4fbf \u542f\u52a8 \u4ee3\u7406 \u3002 \u5982\u679c \u51fa\u73b0 \u8d85\u65f6 \uff0c \u5219 \u5e94 \u518d\u6b21 \u542f\u52a8 \u8ddf\u968f \u9886\u5148 \u8f66\u8f86 \u793a\u4f8b \u3002 \u8b66\u544a \u8fd0\u884c manual _ control . py ScenarioRunner \u5305 / \u5b58\u50a8 \u5e93\u4e2d \u627e\u5230 \u7684 \u5185\u5bb9 \uff0c \u800c \u4e0d\u662f CARLA \u3002 4 . \u63a2\u7d22 \u5176\u4ed6 \u9009\u62e9 \u3002 \u4f7f\u7528 \u6807\u5fd7 \u8fd0\u884c \u573a\u666f \u8fd0\u884c \u5668 -- help \u6765 \u63a2\u7d22 \u5176\u4ed6 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \u548c \u4e00\u4e9b \u57fa\u672c \u63cf\u8ff0 \u3002 \u4f8b\u5982 \uff0c \u4e3a\u4e86 \u907f\u514d \u81ea\u52a8 \uff08 \u91cd\u65b0 \uff09 \u52a0\u8f7d CARLA \u4e16\u754c \uff0c \u8bf7 \u8df3 \u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 -- reloadWorld \u3002 python scenario _ runner . py -- help ScenarioRunner \u7684 \u5b89\u88c5 \u8fc7\u7a0b \u81f3\u6b64 \u7ed3\u675f \u3002 \u5982\u679c \u53d1\u751f \u4efb\u4f55 \u610f\u5916 \u9519\u8bef \u6216 \u95ee\u9898 \uff0c CARLA \u8bba\u575b \u5411 \u6240\u6709 \u6709\u4eba \u6240\u6709\u4eba \u5f00\u653e \u3002 \u6709 \u4e00\u4e2a ScenarioRunner \u7c7b\u522b \u7528\u4e8e \u53d1\u5e03 \u6709\u5173 \u6b64 \u6a21\u5757 \u7684 \u95ee\u9898 \u548c \u7591\u95ee \u3002","title":"\u8fd0\u884c \u6d4b\u8bd5"},{"location":"scenario_runner/getting_started/","text":"\u7b2c\u4e00 \u4e00\u6b65 \u7b2c\u4e00\u6b65 \u91cd\u8981 \u672c \u6559\u7a0b \u53c2\u8003 \u4e86 Carla \u7684 \u6700\u65b0 \u7248\u672c \uff08 \u81f3\u5c11 0.9 . 5 \uff09 \u6b22\u8fce \u6765\u5230 Carla \u7684 ScenarioRunner \uff01 \u672c \u6559\u7a0b \u63d0\u4f9b \u4e86 \u5f00\u59cb \u4f7f\u7528 Carla \u7684 ScenarioRunner \u57fa\u672c \u6b65\u9aa4 \u3002 \u4ece \u6211\u4eec \u7684 GitHub \u9875\u9762 \u4e0b\u8f7d \u6700\u65b0 \u7248\u672c \uff0c \u5e76 \u5c06 \u5305 \u7684 \u6240\u6709 \u5185\u5bb9 \u63d0\u53d6 \u5230 \u60a8 \u9009\u62e9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u53d1\u5e03 \u5305 \u5305\u542b \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 Carla \u7684 ScenarioRunner \u7528 Python \u7f16\u5199 \u7684 \u4e00\u4e9b \u793a\u4f8b \u573a\u666f \u3002 \u5b89\u88c5 \u5148\u51b3 \u6761\u4ef6 \u5148\u51b3\u6761\u4ef6 \u5f53\u524d \u7248\u672c \u8bbe\u8ba1 \u7528\u4e8e Ubuntu 18.04 \u3001 Python 3.6 \u3002 \u6839\u636e \u60a8 \u7684 Python \u7248\u672c \uff0c \u6267\u884c \uff1a # Python 2 . x sudo apt remove python - networkx # if installed , remove old version of networkx pip2 install -- user - r requirements . txt # Python 3 . x sudo apt remove python3 - networkx # if installed , remove old version of networkx pip3 install -- user - r requirements . txt \u6ce8\u610f : \u4e0d \u652f\u6301 \u9ad8\u4e8e v0.8 \u7684 py - tree \u3002 \u8fd0\u884c \u4ee5\u4e0b \u8f66\u8f86 \u793a\u4f8b \u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u4ece Carla \u83b7\u53d6 \u6700\u65b0 \u7684 \u4e3b \u5206\u652f \u3002 \u7136\u540e \u60a8 \u5fc5\u987b \u5c06 Carla Python API \u5305\u542b \u5230 Python \u8def\u5f84 \u4e2d \uff1a export CARLA _ ROOT = / path / to / your / carla / installation export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - < VERSION > . egg : $ { CARLA _ ROOT } / PythonAPI / carla / agents : $ { CARLA _ ROOT } / PythonAPI / carla \u7b14\u8bb0 : $ { CARLA _ ROOT } \u9700\u8981 \u4f7f\u7528 \u60a8 \u7684 Carla \u5b89\u88c5 \u8def\u5f84 \u66ff\u6362 \uff0c \u865a\u5e7b \u4f7f\u7528 \u6b63\u786e \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u66ff\u6362 \u3002 \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 Carla \uff0c egg \u6587\u4ef6 \u53ef\u80fd \u4f4d\u4e8e \uff1a $ { CARLA _ ROOT } / PythonAPI / dist / \u800c \u4e0d\u662f $ { CARLA _ ROOT } / PythonAPI \u3002 \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u4ece $ { CARLA _ ROOT } \u542f\u52a8 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 . / CarlaUE4 . sh \u5728 \u989d\u5916 \u7684 \u7ec8\u7aef \u4e2d \u542f\u52a8 \u793a\u4f8b \u573a\u666f \uff08 \u8ddf\u968f \u9886\u5148 \u7684 \u8f66\u8f86 \uff09 \uff1a python scenario _ runner . py -- scenario FollowLeadingVehicle _ 1 -- reloadWorld \u5982\u679c \u60a8 \u9700\u8981 \u5e2e\u52a9 \u6216 \u60f3\u8981 \u63a2\u7d22 \u5176\u4ed6 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u8bf7 \u6309 \u5982\u4e0b \u65b9\u5f0f \u542f\u52a8 \u573a\u666f \u8fd0\u884c \u7a0b\u5e8f \uff1a python scenario _ runner . py -- help \u8981 \u63a7\u5236 \u573a\u666f \u4e2d \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u8bf7 \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c \uff1a python manual _ control . py \u6ce8\u610f : \u5982\u679c \u60a8 \u4e0d \u5e0c\u671b \u81ea\u52a8 \uff08 \u91cd\u65b0 \uff09 \u52a0\u8f7d CARLA \u4e16\u754c \uff0c \u60a8 \u53ef\u4ee5 \u8df3\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 -- reloadWorld \u8fd0\u884c \u4e00\u4e2a \u573a\u666f \u7c7b \u7684 \u6240\u6709 \u573a\u666f \u4e0e \u524d\u9762 \u7684 \u793a\u4f8b \u7c7b\u4f3c \uff0c \u8fd8 \u53ef\u4ee5 \u6267\u884c \u5c5e\u4e8e \u540c \u4e00\u7c7b \uff08 \u4f8b\u5982 \u201c FollowLeadingVehicle \u201d \u7c7b \uff09 \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u573a\u666f \u3002 \u552f\u4e00 \u7684 \u533a\u522b \u662f \uff0c \u60a8 \u6309 \u5982\u4e0b \u65b9\u5f0f \u542f\u52a8 scene _ runner \uff1a python scenario _ runner . py -- scenario group : FollowLeadingVehicle \u8fd0\u884c \u5176\u4ed6 \u573a\u666f \u652f\u6301 \u7684 \u573a\u666f \u5217\u8868 \u4e2d \u63d0\u4f9b \u4e86 \u652f\u6301 \u7684 \u573a\u666f \u5217\u8868 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u4e0d\u540c \u7684 Carla \u57ce\u9547 \u53ef\u80fd \u4f1a \u53d1\u751f \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 \u5fc5\u987b \u9075\u5b88 \u8fd9 \u4e00\u70b9 \u3002 \u4f7f\u7528 OpenSCENARIO \u683c\u5f0f \u8fd0\u884c \u573a\u666f \u8981 \u8fd0\u884c \u57fa\u4e8e OpenSCENARIO \u683c\u5f0f \u7684 \u573a\u666f \uff0c \u8bf7 \u8fd0\u884c ScenarioRunner \uff0c \u5982\u4e0b \u6240\u793a \uff1a python scenario _ runner . py -- openscenario < path / to / xosc - file > \u8bf7 \u6ce8\u610f \uff0c OpenSCENARIO \u652f\u6301 \u548c OpenSCENARIO \u683c\u5f0f \u672c\u8eab \u4ecd \u5728 \u8fdb\u884c \u4e2d \u3002 \u60a8 \u53ef\u4ee5 \u5728 OpenSCENARIO \u652f\u6301 \u4e2d \u627e\u5230 \u66f4 \u591a \u4fe1\u606f \u3002 \u4f7f\u7528 OpenSCENARIO 2.0 \u683c\u5f0f \u8fd0\u884c \u573a\u666f \u8981 \u8fd0\u884c \u57fa\u4e8e OpenSCENARIO 2.0 \u683c\u5f0f \u7684 \u573a\u666f \uff0c \u8bf7 \u8fd0\u884c ScenarioRunner \uff0c \u5982\u4e0b \u6240\u793a \uff1a python scenario _ runner . py -- openscenario2 < path / to / osc - file > \u8981 \u63a7\u5236 \u573a\u666f \u4e2d \u7684 \u81ea\u6211 \u8f66\u8f86 \u6216 \u89c2\u5bdf \u5b83 \uff0c \u8bf7 \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c \uff1a python manual _ control . py - a -- rolename = ego _ vehicle \u6709\u5173 \u5982\u4f55 \u8fd0\u884c OpenSCENARIO 2.0 \u573a\u666f \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 README _ OpenSCENARIO _ 2.0 \u3002 \u4f7f\u7528 \u5177\u6709 Global ParameterDeclaration \u8986\u76d6 \u7684 OpenSCENARIO \u683c\u5f0f \u8fd0\u884c \u573a\u666f python scenario _ runner . py -- openscenario < path / to / xosc - file > -- openscenarioparams ' param1 : value1 , param2 : value2 ' \u8fd0\u884c \u57fa\u4e8e \u8def\u7ebf \u7684 \u573a\u666f \uff08 \u7c7b\u4f3c \u4e8e Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218 \u6311\u6218\u8d5b \uff09 \u8981 \u8fd0\u884c \u57fa\u4e8e \u8def\u7ebf \u7684 \u573a\u666f \uff0c \u8bf7 \u6309 \u5982\u4e0b \u65b9\u5f0f \u8fd0\u884c ScenarioRunner \uff1a python scenario _ runner . py -- route < path / to / route - file > < path / to / scenario _ sample _ file > [ route id ] -- agent < path / to / agent _ file > \u5b9e\u4f8b : python scenario _ runner . py -- route D : / work / workspace / carla _ doc / src / scenario _ runner / srunner / data / routes _ town10 . xml -- agent srunner / autoagents / npc _ agent . py \u5982\u679c \u672a \u63d0\u4f9b \u8def\u7531 ID \uff0c \u5219 \u5c06 \u6267\u884c \u7ed9\u5b9a \u6587\u4ef6 \u4e2d \u7684 \u6240\u6709 \u8def\u7ebf \u3002 \u901a\u8fc7 \u8fd9\u6837 \u505a \uff0c ScenarioRunner \u4f1a \u5c06 \u573a\u666f \u4e0e \u8def\u7ebf \u5339\u914d \u76f8\u5339\u914d \uff0c \u5e76\u4e14 \u5f53 \u81ea\u6211 \u8f66\u8f86 \u5728 \u9644\u8fd1 \u65f6 \u5b83\u4eec \u4f1a \u6fc0\u6d3b \u3002 \u7136\u800c \uff0c \u8def\u7ebf \u9700\u8981 \u4e00\u4e2a \u81ea\u4e3b \u4ee3\u7406 \u6765 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u3002 srunner / autoagents / \u4e2d \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u793a\u4f8b \u3002 \u6709\u5173 \u4ee3\u7406 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u67e5\u770b \u667a\u80fd \u4f53 \u6587\u6863 \u3002","title":"\u7b2c\u4e00\u6b65"},{"location":"scenario_runner/getting_started/#_1","text":"\u91cd\u8981 \u672c \u6559\u7a0b \u53c2\u8003 \u4e86 Carla \u7684 \u6700\u65b0 \u7248\u672c \uff08 \u81f3\u5c11 0.9 . 5 \uff09 \u6b22\u8fce \u6765\u5230 Carla \u7684 ScenarioRunner \uff01 \u672c \u6559\u7a0b \u63d0\u4f9b \u4e86 \u5f00\u59cb \u4f7f\u7528 Carla \u7684 ScenarioRunner \u57fa\u672c \u6b65\u9aa4 \u3002 \u4ece \u6211\u4eec \u7684 GitHub \u9875\u9762 \u4e0b\u8f7d \u6700\u65b0 \u7248\u672c \uff0c \u5e76 \u5c06 \u5305 \u7684 \u6240\u6709 \u5185\u5bb9 \u63d0\u53d6 \u5230 \u60a8 \u9009\u62e9 \u7684 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u3002 \u53d1\u5e03 \u5305 \u5305\u542b \u4ee5\u4e0b \u5185\u5bb9 \u4ee5\u4e0b\u5185\u5bb9 Carla \u7684 ScenarioRunner \u7528 Python \u7f16\u5199 \u7684 \u4e00\u4e9b \u793a\u4f8b \u573a\u666f \u3002","title":"\u7b2c\u4e00\u6b65"},{"location":"scenario_runner/getting_started/#_2","text":"\u5f53\u524d \u7248\u672c \u8bbe\u8ba1 \u7528\u4e8e Ubuntu 18.04 \u3001 Python 3.6 \u3002 \u6839\u636e \u60a8 \u7684 Python \u7248\u672c \uff0c \u6267\u884c \uff1a # Python 2 . x sudo apt remove python - networkx # if installed , remove old version of networkx pip2 install -- user - r requirements . txt # Python 3 . x sudo apt remove python3 - networkx # if installed , remove old version of networkx pip3 install -- user - r requirements . txt \u6ce8\u610f : \u4e0d \u652f\u6301 \u9ad8\u4e8e v0.8 \u7684 py - tree \u3002","title":"\u5b89\u88c5 \u5148\u51b3\u6761\u4ef6"},{"location":"scenario_runner/getting_started/#_3","text":"\u9996\u5148 \uff0c \u60a8 \u9700\u8981 \u4ece Carla \u83b7\u53d6 \u6700\u65b0 \u7684 \u4e3b \u5206\u652f \u3002 \u7136\u540e \u60a8 \u5fc5\u987b \u5c06 Carla Python API \u5305\u542b \u5230 Python \u8def\u5f84 \u4e2d \uff1a export CARLA _ ROOT = / path / to / your / carla / installation export PYTHONPATH = $ PYTHONPATH : $ { CARLA _ ROOT } / PythonAPI / carla / dist / carla - < VERSION > . egg : $ { CARLA _ ROOT } / PythonAPI / carla / agents : $ { CARLA _ ROOT } / PythonAPI / carla \u7b14\u8bb0 : $ { CARLA _ ROOT } \u9700\u8981 \u4f7f\u7528 \u60a8 \u7684 Carla \u5b89\u88c5 \u8def\u5f84 \u66ff\u6362 \uff0c \u865a\u5e7b \u4f7f\u7528 \u6b63\u786e \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u66ff\u6362 \u3002 \u5982\u679c \u60a8 \u4ece \u4ee3\u7801 \u6e90\u4ee3\u7801 \u7f16\u8bd1 Carla \uff0c egg \u6587\u4ef6 \u53ef\u80fd \u4f4d\u4e8e \uff1a $ { CARLA _ ROOT } / PythonAPI / dist / \u800c \u4e0d\u662f $ { CARLA _ ROOT } / PythonAPI \u3002 \u73b0\u5728 \uff0c \u60a8 \u53ef\u4ee5 \u4ece $ { CARLA _ ROOT } \u542f\u52a8 CARLA \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 . / CarlaUE4 . sh \u5728 \u989d\u5916 \u7684 \u7ec8\u7aef \u4e2d \u542f\u52a8 \u793a\u4f8b \u573a\u666f \uff08 \u8ddf\u968f \u9886\u5148 \u7684 \u8f66\u8f86 \uff09 \uff1a python scenario _ runner . py -- scenario FollowLeadingVehicle _ 1 -- reloadWorld \u5982\u679c \u60a8 \u9700\u8981 \u5e2e\u52a9 \u6216 \u60f3\u8981 \u63a2\u7d22 \u5176\u4ed6 \u547d\u4ee4 \u547d\u4ee4\u884c \u53c2\u6570 \uff0c \u8bf7 \u6309 \u5982\u4e0b \u65b9\u5f0f \u542f\u52a8 \u573a\u666f \u8fd0\u884c \u7a0b\u5e8f \uff1a python scenario _ runner . py -- help \u8981 \u63a7\u5236 \u573a\u666f \u4e2d \u7684 \u81ea\u6211 \u8f66\u8f86 \uff0c \u8bf7 \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c \uff1a python manual _ control . py \u6ce8\u610f : \u5982\u679c \u60a8 \u4e0d \u5e0c\u671b \u81ea\u52a8 \uff08 \u91cd\u65b0 \uff09 \u52a0\u8f7d CARLA \u4e16\u754c \uff0c \u60a8 \u53ef\u4ee5 \u8df3\u8fc7 \u547d\u4ee4 \u547d\u4ee4\u884c \u9009\u9879 -- reloadWorld","title":"\u8fd0\u884c \u4ee5\u4e0b \u8f66\u8f86 \u793a\u4f8b"},{"location":"scenario_runner/getting_started/#_4","text":"\u4e0e \u524d\u9762 \u7684 \u793a\u4f8b \u7c7b\u4f3c \uff0c \u8fd8 \u53ef\u4ee5 \u6267\u884c \u5c5e\u4e8e \u540c \u4e00\u7c7b \uff08 \u4f8b\u5982 \u201c FollowLeadingVehicle \u201d \u7c7b \uff09 \u7684 \u4e00\u7cfb \u7cfb\u5217 \u4e00\u7cfb\u5217 \u573a\u666f \u3002 \u552f\u4e00 \u7684 \u533a\u522b \u662f \uff0c \u60a8 \u6309 \u5982\u4e0b \u65b9\u5f0f \u542f\u52a8 scene _ runner \uff1a python scenario _ runner . py -- scenario group : FollowLeadingVehicle","title":"\u8fd0\u884c \u4e00\u4e2a \u573a\u666f \u7c7b \u7684 \u6240\u6709 \u573a\u666f"},{"location":"scenario_runner/getting_started/#_5","text":"\u652f\u6301 \u7684 \u573a\u666f \u5217\u8868 \u4e2d \u63d0\u4f9b \u4e86 \u652f\u6301 \u7684 \u573a\u666f \u5217\u8868 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u4e0d\u540c \u7684 Carla \u57ce\u9547 \u53ef\u80fd \u4f1a \u53d1\u751f \u4e0d\u540c \u7684 \u573a\u666f \u3002 \u542f\u52a8 Carla \u670d\u52a1 \u52a1\u5668 \u670d\u52a1\u5668 \u670d\u52a1\u5668\u65f6 \u5fc5\u987b \u9075\u5b88 \u8fd9 \u4e00\u70b9 \u3002","title":"\u8fd0\u884c \u5176\u4ed6 \u573a\u666f"},{"location":"scenario_runner/getting_started/#openscenario","text":"\u8981 \u8fd0\u884c \u57fa\u4e8e OpenSCENARIO \u683c\u5f0f \u7684 \u573a\u666f \uff0c \u8bf7 \u8fd0\u884c ScenarioRunner \uff0c \u5982\u4e0b \u6240\u793a \uff1a python scenario _ runner . py -- openscenario < path / to / xosc - file > \u8bf7 \u6ce8\u610f \uff0c OpenSCENARIO \u652f\u6301 \u548c OpenSCENARIO \u683c\u5f0f \u672c\u8eab \u4ecd \u5728 \u8fdb\u884c \u4e2d \u3002 \u60a8 \u53ef\u4ee5 \u5728 OpenSCENARIO \u652f\u6301 \u4e2d \u627e\u5230 \u66f4 \u591a \u4fe1\u606f \u3002","title":"\u4f7f\u7528 OpenSCENARIO \u683c\u5f0f \u8fd0\u884c \u573a\u666f"},{"location":"scenario_runner/getting_started/#openscenario-20","text":"\u8981 \u8fd0\u884c \u57fa\u4e8e OpenSCENARIO 2.0 \u683c\u5f0f \u7684 \u573a\u666f \uff0c \u8bf7 \u8fd0\u884c ScenarioRunner \uff0c \u5982\u4e0b \u6240\u793a \uff1a python scenario _ runner . py -- openscenario2 < path / to / osc - file > \u8981 \u63a7\u5236 \u573a\u666f \u4e2d \u7684 \u81ea\u6211 \u8f66\u8f86 \u6216 \u89c2\u5bdf \u5b83 \uff0c \u8bf7 \u6253\u5f00 \u53e6 \u4e00\u4e2a \u7ec8\u7aef \u5e76 \u8fd0\u884c \uff1a python manual _ control . py - a -- rolename = ego _ vehicle \u6709\u5173 \u5982\u4f55 \u8fd0\u884c OpenSCENARIO 2.0 \u573a\u666f \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 README _ OpenSCENARIO _ 2.0 \u3002 \u4f7f\u7528 \u5177\u6709 Global ParameterDeclaration \u8986\u76d6 \u7684 OpenSCENARIO \u683c\u5f0f \u8fd0\u884c \u573a\u666f python scenario _ runner . py -- openscenario < path / to / xosc - file > -- openscenarioparams ' param1 : value1 , param2 : value2 '","title":"\u4f7f\u7528 OpenSCENARIO 2.0 \u683c\u5f0f \u8fd0\u884c \u573a\u666f"},{"location":"scenario_runner/getting_started/#carla","text":"\u8981 \u8fd0\u884c \u57fa\u4e8e \u8def\u7ebf \u7684 \u573a\u666f \uff0c \u8bf7 \u6309 \u5982\u4e0b \u65b9\u5f0f \u8fd0\u884c ScenarioRunner \uff1a python scenario _ runner . py -- route < path / to / route - file > < path / to / scenario _ sample _ file > [ route id ] -- agent < path / to / agent _ file > \u5b9e\u4f8b : python scenario _ runner . py -- route D : / work / workspace / carla _ doc / src / scenario _ runner / srunner / data / routes _ town10 . xml -- agent srunner / autoagents / npc _ agent . py \u5982\u679c \u672a \u63d0\u4f9b \u8def\u7531 ID \uff0c \u5219 \u5c06 \u6267\u884c \u7ed9\u5b9a \u6587\u4ef6 \u4e2d \u7684 \u6240\u6709 \u8def\u7ebf \u3002 \u901a\u8fc7 \u8fd9\u6837 \u505a \uff0c ScenarioRunner \u4f1a \u5c06 \u573a\u666f \u4e0e \u8def\u7ebf \u5339\u914d \u76f8\u5339\u914d \uff0c \u5e76\u4e14 \u5f53 \u81ea\u6211 \u8f66\u8f86 \u5728 \u9644\u8fd1 \u65f6 \u5b83\u4eec \u4f1a \u6fc0\u6d3b \u3002 \u7136\u800c \uff0c \u8def\u7ebf \u9700\u8981 \u4e00\u4e2a \u81ea\u4e3b \u4ee3\u7406 \u6765 \u63a7\u5236 \u81ea\u6211 \u8f66\u8f86 \u3002 srunner / autoagents / \u4e2d \u63d0\u4f9b \u4e86 \u51e0\u4e2a \u793a\u4f8b \u3002 \u6709\u5173 \u4ee3\u7406 \u7684 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u67e5\u770b \u667a\u80fd \u4f53 \u6587\u6863 \u3002","title":"\u8fd0\u884c \u57fa\u4e8e \u8def\u7ebf \u7684 \u573a\u666f \uff08 \u7c7b\u4f3c \u4e8e Carla \u81ea\u52a8 \u9a7e\u9a76 \u6311\u6218\u8d5b \uff09"},{"location":"scenario_runner/list_of_scenarios/","text":"\u652f\u6301 \u573a\u666f \u5217\u8868 \u6b22\u8fce \u6765\u5230 CARLA \u7684 ScenarioRunner \uff01 \u672c \u6587\u6863 \u63d0\u4f9b \u4e86 \u5f53\u524d \u652f\u6301 \u7684 \u6240\u6709 \u573a\u666f \u7684 \u5217\u8868 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u573a\u666f \u7684 \u7b80\u77ed \u63cf\u8ff0 \u3002 FollowLeadingVehicle \u8be5 \u573a\u666f \u5b9e\u73b0 \u4e86 \u4e00\u79cd \u5e38\u89c1 \u7684 \u9a7e\u9a76 \u884c\u4e3a \uff0c \u5176\u4e2d \u7528\u6237 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u8ddf\u968f \u5728 Town01 \u7684 \u7ed9\u5b9a \u9053\u8def \u4e0a \u884c\u9a76 \u7684 \u9886\u5148 \u8f66\u8f86 \u3002 \u5728 \u67d0\u4e2a \u65f6\u523b \uff0c \u9886\u5148 \u7684 \u6c7d\u8f66 \u51cf\u901f \u5e76 \u6700\u7ec8 \u505c \u4e86 \u4e0b\u6765 \u3002 \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u505a\u51fa \u76f8\u5e94 \u53cd\u5e94 \u4ee5 \u907f\u514d \u78b0\u649e \u3002 \u8be5 \u573a\u666f \u4f1a\u56e0 \u8d85\u65f6 \u800c \u7ed3\u675f \uff0c \u6216\u8005 \u5982\u679c \u81ea\u6211 \u8f66\u8f86 \u505c \u5728 \u8ddd\u79bb \u9886\u5148 \u8f66\u8f86 \u8db3\u591f \u8fd1 \u7684 \u4f4d\u7f6e \u3002 FollowLeadingVehicleWithObstacle \u6b64 \u573a\u666f \u4e0e \u201c FollowLeadingVehicle \u201d \u975e\u5e38 \u76f8\u4f3c \u3002 \u552f\u4e00 \u7684 \u533a\u522b \u662f \uff0c \u9886\u5148 \u8f66\u8f86 \u524d\u9762 \u6709 \u4e00\u4e2a \uff08 \u9690\u85cf \u7684 \uff09 \u969c\u788d \u969c\u788d\u7269 \u6321\u4f4f \u4e86 \u9053\u8def \u3002 VehicleTurningRight \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u81ea\u6211 \u8f66\u8f86 \u4ece \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u53f3\u8f6c \uff0c \u5176\u4e2d \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u7a81\u7136 \u9a76\u5165 \u81ea\u6211 \u8f66\u8f86 \u7684 \u9053\u8def \uff0c \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u76f8\u5e94 \u5730 \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u540e \uff0c \u9a91\u8f66 \u9a91\u8f66\u4eba \u6e05\u7406 \u9053\u8def \uff0c \u4ee5\u4fbf \u672c\u8f66 \u53ef\u4ee5 \u7ee7\u7eed \u884c\u9a76 \u3002 VehicleTurningLeft \u6b64 \u573a\u666f \u7c7b\u4f3c \u4e8e \u201c VehicleTurningRight \u201d \u3002 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u5728\u4e8e \uff0c \u81ea\u6211 \u8f66\u8f86 \u4ece \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u5de6\u8f6c \u3002 OppositeVehicleRunningRedLight \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6d4b\u8bd5 \u4e86 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u7684 \u975e\u6cd5 \u884c\u4e3a \u975e\u6cd5\u884c\u4e3a \u3002 \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5728 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u7b49\u5f85 \uff0c \u4f46 \u8fdd\u89c4 \u7ea2\u706f \u95ef\u7ea2\u706f \u3002 \u63a5\u8fd1 \u7684 \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u6b63\u786e \u5904\u7406 \u6b63\u786e\u5904\u7406 \u8fd9\u79cd \u60c5\u51b5 \uff0c \u5373 \u5c3d\u7ba1 \u6709 \u7eff\u8272 \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u4f46 \u5b83 \u5fc5\u987b \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u7b49\u5f85 \uff0c \u76f4\u5230 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u518d\u6b21 \u7545\u901a \u65e0\u963b \u7545\u901a\u65e0\u963b \u3002 \u4e4b\u540e \uff0c \u5b83 \u5e94\u8be5 \u7ee7\u7eed \u884c\u9a76 \u3002 StationaryObjectCrossing \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u9759\u6b62 \u5728 \u8def \u4e2d\u95f4 \u7b49\u5f85 \uff0c \u6321\u4f4f \u4e86 \u672c\u8f66 \u7684 \u9053\u8def \u3002 \u56e0\u6b64 \uff0c \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u505c \u5728 \u9a91\u8f66 \u9a91\u8f66\u4eba \u7684 \u524d\u9762 \u3002 DynamicObjectCrossing \u8fd9 \u4e0e \u201c StationaryObjectCrossing \u201d \u7c7b\u4f3c \uff0c \u4f46 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u5728\u4e8e \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u662f \u52a8\u6001 \u7684 \u3002 \u5b83 \u7a81\u7136 \u649e \u5230 \u4e86 \u81ea\u6211 \u8f66\u8f86 \u7684 \u8def\u7ebf \uff0c \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u76f8\u5e94 \u5730 \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u540e \uff0c \u9a91\u8f66 \u9a91\u8f66\u4eba \u5c06 \u6e05\u7406 \u9053\u8def \uff0c \u4ee5\u4fbf \u81ea\u6211 \u8f66\u8f86 \u53ef\u4ee5 \u7ee7\u7eed \u884c\u9a76 \u3002 NoSignalJunctionCrossing \u6b64 \u573a\u666f \u6d4b\u8bd5 \u4e24\u8f86 \u8f66\u8f86 \u5728 \u6ca1\u6709 \u4fe1\u53f7 \u7684 \u8def\u53e3 \u4ea4\u53c9 \u7684 \u60c5\u51b5 \u4e0b \u8fdb\u884c \u534f\u5546 \u3002 \u81ea\u6211 \u8f66\u8f86 \u6b63\u5728 \u7a7f\u8fc7 \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u8def\u53e3 \u5e76 \u9047\u5230 \u53e6 \u4e00\u8f86 \u7a7f\u8fc7 \u8def\u53e3 \u7684 \u8f66\u8f86 \u3002 \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u907f\u514d \u78b0\u649e \u5e76 \u7a7f\u8fc7 \u8def\u53e3 \u624d\u80fd \u6210\u529f \u3002 ControlLoss \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6d4b\u8bd5 \u7531\u4e8e \u8def\u51b5 \u6076\u52a3 \u7b49 \u539f\u56e0 \u5bfc\u81f4 \u8f66\u8f86 \u5931\u63a7 \uff0c \u5e76 \u68c0\u67e5 \u8f66\u8f86 \u662f\u5426 \u91cd\u65b0 \u83b7\u5f97 \u63a7\u5236 \u5e76 \u7ea0\u6b63 \u5176 \u8def\u7ebf \u3002 ManeuverOppositeDirection \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u8f66\u8f86 \u5728 \u767d\u5929 \u3001 \u5929\u6c14 \u6674\u6717 \u5929\u6c14\u6674\u6717 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u5728 \u519c\u6751 \u5730\u533a \u7684 \u975e \u8def\u53e3 \u8d85\u8d8a \u53e6 \u4e00\u8f86 \u8f66\u8f86 \uff0c \u5e76 \u4fb5\u5165 \u53e6 \u4e00\u8f86 \u5411 \u76f8\u53cd \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002 OtherLeadingVehicle \u8be5 \u573a\u666f \u5b9e\u73b0 \u4e86 \u4e00\u79cd \u5e38\u89c1 \u7684 \u9a7e\u9a76 \u884c\u4e3a \uff0c \u5176\u4e2d \u7528\u6237 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u8ddf\u968f \u5728 \u7ed9\u5b9a \u9053\u8def \u4e0a \u884c\u9a76 \u7684 \u9886\u5148 \u8f66\u8f86 \u3002 \u5728 \u67d0\u4e2a \u65f6\u523b \uff0c \u9886\u5148 \u7684 \u6c7d\u8f66 \u5fc5\u987b \u51cf\u901f \u3002 \u672c\u8f66 \u5fc5\u987b \u505a\u51fa \u76f8\u5e94 \u53cd\u5e94 \uff0c \u6539\u53d8 \u8f66\u9053 \u4ee5 \u907f\u514d \u78b0\u649e \uff0c \u5e76 \u8ddf\u968f \u53e6 \u4e00 \u8f66\u9053 \u7684 \u9886\u5148 \u8f66\u8f86 \u3002 \u8be5 \u573a\u666f \u4f1a\u56e0 \u8d85\u65f6 \u6216 \u81ea\u6211 \u8f66\u8f86 \u884c\u9a76 \u4e00\u5b9a \u8ddd\u79bb \u800c \u7ed3\u675f \u3002 SignalizedJunctionRightTurn \u5728 \u8fd9\u4e2a \u573a\u666f \u4e2d \uff0c \u6d4b\u8bd5 \u4e86 \u82f1\u96c4 \u6f14\u5458 \u5728 \u4fe1\u53f7 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u6ca1\u6709 \u78b0\u649e \u7684 \u60c5\u51b5 \u4e0b \u7684 \u53f3\u8f6c \u3002 \u82f1\u96c4 \u8f66\u8f86 \u5728 \u5e02\u533a \u7684 \u4fe1\u53f7 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u53f3\u8f6c \uff0c \u5e76 \u4e0e \u53e6 \u4e00\u8f86 \u6700\u521d \u4ece \u6a2a\u5411 \u76f4\u884c \u7684 \u8f66\u8f86 \u540c \u5411 \u8f6c\u5f2f \u3002 SignalizedJunctionLeftTurn \u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u82f1\u96c4 \u8f66\u8f86 \u5728 \u5e02\u533a \u7684 \u4fe1\u53f7 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5de6\u8f6c \uff0c \u5e76 \u6a2a\u7a7f \u4e86 \u53e6 \u4e00\u8f86 \u4ece \u76f8\u53cd \u65b9\u5411 \u76f4\u9a76 \u800c \u6765 \u7684 \u8f66\u8f86 \u7684 \u8def\u5f84 \u3002","title":"\u652f\u6301 \u573a\u666f \u5217\u8868"},{"location":"scenario_runner/list_of_scenarios/#_1","text":"\u6b22\u8fce \u6765\u5230 CARLA \u7684 ScenarioRunner \uff01 \u672c \u6587\u6863 \u63d0\u4f9b \u4e86 \u5f53\u524d \u652f\u6301 \u7684 \u6240\u6709 \u573a\u666f \u7684 \u5217\u8868 \uff0c \u4ee5\u53ca \u6bcf\u4e2a \u573a\u666f \u7684 \u7b80\u77ed \u63cf\u8ff0 \u3002","title":"\u652f\u6301 \u573a\u666f \u5217\u8868"},{"location":"scenario_runner/list_of_scenarios/#followleadingvehicle","text":"\u8be5 \u573a\u666f \u5b9e\u73b0 \u4e86 \u4e00\u79cd \u5e38\u89c1 \u7684 \u9a7e\u9a76 \u884c\u4e3a \uff0c \u5176\u4e2d \u7528\u6237 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u8ddf\u968f \u5728 Town01 \u7684 \u7ed9\u5b9a \u9053\u8def \u4e0a \u884c\u9a76 \u7684 \u9886\u5148 \u8f66\u8f86 \u3002 \u5728 \u67d0\u4e2a \u65f6\u523b \uff0c \u9886\u5148 \u7684 \u6c7d\u8f66 \u51cf\u901f \u5e76 \u6700\u7ec8 \u505c \u4e86 \u4e0b\u6765 \u3002 \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u505a\u51fa \u76f8\u5e94 \u53cd\u5e94 \u4ee5 \u907f\u514d \u78b0\u649e \u3002 \u8be5 \u573a\u666f \u4f1a\u56e0 \u8d85\u65f6 \u800c \u7ed3\u675f \uff0c \u6216\u8005 \u5982\u679c \u81ea\u6211 \u8f66\u8f86 \u505c \u5728 \u8ddd\u79bb \u9886\u5148 \u8f66\u8f86 \u8db3\u591f \u8fd1 \u7684 \u4f4d\u7f6e \u3002","title":"FollowLeadingVehicle"},{"location":"scenario_runner/list_of_scenarios/#followleadingvehiclewithobstacle","text":"\u6b64 \u573a\u666f \u4e0e \u201c FollowLeadingVehicle \u201d \u975e\u5e38 \u76f8\u4f3c \u3002 \u552f\u4e00 \u7684 \u533a\u522b \u662f \uff0c \u9886\u5148 \u8f66\u8f86 \u524d\u9762 \u6709 \u4e00\u4e2a \uff08 \u9690\u85cf \u7684 \uff09 \u969c\u788d \u969c\u788d\u7269 \u6321\u4f4f \u4e86 \u9053\u8def \u3002","title":"FollowLeadingVehicleWithObstacle"},{"location":"scenario_runner/list_of_scenarios/#vehicleturningright","text":"\u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u81ea\u6211 \u8f66\u8f86 \u4ece \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u53f3\u8f6c \uff0c \u5176\u4e2d \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u7a81\u7136 \u9a76\u5165 \u81ea\u6211 \u8f66\u8f86 \u7684 \u9053\u8def \uff0c \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u76f8\u5e94 \u5730 \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u540e \uff0c \u9a91\u8f66 \u9a91\u8f66\u4eba \u6e05\u7406 \u9053\u8def \uff0c \u4ee5\u4fbf \u672c\u8f66 \u53ef\u4ee5 \u7ee7\u7eed \u884c\u9a76 \u3002","title":"VehicleTurningRight"},{"location":"scenario_runner/list_of_scenarios/#vehicleturningleft","text":"\u6b64 \u573a\u666f \u7c7b\u4f3c \u4e8e \u201c VehicleTurningRight \u201d \u3002 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u5728\u4e8e \uff0c \u81ea\u6211 \u8f66\u8f86 \u4ece \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u5de6\u8f6c \u3002","title":"VehicleTurningLeft"},{"location":"scenario_runner/list_of_scenarios/#oppositevehiclerunningredlight","text":"\u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6d4b\u8bd5 \u4e86 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u7684 \u975e\u6cd5 \u884c\u4e3a \u975e\u6cd5\u884c\u4e3a \u3002 \u53e6 \u4e00\u8f86 \u8f86\u8f66 \u4e00\u8f86\u8f66 \u5728 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u7b49\u5f85 \uff0c \u4f46 \u8fdd\u89c4 \u7ea2\u706f \u95ef\u7ea2\u706f \u3002 \u63a5\u8fd1 \u7684 \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u6b63\u786e \u5904\u7406 \u6b63\u786e\u5904\u7406 \u8fd9\u79cd \u60c5\u51b5 \uff0c \u5373 \u5c3d\u7ba1 \u6709 \u7eff\u8272 \u4ea4\u901a \u4ea4\u901a\u706f \uff0c \u4f46 \u5b83 \u5fc5\u987b \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u7b49\u5f85 \uff0c \u76f4\u5230 \u5341\u5b57 \u8def\u53e3 \u5341\u5b57\u8def \u5341\u5b57\u8def\u53e3 \u518d\u6b21 \u7545\u901a \u65e0\u963b \u7545\u901a\u65e0\u963b \u3002 \u4e4b\u540e \uff0c \u5b83 \u5e94\u8be5 \u7ee7\u7eed \u884c\u9a76 \u3002","title":"OppositeVehicleRunningRedLight"},{"location":"scenario_runner/list_of_scenarios/#stationaryobjectcrossing","text":"\u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u9759\u6b62 \u5728 \u8def \u4e2d\u95f4 \u7b49\u5f85 \uff0c \u6321\u4f4f \u4e86 \u672c\u8f66 \u7684 \u9053\u8def \u3002 \u56e0\u6b64 \uff0c \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u505c \u5728 \u9a91\u8f66 \u9a91\u8f66\u4eba \u7684 \u524d\u9762 \u3002","title":"StationaryObjectCrossing"},{"location":"scenario_runner/list_of_scenarios/#dynamicobjectcrossing","text":"\u8fd9 \u4e0e \u201c StationaryObjectCrossing \u201d \u7c7b\u4f3c \uff0c \u4f46 \u4e0d\u540c \u4e4b\u5904 \u4e0d\u540c\u4e4b\u5904 \u5728\u4e8e \u9a91 \u81ea\u884c \u884c\u8f66 \u81ea\u884c\u8f66 \u7684 \u4eba \u662f \u52a8\u6001 \u7684 \u3002 \u5b83 \u7a81\u7136 \u649e \u5230 \u4e86 \u81ea\u6211 \u8f66\u8f86 \u7684 \u8def\u7ebf \uff0c \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u76f8\u5e94 \u5730 \u505c\u4e0b \u4e0b\u6765 \u505c\u4e0b\u6765 \u3002 \u4e00\u6bb5 \u65f6\u95f4 \u6bb5\u65f6\u95f4 \u4e00\u6bb5\u65f6\u95f4 \u540e \uff0c \u9a91\u8f66 \u9a91\u8f66\u4eba \u5c06 \u6e05\u7406 \u9053\u8def \uff0c \u4ee5\u4fbf \u81ea\u6211 \u8f66\u8f86 \u53ef\u4ee5 \u7ee7\u7eed \u884c\u9a76 \u3002","title":"DynamicObjectCrossing"},{"location":"scenario_runner/list_of_scenarios/#nosignaljunctioncrossing","text":"\u6b64 \u573a\u666f \u6d4b\u8bd5 \u4e24\u8f86 \u8f66\u8f86 \u5728 \u6ca1\u6709 \u4fe1\u53f7 \u7684 \u8def\u53e3 \u4ea4\u53c9 \u7684 \u60c5\u51b5 \u4e0b \u8fdb\u884c \u534f\u5546 \u3002 \u81ea\u6211 \u8f66\u8f86 \u6b63\u5728 \u7a7f\u8fc7 \u6ca1\u6709 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 \u8def\u53e3 \u5e76 \u9047\u5230 \u53e6 \u4e00\u8f86 \u7a7f\u8fc7 \u8def\u53e3 \u7684 \u8f66\u8f86 \u3002 \u81ea\u6211 \u8f66\u8f86 \u5fc5\u987b \u907f\u514d \u78b0\u649e \u5e76 \u7a7f\u8fc7 \u8def\u53e3 \u624d\u80fd \u6210\u529f \u3002","title":"NoSignalJunctionCrossing"},{"location":"scenario_runner/list_of_scenarios/#controlloss","text":"\u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u6d4b\u8bd5 \u7531\u4e8e \u8def\u51b5 \u6076\u52a3 \u7b49 \u539f\u56e0 \u5bfc\u81f4 \u8f66\u8f86 \u5931\u63a7 \uff0c \u5e76 \u68c0\u67e5 \u8f66\u8f86 \u662f\u5426 \u91cd\u65b0 \u83b7\u5f97 \u63a7\u5236 \u5e76 \u7ea0\u6b63 \u5176 \u8def\u7ebf \u3002","title":"ControlLoss"},{"location":"scenario_runner/list_of_scenarios/#maneuveroppositedirection","text":"\u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u8f66\u8f86 \u5728 \u767d\u5929 \u3001 \u5929\u6c14 \u6674\u6717 \u5929\u6c14\u6674\u6717 \u7684 \u60c5\u51b5 \u4e0b \uff0c \u5728 \u519c\u6751 \u5730\u533a \u7684 \u975e \u8def\u53e3 \u8d85\u8d8a \u53e6 \u4e00\u8f86 \u8f66\u8f86 \uff0c \u5e76 \u4fb5\u5165 \u53e6 \u4e00\u8f86 \u5411 \u76f8\u53cd \u65b9\u5411 \u884c\u9a76 \u7684 \u8f66\u8f86 \u3002","title":"ManeuverOppositeDirection"},{"location":"scenario_runner/list_of_scenarios/#otherleadingvehicle","text":"\u8be5 \u573a\u666f \u5b9e\u73b0 \u4e86 \u4e00\u79cd \u5e38\u89c1 \u7684 \u9a7e\u9a76 \u884c\u4e3a \uff0c \u5176\u4e2d \u7528\u6237 \u63a7\u5236 \u7684 \u81ea\u6211 \u8f66\u8f86 \u8ddf\u968f \u5728 \u7ed9\u5b9a \u9053\u8def \u4e0a \u884c\u9a76 \u7684 \u9886\u5148 \u8f66\u8f86 \u3002 \u5728 \u67d0\u4e2a \u65f6\u523b \uff0c \u9886\u5148 \u7684 \u6c7d\u8f66 \u5fc5\u987b \u51cf\u901f \u3002 \u672c\u8f66 \u5fc5\u987b \u505a\u51fa \u76f8\u5e94 \u53cd\u5e94 \uff0c \u6539\u53d8 \u8f66\u9053 \u4ee5 \u907f\u514d \u78b0\u649e \uff0c \u5e76 \u8ddf\u968f \u53e6 \u4e00 \u8f66\u9053 \u7684 \u9886\u5148 \u8f66\u8f86 \u3002 \u8be5 \u573a\u666f \u4f1a\u56e0 \u8d85\u65f6 \u6216 \u81ea\u6211 \u8f66\u8f86 \u884c\u9a76 \u4e00\u5b9a \u8ddd\u79bb \u800c \u7ed3\u675f \u3002","title":"OtherLeadingVehicle"},{"location":"scenario_runner/list_of_scenarios/#signalizedjunctionrightturn","text":"\u5728 \u8fd9\u4e2a \u573a\u666f \u4e2d \uff0c \u6d4b\u8bd5 \u4e86 \u82f1\u96c4 \u6f14\u5458 \u5728 \u4fe1\u53f7 \u4ea4\u53c9 \u4ea4\u53c9\u53e3 \u6ca1\u6709 \u78b0\u649e \u7684 \u60c5\u51b5 \u4e0b \u7684 \u53f3\u8f6c \u3002 \u82f1\u96c4 \u8f66\u8f86 \u5728 \u5e02\u533a \u7684 \u4fe1\u53f7 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u53f3\u8f6c \uff0c \u5e76 \u4e0e \u53e6 \u4e00\u8f86 \u6700\u521d \u4ece \u6a2a\u5411 \u76f4\u884c \u7684 \u8f66\u8f86 \u540c \u5411 \u8f6c\u5f2f \u3002","title":"SignalizedJunctionRightTurn"},{"location":"scenario_runner/list_of_scenarios/#signalizedjunctionleftturn","text":"\u5728 \u8fd9\u79cd \u60c5\u51b5 \u4e0b \uff0c \u82f1\u96c4 \u8f66\u8f86 \u5728 \u5e02\u533a \u7684 \u4fe1\u53f7 \u4ea4\u53c9 \u53c9\u8def \u8def\u53e3 \u53c9\u8def\u53e3 \u4ea4\u53c9\u8def\u53e3 \u5de6\u8f6c \uff0c \u5e76 \u6a2a\u7a7f \u4e86 \u53e6 \u4e00\u8f86 \u4ece \u76f8\u53cd \u65b9\u5411 \u76f4\u9a76 \u800c \u6765 \u7684 \u8f66\u8f86 \u7684 \u8def\u5f84 \u3002","title":"SignalizedJunctionLeftTurn"},{"location":"scenario_runner/metrics_module/","text":"\u6307\u6807 \u6a21\u5757 \u6307\u6807 \u6a21\u5757 \u4f9d\u9760 CARLA \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6765 \u65b9\u4fbf \u8ba1\u7b97 \u548c \u76d1\u63a7 \u4efb\u4f55 \u7c7b\u578b \u7684 \u53c2\u6570 \u3002 \u573a\u666f \u5b8c\u6210 \u540e \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5b58\u50a8 \u6a21\u62df \u4fe1\u606f \u3002 \u7136\u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u6307\u6807 \uff0c \u5e76 \u68c0\u67e5 \u76f8\u5e94 \u7684 \u7ed3\u679c \uff0c \u800c \u65e0\u9700 \u4e00\u6b21 \u53c8 \u4e00\u6b21 \u5730 \u8fdb\u884c \u4eff\u771f \u3002 \u672c \u8282 \u4ecb\u7ecd \u4e86 \u6784\u6210 \u8be5 \u6a21\u5757 \u7684 \u4e0d\u540c \u5143\u7d20 \u7684 \u8bf4\u660e \u3001 \u5982\u4f55 \u521b\u5efa \u65b0 \u6307\u6807 \u7684 \u5206\u6b65 \u6559\u7a0b \u4ee5\u53ca \u67e5\u8be2 \u8bb0\u5f55 \u548c \u5b9a\u4e49 \u6307\u6807 \u7684 \u51fd\u6570 \u7684 \u53c2\u8003 \u3002 \u6a21\u5757 \u7ed3\u6784 \u5982\u4f55 \u4f7f\u7528 \u6307\u6807 \u6a21\u5757 1 . \u8bb0\u5f55 \u4e00\u4e2a \u573a\u666f 2 . \u5b9a\u4e49 \u6307\u6807 3 . \u8fd0\u884c \u6307\u6807 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8bb0\u5f55 \u67e5\u8be2 \u53c2\u8003 \u901a\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6570\u636e \u901a\u7528 \u4eff\u771f \u6570\u636e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d8\u6362 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u901f\u5ea6 \u573a\u666f \u706f \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8f66\u706f \u6a21\u5757 \u7ed3\u6784 \u4e0e \u4e3b ScenarioRunner \u6a21\u5757 \u7c7b\u4f3c \uff0c Metrics \u6a21\u5757 \u4f7f\u7528 \u4e3b \u811a\u672c \u8fd0\u884c \uff0c metrics _ manager . py \u5176\u4f59 \u4fe1\u606f \u5305\u542b \u5728 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u5185 \u3002 \u8fd9\u91cc \u7b80\u5355 \u4ecb\u7ecd \u4e00\u4e0b \u4e3b\u8981 \u811a\u672c \u3002 metrics _ manager . py \u2014 \u6a21\u5757 \u7684 \u4e3b \u811a\u672c \u3002 \u8fd0\u884c \u6b64 \u547d\u4ee4 \u4ee5 \u663e\u793a \u4e00\u7ec4 \u6307\u6807 \u7684 \u7ed3\u679c \u3002 \u8be5 \u811a\u672c \u5177\u6709 \u5e38\u7528 \u7684 host \u548c port \u53c2\u6570 \uff0c \u4ee5\u53ca \u66f4 \u591a \u7528\u4e8e \u8bbe\u7f6e \u8981 \u4f7f\u7528 \u7684 \u6307\u6807 \u548c \u8bb0\u5f55 \u7684 \u5185\u5bb9 \u3002 host ( string ) \u2013 CARLA \u4eff\u771f \u8fd0\u884c \u65f6 \u7684 IP \u5730\u5740 \u3002 \u9ed8\u8ba4 \u4e3a ( 127.0 . 0.1 ) \u3002 port ( int ) \u2013 CARLA \u4eff\u771f \u8fd0\u884c \u7684 TCP \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u548c 2001 \u3002 metrics \u2014 \u8981 \u4f7f\u7528 \u7684 \u6307\u6807 \u7684 \u8def\u5f84 \u3002 log \u2014 \u5305\u542b \u8bb0\u5f55 \u7684 . log \u6587\u4ef6 \u7684 \u8def\u5f84 \uff08 \u76f8\u5bf9 \u4e8e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SCENARIO _ RUNNER _ ROOT \uff09 \u3002 criteria ( \u53ef \u9009 ) \u2014 \u5177\u6709 \u573a\u666f \u6761\u4ef6 \u7684 JSON \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u5851\u9020 \u6a21\u5757 \u7684 \u5176\u4f59 \u5143\u7d20 \u53ef\u4ee5 \u5728 \u8be5 srunner / metrics \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u627e\u5230 \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5df2 \u5206\u4e3a \u4e09\u4e2a \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 srunner / metrics / data \u2014 \u5b58\u50a8 \u6709\u5173 \u573a\u666f \u7684 \u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u6709 \u516d\u4e2a \u6587\u4ef6 \uff0c \u5b83\u4eec \u662f \u793a\u4f8b \u6307\u6807 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 srunner / metrics / examples \u2014 \u5305\u542b \u4e00\u4e9b \u793a\u4f8b \u6307\u6807 \uff0c \u4ee5\u53ca \u5305\u542b \u7528\u4e8e \u521b\u5efa \u65b0 \u6307\u6807 \u7684 \u57fa\u7c7b BaseMetric \u7684 \u6307\u6807 \u3002 basic _ metric . py \u2013 \u5305\u542b \u57fa\u7c7b BaseMetric \u3002 \u6240\u6709 \u7684 \u6307\u6807 \u90fd \u662f\u4ece \u5b83 \u7ee7\u627f \u7684 \u3002 criteria _ filter . py \u2013 \u8fd4\u56de \u5305\u542b \u6807\u51c6 \u6700 \u91cd\u8981 \u5c5e\u6027 \u7684 JSON \u3002 distance _ between _ vehicles . py \u2013 \u8fd4\u56de \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5c55\u793a \u5982\u4f55 \u67e5\u8be2 \u8bb0\u5f55 \u3002 distance _ to _ lane _ center . py \u2013 \u8ba1\u7b97 \u8f66\u8f86 \u4f4d\u7f6e \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5c55\u793a \u5982\u4f55 \u8bbf\u95ee \u5730\u56fe API \u4fe1\u606f \u3002 srunner / metrics / tools \u2014 \u5305\u542b \u4e24\u4e2a \u5141\u8bb8 \u67e5\u8be2 \u8bb0\u5f55 \u7684 \u5173\u952e \u811a\u672c \u3002 metrics _ parser . py \u2013 \u5c06 \u8bb0\u5f55 \u63d0\u4f9b \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u8f6c\u6362 \u4e3a \u5b57\u5178 \u3002 metrics _ log . py \u2013 \u63d0\u4f9b \u591a\u79cd \u529f\u80fd \u6765 \u67e5\u8be2 \u4f7f\u7528 metrics _ parser . py \u521b\u5efa \u7684 \u5b57\u5178 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u662f \u8bbf\u95ee \u573a\u666f \u4fe1\u606f \u7684 \u6700 \u7b80\u5355 \u65b9\u6cd5 \u3002 \u5b83\u4eec \u5217\u5728 \u672c\u9875 \u6700\u540e \u4e00\u6bb5 \u7684 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e \u4e2d \u3002 \u5982\u4f55 \u4f7f\u7528 \u6307\u6807 \u6a21\u5757 1 . \u8bb0\u5f55 \u4e00\u4e2a \u573a\u666f \u6307\u6807 \u6a21\u5757 \u9700\u8981 \u8bb0\u5f55 \u4eff\u771f \u624d\u80fd \u5de5\u4f5c \u3002 \u5426\u5219 \uff0c \u5b83 \u6ca1\u6709 \u6570\u636e \u6765 \u8fdb\u884c \u6307\u6807 \u8ba1\u7b97 \u3002 \u4f7f\u7528 record \u53c2\u6570 \u3002 \u6dfb\u52a0 \u5e94\u8be5 \u4fdd\u5b58 \u4fe1\u606f \u4fdd\u5b58\u4fe1\u606f \u7684 \u8def\u5f84 \u3002 \u8be5 \u8def\u5f84 \u5fc5\u987b \u76f8\u5bf9 \u4e8e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SCENARIO _ RUNNER _ ROOT \u3002 python scenario _ runner . py -- scenario < scenario _ name > -- record < path / to / save / the / recorder / file > \u901a\u8fc7 \u8bb0\u5f55 \u573a\u666f \uff0c \u5c06 \u5728 \u6240 \u9700 \u8def\u5f84 \u4e2d \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 \u3002 \u8fd9\u4e9b log \u6587\u4ef6 criteria \u7a0d\u540e \u5c06 \u7528\u4f5c metrics _ manager . py \u7684 \u53c2\u6570 \u3002 1 . CARLA \u8bb0\u5f55 ( . log ) \u2014 \u5305\u542b \u6bcf\u5e27 \u7684 \u4eff\u771f \u6570\u636e \u3002 \u8981 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u6863 \u3002 2 . \u6307\u6807 \u6587\u4ef6 ( . json ) \u2014 \u573a\u666f \u6807\u51c6 \u89e3\u6790 \u4e3a \u5b57\u5178 \uff0c \u5e76 \u5b58\u50a8 \u5728 JSON \u6587\u4ef6 \u4e2d \u3002 \u5b57\u5178 \u7684 \u952e \u662f \u6761\u4ef6 \u7684 \u540d\u79f0 \u3002 \u8fd9\u4e9b \u503c \u662f \u6bcf\u4e2a \u6761\u4ef6 \u7684 \u5c5e\u6027 \u3002 \u6ce8\u610f \u4ec5 \u89e3\u6790 JSON \u53ef \u5e8f\u5217 \u5e8f\u5217\u5316 \u5c5e\u6027 \uff0c \u5176\u4f59 \u5c5e\u6027 \u5c06 \u88ab \u5ffd\u7565 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8fd9 \u4e24\u4e2a \u6587\u4ef6 \u5747 \u4ee5 \u8fd0\u884c \u7684 \u573a\u666f \u547d\u540d \u3002 \u5982\u679c \u573a\u666f \u88ab \u547d\u540d \u4e3a example . py \uff0c \u6587\u4ef6 \u5c06 \u4e3a example . log \u548c example . json \u3002 2 . \u5b9a\u4e49 \u6307\u6807 \u73b0\u5728 \u662f \u521b\u5efa \u5c06 \u7528\u4e8e \u573a\u666f \u7684 \u6240 \u9700 \u6307\u6807 \u7684 \u65f6\u5019 \u4e86 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u65e0\u9650 \u7684 \uff0c \u4f46 \u4e3a\u4e86 \u672c \u6559\u7a0b \u7684 \u76ee\u7684 \uff0c \u5c06 \u4f7f\u7528 srunner / metrics / examples / distance _ between _ vehicles . py \u4e2d \u63cf\u8ff0 \u7684 \u6307\u6807 \u4f5c\u4e3a \u793a\u4f8b \u3002 \u8ba9 \u6211\u4eec \u6df1\u5165 \u7814\u7a76 \u6df1\u5165\u7814\u7a76 \u4e00\u4e0b \u4ee3\u7801 \u672c\u8eab \u3002 class DistanceBetweenVehicles ( BasicMetric ) : \" \" \" \u6307\u6807 \u7c7b DistanceBetweenVehicles \" \" \" def _ create _ metric ( self , town _ map , log , criteria ) : \" \" \" \u5ea6\u91cf \u7684 \u5b9e\u73b0 \u3002 \u8fd9\u662f \u4e00\u4e2a \u793a\u4f8b \uff0c \u5c55\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u901a\u8fc7 \u65e5\u5fd7 \u8bbf\u95ee \u7684 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \" \" \" # \u83b7\u53d6 \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 ID ego _ id = log . get _ ego _ vehicle _ id ( ) adv _ id = log . get _ actor _ ids _ with _ role _ name ( \" scenario \" ) [ 0 ] # Could have also used its type _ id dist _ list = [ ] frames _ list = [ ] # \u83b7\u5f97 \u5e27 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u6d3b\u7740 start _ ego , end _ ego = log . get _ actor _ alive _ frames ( ego _ id ) start _ adv , end _ adv = log . get _ actor _ alive _ frames ( adv _ id ) start = max ( start _ ego , start _ adv ) end = min ( end _ ego , end _ adv ) # \u83b7\u5f97 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u7684 \u8ddd\u79bb for i in range ( start , end ) : # \u83b7\u5f97 \u53d8\u6362 ego _ location = log . get _ actor _ transform ( ego _ id , i ) . location adv _ location = log . get _ actor _ transform ( adv _ id , i ) . location # \u8fc7\u6ee4 \u4e00\u4e9b \u70b9\u4ee5 \u83b7\u5f97 \u66f4\u597d \u7684 \u56fe\u5f62 if adv _ location . z < - 10 : continue dist _ v = ego _ location - adv _ location dist = math . sqrt ( dist _ v . x * dist _ v . x + dist _ v . y * dist _ v . y + dist _ v . z * dist _ v . z ) dist _ list . append ( dist ) frames _ list . append ( i ) # \u4f7f\u7528 matplotlib \u5c55\u793a \u7ed3\u679c plt . plot ( frames _ list , dist _ list ) plt . ylabel ( ' Distance [ m ] ' ) plt . xlabel ( ' Frame number ' ) plt . title ( ' Distance between the ego vehicle and the adversary over time ' ) plt . show ( ) 2.1 . \u5ea6\u91cf \u7684 \u540d\u79f0 . \u9996\u5148 \uff0c \u6b63\u5982 \u524d\u9762 \u63d0\u5230 \u7684 \uff0c \u6240\u6709 \u6307\u6807 \u90fd \u662f \u8be5 BasicMetric \u7c7b \u7684 \u5b50\u7ea7 \u3002 class DistanceBetweenVehicles ( BasicMetric ) : 2.2 . \u4e3b \u65b9\u6cd5 \u7684 \u540d\u79f0 . \u6307\u6807 \u53ea \u9700\u8981 \u4e00\u79cd \u65b9\u6cd5 \u5373\u53ef \u8fd0\u884c \uff0c _ create _ metric ( ) \u65b9\u6cd5 \u5177\u6709 \u4e09\u4e2a \u53c2\u6570 \u3002 town _ map \u2014 \u573a\u666f \u53d1\u751f \u7684 carla . Map ( ) \u5b9e\u4f8b \u3002 log \u2014 MetricsLog \u7c7b \u7684 \u5b9e\u4f8b \uff0c \u5177\u6709 \u8bbf\u95ee \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5b57\u5178 \u6240 \u9700 \u7684 \u6240\u6709 \u51fd\u6570 \u3002 criteria \u2014 \u5e26\u6709 \u6807\u51c6 \u5b57\u5178 \u7684 JSOn \u3002 \u8bb0\u5f55 \u573a\u666f \u65f6 \u63d0\u4f9b \u7684 \u6587\u4ef6 \uff0c \u7a0d\u540e \u63d0\u4f9b \u7ed9 metrics _ manager . py \u3002 def _ create _ metric ( self , town _ map , log , criteria ) : 2.3 . \u5b9e\u73b0 \u6307\u6807 \u3002 \u4ee3\u7801 \u5c06 \u6839\u636e \u6307\u6807 \u672c\u8eab \u800c \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u793a\u4f8b \u6307\u6807 DistanceBetweenVehicles \u8ba1\u7b97 \u672c\u8f66 \u4e0e\u5176 \u8ddf\u968f \u7684 \u6c7d\u8f66 \uff08 \u5bf9\u624b \uff09 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u4e3a\u6b64 \uff0c \u9700\u8981 id \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 \u914d\u5408 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u4f7f\u7528 get _ ego _ vehicle _ id ( ) \u548c get _ actor _ ids _ with _ role _ name ( \" scenario \" ) [ 0 ] \u51fd\u6570 \u4ece \u65e5\u5fd7 \u4e2d \u68c0\u7d22 \u3002 # \u83b7\u53d6 \u4e24\u4e2a \u8f66\u8f86 \u7684 ID ego _ id = log . get _ ego _ vehicle _ id ( ) adv _ id = log . get _ actor _ ids _ with _ role _ name ( \" scenario \" ) [ 0 ] # Could have also used its type _ id \u5b83\u4eec id \u7528 get _ actor _ alive _ frames ( actor _ id ) \u68c0\u7d22 \u8f66\u8f86 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u5e27 \u3002 # \u83b7\u53d6 \u6d3b\u8dc3 \u7684 \u4e24\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5e27 start _ ego , end _ ego = log . get _ actor _ alive _ frames ( ego _ id ) start _ adv , end _ adv = log . get _ actor _ alive _ frames ( adv _ id ) start = max ( start _ ego , start _ adv ) end = min ( end _ ego , end _ adv ) \u73b0\u5728 \u4e00\u5207 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \uff0c \u53ef\u4ee5 \u5faa\u73af \u8fd9\u4e9b \u5e27 \uff0c \u83b7\u53d6 \u5b83\u4eec \u7684 \u53d8\u6362 \u5e76 \u8ba1\u7b97 \u8ddd\u79bb \u3002 \u4f7f\u7528 get _ actor _ transform ( actor _ id , frame ) \u83b7\u5f97 \u53d8\u6362 \uff0c dist _ list = [ ] frames _ list = [ ] ... # \u83b7\u5f97 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u7684 \u8ddd\u79bb for i in range ( start , end ) : # \u83b7\u53d6 \u53d8\u6362 ego _ location = log . get _ actor _ transform ( ego _ id , i ) . location adv _ location = log . get _ actor _ transform ( adv _ id , i ) . location # \u4e3a\u4e86 \u83b7\u5f97 \u66f4\u597d \u7684 \u56fe\u7247 \u8fc7\u6ee4 \u4e00\u4e9b \u70b9 if adv _ location . z < - 10 : continue dist _ v = ego _ location - adv _ location dist = math . sqrt ( dist _ v . x * dist _ v . x + dist _ v . y * dist _ v . y + dist _ v . z * dist _ v . z ) dist _ list . append ( dist ) \u6ce8\u610f \u5bf9\u624b \u7684 \u5782\u76f4 \u60c5\u51b5 \u4ec5 \u8003\u8651 \u5bf9\u624b \u6b63\u5e38 \u884c\u9a76 \u65f6 \u7684 \u60c5\u51b5 \u3002 \u6700\u540e \uff0c \u4f7f\u7528 matplotlib \u5b9a\u4e49 \u8fd0\u884c metrics _ manager . py \u65f6 \u6307\u6807 \u7684 \u8f93\u51fa \u3002 # \u4f7f\u7528 matplotlib \u5c55\u793a \u7ed3\u679c plt . plot ( frames _ list , dist _ list ) plt . ylabel ( ' Distance [ m ] ' ) plt . xlabel ( ' Frame number ' ) plt . title ( ' Distance between the ego vehicle and the adversary over time ' ) plt . show ( ) 3 . \u8fd0\u884c \u6307\u6807 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u6700\u540e \uff0c \u662f \u65f6\u5019 \u4f7f\u7528 \u4ece \u573a\u666f \u4e2d \u68c0\u7d22 \u7684 \u4fe1\u606f \u4ee5\u53ca \u5df2 \u5b9a\u4e49 \u7684 \u6307\u6807 \u6765 \u8fd4\u56de \u4e00\u4e9b \u6307\u6807 \u4fe1\u606f \u3002 \u8ba9 \u6211\u4eec \u4f7f\u7528 \u8fc4\u4eca \u4e3a\u6b62 \u8fc4\u4eca\u4e3a\u6b62 \u4f7f\u7528 \u7684 \u793a\u4f8b \u6307\u6807 \u4ee5\u53ca \u4ee5 \u5176 \u547d\u540d \u7684 \u793a\u4f8b \u65e5\u5fd7 \u6765 \u8fd0\u884c \u8be5 \u6a21\u5757 \u3002 python metrics _ manager . py -- metric srunner / metrics / examples / distance _ between _ vehicles . py -- log srunner / metrics / data / DistanceBetweenVehicles . log \u8b66\u544a \u4eff\u771f \u5fc5\u987b \u6b63\u5728 \u8fd0\u884c \u3002 \u5426\u5219 \uff0c \u6a21\u5757 \u5c06 \u65e0\u6cd5 \u8bbf\u95ee \u65e0\u6cd5\u8bbf\u95ee \u5730\u56fe API \u3002 \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u5176\u4e2d \u7ed8\u5236 \u4e86 \u7ed3\u679c \u3002 \u5728 \u8f93\u51fa \u7a97\u53e3 \u5173\u95ed \u4e4b\u524d \uff0c \u811a\u672c \u4e0d\u4f1a \u5b8c\u6210 \u3002 \u8bb0\u5f55 \u67e5\u8be2 \u53c2\u8003 \u5b9a\u4e49 \u6307\u6807 \u65f6 \uff0c \u6709\u5173 \u573a\u666f \u7684 \u6240\u6709 \u4fe1\u606f \u90fd \u901a\u8fc7 \u7c7b MetricsLog \uff08 _ create _ metric ( ) \u51fd\u6570 \u4e2d \u7684 log \u53c2\u6570 \uff09 \u8bbf\u95ee \u3002 \u8be5\u7c7b \u4f4d\u4e8e srunner / metrics / tools / metrics _ log . py \uff0c \u8be5 \u5f15\u7528 \u662f \u5176\u4e2d \u5305\u542b \u7684 \u51fd\u6570 \u7684 \u540e\u7eed \u90e8\u5206 \u3002 \u901a\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6570\u636e get _ ego _ vehicle _ id ( self ) \u8fd4\u56de \u81ea\u6211 \u8f66\u8f86 \u7684 id \u3002 Return \u2014 int get _ actor _ ids _ with _ role _ name ( self , role _ name ) \u8fd4\u56de \u4e0e \u7ed9\u5b9a role _ name \u5339\u914d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002 Return \u2014 list Parameters role _ name ( str ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 role _ name \u3002 get _ actor _ ids _ with _ type _ id ( self , type _ id ) \u6839\u636e fnmatch \u6807\u51c6 \uff0c \u8fd4\u56de \u4e0e \u7ed9\u5b9a \u5339\u914d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002 Return \u2014 list Parameters type _ id ( str ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 type _ id \u3002 get _ actor _ attributes ( self , actor _ id ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240\u6709 \u5c5e\u6027 \u7684 \u5b57\u5178 \u3002 Return \u2014 dict Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 get _ actor _ bounding _ box ( self , actor _ id ) \u8fd4\u56de \u6307\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846 \u3002 Return \u2014 carla . BoundingBox Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 get _ traffic _ light _ trigger _ volume ( self , traffic _ light _ id ) \u8fd4\u56de \u6307\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 trigger volume \u3002 Return \u2014 carla . BoundingBox Parameters traffic _ light _ id ( int ) \u2014 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 id \u3002 get _ actor _ alive _ frames ( self , actor _ id ) \u8fd4\u56de \u4e00\u4e2a \u5143\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u8dc3 \u7684 \u7b2c\u4e00 \u5e27 \u548c \u6700\u540e \u4e00\u5e27 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5e27 \u4ece 1 \u5f00\u59cb \uff0c \u800c \u4e0d\u662f \u4ece 0 \u5f00\u59cb \u3002 Return \u2014 tuple Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 \u901a\u7528 \u4eff\u771f \u6570\u636e get _ collisions ( self , actor _ id ) \u8fd4\u56de \u5177\u6709 \u4e24\u4e2a \u952e \u7684 \u5b57\u5178 \u5217\u8868 \u3002 frame \u662f \u78b0\u649e \u7684 \u5e27 \u7f16\u53f7 \uff0c \u662f other _ id \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u53d1\u751f \u78b0\u649e \u7684 id \u5217\u8868 \u3002 Return \u2014 list Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 get _ total _ frame _ count ( self ) \u8fd4\u56de \u4e00\u4e2a int \u503c \uff0c \u5176\u4e2d \u5305\u542b \u4eff\u771f \u6301\u7eed \u7684 \u5e27 \u603b\u6570 \u3002 Return \u2014 int get _ elapsed _ time ( self , frame ) \u8fd4\u56de \u4e00\u4e2a \u5305\u542b \u7279\u5b9a \u5e27 \u7684 \u5df2\u7528 \u65f6\u95f4 \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 Return \u2014 float Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ delta _ time ( self , frame ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a \u5e27 \u7684 \u589e\u91cf \u65f6\u95f4 \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 R Return \u2014 float Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ platform _ time ( self , frame ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a \u5e27 \u7684 \u5e73\u53f0 \u65f6\u95f4 \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 Return \u2014 float Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 get _ actor _ acceleration ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Vector3D Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ all _ actor _ accelerations ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ accelerations _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Vector3D \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c \u4f20\u9012 \u4e86 actor _ list \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u7684 \u5217\u8868 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u901f\u5ea6 \u89d2\u901f\u5ea6 get _ actor _ angular _ velocity ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Vector3D Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u7684 \u6570\u76ee \u3002 get _ all _ actor _ angular _ velocities ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ angular _ velocities _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Vector3D \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c \u4f20\u9012 actor _ list \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ids \u5217\u8868 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 get _ vehicle _ control ( self , vehicle _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u8f66\u8f86 \u7684 \u63a7\u5236 \u3002 \u8be5 manual _ gear _ shift \u5c5e\u6027 \u5c06 \u59cb\u7ec8 \u4e3a False \u3002 Return \u2014 carla . VehicleControl Parameters vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ vehicle _ physics _ control ( self , vehicle _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 Return \u2014 carla . VehiclePhysicsControl Parameters vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ walker _ speed ( self , walker _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u884c\u4eba \u7684 \u901f\u5ea6 \u3002 Return \u2014 carla . Vector3D Parameters walker _ id ( int ) \u2014 \u884c\u4eba \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d8\u6362 get _ actor _ transform ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u53d8\u6362 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Transform Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ all _ actor _ transforms ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u53d8\u6362 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Transform ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ transforms _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Transform \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c actor _ list \u901a\u8fc7 \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Transform ) Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u901f\u5ea6 get _ actor _ velocity ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u901f\u5ea6 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Vector3D Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ all _ actor _ velocities ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u901f\u5ea6 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ velocities _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Vector3D \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c \u4f20\u9012 \u4e86 actor _ list \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Vector3D Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002 \u573a\u666f \u706f get _ scene _ light _ state ( self , light , vehicle _ id , frame ) Returns the state of a scene light for a given frame . The light state group will always be carla . LightGroup . None . Return \u2014 carla . LightState Parameters light _ id ( int ) \u2014 \u573a\u666f \u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f get _ traffic _ light _ state ( self , traffic _ light _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3002 Return \u2014 carla . TrafficLightState . Parameters traffic _ light _ id ( int ) \u2014 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 is _ traffic _ light _ frozen ( self , traffic _ light _ id , frame ) \u8fd4\u56de \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u662f\u5426 \u51bb\u7ed3 \u5728 \u7ed9\u5b9a \u5e27 \u3002 Return \u2014 bool Parameters traffic _ light _ id ( int ) \u2014 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ traffic _ light _ elapsed _ time ( self , traffic _ light _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ecf\u8fc7 \u65f6\u95f4 \u3002 Return \u2014 float Parameters traffic _ light _ id ( int ) \u2014 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ traffic _ light _ state _ time ( self , traffic _ light _ id , state , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u4ea4\u901a \u4ea4\u901a\u706f \u7279\u5b9a \u72b6\u6001 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 Return \u2014 float Parameters traffic _ light _ id ( int ) \u2014 id of the traffic light . state ( carla . TrafficLightState ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 \u8f66\u706f get _ vehicle _ lights ( self , vehicle _ id , frame ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u7ed9\u5b9a \u5e27 \u5904 \u7279\u5b9a \u8f66\u8f86 \u7684 \u6d3b\u52a8 \u706f \u3002 Return \u2014 list ( carla . VehicleLightState ) Parameters vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 is _ vehicle _ light _ active ( self , light , vehicle _ id , frame ) \u68c0\u67e5 \u7ed9\u5b9a \u8f66\u8f86 \u706f \u5728 \u7279\u5b9a \u5e27 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u3002 Return \u2014 bool Parameters light ( carla . VehicleLightState ) \u2014 \u4e0e \u8f66\u8f86 \u8fdb\u884c \u6bd4\u8f83 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002","title":"\u6307\u6807 \u6a21\u5757"},{"location":"scenario_runner/metrics_module/#_1","text":"\u6307\u6807 \u6a21\u5757 \u4f9d\u9760 CARLA \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6765 \u65b9\u4fbf \u8ba1\u7b97 \u548c \u76d1\u63a7 \u4efb\u4f55 \u7c7b\u578b \u7684 \u53c2\u6570 \u3002 \u573a\u666f \u5b8c\u6210 \u540e \uff0c \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5b58\u50a8 \u6a21\u62df \u4fe1\u606f \u3002 \u7136\u540e \uff0c \u7528\u6237 \u53ef\u4ee5 \u5b9a\u4e49 \u81ea\u5df1 \u7684 \u6307\u6807 \uff0c \u5e76 \u68c0\u67e5 \u76f8\u5e94 \u7684 \u7ed3\u679c \uff0c \u800c \u65e0\u9700 \u4e00\u6b21 \u53c8 \u4e00\u6b21 \u5730 \u8fdb\u884c \u4eff\u771f \u3002 \u672c \u8282 \u4ecb\u7ecd \u4e86 \u6784\u6210 \u8be5 \u6a21\u5757 \u7684 \u4e0d\u540c \u5143\u7d20 \u7684 \u8bf4\u660e \u3001 \u5982\u4f55 \u521b\u5efa \u65b0 \u6307\u6807 \u7684 \u5206\u6b65 \u6559\u7a0b \u4ee5\u53ca \u67e5\u8be2 \u8bb0\u5f55 \u548c \u5b9a\u4e49 \u6307\u6807 \u7684 \u51fd\u6570 \u7684 \u53c2\u8003 \u3002 \u6a21\u5757 \u7ed3\u6784 \u5982\u4f55 \u4f7f\u7528 \u6307\u6807 \u6a21\u5757 1 . \u8bb0\u5f55 \u4e00\u4e2a \u573a\u666f 2 . \u5b9a\u4e49 \u6307\u6807 3 . \u8fd0\u884c \u6307\u6807 \u7ba1\u7406 \u7406\u5668 \u7ba1\u7406\u5668 \u8bb0\u5f55 \u67e5\u8be2 \u53c2\u8003 \u901a\u7528 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6570\u636e \u901a\u7528 \u4eff\u771f \u6570\u636e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u63a7\u5236 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u53d8\u6362 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u901f\u5ea6 \u573a\u666f \u706f \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u8f66\u706f","title":"\u6307\u6807 \u6a21\u5757"},{"location":"scenario_runner/metrics_module/#_2","text":"\u4e0e \u4e3b ScenarioRunner \u6a21\u5757 \u7c7b\u4f3c \uff0c Metrics \u6a21\u5757 \u4f7f\u7528 \u4e3b \u811a\u672c \u8fd0\u884c \uff0c metrics _ manager . py \u5176\u4f59 \u4fe1\u606f \u5305\u542b \u5728 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u7ed3\u6784 \u5185 \u3002 \u8fd9\u91cc \u7b80\u5355 \u4ecb\u7ecd \u4e00\u4e0b \u4e3b\u8981 \u811a\u672c \u3002 metrics _ manager . py \u2014 \u6a21\u5757 \u7684 \u4e3b \u811a\u672c \u3002 \u8fd0\u884c \u6b64 \u547d\u4ee4 \u4ee5 \u663e\u793a \u4e00\u7ec4 \u6307\u6807 \u7684 \u7ed3\u679c \u3002 \u8be5 \u811a\u672c \u5177\u6709 \u5e38\u7528 \u7684 host \u548c port \u53c2\u6570 \uff0c \u4ee5\u53ca \u66f4 \u591a \u7528\u4e8e \u8bbe\u7f6e \u8981 \u4f7f\u7528 \u7684 \u6307\u6807 \u548c \u8bb0\u5f55 \u7684 \u5185\u5bb9 \u3002 host ( string ) \u2013 CARLA \u4eff\u771f \u8fd0\u884c \u65f6 \u7684 IP \u5730\u5740 \u3002 \u9ed8\u8ba4 \u4e3a ( 127.0 . 0.1 ) \u3002 port ( int ) \u2013 CARLA \u4eff\u771f \u8fd0\u884c \u7684 TCP \u7aef\u53e3 \u3002 \u9ed8\u8ba4 \u4e3a 2000 \u548c 2001 \u3002 metrics \u2014 \u8981 \u4f7f\u7528 \u7684 \u6307\u6807 \u7684 \u8def\u5f84 \u3002 log \u2014 \u5305\u542b \u8bb0\u5f55 \u7684 . log \u6587\u4ef6 \u7684 \u8def\u5f84 \uff08 \u76f8\u5bf9 \u4e8e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SCENARIO _ RUNNER _ ROOT \uff09 \u3002 criteria ( \u53ef \u9009 ) \u2014 \u5177\u6709 \u573a\u666f \u6761\u4ef6 \u7684 JSON \u6587\u4ef6 \u7684 \u8def\u5f84 \u3002 \u5851\u9020 \u6a21\u5757 \u7684 \u5176\u4f59 \u5143\u7d20 \u53ef\u4ee5 \u5728 \u8be5 srunner / metrics \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u627e\u5230 \u3002 \u8fd9\u4e9b \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u5df2 \u5206\u4e3a \u4e09\u4e2a \u5b50 \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u3002 srunner / metrics / data \u2014 \u5b58\u50a8 \u6709\u5173 \u573a\u666f \u7684 \u4fe1\u606f \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5b83 \u6709 \u516d\u4e2a \u6587\u4ef6 \uff0c \u5b83\u4eec \u662f \u793a\u4f8b \u6307\u6807 \u7684 \u4e00\u90e8 \u90e8\u5206 \u4e00\u90e8\u5206 \u3002 srunner / metrics / examples \u2014 \u5305\u542b \u4e00\u4e9b \u793a\u4f8b \u6307\u6807 \uff0c \u4ee5\u53ca \u5305\u542b \u7528\u4e8e \u521b\u5efa \u65b0 \u6307\u6807 \u7684 \u57fa\u7c7b BaseMetric \u7684 \u6307\u6807 \u3002 basic _ metric . py \u2013 \u5305\u542b \u57fa\u7c7b BaseMetric \u3002 \u6240\u6709 \u7684 \u6307\u6807 \u90fd \u662f\u4ece \u5b83 \u7ee7\u627f \u7684 \u3002 criteria _ filter . py \u2013 \u8fd4\u56de \u5305\u542b \u6807\u51c6 \u6700 \u91cd\u8981 \u5c5e\u6027 \u7684 JSON \u3002 distance _ between _ vehicles . py \u2013 \u8fd4\u56de \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5c55\u793a \u5982\u4f55 \u67e5\u8be2 \u8bb0\u5f55 \u3002 distance _ to _ lane _ center . py \u2013 \u8ba1\u7b97 \u8f66\u8f86 \u4f4d\u7f6e \u4e0e \u8f66\u9053 \u4e2d\u5fc3 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u6709\u52a9 \u52a9\u4e8e \u6709\u52a9\u4e8e \u5c55\u793a \u5982\u4f55 \u8bbf\u95ee \u5730\u56fe API \u4fe1\u606f \u3002 srunner / metrics / tools \u2014 \u5305\u542b \u4e24\u4e2a \u5141\u8bb8 \u67e5\u8be2 \u8bb0\u5f55 \u7684 \u5173\u952e \u811a\u672c \u3002 metrics _ parser . py \u2013 \u5c06 \u8bb0\u5f55 \u63d0\u4f9b \u7684 \u5b57\u7b26 \u5b57\u7b26\u4e32 \u8f6c\u6362 \u4e3a \u5b57\u5178 \u3002 metrics _ log . py \u2013 \u63d0\u4f9b \u591a\u79cd \u529f\u80fd \u6765 \u67e5\u8be2 \u4f7f\u7528 metrics _ parser . py \u521b\u5efa \u7684 \u5b57\u5178 \u3002 \u8fd9\u4e9b \u51fd\u6570 \u662f \u8bbf\u95ee \u573a\u666f \u4fe1\u606f \u7684 \u6700 \u7b80\u5355 \u65b9\u6cd5 \u3002 \u5b83\u4eec \u5217\u5728 \u672c\u9875 \u6700\u540e \u4e00\u6bb5 \u7684 \u53c2\u8003 \u6587\u732e \u53c2\u8003\u6587\u732e \u4e2d \u3002","title":"\u6a21\u5757 \u7ed3\u6784"},{"location":"scenario_runner/metrics_module/#_3","text":"","title":"\u5982\u4f55 \u4f7f\u7528 \u6307\u6807 \u6a21\u5757"},{"location":"scenario_runner/metrics_module/#1","text":"\u6307\u6807 \u6a21\u5757 \u9700\u8981 \u8bb0\u5f55 \u4eff\u771f \u624d\u80fd \u5de5\u4f5c \u3002 \u5426\u5219 \uff0c \u5b83 \u6ca1\u6709 \u6570\u636e \u6765 \u8fdb\u884c \u6307\u6807 \u8ba1\u7b97 \u3002 \u4f7f\u7528 record \u53c2\u6570 \u3002 \u6dfb\u52a0 \u5e94\u8be5 \u4fdd\u5b58 \u4fe1\u606f \u4fdd\u5b58\u4fe1\u606f \u7684 \u8def\u5f84 \u3002 \u8be5 \u8def\u5f84 \u5fc5\u987b \u76f8\u5bf9 \u4e8e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf SCENARIO _ RUNNER _ ROOT \u3002 python scenario _ runner . py -- scenario < scenario _ name > -- record < path / to / save / the / recorder / file > \u901a\u8fc7 \u8bb0\u5f55 \u573a\u666f \uff0c \u5c06 \u5728 \u6240 \u9700 \u8def\u5f84 \u4e2d \u521b\u5efa \u4e24\u4e2a \u6587\u4ef6 \u3002 \u8fd9\u4e9b log \u6587\u4ef6 criteria \u7a0d\u540e \u5c06 \u7528\u4f5c metrics _ manager . py \u7684 \u53c2\u6570 \u3002 1 . CARLA \u8bb0\u5f55 ( . log ) \u2014 \u5305\u542b \u6bcf\u5e27 \u7684 \u4eff\u771f \u6570\u636e \u3002 \u8981 \u4e86\u89e3 \u66f4 \u591a \u4fe1\u606f \uff0c \u8bf7 \u9605\u8bfb \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u6587\u6863 \u3002 2 . \u6307\u6807 \u6587\u4ef6 ( . json ) \u2014 \u573a\u666f \u6807\u51c6 \u89e3\u6790 \u4e3a \u5b57\u5178 \uff0c \u5e76 \u5b58\u50a8 \u5728 JSON \u6587\u4ef6 \u4e2d \u3002 \u5b57\u5178 \u7684 \u952e \u662f \u6761\u4ef6 \u7684 \u540d\u79f0 \u3002 \u8fd9\u4e9b \u503c \u662f \u6bcf\u4e2a \u6761\u4ef6 \u7684 \u5c5e\u6027 \u3002 \u6ce8\u610f \u4ec5 \u89e3\u6790 JSON \u53ef \u5e8f\u5217 \u5e8f\u5217\u5316 \u5c5e\u6027 \uff0c \u5176\u4f59 \u5c5e\u6027 \u5c06 \u88ab \u5ffd\u7565 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u8fd9 \u4e24\u4e2a \u6587\u4ef6 \u5747 \u4ee5 \u8fd0\u884c \u7684 \u573a\u666f \u547d\u540d \u3002 \u5982\u679c \u573a\u666f \u88ab \u547d\u540d \u4e3a example . py \uff0c \u6587\u4ef6 \u5c06 \u4e3a example . log \u548c example . json \u3002","title":"1 . \u8bb0\u5f55 \u4e00\u4e2a \u573a\u666f"},{"location":"scenario_runner/metrics_module/#2","text":"\u73b0\u5728 \u662f \u521b\u5efa \u5c06 \u7528\u4e8e \u573a\u666f \u7684 \u6240 \u9700 \u6307\u6807 \u7684 \u65f6\u5019 \u4e86 \u3002 \u53ef\u80fd \u53ef\u80fd\u6027 \u662f \u65e0\u9650 \u7684 \uff0c \u4f46 \u4e3a\u4e86 \u672c \u6559\u7a0b \u7684 \u76ee\u7684 \uff0c \u5c06 \u4f7f\u7528 srunner / metrics / examples / distance _ between _ vehicles . py \u4e2d \u63cf\u8ff0 \u7684 \u6307\u6807 \u4f5c\u4e3a \u793a\u4f8b \u3002 \u8ba9 \u6211\u4eec \u6df1\u5165 \u7814\u7a76 \u6df1\u5165\u7814\u7a76 \u4e00\u4e0b \u4ee3\u7801 \u672c\u8eab \u3002 class DistanceBetweenVehicles ( BasicMetric ) : \" \" \" \u6307\u6807 \u7c7b DistanceBetweenVehicles \" \" \" def _ create _ metric ( self , town _ map , log , criteria ) : \" \" \" \u5ea6\u91cf \u7684 \u5b9e\u73b0 \u3002 \u8fd9\u662f \u4e00\u4e2a \u793a\u4f8b \uff0c \u5c55\u793a \u4e86 \u5982\u4f55 \u4f7f\u7528 \u901a\u8fc7 \u65e5\u5fd7 \u8bbf\u95ee \u7684 \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u3002 \" \" \" # \u83b7\u53d6 \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 ID ego _ id = log . get _ ego _ vehicle _ id ( ) adv _ id = log . get _ actor _ ids _ with _ role _ name ( \" scenario \" ) [ 0 ] # Could have also used its type _ id dist _ list = [ ] frames _ list = [ ] # \u83b7\u5f97 \u5e27 \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u90fd \u6d3b\u7740 start _ ego , end _ ego = log . get _ actor _ alive _ frames ( ego _ id ) start _ adv , end _ adv = log . get _ actor _ alive _ frames ( adv _ id ) start = max ( start _ ego , start _ adv ) end = min ( end _ ego , end _ adv ) # \u83b7\u5f97 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u7684 \u8ddd\u79bb for i in range ( start , end ) : # \u83b7\u5f97 \u53d8\u6362 ego _ location = log . get _ actor _ transform ( ego _ id , i ) . location adv _ location = log . get _ actor _ transform ( adv _ id , i ) . location # \u8fc7\u6ee4 \u4e00\u4e9b \u70b9\u4ee5 \u83b7\u5f97 \u66f4\u597d \u7684 \u56fe\u5f62 if adv _ location . z < - 10 : continue dist _ v = ego _ location - adv _ location dist = math . sqrt ( dist _ v . x * dist _ v . x + dist _ v . y * dist _ v . y + dist _ v . z * dist _ v . z ) dist _ list . append ( dist ) frames _ list . append ( i ) # \u4f7f\u7528 matplotlib \u5c55\u793a \u7ed3\u679c plt . plot ( frames _ list , dist _ list ) plt . ylabel ( ' Distance [ m ] ' ) plt . xlabel ( ' Frame number ' ) plt . title ( ' Distance between the ego vehicle and the adversary over time ' ) plt . show ( ) 2.1 . \u5ea6\u91cf \u7684 \u540d\u79f0 . \u9996\u5148 \uff0c \u6b63\u5982 \u524d\u9762 \u63d0\u5230 \u7684 \uff0c \u6240\u6709 \u6307\u6807 \u90fd \u662f \u8be5 BasicMetric \u7c7b \u7684 \u5b50\u7ea7 \u3002 class DistanceBetweenVehicles ( BasicMetric ) : 2.2 . \u4e3b \u65b9\u6cd5 \u7684 \u540d\u79f0 . \u6307\u6807 \u53ea \u9700\u8981 \u4e00\u79cd \u65b9\u6cd5 \u5373\u53ef \u8fd0\u884c \uff0c _ create _ metric ( ) \u65b9\u6cd5 \u5177\u6709 \u4e09\u4e2a \u53c2\u6570 \u3002 town _ map \u2014 \u573a\u666f \u53d1\u751f \u7684 carla . Map ( ) \u5b9e\u4f8b \u3002 log \u2014 MetricsLog \u7c7b \u7684 \u5b9e\u4f8b \uff0c \u5177\u6709 \u8bbf\u95ee \u8bb0\u5f55 \u8bb0\u5f55\u5668 \u5b57\u5178 \u6240 \u9700 \u7684 \u6240\u6709 \u51fd\u6570 \u3002 criteria \u2014 \u5e26\u6709 \u6807\u51c6 \u5b57\u5178 \u7684 JSOn \u3002 \u8bb0\u5f55 \u573a\u666f \u65f6 \u63d0\u4f9b \u7684 \u6587\u4ef6 \uff0c \u7a0d\u540e \u63d0\u4f9b \u7ed9 metrics _ manager . py \u3002 def _ create _ metric ( self , town _ map , log , criteria ) : 2.3 . \u5b9e\u73b0 \u6307\u6807 \u3002 \u4ee3\u7801 \u5c06 \u6839\u636e \u6307\u6807 \u672c\u8eab \u800c \u6709\u6240 \u4e0d\u540c \u6709\u6240\u4e0d\u540c \u3002 \u793a\u4f8b \u6307\u6807 DistanceBetweenVehicles \u8ba1\u7b97 \u672c\u8f66 \u4e0e\u5176 \u8ddf\u968f \u7684 \u6c7d\u8f66 \uff08 \u5bf9\u624b \uff09 \u4e4b\u95f4 \u7684 \u8ddd\u79bb \u3002 \u4e3a\u6b64 \uff0c \u9700\u8981 id \u4e24\u8f86 \u8f86\u8f66 \u4e24\u8f86\u8f66 \u7684 \u914d\u5408 \u3002 \u8fd9\u4e9b \u53ef\u4ee5 \u4f7f\u7528 get _ ego _ vehicle _ id ( ) \u548c get _ actor _ ids _ with _ role _ name ( \" scenario \" ) [ 0 ] \u51fd\u6570 \u4ece \u65e5\u5fd7 \u4e2d \u68c0\u7d22 \u3002 # \u83b7\u53d6 \u4e24\u4e2a \u8f66\u8f86 \u7684 ID ego _ id = log . get _ ego _ vehicle _ id ( ) adv _ id = log . get _ actor _ ids _ with _ role _ name ( \" scenario \" ) [ 0 ] # Could have also used its type _ id \u5b83\u4eec id \u7528 get _ actor _ alive _ frames ( actor _ id ) \u68c0\u7d22 \u8f66\u8f86 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u7684 \u5e27 \u3002 # \u83b7\u53d6 \u6d3b\u8dc3 \u7684 \u4e24\u4e2a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u5e27 start _ ego , end _ ego = log . get _ actor _ alive _ frames ( ego _ id ) start _ adv , end _ adv = log . get _ actor _ alive _ frames ( adv _ id ) start = max ( start _ ego , start _ adv ) end = min ( end _ ego , end _ adv ) \u73b0\u5728 \u4e00\u5207 \u51c6\u5907 \u5c31\u7eea \u51c6\u5907\u5c31\u7eea \uff0c \u53ef\u4ee5 \u5faa\u73af \u8fd9\u4e9b \u5e27 \uff0c \u83b7\u53d6 \u5b83\u4eec \u7684 \u53d8\u6362 \u5e76 \u8ba1\u7b97 \u8ddd\u79bb \u3002 \u4f7f\u7528 get _ actor _ transform ( actor _ id , frame ) \u83b7\u5f97 \u53d8\u6362 \uff0c dist _ list = [ ] frames _ list = [ ] ... # \u83b7\u5f97 \u4e24\u8005 \u4e4b\u95f4 \u4e24\u8005\u4e4b\u95f4 \u7684 \u8ddd\u79bb for i in range ( start , end ) : # \u83b7\u53d6 \u53d8\u6362 ego _ location = log . get _ actor _ transform ( ego _ id , i ) . location adv _ location = log . get _ actor _ transform ( adv _ id , i ) . location # \u4e3a\u4e86 \u83b7\u5f97 \u66f4\u597d \u7684 \u56fe\u7247 \u8fc7\u6ee4 \u4e00\u4e9b \u70b9 if adv _ location . z < - 10 : continue dist _ v = ego _ location - adv _ location dist = math . sqrt ( dist _ v . x * dist _ v . x + dist _ v . y * dist _ v . y + dist _ v . z * dist _ v . z ) dist _ list . append ( dist ) \u6ce8\u610f \u5bf9\u624b \u7684 \u5782\u76f4 \u60c5\u51b5 \u4ec5 \u8003\u8651 \u5bf9\u624b \u6b63\u5e38 \u884c\u9a76 \u65f6 \u7684 \u60c5\u51b5 \u3002 \u6700\u540e \uff0c \u4f7f\u7528 matplotlib \u5b9a\u4e49 \u8fd0\u884c metrics _ manager . py \u65f6 \u6307\u6807 \u7684 \u8f93\u51fa \u3002 # \u4f7f\u7528 matplotlib \u5c55\u793a \u7ed3\u679c plt . plot ( frames _ list , dist _ list ) plt . ylabel ( ' Distance [ m ] ' ) plt . xlabel ( ' Frame number ' ) plt . title ( ' Distance between the ego vehicle and the adversary over time ' ) plt . show ( )","title":"2 . \u5b9a\u4e49 \u6307\u6807"},{"location":"scenario_runner/metrics_module/#3","text":"\u6700\u540e \uff0c \u662f \u65f6\u5019 \u4f7f\u7528 \u4ece \u573a\u666f \u4e2d \u68c0\u7d22 \u7684 \u4fe1\u606f \u4ee5\u53ca \u5df2 \u5b9a\u4e49 \u7684 \u6307\u6807 \u6765 \u8fd4\u56de \u4e00\u4e9b \u6307\u6807 \u4fe1\u606f \u3002 \u8ba9 \u6211\u4eec \u4f7f\u7528 \u8fc4\u4eca \u4e3a\u6b62 \u8fc4\u4eca\u4e3a\u6b62 \u4f7f\u7528 \u7684 \u793a\u4f8b \u6307\u6807 \u4ee5\u53ca \u4ee5 \u5176 \u547d\u540d \u7684 \u793a\u4f8b \u65e5\u5fd7 \u6765 \u8fd0\u884c \u8be5 \u6a21\u5757 \u3002 python metrics _ manager . py -- metric srunner / metrics / examples / distance _ between _ vehicles . py -- log srunner / metrics / data / DistanceBetweenVehicles . log \u8b66\u544a \u4eff\u771f \u5fc5\u987b \u6b63\u5728 \u8fd0\u884c \u3002 \u5426\u5219 \uff0c \u6a21\u5757 \u5c06 \u65e0\u6cd5 \u8bbf\u95ee \u65e0\u6cd5\u8bbf\u95ee \u5730\u56fe API \u3002 \u8fd9 \u5c06 \u521b\u5efa \u4e00\u4e2a \u7a97\u53e3 \u65b0\u7a97\u53e3 \uff0c \u5176\u4e2d \u7ed8\u5236 \u4e86 \u7ed3\u679c \u3002 \u5728 \u8f93\u51fa \u7a97\u53e3 \u5173\u95ed \u4e4b\u524d \uff0c \u811a\u672c \u4e0d\u4f1a \u5b8c\u6210 \u3002","title":"3 . \u8fd0\u884c \u6307\u6807 \u7ba1\u7406\u5668"},{"location":"scenario_runner/metrics_module/#_4","text":"\u5b9a\u4e49 \u6307\u6807 \u65f6 \uff0c \u6709\u5173 \u573a\u666f \u7684 \u6240\u6709 \u4fe1\u606f \u90fd \u901a\u8fc7 \u7c7b MetricsLog \uff08 _ create _ metric ( ) \u51fd\u6570 \u4e2d \u7684 log \u53c2\u6570 \uff09 \u8bbf\u95ee \u3002 \u8be5\u7c7b \u4f4d\u4e8e srunner / metrics / tools / metrics _ log . py \uff0c \u8be5 \u5f15\u7528 \u662f \u5176\u4e2d \u5305\u542b \u7684 \u51fd\u6570 \u7684 \u540e\u7eed \u90e8\u5206 \u3002","title":"\u8bb0\u5f55 \u67e5\u8be2 \u53c2\u8003"},{"location":"scenario_runner/metrics_module/#_5","text":"get _ ego _ vehicle _ id ( self ) \u8fd4\u56de \u81ea\u6211 \u8f66\u8f86 \u7684 id \u3002 Return \u2014 int get _ actor _ ids _ with _ role _ name ( self , role _ name ) \u8fd4\u56de \u4e0e \u7ed9\u5b9a role _ name \u5339\u914d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002 Return \u2014 list Parameters role _ name ( str ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 role _ name \u3002 get _ actor _ ids _ with _ type _ id ( self , type _ id ) \u6839\u636e fnmatch \u6807\u51c6 \uff0c \u8fd4\u56de \u4e0e \u7ed9\u5b9a \u5339\u914d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002 Return \u2014 list Parameters type _ id ( str ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 type _ id \u3002 get _ actor _ attributes ( self , actor _ id ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6240\u6709 \u5c5e\u6027 \u7684 \u5b57\u5178 \u3002 Return \u2014 dict Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 get _ actor _ bounding _ box ( self , actor _ id ) \u8fd4\u56de \u6307\u5b9a \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u8fb9\u754c \u6846 \u3002 Return \u2014 carla . BoundingBox Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 get _ traffic _ light _ trigger _ volume ( self , traffic _ light _ id ) \u8fd4\u56de \u6307\u5b9a \u4ea4\u901a \u4ea4\u901a\u706f \u7684 trigger volume \u3002 Return \u2014 carla . BoundingBox Parameters traffic _ light _ id ( int ) \u2014 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 id \u3002 get _ actor _ alive _ frames ( self , actor _ id ) \u8fd4\u56de \u4e00\u4e2a \u5143\u7ec4 \uff0c \u5176\u4e2d \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6d3b\u8dc3 \u7684 \u7b2c\u4e00 \u5e27 \u548c \u6700\u540e \u4e00\u5e27 \u3002 \u8bf7 \u6ce8\u610f \uff0c \u5e27 \u4ece 1 \u5f00\u59cb \uff0c \u800c \u4e0d\u662f \u4ece 0 \u5f00\u59cb \u3002 Return \u2014 tuple Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002","title":"\u901a\u7528 \u53c2\u4e0e\u8005 \u6570\u636e"},{"location":"scenario_runner/metrics_module/#_6","text":"get _ collisions ( self , actor _ id ) \u8fd4\u56de \u5177\u6709 \u4e24\u4e2a \u952e \u7684 \u5b57\u5178 \u5217\u8868 \u3002 frame \u662f \u78b0\u649e \u7684 \u5e27 \u7f16\u53f7 \uff0c \u662f other _ id \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u53d1\u751f \u78b0\u649e \u7684 id \u5217\u8868 \u3002 Return \u2014 list Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 get _ total _ frame _ count ( self ) \u8fd4\u56de \u4e00\u4e2a int \u503c \uff0c \u5176\u4e2d \u5305\u542b \u4eff\u771f \u6301\u7eed \u7684 \u5e27 \u603b\u6570 \u3002 Return \u2014 int get _ elapsed _ time ( self , frame ) \u8fd4\u56de \u4e00\u4e2a \u5305\u542b \u7279\u5b9a \u5e27 \u7684 \u5df2\u7528 \u65f6\u95f4 \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 Return \u2014 float Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ delta _ time ( self , frame ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a \u5e27 \u7684 \u589e\u91cf \u65f6\u95f4 \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 R Return \u2014 float Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ platform _ time ( self , frame ) \u8fd4\u56de \u5177\u6709 \u7279\u5b9a \u5e27 \u7684 \u5e73\u53f0 \u65f6\u95f4 \u7684 \u6d6e\u70b9 \u70b9\u6570 \u6d6e\u70b9\u6570 \u3002 Return \u2014 float Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002","title":"\u901a\u7528 \u4eff\u771f \u6570\u636e"},{"location":"scenario_runner/metrics_module/#_7","text":"get _ actor _ acceleration ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Vector3D Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ all _ actor _ accelerations ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u52a0\u901f \u901f\u5ea6 \u52a0\u901f\u5ea6 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ accelerations _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Vector3D \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c \u4f20\u9012 \u4e86 actor _ list \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u7684 \u5217\u8868 \u3002","title":"\u53c2\u4e0e\u8005 \u52a0\u901f\u5ea6"},{"location":"scenario_runner/metrics_module/#_8","text":"get _ actor _ angular _ velocity ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Vector3D Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u7684 \u6570\u76ee \u3002 get _ all _ actor _ angular _ velocities ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u901f\u5ea6 \u89d2\u901f\u5ea6 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ angular _ velocities _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Vector3D \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c \u4f20\u9012 actor _ list \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 ids \u5217\u8868 \u3002","title":"\u53c2\u4e0e\u8005 \u89d2\u901f\u5ea6"},{"location":"scenario_runner/metrics_module/#_9","text":"get _ vehicle _ control ( self , vehicle _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u8f66\u8f86 \u7684 \u63a7\u5236 \u3002 \u8be5 manual _ gear _ shift \u5c5e\u6027 \u5c06 \u59cb\u7ec8 \u4e3a False \u3002 Return \u2014 carla . VehicleControl Parameters vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ vehicle _ physics _ control ( self , vehicle _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u8f66\u8f86 \u7684 \u7269\u7406 \u63a7\u5236 \u3002 Return \u2014 carla . VehiclePhysicsControl Parameters vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ walker _ speed ( self , walker _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u884c\u4eba \u7684 \u901f\u5ea6 \u3002 Return \u2014 carla . Vector3D Parameters walker _ id ( int ) \u2014 \u884c\u4eba \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002","title":"\u53c2\u4e0e\u8005 \u63a7\u5236"},{"location":"scenario_runner/metrics_module/#_10","text":"get _ actor _ transform ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u53d8\u6362 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u53d8\u6362 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Transform Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ all _ actor _ transforms ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u53d8\u6362 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Transform ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ transforms _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Transform \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c actor _ list \u901a\u8fc7 \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Transform ) Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002","title":"\u53c2\u4e0e\u8005 \u53d8\u6362"},{"location":"scenario_runner/metrics_module/#_11","text":"get _ actor _ velocity ( self , actor _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 \u901f\u5ea6 \u3002 \u5982\u679c \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u4e0d \u5b58\u5728 \u3001 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u6ca1\u6709 \u901f\u5ea6 \u6216\u8005 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u8be5 \u5e27 \u4e2d \u4e0d \u5b58\u5728 \uff0c \u5219 \u8fd4\u56de None \u3002 Return \u2014 carla . Vector3D Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ all _ actor _ velocities ( self , actor _ id , first _ frame = None , last _ frame = None ) \u8fd4\u56de \u5305\u542b \u53c2\u4e0e \u53c2\u4e0e\u8005 \u5728 \u5e27 \u95f4\u9694 \u5185 \u7684 \u6240\u6709 \u901f\u5ea6 \u7684 \u5217\u8868 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u5e27 \u95f4\u9694 \u5305\u542b \u6240\u6709 \u8bb0\u5f55 \u3002 Return \u2014 list ( carla . Vector3D ) Parameters actor _ id ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 first _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u521d\u59cb \u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u5f00\u59cb \u3002 last _ frame ( int ) \u2014 \u95f4\u9694 \u7684 \u6700\u540e \u4e00\u5e27 \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4eff\u771f \u7ed3\u675f \u3002 get _ actor _ velocities _ at _ frame ( self , frame , actor _ list = None ) \u8fd4\u56de \u4e00\u4e2a \u5b57\u5178 \uff0c \u5176\u4e2d \u952e \u662f \u5e27 \u7f16\u53f7 \uff0c \u503c \u662f \u7ed9\u5b9a \u5e27 \u5904 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 carla . Vector3D \u3002 \u9ed8\u8ba4 \u60c5\u51b5 \u4e0b \uff0c \u4f1a \u8003\u8651 \u6240\u6709 \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff0c \u4f46 \u5982\u679c \u4f20\u9012 \u4e86 actor _ list \uff0c \u5219 \u4ec5 \u68c0\u67e5 \u5217\u8868 \u4e2d \u7684 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u3002 Return \u2014 list ( carla . Vector3D Parameters frame ( int ) \u2014 \u5e27 \u53f7 \u3002 actor _ list ( int ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 id \u5217\u8868 \u3002","title":"\u53c2\u4e0e\u8005 \u901f\u5ea6"},{"location":"scenario_runner/metrics_module/#_12","text":"get _ scene _ light _ state ( self , light , vehicle _ id , frame ) Returns the state of a scene light for a given frame . The light state group will always be carla . LightGroup . None . Return \u2014 carla . LightState Parameters light _ id ( int ) \u2014 \u573a\u666f \u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002","title":"\u573a\u666f \u706f"},{"location":"scenario_runner/metrics_module/#_13","text":"get _ traffic _ light _ state ( self , traffic _ light _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u7684 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u72b6\u6001 \u3002 Return \u2014 carla . TrafficLightState . Parameters traffic _ light _ id ( int ) \u2014 \u7ea2\u7eff \u7eff\u706f \u7ea2\u7eff\u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 is _ traffic _ light _ frozen ( self , traffic _ light _ id , frame ) \u8fd4\u56de \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u662f\u5426 \u51bb\u7ed3 \u5728 \u7ed9\u5b9a \u5e27 \u3002 Return \u2014 bool Parameters traffic _ light _ id ( int ) \u2014 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ traffic _ light _ elapsed _ time ( self , traffic _ light _ id , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 \u7ecf\u8fc7 \u65f6\u95f4 \u3002 Return \u2014 float Parameters traffic _ light _ id ( int ) \u2014 \u4ea4\u901a \u4ea4\u901a\u706f \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 get _ traffic _ light _ state _ time ( self , traffic _ light _ id , state , frame ) \u8fd4\u56de \u7ed9\u5b9a \u5e27 \u5904 \u4ea4\u901a \u4ea4\u901a\u706f \u7279\u5b9a \u72b6\u6001 \u7684 \u6700\u957f \u65f6\u95f4 \u3002 Return \u2014 float Parameters traffic _ light _ id ( int ) \u2014 id of the traffic light . state ( carla . TrafficLightState ) \u2014 \u53c2\u4e0e \u53c2\u4e0e\u8005 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002","title":"\u7ea2\u7eff\u706f"},{"location":"scenario_runner/metrics_module/#_14","text":"get _ vehicle _ lights ( self , vehicle _ id , frame ) \u8fd4\u56de \u4e00\u4e2a \u5217\u8868 \uff0c \u5176\u4e2d \u5305\u542b \u7ed9\u5b9a \u5e27 \u5904 \u7279\u5b9a \u8f66\u8f86 \u7684 \u6d3b\u52a8 \u706f \u3002 Return \u2014 list ( carla . VehicleLightState ) Parameters vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002 is _ vehicle _ light _ active ( self , light , vehicle _ id , frame ) \u68c0\u67e5 \u7ed9\u5b9a \u8f66\u8f86 \u706f \u5728 \u7279\u5b9a \u5e27 \u662f\u5426 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \u3002 Return \u2014 bool Parameters light ( carla . VehicleLightState ) \u2014 \u4e0e \u8f66\u8f86 \u8fdb\u884c \u6bd4\u8f83 \u7684 \u706f\u5149 \u72b6\u6001 \u3002 vehicle _ id ( int ) \u2014 \u8f66\u8f86 \u7684 id \u3002 frame ( int ) \u2014 \u5e27 \u53f7 \u3002","title":"\u8f66\u706f"},{"location":"scenario_runner/openscenario_support/","text":"OpenSCENARIO \u652f\u6301 scenario _ runner \u63d0\u4f9b \u5bf9 OpenSCENARIO \u6807\u51c6 \u7684 \u652f\u6301 \u3002 \u5f53\u524d \u7684 \u5b9e\u73b0 \u6db5\u76d6 \u4e86 \u5bf9 \u673a\u52a8 \u52a8\u4f5c \u3001 \u6761\u4ef6 \u3001 \u6545\u4e8b \u548c \u6545\u4e8b \u677f \u7684 \u521d\u6b65 \u652f\u6301 \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u573a\u666f \u7684 \u8bc4\u4f30 \u6807\u51c6 \u6765 \u8bc4\u4f30 \u901a\u8fc7 / \u5931\u8d25 \u7ed3\u679c \uff0c \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b \u6807\u51c6 \u5b9e\u73b0 \u4e3a StopTriggers \uff08 \u4e0b\u6587 \u89c1\u4e0b\u6587 \uff09 \u3002 \u7136\u800c \uff0c \u5e76\u975e \u8fd9\u4e9b \u5143\u7d20 \u7684 \u6240\u6709 \u529f\u80fd \u5747 \u53ef\u7528 \u3002 \u5982\u679c \u6709 \u7591\u95ee \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 srunner / tools / openscenario _ parser . py \u4e2d \u7684 \u6a21\u5757 \u6587\u6863 \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u57fa\u4e8e OpenSCENARIO \u7684 \u53d7 \u652f\u6301 \u573a\u666f \u7684 \u793a\u4f8b \u3002 \u6b64\u5916 \uff0c \u5efa\u8bae \u67e5\u770b \u6b64\u5904 \u548c \u6b64\u5904 and here \u63d0\u4f9b \u7684 \u5b98\u65b9 \u6587\u6863 \u3002 \u5c06 OpenSCENARIO 0.9 . x \u8fc1\u79fb \u5230 1.0 \u5c06 \u65e7 \u7684 OpenSCENARIO \u793a\u4f8b \u8f6c\u6362 \u4e3a \u5b98\u65b9 \u6807\u51c6 1.0 \u7684 \u6700 \u7b80\u5355 \u65b9\u6cd5 \u662f \u4f7f\u7528 xsltproc \u548c \u4f4d\u4e8e openscenario \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u7684 \u8fc1\u79fb \u65b9\u6848 \u3002 \u4f8b\u5b50 \uff1a xsltproc - o newScenario . xosc migration0 _ 9 _ 1to1 _ 0 . xslt oldScenario . xosc \u652f\u6301 \u7a0b\u5ea6 \u4e0b\u9762 \u5217\u51fa \u4e86 OpenSCENARIO \u5c5e\u6027 \u53ca\u5176 \u5f53\u524d \u652f\u6301 \u72b6\u6001 \u3002 \u5e38\u89c4 \u7684 OpenSCENARIO \u8bbe\u7f6e \u8fd9 \u6db5\u76d6 \u4e86 OpenSCENARIO Storyboard \u5916\u90e8 \u5b9a\u4e49 \u7684 \u6240\u6709 \u90e8\u5206 \u5c5e\u6027 \u652f\u6301 \u7b14\u8bb0 FileHeader \u2705 \u5728 \u63cf\u8ff0 \u7684 \u5f00\u5934 \u4f7f\u7528 \u201c CARLA : \u201d \u5373\u53ef \u4f7f\u7528 CARLA \u5750\u6807 \u5750\u6807\u7cfb \u3002 CatalogLocations ControllerCatalog \u2705 \u867d\u7136 \u652f\u6301 \u76ee\u5f55 \uff0c \u4f46 \u53c2\u8003 / \u4f7f\u7528 \u53ef\u80fd \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 CatalogLocations EnvironmentCatalog \u2705 CatalogLocations ManeuverCatalog \u2705 CatalogLocations MiscObjectCatalog \u2705 CatalogLocations PedestrianCatalog \u2705 CatalogLocations RouteCatalog \u2705 \u867d\u7136 \u652f\u6301 \u76ee\u5f55 \uff0c \u4f46 \u53c2\u8003 / \u4f7f\u7528 \u53ef\u80fd \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 CatalogLocations TrajectoryCatalog \u2705 \u867d\u7136 \u652f\u6301 \u76ee\u5f55 \uff0c \u4f46 \u53c2\u8003 / \u4f7f\u7528 \u53ef\u80fd \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 CatalogLocations VehicleCatalog \u2705 ParameterDeclarations \u2705 RoadNetwork LogicFile \u2705 \u53ef\u4ee5 \u76f4\u63a5 \u4f7f\u7528 CARLA \u7ea7\u522b \uff08 \u4f8b\u5982 LogicFile = Town01 \uff09 \u3002 \u8fd8 \u53ef\u4ee5 \u63d0\u4f9b \u4efb\u4f55 OpenDRIVE \u8def\u5f84 \u3002 RoadNetwork SceneGraphFile \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 RoadNetwork TafficSignals \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities EntitySelection \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities ScenarioObject CatalogReference \u2705 \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities ScenarioObject MiscObject \u2705 \u8be5 \u540d\u79f0 \u5e94 \u4e0e CARLA \u8f66\u8f86 \u578b\u53f7 \u5339\u914d \uff0c \u5426\u5219 \u5c06 \u4f7f\u7528 \u57fa\u4e8e vehicleCategory \u7684 \u9ed8\u8ba4 \u8f66\u8f86 \u3002 BoundingBox \u6761\u76ee \u5c06 \u88ab \u5ffd\u7565 \u3002 Entities ScenarioObject ObjectController \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities ScenarioObject Pedestrian \u2705 \u8be5 \u540d\u79f0 \u5e94 \u4e0e CARLA \u8f66\u8f86 \u578b\u53f7 \u5339\u914d \uff0c \u5426\u5219 \u5c06 \u4f7f\u7528 \u57fa\u4e8e vehicleCategory \u7684 \u9ed8\u8ba4 \u8f66\u8f86 \u3002 BoundingBox \u6761\u76ee \u5c06 \u88ab \u5ffd\u7565 \u3002 Entities ScenarioObject Vehicle \u2705 \u8be5 \u540d\u79f0 \u5e94 \u4e0e CARLA \u8f66\u8f86 \u578b\u53f7 \u5339\u914d \uff0c \u5426\u5219 \u5c06 \u4f7f\u7528 \u57fa\u4e8e vehicleCategory \u7684 \u9ed8\u8ba4 \u8f66\u8f86 \u3002 \u989c\u8272 \u53ef\u4ee5 \u901a\u8fc7 \u5c5e\u6027 \u8bbe\u7f6e \uff08 ' \u5c5e\u6027 \u540d\u79f0 = \u201c \u989c\u8272 \u201d \u503c = \u201c 0 , 0 , 255 \u201d ' \uff09 \u3002 Axles \u3001 Performance \u3001 BoundingBox \u6761\u76ee \u5c06 \u88ab \u5ffd\u7565 \u3002 OpenSCENARIO \u6545\u4e8b \u677f OpenSCENARIO \u64cd\u4f5c OpenSCENARIO \u64cd\u4f5c \u53ef \u7528\u4e8e \u4e24\u4e2a \u4e0d\u540c \u7684 \u76ee\u7684 \u3002 \u9996\u5148 \uff0c \u52a8\u4f5c \u53ef \u7528\u4e8e \u5b9a\u4e49 \u67d0\u4e9b \u4e8b\u7269 \uff08 \u4f8b\u5982 \u4ea4\u901a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u7684 \u521d\u59cb \u884c\u4e3a \u3002 \u56e0\u6b64 \uff0c Actions \u53ef\u4ee5 \u5728 OpenSCENARIO Init \u4e2d \u4f7f\u7528 \u3002 \u6b64\u5916 \uff0c OpenSCENARIO \u6545\u4e8b \u4e2d \u4e5f \u4f7f\u7528 \u4e86 \u52a8\u4f5c \u3002 \u4e0b\u9762 \u5217\u51fa \u4e86 \u8fd9 \u4e24\u4e2a \u5e94\u7528 \u9886\u57df \u5e94\u7528\u9886\u57df \u7684 \u652f\u6301 \u72b6\u6001 \u3002 \u5982\u679c \u64cd\u4f5c \u5305\u542b \u672a \u5217\u51fa \u7684 \u5b50 \u6a21\u5757 \uff0c \u5219 \u652f\u6301 \u72b6\u6001 \u9002\u7528 \u4e8e \u6240\u6709 \u5b50 \u6a21\u5757 \u3002 GlobalAction GlobalAction \u521d\u59cb \u521d\u59cb\u5316 \u652f\u6301 Story support \u7b14\u8bb0 EntityAction \u2705 \u2705 EnvironmentAction \u2705 \u274c ParameterAction \u2705 \u2705 InfrastructureAction TrafficSignalAction TrafficAction \u274c \u274c InfrastructureAction TrafficSignalAction TrafficSignalControllerAction \u274c \u2705 InfrastructureAction TrafficSignalAction TrafficSignalStateAction \u274c \u2705 \u7531\u4e8e CARLA \u57ce\u9547 \u4e2d \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6ca1\u6709 \u552f\u4e00 ID \uff0c \u56e0\u6b64 \u5fc5\u987b \u901a\u8fc7 \u63d0\u4f9b \u5176 \u4f4d\u7f6e \u6765 \u8bbe\u7f6e \u5b83\u4eec \uff08 \u793a\u4f8b \uff1a TrafficSignalStateAction name = \" pos = x , y \" state = \" green \" \uff09 \u3002 \u8be5 ID \u4e5f \u53ef \u7528\u4e8e \u975e CARLA \u57ce\u9547 \uff08 \u793a\u4f8b \uff1a TrafficSignalStateAction name = \" id = n \" state = \" green \" \uff09 \u7528\u6237 \u5b9a\u4e49 \u7684 \u52a8\u4f5c \u7528\u6237 \u5b9a\u4e49 \u7684 \u52a8\u4f5c \u521d\u59cb \u521d\u59cb\u5316 \u652f\u6301 Story support \u7b14\u8bb0 CustomCommandAction \u274c \u2705 \u6b64 \u64cd\u4f5c \u5f53\u524d \u7528\u4e8e \u89e6\u53d1 \u9644\u52a0 \u811a\u672c \u7684 \u6267\u884c \u3002 \u793a\u4f8b \uff1a type = \" python / path / to / script args \" \u3002 PrivateAction PrivateAction \u521d\u59cb \u521d\u59cb\u5316 \u652f\u6301 Story support \u7b14\u8bb0 ActivateControllerAction \u274c \u2705 \u53ef \u7528\u4e8e \u6fc0\u6d3b / \u505c\u7528 CARLA \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u3002 ControllerAction \u2705 \u2705 \u652f\u6301 AssignControllerAction \uff0c \u4f46 \u5fc5\u987b \u4e3a \u63a7\u5236 \u63a7\u5236\u5668 \u5b9e\u73b0 \u63d0\u4f9b Python \u6a21\u5757 \uff0c \u5e76\u4e14 \u5728 OverrideControllerValueAction \u4e2d \u6240\u6709 \u503c \u90fd \u9700\u8981 \u4e3a False \u3002 LateralAction LaneChangeAction \u274c \u2705 \u76ee\u524d \u6240\u6709 \u8f66\u9053 \u53d8\u5316 \u90fd \u6709 \u4e00\u4e2a \u7ebf\u6027 \u7684 dynamicShape \uff0c dynamicDimension \u88ab \u5b9a\u4e49 \u4e3a \u8ddd\u79bb \u5e76\u4e14 \u76f8\u5bf9 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u672c\u8eab \uff08 RelativeTargetLane \uff09 \u3002 LateralAction LaneOffsetAction \u274c \u2705 \u76ee\u524d \uff0c \u6240\u6709 \u7c7b\u578b \u7684 \u52a8\u6001 \u5f62\u72b6 \u90fd \u88ab \u5ffd\u7565 \u5e76 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u5982\u679c \u504f\u79fb \u504f\u79fb\u91cf \u8db3\u591f \u9ad8\u4ee5 \u4f7f \u8f66\u8f86 \u9000\u51fa \u8f66\u9053 \uff0c \u5219 \u6b64 \u64cd\u4f5c \u53ef\u80fd \u65e0\u6cd5 \u6309 \u9884\u671f \u5de5\u4f5c \u3002 LateralAction LateralDistanceAction \u2705 \u2705 LongitudinalAction LongitudinalDistanceAction \u274c \u2705 \u4e0d \u652f\u6301 timeGap \u5c5e\u6027 LongitudinalAction SpeedAction \u2705 \u2705 SynchronizeAction \u274c \u274c TeleportAction \u2705 \u2705 VisibilityAction \u274c \u274c RoutingAction AcquirePositionAction \u274c \u2705 RoutingAction AssignRouteAction \u274c \u2705 \u652f\u6301 \u8def\u7ebf \u9009\u9879 \uff08 \u6700\u77ed / \u6700\u5feb / \u7b49 \uff09 \u3002 \u6700\u77ed \u8def\u5f84 \u8868\u793a A \u548c B \u4e4b\u95f4 \u7684 \u76f4\u63a5 \u8def\u5f84 \uff0c \u5176\u4ed6 \u6240\u6709 \u8def\u5f84 \u5c06 \u4f7f\u7528 A \u548c B \u4e4b\u95f4 \u7684 \u8def\u7f51 \u4e2d \u7684 \u6700 \u77ed \u8def\u5f84 \u3002 RoutingAction FollowTrajectoryAction \u274c \u2705 \u76ee\u524d \u4ec5 \u652f\u6301 \u6ca1\u6709 \u65f6\u95f4 \u7ea6\u675f \u7684 \u6298\u7ebf \uff0c \u8f68\u8ff9 \u8ddf\u968f \u6a21\u5f0f \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u51b3\u5b9a \u3002 OpenSCENARIO \u6761\u4ef6 OpenSCENARIO \u4e2d \u7684 \u6761\u4ef6 \u53ef\u4ee5 \u5b9a\u4e49 \u4e3a ByEntityCondition \u6216 ByValueCondition \u3002 \u4e24\u8005 \u5747 \u53ef \u7528\u4e8e StartTrigger \u548c StopTrigger \u6761\u4ef6 \u3002 \u4ee5\u4e0b \u4e24\u4e2a \u8868\u5217 \u5217\u51fa \u8868\u5217\u51fa \u4e86 \u6bcf\u4e2a \u8868 \u7684 \u652f\u6301 \u72b6\u6001 \u3002 ByEntityCondition EntityCondition \u652f\u6301 \u7b14\u8bb0 AccelerationCondition \u2705 CollisionCondition \u2705 DistanceCondition \u2705 * freespace * \u5c5e\u6027 \u4ecd\u7136 \u4e0d \u53d7 \u652f\u6301 EndOfRoadCondition \u2705 OffroadCondition \u2705 ReachPositionCondition \u2705 RelativeDistanceCondition \u2705 RelativeSpeedCondition \u2705 SpeedCondition \u2705 StandStillCondition \u2705 TimeHeadwayCondition \u2705 TimeToCollisionCondition \u2705 TraveledDistanceCondition \u2705 ByValueCondition ValueCondition \u652f\u6301 \u7b14\u8bb0 ParameterCondition \u2705 \u652f\u6301 \u7ea7\u522b \u53d6\u51b3 \u53d6\u51b3\u4e8e \u53c2\u6570 \u3002 \u5982\u679c \u53ef\u80fd \u7684\u8bdd \uff0c \u5efa\u8bae \u4f7f\u7528 \u5176\u4ed6 \u6761\u4ef6 \u3002 \u53e6 \u8bf7 \u8003\u8651 \u4e0b\u9762 \u7684 \u6ce8\u91ca \u3002 SimulationTimeCondition \u2705 StoryboardElementStateCondition \u2705 \u76ee\u524d \u652f\u6301 startTransition \u3001 stopTransition \u3001 endTransition \u548c completeState \u3002 TimeOfDayCondition \u2705 TrafficSignalCondition \u2705 \u7531\u4e8e CARLA \u57ce\u9547 \u4e2d \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6ca1\u6709 \u552f\u4e00 ID \uff0c \u56e0\u6b64 \u5fc5\u987b \u901a\u8fc7 \u63d0\u4f9b \u5176 \u4f4d\u7f6e \u6765 \u8bbe\u7f6e \u5b83\u4eec \uff08 \u793a\u4f8b \uff1a TrafficSignalCondition name = \" pos = x , y \" state = \" green \" \uff09 \u3002 \u8be5 ID \u4e5f \u53ef \u7528\u4e8e \u975e CARLA \u57ce\u9547 \uff08 \u793a\u4f8b \uff1a TrafficSignalCondition name = \" id = n \" state = \" green \" \uff09 TrafficSignalControllerCondition \u2705 UserDefinedValueCondition \u274c \u6ce8\u610f \u5728 OpenSCENARIO 1.0 \u6807\u51c6 \u4e2d \uff0c \u6ca1\u6709 \u5b9a\u4e49 \u6d4b\u8bd5 / \u8bc4\u4f30 \u6807\u51c6 \u7684 \u5b9a\u4e49 \u3002 \u4e3a\u6b64 \uff0c \u60a8 \u53ef\u4ee5 \u5c06 StopTrigger \u6761\u4ef6 \u4e0e CARLA \u91cd\u590d \u4f7f\u7528 \u91cd\u590d\u4f7f\u7528 \u3002 \u901a\u8fc7 \u63d0\u4f9b \u6761\u4ef6 \u7684 \u6761\u4ef6 \u540d\u79f0 \uff0c \u901a\u8fc7 ParameterConditions \u652f\u6301 \u8bc4\u4f30 \u6761\u4ef6 \u7684 \u4ee5\u4e0b StopTrigger \u6761\u4ef6 \uff1a criteria _ RunningStopTest criteria _ RunningRedLightTest criteria _ WrongLaneTest criteria _ OnSideWalkTest criteria _ KeepLaneTest criteria _ CollisionTest criteria _ DrivenDistanceTest OpenSCENARIO Positions \u5728 OpenSCENARIO \u4e2d \u5b9a\u4e49 \u4f4d\u7f6e \u7684 \u65b9\u6cd5 \u6709 \u591a\u79cd \u3002 \u4e0b\u9762 \u6211\u4eec \u5217\u51fa \u4e86 \u6bcf\u79cd \u5b9a\u4e49 \u683c\u5f0f \u7684 \u5f53\u524d \u652f\u6301 \u72b6\u6001 \u3002 \u4f4d\u7f6e \u652f\u6301 \u7b14\u8bb0 LanePosition \u2705 RelativeLanePosition \u2705 RelativeObjectPosition \u2705 RelativeRoadPosition \u2705 RelativeWorldPosition \u2705 RoadPosition \u2705 RoutePosition \u274c WorldPosition \u2705","title":"Openscenario support"},{"location":"scenario_runner/openscenario_support/#openscenario","text":"scenario _ runner \u63d0\u4f9b \u5bf9 OpenSCENARIO \u6807\u51c6 \u7684 \u652f\u6301 \u3002 \u5f53\u524d \u7684 \u5b9e\u73b0 \u6db5\u76d6 \u4e86 \u5bf9 \u673a\u52a8 \u52a8\u4f5c \u3001 \u6761\u4ef6 \u3001 \u6545\u4e8b \u548c \u6545\u4e8b \u677f \u7684 \u521d\u6b65 \u652f\u6301 \u3002 \u5982\u679c \u60a8 \u60f3 \u4f7f\u7528 \u573a\u666f \u7684 \u8bc4\u4f30 \u6807\u51c6 \u6765 \u8bc4\u4f30 \u901a\u8fc7 / \u5931\u8d25 \u7ed3\u679c \uff0c \u53ef\u4ee5 \u5c06 \u8fd9\u4e9b \u6807\u51c6 \u5b9e\u73b0 \u4e3a StopTriggers \uff08 \u4e0b\u6587 \u89c1\u4e0b\u6587 \uff09 \u3002 \u7136\u800c \uff0c \u5e76\u975e \u8fd9\u4e9b \u5143\u7d20 \u7684 \u6240\u6709 \u529f\u80fd \u5747 \u53ef\u7528 \u3002 \u5982\u679c \u6709 \u7591\u95ee \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 srunner / tools / openscenario _ parser . py \u4e2d \u7684 \u6a21\u5757 \u6587\u6863 \u3002 \u6b64\u5904 \u63d0\u4f9b \u4e86 \u57fa\u4e8e OpenSCENARIO \u7684 \u53d7 \u652f\u6301 \u573a\u666f \u7684 \u793a\u4f8b \u3002 \u6b64\u5916 \uff0c \u5efa\u8bae \u67e5\u770b \u6b64\u5904 \u548c \u6b64\u5904 and here \u63d0\u4f9b \u7684 \u5b98\u65b9 \u6587\u6863 \u3002","title":"OpenSCENARIO \u652f\u6301"},{"location":"scenario_runner/openscenario_support/#openscenario-09x-10","text":"\u5c06 \u65e7 \u7684 OpenSCENARIO \u793a\u4f8b \u8f6c\u6362 \u4e3a \u5b98\u65b9 \u6807\u51c6 1.0 \u7684 \u6700 \u7b80\u5355 \u65b9\u6cd5 \u662f \u4f7f\u7528 xsltproc \u548c \u4f4d\u4e8e openscenario \u6587\u4ef6 \u4ef6\u5939 \u6587\u4ef6\u5939 \u4e2d \u7684 \u8fc1\u79fb \u65b9\u6848 \u3002 \u4f8b\u5b50 \uff1a xsltproc - o newScenario . xosc migration0 _ 9 _ 1to1 _ 0 . xslt oldScenario . xosc","title":"\u5c06 OpenSCENARIO 0.9 . x \u8fc1\u79fb \u5230 1.0"},{"location":"scenario_runner/openscenario_support/#_1","text":"\u4e0b\u9762 \u5217\u51fa \u4e86 OpenSCENARIO \u5c5e\u6027 \u53ca\u5176 \u5f53\u524d \u652f\u6301 \u72b6\u6001 \u3002","title":"\u652f\u6301 \u7a0b\u5ea6"},{"location":"scenario_runner/openscenario_support/#openscenario_1","text":"\u8fd9 \u6db5\u76d6 \u4e86 OpenSCENARIO Storyboard \u5916\u90e8 \u5b9a\u4e49 \u7684 \u6240\u6709 \u90e8\u5206 \u5c5e\u6027 \u652f\u6301 \u7b14\u8bb0 FileHeader \u2705 \u5728 \u63cf\u8ff0 \u7684 \u5f00\u5934 \u4f7f\u7528 \u201c CARLA : \u201d \u5373\u53ef \u4f7f\u7528 CARLA \u5750\u6807 \u5750\u6807\u7cfb \u3002 CatalogLocations ControllerCatalog \u2705 \u867d\u7136 \u652f\u6301 \u76ee\u5f55 \uff0c \u4f46 \u53c2\u8003 / \u4f7f\u7528 \u53ef\u80fd \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 CatalogLocations EnvironmentCatalog \u2705 CatalogLocations ManeuverCatalog \u2705 CatalogLocations MiscObjectCatalog \u2705 CatalogLocations PedestrianCatalog \u2705 CatalogLocations RouteCatalog \u2705 \u867d\u7136 \u652f\u6301 \u76ee\u5f55 \uff0c \u4f46 \u53c2\u8003 / \u4f7f\u7528 \u53ef\u80fd \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 CatalogLocations TrajectoryCatalog \u2705 \u867d\u7136 \u652f\u6301 \u76ee\u5f55 \uff0c \u4f46 \u53c2\u8003 / \u4f7f\u7528 \u53ef\u80fd \u4f5c\u7528 \u4e0d\u8d77\u4f5c\u7528 \u3002 CatalogLocations VehicleCatalog \u2705 ParameterDeclarations \u2705 RoadNetwork LogicFile \u2705 \u53ef\u4ee5 \u76f4\u63a5 \u4f7f\u7528 CARLA \u7ea7\u522b \uff08 \u4f8b\u5982 LogicFile = Town01 \uff09 \u3002 \u8fd8 \u53ef\u4ee5 \u63d0\u4f9b \u4efb\u4f55 OpenDRIVE \u8def\u5f84 \u3002 RoadNetwork SceneGraphFile \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 RoadNetwork TafficSignals \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities EntitySelection \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities ScenarioObject CatalogReference \u2705 \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities ScenarioObject MiscObject \u2705 \u8be5 \u540d\u79f0 \u5e94 \u4e0e CARLA \u8f66\u8f86 \u578b\u53f7 \u5339\u914d \uff0c \u5426\u5219 \u5c06 \u4f7f\u7528 \u57fa\u4e8e vehicleCategory \u7684 \u9ed8\u8ba4 \u8f66\u8f86 \u3002 BoundingBox \u6761\u76ee \u5c06 \u88ab \u5ffd\u7565 \u3002 Entities ScenarioObject ObjectController \u274c \u6240 \u63d0\u4f9b \u7684 \u4fe1\u606f \u672a \u88ab \u4f7f\u7528 \u3002 Entities ScenarioObject Pedestrian \u2705 \u8be5 \u540d\u79f0 \u5e94 \u4e0e CARLA \u8f66\u8f86 \u578b\u53f7 \u5339\u914d \uff0c \u5426\u5219 \u5c06 \u4f7f\u7528 \u57fa\u4e8e vehicleCategory \u7684 \u9ed8\u8ba4 \u8f66\u8f86 \u3002 BoundingBox \u6761\u76ee \u5c06 \u88ab \u5ffd\u7565 \u3002 Entities ScenarioObject Vehicle \u2705 \u8be5 \u540d\u79f0 \u5e94 \u4e0e CARLA \u8f66\u8f86 \u578b\u53f7 \u5339\u914d \uff0c \u5426\u5219 \u5c06 \u4f7f\u7528 \u57fa\u4e8e vehicleCategory \u7684 \u9ed8\u8ba4 \u8f66\u8f86 \u3002 \u989c\u8272 \u53ef\u4ee5 \u901a\u8fc7 \u5c5e\u6027 \u8bbe\u7f6e \uff08 ' \u5c5e\u6027 \u540d\u79f0 = \u201c \u989c\u8272 \u201d \u503c = \u201c 0 , 0 , 255 \u201d ' \uff09 \u3002 Axles \u3001 Performance \u3001 BoundingBox \u6761\u76ee \u5c06 \u88ab \u5ffd\u7565 \u3002","title":"\u5e38\u89c4 \u7684 OpenSCENARIO \u8bbe\u7f6e"},{"location":"scenario_runner/openscenario_support/#openscenario_2","text":"","title":"OpenSCENARIO \u6545\u4e8b \u677f"},{"location":"scenario_runner/openscenario_support/#openscenario_3","text":"OpenSCENARIO \u64cd\u4f5c \u53ef \u7528\u4e8e \u4e24\u4e2a \u4e0d\u540c \u7684 \u76ee\u7684 \u3002 \u9996\u5148 \uff0c \u52a8\u4f5c \u53ef \u7528\u4e8e \u5b9a\u4e49 \u67d0\u4e9b \u4e8b\u7269 \uff08 \u4f8b\u5982 \u4ea4\u901a \u53c2\u4e0e \u53c2\u4e0e\u8005 \uff09 \u7684 \u521d\u59cb \u884c\u4e3a \u3002 \u56e0\u6b64 \uff0c Actions \u53ef\u4ee5 \u5728 OpenSCENARIO Init \u4e2d \u4f7f\u7528 \u3002 \u6b64\u5916 \uff0c OpenSCENARIO \u6545\u4e8b \u4e2d \u4e5f \u4f7f\u7528 \u4e86 \u52a8\u4f5c \u3002 \u4e0b\u9762 \u5217\u51fa \u4e86 \u8fd9 \u4e24\u4e2a \u5e94\u7528 \u9886\u57df \u5e94\u7528\u9886\u57df \u7684 \u652f\u6301 \u72b6\u6001 \u3002 \u5982\u679c \u64cd\u4f5c \u5305\u542b \u672a \u5217\u51fa \u7684 \u5b50 \u6a21\u5757 \uff0c \u5219 \u652f\u6301 \u72b6\u6001 \u9002\u7528 \u4e8e \u6240\u6709 \u5b50 \u6a21\u5757 \u3002","title":"OpenSCENARIO \u64cd\u4f5c"},{"location":"scenario_runner/openscenario_support/#globalaction","text":"GlobalAction \u521d\u59cb \u521d\u59cb\u5316 \u652f\u6301 Story support \u7b14\u8bb0 EntityAction \u2705 \u2705 EnvironmentAction \u2705 \u274c ParameterAction \u2705 \u2705 InfrastructureAction TrafficSignalAction TrafficAction \u274c \u274c InfrastructureAction TrafficSignalAction TrafficSignalControllerAction \u274c \u2705 InfrastructureAction TrafficSignalAction TrafficSignalStateAction \u274c \u2705 \u7531\u4e8e CARLA \u57ce\u9547 \u4e2d \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6ca1\u6709 \u552f\u4e00 ID \uff0c \u56e0\u6b64 \u5fc5\u987b \u901a\u8fc7 \u63d0\u4f9b \u5176 \u4f4d\u7f6e \u6765 \u8bbe\u7f6e \u5b83\u4eec \uff08 \u793a\u4f8b \uff1a TrafficSignalStateAction name = \" pos = x , y \" state = \" green \" \uff09 \u3002 \u8be5 ID \u4e5f \u53ef \u7528\u4e8e \u975e CARLA \u57ce\u9547 \uff08 \u793a\u4f8b \uff1a TrafficSignalStateAction name = \" id = n \" state = \" green \" \uff09","title":"GlobalAction"},{"location":"scenario_runner/openscenario_support/#_2","text":"\u7528\u6237 \u5b9a\u4e49 \u7684 \u52a8\u4f5c \u521d\u59cb \u521d\u59cb\u5316 \u652f\u6301 Story support \u7b14\u8bb0 CustomCommandAction \u274c \u2705 \u6b64 \u64cd\u4f5c \u5f53\u524d \u7528\u4e8e \u89e6\u53d1 \u9644\u52a0 \u811a\u672c \u7684 \u6267\u884c \u3002 \u793a\u4f8b \uff1a type = \" python / path / to / script args \" \u3002","title":"\u7528\u6237 \u5b9a\u4e49 \u7684 \u52a8\u4f5c"},{"location":"scenario_runner/openscenario_support/#privateaction","text":"PrivateAction \u521d\u59cb \u521d\u59cb\u5316 \u652f\u6301 Story support \u7b14\u8bb0 ActivateControllerAction \u274c \u2705 \u53ef \u7528\u4e8e \u6fc0\u6d3b / \u505c\u7528 CARLA \u81ea\u52a8 \u9a7e\u9a76 \u9a7e\u9a76\u4eea \u3002 ControllerAction \u2705 \u2705 \u652f\u6301 AssignControllerAction \uff0c \u4f46 \u5fc5\u987b \u4e3a \u63a7\u5236 \u63a7\u5236\u5668 \u5b9e\u73b0 \u63d0\u4f9b Python \u6a21\u5757 \uff0c \u5e76\u4e14 \u5728 OverrideControllerValueAction \u4e2d \u6240\u6709 \u503c \u90fd \u9700\u8981 \u4e3a False \u3002 LateralAction LaneChangeAction \u274c \u2705 \u76ee\u524d \u6240\u6709 \u8f66\u9053 \u53d8\u5316 \u90fd \u6709 \u4e00\u4e2a \u7ebf\u6027 \u7684 dynamicShape \uff0c dynamicDimension \u88ab \u5b9a\u4e49 \u4e3a \u8ddd\u79bb \u5e76\u4e14 \u76f8\u5bf9 \u4e8e \u53c2\u4e0e \u53c2\u4e0e\u8005 \u672c\u8eab \uff08 RelativeTargetLane \uff09 \u3002 LateralAction LaneOffsetAction \u274c \u2705 \u76ee\u524d \uff0c \u6240\u6709 \u7c7b\u578b \u7684 \u52a8\u6001 \u5f62\u72b6 \u90fd \u88ab \u5ffd\u7565 \u5e76 \u53d6\u51b3 \u53d6\u51b3\u4e8e \u63a7\u5236 \u63a7\u5236\u5668 \u3002 \u5982\u679c \u504f\u79fb \u504f\u79fb\u91cf \u8db3\u591f \u9ad8\u4ee5 \u4f7f \u8f66\u8f86 \u9000\u51fa \u8f66\u9053 \uff0c \u5219 \u6b64 \u64cd\u4f5c \u53ef\u80fd \u65e0\u6cd5 \u6309 \u9884\u671f \u5de5\u4f5c \u3002 LateralAction LateralDistanceAction \u2705 \u2705 LongitudinalAction LongitudinalDistanceAction \u274c \u2705 \u4e0d \u652f\u6301 timeGap \u5c5e\u6027 LongitudinalAction SpeedAction \u2705 \u2705 SynchronizeAction \u274c \u274c TeleportAction \u2705 \u2705 VisibilityAction \u274c \u274c RoutingAction AcquirePositionAction \u274c \u2705 RoutingAction AssignRouteAction \u274c \u2705 \u652f\u6301 \u8def\u7ebf \u9009\u9879 \uff08 \u6700\u77ed / \u6700\u5feb / \u7b49 \uff09 \u3002 \u6700\u77ed \u8def\u5f84 \u8868\u793a A \u548c B \u4e4b\u95f4 \u7684 \u76f4\u63a5 \u8def\u5f84 \uff0c \u5176\u4ed6 \u6240\u6709 \u8def\u5f84 \u5c06 \u4f7f\u7528 A \u548c B \u4e4b\u95f4 \u7684 \u8def\u7f51 \u4e2d \u7684 \u6700 \u77ed \u8def\u5f84 \u3002 RoutingAction FollowTrajectoryAction \u274c \u2705 \u76ee\u524d \u4ec5 \u652f\u6301 \u6ca1\u6709 \u65f6\u95f4 \u7ea6\u675f \u7684 \u6298\u7ebf \uff0c \u8f68\u8ff9 \u8ddf\u968f \u6a21\u5f0f \u7531 \u63a7\u5236 \u63a7\u5236\u5668 \u51b3\u5b9a \u3002","title":"PrivateAction"},{"location":"scenario_runner/openscenario_support/#openscenario_4","text":"OpenSCENARIO \u4e2d \u7684 \u6761\u4ef6 \u53ef\u4ee5 \u5b9a\u4e49 \u4e3a ByEntityCondition \u6216 ByValueCondition \u3002 \u4e24\u8005 \u5747 \u53ef \u7528\u4e8e StartTrigger \u548c StopTrigger \u6761\u4ef6 \u3002 \u4ee5\u4e0b \u4e24\u4e2a \u8868\u5217 \u5217\u51fa \u8868\u5217\u51fa \u4e86 \u6bcf\u4e2a \u8868 \u7684 \u652f\u6301 \u72b6\u6001 \u3002","title":"OpenSCENARIO \u6761\u4ef6"},{"location":"scenario_runner/openscenario_support/#byentitycondition","text":"EntityCondition \u652f\u6301 \u7b14\u8bb0 AccelerationCondition \u2705 CollisionCondition \u2705 DistanceCondition \u2705 * freespace * \u5c5e\u6027 \u4ecd\u7136 \u4e0d \u53d7 \u652f\u6301 EndOfRoadCondition \u2705 OffroadCondition \u2705 ReachPositionCondition \u2705 RelativeDistanceCondition \u2705 RelativeSpeedCondition \u2705 SpeedCondition \u2705 StandStillCondition \u2705 TimeHeadwayCondition \u2705 TimeToCollisionCondition \u2705 TraveledDistanceCondition \u2705","title":"ByEntityCondition"},{"location":"scenario_runner/openscenario_support/#byvaluecondition","text":"ValueCondition \u652f\u6301 \u7b14\u8bb0 ParameterCondition \u2705 \u652f\u6301 \u7ea7\u522b \u53d6\u51b3 \u53d6\u51b3\u4e8e \u53c2\u6570 \u3002 \u5982\u679c \u53ef\u80fd \u7684\u8bdd \uff0c \u5efa\u8bae \u4f7f\u7528 \u5176\u4ed6 \u6761\u4ef6 \u3002 \u53e6 \u8bf7 \u8003\u8651 \u4e0b\u9762 \u7684 \u6ce8\u91ca \u3002 SimulationTimeCondition \u2705 StoryboardElementStateCondition \u2705 \u76ee\u524d \u652f\u6301 startTransition \u3001 stopTransition \u3001 endTransition \u548c completeState \u3002 TimeOfDayCondition \u2705 TrafficSignalCondition \u2705 \u7531\u4e8e CARLA \u57ce\u9547 \u4e2d \u7684 \u4ea4\u901a \u4fe1\u53f7 \u4fe1\u53f7\u706f \u6ca1\u6709 \u552f\u4e00 ID \uff0c \u56e0\u6b64 \u5fc5\u987b \u901a\u8fc7 \u63d0\u4f9b \u5176 \u4f4d\u7f6e \u6765 \u8bbe\u7f6e \u5b83\u4eec \uff08 \u793a\u4f8b \uff1a TrafficSignalCondition name = \" pos = x , y \" state = \" green \" \uff09 \u3002 \u8be5 ID \u4e5f \u53ef \u7528\u4e8e \u975e CARLA \u57ce\u9547 \uff08 \u793a\u4f8b \uff1a TrafficSignalCondition name = \" id = n \" state = \" green \" \uff09 TrafficSignalControllerCondition \u2705 UserDefinedValueCondition \u274c \u6ce8\u610f \u5728 OpenSCENARIO 1.0 \u6807\u51c6 \u4e2d \uff0c \u6ca1\u6709 \u5b9a\u4e49 \u6d4b\u8bd5 / \u8bc4\u4f30 \u6807\u51c6 \u7684 \u5b9a\u4e49 \u3002 \u4e3a\u6b64 \uff0c \u60a8 \u53ef\u4ee5 \u5c06 StopTrigger \u6761\u4ef6 \u4e0e CARLA \u91cd\u590d \u4f7f\u7528 \u91cd\u590d\u4f7f\u7528 \u3002 \u901a\u8fc7 \u63d0\u4f9b \u6761\u4ef6 \u7684 \u6761\u4ef6 \u540d\u79f0 \uff0c \u901a\u8fc7 ParameterConditions \u652f\u6301 \u8bc4\u4f30 \u6761\u4ef6 \u7684 \u4ee5\u4e0b StopTrigger \u6761\u4ef6 \uff1a criteria _ RunningStopTest criteria _ RunningRedLightTest criteria _ WrongLaneTest criteria _ OnSideWalkTest criteria _ KeepLaneTest criteria _ CollisionTest criteria _ DrivenDistanceTest","title":"ByValueCondition"},{"location":"scenario_runner/openscenario_support/#openscenario-positions","text":"\u5728 OpenSCENARIO \u4e2d \u5b9a\u4e49 \u4f4d\u7f6e \u7684 \u65b9\u6cd5 \u6709 \u591a\u79cd \u3002 \u4e0b\u9762 \u6211\u4eec \u5217\u51fa \u4e86 \u6bcf\u79cd \u5b9a\u4e49 \u683c\u5f0f \u7684 \u5f53\u524d \u652f\u6301 \u72b6\u6001 \u3002 \u4f4d\u7f6e \u652f\u6301 \u7b14\u8bb0 LanePosition \u2705 RelativeLanePosition \u2705 RelativeObjectPosition \u2705 RelativeRoadPosition \u2705 RelativeWorldPosition \u2705 RoadPosition \u2705 RoutePosition \u274c WorldPosition \u2705","title":"OpenSCENARIO Positions"},{"location":"scenario_runner/ros_agent/","text":"\u57fa\u4e8e ROS \u7684 \u6311\u6218 \u4ee3\u7406 \u4e0e ROS \u7684 CARLA \u63a5\u53e3 \u901a\u5e38 \u901a\u8fc7 CARLA ROS Bridge \u5b8c\u6210 \u3002 \u5728 \u6311\u6218 \u6a21\u5f0f \u4e0b \uff0c \u6b64 \u6865\u63a5 \u529f\u80fd \u7531 RosAgent \u63d0\u4f9b \u3002 \u5b83 \u5bf9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u76f8\u540c \u7684 \u4e3b\u9898 \u548c \u6d88\u606f \u7c7b\u578b \uff0c \u4f46 \u4e0d \u53d1\u5e03 tf \u8f6c\u6362 \u3002 \u8981\u6c42 roscore \u9884\u8ba1 \u5c06 \u5728 docker \u5bb9\u5668 \u4e2d \u8fd0\u884c \u3002 \u8bf7 \u8c03\u6574 \u60a8 \u7684 \u5165\u53e3 \u70b9 \u3002 \u8bbe\u7f6e \u8981 \u5728 \u6311\u6218 \u6a21\u5f0f \u4e0b \u542f\u7528 \u5806\u6808 \uff0c \u9700\u8981 \u6267\u884c \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u5b9a\u4e49 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u5b9a\u4e49 \u542f\u52a8 \u5b9a\u4e49 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u6d3e\u751f \u81ea RosAgent \u5e76 \u5b9e\u73b0 sensors ( ) \u65b9\u6cd5 \u3002 from srunner . autoagents . ros _ agent import RosAgent class MyRosAgent ( RosAgent ) : def sensors ( self ) : return [ < sensor - definition > ] \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b9a\u4e49 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 HumanAgent . py \u3002 \u5b9a\u4e49 \u542f\u52a8 \u5806\u6808 \u7684 \u542f\u52a8 \u662f \u5728 shell \u811a\u672c $ TEAM _ CODE _ ROOT / start . sh \u5185 \u5b8c\u6210 \u7684 \u3002 \u56e0\u6b64 TEAM _ CODE _ ROOT \u5fc5\u987b \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 RosAgent \u8d1f\u8d23 \u6267\u884c \u548c \u76d1\u63a7 \u3002 \u53ea\u8981 \u5806\u6808 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \uff0c \u811a\u672c \u5c31 \u5e94 \u4fdd\u6301 \u8fd0\u884c \u3002 start . sh \u7684 \u793a\u4f8b # ! / bin / bash - e roslaunch $ TEAM _ CODE _ ROOT / challenge . launch \u6d4b\u8bd5 \u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6311\u6218 \u6267\u884c \u662f \u65e0\u5934 \u7684 \u3002 \u4e3a\u4e86 \u8fdb\u884c \u8bca\u65ad \uff0c \u60a8 \u4ecd\u7136 \u53ef\u4ee5 \u4f7f\u7528 rviz \u6216 rqt \u7b49 ros \u5de5\u5177 \u3002 \u6b64\u5916 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 carla _ ros _ bridge \u4e2d \u7684 carla _ manual _ control \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \uff08 \u5e76 \u63a7\u5236 \u8f66\u8f86 \uff09 \u3002","title":"\u57fa\u4e8e ROS \u7684 \u6311\u6218 \u4ee3\u7406"},{"location":"scenario_runner/ros_agent/#ros","text":"\u4e0e ROS \u7684 CARLA \u63a5\u53e3 \u901a\u5e38 \u901a\u8fc7 CARLA ROS Bridge \u5b8c\u6210 \u3002 \u5728 \u6311\u6218 \u6a21\u5f0f \u4e0b \uff0c \u6b64 \u6865\u63a5 \u529f\u80fd \u7531 RosAgent \u63d0\u4f9b \u3002 \u5b83 \u5bf9 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u4f7f\u7528 \u76f8\u540c \u7684 \u4e3b\u9898 \u548c \u6d88\u606f \u7c7b\u578b \uff0c \u4f46 \u4e0d \u53d1\u5e03 tf \u8f6c\u6362 \u3002","title":"\u57fa\u4e8e ROS \u7684 \u6311\u6218 \u4ee3\u7406"},{"location":"scenario_runner/ros_agent/#_1","text":"roscore \u9884\u8ba1 \u5c06 \u5728 docker \u5bb9\u5668 \u4e2d \u8fd0\u884c \u3002 \u8bf7 \u8c03\u6574 \u60a8 \u7684 \u5165\u53e3 \u70b9 \u3002","title":"\u8981\u6c42"},{"location":"scenario_runner/ros_agent/#_2","text":"\u8981 \u5728 \u6311\u6218 \u6a21\u5f0f \u4e0b \u542f\u7528 \u5806\u6808 \uff0c \u9700\u8981 \u6267\u884c \u4ee5\u4e0b \u6b65\u9aa4 \uff1a \u5b9a\u4e49 \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u8bbe\u7f6e \u5b9a\u4e49 \u542f\u52a8","title":"\u8bbe\u7f6e"},{"location":"scenario_runner/ros_agent/#_3","text":"\u6d3e\u751f \u81ea RosAgent \u5e76 \u5b9e\u73b0 sensors ( ) \u65b9\u6cd5 \u3002 from srunner . autoagents . ros _ agent import RosAgent class MyRosAgent ( RosAgent ) : def sensors ( self ) : return [ < sensor - definition > ] \u4f5c\u4e3a \u4f20\u611f \u611f\u5668 \u4f20\u611f\u5668 \u5b9a\u4e49 \u7684 \u793a\u4f8b \uff0c \u53c2\u9605 \u8bf7\u53c2\u9605 HumanAgent . py \u3002","title":"\u5b9a\u4e49 \u4f20\u611f\u5668 \u8bbe\u7f6e"},{"location":"scenario_runner/ros_agent/#_4","text":"\u5806\u6808 \u7684 \u542f\u52a8 \u662f \u5728 shell \u811a\u672c $ TEAM _ CODE _ ROOT / start . sh \u5185 \u5b8c\u6210 \u7684 \u3002 \u56e0\u6b64 TEAM _ CODE _ ROOT \u5fc5\u987b \u8bbe\u7f6e \u73af\u5883 \u53d8\u91cf \u73af\u5883\u53d8 \u73af\u5883\u53d8\u91cf \u3002 RosAgent \u8d1f\u8d23 \u6267\u884c \u548c \u76d1\u63a7 \u3002 \u53ea\u8981 \u5806\u6808 \u5904\u4e8e \u6d3b\u52a8 \u72b6\u6001 \u6d3b\u52a8\u72b6\u6001 \uff0c \u811a\u672c \u5c31 \u5e94 \u4fdd\u6301 \u8fd0\u884c \u3002 start . sh \u7684 \u793a\u4f8b # ! / bin / bash - e roslaunch $ TEAM _ CODE _ ROOT / challenge . launch","title":"\u5b9a\u4e49 \u542f\u52a8"},{"location":"scenario_runner/ros_agent/#_5","text":"\u4e00\u822c \u6765\u8bf4 \u4e00\u822c\u6765\u8bf4 \uff0c \u6311\u6218 \u6267\u884c \u662f \u65e0\u5934 \u7684 \u3002 \u4e3a\u4e86 \u8fdb\u884c \u8bca\u65ad \uff0c \u60a8 \u4ecd\u7136 \u53ef\u4ee5 \u4f7f\u7528 rviz \u6216 rqt \u7b49 ros \u5de5\u5177 \u3002 \u6b64\u5916 \uff0c \u60a8 \u53ef\u4ee5 \u4f7f\u7528 carla _ ros _ bridge \u4e2d \u7684 carla _ manual _ control \u8fdb\u884c \u53ef\u89c6 \u53ef\u89c6\u5316 \uff08 \u5e76 \u63a7\u5236 \u8f66\u8f86 \uff09 \u3002","title":"\u6d4b\u8bd5"},{"location":"tmp/%E5%9C%A8windows%E7%8E%AF%E5%A2%83%E4%B8%8Bcarla%E4%B8%8E%E7%BD%97%E6%8A%80G29%E6%96%B9%E5%90%91%E7%9B%98%E8%81%94%E8%B0%83%E6%96%B9%E6%B3%95/","text":"\u5728 windows \u73af\u5883 \u4e0b carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u53cd\u9988 \u529b\u53cd\u9988 \u8054\u8c03 \u65b9\u6cd5 \u76ee\u524d \u7f51\u4e0a carla \u548c G29 \u7684 \u8054\u8c03 \u90fd \u662f \u5728 ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \uff0c \u8be6\u60c5 \u53ef\u4ee5 \u53c2\u8003 \u535a\u6587 https : / / blog . csdn . net / qq _ 44237695 / article / details / 129103700 \u4f46 \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \u65b9\u6cd5 \u6ca1\u6709 \u641c\u7d22 \u5230 \uff0c \u81ea\u5df1 \u8d70 \u4e86 \u4e0d\u5c11 \u5f2f\u8def \uff0c \u5206\u4eab \u4e00\u4e0b \u3002 \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u81ea\u5df1 \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 https : / / blog . csdn . net / qq _ 41250354 / article / details / 104652071 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c \u6240\u4ee5 \u8fd9\u4e2a \u65b9\u6848 \u5835\u6b7b \u4e86 \u5f88 \u4e45 \u3002 \u65e0\u7edd \u7edd\u4eba \u4e4b\u8def \u5929\u65e0\u7edd\u4eba\u4e4b\u8def \uff0c \u5728 github \u4e0a \u627e\u5230 \u4e00\u4e2a \u5927\u795e \u5199 \u7684 G29python \u4ee3\u7801 \uff0c \u8fd9\u4e2a \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 github \u9875\u9762 \uff1a https : / / github . com / cengizozel / LogiDrivePy \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 carla0.9 . 14 \u7f57\u6280 G - hub \u9a71\u52a8 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002 carla - g29 \u81ea\u52a8 \u9a7e\u9a76 \u53cd\u9988 \u529b\u53cd\u9988 \u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"\u5728 windows \u73af\u5883 \u4e0b carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411\u76d8 \u529b\u53cd\u9988 \u8054\u8c03 \u65b9\u6cd5"},{"location":"tmp/%E5%9C%A8windows%E7%8E%AF%E5%A2%83%E4%B8%8Bcarla%E4%B8%8E%E7%BD%97%E6%8A%80G29%E6%96%B9%E5%90%91%E7%9B%98%E8%81%94%E8%B0%83%E6%96%B9%E6%B3%95/#windowscarlag29","text":"\u76ee\u524d \u7f51\u4e0a carla \u548c G29 \u7684 \u8054\u8c03 \u90fd \u662f \u5728 ubuntu \u73af\u5883 \u4e0b \u4f7f\u7528 jstest - gtk \u3001 ROS \u8fdb\u884c \u65b9\u5411 \u65b9\u5411\u76d8 \u63a7\u5236 \uff0c \u8be6\u60c5 \u53ef\u4ee5 \u53c2\u8003 \u535a\u6587 https : / / blog . csdn . net / qq _ 44237695 / article / details / 129103700 \u4f46 \u5728 windows \u73af\u5883 \u4e0b \u8054\u8c03 \u65b9\u6cd5 \u6ca1\u6709 \u641c\u7d22 \u5230 \uff0c \u81ea\u5df1 \u8d70 \u4e86 \u4e0d\u5c11 \u5f2f\u8def \uff0c \u5206\u4eab \u4e00\u4e0b \u3002 \u539f\u5148 \u7684 \u60f3\u6cd5 \u662f \u5728 windows \u73af\u5883 \u4e0b \u5b89\u88c5 ros2 \uff0c \u81ea\u5df1 \u901a\u8fc7 \u7f57\u6280 \u7684 sdk \u6765 \u66ff\u6362 jstest - gtk \uff0c \u91cd\u5199 ros2 \u8282\u70b9 \u6765 \u5b9e\u73b0 \u3002 \u7f57\u6280 g29sdk \u53ef \u53c2\u8003 https : / / blog . csdn . net / qq _ 41250354 / article / details / 104652071 \u4f46 \u7531\u4e8e C++ \u7684 g29 sdk \u5f3a\u5236 \u8981\u6c42 \u754c\u9762 \uff0c carla \u5728 \u63a7\u5236 \u65b9\u5411 \u65b9\u5411\u76d8 \u65f6 \u4e5f \u8981\u6c42 \u6307\u5b9a pygame \u754c\u9762 \uff0c \u6240\u4ee5 \u8fd9\u4e2a \u65b9\u6848 \u5835\u6b7b \u4e86 \u5f88 \u4e45 \u3002 \u65e0\u7edd \u7edd\u4eba \u4e4b\u8def \u5929\u65e0\u7edd\u4eba\u4e4b\u8def \uff0c \u5728 github \u4e0a \u627e\u5230 \u4e00\u4e2a \u5927\u795e \u5199 \u7684 G29python \u4ee3\u7801 \uff0c \u8fd9\u4e2a \u4ee3\u7801 \u7528 \u7684 C# dll \u4fee\u6539 \uff0c \u521d\u59cb \u521d\u59cb\u5316 \u8fc7\u7a0b \u4e0d \u9700\u8981 \u754c\u9762 \u3002 \u540c\u65f6 \u7531\u4e8e \u662f python \u5199 \u7684 \uff0c \u53ef\u4ee5 \u7ed5\u5f00 ros2 \u8fd9\u4e2a \u8fc7\u7a0b \uff0c \u51cf\u5c11 \u975e\u5e38 \u591a \u7684 \u5b66\u4e60 \u91cf \u3002 github \u9875\u9762 \uff1a https : / / github . com / cengizozel / LogiDrivePy \u5177\u4f53 \u8054\u8c03 \u8fc7\u7a0b \uff1a \u73af\u5883 \uff1a python3.7 carla0.9 . 14 \u7f57\u6280 G - hub \u9a71\u52a8 G29 \u65b9\u5411 \u65b9\u5411\u76d8 \u9996\u5148 \u53bb \u7f57\u6280 \u5b98\u7f51 \u5b89\u88c5 \u65b9\u5411 \u65b9\u5411\u76d8 \u542f\u52a8 \uff0c \u5b89\u88c5 \u597d\u540e \u9a71\u52a8 \u754c\u9762 \u663e\u793a \u754c\u9762\u663e\u793a G29 \u65b9\u5411 \u65b9\u5411\u76d8 \uff0c \u540c\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u8f6c\u52a8 \u81ea\u68c0 \u3002 python \u73af\u5883 \u4e2d \u5b89\u88c5 CARLA \u4e0e logidrivepy pip install carla pip install logidrivepy \u8fd9\u91cc \u8981 \u521b\u5efa \u4e00\u4e2a ini \u7684 \u914d\u7f6e \u6587\u4ef6 \u914d\u7f6e\u6587\u4ef6 \u3002 wheel _ config . ini [ G29 Racing Wheel ] steering _ wheel = 0 throttle = 2 brake = 3 reverse = 5 handbrake = 4 \u5176\u4e2d \u6570\u5b57 \u53ef\u80fd \u9700\u8981 \u81ea\u5df1 \u8bd5 \u8fd9\u91cc steering _ wheel \u8868\u793a \u65b9\u5411 \u65b9\u5411\u76d8 \u65b9\u5411 \u3001 throttle \u6cb9\u95e8 \u548c brake \u5239\u8f66 \u5df2\u7ecf \u662f \u6b63\u786e \u7684 \u8bbe\u7f6e \u4e86 \u3002 \u8981 \u4fdd\u8bc1 \u8fd9\u4e2a \u8bbe\u7f6e \u548c . py \u6587\u4ef6 \u5728 \u540c\u4e00 \u4e00\u4e2a \u540c\u4e00\u4e2a \u76ee\u5f55 \u4e0b \u5426\u5219 \u4f1a \u62a5\u9519 \u3002 \u4e0b\u8f7d carla - API \u540e \uff0c \u8fd0\u884c carla \u5ba2\u6237 \u5ba2\u6237\u7aef \u968f\u540e \u8fd0\u884c PythonAPI / examples / manual _ control _ steeringwheel . py \u6587\u4ef6 \u6b64\u65f6 \u5373\u53ef \u5f00\u542f \u8f66\u8f86 \u3002","title":"\u5728 windows \u73af\u5883 \u4e0b carla \u4e0e \u7f57\u6280 G29 \u65b9\u5411\u76d8 \u529b\u53cd\u9988 \u8054\u8c03 \u65b9\u6cd5"},{"location":"tmp/%E5%9C%A8windows%E7%8E%AF%E5%A2%83%E4%B8%8Bcarla%E4%B8%8E%E7%BD%97%E6%8A%80G29%E6%96%B9%E5%90%91%E7%9B%98%E8%81%94%E8%B0%83%E6%96%B9%E6%B3%95/#carla-g29","text":"\u53e6\u542f \u4e00\u4e2a \u6587\u4ef6 \uff0c \u590d\u5236 \u4ee5\u4e0b \u4ee3\u7801 import sys import carla sys . path . append ( ' .. / logidrivepy ' ) from logidrivepy import LogitechController import time class SimpleController : def __ init __ ( self , k ) : # k \u662f \u6bd4\u4f8b \u589e\u76ca \uff0c \u7528\u4e8e \u8c03\u6574 \u63a7\u5236 \u63a7\u5236\u5668 \u7684 \u54cd\u5e94 \u901f\u5ea6 \u54cd\u5e94\u901f\u5ea6 self . k = k def control ( self , aim , now ) : # \u8ba1\u7b97 \u4f4d\u7f6e \u5dee\u503c error = now - aim # \u8ba1\u7b97 \u8f93\u51fa \u529b force = self . k * error return force class ForceFeedback : def __ init __ ( self ) : self . position = None self . torque = None class Node ( ) : def __ init __ ( self , client ) : self . client = client self . world = client . get _ world ( ) self . actor = self . get _ hero ( ) def get _ hero ( self ) : for actor in self . world . get _ actors ( ) : if actor . attributes . get ( \" role _ name \" ) in [ \" hero \" , \" ego _ vehicle \" ] : return actor def timer _ cb ( self ) : out _ msg = ForceFeedback ( ) steering _ angle = self . actor . get _ control ( ) . steer out _ msg . position = steering _ angle out _ msg . torque = 0.8 def get _ position ( self ) : steering _ angle = self . actor . get _ control ( ) . steer position = steering _ angle return position def main ( args = None ) : controller = LogitechController ( ) controller . steering _ initialize ( ) print ( \" \\ n --- Logitech Spin Test --- \" ) client = carla . Client ( \" 127.0 . 0.1 \" , 2000 ) client . set _ timeout ( 2.0 ) carla _ car = Node ( client ) # \u521b\u5efa \u4e00\u4e2a PID \u63a7\u5236 \u63a7\u5236\u5668 sc = SimpleController ( k = 1 ) # \u5728 \u6bcf\u4e2a \u65f6\u95f4 \u6b65\u4e2d \uff0c \u66f4\u65b0 \u63a7\u5236 \u63a7\u5236\u5668 \u5e76 \u4f7f\u7528 \u65b0 \u7684 \u529b while True : aim = carla _ car . get _ position ( ) * 150 now = ( controller . LogiGetStateENGINES ( 0 ) . contents . lX ) / 327.50 if ( abs ( aim ) < 1 ) : controller . LogiPlaySoftstopForce ( 0 , 0 ) controller . logi _ update ( ) time . sleep ( 0.1 ) controller . LogiStopSoftstopForce ( 0 ) controller . logi _ update ( ) print ( \" Target : { } , Current State : { } \" . format ( aim , now ) ) else : force = sc . control ( now , aim ) controller . LogiPlayConstantForce ( 0 , - int ( force ) * 2 ) controller . logi _ update ( ) print ( \" Force : { } , Target : { } , Current State : { } \" . format ( force , aim , now ) ) time . sleep ( 0.1 ) controller . steering _ shutdown ( ) if __ name __ = = \" __ main __ \" : main ( ) \u5728 pygame \u754c\u9762 \u952e\u76d8 P \u5f00\u542f \u81ea\u52a8 \u9a7e\u9a76 \uff0c \u6b64\u65f6 \u65b9\u5411 \u65b9\u5411\u76d8 \u4f1a \u968f\u7740 \u8f66\u8f86 \u81ea\u884c \u8f6c\u52a8 \u3002 \u8fd9\u4e2a \u4ee3\u7801 \u662f \u6d4b\u8bd5 \u7528 \u7684 \u6548\u679c \u4e0d\u592a\u597d \uff0c \u6709 \u66f4\u597d \u6548\u679c \u9700\u6c42 \u5f97\u6362 \u66f4\u597d \u7684 \u63a7\u5236 \u4ee3\u7801 \u63a7\u5236\u4ee3\u7801 \u4e86 \u3002","title":"carla - g29 \u81ea\u52a8 \u9a7e\u9a76 \u529b\u53cd\u9988"}]}
\ No newline at end of file